作为系统盘的固态硬盘缩短上电时间的方法及系统技术方案

技术编号:17195966 阅读:26 留言:0更新日期:2018-02-03 22:43
本发明专利技术公开了一种作为系统盘的固态硬盘缩短上电时间的方法及系统,涉及固态硬盘领域。该方法包括以下步骤:启动相关数据管理表中记录有每次上电过程被读到的LBA表项,每次SSD固件侦测到上电时,将启动相关数据管理表加载到SSD内存中,将启动相关数据管理表中的LBA表项依次更新到L2P表,直至L2P重建成功;上电过程中,如果主机读取请求命中L2P表中的LBA表项,直接响应主机读取请求;如果没有,则等待L2P重建成功后响应。本发明专利技术能缩短并固定SSD的上电响应时间。

【技术实现步骤摘要】
作为系统盘的固态硬盘缩短上电时间的方法及系统
本专利技术涉及固态硬盘领域,具体是涉及一种作为系统盘的固态硬盘缩短上电时间的方法及系统。
技术介绍
无论在个人电脑或者企业级的数据中心,SSD(SolidStateDrive,固态硬盘)因为其优越的iothroughput(高输入输出吞吐性能)/commandlatency(低时延)等特性,正变得越来越普及。固态硬盘的firmware(固件)需要维护一个从LBA(LogicalBlockAddress,逻辑数据地址,host给每段数据分配的地址)到存储PPA(PhysicalPageAddress,物理数据地址,这里特指固态硬盘中的地址)的L2P映射表(LogicaltoPhysical映射表,固态硬盘中逻辑到物理地址的映射表),用做读写操作的地址转换。随着固态硬盘的单盘容量正变的越来越大,L2P需要表示的容量也随之增大,例如逻辑容量为2TB的固态硬盘,如果采取4K单位的pagebasemapping(页映射方式),每个PPA占4个byte(字节),那么整段L2P表会有2GB的大小。无论采取何种映射方式:pagemapping(页映射)/blockmapping(块映射)/Hybridmapping(混合映射),如何在固态硬盘上电的时候用很快的时间来恢复L2P映射表,正变得越来越困难。目前对于固态硬盘的应用,大致分成两类,一种作为系统盘,也就是通常说的装有操作系统的启动盘;另外一种是数据盘,里面并没有操作系统,只有主机存放的应用数据。对于系统盘来说,无论应用在个人电脑或者企业存储阵列,其上电时除去响应的ADMIN命令不谈,主要是首先发读命令来加载引导分区信息(MBR或者GPT等方式)和操作系统(windows/linux等等),以主流的windows操作系统下个人PC环境而言,针对SATA固态硬盘的主要的启动过程如下:1.BIOS启动进入POST(整机上电恢复)过程,同时给固态硬盘供电。2.在SATA物理层、链路层初始化完毕后,BIOS会通过发Identify/Getfeature等ATA命令来初始化固态硬盘。3.BIOS读取引导分区等信息,确认操作系统位置等信息。4.BIOS读取操作系统,加载后控制权移交给操作系统。5.操作系统初始化,读取相应操作系统内部文件。6.操作系统自身初始化完毕后,读取系统驱动等信息并加载后,进入操作系统用户界面。上面所列步骤中,主机(这里指systemBIOS和操作系统)在上电过程中所需要读取的数据,都是固定的LBA,并且这部分数据,对固态硬盘而言,都属于“极冷”数据,也就是说,被写入更新的次数非常少,例如操作系统本身,而且可能只是在上电的时候被读到。针对这种情况,SSD固件首先要“学习”上电需要哪些LBA,SSD固件需要维护一张bootupreferenceLBAtable(启动相关数据管理表),用来记录这些LBA,并可以根据具体情况添加和替换相应的LBA。同时,SSD固件还要将启动相关数据管理表在必要的时候按照一定算法写入闪存,确保上电时可以非常快地找到此表。还有最重要的一点,就是必须要保证数据完整性。无论正常掉电恢复过程,还是非正常掉电恢复过程,此表都必须指向最新并且正确的LBA位置。因为这些数据是系统关键数据,如果丢失或者数据出错,很有可能导致系统无法启动。目前传统的上电恢复L2P映射表的做法是:SSDfirmware(固件)按照需求将L2P映射作为系统内部metadata(元数据,这里特指SSD固件内部记录的关键信息),定期或不定期的写入flash(闪存)中,无论是正常掉电(对于SATA固态硬盘来说,系统掉电之前会发Standbyimmediately/Idleimmediately等PM(电源管理)命令;对于NVME固态硬盘来说,系统会将CC.SHNshutdownnotification使能来通知固态硬盘关机)还是非正常掉电(也就是主机没有给相应的关机信号)的上电恢复过程,SSD固件只是按照数据写入的顺序,依次将这些L2P映射页读出来,用来恢复重建L2P映射表,有了L2P映射表,SSD才能正常响应主机发来的任何的读写命令。如上所述,只有整个L2P映射表全部recovery(上电重建)完成,固态硬盘才会响应主机发来的读写命令。当L2P的恢复过程变得很缓慢,固态硬盘能响应系统命令的时间就随之变长。尤其对于非正常掉电,可能SSD固件没有及时将所需的恢复L2P映射信息写进闪存,这种情况下,SSD固件需要扫描大量的主机写入的数据,通过读出与每段主机数据相对应的元数据,来恢复L2P映射,除去数据完整性问题,这样的方法带来的问题主要有两个:(1)上电时间变得较长。举个例子,在2TB容量的固态硬盘中,固态硬盘FTL(FlashTranslationLayer,固态硬盘固件的一部分,负责维护L2P映射表)固件采取页映射的环境,假设非正常掉电,需要扫描50G的容量,底层读带宽如果是2GB/s,那么整个扫描过程则需要至少25s。(2)上电恢复时间变得不确定。尤其是非正常掉电的情况下,掉电的时间点是无法预料的,所以固态硬盘FTL固件需要扫描的数据量也是不固定的,随之带来的恢复时间也是不固定的。有些厂商,为了解决此问题,将写映射到闪存的动作频率变快,来缩短上电时间,这种刷新方式,通常情况下,会将最热的数据(也就是主机新写入并且可能经常操作的数据)对应的映射频繁写入闪存,这样带来的问题有以下几点:a.写放大(WA)影响,更多的元数据被写入闪存,影响固态硬盘的寿命。b.性能影响。将映射写入闪存肯定会占用底层闪存的带宽,那么将映射写入闪存的这段时间,固态硬盘的写入性能就会受影响。c.最热的映射数据虽然被经常性写入,但上电恢复过程中,主机首先操作的其实并不是这些数据,而是诸如引导分区、操作系统等这些所谓的冷数据。所以这些热数据写入算法可以加速整段L2P映射恢复过程,但这些映射花了很多时间恢复,可主机首先访问的并不是这些数据。现有的方案,无论增大映射写入闪存的频率,还是其他诸如增加类似L2P日志的方式,都需要整段L2P都恢复完毕,才能正常的响应主机发来的读写命令,这种方法采用的是盲读L2P表,SSD固件将L2P当成一个整体,不关心哪些数据首先需要被读到,算法比较单纯,但是如上所述,随之带来的问题也是比较明显的。SSD固件如何通过自我学习,认知并首先快速恢复那些在上电过程中真正会被首先读到的LBA,自适应地匹配主机的每次上电过程,从而优化FTL算法,来缩短并固定SSD的上电响应时间,是亟待解决的技术问题。
技术实现思路
本专利技术的目的是为了克服上述
技术介绍
的不足,提供一种作为系统盘的固态硬盘缩短上电时间的方法及系统,能够缩短并固定SSD的上电响应时间。本专利技术提供一种作为系统盘的固态硬盘缩短上电时间的方法,包括以下步骤:启动相关数据管理表中记录有每次上电过程被读到的LBA表项,每次SSD固件侦测到上电时,将启动相关数据管理表加载到SSD内存中,将启动相关数据管理表中的LBA表项依次更新到L2P表,直至L2P重建成功;上电过程中,如果主机读取请求命中L2P表中的LBA表项,直接响应主机读取请求;如果没有,则等待L2P重建成功后响应。在上述技术方案的基本文档来自技高网
...
作为系统盘的固态硬盘缩短上电时间的方法及系统

【技术保护点】
一种作为系统盘的固态硬盘缩短上电时间的方法,其特征在于,包括以下步骤:启动相关数据管理表中记录有每次上电过程被读到的LBA表项,每次SSD固件侦测到上电时,将启动相关数据管理表加载到SSD内存中,将启动相关数据管理表中的LBA表项依次更新到L2P表,直至L2P重建成功;上电过程中,如果主机读取请求命中L2P表中的LBA表项,直接响应主机读取请求;如果没有,则等待L2P重建成功后响应。

【技术特征摘要】
1.一种作为系统盘的固态硬盘缩短上电时间的方法,其特征在于,包括以下步骤:启动相关数据管理表中记录有每次上电过程被读到的LBA表项,每次SSD固件侦测到上电时,将启动相关数据管理表加载到SSD内存中,将启动相关数据管理表中的LBA表项依次更新到L2P表,直至L2P重建成功;上电过程中,如果主机读取请求命中L2P表中的LBA表项,直接响应主机读取请求;如果没有,则等待L2P重建成功后响应。2.如权利要求1所述的作为系统盘的固态硬盘缩短上电时间的方法,其特征在于:该方法还包括以下步骤:上电过程中,如果主机读取请求被命中的次数达到预设次数,SSD固件累加启动相关数据管理表中的读取次数。3.如权利要求1所述的作为系统盘的固态硬盘缩短上电时间的方法,其特征在于:该方法还包括以下步骤:上电过程中,如果某个LBA表项不在启动相关数据管理表中,则将读取次数最低的LBA表项依次替换掉。4.如权利要求3所述的作为系统盘的固态硬盘缩短上电时间的方法,其特征在于:所述将读取次数最低的LBA表项依次替换掉的具体过程为:上电过程中,如果每个LBA表项的读取次数最大值为预设值,并且为有符号数,则每次都命中;如果读取次数小于预设值,那么读取次数累加;如果读取次数等于预设值,则维持预设值不变;如果LBA表项没有命中,则读取次数减一。5.如权利要求1所述的作为系统盘的固态硬盘缩短上电时间的方法,其特征在于:该方法还包括以下步骤:根据启动相关数据管理表的读取顺序来排序建立一条队列:读取顺序越小,表明越早被读到,启动相关数据管理表初始化后,里面的各个LBA表项被加载到L2P表,L2P表其他的表项则被初始化成代表非法值的固定格式;SSD固件收到主机读取请求后,查找L2P表,如果LBA表项不是非法值,则表示该LBA表项是启动相关数据管理表命中的,那么根据当前的读取顺序,作为索引,去查找排序好的顺序,找到该LBA表项;读取次数为负数,表明LBA表项能被替换掉,初始化时,找到哪些LBA表项的读取次数为负数,并予以记录,当有主机读取请求没有命中启动相关数据管理表时,则将这些LBA表项按照读取次数的顺序替换掉;通过读取次数,将为负数的LBA表项按照从小到大的顺序排成一条队列,每次替换都从尾部开始替换,并更新其中的读取顺序以及读取次数、PPA域;最后,当所有的上电动作完成,L2P也已经完全恢复,则将启动相关数据管理表重新按照读取顺序排序,并存入闪存,以备下次使用。6.一种作为系统盘的固态硬盘缩短上电时间的系统,其特...

【专利技术属性】
技术研发人员:弗兰克陈张磊
申请(专利权)人:忆正科技武汉有限公司
类型:发明
国别省市:湖北,42

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

1