CN101382873B - 储存单元管理方法及*** - Google Patents

储存单元管理方法及*** Download PDF

Info

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
Application number
CN2008101702063A
Other languages
English (en)
Other versions
CN101382873A (zh
Inventor
蒋培军
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Via Technologies Inc
Original Assignee
Via Technologies Inc
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Via Technologies Inc filed Critical Via Technologies Inc
Priority to CN2008101702063A priority Critical patent/CN101382873B/zh
Publication of CN101382873A publication Critical patent/CN101382873A/zh
Application granted granted Critical
Publication of CN101382873B publication Critical patent/CN101382873B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0638Organizing or formatting or addressing of data
    • G06F3/064Management of blocks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • G06F12/023Free address space management
    • G06F12/0238Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
    • G06F12/0246Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory in block erasable memory, e.g. flash memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0608Saving storage space on storage systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/061Improving I/O performance
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0673Single storage device
    • G06F3/0679Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/10Providing a specific technical effect
    • G06F2212/1041Resource optimization
    • G06F2212/1044Space efficiency improvement
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/72Details relating to flash memory management
    • G06F2212/7201Logical to physical mapping or translation of blocks or pages
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/72Details relating to flash memory management
    • G06F2212/7202Allocation 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所述的储存单元管理***,其特征在于,该处理模块还将更新后的该特定区块映射表写入至该储存单元中。
CN2008101702063A 2008-03-07 2008-10-09 储存单元管理方法及*** Active CN101382873B (zh)

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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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

Patent Citations (2)

* Cited by examiner, † Cited by third party
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