CN111475426B - 管理闪存模块的方法及相关的闪存控制器与电子装置 - Google Patents
管理闪存模块的方法及相关的闪存控制器与电子装置 Download PDFInfo
- Publication number
- CN111475426B CN111475426B CN201910238895.5A CN201910238895A CN111475426B CN 111475426 B CN111475426 B CN 111475426B CN 201910238895 A CN201910238895 A CN 201910238895A CN 111475426 B CN111475426 B CN 111475426B
- Authority
- CN
- China
- Prior art keywords
- flash memory
- read
- block
- blocks
- memory module
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- 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; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/0223—User address space allocation, e.g. contiguous or non contiguous base addressing
- G06F12/023—Free address space management
- G06F12/0238—Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
- G06F12/0246—Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory in block erasable memory, e.g. flash memory
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/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; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/72—Details relating to flash memory management
- G06F2212/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
本发明公开了一种闪存控制器,其中所述闪存控制器是用来存取闪存模块,且包括只读存储器、微处理器以及计时器。所述只读存储器是用来存储程序代码,所述微处理器用来执行所述程序代码以控制对所述闪存模块的存取,且所述计时器用以产生时间信息。在所述闪存控制器的操作中,所述微处理器根据所述计时器所产生的所述时间信息,以对所述多个区块中的至少一部分区块进行冗余读取操作,其中所述冗余读取操作并非由主装置的读取命令所触发。本发明的闪存控制器通过主动侦测区块的读取状态,并主动地对一段时间内没有被读取的区块进行冗余读取操作,可有效避免区块内的数据因为长时间没有读取而发生劣化的情形,以增进存储质量及读取效率。
Description
技术领域
本发明是关于闪存控制器的改善。
背景技术
随着闪存技术的演进,闪存芯片中的记忆单元由平面排列的方式改变为多层堆栈的模式,以使得单一芯片可以包括更多的记忆单元,以提升闪存芯片的容量。然而,上述立体闪存(3D flash memory)会遭遇到一些读取质量上的问题,例如若是一区块内的数据长时间没有被读取,则所述区块内的数据质量便会快速劣化,而造成后续所述区块的数据在解码上的困难,或甚至无法被正确的读取。因此,如何提出一种有效率的管理方法来避免数据保存上的问题是一个重要的技术方向。
发明内容
因此,本发明的目的之一在于提出一种管理闪存的方法,其可以有效地避免上述区块内的数据因为长时间没有读取而发生劣化的情形,以解决现有技术中的问题。
在本发明的一个实施例中,公开一种闪存控制器,其中所述闪存控制器是用来存取一闪存模块,且所述闪存控制器包括有一只读存储器、一微处理器以及一计时器。所述只读存储器是用来存储一程序代码,所述微处理器用来执行所述程序代码以控制对所述闪存模块的存取,且所述计时器用以产生一时间信息。在所述闪存控制器的操作中,所述微处理器根据所述计时器所产生的所述时间信息,以对所述多个区块中的至少一部分区块进行一冗余读取操作,其中所述冗余读取操作并非由一主装置的读取命令所触发。
在本发明的另一个实施例中,公开了一种管理一闪存模块的方法,其中所述闪存模块包括了多个闪存芯片,每一个闪存芯片包括了多个区块,每一个区块包括多个数据页,且所述方法包括有:使用一计时器以产生一时间信息;以及根据所述计时器所产生的所述时间信息,以对所述多个区块中的至少一部分区块进行一冗余读取操作,其中所述冗余读取操作并非由一主装置的读取命令所触发。
在本发明的另一个实施例中,公开了一种电子装置,其包括有一闪存模块以及一闪存控制器,其中所述闪存模块包括了多个闪存芯片,每一个闪存芯片包括了多个区块,每一个区块包括多个数据页。在所述闪存控制器的操作中,所述闪存控制器根据一计时器所产生的时间信息以对所述多个区块中的至少一部分区块进行一冗余读取操作,其中所述冗余读取操作并非由一主装置的读取命令所触发。
附图说明
图1为依据本发明一实施例的一种记忆装置的示意图。
图2为依据本发明一实施例的闪存中一区块的示意图。
图3为三层式存储区块的每一个记忆单元中多个写入电压位准以及多个临界电压的示意图。
图4为根据本发明一实施例的区块记录表的示意图。
图5为根据本发明一实施例的区块读取时间记录表的示意图。
图6为根据本发明一实施例的区块读取时间记录表的示意图。
图7为根据本发明一实施例的更新区块读取时间记录表的示意图。
图8为根据本发明一实施例的一种管理一闪存模块的方法的流程图。
其中,附图标记说明如下:
100 记忆装置
110 闪存控制器
112 微处理器
112C 程序代码
112M 只读存储器
114 控制逻辑
116 缓冲存储器
118 接口逻辑
119 计时器
120 闪存模块
130 主装置
132 编码器
134 解码器
N1~NK 接脚
200、B1~BN 区块
202 浮闸晶体管
BL1、BL2、BL3 位线
WL0~WL2、WL4~WL6 字线
L1~L8 电压位准
Vt1~Vt7 临界电压
400 区块记录表
500、600 区块读取时间记录表
800~804 步骤
具体实施方式
图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所读出的数据进行解码。
此外,闪存控制器110与闪存模块120均包括了多个相互连接的接脚N1~NK,以供彼此之间的数据及命令的传输。由于接脚N1~NK的功用可参考闪存的相关规格书,故细节不再此叙述。
于典型状况下,闪存模块120包括了多个闪存芯片,而每一个闪存芯片包括多个区块(block),而闪存控制器110对闪存模块120进行抹除数据运作是以区块为单位来进行。另外,一区块可记录特定数量的数据页(page),其中闪存控制器110对闪存模块120进行写入数据的运作是以数据页为单位来进行写入。在本实施例中,闪存模块120为一立体NAND型闪存(3D NAND-type flash)模块。
实作上,通过微处理器112执行程序代码112C的闪存控制器110可利用其本身内部的组件来进行诸多控制运作,例如:利用控制逻辑114来控制闪存模块120的存取运作(尤其是对至少一区块或至少一数据页的存取运作)、利用缓冲存储器116进行所需的缓冲处理、以及利用接口逻辑118来与一主装置(Host Device)130沟通。缓冲存储器116是以随机存取存储器(Random Access Memory,RAM)来实施。例如,缓冲存储器116可以是静态随机存取存储器(Static RAM,SRAM),但本发明不限于此。
在一实施例中,记忆装置100可以是可携式记忆装置(例如:符合SD/MMC、CF、MS、XD标准的记忆卡),且主装置130为一可与记忆装置连接的电子装置,例如手机、笔记本电脑、桌面计算机…等等。而在另一实施例中,记忆装置100可以是固态硬盘或符合通用闪存存储(Universal Flash Storage,UFS)或嵌入式多媒体记忆卡(Embedded Multi Media Card,EMMC)规格的嵌入式存储装置,以设置在一电子装置中,例如设置在手机、笔记本电脑、桌面计算机之中,而此时主装置130可以是所述电子装置的一处理器。
图2为依据本发明一实施例的闪存模块120中一区块200的示意图,其中闪存模块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型闪存的结构以及字线及数据页之间的关系,故相关的细节在此不予赘述。
在记忆装置100的操作中,由于闪存模块120内的一区块在有数据写入的状态下,若是所述区块长时间没有被读取,则所述区块的数据质量便会大幅度下降,因而造成解码器134在解码上的困难。因此,在本实施例中,微处理器112会根据计时器119所产生的时间信息,以对闪存模块120内有存储数据的至少一部份区块进行冗余读取(dummy read)操作,以避免区块内的数据因为长时间没有读取而劣化。详细来说,上述冗余读取操作指的是微处理器112实质上并不会真的自闪存模块120中取得所述区块的内容,且冗余读取操作也并非是由主装置130的读取命令所触发的(也就是说,微处理器112并非是因为主装置130的要求才对所述区块进行冗余读取操作)。
在本实施例中,当微处理器112对所述区块进行冗余读取操作时,微处理器112会发送一读取请求至闪存模块120,但此时微处理器112会关闭闪存控制器110的一读取致能接脚(read enable pin)(例如,图1所示的接脚N2),也就是说,闪存控制器110无法自闪存模块120取得所要求读取的数据。在接收到来自闪存控制器110的所述读取请求的后,闪存模块120便对所述区块的一或多个数据页进行读取,并仅将所读取的内容暂存在本身的暂存区中,而不会将所读取的数据传送至闪存控制器110。如上所述,通过对所述区块进行冗余读取操作,可以避免所述区块内的数据质量因为长时间没有读取而下降。
在一实施例中,由于冗余读取操作的目的仅是为了避免所述区块内的数据质量因为长时间没有读取而下降,故闪存控制器110可以仅要求读取所述区块的一个数据页即可,以加速冗余读取操作的进行。
在另一实施例中,微处理器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进行解码。
如图3所示,一般读取三层式存储区块时会需要使用到多个临界电压Vt1~Vt7来读取数据内容,然而,在微处理器112对所述区块(三层式存储区块)进行冗余读取操作时,只会使用单一临界电压来对每一个记忆单元来进行读取,例如闪存模块120仅会使用临界电压Vt4来读取每一个记忆单元,而其余的临界电压Vt1~Vt3、Vt5~Vt7则不会在冗余读取操作中使用。
冗余读取操作的时间点以及微处理器112如何选择需要进行冗余读取操作的区块的多个实施例如下所述。
在第一个实施例中,微处理器112可以建立一区块记录表以记录闪存模块120中有哪些区块有存储数据。参考图4所示的区块记录表400的示意图,假设闪存模块120包括了多个区块B1~BN,则微处理器112可以在将数据写入至闪存模块120的过程中一并更新区块记录表400的内容,也就是说,当闪存模块120中有区块被写入数据时将区块序号写入至区块记录表400中(例如,图示的B1、B2、B12、B13、B14),而在闪存模块120中有区块被抹除或是被标记为无效时,将对应的区块序号自区块记录表400中移除。因此,微处理器112便可以根据计时器119所产生的时间信息以周期性地,例如每隔30分钟,对区块记录表400所记录的区块进行冗余读取操作,以维持这些有存储数据的区块的数据质量。
在本实施例中,区块记录表400可以暂存在缓冲存储器116或是外部的动态随机存取存储器中,并在记忆装置100关机或是需要释放存储器空间时将区块记录表400写入至闪存模块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进行冗余读取操作。
在本实施例中,区块读取时间记录表500可以暂存在缓冲存储器116或是外部的动态随机存取存储器中,并在记忆装置100关机或是需要释放存储器空间时将区块读取时间记录表500写入至闪存模块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。
接着,微处理器112可以根据计时器119所产生的时间信息以周期性地,例如每隔10分钟,来根据区块读取时间记录表600来产生一不要作列表(not to do list),以列出读取时间较短而不需要进行冗余读取操作的区块。举例来说,假设目前的时间点是14点40分,且微处理器112设定15分钟以内有读取过的区块不需要进行冗余读取操作,则此时所述不要作列表可以包括了区块B5、B67、B123。接着,若是微处理器112要进行操作,微处理器112可以根据图4所示的区块记录表400以及所述不要作列表,以对闪存模块中120有数据存储的区块,但不包括所述不要作列表可所包括的区块B5、B67、B123,来进行冗余读取操作。
最后,在冗余读取操作结束后,微处理器112直接将进行冗余读取操作的区块自区块读取时间记录表600中移除,以图7的实施例来说,区块读取时间记录表600可以直接删除区块B_75、B4的记录,也就是说,不需要记录进行冗余读取操作的区块序号及对应的时间信息。
需注意的是,上述冗余读取操作的时间点以及微处理器112如何选择需要进行冗余读取操作的区块的三个实施例仅是作为范例说明,只要微处理器112可以建立相关的表格以判断哪些区块需要进行冗余读取操作,其表格内容可以根据工程师的设计而有不同的表现方式,而相关设计上的变化均应隶属于本发明的范畴。
图8为根据本发明一实施例的一种管理一闪存模块的方法的流程图。参考以上实施例所述的内容,流程如下所述。
步骤800:流程开始。
步骤802:使用一计时器以产生一时间信息。
步骤804:根据所述计时器所产生的所述时间信息,以对所述多个区块中的至少一部分区块进行一冗余读取操作,其中所述冗余读取操作并非由一主装置的读取命令所触发。
简要归纳本发明,在本发明的闪存控制器中,通过主动侦测区块的读取状态,并主动地对一段时间内没有被读取的区块进行冗余读取操作,可以有效地避免区块内的数据因为长时间没有读取而发生劣化的情形,以增进存储质量及读取效率。
以上所述仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (17)
1.一种闪存控制器,其中所述闪存控制器是用来存取一闪存模块,所述闪存模块包括了多个闪存芯片,每一个闪存芯片包括了多个区块,每一个区块包括多个数据页,且所述闪存控制器的特征在于,包括有:
一只读存储器,用来存储一程序代码;
一微处理器,用来执行所述程序代码以控制对所述闪存模块的存取;以及
一计时器,用以产生一时间信息;
其中所述微处理器根据所述计时器所产生的所述时间信息,以对所述多个区块中的至少一部分区块进行一冗余读取操作,其中所述冗余读取操作并非由一主装置的读取命令所触发;
其中所述微处理器对所述至少一部分区块进行所述冗余读取操作的过程中,所述闪存控制器不会自所述闪存模块接收到所述闪存模块对所述至少一部分区块所读取的数据。
2.如权利要求1所述的闪存控制器,其特征在于,所述闪存控制器包括了连接到所述闪存模块的一读取致能接脚,且当所述微处理器对所述至少一部分区块进行所述冗余读取操作的过程中,所述读取致能接脚是关闭以使得所述闪存控制器不会自所述闪存模块接收到所述闪存模块对所述至少一部分区块所读取的数据。
3.如权利要求1所述的闪存控制器,其特征在于,当所述微处理器对所述至少一部分区块进行所述冗余读取操作的过程中,所述微处理器只会读取所述至少一部分区块中每一个区块的一个数据页。
4.如权利要求1所述的闪存控制器,其特征在于,所述微处理器使用一单层式存储读取模式来对所述至少一部分区块进行所述冗余读取操作。
5.如权利要求4所述的闪存控制器,其特征在于,所述至少一部分区块包括了双层式存储区块、三层式存储区块、以及四层式存储区块中的至少其一。
6.如权利要求4所述的闪存控制器,其特征在于,所述微处理器仅使用单一读取电压来读取所述至少一部分区块以进行所述冗余读取操作。
7.如权利要求1所述的闪存控制器,其特征在于,所述闪存控制器包括了一缓冲存储器,所述缓冲存储器存储了一区块记录表以记录所述多个区块中有哪些区块有存储数据;以及所述微处理器参考所述区块记录表以选择有存储数据的区块来作为所述至少一部分区块。
8.如权利要求7所述的闪存控制器,其特征在于,所述微处理器根据所述计时器所产生的所述时间信息,以周期性地对所述至少一部分区块进行所述冗余读取操作。
9.如权利要求1所述的闪存控制器,其特征在于,所述闪存控制器包括了一缓冲存储器,所述缓冲存储器存储了一区块读取时间记录表以记录所述多个区块中有被读取过的区块及对应的时间信息;以及所述微处理器参考所述区块读取时间记录表以自所述多个区块中选择出所述至少一部分区块。
10.如权利要求9所述的闪存控制器,其特征在于,所述区块读取时间记录表记录了所述多个区块中有被读取过的区块及每一个区块最近一次被读取的时间点。
11.如权利要求9所述的闪存控制器,其特征在于,所述区块读取时间记录表记录了所述多个区块中有被一主装置要求读取过的区块及每一个区块最近一次被读取的时间点。
12.一种管理一闪存模块的方法,由一闪存控制器所执行,其中所述闪存模块包括了多个闪存芯片,每一个闪存芯片包括了多个区块,每一个区块包括多个数据页,且所述方法的特征在于,包括有:
使用一计时器以产生一时间信息;以及
根据所述计时器所产生的所述时间信息,以对所述多个区块中的至少一部分区块进行一冗余读取操作,其中所述冗余读取操作并非由一主装置的读取命令所触发;
在对所述至少一部分区块进行所述冗余读取操作的过程中,所述闪存控制器不会自所述闪存模块接收到所述闪存模块对所述至少一部分区块所读取的数据。
13.如权利要求12所述的方法,其特征在于,对所述至少一部分区块进行所述冗余读取操作的步骤包括有:
使用一单层式存储读取模式来对所述至少一部分区块进行所述冗余读取操作。
14.如权利要求13所述的方法,其特征在于,所述至少一部分区块包括了双层式存储区块、三层式存储区块、以及四层式存储区块中的至少其一。
15.一种电子装置,其特征在于,包括有:
一闪存模块,其中所述闪存模块包括了多个闪存芯片,每一个闪存芯片包括了多个区块,每一个区块包括多个数据页;以及
一闪存控制器,用以存取所述闪存模块;
其中所述闪存控制器根据一计时器所产生的时间信息以对所述多个区块中的至少一部分区块进行一冗余读取操作,其中所述冗余读取操作并非由一主装置的读取命令所触发;
其中当所述闪存控制器对所述至少一部分区块进行所述冗余读取操作的过程中,所述闪存控制器不会自所述闪存模块接收到所述闪存模块对所述至少一部分区块所读取的数据。
16.如权利要求15所述的电子装置,其特征在于,所述闪存控制器包括了连接到所述闪存模块的一读取致能接脚,且当所述闪存控制器对所述至少一部分区块进行所述冗余读取操作的过程中,所述读取致能接脚是关闭以使得所述闪存控制器不会自所述闪存模块接收到所述闪存模块对所述至少一部分区块所读取的数据。
17.如权利要求15所述的电子装置,其特征在于,当所述闪存控制器对所述至少一部分区块进行所述冗余读取操作的过程中,所述闪存控制器只会读取所述至少一部分区块中每一个区块的一个数据页。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
TW108102728A TWI746927B (zh) | 2019-01-24 | 2019-01-24 | 管理快閃記憶體模組的方法及相關的快閃記憶體控制器與電子裝置 |
TW108102728 | 2019-01-24 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111475426A CN111475426A (zh) | 2020-07-31 |
CN111475426B true CN111475426B (zh) | 2022-12-30 |
Family
ID=71733789
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910238895.5A Active CN111475426B (zh) | 2019-01-24 | 2019-03-27 | 管理闪存模块的方法及相关的闪存控制器与电子装置 |
Country Status (3)
Country | Link |
---|---|
US (2) | US11074174B2 (zh) |
CN (1) | CN111475426B (zh) |
TW (1) | TWI746927B (zh) |
Families Citing this family (1)
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 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20150293700A1 (en) * | 2014-04-09 | 2015-10-15 | Fujitsu Limited | Control apparatus and control method |
US20190074283A1 (en) * | 2017-09-07 | 2019-03-07 | Toshiba Memory Corporation | Memory system |
Family Cites Families (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR101826140B1 (ko) * | 2011-08-04 | 2018-03-22 | 삼성전자주식회사 | 메모리 컨트롤러의 동작 방법, 및 상기 메모리 컨트롤러를 포함하는 메모리 시스템 |
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 |
US10110255B2 (en) * | 2016-04-27 | 2018-10-23 | Silicon Motion Inc. | Method for accessing flash memory module and associated flash memory controller and memory device |
KR20180085184A (ko) * | 2017-01-18 | 2018-07-26 | 에스케이하이닉스 주식회사 | 로우 해머링을 개선할 수 있는 메모리 모듈 및 이의 동작 방법 |
CN108932175B (zh) * | 2017-05-24 | 2022-01-11 | 建兴储存科技(广州)有限公司 | 固态储存装置的控制方法 |
TWI623878B (zh) * | 2017-07-07 | 2018-05-11 | 大心電子(英屬維京群島)股份有限公司 | 資料讀取方法以及儲存控制器 |
-
2019
- 2019-01-24 TW TW108102728A patent/TWI746927B/zh active
- 2019-03-27 CN CN201910238895.5A patent/CN111475426B/zh 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 (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20150293700A1 (en) * | 2014-04-09 | 2015-10-15 | Fujitsu Limited | Control apparatus and control method |
US20190074283A1 (en) * | 2017-09-07 | 2019-03-07 | Toshiba Memory Corporation | Memory system |
Also Published As
Publication number | Publication date |
---|---|
US11074174B2 (en) | 2021-07-27 |
US20200242024A1 (en) | 2020-07-30 |
CN111475426A (zh) | 2020-07-31 |
TW202028967A (zh) | 2020-08-01 |
TWI746927B (zh) | 2021-11-21 |
US20210318953A1 (en) | 2021-10-14 |
US11487655B2 (en) | 2022-11-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10997065B2 (en) | Memory system and operating method thereof | |
US10824518B2 (en) | Memory system and operating method thereof | |
US7586784B2 (en) | Apparatus and methods for programming multilevel-cell NAND memory devices | |
CN111475425B (zh) | 管理闪存模块的方法及相关的闪存控制器与电子装置 | |
KR100823170B1 (ko) | 배드 블록을 싱글 레벨 셀 모드로 사용하는 메모리 시스템및 메모리 카드 | |
TWI545571B (zh) | 存取快閃記憶體的方法及相關的控制器與記憶裝置 | |
CN110837340B (zh) | 闪存控制器、管理闪存模块的方法及相关的电子装置 | |
US9122583B2 (en) | Memory controller and memory storage device and data writing method | |
CN111399751B (zh) | 闪存控制器、管理闪存模块的方法及相关的电子装置 | |
TWI720852B (zh) | 存取快閃記憶體模組的方法及相關的快閃記憶體控制器與電子裝置 | |
CN111159069B (zh) | 闪存控制器、管理闪存模块的方法及相关的电子装置 | |
CN113903383A (zh) | 存储装置、快闪存储器控制器及其存取方法 | |
CN111475426B (zh) | 管理闪存模块的方法及相关的闪存控制器与电子装置 | |
CN113886279A (zh) | 电子装置、快闪存储器控制器及模块进行垃圾收集操作的方法 | |
US10977144B2 (en) | Memory system and method of operating the same | |
CN111488118B (zh) | 管理闪存模块的方法及相关的闪存控制器与电子装置 | |
TWI769100B (zh) | 管理快閃記憶體模組的方法及相關的快閃記憶體控制器與電子裝置 | |
TWI823649B (zh) | 快閃記憶體控制器的控制方法、快閃記憶體控制器以及電子裝置 | |
US20230031193A1 (en) | Memory system and operating method thereof | |
CN113886280A (zh) | 电子装置、快闪存储器控制器及其存取方法 | |
CN116431060A (zh) | 快闪存储器控制器的控制方法、快闪存储器控制器以及电子装置 | |
KR20100076692A (ko) | 낸드 플래시 메모리소자 및 쓰기 방법 |
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 |