一种固态硬盘数据写入的方法技术

技术编号:17485821 阅读:35 留言:0更新日期:2018-03-17 10:16
本发明专利技术公开了一种固态硬盘数据写入的方法,其特征在于数据通路管理模块在接到待写入的数据传输完成通知后,直接发起发起对后端NAND写入请求,固态硬盘控制器接到NAND写入请求后,执行将缓存在SRAM中的待写入的数据加载到NAND的寄存器中,加载完成后直接释放存放该次待写入数据的缓存;固态硬盘控制器后台继续等待NAND操作完成,进一步地如果后续读取对应数据失败则通过RAID恢复且将发生错误所在的块内数据备份到新的空闲物理块中,并更新映射表。

A method of data writing for solid state hard disk

The invention discloses a method for solid state disk write data, which is characterized in that the data access management module in data transmission to be written notice received after directly initiated launched on the back-end NAND write request, SSD controller received NAND write request after the execution will be cached in SRAM to write data to NAND the register, loaded directly after the release of stored data to be written to the cache; solid state disk controller NAND backstage continue to wait for the operation to complete, if further follow-up data through the RAID read the corresponding failure recovery and data backup location error will occur within the block to free physical block in a new and updated mapping table.

【技术实现步骤摘要】
一种固态硬盘数据写入的方法
本专利技术涉及固态硬盘控制技术,特别涉及一种固态硬盘数据写入的方法。
技术介绍
固态硬盘SSD由NANDFLASH(以下简称NAND)及其固态硬盘控制器构成,图1是典型的NANDFLASH组成示意图:通道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是典型的NANDFLASH组成示意图;图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,每个DIE2个Plane,组成了7+1RAID5为例说明:当条带内某笔数据出错时,当主机读取该数据时会被固件捕获,例如在图示中Stripe0中D0_6发生错误,则可以读取P0、D0_0、D0_1、D0_2、D0_3、D0_4、D0_5来恢复,根据RAID5特性,可以很容易得知:D0_6=P0^D0_0^D0_1^D0_2^D0_3^D0_4^D0_5。进一步的,可将对应的出错物理块标志为坏块,同时将该RAIDGroupBlock标志为待回收项目,等系统闲置时进行数据备份处理。完本文档来自技高网
...
一种固态硬盘数据写入的方法

【技术保护点】
一种固态硬盘数据写入的方法,其特征在于数据通路管理模块在接到待写入的数据传输完成通知后,直接发起对后端NAND写入请求,固态硬盘控制器接到NAND写入请求后,执行将缓存在SRAM中的待写入的数据加载到NAND的寄存器中,加载完成后直接释放存放该次待写入数据的缓存;固态硬盘控制器后台继续等待NAND写操作完成,NAND写操作发生错误也直接结束本次写操作,进一步地如果后续读取数据失败则再通过RAID恢复错误数据且将恢复后的发生错误所在的块内数据备份到新的空闲物理块中,并更新映射表。

【技术特征摘要】
1.一种固态硬盘数据写入的方法,其特征在于数据通路管理模块在接到待写入的数据传输完成通知后,直接发起对后端NAND写入请求,固态硬盘控制器接到NAND写入请求后,执行将缓存在SRAM中的待写入的数据加载到NAND的寄存器中,加载完成后直接释放存放该次待写入数据的缓存;固态硬盘控制器后台继续等待NAND写操作完成,NAND写操作发生错误也直接结束本次写操作,进一步地如果后续读取数据失败则再通过RAID恢复错误数据且将恢复后的发生错误所在的块内数据备份到新的空闲物理块中,并更新映射表。2.根据权利要求1所述的固态硬盘数据写入的方法,其特征在于执行将缓存在SRAM中...

【专利技术属性】
技术研发人员:王猛徐伟华
申请(专利权)人:记忆科技深圳有限公司
类型:发明
国别省市:广东,44

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1