CN103354925B - 存储器控制器和存储器访问方法 - Google Patents
存储器控制器和存储器访问方法 Download PDFInfo
- Publication number
- CN103354925B CN103354925B CN201180066426.1A CN201180066426A CN103354925B CN 103354925 B CN103354925 B CN 103354925B CN 201180066426 A CN201180066426 A CN 201180066426A CN 103354925 B CN103354925 B CN 103354925B
- Authority
- CN
- China
- Prior art keywords
- file
- sector
- memory
- address mapping
- memory area
- 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
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/0223—User address space allocation, e.g. contiguous or non contiguous base addressing
- G06F12/023—Free address space management
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/0223—User address space allocation, e.g. contiguous or non contiguous base addressing
- G06F12/023—Free address space management
- G06F12/0238—Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
- G06F12/0246—Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory in block erasable memory, e.g. flash memory
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/061—Improving I/O performance
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0638—Organizing or formatting or addressing of data
- G06F3/0643—Management of files
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0673—Single storage device
- G06F3/0679—Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/10—Providing a specific technical effect
- G06F2212/1041—Resource optimization
- G06F2212/1044—Space efficiency improvement
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/10—Providing a specific technical effect
- G06F2212/1048—Scalability
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/72—Details relating to flash memory management
- G06F2212/7201—Logical to physical mapping or translation of blocks or pages
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Human Computer Interaction (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Memory System (AREA)
Abstract
数据存储部(130)针对每个文件临时地存储将扇区编号和物理地址对应起来的地址变换表格(133)。如果有文件的打开要求,则变换表格用存储器确保部(140)确保与该文件对应的地址变换表格(133)用的存储器区域。文件***管理部(110)在规定的时机释放所确保的存储器区域。另外,文件***管理部(110)在确保了存储器区域的地址变换表格(133)的各记录中依次储存构成该文件的1个或者多个扇区的扇区编号。之后,存储器控制部(120)通过搜索闪存存储器的存储器区域而取得与地址变换表格的各记录的扇区编号对应的物理地址,将所取得的各物理地址储存到对应的记录中。
Description
技术领域
本发明涉及向闪存存储器(Flashmemory)等非易失性的存储介质的访问技术。
背景技术
近年来,在个人计算机等信息处理装置、便携电话、数字照相机等各种电子设备中使用着作为非易失性的存储介质的闪存存储器。另外,关于向闪存存储器的访问技术,以往提出了各种技术(例如,专利文献1)。
专利文献1公开的存储卡具备闪存存储器和对它进行控制的控制器,上述控制器具有从外部接受沿着地址增加的方向的数据写入命令、并检测针对该接受的数据写入命令的写入时的最终写入位置的功能等。该控制器在检索与闪存存储器的扇区(逻辑数据)对应的物理地址时,参照表示扇区和与它对应的闪存存储器的物理地址之间的关系的变换表格。
专利文献1:日本特开2006-40264号公报
发明内容
但是,如专利文献1公开的技术那样,关于使得针对每个扇区立即知道所对应的闪存存储器的物理地址这样的变换表格,如果闪存存储器的大小大,则其大小增大。因此,在要求节省存储器的微型计算机***等中,如以往那样采用这样的变换表格并不容易。
本发明是为了解决上述以往的问题而完成的,其目的在于提供一种存储器控制器,抑制固定的存储器消耗,并且能够高速访问与指定的扇区对应的闪存存储器等可读写的存储介质的物理地址。
为了达成上述目的,本发明的存储器控制器具备:
存储器控制单元,访问能读写的非易失性存储器,按照为了用于该非易失性存储器而构建的文件***中的扇区单位,进行数据的读取以及写入;
数据存储部,针对每个文件,临时地存储登记了由构成所述非易失性存储器中储存的文件的扇区的扇区编号、和与该扇区编号对应的所述非易失性存储器的物理地址构成的1个或者多个记录的地址变换表格;
存储器确保单元,在从外部有文件的打开要求时,从所述数据存储部的规定的存储器区域中,确保与该文件对应的所述地址变换表格用的存储器区域;
存储器释放单元,在规定的时机释放由该存储器确保单元确保的所述存储器区域;以及
扇区编号储存单元,在确保了所述存储器区域的所述地址变换表格的各记录中,依次储存构成该文件的至少一部分扇区的扇区编号,在该储存之后向存储器控制单元通知这个意思,
在所述存储器控制单元中,
如果从所述扇区编号储存单元接收到所述通知,则通过搜索所述非易失性存储器的存储器区域而取得与所述地址变换表格的各记录的扇区编号对应的物理地址,将所取得的各物理地址储存到对应的所述记录,
在访问构成所述文件的扇区时,以该扇区的扇区编号为关键字,参照与该文件对应的所述地址变换表格,取得与该扇区对应的物理地址。
根据本发明,在访问扇区时,参照将扇区编号和物理地址对应起来的地址变换表格,从而能够立即取得与该扇区对应的物理地址,实现向非易失性存储器的访问处理的高速化。另外,关于各地址变换表格,存储器区域的占有是临时的,所以能够抑制固定的存储器消耗。
附图说明
图1是示出具备具有作为本发明的一个实施方式的存储器控制器的功能的微型计算机的闪存存储器***的整体结构的图。
图2是示出图1的微型计算机的结构的框图。
图3是概要地示出图1的闪存存储器的存储器构造的图。
图4是示出文件***定义表格的一个例子的图。
图5是示出变换表格管理表格的一个例子的图。
图6是示出地址变换表格的一个例子的图。
图7是用于说明物理地址设定处理的图。
图8是示出地址变换表格制作处理的过程的流程图。
图9是示出数据读取处理的过程的流程图。
图10是示出在其他实施方式中使用的文件***定义表格的一个例子的图。
(符号说明)
1:闪存存储器***;10:微型计算机;100:应用程序处理部;110:文件***管理部;120:存储器控制部;130:数据存储部;131:文件***定义表格;132:变换表格管理表格;133:地址变换表格;140:变换表格用存储器确保部;20:闪存存储器;30:数据总线。
具体实施方式
以下,参照附图,详细说明本发明的一个实施方式的存储器控制器。
图1是示出由具有作为本实施方式的存储器控制器的功能的微型计算机10、和闪存存储器20构成的闪存存储器***1的概要结构的图。微型计算机10和闪存存储器20通过数据总线30连接。
微型计算机10搭载于各种电子设备、各种家电设备等,控制该设备整体的动作。微型计算机10在硬件方面由微处理器、ROM(ReadOnlyMemory)、RAM(RandomAccessMemory)、存储器接口、晶体振荡器等时钟源(都未图示)等构成。
微型计算机10如图2所示,在功能方面具备应用程序处理部100、文件***管理部110、存储器控制部120、数据存储部130、以及变换表格用存储器确保部140。文件***管理部110、存储器控制部120、数据存储部130以及变换表格用存储器确保部140承担作为本发明的存储器控制器的功能。
应用程序处理部100执行依照ROM等中存储的用于实现该设备的功能的各种应用程序软件程序的处理。文件***管理部110进行为了用于闪存存储器20而构建的文件***的管理。另外,文件***管理部110还承担作为本发明中的扇区编号储存单元以及存储器释放单元的功能。存储器控制部120根据经由文件***管理部110的来自应用程序处理部100的要求,访问闪存存储器20,进行各种处理(数据的读取、写入等)。
数据存储部130存储用于定义该文件***的各种表格。在本实施方式中,在数据存储部130中,存储文件***定义表格131、变换表格管理表格132、地址变换表格133等。关于这些表格的详细内容在后面进行叙述。
闪存存储器20的存储器区域如图3所示由多个块构成。块(删除块)是数据的删除时的处理单位。作为文件***中的数据的管理单位的扇区表示将块按照规定大小(例如,520字节)进行分割而得到的区域,由“扇区编号”区域(例如,4字节)、“扇区状态”区域(例如,4字节)、以及“数据”区域(例如,512字节)构成。
在“扇区编号”区域中,储存针对该文件***所管理的每个扇区进行了分配的编号(扇区编号)。在本实施方式中,对各扇区分配了从1开始的序列号。
在“扇区状态”区域中,储存表示该扇区的利用状态(扇区状态)的信息。通过参照该“扇区状态”区域,可知该扇区是“未使用”、“使用中”或者“削除”中的哪一个状态。例如,在块刚刚被删除之后,该块的所有扇区表示“未使用”。在“数据”区域中,储存与“扇区编号”区域中储存的扇区编号对应的数据。
存储器控制部120在访问与由文件***管理部110指定的扇区编号对应的、储存在闪存存储器20中的数据的情况下,以扇区单位(例如,520字节)对闪存存储器20的存储器区域依次进行扫描。然后,访问“扇区编号”区域中储存的扇区编号与所指定的扇区编号一致、并且“扇区状态”区域中储存的信息表示“使用中”的扇区的“数据”区域。另外,存储器控制部120以扇区编号为关键字,参照所制作的地址变换表格133,取得与指定的扇区编号对应的物理地址,在后面详细叙述。由此,存储器控制部120能够立即访问闪存存储器20中储存的与指定的扇区编号对应的数据。
另外,在对闪存存储器20新写入数据(文件)的情况下,存储器控制部120确保与由文件***管理部110指定的数据大小(文件大小)对应的1个或者多个“未使用”扇区,进行该数据的写入。
另外,在数据的改写时,存储器控制部120向和与指定的扇区编号对应的“使用中”扇区不同的“未使用”扇区,写入数据和扇区编号,并且将扇区状态变更为“使用中”。另外,将原来的扇区的扇区状态变更为“削除”。
文件***定义表格131如图4所示,由“开始地址”项目、“开始扇区”项目、“驱动器大小”项目等构成。
在“开始地址”中,储存闪存存储器20的存储器区域中的开头地址(在本实施方式中是0x0000000)。在“开始扇区”中,储存扇区编号的开始编号(在本实施方式中是1)。在“驱动器大小”中,储存由该文件***管理的闪存存储器20的最大存储器容量(在本实施方式中是19.2MB(兆字节))。
变换表格管理表格132是表示关于与当前打开的文件对应的地址变换表格133的信息的数据表格。变换表格管理表格132如图5所示,由“文件名”项目、“开头地址”项目、“记录数”项目等构成。
在“文件名”中,储存当前打开中的文件名。在“开头地址”中,储存数据存储部130的存储器地址,该存储器地址表示对应的地址变换表格133的开头。在“记录数”中,储存该地址变换表格133的记录数。另外,在“记录数”的储存值是0的情况下,表示由于存储器不足等理由而没有制作出与该文件对应的地址变换表格133。在该情况下,在“开头地址”中储存规定的“NULL(空)”值。
地址变换表格133是将构成当前打开中的文件的各扇区的编号(扇区编号)、和闪存存储器20的物理地址对应起来的数据表格,针对打开中的每个文件临时地制作。如图6所示,地址变换表格133由包括“扇区编号”项目和“物理地址”项目的多个记录构成。
地址变换表格133是在与其表格大小相当的、数据存储部130中的存储器区域被确保之后制作的。表格大小是根据构成对应的文件的扇区的数量而决定的。具体而言,通过将该文件的扇区数、与1个记录的平均大小(与“扇区编号”的数据类型对应的大小(例如,2字节)+与“物理地址”的数据类型对应的大小(例如,4字节))进行相乘而求出。例如,在扇区数是4、且1个记录的平均大小是6字节的情况下,为了该地址变换表格133而要确保的存储器区域的大小成为4×6=24字节。
在上述情况下,构成文件的扇区数、和与该文件对应的地址变换表格133的记录数一致,但在数据存储部130的空闲区域不充分的情况下,也有成为扇区数>记录数的情形。另外,还有如下情形:与该文件对应的地址变换表格133自身未被制作。
变换表格用存储器确保部140依照来自文件***管理部110的要求,进行确保(配备)数据存储部130中的地址变换表格133用的存储器的处理。此时,文件***管理部110如上述那样,计算希望确保的地址变换表格133的表格大小,将它作为参数,对变换表格用存储器确保部140要求确保存储器区域。
变换表格用存储器确保部140检查数据存储部130的规定的存储器区域,判定是否有所要求的大小量的空闲区域。在有所要求的大小量的空闲区域的情况下,变换表格用存储器确保部140确保所要求的大小量的空闲区域,对文件***管理部110,回送由表示确保了所要求的大小量的存储器区域的应答类别、和所确保的存储器区域的开头地址构成的应答消息。
另外,在虽然有空闲区域、但无所要求的大小量的空闲区域的情况下,变换表格用存储器确保部140确保空闲区域量的存储器区域。然后,对文件***管理部110,返回由表示无法确保所要求的大小量的存储器区域的应答类别、所确保的存储器的大小、以及所确保的存储器区域的开头地址构成的应答消息。
在无空闲区域的情况下,变换表格用存储器确保部140将包括表示无空闲区域的应答类别的应答消息返回给文件***管理部110。
文件***管理部110如果从变换表格用存储器确保部140接收到上述应答消息,则在变换表格管理表格132(参照图5)中,追加关于与该文件对应的地址变换表格133的信息。具体而言,文件***管理部110将由该文件的文件名、地址变换表格133的开头地址以及记录数构成的记录登记到变换表格管理表格132。另外,在虽然能够确保存储器、但未达到所要求的大小的情况下,文件***管理部110将所确保的存储器区域的大小除以1个记录的平均大小,将其结果所得到的商作为该地址变换表格133的记录数而采用。
另外,文件***管理部110在无法确保存储器区域的情况、能够确保的存储器区域的大小小于1个记录的平均大小的情况下,在向变换表格管理表格132登记的记录的“开头地址”中储存NULL(空)、在“记录数”中储存0。
文件***管理部110在上述登记后,执行作为本发明中的扇区编号储存单元的处理。即,文件***管理部110在确保了存储器区域的地址变换表格133的各记录的“扇区编号”中,依次储存构成该文件的扇区的扇区编号。然后,文件***管理部110对存储器控制部120,通知填充该地址变换表格133的各记录的“物理地址”的处理的要求。即,文件***管理部110对存储器控制部120要求如下处理(物理地址设定处理):从闪存存储器20检索并取得与各记录的扇区编号对应的物理地址,并存储到各记录的“物理地址”。
此时,文件***管理部110将该文件的文件名作为参数,对存储器控制部120要求物理地址设定处理。存储器控制部120如果接收到上述要求,则参照变换表格管理表格132,取得与指定的文件名对应的地址变换表格133的开头地址以及记录数。存储器控制部120根据所取得的开头地址以及记录数,从该地址变换表格133的开头记录依次取出扇区编号。
存储器控制部120访问闪存存储器20,从文件***定义表格131的“开始地址”中储存的开头地址(在本实施方式中是0x0000000),以扇区单位(例如,520字节)朝向下方向(后方的块的方向)开始依次扫描。在该扫描中,存储器控制部120搜索与该扇区编号一致、并且是“使用中”的扇区。如果通过该搜索发现了相应的扇区,则存储器控制部120取得该扇区的物理地址,储存到该地址变换表格133中的该记录的“物理地址”。
存储器控制部120反复进行上述处理,如图7所示,在地址变换表格133的所有记录中储存分别对应的物理地址。如果结束了向所有记录的物理地址的储存,则存储器控制部120将物理地址设定处理结束了的意思的状况通知给文件***管理部110。
如以上那样,制作与打开中的各文件对应的地址变换表格133。如果制作了地址变换表格133,则存储器控制部120在从文件***管理部110要求了针对该文件的扇区的访问(读取等)时,参照该地址变换表格133。由此,能够立即访问闪存存储器20的对应的物理地址,实现处理的高速化。另外,在“构成文件的全部扇区数”>“地址变换表格133的记录数”的情况下,在地址变换表格133中还有未储存的扇区编号。在该情况下,存储器控制部120通过如以往那样以扇区单位对闪存存储器20的存储器区域进行依次扫描,从而访问所要求的扇区。
关于所制作的地址变换表格133,如果对应的文件被关闭,则通过文件***管理部110来删除。即,该地址变换表格133用的存储器区域被释放。另外,相伴于此,变换表格管理表格132的相应的记录也被削除。
另外,在制作了地址变换表格133之后,如果有该文件的写入要求(改写),则存储器控制部120将地址变换表格133的所有记录的物理地址分别更新为移动目的地的扇区的物理地址。
图8是示出通过文件***管理部110、变换表格用存储器确保部140以及存储器控制部120的协作来执行的地址变换表格制作处理的过程的流程图。
通过从应用程序处理部100向文件***管理部110通知文件的打开要求从而开始地址变换表格制作处理。另外,在该打开要求中,应用程序处理部100指定成为打开对象的文件的名称(文件名)。
文件***管理部110如果从应用程序处理部100接收到文件的打开要求,则参照未图示的文件信息表格来取得与指定的文件名对应的大小(文件大小)。该文件信息表格是将文件名、文件大小、构成该文件的扇区的编号(扇区编号)等对应起来的表格,在该文件的新写入时制作并保存到表格存储部130。
文件***管理部110根据所取得的文件大小,计算希望确保的地址变换表格133的表格大小(步骤S101)。然后,将它作为参数,对变换表格用存储器确保部140要求存储器区域的确保。
变换表格用存储器确保部140如上述那样,进行地址变换表格133用的存储器区域的确保(步骤S102),向文件***管理部110应答其结果。
如果接收到该应答,则文件***管理部110对变换表格管理表格132(参照图5),追加关于与该文件对应的地址变换表格133的信息(步骤S103)。
在如上所述确保了要求的表格大小量的存储器区域的情况下,在变换表格管理表格132中追加的地址变换表格133的记录数等于构成该文件的扇区的数量。但是,在能够确保的存储器区域的大小小于要求的表格大小的情况下,成为记录数<全部扇区数。例如,在所确保的存储器区域的大小是1KB(K字节)、且地址变换表格133的1个记录的平均大小是6字节的情况下,记录数成为170(1024/6)。另外,在无法确保存储器区域的情况、在能够确保的存储器区域的大小小于1个记录的平均大小的情况下,在“记录数”中储存0,在“开头地址”中储存NULL。
接下来,文件***管理部110向确保了存储器区域的地址变换表格133的所有记录,依次储存构成该文件的扇区的扇区编号(步骤S104)。但是,该处理仅在确保了1个记录(例如,6字节)以上的存储器区域的情况下执行。
然后,文件***管理部110对存储器控制部120,要求物理地址设定处理。但是,该处理也与上述同样地,仅在确保了1个记录以上的存储器区域的情况下执行。
存储器控制部120通过搜索闪存存储器20的存储器区域而取得与该地址变换表格133的所有记录的扇区编号分别对应的物理地址,并分别储存到对应的记录中(步骤S105)。
当结束上述物理地址设定处理时,存储器控制部120将该意思通知给文件***管理部110。文件***管理部110如果接收到上述通知,则对应用程序处理部100通知针对打开要求的处理完成了的意思(步骤S106)。
如以上那样,制作与被提出打开要求的文件对应的地址变换表格133。
接下来,说明在制作了地址变换表格133之后从应用程序处理部100发出关于该文件的读取要求时的处理。图9是示出由文件***管理部110以及存储器控制部120执行的数据读取处理的过程的流程图。通过向文件***管理部110通知来自应用程序处理部100的数据读取要求而开始数据读取处理。另外,在该数据读取要求中,应用程序处理部100指定成为读取对象的文件的名称(文件名)。
文件***管理部110参照上述文件信息表格而取得与指定的文件名对应的扇区编号(步骤S201)。此处,在该文件由多个扇区构成的情况下,文件***管理部110参照文件信息表格,依次逐个取得对应的扇区编号。
文件***管理部110对存储器控制部120通知所取得的扇区编号和该文件的文件名,要求读取与该扇区对应的数据。
存储器控制部120如果接收到上述要求,则参照变换表格管理表格132,取得与指定的文件名对应的地址变换表格133的开头地址以及记录数(步骤S202)。存储器控制部120根据所取得的开头地址以及记录数,从该地址变换表格133的开头记录起依次检查“扇区编号”的储存值,检索储存了指定的扇区编号的记录。然后,取得相应的记录的“物理地址”中储存的物理地址(步骤S203)。
存储器控制部120访问位于闪存存储器20的所取得的物理地址的扇区,读取“数据”区域中储存的数据(扇区数据)(步骤S204)。存储器控制部120对文件***管理部110供给所读取的扇区数据,并且通知扇区数据的读取完成了的意思。如果接收到上述通知,则文件***管理部110判定构成该文件的所有扇区数据的读取是否完成(步骤S205)。
在全部扇区数据的读取尚未完成的情况下(步骤S205:“否”),反复执行上述处理。即,文件***管理部110参照文件信息表格,取得1个对应的接下来的扇区编号(步骤S201)。然后,文件***管理部110对存储器控制部120通知所取得的扇区编号和该文件的文件名,要求读取与该扇区对应的数据。如果接收到上述要求,则存储器控制部120执行上述步骤S202~S204的处理。
另一方面,在全部扇区数据的读取完成了的情况下(步骤S205:“是”),文件***管理部110将所读取的全部扇区数据即所读取的文件供给到应用程序处理部100(步骤S206),本处理结束。
如以上所说明那样,本实施方式的微型计算机10(存储器控制器)在文件打开时,制作将构成该文件的扇区的编号与闪存存储器20的物理地址对应起来的地址变换表格133。由此,在该文件打开着时,在有文件的读取等要求的情况下,通过参照地址变换表格133,能够立即访问闪存存储器20中储存的与指定的扇区编号对应的扇区。因此,能够实现处理的高速化。
另外,地址变换表格133用的存储器区域在文件打开时被确保,在文件关闭时被释放。因此,上述表格并非在数据存储部130中常驻,存储器区域的占有是临时的。因此,能够抑制固定的存储器消耗。
另外,本发明不限于上述实施方式,当然能够在不脱离本发明的要旨的范围内实现各种变更。
例如,在上述实施方式中,为了用于地址变换表格133而被确保的存储器区域在对应的文件的关闭时被释放,但对释放存储器区域的时机没有限定。例如,也可以是将从被确保起经过了规定时间的存储器区域进行释放的做法。由此,能够避免为了用于地址变换表格133而被确保的一个存储器区域被长时间持续占有这样的情形。
另外,在上述实施方式中,如果在数据存储部130中有所要求的大小量的空闲区域,则变换表格用存储器确保部140确保了所要求的大小量的存储器区域,但存储器区域确保的做法不限于此。例如,也可以进行还考虑了今后打开的文件的存储器区域确保。具体而言,在该情况下,如图10所示,在文件***定义表格131中进一步追加“打开预约数”项目和“预约大小”项目。
在“打开预约数”中,储存同时成为打开状态的文件的预测数。“同时成为打开状态”是指,在某个文件被打开并关闭的期间,其他文件成为打开状态。关于该预测数,既可以是预先决定的固定值,也可以是过去的同时打开数的平均值、最大数等适宜更新的值。
另外,在“预约大小”中储存如下大小,其中,该大小是即使“打开预约数”中储存的数量的文件同时成为打开状态也能最小限地保证向1个地址变换表格133的分配的大小。上述大小既可以是固定值,也可以是对过去制作的地址变换表格133的大小进行平均而得到的值、最大值等适宜更新的值。
在上述情况下,变换表格用存储器确保部140如果从文件***管理部110接收到存储器区域的确保要求,则根据数据存储部130的空闲区域的大小、文件***定义表格131的上述“打开预约数”以及“预约大小”的各自的储存值、和当前打开中的文件数,决定可确保的存储器区域的最大大小。
例如,在“打开预约数”是8、且当前打开中的文件数包括自身在内是2个的情况下,今后打开的预定的文件的数量成为6个。在该情况下,如果设为“预约大小”是60B(字节),则将从空闲区域大小减去360B(6×60B)而得到的大小,决定为能够为了用于地址变换表格133而确保的最大大小。
由此,即使多个文件同时成为打开状态,对于之后被要求打开的文件,也能够避免由于存储器不足而无法制作地址变换表格133的情形。因此,对于之后被要求打开的文件,能够防止处理速度的大幅降低等。
另外,也可以设为能够从应用程序处理部100指定所打开的文件的优先级,根据上述优先级,决定可确保的存储器区域的最大大小。在该情况下,例如,对于优先级高的文件,如果在数据存储部130中有所要求的大小量的空闲区域,则变换表格用存储器确保部140确保所要求的大小量的存储器区域。另一方面,对于优先级低的文件,即使在数据存储部130中有所要求的大小量的空闲区域,变换表格用存储器确保部140也确保比所要求的大小小的规定大小(例如,“预约大小”中储存的大小)的存储器区域。
由此,对于优先级高的文件(例如,在打开着时,频繁地被发行读取要求等的文件),能够制作期望大小的地址变换表格133,有效地实现处理的高速化。
另外,本发明能够不脱离本发明的广义的精神和范围而设为各种实施方式以及变形。另外,上述实施方式用于说明本发明,而并非限定本发明的范围。即,本发明的范围并非通过实施方式而是通过权利要求书来示出。并且,在权利要求书内以及与其等同的发明的意义的范围内实施的各种变形被视为本发明的范围内。
产业上的可利用性
本发明能够适用于利用闪存存储器等可读写的存储介质的各种电子设备。
Claims (6)
1.一种存储器控制器,具备:
存储器控制单元,访问能读写的非易失性存储器,按照为了用于该非易失性存储器而构建的文件***中的扇区单位,进行数据的读取以及写入;
数据存储部,针对每个文件,临时地存储地址变换表格;
存储器确保单元,在从外部有文件的打开要求时,从所述数据存储部的规定的存储器区域中,确保用于存储与该文件对应的所述地址变换表格的存储器区域;
存储器释放单元,在有所述文件的关闭要求时或者在从确保所述存储器区域起经过了规定时间之后释放由该存储器确保单元确保的所述存储器区域;以及
扇区编号储存单元,在确保了所述存储器区域的所述地址变换表格的各记录中,依次储存构成该文件的至少一部分扇区的扇区编号,在该储存之后向存储器控制单元通知处理的要求,
在所述存储器控制单元中,
如果从所述扇区编号储存单元接收到所述通知,则通过搜索所述非易失性存储器而取得与所述地址变换表格的各记录的扇区编号对应的物理地址,将所取得的各物理地址储存到对应的所述记录,
在访问构成所述文件的扇区时,以该扇区的扇区编号为关键字,参照与该文件对应的所述地址变换表格,取得与该扇区对应的物理地址。
2.根据权利要求1所述的存储器控制器,其特征在于,
所述扇区编号储存单元在由所述存储器确保单元确保的存储器区域中存储的所述地址变换表格的记录数是构成该文件的全部扇区的数量以上的情况下,在该地址变换表格中储存构成该文件的全部扇区的扇区编号。
3.根据权利要求1或者2所述的存储器控制器,其特征在于,
所述存储器确保单元在所述数据存储部的规定的存储器区域中存在和与构成该文件的全部扇区的数量对应的所述地址变换表格用的存储器区域相当的空闲区域的情况下,将该空闲区域确保为用于存储该地址变换表格的存储器区域。
4.根据权利要求1或者2所述的存储器控制器,其特征在于,
所述存储器确保单元还参考今后预定打开的文件的数量来确保用于存储所述地址变换表格的存储器区域。
5.根据权利要求1或者2所述的存储器控制器,其特征在于,
对所述文件预先赋予了规定的优先级,
所述存储器确保单元还参考被要求打开的文件的所述优先级来确保用于存储所述地址变换表格的存储器区域。
6.一种存储器访问方法,其特征在于,具有:
存储器控制步骤,访问能读写的非易失性存储器,按照为了用于该非易失性存储器而构建的文件***中的扇区单位,进行数据的读取以及写入;
存储器确保步骤,在从外部有文件的打开要求时,从数据存储部的规定的存储器区域中,确保用于存储与该文件对应的地址变换表格的存储器区域;
存储器释放步骤,在有所述文件的关闭要求时或者在从确保所述存储器区域起经过了规定时间之后释放由该存储器确保步骤确保的所述存储器区域;以及
扇区编号储存步骤,在确保了所述存储器区域的所述地址变换表格的各记录中,依次储存构成该文件的至少一部分扇区的扇区编号,
在所述存储器控制步骤中,
在所述扇区编号储存步骤之后,通过搜索所述非易失性存储器而取得与所述地址变换表格的各记录的扇区编号对应的物理地址,将所取得的各物理地址储存到对应的所述记录,
在访问构成所述文件的扇区时,以该扇区的扇区编号为关键字,参照与该文件对应的所述地址变换表格,取得与该扇区对应的物理地址。
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
PCT/JP2011/051960 WO2012104975A1 (ja) | 2011-01-31 | 2011-01-31 | メモリコントローラ |
Publications (2)
Publication Number | Publication Date |
---|---|
CN103354925A CN103354925A (zh) | 2013-10-16 |
CN103354925B true CN103354925B (zh) | 2016-03-02 |
Family
ID=46602220
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201180066426.1A Expired - Fee Related CN103354925B (zh) | 2011-01-31 | 2011-01-31 | 存储器控制器和存储器访问方法 |
Country Status (5)
Country | Link |
---|---|
US (1) | US9170929B2 (zh) |
EP (1) | EP2672390B1 (zh) |
JP (1) | JP5452736B2 (zh) |
CN (1) | CN103354925B (zh) |
WO (1) | WO2012104975A1 (zh) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP3018581B1 (en) * | 2014-11-06 | 2017-03-08 | Fujitsu Limited | Data staging management system |
CN107710671B (zh) * | 2015-04-30 | 2020-06-12 | 德山真旭 | 终端装置及计算机可读存储介质 |
CN108664577B (zh) * | 2018-05-03 | 2021-03-12 | 中北大学 | 一种基于flash空闲区的文件管理方法及*** |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101288054A (zh) * | 2004-07-30 | 2008-10-15 | M-***快闪盘开拓者公司 | 快闪文件***中的虚拟至物理地址翻译 |
CN101382918A (zh) * | 2008-07-26 | 2009-03-11 | 深圳市硅格半导体有限公司 | 一种基于数据交换区的NAND Flash闪存优化管理方法 |
CN101779195A (zh) * | 2007-06-08 | 2010-07-14 | 桑迪士克公司 | 用于存储器装置的存储地址重新映射的方法和*** |
Family Cites Families (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5761508A (en) * | 1992-01-31 | 1998-06-02 | Asahi Kasei Kogyo Kabushiki Kaisha | Information processing system and method applied to the development of computer programs |
JP2001142774A (ja) * | 1999-11-11 | 2001-05-25 | Toshiba Corp | メモリカード及び同カードに適用されるアドレス変換方法 |
US6377500B1 (en) | 1999-11-11 | 2002-04-23 | Kabushiki Kaisha Toshiba | Memory system with a non-volatile memory, having address translating function |
US7085879B2 (en) | 2002-02-27 | 2006-08-01 | Microsoft Corporation | Dynamic data structures for tracking data stored in a flash memory device |
WO2005124530A2 (en) | 2004-06-21 | 2005-12-29 | Kabushiki Kaisha Toshiba | Method for controlling memory card and method for controlling nonvolatile semiconductor memory |
JP2006040264A (ja) * | 2004-06-21 | 2006-02-09 | Toshiba Corp | メモリカードの制御方法および不揮発性半導体メモリの制御方法 |
EP1630726B1 (en) * | 2004-08-18 | 2009-09-23 | Sony Corporation | Memory card, memory-card control method, memory-card access control method and computer programs |
US7711923B2 (en) | 2006-06-23 | 2010-05-04 | Microsoft Corporation | Persistent flash memory mapping table |
JP2009003783A (ja) | 2007-06-22 | 2009-01-08 | Toshiba Corp | 不揮発性メモリの制御装置及び制御方法及び記憶装置 |
JP5133649B2 (ja) * | 2007-10-16 | 2013-01-30 | 京セラドキュメントソリューションズ株式会社 | 電子機器およびメモリ管理プログラム |
JP5198245B2 (ja) | 2008-12-27 | 2013-05-15 | 株式会社東芝 | メモリシステム |
-
2011
- 2011-01-31 US US13/982,409 patent/US9170929B2/en not_active Expired - Fee Related
- 2011-01-31 JP JP2012555599A patent/JP5452736B2/ja active Active
- 2011-01-31 CN CN201180066426.1A patent/CN103354925B/zh not_active Expired - Fee Related
- 2011-01-31 EP EP11857752.7A patent/EP2672390B1/en not_active Not-in-force
- 2011-01-31 WO PCT/JP2011/051960 patent/WO2012104975A1/ja active Application Filing
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101288054A (zh) * | 2004-07-30 | 2008-10-15 | M-***快闪盘开拓者公司 | 快闪文件***中的虚拟至物理地址翻译 |
CN101779195A (zh) * | 2007-06-08 | 2010-07-14 | 桑迪士克公司 | 用于存储器装置的存储地址重新映射的方法和*** |
CN101382918A (zh) * | 2008-07-26 | 2009-03-11 | 深圳市硅格半导体有限公司 | 一种基于数据交换区的NAND Flash闪存优化管理方法 |
Also Published As
Publication number | Publication date |
---|---|
EP2672390A4 (en) | 2014-08-06 |
EP2672390B1 (en) | 2015-11-25 |
EP2672390A1 (en) | 2013-12-11 |
JPWO2012104975A1 (ja) | 2014-07-03 |
JP5452736B2 (ja) | 2014-03-26 |
US9170929B2 (en) | 2015-10-27 |
US20130311744A1 (en) | 2013-11-21 |
CN103354925A (zh) | 2013-10-16 |
WO2012104975A1 (ja) | 2012-08-09 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10838859B2 (en) | Recency based victim block selection for garbage collection in a solid state device (SSD) | |
US6862604B1 (en) | Removable data storage device having file usage system and method | |
KR101521958B1 (ko) | 혼합 밀도 메모리 저장 장치 | |
US8843691B2 (en) | Prioritized erasure of data blocks in a flash storage device | |
US20070214309A1 (en) | Nonvolatile storage device and data writing method thereof | |
TWI306263B (zh) | ||
CN102063943B (zh) | Nand闪存参数自动检测*** | |
CN103577342B (zh) | 管理闪存中所储存的数据的方法及相关记忆装置与控制器 | |
US8996791B2 (en) | Flash memory device, memory control device, memory control method, and storage system | |
US8706998B2 (en) | Method for managing flash memories having mixed memory types | |
US6742078B1 (en) | Management, data link structure and calculating method for flash memory | |
US20100318760A1 (en) | Memory controller, nonvolatile storage device, and nonvolatile storage system | |
JP2011530133A (ja) | キャッシュコンテンツの記憶管理 | |
CN112558868B (zh) | 一种配置数据存储的方法和装置及设备 | |
CN115951839A (zh) | 分区命名空间固态硬盘的数据写入方法、装置及电子设备 | |
CN108664482B (zh) | Flash存储器及存储文件管理方法 | |
US20110055430A1 (en) | Method for establishing a communication channel between a host device and a memory device, associated memory device and controller thereof, and associated host device and host device application | |
CN103354925B (zh) | 存储器控制器和存储器访问方法 | |
US20090210612A1 (en) | Memory controller, nonvolatile memory device, and nonvolatile memory system | |
CN108376121B (zh) | 一种Flash存储器的数据存储方法 | |
EP2073125A1 (en) | Apparatus and method for managing user memory of RFID tag | |
KR20110070656A (ko) | 플래시 메모리의 데이터 처리 방법 및 장치 | |
US8209473B2 (en) | Flash storage device and operating method thereof | |
CN111930675B (zh) | 一种数据传输管理方法、***及装置 | |
CN113900591A (zh) | 延长存储器寿命的方法、装置、电子设备及存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20160302 Termination date: 20200131 |
|
CF01 | Termination of patent right due to non-payment of annual fee |