CN113722144B - 数据储存装置与数据处理方法 - Google Patents

数据储存装置与数据处理方法 Download PDF

Info

Publication number
CN113722144B
CN113722144B CN202010547894.1A CN202010547894A CN113722144B CN 113722144 B CN113722144 B CN 113722144B CN 202010547894 A CN202010547894 A CN 202010547894A CN 113722144 B CN113722144 B CN 113722144B
Authority
CN
China
Prior art keywords
data
memory
protection
buffer memory
microprocessor
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
Application number
CN202010547894.1A
Other languages
English (en)
Other versions
CN113722144A (zh
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 CN113722144A publication Critical patent/CN113722144A/zh
Application granted granted Critical
Publication of CN113722144B publication Critical patent/CN113722144B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • G06F3/0656Data buffering arrangements
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0673Single storage device
    • G06F3/0679Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1008Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices
    • G06F11/1068Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices in sector programmable memories, e.g. flash disk
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1008Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices
    • G06F11/1048Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices using arrangements adapted for a specific error detection or correction feature
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1076Parity data used in redundant arrays of independent storages, e.g. in RAID systems
    • G06F11/108Parity data distribution in semiconductor storages, e.g. in SSD
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR 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/0866Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches for peripheral storage systems, e.g. disk cache
    • G06F12/0868Data transfer between cache memory and other subsystems, e.g. storage devices or host systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/70Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
    • G06F21/78Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure storage of data
    • G06F21/79Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure storage of data in semiconductor storage media, e.g. directly-addressable memories
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/061Improving I/O performance
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/061Improving I/O performance
    • G06F3/0611Improving I/O performance in relation to response time
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0614Improving the reliability of storage systems
    • G06F3/0619Improving the reliability of storage systems in relation to data integrity, e.g. data losses, bit errors
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0653Monitoring storage devices or systems
    • YGENERAL 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
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE 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/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • Computer Security & Cryptography (AREA)
  • Quality & Reliability (AREA)
  • Computer Hardware Design (AREA)
  • Software Systems (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)
  • Storage Device Security (AREA)

Abstract

本发明涉及一种存储器控制器,其耦接一存储器装置与一主机装置,用以控制存储器装置的存取操作,包括一缓冲存储器、一主机接口、一微处理器以及一数据保护引擎。主机接口耦接主机装置,用以将自主机装置接收的数据写入缓冲存储器,并且于数据被写入缓冲存储器后,发出一缓冲存储器写入完成通知。微处理器响应于缓冲存储器写入完成通知触发一数据保护操作。数据保护引擎用以根据储存于缓冲存储器的数据执行数据保护操作以产生对应的保护资讯。微处理器于确认数据被写入缓冲存储器后直接触发数据保护操作。

Description

数据储存装置与数据处理方法
技术领域
本发明有关于一种数据处理方法,尤指一种可有效保护存储器装置储存的数据的数据处理方法。
背景技术
随着数据储存装置的科技在近几年快速地成长,许多数据储存装置,如符合安全数位(Secure Digital,缩写为SD)/多媒体卡(Multi Media Card,缩写为MMC)规格、复合式快闪存储器(Compact flash,缩写为CF)规格、记忆条(Memory Stick,缩写为MS)规格与极数位(Extreme Digital,缩写为XD)规格的记忆卡、固态硬碟、嵌入式多媒体记忆卡(embedded Multi Media Card,缩写为eMMC)以及通用快闪存储器储存(Universal FlashStorage,缩写为UFS)已经广泛地被应用在多种用途上。因此,在这些数据储存装置上,有效率的存取控制也变成一个重要的议题。
为了提高数据储存装置的存取效能,并保护存储器装置所储存的数据,本发明提出一种新颖的数据处理方法,可有效地保护存储器装置所储存的数据,并且可避免因错误保护机制的实施而降低数据储存装置的存取效能。
发明内容
本发明之一目的在于有效地保护存储器装置所储存的数据,并且可避免因错误保护机制的实施而降低数据储存装置的存取效能。
根据本发明之一实施例,一种存储器控制器,耦接一存储器装置与一主机装置,用以控制存储器装置的存取操作,包括一缓冲存储器、一主机接口、一微处理器以及一数据保护引擎。主机接口耦接主机装置,用以将自主机装置接收的数据写入缓冲存储器,并且于数据被写入缓冲存储器后,发出一缓冲存储器写入完成通知。微处理器响应于缓冲存储器写入完成通知触发一数据保护操作。数据保护引擎用以根据储存于缓冲存储器的数据执行数据保护操作以产生对应的保护资讯。微处理器于确认数据被写入缓冲存储器后直接触发数据保护操作。
根据本发明的另一实施例,一种数据处理方法,由耦接一存储器装置的一存储器控制器所执行,包括:将自一主机装置接收的数据写入存储器控制器的一缓冲存储器;以及于数据被写入缓冲存储器后直接执行一数据保护操作,用以根据储存于缓冲存储器的数据产生对应的保护资讯。
附图说明
图1是显示根据本发明的一实施例所述的数据储存装置100的示意图。
图2是显示根据本发明的一实施例所述的数据处理方法流程图。
图3是显示根据本发明的一实施例所述的存储器控制器的工作排程范例。
符号说明
100:数据储存装置
110:存储器控制器
112:微处理器
112C:程序码
112M:只读存储器
114:存储器接口
116:缓冲存储器
115:数据保护引擎
118:主机接口
120:存储器装置
130:主机装置
132:编码器
134:解码器
136:电压检测电路
310,320,D[0],D[1],D[2],D[3],D[4],D[5],D[6],D[7],D[8],D[9],D[10],D[11],D[12],D[13],D[14],D[15]:数据
315:保护资讯
具体实施方式
在下文中,描述了许多具体细节以提供对本发明实施例的透彻理解。然而,本领域技术人员仍将理解如何在缺少一个或多个具体细节或依赖于其他方法、元件或材料的情况下实施本发明。在其他情况下,未详细示出或描述公知的结构、材料或操作,以避免模糊本发明的主要概念。
在整个说明书中对"一个实施例"、"一实施例"、"一个范例"或"一范例"的引用意味着结合该实施例或范例所描述的特定特征、结构或特性是包括于本发明的多个实施例的至少一个实施例中。因此,贯穿本说明书在各个地方出现的短语"在一个实施例中"、"在一实施例中"、"在一个范例中"或"在一范例中"不一定都指到相同的实施例或范例。此外,特定特征、结构或特性可以在一个或多个实施例或范例中以任何合适的组合和/或子组合进行结合。
此外,为让本发明的目的、特征和优点能更明显易懂,下文特举出本发明的具体实施例,并配合附图,作详细说明如下。目的在于说明本发明的精神而非用以限定本发明的保护范围,应理解下列实施例可经由软件、硬件、固件、或上述任意组合来实现。
图1是显示根据本发明的一实施例所述的数据储存装置100的示意图。数据储存装置100包括一存储器装置120,例如,一快闪存储器(Flash Memory)模块,以及一存储器控制器110。存储器控制器110用以存取(Access)存储器装置120。根据本发明一实施例,存储器控制器110包含一微处理器112、一只读存储器(Read Only Memory,ROM)112M、一存储器接口114、一数据保护引擎115、一缓冲存储器116、与一主机接口118。只读存储器112M系用以储存一程序码112C,程序码112C可包含一或多个程序模块,例如开机载入器(boot loader)码,于主机装置130供电给数据储存装置100时,微处理器112可执行程序码112C来进行初始化运作,以从存储器装置120载入一群系统内编程(In-System Programming,缩写为ISP)(图未绘示)。微处理器112可执行该群ISP码,使数据储存装置100具备各种功能。依据本实施例,该群ISP码可包含(但不限于)关于存取(例如读取、写入及抹除)的多个程序模块,诸如一读取操作模块、一查表模块、一耗损平(wear leveling)模块、一读取刷新(readrefresh)模块、一读取回收(read reclaim)模块、一垃圾收集(garbage collection)模块、一突然断电回复(sudden power off recovery,缩写为SPOR)模块以及一不可更正错误更正码(uncorrectable error correction code,缩写为UECC)模块,以供分别进行读取、查表、耗损平均、读取刷新、读取回收、垃圾收集、突然断电回复以及针对UECC错误的错误处置。存储器接口114包含了一编码器132、一解码器134以及一电压检测电路136。编码器132用以对写入到存储器装置120中的数据进行编码以产生对应的校验码(或称,错误更正码(Error Correction Code),ECC)。解码器134用以将从存储器装置120所读出的数据进行解码。电压检测电路136用以检测存储器装置120的一电压位准,例如,电源电压的位准,并产生对应的一检测结果。微处理器112可根据检测结果判断存储器装置120是否发生电源电压变化(例如,电源电压不稳定),或者发生非预期或突然断电(SPO)等。数据保护引擎115用以根据接收自主机装置130的数据产生对应的保护资讯,以及用以根据保护资讯恢复损坏或遗失的数据,其中保护资讯可以是根据所欲保护的数据产生的编码过的资讯,例如,同位(parity)位元资讯。当一既定保护资讯所保护的数据的一部分发生损坏或被遗失时,数据保护引擎115可根据此既定保护资讯与其所保护的数据的剩余部分执行对应的解码操作,藉此推导出被损坏或被遗失的部分。
于典型状况下,存储器装置120包含了多个快闪存储器晶片或晶粒,而每一个快闪存储器晶片或晶粒包含多个存储器区块(Block),而存储器控制器110对存储器装置120进行抹除数据运作系以区块为单位来进行。另外,一存储器区块可记录(包含)特定数量的数据页(Page),即,物理数据页,其中存储器控制器110对存储器装置120进行写入数据的运作系以数据页为单位来进行写入。
实作上,存储器控制器110可利用其本身内部的元件来进行诸多控制运作,例如:利用存储器接口114来控制存储器装置120的存取运作(尤其是对至少一区块或至少一数据页的存取运作)、利用缓冲存储器116进行所需的缓冲处理、以及利用主机接口118来与一主机装置(Host Device)130沟通。其中,主机接口118亦可被视为一前端控制器引擎,用以于存储器控制器110与主机装置130之间传递沟通讯号、传递主机装置130写入/读取的数据、以及控制读/写数据的工作排程等。存储器接口114亦可被视为一后端控制器引擎,用以于存储器控制器110与存储器装置120之间传递沟通讯号、传递欲写入/读取自存储器装置120的数据、于将数据写入存储器装置120前透过编码器132执行对应的编码操作,以及于自存储器装置120读取数据后透过解码器134对数据执行对应的解码操作。
在一实施例中,存储器控制器110透过主机接口118并使用一标准通讯协定与主机装置130沟通。举例而言,上述的标准通讯协定包含(但不限于):通用序列总线(UniversalSerial Bus,缩写为USB)标准、安全数位(Secure Digital,缩写为SD)接口标准、超高速一代(Ultra High Speed-I,缩写为UHS-I)接口标准、超高速二代(Ultra High Speed-II,缩写为UHS-II)接口标准、复合式快闪存储器(Compact flash,缩写为CF)接口标准、多媒体卡(Multimedia Card,缩写为MMC)接口标准、嵌入式多媒体卡(Embedded Multimedia Card,缩写为eMMC)接口标准、通用快闪存储器(Universal Flash Storage,缩写为UFS)接口标准、高技术组态(Advanced Technology Attachment,缩写为ATA)标准、序列高技术组态(Serial ATA,缩写为SATA)标准、快捷外设互联标准(Peripheral ComponentInterconnect Express,缩写为PCI-E)标准、并列先进附件(Parallel AdvancedTechnology Attachment,缩写为PATA)标准。
在一实施例中,缓冲存储器116系以随机存取存储器(Random Access Memory,缩写为RAM)来实施。例如,缓冲存储器116可以是静态随机存取存储器(Static RAM,缩写为SRAM),但本发明不限于此。于其它实施例中,缓冲存储器116可以是动态随机存取存储器(Dynamic RAM,缩写为DRAM)。
在一实施例中,数据储存装置100可以是可携式存储器装置(例如:符合SD/MMC、CF、MS、XD、UFS标准的记忆卡),且主机装置130为一可与数据储存装置连接的电子装置,例如手机、笔记型电脑、桌上型电脑…等等。而在另一实施例中,数据储存装置100可以是固态硬碟或UFS或eMMC规格的嵌入式储存装置,以设置在一电子装置中,例如设置在手机、笔记型电脑、桌上型电脑之中,而此时主机装置130可以是该电子装置的一处理器。
主机装置130可对数据储存装置100发出指令,例如,读取指令或写入指令,用以存取存储器装置120所储存的数据,或者进一步控制、管理数据储存装置100。
根据本发明的一实施例,存储器装置120所包含的多个存储器区块中可包括单层单元(Single-Level Cell,缩写为SLC)存储器区块、多层单元(Multiple-Level Cell,缩写为MLC)存储器区块以及/或是三层单元(Triple-Level Cell,缩写为TLC)存储器区块。SLC存储器区块的每个存储器单元中储存一个位元数据,MLC存储器区块的每个存储器单元中储存两个位元数据,TLC存储器区块的每个存储器单元中储存三个位元数据。根据本发明的一实施例,存储器装置120为一立体NAND型快闪存储器(3D NAND-type flash)。
一般而言,为了保护存储器装置不会因为存储器单元的损坏而发生有效数据遗失,存储器装置可运用容错式磁碟阵列(Redundant Array of Independent Disks,缩写RAID)技术中所采用的错误保护机制进行数据保护。于RAID所采用的错误保护机制中,存储器控制器可根据被写入存储器装置的数据计算出保护资讯。当发现有效数据遗失时,便可利用保护资讯反向推导出被遗失的有效数据内容。
然而,于某些情况中,于数据被写入存储器装置之际,便已发生存储器单元损坏或数据损坏。被损坏的存储器单元可能会导致其所储存的数据发生错误。举例而言,被损坏的存储器单元可能无法维持固定的电压位准,因此,于每次读取储存于被损坏的存储器单元的数据时,存储器控制器110都可能得到不同的数值。如此一来,便无法利用此笔数据反向推导出被遗失的有效数据内容。
因此,为了确保保护资讯系根据未受损坏的数据(即,正确的数据)被产生,存储器控制器的工作排程通常被设计为在确定数据已成功被写入存储器装置,且数据未发生错误或未被损坏,或者得知正确的数据的资讯后,才开始根据被写入存储器装置的正确数据计算出对应的保护资讯。
然而,上述工作排程将大幅折损存储器装置120的写入效率。举例而言,缓冲存储器116必须保留自主机装置130接收的数据直到数据保护引擎115产生该数据所对应的保护资讯。因此,必须于数据保护引擎115产生保护资讯后,缓冲存储器116的对应储存空间才能被清除并再用来储存下一笔主机装置130写入的数据。如此一来,缓冲存储器116的空间利用率与存储器装置120的写入效率都无法提升。
为解决上述问题,本发明提出一种新颖的数据处理方法,可有效地保护存储器装置所储存的数据,并且可藉由新颖的工作排程使得缓冲存储器116的空间利用率与存储器装置120的写入效率可大幅提升。
图2是显示根据本发明的一实施例所述的数据处理方法流程图。本发明的数据处理方法可由存储器控制器110或存储器控制器所包含之一或多个元件执行,并包含以下步骤:
步骤S202:自主机装置130接收数据,并且将数据写入(暂存于)缓冲存储器116。
步骤S204:于数据被写入缓冲存储器116后,驱动数据保护引擎115执行该数据所对应的一数据保护操作,以及驱动存储器接口114执行该数据所对应的一数据写入操作。
步骤S206:根据该数据所对应的该数据写入操作的相关资讯判断于产生该数据所对应的该保护资讯时是否需排除该数据的一部分。若是,则执行步骤S208。若否,则执行步骤S210。
步骤S208:自保护资讯去除该数据的该部分的相关内容以重新产生保护资讯,并将重新产生的保护资讯写入存储器装置120。
步骤S210:将保护资讯写入存储器装置120。
根据本发明的一实施例,主机接口118系用以将自主机装置130接收的数据写入缓冲存储器116,并且于数据被写入缓冲存储器116后,主机接口118可发出一缓冲存储器写入完成通知,用以通知微处理器112数据已被写入缓冲存储器116。
响应于接收自主机接口118的缓冲存储器写入完成通知,微处理器112可驱动数据保护引擎115对该笔数据执行对应的一数据保护操作,用以根据储存于缓冲存储器116的该笔数据产生对应的保护资讯。
根据本发明的一实施例,微处理器112可藉由缓冲存储器写入完成通知得知该笔数据已被写入缓冲存储器116,并且于微处理器112确认该笔数据已被写入缓冲存储器116后,便可直接触发数据保护操作。换言之,存储器控制器于数据被写入缓冲存储器116后可直接执行对应的一数据保护操作,用以根据储存于缓冲存储器116的数据产生对应的保护资讯。根据本发明的一实施例,所述的直接执行对应的保护操作系指数据保护引擎115于储存于缓冲存储器116的数据被写入存储器装置120前便开始执行数据保护操作。
此外,响应于接收自主机接口118的缓冲存储器写入完成通知,微处理器112亦可驱动存储器接口114对该笔数据执行对应的一数据写入操作,用以将储存于缓冲存储器116的该数据写入存储器装置120。
根据本发明的一实施例,响应于前述缓冲存储器写入完成通知,微处理器112可同时或近乎同时驱动数据保护引擎115执行该笔数据所对应的数据保护操作以及驱动存储器接口114执行该笔数据所对应的数据写入操作。举例而言,微处理器112可于同一时间点发出对应的指令,用以驱动数据保护引擎115与存储器接口114执行前述对应的操作。或者,微处理器112可于时间差极小的不同时间点发出对应的指令,而微处理器112发出用以驱动数据保护引擎115与存储器接口114执行前述对应的操作的指令的时间差可小于一既定数值或小于一既定数量的时脉脉冲。其中,用以触发数据保护操作的指令可早于或晚于用以触发数据写入操作的指令。
此外,于本发明的一实施例中,微处理器112可于该笔数据所对应的数据写入操作完成前驱动数据保护引擎115执行该笔数据所对应的数据保护操作。于本发明的另一实施例中,微处理器112可于该笔数据所对应的数据保护操作完成前驱动存储器接口114执行该笔数据所对应的数据写入操作。
值得注意的是,于本发明的其他实施例中,微处理器112亦可于具有显著时间差的不同时间点发出对应的指令,用以驱动数据保护引擎115与存储器接口114执行前述对应的操作。
此外,根据本发明的一实施例,数据保护引擎115执行一笔数据所对应的数据保护操作的执行时间与存储器接口114执行同一笔数据所对应的数据写入操作的执行时间重迭。如此一来,可有效缩短缓冲存储器116保留该笔数据的时间。
图3是显示根据本发明的一实施例所述的存储器控制器的工作排程范例,其中横轴为时间轴。于此范例中,主机装置130欲将两笔数据(主机数据)写入存储器装置120,被写入缓冲存储器116的数据310为第一笔数据,被写入缓冲存储器116的数据320为第二笔数据,其中各笔数据可包含多个部分,例如图中所示的数据D[0]~D[7]以及D[8]~D[15](如图中第一列所示)。其中数据的一个部分可包含,例如,一数据页或一既定数量的数据页。
此外,于此范例中,存储器装置120可包含八个存储器晶粒,存储器接口114可包含两个传输通道CH[0]与CH[1],而各传输通道分别耦接四个存储器晶粒,用以传输这四个存储器晶粒的数据。因此,于图中显示为耦接通道CH[0]的存储器晶粒Die[0]~Die[3]的数据处理操作,以及耦接通道CH[1]的存储器晶粒Die[0]~Die[3]的数据处理操作。在多晶粒与多通道的架构下,微处理器112可藉由适当的排程将数据透过多通道平行地写入存储器装置120,使得数据写入操作可更有效率。
于图3所示的范例中,分布于时间轴的数据长度(即,方框长度)可显示出处理该笔数据所需的相对时间。其中,图中第一列可表示出主机数据被写入缓冲存储器116的操作。图中第二列至第九列可表示出被写入缓冲存储器116的主机数据透过通道CH[0]或CH[1]传送至存储器装置120,并且被写入对应的存储器晶粒的操作。图中最末列可表示出数据保护引擎115根据主机数据产生保护资讯的操作。
如图所示,以第二列的操作为例,标示数据D[0]的方框代表通道CH[0]传输数据D[0]的操作,而填入斜线的线条代表存储器忙碌的状态。于数据D[0]被写入或编程(program)到对应的存储器晶粒Die[0]的过程中,存储器的状态为忙碌,因此,可拉起对应的一忙碌旗标,用以指示存储器忙碌的状态。待编程结束后,对应的忙碌旗标可被重置,代表存储器非忙碌状态。
此外,图中最末列显示出数据保护引擎115依序读取被写入缓冲存储器116的数据,并产生对应的保护资讯,例如,数据保护引擎115可产生第一笔数据310所对应的保护资讯315以及第二笔数据320所对应的保护资讯(因绘图字体限制未示于图中)。
根据本发明的一实施例,对于同一笔数据,微处理器112可同时或近乎同时驱动数据保护引擎115执行该笔数据所对应的数据保护操作以及驱动存储器接口114执行该笔数据所对应的数据写入操作。此外,对于储存于缓冲存储器116的同一笔数据,该笔数据所对应的数据保护操作与数据写入操作的执行时间重迭。
此外,如上所述,于自主机装置130接收的数据可包括多个部分,例如图中所示的数据D[0]~D[7]以及D[8]~D[15],微处理器112于确认各部分被写入缓冲存储器116后(例如,根据各部分所对应的缓冲存储器写入完成通知确认),便可直接驱动数据保护引擎115对该部分执行对应的数据保护操作。例如第3图中垂直方向的虚线所示,于数据D[0]~D[7]以及D[8]~D[15]被写入缓冲存储器116后,便立刻开始执行各数据所对应的数据写入操作与数据保护操作。
对于一笔数据,例如,数据310,而言,于本发明的实施例中,于将数据310写入存储器装置120的数据写入操作完成后,缓冲存储器116用于储存数据310的对应储存空间便可被释放并再用来储存下一笔主机装置130写入的数据。这是因为对于同一笔数据而言,数据保护引擎115执行数据保护操作的速度通常快于存储器接口114执行数据写入操作的速度。
如此一来,每当存储器忙碌的状态结束后,便立刻开始执行次一笔数据所对应的数据写入操作以及数据保护操作,而无须如上述因交错(不重迭)的数据写入操作与数据保护操作的执行时间,导致数据保护操作须等待数据写入操作结束,且存储器忙碌的状态结束后才能开始执行。此外,于先前技术中,待较晚被执行的数据保护操作执行完成后,才能释放缓冲存储器116的对应储存空间使得缓冲存储器116可接收下一笔主机装置130写入的数据。因而大幅折损缓冲存储器116的空间利用率与存储器装置120的写入效率。
不同于先前的设计,藉由本发明提出新颖的数据处理方法,其利用前述的工作排程可使得缓冲存储器116的空间利用率与存储器装置120的写入效率大幅提升。
由于数据保护操作于尚未确认数据已成功被写入存储器装置120时便提前被执行,因此,于本发明的实施例中,如步骤S206所示,微处理器112可更根据各数据所对应的数据写入操作的相关资讯判断数据保护引擎115于产生该数据所对应的保护资讯时是否需排除该数据的一部分。
若微处理器112于步骤S206中判断需排除该数据的一部分(例如,一或多个数据页)时,可再指示数据保护引擎115执行对应的一数据排除操作,用以将该部分的相关内容自保护资讯中去除,此结果相当于数据保护引擎115根据该数据中不包含该部分的其他部分产生对应的保护资讯。或者,微处理器112指示数据保护引擎115排除此部分后重新产生对应的保护资讯,即,数据保护引擎115可重新根据该数据中不包含该部分的其他部分产生对应的保护资讯。以上操作均可被视为重新产生保护资讯,并且其所产生的保护资讯均可被视为重新产生的保护资讯。
于本发明的实施例中,所述的数据排除操作可以是产生保护资讯的一反向操作。举例而言,当数据保护引擎115藉由执行互斥或(XOR)运算产生保护资讯时,数据排除操作可以是反向的互斥或运算。需注意的是,数据保护引擎115亦可藉由执行其他运算产生保护资讯,因此,本发明并不限于使用互斥或(XOR)运算产生保护资讯。
此外,本发明的实施例中,前述数据写入操作的相关资讯可包括存储器装置120的状态及/或被写入存储器装置120的数据的状态。
举例而言,微处理器112可检测存储器装置120于执行写入操作后回传的一状态讯息,用以得知写入操作为成功或失败。微处理器112可主动询问存储器装置120的状态并等待存储器装置120回传状态讯息。当状态讯息指示出数据的某一部分的写入操作失败时,微处理器112可决定数据保护引擎115于产生该数据所对应的保护资讯时需排除该部分,并指示数据保护引擎115排除该部分的相关内容以重新产生保护资讯。
举另一例,电压检测电路136可于检测到存储器装置发生电源电压变化(例如,电压下降、电压不稳、或存储器装置断电等)时发出一讯息通知微处理器112,使微处理器112可得知存储器装置120于执行写入操作的状态。当该状态指示出于执行数据的某一部分所对应的写入操作的过程中存储器装置120发生电源电压变化时,因不稳定的电压可能导致写入数据错误或者数据无法被写入,微处理器120可决定数据保护引擎115于产生该数据所对应的保护资讯时需排除该部分,并指示数据保护引擎115排除该部分的相关内容以重新产生保护资讯。
举又另一例,微处理器120亦可根据数据储存装置100的状态判断存储器装置120于执行写入操作的状态。若数据储存装置100于存储器装置120于执行写入操作的过程中发生突然断电,对存储器装置120而言同样是发生了发生突然断电。因突然断电可能伤及正在被写入的数据,因此当状态指示出于执行数据的某一部分所对应的写入操作的过程中存储器装置120发生突然断电,微处理器120可决定数据保护引擎115于产生该数据所对应的保护资讯时需排除该部分,并指示数据保护引擎115排除该部分的相关内容以重新产生保护资讯。
根据本发明的另一实施例,微处理器112可读取被写入存储器装置120的数据并尝试透过解码器134解码其内容,以得知是否发生数据错误(例如,错误位元过多导致解码器134无法更正其错误内容)。当被写入存储器装置120的数据的状态指示出数据的某一部分已发生错误或包含无法更正的错误时,微处理器120可决定数据保护引擎115于产生该数据所对应的保护资讯时需排除该部分,并指示数据保护引擎115排除该部分的相关内容以重新产生保护资讯。
综上所述,于本发明提出的新颖的数据处理方法中,利用前述的工作排程,使得同一笔数据所对应的数据保护操作与数据写入操作的执行时间可重迭,且数据保护操作与数据写入操作的执行可于相同时间或近乎相同的时间开始。或者,数据保护操作可于数据写入操作完成前提早开始。因数据保护操作可被提前执行,且保护资讯可于产生后再根据数据写入操作的相关资讯被调整,因此,相较于先前技术,缓冲存储器116的空间利用率与存储器装置120的写入效率可大幅提升。
以上所述仅为本发明的较佳实施例,凡依本发明申请专利范围所做的均等变化与修饰,皆应属本发明的涵盖范围。

Claims (10)

1.一种存储器控制器,耦接一存储器装置与一主机装置,用以控制该存储器装置的存取操作,包括:
一缓冲存储器;
一主机接口,耦接该主机装置,用以将自该主机装置接收的数据写入该缓冲存储器,并且于该数据被写入该缓冲存储器后,发出一缓冲存储器写入完成通知;
一微处理器,响应于该缓冲存储器写入完成通知触发一数据保护操作;
一数据保护引擎,用以根据储存于该缓冲存储器的该数据执行该数据保护操作以产生对应的保护资讯;以及
一存储器接口,耦接该存储器装置,
其中该微处理器于确认该数据被写入该缓冲存储器后直接触发该数据保护操作;
响应于该缓冲存储器写入完成通知,该微处理器还驱动该存储器接口执行一数据写入操作,于该数据写入操作,该存储器接口将储存于该缓冲存储器的该数据写入该存储器装置;
该微处理器还根据该数据所对应的该数据写入操作判断该数据保护引擎于产生该数据所对应的该保护资讯时是否需排除该数据的一部分,并且当该微处理器判断于产生该数据所对应的该保护资讯时需排除该数据的一部分时,该微处理器还指示该数据保护引擎自该保护资讯去除该数据的该部分的相关内容。
2.如权利要求1所述的存储器控制器,其特征在于,自该主机装置接收的该数据包括多个部分,于确认各部分被写入该缓冲存储器后,该微处理器直接驱动该数据保护引擎对该部分执行对应的该数据保护操作。
3.如权利要求1所述的存储器控制器,其特征在于,该微处理器响应于该缓冲存储器写入完成通知同时驱动该数据保护引擎执行该数据保护操作以及驱动该存储器接口执行该数据写入操作。
4.如权利要求1所述的存储器控制器,其特征在于,该数据所对应的该数据保护操作的执行时间与该数据所对应的该数据写入操作的执行时间重迭。
5.如权利要求1所述的存储器控制器,其特征在于,该微处理器于该数据所对应的该数据写入操作完成前驱动该数据保护引擎执行该数据所对应的该数据保护操作。
6.一种数据处理方法,由耦接一存储器装置的一存储器控制器所执行,包括:
将自一主机装置接收的数据写入该存储器控制器的一缓冲存储器;
于该数据被写入该缓冲存储器后直接执行一数据保护操作,用以根据储存于该缓冲存储器的该数据产生对应的保护资讯;
于该数据被写入该缓冲存储器后执行一数据写入操作,用以将储存于该缓冲存储器的该数据写入该存储器装置;
根据该数据所对应的该数据写入操作判断于产生该数据所对应的该保护资讯时是否需排除该数据的一部分;以及
当判断于产生该数据所对应的该保护资讯时需排除该数据的一部分时,执行一数据排除操作,用以将该部分的相关内容自该保护资讯中去除。
7.如权利要求6所述的数据处理方法,其特征在于,自该主机装置接收的该数据包括多个部分,该存储器控制器的一数据保护引擎于各部分被写入该缓冲存储器后直接被驱动用以对该部分执行对应的该数据保护操作。
8.如权利要求6所述的数据处理方法,其特征在于,该数据所对应的该数据保护操作与该数据所对应的该数据写入操作是同时被执行。
9.如权利要求6所述的数据处理方法,其特征在于,该数据所对应的该数据保护操作的执行时间与该数据所对应的该数据写入操作的执行时间重迭。
10.如权利要求6所述的数据处理方法,其特征在于,该数据所对应的该数据保护操作系于该数据所对应的该数据写入操作完成前被执行。
CN202010547894.1A 2020-05-26 2020-06-16 数据储存装置与数据处理方法 Active CN113722144B (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
TW109117419 2020-05-26
TW109117419A TWI755739B (zh) 2020-05-26 2020-05-26 記憶體控制器與資料處理方法

Publications (2)

Publication Number Publication Date
CN113722144A CN113722144A (zh) 2021-11-30
CN113722144B true CN113722144B (zh) 2023-08-22

Family

ID=78672261

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202010547894.1A Active CN113722144B (zh) 2020-05-26 2020-06-16 数据储存装置与数据处理方法

Country Status (3)

Country Link
US (1) US11656791B2 (zh)
CN (1) CN113722144B (zh)
TW (1) TWI755739B (zh)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TWI806628B (zh) * 2022-05-25 2023-06-21 瑞昱半導體股份有限公司 固態硬碟控制器與電路控制器
TWI824885B (zh) * 2022-12-15 2023-12-01 慧榮科技股份有限公司 資料儲存裝置與錯誤回復執行方法
TWI826216B (zh) * 2022-12-29 2023-12-11 瑞昱半導體股份有限公司 記憶體控制系統與記憶體控制方法

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102486757A (zh) * 2010-12-06 2012-06-06 群联电子股份有限公司 存储器储存装置及其存储器控制器与回应主机指令的方法
CN102681944A (zh) * 2010-12-22 2012-09-19 三星电子株式会社 数据存储装置以及相关的操作方法
CN104252317A (zh) * 2013-06-26 2014-12-31 群联电子股份有限公司 数据写入方法、存储器控制器与存储器存储装置
CN107402725A (zh) * 2017-03-20 2017-11-28 威盛电子股份有限公司 非易失性存储装置及其数据去重复方法
CN108572798A (zh) * 2017-03-10 2018-09-25 三星电子株式会社 针对快速数据传输执行监听操作的存储装置及其方法
CN109213440A (zh) * 2017-07-03 2019-01-15 三星电子株式会社 存储器系统、存储器控制器及其操作方法

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP5346354B2 (ja) * 2011-05-17 2013-11-20 シャープ株式会社 不揮発性半導体記憶装置
US10613985B2 (en) * 2017-07-06 2020-04-07 Seagate Technology Llc Buffer management in a data storage device wherein a bit indicating whether data is in cache is reset after updating forward table with physical address of non-volatile memory and jettisoning the data from the cache
CN109669800B (zh) * 2017-10-13 2023-10-20 爱思开海力士有限公司 用于写入路径错误的高效数据恢复
KR102490104B1 (ko) * 2017-10-30 2023-01-19 삼성전자주식회사 데이터 보호를 사용하는 인-밴드 메모리에 액세스하기 위한 장치 및 방법
KR102536637B1 (ko) * 2018-03-29 2023-05-26 에스케이하이닉스 주식회사 메모리 컨트롤러 및 그 동작 방법
US11481118B2 (en) * 2019-01-11 2022-10-25 Marvell Asia Pte, Ltd. Storage media programming with adaptive write buffer release

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102486757A (zh) * 2010-12-06 2012-06-06 群联电子股份有限公司 存储器储存装置及其存储器控制器与回应主机指令的方法
CN102681944A (zh) * 2010-12-22 2012-09-19 三星电子株式会社 数据存储装置以及相关的操作方法
CN104252317A (zh) * 2013-06-26 2014-12-31 群联电子股份有限公司 数据写入方法、存储器控制器与存储器存储装置
CN108572798A (zh) * 2017-03-10 2018-09-25 三星电子株式会社 针对快速数据传输执行监听操作的存储装置及其方法
CN107402725A (zh) * 2017-03-20 2017-11-28 威盛电子股份有限公司 非易失性存储装置及其数据去重复方法
CN109213440A (zh) * 2017-07-03 2019-01-15 三星电子株式会社 存储器系统、存储器控制器及其操作方法

Also Published As

Publication number Publication date
TWI755739B (zh) 2022-02-21
TW202145004A (zh) 2021-12-01
CN113722144A (zh) 2021-11-30
US20210373800A1 (en) 2021-12-02
US11656791B2 (en) 2023-05-23

Similar Documents

Publication Publication Date Title
US8175012B2 (en) Decoding/encoding method for booting from a NAND flash and system thereof
CN113722144B (zh) 数据储存装置与数据处理方法
US8650463B2 (en) Solid state drive and method of controlling an error thereof
KR101826051B1 (ko) 비휘발성 메모리 장치의 제어 방법 및 비휘발성 메모리 시스템
US9602134B2 (en) Operating method of error correction code decoder and memory controller including the error correction code decoder
CN109284202B (zh) 控制器及其操作方法
KR101491943B1 (ko) 트랜잭션 로그 복구
KR102571747B1 (ko) 데이터 저장 장치 및 그것의 동작 방법
US8074148B2 (en) Memory management method and controller for non-volatile memory storage device
CN112068778B (zh) 用于保持从存储阵列中读取的数据的完整性的方法和设备
TWI802324B (zh) 異常斷電恢復方法、記憶體控制電路單元以及記憶體儲存裝置
KR20170012006A (ko) 메모리 컨트롤러와 이를 포함하는 메모리 시스템
CN110069362B (zh) 数据储存装置与数据处理方法
US11995224B2 (en) Data storage device and data processing method
US11662940B2 (en) Data storage device and data processing method for restoring MLC/TLC memory to avoid degradation of access performance of a memory device caused by word line short
CN113094307B (zh) 映射信息管理方法、存储器存储装置及存储器控制器
US11294598B2 (en) Storage devices having minimum write sizes of data
CN114981784A (zh) 用于控制数据储存装置之方法及相关闪存控制器
US20230185667A1 (en) Memory controller and data processing method
CN113703684B (zh) 基于raid的数据存储方法、数据读取方法及存储器系统
US11928353B2 (en) Multi-page parity data storage in a memory device
CN117992282A (zh) 异常断电后的编码方法和存储器存储装置
CN113595561A (zh) 一种混合解码方法、存储装置控制器及存储系统
CN114637630A (zh) 异常断电恢复方法、存储器控制器及存储器存储装置

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant