CN101251788A - 储存单元管理方法及*** - Google Patents
储存单元管理方法及*** Download PDFInfo
- Publication number
- CN101251788A CN101251788A CNA2008100077703A CN200810007770A CN101251788A CN 101251788 A CN101251788 A CN 101251788A CN A2008100077703 A CNA2008100077703 A CN A2008100077703A CN 200810007770 A CN200810007770 A CN 200810007770A CN 101251788 A CN101251788 A CN 101251788A
- Authority
- CN
- China
- Prior art keywords
- block
- definition
- candidate
- page
- data
- 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.)
- Pending
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 Mapping)与区块映射(BlockMapping)等模式进行储存与定位。
在页面映射模式中,储存单元中的数据以逻辑页面为单位进行储存,且具有相应的页面映射表。页面映射表中以逻辑页面为索引,且以实体页面为表项(项目内容)。当采用页面映射的储存***处理读写命令时,则可以直接查找以及更新页面映射表以完成相关数据页面的定位。在区块映射模式中,储存单元中的数据以逻辑区块为单位进行储存,且具有相应的区块映射表。区块映射表中以逻辑区块为索引,且以实体区块为表项。当采用区块映射的储存***处理读写命令时,则可以直接查找以及更新区块映射表以完成相关数据页面的定位。然而,对于重写命令,必须先分配一个区块,且将要求的页面写入分配的区块中。之后,再将逻辑区块中其他的页面复制至此分配的区块中。
近年来,随着集成电路技术的发展,储存单元的页面/区块尺寸已经大幅提高。此外,高密度储存单元,如NAND(与非)快闪存储器中每个区块的各个页面必须依照顺序写入,不能随机写入。另外,由于NAND快闪存储器具有以页面为单位读写、以区块为单位删除以及在写之前必须删除的特点,因此,采用区块映射的储存***处理写入命令时都必须对原有数据区块进行一次删除。当区块尺寸增大后将导致写入性能大大降低。其次,页面映射模式中数据的分布非常复杂与繁乱。当空闲区块用尽时,数据合并以获取新空闲区块的过程将会非常复杂。
因此,一些储存管理***提出可以结合区块映射与页面映射的混合型映射模式。在这些***中,储存单元中可以包括分别相应区块映射与页面映射的区域,且各个区域的使用仅能通过数据合并操作来进行切换。虽然具有混合型映射模式的储存管理***可以提供较大的弹性来储存数据,然而,在实际使用上,储存单元中相应区块映射与页面映射的实体区块中仍然会存在许多未利用的实体页面,进而使得储存单元中数据的分布非常复杂与繁乱。类似地,进行相关数据合并时亦会造成***的效能负担。
发明内容
有鉴于此,本发明提供储存单元管理方法及***。
本发明所述的储存单元管理方法,用以管理包括多个实体区块的储存单元,其中每一实体区块具有多个区块种类定义中的一个区块种类定义。首先,取得至少一第一写入命令,其中第一写入命令要求对于相应至少一逻辑区块的至少一逻辑页面进行数据写入操作。判断储存单元中是否存在具有多个区块种类定义中的一第一区块定义的一候选区块,其中依据第一区块定义逻辑区块的逻辑页面无法映射至候选区块。若候选区块存在,将第一区块定义转换为区块种类定义中的一第二区块定义。将一数据写入具有第二区块定义的候选区块中的一特定页面,且记录逻辑区块的逻辑页面与候选区块的特定页面的一映射关系。
本发明所述的储存单元管理***包括一储存单元与一处理模块。储存单元包括多个实体区块,每一实体区块具有多个区块种类定义中的一个区块种类定义。处理模块取得至少一第一写入命令,其中第一写入命令要求对于相应至少一逻辑区块的至少一逻辑页面进行数据写入操作。处理模块判断储存单元中是否存在具有多个区块种类定义中的一第一区块定义的一候选区块,其中依据第一区块定义逻辑区块的逻辑页面无法映射至候选区块。若候选区块存在,处理模块将第一区块定义转换为区块种类定义中的一第二区块定义,且将一数据写入具有第二区块定义的候选区块中的一特定页面,并记录逻辑区块的逻辑页面与候选区块的特定页面的一映射关系。
本发明上述方法可以通过程序码方式收录于实体介质中。当程序码被机器载入且执行时,机器变成用以实行本发明的装置。
本发明所述的储存单元管理方法及***,可以将储存单元的实体区块进行分类管理,以更有效率地利用储存单元。
附图说明
图1为一示意图系显示依据本发明实施例的储存单元管理***。
图2为一示意图系显示依据本发明实施例的储存单元中的实体区块。
图3为一示意图系显示依据本发明实施例的映射目录项目的格式。
图4为一示意图系显示依据本发明实施例的区块映射表项目的格式。
图5为一示意图系显示依据本发明实施例的页面映射区块表项目的格式。
图6为一示意图系显示依据本发明实施例的页面映射表项目的格式。
图7A至图7D为流程图系显示依据本发明实施例的储存单元管理方法。
图8为一示意图系显示依据本发明实施例的写入命令的格式。
具体实施方式
为使本发明的上述目的、特征和优点能更明显易懂,下文特举实施例,并配合所附图示,详细说明如下。
图1显示依据本发明实施例的储存单元管理***。
依据本发明实施例的储存单元管理***100包括一储存单元110、一存储器120与一处理模块130。储存单元110可以是一非易失性存储器,如NAND快闪存储器。储存单元110中的数据可以以区块映射模式与页面映射模式分别以区块与页面为单位进行储存。值得注意的是,在本发明中储存单元110的实体区块可以具有不同的区块种类定义,以分类进行管理。图2显示储存单元110的实体区块。在此实施例中,区块种类定义可以包括一数据区块定义、一连续区块定义、一奉献区块定义与一共享区块定义。储存单元110中的每一实体区块可以分别具有上述区块种类定义中的一个,且可以进行转换。其中,具有数据区块定义的实体区块111是依据区块映射模式储存数据,且实体区块中的所有页面都已经被写入数据。具有连续区块定义的实体区块112中从第一个页面开始的多个页面是依据区块映射模式储存数据,且实体区块中存在至少一个未写入数据的页面。具有奉献区块定义的实体区块113中的数据皆是对应至同一个逻辑区块,从第一个页面开始的多个页面是依据区块映射模式储存数据,且存在至少一页面并不依据区块映射模式储存数据。具有共享区块定义的实体区块114中的数据是依据页面映射模式储存数据,且对应至至少二特定逻辑区块。值得注意的是,储存单元110亦可包括并未指定区块种类定义的空闲实体区块(未显示)。区块种类定义间的转换将于后进行说明。
另外,储存单元110亦包括一映射目录、多个区块映射表、多个页面映射区块表以及多个页面映射表。
映射目录系映射使用者数据的根目录。映射目录包含多个项目,其中一映射目录编号可以作为映射目录中各个项目的索引,且每一项目可以指向相应一既定大小,如256MB使用者数据的包含一部分区块映射表的一页面。图3显示依据本发明实施例的映射目录项目的格式。如图3所示,映射目录项目300包括一“bInCache”栏位310、一“CachedBmtNumber”栏位320与一“BmtPageLocation”栏位330。“bInCache”栏位310记录相应的区块映射表页面是否在存储器120中。举例来说,若区块映射表页面已经在存储器120中,则“bInCache”栏位310中记录”1”;若区块映射表页面不在存储器120中,则“bInCache”栏位310中记录“0”。对于已经在存储器120中的区块映射表页面,“CachedBmtNumber”栏位320记录相应此区块映射表页面在存储器120中的地址。对于不在存储器120中的区块映射表页面,则“CachedBmtNumber”栏位320为“Invalid”。“BmtPageLocation”栏位330记录区块映射表页面在储存单元110上的实体储存地址。
区块映射表包含多个项目,其中一逻辑区块编号可以作为区块映射表中各个项目的索引,且每一项目记录相应此逻辑区块的数据的存储位置信息。图4显示依据本发明实施例的区块映射表项目的格式。如图4所示,区块映射表项目400包括一“bPageMapped”栏位410与一“BlockInfo”栏位420。如前所述,储存单元110中的数据可以是以区块映射模式或页面映射模式进行储存。因此,“bPageMapped”栏位410用以记录一逻辑区块所采用的映射模式。举例来说。若区块是采用区块映射模式,则“bPageMapped”栏位410中记录“0”;若区块是采用页面映射模式,则“bPageMapped”栏位410中记录“1”。“BlockInfo”栏位420则记录详细的映射信息。其中,对于采用区块映射模式的逻辑区块,“BlockInfo”栏位420中记录相应数据区块的实***置,如实体区块编号。对于采用页面映射模式的逻辑区块,“BlockInfo”栏位420中记录一页面映射区块编号,用以表示此逻辑区块为第几个页面映射区块。
页面映射区块表包含多个项目,其中页面映射区块编号可以作为页面映射区块表中各个项目的索引,且每一项目记录相应此逻辑区块的页面映射表在存储器120中的起始地址。图5显示依据本发明实施例的页面映射区块表项目的格式。如图5所示,页面映射区块表项目500包括一“PageMappedBlockNum”栏位510与一“PageMappingTableInfo”栏位520。其中,“PageMappedBlockNum”栏位510用以记录页面映射区块编号,且“PageMappingTableInfo”栏位520用以记录相应此逻辑区块的页面映射表在存储器120中的起始地址。
页面映射表包含多个项目,其中一页面位移(Offset)可以作为页面映射表中各个项目的索引,且每一项目记录相应此逻辑区块中逻辑页面的实体储存位置,如装置编号、实体区块编号与实体页面位移等。图6显示依据本发明实施例的页面映射表项目的格式。如图6所示,页面映射表项目600包括一“PageOffset”栏位610与一“PageInfo”栏位620。其中,“PageOffset”栏位610用以记录页面位移,且“PageInfo”栏位620用以记录相应此逻辑区块中逻辑页面的实体储存位置。注意的是,在一些实施例中,页面映射表中的项目数目等于一个逻辑区块中所包含的页面数量。
处理模块130可以由上层,如应用程序等接收写入命令,将写入命令分解为以页面为单位的至少一子写入命令。处理模块130依据区块映射表、页面映射区块表与页面映射表将子命令转换为相应储存单元110的写入命令,且执行写入命令与转换实体区块的区块种类定义,以将数据写入储存单元110中特定实体区块的特定页面中。注意的是,当逻辑区块依据一第一区块定义时,逻辑区块的逻辑页面将无法映射至候选区块中。
图7A至图7D显示依据本发明实施例的储存单元管理方法。
首先,如步骤S702(图7A),由上层,如应用程序等接收一写入命令,且如步骤S704,将接收的写入命令分解为以逻辑页面为单位的至少一第一写入命令。其中,第一写入命令可以包括一映射目录数据、一区块映射数据、一页面映射数据、一装置数据、一磁区数据与/或一磁区计数(Sector Count)。图8显示依据本发明实施例的写入命令的格式。如图8所示,写入命令800包括一“MDN”栏位、一“BO”栏位、一“PO”栏位、“DN”栏位与一“SO”栏位。其中,“MDN”栏位记录映射目录数据,“BO”栏位记录区块映射数据,“PO”栏位记录页面映射数据,“DN”栏位记录装置数据,且“SO”栏位记录磁区数据。值得注意的是通过第一写入命令可以得知数据欲写入至少一逻辑区块的至少一逻辑页面。如步骤S706,依据第一写入命令中的映射目录数据(映射目录编号)由映射目录中的多个区块映射表中定位一特定区块映射表。如步骤S708,判断此特定区块映射表是否已经载入于存储器中。提醒的是,判断特定区块映射表是否已经载入于存储器中可以依据映射目录中相应映射目录数据的项目中“bInCache”栏位的数据来判断。若特定区块映射表不在存储器中(步骤S708的否),如步骤S710,由已经载入存储器中的区块映射表中选择一候选区块映射表,且如步骤S712,将特定区块映射表载入存储器中以取代候选区块映射表。值得注意的是,在一些实施例中,当存储器空间不足时,才需要进行选择候选区块映射表的操作,且候选区块映射表可以依据一最久未使用(LRU)演算法来进行选择。若存储器仍具有空间,则可以直接将特定区块映射表载入存储器中。
若特定区块映射表已经在存储器中(步骤S708的是),如步骤S714,依据第一写入命令中的区块映射数据(逻辑区块编号)由特定区块映射表中定位一第一特定项目,其中第一特定项目包括一映射模式设定(“bPageMapped”栏位的数据)与一区块信息(“BlockInfo”栏位的数据)。如步骤S716,依据映射模式设定判断相应区块的映射模式是否为页面映射模式。若映射模式为区块映射模式时(步骤S716的否),如步骤S718,判断页面映射区块表中是否有空闲的项目。若页面映射区块表中有空闲的项目(步骤S718的是),进行步骤S722的操作。若页面映射区块表中没有空闲的项目(步骤S718的否),如步骤S720,进行数据页面的数据合并操作,以由页面映射区块表中取得空闲的项目。如步骤S722,将第一写入命令相应的逻辑区块加入页面映射区块表中,并进行步骤S724的操作。若映射模式为页面映射模式时(步骤S716的是),如步骤S724,依据第一特定项目中的区块信息(页面映射区块编号)由一页面映射区块表中定位一特定页面映射区块,且如步骤S726,通过特定页面映射区块定位至一页面映射表。
如步骤S728,依据第一写入命令判断其欲写入的逻辑页面是否包含相应逻辑区块的第一个页面。若是(步骤S728的是),如步骤S730(图7B),判断储存单元中是否存在具有连续区块定义的一候选区块。若储存单元中不存在具有连续区块定义的候选区块(步骤S730的否),如步骤S732,判断储存单元中是否存在具有奉献区块定义的一候选区块。若储存单元中存在具有奉献区块定义的候选区块(步骤S732的是),如步骤S734,将此候选区块由奉献区块定义转换为共享区块定义,并如步骤S736,依据第一写入命令产生相应储存单元的第二写入命令,以将数据写入至具有共享区块定义的候选区块中的特定页面中。之后,进行步骤S774的操作。若储存单元中不存在具有奉献区块定义的候选区块(步骤S732的否),如步骤S738,重新配置一空闲区块为具有连续区块定义的候选区块,并如步骤S740,依据第一写入命令产生相应储存单元的第二写入命令,以将数据写入至具有连续区块定义的候选区块中的特定页面中。之后,进行步骤S774的操作。
若储存单元中存在具有连续区块定义的候选区块(步骤S730的是),如步骤S742,判断此候选区块是否已经或是接近满了。若候选区块已经或是接近满了(步骤S742的是),如步骤S744,将此候选区块由连续区块定义转换为数据区块定义,并进行步骤S738与S740的操作。若候选区块并未满了或是接近满了(步骤S742的否),如步骤S746,将此候选区块由连续区块定义转换为奉献区块定义,并如步骤S748,依据第一写入命令产生相应储存单元的第二写入命令,以将数据写入至具有奉献区块定义的候选区块中的特定页面中。之后,如步骤S750,判断具有奉献区块定义的候选区块是否已经满了。若具有奉献区块定义的候选区块已经满了(步骤S750的是),进行步骤S734与S736的操作。之后,进行步骤S774的操作。若具有奉献区块定义的候选区块并未满了(步骤S750的否),直接进行步骤S774的操作。值得注意的是,由于第一写入命令欲写入的逻辑页面的数目可能超过具有奉献区块定义的候选区块可以提供的页面数目,因此必须进行步骤S750的判断。
若第一写入命令欲写入的逻辑页面并未包含相应逻辑区块的第一个页面(步骤S728的否),如步骤S752(图7C),判断储存单元中是否存在具有连续区块定义的一候选区块。若储存单元中不存在具有连续区块定义的候选区块(步骤S752的否),如步骤S754,判断储存单元中是否存在具有奉献区块定义的一候选区块。若储存单元中并未存在具有奉献区块定义的候选区块(步骤S754的否),进行步骤S762的操作。若储存单元中存在具有奉献区块定义的候选区块(步骤S754的是),如步骤S756,依据第一写入命令产生相应储存单元的第二写入命令,以将数据写入至具有奉献区块定义的候选区块中的特定页面中。之后,如步骤S758,判断具有奉献区块定义的候选区块是否已经满了。若具有奉献区块定义的候选区块已经满了(步骤S758的是),如步骤S760,将此候选区块由奉献区块定义转换为共享区块定义,并如步骤S762,依据第一写入命令产生相应储存单元的第二写入命令,以将数据写入至具有共享区块定义的候选区块中的特定页面中。之后,进行步骤S774的操作。若具有奉献区块定义的候选区块并未满了(步骤S758的否),直接进行步骤S774的操作。
若储存单元中存在具有连续区块定义的候选区块时(步骤S752的是),如步骤S764,判断第一写入命令欲写入的逻辑页面与此候选区块中具有数据的最后一页面是否相连续。若相连续(步骤S764的是),如步骤S766,依据第一写入命令产生相应储存单元的第二写入命令,以将数据写入至具有连续区块定义的候选区块中的特定页面中。若不连续(步骤S764的否),如步骤S768,判断第一写入命令欲写入的逻辑页面与具有连续区块定义的候选区块中具有数据的最后一页面的地址是否发生冲突。若并未发生冲突(步骤S768的否),进行步骤S766的操作。若发生冲突(步骤S768的是),如步骤S770,将此候选区块由连续区块定义转换为奉献区块定义,并如步骤S772,依据第一写入命令产生相应储存单元的第二写入命令,以将数据写入至具有奉献区块定义的候选区块中的特定页面中。之后,进行步骤S758的操作。
之后,如步骤S774(图7D),执行产生的第二写入命令,以将数据写入储存单元中的候选区块中的特定页面。值得注意的是,如前所述,第一写入命令更可以包括装置数据与/或磁区数据。当第一写入命令包括装置数据与/或磁区数据时,则更可以依据装置数据与/或磁区数据将数据写入储存单元中。如步骤S776,依据相应第一写入命令欲写入的逻辑区块的逻辑页面与实际储存单元中候选区块的特定页面的映射关系,更新页面映射表与/或特定区块映射表。如步骤S778,判断步骤S776的映射表更新是否牵涉区块等级的映射表更新。若否(步骤S778的否),结束整个写入流程。若是(步骤S778的是),如步骤S780,将更新后的特定区块映射表写入至储存单元中。
有鉴于此,通过本发明的储存单元管理方法及***可以将储存单元的实体区块进行分类管理,以更有效率地利用储存单元。
本发明的方法、特定型态或其部分,可以以程序码的型态包含于实体介质,如软盘、光盘片、硬盘或是任何其他机器可读取(如计算机可读取)储存介质,其中,当程序码被机器,如计算机载入且执行时,此机器变成用以参与本发明的装置。本发明的方法与装置也可以以程序码型态通过一些传送介质,如电线或电缆、光纤或是任何传输型态进行传送,其中,当程序码被机器,如计算机接收、载入且执行时,此机器变成用以参与本发明的装置。当在一般用途处理器实作时,程序码结合处理器提供一操作类似于专用集成电路的独特装置。
以上所述仅为本发明较佳实施例,然其并非用以限定本发明的范围,任何熟悉本项技术的人员,在不脱离本发明的精神和范围内,可在此基础上做进一步的改进和变化,因此本发明的保护范围当以本申请的权利要求书所界定的范围为准。
附图中符号的简单说明如下:
100:储存单元管理***
110:储存单元
111:数据区块定义的区块
112:连续区块定义的区块
113:奉献区块定义的区块
114:共享区块定义的区块
120:存储器
130:处理模块
300:映射目录项目
310:“bInCache”栏位
320:“CachedBmtNumber”栏位
330:“BmtPageLocation”栏位
400:区块映射表项目
410:“bPageMapped”栏位
420:“BlockInfo”栏位
500:页面映射区块表项目
510:“PageMappedBlockNum”栏位
520:“PageMappingTableInfo”栏位
600:页面映射表项目
610:“PageOffset”栏位
620:“PageInfo”栏位
S702、S704、...、S780:步骤
800:写入命令
MDN:映射目录数据栏位
BO:区块映射数据栏位
PO:页面映射数据栏位
DN:装置数据栏位
SO:磁区数据栏位。
Claims (28)
1.一种储存单元管理方法,其特征在于,包括下列步骤:
提供一储存单元,其中该储存单元包括多个实体区块,每一所述实体区块具有多个区块种类定义中的一个区块种类定义;
取得至少一第一写入命令,其中该第一写入命令要求对于相应至少一逻辑区块的至少一逻辑页面进行数据写入操作;
判断该储存单元中是否存在具有所述多个区块种类定义中的一第一区块定义的一候选区块,其中依据该第一区块定义该逻辑区块的该逻辑页面无法映射至该候选区块;
若该候选区块存在,将该第一区块定义转换为所述区块种类定义中的一第二区块定义;以及
将一数据储写入具有第二区块定义的该候选区块中的一特定页面,且记录该逻辑区块的该逻辑页面与该候选区块的该特定页面的一映射关系。
2.根据权利要求1所述的储存单元管理方法,其特征在于,该第一写入命令至少包括一映射目录数据、一区块映射数据与一页面映射数据,且该储存单元管理方法还包括下列步骤:
依据该映射目录数据由多个区块映射表中定位至一特定区块映射表;
依据该区块映射数据由该特定区块映射表中定位一第一特定项目,其中该第一特定项目包括一映射模式设定与一区块信息;
当该映射模式设定为一页面映射模式时,依据该区块信息由一页面映射区块表中定位一特定页面映射区块,且通过该特定页面映射区块定位至一页面映射表;以及
依据该映射关系更新该特定区块映射表或该页面映射表。
3.根据权利要求2所述的储存单元管理方法,其特征在于,还包括下列步骤:
依据该映射目录数据判断该特定区块映射表是否已经载入于一存储器中;以及
若该特定区块映射表并未载入于该存储器中,将该特定区块映射表载入该存储器中。
4.根据权利要求3所述的储存单元管理方法,其特征在于,还包括下列步骤:
由已经载入该存储器中的所述区块映射表中选择一候选区块映射表;以及
将该特定区块映射表载入该存储器中以取代该候选区块映射表。
5.根据权利要求2所述的储存单元管理方法,其特征在于,当该映射模式设定为一区块映射模式时,新增一逻辑区块至该页面映射区块表。
6.根据权利要求1所述的储存单元管理方法,其特征在于,还包括下列步骤:
依据该映射关系将该第一写入命令转换为相应该储存单元的至少一第二写入命令;以及
执行该第二写入命令,以将该数据写入至该储存单元中该候选区块中的该特定页面。
7.根据权利要求1所述的储存单元管理方法,其特征在于,所述区块种类定义包括一数据区块定义、一连续区块定义、一奉献区块定义与一共享区块定义,其中,具有该数据区块定义的该实体区块是依据一区块映射模式储存数据,且该实体区块中的所有页面都已经被写入数据,具有该连续区块定义的该实体区块中从第一个页面开始的多个页面是依据该区块映射模式储存数据,且该实体区块中存在至少一个未写入数据的页面,具有该奉献区块定义的该实体区块中的数据皆是对应至一特定逻辑区块,从第一个页面开始的多个页面是依据该区块映射模式储存数据,且存在至少一页面并不依据该区块映射模式储存数据,具有该共享区块定义的该实体区块中的数据是依据一页面映射模式储存数据,且对应至至少二特定逻辑区块。
8.根据权利要求1所述的储存单元管理方法,其特征在于,还包括下列步骤:
判断该至少一逻辑页面是否包含该逻辑区块的第一个页面;
若该至少一逻辑页面包含该逻辑区块的第一个页面,判断该储存单元中是否存在具有该连续区块定义的该候选区块;
若该储存单元中存在具有该连续区块定义的该候选区块,将该候选区块由该连续区块定义转换为该奉献区块定义,以将该数据储存至具有奉献区块定义的该候选区块中的该特定页面中;
若该储存单元中不存在具有该连续区块定义的该候选区块,判断该储存单元中是否存在具有该奉献区块定义的该候选区块;
若该储存单元中存在具有该奉献区块定义的该候选区块,将该候选区块由该奉献区块定义转换为该共享区块定义,以将该数据储存至具有共享区块定义的该候选区块中的该特定页面中;以及
若该储存单元中不存在具有该奉献区块定义的该候选区块,重新配置一空闲区块为具有该连续区块定义的该候选区块,以将该数据储存至具有连续区块定义的该候选区块中的该特定页面中。
9.根据权利要求8所述的储存单元管理方法,其特征在于,当该储存单元中存在具有该连续区块定义的该候选区块,且将该候选区块由该连续区块定义转换为该奉献区块定义之后,该储存单元管理方法还包括下列步骤:
判断具有该奉献区块定义的该候选区块是否已经满了;以及
若具有该奉献区块定义的该候选区块已经满了,将该候选区块由该奉献区块定义转换为该共享区块定义,以将该数据储存至具有共享区块定义的该候选区块中的该特定页面中。
10.根据权利要求8所述的储存单元管理方法,其特征在于,当该至少一逻辑页面不包含该逻辑区块的第一个页面时,该储存单元管理方法还包括下列步骤:
判断该储存单元中是否存在具有该连续区块定义的该候选区块;
若该储存单元中不存在具有该连续区块定义的该候选区块,判断该储存单元中是否存在具有该奉献区块定义的该候选区块;
若该储存单元中存在具有该奉献区块定义的该候选区块,直接将该数据储存至该候选区块中的该特定页面中;以及
若该储存单元中不存在具有该奉献区块定义的该候选区块,将该数据储存至具有奉献区块定义的该储存单元中具有一共享区块定义的该候选区块中的该特定页面中。
11.根据权利要求10所述的储存单元管理方法,其特征在于,当该储存单元中存在具有该奉献区块定义的该候选区块时,该储存单元管理方法还包括下列步骤:
判断具有该奉献区块定义的该候选区块是否已经满了;以及
若具有该奉献区块定义的该候选区块已经满了,将该候选区块由该奉献区块定义转换为该共享区块定义,以将该数据储存至具有共享区块定义的该候选区块中的该特定页面中。
12.根据权利要求10所述的储存单元管理方法,其特征在于,当该储存单元中存在具有该连续区块定义的该候选区块时,该储存单元管理方法还包括下列步骤:
判断该逻辑页面与具有该连续区块定义的该候选区块中具有数据的最后一页面是否相连续;
若该逻辑页面与具有该连续区块定义的该候选区块中具有数据的最后一页面相连续,直接将该数据储存至具有连续区块定义的该候选区块中的该特定页面中;
若该逻辑页面与具有该连续区块定义的该候选区块中具有数据的最后一页面并非相连续,判断该逻辑页面与具有该连续区块定义的该候选区块中具有数据的最后一页面的地址是否发生冲突;
若该逻辑页面与具有该连续区块定义的该候选区块中具有数据的最后一页面的地址并未发生冲突,将该数据储存至具有连续区块定义的该候选区块中的该特定页面中;以及
若该逻辑页面与具有该连续区块定义的该候选区块中具有数据的最后一页面的地址发生冲突,将该候选区块由该连续区块定义转换为该奉献区块定义,以将该数据储存至具有奉献区块定义的该候选区块中的该特定页面中。
13.根据权利要求12所述的储存单元管理方法,其特征在于,当该储存单元中存在具有该奉献区块定义的该候选区块时,该储存单元管理方法还包括下列步骤:
判断具有该奉献区块定义的该候选区块是否已经满了;以及
若具有该奉献区块定义的该候选区块已经满了,将该候选区块由该奉献区块定义转换为该共享区块定义,以将该数据储存至具有共享区块定义的该候选区块中的该特定页面中。
14.根据权利要求1所述的储存单元管理方法,其特征在于,还包括将更新后的该特定区块映射表写入至该储存单元中。
15.一种储存单元管理***,其特征在于,包括:
一储存单元,包括多个实体区块,每一所述实体区块具有多个区块种类定义中的一个区块种类定义;以及
一处理模块,取得至少一第一写入命令,其中该第一写入命令要求对于相应至少一逻辑区块的至少一逻辑页面进行数据写入操作,判断该储存单元中是否存在具有所述多个区块种类定义中的一第一区块定义的一候选区块,其中依据该第一区块定义该逻辑区块的该逻辑页面无法映射至该候选区块,若该候选区块存在,将该第一区块定义转换为所述区块种类定义中的一第二区块定义,将一数据写入具有第二区块定义的该候选区块中的一特定页面,且记录该逻辑区块的该逻辑页面与该候选区块的该特定页面的一映射关系。
16.根据权利要求15所述的储存单元管理***,其特征在于,该第一写入命令至少包括一映射目录数据、一区块映射数据与一页面映射数据,且该处理模块还依据该映射目录数据由多个区块映射表中定位至一特定区块映射表,依据该区块映射数据由该特定区块映射表中定位一第一特定项目,其中该第一特定项目包括一映射模式设定与一区块信息,当该映射模式设定为一页面映射模式时,依据该区块信息由一页面映射区块表中定位一特定页面映射区块,通过该特定页面映射区块定位至一页面映射表,且依据该映射关系更新该特定区块映射表或该页面映射表。
17.根据权利要求16所述的储存单元管理***,其特征在于,该处理模块还依据该映射目录数据判断该特定区块映射表是否已经载入于一存储器中,若该特定区块映射表并未载入于该存储器中,将该特定区块映射表载入该存储器中。
18.根据权利要求17所述的储存单元管理***,其特征在于,该处理模块还由已经载入该存储器中的所述区块映射表中选择一候选区块映射表,且将该特定区块映射表载入该存储器中以取代该候选区块映射表。
19.根据权利要求16所述的储存单元管理***,其特征在于,该处理模块还当该映射模式设定为一区块映射模式时,新增一逻辑区块至该页面映射区块表。
20.根据权利要求15所述的储存单元管理***,其特征在于,该处理模块还依据该映射关系将该第一写入命令转换为相应该储存单元的至少一第二写入命令,且执行该第二写入命令,以将该数据写入至该储存单元中该候选区块中的该特定页面。
21.根据权利要求15所述的储存单元管理***,其特征在于,所述区块种类定义包括一数据区块定义、一连续区块定义、一奉献区块定义与一共享区块定义,其中,具有该数据区块定义的该实体区块是依据一区块映射模式储存数据,且该实体区块中的所有页面都已经被写入数据,具有该连续区块定义的该实体区块中从第一个页面开始的多个页面是依据该区块映射模式储存数据,且该实体区块中存在至少一个未写入数据的页面,具有该奉献区块定义的该实体区块中的数据皆是对应至一特定逻辑区块,从第一个页面开始的多个页面是依据该区块映射模式储存数据,且存在至少一页面并不依据该区块映射模式储存数据,具有该共享区块定义的该实体区块中的数据是依据一页面映射模式储存数据,且对应至至少二特定逻辑区块。
22.根据权利要求15所述的储存单元管理***,其特征在于,该处理模块还判断该至少一逻辑页面是否包含该逻辑区块的第一个页面,若该至少一逻辑页面包含该逻辑区块的第一个页面,判断该储存单元中是否存在具有该连续区块定义的该候选区块,若该储存单元中存在具有该连续区块定义的该候选区块,将该候选区块由该连续区块定义转换为该奉献区块定义,以将该数据储存至具有奉献区块定义的该候选区块中的该特定页面中,若该储存单元中不存在具有该连续区块定义的该候选区块,判断该储存单元中是否存在具有该奉献区块定义的该候选区块,若该储存单元中存在具有该奉献区块定义的该候选区块,将该候选区块由该奉献区块定义转换为该共享区块定义,以将该数据储存至具有共享区块定义的该候选区块中的该特定页面中,若该储存单元中不存在具有该奉献区块定义的该候选区块,重新配置一空闲区块为具有该连续区块定义的该候选区块,以将该数据储存至具有连续区块定义的该候选区块中的该特定页面中。
23.根据权利要求22所述的储存单元管理***,其特征在于,当该储存单元中存在具有该连续区块定义的该候选区块,且将该候选区块由该连续区块定义转换为该奉献区块定义之后,该处理模块还判断具有该奉献区块定义的该候选区块是否已经满了,若具有该奉献区块定义的该候选区块已经满了,将该候选区块由该奉献区块定义转换为该共享区块定义,以将该数据储存至具有共享区块定义的该候选区块中的该特定页面中。
24.根据权利要求22所述的储存单元管理***,其特征在于,当该至少一逻辑页面不包含该逻辑区块的第一个页面时,该处理模块还判断该储存单元中是否存在具有该连续区块定义的该候选区块,若该储存单元中不存在具有该连续区块定义的该候选区块,判断该储存单元中是否存在具有该奉献区块定义的该候选区块,若该储存单元中存在具有该奉献区块定义的该候选区块,直接将该数据储存至具有奉献区块定义的该候选区块中的该特定页面中,若该储存单元中不存在具有该奉献区块定义的该候选区块,将该数据储存至该储存单元中具有一共享区块定义的该候选区块中的该特定页面中。
25.根据权利要求24所述的储存单元管理***,其特征在于,当该储存单元中存在具有该奉献区块定义的该候选区块时,该处理模块还判断具有该奉献区块定义的该候选区块是否已经满了,若具有该奉献区块定义的该候选区块已经满了,将该候选区块由该奉献区块定义转换为该共享区块定义,以将该数据储存至具有共享区块定义的该候选区块中的该特定页面中。
26.根据权利要求24所述的储存单元管理***,其特征在于,当该储存单元中存在具有该连续区块定义的该候选区块时,该处理模块还判断该逻辑页面与具有该连续区块定义的该候选区块中具有数据的最后一页面是否相连续,若该逻辑页面与具有该连续区块定义的该候选区块中具有数据的最后一页面相连续,直接将该数据储存至具有连续区块定义的该候选区块中的该特定页面中,若该逻辑页面与具有该连续区块定义的该候选区块中具有数据的最后一页面并非相连续,判断该逻辑页面与具有该连续区块定义的该候选区块中具有数据的最后一页面的地址是否发生冲突,若该逻辑页面与具有该连续区块定义的该候选区块中具有数据的最后一页面的地址并未发生冲突,将该数据储存至具有连续区块定义的该候选区块中的该特定页面中,若该逻辑页面与具有该连续区块定义的该候选区块中具有数据的最后一页面的地址发生冲突,将该候选区块由该连续区块定义转换为该奉献区块定义,以将该数据储存至具有奉献区块定义的该候选区块中的该特定页面中。
27.根据权利要求26所述的储存单元管理***,其特征在于,当该储存单元中存在具有该奉献区块定义的该候选区块时,该处理模块还判断具有该奉献区块定义的该候选区块是否已经满了,若具有该奉献区块定义的该候选区块已经满了,将该候选区块由该奉献区块定义转换为该共享区块定义,以将该数据储存至具有共享区块定义的该候选区块中的该特定页面中。
28.根据权利要求15所述的储存单元管理***,其特征在于,该处理模块还将更新后的该特定区块映射表写入至该储存单元中。
Priority Applications (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CNA2008100077703A CN101251788A (zh) | 2008-03-07 | 2008-03-07 | 储存单元管理方法及*** |
CN2008101702063A CN101382873B (zh) | 2008-03-07 | 2008-10-09 | 储存单元管理方法及*** |
US12/257,620 US8386746B2 (en) | 2008-03-07 | 2008-10-24 | Storage unit management methods and systems |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CNA2008100077703A CN101251788A (zh) | 2008-03-07 | 2008-03-07 | 储存单元管理方法及*** |
Publications (1)
Publication Number | Publication Date |
---|---|
CN101251788A true CN101251788A (zh) | 2008-08-27 |
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 After (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN2008101702063A Active CN101382873B (zh) | 2008-03-07 | 2008-10-09 | 储存单元管理方法及*** |
Country Status (2)
Country | Link |
---|---|
US (1) | US8386746B2 (zh) |
CN (2) | CN101251788A (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102306124A (zh) * | 2011-08-01 | 2012-01-04 | 深圳市文鼎创数据科技有限公司 | Nand Flash芯片硬件驱动层的实现方法 |
CN103064638A (zh) * | 2012-12-24 | 2013-04-24 | 华为技术有限公司 | 一种处理数据的方法、装置及*** |
CN101739352B (zh) * | 2008-11-06 | 2013-09-18 | 慧帝科技(深圳)有限公司 | 用来管理一记忆装置的方法以及其相关的记忆装置 |
Families Citing this family (87)
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 |
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 |
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 |
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 | 에스케이하이닉스 주식회사 | 데이터 저장 장치 및 그것의 동작 방법 |
Family Cites Families (7)
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 |
CN100353341C (zh) * | 2004-04-30 | 2007-12-05 | 联发科技股份有限公司 | 可循序写入数据至闪存中的***及其方法 |
US7984084B2 (en) * | 2005-08-03 | 2011-07-19 | SanDisk Technologies, Inc. | Non-volatile memory with scheduled reclaim operations |
KR100885181B1 (ko) * | 2007-02-06 | 2009-02-23 | 삼성전자주식회사 | 그룹 맵핑 동작을 수행하는 메모리 시스템 및 그것의어드레스 맵핑 방법 |
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
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101739352B (zh) * | 2008-11-06 | 2013-09-18 | 慧帝科技(深圳)有限公司 | 用来管理一记忆装置的方法以及其相关的记忆装置 |
CN102306124A (zh) * | 2011-08-01 | 2012-01-04 | 深圳市文鼎创数据科技有限公司 | Nand Flash芯片硬件驱动层的实现方法 |
CN103064638A (zh) * | 2012-12-24 | 2013-04-24 | 华为技术有限公司 | 一种处理数据的方法、装置及*** |
CN103064638B (zh) * | 2012-12-24 | 2016-03-30 | 华为技术有限公司 | 一种处理数据的方法、装置及*** |
Also Published As
Publication number | Publication date |
---|---|
US8386746B2 (en) | 2013-02-26 |
CN101382873B (zh) | 2011-10-12 |
CN101382873A (zh) | 2009-03-11 |
US20100005270A1 (en) | 2010-01-07 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN101382873B (zh) | 储存单元管理方法及*** | |
CN101241472B (zh) | 映射管理方法及*** | |
CN101980177B (zh) | 一种操作Flash的方法和装置 | |
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 | |
US7558906B2 (en) | Methods of managing blocks in nonvolatile memory | |
US7552271B2 (en) | Nonvolatile memory with block management | |
CN102841761B (zh) | 存储*** | |
CN101154190B (zh) | 映射信息管理设备和方法 | |
CN102693184B (zh) | 处理具有非易失性存储器的***的动态和静态数据 | |
CN101263462B (zh) | 具有区块管理的非易失性存储器 | |
CN100426259C (zh) | 一种存储器文件数据虚拟存取方法 | |
CN101606133A (zh) | 具有连续逻辑地址空间接口的直接数据文件***的使用 | |
CN106708751A (zh) | 包括用于多模操作的多分区的存储装置及其操作方法 | |
CN106708424A (zh) | 对用户数据执行选择性底层暴露映射的设备和方法 | |
CN101238431A (zh) | 大容量数据存储*** | |
US20150186259A1 (en) | Method and apparatus for storing data in non-volatile memory | |
US20110022807A1 (en) | Write once recording device | |
WO1999021093B1 (en) | Improved flash file system | |
KR20100030602A (ko) | 프로세서로부터 메모리로의 액세스를 관리하는 메모리 관리 장치를 포함하는 정보 처리 장치 및 메모리 관리 방법 | |
CN107239526A (zh) | 文件***实现方法、碎片整理方法、操作位置定位方法 | |
CN103942011A (zh) | 一种差量快照***及其使用方法 | |
KR20130075018A (ko) | 플래시 메모리 파일 시스템에 적용 가능한 데이터 업데이트 장치 및 방법 | |
CN101571869A (zh) | 一种智能卡的文件存储、读取方法及装置 | |
JP4547028B2 (ja) | ブロック管理を伴う不揮発性メモリ |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C02 | Deemed withdrawal of patent application after publication (patent law 2001) | ||
WD01 | Invention patent application deemed withdrawn after publication |