CN109783396A - 存取闪存模块的方法及相关的闪存控制器与电子装置 - Google Patents
存取闪存模块的方法及相关的闪存控制器与电子装置 Download PDFInfo
- Publication number
- CN109783396A CN109783396A CN201810490991.4A CN201810490991A CN109783396A CN 109783396 A CN109783396 A CN 109783396A CN 201810490991 A CN201810490991 A CN 201810490991A CN 109783396 A CN109783396 A CN 109783396A
- Authority
- CN
- China
- Prior art keywords
- address
- logical address
- comparisons
- logical
- physical
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
- 238000000034 method Methods 0.000 title claims abstract description 31
- 238000003860 storage Methods 0.000 claims description 35
- 230000005055 memory storage Effects 0.000 description 10
- 238000010586 diagram Methods 0.000 description 9
- 230000003068 static effect Effects 0.000 description 2
- 230000003139 buffering effect Effects 0.000 description 1
- 210000003205 muscle Anatomy 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 230000001360 synchronised effect Effects 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/061—Improving I/O performance
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- 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/0223—User address space allocation, e.g. contiguous or non contiguous base addressing
- G06F12/0292—User address space allocation, e.g. contiguous or non contiguous base addressing using tables or multilevel address translation means
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0638—Organizing or formatting or addressing of data
- G06F3/064—Management of blocks
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0655—Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
- G06F3/0659—Command handling arrangements, e.g. command buffers, queues, command scheduling
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0673—Single storage device
- G06F3/0679—Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C16/00—Erasable programmable read-only memories
- G11C16/02—Erasable programmable read-only memories electrically programmable
- G11C16/06—Auxiliary circuits, e.g. for writing into memory
- G11C16/10—Programming or data input circuits
-
- 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/20—Employing a main memory using a specific memory technology
- G06F2212/202—Non-volatile memory
- G06F2212/2022—Flash memory
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/72—Details relating to flash memory management
- G06F2212/7201—Logical to physical mapping or translation of blocks or pages
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/72—Details relating to flash memory management
- G06F2212/7203—Temporary buffering, e.g. using volatile buffer or dedicated buffer blocks
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C16/00—Erasable programmable read-only memories
- G11C16/02—Erasable programmable read-only memories electrically programmable
- G11C16/06—Auxiliary circuits, e.g. for writing into memory
- G11C16/08—Address circuits; Decoders; Word-line control circuits
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C16/00—Erasable programmable read-only memories
- G11C16/02—Erasable programmable read-only memories electrically programmable
- G11C16/06—Auxiliary circuits, e.g. for writing into memory
- G11C16/26—Sensing or reading circuits; Data output circuits
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)
- Memory System (AREA)
Abstract
本发明公开了一种存取闪存模块的方法,其包括:建立实体地址至逻辑地址对照表;建立逻辑地址群组记录表,其中该逻辑地址群组记录表标注了多个逻辑地址群组的状态;接收读取命令以要求读取该闪存模块中的数据,其中该读取命令包含了特定逻辑地址;以及根据该特定逻辑地址所对应到的特定逻辑地址群组的状态,以判断是否搜寻该实体地址至逻辑地址对照表,以得到该与该特定逻辑地址相对应的特定实体地址,以供自该闪存模块中读取该数据。
Description
技术领域
本发明有关于闪存,尤指一种存取闪存模块的方法及相关的闪存控制器。
背景技术
在闪存控制器操作的过程中通常会在本身的缓冲存储器中存储实体地址至逻辑地址对照表或是至少一个逻辑地址至实体地址对照表,而在闪存控制器接收到读取命令时可以从上述对照表搜寻出所需的实体地址。然而,随着区块的大小增加及所包含的资料页也跟着变多的情形下,上述对照表的大小也会大幅增加,因此搜寻出所需的实体地址的时间也会增加许多,因此影响到闪存控制器的效能。
发明内容
因此,本发明的目的的一在于提出一种存取闪存模块的方法,其可以在闪存控制器接收到读取命令时有效率地搜寻出所需的实体地址,以改善闪存控制器的效能。
在本发明的一个实施例中,揭露了一种存取闪存模块的方法,其包括:建立实体地址至逻辑地址对照表,其包含了连续的实体地址及其对应的逻辑地址;建立逻辑地址群组记录表,其中该逻辑地址群组记录表标注了多个逻辑地址群组的状态,其中每一个逻辑地址群组的该状态用来表示该实体地址至逻辑地址对照表中是否有记录位于该逻辑地址群组的中的任一逻辑地址;接收读取命令以要求读取该闪存模块中的数据,其中该读取命令包含了特定逻辑地址;以及根据该特定逻辑地址所对应到的特定逻辑地址群组的状态,以判断是否搜寻该实体地址至逻辑地址对照表,以得到该与该特定逻辑地址相对应的特定实体地址,以供自该闪存模块中读取该数据。
在本发明的另一个实施例中,揭露了一种闪存控制器,其中该闪存控制器用来存取闪存模块,且该闪存控制器包括只读存储器、微处理器以及内存。该只读存储器用来存储程序代码;该微处理器用来执行该程序代码以控制对该闪存模块的存取;以及该内存存储了实体地址至逻辑地址对照表以及逻辑地址群组记录表,其中该实体地址至逻辑地址对照表包含了连续的实体地址及其对应的逻辑地址,且该逻辑地址群组记录表标注了多个逻辑地址群组的状态,其中每一个逻辑地址群组的该状态用来表示该实体地址至逻辑地址对照表中是否有记录位于该逻辑地址群组的中的任一逻辑地址;其中当该微处理器接收读取命令以要求读取该闪存模块中的数据时,该微处理器根据该读取命令所包含的该特定逻辑地址所对应到的特定逻辑地址群组的状态,以判断是否搜寻该实体地址至逻辑地址对照表,以得到该与该特定逻辑地址相对应的特定实体地址,以供自该闪存模块中读取该数据。
在本发明的另一个实施例中,揭露了一种电子装置,其包括闪存模块以及闪存控制器,其中该闪存控制器用来存取该闪存模块,并建立实体地址至逻辑地址对照表以及逻辑地址群组记录表,其包含了连续的实体地址及其对应的逻辑地址,其中该实体地址至逻辑地址对照表包含了连续的实体地址及其对应的逻辑地址,且该逻辑地址群组记录表标注了多个逻辑地址群组的状态,其中每一个逻辑地址群组的该状态用来表示该实体地址至逻辑地址对照表中是否有记录位于该逻辑地址群组的中的任一逻辑地址;其中当该闪存控制器接收读取命令以要求读取该闪存模块中的数据时,该闪存控制器根据该读取命令所包含的该特定逻辑地址所对应到的特定逻辑地址群组的状态,以判断是否搜寻该实体地址至逻辑地址对照表,以得到该与该特定逻辑地址相对应的特定实体地址,以供自该闪存模块中读取该数据。
附图说明
图1为依据本发明实施例的一种记忆装置的示意图。
图2为根据本发明实施例的存取闪存模块的流程图。
图3为实体地址至逻辑地址对照表的示意图。
图4为逻辑地址群组记录表的示意图。
图5为逻辑地址至实体地址对照表的示意图。
图6为根据本发明另一实施例的存取闪存模块的流程图。
图7为本发明实施例的使用实体地址至逻辑地址对照表来更新逻辑地址至实体地址对照表的示意图。
其中,附图标记说明如下:
100 记忆装置
110 闪存控制器
112 微处理器
112C 程序代码
112M 只读存储器
114 控制逻辑
116 缓冲存储器
118 接口逻辑
120 闪存模块
130 主装置
132 编码器
134 解码器
200~218、600~618 步骤
300 实体地址至逻辑地址对照表
310、320 闪存芯片
400 逻辑地址群组记录表
510_1~510_2 逻辑地址至实体地址对照表
B_0~B_M 区块
P0~PN 资料页
LBA_0~LBA_1279 逻辑地址
LBAG1~LBAG5 逻辑地址群组
具体实施方式
参考图1,图1为依据本发明实施例的一种记忆装置100的示意图。记忆装置100包括闪存(Flash Memory)模块120以及闪存控制器110,且闪存控制器110用来存取闪存模块120。依据本实施例,闪存控制器110包含微处理器112、只读存储器(Read Only Memory,ROM)112M、控制逻辑114、缓冲存储器116、与接口逻辑118。只读存储器112M用来存储程序代码112C,而微处理器112则用来执行程序代码112C以控制对闪存模块120的存取(Access)。控制逻辑114包含了编码器132以及解码器134,其中编码器132用来对写入到闪存模块120中的数据进行编码以产生对应的校验码(或称,错误更正码(Error Correction Code),ECC),而解码器134用来将从闪存模块120所读出的数据进行解码。
于典型状况下,闪存模块120包含了多个闪存芯片,而每一个闪存芯片包含复数个区块(Block),而该控制器(例如:通过微处理器112执行程序代码112C的闪存控制器110)对闪存模块120进行抹除数据运作以区块为单位来进行。另外,区块可记录特定数量的数据页(Page),其中该控制器(例如:通过微处理器112执行程序代码112C的内存控制器110)对闪存模块120进行写入数据的运作以数据页为单位来进行写入。在本实施例中,闪存模块120为立体NAND型闪存(3D NAND-type flash)。
实作上,通过微处理器112执行程序代码112C的闪存控制器110可利用其本身内部的组件来进行诸多控制运作,例如:利用控制逻辑114来控制闪存模块120的存取运作(尤其是对至少一区块或至少一数据页的存取运作)、利用缓冲存储器116进行所需的缓冲处理、以及利用接口逻辑118来与主装置(Host Device)130沟通。缓冲存储器116以随机存取内存(Random Access Memory,RAM)来实施。例如,缓冲存储器116可以是静态随机存取内存(Static RAM,SRAM),但本发明不限于此。
在实施例中,记忆装置100可以是可携式记忆装置(例如:符合SD/MMC、CF、MS、XD标准的记忆卡),且主装置130为可与记忆装置连接的电子装置,例如手机、笔记本电脑、桌面计算机…等等。而在另一实施例中,记忆装置100可以是固态硬盘或符合通用闪存存储(Universal Flash Storage,UFS)或嵌入式多媒体记忆卡(Embedded Multi Media Card,EMMC)规格的嵌入式存储装置,以设置在电子装置中,例如设置在手机、笔记本电脑、桌面计算机的中,而此时主装置130可以是该电子装置的处理器。
参考图2,其为根据本发明实施例的存取闪存模块120的流程图。在步骤200中,流程开始。在步骤200中,流程开始。在步骤202中,闪存控制器110接收来自主装置130的至少一写入命令,以将多笔数据写入至闪存模块120的区块中。在本实施例中,参考图3,闪存模块120包含了多个闪存芯片310、320,每一个闪存芯片包含了多个区块B0~B_M,而每一个区块包含了N个资料页P0~PN。在以下的说明中,闪存控制器110将数据循序写入到闪存芯片310的区块B_0,然而,需注意的是,上述的“区块”在实作上也可以是包含了多个芯片的位于不同平面(plane)的多个区块(一般称为“超级区块”),举例来说,假设闪存芯片310、320均包含了两个平面(plane),而区块B_0及B_M是位于不同的平面,则闪存芯片310的区块B_0、B_M以及闪存芯片320的区块B_0、B_M可以构成一个超级区块。
在数据写入至区块B_0之前,微处理器112会建立实体地址至逻辑地址对照表(以下称P2L对照表)300,并存储在缓冲存储器116的中,其中P2L对照表300包含区块B_0中的连续的数据页的实体地址P0~PN,以及所对应的逻辑地址。详细来说,闪存控制器110首先将来自主装置130且具有逻辑地址LBA_5的数据写入至数据页P0中,接着,依序将来自主装置130且具有逻辑地址LBA_500、LBA_350、LBA_6、LBA_7、LBA_100的数据分别写入至数据页P1~P5。此外,在区块B_0的所有数据页P0~PN都完成数据写入的后,微处理器112可将P2L对照表300存储至闪存模块120。需注意的是,在本实施例中,逻辑地址的序号代表着其顺序,而连续的序号代表着连续的逻辑地址。
另一方面,微处理器112另外记录了如图4所示的逻辑地址群组记录表400,并存储在缓冲存储器116中,其中逻辑地址群组记录表400标注了多个逻辑地址群组的状态,其中每一个逻辑地址群组的该状态用来表示P2L对照表300中是否有记录位于该逻辑地址群组的中的任一逻辑地址。在本实施例中,参考图4,逻辑地址群组记录表400至少包含了多个逻辑地址群组LBAG1~LBAG5,而每一个逻辑地址群组包含了逻辑地址范围,例如逻辑地址群组LBAG1包含了逻辑地址LBA_0~LBA_255、逻辑地址群组LBAG2包含了逻辑地址LBA_256~LBA_511、逻辑地址群组LBAG3包含了逻辑地址LBA_512~LBA_767、逻辑地址群组LBAG4包含了逻辑地址LBA_768~LBA_1023、逻辑地址群组LBAG5包含了逻辑地址LBA_1024~LBA_1279;此外,逻辑地址群组记录表400用比特来表示每一个逻辑地址群组的状态,例如由于P2L对照表记录了LBA_5~LBA_7、LBA_100、LBA_350、LBA_500,故逻辑地址群组LBAG1及LBAG2的状态被设为数字值“1”;而由于P2L对照表并未包含逻辑地址LBA_512~LBA_1279,故逻辑地址群组LBAG3~LBAG5的状态被设为数字值“0”。
需注意的是图4所示的逻辑地址群组记录表400仅是一个范例说明,而非是作为本发明的限制。只要逻辑地址群组记录表400可以用来表达P2L对照表300中是否有记录位于各个逻辑地址群组的中的任一逻辑地址,其细节内容可以有不同的变化,而这些设计上的变化均应隶属于本发明的范畴。
另外,在本实施例中,每一个逻辑地址群组LBAG1~LBAG5的逻辑地址范围相同于在记忆装置100中所使用的逻辑地址至实体地址对照表(以下称L2P对照表)的逻辑地址范围。举例来说,参考图5,其为多个L2P对照表的示意图,其中每一个L2P对照表,例如图示的510_1、510_2,包含了连续的逻辑地址及对应的实体地址。
在步骤204中,闪存控制器110接收到来自主装置130的读取命令,以要求自闪存模块120中读取具有特定逻辑地址的数据。接着,在步骤206中,微处理器112判断该特定逻辑地址所对应的逻辑地址群组的状态是否为数字值“1”,若是,流程进入步骤208;若否,则流程进入步骤212。举例来说,假设特定逻辑地址为LBA_30,则由于LBA_30位于具有状态“1”的逻辑地址群组LBAG1,故流程会进入到步骤208;而假设特定逻辑地址为LBA_700,则由于LBA_700位于具有状态“0”的逻辑地址群组LBAG3,故流程会进入到步骤212。
在步骤208中,微处理器112搜寻P2L对照表300,并判断特定逻辑地址是否位于P2L对照表300中。若是,流程进入步骤210;若否,则流程进入步骤212。在步骤210中,微处理器112可以直接地从存储在缓冲存储器116中的P2L对照表300中来搜寻出特定逻辑地址所对应的实体地址,并根据所搜寻到的实体地址以自闪存模块120中找到存储在该实体地址的数据。
在步骤212中,由于特定逻辑地址所对应到的逻辑地址群组的状态为“0”,因此代表着P2L对照表300中并未存储有关于特定逻辑地址的信息(亦即,区块B_0未包含具有特定逻辑地址的数据),因此,微处理器112便不需要对P2L对照表300进行搜寻的操作,而直接地判断缓冲存储器116上是否具有包含特定逻辑地址的L2P对照表。举例来说,假设特定逻辑地址为LBA_700,则微处理器112判断缓冲存储器116中是否存储具有LBA_512~LBA_767相关信息的L2P对照表,若是,流程进入步骤214;若否,流程进步入步骤216。
在步骤214中,由于缓冲存储器116存储具有LBA_512~LBA_767相关信息的L2P对照表,故微处理器112可以直接自此L2P对照表中读取搜寻出特定逻辑地址LBA_700所对应的实体地址,并根据所搜寻到的实体地址以自闪存模块120中读取存储在该实体地址的数据。
在步骤216中,由于缓冲存储器116不具有LBA_512~LBA_767相关信息的L2P对照表,故微处理器112自闪存模块120中读取具有LBA_512~LBA_767相关信息的L2P对照表并存储到缓冲存储器116中。接着,在步骤218中,微处理器112自加载的L2P对照表中读取搜寻出特定逻辑地址LBA_700所对应的实体地址,并根据所搜寻到的实体地址以自闪存模块120中读取存储在该实体地址的数据。
后续流程可以回到步骤202以继续将数据写入区块B_0并同步建立/更新P2L对照表300与逻辑地址群组记录表400,或是进入步骤204以接收下一个读取命令。另外,若是闪存控制器110继续对区块B_0进行数据写入,则由于所写入的数据有可能是先前写入数据的更新数据(亦即,具有相同的逻辑地址),因此,为了避免后续的查找错误,一旦区块B_0有数据写入,先前因为读取命令所加载的一或多个L2P对照表会被设为无效,亦即缓冲存储器116中的L2P对照表会被标记为无效或是删除。
参考以上的实施例所述,当微处理器112接收到读取命令的时候,会直接参考存储在缓冲存储器116中的逻辑地址群组记录表400来判断读取命令所包含的逻辑地址是否有可能包含在P2L对照表300中,而若是逻辑地址群组记录表400指出读取命令所包含的逻辑地址不存在于P2L对照表300时,微处理器112便不需要对P2L对照表300进行搜寻,而可以直接从缓冲存储器116的L2P对照表、或是自闪存模块120所加载的L2P对照表来取得所需的实体地址。因此,本发明的实施例可以确实降低无效读取P2L对照表的次数,故可以加速闪存控制器的读取速度,增进系统效能。另一方面,由于逻辑地址群组记录表400仅需要很少的内存空间,故不会对缓冲存储器116有实质影响。
此外,在上述的实施例中,逻辑地址群组记录表400被使用在闪存控制器110接收到读取命令的情形下,然而,在其他的实施例中,逻辑地址群组记录表400亦可被用在其他任何需要搜寻P2L对照表300操作中。举例来说,在某些情形下,由于P2L对照表300中具有最新的信息,故微处理器112会需要使用P2L对照表300来更新自闪存模块120所加载的多个L2P对照表(例如图5的510_1及510_2),而此时微处理器112便可以参考逻辑地址群组记录表400来决定要对哪些L2P对照表进行更新操作(没有被记录在逻辑地址群组记录表400的便不需要处理),以避免进行无效的更新操作。具体来说,参考图6,其为根据本发明另一实施例的存取闪存模块120的流程图。在步骤600中,流程开始。在步骤602中,闪存控制器110接收来自主装置130的至少一写入命令,以将多笔数据写入至闪存模块120的区块中。在以下的说明中,闪存控制器110将数据循序写入到的图3所示的闪存芯片310的区块B_0。
另一方面,在数据写入至区块B_0之前,微处理器112会建立P2L对照表,例如图所示的P2L对照表300,并存储在缓冲存储器116的中;以及微处理器112另外记录了如图4所示的逻辑地址群组记录表400,并存储在缓冲存储器116中。
在步骤604中,闪存控制器110接收到来自主装置130的第一读取命令,以要求自闪存模块120中读取具有第一逻辑地址的数据。接着,在步骤606中,微处理器112判断缓冲存储器116中是否存储有包含该第一逻辑地址的L2P对照表。具体来说,闪存模块120中会存储有多个L2P对照表,而每一个L2P对照表都包含了逻辑地址范围的映像信息,例如第一个L2P对照表用来存储LBA_0~LBA_255所对应到的实体地址(需注意,不一定每一个逻辑地址相对应的实体地址都存在)、第二个L2P对照表用来存储LBA_256~LBA_511所对应到的实体地址、第三个L2P对照表用来存储LBA_512~LBA_767所对应到的实体地址、…以此类推。因此,在上述例子中,若是该第一逻辑地址为LBA_20,则微处理器112便判断用来存储LBA_0~LBA_255的第一个L2P对照表是否刚好位于缓冲存储器116中,若是,流程进入步骤608;若否,则流程进入步骤610。以下以该第一逻辑地址为LBA_20来进行说明。
在步骤608中,若是第一个L2P对照表存储在缓冲存储器116中,微处理器112便可以直接地从存储在缓冲存储器116中的第一个L2P对照表来搜寻出第一逻辑地址LBA_20所对应的实体地址,并根据所搜寻到的实体地址以自闪存模块120中找到存储在该实体地址的数据。
在步骤610中,微处理器112搜寻P2L对照表300,并判断第一逻辑地址LBA_20是否位于P2L对照表300中。若是,流程进入步骤214;若否,则流程进入步骤216。
在步骤614中,微处理器112可以直接地从存储在缓冲存储器116中的P2L对照表300中来搜寻出第一逻辑地址LBA_20所对应的实体地址,并根据所搜寻到的实体地址以自闪存模块120中找到存储在该实体地址的数据。
在步骤616中,由于第一逻辑地址LBA_20的相关信息并未存储在缓冲存储器116的中,故微处理器112根据第一逻辑地址LBA_20,以自闪存模块120中读取包含第一逻辑地址LBA_20的L2P对照表,在本实施例中,微处理器112从闪存模块120中读取用来存储LBA_0~LBA_255的第一个L2P对照表,并存储到缓冲存储器116中。
在步骤618中,微处理器112自读取第一个L2P对照表中读取搜寻出第一逻辑地址LBA_20所对应的实体地址,并根据所搜寻到的实体地址以自闪存模块120中读取存储在该实体地址的数据。此外,此时微处理器116会参考逻辑地址群组记录表400来决定是否使用P2L对照表300来更新第一个L2P对照表,以使得第一个L2P对照表中所存储的都是最新的信息。具体来说,由于逻辑地址群组记录表400所记录的逻辑地址群组LBAG1的状态被设为数字值“1”,因此,微处理器116便可以直接地使用P2L对照表300来更新第一个L2P对照表(例如图5所示的510_1)。参考图7,其为使用P2L对照表300来更新L2P对照表510_1的示意图。在图7中,由于P2L对照表300中有4笔对应至逻辑地址范围LBA_0~LBA_255中的信息,故微处理器112将L2P对照表510_1中的逻辑地址LBA_5更新为对应到区块B_0的数据页P0、逻辑地址LBA_6更新为对应到区块B_0的数据页P3、逻辑地址LBA_7更新为对应到区块B_0的数据页P4、且逻辑地址LBA_100更新为对应到区块B_0的数据页P5。
需注意的是,当L2P对照表510_1从闪存模块120中读取而尚未更新前,L2P对照表510_1可以并未包含逻辑地址LBA_5、LBA_6、LBA_7或是LBA_100的相对应实体地址,而此时微处理器将P2L对照表300中上述4笔信息加入到L2P对照表510_1的中;或是L2P对照表510_1已经包含逻辑地址LBA_5、LBA_6、LBA_7或是LBA_100的相对应实体地址,而此时微处理器将P2L对照表300中上述4笔信息来更新L2P对照表510_1中逻辑地址LBA_5、LBA_6、LBA_7或是LBA_100所对应的实体地址。
在另外一个例子中,假设流程再次回到步骤604,且闪存控制器110自主装置130接收第二读取命令,以要求自闪存模块120中读取具有第二逻辑地址的数据。假设该第二逻辑地址为LBA_800,由于逻辑地址为LBA_800并未包含在P2L对照表300中,故流程会进入步骤616以自闪存模块120中读取包含第二逻辑地址LBA_800的L2P对照表,例如,用来存储LBA_768~LBA_1023的第四个L2P对照表,并存储到缓冲存储器116中。接着,微处理器112自第四个L2P对照表中搜寻出第二逻辑地址LBA_800所对应的实体地址,并根据所搜寻到的实体地址自闪存模块120中读取存储在该实体地址的数据。此外,此时微处理器116会参考逻辑地址群组记录表400来决定是否使用P2L对照表300来更新第四个L2P对照表。具体来说,由于逻辑地址群组记录表400所记录的逻辑地址群组LBAG4的状态被设为数字值“0”,因此,微处理器116便无需使用P2L对照表300来更新第四个L2P对照表,以避免进行无效的更新操作。
以上所述仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (20)
1.一种存取闪存模块的方法,其特征在于,包括:
建立实体地址至逻辑地址对照表,其包含了连续的实体地址及其对应的逻辑地址;
建立逻辑地址群组记录表,其中该逻辑地址群组记录表标注了多个逻辑地址群组的状态,其中每一个逻辑地址群组的该状态用来表示该实体地址至逻辑地址对照表中是否有记录位于该逻辑地址群组的中的任一逻辑地址;
接收读取命令以要求读取该闪存模块中的数据,其中该读取命令包含了特定逻辑地址;以及
根据该特定逻辑地址所对应到的特定逻辑地址群组的状态,以判断是否搜寻该实体地址至逻辑地址对照表,以得到该与该特定逻辑地址相对应的特定实体地址,以供自该闪存模块中读取该数据。
2.如权利要求1所述的方法,其特征在于,该逻辑地址群组记录表用比特来表示该逻辑地址群组的状态,其中该比特的两个数字值分别用来表示该实体地址至逻辑地址对照表中是否有记录位于该逻辑地址群组的中的任逻辑地址。
3.如权利要求1所述的方法,其特征在于,该每一个逻辑地址群组包含了逻辑地址范围,且该逻辑地址范围相同于该闪存模块所使用的逻辑地址至实体地址对照表的范围。
4.如权利要求1所述的方法,其特征在于,该特定逻辑地址所对应到的该特定逻辑地址群组以判断是否搜寻该实体地址至逻辑地址对照表的步骤包括:
当该特定逻辑地址群组的状态指示该实体地址至逻辑地址对照表中有记录位于该逻辑地址群组的中的任一逻辑地址时,直接搜寻该实体地址至逻辑地址对照表以判断是否包含与该特定逻辑地址相关的信息;以及
当该特定逻辑地址群组的状态指示该实体地址至逻辑地址对照表中没有记录位于该逻辑地址群组的中的任一逻辑地址时,在不搜寻该实体地址至逻辑地址对照表的情形下,自逻辑地址至实体地址对照表中取得与该特定逻辑地址相对应的特定实体地址,以供自该闪存模块中读取该数据。
5.如权利要求4所述的方法,其特征在于,在不搜寻该实体地址至逻辑地址对照表的情形下,自该逻辑地址至实体地址对照表中取得与该特定逻辑地址相对应的该特定实体地址的步骤包括:
自该闪存模块中读取该逻辑地址至实体地址对照表,并自该逻辑地址至实体地址对照表中搜寻出该特定实体地址。
6.如权利要求5所述的方法,其特征在于,在不搜寻该实体地址至逻辑地址对照表的情形下,自该逻辑地址至实体地址对照表中取得与该特定逻辑地址相对应的该特定实体地址的步骤包括:
判断闪存控制器的缓冲存储器是否存储该逻辑地址至实体地址对照表;
当该缓冲存储器具有该逻辑地址至实体地址对照表时,直接自该缓冲存储器所存储的该逻辑地址至实体地址对照表中搜寻出该特定实体地址;以及
当该缓冲存储器不具有该逻辑地址至实体地址对照表时,自该闪存模块中读取该逻辑地址至实体地址对照表,并自该逻辑地址至实体地址对照表中搜寻出该特定实体地址。
7.如权利要求1所述的方法,另包括:
自该闪存模块读取至少一逻辑地址至实体地址对照表;以及
根据该逻辑地址群组记录表,以决定是否使用该实体地址至逻辑地址对照表来更新该逻辑地址至实体地址对照表。
8.一种闪存控制器,其中该闪存控制器用来存取闪存模块,且该闪存控制器包括:
只读存储器,用来存储程序代码;
微处理器,用来执行该程序代码以控制对该闪存模块的存取;以及
内存,用以存储实体地址至逻辑地址对照表以及逻辑地址群组记录表,
其中该实体地址至逻辑地址对照表包含了连续的实体地址及其对应的逻辑地址,且该逻辑地址群组记录表标注了多个逻辑地址群组的状态,其中每一个逻辑地址群组的该状态用来表示该实体地址至逻辑地址对照表中是否有记录位于该逻辑地址群组的中的任一逻辑地址;
其中当该微处理器接收读取命令以要求读取该闪存模块中的数据时,该微处理器根据该读取命令所包含的该特定逻辑地址所对应到的特定逻辑地址群组的状态,以判断是否搜寻该实体地址至逻辑地址对照表,以得到该与该特定逻辑地址相对应的特定实体地址,以供自该闪存模块中读取该数据。
9.如权利要求8所述的闪存控制器,其特征在于,该逻辑地址群组记录表用比特来表示该逻辑地址群组的状态,其中该比特的两个数字值分别用来表示该实体地址至逻辑地址对照表中是否有记录位于该逻辑地址群组的中的任一逻辑地址。
10.如权利要求8所述的闪存控制器,其特征在于,该每一个逻辑地址群组包含了逻辑地址范围,且该逻辑地址范围相同于该闪存控制器所使用的逻辑地址至实体地址对照表的范围。
11.如权利要求8所述的闪存控制器,其特征在于,当该特定逻辑地址群组的状态指示该实体地址至逻辑地址对照表中有记录位于该逻辑地址群组的中的任一逻辑地址时,该微处理器直接搜寻该实体地址至逻辑地址对照表以判断是否包含与该特定逻辑地址相关的信息;以及当该特定逻辑地址群组的状态指示该实体地址至逻辑地址对照表中没有记录位于该逻辑地址群组的中的任一逻辑地址时,在不搜寻该实体地址至逻辑地址对照表的情形下,该微处理器自逻辑地址至实体地址对照表中取得与该特定逻辑地址相对应的特定实体地址,以供自该闪存模块中读取该数据。
12.如权利要求11所述的闪存控制器,其特征在于,该微处理器自该闪存模块中读取该逻辑地址至实体地址对照表,并自该逻辑地址至实体地址对照表中搜寻出该特定实体地址。
13.如权利要求12所述的闪存控制器,其特征在于,该微处理器判断该内存是否存储该逻辑地址至实体地址对照表,且当该内存具有该逻辑地址至实体地址对照表时,该微处理器直接自该内存所存储的该逻辑地址至实体地址对照表中搜寻出该特定实体地址;以及该内存不具有该逻辑地址至实体地址对照表时,该微处理器自该闪存模块中读取该逻辑地址至实体地址对照表,并自该逻辑地址至实体地址对照表中搜寻出该特定实体地址。
14.如权利要求8所述的闪存控制器,其特征在于,该微处理器自该闪存模块读取至少一逻辑地址至实体地址对照表,且根据该逻辑地址群组记录表,以决定是否使用该实体地址至逻辑地址对照表来更新该逻辑地址至实体地址对照表。
15.一种电子装置,包括:
闪存模块;以及
闪存控制器,用来存取该闪存模块,并建立实体地址至逻辑地址对照表以及逻辑地址群组记录表,其包含了连续的实体地址及其对应的逻辑地址,其中该实体地址至逻辑地址对照表包含了连续的实体地址及其对应的逻辑地址,且该逻辑地址群组记录表标注了多个逻辑地址群组的状态,其中每一个逻辑地址群组的该状态用来表示该实体地址至逻辑地址对照表中是否有记录位于该逻辑地址群组的中的任一逻辑地址;
其中当该闪存控制器接收读取命令以要求读取该闪存模块中的数据时,
该闪存控制器根据该读取命令所包含的该特定逻辑地址所对应到的特定逻辑地址群组的状态,以判断是否搜寻该实体地址至逻辑地址对照表,以得到该与该特定逻辑地址相对应的特定实体地址,以供自该闪存模块中读取该数据。
16.如权利要求15所述的电子装置,其中该逻辑地址群组记录表用一个比特来表示该逻辑地址群组的状态,其中该比特的两个数字值分别用来表示该实体地址至逻辑地址对照表中是否有记录位于该逻辑地址群组的中的任一逻辑地址。
17.如权利要求15所述的电子装置,其中该每一个逻辑地址群组包含了逻辑地址范围,且该逻辑地址范围相同于该闪存控制器所使用的逻辑地址至实体地址对照表的范围。
18.如权利要求15所述的电子装置,其中当该特定逻辑地址群组的状态指示该实体地址至逻辑地址对照表中有记录位于该逻辑地址群组的中的任一逻辑地址时,该闪存控制器直接搜寻该实体地址至逻辑地址对照表以判断是否包含与该特定逻辑地址相关的信息;以及当该特定逻辑地址群组的状态指示该实体地址至逻辑地址对照表中没有记录位于该逻辑地址群组的中的任一逻辑地址时,在不搜寻该实体地址至逻辑地址对照表的情形下,该闪存控制器在不搜寻该实体地址至逻辑地址对照表的情形下,自逻辑地址至实体地址对照表中取得与该特定逻辑地址相对应的特定实体地址,以供自该闪存模块中读取该数据。
19.如权利要求18所述的电子装置,其中该闪存控制器自该闪存模块中读取该逻辑地址至实体地址对照表,并自该逻辑地址至实体地址对照表中搜寻出该特定实体地址。
20.如权利要求19所述的闪存控制器,其特征在于,该闪存控制器判断该内存是否存储该逻辑地址至实体地址对照表,且当该内存具有该逻辑地址至实体地址对照表时,该闪存控制器直接自该内存所存储的该逻辑地址至实体地址对照表中搜寻出该特定实体地址;以及当该内存不具有该逻辑地址至实体地址对照表时,该闪存控制器自该闪存模块中读取该逻辑地址至实体地址对照表,并自该逻辑地址至实体地址对照表中搜寻出该特定实体地址。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
TW106139113 | 2017-11-13 | ||
TW106139113A TWI661303B (zh) | 2017-11-13 | 2017-11-13 | 存取快閃記憶體模組的方法及相關的快閃記憶體控制器與電子裝置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN109783396A true CN109783396A (zh) | 2019-05-21 |
Family
ID=66431312
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201810490991.4A Pending CN109783396A (zh) | 2017-11-13 | 2018-05-21 | 存取闪存模块的方法及相关的闪存控制器与电子装置 |
Country Status (3)
Country | Link |
---|---|
US (1) | US20190146908A1 (zh) |
CN (1) | CN109783396A (zh) |
TW (1) | TWI661303B (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112199305A (zh) * | 2019-07-08 | 2021-01-08 | 慧荣科技股份有限公司 | 闪存数据存取控制方法及计算机可读取存储介质 |
Families Citing this family (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TWI707234B (zh) * | 2019-05-20 | 2020-10-11 | 慧榮科技股份有限公司 | 資料儲存裝置與資料處理方法 |
US11861022B2 (en) * | 2020-05-20 | 2024-01-02 | Silicon Motion, Inc. | Method and computer program product and apparatus for encrypting and decrypting physical-address information |
CN113885779B (zh) | 2020-07-02 | 2024-03-12 | 慧荣科技股份有限公司 | 数据处理方法及对应的数据储存装置 |
CN113885778B (zh) | 2020-07-02 | 2024-03-08 | 慧荣科技股份有限公司 | 数据处理方法及对应的数据储存装置 |
TWI748835B (zh) * | 2020-07-02 | 2021-12-01 | 慧榮科技股份有限公司 | 資料處理方法及對應之資料儲存裝置 |
CN113961140B (zh) | 2020-07-02 | 2024-06-11 | 慧荣科技股份有限公司 | 数据处理方法及对应的数据储存装置 |
CN113254265B (zh) * | 2021-05-10 | 2023-03-14 | 苏州库瀚信息科技有限公司 | 基于固态硬盘的快照实现方法、存储系统 |
US12001680B2 (en) * | 2022-08-24 | 2024-06-04 | Micron Technology, Inc. | Utilizing last successful read voltage level in memory access operations |
US12117932B2 (en) | 2023-01-09 | 2024-10-15 | Silicon Motion, Inc. | Method and apparatus for performing data access management of memory device in predetermined communications architecture with aid of unbalanced table update |
US12130743B2 (en) | 2023-01-09 | 2024-10-29 | Silicon Motion, Inc. | Method and apparatus for performing data access management of memory device in predetermined communications architecture with aid of unbalanced table search |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20040186946A1 (en) * | 2003-03-19 | 2004-09-23 | Jinaeon Lee | Flash file system |
CN102043728A (zh) * | 2009-10-23 | 2011-05-04 | 慧荣科技股份有限公司 | 用来提高闪存存取效能的方法以及相关的记忆装置 |
CN102332290A (zh) * | 2010-05-24 | 2012-01-25 | 慧荣科技股份有限公司 | 用来管理和存取闪存模块的控制器 |
CN105930278A (zh) * | 2015-02-26 | 2016-09-07 | 爱思开海力士有限公司 | 数据储存设备及其操作方法 |
CN106201901A (zh) * | 2014-12-10 | 2016-12-07 | 爱思开海力士有限公司 | 包括映射表的控制器、包括半导体存储器件的存储系统及其操作方法 |
CN106919517A (zh) * | 2015-12-28 | 2017-07-04 | 点序科技股份有限公司 | 闪存及其访问方法 |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR101732030B1 (ko) * | 2010-12-22 | 2017-05-04 | 삼성전자주식회사 | 데이터 저장 장치 및 그것의 동작 방법 |
US8589406B2 (en) * | 2011-03-03 | 2013-11-19 | Hewlett-Packard Development Company, L.P. | Deduplication while rebuilding indexes |
KR20170053278A (ko) * | 2015-11-06 | 2017-05-16 | 에스케이하이닉스 주식회사 | 데이터 저장 장치 및 그것의 동작 방법 |
TWI584122B (zh) * | 2015-11-17 | 2017-05-21 | 群聯電子股份有限公司 | 緩衝記憶體管理方法、記憶體控制電路單元及記憶體儲存裝置 |
-
2017
- 2017-11-13 TW TW106139113A patent/TWI661303B/zh active
-
2018
- 2018-01-09 US US15/865,271 patent/US20190146908A1/en not_active Abandoned
- 2018-05-21 CN CN201810490991.4A patent/CN109783396A/zh active Pending
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20040186946A1 (en) * | 2003-03-19 | 2004-09-23 | Jinaeon Lee | Flash file system |
CN102043728A (zh) * | 2009-10-23 | 2011-05-04 | 慧荣科技股份有限公司 | 用来提高闪存存取效能的方法以及相关的记忆装置 |
CN102332290A (zh) * | 2010-05-24 | 2012-01-25 | 慧荣科技股份有限公司 | 用来管理和存取闪存模块的控制器 |
CN106201901A (zh) * | 2014-12-10 | 2016-12-07 | 爱思开海力士有限公司 | 包括映射表的控制器、包括半导体存储器件的存储系统及其操作方法 |
CN105930278A (zh) * | 2015-02-26 | 2016-09-07 | 爱思开海力士有限公司 | 数据储存设备及其操作方法 |
CN106919517A (zh) * | 2015-12-28 | 2017-07-04 | 点序科技股份有限公司 | 闪存及其访问方法 |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112199305A (zh) * | 2019-07-08 | 2021-01-08 | 慧荣科技股份有限公司 | 闪存数据存取控制方法及计算机可读取存储介质 |
CN112199305B (zh) * | 2019-07-08 | 2024-02-27 | 慧荣科技股份有限公司 | 闪存数据存取控制方法及计算机可读取存储介质 |
Also Published As
Publication number | Publication date |
---|---|
TWI661303B (zh) | 2019-06-01 |
US20190146908A1 (en) | 2019-05-16 |
TW201918888A (zh) | 2019-05-16 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109783396A (zh) | 存取闪存模块的方法及相关的闪存控制器与电子装置 | |
CN109426619B (zh) | 访问快闪存储器模块的方法及相关闪存控制器与电子装置 | |
TWI692690B (zh) | 存取快閃記憶體模組的方法及相關的快閃記憶體控制器與電子裝置 | |
CN110008136A (zh) | 管理闪存模块的方法及相关的闪存控制器及电子装置 | |
CN105683897B (zh) | 具有陈旧数据机制的数据贮存系统及其操作方法 | |
US8996791B2 (en) | Flash memory device, memory control device, memory control method, and storage system | |
CN104461387B (zh) | 一种提高固态硬盘对未映射区域的读性能的方法 | |
US9021218B2 (en) | Data writing method for writing updated data into rewritable non-volatile memory module, and memory controller, and memory storage apparatus using the same | |
CN105095116A (zh) | 缓存替换的方法、缓存控制器和处理器 | |
US20100241789A1 (en) | Data storage method for flash memory and data storage system using the same | |
CN109117383B (zh) | 管理闪存模块的方法和闪存控制器 | |
CN109697170B (zh) | 存取闪存模块的方法及相关的闪存控制器与电子装置 | |
CN105893275A (zh) | 缓存及读取即将写入储存单元的数据的方法以及使用该方法的装置 | |
US10089225B2 (en) | Improving garbage collection efficiency by reducing page table lookups | |
CN115756312A (zh) | 数据访问系统、数据访问方法和存储介质 | |
US20210373887A1 (en) | Command delay | |
CN113918485A (zh) | 一种闪存资料防丢失方法、装置、设备及存储介质 | |
CN112447227A (zh) | 命令跟踪 | |
US11698856B2 (en) | Maintaining sequentiality for media management of a memory sub-system | |
CN113010447B (zh) | 用于存储器子系统的媒体管理的快照读取优化 | |
TWI852599B (zh) | 記憶裝置、快閃記憶體控制器及其控制方法 | |
TWI653630B (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 | ||
WD01 | Invention patent application deemed withdrawn after publication |
Application publication date: 20190521 |
|
WD01 | Invention patent application deemed withdrawn after publication |