CN107807790A - 一种固态硬盘数据写入的方法 - Google Patents
一种固态硬盘数据写入的方法 Download PDFInfo
- Publication number
- CN107807790A CN107807790A CN201710950449.8A CN201710950449A CN107807790A CN 107807790 A CN107807790 A CN 107807790A CN 201710950449 A CN201710950449 A CN 201710950449A CN 107807790 A CN107807790 A CN 107807790A
- Authority
- CN
- China
- Prior art keywords
- data
- write
- nand
- state hard
- written
- 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
Links
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
-
- 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/14—Error detection or correction of the data by redundancy in operation
- G06F11/1402—Saving, restoring, recovering or retrying
- G06F11/1446—Point-in-time backing up or restoration of persistent data
- G06F11/1458—Management of the backup or restore process
- G06F11/1469—Backup restoration techniques
-
- 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/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0629—Configuration or reconfiguration of storage systems
- G06F3/0631—Configuration or reconfiguration of storage systems by allocating resources to storage 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/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0683—Plurality of storage devices
- G06F3/0689—Disk arrays, e.g. RAID, JBOD
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)
- Techniques For Improving Reliability Of Storages (AREA)
- Memory System Of A Hierarchy Structure (AREA)
Abstract
本发明公开了一种固态硬盘数据写入的方法,其特征在于数据通路管理模块在接到待写入的数据传输完成通知后,直接发起发起对后端NAND写入请求,固态硬盘控制器接到NAND写入请求后,执行将缓存在SRAM中的待写入的数据加载到NAND的寄存器中,加载完成后直接释放存放该次待写入数据的缓存;固态硬盘控制器后台继续等待NAND操作完成,进一步地如果后续读取对应数据失败则通过RAID恢复且将发生错误所在的块内数据备份到新的空闲物理块中,并更新映射表。
Description
技术领域
本发明涉及固态硬盘控制技术,特别涉及一种固态硬盘数据写入的方法。
背景技术
固态硬盘SSD由NAND FLASH(以下简称NAND)及其固态硬盘控制器构成,图1是典型的NAND FLASH组成示意图:通道DIE可独立并发操作的单元;块Block,可独立擦除的单元,其内各个物理位置的数据写入后在下一次写之前必须要将整个块Block擦除;页Page,每次读写的单元,同一物理块内的页Page必需按页顺序进行编程:0->1->2->3…。
图2是典型的SSD内部数据写入流程:
1)主机通知SSD有新的命令,SSD硬件自动将命令信息取到本地FIFO;
2)SSD硬件自动将命令提交硬件加速单元处理;同时SSD软件通过查询并获取新的命令;
3)SSD硬件自动分配可用的内部SRAM,建立数据传输;SSD软件将命令提交给命令管理模块(以下简称CM模块),并透传到数据通路管理模块(以下简称DPM模块),此时DPM模块不需要负责任何缓存分配、传输建立等工作。
4)由硬件自动发起数据传输,完成后硬件通知软件数据传输完成;
5)DPM模块发起对后端NAND写入请求;
6)固态硬盘控制器(以下简称NFC)端发起对NAND写入;
7)NAND写入正确完成后释放资源。
图3是NFC端写入过程示意图:
1)将SRAM中缓存的数据传输到NAND寄存器中,该操作典型耗时在100us左右;
2)需要等待NAND端将数据写入NAND物理存储单元操作完成,典型耗时在2-3ms左右;
3)检查写入状态:若写入失败,需要进行错误处理:将错误Block内的数据备份到新的物理块中,典型耗时在1s左右;
4)若写入成功,释放SRAM资源并将控制节点请求返回上级模块。
因为SRAM资源的释放需要确认数据安全写入后才释放,因此对SRAM的资源占用时间较长,整体资源利用率较低,也限制了对固态硬盘写性能的提升。
发明内容
针对以上缺陷,本发明目的是如何调整固态硬盘数据写入的控制流程来实现提升固态硬盘写入性能。
为了解决以上问题本发明提出了一种固态硬盘数据写入的方法,其特征在于数据通路管理模块在接到待写入的数据传输完成通知后,直接发起对后端NAND写入请求,固态硬盘控制器接到NAND写入请求后,执行将缓存在SRAM中的待写入的数据加载到NAND的寄存器中,加载完成后直接释放存放该次待写入数据的缓存;固态硬盘控制器后台继续等待NAND写操作完成,NAND写操作发生错误也直接结束本次写操作,进一步地如果后续读取数据失败则再通过RAID恢复错误数据且将恢复后的。
所述的固态硬盘数据写入的方法,其特征在于执行将缓存在SRAM中的待写入的数据加载到NAND的寄存器中,加载完成后直接释放存放该次待写入数据的缓存;固态硬盘控制器后台监控本次实际写入NAND的操作是否完成,完成后直接返回;不实时检测、和处理,而延迟到读出错时通过RAID恢复错误数据并将数据备份到新的空闲物理块中,并更新映射表。
所述的固态硬盘数据写入的方法,其特征在于固态硬盘上设有RAID机制,所述RAID机制为在NAND写操作时在各个通道中选取相同数量的块组成一个RAID条带组,其中一个块存放校验数据,所述校验数据在该条带除校验数据所在的块的数据块写满后在硬盘控制器空闲时计算获得,并写入存放校验数据的块中。
本发明的有益效果是:将NAND编程等待以及状态检查、错误处理从写入的关键路径中移除,有效提升了软硬件资源利用率,可较好地提升写入性能。
附图说明
图1是典型的NAND FLASH组成示意图;
图2是典型的SSD内部数据写入流程;
图3是典型NFC端写入过程示意图;
图4是优化NFC端后写入过程示意图;
图5是典型的SSD内部数据写入对SRAM资源占用示意图;
图6是优化后的SSD内部数据写入对SRAM资源占用示意图;
图7是一个RAID构成示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
图4是优化NFC端后写入过程示意图;
1)主机通知SSD有新的命令,SSD硬件自动将命令信息取到本地FIFO。
2)SSD硬件自动将命令提交硬件加速单元处理;同时SSD软件通过查询并获取新的命令。
3)SSD硬件自动分配可用的内部SRAM,建立数据传输;SSD软件将命令提交给命令管理模块(以下简称CM模块),并透传到数据通路管理模块(以下简称DPM模块),此时DPM模块不需要负责任何缓存分配、传输建立等工作。
4)由硬件自动发起数据传输,完成后硬件通知软件数据传输完成。
5)DPM模块发起对后端NAND写入请求。
以上操作和典型的SSD写入过程都一样,最主要的改进在于NFC端发起NAND写入的流程:当数据从SRAM到NAND传输完成后,直接释放SRAM资源;同时返回前级模块下发的控制节点;硬件基于释放的SRAM可以重新装载主机发来的数据;固件基于释放的控制节点可继续发起新的写入请求。将NAND编程等待以及状态检查、错误处理从写入的关键路径中移除,有效提升了软硬件资源利用率,可较好地提升写入性能。
图5是典型的SSD内部数据写入对SRAM资源占用示意图;在DPM模块到NFC模块之间的控制节点的传递,通过SRAM为每个任务节点开设的写缓存Buffer传输待写入的数据,将数据传输到NAND的寄存器中,再由NAND执行写入到物理块操作,编程完成后还需要检查编程状态,判断是否出现错误,如果错误还需要执行将编程所在的块的数据读出并合并上新写入的数据后重新分配空闲的块,重新执行写入操作。整个写完后才通知上一级DPM模块编程完成;上一级DPM接到编程完成通知后才释放对应的控制节点和待写入数据的写缓存Buffer。整个这个期间写缓存Buffer所在的SRAM资源都被占用。
图6是优化后的SSD内部数据写入对SRAM资源占用示意图;在DPM模块到NFC模块之间的控制节点的传递,通过SRAM为每个任务节点开设的写缓存Buffer传输待写入的数据,将数据传输到NAND的寄存器中,传输完成后直接通知上一级DPM模块编程完成;上一级DPM接到编程完成通知后立即释放对应的控制节点和待写入数据的写缓存Buffer。将NAND编程等待以及状态检查、错误处理从写入的关键路径中移除,有效提升了软硬件资源利用率,可较好地提升写入性能。
为保障数据可靠性,对于编程错误可能引起的数据损坏,系统一般都构建RAID条带:图7是一个RAID构成示意图;以四个DIE,每个DIE 2个Plane,组成了7+1 RAID 5为例说明:
当条带内某笔数据出错时,当主机读取该数据时会被固件捕获,例如在图示中Stripe0中D0_6发生错误,则可以读取P0、D0_0、D0_1、D0_2、D0_3、D0_4、D0_5来恢复,根据RAID 5特性,可以很容易得知:D0_6=P0^D0_0^D0_1^D0_2^D0_3^D0_4^D0_5。进一步的,可将对应的出错物理块标志为坏块,同时将该RAID Group Block标志为待回收项目,等系统闲置时进行数据备份处理。完成数据备份后,则后续的读操作不会再因为数据出错再次触发RAID纠错。
由于NAND编程出错的概率很低,通过将此低概率事件的阻塞处理从主机读写主通路上移除,在保障数据可靠性的同时,提升了写入时的处理效率。
以上所揭露的仅为本发明一种实施例而已,当然不能以此来限定本之权利范围,本领域普通技术人员可以理解实现上述实施例的全部或部分流程,并依本发明权利要求所作的等同变化,仍属于本发明所涵盖的范围。
Claims (3)
1.一种固态硬盘数据写入的方法,其特征在于数据通路管理模块在接到待写入的数据传输完成通知后,直接发起对后端NAND写入请求,固态硬盘控制器接到NAND写入请求后,执行将缓存在SRAM中的待写入的数据加载到NAND的寄存器中,加载完成后直接释放存放该次待写入数据的缓存;固态硬盘控制器后台继续等待NAND写操作完成,NAND写操作发生错误也直接结束本次写操作,进一步地如果后续读取数据失败则再通过RAID恢复错误数据且将恢复后的发生错误所在的块内数据备份到新的空闲物理块中,并更新映射表。
2.根据权利要求1所述的固态硬盘数据写入的方法,其特征在于执行将缓存在SRAM中的待写入的数据加载到NAND的寄存器中,加载完成后直接释放存放该次待写入数据的缓存;固态硬盘控制器后台监控本次实际写入NAND的操作是否完成,完成后直接返回;不实时检测、和处理,而延迟到读出错时通过RAID恢复错误数据并将数据备份到新的空闲物理块中,并更新映射表。
3.根据权利要求1所述的固态硬盘数据写入的方法,其特征在于固态硬盘上设有RAID机制,所述RAID机制为在NAND写操作时在各个通道中选取相同数量的块组成一个RAID条带组,其中一个块存放校验数据,所述校验数据在该条带除校验数据所在的块的数据块写满后在硬盘控制器空闲时计算获得,并写入存放校验数据的块中。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710950449.8A CN107807790B (zh) | 2017-10-13 | 2017-10-13 | 一种固态硬盘数据写入的方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710950449.8A CN107807790B (zh) | 2017-10-13 | 2017-10-13 | 一种固态硬盘数据写入的方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN107807790A true CN107807790A (zh) | 2018-03-16 |
CN107807790B CN107807790B (zh) | 2020-09-01 |
Family
ID=61592747
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201710950449.8A Active CN107807790B (zh) | 2017-10-13 | 2017-10-13 | 一种固态硬盘数据写入的方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN107807790B (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108984133A (zh) * | 2018-08-27 | 2018-12-11 | 杭州阿姆科技有限公司 | 一种ssd中raid的实现方法 |
CN109086168A (zh) * | 2018-07-13 | 2018-12-25 | 深圳忆联信息系统有限公司 | 一种利用硬件备份固态硬盘写速度的方法及其系统 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103049394A (zh) * | 2012-11-30 | 2013-04-17 | 记忆科技(深圳)有限公司 | 固态硬盘数据缓存的方法及其系统 |
CN103377152A (zh) * | 2012-04-26 | 2013-10-30 | 深圳市朗科科技股份有限公司 | 固态硬盘的写操作控制方法及写操作装置 |
EP2854034A2 (en) * | 2013-09-27 | 2015-04-01 | Samsung Electronics Co., Ltd | Data mirroring control apparatus and method |
CN104794070A (zh) * | 2015-04-23 | 2015-07-22 | 南京道熵信息技术有限公司 | 基于动态非覆盖raid技术的固态闪存写缓存系统及方法 |
-
2017
- 2017-10-13 CN CN201710950449.8A patent/CN107807790B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103377152A (zh) * | 2012-04-26 | 2013-10-30 | 深圳市朗科科技股份有限公司 | 固态硬盘的写操作控制方法及写操作装置 |
CN103049394A (zh) * | 2012-11-30 | 2013-04-17 | 记忆科技(深圳)有限公司 | 固态硬盘数据缓存的方法及其系统 |
EP2854034A2 (en) * | 2013-09-27 | 2015-04-01 | Samsung Electronics Co., Ltd | Data mirroring control apparatus and method |
CN104794070A (zh) * | 2015-04-23 | 2015-07-22 | 南京道熵信息技术有限公司 | 基于动态非覆盖raid技术的固态闪存写缓存系统及方法 |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109086168A (zh) * | 2018-07-13 | 2018-12-25 | 深圳忆联信息系统有限公司 | 一种利用硬件备份固态硬盘写速度的方法及其系统 |
CN108984133A (zh) * | 2018-08-27 | 2018-12-11 | 杭州阿姆科技有限公司 | 一种ssd中raid的实现方法 |
CN108984133B (zh) * | 2018-08-27 | 2022-01-28 | 杭州阿姆科技有限公司 | 一种ssd中raid的实现方法 |
Also Published As
Publication number | Publication date |
---|---|
CN107807790B (zh) | 2020-09-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US9262265B2 (en) | Storage system and storage control apparatus | |
EP3230846B1 (en) | Performing an atomic write operation across multiple storage devices | |
EP1770492B1 (en) | A method for improving writing data efficiency and storage subsystem and system implementing the same | |
US9489226B2 (en) | Systems and methods to manage write commands in a cache | |
US20090187786A1 (en) | Parity data management system apparatus and method | |
CN103218274B (zh) | 一种预防故障累加的方法和固态硬盘 | |
EP1703397A2 (en) | Storage control apparatus and method | |
US8479045B2 (en) | Controller for disk array device, data transfer device, and method of power recovery process | |
US20050251628A1 (en) | Method, system, and program for demoting tracks from cache | |
US11500707B2 (en) | Controller, memory controller, storage device, and method of operating the controller | |
CN100549955C (zh) | 用于配置相连设备的方法和系统 | |
JP2002323959A (ja) | 磁気ディスク制御装置のログ主体不揮発性書き込みキャッシュ・システム及び方法 | |
CN111831476A (zh) | 控制raid系统的操作的方法 | |
US20160357672A1 (en) | Methods and apparatus for atomic write processing | |
US20190087274A1 (en) | In-field adaptive drive recovery | |
CN107807790A (zh) | 一种固态硬盘数据写入的方法 | |
CN111240903A (zh) | 数据恢复方法及相关设备 | |
CN111580757B (zh) | 数据写入方法、系统和固态硬盘 | |
US11334508B2 (en) | Storage system, data management method, and data management program | |
US20160026537A1 (en) | Storage system | |
CN112578993B (zh) | 多平面nvm处理编程出错的方法与存储设备 | |
CN114661230A (zh) | Raid存储系统及ssd raid加速命令设计方法 | |
CN112579328A (zh) | 处理编程出错的方法与存储设备 | |
CN113093997B (zh) | 一种基于Host Based FTL架构分离数据的方法 | |
CN114420192A (zh) | DRAMLess SSD NAND编程出错的优化方法、装置及介质 |
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 |