CN110457231B - 用来管理一记忆装置的方法以及其相关的记忆装置 - Google Patents
用来管理一记忆装置的方法以及其相关的记忆装置 Download PDFInfo
- Publication number
- CN110457231B CN110457231B CN201910500269.9A CN201910500269A CN110457231B CN 110457231 B CN110457231 B CN 110457231B CN 201910500269 A CN201910500269 A CN 201910500269A CN 110457231 B CN110457231 B CN 110457231B
- Authority
- CN
- China
- Prior art keywords
- page
- block
- page address
- physical
- processing unit
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
- 238000000034 method Methods 0.000 title claims abstract description 50
- 230000015654 memory Effects 0.000 claims abstract description 75
- 238000012545 processing Methods 0.000 description 210
- 238000005192 partition Methods 0.000 description 11
- 238000004891 communication Methods 0.000 description 10
- 239000000284 extract Substances 0.000 description 7
- 230000005540 biological transmission Effects 0.000 description 6
- 238000005516 engineering process Methods 0.000 description 6
- 239000007787 solid Substances 0.000 description 5
- 238000010586 diagram Methods 0.000 description 4
- 238000012546 transfer Methods 0.000 description 4
- 230000003321 amplification Effects 0.000 description 2
- 230000008901 benefit Effects 0.000 description 2
- 238000003199 nucleic acid amplification method Methods 0.000 description 2
- 230000003068 static effect Effects 0.000 description 2
- 230000009286 beneficial effect Effects 0.000 description 1
- 229910002056 binary alloy Inorganic materials 0.000 description 1
- 230000000295 complement effect Effects 0.000 description 1
- 230000007423 decrease Effects 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 230000006870 function Effects 0.000 description 1
- 238000013507 mapping Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000013519 translation Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/0223—User address space allocation, e.g. contiguous or non contiguous base addressing
- G06F12/023—Free address space management
- 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
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/10—Address translation
- G06F12/1009—Address translation using page tables, e.g. page table structures
-
- 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/7207—Details relating to flash memory management management of metadata or control data
-
- 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/7208—Multiple device management, e.g. distributing data over multiple flash devices
-
- 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/7209—Validity control, e.g. using flags, time stamps or sequence numbers
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Memory System (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
- Read Only Memory (AREA)
- Static Random-Access Memory (AREA)
Abstract
本发明涉及一种用来管理一记忆装置的方法以及其相关的记忆装置,所述记忆装置包含至少一非遗失性内存组件,非遗失性内存组件包含多个区块,所述方法包含:记录这些区块中的至少一区块的使用信息;以及依据使用信息决定是否抹除这些区块的一部分,其中使用信息包含有效/无效页数量表,用来记录这些区块各自的有效/无效页数量,因此,本发明的方法与记忆装置可依据使用信息来有效率地管理区块的使用。
Description
本申请是申请日为2009年08月27日、申请号为200910172850.9(分案申请号为201610265290.1)、发明创造名称为“用来管理一记忆装置的方法以及其相关的记忆装置”的中国发明申请的分案申请。
技术领域
本发明涉及数据通信中闪存(Flash Memory)的控制技术领域,更具体地说,涉及一种用来管理一记忆装置的方法以及其相关的记忆装置。
背景技术
当一主装置存取一记忆装置例如固态硬盘(Solid State Drive,SSD)时,该主装置于典型状况下会送出一存取指令与至少一对应的逻辑地址至该记忆装置。该记忆装置的一控制器接收该逻辑地址并藉由利用一逻辑实体地址链结表将该逻辑地址转换为一实体地址。如此,该控制器藉由利用该实体地址来存取该记忆装置的至少一物理内存组件。例如:该内存组件可用一个或多个闪存芯片(为了简明起见,其可称为快闪芯片)来实施。
该逻辑实体地址链结表可依照该内存组件中的一记忆单位来建立。例如:该逻辑实体地址链结表可依照区块或页来建立。当该逻辑实体地址链结表依照区块来建立时,该逻辑实体地址链结表可称为逻辑实体区块地址链结表。当该逻辑实体地址链结表依照页来建立时,该逻辑实体地址链结表可称为逻辑实体页地址链结表。另外,一逻辑实体页地址链结表可称为全局页地址链结表,其包含关于该记忆装置中的多个区块(或全部的区块)的诸页的链结关系。
假设该内存组件具有X个实体区块,且每一实体区块具有Y个实体页。在该逻辑实体地址链结表依照区块来建立的状况下,该相关的逻辑实体区块地址链结表的建立可透过读取每一实体区块的一页所储存的一逻辑区块地址以及记录该实体区块与相关的逻辑区块之间的关系来实现。为了建立该逻辑实体区块地址链结表,必须读取分别对应于该X个实体区块的X页,其中所需时间假设为x秒。
在该逻辑实体地址链结表依照页来建立的状况下,该相关的全局页地址链结表的建立可透过读取全部的实体区块的每一实体页所储存的一逻辑页地址以及记录该实体页与该相关的逻辑页之间的关系来实现。为了建立该全局页地址链结表,必须读取至少X·Y页,需要x·Y秒。若一区块具有1024页,则建立该全局页地址链结表所需时间是建立该逻辑实体区块地址链结表所需时间的1024倍,即1024·x秒;由于处理速度实在太慢了,此为令人无法接受的处理时间。亦即,当按照此方式实施该全局页地址链结表时,存取该记忆装置的整体效能会被拖垮。因此,需要一新颖的方法以便有效率地建立该逻辑实体地址链结表,并且需要相关方法以便管理透过该新颖的方法来运作的记忆装置。
发明内容
本发明要解决的技术问题在于,针对现有技术的上述缺陷,提供一种用来管理一记忆装置的方法以及其相关的记忆装置,以针对该记忆装置的一备用区(Spare Region)与一数据区的安排进行优化。
本发明解决其技术问题所采用的技术方案之一是:构造一种用来管理一记忆装置的方法,该记忆装置包含至少一非遗失性内存组件,每一非遗失性内存组件包含多个区块,该方法包含:
自一主装置接收一第一存取指令;
分析该第一存取指令以取得属于一第一逻辑区块的一第一主装置地址;
将该第一主装置地址链结至一实体区块;
自该主装置接收一第二存取指令;
分析该第二存取指令以取得属于一第二逻辑区块的一第二主装置地址,其中该第二逻辑区块异于该第一逻辑区块;以及
将该第二主装置地址链结至该实体区块。
优选的,该第一主装置地址固有地属于该第一逻辑区块,且该第二主装置地址固有地属于该第二逻辑区块。
优选的,该方法还包含:
分析该第一存取指令以取得一第一数据;
分析该第二存取指令以取得一第二数据;
将该第一数据写入该实体区块;以及
将该第二数据写入该实体区块。
优选的,该第一主装置地址链结至该实体区块的至少一第一页,且该第二主装置地址链结至该实体区块的至少一第二页。
一种用来管理一记忆装置的方法,该记忆装置包含至少一非遗失性内存组件,每一非遗失性内存组件包含多个区块,该方法包含:
自一主装置接收一第一存取指令;
分析该第一存取指令以取得属于一逻辑区块的一第一主装置地址;
将该第一主装置地址链结至一第一实体区块的至少一页;
自该主装置接收一第二存取指令;
分析该第二存取指令以取得属于该逻辑区块的一第二主装置地址;以及
将该第二主装置地址链结至一第二实体区块的至少一页,其中该第二实体区块异于该第一实体区块。
优选的,该第一主装置地址与该第二主装置地址固有地属于该逻辑区块。
优选的,该方法还包含:
分析该第一存取指令以取得一第一数据;
分析该第二存取指令以取得一第二数据;
将该第一数据写入该第一实体区块;以及
将该第二数据写入该第二实体区块。
优选的,该第一主装置地址链结至该第一实体区块的至少一第一页,且该第二主装置地址链结至该第二实体区块的至少一第二页。
一种用来管理一记忆装置的方法,该记忆装置包含至少一非遗失性内存组件,每一非遗失性内存组件包含多个区块,该方法包含:
提供至少一局部页地址链结表给该记忆装置的至少一区块,其中该至少一局部页地址链结表包含多个页的实体页地址与逻辑页地址之间的链结关系;以及
依据该至少一局部页地址链结表建立该记忆装置的一全局页地址链结表;
其中,提供至少一局部页地址链结表给该记忆装置的至少一区块的步骤包含:
针对该局部页地址链结表建立一暂时局部页地址链结表,其中该暂时局部页地址链结表对应于该记忆装置的写入运作;以及
暂时地在该记忆装置的一遗失性内存中储存该暂时局部页地址链结表,并且,若该区块中一页的一实体页地址与一逻辑页地址之间的任何链结关系改变,则更新该暂时局部页地址链结表。
优选的,在该区块中的数据页被完全写入之前,该暂时局部页地址链结表暂时地被储于该记忆装置的遗失性内存且被更新。
优选的,其中,提供至少一局部页地址链结表给该记忆装置的至少一区块的步骤还包含:
复制该暂时局部页地址链结表以建立该局部页地址链结表。
优选的,该暂时局部页地址链结表的一字段的排列顺位代表一实体页地址,且该字段的内容代表一相关的逻辑页地址。
一种记忆装置,包含:
至少一非遗失性内存组件,每一非遗失性内存组件包含多个区块;以及
一处理单元,用来依据内嵌于该处理单元或接收自该处理单元之外的一程序代码来管理该记忆装置,其中该处理单元用于提供至少一局部页地址链结表给该记忆装置的至少一区块,该局部页地址链结表包含多个页的实体页地址与逻辑页地址之间的链结关系,其中该处理单元用于依据该至少一局部页地址链结表建立该记忆装置的一全局页地址链结表;
其中该处理单元针对该局部页地址链结表建立一暂时局部页地址链结表,该暂时局部页地址链结表对应于该记忆装置的写入运作;
在该区块中的数据页被完全写入之前,该处理单元暂时地在该记忆装置的一遗失性内存中储存该暂时局部页地址链结表;以及
若该区块中一页的一实体页地址与一逻辑页地址之间的任何链结关系改变时,则该处理单元更新该暂时局部页地址链结表。
优选的,在该区块中的数据页被完全写入之前,该暂时局部页地址链结表暂时地被储存于遗失性内存且被更新。
优选的,该处理单元复制该暂时局部页地址链结表以建立该局部页地址链结表。
优选的,该暂时局部页地址链结表的一字段的排列顺位代表一实体页地址,且该字段的内容代表一相关的逻辑页地址。
一种用来管理一记忆装置的方法,该记忆装置包含至少一非遗失性内存组件,每一非遗失性内存组件包含多个区块,该方法包含:
提供至少一局部页地址链结表给该记忆装置的至少一区块,其中该局部页地址链结表包含该至少一区块的至少一实体页地址与至少一逻辑页地址之间的链结关系;以及
依据该至少一局部页地址链结表建立该记忆装置的一全局页地址链结表。
优选的,提供至少一局部页地址链结表给该记忆装置的至少一区块的步骤包含:
针对该局部页地址链结表建立一暂时局部页地址链结表,其中该暂时局部页地址链结表对应于该记忆装置的写入运作。
优选的,当该区块中至少一数据页已被写入时,该局部页地址链结表被建立。
优选的,当该区块中的全部数据页已被写入时,该局部页地址链结表被建立。
优选的,该局部页地址链结表的一字段的排列顺位代表一实体页地址,且该字段的内容代表一相关的逻辑页地址。
优选的,该局部页地址链结表位于该区块。
优选的,该方法还包含:将该局部页地址链结表存入该区块中的一预定页。
优选的,提供至少一局部页地址链结表给该记忆装置的至少一区块的步骤还包含:
分别提供多个局部页地址链结表给该记忆装置的多个区块;
其中依据该局部页地址链结表建立该记忆装置的该全局页地址链结表的步骤还包含:
依据这些局部页地址链结表建立该全局页地址链结表。
优选的,依据该局部页地址链结表建立该记忆装置的该全局页地址链结表的步骤包含:
读取这些局部页地址链结表中的一者以更新该全局页地址链结表。
优选的,依据该局部页地址链结表建立该记忆装置的该全局页地址链结表的步骤包含:
读取该至少一局部页地址链结表中的每一者以建立该全局页地址链结表。
优选的,依据该局部页地址链结表建立该记忆装置的该全局页地址链结表的步骤包含:
自该至少一局部页地址链结表读取一第一页的一第一实体页地址与一第一逻辑页地址之间的一第一链结关系;
将该第一链结关系写入该全局页地址链结表;
自该至少一局部页地址链结表读取该第一页的另一实体页地址与该第一逻辑页地址之间的一第二链结关系;以及
将该第二链结关系写入该全局页地址链结表以更新该全局页地址链结表。
优选的,该至少一局部页地址链结表包含多个局部页地址链结表;以及该第一链结关系是读取自该至少一局部页地址链结表的一第一局部页地址链结表,且该第二链结关系是读取自该至少一局部页地址链结表的一第二局部页地址链结表。
优选的,该全局页地址链结表的一字段的排列顺位代表一逻辑页地址,且该字段的内容代表一相关的实体页地址。
优选的,该局部页地址链结表中的逻辑页地址的范围大于该区块中的页数。
一种记忆装置,包含:
至少一非遗失性内存组件,每一非遗失性内存组件包含多个区块;以及
一处理单元,用来依据内嵌于该处理单元或接收自该处理单元之外的一程序代码来管理该记忆装置,其中该处理单元用来提供至少一局部页地址链结表给该记忆装置的至少一区块,该局部页地址链结表包含该至少一区块的至少一实体页地址与至少一逻辑页地址之间的链结关系;
其中该处理单元用来依据该至少一局部页地址链结表建立该记忆装置的一全局页地址链结表。
优选的,该处理单元针对该局部页地址链结表建立一暂时局部页地址链结表,其中该暂时局部页地址链结表对应于该记忆装置的写入运作。
优选的,当该区块中至少一数据页已被写入时,该处理单元建立该局部页地址链结表。
优选的,当该区块中的全部数据页已被写入时,该处理单元建立该局部页地址链结表。
优选的,该局部页地址链结表的一字段的排列顺位代表一实体页地址,且该字段的内容代表一相关的逻辑页地址。
优选的,该局部页地址链结表位于该区块。
优选的,该处理单元将该局部页地址链结表存入该区块中的一预定页。
优选的,该处理单元分别提供多个局部页地址链结表给该记忆装置的多个区块;以及该处理单元依据该局部页地址链结表建立该全局页地址链结表。
优选的,该处理单元读取该至少一局部页地址链结表中的一者以更新该全局页地址链结表。
优选的,该处理单元读取该局部页地址链结表中的每一者以建立该全局页地址链结表。
优选的,该处理单元自该至少一局部页地址链结表读取一第一页的一第一实体页地址与一第一逻辑页地址之间的一第一链结关系、将该第一链结关系写入该全局页地址链结表、自该至少一局部页地址链结表读取该第一页的另一实体页地址与该第一逻辑页地址之间的一第二链结关系、以及将该第二链结关系写入该全局页地址链结表以更新该全局页地址链结表。
优选的,该至少一局部页地址链结表包含多个局部页地址链结表;以及该第一链结关系是读取自该至少一局部页地址链结表的一第一局部页地址链结表,且该第二链结关系是读取自该至少一局部页地址链结表的一第二局部页地址链结表。
优选的,该全局页地址链结表的一字段的排列顺位代表一逻辑页地址,且该字段的内容代表一相关的实体页地址。
优选的,该局部页地址链结表中的逻辑页地址的范围系大于该区块中的页数。
一种用来管理一记忆装置的方法,该记忆装置包含至少一非遗失性内存组件,每一非遗失性内存组件包含多个区块,该方法包含:
自一主装置接收一第一存取指令;
分析该第一存取指令以取得一第一主装置地址;
将该第一主装置地址链结至一实体区块;
自该主装置接收一第二存取指令;
分析该第二存取指令以取得一第二主装置地址;以及
将该第二主装置地址链结至该实体区块;
其中该第一主装置地址与该第二主装置地址之间的差值大于该实体区块的页数。
优选的,该方法还包含:
分析该第一存取指令以取得一第一数据;
分析该第二存取指令以取得一第二数据;
将该第一数据存入该实体区块;以及
将该第二数据存入该实体区块。
优选的,该第一主装置地址链结至该实体区块的至少一第一页,且该第二主装置地址链结至该实体区块的至少一第二页。
一种用来管理一记忆装置的方法,该记忆装置包含至少一非遗失性内存组件,每一非遗失性内存组件包含多个区块,该方法包含:
自一主装置接收一第一存取指令;
分析该第一存取指令以取得一第一主装置地址;
将该第一主装置地址链结至一第一实体区块的至少一页;
自该主装置接收一第二存取指令;
分析该第二存取指令以取得一第二主装置地址;以及
将该第二主装置地址链结至一第二实体区块的至少一页,其中该第二实体区块异于该第一实体区块;
其中该第一主装置地址与该第二主装置地址之间的差值小于该第一实体区块与该第二实体区块中的任一者的页数。
优选的,该方法还包含:
分析该第一存取指令以取得一第一数据;
分析该第二存取指令以取得一第二数据;
将该第一数据存入该第一实体区块;以及
将该第二数据存入该第二实体区块。
优选的,该第一主装置地址链结至该第一实体区块的至少一第一页,且该第二主装置地址链结至该第二实体区块的至少一第二页。
一种用来管理一记忆装置的方法,该记忆装置包含至少一非遗失性内存组件,每一非遗失性内存组件包含多个区块,该方法包含:
记录至少一区块的使用信息;以及
依据该使用信息决定是否抹除这些区块的一部分;
其中该使用信息包含一有效/无效页数量表,用来记录这些区块各自的有效/无效页数量。
一种记忆装置,包含:
至少一非遗失性内存组件,每一非遗失性内存组件包含多个区块;以及
一处理单元,用来依据内嵌于该处理单元或接收自该处理单元之外的一程序代码来管理该记忆装置,其中该处理单元用来记录至少一区块的使用信息;
其中该处理单元依据该使用信息决定是否抹除这些区块的一部分;以及该使用信息包含一有效/无效页数量表,用来记录这些区块各自的有效/无效页数量。
一种用来管理一记忆装置的方法,该记忆装置包含至少一非遗失性内存组件,每一非遗失性内存组件包含多个区块,该方法包含:
记录这些区块中的至少一个区块的使用信息;以及
依据该使用信息抹除这些区块中的至少一特定区块;
其中该使用信息包含数量信息,用来代表该至少一特定区块的有效/无效页数量。
优选的,该数量信息包含这些区块各自的有效/无效页数量。
一种记忆装置,包含:
至少一非遗失性内存组件,每一非遗失性内存组件包含多个区块;以及
一处理单元,用来依据内嵌于该处理单元或接收自该处理单元之外的一程序代码来管理该记忆装置,其中该处理单元用来记录这些区块中的至少一区块的使用信息,且用来依据该使用信息控制针对这些区块中的至少一特定区块的一抹除运作;
其中该使用信息包含数量信息,用来代表该至少一特定区块的有效/无效页数量。
优选的,该数量信息包含这些区块各自的有效/无效页数量。
一种用来管理一记忆装置的方法,该记忆装置包含至少一非遗失性内存组件,每一非遗失性内存组件包含多个区块,该方法包含:
记录这些区块中的至少一区块的使用信息;以及
依据该使用信息抹除这些区块中的至少一特定区块;
其中该使用信息包含页数信息,用来代表该至少一特定区块的有效连结页的数量。
优选的,该页数信息包含这些区块各自的有效连结页的数量。
一种记忆装置,包含:
至少一非遗失性内存组件,每一非遗失性内存组件包含多个区块;以及
一处理单元,用来依据内嵌于该处理单元或接收自该处理单元之外的一程序代码来管理该记忆装置,其中该处理单元系用来记录这些区块中的至少一区块的使用信息,且用来依据该使用信息控制针对这些区块中的至少一特定区块的一抹除运作;
其中该使用信息包含页数信息,用来代表该至少一特定区块的有效连结页的数量。
优选的,该页数信息包含这些区块各自的有效连结页的数量。
一种用来管理一记忆装置的方法,该记忆装置包含至少一非遗失性内存组件,每一非遗失性内存组件包含多个区块,该多个区块分别包含多页,该方法包含:
记录至少一区块的有效/无效页位置信息;以及
依据该有效/无效页位置信息移动该区块中的至少一有效页内的有效数据;
其中该区块为一抹除单位。
优选的,该有效/无效页位置信息包含该区块中的该有效数据的相对位置信息。
优选的,该有效/无效页位置信息包含多个位,每一位的排列顺位代表该区块中的一对应页的页地址偏移,以及所述每一位指出该区块中的该对应页是否为有效页或无效页。
优选的,该方法还包含:
在该记忆装置进行关机之前,将该有效/无效页位置信息存入该至少一非遗失性内存组件。
优选的,记录该至少一区块的有效/无效页位置信息的步骤另包含:
在该记忆装置开机之后,搜寻一页地址链结表。
实施本发明的方法及装置,具有以下有益效果:本发明的方法与装置可大幅地省下建立逻辑实体地址链结表的时间,诸如建立一全局页地址链结表的时间。因此,本发明提供较习知技术更佳的效能。
本发明的方法与装置可于存取该些页期间记录使用信息,而因此可依据该使用信息来有效率地管理全部的区块的使用。于是,该备用区与该数据区的安排可被优化。
附图说明
下面将结合附图及实施例对本发明作进一步说明,附图中:
图1为是本发明一第一实施例的一种记忆装置的示意图;
图2A是图1所示的非遗失性内存组件中之一者的一区块当中的一局部页地址链结表,其中该非遗失性内存组件于本实施例中为快闪芯片;
图2B比较图2A所示的局部页地址链结表的一维数组示例与二维数组示例;
图3A至图3F分别是本发明一实施例中关于图1所示的记忆装置的一个全局页地址链结表的数个范例版本;
图4是本发明一实施例中关于图2A所示的快闪芯片的一个区块中的一局部页地址链结表;
图5A至图5B分别是图4所示的实施例中关于图1所示的记忆装置的全局页地址链结表的数个范例版本;
图6是本发明一实施例中关于图1所示的非遗失性内存组件中之一者的内容安排,其中该非遗失性内存组件于本实施例中为快闪芯片;
图7A至图7D是本发明一实施例中关于图1所示的非遗失性内存组件中的实体地址,其中该些非遗失性内存组件于本实施例中为多个快闪芯片;
图8是用来管理图7A至图7D所示的快闪芯片的一数据区与一备用区(SpareRegion);
图9A至图9D分别是图7A至图7D所示的实施例中的一全局页地址链结表的数个范例版本;
图10A至图10F分别是图7A至图7D所示的实施例中的一有效页数量表的数个范例版本;
图11是本发明一实施例中关于图7A至图7D所示的快闪芯片的一个有效页位置表。
【主要组件符号说明】
100 | 记忆装置 |
110 | 处理单元 |
120 | 遗失性内存 |
130 | 传输接口 |
140_0,140_1,…,140_N | 非遗失性内存组件 |
150 | 总线 |
具体实施方式
请参考图1,是依据本发明一第一实施例的一种记忆装置100的示意图。记忆装置100包含:一处理单元110,一遗失性(Volatile)内存120,一传输接口130,多个非遗失性(Non-volatile,NV)内存组件140_0、140_1、...、与140_N(例如:快闪芯片),以及一总线150。于典型状况下,于传输接口130耦接至一主装置(未显示于图1)之后,该主装置可透过传输接口130来存取(Access)记忆装置100。举例来说,该主装置可代表一个人计算机,例如一膝上型计算机或一桌面计算机。
处理单元110可依据内嵌于处理单元110中或接收自处理单元110之外的程序代码(未显示于图1)来管理记忆装置100。例如:该程序代码可为内嵌于处理单元110的硬件码,尤其是一只读存储器码(ROM code)。又例如:该程序代码可为接收自处理单元110之外的韧体码。尤其是,处理单元110用来控制遗失性内存120、传输接口130、非遗失性内存组件140_0、140_1、...、与140_N、以及总线150。本实施例的处理单元110可为一高级缩减指令集计算机机器(Advanced Reduced Instruction Set Computer Machine,Advanced RISCMachine,ARM)处理单元或一亚哥缩减指令集计算机核心(Argonaut RISC Core,ARC)处理单元。这只是为了说明目的而已,并非对本发明的限制。依据本实施例的不同的变化例,处理单元110可为其它种处理单元。
另外,遗失性内存120用来储存一全局页地址链结表(Global Page AddressLinking Table)、该主装置(未显示)所存取的资料、以及用来存取记忆装置100的其它所需信息。本实施例的遗失性内存120可为一动态随机存取内存(Dynamic Random AccessMemory,DRAM)或一静态随机存取内存(Static Random Access Memory,SRAM)。这只是为了说明目的而已,并非对本发明的限制。依据本实施例的不同的变化例,遗失性内存120可为其它种遗失性内存。
依据本实施例,图1所示的传输接口130用来传输数据以及该主装置与记忆装置100之间的指令,其中传输接口130符合一特定通讯标准诸如串行高级技术附件(SerialAdvanced Technology Attachment,SATA)标准、并列高级技术附件(Parallel AdvancedTechnology Attachment,PATA)标准、或通用串行总线(Universal Serial Bus,USB)标准。例如:记忆装置100是一设置于该主装置中的固态硬盘(Solid State Drive,SSD),且该特定通讯标准可以用来实施该主装置的内部通讯的一些典型通讯标准,诸如串行高级技术附件标准或并列高级技术附件标准。又例如:记忆装置100是一固态硬盘且位于该主装置之外,并且该特定通讯标准可以用来实施该主装置的外部通讯的一些典型通讯标准,诸如通用串行总线标准。这只是为了说明目的而已,并非对本发明的限制。依据本实施例的不同的变化例,记忆装置100可为一可携式记忆装置诸如一记忆卡,且该特定通讯标准可为用来实施一记忆卡的输入/输出接口的一些典型通讯标准,诸如安全数码(Secure Digital,SD)标准或小型快闪(Compact Flash,CF)标准。
另外,非遗失性内存组件140_0、140_1、...、与140_N用来储存数据,其中非遗失性内存组件140_0、140_1、...、与140_N可为(但不限于)NAND型快闪芯片。总线150用来耦接处理单元110、遗失性内存120、传输接口130、和非遗失性内存组件140_0、140_1、...、与140_N,以及用来进行其通讯。
依据本实施例,处理单元110可于记忆装置100中提供至少一局部页地址链结表(Local Page Address Linking Table)予记忆装置100的至少一区块(Block),其中该局部页地址链结表包含多个页的实体页地址与逻辑页地址之间的链结关系。于本实施例中,处理单元110于记忆装置100的写入运作期间建立该局部页地址链结表。处理单元110可另依据该局部页地址链结表建立上述的全局页地址链结表。例如:处理单元110自该至少一局部页地址链结表读取一特定页的一第一实体页地址与一第一逻辑页地址之间的一第一链结关系,然后将该第一链结关系记录进该全局页地址链结表。处理单元110可自该至少一局部页地址链结表另读取该特定页的一第二实体页地址与该第一逻辑页地址之间的一第二链结关系,然后将该第二链结关系写入/记录进该全局页地址链结表,以更新该全局页地址链结表。
尤其是,处理单元110于记忆装置100中分别提供多个局部页地址链结表予记忆装置100的多个区块。亦即,上述的至少一局部页地址链结表包含多个局部页地址链结表。处理单元110可另依据该些局部页地址链结表建立上述的全局页地址链结表。更明确而言,处理单元110可读取该些局部页地址链结表中之一者以更新上述的全局页地址链结表。例如:一第一实体页的第一链结关系读取自该些局部页地址链结表的一第一局部页地址链结表,而一第二实体页的第二链结关系读取自该些局部页地址链结表的一第二局部页地址链结表。该些局部页地址链结表的实施细节另参考图2A说明如下。
图2A是非遗失性内存组件140_0的一区块当中的一局部页地址链结表,其中为了简明起见,非遗失性内存组件140_0于本实施例中称为快闪芯片0。如图2A所示,快闪芯片0包含多个区块,例如本实施例中为区块0、1、2、...、M。请注意,一区块是一抹除单位。换言之,当需要抹除数据时,处理单元110同时抹除储存于该区块的全部数据。另外,一区块,诸如图2A所示的区块0,包含多个页。例如:快闪芯片0的区块0包含128页。在一区块诸如区块0当中,这些页被区分为两个分区,即用来储存数据的一数据分区以及用来储存一局部页地址链结表0的一表格分区。该区块的资料分区内的诸页可称为该区块的资料页。
依据本实施例,该数据分区内的页数以及该表格分区内的页数可依需要来订定。例如:页0、1、2、...、126用来储存数据,且该区块中剩下的页用来储存局部页地址链结表0。这只是为了说明目的而已,并非对本发明的限制。依据本实施例的一变化例,该资料分区可包含少于127页,且该表格分区可包含两页或更多页。依据本实施例的另一变化例,该区块内的总页数、该数据分区内的页数以及该表格分区内的页数可分别予以变化。请注意,一页是一写入单位。换言之,当需要写入数据时,处理单元110一次将相当于一页的资料写入一页。依据本实施例,图1所示的非遗失性内存组件140_0、140_1、...、与140_N分别称为快闪芯片0、1、...、与N,其中非遗失性内存组件140_0、140_1、...、与140_N中的每一区块可具有一局部页地址链结表。为了简明起见,只有快闪芯片0的区块0的局部页地址链结表0绘示于图2A,是因为每一局部页地址链结表的功能与运作都彼此相似。
于本实施例中,局部页地址链结表0被建立的时间点是当区块0中的全部数据页已被写入,也就是被完全写入(Fully Programmed)之时。然而,于区块0中的数据页被完全写入之前,处理单元110会暂时地在遗失性内存120中储存一暂时局部页地址链结表0;当区块0中一实体页地址与一逻辑页地址之间的任何链结关系改变时,处理单元110就更新暂时局部页地址链结表0。
依据本实施例,该暂时/非暂时局部页地址链结表(例如:该暂时局部页地址链结表0或局部页地址链结表0)的一字段(项目)的排列顺位代表一实体页地址,而此字段中的内容代表一相关的逻辑页地址。例如:假设iP与jP分别为图2A所示的暂时/非暂时局部页地址链结表的示例表格位置(iP,jP)当中的列数与行数,并且iP=0、1、...等且jP=0、1、...等。在图2A所示的暂时/非暂时局部页地址链结表的这个二维数组示例中,对应于第(iP*4+jP)个字段的示例表格位置(iP,jP)代表一实体页地址PPN,其可描述如下:
PPN=(PBN*DPC+iP*4+jP)
其中参数PBN表示讨论中的实体区块的实体区块编号(例如:PBN=0、1、2、...等,分别对应于区块0、1、2、...等),而参数DPC则表示每一区块的资料页数量(例如:于本实施例中为127)。这只是为了说明目的而已,并非对本发明的限制。为了便于理解,该暂时/非暂时局部页地址链结表可绘示为单一行,如图2B右半部所示。给定iP仍为列数且iP=0、1、...等,则在图2B右半部所示的这个一维数组示例当中,针对区块PBN的暂时/非暂时局部页地址链结表而言,对应于第iP个字段的示例表格位置iP代表一实体页地址(PBN*DPC+iP)。亦即,针对这个一维数组示例,上式可被重新改写如下:
PPN=(PBN*DPC+iP)
请注意,于本实施例中,局部页地址链结表0中的逻辑页地址的范围不大于区块0中的页数(于本实施例中即128)。这只是为了说明目的而已,并非对本发明的限制。依据本实施例的一变化例,一局部页地址链结表诸如局部页地址链结表0中的逻辑页地址的范围可大于一区块诸如区块0中的页数。
于图2A所示的暂时局部页地址链结表0或局部页地址链结表0当中,对应于第一字段的示例表格位置(0,0)(即左上角位置)代表实体页地址0x0000,对应于第二字段的示例表格位置(0,1)代表实体页地址0x0001,对应于第三字段的示例表格位置(0,2)代表实体页地址0x0002,对应于第四字段的示例表格位置(0,3)代表实体页地址0x0003,对应于第五字段的示例表格位置(1,0)代表实体页地址0x0004,如此这般。
依据图2A所示的实施例,当该主装置传送一指令0予处理单元110以在一逻辑页地址0x0002写入数据0时,处理单元110将数据0与逻辑页地址0x0002写入快闪芯片0的区块0的页0,其中资料0被写入页0的一数据字节区(Data Byte Region,于图2A中标示为“DBR”),而逻辑页地址0x0002则被写入页0的一备用字节区(Spare Byte Region,于图2A中标示为“SBR”)作为备用信息。另外,处理单元110将逻辑页地址0x0002写入该暂时局部页地址链结表0的第一字段(于本实施例中或为其示例表格位置(0,0),即第一列、第一行的示例表格位置),以藉此指出逻辑页地址0x0002链结/映像至快闪芯片0的区块0的页0,其实体页地址为0x0000。
相仿地,当该主装置接着传送一指令1予处理单元110以在一逻辑页地址0x0001写入数据1时,处理单元110将数据1与逻辑页地址0x0001写入快闪芯片0的区块0的页1,其中资料1被写入页1的一数据字节区(标示为“DBR”),且逻辑页地址0x0001被写入页1的一备用字节区(标示为“SBR”)作为备用信息。另外,处理单元110将逻辑页地址0x0001写入该暂时局部页地址链结表0的第二字段(于本实施例中或为其示例表格位置(0,1),即第一列、第二行的示例表格位置),以藉此指出逻辑页地址0x0001链结/映像到快闪芯片0的区块0的页1,其实体页地址为0x0001。之后,当该主装置传送一指令2予处理单元110以在逻辑页地址0x0002写入数据2时,处理单元110将数据2与逻辑页地址0x0002写入区块0的页2,其中资料2被写入页2的一数据字节区(标示为“DBR”),且逻辑页地址0x0002被写入页2的一备用字节区(标示为“SBR”)作为备用信息。另外,处理单元110将逻辑页地址0x0002写入该暂时局部页地址链结表0的第三字段(于本实施例中或为其示例表格位置(0,2),即第一列、第三行的示例表格位置),以藉此更新链结/映射关系:逻辑页地址0x0002链结/映像到快闪芯片0的区块0的页2,其实体页地址为0x0002。为了简明起见,后续各页的运作与前述相仿之处不再重复赘述。
请参考图2A的右上角部分,在以上运作之后,一系列的逻辑页地址{0x0002,0x0001,0x0002,0x0005,0x0003,0x0007,0x0010,0x0008,...,0x0000,0x0009,0x0004}遂被写入暂时局部页地址链结表0。当区块0当中的全部资料页(于本实施例即页0、1、2、...、126)均已被写入时,处理单元110复制暂时局部页地址链结表0以建立局部页地址链结表0。更明确而言,处理单元110将局部页地址链结表0写入快闪芯片0中的区块0的该表格分区(于本实施例即区块0中所剩的页127)。这只是为了说明目的而已,并非对本发明的限制。依据本实施例的一变化例,处理单元110可针对一区块中的一部分数据页写入一局部页地址链结表,而非针对该区块中的全部资料页。
于本变化例中,在写入一特定区块的数据页中的一第一部分之后,处理单元110可针对第一部分数据页写入一第一局部页地址链结表,其中该第一局部页地址链结表位于该第一部分数据页之后。在写入该特定区块的数据页中的一第二部分之后,处理单元110可针对第二部分数据页写入一第二局部页地址链结表。例如:该第二局部页地址链结表位于该第二部分数据页之后。又例如:该第二局部页地址链结表位于该特定区块的结尾处(例如:最后一页)。又例如:该第二局部页地址链结表位于该特定区块的次一区块的开始处(例如:该次一区块的第一页)。又例如:该第二局部页地址链结表位于该特定区块的次一区块的另一页(或其它某些页)。
图3A至图3F分别是本发明一实施例中关于记忆装置100的全局页地址链结表的数个范例版本。当处理单元110建立记忆装置100的全局页地址链结表时,处理单元110读取分别对应于记忆装置100各个区块的该些局部页地址链结表每一者,以建立该全局页地址链结表。例如:于记忆装置100中,若只有快闪芯片0的区块0与1已被完全写入,且若区块0的局部页地址链结表0以及区块1的全局页地址链结表1已被建立,则处理单元110读取局部页地址链结表0与1以建立该全局页地址链结表。
首先请参考图3A的左半部,依据本实施例,该全局页地址链结表的一字段的排列顺位代表一逻辑页地址,且此字段的内容代表一相关的实体页地址。例如:给定iL与jL分别为图3A左半部所示的全局页地址链结表的示例表格位置(iL,jL)的列数与行数,并且在此二维数组示例中iL=0、1、...等且jL=0、1、...等,则对应于第(iL*4+jL)个字段的示例表格位置(iL,jL)代表一逻辑页地址(iL*4+jL)。这只是为了说明目的而已,并非对本发明的限制。为了便于理解,该全局页地址链结表可绘示为单一行,如图3A的右半部所示;给定iL仍为列数且iL=0、1、...等,则于该全局页地址链结表的这个一维数组示例中,对应于第iL个字段的示例表格位置iL代表一逻辑页地址iL。
在图3A左半部所示的全局页地址链结表中,对应于第一字段的示例表格位置(0,0)(即左上角位置)代表逻辑页地址0x0000,对应于第二字段的示例表格位置(0,1)代表逻辑页地址0x0001,对应于第三字段的示例表格位置(0,2)代表逻辑页地址0x0002,对应于第四字段的示例表格位置(0,3)代表逻辑页地址0x0003,对应于第五字段的示例表格位置(1,0)代表逻辑页地址0x0004,如此这般。
当处理单元110建立该全局页地址链结表时,处理单元110读取图2A所示的局部页地址链结表0的第一字段并且取得逻辑页地址0x0002,而因此决定逻辑页地址0x0002链结到快闪芯片0的区块0的页0,其实体页地址为0x0000。如图3A所示,处理单元110将实体页地址0x0000(实体页0x0000)写入该全局页地址链结表的第三字段(即其二维数组示例的示例表格位置(0,2)),以指出逻辑页地址0x0002(逻辑页0x0002)链结到实体页地址0x0000。
接下来,处理单元110读取图2A所示的局部页地址链结表0的第二字段并取得逻辑页地址0x0001,而因此决定逻辑页地址0x0001链结到快闪芯片0的区块0的页1,其实体页地址为0x0001。如图3B所示,处理单元110将实体页地址0x0001写入该全局页地址链结表的第二字段,以指出逻辑页地址0x0001(逻辑页0x0001)链结到实体页地址0x0001(实体页0x0001)。
然后,处理单元110读取图2A所示的局部页地址链结表0的第三字段并取得逻辑页地址0x0002,而因此判定逻辑页地址0x0002链结到快闪芯片0的区块0的页2,其实体页地址为0x0002。如图3C所示,处理单元110将实体页地址0x0002写入(或更新)至该全局页地址链结表的第三字段,以指出逻辑页地址0x0002(逻辑页0x0002)链结到实体页地址0x0002(实体页0x0002)。
接下来,处理单元110读取图2A所示的局部页地址链结表0的第四字段并取得逻辑页地址0x0005,而因此判定逻辑页地址0x0005链结到快闪芯片0的区块0的页3,其实体页地址为0x0003。如图3D所示,处理单元110将实体页地址0x0003写入该全局页地址链结表的第六字段,以指出逻辑页地址0x0005(逻辑页0x0005)链结到实体页地址0x0003(实体页0x0003)。
之后,处理单元110读取图2A所示的局部页地址链结表0的第五字段并取得逻辑页地址0x0003,而因此判定逻辑页地址0x0003链结到快闪芯片0的区块0的页4,其实体页地址为0x0004。如图3E所示,处理单元110将实体页地址0x0004写入该全局页地址链结表的第四字段,以指出逻辑页地址0x0003(逻辑页0x0003)链结到实体页地址0x0004实体页0x0004)。后续各链结关系的相关运作与前述相仿之处不再重复赘述。于读取图2A所示的局部页地址链结表0的全部字段以及将相对应的实体页地址填入该全局页地址链结表的相关的字段之后,处理单元110建立该全局页地址链结表,如图3F所示。
图4是本发明一实施例中关于快闪芯片0的区块1中的局部页地址链结表1。于读取图2A所示的局部页地址链结表0的全部字段以及如图3F所示地将相对应的实体页地址填入该全局页地址链结表的相关的字段之后,处理单元110另读取区块1中的局部页地址链结表1以完成该全局页地址链结表。请注意,于本实施例中,当区块1的全部数据页已被写入时,处理单元110建立局部页地址链结表1。这只是为了说明目的而已,并非对本发明的限制。依据本实施例的一变化例,当一区块中至少一数据页(例如:一数据页或多个数据页)已被写入时,处理单元110可针对此区块建立一局部页地址链结表。于本变化例中,处理单元110针对此区块而建立该局部页地址链结表,尤其是针对该至少一数据页而建立该局部页地址链结表。例如:处理单元110针对少数数据页诸如此区块的实体页0与1而建立该局部页地址链结表,其中针对实体页0与1的该局部页地址链结表被建立且储存于后续的实体页,即实体页2。当建立(或更新)该全局页地址链结表时,在处理单元110于此区块的最后一页中找不到局部页地址链结表的状况下,处理单元110尝试找出此区块中最后写入的页。于本变化例中,处理单元110由最后一页开始往前面各页搜寻,以找出此区块中最后写入的页。于是,处理单元110自该区块中的最后写入的页读取该局部页地址链结表的全部字段,并将相对应的实体页地址填入该全局页地址链结表中的相关的字段,以完成/更新该全局页地址链结表。
依据图4所示的实施例,处理单元110读取全局页地址链结表1的第一字段并取得逻辑页地址0x0006,而因此判定逻辑页地址0x0006链结到快闪芯片0的区块1的页0,其实体页地址于本实施例中为0x0127。如图5A所示,处理单元110将实体页地址0x0127写入该全局页地址链结表的第七字段以指出逻辑页地址0x0006(逻辑页0x0006)链结到实体页地址0x0127(实体页0x0127)。
接下来,处理单元110读取图4所示的全局页地址链结表1的第二字段并取得逻辑页地址0x0002,而因此判定逻辑页地址0x0002链结到快闪芯片0的区块1的页1,其实体页地址为0x0128。如图5B所示,处理单元110将实体页地址0x0128写入(或更新)至该全局页地址链结表的第三字段以指出逻辑页地址0x0002(逻辑页0x0002)链结到实体页地址0x0128(实体页0x0128)。后续各链结关的相关运作与前述相仿之处不再重复赘述。于读取该些局部页地址链结表0与1的全部字段并将相对应的实体页地址填入该全局页地址链结表的相关的字段之后,处理单元110完成该全局页地址链结表。
本实施例的处理单元110并不藉由读取非遗失性内存组件140_0、140_1、...、与140_N的全部页(或全部记忆单位)来建立该全局页地址链结表,而只是藉由读取该些被完全或部分写入的区块中的少数局部页地址链结表,或是读取代表该些区块的少数局部页地址链结表。因此,依据本发明所实施的记忆装置必然具备比习知技术所实施者更佳的效率。
依据本实施例的一变化例,在非遗失性内存组件140_0、140_1、...、与140_N的全部数据区块的全部数据页被完全写入的状况下,处理单元110只读取分别对应于该些数据区块的该些局部页地址链结表以建立该全局页地址链结表。若非遗失性内存组件140_0、140_1、...、与140_N总共具有XD个数据区块,且每一数据区块具有YD个数据页,处理单元110读取XD个局部页地址链结表(其总数据量于典型状况下小于XD页)以建立该全局页地址链结表,而非读取XD·YD页。换言之,依据本发明建立该全局页地址链结表所需时间近似于建立该全局区块地址链结表所需时间。
依据本实施例的另一变化例,在一特定区块并非被完全写入(即该特定区块仅被部分写入)的状况下,于某一时刻该特定区块中并没有局部页地址链结表;然而在遗失性内存120中存在针对该特定区块的一暂时局部页地址链结表。在记忆装置100进行关机之前,本变化例的处理单元110可将该暂时局部页地址链结表写入该特定区块。例如:在记忆装置100开机并开始一起始程序之后,该主装置可读取储存于该特定区块的该局部页地址链结表,以建立或更新该全局页地址链结表。这只是为了说明目的而已,并非对本发明的限制。又例如:在记忆装置100开机并开始一起始程序之后,处理单元110可读取先前已写入该特定区块的某些页,尤其是,读取先前已写入该特定区块的每一页中的备用字节区,以建立或更新该全局页地址链结表。
在处理单元110读取写入该特定区块的该些页以建立或更新该全局页地址链结表的状况下,处理单元110必须从该特定区块读取小于YD页的数据。于是,若给定条件:非遗失性内存组件140_0、140_1、...、与140_N总共具有XFP个被完全写入的区块,且另具有一个内含YPP个已写入数据页的部分写入区块;则处理单元110为了完成该全局页地址链结表所必须读取的数据量小于(XFP+YPP)页。因此,针对建立该全局页地址链结表,依据本发明实施的记忆装置仍具备比习知技术所实施者更佳的效率。
依据上述的各个实施例的不同的变化例,处理单元110建立该全局页地址链结表的时间点可于记忆装置100的任一起始程序期间,或为因应使用者要求的任何时间。
依据上述的各个实施例的不同的变化例,该全局页地址链结表可被分割为储存于一个或多个非遗失性内存组件的多个部分表格(例如:该些部分表格分别储存于非遗失性内存组件140_0、140_1、...、与140_N)。每一分割后的部分表格可称为副全局页地址链结表。处理单元110可读取该全局页地址链结表的至少一个副全局页地址链结表(例如:一个副全局页地址链结表,一些副全局页地址链结表,或全部的副全局页地址链结表)并予以储存在遗失性内存120中;其各种实施变化可依据该全局页地址链结表的大小与遗失性内存120的大小来决定,或依据其它要求来决定。处理单元110可利用储存于遗失性内存120的副全局页地址链结表来进行上述的各个实施例所揭露的该些逻辑-至-实体地址转换运作。
图6是本发明一实施例中关于非遗失性内存组件140_0的内容安排,其中如前面所述,非遗失性内存组件140_0于本实施例中称为快闪芯片0。如图6所示,一页包含多个区段,例如:区段0、1、2、与3。一区段为最小读取单位,其于本实施例中可为512字节(Byte)。换言之,在一读取运作期间,处理单元110可读取一个区段或多个区段。
图7A至图7D是本发明一实施例中关于快闪芯片0、1、...、与N的实体地址;于本实施例中,N=3且M=1023。由于本实施例的实体地址可落入比上述揭露的某些实施例中所使用的地址范围[0x0000,0xFFFF]更为宽广的范围;为了简明起见,以下该些实体地址以十进制系统来绘示。这只是为了说明目的而已,并非对本发明的限制。依据本实施例的一变化例,该些实体地址可利用十六进制xt来绘示,其中相较于以上某些实施例,该些实体地址可具有更多位数。依据本实施例的另一变化例,该些实体地址可依需要而利用另一种进位系统来绘示。
针对该些实体区块地址,快闪芯片0的第一区块被视为快闪芯片0至3的第一区块,且被寻址(Address)为实体区块地址0,而因此可称为实体区块0。快闪芯片0的最后一区块被视为快闪芯片0至3的第1024个区块,且被寻址为实体区块地址1023,而因此可称为实体区块1023。快闪芯片1的第一区块被视为快闪芯片0至3的第1025个区块,且被寻址为实体区块地址1024,而因此可称为实体区块1024,如此这般。快闪芯片3的最后一区块被视为快闪芯片0至3的第4096个区块,且被寻址为实体区块地址4095,而因此可称为实体区块4095。于本实施例中,快闪芯片0至3的区块包含4组实体区块:{0,1,...,1023}、{1024,1025,...,2047}、{2048,2049,...,3071}、与{3072,3073,...,4095},即总共4096个实体区块。
针对该些实体页地址,实体区块0的第一页被视为快闪芯片0至3的第一页,且被寻址为实体页地址0,而因此可称为实体页0。实体区块0的最后一页被视为快闪芯片0至3的第128页,且被寻址为实体页地址127,而因此可称为实体页127。实体区块1的第一页被视为快闪芯片0至3的第129页,且被寻址为实体页地址128,而因此可称为实体页128,如此这般。实体区块4095的最后一页被视为快闪芯片0至3的第524288页,且被寻址为实体页地址524287,而因此可称为实体页524287。于本实施例中,快闪芯片0至3的诸页包含4096组实体页:{0,1,...,127}、{128,129,...,255}、...、与{524160,524161,...,524287},即总共524288个实体页。
图8是用来管理图7A至图7D所示的快闪芯片0至3的一数据区与一备用区(SpareRegion)。如图8所示,快闪芯片0至3在逻辑上被区分为该数据区与该备用区。该数据区用来储存数据,且在一开始可包含实体区块2、3、...、与4095。该备用区用来写入新资料,其中该备用区于典型状况下包含已被抹除的区块,且在一开始可包含实体区块0与1。在许多存取运作之后,该备用区可在逻辑上包含不同的一组实体区块,且该数据区可在逻辑上包含其它实体区块。例如:在许多存取运作之后,该备用区可包含实体区块4094与4095,且该数据区可包含实体区块0至4093。于另一实施例中,该备用区可包含实体区块0、1024、2048、与3096,即快闪芯片0至3中的每一快闪芯片包含在逻辑上属于该备用区的至少一区块。请注意,该数据区与该备用区各自的区块数量可按照使用者/设计者需求来决定。例如:该备用区可包含4个实体区块,且该数据区可包含4092个实体区块。
于写入运作期间,该主装置传送一指令C0予记忆装置100以于对应的主装置地址0000008至0000011写入4个区段的资料DS0至DS3。遗失性内存120暂时地储存数据DS0至DS3。处理单元110分析指令C0以执行对应于指令C0的写入运作。处理单元110将主装置地址0000008至0000011转换成相关的逻辑地址。处理单元110将主装置地址0000008除以一页的区段数,于本实施例中即除以4,并且取得一商数2与一余数0。商数2表示其逻辑页地址为2,而因此逻辑页地址2所指出的逻辑页可称为逻辑页2。另外,余数0表示数据DS0应被储存于一页的第一区段。处理单元110另将主装置地址0000008除以一区块的区段数,于本实施例中即除以512,并且取得一商数0与一余数8。商数0表示其逻辑区块地址为0,而因此逻辑区块地址0所指出的逻辑区块可称为逻辑区块0。
实作上,当该主装置地址以二进制系统来表示时,该些除法运作可藉由截去(Truncate)该主装置地址的一部分位(Bit)来进行。例如:当要将主装置地址0000008除以4时,处理单元110自该主装置地址的二进制表示法的诸位中抽取最后两位,即包含最低有效位(Least Significant Bit,LSB)的两个相邻/连续位,以取得余数0,并从该二进制表示法抽取其它位以取得商数2。另外,当要将主装置地址0000008除以512时,处理单元110可从该主装置地址的二进制表示法抽取最后九位,即包含最低有效位的九个相邻/连续位,以取得余数8,并从该二进制表示法抽取其它位以取得商数0。因此,于本实施例中,主装置地址0000008实质上包含(具有)逻辑页地址2与逻辑区块地址0的讯息。请注意,由于主装置地址0000008固有地(inherently)属于逻辑页2且固有地属于逻辑区块0,故本实施例的一变化例的处理单元110可藉由位位移(Bit-Shifting)来分析主装置地址0000008,而非实际地进行该些除法运作。
相仿地,本实施例的处理单元110决定主装置地址、0000009、0000010、与0000011的逻辑页地址均为2(即主装置地址0000009、0000010、与0000011全部固有地属于逻辑页2,或包含逻辑页地址2),且其诸逻辑区块地址均为0(即主装置地址0000009、0000010、与0000011还全部固有地属于逻辑区块0,或包含逻辑区块地址0)。另外,数据DS1、DS2、与DS3应分别被储存于一页的第二、第三、与第四区段。
于本实施例中,实体区块0最初被抹除且于逻辑上置于该备用区,处理单元110自该备用区提取(Pop)实体区块0,并将数据DS0至DS3分别写入实体页0的第一、第二、第三、与第四区段。处理单元110另将数值0记录于本实施例的该全局页地址链结表的第三字段,以指出逻辑页2链结到实体页0。图9A至图9D分别是本实施例中的全局页地址链结表的数个范例版本。本实施例的示例表格位置的排列与图3A至图3F所示者相似;因此,为了简明起见就不赘述其细节。请参考图9A所示的全局页地址链结表,实体页地址0已被写入第三字段,其指出逻辑页2链结到实体页0。另一种实施选择是,实体页地址0可被写入其一暂时局部页地址链结表的一对应的字段以指出逻辑与实体地址的链结关系。然后,该全局页地址链结表可对应地被更新。依据该暂时局部页地址链结表更新该全局页地址链结表的实施细节与上述的各个实施例相似。为了简明起见,以下各实施例仅绘示出该全局页地址链结表被更新以反映一新的逻辑-至-实体页地址链结关系(Logical-to-Physical Page AddressLinking Relationship);然而,熟悉此领域的人士于取得本发明诸实施例的教导时应可理解,该暂时局部页地址链结表亦可被更新以反映该新的逻辑-至-实体页地址链结关系,因此其相关叙述予以省略。
另外,处理单元110在存取该些页期间可记录使用信息。例如:该使用信息包含一有效页数量表,用来分别记录该些区块各自的有效页数量。这只是为了说明目的而已,并非对本发明的限制。依据本实施例的一变化例,该使用信息包含一无效页数量表,用来分别记录该些区块各自的无效页数量。实作上,由于每一完全写入区块包含一预定数量的页(例如:于本实施例中为128页),故同一完全写入区块的有效页数量与无效页数量会彼此互补。
依据本实施例,处理单元110将数值1记录于该有效页数量表的第一字段,以指出实体区块0含有1个有效页(即1页的有用数据;或换句话说,1页的有效数据)。请注意,处理单元110可将该全局页地址链结表与该有效页数量表储存于遗失性内存120。依此实施方式,在存取该快闪芯片期间,处理单元110可简便地将该全局页地址链结表与该有效页数量表予以更新。这只是为了说明目的而已,并非对本发明的限制。依据本实施例的一变化例,在记忆装置100进行关机之前,处理单元110可将该全局页地址链结表与该有效页数量表可从遗失性内存120读出并予以加载/储存于非遗失性内存组件140_0、140_1、...、与140_N中的一个或多个非遗失性内存组件。尤其是,处理单元110可将该全局页地址链结表与该有效页数量表储存于非遗失性内存组件140_0、140_1、...、与140_N的一个或多个链结区块(Link Block)。依此实施方式,在记忆装置100进行关机时,处理单元110可将该全局页地址链结表与该有效页数量表可予以保存。上述的每一个链结区块均为用来保存系统信息的一特定区块。当记忆装置100下一回开机时,处理单元110可简单地从该(些)链结区块取得该全局页地址链结表与该有效页数量表。
接下来,该主装置传送一指令C1予记忆装置100以将4个区段的数据DS4至DS7写入对应的主装置地址0000512至0000515。相仿地,处理单元110决定主装置地址0000512至0000515的逻辑页地址均为128(即主装置地址0000512至0000515全部属于逻辑页128,或包含逻辑页地址128),且其诸逻辑区块地址均为1(即主装置地址0000512至0000515还全部属于逻辑区块1,或包含逻辑区块地址1)。另外,数据DS4至DS7应分别被储存于一页的第一、第二、第三、与第四区段。由于实体页0已被写入,处理单元110将数据DS4至DS7分别写入实体页1(其紧随于实体页0的下一页)的第一、第二、第三、与第四区段。处理单元110另将数值1记录于图9A所示的全局页地址链结表的第129个字段中,以指出逻辑页128链结到实体页1。另外,处理单元110将数值2记录于该有效页数量表的第一字段(即处理单元110以数值2更新其第一字段),以指出实体区块0含有2个有效页(即2页的有效数据)。亦即,处理单元110增加实体区块0的有效页数量。这只是为了说明目的而已,并非对本发明的限制。在该有效页数量表被代换为上述的无效页数量表的状况下,处理单元110维持实体区块0的无效页数量的数值。
请注意,主装置地址0000512至0000515与主装置地址0000008至0000011属于不同的逻辑区块(例如:主装置地址0000512至0000515属于逻辑区块1,而主装置地址0000008至0000011则属于逻辑区块0),然而,这些主装置地址全部链结至同一实体区块中的相关的页,并且对应于主装置地址0000512至0000515的数据以及对应于主装置地址0000008至0000011的数据均被写入同一实体区块,于本实施例中即实体区块0。
于上述状况中,当一第一组主装置地址(例如:主装置地址0000512至0000515)属于一第一逻辑区块(例如:逻辑区块1)且一第二组主装置地址(例如:主装置地址0000008至0000011)属于一第二逻辑区块(例如:逻辑区块0)时,处理单元110可于同一实体区块(例如:实体区块0)一并写入对应于该第一组主装置地址的数据与对应于该第二组主装置地址的数据。这只是为了说明目的而已,并非对本发明的限制。依据本实施例的一变化例,当一第一组主装置地址属于一第一逻辑区块时,处理单元110可将对应于该第一组主装置地址的数据中的一第一部分与一第二部分分别写入不同的实体区块,其中该数据的第一部分与第二部分并不重迭。
于本实施例中,该主装置接着传送一指令C2予记忆装置100以将4个区段的数据DS8至DS11写入对应的主装置地址0000004至0000007。相仿地,处理单元110决定主装置地址0000004至0000007的逻辑页地址均为1(即主装置地址0000004至0000007全部属于逻辑页1,或包含逻辑页地址1),且其诸逻辑区块地址均为0(即主装置地址0000004至0000007全部属于逻辑区块0,或包含逻辑区块地址0)。另外,数据DS8至DS11应分别被储存于一页的第一、第二、第三、与第四区段。由于实体页1已被写入,处理单元110将数据DS8至DS11分别写入实体页2(其紧随于实体页1的下一页)的第一、第二、第三、与第四区段。处理单元110另将数值2记录于图9A所示的该全局页地址链结表的第二字段,以指出逻辑页1链结到实体页2。另外,处理单元110将数值3记录于该有效页数量表的第一字段(即处理单元110以数值3更新其第一字段),以指出实体区块0含有3个有效页(即3页的有效数据)。亦即,处理单元110增加实体区块0的有效页数量。这只是为了说明目的而已,并非对本发明的限制。在该有效页数量表被代换为上述的无效页数量表的状况下,处理单元110维持实体区块0的无效页数量的数值。
图10A至图10F分别是本实施例中的有效页数量表的数个范例版本。首先请参考图10A的左半部,该有效页数量表的一字段的排列顺位代表一实体区块地址,而此字段中的内容代表一相关的有效页数量。例如:于本实施例中,给定iPBLK与jPBLK分别为该有效页数量表的示例表格位置(iPBLK,jPBLK)当中的列数与行数,并且iPBLK=0、1、...等且jPBLK=0、1、...等,则对应于第(iPBLK*4+jPBLK)个字段的示例表格位置(iPBLK,jPBLK)代表一实体区块地址(iPBLK*4+jPBLK)。这只是为了说明目的而已,并非对本发明的限制。为了便于理解,该有效页数量表可绘示为单一行,如图10A的右半部所示。给定iPBLK仍为列数且iPBLK=0、1、...等,于该有效页数量表的这个一维数组示例当中,对应于第iPBLK个字段的示例表格位置iPBLK代表一实体区块地址(iPBLK)。于是在本实施例中执行指令C2之后,该全局页地址链结表与该有效页数量表分别如图9A与图10A所示地被更新了。
接下来,该主装置传送一指令C3予记忆装置100以将4个区段的数据DS0’至DS3’写入/更新于对应的主装置地址0000008至00000011。相仿地,处理单元110决定主装置地址0000008至00000011的逻辑页地址均为2(即主装置地址0000008至0000011全部属于逻辑页2,或包含逻辑页地址2),且其诸逻辑区块地址均为0(即主装置地址0000008至0000011全部属于逻辑区块0,或包含逻辑区块地址0)。另外,数据DS0’至DS3’应分别被储存于一页的第一、第二、第三、与第四区段。由于实体页2已被写入,处理单元110将数据DS0’至DS3’分别写入实体页3(其紧随于实体页2的下一页)的第一、第二、第三、与第四区段。处理单元110另将数值3记录/更新于图9B所示的全局页地址链结表的第三字段,以指出逻辑页2现在链结到实体页3。另外,处理单元110仍将数值3记录于图10B所示的有效页数量表的第一字段,以指出实体区块0仍含有3个有效页。亦即,处理单元110维持实体区块0的有效页数量的数值3而不予改变。这只是为了说明目的而已,并非对本发明的限制。在该有效页数量表被代换为上述的无效页数量表的状况下,处理单元110增加实体区块0的无效页数量。
虽然有4页(即实体页0至3)已被写入实体区块0,当中只有3个实体页(即实体页1至3)含有有效数据。由于逻辑页2的数据已被更新,实体页0不含有效数据且可被视为一含有无效数据的无效页。于是在执行指令C3之后,该全局页地址链结表与该有效页数量表分别如第9B图与图10B所示地被更新了。
请参考图9C与图10C,于本实施例中,假设在一些写入运作另被进行之后,实体区块0的诸页已经全被写入,且实体区块0的有效页数量为100。该主装置传送一指令C4予记忆装置100以将4个区段的数据DS0”至DS3”写入/更新对应的主装置地址0000008至00000011。相仿地,处理单元110决定主装置地址0000008至00000011的逻辑页地址均为2(即主装置地址0000008至0000011全部属于逻辑页2,或包含逻辑页地址2),且其诸逻辑区块地址均为0(即主装置地址0000008至0000011全部属于逻辑区块0,或包含逻辑区块地址0)。另外,数据DS0”至DS3”应分别被储存于一页的第一、第二、第三、与第四区段。由于实体区块0的全部页已被写入,处理单元110将数据DS0”至DS3”分别写入实体页128(其紧随于实体页127的下一页)的第一、第二、第三、与第四区段。处理单元110另将数值128记录/更新于图9D所示的全局页地址链结表的第三字段,以指出逻辑页2现在链结到实体页128。在此,实体页3不包含有效数据且可被视为一含有无效数据的无效页。另外,处理单元110将数值1记录于该有效页数量表的第二字段以指出实体区块1含有1个有效页(即1页的有效数据),并将数值99记录/更新于该有效页数量表的第一字段以指出实体区块0现在含有99个有效页(即99页的有效数据)。亦即,处理单元110减少实体区块0的有效页数量。这只是为了说明目的而已,并非对本发明的限制。在该有效页数量表被代换为上述的无效页数量表的状况下,处理单元110增加实体区块0的无效页数量。
于是在执行指令C4之后,该全局页地址链结表与该有效页数量表分别如图9D与图10D所示地被更新了。
接下来,该主装置传送一指令C5予记忆装置100以读取对应于主装置地址0000008至00000011的4个区段的数据。处理单元110分析指令C5以执行该读取运作。处理单元110将主装置地址0000008至0000011转换成逻辑地址。处理单元110将主装置地址0000008除以一页的区段数,于本实施例中即除以4,并且取得一商数2与一余数0。商数2表示其逻辑页地址为2,其中逻辑页地址2所指出的逻辑页为逻辑页2。另外,余数0表示数据DS0应已被储存于一页的第一区段。相仿地,处理单元110决定主装置地址0000009、0000010、与0000011的逻辑页地址均为2(即主装置地址0000009、0000010、与0000011全部属于逻辑页2,或包含逻辑页地址2),且其诸逻辑区块地址均为0(即主装置地址0000009、0000010、与0000011还全部属于逻辑区块0,或包含逻辑区块地址0)。另外,对应于主装置地址0000008至00000011的数据应已分别被储存于一页的第一、第二、第三、与第四区段。处理单元110读取该全局页地址链结表的第三字段并取得数值128,其指出对应于逻辑页2的数据储存于实体页128。处理单元110读取实体页128以取得数据DS0”至DS3”,并传送这些数据予该主装置。
于本实施例中,假设在另外进行许多写入运作之后,该数据区的全部的区块(例如:实体区块0至4093)已被完全写入,且该备用区包含实体区块4094与4095,其中该有效页数量表绘示于图10E。然后,该主装置传送一指令C6予记忆装置100以写入4个区段的数据DS12至DS15。处理单元110自该备用区提取一实体区块,诸如实体区块4094,以供写入数据DS12至DS15。一般而言,建议应维持该备用区内有足够的区块数量。例如:备用区的最少区块数量必须总是大于零。又例如:备用区的最少区块数量必须在大部分时间均大于零,其中只要不妨碍记忆装置100的运作,备用区的最少区块数量可暂时为零。
假设于本实施例中维持该备用区中足够的区块数量是必须的,在该备用区的区块数量(或将会)小于一预定值(例如:该预定值为2)的状况下,处理单元110必须抹除该数据区中的一实体区块,以将此抹除后的实体区块推(Push)入该备用区。处理单元110搜寻该有效页数量表并找到不包含有效数据的实体区块2,是因为实体区块2的有效页数量为0。由于实体区块2具有最少有效页数量,处理单元110抹除实体区块2并且接着将抹除后的实体区块2推入该备用区。如此,该备用区现在包含实体区块2与4095。这只是为了说明目的而已,并非对本发明的限制。依据本实施例的一变化例,一旦当实体区块2的有效页数量减少为零时,处理单元110可立即抹除实体区块2。
依据本实施例,假设在另外进行一些写入运作之后,实体区块4094的全部页已被写入,其中该有效页数量表绘示于图10F。然后,该主装置传送一指令C7予记忆装置100以写入4个区段的数据DS16至DS19。处理单元110自该备用区提取一实体区块,诸如实体区块4095,以供写入数据DS16至DS19。
相仿地,当侦测到该备用区的区块数量(或将会)小于该预定值,处理单元110必须抹除该数据区中的至少一实体区块以将该(些)实体区块推入该备用区。本实施例的处理单元110搜寻图10F所示的有效页数量表并找到具有40页有效数据的实体区块0以及具有50页有效数据的实体区块1,其中相较于其它实体区块,实体区块0与1具有最少有效页数量。于本实施例中,处理单元110将实体区块0与1的有效数据移到实体区块2,并更新该全局页地址链结表以反映该有效数据的移动。换言之,处理单元110读取实体区块0与1中的有效数据,将该有效数据写入实体区块2,并对应地将该有效数据的逻辑页地址链结到已被写入该有效数据的实体页。于移动该有效数据之后,处理单元110抹除实体区块0与1,并将抹除后的实体区块0与1推入该备用区。
于本实施例中,当侦测到该备用区的区块数量小于该预定值时,处理单元110于典型状况下会搜寻该有效页数量表以找出一个或多个具有最少有效页数量的完全写入区块,并抹除该(些)具有最少有效页数量的完全写入区块以将该(些)完全写入区块推入该备用区。这只是为了说明目的而已,并非对本发明的限制。依据本实施例的一变化例,在该有效页数量表被代换为上述的无效页数量表的状况下,处理单元110可搜寻该无效页数量表以找出一个或多个具有最多无效页数量的完全写入区块,并抹除本变化例的该(些)完全写入区块以将该(些)完全写入区块推入该备用区。
依据本实施例,处理单元110已自该备用区多提取一个实体区块予该数据区,诸如实体区块2,以供合并(Merge)实体区块0与1。这只是为了说明目的而已,并非对本发明的限制。依据本实施例的一变化例,只要有一个部分写入区块具有足够的空白页(Free Page),处理单元110可将该(些)具有最少有效页数量的完全写入区块合并到这个部分写入区块,其中上述的空白页代表包含这些有效页的区块当中自从该区块最近一次抹除以来尚未被写入的页。例如:只要这个部分写入区块具有足够的空白页以供写入数据DS16至DS19以及实体区块0与1的有效数据,处理单元110就可将实体区块0与1合并到这个部分写入区块,诸如实体区块4095。又例如:只要这个部分写入区块具有足够的空白页以供写入数据DS16至DS19以及实体区块0的有效数据,处理单元110就可将实体区块0合并到这个部分写入区块,诸如实体区块4095。
实作上,处理单元110可将数据DS16至DS19写入实体区块4095;并且只要实体区块4095具有足够的空白页以供写入数据DS16至DS19以及实体区块0与1的有效数据,处理单元110可另将实体区块0与1的有效数据移到实体区块4095。当然了,本变化例的处理单元110可更新该全局页地址链结表以反映该有效数据的移动。相仿地,于移动该有效数据之后,处理单元110抹除实体区块0与1,并将抹除后的实体区块0与1推入该备用区。
于本实施例的其它变化例中,处理单元110可将N个实体区块的有效数据移到M个实体区块,其中N与M均为正整数,且N大于M。假设该N个实体区块中总共有K页的有效数据,其中K小于该M个实体区块当中的空白页的总数。处理单元110可从该N个实体区块读取该K页的有效数据,抹除该N个实体区块,将该K页的有效数据暂存于遗失性内存120,并将该K页的有效数据写入该M个实体区块。请注意,一般而言,该N个实体区块与该M个实体区块可重迭(例如:该N个实体区块与该M个实体区块均包含至少一相同的实体区块)或不重迭。在该N个实体区块与该M个实体区块不重迭(即该N个实体区块当中没有一个属于该M个实体区块,反之亦然)的状况下,该K页的有效数据可被写入该M个实体区块当中而不必等待抹除该N个实体区块,且处理单元110最终可产生(N-M)个被抹除的区块。当然了,处理单元110更新该全局页地址链结表以反映该有效数据的移动。
请注意,于本实施例的其它变化例中,处理单元110可记录每一实体区块的无效页数量。例如:给定每一实体区块的页数为128,一特定实体区块包含128页,当中包含:含有无效数据的28页无效页;以及含有有效数据的100页有效页。亦即,该特定实体区块的无效页数量与有效页数量分别为28与100。处理单元110可建立快闪芯片0至3的一无效页数量表,并依据该无效页数量表抹除一特定实体区块。在上述某些变化例中,当处理单元110必须抹除一实体区块时,处理单元110可依据该无效页数量表选择具有最多无效页数量的一特定实体区块,并抹除该特定实体区块。实作上,在该特定实体区块被抹除之前,其内所包含的有效数据必须被移到其它区块。为了有效率地移动该有效数据,处理单元110可在该特定区块中记录该有效数据的一个或多个有效数据位置。尤其是,处理单元110可针对每一区块建立一有效页位置表以指出该些区块中的一个或多个有效页(其包含有效数据)的位置。
图11是本发明一实施例中关于快闪芯片0至3的一个有效页位置表。该有效页位置表的示例表格位置的排列与图10B至图10F以及图10A右半部所示者相似;因此,为了简明起见就不赘述其细节。于本实施例中,该有效页位置表的每一字段指出是否存在任何对应于一相关的实体区块的有效页位置。例如:本实施例的每一字段包含分别对应于该相关的实体区块各页的128个位。
尤其是,该有效页位置表的每一字段指出对应于该相关的实体区块的该(些)有效页位置。一特定字段中的每一位指出该相关的实体区块中的一相关的页是否为有效或无效。例如:图11所示的有效页位置表的第一字段被记录为“01011100101......11111”,其指出实体区块0中的该(些)有效页位置。
更明确而言,图11所示的有效页位置表的该特定字段中的一特定位的排列顺位代表该相关的实体区块中的一相关的页的页地址偏移(Page Address Offset)或相对页位置(Relative Page Position)。例如:针对图11所示的有效页位置表的第一字段当中所记录的位“01011100101......11111”,最低有效位(Least Significant Bit,LSB)“1”指出实体区块0的第一页(即实体页0)是一含有有效数据的有效页,且最高有效位(MostSignificant Bit,MSB)“0”指出实体区块0的最后一页(即实体页127)是一含有无效数据的无效页,其中最低有效位与最高有效位之间的其它位分别指出该相关的实体区块中的其它实体页的有效/无效状态。图11所示的有效页位置表的其它字段与前述相仿之处不再重复赘述。于是,处理单元110可依据该有效页位置表快速地移动有效页中所包含的有效数据。
于本实施例中,该特定字段中的最低有效位指出该相关的实体区块的第一页是否为有效页或无效页,且该特定字段中的最高有效位指出该相关的实体区块的最后一页是否为有效页或无效页。这只是为了说明目的而已,并非对本发明的限制。依据本实施例的一变化例,该特定字段中的最低有效位指出该相关的实体区块的最后一页是否为有效页或无效页,且该特定字段中的最高有效位指出该相关的实体区块的第一页是否为有效页或无效页。例如:针对第一字段当中所记录的位“01011100101......11111”,最低有效位“1”指出实体区块0的最后一页(即实体页127)是一含有有效数据的有效页,而最高有效位“0”指出实体区块0的第一页(即实体页0)是一含有无效数据的无效页,其中最低有效位与最高有效位之间的其它位分别指出该相关的实体区块中的其它实体页的有效/无效状态。
于本实施例中,该特定位的一逻辑值“1”指出该相关的页是一有效页,而该特定位的一逻辑值“0”指出该相关的页是一无效页。这只是为了说明目的而已,并非对本发明的限制。依据本实施例的一变化例,该特定位的逻辑值“0”指出该相关的页是一有效页,而该特定位的逻辑值“1”指出该相关的页是一无效页。
另外,处理单元110可将该有效页位置表储存于遗失性内存120。依此实施方式,在存取快闪芯片期间,处理单元110可轻易地将该有效页位置表予以更新。这只是为了说明目的而已,并非对本发明的限制。依据本实施例的一变化例,在记忆装置100进行关机之前,处理单元110可将该有效页位置表从遗失性内存120读出并予以加载/储存于非遗失性内存组件140_0、140_1、...、与140_N当中的一个或多个。尤其是,处理单元110可将该有效页位置表储存于非遗失性内存组件140_0、140_1、...、与140_N的一个或多个链结区块。依此实施方式,当记忆装置100进行关机时,处理单元110可将该有效页位置表予以保存。于记忆装置100下一回开机时,处理单元110可轻易地从该(些)链结区块取得该有效页位置表。
于另一实施例中,在存取记忆装置100期间,该有效页位置表和该全局页地址链结表可随时从遗失性内存120被读出并加载/储存至非遗失性内存组件。例如:该有效页位置表和该全局页地址链结表可于每逢预定时间周期(例如:2秒)、或于每进行一组预定存取运作(例如:100次写入运作)就被储存一次。当记忆装置100正要异常地关机时,最新的有效页位置表和全局页地址链结表不会从遗失性内存120被读出并加载/储存至非遗失性内存组件。然后,一旦记忆装置100开机时,为了建立该有效页位置表,处理单元110可搜寻在该有效页位置表的最新的更新之后所存取的区块并且搜寻非遗失性内存组件中的全局页地址链结表。处理单元110搜寻这些区块的每一页中所储存的逻辑页地址,以建立并更新该全局页地址链结表。此后,处理单元110可依据更新后的全局页地址链结表来建立该有效页位置表。
相较于习知技术,本发明的方法与装置可大幅地省下建立逻辑实体页地址链结表的时间,诸如建立该全局页地址链结表的时间。因此,本发明提供较习知技术更佳的效能。
本发明的另一好处是,本发明的方法与装置可于存取该些页期间记录该使用信息,而因此可依据该使用信息来有效率地管理全部的区块的使用。于是,该备用区与该数据区的安排可被优化。
另外,以页为基础来管理闪存会带来许多好处。例如:随机写入的速度可大幅地改善,且写入放大索引(Write Amplification Index)可大幅地缩小。由于本发明不会导致习知技术中以页为基础来管理所常见的诸多副作用,故只要将本发明应用于实际的实施上,以页为基础来管理闪存就变得更简易可行,且会比以区块为基础来管理闪存更容易了解并据以实施。
以上所述仅为本发明的较佳实施例,凡依本发明申请专利范围所做的均等变化与修饰,皆应属本发明的涵盖范围。
Claims (3)
1.一种用来管理一记忆装置的方法,其特征在于,该记忆装置包含至少一非遗失性内存组件,该至少一非遗失性内存组件包含多个区块,该多个区块分别包含多个页,该方法包含:
记录该些区块中的至少一区块的有效/无效页位置信息;以及
依据该有效/无效页位置信息移动该区块中的至少一有效页内的有效数据;
其中该区块为一抹除单位;该有效/无效页位置信息包含该区块中的该有效数据的相对位置信息;该有效/无效页位置信息包含多个位,每一位的排列顺位代表该区块中的一对应页的页地址偏移,以及所述每一位指出该区块中的该对应页是否为有效页或无效页。
2.根据权利要求1所述的方法,其特征在于,该方法还包含:
在该记忆装置进行关机之前,将该有效/无效页位置信息存入该至少一非遗失性内存组件。
3.根据权利要求1所述的方法,其特征在于,记录该至少一区块的有效/无效页位置信息的步骤另包含:
在该记忆装置开机之后,搜寻一页地址链结表。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910500269.9A CN110457231B (zh) | 2008-11-06 | 2009-08-27 | 用来管理一记忆装置的方法以及其相关的记忆装置 |
Applications Claiming Priority (8)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US11217308P | 2008-11-06 | 2008-11-06 | |
US61/112173 | 2008-11-06 | ||
US14085008P | 2008-12-24 | 2008-12-24 | |
US61/140850 | 2008-12-24 | ||
US12/471413 | 2009-05-25 | ||
US12/471,413 US8219781B2 (en) | 2008-11-06 | 2009-05-25 | Method for managing a memory apparatus, and associated memory apparatus thereof |
CN201910500269.9A CN110457231B (zh) | 2008-11-06 | 2009-08-27 | 用来管理一记忆装置的方法以及其相关的记忆装置 |
CN2009101728509A CN101739352B (zh) | 2008-11-06 | 2009-08-27 | 用来管理一记忆装置的方法以及其相关的记忆装置 |
Related Parent Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN2009101728509A Division CN101739352B (zh) | 2008-11-06 | 2009-08-27 | 用来管理一记忆装置的方法以及其相关的记忆装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110457231A CN110457231A (zh) | 2019-11-15 |
CN110457231B true CN110457231B (zh) | 2023-10-24 |
Family
ID=42132878
Family Applications (7)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910955827.0A Active CN110806985B (zh) | 2008-11-06 | 2009-08-27 | 用来管理一记忆装置的方法以及其相关的记忆装置 |
CN202010163787.9A Active CN111414315B (zh) | 2008-11-06 | 2009-08-27 | 用来管理一记忆装置的方法以及其相关的记忆装置 |
CN201610265290.1A Active CN105975399B (zh) | 2008-11-06 | 2009-08-27 | 用来管理一记忆装置的方法以及其相关的记忆装置 |
CN201310348181.2A Active CN103455432B (zh) | 2008-11-06 | 2009-08-27 | 用来管理一记忆装置的方法以及其相关的记忆装置 |
CN201910500269.9A Active CN110457231B (zh) | 2008-11-06 | 2009-08-27 | 用来管理一记忆装置的方法以及其相关的记忆装置 |
CN200910172848A Pending CN101739351A (zh) | 2008-11-06 | 2009-08-27 | 一种用来管理一记忆装置的方法以及其相关的记忆装置 |
CN2009101728509A Active CN101739352B (zh) | 2008-11-06 | 2009-08-27 | 用来管理一记忆装置的方法以及其相关的记忆装置 |
Family Applications Before (4)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910955827.0A Active CN110806985B (zh) | 2008-11-06 | 2009-08-27 | 用来管理一记忆装置的方法以及其相关的记忆装置 |
CN202010163787.9A Active CN111414315B (zh) | 2008-11-06 | 2009-08-27 | 用来管理一记忆装置的方法以及其相关的记忆装置 |
CN201610265290.1A Active CN105975399B (zh) | 2008-11-06 | 2009-08-27 | 用来管理一记忆装置的方法以及其相关的记忆装置 |
CN201310348181.2A Active CN103455432B (zh) | 2008-11-06 | 2009-08-27 | 用来管理一记忆装置的方法以及其相关的记忆装置 |
Family Applications After (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN200910172848A Pending CN101739351A (zh) | 2008-11-06 | 2009-08-27 | 一种用来管理一记忆装置的方法以及其相关的记忆装置 |
CN2009101728509A Active CN101739352B (zh) | 2008-11-06 | 2009-08-27 | 用来管理一记忆装置的方法以及其相关的记忆装置 |
Country Status (4)
Country | Link |
---|---|
US (16) | US8285970B2 (zh) |
CN (7) | CN110806985B (zh) |
TW (12) | TWI775122B (zh) |
WO (2) | WO2010051717A1 (zh) |
Families Citing this family (51)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9384818B2 (en) | 2005-04-21 | 2016-07-05 | Violin Memory | Memory power management |
US8200887B2 (en) | 2007-03-29 | 2012-06-12 | Violin Memory, Inc. | Memory management system and method |
US9632870B2 (en) * | 2007-03-29 | 2017-04-25 | Violin Memory, Inc. | Memory system with multiple striping of raid groups and method for performing the same |
US11010076B2 (en) | 2007-03-29 | 2021-05-18 | Violin Systems Llc | Memory system with multiple striping of raid groups and method for performing the same |
US8843691B2 (en) * | 2008-06-25 | 2014-09-23 | Stec, Inc. | Prioritized erasure of data blocks in a flash storage device |
US8285970B2 (en) * | 2008-11-06 | 2012-10-09 | Silicon Motion Inc. | Method for managing a memory apparatus, and associated memory apparatus thereof |
TWI410976B (zh) * | 2008-11-18 | 2013-10-01 | Lite On It Corp | 固態儲存媒體可靠度的測試方法 |
WO2010125574A1 (en) * | 2009-04-27 | 2010-11-04 | Kamlesh Gandhi | Description |
WO2010144587A2 (en) | 2009-06-12 | 2010-12-16 | Violin Memory, Inc. | Memory system having persistent garbage collection |
US8140712B2 (en) * | 2009-07-17 | 2012-03-20 | Sandforce, Inc. | System, method, and computer program product for inserting a gap in information sent from a drive to a host device |
US8516166B2 (en) | 2009-07-20 | 2013-08-20 | Lsi Corporation | System, method, and computer program product for reducing a rate of data transfer to at least a portion of memory |
US8108737B2 (en) * | 2009-10-05 | 2012-01-31 | Sandforce, Inc. | System, method, and computer program product for sending failure information from a serial ATA (SATA) solid state drive (SSD) to a host device |
US9104546B2 (en) * | 2010-05-24 | 2015-08-11 | Silicon Motion Inc. | Method for performing block management using dynamic threshold, and associated memory device and controller thereof |
US8484420B2 (en) | 2010-11-30 | 2013-07-09 | International Business Machines Corporation | Global and local counts for efficient memory page pinning in a multiprocessor system |
TWI587136B (zh) | 2011-05-06 | 2017-06-11 | 創惟科技股份有限公司 | 快閃記憶體系統及其快閃記憶體無效資料頁資訊之管理方法與回收方法 |
JP5917016B2 (ja) * | 2011-05-10 | 2016-05-11 | キヤノン株式会社 | 情報処理装置、その制御方法、および制御プログラム |
US9081663B2 (en) * | 2011-11-18 | 2015-07-14 | Stec, Inc. | Optimized garbage collection algorithm to improve solid state drive reliability |
CN103136215A (zh) * | 2011-11-24 | 2013-06-05 | 腾讯科技(深圳)有限公司 | 存储系统的数据读写方法和装置 |
JP5907739B2 (ja) * | 2012-01-26 | 2016-04-26 | 株式会社日立製作所 | 不揮発性記憶装置 |
CN103226517A (zh) * | 2012-01-31 | 2013-07-31 | 上海华虹集成电路有限责任公司 | 对Nandflash的物理块按无效页数量进行动态排序的方法 |
JP6072428B2 (ja) * | 2012-05-01 | 2017-02-01 | テセラ アドバンスト テクノロジーズ インコーポレーテッド | 制御装置、記憶装置、記憶制御方法 |
US9116792B2 (en) * | 2012-05-18 | 2015-08-25 | Silicon Motion, Inc. | Data storage device and method for flash block management |
TWI448891B (zh) * | 2012-09-06 | 2014-08-11 | Silicon Motion Inc | 資料儲存裝置與快閃記憶體控制方法 |
US9244833B2 (en) | 2012-05-30 | 2016-01-26 | Silicon Motion, Inc. | Data-storage device and flash memory control method |
TWI492052B (zh) * | 2012-06-18 | 2015-07-11 | Silicon Motion Inc | 存取快閃記憶體的方法以及相關的記憶裝置 |
US9384125B2 (en) | 2012-06-18 | 2016-07-05 | Silicon Motion Inc. | Method for accessing flash memory having pages used for data backup and associated memory device |
JP6030485B2 (ja) * | 2013-03-21 | 2016-11-24 | 日立オートモティブシステムズ株式会社 | 電子制御装置 |
JP2015001909A (ja) * | 2013-06-17 | 2015-01-05 | 富士通株式会社 | 情報処理装置、制御回路、制御プログラム、および制御方法 |
CN103559141A (zh) * | 2013-11-01 | 2014-02-05 | 北京昆腾微电子有限公司 | 非易失性存储器的管理方法和装置 |
US9547510B2 (en) * | 2013-12-10 | 2017-01-17 | Vmware, Inc. | Tracking guest memory characteristics for memory scheduling |
US9529609B2 (en) | 2013-12-10 | 2016-12-27 | Vmware, Inc. | Tracking guest memory characteristics for memory scheduling |
US9747961B2 (en) * | 2014-09-03 | 2017-08-29 | Micron Technology, Inc. | Division operations in memory |
US9542118B1 (en) * | 2014-09-09 | 2017-01-10 | Radian Memory Systems, Inc. | Expositive flash memory control |
KR20160075165A (ko) * | 2014-12-19 | 2016-06-29 | 에스케이하이닉스 주식회사 | 메모리 시스템 및 메모리 시스템의 동작 방법 |
US20160179399A1 (en) * | 2014-12-23 | 2016-06-23 | Sandisk Technologies Inc. | System and Method for Selecting Blocks for Garbage Collection Based on Block Health |
KR102391678B1 (ko) | 2015-01-22 | 2022-04-29 | 삼성전자주식회사 | 저장 장치 및 그것의 서스테인드 상태 가속 방법 |
TWI545433B (zh) * | 2015-03-04 | 2016-08-11 | 慧榮科技股份有限公司 | 實體儲存對照表維護方法以及使用該方法的裝置 |
US10223001B2 (en) * | 2015-03-12 | 2019-03-05 | Toshiba Memory Corporation | Memory system |
TWI574274B (zh) * | 2015-05-07 | 2017-03-11 | 慧榮科技股份有限公司 | 循環區塊模式下的資料存取方法以及使用該方法的裝置 |
KR20170060206A (ko) * | 2015-11-23 | 2017-06-01 | 에스케이하이닉스 주식회사 | 메모리 시스템 및 메모리 시스템의 동작 방법 |
US10101925B2 (en) * | 2015-12-23 | 2018-10-16 | Toshiba Memory Corporation | Data invalidation acceleration through approximation of valid data counts |
TWI570559B (zh) * | 2015-12-28 | 2017-02-11 | 點序科技股份有限公司 | 快閃記憶體及其存取方法 |
US10620879B2 (en) * | 2017-05-17 | 2020-04-14 | Macronix International Co., Ltd. | Write-while-read access method for a memory device |
US10970226B2 (en) * | 2017-10-06 | 2021-04-06 | Silicon Motion, Inc. | Method for performing access management in a memory device, associated memory device and controller thereof, and associated electronic device |
TWI659304B (zh) * | 2017-10-20 | 2019-05-11 | 慧榮科技股份有限公司 | 存取快閃記憶體模組的方法及相關的快閃記憶體控制器與電子裝置 |
CN108153681A (zh) * | 2017-11-29 | 2018-06-12 | 深圳忆联信息系统有限公司 | 一种大容量固态硬盘映射表压缩方法 |
TWI686698B (zh) * | 2018-05-24 | 2020-03-01 | 大陸商深圳大心電子科技有限公司 | 邏輯轉實體表更新方法及儲存控制器 |
US10936199B2 (en) * | 2018-07-17 | 2021-03-02 | Silicon Motion, Inc. | Flash controllers, methods, and corresponding storage devices capable of rapidly/fast generating or updating contents of valid page count table |
KR102679967B1 (ko) | 2018-09-12 | 2024-07-02 | 에스케이하이닉스 주식회사 | 메모리 시스템에서의 유효 데이터 관리 방법 및 장치 |
US20200151119A1 (en) * | 2018-11-08 | 2020-05-14 | Silicon Motion, Inc. | Method and apparatus for performing access control between host device and memory device |
US11061598B2 (en) * | 2019-03-25 | 2021-07-13 | Western Digital Technologies, Inc. | Optimized handling of multiple copies in storage management |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2003203007A (ja) * | 2002-01-07 | 2003-07-18 | Nec Corp | 携帯電話機のメモリの不揮発エリア管理方法 |
JP2007199846A (ja) * | 2006-01-24 | 2007-08-09 | Toshiba Corp | メモリ制御装置およびメモリ制御方法 |
TW200739342A (en) * | 2005-08-03 | 2007-10-16 | Sandisk Corp | Nonvolatile memory with block management |
CN101194238A (zh) * | 2005-06-24 | 2008-06-04 | 松下电器产业株式会社 | 存储器控制器、非易失性存储装置、非易失性存储系统及数据写入方法 |
JP2008146253A (ja) * | 2006-12-07 | 2008-06-26 | Sony Corp | 記憶装置およびコンピュータシステム、並びに記憶装置のデータ処理方法 |
CN101283335A (zh) * | 2005-10-07 | 2008-10-08 | 微软公司 | 闪存管理 |
Family Cites Families (50)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5829013A (en) * | 1995-12-26 | 1998-10-27 | Intel Corporation | Memory manager to allow non-volatile memory to be used to supplement main memory |
WO1998003915A2 (en) * | 1996-07-19 | 1998-01-29 | Tokyo Electron Limited | Flash memory card |
US6000006A (en) | 1997-08-25 | 1999-12-07 | Bit Microsystems, Inc. | Unified re-map and cache-index table with dual write-counters for wear-leveling of non-volatile flash RAM mass storage |
US5937425A (en) * | 1997-10-16 | 1999-08-10 | M-Systems Flash Disk Pioneers Ltd. | Flash file system optimized for page-mode flash technologies |
KR100319598B1 (ko) * | 1998-03-18 | 2002-04-06 | 김영환 | 플래시메모리어레이액세스방법및장치 |
US7934074B2 (en) * | 1999-08-04 | 2011-04-26 | Super Talent Electronics | Flash module with plane-interleaved sequential writes to restricted-write flash chips |
US7318117B2 (en) * | 2004-02-26 | 2008-01-08 | Super Talent Electronics, Inc. | Managing flash memory including recycling obsolete sectors |
US6449689B1 (en) * | 1999-08-31 | 2002-09-10 | International Business Machines Corporation | System and method for efficiently storing compressed data on a hard disk drive |
US6938144B2 (en) * | 2001-03-22 | 2005-08-30 | Matsushita Electric Industrial Co., Ltd. | Address conversion unit for memory device |
US20060143365A1 (en) * | 2002-06-19 | 2006-06-29 | Tokyo Electron Device Limited | Memory device, memory managing method and program |
CN100421181C (zh) | 2002-07-30 | 2008-09-24 | 希旺科技股份有限公司 | 可重覆写入的非挥发性储存的储存系统与其写入方法 |
ATE372578T1 (de) * | 2002-10-28 | 2007-09-15 | Sandisk Corp | Automatischer abnutzungsausgleich in einem nicht- flüchtigen speichersystem |
JP2004296014A (ja) * | 2003-03-27 | 2004-10-21 | Mitsubishi Electric Corp | 不揮発性メモリの消去回数平準化方法 |
CN1311366C (zh) * | 2003-05-22 | 2007-04-18 | 群联电子股份有限公司 | 快闪存储器的平行双轨使用方法 |
CN1277182C (zh) * | 2003-09-04 | 2006-09-27 | 台达电子工业股份有限公司 | 具有辅助处理单元的可编程逻辑控制器 |
JP3912355B2 (ja) * | 2003-10-14 | 2007-05-09 | ソニー株式会社 | データ管理装置、データ管理方法、不揮発性メモリ、不揮発性メモリを有する記憶装置及びデータ処理システム |
JP2005122529A (ja) | 2003-10-17 | 2005-05-12 | Matsushita Electric Ind Co Ltd | 半導体メモリ装置 |
KR100526188B1 (ko) * | 2003-12-30 | 2005-11-04 | 삼성전자주식회사 | 플래시 메모리의 주소 사상 방법, 사상 정보 관리 방법 및상기 방법을 이용한 플래시 메모리 |
US7631138B2 (en) * | 2003-12-30 | 2009-12-08 | Sandisk Corporation | Adaptive mode switching of flash memory address mapping based on host usage characteristics |
WO2005066792A2 (en) * | 2003-12-30 | 2005-07-21 | Sandisk Corporation | Non-volatile memory and method with memory planes alignment |
TW200523946A (en) * | 2004-01-13 | 2005-07-16 | Ali Corp | Method for accessing a nonvolatile memory |
JP4701618B2 (ja) * | 2004-02-23 | 2011-06-15 | ソニー株式会社 | 情報処理装置及び情報処理方法、並びにコンピュータ・プログラム |
US7680977B2 (en) * | 2004-02-26 | 2010-03-16 | Super Talent Electronics, Inc. | Page and block management algorithm for NAND flash |
US7877569B2 (en) * | 2004-04-28 | 2011-01-25 | Panasonic Corporation | Reduction of fragmentation in nonvolatile memory using alternate address mapping |
CN100437517C (zh) * | 2004-04-28 | 2008-11-26 | 松下电器产业株式会社 | 非易失性存储装置和数据写入方法 |
KR101340176B1 (ko) * | 2005-08-25 | 2013-12-10 | 실리콘 이미지, 인크. | 스마트 스케일러블 스토리지 스위치 아키텍처 |
CN100573476C (zh) | 2005-09-25 | 2009-12-23 | 深圳市朗科科技股份有限公司 | 闪存介质数据管理方法 |
CN100520734C (zh) * | 2005-11-18 | 2009-07-29 | 凌阳科技股份有限公司 | 闪存的控制装置与方法 |
US8756399B2 (en) * | 2006-01-25 | 2014-06-17 | Seagate Technology Llc | Mutable association of a set of logical block addresses to a band of physical storage blocks |
US20070300130A1 (en) * | 2006-05-17 | 2007-12-27 | Sandisk Corporation | Method of Error Correction Coding for Multiple-Sector Pages in Flash Memory Devices |
JP2007310823A (ja) | 2006-05-22 | 2007-11-29 | Matsushita Electric Ind Co Ltd | メモリカード、メモリカード処理方法、制御プログラム、及び集積回路 |
CN100583293C (zh) | 2006-08-09 | 2010-01-20 | 安国国际科技股份有限公司 | 存储装置及其读写方法 |
WO2008042592A2 (en) * | 2006-09-29 | 2008-04-10 | Sandisk Corporation | Phased garbage collection |
US7695274B2 (en) * | 2006-11-07 | 2010-04-13 | Caruso Ii Augustine | Lighter with built-in clip |
US7958331B2 (en) * | 2006-12-13 | 2011-06-07 | Seagate Technology Llc | Storage device with opportunistic address space |
WO2008082999A2 (en) * | 2006-12-26 | 2008-07-10 | Sandisk Corporation | Configuration of host lba interface with flash memory |
TWM317043U (en) * | 2006-12-27 | 2007-08-11 | Genesys Logic Inc | Cache device of the flash memory address transformation layer |
US7953954B2 (en) * | 2007-01-26 | 2011-05-31 | Micron Technology, Inc. | Flash storage partial page caching |
JP2008210057A (ja) * | 2007-02-23 | 2008-09-11 | Hitachi Ltd | 記憶システム及びその管理方法 |
US9009440B2 (en) * | 2007-11-12 | 2015-04-14 | Lsi Corporation | Adjustment of data storage capacity provided by a storage system |
US8122179B2 (en) * | 2007-12-14 | 2012-02-21 | Silicon Motion, Inc. | Memory apparatus and method of evenly using the blocks of a flash memory |
US7949851B2 (en) * | 2007-12-28 | 2011-05-24 | Spansion Llc | Translation management of logical block addresses and physical block addresses |
US7941692B2 (en) * | 2007-12-31 | 2011-05-10 | Intel Corporation | NAND power fail recovery |
US20090198952A1 (en) | 2008-02-04 | 2009-08-06 | Apple Inc | Memory Mapping Architecture |
CN101681313A (zh) * | 2008-02-29 | 2010-03-24 | 株式会社东芝 | 存储器系统 |
CN101251788A (zh) * | 2008-03-07 | 2008-08-27 | 威盛电子股份有限公司 | 储存单元管理方法及系统 |
US8069299B2 (en) * | 2008-06-30 | 2011-11-29 | Intel Corporation | Banded indirection for nonvolatile memory devices |
US8285970B2 (en) * | 2008-11-06 | 2012-10-09 | Silicon Motion Inc. | Method for managing a memory apparatus, and associated memory apparatus thereof |
TWI450271B (zh) * | 2009-09-02 | 2014-08-21 | Silicon Motion Inc | 用來管理一快閃記憶體的複數個區塊之方法以及相關之記憶裝置及其控制器 |
KR102233400B1 (ko) * | 2017-05-29 | 2021-03-26 | 에스케이하이닉스 주식회사 | 데이터 저장 장치 및 그것의 동작 방법 |
-
2009
- 2009-05-25 US US12/471,462 patent/US8285970B2/en active Active
- 2009-05-25 US US12/471,413 patent/US8219781B2/en active Active
- 2009-07-17 TW TW109125307A patent/TWI775122B/zh active
- 2009-07-17 TW TW106103083A patent/TW201714092A/zh unknown
- 2009-07-17 TW TW102117776A patent/TWI494760B/zh active
- 2009-07-17 TW TW098124216A patent/TWI409632B/zh active
- 2009-07-17 TW TW106140045A patent/TWI657338B/zh active
- 2009-07-17 TW TW104110084A patent/TWI536164B/zh active
- 2009-07-17 TW TW112147905A patent/TW202414218A/zh unknown
- 2009-07-17 TW TW108108182A patent/TWI703439B/zh active
- 2009-07-17 TW TW105107176A patent/TW201621669A/zh unknown
- 2009-07-17 TW TW111127029A patent/TWI829251B/zh active
- 2009-07-22 TW TW098124724A patent/TWI459195B/zh active
- 2009-07-22 TW TW102124805A patent/TW201346547A/zh unknown
- 2009-08-27 CN CN201910955827.0A patent/CN110806985B/zh active Active
- 2009-08-27 CN CN202010163787.9A patent/CN111414315B/zh active Active
- 2009-08-27 CN CN201610265290.1A patent/CN105975399B/zh active Active
- 2009-08-27 WO PCT/CN2009/073564 patent/WO2010051717A1/zh active Application Filing
- 2009-08-27 WO PCT/CN2009/073567 patent/WO2010051718A1/zh active Application Filing
- 2009-08-27 CN CN201310348181.2A patent/CN103455432B/zh active Active
- 2009-08-27 CN CN201910500269.9A patent/CN110457231B/zh active Active
- 2009-08-27 CN CN200910172848A patent/CN101739351A/zh active Pending
- 2009-08-27 CN CN2009101728509A patent/CN101739352B/zh active Active
-
2012
- 2012-05-08 US US13/466,147 patent/US8799622B2/en active Active
- 2012-05-08 US US13/466,138 patent/US20120221782A1/en not_active Abandoned
- 2012-09-06 US US13/604,636 patent/US8473712B2/en active Active
- 2012-09-06 US US13/604,644 patent/US9037832B2/en active Active
- 2012-09-06 US US13/604,654 patent/US20120331267A1/en not_active Abandoned
- 2012-09-06 US US13/605,977 patent/US8473713B2/en active Active
-
2014
- 2014-12-11 US US14/566,724 patent/US20150095562A1/en not_active Abandoned
-
2017
- 2017-07-05 US US15/642,295 patent/US10482011B2/en active Active
-
2019
- 2019-10-08 US US16/596,703 patent/US10795811B2/en active Active
-
2020
- 2020-05-31 US US16/888,836 patent/US11074176B2/en active Active
-
2021
- 2021-06-17 US US17/351,168 patent/US11520697B2/en active Active
-
2022
- 2022-10-27 US US17/975,565 patent/US11748258B2/en active Active
-
2023
- 2023-07-05 US US18/218,122 patent/US12019540B2/en active Active
-
2024
- 2024-05-14 US US18/663,114 patent/US20240296120A1/en active Pending
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2003203007A (ja) * | 2002-01-07 | 2003-07-18 | Nec Corp | 携帯電話機のメモリの不揮発エリア管理方法 |
CN101194238A (zh) * | 2005-06-24 | 2008-06-04 | 松下电器产业株式会社 | 存储器控制器、非易失性存储装置、非易失性存储系统及数据写入方法 |
TW200739342A (en) * | 2005-08-03 | 2007-10-16 | Sandisk Corp | Nonvolatile memory with block management |
CN101283335A (zh) * | 2005-10-07 | 2008-10-08 | 微软公司 | 闪存管理 |
JP2007199846A (ja) * | 2006-01-24 | 2007-08-09 | Toshiba Corp | メモリ制御装置およびメモリ制御方法 |
JP2008146253A (ja) * | 2006-12-07 | 2008-06-26 | Sony Corp | 記憶装置およびコンピュータシステム、並びに記憶装置のデータ処理方法 |
Non-Patent Citations (1)
Title |
---|
基于闪存的固态存储器的数据管理;朱岩等;《计算机工程》;20070620(第12期);全文 * |
Also Published As
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110457231B (zh) | 用来管理一记忆装置的方法以及其相关的记忆装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |