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

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

Info

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
Application number
CNA2008100077703A
Other languages
English (en)
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 CNA2008100077703A priority Critical patent/CN101251788A/zh
Publication of CN101251788A publication Critical patent/CN101251788A/zh
Priority to CN2008101702063A priority patent/CN101382873B/zh
Priority to US12/257,620 priority patent/US8386746B2/en
Pending legal-status Critical Current

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 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所述的储存单元管理***,其特征在于,该处理模块还将更新后的该特定区块映射表写入至该储存单元中。
CNA2008100077703A 2008-03-07 2008-03-07 储存单元管理方法及*** Pending CN101251788A (zh)

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)

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

* 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
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)

* 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
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

Cited By (4)

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