CN111475426A - Method for managing flash memory module and related flash memory controller and electronic device - Google Patents
Method for managing flash memory module and related flash memory controller and electronic device Download PDFInfo
- Publication number
- CN111475426A CN111475426A CN201910238895.5A CN201910238895A CN111475426A CN 111475426 A CN111475426 A CN 111475426A CN 201910238895 A CN201910238895 A CN 201910238895A CN 111475426 A CN111475426 A CN 111475426A
- Authority
- CN
- China
- Prior art keywords
- flash memory
- read
- block
- blocks
- memory controller
- 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
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/14—Handling requests for interconnection or transfer
- G06F13/16—Handling requests for interconnection or transfer for access to memory bus
- G06F13/1668—Details of memory controller
- G06F13/1689—Synchronisation and timing concerns
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; 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 OR CALCULATING; 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/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0877—Cache access modes
- G06F12/0882—Page mode
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C11/00—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor
- G11C11/21—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements
- G11C11/34—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices
- G11C11/40—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices using transistors
- G11C11/401—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices using transistors forming cells needing refreshing or charge regeneration, i.e. dynamic cells
- G11C11/4063—Auxiliary circuits, e.g. for addressing, decoding, driving, writing, sensing or timing
- G11C11/407—Auxiliary circuits, e.g. for addressing, decoding, driving, writing, sensing or timing for memory cells of the field-effect type
- G11C11/4074—Power supply or voltage generation circuits, e.g. bias voltage generators, substrate voltage generators, back-up power, power control circuits
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C11/00—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor
- G11C11/21—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements
- G11C11/34—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices
- G11C11/40—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices using transistors
- G11C11/401—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices using transistors forming cells needing refreshing or charge regeneration, i.e. dynamic cells
- G11C11/4063—Auxiliary circuits, e.g. for addressing, decoding, driving, writing, sensing or timing
- G11C11/407—Auxiliary circuits, e.g. for addressing, decoding, driving, writing, sensing or timing for memory cells of the field-effect type
- G11C11/409—Read-write [R-W] circuits
- G11C11/4093—Input/output [I/O] data interface arrangements, e.g. data buffers
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C11/00—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor
- G11C11/21—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements
- G11C11/34—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices
- G11C11/40—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices using transistors
- G11C11/401—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices using transistors forming cells needing refreshing or charge regeneration, i.e. dynamic cells
- G11C11/4063—Auxiliary circuits, e.g. for addressing, decoding, driving, writing, sensing or timing
- G11C11/407—Auxiliary circuits, e.g. for addressing, decoding, driving, writing, sensing or timing for memory cells of the field-effect type
- G11C11/409—Read-write [R-W] circuits
- G11C11/4099—Dummy cell treatment; Reference voltage generators
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; 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
-
- 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
- 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/32—Timing circuits
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Microelectronics & Electronic Packaging (AREA)
- Computer Hardware Design (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
- Read Only Memory (AREA)
Abstract
本发明公开了一种闪存控制器,其中所述闪存控制器是用来存取闪存模块,且包括只读存储器、微处理器以及计时器。所述只读存储器是用来存储程序代码,所述微处理器用来执行所述程序代码以控制对所述闪存模块的存取,且所述计时器用以产生时间信息。在所述闪存控制器的操作中,所述微处理器根据所述计时器所产生的所述时间信息,以对所述多个区块中的至少一部分区块进行冗余读取操作,其中所述冗余读取操作并非由主装置的读取命令所触发。本发明的闪存控制器通过主动侦测区块的读取状态,并主动地对一段时间内没有被读取的区块进行冗余读取操作,可有效避免区块内的数据因为长时间没有读取而发生劣化的情形,以增进存储质量及读取效率。
The invention discloses a flash memory controller, wherein the flash memory controller is used to access a flash memory module and includes a read-only memory, a microprocessor and a timer. The read-only memory is used to store program code, the microprocessor is used to execute the program code to control access to the flash memory module, and the timer is used to generate time information. In the operation of the flash memory controller, the microprocessor performs a redundant read operation on at least a part of the plurality of blocks according to the time information generated by the timer, wherein The redundant read operation is not triggered by a read command from the master device. The flash memory controller of the present invention actively detects the read status of blocks and actively performs redundant read operations on blocks that have not been read within a period of time, which can effectively prevent the data in the block from being read for a long time. Deterioration occurs due to reading, in order to improve storage quality and reading efficiency.
Description
技术领域technical field
本发明是关于闪存控制器的改善。The present invention relates to improvements in flash memory controllers.
背景技术Background technique
随着闪存技术的演进,闪存芯片中的记忆单元由平面排列的方式改变为多层堆栈的模式,以使得单一芯片可以包括更多的记忆单元,以提升闪存芯片的容量。然而,上述立体闪存(3D flash memory)会遭遇到一些读取质量上的问题,例如若是一区块内的数据长时间没有被读取,则所述区块内的数据质量便会快速劣化,而造成后续所述区块的数据在解码上的困难,或甚至无法被正确的读取。因此,如何提出一种有效率的管理方法来避免数据保存上的问题是一个重要的技术方向。With the evolution of flash memory technology, the memory cells in a flash memory chip are changed from a planar arrangement to a multi-layer stack mode, so that a single chip can include more memory cells to increase the capacity of the flash memory chip. However, the above-mentioned 3D flash memory will encounter some problems in reading quality. For example, if the data in a block is not read for a long time, the quality of the data in the block will deteriorate rapidly. As a result, it is difficult to decode the data of the subsequent blocks, or even cannot be read correctly. Therefore, how to propose an efficient management method to avoid the problem of data preservation is an important technical direction.
发明内容SUMMARY OF THE INVENTION
因此,本发明的目的之一在于提出一种管理闪存的方法,其可以有效地避免上述区块内的数据因为长时间没有读取而发生劣化的情形,以解决现有技术中的问题。Therefore, one of the objectives of the present invention is to provide a method for managing flash memory, which can effectively avoid the deterioration of the data in the above-mentioned blocks due to long time not being read, so as to solve the problems in the prior art.
在本发明的一个实施例中,公开一种闪存控制器,其中所述闪存控制器是用来存取一闪存模块,且所述闪存控制器包括有一只读存储器、一微处理器以及一计时器。所述只读存储器是用来存储一程序代码,所述微处理器用来执行所述程序代码以控制对所述闪存模块的存取,且所述计时器用以产生一时间信息。在所述闪存控制器的操作中,所述微处理器根据所述计时器所产生的所述时间信息,以对所述多个区块中的至少一部分区块进行一冗余读取操作,其中所述冗余读取操作并非由一主装置的读取命令所触发。In one embodiment of the present invention, a flash memory controller is disclosed, wherein the flash memory controller is used to access a flash memory module, and the flash memory controller includes a read-only memory, a microprocessor and a timer device. The read-only memory is used to store a program code, the microprocessor is used to execute the program code to control access to the flash memory module, and the timer is used to generate time information. In the operation of the flash memory controller, the microprocessor performs a redundant read operation on at least a part of the plurality of blocks according to the time information generated by the timer, Wherein the redundant read operation is not triggered by a read command of a master device.
在本发明的另一个实施例中,公开了一种管理一闪存模块的方法,其中所述闪存模块包括了多个闪存芯片,每一个闪存芯片包括了多个区块,每一个区块包括多个数据页,且所述方法包括有:使用一计时器以产生一时间信息;以及根据所述计时器所产生的所述时间信息,以对所述多个区块中的至少一部分区块进行一冗余读取操作,其中所述冗余读取操作并非由一主装置的读取命令所触发。In another embodiment of the present invention, a method for managing a flash memory module is disclosed, wherein the flash memory module includes a plurality of flash memory chips, each flash memory chip includes a plurality of blocks, and each block includes a plurality of flash memory chips. a data page, and the method includes: using a timer to generate a time information; and according to the time information generated by the timer, performing processing on at least a part of the plurality of blocks. A redundant read operation, wherein the redundant read operation is not triggered by a read command from a master device.
在本发明的另一个实施例中,公开了一种电子装置,其包括有一闪存模块以及一闪存控制器,其中所述闪存模块包括了多个闪存芯片,每一个闪存芯片包括了多个区块,每一个区块包括多个数据页。在所述闪存控制器的操作中,所述闪存控制器根据一计时器所产生的时间信息以对所述多个区块中的至少一部分区块进行一冗余读取操作,其中所述冗余读取操作并非由一主装置的读取命令所触发。In another embodiment of the present invention, an electronic device is disclosed, which includes a flash memory module and a flash memory controller, wherein the flash memory module includes a plurality of flash memory chips, and each flash memory chip includes a plurality of blocks , each block includes multiple data pages. In the operation of the flash memory controller, the flash memory controller performs a redundant read operation on at least a part of the plurality of blocks according to time information generated by a timer, wherein the redundant read operation is performed. The remaining read operations are not triggered by a read command from a master device.
附图说明Description of drawings
图1为依据本发明一实施例的一种记忆装置的示意图。FIG. 1 is a schematic diagram of a memory device according to an embodiment of the present invention.
图2为依据本发明一实施例的闪存中一区块的示意图。FIG. 2 is a schematic diagram of a block in a flash memory according to an embodiment of the present invention.
图3为三层式存储区块的每一个记忆单元中多个写入电压位准以及多个临界电压的示意图。3 is a schematic diagram illustrating a plurality of write voltage levels and a plurality of threshold voltages in each memory cell of the three-layer memory block.
图4为根据本发明一实施例的区块记录表的示意图。FIG. 4 is a schematic diagram of a block record table according to an embodiment of the present invention.
图5为根据本发明一实施例的区块读取时间记录表的示意图。FIG. 5 is a schematic diagram of a block read time record table according to an embodiment of the present invention.
图6为根据本发明一实施例的区块读取时间记录表的示意图。FIG. 6 is a schematic diagram of a block read time record table according to an embodiment of the present invention.
图7为根据本发明一实施例的更新区块读取时间记录表的示意图。FIG. 7 is a schematic diagram of an update block read time record table according to an embodiment of the present invention.
图8为根据本发明一实施例的一种管理一闪存模块的方法的流程图。FIG. 8 is a flowchart of a method for managing a flash memory module according to an embodiment of the present invention.
其中,附图标记说明如下:Among them, the reference numerals are described as follows:
100 记忆装置100 Memory Devices
110 闪存控制器110 Flash Controller
112 微处理器112 Microprocessor
112C 程序代码112C program code
112M 只读存储器112M read only memory
114 控制逻辑114 Control logic
116 缓冲存储器116 Buffer memory
118 接口逻辑118 Interface logic
119 计时器119 Timer
120 闪存模块120 flash module
130 主装置130 Main unit
132 编码器132 encoder
134 解码器134 decoder
N1~NK 接脚N1~NK pins
200、B1~BN 区块200. Block B1~BN
202 浮闸晶体管202 floating gate transistor
BL1、BL2、BL3 位线BL1, BL2, BL3 bit lines
WL0~WL2、WL4~WL6 字线WL0~WL2, WL4~WL6 word lines
L1~L8 电压位准L1~L8 voltage level
Vt1~Vt7 临界电压Vt1~Vt7 threshold voltage
400 区块记录表400 block record table
500、600 区块读取时间记录表500, 600 block read time record table
800~804 步骤800~804 steps
具体实施方式Detailed ways
随着闪存技术的演进,闪存芯片中的记忆单元由平面排列的方式改变为多层堆栈的模式,以使得单一芯片可以包括更多的记忆单元,以提升闪存芯片的容量。然而,上述立体闪存(3D flash memory)会遭遇到一些读取质量上的问题,例如若是一区块内的数据长时间没有被读取,则所述区块内的数据质量便会快速劣化,而造成后续所述区块的数据在解码上的困难,或甚至无法被正确的读取。因此,如何提出一种有效率的管理方法来避免数据保存上的问题是一个重要的技术方向。With the evolution of flash memory technology, the memory cells in a flash memory chip are changed from a planar arrangement to a multi-layer stack mode, so that a single chip can include more memory cells to increase the capacity of the flash memory chip. However, the above-mentioned 3D flash memory will encounter some problems in reading quality. For example, if the data in a block is not read for a long time, the quality of the data in the block will deteriorate rapidly. As a result, it is difficult to decode the data of the subsequent blocks, or even cannot be read correctly. Therefore, how to propose an efficient management method to avoid the problem of data preservation is an important technical direction.
【发明内容】[Content of the invention]
因此,本发明的目的之一在于提出一种管理闪存的方法,其可以有效地避免上述区块内的数据因为长时间没有读取而发生劣化的情形,以解决现有技术中的问题。Therefore, one of the objectives of the present invention is to provide a method for managing flash memory, which can effectively avoid the deterioration of the data in the above-mentioned blocks due to long time not being read, so as to solve the problems in the prior art.
在本发明的一个实施例中,公开一种闪存控制器,其中所述闪存控制器是用来存取一闪存模块,且所述闪存控制器包括有一只读存储器、一微处理器以及一计时器。所述只读存储器是用来存储一程序代码,所述微处理器用来执行所述程序代码以控制对所述闪存模块的存取,且所述计时器用以产生一时间信息。在所述闪存控制器的操作中,所述微处理器根据所述计时器所产生的所述时间信息,以对所述多个区块中的至少一部分区块进行一冗余读取操作,其中所述冗余读取操作并非由一主装置的读取命令所触发。In one embodiment of the present invention, a flash memory controller is disclosed, wherein the flash memory controller is used to access a flash memory module, and the flash memory controller includes a read-only memory, a microprocessor and a timer device. The read-only memory is used to store a program code, the microprocessor is used to execute the program code to control access to the flash memory module, and the timer is used to generate time information. In the operation of the flash memory controller, the microprocessor performs a redundant read operation on at least a part of the plurality of blocks according to the time information generated by the timer, Wherein the redundant read operation is not triggered by a read command of a master device.
在本发明的另一个实施例中,公开了一种管理一闪存模块的方法,其中所述闪存模块包括了多个闪存芯片,每一个闪存芯片包括了多个区块,每一个区块包括多个数据页,且所述方法包括有:使用一计时器以产生一时间信息;以及根据所述计时器所产生的所述时间信息,以对所述多个区块中的至少一部分区块进行一冗余读取操作,其中所述冗余读取操作并非由一主装置的读取命令所触发。In another embodiment of the present invention, a method for managing a flash memory module is disclosed, wherein the flash memory module includes a plurality of flash memory chips, each flash memory chip includes a plurality of blocks, and each block includes a plurality of flash memory chips. a data page, and the method includes: using a timer to generate a time information; and according to the time information generated by the timer, performing processing on at least a part of the plurality of blocks. A redundant read operation, wherein the redundant read operation is not triggered by a read command from a master device.
在本发明的另一个实施例中,公开了一种电子装置,其包括有一闪存模块以及一闪存控制器,其中所述闪存模块包括了多个闪存芯片,每一个闪存芯片包括了多个区块,每一个区块包括多个数据页。在所述闪存控制器的操作中,所述闪存控制器根据一计时器所产生的时间信息以对所述多个区块中的至少一部分区块进行一冗余读取操作,其中所述冗余读取操作并非由一主装置的读取命令所触发。In another embodiment of the present invention, an electronic device is disclosed, which includes a flash memory module and a flash memory controller, wherein the flash memory module includes a plurality of flash memory chips, and each flash memory chip includes a plurality of blocks , each block includes multiple data pages. In the operation of the flash memory controller, the flash memory controller performs a redundant read operation on at least a part of the plurality of blocks according to time information generated by a timer, wherein the redundant read operation is performed. The remaining read operations are not triggered by a read command from a master device.
【图式简单说明】[Simple description of the diagram]
图1为依据本发明一实施例的一种记忆装置的示意图。FIG. 1 is a schematic diagram of a memory device according to an embodiment of the present invention.
图2为依据本发明一实施例的闪存中一区块的示意图。FIG. 2 is a schematic diagram of a block in a flash memory according to an embodiment of the present invention.
图3为三层式存储区块的每一个记忆单元中多个写入电压位准以及多个临界电压的示意图。3 is a schematic diagram illustrating a plurality of write voltage levels and a plurality of threshold voltages in each memory cell of the three-layer memory block.
图4为根据本发明一实施例的区块记录表的示意图。FIG. 4 is a schematic diagram of a block record table according to an embodiment of the present invention.
图5为根据本发明一实施例的区块读取时间记录表的示意图。FIG. 5 is a schematic diagram of a block read time record table according to an embodiment of the present invention.
图6为根据本发明一实施例的区块读取时间记录表的示意图。FIG. 6 is a schematic diagram of a block read time record table according to an embodiment of the present invention.
图7为根据本发明一实施例的更新区块读取时间记录表的示意图。FIG. 7 is a schematic diagram of an update block read time record table according to an embodiment of the present invention.
图8为根据本发明一实施例的一种管理一闪存模块的方法的流程图。FIG. 8 is a flowchart of a method for managing a flash memory module according to an embodiment of the present invention.
【实施方式】[implementation]
图1为依据本发明一实施例的一种记忆装置100的示意图。记忆装置100包括有一闪存(Flash Memory)模块120以及一闪存控制器110,且闪存控制器110用来存取闪存模块120。依据本实施例,闪存控制器110包括一微处理器112、一只读存储器(Read OnlyMemory,ROM)112M、一控制逻辑114、一缓冲存储器116、一接口逻辑118以及一计时器119。只读存储器112M是用来存储一程序代码112C,而微处理器112则用来执行程序代码112C以控制对闪存模块120的存取(Access)。控制逻辑114包括了一编码器132以及一解码器134,其中编码器132用来对写入到闪存模块120中的数据进行编码以产生对应的校验码(或称,错误更正码(Error Correction Code),ECC),而解码器134用来将从闪存模块120所读出的数据进行解码。FIG. 1 is a schematic diagram of a
此外,闪存控制器110与闪存模块120均包括了多个相互连接的接脚N1~NK,以供彼此之间的数据及命令的传输。由于接脚N1~NK的功用可参考闪存的相关规格书,故细节不再此叙述。In addition, both the
于典型状况下,闪存模块120包括了多个闪存芯片,而每一个闪存芯片包括多个区块(block),而闪存控制器110对闪存模块120进行抹除数据运作是以区块为单位来进行。另外,一区块可记录特定数量的数据页(page),其中闪存控制器110对闪存模块120进行写入数据的运作是以数据页为单位来进行写入。在本实施例中,闪存模块120为一立体NAND型闪存(3D NAND-type flash)模块。In a typical situation, the
实作上,通过微处理器112执行程序代码112C的闪存控制器110可利用其本身内部的组件来进行诸多控制运作,例如:利用控制逻辑114来控制闪存模块120的存取运作(尤其是对至少一区块或至少一数据页的存取运作)、利用缓冲存储器116进行所需的缓冲处理、以及利用接口逻辑118来与一主装置(Host Device)130沟通。缓冲存储器116是以随机存取存储器(Random Access Memory,RAM)来实施。例如,缓冲存储器116可以是静态随机存取存储器(Static RAM,SRAM),但本发明不限于此。In practice, the
在一实施例中,记忆装置100可以是可携式记忆装置(例如:符合SD/MMC、CF、MS、XD标准的记忆卡),且主装置130为一可与记忆装置连接的电子装置,例如手机、笔记本电脑、桌面计算机…等等。而在另一实施例中,记忆装置100可以是固态硬盘或符合通用闪存存储(Universal Flash Storage,UFS)或嵌入式多媒体记忆卡(Embedded Multi Media Card,EMMC)规格的嵌入式存储装置,以设置在一电子装置中,例如设置在手机、笔记本电脑、桌面计算机之中,而此时主装置130可以是所述电子装置的一处理器。In one embodiment, the
图2为依据本发明一实施例的闪存模块120中一区块200的示意图,其中闪存模块120为立体NAND型闪存。如图2所示,区块200包括了多个记忆单元(例如图标的浮闸晶体管202或是其他的电荷捕捉(charge trap)组件),其通过多条位线(图示仅绘示了BL1~BL3)及多条字线(例如图示WL0~WL2、WL4~WL6)来构成立体NAND型闪存架构。在图2中,以最上面的一个平面为例,字线WL0上的所有浮闸晶体管构成了至少一数据页,字线WL1上的所有浮闸晶体管构成了另至少一数据页,而字线WL2的所有浮闸晶体管构成了再另至少一数据页…以此类堆。此外,根据闪存写入方式的不同,字线WL0与数据页(逻辑数据页)之间的定义也会有所不同,详细来说,当使用单层式存储(Single-Level Cell,SLC)的方式写入时,字线WL0上的所有浮闸晶体管仅对应到单一逻辑数据页;当使用多层式存储(Multi-LevelCell,MLC)的方式写入时,字线WL0上的所有浮闸晶体管对应到两个逻辑数据页;当使用三层式存储(Triple-Level Cell,TLC)的方式写入时,字线WL0上的所有浮闸晶体管对应到三个逻辑数据页;以及当使用四层式存储(Quad-Level Cell,QLC)的方式写入时,字线WL0上的所有浮闸晶体管对应到四个逻辑数据页。由于本技术领域中具有通常知识者应能了解立体NAND型闪存的结构以及字线及数据页之间的关系,故相关的细节在此不予赘述。2 is a schematic diagram of a
在记忆装置100的操作中,由于闪存模块120内的一区块在有数据写入的状态下,若是所述区块长时间没有被读取,则所述区块的数据质量便会大幅度下降,因而造成解码器134在解码上的困难。因此,在本实施例中,微处理器112会根据计时器119所产生的时间信息,以对闪存模块120内有存储数据的至少一部份区块进行冗余读取(dummy read)操作,以避免区块内的数据因为长时间没有读取而劣化。详细来说,上述冗余读取操作指的是微处理器112实质上并不会真的自闪存模块120中取得所述区块的内容,且冗余读取操作也并非是由主装置130的读取命令所触发的(也就是说,微处理器112并非是因为主装置130的要求才对所述区块进行冗余读取操作)。During the operation of the
在本实施例中,当微处理器112对所述区块进行冗余读取操作时,微处理器112会发送一读取请求至闪存模块120,但此时微处理器112会关闭闪存控制器110的一读取致能接脚(read enable pin)(例如,图1所示的接脚N2),也就是说,闪存控制器110无法自闪存模块120取得所要求读取的数据。在接收到来自闪存控制器110的所述读取请求的后,闪存模块120便对所述区块的一或多个数据页进行读取,并仅将所读取的内容暂存在本身的暂存区中,而不会将所读取的数据传送至闪存控制器110。如上所述,通过对所述区块进行冗余读取操作,可以避免所述区块内的数据质量因为长时间没有读取而下降。In this embodiment, when the
在一实施例中,由于冗余读取操作的目的仅是为了避免所述区块内的数据质量因为长时间没有读取而下降,故闪存控制器110可以仅要求读取所述区块的一个数据页即可,以加速冗余读取操作的进行。In one embodiment, since the purpose of the redundant read operation is only to prevent the data quality in the block from being degraded due to no reading for a long time, the
在另一实施例中,微处理器112可以控制/指示闪存模块120使用一单层式存储(Single-Level Cell,SLC)读取模式来对所述区块进行所述冗余读取操作,而不论所述区块是单层式存储区块、双层式存储(Multi-Level Cell,MLC)区块、三层式存储(Triple-Level Cell,TLC)区块、以及四层式存储(Quad-Level Cell,QLC)区块中的任一者。以所述区块是三层式存储区块来做为说明,请参考图3所示的三层式存储区块中每一个记忆单元的多个写入电压位准L1~L8以及多个临界电压(或称为,读取电压)Vt1~Vt7的示意图。如图3所示,每个浮闸晶体管202可以被程序化(programmed(为具有电压位准L1(即(MSB,CSB,LSB)=(1,1,1))、电压位准L2(即(MSB,CSB,LSB)=(1,1,0)、电压位准L3(即(MSB,CSB,LSB)=(1,0,0))、电压位准L4(即(MSB,CSB,LSB)=(0,0,0))、电压位准L5(即(MSB,CSB,LSB)=(0,1,0))、电压位准L6(即(MSB,CSB,LSB)=(0,1,1))、电压位准L7(即(MSB,CSB,LSB)=(0,0,1))或是电压位准L8(即(MSB,CSB,LSB)=(1,0,1))。当闪存控制器110需要读取浮闸晶体管202中的最低有效位(LSB)时,闪存控制器110会使用临界电压Vt1、Vt5去读取浮闸晶体管202,并根据浮闸晶体管202的导通状态(是否有电流产生)来产生“1”或是“0”,类似地,当闪存控制器110需要读取浮闸晶体管202中之中间有效位(CSB)时,闪存控制器110会使用临界电压Vt2、Vt4与Vt6去读取浮闸晶体管202,并根据浮闸晶体管202的导通状态(是否有电流产生)来产生“1”或是“0”,以供解码器134进行解码。类似地,当闪存控制器110需要读取浮闸晶体管202中的最高有效位(MSB)时,闪存控制器110会使用临界电压Vt3与Vt7去读取浮闸晶体管202,并根据浮闸晶体管202的导通状态(是否有电流产生)来判断最高有效位是“1”或是“0”,以供解码器134进行解码。In another embodiment, the
如图3所示,一般读取三层式存储区块时会需要使用到多个临界电压Vt1~Vt7来读取数据内容,然而,在微处理器112对所述区块(三层式存储区块)进行冗余读取操作时,只会使用单一临界电压来对每一个记忆单元来进行读取,例如闪存模块120仅会使用临界电压Vt4来读取每一个记忆单元,而其余的临界电压Vt1~Vt3、Vt5~Vt7则不会在冗余读取操作中使用。As shown in FIG. 3 , when reading a three-layer storage block, a plurality of threshold voltages Vt1 to Vt7 are generally required to read data content. block) for redundant read operations, only a single threshold voltage is used to read each memory cell. For example, the
冗余读取操作的时间点以及微处理器112如何选择需要进行冗余读取操作的区块的多个实施例如下所述。The timing of the redundant read operation and various embodiments of how the
在第一个实施例中,微处理器112可以建立一区块记录表以记录闪存模块120中有哪些区块有存储数据。参考图4所示的区块记录表400的示意图,假设闪存模块120包括了多个区块B1~BN,则微处理器112可以在将数据写入至闪存模块120的过程中一并更新区块记录表400的内容,也就是说,当闪存模块120中有区块被写入数据时将区块序号写入至区块记录表400中(例如,图示的B1、B2、B12、B13、B14),而在闪存模块120中有区块被抹除或是被标记为无效时,将对应的区块序号自区块记录表400中移除。因此,微处理器112便可以根据计时器119所产生的时间信息以周期性地,例如每隔30分钟,对区块记录表400所记录的区块进行冗余读取操作,以维持这些有存储数据的区块的数据质量。In the first embodiment, the
在本实施例中,区块记录表400可以暂存在缓冲存储器116或是外部的动态随机存取存储器中,并在记忆装置100关机或是需要释放存储器空间时将区块记录表400写入至闪存模块120中。In this embodiment, the block record table 400 can be temporarily stored in the
在第二个实施例中,微处理器112可以建立一区块读取时间记录表以记录闪存模块120中有被读取过的区块及对应的时间信息。参考图5所示的区块读取时间记录表500的示意图,假设闪存模块120包括了多个区块B1~BN,则微处理器112可以在将闪存模块120内每一个区块被读取时记录所述区块的时间信息(例如,由主装置130或是计时器119所获得的时间戳)。在一实施例中,区块读取时间记录表500的内容会不断地更新,也就是说,区块读取时间记录表500所记录的是每一个区块最近一次被读取的时间点。因此,微处理器112便可以在空闲的时候,或是根据计时器119所产生的时间信息以周期性地,例如每隔30分钟,根据区块读取时间记录表500的内容来选择未读取时间较长的区块来进行冗余读取操作。举例来说,假设区块读取时间记录表500记录了区块B_4及区块B_5距离上一次读取的时间点已经超过了20分钟,则微处理器112可以优先对区块B_4及区块B_5进行冗余读取操作。In the second embodiment, the
在本实施例中,区块读取时间记录表500可以暂存在缓冲存储器116或是外部的动态随机存取存储器中,并在记忆装置100关机或是需要释放存储器空间时将区块读取时间记录表500写入至闪存模块120中。In this embodiment, the block read time record table 500 can be temporarily stored in the
在第三个实施例中,微处理器112可以建立一区块读取时间记录表以在有区块被读取时实时记录其区块序号及对应的时间信息,且所述区块读取时间记录表可以进一步被更新/整理以供后续冗余读取操作使用。参考图6所示的区块读取时间记录表600的示意图,假设微处理器112从14点01分开始依序读取了区块B_123、B_75、B_67、B_123、B_4、B_5、B_67、B_123,则微处理器112会同时地在区块读取时间记录表600中依序纪录所读取的区块及相对应的时间信息(例如,图示的时间戳),其中上述区块的读取操作是根据主装置130的读取请求所进行的。接着,微处理器112可以根据计时器119所产生的时间信息以周期性地,例如每隔5分钟,来整理区块读取时间记录表600以删除重复的区块序号。举例来说,参考图7,由于区块B_123具有三个读取纪录,则微处理器112可以直接将前两笔读取纪录删除;而区块B_67具有两个读取纪录,则微处理器112可以直接将前一笔读取纪录删除,以产生一整理后的区块读取时间记录表600。In the third embodiment, the
接着,微处理器112可以根据计时器119所产生的时间信息以周期性地,例如每隔10分钟,来根据区块读取时间记录表600来产生一不要作列表(not to do list),以列出读取时间较短而不需要进行冗余读取操作的区块。举例来说,假设目前的时间点是14点40分,且微处理器112设定15分钟以内有读取过的区块不需要进行冗余读取操作,则此时所述不要作列表可以包括了区块B5、B67、B123。接着,若是微处理器112要进行操作,微处理器112可以根据图4所示的区块记录表400以及所述不要作列表,以对闪存模块中120有数据存储的区块,但不包括所述不要作列表可所包括的区块B5、B67、B123,来进行冗余读取操作。Then, the
最后,在冗余读取操作结束后,微处理器112直接将进行冗余读取操作的区块自区块读取时间记录表600中移除,以图7的实施例来说,区块读取时间记录表600可以直接删除区块B_75、B4的记录,也就是说,不需要记录进行冗余读取操作的区块序号及对应的时间信息。Finally, after the redundant read operation is completed, the
需注意的是,上述冗余读取操作的时间点以及微处理器112如何选择需要进行冗余读取操作的区块的三个实施例仅是作为范例说明,只要微处理器112可以建立相关的表格以判断哪些区块需要进行冗余读取操作,其表格内容可以根据工程师的设计而有不同的表现方式,而相关设计上的变化均应隶属于本发明的范畴。It should be noted that the above-mentioned time points of the redundant read operation and the three embodiments of how the
图8为根据本发明一实施例的一种管理一闪存模块的方法的流程图。参考以上实施例所述的内容,流程如下所述。FIG. 8 is a flowchart of a method for managing a flash memory module according to an embodiment of the present invention. With reference to the content described in the above embodiments, the flow is as follows.
步骤800:流程开始。Step 800: The process starts.
步骤802:使用一计时器以产生一时间信息。Step 802: Use a timer to generate time information.
步骤804:根据所述计时器所产生的所述时间信息,以对所述多个区块中的至少一部分区块进行一冗余读取操作,其中所述冗余读取操作并非由一主装置的读取命令所触发。Step 804: Perform a redundant read operation on at least a part of the blocks according to the time information generated by the timer, wherein the redundant read operation is not performed by a master Triggered by a read command from the device.
简要归纳本发明,在本发明的闪存控制器中,通过主动侦测区块的读取状态,并主动地对一段时间内没有被读取的区块进行冗余读取操作,可以有效地避免区块内的数据因为长时间没有读取而发生劣化的情形,以增进存储质量及读取效率。To briefly summarize the present invention, in the flash memory controller of the present invention, by actively detecting the read state of the block, and actively performing redundant read operations on the blocks that have not been read for a period of time, it can effectively avoid The data in the block is degraded because it is not read for a long time, so as to improve the storage quality and the reading efficiency.
以上所述仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。The above descriptions are only preferred embodiments of the present invention, and are not intended to limit the present invention. For those skilled in the art, the present invention may have various modifications and changes. Any modification, equivalent replacement, improvement, etc. made within the spirit and principle of the present invention shall be included within the protection scope of the present invention.
Claims (20)
Applications Claiming Priority (2)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| TW108102728 | 2019-01-24 | ||
| TW108102728A TWI746927B (en) | 2019-01-24 | 2019-01-24 | Method for managing flash memory module and associated flash memory controller and electronic device |
Publications (2)
| Publication Number | Publication Date |
|---|---|
| CN111475426A true CN111475426A (en) | 2020-07-31 |
| CN111475426B CN111475426B (en) | 2022-12-30 |
Family
ID=71733789
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| CN201910238895.5A Active CN111475426B (en) | 2019-01-24 | 2019-03-27 | Method for managing flash memory module and related flash memory controller and electronic device |
Country Status (3)
| Country | Link |
|---|---|
| US (2) | US11074174B2 (en) |
| CN (1) | CN111475426B (en) |
| TW (1) | TWI746927B (en) |
Families Citing this family (2)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US11494101B2 (en) * | 2020-10-14 | 2022-11-08 | Western Digital Technologies, Inc. | Storage system and method for time-duration-based efficient block management and memory access |
| CN118484150B (en) * | 2024-07-15 | 2024-10-01 | 合肥康芯威存储技术有限公司 | Storage device and fault processing method thereof |
Citations (4)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US20130036261A1 (en) * | 2011-08-04 | 2013-02-07 | Hyun Seok Kim | Method for operating memory controller, and memory system including the same |
| US20150293700A1 (en) * | 2014-04-09 | 2015-10-15 | Fujitsu Limited | Control apparatus and control method |
| CN107423158A (en) * | 2016-04-27 | 2017-12-01 | 慧荣科技股份有限公司 | Method for accessing flash memory module and related flash memory controller and memory device |
| US20190074283A1 (en) * | 2017-09-07 | 2019-03-07 | Toshiba Memory Corporation | Memory system |
Family Cites Families (4)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US9910676B1 (en) * | 2015-09-22 | 2018-03-06 | Microsemi Solutions (U.S.), Inc. | Hardware based XIP exit sequence to enable XIP mode operation on SPI boot interface |
| KR102693794B1 (en) * | 2017-01-18 | 2024-08-13 | 에스케이하이닉스 주식회사 | Memory module capable of improving row hammering and operation method thereof |
| CN108932175B (en) * | 2017-05-24 | 2022-01-11 | 建兴储存科技(广州)有限公司 | Control method of solid state storage device |
| TWI623878B (en) * | 2017-07-07 | 2018-05-11 | 大心電子(英屬維京群島)股份有限公司 | Data reading method and storage controller |
-
2019
- 2019-01-24 TW TW108102728A patent/TWI746927B/en active
- 2019-03-27 CN CN201910238895.5A patent/CN111475426B/en active Active
- 2019-11-13 US US16/683,191 patent/US11074174B2/en active Active
-
2021
- 2021-06-23 US US17/355,192 patent/US11487655B2/en active Active
Patent Citations (4)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US20130036261A1 (en) * | 2011-08-04 | 2013-02-07 | Hyun Seok Kim | Method for operating memory controller, and memory system including the same |
| US20150293700A1 (en) * | 2014-04-09 | 2015-10-15 | Fujitsu Limited | Control apparatus and control method |
| CN107423158A (en) * | 2016-04-27 | 2017-12-01 | 慧荣科技股份有限公司 | Method for accessing flash memory module and related flash memory controller and memory device |
| US20190074283A1 (en) * | 2017-09-07 | 2019-03-07 | Toshiba Memory Corporation | Memory system |
Non-Patent Citations (1)
| Title |
|---|
| 余辉龙等: "基于CAM的闪存无效块管理算法", 《计算机工程》 * |
Also Published As
| Publication number | Publication date |
|---|---|
| TW202028967A (en) | 2020-08-01 |
| US20210318953A1 (en) | 2021-10-14 |
| US11487655B2 (en) | 2022-11-01 |
| US20200242024A1 (en) | 2020-07-30 |
| US11074174B2 (en) | 2021-07-27 |
| CN111475426B (en) | 2022-12-30 |
| TWI746927B (en) | 2021-11-21 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| CN111475425B (en) | Method for managing flash memory module and related flash memory controller and electronic device | |
| CN104850514B (en) | method for accessing flash memory and related controller and memory device | |
| CN111399751B (en) | Flash memory controller, method for managing flash memory module, and related electronic device | |
| CN110837340B (en) | Flash memory controller, method for managing flash memory module and related electronic device | |
| TWI720852B (en) | Method for accessing flash memory module and associated flash memory controller and electronic device | |
| TWI722938B (en) | Memory device, flash memory controller and associated access method | |
| CN111159069B (en) | Flash memory controller, method for managing flash memory module and related electronic device | |
| TWI748542B (en) | Electronic device, flash memory controller and method for performing garbage collection operation on flash memory module | |
| CN111488118B (en) | Method for managing flash memory module and related flash memory controller and electronic device | |
| US11487655B2 (en) | Method for managing flash memory module and associated flash memory controller and electronic device based on timing of dummy read operations | |
| TWI823649B (en) | Control method of flash memory controller, flash memory controller, and electronic device | |
| TWI769100B (en) | Method for managing flash memory module and associated flash memory controller and electronic device | |
| TWI863323B (en) | Method for accessing flash memory module and associated flash memory controller and electronic device | |
| TWI781886B (en) | Method for managing flash memory module and associated flash memory controller and electronic device | |
| TWI852008B (en) | Flash memory controller and electronic device | |
| TWI768336B (en) | Method for managing flash memory module and associated flash memory controller and electronic device |
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 |