[go: up one dir, main page]

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 PDF

Info

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
Application number
CN201910238895.5A
Other languages
Chinese (zh)
Other versions
CN111475426B (en
Inventor
杜建东
萧佳容
杨宗杰
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Silicon Motion Inc
Original Assignee
Silicon Motion Inc
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Silicon Motion Inc filed Critical Silicon Motion Inc
Publication of CN111475426A publication Critical patent/CN111475426A/en
Application granted granted Critical
Publication of CN111475426B publication Critical patent/CN111475426B/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/16Handling requests for interconnection or transfer for access to memory bus
    • G06F13/1668Details of memory controller
    • G06F13/1689Synchronisation and timing concerns
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • G06F12/023Free address space management
    • G06F12/0238Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
    • G06F12/0246Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory in block erasable memory, e.g. flash memory
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0877Cache access modes
    • G06F12/0882Page mode
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C11/00Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor
    • G11C11/21Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements
    • G11C11/34Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices
    • G11C11/40Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices using transistors
    • G11C11/401Digital 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/4063Auxiliary circuits, e.g. for addressing, decoding, driving, writing, sensing or timing
    • G11C11/407Auxiliary circuits, e.g. for addressing, decoding, driving, writing, sensing or timing for memory cells of the field-effect type
    • G11C11/4074Power supply or voltage generation circuits, e.g. bias voltage generators, substrate voltage generators, back-up power, power control circuits
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C11/00Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor
    • G11C11/21Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements
    • G11C11/34Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices
    • G11C11/40Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices using transistors
    • G11C11/401Digital 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/4063Auxiliary circuits, e.g. for addressing, decoding, driving, writing, sensing or timing
    • G11C11/407Auxiliary circuits, e.g. for addressing, decoding, driving, writing, sensing or timing for memory cells of the field-effect type
    • G11C11/409Read-write [R-W] circuits 
    • G11C11/4093Input/output [I/O] data interface arrangements, e.g. data buffers
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C11/00Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor
    • G11C11/21Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements
    • G11C11/34Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices
    • G11C11/40Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices using transistors
    • G11C11/401Digital 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/4063Auxiliary circuits, e.g. for addressing, decoding, driving, writing, sensing or timing
    • G11C11/407Auxiliary circuits, e.g. for addressing, decoding, driving, writing, sensing or timing for memory cells of the field-effect type
    • G11C11/409Read-write [R-W] circuits 
    • G11C11/4099Dummy cell treatment; Reference voltage generators
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/72Details relating to flash memory management
    • G06F2212/7209Validity control, e.g. using flags, time stamps or sequence numbers
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/06Auxiliary circuits, e.g. for writing into memory
    • G11C16/10Programming or data input circuits
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/06Auxiliary circuits, e.g. for writing into memory
    • G11C16/32Timing 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

本发明公开了一种闪存控制器,其中所述闪存控制器是用来存取闪存模块,且包括只读存储器、微处理器以及计时器。所述只读存储器是用来存储程序代码,所述微处理器用来执行所述程序代码以控制对所述闪存模块的存取,且所述计时器用以产生时间信息。在所述闪存控制器的操作中,所述微处理器根据所述计时器所产生的所述时间信息,以对所述多个区块中的至少一部分区块进行冗余读取操作,其中所述冗余读取操作并非由主装置的读取命令所触发。本发明的闪存控制器通过主动侦测区块的读取状态,并主动地对一段时间内没有被读取的区块进行冗余读取操作,可有效避免区块内的数据因为长时间没有读取而发生劣化的情形,以增进存储质量及读取效率。

Figure 201910238895

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.

Figure 201910238895

Description

管理闪存模块的方法及相关的闪存控制器与电子装置Method for managing flash memory module and related flash memory controller and electronic device

技术领域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 memory device 100 according to an embodiment of the present invention. The memory device 100 includes a flash memory module 120 and a flash memory controller 110 , and the flash memory controller 110 is used for accessing the flash memory module 120 . According to the present embodiment, the flash memory controller 110 includes a microprocessor 112 , a read only memory (ROM) 112M, a control logic 114 , a buffer memory 116 , an interface logic 118 and a timer 119 . The ROM 112M is used to store a program code 112C, and the microprocessor 112 is used to execute the program code 112C to control access to the flash memory module 120 . The control logic 114 includes an encoder 132 and a decoder 134, wherein the encoder 132 is used to encode the data written into the flash memory module 120 to generate a corresponding check code (or error correction code). Code), ECC), and the decoder 134 is used to decode the data read out from the flash memory module 120.

此外,闪存控制器110与闪存模块120均包括了多个相互连接的接脚N1~NK,以供彼此之间的数据及命令的传输。由于接脚N1~NK的功用可参考闪存的相关规格书,故细节不再此叙述。In addition, both the flash memory controller 110 and the flash memory module 120 include a plurality of interconnected pins N1 ˜ NK for transmitting data and commands between each other. Since the functions of pins N1 to NK can refer to the relevant specifications of the flash memory, the details will not be described here.

于典型状况下,闪存模块120包括了多个闪存芯片,而每一个闪存芯片包括多个区块(block),而闪存控制器110对闪存模块120进行抹除数据运作是以区块为单位来进行。另外,一区块可记录特定数量的数据页(page),其中闪存控制器110对闪存模块120进行写入数据的运作是以数据页为单位来进行写入。在本实施例中,闪存模块120为一立体NAND型闪存(3D NAND-type flash)模块。In a typical situation, the flash memory module 120 includes a plurality of flash memory chips, and each flash memory chip includes a plurality of blocks, and the flash memory controller 110 performs an operation of erasing data on the flash memory module 120 in units of blocks. conduct. In addition, a block can record a specific number of data pages, wherein the operation of the flash memory controller 110 to write data to the flash memory module 120 is performed in units of data pages. In this embodiment, the flash memory module 120 is a 3D NAND-type flash (3D NAND-type flash) module.

实作上,通过微处理器112执行程序代码112C的闪存控制器110可利用其本身内部的组件来进行诸多控制运作,例如:利用控制逻辑114来控制闪存模块120的存取运作(尤其是对至少一区块或至少一数据页的存取运作)、利用缓冲存储器116进行所需的缓冲处理、以及利用接口逻辑118来与一主装置(Host Device)130沟通。缓冲存储器116是以随机存取存储器(Random Access Memory,RAM)来实施。例如,缓冲存储器116可以是静态随机存取存储器(Static RAM,SRAM),但本发明不限于此。In practice, the flash memory controller 110 that executes the program code 112C through the microprocessor 112 can use its own internal components to perform various control operations, for example, use the control logic 114 to control the access operation of the flash memory module 120 (especially for at least one block or at least one data page access operation), using the buffer memory 116 to perform required buffering, and using the interface logic 118 to communicate with a host device (Host Device) 130 . The buffer memory 116 is implemented as a random access memory (Random Access Memory, RAM). For example, the buffer memory 116 may be a static random access memory (Static RAM, SRAM), but the present invention is not limited thereto.

在一实施例中,记忆装置100可以是可携式记忆装置(例如:符合SD/MMC、CF、MS、XD标准的记忆卡),且主装置130为一可与记忆装置连接的电子装置,例如手机、笔记本电脑、桌面计算机…等等。而在另一实施例中,记忆装置100可以是固态硬盘或符合通用闪存存储(Universal Flash Storage,UFS)或嵌入式多媒体记忆卡(Embedded Multi Media Card,EMMC)规格的嵌入式存储装置,以设置在一电子装置中,例如设置在手机、笔记本电脑、桌面计算机之中,而此时主装置130可以是所述电子装置的一处理器。In one embodiment, the memory device 100 may be a portable memory device (eg, a memory card conforming to SD/MMC, CF, MS, XD standards), and the host device 130 is an electronic device that can be connected to the memory device, Such as mobile phones, laptops, desktop computers...etc. In another embodiment, the memory device 100 may be a solid state drive or an embedded storage device conforming to the Universal Flash Storage (UFS) or Embedded Multi Media Card (EMMC) specifications, so as to set In an electronic device, such as a mobile phone, a notebook computer, or a desktop computer, the main device 130 may be a processor of the electronic device.

图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 block 200 in the flash memory module 120 according to an embodiment of the present invention, wherein the flash memory module 120 is a three-dimensional NAND flash memory. As shown in FIG. 2, the block 200 includes a plurality of memory cells (such as the floating gate transistor 202 shown in the figure or other charge trap components), which pass through a plurality of bit lines (only BL1 is shown in the figure). ~BL3) and a plurality of word lines (such as WL0~WL2, WL4~WL6 in the figure) to form a three-dimensional NAND flash memory structure. In FIG. 2, taking the uppermost plane as an example, all floating gate transistors on word line WL0 constitute at least one data page, all floating gate transistors on word line WL1 constitute another at least one data page, and word line All the floating gate transistors of WL2 constitute at least one more data page...and so on. In addition, the definition between the word line WL0 and the data page (logical data page) will be different according to the different flash memory writing methods. When writing in the multi-level memory (MLC) method, all floating gate transistors on the word line WL0 correspond to only a single logical data page; when writing in the Multi-Level Cell (MLC) method, all floating gate transistors on the word line WL0 Corresponding to two logical data pages; when using triple-level storage (Triple-Level Cell, TLC) to write, all floating gate transistors on word line WL0 correspond to three logical data pages; and when using four layers When writing in a Quad-Level Cell (QLC) manner, all floating gate transistors on the word line WL0 correspond to four logical data pages. Since those skilled in the art should be able to understand the structure of the 3D NAND flash memory and the relationship between word lines and data pages, the relevant details are not repeated here.

在记忆装置100的操作中,由于闪存模块120内的一区块在有数据写入的状态下,若是所述区块长时间没有被读取,则所述区块的数据质量便会大幅度下降,因而造成解码器134在解码上的困难。因此,在本实施例中,微处理器112会根据计时器119所产生的时间信息,以对闪存模块120内有存储数据的至少一部份区块进行冗余读取(dummy read)操作,以避免区块内的数据因为长时间没有读取而劣化。详细来说,上述冗余读取操作指的是微处理器112实质上并不会真的自闪存模块120中取得所述区块的内容,且冗余读取操作也并非是由主装置130的读取命令所触发的(也就是说,微处理器112并非是因为主装置130的要求才对所述区块进行冗余读取操作)。During the operation of the memory device 100, since a block in the flash memory module 120 is in the state of data writing, if the block has not been read for a long time, the data quality of the block will be greatly improved drop, thereby causing decoding difficulties for the decoder 134. Therefore, in this embodiment, the microprocessor 112 performs a dummy read operation on at least a part of the blocks in the flash memory module 120 storing data according to the time information generated by the timer 119 , In order to avoid the deterioration of the data in the block because it has not been read for a long time. Specifically, the above redundant read operation refers to that the microprocessor 112 does not actually obtain the content of the block from the flash memory module 120 , and the redundant read operation is not performed by the host device 130 . (that is, the microprocessor 112 does not perform a redundant read operation on the block because of the request of the host device 130).

在本实施例中,当微处理器112对所述区块进行冗余读取操作时,微处理器112会发送一读取请求至闪存模块120,但此时微处理器112会关闭闪存控制器110的一读取致能接脚(read enable pin)(例如,图1所示的接脚N2),也就是说,闪存控制器110无法自闪存模块120取得所要求读取的数据。在接收到来自闪存控制器110的所述读取请求的后,闪存模块120便对所述区块的一或多个数据页进行读取,并仅将所读取的内容暂存在本身的暂存区中,而不会将所读取的数据传送至闪存控制器110。如上所述,通过对所述区块进行冗余读取操作,可以避免所述区块内的数据质量因为长时间没有读取而下降。In this embodiment, when the microprocessor 112 performs a redundant read operation on the block, the microprocessor 112 sends a read request to the flash memory module 120, but at this time, the microprocessor 112 closes the flash memory control A read enable pin of the device 110 (eg, pin N2 shown in FIG. 1 ), that is, the flash controller 110 cannot obtain the required read data from the flash memory module 120 . After receiving the read request from the flash memory controller 110, the flash memory module 120 reads one or more data pages of the block, and only temporarily stores the read content in its own temporary into the memory area without transferring the read data to the flash memory controller 110 . As described above, by performing redundant read operations on the block, the data quality in the block can be prevented from being degraded due to no reading for a long time.

在一实施例中,由于冗余读取操作的目的仅是为了避免所述区块内的数据质量因为长时间没有读取而下降,故闪存控制器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 flash controller 110 may only request to read the data of the block. One data page is sufficient to speed up redundant read operations.

在另一实施例中,微处理器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 microprocessor 112 can control/instruct the flash memory module 120 to use a single-level cell (SLC) read mode to perform the redundant read operation on the block, Regardless of whether the block is a single-level storage block, a multi-level cell (MLC) block, a triple-level cell (TLC) block, or a four-level storage ( Any of the Quad-Level Cell, QLC) blocks. As an illustration, the block is a three-layer memory block, please refer to the plurality of write voltage levels L1-L8 and the plurality of thresholds of each memory cell in the three-layer memory block shown in FIG. 3 . A schematic diagram of the voltages (or read voltages) Vt1 to Vt7. As shown in FIG. 3, each floating gate transistor 202 may be programmed (to have a voltage level L1 (ie (MSB, CSB, LSB)=(1, 1, 1)), a voltage level L2 (ie (MSB, CSB, LSB) = (1, 1, 0), voltage level L3 (ie (MSB, CSB, LSB) = (1, 0, 0)), voltage level L4 (ie (MSB, CSB, LSB)=(0,0,0)), voltage level L5 (ie (MSB,CSB,LSB)=(0,1,0)), voltage level L6 (ie (MSB,CSB,LSB)=( 0,1,1)), voltage level L7 (ie (MSB,CSB,LSB)=(0,0,1)) or voltage level L8 (ie (MSB,CSB,LSB)=(1,0) , 1)). When the flash memory controller 110 needs to read the least significant bit (LSB) of the floating gate transistor 202, the flash memory controller 110 uses the threshold voltages Vt1 and Vt5 to read the floating gate transistor 202, and according to the floating gate transistor 202 The conduction state of transistor 202 (whether current is generated) generates a "1" or "0". Similarly, when the flash memory controller 110 needs to read the middle valid bit (CSB) in the floating gate transistor 202, the flash memory control The device 110 will use the threshold voltages Vt2, Vt4 and Vt6 to read the floating gate transistor 202, and generate "1" or "0" according to the conduction state of the floating gate transistor 202 (whether current is generated) for the decoder 134 for decoding. Similarly, when the flash memory controller 110 needs to read the most significant bit (MSB) in the floating gate transistor 202, the flash memory controller 110 uses the threshold voltages Vt3 and Vt7 to read the floating gate transistor 202, and according to The conduction state of the floating gate transistor 202 (whether current is generated) determines whether the most significant bit is "1" or "0" for the decoder 134 to decode.

如图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 flash memory module 120 only uses the threshold voltage Vt4 to read each memory cell, while the rest of the threshold voltages are used to read each memory cell. The voltages Vt1-Vt3 and Vt5-Vt7 are not used in the redundant read operation.

冗余读取操作的时间点以及微处理器112如何选择需要进行冗余读取操作的区块的多个实施例如下所述。The timing of the redundant read operation and various embodiments of how the microprocessor 112 selects the blocks that need to perform the redundant read operation are described below.

在第一个实施例中,微处理器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 microprocessor 112 can create a block record table to record which blocks in the flash memory module 120 have stored data. Referring to the schematic diagram of the block record table 400 shown in FIG. 4 , assuming that the flash memory module 120 includes a plurality of blocks B1 -BN, the microprocessor 112 can update the blocks during the process of writing data to the flash memory module 120 The content of the block record table 400, that is, when data is written to a block in the flash memory module 120, the block number is written into the block record table 400 (for example, B1, B2, B12, B13 shown in the figure) , B14), and when a block in the flash memory module 120 is erased or marked as invalid, the corresponding block serial number is removed from the block record table 400 . Therefore, the microprocessor 112 can periodically, for example, every 30 minutes, perform redundant read operations on the blocks recorded in the block record table 400 according to the time information generated by the timer 119 to maintain these The data quality of the block where the data is stored.

在本实施例中,区块记录表400可以暂存在缓冲存储器116或是外部的动态随机存取存储器中,并在记忆装置100关机或是需要释放存储器空间时将区块记录表400写入至闪存模块120中。In this embodiment, the block record table 400 can be temporarily stored in the buffer memory 116 or an external dynamic random access memory, and the block record table 400 can be written to the memory device 100 when the memory device 100 is shut down or needs to release memory space. in the flash memory module 120 .

在第二个实施例中,微处理器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 microprocessor 112 may establish a block reading time record table to record the blocks that have been read in the flash memory module 120 and the corresponding time information. Referring to the schematic diagram of the block read time record table 500 shown in FIG. 5 , assuming that the flash memory module 120 includes a plurality of blocks B1 -BN, the microprocessor 112 can read each block in the flash memory module 120 The time information of the block (eg, the time stamp obtained by the host device 130 or the timer 119 ) is recorded. In one embodiment, the content of the block read time record table 500 is continuously updated, that is, the block read time record table 500 records the time point when each block was last read. Therefore, the microprocessor 112 can select the unread data according to the content of the block read time record table 500 periodically, for example, every 30 minutes, when it is idle, or according to the time information generated by the timer 119. Take longer blocks for redundant read operations. For example, assuming that the block read time record table 500 records that blocks B_4 and B_5 are more than 20 minutes away from the last read time point, the microprocessor 112 can prioritize the block B_4 and block B_5 B_5 performs redundant read operations.

在本实施例中,区块读取时间记录表500可以暂存在缓冲存储器116或是外部的动态随机存取存储器中,并在记忆装置100关机或是需要释放存储器空间时将区块读取时间记录表500写入至闪存模块120中。In this embodiment, the block read time record table 500 can be temporarily stored in the buffer memory 116 or an external dynamic random access memory, and the block read time is recorded when the memory device 100 is powered off or needs to release memory space. The log table 500 is written into the flash memory module 120 .

在第三个实施例中,微处理器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 microprocessor 112 can create a block reading time record table to record the block serial number and corresponding time information in real time when a block is read, and the block is read The time log table can be further updated/organized for subsequent redundant read operations. Referring to the schematic diagram of the block reading time record table 600 shown in FIG. 6 , it is assumed that the microprocessor 112 sequentially reads blocks B_123, B_75, B_67, B_123, B_4, B_5, B_67, B_123 from 14:01 , the microprocessor 112 will simultaneously record the read blocks and the corresponding time information (for example, the time stamp shown in the figure) in sequence in the block read time record table 600 , wherein the read blocks of the above blocks are read in sequence. The fetch operation is performed according to the read request of the master device 130 . Next, the microprocessor 112 may periodically, eg, every 5 minutes, sort out the block read time record table 600 according to the time information generated by the timer 119 to delete duplicate block numbers. For example, referring to FIG. 7 , since block B_123 has three read records, the microprocessor 112 can directly delete the first two read records; and block B_67 has two read records, the microprocessor 112 can directly delete the first two read records. 112 can directly delete the previous read record to generate a sorted block read time record table 600 .

接着,微处理器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 microprocessor 112 may periodically, for example, every 10 minutes, generate a not to do list according to the block read time record table 600 according to the time information generated by the timer 119, to list blocks with shorter read times that do not require redundant read operations. For example, assuming that the current time point is 14:40, and the microprocessor 112 sets that blocks that have been read within 15 minutes do not need to perform redundant read operations, then the do not list can be Blocks B5, B67, B123 are included. Next, if the microprocessor 112 needs to operate, the microprocessor 112 can use the block record table 400 shown in FIG. 4 and the do not make list to record the blocks in the flash memory module 120 that have data storage, but do not include The blocks B5, B67, and B123 included in the do not list can be used for redundant read operations.

最后,在冗余读取操作结束后,微处理器112直接将进行冗余读取操作的区块自区块读取时间记录表600中移除,以图7的实施例来说,区块读取时间记录表600可以直接删除区块B_75、B4的记录,也就是说,不需要记录进行冗余读取操作的区块序号及对应的时间信息。Finally, after the redundant read operation is completed, the microprocessor 112 directly removes the block for which the redundant read operation is performed from the block read time record table 600. For the embodiment of FIG. 7, the block The read time record table 600 can directly delete the records of the blocks B_75 and B4, that is, it is not necessary to record the block serial numbers and corresponding time information for redundant read operations.

需注意的是,上述冗余读取操作的时间点以及微处理器112如何选择需要进行冗余读取操作的区块的三个实施例仅是作为范例说明,只要微处理器112可以建立相关的表格以判断哪些区块需要进行冗余读取操作,其表格内容可以根据工程师的设计而有不同的表现方式,而相关设计上的变化均应隶属于本发明的范畴。It should be noted that the above-mentioned time points of the redundant read operation and the three embodiments of how the microprocessor 112 selects the blocks that need to perform the redundant read operation are only for illustrative purposes, as long as the microprocessor 112 can establish the correlation. The table is used to determine which blocks need to perform redundant read operations. The content of the table can be expressed in different ways according to the design of the engineer, and the changes in the relevant design should belong to the scope 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. 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)

1.一种闪存控制器,其中所述闪存控制器是用来存取一闪存模块,所述闪存模块包括了多个闪存芯片,每一个闪存芯片包括了多个区块,每一个区块包括多个数据页,且所述闪存控制器的特征在于,包括有:1. A flash memory controller, wherein the flash memory controller is used to access a flash memory module, 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 data pages, and the characteristics of the flash memory controller include: 一只读存储器,用来存储一程序代码;a read-only memory for storing a program code; 一微处理器,用来执行所述程序代码以控制对所述闪存模块的存取;以及a microprocessor for executing the program code to control access to the flash memory module; and 一计时器,用以产生一时间信息;a timer for generating time information; 其中所述微处理器根据所述计时器所产生的所述时间信息,以对所述多个区块中的至少一部分区块进行一冗余读取操作,其中所述冗余读取操作并非由一主装置的读取命令所触发。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 a master device. 2.如权利要求1所述的闪存控制器,其特征在于,当所述微处理器对所述至少一部分区块进行所述冗余读取操作的过程中,所述闪存控制器不会自所述闪存模块接收到所述闪存模块对所述至少一部分区块所读取的数据。2. The flash memory controller of claim 1, wherein when the microprocessor performs the redundant read operation on the at least a part of the blocks, the flash memory controller does not automatically The flash memory module receives the data read by the flash memory module on the at least a part of the block. 3.如权利要求2所述的闪存控制器,其特征在于,所述闪存控制器包括了连接到所述闪存模块的一读取致能接脚,且当所述微处理器对所述至少一部分区块进行所述冗余读取操作的过程中,所述读取致能接脚是关闭以使得所述闪存控制器不会自所述闪存模块接收到所述闪存模块对所述至少一部分区块所读取的数据。3. The flash memory controller of claim 2, wherein the flash memory controller comprises a read enable pin connected to the flash memory module, and when the microprocessor responds to the at least one read enable pin During the redundant read operation for a part of the blocks, the read enable pin is turned off so that the flash controller does not receive the flash memory module from the flash memory module for the at least part of the The data read by the block. 4.如权利要求1所述的闪存控制器,其特征在于,当所述微处理器对所述至少一部分区块进行所述冗余读取操作的过程中,所述微处理器只会读取所述至少一部分区块中每一个区块的一个数据页。4. The flash memory controller of claim 1, wherein when the microprocessor performs the redundant read operation on the at least a part of the blocks, the microprocessor can only read One data page of each block in the at least a portion of the blocks is fetched. 5.如权利要求1所述的闪存控制器,其特征在于,所述微处理器使用一单层式存储读取模式来对所述至少一部分区块进行所述冗余读取操作。5. The flash memory controller of claim 1, wherein the microprocessor uses a single-level memory read mode to perform the redundant read operation on the at least a portion of the blocks. 6.如权利要求5所述的闪存控制器,其特征在于,所述至少一部分区块包括了双层式存储区块、三层式存储区块、以及四层式存储区块中的至少其一。6 . The flash memory controller of claim 5 , wherein the at least a part of the blocks comprises at least one of a two-layer storage block, a three-layer storage block, and a four-layer storage block. 7 . one. 7.如权利要求5所述的闪存控制器,其特征在于,所述微处理器仅使用单一读取电压来读取所述至少一部分区块以进行所述冗余读取操作。7. The flash memory controller of claim 5, wherein the microprocessor uses only a single read voltage to read the at least a portion of the block for the redundant read operation. 8.如权利要求1所述的闪存控制器,其特征在于,所述闪存控制器包括了一缓冲存储器,所述缓冲存储器存储了一区块记录表以记录所述多个区块中有哪些区块有存储数据;以及所述微处理器参考所述区块记录表以选择有存储数据的区块来作为所述至少一部份区块。8. The flash memory controller of claim 1, wherein the flash memory controller comprises a buffer memory, the buffer memory stores a block record table to record which of the plurality of blocks are A block has stored data; and the microprocessor refers to the block record table to select a block with stored data as the at least a part of the block. 9.如权利要求8所述的闪存控制器,其特征在于,所述微处理器根据所述计时器所产生的所述时间信息,以周期性地对所述至少一部分区块进行所述冗余读取操作。9 . The flash memory controller of claim 8 , wherein the microprocessor periodically performs the redundancy on the at least a portion of the blocks according to the time information generated by the timer. 10 . remaining read operations. 10.如权利要求1所述的闪存控制器,其特征在于,所述闪存控制器包括了一缓冲存储器,所述缓冲存储器存储了一区块读取时间记录表以记录所述多个区块中有被读取过的区块及对应的时间信息;以及所述微处理器参考所述区块读取时间记录表以自所述多个区块中选择出所述至少一部份区块。10. The flash memory controller of claim 1, wherein the flash memory controller comprises a buffer memory, the buffer memory stores a block read time record table to record the plurality of blocks There are read blocks and corresponding time information; and the microprocessor refers to the block read time record table to select the at least a part of the blocks from the plurality of blocks . 11.如权利要求10所述的闪存控制器,其特征在于,所述区块读取时间记录表记录了所述多个区块中有被读取过的区块及每一个区块最近一次被读取的时间点。11 . The flash memory controller of claim 10 , wherein the block read time record table records the blocks that have been read in the plurality of blocks and the latest time of each block. 12 . The point in time when it was read. 12.如权利要求10所述的闪存控制器,其特征在于,所述区块读取时间记录表记录了所述多个区块中有被一主装置要求读取过的区块及每一个区块最近一次被读取的时间点。12 . The flash memory controller of claim 10 , wherein the block read time record table records the blocks in the plurality of blocks that have been read by a master device and each block. 13 . The point in time when the block was last read. 13.一种管理一闪存模块的方法,其中所述闪存模块包括了多个闪存芯片,每一个闪存芯片包括了多个区块,每一个区块包括多个数据页,且所述方法的特征在于,包括有:13. A method of managing a flash memory module, 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 data pages, and the method features Yes, including: 使用一计时器以产生一时间信息;以及using a timer to generate a time message; and 根据所述计时器所产生的所述时间信息,以对所述多个区块中的至少一部分区块进行一冗余读取操作,其中所述冗余读取操作并非由一主装置的读取命令所触发。According to the time information generated by the timer, a redundant read operation is performed on at least a part of the plurality of blocks, wherein the redundant read operation is not performed by a read operation of a master device Triggered by a fetch command. 14.如权利要求13所述的方法,其特征在于,另包括有:14. The method of claim 13, further comprising: 在对所述至少一部分区块进行所述冗余读取操作的过程中,不会自所述闪存模块接收到所述闪存模块对所述至少一部分区块所读取的数据。During the redundant read operation on the at least a portion of the blocks, the data read by the flash memory module on the at least a portion of the blocks is not received from the flash memory module. 15.如权利要求13所述的方法,其特征在于,对所述至少一部分区块进行所述冗余读取操作的步骤包括有:15. The method of claim 13, wherein the step of performing the redundant read operation on the at least a portion of the blocks comprises: 使用一单层式存储读取模式来对所述至少一部分区块进行所述冗余读取操作。The redundant read operation is performed on the at least a portion of the blocks using a single-level memory read mode. 16.如权利要求15所述的方法,其特征在于,所述至少一部分区块包括了双层式存储区块、三层式存储区块、以及四层式存储区块中的至少其一。16. The method of claim 15, wherein the at least a portion of the blocks comprises at least one of a two-layer storage block, a three-layer storage block, and a four-layer storage block. 17.一种电子装置,其特征在于,包括有:17. An electronic device, characterized in that it comprises: 一闪存模块,其中所述闪存模块包括了多个闪存芯片,每一个闪存芯片包括了多个区块,每一个区块包括多个数据页;以及a flash memory module, 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 data pages; and 一闪存控制器,用以存取所述闪存模块;a flash memory controller for accessing the flash memory module; 其中所述闪存控制器根据一计时器所产生的时间信息以对所述多个区块中的至少一部分区块进行一冗余读取操作,其中所述冗余读取操作并非由一主装置的读取命令所触发。The flash 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 not performed by a master device triggered by the read command. 18.如权利要求17所述的电子装置,其特征在于,当所述闪存控制器对所述至少一部分区块进行所述冗余读取操作的过程中,所述闪存控制器不会自所述闪存模块接收到所述闪存模块对所述至少一部分区块所读取的数据。18. The electronic device of claim 17, wherein when the flash memory controller performs the redundant read operation on the at least a part of the blocks, the flash memory controller does not The flash memory module receives the data read by the flash memory module on the at least a part of the block. 19.如权利要求18所述的电子装置,其特征在于,所述闪存控制器包括了连接到所述闪存模块的一读取致能接脚,且当所述闪存控制器对所述至少一部分区块进行所述冗余读取操作的过程中,所述读取致能接脚是关闭以使得所述闪存控制器不会自所述闪存模块接收到所述闪存模块对所述至少一部分区块所读取的数据。19. The electronic device of claim 18, wherein the flash memory controller comprises a read enable pin connected to the flash memory module, and when the flash memory controller controls the at least part of the During the redundant read operation of the block, the read enable pin is turned off so that the flash memory controller does not receive the flash memory module from the flash memory module for the at least a portion of the block. The data read by the block. 20.如权利要求17所述的电子装置,其特征在于,当所述闪存控制器对所述至少一部分区块进行所述冗余读取操作的过程中,所述闪存控制器只会读取所述至少一部分区块中每一个区块的一个数据页。20. The electronic device of claim 17, wherein when the flash memory controller performs the redundant read operation on the at least a part of the blocks, the flash memory controller can only read One data page of each of the at least a portion of the blocks.
CN201910238895.5A 2019-01-24 2019-03-27 Method for managing flash memory module and related flash memory controller and electronic device Active CN111475426B (en)

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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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

Patent Citations (4)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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