CN109857584B - 于记忆装置进行访问控制的方法、记忆装置和其控制器 - Google Patents

于记忆装置进行访问控制的方法、记忆装置和其控制器 Download PDF

Info

Publication number
CN109857584B
CN109857584B CN201810458828.XA CN201810458828A CN109857584B CN 109857584 B CN109857584 B CN 109857584B CN 201810458828 A CN201810458828 A CN 201810458828A CN 109857584 B CN109857584 B CN 109857584B
Authority
CN
China
Prior art keywords
fault
read
tolerant
memory
symbols
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
CN201810458828.XA
Other languages
English (en)
Other versions
CN109857584A (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 CN109857584A publication Critical patent/CN109857584A/zh
Application granted granted Critical
Publication of CN109857584B publication Critical patent/CN109857584B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

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/0638Organizing or formatting or addressing of data
    • G06F3/0644Management of space entities, e.g. partitions, extents, pools
    • 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
    • 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/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • G06F3/0659Command handling arrangements, e.g. command buffers, queues, command scheduling
    • 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
    • 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/0683Plurality of storage devices
    • G06F3/0688Non-volatile semiconductor memory arrays
    • 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/0683Plurality of storage devices
    • G06F3/0689Disk arrays, e.g. RAID, JBOD
    • 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

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)
  • Quality & Reliability (AREA)
  • Computer Security & Cryptography (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)

Abstract

本发明公开了用来于一记忆装置中进行存取控制的方法以及相关的记忆装置及其控制器。所述方法可包含:依据至少一预定排列型样,分别将多组符元写入一存储器的多个存储区,作为多个容错式磁盘阵列群组;以及利用所述记忆装置中的一容错式磁盘阵列引擎电路进行涉及数据保护的多个运作,例如:决定对应于所述至少一预定排列型样的一系列读取型样;依据所述系列读取型样中的一读取型样,从所述多个容错式磁盘阵列群组中的每一容错式磁盘阵列群组读取多个符元;以及对所述多个符元进行互斥或运作,以将所述多个符元转换成至少一互斥或结果。本发明能使所述控制器于进行数据保护时妥善地进行存取控制,以在硬件资源有限的状况下提升记忆装置的效能。

Description

于记忆装置进行访问控制的方法、记忆装置和其控制器
技术领域
本发明涉及闪存(Flash memory)的存取(access),尤其涉及一种用来于一记忆装置中进行存取控制的方法以及相关的记忆装置及其控制器。
背景技术
近年来由于存储器的技术不断地发展,各种可携式或非可携式记忆装置(例如:符合SD/MMC、CF、MS、XD或UFS标准的记忆卡;又例如:固态硬盘;又例如:符合UFS或EMMC规格的嵌入式(embedded)存储装置)被广泛地实施于诸多应用中。因此,这些记忆装置中的存储器的存取控制遂成为相当热门的议题。
以常用的NAND型闪存而言,其主要可区分为单阶细胞(single level cell,SLC)与多阶细胞(multiple level cell,MLC)两大类的闪存。单阶细胞闪存中的每个被当作记忆细胞(memory cell)的晶体管只有两种电荷值,分别用来表示逻辑值0与逻辑值1。另外,多阶细胞闪存中的每个被当作记忆单元的晶体管的存储能力则被充分利用,是采用较高的电压来驱动,以通过不同级别的电压在一个晶体管中记录至少两组位信息(诸如00、01、11、10);理论上,多阶细胞闪存的记录密度可以达到单阶细胞闪存的记录密度的至少两倍,这对于曾经在发展过程中遇到瓶颈的NAND型闪存的相关产业而言,是非常好的消息。
相较于单阶细胞闪存,由于多阶细胞闪存的价格较便宜,并且在有限的空间里可提供较大的容量,故多阶细胞闪存很快地成为市面上的记忆装置竞相采用的主流。然而,多阶细胞闪存的不稳定性所导致的问题也一一浮现。为了确保记忆装置对闪存的存取控制能符合相关规范,闪存的控制器通常备有某些管理机制以妥善地管理数据的存取。
依据现有技术,有了这些管理机制的记忆装置还是有不足之处。例如:因应某些类型的数据保护需求,硬件架构可能变得复杂;又例如:因应某些类型的数据保护需求,大量的数据存取可导致记忆装置的整体效能降低。因此,需要一种新颖的方法及相关架构,以在没有副作用或较不可能带来副作用的状况下提升记忆装置的效能。
发明内容
本发明的一目的在于公开一种用来于一记忆装置中进行存取控制的方法以及相关的记忆装置及其控制器,以解决上述问题。
本发明的另一目的在于公开一种用来于一记忆装置中进行存取控制的方法以及相关的记忆装置及其控制器,以在没有副作用或较不可能带来副作用的状况下达到记忆装置的优化(optimal)效能。
本发明的至少一实施例公开一种用来于一记忆装置中进行存取控制的方法,其中所述记忆装置包含一非挥发性存储器(non-volatile memory,NV memory),且所述非挥发性存储器包含至少一非挥发性存储器组件(NV memory element)。所述方法可包含:依据至少一预定排列型样,分别将多组符元写入一存储器的多个存储区,作为多个容错式磁盘阵列(Redundant Array of Independent Disks,RAID)群组,以供进行于存取(access)所述非挥发性存储器时的数据保护,其中所述存储器是挥发性存储器(volatile memory)、且位于所述记忆装置中;利用所述记忆装置中的一容错式磁盘阵列引擎电路决定对应于所述至少一预定排列型样的一系列读取型样,其中所述存储器是用来提供存储空间给所述容错式磁盘阵列引擎电路;利用所述容错式磁盘阵列引擎电路依据所述系列读取型样中的一读取型样,从所述多个容错式磁盘阵列群组中的每一容错式磁盘阵列群组读取多个符元;以及利用所述容错式磁盘阵列引擎电路对所述多个符元进行互斥或(exclusive-OR,XOR)运作,以将所述多个符元转换成对应于所述容错式磁盘阵列群组的至少一互斥或结果,其中所述至少一互斥或结果是用来进行数据保护。
本发明的至少一实施例公开一种记忆装置,其可包含:一非挥发性存储器,用来存储信息,其中所述非挥发性存储器包含至少一非挥发性存储器组件;以及一控制器,耦接至所述非挥发性存储器,用来控制所述记忆装置的运作。所述控制器可包含一控制逻辑电路,所述控制逻辑电路是耦接至所述非挥发性存储器,且可用来控制所述非挥发性存储器,其中所述控制逻辑电路包含:一容错式磁盘阵列引擎电路,用来进行数据保护;以及一存储器,用来提供存储空间给所述容错式磁盘阵列引擎电路,其中所述存储器是挥发性存储器。所述控制器可另包含一处理电路,而所述处理电路是耦接至所述控制逻辑电路,且可依据来自一主装置的一指令控制所述控制器,以容许所述主装置通过所述控制器存取所述非挥发性存储器。例如,在所述处理电路的控制下,所述控制器可进行下列运作:依据至少一预定排列型样,分别将多组符元写入所述存储器的多个存储区,作为多个容错式磁盘阵列群组,以供进行于存取所述非挥发性存储器时的数据保护;利用所述容错式磁盘阵列引擎电路决定对应于所述至少一预定排列型样的一系列读取型样;利用所述容错式磁盘阵列引擎电路依据所述系列读取型样中的一读取型样,从所述多个容错式磁盘阵列群组中的每一容错式磁盘阵列群组读取多个符元;以及利用所述容错式磁盘阵列引擎电路对所述多个符元进行互斥或运作,以将所述多个符元转换成对应于所述容错式磁盘阵列群组的至少一互斥或结果,其中所述至少一互斥或结果是用来进行数据保护。
本发明的至少一实施例公开一种记忆装置的控制器,其中所述记忆装置包含所述控制器与一非挥发性存储器,且所述非挥发性存储器包含至少一非挥发性存储器组件。所述控制器可包含一控制逻辑电路,所述控制逻辑电路是耦接至所述非挥发性存储器,且可用来控制所述非挥发性存储器,其中所述控制逻辑电路包含:一容错式磁盘阵列引擎电路,用来进行数据保护;以及一存储器,用来提供存储空间给所述容错式磁盘阵列引擎电路,其中所述存储器是挥发性存储器。所述控制器可另包含一处理电路,而所述处理电路是耦接至所述控制逻辑电路,且可依据来自一主装置的一指令控制所述控制器,以容许所述主装置通过所述控制器存取所述非挥发性存储器。例如,在所述处理电路的控制下,所述控制器可进行下列运作:依据至少一预定排列型样,分别将多组符元写入所述存储器的多个存储区,作为多个容错式磁盘阵列群组,以供进行于存取所述非挥发性存储器时的数据保护;利用所述容错式磁盘阵列引擎电路决定对应于所述至少一预定排列型样的一系列读取型样;利用所述容错式磁盘阵列引擎电路依据所述系列读取型样中的一读取型样,从所述多个容错式磁盘阵列群组中的每一容错式磁盘阵列群组读取多个符元;以及利用所述容错式磁盘阵列引擎电路对所述多个符元进行互斥或运作,以将所述多个符元转换成对应于所述容错式磁盘阵列群组的至少一互斥或结果,其中所述至少一互斥或结果是用来进行数据保护。
本发明的好处的一是,本发明能使所述控制器于进行数据保护时妥善地进行存取控制,以在硬件资源有限的状况下提升记忆装置的效能。另外,依据本发明的实施例来实施并不会增加许多额外的成本。因此,现有技术的问题可被解决,且整体成本不会增加太多。相较于现有技术,本发明能在没有副作用或较不可能带来副作用的状况下达到记忆装置的优化效能。
附图说明
图1为依据本发明一实施例的一种记忆装置与一主装置(host device)的示意图。
图2为依据本发明一实施例的一种用来于一记忆装置中进行存取控制的方法的数据保护方案的示意图。
图3绘示所述方法于一实施例中的可组态(configurable)数据群组管理方案,其中本实施例的数据群组可包含四个容错式磁盘阵列(Redundant Array of IndependentDisks;可简称为“RAID”)群组。
图4绘示所述方法于一实施例中所使用的一RAID群组的一子群组的预定排列型样。
图5绘示所述RAID群组的另一子群组的预定排列型样。
图6绘示所述RAID群组的另一子群组的预定排列型样。
图7绘示所述RAID群组的另一子群组的预定排列型样。
图8绘示图2所示方法于一实施例中的可组态互斥或(exclusive-OR;可简称为“XOR”)控制方案。
图9绘示所述方法于另一实施例中的可组态XOR控制方案。
图10绘示所述方法于另一实施例中的可组态数据群组管理方案,其中本实施例的数据群组可包含八个RAID群组。
图11绘示所述方法于另一实施例中的可组态XOR控制方案。
图12绘示所述方法于一实施例中的工作流程。
其中,附图标记说明如下:
10 电子装置
50 主装置
100 记忆装置
110 存储器控制器
112 微处理器
112C 程序代码
112M 只读存储器
114 控制逻辑电路
114E 错误更正码电路
114R RAID引擎电路
114V 存储器
116 缓冲存储器
118 传输接口电路
120 非挥发性存储器
122-1,122-2,…,122-N 非挥发性存储器组件
200 码字
202,210,220,231 资料
230 组合数据
232 奇偶校验码
235,240 XOR结果
300 工作流程
C(0),C(1),C(2),C(3),
C(4),C(5),C(6),C(7),
C(8),C(9),C(10),C(11),
C(12),C(13),C(14),C(15),
C(0,0),C(0,1),…,C(0,256),
C(1,0),C(1,1),…,C(1,256),
C(2,0),C(2,1),…,C(2,256),
C(3,0),C(3,1),…,C(3,256),
C(4,0),C(4,1),…,C(4,256),
C(5,0),C(5,1),…,C(5,256),
C(6,0),C(6,1),…,C(6,256),
C(7,0),C(7,1),…,C(7,256),
C(8,0),C(8,1),…,C(8,256),
C(9,0),C(9,1),…,C(9,256),
C(10,0),C(10,1),…,C(10,256),
C(11 0),C(11,1),…,C(11,256),
C(12,0),C(12,1),…,C(12,256),
C(13,0),C(13,1),…,C(13,256),
C(14,0),C(14,1),…,C(14,256),
C(15,0),C(15,1),…,C(15,256) 符元
G(0),G(1),G(2),G(3),
G’(0),G’(1),G’(2),G’(3),
G’(4),G’(5),G’(6),G’(7) RAID群组
SG(0),SG(1),SG(2),SG(3),
SG’(0),SG’(1) 子群组
S30,S32,S34,S36,S38,
S40,S42,S44 步骤
U(0),U(1),U(2),U(3),
U(4),U(5),U(6),U(7),
U(8),U(9),U(10),U(11),
U(12),U(13),U(14),U(15) 存储器存取单位
具体实施方式
I.存储器系统
请参考图1,图1为依据本发明一第一实施例的一种记忆装置100与一主装置(hostdevice)50的示意图,其中电子装置10可包含主装置50与记忆装置100。例如:记忆装置100可为一可携式记忆装置(例如:符合SD/MMC、CF、MS、或XD标准的记忆卡)或固态硬盘(solidstate drive,SSD)。另外,主装置50的例子可包含(但不限于):多功能移动电话(multifunctional mobile phone)、平板计算机(tablet)、可穿戴装置(wearabledevice)、以及个人计算机(personal computer)诸如桌面计算机与膝上型计算机。依据本实施例,记忆装置100可包含一控制器诸如存储器控制器110,且可另包含一非挥发性存储器(non-volatile memory,NV memory)120,其中所述控制器是用来存取(access)非挥发性存储器120,且非挥发性存储器120是用来存储信息。非挥发性存储器120可包含多个非挥发性存储器组件(NV memory element)122-1、122-2、…与122-N,其中符号“N”可代表大于一的正整数。例如:非挥发性存储器120可为一闪存(Flash memory),而非挥发性存储器组件122-1、122-2、…与122-N可分别为多个闪存芯片(Flash memory chip)或多个闪存裸晶(Flash memory die),但本发明并不限于此。
如图1所示,存储器控制器110可包含处理电路诸如微处理器112、存储器诸如一只读存储器(read only memory,ROM)112M、控制逻辑电路114、缓冲存储器116、与传输接口电路118,其中这些组件可通过一总线彼此耦接。缓冲存储器116是以随机存取存储器(randomaccess memory,RAM)来实施。另外,本实施例的只读存储器112M是用来存储一程序代码112C,而微处理器112则用来执行程序代码112C以控制对非挥发性存储器120的存取。请注意,程序代码112C也可存储在缓冲存储器116或任何形式的存储器内。此外,控制逻辑电路114可用来控制非挥发性存储器120。控制逻辑电路114可包含多个子电路,诸如一错误更正码(Error Correction Code,ECC)电路114E、一容错式磁盘阵列(Redundant Array ofIndependent Disks;可简称为“RAID”)引擎电路114R以及一存储器114V,以同时或不同时地进行多个运作。例如:错误更正码电路114E可用来进行错误更正码编码/译码,且可包含一错误更正码编码器(ECC encoder)与一错误更正码译码器(ECC decoder),以供分别进行错误更正码编码与译码;RAID引擎电路114R可用来进行数据保护,且可包含多个RAID引擎子电路,以供分别进行涉及RAID的数据保护运作,其中所述多个RAID引擎子电路中的每一者可包含多个计算单元(例如计算电路诸如加法器、乘法器等)与多个逻辑单元(例如逻辑电路诸如逻辑闸等);以及存储器114V可提供存储空间给RAID引擎电路114R,尤其可用来作为RAID引擎电路114R的专用存储器,其中存储器114V可实施为挥发性存储器(volatilememory)诸如静态随机存取存储器(Static RAM,SRAM);但本发明不限于此。传输接口电路118可符合一特定通信标准(诸如串行高级技术附件(Serial Advanced TechnologyAttachment,SATA)标准、通用串行总线(Universal Serial Bus,USB)标准、快捷外设互联(Peripheral Component Interconnect Express,PCIE)标准或非挥发性存储器快捷(Non-Volatile Memory Express,NVME)标准)且可依据所述特定通信标准进行通信。
于本实施例中,主装置50可通过传送多个主装置指令(host command)与对应的逻辑地址予存储器控制器110来间接地存取记忆装置100中的非挥发性存储器120。存储器控制器110接收所述多个主装置指令与逻辑地址,并将所述多个主装置指令分别转译成存储器操作指令(简称操作指令),再以操作指令控制非挥发性存储器120读取、写入(write)/编程(Program)非挥发性存储器120当中特定实体地址的记忆单位(memory unit)或数据页(page),其中实体地址对应于逻辑地址。例如:存储器控制器110可产生或更新至少一逻辑对实体地址映像表(logical-to-physical address mapping table)来管理实体地址与逻辑地址之间的关系。于非挥发性存储器120中,非挥发性存储器组件122-1、122-2、…与122-N中的任一非挥发性存储器组件122-n(符号“n”可代表区间[1,N]中的任一整数)可包含多个区块(block),且所述多个区块中的一区块可包含且可记录特定数量的页,其中存储器控制器110对非挥发性存储器120进行抹除数据的运作的最小单位可为区块,而存储器控制器110对非挥发性存储器120进行写入数据的运作的最小单位可为页,但本发明不限于此。
II.对应于实时需求的存取控制
依据某些实施例,于写入时,存储器控制器110可利用所述错误更正码编码器对原始数据(诸如用户数据)进行错误更正码编码以保护所述原始数据,尤其可产生对应于所述原始数据的一码字(codeword),其中所述码字包含所述原始资料及其奇偶校验码(parity-check code);并且,于读取时,存储器控制器110可利用所述错误更正码译码器对所述码字的读出版本进行错误更正码译码,以产生读出数据,其中所述错误更正码译码器可侦测所述读出数据中的任何错误(若存在),并且可尝试进行错误更正以取得所述读出数据。
图2为依据本发明一实施例的一种用来于一记忆装置中进行存取控制的方法的数据保护方案的示意图。所述方法可应用于数据存储装置100,且可应用于所述控制器诸如存储器控制器110。包含资料202与奇偶校验码232的码字200可作为所述码字的一例。为了更好的理解,数据202的多个子集合可包含数据210、220与231,且数据231与奇偶校验码232的组合可视为组合数据230。数据210、数据220、组合数据230中的每一者的数据量可为64KB(kilobyte;千位组),资料231与奇偶校验码232的资料量可分别为60KB与4KB,且互斥或(exclusive-OR;简称为“XOR”)结果235与240中的每一者的资料量可为64KB,但本发明不限于此。依据本实施例,于写入时,存储器控制器110可利用RAID引擎电路114R(例如其内的至少一RAID引擎子电路)对数据210与220进行XOR运作以产生XOR结果235、以及对组合数据230与XOR结果235进行XOR运作以产生XOR结果240,以保护码字200,其中这些XOR运作可为位互斥或(bitwise XOR;简称为“位XOR”)运作。
举例来说,非挥发性存储器120的编程失败范围(programing fail range)可为64KB(或其它大小),且存储器114V可包含一存储区,其大小可和所述编程失败范围的大小相同。于编程数据210的期间,RAID引擎电路114R可将数据210暂时地存储于所述存储区。当数据210的编程失败发生时,RAID引擎电路114R可直接将所述存储区中的数据210编程至非挥发性存储器120。另外,于编程数据220的期间,RAID引擎电路114R可将所述存储区中的数据210逐位地(bit by bit)更新为XOR结果235。当数据220的编程失败发生时,RAID引擎电路114R可对数据210与XOR结果235进行XOR运作,尤其可逐位地将数据210与XOR结果235转换为数据220,以将数据220编程至非挥发性存储器120。此外,于编程组合数据230的期间,RAID引擎电路114R可将所述存储区中的XOR结果235逐位地更新为XOR结果240。当组合数据230的编程失败发生时,RAID引擎电路114R可对数据220与XOR结果240进行XOR运作,尤其可逐位地将数据220与XOR结果240转换为组合数据230,以将组合数据230编程至非挥发性存储器120。
请注意,非挥发性存储器120的读取失败范围(reading fail range)可异于所述编程失败范围,例如可为4KB(或其它大小)。关于通过RAID机制对码字200进行数据保护,由于所述读取失败范围和所述编程失败范围(例如分别为4KB与64KB)可彼此相异,故分别对应于写入与读取的数据保护需求(例如分别对应于64KB与4KB的数据保护)可彼此相异。存储器控制器110(例如微处理器112或RAID引擎电路114R)可进行对应于实时需求的存取控制,尤其可动态地调整RAID引擎电路114R的参数设定,使RAID引擎电路114R具有对应于目前数据保护需求(例如对应于写入的数据保护需求、或对应于读取的数据保护需求)的合适的组态。依据某些实施例,存储器控制器110(例如微处理器112或RAID引擎电路114R)可依据一或多个预定排列型样(predetermined arrangement pattern)将至少一码字(例如一或多个码字)当中的多个符元(symbol)写入一存储器诸如存储器114V,以满足各种不同类型的需求、及/或符合各种不同类型的组态,使存储器控制器110于进行数据保护(诸如RAID数据保护)时具备极佳的效能。
图3绘示所述方法于一实施例中的可组态(configurable)数据群组管理方案。例如:本实施例的数据群组可包含四个RAID群组G(0)、G(1)、G(2)与G(3),且可分别存储于存储器114V中的相对应的数据群组存储区,其中RAID群组G(0)、G(1)、G(2)与G(3)中的每一数据群组的数据量可为64KB或大约64KB,但本发明不限于此。存储器114V可包含多个存储器组件,诸如16个存储器存取单位{U(0),U(1),U(2),U(3),U(4),U(5),U(6),U(7),U(8),U(9),U(10),U(11),U(12),U(13),U(14),U(15)},其可被同时地且平行地存取。为了更好的理解,假设RAID群组G(0)、G(1)、G(2)与G(3)中的每一数据群组包含四个子群组,例如RAID群组G(0)可包含子群组SG(0)、SG(1)、SG(2)与SG(3),其中所述四个子群组的大小可彼此相同。基于所述一或多个预定排列型样,存储器控制器110(例如微处理器112或RAID引擎电路114R)可因应各种不同类型的需求、及/或符合各种不同类型的组态,迅速地读取一或多个数据群组的不同的部分,以进行数据保护。
图4至7分别绘示所述方法于一实施例中所使用的RAID群组G(0)的子群组SG(0)、SG(1)、SG(2)与SG(3)的预定排列型样。例如:群组大小可为64KB或大约64KB,存储器114V中的存储区可被区分为四个子区以供分别存储RAID群组G(0)、G(1)、G(2)与G(3),且RAID群组G(1)、G(2)与G(3)中的任一者的预定排列型样可类似或等同于RAID群组G(0)的预定排列型样。以RAID群组G(0)为例,带有索引i与j的符元C(i,j)可代表RAID群组G(0)的多个数据块(data chunk)中的第i块的第j个符元,且空白的部分可代表“不予理会”(Don't Care)。如图4至7所示,符元C(i,j)的例子可包含(但不限于):
{{C(0,0),C(0,1),…,C(0,256)},{C(1,0),C(1,1),…,C(1,256)},
{C(2,0),C(2,1),…,C(2,256)},{C(3,0),C(3,1),…,C(3,256)},
{C(4,0),C(4,1),…,C(4,256)},{C(5,0),C(5,1),…,C(5,256)},
{C(6,0),C(6,1),…,C(6,256)},{C(7,0),C(7,1),…,C(7,256)},
{C(8,0),C(8,1),…,C(8,256)},{C(9,0),C(9,1),…,C(9,256)},
{C(10,0),C(10,1),…,C(10,256)},{C(11 0),C(11,1),…,C(11,256)},
{C(12,0),C(12,1),…,C(12,256)},{C(13,0),C(13,1),…,C(13,256)},
{C(14,0),C(14,1),…,C(14,256)},{C(15,0),C(15,1),…,C(15,256)}};
其中索引i可为区间[0,15]中的任一整数,且索引j可为区间[0,256]中的任一整数,但本发明不限于此。依据某些实施例,符元C(i,j)的索引i、及/或索引j的范围可予以变化。另外,图4至7中的各种不同类型的阴影可指出预定排列型样中的符元排列的趋势,但本发明不限于此。依据某些实施例,图4至7所示的预定排列型样可予以变化。
表1
Figure BDA0001660364860000111
Figure BDA0001660364860000121
表1展示RAID引擎电路114R的相关参数的例子,但本发明不限于此。存储器控制器110可设定参数EncGrpSize(例如设定为多个预定值{D0,D1,D2,D3,D4}中的任一者)以控制RAID引擎电路114R的组态,且可通过参数EncGrpSize控制RAID引擎电路114R进行对应于参数EncGrpSize的数据保护运作。例如:当EncGrpSize=D0,一数据群组(例如RAID群组)的群组大小可等于1块(诸如所述多个数据块中的第0块{C(0,0),C(0,1),…,C(0,256)})的大小,群组索引可为区间[0,63]中的任一整数,且再折率(re-fold ratio)可等于1;当EncGrpSize=D1,一数据群组(例如RAID群组)的群组大小可等于2块(诸如所述多个数据块中的第0块{C(0,0),C(0,1),…,C(0,256)}与第1块{C(1,0),C(1,1),…,C(1,256)})的大小,群组索引可为区间[0,31]中的任一整数,且再折率可为1或2;依此类推。
依据某些实施例,一资料群组(例如RAID群组G(0)、G(2)与G(3)中的任一者,诸如RAID群组G(0))中的符元C(i,j)的索引i与j的范围的例子可包含(但不限于):
(1a).当EncGrpSize=D4,索引i可为区间[0,15]中的任一整数,且索引j可为区间[0,256]中的任一整数,如图4至7所示;
(1b).当EncGrpSize=D3,索引i可为区间[0,7]中的任一整数,且索引j可为区间[0,256]中的任一整数,如图4至5所示;
(1c).当EncGrpSize=D2,索引i可为区间[0,3]中的任一整数,且索引j可为区间[0,256]中的任一整数,如图4所示;
(1d).当EncGrpSize=D1,索引i可为区间[0,1]中的任一整数,且索引j可为区间[0,256]中的任一整数,其中在图4中凡是索引在上列区间以外的符元可被忽略;
(1e).当EncGrpSize=D0,索引i可等于0,且索引j可为区间[0,256]中的任一整数,其中在图4中凡是索引在上列区间或范围以外的符元可被忽略;
(2a).当EncGrpSize=D4,索引i可为区间[0,15]中的任一整数,且索引j可为区间[0,255]中的任一整数,其中在图4至7中凡是索引在上列区间以外的符元可被忽略;
(2b).当EncGrpSize=D3,索引i可为区间[0,7]中的任一整数,且索引j可为区间[0,255]中的任一整数,其中在图4至5中凡是索引在上列区间以外的符元可被忽略;
(2c).当EncGrpSize=D2,索引i可为区间[0,3]中的任一整数,且索引j可为区间[0,255]中的任一整数,其中在图4中凡是索引在上列区间以外的符元可被忽略;
(2d).当EncGrpSize=D1,索引i可为区间[0,1]中的任一整数,且索引j可为区间[0,255]中的任一整数,其中在图4中凡是索引在上列区间以外的符元可被忽略;以及
(2e).当EncGrpSize=D0,索引i可等于0,且索引j可为区间[0,255]中的任一整数,其中在图4中凡是索引在上列区间或范围以外的符元可被忽略。
图8绘示图2所示方法于一实施例中的可组态XOR控制方案,其中于采用图3所示的可组态数据群组管理方案时,存储器控制器110可同时采用图8所示的可组态XOR控制方案。假设再折率等于16,且16个存储器存取单位{U(0),U(1),U(2),U(3),U(4),U(5),U(6),U(7),U(8),U(9),U(10),U(11),U(12),U(13),U(14),U(15)}被同时地读取。存储器控制器110(例如微处理器112)可利用RAID引擎电路114R同时地读取多个符元(诸如16个符元)作为符元{C(0),C(1),C(2),C(3),C(4),C(5),C(6),C(7),C(8),C(9),C(10),C(11),C(12),C(13),C(14),C(15)},且可立即对{C(0),C(1),C(2),C(3),C(4),C(5),C(6),C(7),C(8),C(9),C(10),C(11),C(12),C(13),C(14),C(15)}进行位XOR运作,以进行数据保护。例如:于第0个循环(cycle),RAID引擎电路114R可读取符元{C(0,0),C(7,0),C(6,0),C(5,0),C(4,0),C(3,0),C(2,0),C(1,0),C(8,0),C(15,0),C(14,0),C(13,0),C(12,0),C(11,0),C(10,0),C(9,0)}作为符元{C(0),C(1),C(2),C(3),C(4),C(5),C(6),C(7),C(8),C(9),C(10),C(11),C(12),C(13),C(14),C(15)};于第1个循环,RAID引擎电路114R可读取符元{C(1,1),C(0,1),C(7,1),C(6,1),C(5,1),C(4,1),C(3,1),C(2,1),C(9,1),C(8,1),C(15,1),C(14,1),C(13,1),C(12,1),C(11,1),C(10,1)}作为符元{C(0),C(1),C(2),C(3),C(4),C(5),C(6),C(7),C(8),C(9),C(10),C(11),C(12),C(13),C(14),C(15)};依此类推。这样,RAID引擎电路114R于一系列循环(诸如第0个循环、第1个循环等)的读取型样可对应于图4至7中的各种不同类型的阴影所指出的预定排列型样。
依据某些实施例,所述再折率可予以变化,且被同时地读取的存储器存取单位的个数可予以变化。例如:再折率可等于8,且8个存储器存取单位可被同时地读取。存储器控制器110(例如微处理器112)可利用RAID引擎电路114R同时地读取所述多个符元(诸如8个符元)作为符元{C(0),C(1),C(2),C(3),C(4),C(5),C(6),C(7)},且可立即对{C(0),C(1),C(2),C(3),C(4),C(5),C(6),C(7)}进行位XOR运作,以进行数据保护。
图9绘示所述方法于另一实施例中的可组态XOR控制方案,其中于采用图3所示的可组态数据群组管理方案时,存储器控制器110可同时采用图9所示的可组态XOR控制方案。假设再折率等于8,且8个存储器存取单位(诸如存储器存取单位{U(0),U(2),U(4),U(6),U(8),U(10),U(12),U(14)}或存储器存取单位{U(1),U(3),U(5),U(7),U(9),U(11),U(13),U(15)})被同时地读取。存储器控制器110(例如微处理器112)可利用RAID引擎电路114R同时地读取所述多个符元(诸如8个符元)作为符元{C(0),C(1),C(2),C(3),C(4),C(5),C(6),C(7),C(8),C(9),C(10),C(11),C(12),C(13),C(14),C(15)}中的多组符元中的一组,诸如两组符元{C(0),C(2),C(4),C(6),C(8),C(10),C(12),C(14)}与{C(1),C(3),C(5),C(7),C(9),C(11),C(13),C(15)}中的一组,且可立即对{C(0),C(1),C(2),C(3),C(4),C(5),C(6),C(7),C(8),C(9),C(10),C(11),C(12),C(13),C(14),C(15)}进行位XOR运作,以进行数据保护。例如:于第0个循环,RAID引擎电路114R可读取符元{C(0,0),C(6,0),C(4,0),C(2,0),C(8,0),C(14,0),C(12,0),C(10,0)}作为一第一组符元诸如符元{C(0),C(2),C(4),C(6),C(8),C(10),C(12),C(14)},其中一第二组符元诸如符元{C(1),C(3),C(5),C(7),C(9),C(11),C(13),C(15)}及其XOR结果可视为“不予理会”;于第1个循环,RAID引擎电路114R可读取符元{C(0,1),C(6,1),C(4,1),C(2,1),C(8,1),C(14,1),C(12,1),C(10,1)}作为所述第二组符元诸如符元{C(1),C(3),C(5),C(7),C(9),C(11),C(13),C(15)},其中所述第一组符元诸如符元{C(0),C(2),C(4),C(6),C(8),C(10),C(12),C(14)}及其XOR结果可视为“不予理会”;依此类推。这样,RAID引擎电路114R于一系列循环(诸如第0个循环、第1个循环等)的读取型样可对应于图4至7中的各种不同类型的阴影所指出的预定排列型样。
图10绘示所述方法于另一实施例中的可组态数据群组管理方案。例如:本实施例的数据群组可包含八个RAID群组G’(0)、G’(1)、G’(2)、G’(3)、G’(4)、G’(5)、G’(6)与G’(7),且可分别存储于存储器114V中的相对应的数据群组存储区,其中RAID群组G’(0)、G’(1)、G’(2)、G’(3)、G’(4)、G’(5)、G’(6)与G’(7)中的每一数据群组的数据量可为32KB或大约32KB,但本发明不限于此。为了更好的理解,假设RAID群组G’(0)、G’(1)、G’(2)、G’(3)、G’(4)、G’(5)、G’(6)与G’(7)中的每一数据群组包含两个子群组,例如RAID群组G’(0)可包含子群组SG’(0)与SG’(1),其中所述两个子群组的大小可彼此相同,且图10中的符号“X”可代表“不予理会”。基于所述一或多个预定排列型样,存储器控制器110(例如微处理器112或RAID引擎电路114R)可因应各种不同类型的需求、及/或符合各种不同类型的组态,迅速地读取一或多个数据群组的不同的部分,以进行数据保护。
依据某些实施例,子群组SG’(0)与SG’(1)的预定排列型样可分别等同于子群组SG(0)与SG(1)的预定排列型样,诸如图4所示的预定排列型样与图5所示的预定排列型样。为了更好的理解,假设子群组SG’(0)与SG’(1)分别等同于子群组SG(0)与SG(1)。例如:群组大小可为32KB或大约32KB,存储器114V中的存储区可被区分为八个子区以供分别存储RAID群组G’(0)、G’(1)、G’(2)、G’(3)、G’(4)、G’(5)、G’(6)与G’(7),且RAID群组G’(1)、G’(2)、G’(3)、G’(4)、G’(5)、G’(6)与G’(7)中的任一者的预定排列型样可类似或等同于RAID群组G’(0)的预定排列型样。以RAID群组G’(0)为例,带有索引i与j的符元C(i,j)可代表RAID群组G’(0)的多个数据块中的第i块的第j个符元。这些实施例中的符元C(i,j)的例子可包含(但不限于):
{{C(0,0),C(0,1),…,C(0,256)},{C(1,0),C(1,1),…,C(1,256)},
{C(2,0),C(2,1),…,C(2,256)},{C(3,0),C(3,1),…,C(3,256)},
{C(4,0),C(4,1),…,C(4,256)},{C(5,0),C(5,1),…,C(5,256)},
{C(6,0),C(6,1),…,C(6,256)},{C(7,0),C(7,1),…,C(7,256)}}。
这些实施例与前述实施例相仿的内容在此不重复赘述。
图11绘示所述方法于另一实施例中的可组态XOR控制方案,其中于采用图10所示的可组态数据群组管理方案时,存储器控制器110可同时采用图11所示的可组态XOR控制方案。假设再折率等于8,且8个存储器存取单位{U(0),U(1),U(2),U(3),U(4),U(5),U(6),U(7)}被同时地读取。存储器控制器110(例如微处理器112)可利用RAID引擎电路114R同时地读取所述多个符元(诸如8个符元)作为符元{C(0),C(1),C(2),C(3),C(4),C(5),C(6),C(7)},且可立即对{C(0),C(1),C(2),C(3),C(4),C(5),C(6),C(7)}进行位XOR运作,以进行数据保护。例如:于第0个循环,RAID引擎电路114R可读取符元{C(0,0),C(7,0),C(6,0),C(5,0),C(4,0),C(3,0),C(2,0),C(1,0)}作为符元{C(0),C(1),C(2),C(3),C(4),C(5),C(6),C(7)};于第1个循环,RAID引擎电路114R可读取符元{C(1,1),C(0,1),C(7,1),C(6,1),C(5,1),C(4,1),C(3,1),C(2,1)}作为符元{C(0),C(1),C(2),C(3),C(4),C(5),C(6),C(7)};依此类推。这样,RAID引擎电路114R于一系列循环(诸如第0个循环、第1个循环等)的读取型样可对应于图4至5中的各种不同类型的阴影所指出的预定排列型样。
图12绘示所述方法于一实施例中的工作流程300。例如:在所述处理电路诸如微处理器112的控制下,所述控制器诸如存储器控制器110可进行工作流程300的运作。
于步骤S30中,存储器控制器110(例如微处理器112或RAID引擎电路114R)可依据至少一预定排列型样(例如:所述一或多个预定排列型样;可通称为“所述预定排列型样”),分别将多组符元写入所述存储器(诸如存储器114V)的多个存储区(诸如上述数据群组存储区),作为多个RAID群组,以供进行于存取非挥发性存储器120时的数据保护。依据本实施例,所述多个RAID群组可为表1的一特定列(row)中的一组群组索引所代表的RAID群组,其中所述特定列对应于指派给参数EncGrpSize的某一预定值(诸如预定值{D0,D1,D2,D3,D4}的其中之一)。例如:EncGrpSize=D4,且所述多个RAID群组可包含上述四个RAID群组G(0)、G(1)、G(2)与G(3)。又例如:EncGrpSize=D3,且所述多个RAID群组可包含上述八个RAID群组G’(0)、G’(1)、G’(2)、G’(3)、G’(4)、G’(5)、G’(6)与G’(7)。
于步骤S32中,存储器控制器110(例如RAID引擎电路114R)可依据目前需求(例如对应于写入的数据保护需求、或对应于读取的数据保护需求),决定对应于所述目前需求的再折模式,其中所述再折模式涉及RAID引擎电路114R所进行的数据保护运作。依据本实施例,所述再折模式可为表1的所述特定列中的一组再折率中的一再折率。由于参数EncGrpSize已被存储器控制器110(例如微处理器112)所预先决定且已被传送至RAID引擎电路114R,故存储器控制器110可利用RAID引擎电路114R决定对应于所述目前需求的再折模式,以达到最佳的存取效能。例如:EncGrpSize=D4,且所述再折率可为再折率{1,2,4,8,16}的其中之一。又例如:EncGrpSize=D3,且所述再折率可为再折率{1,2,4,8}的其中之一。
于步骤S34中,存储器控制器110(例如RAID引擎电路114R)可依据所述再折模式(诸如再折率),决定对应于所述预定排列型样的一系列读取型样。依据本实施例,存储器控制器110可利用RAID引擎电路114R决定对应于所述预定排列型样的所述系列读取型样。例如:EncGrpSize=D4且再折率等于16,所述预定排列型样可代表图4至7中的各种不同类型的阴影所指出的预定排列型样,且所述系列读取型样可代表RAID引擎电路114R于图8所示实施例中的所述系列循环(诸如第0个循环、第1个循环等)的读取型样。又例如:EncGrpSize=D4且再折率等于8,所述预定排列型样可代表图4至7中的各种不同类型的阴影所指出的预定排列型样,且所述系列读取型样可代表RAID引擎电路114R于图9所示实施例中的所述系列循环(诸如第0个循环、第1个循环等)的读取型样。又例如:EncGrpSize=D3且再折率等于8,所述预定排列型样可代表图4至5中的各种不同类型的阴影所指出的预定排列型样,且所述系列读取型样可代表RAID引擎电路114R于图11所示实施例中的所述系列循环(诸如第0个循环、第1个循环等)的读取型样。
于步骤S36中,存储器控制器110(例如RAID引擎电路114R)可依据所述系列读取型样中的一读取型样,从所述多个RAID群组中的每一RAID群组读取多个符元。为了更好的理解,步骤S36的读取运作的循环可视为一个读取循环(例如:图8、图9与图11分别所示的实施例中的任一者的所述系列循环(诸如第0个循环、第1个循环等)中的某一循环),且所述读取型样可代表这个读取循环的读取型样,但本发明不限于此。举例来说,上述至少一预定排列型样的符元排列可使各种不同状况的任一状况下的所述读取循环所读取的符元分布在存储器114V的所述多个存储器组件(诸如存储器存取单位{U(0),U(1),U(2),U(3),U(4),U(5),U(6),U(7),U(8),U(9),U(10),U(11),U(12),U(13),U(14),U(15)})中的不同的存储器组件,且所述读取型样可指向这些不同的存储器组件。由于所述多个存储器组件可被同时地且平行地存取,故上述任一状况下的所述读取循环所读取的符元可被同时地读取,这使得所述多个符元的读取只需要单一个循环,尤其仅在所述单一个循环(而非多个循环)中即可完成。因此,存储器控制器110(例如RAID引擎电路114R)于进行涉及RAID的数据保护时能达到极佳的效能。
于步骤S38中,存储器控制器110(例如RAID引擎电路114R)可依据所述再折模式,对所述多个符元进行位XOR运作,以将所述多个符元转换成对应于所述RAID群组的至少一XOR结果,其中上述至少一XOR结果可用来进行数据保护。
于步骤S40中,存储器控制器110(例如RAID引擎电路114R)可依据分别对应于所述多个RAID群组的多个XOR结果,进行RAID保护,以避免数据错误。例如:所述多个XOR结果可包含上述至少一XOR结果。
于步骤S42中,存储器控制器110(例如微处理器112或RAID引擎电路114R)可检查是否所述RAID群组中的全部的符元均已读取完毕,以决定是否停止或继续读取所述RAID群组。依据本实施例,当决定继续读取所述RAID群组时,存储器控制器110(例如RAID引擎电路114R)可依据所述系列读取型样中的一后续的读取型样,读取所述RAID群组中尚未被读取的符元,以供进一步数据保护。当所述RAID群组中的全部的符元均已读取完毕,进入步骤S44,以停止读取所述RAID群组;否则,进入步骤S36,以继续读取所述RAID群组。
于步骤S44中,存储器控制器110(例如微处理器112或RAID引擎电路114R)可检查是否处理完毕。例如:待处理的信息包含多个码字,且存储器控制器110可检查是否所述多个码字中的全部的码字已被处理完毕,其中所述多个码字的其中之一可包含步骤S30中所述的所述多组符元,但本发明不限于此。当处理完毕,结束工作流程300;否则,进入步骤S30。
依据本实施例,存储器控制器110(例如微处理器112或RAID引擎电路114R)可依据上述至少一预定排列型样(例如所述一或多个预定排列型样)将所述多个码字当中的多个符元写入所述存储器诸如存储器114V,以满足各种不同类型的需求、及/或符合各种不同类型的组态,使存储器控制器110于进行数据保护(诸如RAID数据保护)时具备极佳的效能。例如:步骤S32中所述的目前需求是记忆装置100的多个类型的需求(例如上述各种不同类型的需求,诸如对应于写入的数据保护需求以及对应于读取的数据保护需求)的其中之一,且存储器控制器110(例如RAID引擎电路114R)可因应所述多个类型的需求,动态地调整所述再折模式,且对应地调整所述系列读取型样。本实施例与前述实施例相仿的内容在此不重复赘述。
依据某些实施例,存储器控制器110(例如RAID引擎电路114R)可因应所述多个类型的需求,动态地调整所述系列读取型样,其中所述系列读取型样对应于涉及数据保护运作的再折模式(诸如再折率),所述数据保护运作是由RAID引擎电路114R所进行。这些实施例与前述实施例相仿的内容在此不重复赘述。
以上所述仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

Claims (20)

1.一种用来于一记忆装置中进行存取控制的方法,所述记忆装置包含一非挥发性存储器,所述非挥发性存储器包含至少一非挥发性存储器组件,所述方法的特征在于,包含有:
依据至少一预定排列型样,分别将多组符元写入一存储器的多个存储区,作为多个容错式磁盘阵列群组,以供进行于存取所述非挥发性存储器时的数据保护,其中所述存储器是挥发性存储器、且位于所述记忆装置中;
利用所述记忆装置中的一容错式磁盘阵列引擎电路决定对应于所述至少一预定排列型样的一系列读取型样,其中所述存储器是用来提供存储空间给所述容错式磁盘阵列引擎电路;
利用所述容错式磁盘阵列引擎电路依据所述系列读取型样中的一读取型样,从所述多个容错式磁盘阵列群组中的每一容错式磁盘阵列群组读取多个符元,其中所述读取型样指出多群符元中的至少一群符元的多个子集的各自的读取位置,以供用于多个读取循环中的一读取循环,并且,在所述至少一群符元的所述多个子集的所述各自的读取位置当中,所述多个子集的一第一子集的一第一读取位置和所述多个子集的一第二子集的一第二读取位置彼此互为移位的读取位置,其中在所述至少一群符元的所述多个子集的所述各自的读取位置当中的所述第一读取位置和所述第二读取位置用于所述读取循环;以及
利用所述容错式磁盘阵列引擎电路对所述多个符元进行互斥或运作,以将所述多个符元转换成对应于所述容错式磁盘阵列群组的至少一互斥或结果,其中所述至少一互斥或结果是用来进行数据保护。
2.如权利要求1所述的方法,其特征在于,所述方法另包含:
利用所述容错式磁盘阵列引擎电路依据分别对应于所述多个容错式磁盘阵列群组的多个互斥或结果,进行容错式磁盘阵列保护,以避免数据错误,其中所述多个互斥或结果包含所述至少一互斥或结果。
3.如权利要求1所述的方法,其特征在于,所述方法另包含:
检查是否所述容错式磁盘阵列群组中的全部的符元均已读取完毕,以决定是否停止或继续读取所述容错式磁盘阵列群组;以及
当决定继续读取所述容错式磁盘阵列群组时,利用所述容错式磁盘阵列引擎电路依据所述系列读取型样中的一后续的读取型样,读取所述容错式磁盘阵列群组中尚未被读取的符元,以供进一步数据保护。
4.如权利要求1所述的方法,其特征在于,所述方法另包含:
利用所述容错式磁盘阵列引擎电路依据一目前需求,决定对应于所述目前需求的一再折模式,其中所述再折模式涉及所述容错式磁盘阵列引擎电路所进行的数据保护运作;以及
利用所述容错式磁盘阵列引擎电路依据所述再折模式,决定对应于所述至少一预定排列型样的所述系列读取型样。
5.如权利要求4所述的方法,其特征在于,所述目前需求是所述记忆装置的多个类型的需求的其中之一;以及所述方法另包含:
利用所述容错式磁盘阵列引擎电路因应所述多个类型的需求,动态地调整所述再折模式,且对应地调整所述系列读取型样。
6.如权利要求1所述的方法,其特征在于,所述方法另包含:
利用所述容错式磁盘阵列引擎电路因应所述记忆装置的多个类型的需求,动态地调整所述系列读取型样,其中所述系列读取型样对应于涉及数据保护运作的一再折模式,所述数据保护运作是由所述容错式磁盘阵列引擎电路所进行。
7.如权利要求1所述的方法,其特征在于,所述存储器是所述容错式磁盘阵列引擎电路的专用存储器。
8.一种记忆装置,其特征在于,包含有:
一非挥发性存储器,用来存储信息,其中所述非挥发性存储器包含至少一非挥发性存储器组件;以及
一控制器,耦接至所述非挥发性存储器,用来控制所述记忆装置的至少一运作,其中所述控制器包含:
一控制逻辑电路,耦接至所述非挥发性存储器,用来控制所述非挥发性存储器,其中所述控制逻辑电路包含:
一容错式磁盘阵列引擎电路,用来进行数据保护;以及
一存储器,用来提供存储空间给所述容错式磁盘阵列引擎电路,其中所述存储器是挥发性存储器;以及
一处理电路,耦接至所述控制逻辑电路,用来依据来自一主装置的一指令控制所述控制器,以容许所述主装置通过所述控制器存取所述非挥发性存储器,其中在所述处理电路的控制下,所述控制器进行下列运作:
依据至少一预定排列型样,分别将多组符元写入所述存储器的多个存储区,作为多个容错式磁盘阵列群组,以供进行于存取所述非挥发性存储器时的数据保护;
利用所述容错式磁盘阵列引擎电路决定对应于所述至少一预定排列型样的一系列读取型样;
利用所述容错式磁盘阵列引擎电路依据所述系列读取型样中的一读取型样,从所述多个容错式磁盘阵列群组中的每一容错式磁盘阵列群组读取多个符元,其中所述读取型样指出多群符元中的至少一群符元的多个子集的各自的读取位置,以供用于多个读取循环中的一读取循环,并且,在所述至少一群符元的所述多个子集的所述各自的读取位置当中,所述多个子集的一第一子集的一第一读取位置和所述多个子集的一第二子集的一第二读取位置彼此互为移位的读取位置,其中在所述至少一群符元的所述多个子集的所述各自的读取位置当中的所述第一读取位置和所述第二读取位置用于所述读取循环;以及
利用所述容错式磁盘阵列引擎电路对所述多个符元进行互斥或运作,以将所述多个符元转换成对应于所述容错式磁盘阵列群组的至少一互斥或结果,其中所述至少一互斥或结果是用来进行数据保护。
9.如权利要求8所述的记忆装置,其特征在于,所述控制器利用所述容错式磁盘阵列引擎电路依据分别对应于所述多个容错式磁盘阵列群组的多个互斥或结果,进行容错式磁盘阵列保护,以避免数据错误,其中所述多个互斥或结果包含所述至少一互斥或结果。
10.如权利要求8所述的记忆装置,其特征在于,所述控制器检查是否所述容错式磁盘阵列群组中的全部的符元均已读取完毕,以决定是否停止或继续读取所述容错式磁盘阵列群组;以及当决定继续读取所述容错式磁盘阵列群组时,所述控制器利用所述容错式磁盘阵列引擎电路依据所述系列读取型样中的一后续的读取型样,读取所述容错式磁盘阵列群组中尚未被读取的符元,以供进一步数据保护。
11.如权利要求8所述的记忆装置,其特征在于,所述控制器利用所述容错式磁盘阵列引擎电路依据一目前需求,决定对应于所述目前需求的一再折模式,其中所述再折模式涉及所述容错式磁盘阵列引擎电路所进行的数据保护运作;以及所述控制器利用所述容错式磁盘阵列引擎电路依据所述再折模式,决定对应于所述至少一预定排列型样的所述系列读取型样。
12.如权利要求11所述的记忆装置,其特征在于,所述目前需求是所述记忆装置的多个类型的需求的其中之一;以及所述控制器利用所述容错式磁盘阵列引擎电路因应所述多个类型的需求,动态地调整所述再折模式,且对应地调整所述系列读取型样。
13.如权利要求8所述的记忆装置,其特征在于,所述控制器利用所述容错式磁盘阵列引擎电路因应所述记忆装置的多个类型的需求,动态地调整所述系列读取型样,其中所述系列读取型样对应于涉及数据保护运作的一再折模式,所述数据保护运作是由所述容错式磁盘阵列引擎电路所进行。
14.如权利要求8所述的记忆装置,其特征在于,所述存储器是所述容错式磁盘阵列引擎电路的专用存储器。
15.一种记忆装置的控制器,所述记忆装置包含所述控制器与一非挥发性存储器,所述非挥发性存储器包含至少一非挥发性存储器组件,所述控制器的特征在于,包含有:
一控制逻辑电路,耦接至所述非挥发性存储器,用来控制所述非挥发性存储器,其中所述控制逻辑电路包含:
一容错式磁盘阵列引擎电路,用来进行数据保护;以及
一存储器,用来提供存储空间给所述容错式磁盘阵列引擎电路,其中所述存储器是挥发性存储器;以及
一处理电路,耦接至所述控制逻辑电路,用来依据来自一主装置的一指令控制所述控制器,以容许所述主装置通过所述控制器存取所述非挥发性存储器,其中在所述处理电路的控制下,所述控制器进行下列运作:
依据至少一预定排列型样,分别将多组符元写入所述存储器的多个存储区,作为多个容错式磁盘阵列群组,以供进行于存取所述非挥发性存储器时的数据保护;
利用所述容错式磁盘阵列引擎电路决定对应于所述至少一预定排列型样的一系列读取型样;
利用所述容错式磁盘阵列引擎电路依据所述系列读取型样中的一读取型样,从所述多个容错式磁盘阵列群组中的每一容错式磁盘阵列群组读取多个符元,其中所述读取型样指出多群符元中的至少一群符元的多个子集的各自的读取位置,以供用于多个读取循环中的一读取循环,并且,在所述至少一群符元的所述多个子集的所述各自的读取位置当中,所述多个子集的一第一子集的一第一读取位置和所述多个子集的一第二子集的一第二读取位置彼此互为移位的读取位置,其中在所述至少一群符元的所述多个子集的所述各自的读取位置当中的所述第一读取位置和所述第二读取位置用于所述读取循环;以及
利用所述容错式磁盘阵列引擎电路对所述多个符元进行互斥或运作,以将所述多个符元转换成对应于所述容错式磁盘阵列群组的至少一互斥或结果,其中所述至少一互斥或结果是用来进行数据保护。
16.如权利要求15所述的控制器,其特征在于,所述控制器利用所述容错式磁盘阵列引擎电路依据分别对应于所述多个容错式磁盘阵列群组的多个互斥或结果,进行容错式磁盘阵列保护,以避免数据错误,其中所述多个互斥或结果包含所述至少一互斥或结果。
17.如权利要求15所述的控制器,其特征在于,所述控制器检查是否所述容错式磁盘阵列群组中的全部的符元均已读取完毕,以决定是否停止或继续读取所述容错式磁盘阵列群组;以及当决定继续读取所述容错式磁盘阵列群组时,所述控制器利用所述容错式磁盘阵列引擎电路依据所述系列读取型样中的一后续的读取型样,读取所述容错式磁盘阵列群组中尚未被读取的符元,以供进一步数据保护。
18.如权利要求15所述的控制器,其特征在于,所述控制器利用所述容错式磁盘阵列引擎电路依据一目前需求,决定对应于所述目前需求的一再折模式,其中所述再折模式涉及所述容错式磁盘阵列引擎电路所进行的数据保护运作;以及所述控制器利用所述容错式磁盘阵列引擎电路依据所述再折模式,决定对应于所述至少一预定排列型样的所述系列读取型样。
19.如权利要求18所述的控制器,其特征在于,所述目前需求是所述记忆装置的多个类型的需求的其中之一;以及所述控制器利用所述容错式磁盘阵列引擎电路因应所述多个类型的需求,动态地调整所述再折模式,且对应地调整所述系列读取型样。
20.如权利要求15所述的控制器,其特征在于,所述控制器利用所述容错式磁盘阵列引擎电路因应所述记忆装置的多个类型的需求,动态地调整所述系列读取型样,其中所述系列读取型样对应于涉及数据保护运作的一再折模式,所述数据保护运作是由所述容错式磁盘阵列引擎电路所进行。
CN201810458828.XA 2017-11-30 2018-05-15 于记忆装置进行访问控制的方法、记忆装置和其控制器 Active CN109857584B (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
TW106141791A TWI656442B (zh) 2017-11-30 2017-11-30 用來於一記憶裝置中進行存取控制之方法以及記憶裝置及其控制器
TW106141791 2017-11-30

Publications (2)

Publication Number Publication Date
CN109857584A CN109857584A (zh) 2019-06-07
CN109857584B true CN109857584B (zh) 2022-09-30

Family

ID=66632416

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201810458828.XA Active CN109857584B (zh) 2017-11-30 2018-05-15 于记忆装置进行访问控制的方法、记忆装置和其控制器

Country Status (3)

Country Link
US (2) US10705749B2 (zh)
CN (1) CN109857584B (zh)
TW (1) TWI656442B (zh)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TWI656442B (zh) 2017-11-30 2019-04-11 慧榮科技股份有限公司 用來於一記憶裝置中進行存取控制之方法以及記憶裝置及其控制器
US11023388B2 (en) * 2018-09-21 2021-06-01 SK Hynix Inc. Data path protection parity determination for data patterns in storage devices
TWI738359B (zh) * 2020-05-26 2021-09-01 慧榮科技股份有限公司 資料儲存裝置與資料處理方法
KR20220023476A (ko) * 2020-08-21 2022-03-02 에스케이하이닉스 주식회사 레이드 데이터 저장 장치 및 이를 포함하는 데이터 저장 시스템
TWI797905B (zh) * 2021-12-23 2023-04-01 慧榮科技股份有限公司 驅動獨立磁碟冗餘陣列引擎的裝置及方法

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0521630A2 (en) * 1991-07-03 1993-01-07 International Business Machines Corporation DASD array hierarchies
KR970049546A (ko) * 1995-12-29 1997-07-29 김영환 레이드(raid) 제어기에서의 스트라이프 기록 방법
US6460122B1 (en) * 1999-03-31 2002-10-01 International Business Machine Corporation System, apparatus and method for multi-level cache in a multi-processor/multi-controller environment
TW200502765A (en) * 2003-07-02 2005-01-16 Infortrend Technology Inc JBOD subsystem and external emulation controller thereof
TW201445429A (zh) * 2013-05-22 2014-12-01 Asmedia Technology Inc 磁碟陣列系統及資料處理方法
EP2921960A2 (en) * 2014-03-20 2015-09-23 Xyratex Technology Limited Method of, and apparatus for, accelerated data recovery in a storage system
TW201601160A (zh) * 2014-06-26 2016-01-01 三星電子股份有限公司 記憶體裝置

Family Cites Families (37)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5446855A (en) * 1994-02-07 1995-08-29 Buslogic, Inc. System and method for disk array data transfer
US5893138A (en) * 1995-10-02 1999-04-06 International Business Machines Corporation System and method for improving channel hardware performance for an array controller
US5737744A (en) * 1995-10-13 1998-04-07 Compaq Computer Corporation Disk array controller for performing exclusive or operations
US6223301B1 (en) * 1997-09-30 2001-04-24 Compaq Computer Corporation Fault tolerant memory
US6341342B1 (en) * 1997-11-04 2002-01-22 Compaq Information Technologies Group, L.P. Method and apparatus for zeroing a transfer buffer memory as a background task
JP4555029B2 (ja) * 2004-09-01 2010-09-29 株式会社日立製作所 ディスクアレイ装置
US20060123271A1 (en) * 2004-11-19 2006-06-08 International Business Machines Corporation RAID environment incorporating hardware-based finite field multiplier for on-the-fly XOR
US9052826B2 (en) 2006-07-28 2015-06-09 Condusiv Technologies Corporation Selecting storage locations for storing data based on storage location attributes and data usage statistics
US7831768B2 (en) * 2006-11-03 2010-11-09 Hewlett-Packard Development Company, L.P. Method and apparatus for writing data to a disk array
US8161353B2 (en) 2007-12-06 2012-04-17 Fusion-Io, Inc. Apparatus, system, and method for validating that a correct data segment is read from a data storage device
US20090222509A1 (en) 2008-02-29 2009-09-03 Chao King System and Method for Sharing Storage Devices over a Network
CN101567211A (zh) * 2009-05-27 2009-10-28 杭州华三通信技术有限公司 一种提高磁盘可用性的方法和磁盘阵列控制器
US8266501B2 (en) * 2009-09-29 2012-09-11 Micron Technology, Inc. Stripe based memory operation
JP5388976B2 (ja) * 2010-09-22 2014-01-15 株式会社東芝 半導体記憶制御装置
US8478938B2 (en) * 2010-10-28 2013-07-02 Lsi Corporation Performing data writes in parity protected redundant storage arrays
KR101774496B1 (ko) * 2010-12-08 2017-09-05 삼성전자주식회사 비휘발성 메모리 장치, 이를 포함하는 장치들, 및 이의 동작 방법
JP2012185687A (ja) * 2011-03-07 2012-09-27 Fujitsu Ltd 制御装置、制御方法およびストレージ装置
US8886881B2 (en) * 2011-05-24 2014-11-11 International Business Machines Corporation Implementing storage adapter performance optimization with parity update footprint mirroring
US9560133B2 (en) * 2011-06-06 2017-01-31 International Business Machines Corporation Acquiring multi-media content
KR101801147B1 (ko) * 2011-08-30 2017-11-27 삼성전자주식회사 데이터 신뢰성을 개선하는 데이터 관리 방법 및 그에 따른 데이터 저장 장치
TWI518507B (zh) * 2011-09-08 2016-01-21 喬鼎資訊股份有限公司 包含備份記憶體之資料儲存系統及其管理方法
US8959420B1 (en) * 2012-12-19 2015-02-17 Datadirect Networks, Inc. Data storage system and method for data migration between high-performance computing architectures and data storage devices using memory controller with embedded XOR capability
US9639457B1 (en) * 2012-12-20 2017-05-02 Datadirect Networks, Inc. Data storage system and method for data migration between high-performance computing architectures and data storage devices using storage controller with distributed XOR capability
WO2014170984A1 (ja) * 2013-04-18 2014-10-23 株式会社日立製作所 ストレージシステム及び記憶制御方法
US20150089328A1 (en) * 2013-09-23 2015-03-26 Futurewei Technologies, Inc. Flex Erasure Coding of Controllers of Primary Hard Disk Drives Controller
CN103631671B (zh) * 2013-11-19 2016-05-04 无锡众志和达数据计算股份有限公司 一种ssd存储器的数据保护方法及控制器
CN104881244B (zh) * 2014-05-28 2018-02-09 陈杰 存储系统及其数据保护方法
US9830220B1 (en) * 2014-09-29 2017-11-28 EMC IP Holding Company LLC Enhanced error recovery for data storage drives
WO2016051512A1 (ja) * 2014-09-30 2016-04-07 株式会社日立製作所 分散型ストレージシステム
US10528272B2 (en) * 2015-02-20 2020-01-07 International Business Machines Corporation RAID array systems and operations using mapping information
US9715436B2 (en) * 2015-06-05 2017-07-25 Dell Products, L.P. System and method for managing raid storage system having a hot spare drive
US10120751B2 (en) * 2015-09-25 2018-11-06 Intel Corporation Techniques to recover data using exclusive OR (XOR) parity information
US20170115900A1 (en) * 2015-10-23 2017-04-27 International Business Machines Corporation Dummy page insertion for flexible page retirement in flash memory storing multiple bits per memory cell
US9959168B2 (en) * 2016-03-04 2018-05-01 Sandisk Technologies Llc ECC and RAID-type decoding
TWI659423B (zh) * 2016-04-27 2019-05-11 慧榮科技股份有限公司 快閃記憶體裝置及快閃記憶體儲存管理方法
US10365967B2 (en) * 2017-08-23 2019-07-30 Toshiba Memory Corporation On the fly raid parity calculation
TWI656442B (zh) 2017-11-30 2019-04-11 慧榮科技股份有限公司 用來於一記憶裝置中進行存取控制之方法以及記憶裝置及其控制器

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0521630A2 (en) * 1991-07-03 1993-01-07 International Business Machines Corporation DASD array hierarchies
KR970049546A (ko) * 1995-12-29 1997-07-29 김영환 레이드(raid) 제어기에서의 스트라이프 기록 방법
US6460122B1 (en) * 1999-03-31 2002-10-01 International Business Machine Corporation System, apparatus and method for multi-level cache in a multi-processor/multi-controller environment
TW200502765A (en) * 2003-07-02 2005-01-16 Infortrend Technology Inc JBOD subsystem and external emulation controller thereof
TW201445429A (zh) * 2013-05-22 2014-12-01 Asmedia Technology Inc 磁碟陣列系統及資料處理方法
EP2921960A2 (en) * 2014-03-20 2015-09-23 Xyratex Technology Limited Method of, and apparatus for, accelerated data recovery in a storage system
TW201601160A (zh) * 2014-06-26 2016-01-01 三星電子股份有限公司 記憶體裝置

Also Published As

Publication number Publication date
TW201926042A (zh) 2019-07-01
US10705749B2 (en) 2020-07-07
CN109857584A (zh) 2019-06-07
TWI656442B (zh) 2019-04-11
US11294589B2 (en) 2022-04-05
US20200285411A1 (en) 2020-09-10
US20190163571A1 (en) 2019-05-30

Similar Documents

Publication Publication Date Title
CN109857584B (zh) 于记忆装置进行访问控制的方法、记忆装置和其控制器
US9135112B2 (en) Policy for read operations addressing on-the-fly decoding failure in non-volatile memory
TWI455136B (zh) 用來進行資料整形之方法以及相關之記憶裝置及其控制器
US8719491B2 (en) Encoding flash memory data with a randomizer using different seeds for different sectors
CN108268337B (zh) 于记忆装置中进行数据管理的方法、记忆装置及其控制器
TWI730661B (zh) 用來藉助於資訊排列進行記憶裝置的存取管理的方法、記憶裝置及其控制器、以及電子裝置
US20210264986A1 (en) Memory system for performing a read operation and an operating method thereof
TWI698742B (zh) 用來於一記憶裝置中進行存取控制之方法以及記憶裝置及其控制器
KR20170012006A (ko) 메모리 컨트롤러와 이를 포함하는 메모리 시스템
TWI693520B (zh) 用來於一記憶裝置中進行系統備份的方法、相關記憶裝置及其控制器、以及相關電子裝置
CN113628655B (zh) 用以存取闪存模块的方法、闪存控制器与电子装置
TWI782644B (zh) 用來進行資料儲存管理以提升資料可靠度之方法、記憶裝置及其控制器以及電子裝置
CN104252317A (zh) 数据写入方法、存储器控制器与存储器存储装置
TW202318211A (zh) 用於編程資料的記憶體裝置和記憶體系統
CN112711377B (zh) 分布式存储系统的存储节点及其操作方法
KR20230160620A (ko) 메모리 시스템에서 데이터를 복구하는 장치 및 방법
TWI738359B (zh) 資料儲存裝置與資料處理方法
TWI831701B (zh) 存取快閃記憶體模組的方法及相關的快閃記憶體控制器與記憶裝置
TWI805450B (zh) 借助侵害位元資訊來進行記憶體裝置的存取控制的方法、記憶體裝置以及記憶體裝置的控制器
CN117632579B (zh) 存储器控制方法和存储器存储装置
CN103176910A (zh) 用于非易失性存储器的数据合并方法、控制器与储存装置
TW202217574A (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