CN108121509B - 一种提高ssd读操作时raid效率的方法及ssd - Google Patents
一种提高ssd读操作时raid效率的方法及ssd Download PDFInfo
- Publication number
- CN108121509B CN108121509B CN201711370578.6A CN201711370578A CN108121509B CN 108121509 B CN108121509 B CN 108121509B CN 201711370578 A CN201711370578 A CN 201711370578A CN 108121509 B CN108121509 B CN 108121509B
- Authority
- CN
- China
- Prior art keywords
- page
- data
- module
- raid
- ssd
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/061—Improving I/O performance
- G06F3/0611—Improving I/O performance in relation to response time
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/08—Error detection or correction by redundancy in data representation, e.g. by using checking codes
- G06F11/10—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
- G06F11/1076—Parity data used in redundant arrays of independent storages, e.g. in RAID systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/0614—Improving the reliability of storage systems
- G06F3/0619—Improving the reliability of storage systems in relation to data integrity, e.g. data losses, bit errors
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0683—Plurality of storage devices
- G06F3/0688—Non-volatile semiconductor memory arrays
Abstract
本发明公开了一种提高SSD读操作时RAID效率的方法及SSD,两个以上数据页组成一个条带,每个条带至少包括一个校验页,其它页为数据页,其特征在于增加自动重读模块,当NFC读取同一条带的一个数据页时出现UECC时,标志为第一出错页,将该数据页所在的条带的其它数据页和校验页读出并立即判断是否存在UECC,如果存在UECC,则将出错的页标志为第二出错页,并直接启动自动重读模块对第二出错页进行重读操作;如果成功则将读出的数据页和校验页输入到RAID模块,恢复出第一出错页的正确数据。硬件执行重读减少了时间消耗,提高了RAID的效率。错误数据不会进入RAID模块,减少了RAID执行XOR操作的次数,也降低了硬件执行的时间消耗,提高了性能。
Description
技术领域
本发明涉及固态硬盘控制技术,特别涉及一种提高SSD读操作时RAID效率的方法及SSD。
背景技术
SSD(固态硬盘)已经被广泛应用于各种场合,随着技术的发展,颗粒已经从2DNAND Flash发展到3D NAND FLASH,性能也已经达到3.2GBps。
基于NAND FLASH的SSD为提高可靠性,延长使用寿命都会使用纠错算法,从BCH到现在的LDPC,纠错算法也在不断发展。为构建大容量、高性能和高可靠的存储系统,SSD中还会使用磁盘冗余阵列(RAID)技术。传统SSD使用的RAID在读出错时需要固件进行大量干预。
图1是现有SSD RAID(4+1)读操作模型图,现有SSD的RAID校验信息均匀地分布在SSD上,条带号由逻辑页面LPA计算,当进行数据读取操作时,按如下流程步骤进行操作:
1)主机通知SSD有新的命令,SSD硬件自动将命令信息取到本地FIFO;
2)SSD固件查询并获取新的命令;
3)SSD固件将所获取的命令提交给CM(命令管理)模块执行;
4)CM完成预处理(读写分离等),提交算法模块进一步执行;
5)算法模块分配read buffer,并发起对后端读请求;
6)NFC接收到读请求后,向NAND flash发起读操作;
7)NFC发起RAID操作,等待RAID完成通知硬件进行数据传输,并等待数据传输完成。
其中NFC为硬盘控制器Nand FLash Control。
图2是按现有读操作流程读取出现UECC错误的处理流程图;假设page3在读取过程中出现UECC,需要读取关联页page0~2和parity page进行RAID操作,具体处理流程示例如下:
1)从NAND flash中读取的原始数据page0~2和校验页parity page,数据分别为D0~2和Dparity,先经过RAID做XOR得到数据D3’,再将数据放入DRAM;
2)假设D0数据有错,需要先将DRAM中暂存的数据D0和D3’进行XOR得到数据D3”;
3)NFC再发起page0的重读操作read retry,直到读到准确无误的数据D0’;
4)将D0’和D3”放入RAID模块进行XOR操作恢复出page3准确的数据D3;
在整个过程中,需要固件发起将UECC的数据D0放入RAID进行XOR操作,以及发起page0的重读操作read retry。
发明内容
针对以上缺陷,本发明目的是如何提高SSD读出错时的RAID效率。
为了解决以上问题本发明提出了一种提高SSD读操作时RAID效率的方法,两个以上数据页组成一个条带,每个条带至少包括一个校验页,其它页为数据页,其特征在于增加自动重读模块,当NFC读取同一条带的一个数据页时出现UECC时,标志为第一出错页,将该数据页所在的条带的其它数据页和校验页读出并立即判断是否存在UECC,如果存在UECC,则将出错的页标志为第二出错页,并直接启动自动重读模块对第二出错页进行重读操作,直到重读成功或所有重读都失败;如果成功则将读出的数据页和校验页输入到RAID模块,恢复出第一出错页的正确数据。
所述的提高SSD读操作时RAID效率的方法,其特征在于所述自动重读模块由硬件模块实现。
一种SSD,SSD内的数据采用RAID方式存储,读出时通过RAID校验数据,由两个以上数据页组成一个条带,每个条带至少包括一个校验页,其它页为数据页,其特征在于增加自动重读模块,当NFC读取同一条带的一个数据页是出现UECC时,标志为第一出错页,将该数据页所在的条带的其它数据页和校验页读出并立即判断是否存在UECC,如果存在UECC,则将出错的页标志为第二出错页,并直接启动自动重读模块对第二出错页进行重读操作,直到重读成功或所有重读都失败;如果成功则将读出的数据页和校验页输入到RAID模块,恢复出第一出错页的正确数据。
根据权利要求1所述的SSD,其特征在于所述自动重读模块由硬件模块实现。
本发明的有益效果是:从NAND FLASH读出数据后,先判断是否有错误,如果有错就先进行自动重读操作进行自动纠错,直到将读取正确为止,再将准确无误的数据放入RAID模块进行XOR操作,降低固件参与的程度,提高RAI D效率。
附图说明
图1是现有SSD RAID(4+1)读操作模型图;
图2是按现有读操作流程读取出现UECC错误的处理流程图;
图3是改进后的读操作模型图;
图4是改进后的出现UECC错误的处理流程图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
图3是改进后的读操作模型图;RAID校验信息均匀地分布在SSD上,条带号由逻辑页面LPA计算,当进行数据读取操作时,按如下流程步骤进行操作:
1)主机通知SSD有新的命令,SSD硬件自动将命令信息取到本地FIFO;
2)SSD固件查询并获取新的命令;
3)SSD固件将所获取的命令提交给CM(命令管理)模块执行;
4)CM完成预处理(读写分离等),提交算法模块进一步执行;
5)算法模块分配read buffer,并发起对后端读请求;
6)NFC接收到读请求后,向NAND flash发起读操作;
7)NFC读出的数据进入自动重读模块发现有UECC,就不传输给RAID模块,而是直接发起read retry操作,拿到准确数据后再放入RAID进行校验操作,如进行异或计算;
8)NFC发起RAID操作,等待RAID完成通知硬件进行数据传输,并等待数据传输完成。
图4是改进后的出现UECC错误的处理流程图,
1)从NAND flash中读取的原始数据page0~2,parity page,数据分别为D0~2,Dparity;
2)如果发现D0有UECC,auto read retry模块自动进行read retry操作,直到得出准确数据D0’;
3)将D0’、D1、D2、Dparity放入RAID模块进行XOR,恢复出page3的数据D3。
在整个处理过程中,固件只发起了page0~2、parity page的读操作,其余读操作和read retry操作由硬件自动执行,降低了固件的干预程度。由于固件执行效率低于硬件执行效率,由硬件执行auto read retry减少了时间消耗,提高了RAID的效率。
同时,由于错误数据不会进入RAID模块,减少了RAID执行XOR操作的次数,也降低了硬件执行的时间消耗,提高了性能
以上所揭露的仅为本发明一种实施例而已,当然不能以此来限定本之权利范围,本领域普通技术人员可以理解实现上述实施例的全部或部分流程,并依本发明权利要求所作的等同变化,仍属于本发明所涵盖的范围。
Claims (4)
1.一种提高SSD读操作时RAID效率的方法,两个以上数据页组成一个条带,每个条带至少包括一个校验页,其它页为数据页,其特征在于增加自动重读模块,当NFC读取同一条带的一个数据页时出现UECC时,标志为第一出错页,将该数据页所在的条带的其它数据页和校验页读出并立即判断是否存在UECC,如果存在UECC,则将出错的页标志为第二出错页,并直接启动自动重读模块对第二出错页进行重读操作,直到重读成功或所有重读都失败;如果成功则将读出的数据页和校验页输入到RAID模块,恢复出第一出错页的正确数据。
2.根据权利要求1所述的提高SSD读操作时RAID效率的方法,其特征在于所述自动重读模块由硬件模块实现。
3.一种SSD,SSD内的数据采用RAID方式存储,读出时通过RAID校验数据,由两个以上数据页组成一个条带,每个条带至少包括一个校验页,其它页为数据页,其特征在于增加自动重读模块,当NFC读取同一条带的一个数据页是出现UECC时,标志为第一出错页,将该数据页所在的条带的其它数据页和校验页读出并立即判断是否存在UECC,如果存在UECC,则将出错的页标志为第二出错页,并直接启动自动重读模块对第二出错页进行重读操作,直到重读成功或所有重读都失败;如果成功则将读出的数据页和校验页输入到RAID模块,恢复出第一出错页的正确数据。
4.根据权利要求3所述的SSD,其特征在于所述自动重读模块由硬件模块实现。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201711370578.6A CN108121509B (zh) | 2017-12-19 | 2017-12-19 | 一种提高ssd读操作时raid效率的方法及ssd |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201711370578.6A CN108121509B (zh) | 2017-12-19 | 2017-12-19 | 一种提高ssd读操作时raid效率的方法及ssd |
Publications (2)
Publication Number | Publication Date |
---|---|
CN108121509A CN108121509A (zh) | 2018-06-05 |
CN108121509B true CN108121509B (zh) | 2020-10-16 |
Family
ID=62229399
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201711370578.6A Active CN108121509B (zh) | 2017-12-19 | 2017-12-19 | 一种提高ssd读操作时raid效率的方法及ssd |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN108121509B (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110389724B (zh) * | 2019-07-23 | 2023-06-06 | 深圳忆联信息系统有限公司 | 基于固态硬盘的parity page识别方法和装置 |
CN113946469A (zh) * | 2021-10-29 | 2022-01-18 | 苏州浪潮智能科技有限公司 | 一种固态硬盘的数据纠错处理方法及装置 |
Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101436434A (zh) * | 2007-08-16 | 2009-05-20 | 三星电子株式会社 | 提供快速编程及读操作的非易失性存储设备、系统和方法 |
CN102549554A (zh) * | 2009-09-29 | 2012-07-04 | 美光科技公司 | 基于条带的存储器操作 |
CN103019617A (zh) * | 2012-11-25 | 2013-04-03 | 向志华 | 高效实现ssd内部raid的构建方法、数据读写方法及装置 |
CN104156174A (zh) * | 2014-07-31 | 2014-11-19 | 记忆科技(深圳)有限公司 | 基于条带的固态硬盘raid实现方法及装置 |
CN106776110A (zh) * | 2016-12-29 | 2017-05-31 | 忆正科技(武汉)有限公司 | 一种用于固态存储读策略的控制方法 |
CN107203436A (zh) * | 2017-05-25 | 2017-09-26 | 郑州云海信息技术有限公司 | 一种Nand Flash数据校验的方法与装置 |
CN107391027A (zh) * | 2016-05-03 | 2017-11-24 | 三星电子株式会社 | 廉价磁盘冗余阵列存储设备及其管理方法 |
CN107423160A (zh) * | 2017-07-24 | 2017-12-01 | 山东华芯半导体有限公司 | 一种提高NAND flash读速度的方法及装置 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8902652B1 (en) * | 2014-05-13 | 2014-12-02 | Sandisk Technologies Inc. | Systems and methods for lower page writes |
-
2017
- 2017-12-19 CN CN201711370578.6A patent/CN108121509B/zh active Active
Patent Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101436434A (zh) * | 2007-08-16 | 2009-05-20 | 三星电子株式会社 | 提供快速编程及读操作的非易失性存储设备、系统和方法 |
CN102549554A (zh) * | 2009-09-29 | 2012-07-04 | 美光科技公司 | 基于条带的存储器操作 |
CN103019617A (zh) * | 2012-11-25 | 2013-04-03 | 向志华 | 高效实现ssd内部raid的构建方法、数据读写方法及装置 |
CN104156174A (zh) * | 2014-07-31 | 2014-11-19 | 记忆科技(深圳)有限公司 | 基于条带的固态硬盘raid实现方法及装置 |
CN107391027A (zh) * | 2016-05-03 | 2017-11-24 | 三星电子株式会社 | 廉价磁盘冗余阵列存储设备及其管理方法 |
CN106776110A (zh) * | 2016-12-29 | 2017-05-31 | 忆正科技(武汉)有限公司 | 一种用于固态存储读策略的控制方法 |
CN107203436A (zh) * | 2017-05-25 | 2017-09-26 | 郑州云海信息技术有限公司 | 一种Nand Flash数据校验的方法与装置 |
CN107423160A (zh) * | 2017-07-24 | 2017-12-01 | 山东华芯半导体有限公司 | 一种提高NAND flash读速度的方法及装置 |
Also Published As
Publication number | Publication date |
---|---|
CN108121509A (zh) | 2018-06-05 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US9632863B2 (en) | Track error-correcting code extension | |
US11017867B2 (en) | Adjustable read retry order based on decoding success trend | |
US9727411B2 (en) | Method and processor for writing and error tracking in a log subsystem of a file system | |
CN110399247B (zh) | 一种数据恢复方法、装置、设备及计算机可读存储介质 | |
TWI527040B (zh) | 資料寫入方法、記憶體儲存裝置與記憶體控制器 | |
US10817372B2 (en) | Systems and methods for ultra fast ECC with parity | |
CN104156174A (zh) | 基于条带的固态硬盘raid实现方法及装置 | |
US11010065B2 (en) | Read retry method for solid state storage device | |
CN108228382B (zh) | 一种针对evenodd码单盘故障的数据恢复方法 | |
CN105808371A (zh) | 数据备份与恢复方法、控制芯片及存储装置 | |
WO2022142544A1 (zh) | 防止闪存数据丢失的方法、固态硬盘控制器、固态硬盘 | |
CN108121509B (zh) | 一种提高ssd读操作时raid效率的方法及ssd | |
CN113391947B (zh) | Ssd raid条带掉电快速恢复方法、装置、计算机设备及存储介质 | |
TWI564904B (zh) | 資料處理方法、記憶體控制電路單元以及記憶體儲存裝置 | |
CN111240887A (zh) | 基于三维闪存存储结构的错误页识别方法 | |
CN108874312B (zh) | 数据存储方法以及存储设备 | |
CN107885620B (zh) | 一种提高固态盘阵列性能和可靠性的方法及系统 | |
WO2018113322A1 (zh) | 数据读取方法及设备 | |
US10678662B2 (en) | Computing system with data protection mechanism with soft information and method of operation thereof | |
TWI521531B (zh) | 資料讀取方法、記憶體控制電路單元與記憶體儲存裝置 | |
KR20170064978A (ko) | Raid 메모리의 여러 ecc 블록들 내의 데이터를 정정하기 위한 장치 및 방법 | |
US8687301B1 (en) | Parallel no-sync-mark retry | |
US20210374294A1 (en) | Data storage device and data processing method | |
CN106844088B (zh) | 一种raid存储系统的数据发送方法及装置 | |
CN112230855A (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 |