CN101382873B - 储存单元管理方法及*** - Google Patents
储存单元管理方法及*** Download PDFInfo
- Publication number
- CN101382873B CN101382873B CN2008101702063A CN200810170206A CN101382873B CN 101382873 B CN101382873 B CN 101382873B CN 2008101702063 A CN2008101702063 A CN 2008101702063A CN 200810170206 A CN200810170206 A CN 200810170206A CN 101382873 B CN101382873 B CN 101382873B
- Authority
- CN
- China
- Prior art keywords
- block
- definition
- page
- candidate
- candidate block
- 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.)
- Active
Links
Images
Classifications
-
- 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/064—Management of blocks
-
- 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/0608—Saving storage space on storage systems
-
- 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/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/72—Details relating to flash memory management
- G06F2212/7201—Logical to physical mapping or translation of blocks or pages
-
- 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/7202—Allocation control and policies
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)
Abstract
储存单元管理方法及***,用以管理包括多个实体区块的储存单元,每一实体区块具有多个区块种类定义中的一区块种类定义。取得至少一逻辑写入命令,逻辑写入命令要求对于相应至少一逻辑区块的至少一逻辑页面进行数据写入操作。判断储存单元中是否存在具有多个区块种类定义中的连续区块定义的候选区块。若具有连续区块定义的候选区块,且若依据该连续区块定义,该逻辑区块的该逻辑页面无法映射至该候选区块,则将连续区块定义转换为区块种类定义中的奉献区块定义。将数据写入具有奉献区块定义的候选区块中的特定页面,记录逻辑区块的逻辑页面与候选区块的特定页面的映射关系。本发明将储存单元的实体区块进行分类管理,以更有效率地利用储存单元。
Description
技术领域
本发明有关于一种储存单元管理方法及***,且特别有关于一种可以将储存单元的实体区块进行分类管理的储存单元管理方法及***。
背景技术
目前来说,非易失性存储器,如快闪存储器已经非常广泛的使用。其特点在于以页面(Page)为单位读写、以区块(Block)为单位删除以及在写之前必须删除。由于上述特点,使得主机或是应用程序所使用的逻辑区块地址(Logic Block Address,LBA)的读写指令非常难以管理,且难以将逻辑地址转换为实体地址,以存取非易失性存储器的实体区块。因此,通常在主机的文件***与非易失性存储器之间会使用一转换层来管理来自主机的读写命令,以存取存储器中的数据。在现有技术中对于非易失性存储器进行储存管理时,数据通常依据页面映射(PageMapping)或区块映射(Block Mapping)等模式进行存取与定位。
在页面映射模式中,储存单元中的数据以逻辑页面为单位进行储存,且具有相应的页面映射表。页面映射表中以逻辑页面的编号为索引,且以实体页面的地址为表项(项目内容)。当采用页面映射的储存***处理读写命令时,则可以直接查找以及更新页面映射表以完成相关数据页面的定位。在区块映射模式中,储存单元中的数据以逻辑区块为单位进行储存,且具有相应的区块映射表。区块映射表中以逻辑区块的编号为索引,且以实体区块的地址为表项。当采用区块映射的储存***处理读写命令时,则可以直接查找以及更新区块映射表以完成相关 数据页面的定位。
近年来,随着集成电路技术的发展,储存单元的页面/区块尺寸已经大幅提高。此外,高密度储存单元,如NAND(与非)快闪存储器中每个区块的各个页面必须依照顺序写入,不能随机写入。另外,由于NAND快闪存储器具有以页面为单位读写、以区块为单位删除以及在写之前必须删除的特点。因此,当采用区块映射的储存***处理写入命令时,必须先分配一个区块,以将要求的页面写入分配的区块中。之后,再将属于相应此要求页面的逻辑区块中其他的页面复制至此分配的区块中,其中此分配的区块中的原有数据必须先被删除。因此,特别是对于可能包括频繁被主机存取的热数据的要求页面而言,当区块尺寸增大后,将导致写入性能大大降低。在页面映射模式中,数据的分布非常复杂与繁乱。当空闲区块用尽时,数据合并以获取新空闲区块的过程将会非常复杂。
因此,一些储存管理***提出可以结合区块映射与页面映射的混合型映射模式。在这些***中,储存单元中可以包括相应区块映射与页面映射的区域,且各区域的使用仅能通过数据合并操作来进行切换。虽然具有混合型映射模式的储存管理***可以提供较大的弹性来储存数据,然而,在实际使用上,储存单元中相应区块映射与页面映射的实体区块中仍然会存在许多未利用的实体页面,进而使得储存单元中数据的分布非常复杂与繁乱。类似地,进行相关数据合并时亦会造成***的效能负担。
发明内容
有鉴于此,本发明提供储存单元管理方法及***。
本发明所述的储存单元管理方法,用以管理包括多个实体 区块的储存单元,其中每一实体区块具有多个区块种类定义中的一个区块种类定义。首先,取得至少一逻辑写入命令,其中逻辑写入命令要求对于相应至少一逻辑区块的至少一逻辑页面进行数据写入操作。判断储存单元中是否存在具有多个区块种类定义中的一连续区块定义的一候选区块。若具有该连续区块定义的该候选区块存在,且若依据该连续区块定义,该逻辑区块的该逻辑页面无法映射至该候选区块,则将连续区块定义转换为区块种类定义中的一奉献区块定义。将一数据写入具有该奉献区块定义的候选区块中的一特定页面,且记录逻辑区块的逻辑页面与候选区块的特定页面的一映射关系,其中具有该连续区块定义的该实体区块中从第一个页面开始的多个页面是依据一区块映射模式储存数据,且具有该连续区块定义的该实体区块中存在至少一个未写入数据的页面,具有该奉献区块定义的该实体区块中的数据皆是对应至一特定逻辑区块,从第一个页面开始的多个页面是依据该区块映射模式储存数据,且存在至少一页面并不依据该区块映射模式储存数据。
本发明所述的储存单元管理***包括一储存单元与一处理模块。储存单元包括多个实体区块,每一实体区块具有多个区块种类定义中的一个区块种类定义。处理模块取得至少一逻辑写入命令,其中逻辑写入命令要求对于相应至少一逻辑区块的至少一逻辑页面进行数据写入操作。处理模块判断储存单元中是否存在具有多个区块种类定义中的一连续区块定义的一候选区块。若具有该连续区块定义的该候选区块存在,且若依据连续区块定义,逻辑区块的逻辑页面无法映射至候选区块,则处理模块将连续区块定义转换为区块种类定义中的一奉献区块定义,且将一数据写入具有该奉献区块定义的候选区块中的一特定页面,并记录逻辑区块的逻辑页面与候选区块的特定页面的 一映射关系,其中具有该连续区块定义的该实体区块中从第一个页面开始的多个页面是依据一区块映射模式储存数据,且具有该连续区块定义的该实体区块中存在至少一个未写入数据的页面,具有该奉献区块定义的该实体区块中的数据皆是对应至一特定逻辑区块,从第一个页面开始的多个页面是依据该区块映射模式储存数据,且存在至少一页面并不依据该区块映射模式储存数据。
本发明上述方法可以通过程序码方式收录于实体介质中。当程序码被机器载入且执行时,机器变成用以实行本发明的装置。
本发明所述的储存单元管理方法及***,可以将储存单元的实体区块进行分类管理,以更有效率地利用储存单元。
附图说明
图1为一示意图系显示依据本发明实施例的储存单元管理***。
图2为一示意图系显示依据本发明实施例的储存单元中的实体区块。
图3为一示意图系显示依据本发明实施例的映射目录项目的格式。
图4为一示意图系显示依据本发明实施例的区块映射表项目的格式。
图5为一示意图系显示依据本发明实施例的页面映射区块表项目的格式。
图6为一示意图系显示依据本发明实施例的页面映射表项目的格式。
图7A至图7D为流程图系显示依据本发明实施例的储存单元管理方法。
图8为一示意图系显示依据本发明实施例的写入命令中包含的逻辑区块地址(Logic Block Address,LBA)的格式。
具体实施方式
为使本发明的上述目的、特征和优点能更明显易懂,下文特举实施例,并配合所附图示,详细说明如下。
图1显示依据本发明实施例的储存单元管理***。
依据本发明实施例的储存单元管理***100包括一储存单元110、一存储器120与一处理模块130。储存单元110可以是一非易失性存储器,如NAND快闪存储器。储存单元110中的数据可以以区块映射模式与页面映射模式分别以区块与页面为单位进行储存。值得注意的是,在本发明中储存单元110的实体区块 可以具有不同的区块种类定义,以分类进行管理。图2显示储存单元110的实体区块。在此实施例中,区块种类定义可以包括一数据区块定义、一连续区块定义、一奉献区块定义与一共享区块定义。储存单元110中的每一实体区块可以分别具有上述区块种类定义中的一个,且可以进行转换。其中,具有数据区块定义的实体区块111是依据区块映射模式储存数据,且实体区块中的所有页面都已经被写入数据。具有连续区块定义的实体区块112中,从第一个页面开始的多个页面是依据区块映射模式储存数据,且实体区块112中存在至少一个未写入数据的页面。具有奉献区块定义的实体区块113中的数据皆是对应至同一个逻辑区块,从第一个页面开始的多个页面是依据区块映射模式储存数据,且存在至少一页面并不依据区块映射模式储存数据。具有共享区块定义的实体区块114中的数据是依据页面映射模式储存数据,且对应至至少二特定逻辑区块。值得注意的是,储存单元110亦可包括并未指定区块种类定义的空闲实体区块(未显示)。区块种类定义间的转换将于后进行说明。
另外,储存单元110亦包括一映射目录、多个区块映射表、多个页面映射区块表以及多个页面映射表。存储器120可以是一随机存取存储器(Random Access Memory,RAM),在该储存单元管理***100正常运作时,用于存储从储存单元110加载的映射目录、区块映射表、页面映射区块表以及页面映射表。而映射目录、区块映射表、页面映射区块表以及页面映射表将于下说明。
图3显示依据本发明实施例的映射目录的其中一项目的格式。映射目录是映射用户数据的根目录。映射目录包含多个如图3所示的项目,且每一项目可以指向包含一部分区块映射表的一页面,该页面包含的区块映射表与一既定大小,如256MB的 用户数据相对应。如图3所示,映射目录项目300包括一“MappingDirectoryNumber”栏位340、一“bInCache”栏位310、一“CachedBmtNumber”栏位320与一“BmtPageLocation”栏位330。“MappingDirectoryNumber”栏位340记录一映射目录编号,用以作为此映射目录项目300的索引。“bInCache”栏位310记录相应的区块映射表页面是否已经由储存单元110载入存储器120中。举例来说,若区块映射表页面已经载入存储器120中,则“bInCache”栏位310中记录”1”;若区块映射表页面尚未载入至存储器120中,则“bInCache”栏位310中记录“0”。对于已经载入至存储器120中的区块映射表页面,“CachedBmtNumber”栏位320记录相应此区块映射表页面在存储器120中的地址。对于尚未载入至存储器120中的区块映射表页面,则“CachedBmtNumber”栏位320为“Invalid”,且区块映射表页面在储存单元110上的实体储存地址被记录在“BmtPageLocation”栏位330中。
图4显示依据本发明实施例的区块映射表的其中一项目的格式。区块映射表包含多个如图4所示的项目,其中每一项目记录相应此逻辑区块的数据的存储位置信息。如图4所示,区块映射表项目400包括一“BlockOffset”栏位430、一“bPageMapped”栏位410与一“BlockInfo”栏位420。“BlockOffset”栏位430记录一区块偏移(offset),用以作为区块映射表项目400的索引。如前所述,储存单元110中的数据可以是以区块映射模式或页面映射模式进行储存。因此,“bPageMapped”栏位410记录拥有此区块映射表的一逻辑区块所采用的映射模式。举例来说。若此逻辑区块是采用区块映射模式,则“bPageMapped”栏位410中记录“0”;若此逻辑区块是采用页面映射模式,则“bPageMapped”栏位410中记录“1”。“BlockInfo”栏位420则记录详细的映射信息。 其中,对于采用区块映射模式的逻辑区块,“BlockInfo”栏位420中记录相应数据区块的实***置,如实体区块编号。对于采用页面映射模式的逻辑区块,“BlockInfo”栏位420中记录一页面映射区块编号,用以表示此逻辑区块为第几个页面映射区块。
图5显示依据本发明实施例的页面映射区块表的其中一项目的格式。页面映射区块表包含多个如图5所示的项目,其中每一项目记录相应此逻辑区块的页面映射表在存储器120中的起始地址。如图5所示,页面映射区块表项目500包括一“PageMappedBlockNum”栏位510与一“PageMappingTableInfo”栏位520。其中,“PageMappedBlockNum”栏位510用以记录页面映射区块编号,当逻辑区块使用页面映射模式时,“PageMappedBlockNum”栏位510中的页面映射区块编号对应至区块映射表项目400的“BlockInfo”栏位420所记录的数据。且“PageMappingTableInfo”栏位520用以记录相应此逻辑区块的页面映射表在存储器120中的起始地址。
每一采用页面映射模式的逻辑区块与一页面映射区块表项目500相对应,并拥有由“PageMappingTableInfo”栏位520定址的一页面映射表。图6显示依据本发明实施例的页面映射表的一项目的格式。页面映射表包含多个如图6所示的项目。如图6所示,页面映射表项目600包括一“PageOffset”栏位610与一“PageInfo”栏位620。其中,“PageOffset”栏位610用以记录页面偏移(offset),用以作为页面映射表项目600的索引;“PageInfo”栏位620用以记录相应此逻辑区块中逻辑页面的实体储存位置,如装置编号、实体区块编号与实体页面偏移等。注意的是,在一些实施例中,页面映射表中的项目数目等于一个逻辑区块中所包含的页面数量。
请继续参考图1。处理模块130可以由上层,如主机的应用 程序等接收写入命令,将写入命令分解为以页面为单位的至少一逻辑写入命令,该逻辑写入命令包括一逻辑区块地址(LogicBlock Address,LBA)。处理模块130依据映射目录、区块映射表、页面映射区块表与页面映射表将逻辑写入命令转换为一实体写入命令,即将该逻辑区块地址(LBA)转换为一实体地址,以存取储存单元110的实体页面,且执行写入命令与转换实体区块的区块种类定义,以将数据写入储存单元110中特定实体区块的特定页面中。另外,下文所述的判断步骤还可由处理模块130完成,但并不以此为限。
图7A至图7D显示依据本发明实施例的储存单元管理方法。首先,如步骤S702(图7A),由上层,如应用程序等接收一写入命令,且如步骤S704,将接收的写入命令分解为以逻辑页面为单位的至少一逻辑写入命令。其中,该逻辑写入命令可以包括一逻辑区块地址(Logic Block Address,LBA),其中该逻辑区块地址包括一映射目录编号(Mapping Directory Number)、一区块偏移(Block Offset)、一页面偏移(Page Offset)、一装置编号(Device Number)与/或一磁区偏移(Sector Offset)。图8显示依据本发明实施例的逻辑区块地址(LBA)的格式。如图8所示,逻辑区块地址(LBA)800包括一“MDN”栏位、一“BO”栏位、一“PO”栏位、“DN”栏位与一“SO”栏位。其中,“MDN”栏位记录映射目录编号(Mapping Directory Number),“BO”栏位记录区块偏移(Block Offset),“PO”栏位记录页面偏移(Page Offset),“DN”栏位记录装置编号(Device Number),且“SO”栏位记录磁区偏移(Sector Offset)。值得注意的是,通过逻辑写入命令可以得知数据欲写入至少一逻辑区块的至少一逻辑页面。如步骤S706,依据逻辑写入命令中的“MDN”栏位由映射目录中的多个区块映射表中定位一特定区块映射表。如步骤S708,判断此特定区块 映射表是否已经载入于存储器中。提醒的是,判断特定区块映射表是否已经载入于存储器中可以依据与逻辑区块地址(LBA)800中的映射目录编号对应的如图3所示的项目300中的“bInCache”栏位310的数据来判断。若特定区块映射表不在存储器中(步骤S708的否),如步骤S710,由已经载入存储器中的区块映射表中选择一候选区块映射表,且如步骤S712,将特定区块映射表载入存储器中以取代候选区块映射表。值得注意的是,在一些实施例中,当存储器空间不足时,才需要进行选择候选区块映射表的操作,且候选区块映射表可以依据一最久未使用(LRU)演算法来进行选择。若存储器仍具有空间,则可以直接将特定区块映射表载入存储器中。将特定区块映射表载入之后可以执行步骤S714。
若特定区块映射表已经在存储器中(步骤S708的是),执行步骤S714。如步骤S714,依据逻辑写入命令中的逻辑区块地址(LBA)800中的区块偏移(记录在“BO”栏位)由特定区块映射表中定位一第一特定项目(如图4所示的一区块映射表项目400),其中第一特定项目包括一映射模式设定(“bPageMapped”栏位410的数据)与一区块信息(“BlockInfo”栏位420的数据)。如步骤S716,依据映射模式设定判断相应区块的映射模式是否为页面映射模式。若映射模式为区块映射模式时(步骤S716的否),执行步骤S718。如步骤S718,判断页面映射区块表中是否有空闲的项目(如图5所示的页面映射区块表项目500)。若页面映射区块表中有空闲的项目(步骤S718的是),进行步骤S722的操作。若页面映射区块表中没有空闲的项目(步骤S718的否),如步骤S720,进行数据页面的数据合并操作,以由页面映射区块表中取得至少一空闲的项目。如步骤S722,将与逻辑写入命令相对应的空闲项目加入页面映射区块表中,并进行步骤S724的操 作。若映射模式为页面映射模式时(步骤S716的是),执行步骤S724。如步骤S724,依据第一特定项目中的区块信息(“BlockInfo”栏位420中包括的页面映射区块编号)由一页面映射区块表中定位一第二特定项目(如页面映射区块表项目500),且如步骤S726,依据该第二特定項目由多个页面映射表中定位一特定页面映射表,其中该特定页面映射表对应于一采用该页面映射模式的逻辑区块。
定位该特定页面映射表以后,首先判断该储存单元110中是否存在如图2中所示的区块种类定义中之一的候选区块,即,判断是否存在第一区块定义的候选区块,其中依据该第一区块定义,欲写入数据的逻辑区块的逻辑页面无法映射至该候选区块。其中无法映射的情形,举例而言为当该第一区块定义为如图2中所示的连续区块定义112,而欲写入的逻辑页面包含相应此逻辑区块的第一个页面时的情形。由于依据连续区块定义112,该候选区块从第一个页面开始的多个页面是依据区块映射模式储存数据,则此情形下要写入数据的逻辑页面无法映射至该候选区块。再举例而言,无法映射的情况为当该第一区块定义为如图2中所示的连续区块定义112,而欲写入的逻辑页面的逻辑区块地址LBA与该候选区块中已写入数据的页面中的最后一个页面的地址不连续的情形。由于依据连续区块定义112,该候选区块依据区块映射模式储存数据(即是说,其中存储数据的逻辑页面的逻辑地址LBA应连续),因此也无法将数据写到该候选区块剩余的空白页面中。
当发生上述欲写入数据的逻辑区块的逻辑页面无法映射至该候选区块的情况时,本发明是将该第一区块定义转换为所述区块种类定义中的一第二区块定义。举例而言,是将如图2中所示的连续区块定义112转换为奉献区块定义113,或将奉献区块 定义113转换为共享区块定义114,并将要写入的数据写入该候选区块中的一特定页面。更详细的说明可参考下面图7B至图7D说明内容。
如步骤S728(图7A),依据逻辑写入命令判断其欲写入的逻辑页面是否包含该逻辑区块的第一个页面。若是(步骤S728的是),如步骤S730(图7B),判断储存单元中是否存在具有连续区块定义的一候选区块。若储存单元中不存在具有连续区块定义的候选区块(步骤S730的否),如步骤S732,判断储存单元中是否存在具有奉献区块定义的一候选区块。若储存单元中存在具有奉献区块定义的候选区块(步骤S732的是),则如步骤S733,将此候选区块由奉献区块定义转换为共享区块定义,之后执行步骤S738(图7B)。如步骤S738,重新配置一空闲区块为具有连续区块定义的候选区块,并如步骤S740,依据逻辑写入命令产生相应储存单元的实体写入命令,以将数据写入至具有连续区块定义的候选区块中的特定页面中。之后,进行步骤S774(图7D)的操作。若储存单元中不存在具有奉献区块定义的候选区块(图7B的步骤S732的否),则直接执行步骤S738与S740(图7B)。
若储存单元中存在具有连续区块定义的候选区块(图7B的步骤S730的是),如步骤S742,判断此候选区块是否已经或是接近满了。若候选区块已经或是接近满了(步骤S742的是),如步骤S744,将此候选区块由连续区块定义转换为数据区块定义,并进行步骤S738与S740(图7B)的操作。若候选区块并未满了或是并未接近满了(图7B的步骤S742的否),如步骤S746,将此候选区块由连续区块定义转换为奉献区块定义,并如步骤S748(图7B),依据逻辑写入命令产生相应储存单元的一实体写入命令,以将数据写入至具有奉献区块定义的候选区块中的特定 页面中。之后,如步骤S750,判断具有奉献区块定义的候选区块是否已经满了。若具有奉献区块定义的候选区块已经满了(步骤S750的是),进行步骤S734与S736的操作。如步骤S734,将此候选区块由奉献区块定义转换为共享区块定义,并如步骤S736,依据逻辑写入命令产生相应储存单元的一实体写入命令,以将数据写入至具有共享区块定义的其它候选区块中的特定页面中,也就是说,剩下的欲写入的逻辑页面,会写入至其它具有共享区块定义的候选区块中,与属于其它逻辑区块的页面共用该具有共享区块定义的候选区块的实体存储空间。之后,进行步骤S774(图7D)的操作。若具有奉献区块定义的候选区块并未满了(图7B的步骤S750的否),直接进行步骤S774(图7D)的操作。值得注意的是,由于逻辑写入命令欲写入的逻辑页面的数目可能超过具有奉献区块定义的候选区块可以提供的页面数目,因此必须进行步骤S750的判断。
若逻辑写入命令欲写入的逻辑页面并未包含相应逻辑区块的第一个页面(图7A中步骤S728的否),如步骤S752(图7C),判断储存单元中是否存在具有连续区块定义的一候选区块。若储存单元中不存在具有连续区块定义的候选区块(步骤S752的否),如步骤S754,判断储存单元中是否存在具有奉献区块定义的一候选区块。若储存单元中并未存在具有奉献区块定义的候选区块(步骤S754的否),进行步骤S762(图7C)的操作。若储存单元中存在具有奉献区块定义的候选区块(图7C的步骤S754的是),如步骤S756(图7C),依据逻辑写入命令产生相应储存单元的一实体写入命令,以将数据写入至具有奉献区块定义的候选区块中的特定页面中。之后,如步骤S758,判断具有奉献区块定义的候选区块是否已经满了。若具有奉献区块定义的候选区块已经满了(步骤S758的是),如步骤S760,将此候选区块 由奉献区块定义转换为共享区块定义,并如步骤S762,依据逻辑写入命令产生相应储存单元的一实体写入命令,以将数据写入至其它具有共享区块定义的候选区块中的特定页面中,也就是说,剩下的欲写入的逻辑页面,会写入至其它具有共享区块定义的候选区块中,与其它逻辑区块的页面共用该具有共享区块定义的候选区块的实体存储空间。之后,进行步骤S774(图7D)的操作。若具有奉献区块定义的候选区块并未满了(图7C的步骤S758的否),直接进行步骤S774的操作。
若储存单元中存在具有连续区块定义的候选区块时(图7C的步骤S752的是),如步骤S764,判断逻辑写入命令欲写入的逻辑页面与此候选区块中具有数据的最后一页面是否相连续。若相连续(步骤S764的是),如步骤S766,依据逻辑写入命令产生相应储存单元的一实体写入命令,以将数据写入至具有连续区块定义的候选区块中的特定页面中。若不连续(步骤S764的否),如步骤S768,判断该逻辑写入命令欲写入的逻辑页面与具有连续区块定义的候选区块中具有数据的最后一页面的地址是否发生冲突(即判断欲写入的逻辑页面的逻辑区块地址LBA是否小于候选区块中具有数据的页面中的最后一个页面的地址)。若并未发生冲突(步骤S768的否),进行步骤S762(图7C)的操作,由于现在的高密度储存单元,如NAND(与非)快闪存储器中每个区块的各个页面必须依照顺序写入,不能随机写入,因此当LBA未发生突冲时(即当欲写入的逻辑页面的逻辑区块地址LBA大于候选区块中具有数据的页面中的最后一个页面的地址时),应将数据写入至具有共享区块定义的其它候选区块中的特定页面中,即执行步骤S762。若发生冲突(图7C的步骤S768的是),如步骤S770,将此候选区块由连续区块定义转换为奉献区块定义,并如步骤S772,依据逻辑写入命令产生相应储存单元的一 实体写入命令,以将数据写入至具有奉献区块定义的候选区块中的特定页面中。之后,进行步骤S758(图7C)的操作。
之后,如步骤S774(图7D),执行产生的实体写入命令,以将数据写入储存单元中的候选区块中的特定页面。值得注意的是,如前所述,该逻辑写入命令中的LBA更可以包括装置编号(DN)与/或磁区偏移(SO)。当逻辑写入命令包括装置编号与/或磁区偏移时,则更可以依据装置编号与/或磁区偏移将数据写入储存单元中。如步骤S776,依据相应逻辑写入命令欲写入的逻辑区块的逻辑页面与实际储存单元中候选区块的特定页面的映射关系,更新页面映射表与/或特定区块映射表。如步骤S778,判断步骤S776的映射表更新是否牵涉区块等级的映射表更新。若否(步骤S778的否),结束整个写入流程。若是(步骤S778的是),如步骤S780,将更新后的特定区块映射表写入至储存单元中。
有鉴于此,通过本发明的储存单元管理方法及***可以将储存单元的实体区块进行分类管理,以更有效率地利用储存单元。
本发明的方法、特定型态或其部分,可以以在主机文件***与非易失性存储器之间的软件转换层的型态包含于实体介质,如软盘、光盘片、硬盘或是任何其他机器可读取(如计算机可读取)储存介质,其中,当程序码被机器,如计算机载入且执行时,此机器变成用以参与本发明的装置。本发明的方法与装置也可以以程序码型态通过一些传送介质,如电线或电缆、光纤或是任何传输型态进行传送,其中,当程序码被机器,如计算机接收、载入且执行时,此机器变成用以参与本发明的装置。当在一般用途处理器实作时,程序码结合处理器提供一操作类似于专用集成电路的独特装置。
以上所述仅为本发明较佳实施例,然其并非用以限定本发 明的范围,任何熟悉本项技术的人员,在不脱离本发明的精神和范围内,可在此基础上做进一步的改进和变化,因此本发明的保护范围当以本申请的权利要求书所界定的范围为准。
附图中符号的简单说明如下:
100:储存单元管理***
110:储存单元
111:数据区块定义的区块
112:连续区块定义的区块
113:奉献区块定义的区块
114:共享区块定义的区块
120:存储器
130:处理模块
300:映射目录项目
310:“bInCache”栏位
320:“CachedBmtNumber”栏位
330:“BmtPageLocation”栏位
340:“MappingDirectoryNumber”栏位
400:区块映射表项目
410:“bPageMapped”栏位
420:“BlockInfo”栏位
430:“BlockOffset”栏位
500:页面映射区块表项目
510:“PageMappedBlockNum”栏位
520:“PageMappingTableInfo”栏位
600:页面映射表项目
610:“PageOffset”栏位
620:“PageInfo”栏位
S702、S704、...、S780:步骤
800:逻辑区块地址
MDN:映射目录编号栏位
BO:区块偏移栏位
PO:页面偏移栏位
DN:装置编号栏位
SO:磁区偏移栏位。
Claims (26)
1.一种储存单元管理方法,其特征在于,包括下列步骤:
提供一储存单元,其中该储存单元包括多个实体区块,每一所述实体区块具有多个区块种类定义中的一个区块种类定义;
取得至少一逻辑写入命令,其中该逻辑写入命令要求对于相应至少一逻辑区块的至少一逻辑页面进行数据写入操作;
判断该储存单元中是否存在具有所述多个区块种类定义中的一连续区块定义的一候选区块;
若具有该连续区块定义的该候选区块存在,且若依据该连续区块定义,该逻辑区块的该逻辑页面无法映射至该候选区块,则将该连续区块定义转换为所述区块种类定义中的一奉献区块定义;以及
将一数据写入具有该奉献区块定义的该候选区块中的一特定页面,且记录该逻辑区块的该逻辑页面与该候选区块的该特定页面的一映射关系,
其中具有该连续区块定义的该实体区块中从第一个页面开始的多个页面是依据一区块映射模式储存数据,且具有该连续区块定义的该实体区块中存在至少一个未写入数据的页面,具有该奉献区块定义的该实体区块中的数据皆是对应至一特定逻辑区块,从第一个页面开始的多个页面是依据该区块映射模式储存数据,且存在至少一页面并不依据该区块映射模式储存数据。
2.根据权利要求1所述的储存单元管理方法,其特征在于,该逻辑写入命令至少包括一映射目录编号、一区块偏移与一页面偏移,且在取得至少一逻辑写入命令之后、判断该储存单元中是否存在具有所述多个区块种类定义中的一连续区块定义的一候选区块之前,该储存单元管理方法还包括下列步骤:
依据该映射目录编号由多个区块映射表中定位至一特定区块映射表;
依据该区块偏移由该特定区块映射表中定位一第一特定项目,其中该第一特定项目包括一映射模式设定与一区块信息;以及
当该映射模式设定为一页面映射模式时,依据该区块信息由一页面映射区块表中定位一第二特定项目,且依据该第二特定项目由多个页面映射表中定位一特定页面映射表,其中该特定页面映射表对应于一采用该页面映射模式的逻辑区块;
在将一数据写入具有该奉献区块定义的该候选区块中的一特定页面之后,还包括下列步骤:依据该映射关系更新该特定区块映射表或该特定页面映射表。
3.根据权利要求2所述的储存单元管理方法,其特征在于,在依据该映射目录编号由多个区块映射表中定位至一特定区块映射表之后、依据该区块偏移由该特定区块映射表中定位一第一特定项目之前,还包括下列步骤:
依据该映射目录编号判断该特定区块映射表是否已经载入于一存储器中;以及
若该特定区块映射表并未载入于该存储器中,由已经载入该存储器中的所述区块映射表中选择一候选区块映射表;以及
将该特定区块映射表载入该存储器中以取代该候选区块映射表。
4.根据权利要求2所述的储存单元管理方法,其特征在于,当该映射模式设定为一区块映射模式时,新增一空闲项目至该页面映射区块表。
5.根据权利要求1所述的储存单元管理方法,其特征在于,将该数据写入该候选区块中的该特定页面包括下列步骤:
依据该映射关系将该逻辑写入命令转换为相应该储存单元的至少一实体写入命令;以及
执行该实体写入命令,以将该数据写入至该储存单元中该候选区块中的该特定页面。
6.根据权利要求1所述的储存单元管理方法,其特征在于,判断该储存单元中是否存在具有所述多个区块种类定义中的一连续区块定义的一候选区块包括下列步骤:
判断该至少一逻辑页面是否包含该逻辑区块的第一个页面;
若该至少一逻辑页面包含该逻辑区块的第一个页面,判断该储存单元中是否存在具有该连续区块定义的该候选区块;
若该储存单元中存在具有该连续区块定义的该候选区块,将该候选区块由该连续区块定义转换为该奉献区块定义,以将该数据储存至具有该奉献区块定义的该候选区块中的该特定页面中;以及
若该储存单元中不存在具有该连续区块定义的该候选区块,配置一空闲区块为具有该连续区块定义的该候选区块,以将该数据储存至具有该连续区块定义的该候选区块中的该特定页面中。
7.根据权利要求6所述的储存单元管理方法,其特征在于,当该储存单元中不存在具有该连续区块定义的该候选区块时,在配置该空闲区块为具有该连续区块定义的该候选区块的步骤之前,该储存单元管理方法还包括下列步骤:
判断该储存单元中是否存在具有该奉献区块定义的该候选区块;以及
若该储存单元中存在具有该奉献区块定义的该候选区块,将该候选区块由该奉献区块定义转换为一共享区块定义,
其中,具有该共享区块定义的该实体区块中的数据是依据一页面映射模式储存数据,且对应至至少二特定逻辑区块。
8.根据权利要求6所述的储存单元管理方法,其特征在于,当该储存单元中存在具有该连续区块定义的该候选区块,且将该候选区块由该连续区块定义转换为该奉献区块定义之后,该储存单元管理方法还包括下列步骤:
判断具有该奉献区块定义的该候选区块是否已经满了;以及
若具有该奉献区块定义的该候选区块已经满了,将该候选区块由该奉献区块定义转换为一共享区块定义,以将该数据储存至具有该共享区块定义的其它候选区块中的该特定页面中,
其中,具有该共享区块定义的该实体区块中的数据是依据一页面映射模式储存数据,且对应至至少二特定逻辑区块。
9.根据权利要求1所述的储存单元管理方法,其特征在于,判断该储存单元中是否存在具有所述多个区块种类定义中的一连续区块定义的一候选区块更包括下列步骤:
判断该至少一逻辑页面是否包含该逻辑区块的第一个页面;
若该至少一逻辑页面不包含该逻辑区块的第一个页面,判断该储存单元中是否存在具有该连续区块定义的该候选区块;
若该储存单元中不存在具有该连续区块定义的该候选区块,判断该储存单元中是否存在具有该奉献区块定义的该候选区块;
若该储存单元中存在具有该奉献区块定义的该候选区块,直接将该数据储存至具有该奉献区块定义的该候选区块中的该特定页面中;以及
若该储存单元中不存在具有该奉献区块定义的该候选区块,将该数据储存至该储存单元中具有一共享区块定义的其它候选区块中的该特定页面中,
其中,具有该共享区块定义的该实体区块中的数据是依据一页面映射模式储存数据,且对应至至少二特定逻辑区块。
10.根据权利要求9所述的储存单元管理方法,其特征在于,当该储存单元中存在具有该奉献区块定义的该候选区块时,该储存单元管理方法还包括下列步骤:
判断具有该奉献区块定义的该候选区块是否已经满了;以及
若具有该奉献区块定义的该候选区块已经满了,将该候选区块由该奉献区块定义转换为该共享区块定义,以将该数据储存至具有该共享区块定义的其它候选区块中的该特定页面中。
11.根据权利要求9所述的储存单元管理方法,其特征在于,当该至少一逻辑页面不包含该逻辑区块的第一个页面,且该储存单元中存在具有该连续区块定义的该候选区块时,该储存单元管理方法还包括下列步骤:
判断该逻辑页面与具有该连续区块定义的该候选区块中具有数据的最后一页面是否相连续;
若该逻辑页面与具有该连续区块定义的该候选区块中具有数据的最后一页面相连续,直接将该数据储存至具有该连续区块定义的该候选区块中的该特定页面中;
若该逻辑页面与具有该连续区块定义的该候选区块中具有数据的最后一页面并非相连续,判断该逻辑页面与具有该连续区块定义的该候选区块中具有数据的最后一页面的地址是否发生冲突;
若该逻辑页面与具有该连续区块定义的该候选区块中具有数据的最后一页面的地址并未发生冲突,将该数据储存至具有该共享区块定义的其它候选区块中的该特定页面中;以及
若该逻辑页面与具有该连续区块定义的该候选区块中具有数据的最后一页面的地址发生冲突,将该候选区块由该连续区块定义转换为该奉献区块定义,以将该数据储存至具有该奉献区块定义的该候选区块中的该特定页面中。
12.根据权利要求11所述的储存单元管理方法,其特征在于,在将该数据储存至具有该奉献区块定义的该候选区块中的该特定页面中的步骤之后,该储存单元管理方法还包括下列步骤:
判断具有该奉献区块定义的该候选区块是否已经满了;以及
若具有该奉献区块定义的该候选区块已经满了,将该候选区块由该奉献区块定义转换为该共享区块定义,以将该数据储存至具有该共享区块定义的其它候选区块中的该特定页面中。
13.根据权利要求2所述的储存单元管理方法,其特征在于,还包括将更新后的该特定区块映射表写入至该储存单元中。
14.一种储存单元管理***,其特征在于,包括:
一储存单元,包括多个实体区块,每一所述实体区块具有多个区块种类定义中的一个区块种类定义;以及
一处理模块,取得至少一逻辑写入命令,其中该逻辑写入命令要求对于相应至少一逻辑区块的至少一逻辑页面进行数据写入操作,判断该储存单元中是否存在具有所述多个区块种类定义中的一连续区块定义的一候选区块,若具有该连续区块定义的该候选区块存在,且若依据该连续区块定义,该逻辑区块的该逻辑页面无法映射至该候选区块,则将该连续区块定义转换为所述区块种类定义中的一奉献区块定义,将一数据写入具有该奉献区块定义的该候选区块中的一特定页面,且记录该逻辑区块的该逻辑页面与该候选区块的该特定页面的一映射关系,
其中具有该连续区块定义的该实体区块中从第一个页面开始的多个页面是依据一区块映射模式储存数据,且具有该连续区块定义的该实体区块中存在至少一个未写入数据的页面,具有该奉献区块定义的该实体区块中的数据皆是对应至一特定逻辑区块,从第一个页面开始的多个页面是依据该区块映射模式储存数据,且存在至少一页面并不依据该区块映射模式储存数据。
15.根据权利要求14所述的储存单元管理***,其特征在于,该逻辑写入命令至少包括一映射目录编号、一区块偏移与一页面偏移,且该处理模块在取得至少一逻辑写入命令之后、判断该储存单元中是否存在具有所述多个区块种类定义中的一连续区块定义的一候选区块之前,还依据该映射目录编号由多个区块映射表中定位至一特定区块映射表,依据该区块偏移由该特定区块映射表中定位一第一特定项目,其中该第一特定项目包括一映射模式设定与一区块信息,当该映射模式设定为一页面映射模式时,依据该区块信息由一页面映射区块表中定位一第二特定项目,依据该第二特定项目由多个页面映射表中定位一特定页面映射表,其中该特定页面映射表对应于一采用该页面映射模式的逻辑区块,且该处理模块在将一数据写入具有该奉献区块定义的该候选区块中的一特定页面之后,还依据该映射关系更新该特定区块映射表或该特定页面映射表。
16.根据权利要求15所述的储存单元管理***,其特征在于,该处理模块在依据该映射目录编号由多个区块映射表中定位至一特定区块映射表之后、依据该区块偏移由该特定区块映射表中定位一第一特定项目之前,还依据该映射目录编号判断该特定区块映射表是否已经载入于一存储器中,若该特定区块映射表并未载入于该存储器中,由已经载入该存储器中的所述区块映射表中选择一候选区块映射表,且将该特定区块映射表载入该存储器中以取代该候选区块映射表。
17.根据权利要求15所述的储存单元管理***,其特征在于,该处理模块还当该映射模式设定为一区块映射模式时,若页面映射区块表中没有空闲项目,新增一空闲项目至该页面映射区块表。
18.根据权利要求14所述的储存单元管理***,其特征在于,该处理模块将该数据写入该候选区块中的该特定页面包括:依据该映射关系将该逻辑写入命令转换为相应该储存单元的至少一实体写入命令,且执行该实体写入命令,以将该数据写入至该储存单元中该候选区块中的该特定页面。
19.根据权利要求14所述的储存单元管理***,其特征在于,该处理模块判断该储存单元中是否存在具有所述多个区块种类定义中的一连续区块定义的一候选区块包括:判断该至少一逻辑页面是否包含该逻辑区块的第一个页面,若该至少一逻辑页面包含该逻辑区块的第一个页面,判断该储存单元中是否存在具有该连续区块定义的该候选区块,若该储存单元中存在具有该连续区块定义的该候选区块,将该候选区块由该连续区块定义转换为该奉献区块定义,以将该数据储存至具有该奉献区块定义的该候选区块中的该特定页面中,若该储存单元中不存在具有该连续区块定义的该候选区块,配置一空闲区块为具有该连续区块定义的该候选区块,以将该数据储存至具有该连续区块定义的该候选区块中的该特定页面中。
20.根据权利要求19所述的储存单元管理***,其特征在于,当该储存单元中不存在具有该连续区块定义的该候选区块时,在配置该空闲区块为具有该连续区块定义的该候选区块之前,该处理模块更判断该储存单元中是否存在具有该奉献区块定义的该候选区块,若该储存单元中存在具有该奉献区块定义的该候选区块,将该候选区块由该奉献区块定义转换为一共享区块定义,
其中,具有该共享区块定义的该实体区块中的数据是依据一页面映射模式储存数据,且对应至至少二特定逻辑区块。
21.根据权利要求19所述的储存单元管理***,其特征在于,当该储存单元中存在具有该连续区块定义的该候选区块,且将该候选区块由该连续区块定义转换为该奉献区块定义之后,该处理模块还判断具有该奉献区块定义的该候选区块是否已经满了,若具有该奉献区块定义的该候选区块已经满了,将该候选区块由该奉献区块定义转换为一共享区块定义,并将该数据储存至具有该共享区块定义的其它候选区块中的该特定页面中,
其中,具有该共享区块定义的该实体区块中的数据是依据一页面映射模式储存数据,且对应至至少二特定逻辑区块。
22.根据权利要求14所述的储存单元管理***,其特征在于,该处理模块判断该储存单元中是否存在具有所述多个区块种类定义中的一连续区块定义的一候选区块更包括:判断该至少一逻辑页面是否包含该逻辑区块的第一个页面,当该至少一逻辑页面不包含该逻辑区块的第一个页面时,该处理模块还判断该储存单元中是否存在具有该连续区块定义的该候选区块,若该储存单元中不存在具有该连续区块定义的该候选区块,判断该储存单元中是否存在具有该奉献区块定义的该候选区块,若该储存单元中存在具有该奉献区块定义的该候选区块,直接将该数据储存至具有该奉献区块定义的该候选区块中的该特定页面中,若该储存单元中不存在具有该奉献区块定义的该候选区块,将该数据储存至该储存单元中具有一共享区块定义的其它候选区块中的该特定页面中,
其中,具有该共享区块定义的该实体区块中的数据是依据一页面映射模式储存数据,且对应至至少二特定逻辑区块。
23.根据权利要求22所述的储存单元管理***,其特征在于,当该储存单元中存在具有该奉献区块定义的该候选区块时,该处理模块还判断具有该奉献区块定义的该候选区块是否已经满了,若具有该奉献区块定义的该候选区块已经满了,将该候选区块由该奉献区块定义转换为该共享区块定义,以将该数据储存至具有该共享区块定义的其它候选区块中的该特定页面中。
24.根据权利要求22所述的储存单元管理***,其特征在于,当该至少一逻辑页面不包含该逻辑区块的第一个页面,且该储存单元中存在具有该连续区块定义的该候选区块时,该处理模块还判断该逻辑页面与具有该连续区块定义的该候选区块中具有数据的最后一页面是否相连续,若该逻辑页面与具有该连续区块定义的该候选区块中具有数据的最后一页面相连续,直接将该数据储存至具有该连续区块定义的该候选区块中的该特定页面中,若该逻辑页面与具有该连续区块定义的该候选区块中具有数据的最后一页面并非相连续,判断该逻辑页面与具有该连续区块定义的该候选区块中具有数据的最后一页面的地址是否发生冲突,若该逻辑页面与具有该连续区块定义的该候选区块中具有数据的最后一页面的地址并未发生冲突,将该数据储存至具有该共享区块定义的其它候选区块中的该特定页面中,若该逻辑页面与具有该连续区块定义的该候选区块中具有数据的最后一页面的地址发生冲突,将该候选区块由该连续区块定义转换为该奉献区块定义,以将该数据储存至具有该奉献区块定义的该候选区块中的该特定页面中。
25.根据权利要求24所述的储存单元管理***,其特征在于,在将该数据储存至具有该奉献区块定义的该候选区块中的该特定页面中之后,该处理模块还判断具有该奉献区块定义的该候选区块是否已经满了,若具有该奉献区块定义的该候选区块已经满了,将该候选区块由该奉献区块定义转换为该共享区块定义,以将该数据储存至具有该共享区块定义的其它候选区块中的该特定页面中。
26.根据权利要求15所述的储存单元管理***,其特征在于,该处理模块还将更新后的该特定区块映射表写入至该储存单元中。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2008101702063A CN101382873B (zh) | 2008-03-07 | 2008-10-09 | 储存单元管理方法及*** |
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CNA2008100077703A CN101251788A (zh) | 2008-03-07 | 2008-03-07 | 储存单元管理方法及*** |
CN200810007770.3 | 2008-07-03 | ||
CN2008101702063A CN101382873B (zh) | 2008-03-07 | 2008-10-09 | 储存单元管理方法及*** |
Publications (2)
Publication Number | Publication Date |
---|---|
CN101382873A CN101382873A (zh) | 2009-03-11 |
CN101382873B true CN101382873B (zh) | 2011-10-12 |
Family
ID=39955194
Family Applications (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CNA2008100077703A Pending CN101251788A (zh) | 2008-03-07 | 2008-03-07 | 储存单元管理方法及*** |
CN2008101702063A Active CN101382873B (zh) | 2008-03-07 | 2008-10-09 | 储存单元管理方法及*** |
Family Applications Before (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CNA2008100077703A Pending CN101251788A (zh) | 2008-03-07 | 2008-03-07 | 储存单元管理方法及*** |
Country Status (2)
Country | Link |
---|---|
US (1) | US8386746B2 (zh) |
CN (2) | CN101251788A (zh) |
Families Citing this family (90)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8650352B2 (en) * | 2007-09-20 | 2014-02-11 | Densbits Technologies Ltd. | Systems and methods for determining logical values of coupled flash memory cells |
WO2009095902A2 (en) | 2008-01-31 | 2009-08-06 | Densbits Technologies Ltd. | Systems and methods for handling immediate data errors in flash memory |
US8694715B2 (en) | 2007-10-22 | 2014-04-08 | Densbits Technologies Ltd. | Methods for adaptively programming flash memory devices and flash memory systems incorporating same |
WO2009053961A2 (en) | 2007-10-25 | 2009-04-30 | Densbits Technologies Ltd. | Systems and methods for multiple coding rates in flash devices |
WO2009072103A2 (en) | 2007-12-05 | 2009-06-11 | Densbits Technologies Ltd. | Flash memory apparatus and methods using a plurality of decoding stages including optional use of concatenated bch codes and/or designation of 'first below' cells |
WO2009072105A2 (en) * | 2007-12-05 | 2009-06-11 | Densbits Technologies Ltd. | A low power chien-search based bch/rs decoding system for flash memory, mobile communications devices and other applications |
WO2009072101A2 (en) | 2007-12-05 | 2009-06-11 | Densbits Technologies Ltd. | Apparatus and methods for generating row-specific reading thresholds in flash memory |
US8276051B2 (en) * | 2007-12-12 | 2012-09-25 | Densbits Technologies Ltd. | Chien-search system employing a clock-gating scheme to save power for error correction decoder and other applications |
WO2009074978A2 (en) | 2007-12-12 | 2009-06-18 | Densbits Technologies Ltd. | Systems and methods for error correction and decoding on multi-level physical media |
US8327246B2 (en) | 2007-12-18 | 2012-12-04 | Densbits Technologies Ltd. | Apparatus for coding at a plurality of rates in multi-level flash memory systems, and methods useful in conjunction therewith |
US8972472B2 (en) * | 2008-03-25 | 2015-03-03 | Densbits Technologies Ltd. | Apparatus and methods for hardware-efficient unbiased rounding |
US8332725B2 (en) | 2008-08-20 | 2012-12-11 | Densbits Technologies Ltd. | Reprogramming non volatile memory portions |
US8285970B2 (en) * | 2008-11-06 | 2012-10-09 | Silicon Motion Inc. | Method for managing a memory apparatus, and associated memory apparatus thereof |
KR101469771B1 (ko) * | 2008-12-03 | 2014-12-08 | 삼성전자주식회사 | 플래시 메모리를 포함하는 반도체 장치 및 이의 어드레스 사상 방법 |
US8819385B2 (en) * | 2009-04-06 | 2014-08-26 | Densbits Technologies Ltd. | Device and method for managing a flash memory |
US8458574B2 (en) | 2009-04-06 | 2013-06-04 | Densbits Technologies Ltd. | Compact chien-search based decoding apparatus and method |
US8566510B2 (en) | 2009-05-12 | 2013-10-22 | Densbits Technologies Ltd. | Systems and method for flash memory management |
US8995197B1 (en) | 2009-08-26 | 2015-03-31 | Densbits Technologies Ltd. | System and methods for dynamic erase and program control for flash memory device memories |
US8868821B2 (en) | 2009-08-26 | 2014-10-21 | Densbits Technologies Ltd. | Systems and methods for pre-equalization and code design for a flash memory |
US9330767B1 (en) | 2009-08-26 | 2016-05-03 | Avago Technologies General Ip (Singapore) Pte. Ltd. | Flash memory module and method for programming a page of flash memory cells |
US8305812B2 (en) * | 2009-08-26 | 2012-11-06 | Densbits Technologies Ltd. | Flash memory module and method for programming a page of flash memory cells |
TWI453747B (zh) * | 2009-09-02 | 2014-09-21 | Silicon Motion Inc | 用來管理一快閃記憶體的複數個區塊之方法以及相關之記憶裝置及其控制器 |
US8730729B2 (en) | 2009-10-15 | 2014-05-20 | Densbits Technologies Ltd. | Systems and methods for averaging error rates in non-volatile devices and storage systems |
US8724387B2 (en) | 2009-10-22 | 2014-05-13 | Densbits Technologies Ltd. | Method, system, and computer readable medium for reading and programming flash memory cells using multiple bias voltages |
US8626988B2 (en) | 2009-11-19 | 2014-01-07 | Densbits Technologies Ltd. | System and method for uncoded bit error rate equalization via interleaving |
US9037777B2 (en) * | 2009-12-22 | 2015-05-19 | Densbits Technologies Ltd. | Device, system, and method for reducing program/read disturb in flash arrays |
US8607124B2 (en) * | 2009-12-24 | 2013-12-10 | Densbits Technologies Ltd. | System and method for setting a flash memory cell read threshold |
US8700970B2 (en) * | 2010-02-28 | 2014-04-15 | Densbits Technologies Ltd. | System and method for multi-dimensional decoding |
US8527840B2 (en) | 2010-04-06 | 2013-09-03 | Densbits Technologies Ltd. | System and method for restoring damaged data programmed on a flash device |
US9104610B2 (en) | 2010-04-06 | 2015-08-11 | Densbits Technologies Ltd. | Method, system and medium for analog encryption in a flash memory |
US8745317B2 (en) | 2010-04-07 | 2014-06-03 | Densbits Technologies Ltd. | System and method for storing information in a multi-level cell memory |
US9021177B2 (en) | 2010-04-29 | 2015-04-28 | Densbits Technologies Ltd. | System and method for allocating and using spare blocks in a flash memory |
US8510639B2 (en) | 2010-07-01 | 2013-08-13 | Densbits Technologies Ltd. | System and method for multi-dimensional encoding and decoding |
US8539311B2 (en) | 2010-07-01 | 2013-09-17 | Densbits Technologies Ltd. | System and method for data recovery in multi-level cell memories |
US8467249B2 (en) | 2010-07-06 | 2013-06-18 | Densbits Technologies Ltd. | Systems and methods for storing, retrieving, and adjusting read thresholds in flash memory storage system |
EP2413329B1 (en) * | 2010-07-28 | 2014-03-26 | Fujitsu Semiconductor Europe GmbH | Electronic apparatuses |
US8964464B2 (en) | 2010-08-24 | 2015-02-24 | Densbits Technologies Ltd. | System and method for accelerated sampling |
US8508995B2 (en) | 2010-09-15 | 2013-08-13 | Densbits Technologies Ltd. | System and method for adjusting read voltage thresholds in memories |
US9063878B2 (en) | 2010-11-03 | 2015-06-23 | Densbits Technologies Ltd. | Method, system and computer readable medium for copy back |
US8850100B2 (en) | 2010-12-07 | 2014-09-30 | Densbits Technologies Ltd. | Interleaving codeword portions between multiple planes and/or dies of a flash memory device |
TWI451439B (zh) * | 2010-12-10 | 2014-09-01 | Phison Electronics Corp | 記憶體儲存裝置、其記憶體控制器與資料寫入方法 |
US10079068B2 (en) | 2011-02-23 | 2018-09-18 | Avago Technologies General Ip (Singapore) Pte. Ltd. | Devices and method for wear estimation based memory management |
US8693258B2 (en) | 2011-03-17 | 2014-04-08 | Densbits Technologies Ltd. | Obtaining soft information using a hard interface |
US8990665B1 (en) | 2011-04-06 | 2015-03-24 | Densbits Technologies Ltd. | System, method and computer program product for joint search of a read threshold and soft decoding |
US9396106B2 (en) | 2011-05-12 | 2016-07-19 | Avago Technologies General Ip (Singapore) Pte. Ltd. | Advanced management of a non-volatile memory |
US8996790B1 (en) | 2011-05-12 | 2015-03-31 | Densbits Technologies Ltd. | System and method for flash memory management |
US9110785B1 (en) | 2011-05-12 | 2015-08-18 | Densbits Technologies Ltd. | Ordered merge of data sectors that belong to memory space portions |
US9501392B1 (en) | 2011-05-12 | 2016-11-22 | Avago Technologies General Ip (Singapore) Pte. Ltd. | Management of a non-volatile memory module |
US9372792B1 (en) | 2011-05-12 | 2016-06-21 | Avago Technologies General Ip (Singapore) Pte. Ltd. | Advanced management of a non-volatile memory |
US9195592B1 (en) | 2011-05-12 | 2015-11-24 | Densbits Technologies Ltd. | Advanced management of a non-volatile memory |
US8667211B2 (en) | 2011-06-01 | 2014-03-04 | Densbits Technologies Ltd. | System and method for managing a non-volatile memory |
CN102306124A (zh) * | 2011-08-01 | 2012-01-04 | 深圳市文鼎创数据科技有限公司 | Nand Flash芯片硬件驱动层的实现方法 |
US8588003B1 (en) | 2011-08-01 | 2013-11-19 | Densbits Technologies Ltd. | System, method and computer program product for programming and for recovering from a power failure |
US8553468B2 (en) | 2011-09-21 | 2013-10-08 | Densbits Technologies Ltd. | System and method for managing erase operations in a non-volatile memory |
US8996788B2 (en) | 2012-02-09 | 2015-03-31 | Densbits Technologies Ltd. | Configurable flash interface |
US8947941B2 (en) | 2012-02-09 | 2015-02-03 | Densbits Technologies Ltd. | State responsive operations relating to flash memory cells |
US8996793B1 (en) | 2012-04-24 | 2015-03-31 | Densbits Technologies Ltd. | System, method and computer readable medium for generating soft information |
US8838937B1 (en) | 2012-05-23 | 2014-09-16 | Densbits Technologies Ltd. | Methods, systems and computer readable medium for writing and reading data |
US8879325B1 (en) | 2012-05-30 | 2014-11-04 | Densbits Technologies Ltd. | System, method and computer program product for processing read threshold information and for reading a flash memory module |
US9921954B1 (en) | 2012-08-27 | 2018-03-20 | Avago Technologies General Ip (Singapore) Pte. Ltd. | Method and system for split flash memory management between host and storage controller |
US9368225B1 (en) | 2012-11-21 | 2016-06-14 | Avago Technologies General Ip (Singapore) Pte. Ltd. | Determining read thresholds based upon read error direction statistics |
CN103064638B (zh) * | 2012-12-24 | 2016-03-30 | 华为技术有限公司 | 一种处理数据的方法、装置及*** |
CN103077119A (zh) * | 2012-12-31 | 2013-05-01 | 记忆科技(深圳)有限公司 | 数据处理***及方法 |
US9069659B1 (en) | 2013-01-03 | 2015-06-30 | Densbits Technologies Ltd. | Read threshold determination using reference read threshold |
US9136876B1 (en) | 2013-06-13 | 2015-09-15 | Densbits Technologies Ltd. | Size limited multi-dimensional decoding |
US9413491B1 (en) | 2013-10-08 | 2016-08-09 | Avago Technologies General Ip (Singapore) Pte. Ltd. | System and method for multiple dimension decoding and encoding a message |
US9786388B1 (en) | 2013-10-09 | 2017-10-10 | Avago Technologies General Ip (Singapore) Pte. Ltd. | Detecting and managing bad columns |
US9348694B1 (en) | 2013-10-09 | 2016-05-24 | Avago Technologies General Ip (Singapore) Pte. Ltd. | Detecting and managing bad columns |
US9397706B1 (en) | 2013-10-09 | 2016-07-19 | Avago Technologies General Ip (Singapore) Pte. Ltd. | System and method for irregular multiple dimension decoding and encoding |
US9536612B1 (en) | 2014-01-23 | 2017-01-03 | Avago Technologies General Ip (Singapore) Pte. Ltd | Digital signaling processing for three dimensional flash memory arrays |
US10120792B1 (en) | 2014-01-29 | 2018-11-06 | Avago Technologies General Ip (Singapore) Pte. Ltd. | Programming an embedded flash storage device |
US9542262B1 (en) | 2014-05-29 | 2017-01-10 | Avago Technologies General Ip (Singapore) Pte. Ltd. | Error correction |
US9892033B1 (en) | 2014-06-24 | 2018-02-13 | Avago Technologies General Ip (Singapore) Pte. Ltd. | Management of memory units |
US9584159B1 (en) | 2014-07-03 | 2017-02-28 | Avago Technologies General Ip (Singapore) Pte. Ltd. | Interleaved encoding |
US9972393B1 (en) | 2014-07-03 | 2018-05-15 | Avago Technologies General Ip (Singapore) Pte. Ltd. | Accelerating programming of a flash memory module |
US9449702B1 (en) | 2014-07-08 | 2016-09-20 | Avago Technologies General Ip (Singapore) Pte. Ltd. | Power management |
TWI539282B (zh) * | 2014-10-13 | 2016-06-21 | 慧榮科技股份有限公司 | 非揮發性儲存裝置與控制器 |
US9524211B1 (en) | 2014-11-18 | 2016-12-20 | Avago Technologies General Ip (Singapore) Pte. Ltd. | Codeword management |
US10305515B1 (en) | 2015-02-02 | 2019-05-28 | Avago Technologies International Sales Pte. Limited | System and method for encoding using multiple linear feedback shift registers |
US10628255B1 (en) | 2015-06-11 | 2020-04-21 | Avago Technologies International Sales Pte. Limited | Multi-dimensional decoding |
US9851921B1 (en) | 2015-07-05 | 2017-12-26 | Avago Technologies General Ip (Singapore) Pte. Ltd. | Flash memory chip processing |
US10042751B1 (en) * | 2015-09-30 | 2018-08-07 | EMC IP Holding Company LLC | Method and system for multi-tier all-flash array |
CN105446538B (zh) * | 2015-10-29 | 2017-07-21 | 深圳市汇顶科技股份有限公司 | 一种压力检测结构及触摸设备 |
US9954558B1 (en) | 2016-03-03 | 2018-04-24 | Avago Technologies General Ip (Singapore) Pte. Ltd. | Fast decoding of data stored in a flash memory |
US10019198B2 (en) * | 2016-04-01 | 2018-07-10 | Intel Corporation | Method and apparatus for processing sequential writes to portions of an addressable unit |
US10031845B2 (en) | 2016-04-01 | 2018-07-24 | Intel Corporation | Method and apparatus for processing sequential writes to a block group of physical blocks in a memory device |
CN106293206B (zh) * | 2016-07-29 | 2019-04-30 | 厦门天马微电子有限公司 | 一种集成触控显示面板及其触控显示设备 |
US10496335B2 (en) | 2017-06-30 | 2019-12-03 | Intel Corporation | Method and apparatus for performing multi-object transformations on a storage device |
US10725983B2 (en) * | 2017-12-29 | 2020-07-28 | Huawei Technologies Co., Ltd. | Systems and methods for database management using append-only storage devices |
KR20200034312A (ko) * | 2018-09-21 | 2020-03-31 | 에스케이하이닉스 주식회사 | 데이터 저장 장치 및 그것의 동작 방법 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1690983A (zh) * | 2004-04-30 | 2005-11-02 | 联发科技股份有限公司 | 可循序写入数据至闪存中的***及其方法 |
CN101241474A (zh) * | 2007-02-06 | 2008-08-13 | 三星电子株式会社 | 存储器映射***及方法 |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6792518B2 (en) * | 2002-08-06 | 2004-09-14 | Emc Corporation | Data storage system having mata bit maps for indicating whether data blocks are invalid in snapshot copies |
US7139864B2 (en) * | 2003-12-30 | 2006-11-21 | Sandisk Corporation | Non-volatile memory and method with block management system |
US7984084B2 (en) * | 2005-08-03 | 2011-07-19 | SanDisk Technologies, Inc. | Non-volatile memory with scheduled reclaim operations |
KR20090026941A (ko) * | 2007-09-11 | 2009-03-16 | 삼성전자주식회사 | 복수개의 비휘발성 데이터 저장매체를 구비한 저장장치의가상 파일 시스템에서 어드레스 맵핑을 수행하는 방법 및그 장치 |
US7979667B2 (en) * | 2007-12-10 | 2011-07-12 | Spansion Llc | Memory array search engine |
-
2008
- 2008-03-07 CN CNA2008100077703A patent/CN101251788A/zh active Pending
- 2008-10-09 CN CN2008101702063A patent/CN101382873B/zh active Active
- 2008-10-24 US US12/257,620 patent/US8386746B2/en active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1690983A (zh) * | 2004-04-30 | 2005-11-02 | 联发科技股份有限公司 | 可循序写入数据至闪存中的***及其方法 |
CN101241474A (zh) * | 2007-02-06 | 2008-08-13 | 三星电子株式会社 | 存储器映射***及方法 |
Also Published As
Publication number | Publication date |
---|---|
US8386746B2 (en) | 2013-02-26 |
CN101382873A (zh) | 2009-03-11 |
CN101251788A (zh) | 2008-08-27 |
US20100005270A1 (en) | 2010-01-07 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN101382873B (zh) | 储存单元管理方法及*** | |
CN101241472B (zh) | 映射管理方法及*** | |
CN101937319B (zh) | 存储器***及其映射方法 | |
US6587915B1 (en) | Flash memory having data blocks, spare blocks, a map block and a header block and a method for controlling the same | |
Chang et al. | Efficient management for large-scale flash-memory storage systems with resource conservation | |
CN100426259C (zh) | 一种存储器文件数据虚拟存取方法 | |
CN102693184B (zh) | 处理具有非易失性存储器的***的动态和静态数据 | |
CN101169751B (zh) | 具有闪存设备的***及其数据恢复方法 | |
CN101980177B (zh) | 一种操作Flash的方法和装置 | |
JP4738038B2 (ja) | メモリカード | |
Kwon et al. | FTL algorithms for NAND-type flash memories | |
CN104246764A (zh) | 利用非均匀散列函数在非均匀访问存储器中放置记录的方法和装置 | |
CN106326229B (zh) | 一种嵌入式***的文件存储方法和装置 | |
CN103942011A (zh) | 一种差量快照***及其使用方法 | |
CN114546296B (zh) | 一种基于zns固态硬盘的全闪存***和地址映射方法 | |
CN101238431A (zh) | 大容量数据存储*** | |
CN102298555A (zh) | 基于nand技术的模块化闪存管理*** | |
CN101799784A (zh) | 存储器装置及其损耗平均方法 | |
CN101154190A (zh) | 映射信息管理设备和方法 | |
CN105718530A (zh) | 文件存储***及其文件存储控制方法 | |
CN107239526A (zh) | 文件***实现方法、碎片整理方法、操作位置定位方法 | |
KR20130075018A (ko) | 플래시 메모리 파일 시스템에 적용 가능한 데이터 업데이트 장치 및 방법 | |
CN101714065A (zh) | 一种闪存控制器的映射信息管理方法 | |
CN101425338B (zh) | 非易失性存储器的写入方法及使用此方法的控制器 | |
CN103942161A (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 |