CN110162493B - 存储器管理方法及使用所述方法的储存控制器 - Google Patents
存储器管理方法及使用所述方法的储存控制器 Download PDFInfo
- Publication number
- CN110162493B CN110162493B CN201810145460.1A CN201810145460A CN110162493B CN 110162493 B CN110162493 B CN 110162493B CN 201810145460 A CN201810145460 A CN 201810145460A CN 110162493 B CN110162493 B CN 110162493B
- Authority
- CN
- China
- Prior art keywords
- block
- array
- index code
- time point
- 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.)
- Active
Links
Images
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/06—Addressing a physical block of locations, e.g. base addressing, module addressing, memory dedication
- G06F12/0615—Address space extension
-
- 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/16—Protection against loss of memory contents
-
- 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/0638—Organizing or formatting or addressing of data
- G06F3/0644—Management of space entities, e.g. partitions, extents, pools
Abstract
本发明提出一种存储器管理方法及使用所述方法的储存控制器。存储器管理方法包括:建立阵列;在起始时间点从闲置区块中选出第一区块并将第一区块的第一索引码储存在预读区块中;在第一时间点将预读区块中的第一索引码加入阵列中,从闲置区块中选出第二区块并以第二区块的第二索引码取代储存在预读区块中的第一索引码,并开始程序化第一区块;以及在第二时间点将预读区块中的第二索引码加入阵列中,从闲置区块中选出第三区块并以第三区块的第三索引码取代储存在预读区块中的第二索引码,并开始程序化第二区块。
Description
技术领域
本发明涉及于一种存储器管理方法及使用所述方法的储存控制器,尤其涉及一种能提高无预警断电时的数据回复能力的存储器管理方法及使用所述方法的储存控制器。
背景技术
一般来说,在存储器储存装置断电之前,会先储存逻辑转实体地址映射表(logical to physical address mapping table)。当存储器储存装置复电之后,控制器会根据记录来判断上次的断电是属于正常断电(或安全断电)或异常断电(或突发断电)。若上次断电属于正常断电,则存储器储存装置会从可复写式非挥发性存储器储存模块中读取最新的逻辑转实体地址映射表。若上次断电属于异常断电,除了读取最新的逻辑转实体地址映射表之外,控制器还要读取所有在最新的逻辑转实体地址映射表储存后用来储存使用者数据的区块的逻辑区块地址(Logical Block Address,LBA)信息,并且将上述区块的实体地址更新到逻辑转实体地址映射表中。然而,控制器必须读取存储器储存装置所有区块的区块编号才能得到上述逻辑区块地址信息。这需要花费相当多的时间。因此,如何能在异常断电后快速恢复逻辑转实体地址映射表,是本领域技术人员应该致力的目标。
发明内容
本发明提供一种存储器管理方法及使用所述方法的储存控制器,能在存储器储存装置发生异常断电之后快速恢复使用者数据。
本发明提出一种存储器管理方法,包括建立一阵列,其中阵列在起始时间点为空值(null);在起始时间点从多个闲置区块中选出第一区块并将第一区块的第一索引码(index number)储存在预读(look-ahead)区块中;在第一时间点将预读区块中的第一索引码加入阵列中,从闲置区块中选出第二区块并以第二区块的第二索引码取代储存在预读区块中的第一索引码,并从第一时间点开始程序化第一区块;以及在第二时间点将预读区块中的第二索引码加入阵列中,从闲置区块中选出第三区块并以第三区块的第三索引码取代储存在预读区块中的第二索引码,并从第二时间点开始程序化第二区块。
在本发明的一实施例中,若在第二时间点后且在阵列的第一索引码及第二索引码写入对应阵列的实体区块及第三索引码写入对应预读区块的实体区块之前发生异常断电,则在复电后根据阵列对应的实体区块中的第一索引码及预读区块对应的实体区块中的第二索引码来恢复数据。
在本发明的一实施例中,上述在第一时间点将预读区块中的第一索引码加入阵列中的步骤包括:将第一索引码储存在阵列的第一元素(element),并将具有第一索引码的阵列储存在对应阵列的实体区块的第一页面。上述在第二时间点将预读区块中的第二索引码加入阵列中的步骤包括:将第二索引码储存在阵列的第二元素,并将具有第一索引码及第二索引码的阵列储存在对应阵列的实体区块的第二页面。
在本发明的一实施例中,上述第一区块的所有实体页面在第一时间点到第二时间点之间的时间间隔中被程序化。
在本发明的一实施例中,上述第一时间点在起始时间点后,且第二时间点在第一时间点后。
本发明提出一种储存控制器,用于存取可复写式非挥发性存储器模块并经由连接接口电路耦接至主机系统。储存控制器包括:存储器接口控制电路,用以耦接至可复写式非挥发性存储器模块,其中可复写式非挥发性存储器模块包括多个实体区块;处理器,耦接至连接接口电路单元及存储器接口控制电路;以及数据传输管理电路,耦接至处理器、连接接口电路单元及存储器接口控制电路。上述处理器建立一阵列,其中阵列在起始时间点为空值;在起始时间点从多个闲置区块中选出第一区块并将第一区块的第一索引码储存在预读区块中;在第一时间点将预读区块中的第一索引码加入阵列中,从闲置区块中选出第二区块并以第二区块的第二索引码取代储存在预读区块中的第一索引码,并从第一时间点开始程序化第一区块;以及在第二时间点将预读区块中的第二索引码加入阵列中,从闲置区块中选出第三区块并以第三区块的第三索引码取代储存在预读区块中的第二索引码,并从第二时间点开始程序化第二区块。
在本发明的一实施例中,若在第二时间点后且在阵列的第一索引码及第二索引码写入对应阵列的实体区块及第三索引码写入对应预读区块的实体区块之前发生异常断电,则在复电后上述处理器根据阵列对应的实体区块中的第一索引码及预读区块对应的实体区块中的第二索引码来恢复数据。
在本发明的一实施例中,上述处理器将第一索引码储存在阵列的第一元素,并将具有第一索引码的阵列储存在对应阵列的实体区块的第一页面,且处理器将第二索引码储存在阵列的第二元素,并将具有第一索引码及第二索引码的阵列储存在对应阵列的实体区块的第二页面。
在本发明的一实施例中,上述第一区块的所有实体页面在第一时间点到第二时间点之间的时间间隔中被程序化。
在本发明的一实施例中,上述第一时间点在起始时间点后,且第二时间点在第一时间点后。
基于上述,本发明的存储器管理方法及使用所述方法的储存控制器除了在第一时间点把第一时间点到第二时间点之间的时间间隔要进行程序化的区块的索引码加入到一个阵列之外,还会在第一时间点将第二个时间点才要开始进行程序化的区块的索引码记录在一个预读区块中。如此一来,即使在第一时间点之后发生异常断电且第一时间点最新的阵列数据及预读区块数据都还没写入实体区块,控制器也可以根据第一时间点的上个时间点的阵列数据及预读区块数据来恢复使用者数据,而不需要读取所有区块的区块编号。
为让本发明的上述特征和优点能更明显易懂,下文特举实施例,并配合附图作详细说明如下。
附图说明
图1是根据本发明的一实施例所示的主机系统及储存装置的方块示意图。
图2是根据本发明一实施例的存储器管理方法的流程图。
图3是根据本发明一实施例的存储器管理方法的示意图。
图4是根据本发明一实施例的用来储存阵列的区块的示意图。
符号说明:
10:主机系统
20:储存装置
110、211:处理器
120:主机存储器
130:数据传输接口电路
210:储存控制器
212:数据传输管理电路
213:存储器接口控制电路
220:可复写式非挥发性存储器模块
230:连接接口电路
S201、S203、S205、S207、S209:存储器管理方法的步骤
310:阵列
320:预读区块
400:实体区块
410:第零页面
411:第一页面
412:第二页面
413:第三页面
具体实施方式
一般而言,储存装置包括可复写式非挥发性存储器模块(rewritable non-volatile memory module)与储存装置控制器(也称,储存控制器或储存控制电路)。通常储存装置是与主机系统一起使用,以使主机系统可将数据写入至储存装置或从储存装置中读取数据。
图1是根据本发明的一实施例所示的主机系统及储存装置的方块示意图。
请参照图1,主机系统(Host System)10包括处理器(Processor)110、主机存储器(Host Memory)120及数据传输接口电路(Data Transfer Interface Circuit)130。在本实施例中,数据传输接口电路130耦接(也称,电性连接)至处理器110与主机存储器120。在另一实施例中,处理器110、主机存储器120与数据传输接口电路130之间利用系统总线(System Bus)彼此耦接。
储存装置20包括储存控制器(Storage Controller)210、可复写式非挥发性存储器模块(Rewritable Non-Volatile Memory Module)220及连接接口电路(ConnectionInterface Circuit)230。其中,储存控制器210包括处理器211、数据传输管理电路(DataTransfer Management Circuit)212与存储器接口控制电路(Memory Interface ControlCircuit)213。
在本实施例中,主机系统10是通过数据传输接口电路130与储存装置20的连接接口电路230耦接至储存装置20来进行数据的存取操作。例如,主机系统10可经由数据传输接口电路130将数据储存至储存装置20或从储存装置20中读取数据。
在本实施例中,处理器110、主机存储器120及数据传输接口电路130可设置在主机系统10的主机板上。数据传输接口电路130的数目可以是一或多个。通过数据传输接口电路130,主机板可以经由有线或无线方式耦接至储存装置20。储存装置20可例如是随身盘、记忆卡、固态硬盘(Solid State Drive,SSD)或无线存储器储存装置。无线存储器储存装置可例如是近距离无线通讯(Near Field Communication,NFC)存储器储存装置、无线传真(WiFi)存储器储存装置、蓝牙(Bluetooth)存储器储存装置或低功耗蓝牙存储器储存装置(例如,iBeacon)等以各式无线通讯技术为基础的存储器储存装置。此外,主机板20也可以通过系统总线耦接至全球定位系统(Global Positioning System,GPS)模块、网络接口卡、无线传输装置、键盘、屏幕、喇叭等各式I/O装置。
在本实施例中,数据传输接口电路130与连接接口电路230是相容于高速周边零件连接接口(Peripheral Component Interconnect Express,PCI Express)标准的接口电路。并且,数据传输接口电路130与连接接口电路230之间是利用快速非挥发性存储器接口标准(Non-Volatile Memory express,NVMe)通讯协定来进行数据的传输。
然而,必须了解的是,本发明不限于此,数据传输接口电路130与连接接口电路230也可以是符合并行先进附件(Parallel Advanced Technology Attachment,PATA)标准、电气和电子工程师协会(Institute of Electrical and Electronic Engineers,IEEE)1394标准、串行先进附件(Serial Advanced Technology Attachment,SATA)标准、通用串行总线(Universal Serial Bus,USB)标准、SD接口标准、超高速一代(Ultra High Speed-I,UHS-I)接口标准、超高速二代(Ultra High Speed-II,UHS-II)接口标准、记忆棒(MemoryStick,MS)接口标准、多芯片封装(Multi-Chip Package)接口标准、多媒体储存卡(MultiMedia Card,MMC)接口标准、eMMC接口标准、通用快闪存储器(Universal Flash Storage,UFS)接口标准、eMCP接口标准、CF接口标准、整合式驱动电子接口(Integrated DeviceElectronics,IDE)标准或其他适合的标准。此外,在另一实施例中,连接接口电路230可与储存控制器210封装在一个芯片中,或者连接接口电路230是布设于一包含储存控制器210的芯片外。
在本实施例中,主机存储器120用以暂存处理器110所执行的指令或数据。例如,在本范例实施例中,主机存储器120可以是动态随机存取存储器(Dynamic Random AccessMemory,DRAM)、静态随机存取存储器(Static Random Access Memory,SRAM)等。然而,必须了解的是,本发明不限于此,主机存储器120也可以是其他适合的存储器。更详细来说,在本实施例中,主机存储器120被划分为多个存储器页面(Memory Page),以供指令与数据的储存管理。每个存储器页面具有起始地址(Starting Address of Memory Page,SAMP)与结束地址(Ending Address of Memory Page,EAMP)。在本实施例中,每个存储器页面是利用16比特大小的地址来进行定位,例如,排序为第一个的存储器页面的起始地址(SAMP)可设定为“0x0000”,并且结束地址(EAMP)可设定为“0x0FFF”。每个存储器页面的大小为4096字节(Bytes)(即,4KB)。主机存储器用来进行数据传输的存储器页面的总空间为64KB,即,共16个存储器页面。然而,本发明并不限于主机存储器的地址定位方式。例如,在另一实施例中,主机存储器可具有更多或是更少的空间,并且可对应地使用适合的定位方式来进行地址定位。
储存控制器210用以执行以硬件型式或固件型式实作的多个逻辑闸或控制指令并且根据主机系统10的指令在可复写式非挥发性存储器模块220中进行数据的写入、读取与抹除等运作。
更详细来说,储存控制器210中的处理器211为具备运算能力的硬件,其用以控制储存控制器210的整体运作。具体来说,处理器211具有多个控制指令,并且在储存装置20运作时,此些控制指令会被执行以进行数据的写入、读取与抹除等运作。
值得一提的是,在本实施例中,处理器110与处理器211例如是中央处理单元(Central Processing Unit,CPU)、微处理器(micro-processor)、或是其他可程序化的处理单元(Microprocessor)、数字信号处理器(Digital Signal Processor,DSP)、可程序化控制器、特殊应用集成电路(Application Specific Integrated Circuits,ASIC)、可程序化逻辑装置(Programmable Logic Device,PLD)或其他类似电路元件,本发明并不限于此。
在一实施例中,储存控制器210还具有只读存储器(未示出)及随机存取存储器(未示出)。特别是,此只读存储器具有开机码(boot code),并且当储存控制器210被致能时,处理器211会先执行此开机码来将储存于可复写式非挥发性存储器模块220中的控制指令载入至储存控制器210的随机存取存储器中。之后,处理器211会运转此些控制指令以进行数据的写入、读取与抹除等运作。在另一实施例中,处理器211的控制指令也可以程序码型式储存于可复写式非挥发性存储器模块220的特定区域,例如,可复写式非挥发性存储器模块220中专用于存放系统数据的实体储存单元中。
在本实施例中,如上所述,储存控制器210还包括数据传输管理电路212与存储器接口控制电路213。
其中,数据传输管理电路212耦接至处理器211、存储器接口控制电路213与连接接口电路230。数据传输管理电路212用以接受处理器211的指示来进行数据的传输。例如,经由连接接口电路230从主机系统10(如,主机存储器120)读取数据,并且将所读取的数据经由存储器接口控制电路213写入至可复写式非挥发性存储器模块220中。又例如,经由存储器接口控制电路213从可复写式非挥发性存储器模块220读取数据,并且将所读取的数据经由连接接口电路230写入至主机系统10(如,主机存储器120)中。以下会再配合多个图式与实施例来详细说明本发明中数据传输管理电路212的功能。
存储器接口控制电路213用以接受处理器211的指示,配合数据传输管理电路212来进行对于可复写式非挥发性存储器模块220的数据的写入(也称,程序化,Programming)、读取操作。存储器接口控制电路213也可对可复写式非挥发性存储器模块220进行抹除操作。
举例来说,处理器211可执行写入指令序列,以指示存储器接口控制电路213将数据写入至可复写式非挥发性存储器模块220中;处理器211可执行读取指令序列,以指示存储器接口控制电路213从可复写式非挥发性存储器模块220中读取数据;处理器211可执行抹除指令序列,以指示存储器接口控制电路213对可复写式非挥发性存储器模块220进行抹除操作。写入指令序列、读取指令序列及抹除指令序列可各别包括一或多个程序码或指令码并且用以指示对可复写式非挥发性存储器模块220执行相对应的写入、读取及抹除等操作。在一实施例中,处理器211还可以下达其他类型的指令序列给存储器接口控制电路213,以对可复写式非挥发性存储器模块220执行相对应的操作。
此外,欲写入至可复写式非挥发性存储器模块220的数据会经由存储器接口控制电路213转换为可复写式非挥发性存储器模块220所能接受的格式。具体来说,若处理器211要存取可复写式非挥发性存储器模块220,处理器211会传送对应的指令序列给存储器接口控制电路213以指示存储器接口控制电路213执行对应的操作。例如,这些指令序列可包括指示写入数据的写入指令序列、指示读取数据的读取指令序列、指示抹除数据的抹除指令序列、以及用以指示各种存储器操作(例如,改变读取电压准位或执行垃圾回收程序等等)的相对应的指令序列。这些指令序列可包括一或多个信号,或是在总线上的数据。这些信号或数据可包括指令码或程序码。例如,在读取指令序列中,会包括读取的辨识码、存储器地址等信息。
在本实施例中,存储器接口控制电路213还会辨识配置给可复写式非挥发性存储器模块220的逻辑区块的状态。存储器接口控制电路213也可辨识可复写式非挥发性存储器模块220的实体区块的状态。更详细来说,当存储器接口控制电路213根据读取/写入指令发出读取/写入请求给可复写式非挥发性存储器模块220后,存储器接口控制电路213会辨识对应的可复写式非挥发性存储器模块220的储存单元(如,实体区块、实体页面,或是对应的逻辑区块、逻辑页面)的状态是否为就绪状态(readiness)。举例来说,当存储器接口控制电路213辨识到对应读取/写入指令的实体区块以准备好进行数据传输时,存储器接口控制电路213会回报映射至所述实体区块的逻辑区块为就绪状态。换句话说,存储器接口控制电路213会根据判断逻辑区块所映射的实体区块是否准备好进行数据传输来判断所述逻辑区块的状态是否为就绪状态。存储器接口控制电路213可主动判断对应的实体区块的状态是否准备好进行数据传输,也可被动地接收来自可复写式非挥发性存储器模块220的对应的实体区块的状态回报,本发明不限于存储器接口控制电路213如何辨识欲进行数据存取的实体区块/逻辑区块是否为就绪状态的方法。
可复写式非挥发性存储器模块220是耦接至储存控制器210并且用以储存主机系统10所写入的数据。可复写式非挥发性存储器模块220可以是单阶记忆胞(Single LevelCell,SLC)NAND型快闪存储器模块(即,一个记忆胞中可储存1个比特的快闪存储器模块)、多阶记忆胞(Multi Level Cell,MLC)NAND型快闪存储器模块(即,一个记忆胞中可储存2个比特的快闪存储器模块)、复数阶记忆胞(Triple Level Cell,TLC)NAND型快闪存储器模块(即,一个记忆胞中可储存3个比特的快闪存储器模块)、其他快闪存储器模块或其他具有相同特性的存储器模块。可复写式非挥发性存储器模块220中的记忆胞是以阵列的方式设置。
在本实施例中,可复写式非挥发性存储器模块220的记忆胞会构成多个实体程序化单元,并且此些实体程序化单元会构成多个实体区块(也称,实体抹除单元)。具体来说,同一条字元线(或同一个字元线层)上的记忆胞会组成一或多个实体程序化单元。若每一个记忆胞被用以储存2个以上的比特,则同一条字元线(或同一个字元线层)上的实体程序化单元至少可被分类为一个下(lower)实体程序化单元与一个上(upper)实体程序化单元。
在一实施例中,若每一个记忆胞被用以储存2个比特,则同一条字元线(或同一个字元线层)上的实体程序化单元可被分类为一个下实体程序化单元与一个上实体程序化单元。例如,一记忆胞的最低有效比特(Least Significant Bit,LSB)是属于下实体程序化单元,并且一记忆胞的最高有效比特(Most Significant Bit,MSB)是属于上实体程序化单元。一般来说,下实体程序化单元的写入速度会大于上实体程序化单元的写入速度,和/或下实体程序化单元的可靠度会高于上实体程序化单元的可靠度。在另一实施例中,若每一个记忆胞被用以储存3个比特,则同一条字元线(或同一个字元线层)上的实体程序化单元可被分类为一个下实体程序化单元、一个上实体程序化单元及一个额外(extra)实体程序化单元。例如,一记忆胞的最低有效比特是属于下实体程序化单元,一记忆胞的中间有效比特(Central Significant Bit,CSB)是属于上实体程序化单元,并且一记忆胞的最高有效比特是属于额外实体程序化单元。
在本实施例中,数据是以实体区块为单位作为写入数据(程序化)的储存单元。实体区块也可称为实体抹除单元或实体单元。实体抹除单元为抹除的最小单位。也即,每一实体抹除单元含有最小数目的一并被抹除的记忆胞。每一实体区块会具有多个实体程序化单元。实体程序化单元为实体页面(page)或是实体扇(sector)。若实体程序化单元为实体页面,则此些实体程序化单元通常包括数据比特区与冗余(redundancy)比特区。数据比特区包含多个实体扇,用以储存使用者数据,而冗余比特区用以储存系统数据(例如,错误更正码)。
然而,本发明不限于此。例如,在另一实施例中,也可变化本实施例所述的数据传输方法,应用至以实体程序化单元为单位作为写入数据的储存单元的可复写式非挥发性存储器模块220。
在一实施例中,储存控制器210是基于实体单元来管理可复写式非挥发性存储器模块220中的记忆胞。例如,在以下实施例中,是以一个实体区块作为一个实体单元的范例。然而,在另一实施例中,一个实体单元也可以是指任意数目的记忆胞组成,视实务上的需求而定。此外,必须了解的是,当储存控制器211对可复写式非挥发性存储器模块220中的记忆胞(或实体单元)进行分组以执行对应的管理操作时,此些记忆胞(或实体单元)是被逻辑地分组,而其实际位置并未更动。
储存控制器210会配置多个逻辑单元来映射可复写式非挥发性存储器模块220的用以储存使用者数据的多个实体单元,并且主机系统10是通过逻辑单元来存取用以储存使用者数据的多个实体单元中的使用者数据。在此,每一个逻辑单元可以是由一或多个逻辑地址组成。例如,逻辑单元可以是逻辑区块(logical block)、逻辑页面(logical page)或是逻辑扇区(logical sector)。一个逻辑单元可以是映射至一或多个实体单元,其中实体单元可以是一或多个实体地址、一或多个实体扇、一或多个实体程序化单元或者一或多个实体抹除单元。在本实施例中,逻辑单元为逻辑区块。
此外,储存控制器210会建立逻辑转实体地址映射表(logical to physicaladdress mapping table)与实体转逻辑地址映射表(physical to logical addressmapping table),以记录配置给可复写式非挥发性存储器模块220的逻辑单元(如,逻辑区块、逻辑页面或逻辑扇区)与实体单元(如,实体抹除单元、实体程序化单元、实体扇区)之间的映射关系。换言之,储存控制器210可通过逻辑转实体地址映射表来查找一逻辑单元所映射的实体单元,并且储存控制器210可通过实体转逻辑地址映射表来查找一实体单元所映射的逻辑单元。然而,上述有关逻辑单元与实体单元映射的技术概念为本领域技术人员的惯用技术手段,不再赘述于此。
在一实施例中,储存控制器210还包括缓冲存储器(未示出于图中)与电源管理电路(未示出于图中)。缓冲存储器是耦接至处理器211并且用以暂存来自于主机系统10的数据与指令、来自于可复写式非挥发性存储器模块220的数据或其他用以管理储存装置20的系统数据。电源管理电路是耦接至处理器211并且用以控制储存装置20的电源。
在一实施例中,储存控制器210可记录一个阵列,阵列中的元素储存了在逻辑转实体地址映射表储存到可复写式非挥发性存储器模块220之后要被程序化的区块的索引码。因此,当发生异常断电时,储存控制器210就可读取上述阵列中所记录的索引码,而不需要扫描所有闲置区块来确认逻辑转实体地址映射表储存到可复写式非挥发性存储器模块220后要被程序化的区块。然而,若在一个区块开始被程序化之后且最新的阵列信息还没被写入可复写式非挥发性存储器模块220之前发生异常断电,要写入此区块的数据将会全数遗失。为了解决这个问题,储存控制器210可在确认阵列数据写入可复写式非挥发性存储器模块220之后才进行此区块的写入操作。然而,这会浪费掉许多时间资源,因为阵列中所有区块的索引码的大小相当大。
图2是根据本发明一实施例的存储器管理方法的流程图。图3是根据本发明一实施例的存储器管理方法的示意图。图4是根据本发明一实施例的用来储存阵列的区块的示意图。
请参照图2,在步骤S201中,建立一阵列,其中上述阵列在起始时间点为空值。
举例来说,在图3及图4中,储存控制器210会在时间点0建立阵列310,此时的阵列310为空值(NULL),因此用以储存阵列310的实体区块400的第零页面410(即,实体页面或实体程序化单元)并未储存任何数据。
在步骤S203中,在起始时间点从多个闲置区块中选出第一区块并将第一区块的第一索引码储存在预读区块中。
举例来说,在图3中,储存控制器210还会在时间点0从闲置区块中选出区块5(即,第一区块),并将区块5的索引码5储存在预读区块320中。
在步骤S205中,在第一时间点将预读区块中的第一索引码加入阵列中,从闲置区块中选出第二区块并以第二区块的第二索引码取代储存在预读区块中的第一索引码,并从第一时间点开始程序化第一区块。
举例来说,在图3及图4中,储存控制器210会在时间点t1将预读区块320中的索引码5加入阵列310中,并从闲置区块中选出区块30(即,第二区块),并以区块30的索引码30取代储存在预读区块320中的索引码5。此时,阵列310的第一元素为索引码5,且索引码5会储存在实体区块400的第一页面411中。储存控制器210会从时间点t1开始程序化区块5。
在步骤S207中,在第二时间点将预读区块中的第二索引码加入阵列中,从闲置区块中选出第三区块并以第三区块的第三索引码取代储存在预读区块中的第二索引码,并从第二时间点开始程序化第二区块。
举例来说,在图3及图4中,储存控制器210会在时间点t2将预读区块320中的索引码30加入阵列310中,并从闲置区块中选出区块16(即,第三区块),并以区块16的索引码16取代储存在预读区块320中的索引码30。此时,阵列310的第一元素为索引码5且第二元素为索引码30,且索引码5及索引码30会储存在实体区块400的第二页面412中。储存控制器210会从时间点t2开始程序化区块30。
此外,储存控制器210会在时间点t3将预读区块320中的索引码16加入阵列310中,并从闲置区块中选出区块23,并以区块23的索引码23取代储存在预读区块320中的索引码16。此时,阵列310的第一元素为索引码5且第二元素为索引码30且第三元素为索引码16,且索引码5及索引码30及索引码16会储存在实体区块400的第三页面413中。储存控制器210会从时间点t3开始程序化区块16。
值得注意的是,区块5的所有页面会在时间点t1到时间点t2之间被程序化,且区块30的所有页面会在时间点t2到时间点t3之间被程序化。
在步骤S209中,若在第二时间点后且在阵列的第一索引码及第二索引码写入对应阵列的实体区块及第三索引码写入对应预读区块的实体区块之前发生异常断电,则在复电后根据阵列对应的实体区块中的第一索引码及预读区块对应的实体区块中的第二索引码来恢复数据。
举例来说,若在时间点t1之后发生异常断电,而在断电时预读区块320中的索引码30以及阵列310中的索引码5还没完整写入实体区块400的第一页面411,则储存控制器210会在复电后根据实体区块400的第零页面410的预读区块320中储存的索引码5以来扫描区块5,以恢复使用者数据。
举例来说,若在时间点t2之后发生异常断电,而在断电时预读区块320中的索引码16以及阵列310中的索引码5及索引码30还没写入实体区块400的第二页面412,则储存控制器210会在复电后根据实体区块400的第一页面411的阵列310中储存的索引码5以及预读区块320的索引码30来扫描区块5及区块30,以恢复使用者数据。
另一方面,若在时间点t3之后发生异常断电,而在断电时预读区块320中的索引码23以及阵列310中的索引码5、索引码30及索引码16还没写入实体区块400的第三页面413,则储存控制器210会在复电后根据实体区块400的第一页面412的阵列310中储存的索引码5、30以及预读区块320的索引码16来扫描区块5、区块30及区块16,以恢复使用者数据。
综上所述,本发明的存储器管理方法及使用所述方法的储存控制器除了在第一时间点把第一时间点到第二时间点之间的时间间隔要进行程序化的区块的索引码加入到一个阵列之外,还会在第一时间点将第二个时间点才要开始进行程序化的区块的索引码记录在一个预读区块中。如此一来,即使在第一时间点之后发生异常断电且第一时间点最新的阵列数据及预读区块数据都还没写入实体区块,控制器也可以根据第一时间点的上个时间点的阵列数据及预读区块数据来恢复使用者数据,而不需要读取所有区块的区块编号。
虽然本发明已以实施例揭示如上,然其并非用以限定本发明,任何所属技术领域中技术人员,在不脱离本发明的精神和范围内,当可作些许的更改与润饰,故本发明的保护范围当视所附的权利要求所界定者为准。
Claims (10)
1.一种存储器管理方法,用于可复写式非挥发性存储器模块的存取,其特征在于,包括:
建立阵列,其中所述阵列在起始时间点为空值;
在所述起始时间点从多个闲置区块中选出第一区块并将所述第一区块的第一索引码储存在预读区块中;
在第一时间点将所述预读区块中的所述第一索引码加入所述阵列中,从所述多个闲置区块中选出第二区块并以所述第二区块的第二索引码取代储存在所述预读区块中的所述第一索引码,并从所述第一时间点开始程序化所述第一区块;以及
在第二时间点将所述预读区块中的所述第二索引码加入所述阵列中,从所述多个闲置区块中选出第三区块并以所述第三区块的第三索引码取代储存在所述预读区块中的所述第二索引码,并从所述第二时间点开始程序化所述第二区块。
2.根据权利要求1所述的存储器管理方法,其中若在所述第二时间点后且在所述阵列的所述第一索引码及所述第二索引码写入对应所述阵列的实体区块及所述第三索引码写入对应所述预读区块的实体区块之前发生异常断电,则在复电后根据所述阵列对应的实体区块中的所述第一索引码及所述预读区块对应的实体区块中的所述第二索引码来恢复数据。
3.根据权利要求1所述的存储器管理方法,其中在所述第一时间点将所述预读区块中的所述第一索引码加入所述阵列中的步骤包括:将所述第一索引码储存在所述阵列的第一元素,并将具有所述第一索引码的所述阵列储存在对应所述阵列的实体区块的第一页面;其中在所述第二时间点将所述预读区块中的所述第二索引码加入所述阵列中的步骤包括:将所述第二索引码储存在所述阵列的第二元素,并将具有所述第一索引码及所述第二索引码的所述阵列储存在对应所述阵列的实体区块的第二页面。
4.根据权利要求1所述的存储器管理方法,其中所述第一区块的所有实体页面在所述第一时间点到所述第二时间点之间的时间间隔中被程序化。
5.根据权利要求1所述的存储器管理方法,其中所述第一时间点在所述起始时间点后,且所述第二时间点在所述第一时间点后。
6.一种储存控制器,其特征在于,用于存取可复写式非挥发性存储器模块并经由连接接口电路耦接至主机系统,所述储存控制器包括:
存储器接口控制电路,用以耦接至所述可复写式非挥发性存储器模块,其中所述可复写式非挥发性存储器模块包括多个实体区块;
处理器,耦接至所述连接接口电路单元及所述存储器接口控制电路;以及
数据传输管理电路,耦接至所述处理器、所述连接接口电路单元及所述存储器接口控制电路,其中所述处理器
建立阵列,其中所述阵列在起始时间点为空值;
在所述起始时间点从所述多个实体区块中的多个闲置区块中选出第一区块并将所述第一区块的第一索引码储存在预读区块中;
在第一时间点将所述预读区块中的所述第一索引码加入所述阵列中,从所述多个闲置区块中选出第二区块并以所述第二区块的第二索引码取代储存在所述预读区块中的所述第一索引码,并从所述第一时间点开始程序化所述第一区块;以及
在第二时间点将所述预读区块中的所述第二索引码加入所述阵列中,从所述多个闲置区块中选出第三区块并以所述第三区块的第三索引码取代储存在所述预读区块中的所述第二索引码,并从所述第二时间点开始程序化所述第二区块。
7.根据权利要求6所述的储存控制器,其中若在所述第二时间点后且在所述阵列的所述第一索引码及所述第二索引码写入对应所述阵列的实体区块及所述第三索引码写入对应所述预读区块的实体区块之前发生异常断电,则所述处理器在复电后根据所述阵列对应的实体区块中的所述第一索引码及所述预读区块对应的实体区块中的所述第二索引码来恢复数据。
8.根据权利要求6所述的储存控制器,其中所述处理器将所述第一索引码储存在所述阵列的第一元素,并将具有所述第一索引码的所述阵列储存在对应所述阵列的实体区块的第一页面,且所述处理器将所述第二索引码储存在所述阵列的第二元素,并将具有所述第一索引码及所述第二索引码的所述阵列储存在对应所述阵列的实体区块的第二页面。
9.根据权利要求6所述的储存控制器,其中所述第一区块的所有实体页面在所述第一时间点到所述第二时间点之间的时间间隔中被程序化。
10.根据权利要求6所述的储存控制器,其中所述第一时间点在所述起始时间点后,且所述第二时间点在所述第一时间点后。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810145460.1A CN110162493B (zh) | 2018-02-12 | 2018-02-12 | 存储器管理方法及使用所述方法的储存控制器 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810145460.1A CN110162493B (zh) | 2018-02-12 | 2018-02-12 | 存储器管理方法及使用所述方法的储存控制器 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110162493A CN110162493A (zh) | 2019-08-23 |
CN110162493B true CN110162493B (zh) | 2021-05-18 |
Family
ID=67635129
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201810145460.1A Active CN110162493B (zh) | 2018-02-12 | 2018-02-12 | 存储器管理方法及使用所述方法的储存控制器 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110162493B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2022064497A (ja) * | 2020-10-14 | 2022-04-26 | キオクシア株式会社 | メモリシステム |
Family Cites Families (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7986554B2 (en) * | 2008-03-19 | 2011-07-26 | Sandisk Technologies Inc. | Different combinations of wordline order and look-ahead read to improve non-volatile memory performance |
CN101794261B (zh) * | 2009-11-24 | 2013-05-08 | 深圳市硅格半导体有限公司 | 映射表数据恢复方法及装置 |
CN103955434B (zh) * | 2010-10-08 | 2017-04-19 | 群联电子股份有限公司 | 数据写入方法、存储器控制器与存储器储存装置 |
CN102467459B (zh) * | 2010-11-11 | 2015-05-06 | 群联电子股份有限公司 | 数据写入方法、存储器控制器与存储器储存装置 |
CN102890655B (zh) * | 2011-07-20 | 2015-07-08 | 群联电子股份有限公司 | 存储器储存装置、其存储器控制器与有效数据识别方法 |
KR102314459B1 (ko) * | 2014-08-12 | 2021-10-19 | 삼성전자주식회사 | 이동 통신 시스템에서 간섭 제어 방법 및 장치 |
CN105468292B (zh) * | 2014-09-05 | 2019-04-23 | 群联电子股份有限公司 | 数据存取方法、存储器储存装置及存储器控制电路单元 |
TWI566253B (zh) * | 2015-09-02 | 2017-01-11 | 慧榮科技股份有限公司 | 用來管理一記憶裝置之方法以及記憶裝置與控制器 |
CN107590080B (zh) * | 2016-07-07 | 2020-10-09 | 合肥兆芯电子有限公司 | 映射表更新方法、存储器控制电路单元及存储器存储装置 |
-
2018
- 2018-02-12 CN CN201810145460.1A patent/CN110162493B/zh active Active
Also Published As
Publication number | Publication date |
---|---|
CN110162493A (zh) | 2019-08-23 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10372619B2 (en) | Data backup method, data recovery method and storage controller | |
US20180095698A1 (en) | Memory management method and storage controller using the same | |
US9176865B2 (en) | Data writing method, memory controller, and memory storage device | |
US10635358B2 (en) | Memory management method and storage controller | |
US8589619B2 (en) | Data writing method, memory controller, and memory storage apparatus | |
US8516184B2 (en) | Data updating using mark count threshold in non-volatile memory | |
CN107402716B (zh) | 数据写入方法、存储器控制电路单元与存储器储存装置 | |
CN107665091B (zh) | 数据读取方法、数据写入方法及其存储控制器 | |
US9383929B2 (en) | Data storing method and memory controller and memory storage device using the same | |
CN107943710B (zh) | 存储器管理方法及使用所述方法的存储控制器 | |
CN107590080B (zh) | 映射表更新方法、存储器控制电路单元及存储器存储装置 | |
CN103678162B (zh) | 系统数据储存方法、存储器控制器与存储器储存装置 | |
CN113885808B (zh) | 映射信息记录方法以及存储器控制电路单元与存储装置 | |
US10496549B2 (en) | Memory manage method and storage controller using the same | |
CN112051971B (zh) | 数据整并方法、存储器存储装置及存储器控制电路单元 | |
CN109273033B (zh) | 存储器管理方法、存储器控制电路单元与存储器存储装置 | |
CN107103930B (zh) | 数据写入方法、存储器控制电路单元与存储器存储装置 | |
US20150186058A1 (en) | Data storing method, memory control circuit unit and memory storage apparatus | |
US10824340B2 (en) | Method for managing association relationship of physical units between storage area and temporary area, memory control circuit unit, and memory storage apparatus | |
CN110162493B (zh) | 存储器管理方法及使用所述方法的储存控制器 | |
CN113138720B (zh) | 数据存储方法、存储器控制电路单元以及存储器存储装置 | |
CN106354651B (zh) | 平均磨损方法、存储器控制电路单元及存储器储存装置 | |
US10579306B1 (en) | Memory management method and storage controller | |
CN110442300B (zh) | 整理指令记录方法、存储器控制电路单元与存储装置 | |
CN111610937A (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 |