CN115472201A - 数据写入方法、存储器存储装置及存储器控制电路单元 - Google Patents
数据写入方法、存储器存储装置及存储器控制电路单元 Download PDFInfo
- Publication number
- CN115472201A CN115472201A CN202211116853.2A CN202211116853A CN115472201A CN 115472201 A CN115472201 A CN 115472201A CN 202211116853 A CN202211116853 A CN 202211116853A CN 115472201 A CN115472201 A CN 115472201A
- Authority
- CN
- China
- Prior art keywords
- state
- data
- memory
- unit
- cell
- 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.)
- Pending
Links
Images
Classifications
-
- 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
- G11C16/102—External programming circuits, e.g. EPROM programmers; In-circuit programming or reprogramming; EPROM emulators
- G11C16/105—Circuits or methods for updating contents of nonvolatile memory, especially with 'security' features to ensure reliable replacement, i.e. preventing that old data is lost before new data is reliably written
-
- 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
- G11C16/14—Circuits for erasing electrically, e.g. erase voltage switching circuits
- G11C16/16—Circuits for erasing electrically, e.g. erase voltage switching circuits for erasing blocks, e.g. arrays, words, groups
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Read Only Memory (AREA)
Abstract
本发明提供一种数据写入方法、存储器存储装置及存储器控制电路单元。所述方法包括:从主机系统接收写入指令,其中写入指令包含第一数据;检查第一实体抹除单元中的第一实体程序化单元的状态;以及响应于第一实体程序化单元的状态为第一状态,发送第一指令序列,其中第一指令序列用以指示可复写式非易失性存储器模块将第一数据的至少部分数据存储至第一实体程序化单元中。由此,可有效避免对特定实体程序化单元进行重复写入从而降低写入数据的正确性。
Description
技术领域
本发明涉及一种存储器管理技术,尤其涉及一种数据写入方法、存储器存储装置及存储器控制电路单元。
背景技术
移动电话与笔记本计算机等可携式电子装置在这几年来的成长十分迅速,使得消费者对存储媒体的需求也急速增加。由于可复写式非易失性存储器模块(rewritable non-volatile memory module)(例如,快闪存储器)具有数据非易失性、省电、体积小,以及无机械结构等特性,所以非常适合内建于上述所举例的各种可携式电子装置中。
传统上,可复写式非易失性存储器模块中执行的写入操作都是以一或多个实体页作为基本单位进行数据写入。但是,实际上可复写式非易失性存储器模块在对某一个实体页(亦称为第一实体页)进行数据写入时,可能会因“字线短路(word line short)”而连带影响到其他的实体页(亦称为第二实体页)也被非预期的写入数据。尔后,当实际使用此第二实体页来存储数据时,第二实体页会被重复写入,从而导致后续存储于第二实体页中的数据的正确性降低。
发明内容
本发明提供一种数据写入方法、存储器存储装置及存储器控制电路单元,可改善上述问题。
本发明的范例实施例提供一种数据写入方法,其用于可复写式非易失性存储器模块,所述可复写式非易失性存储器模块包括多个实体抹除单元,所述多个实体抹除单元包括第一实体抹除单元,所述数据写入方法包括:从主机系统接收写入指令,其中所述写入指令包含第一数据;在存储所述第一数据之前,检查所述第一实体抹除单元中的第一实体程序化单元的状态;以及响应于所述第一实体程序化单元的所述状态为第一状态,发送第一指令序列,其中所述第一指令序列用以指示所述可复写式非易失性存储器模块将所述第一数据的至少部分数据存储至所述第一实体程序化单元中。
在本发明的一范例实施例中,所述的数据写入方法还包括:根据所述第一数据的数据量,决定所述第一实体程序化单元的总数。
在本发明的一范例实施例中,所述多个实体抹除单元还包括第二实体抹除单元,且所述数据写入方法还包括:响应于所述第一实体程序化单元的所述状态非为所述第一状态,发送第二指令序列,其中所述第二指令序列用以指示所述可复写式非易失性存储器模块将所述第一数据的所述至少部分数据存储至所述第二实体抹储单元中。
在本发明的一范例实施例中,所述的数据写入方法还包括:响应于所述第一实体程序化单元的所述状态非为所述第一状态,发送第三指令序列,其中所述第三指令序列用以指示所述可复写式非易失性存储器模块将所述第一实体抹除单元中的至少部分数据搬移至所述第二实体抹除单元中。
在本发明的一范例实施例中,检查所述第一实体抹除单元中的所述第一实体程序化单元的所述状态的步骤包括:发送第四指令序列,其中所述第四指令序列用以指示所述可复写式非易失性存储器模块对所述第一实体程序化单元执行读取操作,以获得对应于所述第一实体程序化单元的状态数据,其中所述状态数据反映所述第一实体程序化单元中的至少部分存储单元的状态;以及根据所述状态数据决定所述第一实体程序化单元的所述状态。
在本发明的一范例实施例中,根据所述状态数据决定所述第一实体程序化单元的所述状态的步骤包括:根据所述状态数据中的特定数据,判定所述第一实体程序化单元的所述状态非为所述第一状态,其中所述特定数据反映所述第一实体程序化单元中的至少一存储单元非处于抹除状态。
在本发明的一范例实施例中,所述第一实体程序化单元包括P个存储单元,所述状态数据反映所述第一实体程序化单元中的Q个存储单元的状态,且Q小于P。
在本发明的一范例实施例中,检查所述第一实体抹除单元中的所述第一实体程序化单元的所述状态的步骤包括:检查所述第一实体程序化单元中是否存在不处于抹除状态的存储单元;以及响应于所述第一实体程序化单元中存在不处于所述抹除状态的所述存储单元,判定所述第一实体程序化单元的所述状态非为所述第一状态。
本发明的范例实施例另提供一种存储器存储装置,其包括主机接口单元、可复写式非易失性存储器模块及存储器控制电路单元。所述主机接口单元用以连接至主机系统。所述可复写式非易失性存储器模块包括多个实体抹除单元。所述多个实体抹除单元包括第一实体抹除单元。所述存储器控制电路单元连接至所述主机接口单元与所述可复写式非易失性存储器模块。所述存储器控制电路单元用以:从所述主机系统接收写入指令,其中所述写入指令包含第一数据;在存储所述第一数据之前,检查所述第一实体抹除单元中的第一实体程序化单元的状态;以及响应于所述第一实体程序化单元的所述状态为第一状态,发送第一指令序列,其中所述第一指令序列用以指示所述可复写式非易失性存储器模块用以将所述第一数据的至少部分数据存储至所述第一实体程序化单元中。
在本发明的一范例实施例中,所述存储器控制电路单元还用以:根据所述第一数据的数据量,决定所述第一实体程序化单元的总数。
在本发明的一范例实施例中,所述多个实体抹除单元还包括第二实体抹除单元,且所述存储器控制电路单元还用以:响应于所述第一实体程序化单元的所述状态非为所述第一状态,发送第二指令序列,其中所述第二指令序列用以指示所述可复写式非易失性存储器模块将所述第一数据的所述至少部分数据存储至所述第二实体抹除单元中。
在本发明的一范例实施例中,所述存储器控制电路单元还用以:响应于所述第一实体程序化单元的所述状态非为所述第一状态,发送第三指令序列,其中所述第三指令序列用以指示所述可复写式非易失性存储器模块将所述第一实体抹除单元中的至少部分数据搬移至所述第二实体抹除单元中。
在本发明的一范例实施例中,所述存储器控制电路单元检查所述第一实体抹除单元中的所述第一实体程序化单元的所述状态的操作包括:发送第四指令序列,其中所述第四指令序列用以指示所述可复写式非易失性存储器模块对所述第一实体程序化单元执行读取操作,以获得对应于所述第一实体程序化单元的状态数据,其中所述状态数据反映所述第一实体程序化单元中的至少部分存储单元的状态;以及根据所述状态数据决定所述第一实体程序化单元的所述状态。
在本发明的一范例实施例中,所述存储器控制电路单元根据所述状态数据决定所述第一实体程序化单元的所述状态的操作包括:根据所述状态数据中的特定数据,判定所述第一实体程序化单元的所述状态非为所述第一状态,其中所述特定数据反映所述第一实体程序化单元中的至少一存储单元非处于抹除状态。
在本发明的一范例实施例中,所述存储器控制电路单元检查所述第一实体抹除单元中的所述第一实体程序化单元的所述状态的操作包括:检查所述第一实体程序化单元中是否存在不处于抹除状态的存储单元;以及响应于所述第一实体程序化单元中存在不处于所述抹除状态的所述存储单元,判定所述第一实体程序化单元的所述状态非为所述第一状态。
本发明的范例实施例另提供一种存储器控制电路单元,其用于控制可复写式非易失性存储器模块,所述可复写式非易失性存储器模块包括多个实体抹除单元,所述多个实体抹除单元包括第一实体抹除单元,所述存储器控制电路单元包括主机接口、存储器接口、缓冲存储器及存储器管理电路。所述主机接口用以连接至主机系统。所述存储器接口用以连接至所述可复写式非易失性存储器模块。所述存储器管理电路连接至所述主机接口、所述存储器接口及所述缓冲存储器。所述存储器管理电路用以:从所述主机系统接收写入指令,其中所述写入指令包含第一数据;在存储所述第一数据之前,检查所述第一实体抹除单元中的第一实体程序化单元的状态;以及响应于所述第一实体程序化单元的所述状态为第一状态,发送第一指令序列,其中所述第一指令序列用以指示所述可复写式非易失性存储器模块将所述第一数据的至少部分数据存储至所述第一实体程序化单元中。
在本发明的一范例实施例中,所述存储器管理电路还用以:根据所述第一数据的数据量,决定所述第一实体程序化单元的总数。
在本发明的一范例实施例中,所述多个实体抹除单元还包括第二实体抹除单元,且所述存储器管理电路还用以:响应于所述第一实体程序化单元的所述状态非为所述第一状态,发送第二指令序列,其中所述第二指令序列用以指示所述可复写式非易失性存储器模块将所述第一数据的所述至少部分数据存储至所述第二实体抹除单元中。
在本发明的一范例实施例中,所述存储器管理电路还用以:响应于所述第一实体程序化单元的所述状态非为所述第一状态,发送第三指令序列,其中所述第三指令序列用以指示所述可复写式非易失性存储器模块将所述第一实体抹除单元中的至少部分数据搬移至所述第二实体抹除单元中。
在本发明的一范例实施例中,所述存储器管理电路检查所述第一实体抹除单元中的所述第一实体程序化单元的所述状态的操作包括:发送第四指令序列,其中所述第四指令序列用以指示所述可复写式非易失性存储器模块对所述第一实体程序化单元执行读取操作,以获得对应于所述第一实体程序化单元的状态数据,其中所述状态数据反映所述第一实体程序化单元中的至少部分存储单元的状态;以及根据所述状态数据决定所述第一实体程序化单元的所述状态。
在本发明的一范例实施例中,所述存储器管理电路根据所述状态数据决定所述第一实体程序化单元的所述状态的操作包括:根据所述状态数据中的特定数据,判定所述第一实体程序化单元的所述状态非为所述第一状态,其中所述特定数据反映所述第一实体程序化单元中的至少一存储单元非处于抹除状态。
在本发明的一范例实施例中,所述存储器管理电路检查所述第一实体抹除单元中的所述第一实体程序化单元的所述状态的操作包括:检查所述第一实体程序化单元中是否存在不处于抹除状态的存储单元;以及响应于所述第一实体程序化单元中存在不处于所述抹除状态的所述存储单元,判定所述第一实体程序化单元的所述状态非为所述第一状态。
基于上述,本发明实施例提供的数据写入方法、存储器存储装置及存储器控制电路单元,可在对第一实体程序化单元进行数据写入之前,先检查第一实体程序化单元的状态。若第一实体程序化单元的状态符合预期(即第一实体程序化单元的状态为第一状态),可允许对第一实体程序化单元执行第一写入操作,以将第一数据存储至第一实体程序化单元中。由此,可有效避免对特定实体程序化单元进行重复写入从而降低写入数据的正确性。
附图说明
图1是根据本发明的范例实施例所示出的主机系统、存储器存储装置及输入/输出(I/O)装置的示意图;
图2是根据本发明的范例实施例所示出的主机系统、存储器存储装置及I/O装置的示意图;
图3是根据本发明的范例实施例所示出的主机系统与存储器存储装置的示意图;
图4是根据本发明的范例实施例所示出的存储器存储装置的示意图;
图5是根据本发明的范例实施例所示出的存储器控制电路单元的示意图;
图6是根据本发明的范例实施例所示出的管理可复写式非易失性存储器模块的示意图;
图7是根据本发明的范例实施例所示出的存储器存储装置的使用情境的示意图;
图8A是根据本发明的范例实施例所示出的第一写入操作的示意图;
图8B是根据本发明的范例实施例所示出的第一写入操作的示意图;
图9是根据本发明的范例实施例所示出的第二写入操作与数据搬移操作的示意图;
图10是根据本发明的范例实施例所示出的第一实体程序化单元在不同状态下的存储单元的临界电压分布的示意图;
图11是根据本发明的范例实施例所示出的第一实体程序化单元中的存储单元的临界电压分布的示意图;
图12是根据本发明的范例实施例所示出的数据写入方法的流程图;
图13是根据本发明的范例实施例所示出的数据写入方法的流程图;
图14是根据本发明的范例实施例所示出的数据写入方法的流程图。
具体实施方式
现将详细地参考本发明的示范性实施例,示范性实施例的实例说明于附图中。只要有可能,相同元件符号在附图和描述中用来表示相同或相似部分。
一般而言,存储器存储装置(亦称,存储器存储系统)包括可复写式非易失性存储器模块(rewritable non-volatile memory module)与控制器(亦称,控制电路)。存储器存储装置可与主机系统一起使用,以使主机系统可将数据写入至存储器存储装置或从存储器存储装置中读取数据。
图1是根据本发明的范例实施例所示出的主机系统、存储器存储装置及输入/输出(I/O)装置的示意图。图2是根据本发明的范例实施例所示出的主机系统、存储器存储装置及I/O装置的示意图。
请参照图1与图2,主机系统11可包括处理器111、随机存取存储器(random accessmemory,RAM)112、只读存储器(read only memory,ROM)113及数据传输接口114。处理器111、随机存取存储器112、只读存储器113及数据传输接口114可连接至系统总线(systembus)110。
在一范例实施例中,主机系统11可通过数据传输接口114与存储器存储装置10连接。例如,主机系统11可经由数据传输接口114将数据存储至存储器存储装置10或从存储器存储装置10中读取数据。此外,主机系统11可通过系统总线110与I/O装置12连接。例如,主机系统11可经由系统总线110将输出信号传送至I/O装置12或从I/O装置12接收输入信号。
在一范例实施例中,处理器111、随机存取存储器112、只读存储器113及数据传输接口114可设置在主机系统11的主机板20上。数据传输接口114的数目可以是一或多个。通过数据传输接口114,主机板20可以经由有线或无线方式连接至存储器存储装置10。
在一范例实施例中,存储器存储装置10可例如是U盘201、存储卡202、固态硬盘(Solid State Drive,SSD)203或无线存储器存储装置204。无线存储器存储装置204可例如是近场通信(Near Field Communication,NFC)存储器存储装置、无线传真(WiFi)存储器存储装置、蓝牙(Bluetooth)存储器存储装置或低功耗蓝牙存储器存储装置(例如,iBeacon)等以各式无线通信技术为基础的存储器存储装置。此外,主机板20也可以通过系统总线110连接至全球定位系统(Global Positioning System,GPS)模块205、网络接口卡206、无线传输装置207、键盘208、荧幕209、喇叭210等各式I/O装置。例如,在一范例实施例中,主机板20可通过无线传输装置207存取无线存储器存储装置204。
在一范例实施例中,主机系统11为计算机系统。在一范例实施例中,主机系统11可为可实质地与存储器存储装置配合以存储数据的任意系统。在一范例实施例中,存储器存储装置10与主机系统11可分别包括图3的存储器存储装置30与主机系统31。
图3是根据本发明的范例实施例所示出的主机系统与存储器存储装置的示意图。
请参照图3,存储器存储装置30可与主机系统31搭配使用以存储数据。例如,主机系统31可以是数码相机、摄像机、通信装置、音频播放器、视频播放器或平板计算机等系统。例如,存储器存储装置30可为主机系统31所使用的安全数字(Secure Digital,SD)卡32、小型快闪(Compact Flash,CF)卡33或嵌入式存储装置34等各式非易失性存储器存储装置。嵌入式存储装置34包括嵌入式多媒体卡(embedded Multi Media Card,eMMC)341和/或嵌入式多芯片封装(embedded Multi Chip Package,eMCP)存储装置342等各类型将存储器模块直接连接于主机系统的基板上的嵌入式存储装置。
图4是根据本发明的范例实施例所示出的存储器存储装置的示意图。
请参照图4,存储器存储装置10包括连接接口单元41、存储器控制电路单元42与可复写式非易失性存储器模块43。
连接接口单元41用以将存储器存储装置10连接主机系统11。存储器存储装置10可经由连接接口单元41与主机系统11通信。在一范例实施例中,连接接口单元41是相容于外设部件互连局部总线(Peripheral Component Interconnect Express,PCI Express)标准。在一范例实施例中,连接接口单元41亦可以是符合串行高级技术附件(SerialAdvanced Technology Attachment,SATA)标准、并行高级技术附件(Parallel AdvancedTechnology Attachment,PATA)标准、电气和电子工程师协会(Institute of Electricaland Electronic Engineers,IEEE)1394标准、通用串行总线(Universal Serial Bus,USB)标准、SD接口标准、超高速一代(Ultra High Speed-I,UHS-I)接口标准、超高速二代(UltraHigh Speed-II,UHS-II)接口标准、存储棒(Memory Stick,MS)接口标准、MCP接口标准、MMC接口标准、eMMC接口标准、通用快闪存储器(Universal Flash Storage,UFS)接口标准、eMCP接口标准、CF接口标准、整合式驱动电子接口(Integrated Device Electronics,IDE)标准或其他适合的标准。连接接口单元41可与存储器控制电路单元42封装在一个芯片中,或者连接接口单元41是布设于一包含存储器控制电路单元42的芯片外。
存储器控制电路单元42连接至连接接口单元41与可复写式非易失性存储器模块43。存储器控制电路单元42用以执行以硬件型式或固件型式实作的多个逻辑门或控制指令并且根据主机系统11的指令在可复写式非易失性存储器模块43中进行数据的写入、读取与抹除等运作。
可复写式非易失性存储器模块43用以存储主机系统11所写入的数据。可复写式非易失性存储器模块43可包括单阶存储单元(Single Level Cell,SLC)NAND型快闪存储器模块(即,一个存储单元中可存储1个比特的快闪存储器模块)、二阶存储单元(Multi LevelCell,MLC)NAND型快闪存储器模块(即,一个存储单元中可存储2个比特的快闪存储器模块)、三阶存储单元(Triple Level Cell,TLC)NAND型快闪存储器模块(即,一个存储单元中可存储3个比特的快闪存储器模块)、四阶存储单元(Quad Level Cell,QLC)NAND型快闪存储器模块(即,一个存储单元中可存储4个比特的快闪存储器模块)、其他快闪存储器模块或其他具有相同特性的存储器模块。
可复写式非易失性存储器模块43中的每一个存储单元是以电压(以下亦称为临界电压)的改变来存储一或多个比特。具体来说,每一个存储单元的控制门(control gate)与通道之间有一个电荷捕捉层。通过施予一写入电压至控制门,可以改变电荷补捉层的电子量,进而改变存储单元的临界电压。此改变存储单元的临界电压的操作亦称为“把数据写入至存储单元”或“程序化(programming)存储单元”。随着临界电压的改变,可复写式非易失性存储器模块43中的每一个存储单元具有多个存储状态。通过施予读取电压可以判断一个存储单元是属于哪一个存储状态,由此取得此存储单元所存储的一或多个比特。
在一范例实施例中,可复写式非易失性存储器模块43的存储单元可构成多个实体程序化单元,并且此些实体程序化单元可构成多个实体抹除单元。具体来说,同一条字线上的存储单元可组成一或多个实体程序化单元。若一个存储单元可存储2个以上的比特,则同一条字线上的实体程序化单元可至少可被分类为下实体程序化单元与上实体程序化单元。例如,一存储单元的最低有效比特(Least Significant Bit,LSB)是属于下实体程序化单元,并且一存储单元的最高有效比特(Most Significant Bit,MSB)是属于上实体程序化单元。一般来说,在MLC NAND型快闪存储器中,下实体程序化单元的写入速度会大于上实体程序化单元的写入速度,和/或下实体程序化单元的可靠度是高于上实体程序化单元的可靠度。
在一范例实施例中,实体程序化单元为程序化的最小单元。即,实体程序化单元为写入数据的最小单元。例如,实体程序化单元可为实体页(page)或是实体扇(sector)。若实体程序化单元为实体页,则此些实体程序化单元可包括数据比特区与冗余(redundancy)比特区。数据比特区包含多个实体扇,用以存储用户数据,而冗余比特区用以存储系统数据(例如,错误更正码等管理数据)。在一范例实施例中,数据比特区包含32个实体扇,且一个实体扇的大小为512字节(byte,B)。然而,在其他范例实施例中,数据比特区中也可包含8个、16个或数目更多或更少的实体扇,并且每一个实体扇的大小也可以是更大或更小。另一方面,实体抹除单元为抹除的最小单位。亦即,每一实体抹除单元含有最小数目的一并被抹除的存储单元。例如,实体抹除单元为实体区块(block)。
图5是根据本发明的范例实施例所示出的存储器控制电路单元的示意图。
请参照图5,存储器控制电路单元42包括存储器管理电路51、主机接口52及存储器接口53。存储器管理电路51用以控制存储器控制电路单元42的整体运作。具体来说,存储器管理电路51具有多个控制指令,并且在存储器存储装置10运作时,此些控制指令会被执行以进行数据的写入、读取与抹除等运作。以下说明存储器管理电路51的操作时,等同于说明存储器控制电路单元42的操作。
在一范例实施例中,存储器管理电路51的控制指令是以固件型式来实作。例如,存储器管理电路51具有微处理器单元(未示出)与只读存储器(未示出),并且此些控制指令是被烧录至此只读存储器中。当存储器存储装置10运作时,此些控制指令会由微处理器单元来执行以进行数据的写入、读取与抹除等运作。
在一范例实施例中,存储器管理电路51的控制指令亦可以程序码型式存储于可复写式非易失性存储器模块43的特定区域(例如,存储器模块中专用于存放系统数据的系统区)中。此外,存储器管理电路51具有微处理器单元(未示出)、只读存储器(未示出)及随机存取存储器(未示出)。特别是,此只读存储器具有开机码(boot code),并且当存储器控制电路单元42被致能时,微处理器单元会先执行此开机码来将存储于可复写式非易失性存储器模块43中的控制指令载入至存储器管理电路51的随机存取存储器中。之后,微处理器单元会运转此些控制指令以进行数据的写入、读取与抹除等运作。
在一范例实施例中,存储器管理电路51的控制指令亦可以一硬件型式来实作。例如,存储器管理电路51包括微控制器、存储单元管理电路、存储器写入电路、存储器读取电路、存储器抹除电路与数据处理电路。存储单元管理电路、存储器写入电路、存储器读取电路、存储器抹除电路与数据处理电路是连接至微控制器。存储单元管理电路用以管理可复写式非易失性存储器模块43的存储单元或存储单元群组。存储器写入电路用以对可复写式非易失性存储器模块43下达写入指令序列以将数据写入至可复写式非易失性存储器模块43中。存储器读取电路用以对可复写式非易失性存储器模块43下达读取指令序列以从可复写式非易失性存储器模块43中读取数据。存储器抹除电路用以对可复写式非易失性存储器模块43下达抹除指令序列以将数据从可复写式非易失性存储器模块43中抹除。数据处理电路用以处理欲写入至可复写式非易失性存储器模块43的数据以及从可复写式非易失性存储器模块43中读取的数据。写入指令序列、读取指令序列及抹除指令序列可各别包括一或多个程序码或指令码并且用以指示可复写式非易失性存储器模块43执行相对应的写入、读取及抹除等操作。在一范例实施例中,存储器管理电路51还可以下达其他类型的指令序列给可复写式非易失性存储器模块43以指示执行相对应的操作。
主机接口52是连接至存储器管理电路51。存储器管理电路51可通过主机接口52与主机系统11通信。主机接口52可用以接收与识别主机系统11所传送的指令与数据。例如,主机系统11所传送的指令与数据可通过主机接口52来传送至存储器管理电路51。此外,存储器管理电路51可通过主机接口52将数据传送至主机系统11。在本范例实施例中,主机接口52是相容于PCI Express标准。然而,必须了解的是本发明不限于此,主机接口52亦可以是相容于SATA标准、PATA标准、IEEE 1394标准、USB标准、SD标准、UHS-I标准、UHS-II标准、MS标准、MMC标准、eMMC标准、UFS标准、CF标准、IDE标准或其他适合的数据传输标准。
存储器接口53是连接至存储器管理电路51并且用以存取可复写式非易失性存储器模块43。例如,存储器管理电路51可通过存储器接口53存取可复写式非易失性存储器模块43。也就是说,欲写入至可复写式非易失性存储器模块43的数据会经由存储器接口53转换为可复写式非易失性存储器模块43所能接受的格式。具体来说,若存储器管理电路51要存取可复写式非易失性存储器模块43,存储器接口53会传送对应的指令序列。例如,这些指令序列可包括指示写入数据的写入指令序列、指示读取数据的读取指令序列、指示抹除数据的抹除指令序列、以及用以指示各种存储器操作(例如,改变读取电压电平或执行垃圾回收操作等等)的相对应的指令序列。这些指令序列例如是由存储器管理电路51产生并且通过存储器接口53传送至可复写式非易失性存储器模块43。这些指令序列可包括一或多个信号,或是在总线上的数据。这些信号或数据可包括指令码或程序码。例如,在读取指令序列中,会包括读取的辨识码、存储器地址等信息。
在一范例实施例中,存储器控制电路单元42还包括错误检查与校正电路54、缓冲存储器55及电源管理电路56。
错误检查与校正电路54是连接至存储器管理电路51并且用以执行错误检查与校正操作以确保数据的正确性。具体来说,当存储器管理电路51从主机系统11中接收到写入指令时,错误检查与校正电路54会为对应此写入指令的数据产生对应的错误更正码(errorcorrecting code,ECC)和/或错误检查码(error detecting code,EDC),并且存储器管理电路51会将对应此写入指令的数据与对应的错误更正码和/或错误检查码写入至可复写式非易失性存储器模块43中。之后,当存储器管理电路51从可复写式非易失性存储器模块43中读取数据时会同时读取此数据对应的错误更正码和/或错误检查码,并且错误检查与校正电路54会依据此错误更正码和/或错误检查码对所读取的数据执行错误检查与校正操作。
缓冲存储器55是连接至存储器管理电路51并且用以暂存数据。电源管理电路56是连接至存储器管理电路51并且用以控制存储器存储装置10的电源。
在一范例实施例中,图4的可复写式非易失性存储器模块43可包括快闪存储器模块。在一范例实施例中,图4的存储器控制电路单元42可包括快闪存储器控制器。在一范例实施例中,图5的存储器管理电路51可包括快闪存储器管理电路。
图6是根据本发明的范例实施例所示出的管理可复写式非易失性存储器模块的示意图。
请参照图6,存储器管理电路51可将可复写式非易失性存储器模块43中的实体抹除单元610(0)~610(B)逻辑的分组至存储区601与闲置(spare)区602。每一个实体抹除单元可包括多个实体程序化单元。
存储区601中的实体抹除单元610(0)~610(A)用以存储用户数据(例如来自图1的主机系统11的用户数据)。例如,存储区601中的实体抹除单元610(0)~610(A)可存储有效(valid)数据和/或无效(invalid)数据。闲置区602中的实体抹除单元610(A+1)~610(B)未存储数据(例如有效数据)。例如,若某一个实体抹除单元未存储有效数据,则此实体抹除单元可被关联(或加入)至闲置区602。此外,闲置区602中的实体抹除单元(或未存储有效数据的实体单元)可被抹除。在写入新数据时,一或多个实体抹除单元可被从闲置区602中提取以存储此新数据。在一范例实施例中,闲置区602亦称为闲置池(free pool)。
存储器管理电路51可配置逻辑单元612(0)~612(C)以映射存储区601中的实体抹除单元610(0)~610(A)。在一范例实施例中,每一个逻辑单元对应一个逻辑地址。例如,一个逻辑地址可包括一或多个逻辑区块地址(Logical Block Address,LBA)或其他的逻辑管理单元。在一范例实施例中,一个逻辑单元也可对应一个逻辑程序化单元或者由多个连续或不连续的逻辑地址组成。
须注意的是,一个逻辑单元可被映射至一或多个实体抹除单元。若某一实体抹除单元当前有被某一逻辑单元映射,则表示此实体抹除单元当前存储的数据包括有效数据。反之,若某一实体抹除单元当前未被任一逻辑单元映射,则表示此实体抹除单元当前存储的数据为无效数据。
存储器管理电路51可将描述逻辑单元与实体抹除单元之间的映射关系的管理数据(亦称为逻辑至实体映射信息)记录于至少一逻辑至实体映射表。当主机系统11欲从存储器存储装置10读取数据或写入数据至存储器存储装置10时,存储器管理电路51可根据此逻辑至实体映射表中的信息来存取可复写式非易失性存储器模块43。
图7是根据本发明的范例实施例所示出的存储器存储装置的使用情境的示意图。
请参照图7,在一范例实施例中,存储器管理电路51可从图1的主机系统11接收写入指令。此写入指令可包含数据(亦称为第一数据)701。例如,此写入指令可指示将数据701存储于特定的逻辑单元。然后,存储器管理电路51可将数据701暂存于缓冲存储器55中。
在一范例实施例中,可复写式非易失性存储器模块43包括实体抹除单元(亦称为第一实体抹除单元)71。实体抹除单元71包括实体程序化单元711(0)~711(D)。存储器管理电路51可根据待存储的数据701从可复写式非易失性存储器模块43中决定实体抹除单元71。例如,存储器管理电路51可从图6的闲置区602中选择实体抹除单元610(A+1)~610(B)的其中之一作为实体抹除单元71。
在一范例实施例中,在根据写入指令来存储数据701之前,存储器管理电路51可检查实体抹除单元71中的至少部分实体程序化单元(亦称为第一实体程序化单元)的状态。响应于第一实体程序化单元的状态为特定状态(亦称为第一状态),存储器管理电路51可根据数据701对第一实体程序化单元执行数据写入操作(亦称为第一写入操作)。第一写入操作可用以将数据701的至少部分数据存储至第一实体程序化单元中。例如,在第一写入操作中,存储器管理电路51可发送写入指令序列(亦称为第一指令序列)至可复写式非易失性存储器模块43。此第一指令序列可用以指示可复写式非易失性存储器模块43将数据701中的至少部分数据存储至第一实体程序化单元中。
换言之,响应于第一实体程序化单元的状态为第一状态,存储器管理电路51可允许将数据701存储至预先选定的实体抹除单元71(或第一实体程序化单元)中。在一范例实施例中,第一实体程序化单元的状态为第一状态亦可以是指第一实体程序化单元的状态符合预设条件。
在一范例实施例中,存储器管理电路51可根据待存储的数据701的数据量(或总数据量),决定实体抹除单元71中可用来存储数据701的第一实体程序化单元的总数。在一范例实施例中,假设一个实体程序化单元的容量为16千字节(KB)。若数据701的总数据量小于或等于一个实体程序化单元的容量(即16KB),则第一实体程序化单元的总数可为一个。或者,若数据701的总数据量大于一个实体程序化单元的容量(即16KB),则第一实体程序化单元的总数可为多个。尔后,响应于第一实体程序化单元的状态为第一状态,存储器管理电路51可根据数据701对第一实体程序化单元执行第一写入操作。
图8A是根据本发明的范例实施例所示出的第一写入操作的示意图。
请参照图8A,假设在将数据701存入实体抹除单元71之前,实体抹除单元71中已经存储有数据702。存储器管理电路51可根据待存储的数据701将实体抹除单元71中的实体程序化单元711(I)决定为第一实体程序化单元。响应于实体程序化单元711(I)的状态为第一状态,存储器管理电路51可根据数据701对实体程序化单元711(I)执行第一写入操作,以将数据701存储至实体程序化单元711(I)中。
图8B是根据本发明的范例实施例所示出的第一写入操作的示意图。
请参照图8B,假设在将数据701存入实体抹除单元71之前,实体抹除单元71中同样已经存储有数据702。存储器管理电路51可根据待存储的数据701将实体抹除单元71中的多个实体程序化单元711(I)~711(J)皆决定为第一实体程序化单元。亦即,第一实体程序化单元可以是指实体程序化单元711(I)~711(J)中的任一者。响应于实体程序化单元711(I)~711(J)的状态皆为第一状态,存储器管理电路51可根据数据701对实体程序化单元711(I)~711(J)执行第一写入操作,以将数据701存储至实体程序化单元711(I)~711(J)中。亦即,实体程序化单元711(I)~711(J)分别用以存储数据701中的一部分数据。
请回到图7,在一范例实施例中,可复写式非易失性存储器模块43还包括实体抹除单元(亦称为第二实体抹除单元)72。实体抹除单元72包括实体程序化单元712(0)~712(D)。响应于第一实体程序化单元(即实体抹除单元71)的状态非为第一状态,存储器管理电路51可根据待存储的数据701从可复写式非易失性存储器模块43中决定实体抹除单元72。例如,存储器管理电路51可从图6的闲置区602中选择实体抹除单元610(A+1)~610(B)的其中之另一作为实体抹除单元72。响应于第一实体程序化单元(即实体抹除单元71)的状态非为第一状态,存储器管理电路51可使用实体抹除单元72来取代实体抹除单元71以存储数据701。
在一范例实施例中,在决定实体抹除单元72后,存储器管理电路51可同样检查实体抹除单元72中的至少部分实体程序化单元(亦称为第二实体程序化单元)的状态。第二实体程序化单元的总数同样可根据数据701的(总)数据量而决定。响应于第二实体程序化单元的状态为第一状态,存储器管理电路51可根据数据701对第二实体程序化单元执行数据写入操作(亦称为第二写入操作)。第二写入操作可用以将数据701的至少部分数据存储至第二实体程序化单元中。例如,在第二写入操作中,存储器管理电路51可发送写入指令序列(亦称为第二指令序列)至可复写式非易失性存储器模块43。此第二指令序列可用以指示可复写式非易失性存储器模块43将数据701中的至少部分数据存储至第二实体程序化单元中。
换言之,响应于第一实体程序化单元的状态非为第一状态,存储器管理电路51可不允许将数据701存储至预先选定的实体抹除单元71(或第一实体程序化单元)中。取而代之的是,响应于第二实体程序化单元的状态为第一状态,存储器管理电路51可通过第二写入操作将数据701存储至实体抹除单元72(或第二实体程序化单元)中。在一范例实施例中,第二实体程序化单元的状态为第一状态亦可以是指第二实体程序化单元的状态符合预设条件。
在一范例实施例中,若第二实体程序化单元的状态也非为第一状态,则可复写式非易失性存储器模块43中的另一个实体抹除单元(亦称为第三实体抹除单元)亦可被决定,且第三实体抹除单元中的至少部分实体程序化单元(亦称为第三实体程序化单元)可以在满足预设条件(即第三实体程序化单元的状态为第一状态)的前提下被用来取代第二实体程序化单元以存储数据701。
在一范例实施例中,响应于第一实体程序化单元的状态非为第一状态,存储器管理电路51还可对第一实体抹除单元执行数据搬移操作。此数据搬移操作可用以将第一实体抹除单元中的至少部分数据搬移至第二实体抹除单元中。例如,在数据搬移操作中,存储器管理电路51可发送特定的指令序列(亦称为第三指令序列)至可复写式非易失性存储器模块43。此第三指令序列可用以指示可复写式非易失性存储器模块43将第一实体抹除单元中的至少部分数据搬移至第二实体抹除单元中。特别是,在此数据搬移操作中进行搬移的数据可包括已经存储于第一实体抹除单元中的有效数据。此外,此数据搬移操作可在第二写入操作之前、之后执行或与第二写入操作同步执行,本发明不加以限制。
图9是根据本发明的范例实施例所示出的第二写入操作与数据搬移操作的示意图。
请参照图9,假设在将数据701存入实体抹除单元71之前,实体抹除单元71中已经存储有数据702。响应于第一实体程序化单元(例如实体程序化单元711(I))的状态非为第一状态,存储器管理电路51可选择实体抹除单元72来取代实体抹除单元71,以存储数据701。同时,存储器管理电路51可根据待存储的数据701将实体抹除单元72中的实体程序化单元712(I)决定为第二实体程序化单元。响应于实体程序化单元712(I)的状态为第一状态,存储器管理电路51可根据数据701对实体程序化单元712(I)执行第二写入操作,以将数据701存储至实体程序化单元712(I)中。此外,数据701亦可以存储于实体抹除单元72中更多的第二实体程序化单元中,视数据701的总数据量而定。
另一方面,存储器管理电路51可对实体抹除单元71执行数据搬移操作,以将存储于实体抹除单元71中的数据702(即有效数据)搬移至实体抹除单元72中进行存储。例如,数据702可被存储于实体抹除单元72中的实体程序化单元712(0)~712(I-1)中。此外,数据701与702在实体抹除单元72中的实际存储地址亦可根据实务需求调整,本发明不加以限制。例如,在一范例实施例中,在实体抹除单元72中,用以存储数据701的实体程序化单元亦可以排序在用以存储数据702的实体程序化单元之前,本发明不加以限制。
图10是根据本发明的范例实施例所示出的第一实体程序化单元在不同状态下的存储单元的临界电压分布的示意图。
请参照图10,在程序化第一实体程序化单元后,在程序化状态下,第一实体程序化单元中的存储单元的临界电压分布可包含状态1010与1020。属于状态1010的存储单元以及属于状态1020的存储单元可分别用以存储不同的比特数据。例如,属于状态1010的存储单元可用以存储比特“1”,而属于状态1020的存储单元可用以存储比特“0”。然而,须注意的是,图10中的存储单元的临界电压分布仅为范例,而非用以限制本发明。在另一范例实施例中,对存储单元执行不同类型的程序化操作,第一实体程序化单元中的存储单元可具有不同的状态,且每一个状态所对应的比特数据亦可根据实务需求进行设定,本发明不加以限制。
当欲从第一实体程序化单元读取数据时,读取电压电平V(Read)可以被施加至第一实体程序化单元(例如第一实体程序化单元所在的字线)。可复写式非易失性存储器模块43可将对应于第一实体程序化单元的读取结果回传给存储器管理电路51。例如,此读取结果可反映出属于状态1010的某一存储单元的临界电压小于读取电压电平V(Read)和/或属于状态1020的某一存储单元的临界电压大于读取电压电平V(Read)。由此,存储器管理电路51可获得第一实体程序化单元中的各个存储单元的状态,进而根据此些存储单元的状态获得此些存储单元所各别存储的数据。
在一范例实施例中,在对第一实体程序化单元(或包含第一实体程序化单元的第一实体抹除单元)执行抹除操作后,第一实体程序化单元中的各个存储单元理论上都会处于状态1030。状态1030亦称为抹除状态。在抹除状态下,第一实体程序化单元中先前存储的数据皆已被抹除(即清除)。
须注意的是,在前述范例实施例中,在理想状态下,由存储器管理电路51挑选用来存储新数据(例如数据701)的实体程序化单元(例如第一实体程序化单元)中的所有存储单元皆应处于抹除状态,以避免在后续的数据写入操作中对同一存储单元执行重复的数据写入。重复的数据写入会导致新写入的数据的写入质量下降(例如比特错误率上升)。
然而,实务上经过抹除的实体程序化单元(例如第一实体程序化单元)仍可能因为“字线短路(word line short)”等因素而处于程序化状态,而非预设的抹除状态。例如,受字线短路的影响,即便第一实体程序化单元已被抹除且第一实体程序化单元中的存储单元皆处于抹除状态,当可复写式非易失性存储器模块43中的另一实体程序化单元被程序化以写入新数据时,第一实体程序化单元中的至少部分存储单元可能也会被同步程序化,导致第一实体程序化单元中的至少部分存储单元意外地从预设的抹除状态被转换为程序化状态。尔后,若存储器管理电路51未察觉第一实体程序化单元中的至少部分存储单元的状态已处于程序化状态而对第一实体程序化单元进行数据写入操作以存储新数据,则可能因存储单元的重复写入而导致数据的写入质量下降(例如比特错误率上升)。
在一范例实施例中,在检查第一实体程序化单元的状态的过程中,存储器管理电路51可检查第一实体程序化单元中是否存在不处于抹除状态的存储单元。响应于第一实体程序化单元中存在不处于抹除状态的存储单元,存储器管理电路51可判定第一实体程序化单元的状态非为第一状态。反之,响应于第一实体程序化单元中所检测到的存储单元皆处于抹除状态,则存储器管理电路51可判定第一实体程序化单元的状态为第一状态。
在一范例实施例中,在检查第一实体程序化单元的状态的过程中,存储器管理电路51可判断所检测到的第一实体程序化单元中不处于抹除状态的存储单元(即处于程序化状态的存储单元)的总数是否超过临界值。响应于所检测到的第一实体程序化单元中不处于抹除状态的存储单元的总数超过此临界值,存储器管理电路51可判定第一实体程序化单元的状态非为第一状态。反之,响应于所检测到的第一实体程序化单元中不处于抹除状态的存储单元的总数未超过此临界值,存储器管理电路51仍可判定第一实体程序化单元的状态为第一状态。
在一范例实施例中,存储器管理电路51可根据第一实体程序化单元中的存储单元的总数来决定此临界值。例如,此临界值可为将第一实体程序化单元中的存储单元的总数乘上一个比例值而获得。例如,此比例值可为2%、5%或10%等,且此比例值可根据实务需求调整。
在一范例实施例中,在检查第一实体程序化单元的状态的过程中,存储器管理电路51可发送特定的指令序列(亦称为第四指令序列)至可复写式非易失性存储器模块43。此第四指令序列可用以指示可复写式非易失性存储器模块43对第一实体程序化单元执行读取操作,以获得对应于第一实体程序化单元的状态数据。此状态数据可反映第一实体程序化单元中的至少部分存储单元的状态。存储器管理电路51可根据所述状态数据决定第一实体程序化单元的状态。例如,存储器管理电路51可根据所述状态数据决定第一实体程序化单元的状态是否为第一状态。
在一范例实施例中,存储器管理电路51可判断所述状态数据中是否包括特定数据。此特定数据可反映第一实体程序化单元中的至少一存储单元非处于抹除状态。若所述状态数据中包括此特定数据,存储器管理电路51可根据此特定数据(例如此特定数据的总数)判定第一实体程序化单元的状态非为第一状态。若所述状态数据中不包括此特定数据,存储器管理电路51可判定第一实体程序化单元的状态为第一状态。
图11是根据本发明的范例实施例所示出的第一实体程序化单元中的存储单元的临界电压分布的示意图。
请参照图11,在一范例实施例中,假设经过抹除的第一实体程序化单元的存储单元的临界电压分布包括状态1030与1110。其中,绝大多数的存储单元皆因已被抹除而处于抹除状态(即状态1030),仅少部分的存储单元因字线短路等因素而再次处于程序化状态(即状态1110)。然而,第一实体程序化单元的存储单元的临界电压分布可根据实务状况有所不同,本发明不加以限制。
在一范例实施例中,在检查第一实体程序化单元的状态的过程中,存储器管理电路51可指示可复写式非易失性存储器模块43使用读取电压电平V(Read)来读取第一实体程序化单元。根据可复写式非易失性存储器模块43回传的读取结果,存储器管理电路51可获得对应于第一实体程序化单元的状态数据。例如,此状态数据可包含大量的比特“1”以及少数的比特“0”,其中比特“1”的总数可反映出属于状态1030的存储单元的总数,而比特“0”的总数则可反映出属于状态1110的存储单元的总数。
在一范例实施例中,所述特定数据可包括所述状态数据中的比特“1”。存储器管理电路51可根据所述状态数据中的比特“1”的总数、比特“0”的总数和/或比特“1”与比特“0”的比例,决定第一实体程序化单元的状态。例如,存储器管理电路51可根据比特“1”的总数是否大于临界值、比特“0”的总数是否大于临界值或比特“1”与比特“0”的比例是否大于一比例值,来决定第一实体程序化单元的状态。例如,在一范例实施例中,响应于所述状态数据中的比特“1”的总数大于临界值、比特“0”的总数小于临界值或比特“1”与比特“0”的比例大于比例值,存储器管理电路51可判定第一实体程序化单元的状态为第一状态。反之,响应于所述状态数据中的比特“1”的总数不大于临界值、比特“0”的总数不小于临界值或比特“1”与比特“0”的比例未大于比例值,则存储器管理电路51可判定第一实体程序化单元的状态非为第一状态。
在一范例实施例中,所述状态数据可反映第一实体程序化单元中所有存储单元的状态。在一范例实施例中,所述状态数据只反映第一实体程序化单元中一部分存储单元的状态。例如,假设第一实体程序化单元包括P个存储单元,则所述状态数据可反映第一实体程序化单元中的Q个存储单元的状态,且Q小于P。或者,假设第一实体程序化单元存储的数据量为16KB,则所述状态数据可能只有4KB或其他小于16KB的数值。由此,可有效减少需读取和/或分析的数据量。
从另一角度而言,在一范例实施例中,存储器管理电路51根据第一实体程序化单元中一部分存储单元的状态即可决定第一实体程序化单元的状态,而不需要完整读取整个第一实体程序化单元(或第一实体程序化单元中的所有存储单元)。由此,可提高决定第一实体程序化单元的状态的效率。
在一范例实施例中,若第一实体程序化单元的状态为第一状态,表示第一实体程序化单元中应处于抹除状态但实际上处于程序化状态的存储单元的总数未超过容许值(或者不存在处于程序化状态的存储单元)。因此,存储器管理电路51可持续使用第一实体程序化单元来存储数据。然而,若第一实体程序化单元的状态非为第一状态,表示第一实体程序化单元中应处于抹除状态但实际上处于程序化状态的存储单元的总数已超过容许值。因此,存储器管理电路51可改为使用其他的实体抹除单元(例如第二实体抹除单元)来存储数据,以提高数据的存储质量。同时,第一实体抹除单元中的有效数据可被同步搬移到新的实体抹除单元(例如第二实体抹除单元)进行存储,且第一实体抹除单元可被再次抹除并回收至图6的闲置区602。当下次再挑选到第一实体抹除单元来存储数据时,相同的操作可被用来验证第一实体抹除单元,以确保针对第一实体抹除单元(或第一实体程序化单元)的数据写入质量。相关操作细节皆已详述于上,在此不重复赘述。
图12是根据本发明的范例实施例所示出的数据写入方法的流程图。
请参照图12,在步骤S1201中,从主机系统接收写入指令,其中写入指令包含第一数据。在步骤S1202中,检查第一实体抹除单元中的第一实体程序化单元的状态。在步骤S1203,判断第一实体程序化单元的状态是否为第一状态。响应于第一实体程序化单元的状态为第一状态,在步骤S1204,根据第一数据对第一实体程序化单元执行第一写入操作。例如,第一写入操作用以将第一数据的至少部分数据存储至第一实体程序化单元中。或者,响应于第一实体程序化单元的状态非为第一状态,在步骤S1205,根据第一数据对第二实体抹除单元中的第二实体程序化单元执行第二写入操作。例如,第二写入操作用以将第一数据的至少部分数据存储至第二实体程序化单元中。
图13是根据本发明的范例实施例所示出的数据写入方法的流程图。
请参照图13,在步骤S1301中,对第一实体抹除单元中的特定实体程序化单元(亦称为目标实体程序化单元)执行读取操作。例如,目标实体程序化单元为多个第一实体程序化单元的其中之一。在步骤S1302中,根据读取结果决定目标实体程序化单元的状态。在步骤S1303中,判断目标实体程序化单元的状态是否为第一状态。响应于目标实体程序化单元的状态为第一状态,在步骤S1304中,根据第一数据的一部分数据对目标实体程序化单元执行数据写入操作。在步骤S1305中,切换目标实体程序化单元。例如,将目标实体程序化单元切换为多个第一实体程序化单元的其中之另一。然后,步骤S1301可重复执行。另一方面,响应于目标实体程序化单元的状态非为第一状态,在步骤S1306中,将用以存储第一数据的实体抹除单元从第一实体抹除单元改变为第二实体抹除单元。
图14是根据本发明的范例实施例所示出的数据写入方法的流程图。
请参照图14,在步骤S1401中,对第一实体抹除单元中的多个目标实体程序化单元执行读取操作。例如,每一个目标实体程序化单元为多个第一实体程序化单元的其中之一。在步骤S1402中,根据读取结果决定所述多个目标实体程序化单元的状态。在步骤S1403中,判断所述多个目标实体程序化单元的状态是否皆为第一状态。响应于所述多个目标实体程序化单元的状态皆为第一状态,在步骤S1404中,根据第一数据对所述多个目标实体程序化单元执行数据写入操作。或者,响应于所述多个目标实体程序化单元的状态非皆为第一状态(即至少一个目标实体程序化单元非为第一状态),在步骤S1405中,将用以存储第一数据的实体抹除单元从第一实体抹除单元改变为第二实体抹除单元。
然而,图12至图14中各步骤已详细说明如上,在此便不再赘述。值得注意的是,图12至图14中各步骤可以实作为多个程序码或是电路,本案不加以限制。此外,图12至图14的方法可以搭配以上范例实施例使用,也可以单独使用,本案不加以限制。
综上所述,本发明实施例提供的数据写入方法、存储器存储装置及存储器控制电路单元,可在对第一实体程序化单元进行数据写入之前,先检查第一实体程序化单元的状态。若第一实体程序化单元的状态符合预期(即第一实体程序化单元的状态为第一状态),可允许对第一实体程序化单元执行第一写入操作,以将第一数据存储至第一实体程序化单元中。然而,若第一实体程序化单元的状态不符合预期(即第一实体程序化单元的状态非为第一状态),则第二实体抹除单元可用来取代第一实体抹成单元,以存储第一数据。由此,可有效避免对特定实体程序化单元进行重复写入并提高数据的写入质量。
最后应说明的是:以上各实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述各实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的范围。
Claims (24)
1.一种数据写入方法,其特征在于,用于可复写式非易失性存储器模块,所述可复写式非易失性存储器模块包括多个实体抹除单元,所述多个实体抹除单元包括第一实体抹除单元,所述数据写入方法包括:
从主机系统接收写入指令,其中所述写入指令包含第一数据;
在存储所述第一数据之前,检查所述第一实体抹除单元中的第一实体程序化单元的状态;以及
响应于所述第一实体程序化单元的所述状态为第一状态,发送第一指令序列,其中所述第一指令序列用以指示所述可复写式非易失性存储器模块将所述第一数据的至少部分数据存储至所述第一实体程序化单元中。
2.根据权利要求1所述的数据写入方法,还包括:
根据所述第一数据的数据量,决定所述第一实体程序化单元的总数。
3.根据权利要求1所述的数据写入方法,其中所述多个实体抹除单元还包括第二实体抹除单元,且所述数据写入方法还包括:
响应于所述第一实体程序化单元的所述状态非为所述第一状态,发送第二指令序列,其中所述第二指令序列用以指示所述可复写式非易失性存储器模块将所述第一数据的所述至少部分数据存储至所述第二实体抹除单元中。
4.根据权利要求3所述的数据写入方法,还包括:
响应于所述第一实体程序化单元的所述状态非为所述第一状态,发送第三指令序列,其中所述第三指令序列用以指示所述可复写式非易失性存储器模块将所述第一实体抹除单元中的至少部分数据搬移至所述第二实体抹除单元中。
5.根据权利要求1所述的数据写入方法,其中检查所述第一实体抹除单元中的所述第一实体程序化单元的所述状态的步骤包括:
发送第四指令序列,其中所述第四指令序列用以指示所述可复写式非易失性存储器模块对所述第一实体程序化单元执行读取操作,以获得对应于所述第一实体程序化单元的状态数据,其中所述状态数据反映所述第一实体程序化单元中的至少部分存储单元的状态;以及
根据所述状态数据决定所述第一实体程序化单元的所述状态。
6.根据权利要求5所述的数据写入方法,其中根据所述状态数据决定所述第一实体程序化单元的所述状态的步骤包括:
根据所述状态数据中的特定数据,判定所述第一实体程序化单元的所述状态非为所述第一状态,
其中所述特定数据反映所述第一实体程序化单元中的至少一存储单元非处于抹除状态。
7.根据权利要求5所述的数据写入方法,其中所述第一实体程序化单元包括P个存储单元,所述状态数据反映所述第一实体程序化单元中的Q个存储单元的状态,且Q小于P。
8.根据权利要求1所述的数据写入方法,其中检查所述第一实体抹除单元中的所述第一实体程序化单元的所述状态的步骤包括:
检查所述第一实体程序化单元中是否存在不处于抹除状态的存储单元;以及
响应于所述第一实体程序化单元中存在不处于所述抹除状态的所述存储单元,判定所述第一实体程序化单元的所述状态非为所述第一状态。
9.一种存储器存储装置,其特征在于,包括:
主机接口单元,用以连接至主机系统;
可复写式非易失性存储器模块,其中所述可复写式非易失性存储器模块包括多个实体抹除单元,且所述多个实体抹除单元包括第一实体抹除单元;以及
存储器控制电路单元,连接至所述主机接口单元与所述可复写式非易失性存储器模块,
其中所述存储器控制电路单元用以:
从所述主机系统接收写入指令,其中所述写入指令包含第一数据;
在存储所述第一数据之前,检查所述第一实体抹除单元中的第一实体程序化单元的状态;以及
响应于所述第一实体程序化单元的所述状态为第一状态,发送第一指令序列,其中所述第一指令序列用以指示所述可复写式非易失性存储器模块用以将所述第一数据的至少部分数据存储至所述第一实体程序化单元中。
10.根据权利要求9所述的存储器存储装置,其中所述存储器控制电路单元还用以:
根据所述第一数据的数据量,决定所述第一实体程序化单元的总数。
11.根据权利要求9所述的存储器存储装置,其中所述多个实体抹除单元还包括第二实体抹除单元,且所述存储器控制电路单元还用以:
响应于所述第一实体程序化单元的所述状态非为所述第一状态,发送第二指令序列,其中所述第二指令序列用以指示所述可复写式非易失性存储器模块将所述第一数据的所述至少部分数据存储至所述第二实体抹除单元中。
12.根据权利要求11所述的存储器存储装置,其中所述存储器控制电路单元还用以:
响应于所述第一实体程序化单元的所述状态非为所述第一状态,发送第三指令序列,其中所述第三指令序列用以指示所述可复写式非易失性存储器模块将所述第一实体抹除单元中的至少部分数据搬移至所述第二实体抹除单元中。
13.根据权利要求9所述的存储器存储装置,其中所述存储器控制电路单元检查所述第一实体抹除单元中的所述第一实体程序化单元的所述状态的操作包括:
发送第四指令序列,其中所述第四指令序列用以指示所述可复写式非易失性存储器模块对所述第一实体程序化单元执行读取操作,以获得对应于所述第一实体程序化单元的状态数据,其中所述状态数据反映所述第一实体程序化单元中的至少部分存储单元的状态;以及
根据所述状态数据决定所述第一实体程序化单元的所述状态。
14.根据权利要求13所述的存储器存储装置,其中所述存储器控制电路单元根据所述状态数据决定所述第一实体程序化单元的所述状态的操作包括:
根据所述状态数据中的特定数据,判定所述第一实体程序化单元的所述状态非为所述第一状态,
其中所述特定数据反映所述第一实体程序化单元中的至少一存储单元非处于抹除状态。
15.根据权利要求13所述的存储器存储装置,其中所述第一实体程序化单元包括P个存储单元,所述状态数据反映所述第一实体程序化单元中的Q个存储单元的状态,且Q小于P。
16.根据权利要求9所述的存储器存储装置,其中所述存储器控制电路单元检查所述第一实体抹除单元中的所述第一实体程序化单元的所述状态的操作包括:
检查所述第一实体程序化单元中是否存在不处于抹除状态的存储单元;以及
响应于所述第一实体程序化单元中存在不处于所述抹除状态的所述存储单元,判定所述第一实体程序化单元的所述状态非为所述第一状态。
17.一种存储器控制电路单元,其特征在于,用于控制可复写式非易失性存储器模块,所述可复写式非易失性存储器模块包括多个实体抹除单元,所述多个实体抹除单元包括第一实体抹除单元,所述存储器控制电路单元包括:
主机接口,用以连接至主机系统;
存储器接口,用以连接至所述可复写式非易失性存储器模块;
缓冲存储器;以及
存储器管理电路,连接至所述主机接口、所述存储器接口及所述缓冲存储器,
其中所述存储器管理电路用以:
从所述主机系统接收写入指令,其中所述写入指令包含第一数据;
在存储所述第一数据之前,检查所述第一实体抹除单元中的第一实体程序化单元的状态;以及
响应于所述第一实体程序化单元的所述状态为第一状态,发送第一指令序列,其中所述第一指令序列用以指示所述可复写式非易失性存储器模块将所述第一数据的至少部分数据存储至所述第一实体程序化单元中。
18.根据权利要求17所述的存储器控制电路单元,其中所述存储器管理电路还用以:
根据所述第一数据的数据量,决定所述第一实体程序化单元的总数。
19.根据权利要求17所述的存储器控制电路单元,其中所述多个实体抹除单元还包括第二实体抹除单元,且所述存储器管理电路还用以:
响应于所述第一实体程序化单元的所述状态非为所述第一状态,发送第二指令序列,其中所述第二指令序列用以指示所述可复写式非易失性存储器模块将所述第一数据的所述至少部分数据存储至所述第二实体抹除单元中。
20.根据权利要求19所述的存储器控制电路单元,其中所述存储器管理电路还用以:
响应于所述第一实体程序化单元的所述状态非为所述第一状态,发送第三指令序列,其中所述第三指令序列用以指示所述可复写式非易失性存储器模块将所述第一实体抹除单元中的至少部分数据搬移至所述第二实体抹除单元中。
21.根据权利要求17所述的存储器控制电路单元,其中所述存储器管理电路检查所述第一实体抹除单元中的所述第一实体程序化单元的所述状态的操作包括:
发送第四指令序列,其中所述第四指令序列用以指示所述可复写式非易失性存储器模块对所述第一实体程序化单元执行读取操作,以获得对应于所述第一实体程序化单元的状态数据,其中所述状态数据反映所述第一实体程序化单元中的至少部分存储单元的状态;以及
根据所述状态数据决定所述第一实体程序化单元的所述状态。
22.根据权利要求21所述的存储器控制电路单元,其中所述存储器管理电路根据所述状态数据决定所述第一实体程序化单元的所述状态的操作包括:
根据所述状态数据中的特定数据,判定所述第一实体程序化单元的所述状态非为所述第一状态,
其中所述特定数据反映所述第一实体程序化单元中的至少一存储单元非处于抹除状态。
23.根据权利要求21所述的存储器控制电路单元,其中所述第一实体程序化单元包括P个存储单元,所述状态数据反映所述第一实体程序化单元中的Q个存储单元的状态,且Q小于P。
24.根据权利要求17所述的存储器控制电路单元,其中所述存储器管理电路检查所述第一实体抹除单元中的所述第一实体程序化单元的所述状态的操作包括:
检查所述第一实体程序化单元中是否存在不处于抹除状态的存储单元;以及
响应于所述第一实体程序化单元中存在不处于所述抹除状态的所述存储单元,判定所述第一实体程序化单元的所述状态非为所述第一状态。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211116853.2A CN115472201A (zh) | 2022-09-14 | 2022-09-14 | 数据写入方法、存储器存储装置及存储器控制电路单元 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211116853.2A CN115472201A (zh) | 2022-09-14 | 2022-09-14 | 数据写入方法、存储器存储装置及存储器控制电路单元 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN115472201A true CN115472201A (zh) | 2022-12-13 |
Family
ID=84333635
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202211116853.2A Pending CN115472201A (zh) | 2022-09-14 | 2022-09-14 | 数据写入方法、存储器存储装置及存储器控制电路单元 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115472201A (zh) |
-
2022
- 2022-09-14 CN CN202211116853.2A patent/CN115472201A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111078149A (zh) | 存储器管理方法、存储器存储装置及存储器控制电路单元 | |
CN111400201B (zh) | 快闪存储器的数据整理方法、存储装置及控制电路单元 | |
CN113885692A (zh) | 存储器效能优化方法、存储器控制电路单元以及存储装置 | |
CN111258505B (zh) | 快闪存储器的数据合并方法、控制电路单元与存储装置 | |
CN113140253A (zh) | 存储器管理方法、存储器存储装置及存储器控制电路单元 | |
CN111078146A (zh) | 存储器管理方法、存储器存储装置及存储器控制电路单元 | |
CN109273033B (zh) | 存储器管理方法、存储器控制电路单元与存储器存储装置 | |
CN112860194A (zh) | 存储器控制方法、存储器存储装置及存储器控制电路单元 | |
CN110308876B (zh) | 存储器管理方法、存储器存储装置及存储器控制电路单元 | |
US20230021668A1 (en) | Temperature control method, memory storage apparatus, and memory control circuit unit | |
CN112445417B (zh) | 存储器控制方法、存储器存储装置及存储器控制电路单元 | |
CN111831210B (zh) | 存储器管理方法、存储器控制电路单元及存储器存储装置 | |
US20210223981A1 (en) | Data writing method, memory controlling circuit unit and memory storage device | |
TWI831366B (zh) | 資料寫入方法、記憶體儲存裝置及記憶體控制電路單元 | |
CN112835536A (zh) | 存储器控制方法、存储器存储装置及存储器控制电路单元 | |
CN115472201A (zh) | 数据写入方法、存储器存储装置及存储器控制电路单元 | |
CN117632039B (zh) | 存储器管理方法、存储器存储装置及存储器控制电路单元 | |
CN117632038B (zh) | 损耗平衡方法、存储器存储装置及存储器控制电路单元 | |
CN114138207B (zh) | 存储器控制方法、存储器存储装置及存储器控制电路单元 | |
US12124743B2 (en) | Data reading method, memory storage device, and memory control circuit unit | |
CN113220213B (zh) | 数据写入方法、存储器控制电路单元以及存储器存储装置 | |
CN112445418B (zh) | 存储器控制方法、存储器存储装置及存储器控制电路单元 | |
CN113312274B (zh) | 存储器的数据整理方法、存储器存储装置及控制电路单元 | |
CN111240602B (zh) | 闪存的数据整理方法、控制电路单元与存储装置 | |
CN112015327B (zh) | 数据写入方法、存储器存储装置及存储器控制电路单元 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |