CN109871333A - 存取闪存模块的方法及相关的闪存控制器与电子装置 - Google Patents
存取闪存模块的方法及相关的闪存控制器与电子装置 Download PDFInfo
- Publication number
- CN109871333A CN109871333A CN201810596041.XA CN201810596041A CN109871333A CN 109871333 A CN109871333 A CN 109871333A CN 201810596041 A CN201810596041 A CN 201810596041A CN 109871333 A CN109871333 A CN 109871333A
- Authority
- CN
- China
- Prior art keywords
- logical address
- block
- comparisons
- address
- physical address
- 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.)
- Granted
Links
- 238000000034 method Methods 0.000 title claims abstract description 26
- 239000010813 municipal solid waste Substances 0.000 claims abstract description 24
- 238000003860 storage Methods 0.000 description 11
- 230000005055 memory storage Effects 0.000 description 8
- 238000010586 diagram Methods 0.000 description 6
- 230000003068 static effect Effects 0.000 description 2
- 239000007787 solid Substances 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/0223—User address space allocation, e.g. contiguous or non contiguous base addressing
- G06F12/023—Free address space management
- G06F12/0253—Garbage collection, i.e. reclamation of unreferenced 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
- 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/10—Providing a specific technical effect
- G06F2212/1041—Resource optimization
- G06F2212/1044—Space efficiency improvement
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/72—Details relating to flash memory management
- G06F2212/7201—Logical to physical mapping or translation of blocks or pages
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/72—Details relating to flash memory management
- G06F2212/7205—Cleaning, compaction, garbage collection, erase control
-
- 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
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)
Abstract
本发明公开了存取闪存模块的方法,包括:建立对应于所述闪存模块中一区块的逻辑地址群组记录表,其中所述逻辑地址群组记录表标注了多个逻辑地址群组的状态,其中每一个逻辑地址群组的所述状态是用来表示所述区块中所写入的数据是否有具有位于所述逻辑地址群组之中的任一逻辑地址;当所述区块需要进行垃圾收集操作时,参考所述逻辑地址群组记录表以自所述闪存模块读取至少一逻辑地址至实体地址对照表;以及根据所述至少一逻辑地址至实体地址对照表以决定出所述区块中的有效数据页及无效数据页,以供进行所述垃圾收集操作。本发明通过建立仅有很小数据量的逻辑地址群组记录表以供后续的垃圾收集,可节省存储空间且兼顾闪存控制器的效能。
Description
技术领域
本发明涉及闪存,尤其涉及一种存取闪存模块的方法及相关的闪存控制器。
背景技术
当闪存模块中的空间不足时,闪存控制器会进行垃圾收集(garbage collection)操作以将多个区块中的有效数据页中的数据搬移到新的区块中,并将原本的区块内容抹除以释放更多的存储空间。然而,在上述的操作中,由于需要正确地判断出每一个区块中的有效数据页及无效数据页,因此会需要预先存储相关的地址信息以供进行比对判断。然而,随着区块的大小增加及所包括的数据页也跟着变多的情形下,上述地址信息的数据量也大幅增加,进而影响到闪存模块中的存储空间以及闪存控制器的处理效率。
发明内容
因此,本发明的目的之一在于公开一种存取闪存模块的方法,其可以利用很小的数据量来存储每一个区块中的地址信息,且有效率地判断出每一个区块中的有效数据页及无效数据页,以解决现有技术中的问题。
在本发明的一个实施例中,公开一种存取一闪存模块的方法,其包括有:建立对应于所述闪存模块中一区块的一逻辑地址群组记录表,其中所述逻辑地址群组记录表标注了多个逻辑地址群组的状态,其中每一个逻辑地址群组的所述状态是用来表示所述区块中所写入的数据是否有具有位于所述逻辑地址群组之中的任一逻辑地址;当所述区块需要进行一垃圾收集操作时,参考所述逻辑地址群组记录表以自所述闪存模块读取至少一逻辑地址至实体地址对照表;以及根据所述至少一逻辑地址至实体地址对照表以决定出所述区块中的有效数据页及无效数据页,以供进行所述垃圾收集操作。
在本发明的另一个实施例中,公开了一种闪存控制器,其中所述闪存控制器是用来存取一闪存模块,且所述闪存控制器包括有一只读存储器、一微处理器以及一存储器。所述只读存储器是用来存储一程序代码;所述微处理器是用来执行所述程序代码以控制对所述闪存模块的存取;以及所述存储器是用以存储对应于所述闪存模块中一区块的一逻辑地址群组记录表,其中所述逻辑地址群组记录表标注了多个逻辑地址群组的状态,其中每一个逻辑地址群组的所述状态是用来表示所述区块中所写入的数据是否有具有位于所述逻辑地址群组之中的任一逻辑地址;其中当所述区块需要进行一垃圾收集操作时,所述微处理器参考所述逻辑地址群组记录表以自所述闪存模块读取至少一逻辑地址至实体地址对照表,并根据所述至少一逻辑地址至实体地址对照表以决定出所述区块中的有效数据页及无效数据页,以供进行所述垃圾收集操作。
在本发明的另一个实施例中,公开了一种电子装置,其包括有一闪存模块以及一闪存控制器。所述闪存控制器建立对应于所述闪存模块中一区块的一逻辑地址群组记录表,其中所述逻辑地址群组记录表标注了多个逻辑地址群组的状态,其中每一个逻辑地址群组的所述状态是用来表示所述区块中所写入的数据是否有具有位于所述逻辑地址群组之中的任一逻辑地址;以及当所述区块需要进行一垃圾收集操作时,闪存控制器参考所述逻辑地址群组记录表以自所述闪存模块读取至少一逻辑地址至实体地址对照表,并根据所述至少一逻辑地址至实体地址对照表以决定出所述区块中的有效数据页及无效数据页,以供进行所述垃圾收集操作。
附图说明
图1为依据本发明一实施例的一种记忆装置的示意图。
图2为根据本发明一实施例的存取闪存模块的流程图。
图3为实体地址至逻辑地址对照表的示意图。
图4为逻辑地址群组记录表的示意图。
图5为本发明一实施例的使用实体地址至逻辑地址对照表来更新逻辑地址至实体地址对照表的示意图。
图6为本发明一实施例的使用实体地址至逻辑地址对照表来再次更新逻辑地址至实体地址对照表的示意图。
图7所示为根据本发明一实施例的进行垃圾收集操作的流程图。
其中,附图标记说明如下:
100 记忆装置
110 闪存控制器
112 微处理器
112C 程序代码
112M 只读存储器
114 控制逻辑
116 缓冲存储器
118 接口逻辑
120 闪存模块
130 主装置
132 编码器
134 译码器
200~210、700~708 步骤
300、600 实体地址至逻辑地址对照表
310、320 闪存芯片
400 逻辑地址群组记录表
510、520 逻辑地址至实体地址对照表
B_0~B_M 区块
P0~PN 数据页
LBA_0~LBA_1279 逻辑地址
LBAG1~LBAG5 逻辑地址群组
具体实施方式
参考图1,图1为依据本发明一实施例的一种记忆装置100的示意图。记忆装置100包括有一闪存(Flash Memory)模块120以及一闪存控制器110,且闪存控制器110用来存取闪存模块120。依据本实施例,闪存控制器110包括一微处理器112、一只读存储器(ReadOnly 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,每一个闪存芯片包括了多个区块B_0~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。
另一方面,微处理器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中是否有记录位于各个逻辑地址群组之中的任一逻辑地址,其细节内容可以有不同的变化,而这些设计上的变化均应隶属于本发明的范畴。
接着,在步骤204中,微处理器112判断区块B_0中的最后一个数据页PN是否已完成数据写入(也就是说,区块B_0已经写满),若否,则流程进入步骤202以继续将下一笔数据写入到区块B_0;若是,则流程进入步骤206。在步骤206中,微处理器112参考逻辑地址群组记录表400的内容以自闪存模块120中读取一部分的逻辑地址至实体地址对照表(以下称L2P对照表),并使用P2L对照表300来更新所读取的L2P对照表的内容。以图3和图4的实施例来做说明,由于逻辑地址群组记录表400只记录了逻辑地址群组LBAG1、LBAG2的状态为“1”,这代表了只有包括逻辑地址LBA_0~LBA_255以及LBA_256~LBA_511的两个L2P对照表需要更新(本实施例中,每一个逻辑地址群组对应到一个L2P对照表,其具有相同的逻辑地址范围),故微处理器112自闪存模块120中读取如图5所示的两个L2P对照表510、520。需注意的是,在本实施例中,逻辑地址的序号代表着其顺序,而连续的序号代表着连续的逻辑地址。接着,由于P2L对照表300中有4笔对应至逻辑地址范围LBA_0~LBA_255中的信息,故微处理器112将L2P对照表510中的逻辑地址LBA_5更新为对应到区块B_0的数据页P0、逻辑地址LBA_6更新为对应到区块B_0的数据页P3、逻辑地址LBA_7更新为对应到区块B_0的数据页P4、且逻辑地址LBA_100更新为对应到区块B_0的数据页P5;此外,由于P2L对照表300中有2笔对应至逻辑地址范围LBA_256~LBA_511中的信息,故微处理器112将L2P对照表520中的逻辑地址LBA_350更新为对应到区块B_0的数据页P2、以及且逻辑地址LBA_500更新为对应到区块B_0的数据页P1。
在步骤208中,微处理器112将更新过后的L2P对照表510、520存储至闪存模块120中,并将区块B_0所对应到的P2L对照表300自缓冲存储器116删除,且在一实施例中P2L对照表300不会被存储到闪存模块120中。此外,在一实施例中,微处理器112将逻辑地址群组记录表400存储至闪存模块120。
在步骤210中,闪存控制器110选择下一个区块(例如,区块B_1)以供后续的数据写入,且流程回到步骤202。在一实施例中,假设流程回到步骤202,且闪存控制器110接收到主装置130的写入命令以要求将具有逻辑地址LBA_100的数据更新,则参考图6,微处理器112会另外针对区块B_1建立P2L对照表600,并将L2P对照表510自闪存模块120中读取并进行更新,以将逻辑地址LBA_100更新为对应到区块B_1的数据页P0,之后再回存到闪存模块120中。
在以上的实施例中,在区块B_0的所有数据页完全写入之后,具有较大数据量的P2L对照表300可直接删除以节省空间,而对应到区块B_0的逻辑地址群组记录表400会被存储下来以供用于后续的垃圾收集操作。此外,由于逻辑地址群组记录表400的数据量很小,故可以大幅节省闪存模块120的存储空间。
图7所示为根据本发明一实施例的进行垃圾收集操作的流程图,其中在本实施例中是以对图3所示的区块B_0来进行垃圾收集操作,且相关的内容是以图3~6的实施例来做为范例说明,以方便理解。在步骤700,流程开始,且闪存控制器110准备对区块B_0进行垃圾收集操作。在步骤702,闪存控制器110自闪存模块120读取对应至区块B_0的逻辑地址群组记录表400,并暂存在缓冲存储器116中。在步骤704中,微处理器112参考逻辑地址群组记录表400的内容,以自闪存模块120中读取一或多个L2P对照表。在本实施例中,由于逻辑地址群组记录表400只记录了逻辑地址群组LBAG1、LBAG2的状态为“1”,故微处理器112只需要自闪存模块120中读取两个L2P对照表510、520,而不需要读取其他的L2P对照表。
接着,在步骤706中,微处理器112读取区块B_0的内容,并根据两个L2P对照表510、520以判断其中的数据页为有效数据页或是无效数据页。具体来说,针对区块B0与L2P对照表510、520所共同具有的一特定逻辑地址,微处理器112判断所述特定逻辑地址在L2P对照表510、520中所对应的实体地址是否与在区块B_0中所对应的实体地址相同,若判断结果指出两个实体地址相同,则区块B_0中具有所述实体地址的数据页为有效数据页;以及若判断结果指出两个实体地址不同,则决定区块B_0中具有所述实体地址的数据页为无效数据页。以图3~6的实施例来作为说明,由于区块B_0中对应到逻辑地址LBA_5、LBA_500、LBA_350、LBA_6、LBA_7的数据页P0~P4与L2P对照表510、520所记录的一致,故微处理器112可以直接判断区块B_0中的数据页P0~P4是有效数据页;然而,由于区块B_0中对应到逻辑地址LBA_100的实体地址为(B_0,P5),但与L2P对照表510所记录的确是图6所示的(B_1,P0),故微处理器112便判断区块B_0中的数据页P5是无效数据页。
在步骤708中,微处理器112只将区块B_0中的有效数据页,例如数据页P0~P4搬移到闪存模块120的另外一个区块中,并将区块B_0抹除以释放更多的存储空间。
简要归纳本发明,在本发明的存取闪存模块的方法中,是另外建立一具有很小数据量的逻辑地址群组记录表以供用于后续的垃圾收集操作,且当闪存控制器进行垃圾收集操作时,可以简单快速地参考所述逻辑地址群组记录表以读取正确的L2P对照表以供判断区块中的有效数据页及无效数据页。通过本发明,可以在节省存储空间的情形下兼顾闪存控制器的效能。
以上所述仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (20)
1.一种存取一闪存模块的方法,其特征在于,包括有:
建立对应于所述闪存模块中一区块的一逻辑地址群组记录表,其中所述逻辑地址群组记录表标注了多个逻辑地址群组的状态,其中每一个逻辑地址群组的所述状态是用来表示所述区块中所写入的数据是否有具有位于所述逻辑地址群组之中的任一逻辑地址;
当所述区块需要进行一垃圾收集操作时,参考所述逻辑地址群组记录表以自所述闪存模块读取至少一逻辑地址至实体地址对照表;以及
根据所述至少一逻辑地址至实体地址对照表以决定出所述区块中的有效数据页及无效数据页,以供进行所述垃圾收集操作。
2.如权利要求1所述的方法,其特征在于,建立对应于所述区块的所述逻辑地址群组记录表的步骤包括有:
将所述数据写入至所述区块中,并建立一实体地址至逻辑地址对照表,
其包括了所述区块中连续的实体地址及其对应的逻辑地址;以及根据所述实体地址至逻辑地址对照表来建立所述逻辑地址群组记录表。
3.如权利要求2所述的方法,其特征在于,所述逻辑地址群组记录表是用一个位来表示所述逻辑地址群组的状态,其中所述位的两个数字值分别用来表示所述实体地址至逻辑地址对照表中是否有记录位于所述逻辑地址群组之中的任一逻辑地址。
4.如权利要求2所述的方法,其特征在于,在所述建立所述逻辑地址群组记录表之后,删除所述实体地址至逻辑地址对照表。
5.如权利要求4所述的方法,其特征在于,所述实体地址至逻辑地址对照表不会被存储至所述闪存模块中。
6.如权利要求4所述的方法,其特征在于,所述方法还包括有:
将所述逻辑地址群组记录表写入至所述闪存模块中。
7.如权利要求1所述的方法,其特征在于,每一个逻辑地址群组是包括了一逻辑地址范围,且所述逻辑地址范围是相同于所述闪存模块所存储的一逻辑地址至实体地址对照表的范围。
8.如权利要求7所述的方法,其特征在于,参考所述逻辑地址群组记录表以自所述闪存模块读取所述至少一逻辑地址至实体地址对照表的步骤包括有:
参考所述逻辑地址群组记录表以决定出至少一特定逻辑地址群组,其中所述至少一特定逻辑地址群组的状态为指示所述区块中所写入的数据具有位于所述逻辑地址群组之中的任一逻辑地址;以及
只从所述闪存模块读取对应于所述至少一特定逻辑地址群组的所述至少一逻辑地址至实体地址对照表,而不读取其他的逻辑地址至实体地址对照表。
9.如权利要求1所述的方法,其特征在于,根据所述至少一逻辑地址至实体地址对照表以决定出所述区块中的有效数据页及无效数据页的步骤包括有:
针对所述区块与所述至少一逻辑地址至实体地址对照表所共同具有的一特定逻辑地址,判断所述特定逻辑地址在所述至少一逻辑地址至实体地址对照表中所对应的实体地址是否与在所述区块中所对应的实体地址相同;
若判断结果指出两个实体地址相同,则决定所述区块中具有所述实体地址的数据页为有效数据页;以及
若判断结果指出两个实体地址不同,则决定所述区块中具有所述实体地址的数据页为无效数据页。
10.一种闪存控制器,其中所述闪存控制器是用来存取一闪存模块,且所述闪存控制器的特征在于,包括有:
一只读存储器,用来存储一程序代码;
一微处理器,用来执行所述程序代码以控制对所述闪存模块的存取;以及
一存储器,用以存储对应于所述闪存模块中一区块的一逻辑地址群组记录表,其中所述逻辑地址群组记录表标注了多个逻辑地址群组的状态,其中每一个逻辑地址群组的所述状态是用来表示所述区块中所写入的数据是否有具有位于所述逻辑地址群组之中的任一逻辑地址;
其中当所述区块需要进行一垃圾收集操作时,所述微处理器参考所述逻辑地址群组记录表以自所述闪存模块读取至少一逻辑地址至实体地址对照表,并根据所述至少一逻辑地址至实体地址对照表以决定出所述区块中的有效数据页及无效数据页,以供进行所述垃圾收集操作。
11.如权利要求10所述的闪存控制器,其特征在于,在所述微处理器将所述数据写入至所述区块时会同时建立一实体地址至逻辑地址对照表,其包括了所述区块中连续的实体地址及其对应的逻辑地址;以及所述微处理器根据所述实体地址至逻辑地址对照表来建立所述逻辑地址群组记录表。
12.如权利要求11所述的闪存控制器,其特征在于,所述逻辑地址群组记录表是用一个位来表示所述逻辑地址群组的状态,其中所述位的两个数字值分别用来表示所述实体地址至逻辑地址对照表中是否有记录位于所述逻辑地址群组之中的任一逻辑地址。
13.如权利要求11所述的闪存控制器,其特征在于,在所述建立所述逻辑地址群组记录表之后,所述微处理器删除所述实体地址至逻辑地址对照表。
14.如权利要求13所述的闪存控制器,其特征在于,所述微处理器不会将所述实体地址至逻辑地址对照表存储至所述闪存模块中。
15.如权利要求13所述的闪存控制器,其特征在于,所述微处理器另将所述逻辑地址群组记录表写入至所述闪存模块中。
16.如权利要求10所述的闪存控制器,其特征在于,每一个逻辑地址群组包括一逻辑地址范围,且所述逻辑地址范围是相同于所述闪存模块所存储的一逻辑地址至实体地址对照表的范围。
17.如权利要求16所述的闪存控制器,其特征在于,所述微处理器参考所述逻辑地址群组记录表以决定出至少一特定逻辑地址群组,其中所述至少一特定逻辑地址群组的状态为指示所述区块中所写入的数据具有位于所述逻辑地址群组之中的任一逻辑地址;以及所述微处理器只从所述闪存模块读取对应于所述至少一特定逻辑地址群组的所述至少一逻辑地址至实体地址对照表,而不读取其他的逻辑地址至实体地址对照表。
18.如权利要求10所述的闪存控制器,其特征在于,针对所述区块与所述至少一逻辑地址至实体地址对照表所共同具有的一特定逻辑地址,所述微处理器判断所述特定逻辑地址在所述至少一逻辑地址至实体地址对照表中所对应的实体地址是否与在所述区块中所对应的实体地址相同;若判断结果指出两个实体地址相同,所述微处理器决定所述区块中具有所述实体地址的数据页为有效数据页;以及若判断结果指出两个实体地址不同,所述微处理器决定所述区块中具有所述实体地址的数据页为无效数据页。
19.一种电子装置,其特征在于,包括有:
一闪存模块;以及
一闪存控制器,用来存取所述闪存模块;
其中所述闪存控制器建立对应于所述闪存模块中一区块的一逻辑地址群组记录表,其中所述逻辑地址群组记录表标注了多个逻辑地址群组的状态,其中每一个逻辑地址群组的所述状态是用来表示所述区块中所写入的数据是否有具有位于所述逻辑地址群组之中的任一逻辑地址;以及当所述区块需要进行一垃圾收集操作时,闪存控制器参考所述逻辑地址群组记录表以自所述闪存模块读取至少一逻辑地址至实体地址对照表,并根据所述至少一逻辑地址至实体地址对照表以决定出所述区块中的有效数据页及无效数据页,以供进行所述垃圾收集操作。
20.如权利要求19所述的电子装置,其特征在于,在所述建立所述逻辑地址群组记录表之后,所述闪存控制器删除所述实体地址至逻辑地址对照表,且所述实体地址至逻辑地址对照表不会被存储至所述闪存模块中。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
TW106142465 | 2017-12-05 | ||
TW106142465A TWI692690B (zh) | 2017-12-05 | 2017-12-05 | 存取快閃記憶體模組的方法及相關的快閃記憶體控制器與電子裝置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN109871333A true CN109871333A (zh) | 2019-06-11 |
CN109871333B CN109871333B (zh) | 2022-10-18 |
Family
ID=66658477
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201810596041.XA Active CN109871333B (zh) | 2017-12-05 | 2018-06-11 | 存取闪存模块的方法及相关的闪存控制器与电子装置 |
Country Status (3)
Country | Link |
---|---|
US (1) | US10698809B2 (zh) |
CN (1) | CN109871333B (zh) |
TW (1) | TWI692690B (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111399783A (zh) * | 2020-04-22 | 2020-07-10 | Oppo广东移动通信有限公司 | 存储设备的数据写入方法、装置、电子设备及存储介质 |
CN112199305A (zh) * | 2019-07-08 | 2021-01-08 | 慧荣科技股份有限公司 | 闪存数据存取控制方法及计算机可读取存储介质 |
Families Citing this family (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR102395538B1 (ko) * | 2017-04-28 | 2022-05-10 | 에스케이하이닉스 주식회사 | 데이터 저장 장치 및 그것의 동작 방법 |
CN110895513A (zh) * | 2018-09-12 | 2020-03-20 | 华为技术有限公司 | 一种系统垃圾回收方法和固态硬盘中的垃圾回收方法 |
BR112021025852B1 (pt) * | 2019-06-20 | 2023-05-16 | Jvckenwood Corporation | Dispositivo de codificação de imagem, método de codificação de imagem, dispositivo de decodificação de imagem e método de decodificação de imagem |
TWI724550B (zh) * | 2019-09-19 | 2021-04-11 | 慧榮科技股份有限公司 | 資料儲存裝置以及非揮發式記憶體控制方法 |
KR20210075731A (ko) | 2019-12-13 | 2021-06-23 | 삼성전자주식회사 | 스토리지 장치 및 이의 동작 방법 |
CN113467697A (zh) * | 2020-03-30 | 2021-10-01 | 瑞昱半导体股份有限公司 | 存储器控制器与数据处理方法 |
CN113900582A (zh) * | 2020-06-22 | 2022-01-07 | 慧荣科技股份有限公司 | 数据处理方法及对应的数据储存装置 |
KR20220022332A (ko) * | 2020-08-18 | 2022-02-25 | 에스케이하이닉스 주식회사 | 메모리 컨트롤러 및 그 동작 방법 |
KR20220041593A (ko) | 2020-09-25 | 2022-04-01 | 에스케이하이닉스 주식회사 | 메모리 컨트롤러 및 그 동작 방법 |
US20220222008A1 (en) * | 2021-01-14 | 2022-07-14 | Silicon Motion, Inc. | Method for managing flash memory module and associated flash memory controller and memory device |
TWI810876B (zh) * | 2022-03-31 | 2023-08-01 | 慧榮科技股份有限公司 | 因應主機丟棄命令的資料存取方法及產品電腦程式及裝置 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20100180145A1 (en) * | 2009-01-15 | 2010-07-15 | Phison Electronics Corp. | Data accessing method for flash memory, and storage system and controller system thereof |
CN102063381A (zh) * | 2009-11-13 | 2011-05-18 | 群联电子股份有限公司 | 用于闪存的数据写入方法及其控制器与储存系统 |
CN104346103A (zh) * | 2013-08-09 | 2015-02-11 | 群联电子股份有限公司 | 指令执行方法、存储器控制器与存储器储存装置 |
US20150324284A1 (en) * | 2014-05-12 | 2015-11-12 | Hyun-cheol Kim | Nonvolatile memory system including nonvolatile memory device and memory controller and method of operating the memory controller |
CN107346211A (zh) * | 2016-05-06 | 2017-11-14 | 合肥兆芯电子有限公司 | 映射表加载方法、内存控制电路单元与内存储存装置 |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9003159B2 (en) | 2009-10-05 | 2015-04-07 | Marvell World Trade Ltd. | Data caching in non-volatile memory |
TWI421870B (zh) * | 2009-10-30 | 2014-01-01 | Phison Electronics Corp | 用於快閃記憶體的資料寫入方法及其控制器與儲存系統 |
TWI557561B (zh) | 2016-02-05 | 2016-11-11 | 群聯電子股份有限公司 | 記憶體管理方法、記憶體控制電路單元與記憶體儲存裝置 |
US10489291B2 (en) * | 2018-01-23 | 2019-11-26 | Goke Us Research Laboratory | Garbage collection method for a data storage apparatus by finding and cleaning a victim block |
-
2017
- 2017-12-05 TW TW106142465A patent/TWI692690B/zh active
-
2018
- 2018-06-11 CN CN201810596041.XA patent/CN109871333B/zh active Active
- 2018-06-18 US US16/011,616 patent/US10698809B2/en active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20100180145A1 (en) * | 2009-01-15 | 2010-07-15 | Phison Electronics Corp. | Data accessing method for flash memory, and storage system and controller system thereof |
CN102063381A (zh) * | 2009-11-13 | 2011-05-18 | 群联电子股份有限公司 | 用于闪存的数据写入方法及其控制器与储存系统 |
CN104346103A (zh) * | 2013-08-09 | 2015-02-11 | 群联电子股份有限公司 | 指令执行方法、存储器控制器与存储器储存装置 |
US20150324284A1 (en) * | 2014-05-12 | 2015-11-12 | Hyun-cheol Kim | Nonvolatile memory system including nonvolatile memory device and memory controller and method of operating the memory controller |
CN107346211A (zh) * | 2016-05-06 | 2017-11-14 | 合肥兆芯电子有限公司 | 映射表加载方法、内存控制电路单元与内存储存装置 |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112199305A (zh) * | 2019-07-08 | 2021-01-08 | 慧荣科技股份有限公司 | 闪存数据存取控制方法及计算机可读取存储介质 |
CN112199305B (zh) * | 2019-07-08 | 2024-02-27 | 慧荣科技股份有限公司 | 闪存数据存取控制方法及计算机可读取存储介质 |
CN111399783A (zh) * | 2020-04-22 | 2020-07-10 | Oppo广东移动通信有限公司 | 存储设备的数据写入方法、装置、电子设备及存储介质 |
CN111399783B (zh) * | 2020-04-22 | 2024-01-16 | Oppo广东移动通信有限公司 | 存储设备的数据写入方法、装置、电子设备及存储介质 |
Also Published As
Publication number | Publication date |
---|---|
US20190171559A1 (en) | 2019-06-06 |
TW201926046A (zh) | 2019-07-01 |
TWI692690B (zh) | 2020-05-01 |
CN109871333B (zh) | 2022-10-18 |
US10698809B2 (en) | 2020-06-30 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109871333A (zh) | 存取闪存模块的方法及相关的闪存控制器与电子装置 | |
CN109117383B (zh) | 管理闪存模块的方法和闪存控制器 | |
CN110008136A (zh) | 管理闪存模块的方法及相关的闪存控制器及电子装置 | |
CN109426619A (zh) | 访问快闪存储器模块的方法及相关闪存控制器与电子装置 | |
US9582416B2 (en) | Data erasing method, memory control circuit unit and memory storage apparatus | |
CN109697170B (zh) | 存取闪存模块的方法及相关的闪存控制器与电子装置 | |
CN110058795B (zh) | 管理闪存模块的方法及相关的闪存控制器及电子装置 | |
CN103995784A (zh) | 快闪存储器控制器与存储装置以及快闪存储器控制方法 | |
CN105740157A (zh) | 数据储存装置以及快闪存储器控制方法 | |
CN109783396A (zh) | 存取闪存模块的方法及相关的闪存控制器与电子装置 | |
EP3196767B1 (en) | Method for writing data into flash memory device, flash memory device and storage system | |
CN104715796A (zh) | 多位存储单元非易失性存储器的写入方法及系统 | |
CN102890655B (zh) | 存储器储存装置、其存储器控制器与有效数据识别方法 | |
CN102708058A (zh) | 执行ftl功能的非易失性存储装置及其控制方法 | |
TWI574274B (zh) | 循環區塊模式下的資料存取方法以及使用該方法的裝置 | |
TWI692688B (zh) | 快閃記憶體控制器及相關電子裝置 | |
US20170017405A1 (en) | Systems and methods for improving flash-oriented file system garbage collection | |
US10990292B2 (en) | Flash memory controller, control method of flash memory controller and associated electronic device | |
TWI749279B (zh) | 資料儲存裝置與資料處理方法 | |
TWI657339B (zh) | 管理快閃記憶體模組的方法及相關的快閃記憶體控制器 | |
US20170017406A1 (en) | Systems and methods for improving flash-oriented file system garbage collection | |
TW201337553A (zh) | 資料寫入方法、記憶體控制器與記憶體儲存裝置 | |
CN112099731A (zh) | 数据储存装置与数据处理方法 | |
CN110489053A (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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |