CN200986701Y - 文件分配表访问装置及芯片 - Google Patents
文件分配表访问装置及芯片 Download PDFInfo
- Publication number
- CN200986701Y CN200986701Y CN 200520038195 CN200520038195U CN200986701Y CN 200986701 Y CN200986701 Y CN 200986701Y CN 200520038195 CN200520038195 CN 200520038195 CN 200520038195 U CN200520038195 U CN 200520038195U CN 200986701 Y CN200986701 Y CN 200986701Y
- Authority
- CN
- China
- Prior art keywords
- fat
- storer
- sector
- cluster
- content
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Fee Related
Links
- 238000003860 storage Methods 0.000 claims abstract description 42
- 238000000034 method Methods 0.000 claims description 42
- 238000010586 diagram Methods 0.000 description 2
- 238000004519 manufacturing process Methods 0.000 description 2
- 230000007812 deficiency Effects 0.000 description 1
- 238000009826 distribution Methods 0.000 description 1
- 230000006870 function Effects 0.000 description 1
- 238000004321 preservation Methods 0.000 description 1
Images
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本实用新型公开一种文件分配表(FAT)访问装置、包含该访问装置的专用集成电路(ASIC)芯片,所述FAT存储在存储介质中,所述访问装置包括:FAT扇区处理装置,用于将存储介质中包含当前簇所在扇区在内的N个扇区的FAT数据读取到存储器,其中N为自然数;存储器,用于存储所述FAT数据;下一簇处理装置,用于通过读取存储器中FAT数据获得当前簇内容,并根据所述当前簇内容确定下一簇的存储器地址,在下一簇不在所述N个扇区的情况下,向所述FAT扇区处理装置发送读下一簇所在扇区的FAT数据的请求。本实用新型利用极少的RAM,提供了高速的FAT访问性能,从而大大降低了成本。
Description
技术领域
本实用新型涉及一种文件访问装置及芯片,特别地,涉及一种文件分配表访问装置、包含该访问装置的专用集成电路芯片。
背景技术
目前,在各种ASIC芯片中,对文件系统的操作主要有两种方法:一种方法是,系统上电时读取整个文件分配表(FAT),在随机存取存储器(RAM)中记录各个文件的相关信息。该方法可以达到比较快的文件访问速度,但有一个明显的缺点,就是支持的文件总数有限。否则,就需要大容量的RAM,而一般内置RAM有很大的限制,若采用外部RAM,则成本上升。所以,应用该方法操作大容量(比如1G字节)的存储卡,就有些不大现实。
另一种方法是,应用内置功能比较强大的微控制器(MCU)来实时读取存储卡上的目录和FAT信息,这种方法基本不需要RAM。但是,受到MCU访问外部存储介质的时序限制,使得访问大文件,尤其是非连续存储的大文件时,速度比较慢,且需要占用大量MCU时间,效率低下。
发明内容
针对现有技术的不足,本实用新型提供一种硬件实现、具有高效FAT读取能力的FAT访问装置,利用较小的内部RAM来达到高速FAT访问的目的。
根据本实用新型的第一方面,提供一种文件分配表(FAT)访问装置,所述FAT存储在存储介质中,所述访问装置包括:FAT扇区处理装置,用于将存储介质中包含当前簇所在扇区在内的N个扇区的FAT数据读取到存储器,其中N为自然数;存储器,用于存储所述FAT数据;下一簇处理装置,用于通过读取存储器中FAT数据获得当前簇内容,并根据所述当前簇内容确定下一簇的存储器地址,在下一簇不在所述N个扇区的情况下,向所述FAT扇区处理装置发送读下一簇所在扇区的FAT数据的请求。
在第一方面中,优选地,所述下一簇处理装置预先获得指定首簇内容,其获得当前簇内容和确定下一簇存储器地址利用两级流水线。
优选地,还包括结果保存装置,用于保存所述下一簇处理装置获得的簇内容。
优选地,所述N为1,所述存储器的容量为FAT的一个扇区大小。
优选地,所述存储器为随机存取存储器。
优选地,所述下一簇处理装置在读取当前簇内容后,将文件删除标志写入存储器中当前簇;在下一簇处理装置向FAT扇区处理装置发送读请求之前,所述FAT扇区处理装置将存储器中FAT数据回写到存储介质的FAT扇区。
优选地,所述下一簇处理装置在读取当前簇内容后,将更新的簇内容写入存储器中当前簇;在下一簇处理装置向FAT扇区处理装置发送读请求之前,所述FAT扇区处理装置将存储器中FAT数据回写到存储介质的FAT扇区。
优选地,所述FAT扇区处理装置通过直接存储器存取方式访问存储介质。
根据第二方面,提供一种文件分配表(FAT)访问装置,所述FAT存储在存储介质中,所述访问装置包括:FAT扇区处理装置,用于将存储介质中包含当前簇所在扇区在内的N个扇区的FAT数据读取到存储器,其中N为自然数;存储器,用于存储所述FAT数据;下一簇处理装置,用于通过读取存储器中FAT数据获得当前簇内容,并根据当前簇的存储器地址,确定下一簇的存储器地址;在下一簇不在所述N个扇区的情况下,向所述FAT扇区处理装置发送读下一簇所在扇区的FAT数据的请求。
根据第三方面,提供一种专用集成电路(ASIC)芯片,其特征在于,包括前述第一方面及第二方面中的文件分配表(FAT)访问装置。
按照本实用新型,利用极少的RAM,提供了高速的FAT访问性能,从而大大降低了成本。且本实用新型提供的FAT访问装置和具体的存储介质无关,可广泛应用于各种场合。
附图说明
为更好地理解本实用新型,下面仅以一个实施例结合附图对本实用新型作进一步说明。附图中:
图1为本实用新型一个实施例的FAT访问装置的结构框图;
图2为本实用新型该实施例中读FAT操作流程图;
图3为本实用新型该实施例中读取指定簇内容的波形图;
图4为本实用新型该实施例中删除文件对应FAT操作的流程图;
图5为本实用新型该实施例中更新FAT操作流程图。
具体实施方式
为结合MCU的灵活和硬件电路的高效,本实用新型采用MCU来提供文件访问接口,而采用硬件FAT访问装置来处理所有的FAT数据。本实用新型的FAT访问装置应用于各种专用集成电路(ASIC)芯片,支持FAT文件系统,提供与文件搜索、文件空间分配、文件删除、文件更新等操作相对应的FAT操作。
参照图1,图1为本实用新型一个实施例的FAT访问装置的结构框图。FAT存储在位于FAT访问装置10外部的存储介质15中,FAT访问装置10包括FAT扇区处理模块11、存储器12和下一簇处理模块13。其中,FAT扇区处理模块11将存储介质15中指定N个扇区的FAT数据读入存储器12,以及将存储器12中的FAT数据写入存储介质中FAT的指定扇区,这里,N为自然数;存储器12用于存储从存储介质15读取的,或者需要向存储介质15写入的N个扇区的FAT数据,存储器12优选采用随机存取存储器RAM;下一簇处理模块13通过读取存储器12中FAT数据获得当前簇内容,并根据当前簇内容确定下一簇的存储器地址,在下一簇不在N个扇区的情况下,向FAT扇区处理模块11发送读下一簇所在扇区的FAT数据的请求,由FAT扇区处理模块11执行读取操作,获得所需簇内容。需要删除文件或更新FAT时,下一簇处理模块13向存储器12写入文件删除标志或需要更改的FAT数据。
优选地,所述N个扇区为一个扇区,相应地,RAM12的容量为FAT的一个扇区大小,比如512字节。这样,通过采用相当少的RAM,降低了成本。
优选地,在存储介质15和FAT访问装置10之间,利用直接存储器存取(DMA)方式提供统一的存储访问接口,以使得该FAT访问装置和具体的存储介质无关,可适用于诸如SD卡、NAND等一系列存储介质。
FAT访问装置10还可包括其他模块14,用于负责各种FAT操作的主要流程。其他模块14可包含一结果保存模块(未图示),用于保存下一簇处理模块13获得的簇内容,这里,结果保存模块也可位于其他模块14之外。
与文件搜索操作相对应的FAT操作为读FAT操作,参照图2,图2为本实用新型该实施例中读FAT操作流程图。首先,在步骤S20,其他模块14启动读簇内容请求;接下来在步骤S21,FAT扇区处理模块11从存储介质15中读取指定簇所在扇区的FAT数据到内部RAM12中,优选地,可同时预先读取指定首簇内容,即预先使下一簇处理模块13获得当前簇内容;在步骤S22,下一簇处理模块13通过读RAM12获得当前簇内容,并根据当前簇内容计算下一簇的RAM地址,在步骤S23,将簇内容即簇链数据传递到其他模块14中的结果保存模块保存;在步骤S24,下一簇处理模块13判断簇链是否结束,如簇链结束,则转至步骤S25,由其他模块14继续处理所获取的数据;如簇链未结束,则执行步骤S26,下一簇处理模块13判断下一簇是否在同一个扇区中,如在同一个扇区中,则在步骤S28,移动当前簇到下一簇,即将当前簇序号更换为当前簇的内容;如不在同一个扇区中,则转至步骤S27,向FAT扇区处理模块11发送读请求,由FAT扇区处理模块11读取下一簇所在扇区的FAT数据到RAM12中,并获得所需簇内容,再执行步骤S28;随后重复执行步骤S22,直到簇链结束。
上述过程中,在步骤S22,下一簇处理模块13可利用以下公式计算内部RAM地址:
其中,FATstart是FAT起始扇区号;Sizesector是每扇区大小,一般固定为512,其合法数值有512、1024、2048、4096四种;SizeRAM表示内部RAM的大小;Index为指定的簇序号,即所述当前簇内容;mod(Size)表示除以Size取余数操作。
在步骤S24,下一簇处理模块13可通过检查获得的“簇内容”是否为簇链结束标志,来判断簇链是否结束。例如,FAT16中簇链结束标志为FFFF,FAT32中该标志为0FFFFFFF。
在步骤S26,下一簇处理模块13利用“簇内容有效”信号判断下一簇是否在同一个扇区中,“簇内容有效”信号的计算公式如下:
其中,Valid表示“簇内容有效”,其余参数的含义同上式。
参照图3,图3为本实用新型该实施例中读取指定簇内容的波形图,示出了连续读取两个簇内容的波形。在T1时刻,将“读取簇内容”信号置为1,此时“簇内容”总线上已经有当前簇的内容;“簇内容有效”为高电平;下一簇所对应的“内部RAM地址”也已经通过组合逻辑获得;“内部RAM读信号”由“读取簇内容”产生,在此时刻也已经有效(该信号低电平有效)。
在T2时刻,内部RAM将“簇内容”(下一簇内容)数据放到数据线上;“内部RAM地址”通过组合逻辑由该“簇内容”生成;“簇内容有效”由“簇内容”和当前FAT表项所在扇区的起始和结束地址生成,指明下一簇和当前簇是否在同一扇区中,若在同一扇区中,则“簇内容有效”继续为高电平;“读取簇内容”信号继续保持高电平;“内部RAM读信号”继续保持有效。
在T3时刻,内部RAM将下二簇内容放在数据线上;同时,产生新的“内部RAM地址”、“簇内容有效”、“读取簇内容”和“内部RAM读信号”。接下来,进行下一步操作,直到“簇内容有效”为低电平或者簇链结束。
可见,读取当前簇内容和确定下一簇的内部RAM地址利用了两级流水线(pipeline),因此,在簇链的某部分位于同一个扇区时,这些簇链的读取操作可以做到一个时钟获得一个簇内容,正如图3所示,在T2获得第一簇内容,在T3获得第二簇内容,以此类推。
按照该读取过程,每一个时钟周期可以读取一个簇内容。那么,对于4M左右的FAT32文件,以4k一个簇、内部RAM为512Byte来计算,读取FAT所需要的时间大约为:1024×Tclk+(1024/128)×Tsector,其中,Tclk是时钟周期,Tsector是读取一个扇区FAT数据的时间。
当新建文件分配文件空间时,相应地,FAT操作需实现申请文件空间操作。该操作基本上和读FAT操作相同,唯一的区别是,计算下一簇的内部RAM地址并非由当前簇的内容产生,而是由当前簇的位置增加1来确定。当获得的簇内容为“00”时,表明该簇为可用空间,并传递给其他模块来保存获得的结果;否则,说明该簇已被占用,继续将簇位置加1,直到获得指定大小的可用簇为止。
参照图4,图4为本实用新型该实施例中删除文件对应FAT操作的流程图。该操作读取下一个簇位置的步骤和读FAT操作相同,这里不再赘述。不同点在于,在读取当前簇内容的同时,在步骤S41,下一簇处理模块13将RAM12中该簇内容写为文件删除标志,比如写为0;当判断出下一簇不在同一扇区中时,在步骤S42,下一簇处理模块13将RAM12中的扇区内容回写到存储介质15的FAT区;尔后,再读取新扇区FAT数据到RAM12中。该操作中,由于需要读、写RAM,所以,读写内部RAM12所需时间为前两种操作的两倍。
在文件存储位置或者大小更改之后,需要更新FAT。参照图5,图5为本实用新型该实施例中更新FAT操作流程图。这里,更新FAT操作也需要在下一簇内容不在同扇区时,更新RAM中数据到FAT中。与图4所示操作相同的步骤不再赘述,不同点在于,首先在步骤S50,由其他模块14启动写簇内容请求;在读取当前簇内容的同时,在步骤S51,下一簇处理模块13将RAM12中该簇内容写为需要更改的内容,所述需要更改的内容从其他模块14获得。这里,RAM的写信号以及地址和数据如果用组合逻辑产生,可以节省一个时钟周期,每个簇写操作需要1个时钟;如果时钟频率比较高,可以采用同步设计,每个簇写操作需要2个时钟。
显而易见,在此描述的本实用新型可以有许多变化,这种变化不能认为偏离本实用新型的精神和范围。因此,所有对本领域技术人员显而易见的改变,都包括在本权利要求书的涵盖范围之内。
Claims (10)
1、一种文件分配表(FAT)访问装置,所述FAT存储在存储介质中,所述访问装置包括:FAT扇区处理模块、存储器和下一簇处理模块,其中:
FAT扇区处理模块,与所述存储器连接,用于自存储介质中读取包含当前簇所在扇区在内的N个扇区的FAT数据,并将其存储到存储器中,其中N为自然数;
存储器,其中存储有所述FAT数据;
下一簇处理模块,分别与所述FAT扇区处理模块及存储器连接,其自所述存储器中读取FAT数据以获得当前簇内容,根据所述当前簇内容确定下一簇的存储器地址,并在下一簇不在所述N个扇区的情况下,向所述FAT扇区处理模块发送读下一簇所在扇区的FAT数据的请求。
2、如权利要求1所述的访问装置,其特征在于:所述下一簇处理模块内设置有两级流水线结构。
3、如权利要求1所述的访问装置,其特征在于,还包括结果保存模块,所述结果保存模块与所述下一簇处理模块连接,并用于保存所述下一簇处理模块获得的簇内容。
4、如权利要求1所述的访问装置,其特征在于,所述N为1,所述存储器的容量为FAT的一个扇区大小。
5、如权利要求1所述的访问装置,其特征在于,所述存储器为随机存取存储器。
6、如权利要求1所述的访问装置,其特征在于,所述下一簇处理模块与所述存储器连接,用于在获得当前簇内容后,将文件删除标志写入存储器中当前簇;
所述FAT扇区处理模块分别与所述存储器和存储介质连接,用于在下一簇处理模块向FAT扇区处理模块发送读请求之前,所述FAT扇区处理模块将存储器中FAT数据回写到存储介质的FAT扇区。
7、如权利要求1所述的访问装置,其特征在于,所述下一簇处理模块与所述存储器连接,用于在获得当前簇内容后,将更新的簇内容写入存储器中当前簇;
所述FAT扇区处理模块分别与所述存储器和存储介质连接,用于在下一簇处理模块向FAT扇区处理模块发送读请求之前,所述FAT扇区处理模块将存储器中FAT数据回写到存储介质的FAT扇区。
8、如权利要求1至7中任一项所述的访问装置,其特征在于,所述FAT扇区处理模块和所述存储介质之间设置有直接存储器。
9、一种文件分配表(FAT)访问装置,所述FAT存储在存储介质中,所述访问装置包括:FAT扇区处理模块、存储器和下一簇处理模块,其中
FAT扇区处理模块,连接所述存储器,用于将存储介质中包含当前簇所在扇区在内的N个扇区的FAT数据读取到存储器,其中N为自然数;
存储器,用于存储所述FAT数据;
下一簇处理模块,分别与所述存储器和FAT扇区处理模块连接,用于通过读取存储器中FAT数据获得当前簇内容,并根据当前簇的存储器地址,确定下一簇的存储器地址;在下一簇不在所述N个扇区的情况下,向所述FAT扇区处理模块发送读下一簇所在扇区的FAT数据的请求。
10、一种专用集成电路(ASIC)芯片,其特征在于,其中设置有如权利要求1至9中任一项所述的文件分配表(FAT)访问装置。
Priority Applications (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| CN 200520038195 CN200986701Y (zh) | 2005-12-31 | 2005-12-31 | 文件分配表访问装置及芯片 |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| CN 200520038195 CN200986701Y (zh) | 2005-12-31 | 2005-12-31 | 文件分配表访问装置及芯片 |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| CN200986701Y true CN200986701Y (zh) | 2007-12-05 |
Family
ID=38916160
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| CN 200520038195 Expired - Fee Related CN200986701Y (zh) | 2005-12-31 | 2005-12-31 | 文件分配表访问装置及芯片 |
Country Status (1)
| Country | Link |
|---|---|
| CN (1) | CN200986701Y (zh) |
Cited By (1)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| CN106600750A (zh) * | 2016-11-21 | 2017-04-26 | 建荣半导体(深圳)有限公司 | 一种循环录像的方法、系统及行车记录仪 |
-
2005
- 2005-12-31 CN CN 200520038195 patent/CN200986701Y/zh not_active Expired - Fee Related
Cited By (1)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| CN106600750A (zh) * | 2016-11-21 | 2017-04-26 | 建荣半导体(深圳)有限公司 | 一种循环录像的方法、系统及行车记录仪 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| CN102411549A (zh) | 存储器系统、主机控制器以及dma的控制方法 | |
| KR20100126446A (ko) | 메모리 장치의 활용 영역 확장 | |
| CN109669888A (zh) | 一种可配置且高效的嵌入式Nor-Flash控制器及控制方法 | |
| TWI841113B (zh) | 記憶體定址方法及相關聯的控制器 | |
| CN104461750A (zh) | 一种NAND flash的访问方法和装置 | |
| CN117413247A (zh) | 一种数据处理方法、设备及系统 | |
| US11126382B2 (en) | SD card-based high-speed data storage method | |
| TWI533135B (zh) | 記憶體存取方法、記憶體存取控制方法、記憶體裝置與記憶體控制器 | |
| US7949818B2 (en) | Memory system comprising semiconductor memory having plural different operation modes | |
| CN200986701Y (zh) | 文件分配表访问装置及芯片 | |
| CN102708075A (zh) | 一种sd卡硬件控制装置及控制方法 | |
| CN202584143U (zh) | 一种多接口只读读卡器 | |
| CN101373436A (zh) | U盘上数据自动压缩和解压缩的方法 | |
| WO2008025238A1 (en) | Storage device with large capacity and method based on flash memory | |
| CN101968724A (zh) | 针对嵌入式arm处理器对sd卡数据存储和删除方法 | |
| CN205983448U (zh) | 用于固态硬盘的控制芯片及固态硬盘 | |
| CN102117245B (zh) | 嵌入式设备及其系统可执行文件分割加载和启动方法 | |
| CN1790340A (zh) | 文件分配表访问装置、芯片及访问方法 | |
| US8510525B2 (en) | Method of duplicating segmented data to multiple random accessible storage devices | |
| US9483425B2 (en) | Memory including a band width conversion unit, memory system and memory control method using the same | |
| CN115878024B (zh) | 写入数据到闪存存储器的方法及装置 | |
| CN100477005C (zh) | 支持分区的闪存存贮器件 | |
| CN201145913Y (zh) | 车辆数据采集记录装置 | |
| CN101339490A (zh) | 闪存的驱动装置及方法 | |
| Lu et al. | The reading/writing SD card system based on FPGA |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| C14 | Grant of patent or utility model | ||
| GR01 | Patent grant | ||
| C17 | Cessation of patent right | ||
| CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20071205 Termination date: 20111231 |