CN105556480A - 在基于闪存的存储系统中构建raid的方法及系统 - Google Patents

在基于闪存的存储系统中构建raid的方法及系统 Download PDF

Info

Publication number
CN105556480A
CN105556480A CN201380079608.1A CN201380079608A CN105556480A CN 105556480 A CN105556480 A CN 105556480A CN 201380079608 A CN201380079608 A CN 201380079608A CN 105556480 A CN105556480 A CN 105556480A
Authority
CN
China
Prior art keywords
data
raid
data block
read
check code
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
CN201380079608.1A
Other languages
English (en)
Other versions
CN105556480B (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.)
Shannon Systems Ltd
Original Assignee
Shannon Systems Ltd
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 Shannon Systems Ltd filed Critical Shannon Systems Ltd
Publication of CN105556480A publication Critical patent/CN105556480A/zh
Application granted granted Critical
Publication of CN105556480B publication Critical patent/CN105556480B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • 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/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
    • 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
    • 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/0638Organizing or formatting or addressing of data
    • G06F3/064Management of blocks
    • 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
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/52Protection of memory contents; Detection of errors in memory contents

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

一种构建有RAID的基于闪存的存储系统,包括:一个或多个RAID处理器和多个闪存,其中,RAID处理器包括多个读写处理单元、数据块指针单元、数据块计数器、奇偶校验码缓存器,一个读写处理单元可以控制一个或多个闪存单元。一种在基于闪存的存储系统中构建RAID的方法,能够在非常小的逻辑面积和近似忽略不计的时间内实现RAID功能,使得如企业级SSD的存储系统的功能和性能实现统一。

Description

在基于闪存的存储系统中构建 RAID的方法及系统
技术领域 本发明涉及一种在基于闪存的存储系统中构建 RAID的方法, 以 及应用该方法的系统。 背景技术 基于闪存 (NAND Flash)的数据存储技术在过去十几年发展迅速, 在很多应用中逐渐取代了传统的磁记录硬盘(hard disk drive, HDD)。 主要原因有: 速度快: 基于闪存的数据存储不象传统 HDD依靠磁头机械寻址, 从而在数据读写速度上有本质性的提高,满足了应用对数据存储吞吐 速度的日趋严格的需求。 价格下降: 随着半导体技术的进步, 闪存的容量也随着摩尔定律 每不到两年增加一倍, 单位容量价格也随着下降。 目前 MLC的闪存 每 GB的价格已从 5年前的 $10USD/GB降至现在的低于 $1USD/GB。 控制器技术进步:闪存需要匹配的控制器 (controller)才能与主 机 (host)通信实现数据存储读写。控制器技术的成熟促进了基于闪存 的固态存储技术在越来越多的领域找到相应的应用,包括在高端的数 据中心及移动智能电话中的应用。 闪存控制器是固态硬盘 (SSD) 系统中最核心的部分, 它的性能 及功能直接决定了该 SSD的性能和功能, 也是消费类 SSD与企业级 SSD最本质的区别。 由于数据保护的要求, 冗余校验码 (RAID) 的计 算和写入是企业级应用所必备的。 由于闪存的价格较高, 镜像等 RAID方法 (即 RAID-1)在通常应 用环境下不可接受。 通常在 SSD中使用的方法是 RAID5, 即 n个数据 块产生 1个校验块 (n>〉2 ) 。 如果数据为 D0, Dl, …, Dn的话, 奇 偶校验码即为 D0, Dl, '". Dn的异或 P=D(TDf . . . ~Dn。 本发明将以 RAID 5的数据结构为例子。 需要指出的是该方法与系统也可以应用 于其它 RAID的结构, 如 RAID 6。 , 闪存的一大特性是其不可重写性: 保存在闪存中的一页 (page) 数据必需要经过其页面所在的整个块 (block)擦除之后才可以写入新 的数据。这对闪存转换层(FTL)带来了挑战,但对 RAID带来了机遇, RAID的附加写放大不再存在。 在 SSD中实现动态 RAID的方法在中国 专利申请 201210256754. 4 "基于非易失性存储器的动态独立冗余阵 列存储系统及方法" 中有详尽描述。
SSD下的 RAID5数据结构如图 1所示, 数据块 D0, Dl, D2, D3 组 成一个 RAID数据带, DO, Dl, D2, D3异或后产生奇偶校验码 D4。 在 通常情况下, D0, Dl, D2, D3 和 D4分别存储在不同的闪存单元, 既 LUN (logic Unit Number)中, 以确保在任何一个闪存 LUN失效的情 况下数据能通过异或操作进行恢复。 当前, 市场上的 SSD主要分为两种, 一种是通常不带 RAID5功能 的消费类的 SSD; 另一种是包含 RAID5功能的企业级 SSD, 但其在读 写混合下性能不尽如人意。 为了达到高性能,需要使用完全为闪存控制量身定做的大规模并 行多核多线程控制器, 对每一块闪存芯片(LUN)做独立并行操作。
RAID5计算和写入要考虑如下因素: 从主机传来的数据是乱序的, 后 发的指令可能先执行; 从主机传来的数据是交织的, 一个数据块没有 传完, 另一个数据块己开始传送, 并部分先期到达; 奇偶校验码的写 入是异步的: 充任校验设备的闪存需要写入的时候校验码未必准备 好,校验码准备好时控制此闪存的读写处理单元未必准备就绪; 不同 应用下对 RAID5的宽度 (既组成一个 RAID数据带的数据块的数量, 或者闪存 LUN的数量)不同; 一个读写处理单元可能控制多个闪存芯 片, 带来更多死锁的可能, 从而加大了调度的难度。 本发明所要解决的技术问题包括:如何降低 RAID5计算所造成的 性能代价, 以达到如 SSD的存储系统的高性能要求; 如何减少 RAID5 的逻辑面积, 以适应如 SSD的存储系统的控制单元的小型化。 技术方案 本发明提供一种在基于闪存的存储系统中构建 RAID5的方法,能 够在非常小的逻辑面积和近似忽略不计的时间内实现 RAID5功能,使 得如企业级 SSD的存储系统的功能和性能实现统一, 所述方法包括: 将校验码编程指令提交给 RAID处理器,由 RAID处理器的读写处理单 元读取当前数据带中的数据块的部分数据, 设置数据块指针, 分别对 应于每个闪存单元, 记录当前数据块的输入位置, 将读写处理单元读 取的数据块部分根据当前数据块指针的位置计算奇偶校验码,并将结 果写回奇偶校验码缓存器, 数据块指针增加输入部分数据块的长度 值, 在对应于一个闪存单元的所有数据块处理完成之后, 即数据块指 针回绕归零时, 数据块处理完成数量加一, 当所记录的数据块处理完 成数量达到 RAID数据带所包含的数据块数量之和时, 奇偶校验码存 储器内的数据被写入相应的闪存单元, 当所有校验码被取走后,校验 码缓存器清零, 开始下一个 RAID数据带的计算, 直到数据处理完毕。 此外, 校验码的编程指令必须在当前 AID数据带的所有数据编 程指令提交之后, 下一 RAID数据带的数据编程指令之前发出。 进一步, 在每一输入的部分数据块内加入了一个标签, 标明处理 该数据块的读写处理单元、 该数据块所面向的 RAID处理器、 该数据 块所属的 RAID数据带。 还有, RAID处理器向所有的读写处理单元广播一个短消息, 用 来防止读写处理单元跨越 RAID数据带, 短消息包含如下信息: 当前 此 RAID处理器所允许读写处理单元读的数据带号;当前此 RAID处理 器的校验码是否可以被读出。一个读写处理单元可以控制多个闪存单 元, 当读写处理单元发现下一个操作暂时为非法操作时,切换到其他 线程, 对另一闪存单元芯片操作。 本发明还提供一种构建有 RAID5的基于闪存的存储系统, 所述 系统包括: 一个或多个 RAID处理器和多个闪存单元, 其中, RAID处 理器包括多个读写处理单元、 数据块指针单元、 数据块计数器、奇偶 校验码缓存器,一个读写处理单元可以控制一个或多个闪存单元, 将 校验码的编程指令提交给 RAID处理器, 指令提交可以由源至于主机 的驱动发起, 或是由固件发起, 读写处理单元读取当前数据带中的数 据块,数据块指针单元用于分别对每个闪存记录当前数据块的输入位 置, 数据块计数器用于对所处理的数据块数量进行记数, 奇偶校验码 缓存器用于缓存奇偶校验码, 读写处理单元读取相应部分数据块, 根 据当前数据指针的位置与奇偶校验码缓存器内的数据进行奇偶校验 码的计算操作,并将结果写回奇偶校验码缓存器,当计算操作完成后, 数据块指针单元为数据块指针增加输入数据的长度值,移动对应的数 据块指针,数据块计数器在对应于一个闪存单元的数据块处理完成之 后, 即数据块指针回绕归零时, 加一, 当数据块计数器所记录的数据 块数量达到 RAID数据带所包含的数据块数量时, 奇偶校验码存储器 内的数据被写入相应的闪存单元, 当所有校验码被取走后, 缓存器清 零, 幵始下一个 RAID数据带的计算, 直到数据处理完毕。 此外, 所述 RAID处理器还包括 RAID短消息单元, 用于向所有的 读写处理单元广播一个短消息, 用来防止读写处理单元跨越 RAID数 据带。 短消息包含如下信息: 当前此 RAID处理器所允许读写处理单 元读的数据带号; 当前此 RAID处理器的校验码是否可以被读出。 一 个读写处理单元可以控制多个闪存单元,当读写处理单元发现下一个 操作暂时为非法操作时,切换到其他线程,对另一闪存单元芯片操作。 还有,校验码的编程指令必须在当前 RAID数据带的所有数据编 程指令提交之后, 下一 RAID数据带的数据编程指令之前发出。 本发明通过锁和消息传递对线程之间和读写处理单元相互之间 的执行次序进行调度, 使得 RAID5的计算和正确写入成为可能; 并利 用简单规则, 在指令的提交和执行是异步和乱序的情况下, 使得在遵 循这一规则下提交的指令不发生死锁。 本发明实现了动态可配置的 RAID5宽度, 满足应用的需要, 并且 最大程度维持了每一个读写处理单元的独立自主,从而实现了性能的 最大化。 综上所述, 本发明的优点在于: RAID奇偶校验码由多个数据块 异或后产生, 每一数据块存储于独立存储单元; 参与 RAID计算的每 一数据块分至少分为两部分输入 RAID处理器, 而属于不同数据块的 部分数据以时分交织的方式输入 RAID处理器; RAID处理器在属于该 RAID组的所有数据块输入完成后, 将输出奇偶校验码; 数据块部分 输入位置由相应指针记录输入位置, 以容纳在 RAID组内交织、 乱序 和分段部分数据输入; 采用数据块计数器允许可调节的 RAID组内数 据块的数量; RAID处理器采短消息广播方式调度多个闪存读写处理 单元, 防止读写处理单元跨 RAID组的操作; RAID校验码可以在完成 计算的数据段部分输出, 而不需等待整个 AID组的所有数据输入之 后输出。 附图说明 图 1示出了 SSD下的 RAID5的数据结构; 图 2 示出了一种数据块数据乱序和交织输入的示例图; 图 3示出了本发明在 RAID处理器内中记录数据输入位置的指针 位置示意图; 图 4示出了根据本发明应用 RAID5的基于闪存的存储系统的结构 框图; 图 5示出了根据本发明应用多个 RAID处理器的基于闪存的存储 系统的结构框图。 具体实施方式 由于 RAID数据带的多个数据块 D0、 Dl、 D2…各自分别对应于不 同的闪存存储单元 LUN, 各数据块将由相应的读写处理单元处理。 为 实现并行化处理, 最大化系统性能, 在本发明的构建 RAID方法中, 将允许数据块的输入实现交织和乱序输入。 图 2示出了一种数据块数据乱序和交织输入的示例情况。 其中, D0、 D1和 D2分别代表 RAID数据带中的数据块,而 Part0、 Part 1、 Part 2……表数据块中的部分数据, 可能是 64byte、 1Kbyte, 或其 它任意长度的数据 (小于或等于数据块 D的长度) 。 例如, D2 PartO 代表数据块 D2的第一部分数据, 而 Dl Part2代表数据块 D1的第三 部分数据。
RAID5的计算目的是高效地获得 DO, 等数据块的异 或奇偶校验码。 其基于以下事实实现:
• 异或操作存在交换律, 所以次序颠倒的数据块并不影响校验码 的正确性。
• 虽然不同的读写处理单元要写入的数据存在交织, 但同一数据 块内不存在乱序的情况。
• 一个读写处理单元可能控制多个闪存单元, 分别存储不同的数 据块, 但在同一处理器内的数据块之间不存在交织。 从而, 为保证校验码的正确性, 在 RAID5的构建中数据输入需要 满足以下条件:
. 同一 RAID数据带内的数据可以乱序, 但不同 RAID数据带之间 不得乱序;
. 同一 RAID数据带内的数据可以交织, 但不同 RAID数据带之间 不得交织;
. 在当前数据带的校验码被校验设备的处理器取走之后, 才能开 始传送下一 RAID数据带的数据。 在 RAID系统中, 奇偶校验码的计算方法如下: 在每一输入的数据块内加入了一个标签,标明处理该数据块的读 写处理单元、 该数据块所面向的 RAID处理器、 该数据块所属的 RAID 数据带; 在 RAID处理器内, 具有一个校验码缓存 (buffer) , 并为读写 处理单元设置数据块指针(pointer) , 所述数据块指针用于记录当前 数据块在收到输入数据中的位置, 如图 3 所示。 当收到数据时, 此 数据和对应数据块指针指向的校验码缓存内的数据异或并写回校验 码缓存, 数据块指针根据所输入的数据长度增加指针值。 当数据块指 针值达到数据块长度时回绕归零, 代表完成一个数据块的异或操作, 同时将该处理器所完成处理的数据块加 1。 记录 RAID处理器完成当前数据带中的数据块处理的数量, 根据 所完成数据块处理的数量和各个指针的位置,确定已经计算完毕的部 分数据带的校验码。 只要有部分数据带的校验码计算完毕, 则 RAID 处理器可以通知对应的读写处理单元开始取回校验码写入相应的闪 存单元。 当所有校验码被取走后, 缓存器清零, 重新开始下一个 RAID数 据带的计算, 开始新一轮的循环。 由于每一个 RAID处理器仅需要保留一个完整数据块大小的缓存 (通常为 16KB) , 完全可以使用片内的 SRAM实现, 从而避免了片外 DRAM的使用, 简化了设计。 在消息总线上 RAID处理器向所有的读写处理单元广播一个短消 息, 用来防止读写处理单元跨越 RAID数据带。短消息包含如下信息: 当前此 RAID处理器所允许读写处理单元读的数据带号; 当前此 RAID 处理器的校验码是否可以被读出。 一个读写处理单元可以控制一个或多个闪存单元 (LUN) , 当读 写处理单元发现下一个操作暂时为非法操作时 (例如对应于下一个 RAID数据带的数据写入) , 它就切换到其他线程, 对另一闪存单元 芯片操作。这样写入较快的闪存芯片所在的线程将把资源出让给较慢 的线程, 使得各线程进度大致相当。 本发明方法的目的实现取决于尽量降低非法操作的概率,使得每 一个读写处理单元都能接近满负荷工作,所采取的措施是尽可能提前 校验码开始读出的时间点。由于对应校验设备的读写处理单元通常较 为空闲,因此通常最后一个数据块处理完成后很短的时间内校验码的 读取也完成了, 整个系统可以进行下一个数据带的写入, 从而縮短了 无法传输数据的窗口。 另外, 由于闪存芯片的编程时间是数据传输时间的数倍以上, 且 系统内可以同时操作两个 RAID5写入点, 即使一个暂时被禁用, 另一 个仍可操作, 因此, 通过测算, RAID5引起的同步效应造成的性能损 失在各种环境下都在 5%以内。 如果一个读写处理单元无法进行下一步工作(如下一步为非法操 作) , 必须等待另一个处理单元, 并依此类推, 形成循环, 就会形成 死锁。死锁是必须严格避免的, 死锁是由不正确的指令执行次序造成 的,而指令的执行次序和指令的发出次序是不同的。 由于在本方案中 乱序执行仅存在于不同线程之间, 同一线程内是严格按序执行的, 软 件发出指令只需遵守以下简单规则, 即可避免死锁:
. 仅对应该 RAID处理器的指令有次序要求,其他指令可以任意发 出。 • 同一 RAID数据带内的数据编程指令之间无次序要求。
• 校验码编程指令必须在当前 RAID数据带内的所有数据编程指 令之后, 下一 RAID数据带内所有数据编程指令之前发出。 图 4示出了一种使用上述方法构建的基于闪存的存储系统, 包 括: RAID处理器和多个闪存, 其中, RAID处理器包括多个读写处理 单元、 RAID短消息单元、 数据块指针单元、 数据块计数器、 奇偶校 验码缓存器,一个读写处理单元可以控制一个或多个闪存单元(LUN)。 将校验码的编程指令提交给 RAID处理器, 指令提交可以由源至 于主机的驱动发起, 或是由固件发起。 为防止死锁, 指令提交必须符 合 RAID处理器所制定的规则, 即校验码的编程指令必须在当前 RAID 数据带的所有数据编程指令提交之后, 下一 RAID数据带的数据编程 指令之前发出。 读写处理单元执行其所对应的指令, 在执行过程中遵循 RAID控 制器短消息的规则。读写处理单元读取当前数据带中的数据块,仅在 当前数据带的校验码被校验设备的处理器取走之后,才能开始读取下 一 RAID数据带的数据。 数据块指针单元用于分别对每个闪存记录当前数据块的输入位 置。 数据块计数器用于对一个闪存中所处理的数据块数量进行记数。 奇偶校验码缓存器用于缓存奇偶校验码。 RAID短消息单元用于向所有的读写处理单元广播一个短消息, 用来防止读写处理单元跨越 RAID数据带。 短消息包含如下信息: 当 前此 RAID处理器所允许读写处理单元读的数据带号;当前此 RAID处 理器的校验码是否可以被读出。 读写处理单元读取相应数据块,根据当前数据指针的位置与奇偶 校验码缓存器内的数据进行异或操作,并将数据写入奇偶校验码缓存 器。 当异或操作完成后, 数据块指针单元增加输入数据的长度值而移 动对应的数据块指针。 数据块计数器在对应于一个闪存 LUN的数据块处理完成之后,即 数据块指针回绕归零时, 加一。 当数据块计数器达到 RAID数据带所包含的数据块之和时, 奇偶 校验码存储器内的数据被写入相应的闪存单元。
RAID处理器开始下一个 RAID数据带的计算操作, 直到处理完该 数据。 如前所描述, 该体系架构可以扩展到多个 RAID处理器的应用, 如图 5所示。 其优点在于: 多个 RAID处理器完全独立操作; 在无中 央控制的写序列下实现 RAID的正确计算和写入; RAID带来的性能损 失接近零; RAID宽度可以灵活配置。
最后应说明的是:以上实施方式仅用以说明本发明的技术方案而 非对其进行限制, 本领域的普通技术人员应当理解: 本发明的核心思 想不仅可以在 SSD上采用, 还可以运用到传统基于硬盘的阵列, 或下 一代存储介质的阵列上, 本发明能够以 FPGA、 可编程逻辑、 ASIC、 或专用芯片实施, RAID写入点个数可以根据需要进一步扩充, 每个 写入点可以进一步采取双处理器配置,进一步消除无法进行数据传输 的时间窗口, RAID的方式可以是 RAID5、RAID6 或者其它 RAID结构。 本领域技术人员可以对本发明迸行修改或者等同替换,而这些修改或 者等同替换亦不能使修改后的技术方案脱离本发明技术方案的精神 和范围。

Claims (1)

  1. 权 利 要 求 书
    1、 一种在基于闪存的存储系统中构建 RAID的方法, 包括: 将校验码编程指令提交给 RAID处理器, 由 RAID处理器的读写处理单元读取当前数据带中的数据块的部分数据, 设置数据块指针, 分别对应于每个闪存单元, 记录当前数据块的输入位置, 将读写处理单元读取的部分数据块根据当前数据块指针的位置计算奇偶校 验码, 并将结果写回奇偶校验码缓存器相应的位置, 数据块指针增加输入部分数据块的长度值, 在对应于一个闪存单元的所有数据块处理完成之后, 即数据块指针回绕归 零时, 数据块处理完成数量加一, 当所记录的数据块处理完成数量达到 RAID数据带所包含的数据块数量之 和时, 奇偶校验码存储器内的数据被写入相应的闪存单元, 当所有校验码被取走后,校验码缓存器清零, 开始下一个 RAID数据带的计 算, 直到数据处理完毕。
    2、 如权利要求 1所述的方法, 其特征在于: 校验码的编程指令必须在当前 RAID数据带的所有数据编程指令提交之后, 下一 RAID数据带的数据编程指令 之前发出。
    3、如权利要求 1所述的方法, 其特征在于: 在每一输入的部分数据块内加 入了一个标签, 标明处理该数据块的读写处理单元、 该数据块所面向的 RAID 处理器、 该数据块所属的 RAID数据带。
    4、 如权利要求 1所述的方法, 其特征在于: RAID处理器向所有的读写处 理单元广播一个短消息,用来防止读写处理单元跨越 ID数据带, 短消息包含 如下信息:当前此 RAID处理器所允许读写处理单元读的数据带号;当前此 RAID 处理器的校验码是否可以被读出。
    5、 如权利要求 4所述的方法, 其特征在于: 一个读写处理单元可以控制多 个闪存单元, 当读写处理单元发现下一个操作暂时为非法操作时, 切换到其他 线程, 对另一闪存单元芯片操作。 6、 一种构建有 ID的基于闪存的存储系统, 所述系统包括: 一个或多 RAID处理器和多个闪存单元, 其中, RAID处理器包括多个读写处理单元、 数据块指针单元、 数据块计 器、 奇偶校验码缓存器, 一个读写处理单元可以控制一个或多个闪存单元, 将校验码的编程指令提交给 RAID处理器,指令提交可以由源至于主机的 动发起, 或是由固件发起, 读写处理单元读取当前数据带中的数据块, 数据块指针单元用于分别对每个闪存记录当前数据块的输入位置, 数据块计数器用于对所处理的数据块数量进行记数, 奇偶校验码缓存器用于缓存奇偶校验码, 读写处理单元读取相应部分数据块, 根据当前数据块指针的位置进行奇偶 校验码的计算操作, 并将结果写回奇偶校验码缓存器相应的位置, 当计算操作完成后,数据块指针单元为数据块指针增加输入数据的长度值, 移动对应的数据块指针, 数据块计数器在对应于一个闪存单元的数据块处理完成之后, 即数据块指 针回绕归零时, 加一, 当数据块计数器所记录的数据块数量达到 RAID数据带所包含的数据块数 量时, 奇偶校验码存储器内的数据被写入相应的闪存单元, 当所有校验码被取走后, 缓存器清零, 开始下一个 RAID数据带的计算, 直 到数据处理完毕。
    7、 如权利要求 6所述的基于闪存的存储系统, 其特征在于: 所述 RAID处 理器还包括 RAID短消息单元, 用于向所有的读写处理单元广播一个短消息,用 来防止读写处理单元跨越 RAID数据带。 短消息包含如下信息: 当前此 RAID处 理器所允许读写处理单元读的数据带号;当前此 RAID处理器的校验码是否可以 被读出。
    8、 如权利要求 7所述的基于闪存的存储系统, 其特征在于: 一个读写处理 单元可以控制多个闪存单元, 当读写处理单元发现下一个操作暂时为非法操作 时, 切换到其他线程, 对另一闪存单元芯片操作。 9、如权利要求 6所述的基于闪存的存储系统, 其特征在于: 校验码的编程 指令必须在当前 RAID数据带的所有数据编程指令提交之后, 下一 RAID数据 ¾ 的数据编程指令之前发出。
CN201380079608.1A 2013-09-16 2013-09-16 在基于闪存的存储系统中构建raid的方法及系统 Active CN105556480B (zh)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/CN2013/001074 WO2015035536A1 (zh) 2013-09-16 2013-09-16 在基于闪存的存储系统中构建raid的方法及系统

Publications (2)

Publication Number Publication Date
CN105556480A true CN105556480A (zh) 2016-05-04
CN105556480B CN105556480B (zh) 2017-06-30

Family

ID=52664899

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201380079608.1A Active CN105556480B (zh) 2013-09-16 2013-09-16 在基于闪存的存储系统中构建raid的方法及系统

Country Status (3)

Country Link
US (1) US9720770B2 (zh)
CN (1) CN105556480B (zh)
WO (1) WO2015035536A1 (zh)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108647110A (zh) * 2018-03-30 2018-10-12 深圳忆联信息系统有限公司 一种增强型raid保护方法及ssd
CN109240604A (zh) * 2018-08-16 2019-01-18 郑州云海信息技术有限公司 基于raid5的固态硬盘中用户数据的写入方法、系统
CN111007984A (zh) * 2019-10-22 2020-04-14 中国航空工业集团公司洛阳电光设备研究所 一种基于fpga的raid5存储系统及实现方法

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TWI661307B (zh) * 2017-12-06 2019-06-01 慧榮科技股份有限公司 資料儲存裝置、主機裝置、以及資料寫入方法
US10866764B2 (en) 2018-07-23 2020-12-15 SK Hynix Inc. Memory system with parity cache scheme and method of operating such memory system
CN112148523B (zh) * 2020-09-11 2023-10-31 武汉华中数控股份有限公司 嵌入式系统中数据文件的校验方法及设备
CN114625307A (zh) 2020-12-14 2022-06-14 慧荣科技股份有限公司 计算机可读存储介质、闪存芯片的数据读取方法及装置
TWI747660B (zh) * 2020-12-14 2021-11-21 慧榮科技股份有限公司 多閃存晶片的資料讀取方法及裝置以及電腦程式產品

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6542960B1 (en) * 1999-12-16 2003-04-01 Adaptec, Inc. System and method for parity caching based on stripe locking in raid data storage
CN102023809A (zh) * 2009-09-21 2011-04-20 成都市华为赛门铁克科技有限公司 存储系统、从存储系统读取数据的方法及写入数据的方法
CN102023815A (zh) * 2009-09-15 2011-04-20 格雷戈里·伯德 在固态存储器中实现raid
US20120131265A1 (en) * 2010-11-23 2012-05-24 International Business Machines Corporation Write cache structure in a storage system
CN102915212A (zh) * 2012-09-19 2013-02-06 记忆科技(深圳)有限公司 一种固态硬盘的raid实现方法、固态硬盘及电子设备

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5889795A (en) * 1995-04-21 1999-03-30 International Business Machines Corporation Disk array system and method for storing data
US5974503A (en) * 1997-04-25 1999-10-26 Emc Corporation Storage and access of continuous media files indexed as lists of raid stripe sets associated with file names
US6230200B1 (en) * 1997-09-08 2001-05-08 Emc Corporation Dynamic modeling for resource allocation in a file server
US6625750B1 (en) * 1999-11-16 2003-09-23 Emc Corporation Hardware and software failover services for a file server
WO2008151516A1 (fr) * 2007-06-08 2008-12-18 Datang Mobile Communications Equipment Co., Ltd Procédé, équipement et système pour codage et décodage ldpc
US8988800B1 (en) 2009-09-15 2015-03-24 Marvell International Ltd. Error correction for storage devices
JP5388976B2 (ja) * 2010-09-22 2014-01-15 株式会社東芝 半導体記憶制御装置

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6542960B1 (en) * 1999-12-16 2003-04-01 Adaptec, Inc. System and method for parity caching based on stripe locking in raid data storage
CN102023815A (zh) * 2009-09-15 2011-04-20 格雷戈里·伯德 在固态存储器中实现raid
CN102023809A (zh) * 2009-09-21 2011-04-20 成都市华为赛门铁克科技有限公司 存储系统、从存储系统读取数据的方法及写入数据的方法
US20120131265A1 (en) * 2010-11-23 2012-05-24 International Business Machines Corporation Write cache structure in a storage system
CN102915212A (zh) * 2012-09-19 2013-02-06 记忆科技(深圳)有限公司 一种固态硬盘的raid实现方法、固态硬盘及电子设备

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108647110A (zh) * 2018-03-30 2018-10-12 深圳忆联信息系统有限公司 一种增强型raid保护方法及ssd
CN109240604A (zh) * 2018-08-16 2019-01-18 郑州云海信息技术有限公司 基于raid5的固态硬盘中用户数据的写入方法、系统
CN109240604B (zh) * 2018-08-16 2021-06-11 郑州云海信息技术有限公司 基于raid5的固态硬盘中用户数据的写入方法、系统
CN111007984A (zh) * 2019-10-22 2020-04-14 中国航空工业集团公司洛阳电光设备研究所 一种基于fpga的raid5存储系统及实现方法

Also Published As

Publication number Publication date
US20160224420A1 (en) 2016-08-04
WO2015035536A1 (zh) 2015-03-19
US9720770B2 (en) 2017-08-01
CN105556480B (zh) 2017-06-30

Similar Documents

Publication Publication Date Title
CN105556480A (zh) 在基于闪存的存储系统中构建raid的方法及系统
TWI425512B (zh) 快閃記憶體控制電路及其儲存系統與資料傳輸方法
TWI506430B (zh) 映射資訊記錄方法、記憶體控制器與記憶體儲存裝置
US8812784B2 (en) Command executing method, memory controller and memory storage apparatus
CN101965559B (zh) 包括将处理器与内部存储器连接的交叉切换器的用于闪存的存储控制器
TWI494849B (zh) 韌體碼載入方法、記憶體控制器與記憶體儲存裝置
JP2016035795A (ja) 内部ecc処理を有するnand型フラッシュメモリおよびその動作方法
TWI495998B (zh) 資料管理方法、記憶體控制器與記憶體儲存裝置
TW201227506A (en) Controller and method for performing background operations
CN108694096A (zh) 控制器、存储系统及其操作方法
CN104246708A (zh) 针对nand闪存上数据的存储的架构
TWI489466B (zh) 記憶體抹除方法、記憶體控制器與記憶體儲存裝置
EP3754563A1 (en) Technologies for performing in-memory training data augmentation for artificial intelligence
TWI556249B (zh) 資料讀取方法、記憶體儲存裝置及記憶體控制電路單元
WO2020155542A1 (zh) 一种ssd主控中的raid主动加速装置和加速方法
TW201216057A (en) Block management method, memory controller and memory storage apparatus
WO2012024087A2 (en) Methods and apparatuses for re-ordering data
JP6342013B2 (ja) 不揮発性メモリ・アレイを含むデータ・ストレージ・システムを動作させるための方法、システム及びコンピュータ・プログラム
US9467175B2 (en) Decoding method, memory storage device and memory controlling circuit unit
TWI545588B (zh) 控制方法、連接器與記憶體儲存裝置
US8230276B2 (en) Writing to memory using adaptive write techniques
CN103226977B (zh) 基于fpga的快速nand flash控制器及其控制方法
US8738847B2 (en) Data writing method, and memory controller and memory storage apparatus using the same
CN113760786A (zh) 页条带的数据组织以及向页条带写入数据的方法与装置
US9152348B2 (en) Data transmitting method, memory controller and data transmitting system

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
CB02 Change of applicant information

Address after: 200082, 18, Kunming Road, 739, Shanghai, Yangpu District

Applicant after: Shanghai Feien Microelectronic Co., Ltd.

Address before: 200082, Room 305, building A, Mecca Plaza, 588 Dalian Road, Shanghai, Yangpu District

Applicant before: Shanghai Feien Microelectronic Co., Ltd.

COR Change of bibliographic data
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant