SSD低功耗优化方法、装置、计算机设备及存储介质与流程

文档序号:29364083发布日期:2022-03-23 03:11阅读:157来源:国知局
SSD低功耗优化方法、装置、计算机设备及存储介质与流程
ssd低功耗优化方法、装置、计算机设备及存储介质
技术领域
1.本发明涉及ssd低功耗技术领域,尤其是指ssd低功耗优化方法、装置、计算机设备及存储介质。


背景技术:

2.ssd(固态硬盘)已经被广泛应用于各种场合,目前在pc市场,已经逐步替代传统的hdd,从可靠性和性能方面为用户提供较好的体验。随着整机的规格演进,对于整机续航能力要求越来越高,进而对于ssd的功耗要求越来越高。由于进出低功耗一般需要将ssdsoc内部主要模块以及耗电较大的外设如dram等器件掉电,以达到降低功耗的目的,故而需要先将soc/dram等掉电易失的内容保存到掉电非易失的设备上(如:nand array),然后进入低功耗状态;在退出时,则需要从nand上加载这些数据以便恢复运行场景。在此过程中,涉及到nand的物理页的读写操作,故而会导致较大的写放大;而nand的物理页的访问需要耗时较久,故而对于低功耗进出延迟较大,进而影响命令响应延迟。


技术实现要素:

3.本发明的目的在于克服现有技术的不足,提供ssd低功耗优化方法、装置、计算机设备及存储介质。
4.为了解决上述技术问题,本发明采用如下技术方案:
5.ssd低功耗优化方法,包括以下步骤:
6.统计待保存的数据内容;
7.根据nand的die数量,对数据内容进行分段,以得到若干分段数据;
8.按顺序将若干分段数据传输至各个die的cache或data register中;
9.关闭soc、memory的时钟及电源,然后进入低功耗状态;
10.判断是否退出低功耗状态;
11.若是,则打开soc、memory的时钟及电源并初始化;
12.将各个die内cache或data register中的第一数据加载到soc内存中,然后跳转到启动代码,执行启动代码加载并执行对应的固件;
13.将各个die内cache或data register中的第二数据加载到soc内存中,然后响应主机读写命令。
14.其进一步技术方案为:所述数据内容包括关键启动数据或恢复数据。
15.其进一步技术方案为:所述第一数据包括启动代码和固件。
16.其进一步技术方案为:所述第二数据包括映射表和运行时刻的管理数据。
17.ssd低功耗优化装置,包括:统计单元,分段单元,传输单元,关闭进入单元,判断单元,打开初始化单元,加载跳转单元及加载响应单元;
18.所述统计单元,用于统计待保存的数据内容;
19.所述分段单元,用于根据nand的die数量,对数据内容进行分段,以得到若干分段
数据;
20.所述传输单元,用于按顺序将若干分段数据传输至各个die的cache或data register中;
21.所述关闭进入单元,用于关闭soc、memory的时钟及电源,然后进入低功耗状态;
22.所述判断单元,用于判断是否退出低功耗状态;
23.所述打开初始化单元,用于打开soc、memory的时钟及电源并初始化;
24.所述加载跳转单元,用于将各个die内cache或data register中的第一数据加载到soc内存中,然后跳转到启动代码,执行启动代码加载并执行对应的固件;
25.所述加载响应单元,用于将各个die内cache或data register中的第二数据加载到soc内存中,然后响应主机读写命令。
26.其进一步技术方案为:所述数据内容包括关键启动数据或恢复数据。
27.其进一步技术方案为:所述第一数据包括启动代码和固件。
28.其进一步技术方案为:所述第二数据包括映射表和运行时刻的管理数据。
29.一种计算机设备,所述计算机设备包括存储器及处理器,所述存储器上存储有计算机程序,所述处理器执行所述计算机程序时实现如上述所述的ssd低功耗优化方法。
30.一种存储介质,所述存储介质存储有计算机程序,所述计算机程序包括程序指令,所述程序指令当被处理器执行时可实现如上述所述的ssd低功耗优化方法。
31.本发明与现有技术相比的有益效果是:通过cache或data register作为缓存,存放固件运行时所需的关键数据(包含固件本身),大大降低了对nand的写入,进而降低了写放大,提升了ssd寿命,而且cache或data register的访问速率要远远高于nand array的物理块或页的读写访问速率,因此极大地提升了低功耗场景下的命令响应延迟性能。
32.下面结合附图和具体实施例对本发明作进一步描述。
附图说明
33.为了更清楚地说明本发明实施例中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
34.图1为典型的ssd组成示意图;
35.图2为现有ssd低功耗进出操作的示意图;
36.图3为本发明实施例提供的ssd低功耗优化方法的流程示意图;
37.图4为本发明实施例提供的ssd低功耗优化方法的应用场景示意图;
38.图5为本发明实施例提供的ssd低功耗优化装置的示意性框图;
39.图6为本发明实施例提供的计算机设备的示意性框图。
具体实施方式
40.下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施
例,都属于本发明保护的范围。
41.应当理解,当在本说明书和所附权利要求书中使用时,术语“包括”和“包含”指示所描述特征、整体、步骤、操作、元素和/或组件的存在,但并不排除一个或多个其它特征、整体、步骤、操作、元素、组件和/或其集合的存在或添加。
42.还应当理解,在此本发明说明书中所使用的术语仅仅是出于描述特定实施例的目的而并不意在限制本发明。如在本发明说明书和所附权利要求书中所使用的那样,除非上下文清楚地指明其它情况,否则单数形式的“一”、“一个”及“该”意在包括复数形式。
43.还应当进一步理解,在本发明说明书和所附权利要求书中使用的术语“和/或”是指相关联列出的项中的一个或多个的任何组合以及所有可能组合,并且包括这些组合。
44.其中,请参阅图1所示的ssd组成:
45.channel(ch0-ch3):独立数据总线,各个channel之间可以并发发起数据传输;
46.ce(chip enable):同一channel下共享数据总线,通过不同的ce来选择对应的die;
47.die:可独立并发进行nand内部操作的单元;
48.cache/data register:每个die内有一个或者多个类似的buffer(缓存),每个大小典型为16kb,用来缓存待写入nand array或者从nand array读出的数据;
49.block:nand array内可独立擦除的单元,其内各个物理位置的数据写入后在下一次写之前必须要将整个block擦除;
50.page:读写单元。
51.其中,cache/data register内容只能在带电期间保持,而写入到nand array的物理块/页的数据,其掉电后也可以保持。
52.其中,请参阅图2所示的现有ssd低功耗进出操作:
53.运行时刻,ssd内存中存放各种关键数据,用以存放需要快速访问的数据,但掉电后丢失;
54.其中,fw代码:cpu执行的程序;系统运行状态参数:指示、控制固件执行的状态参数;系统数据-坏块表:指示各个die内的物理坏块信息;系统数据-索引表:指示各个die的物理块的链接、状态、时间戳等信息;映射表(l2p):主机逻辑地址到nand物理存储地址映射信息;
55.ssd nand划分多个区域,用以存放掉电后需要保持的数据,但访问较慢;
56.bootloader/fw:存放引导代码、用户固件程序;
57.system data:存放各种系统数据:坏块表、索引表;
58.mapping data:存放映射表(l2p);
59.user data:存放用户数据;
60.进入低功耗时,需要将内存中的系统数据、系统运行状态参数等保存到nand的system data区域,然后关闭soc、dram、nand等时钟和电源,进入节电模式;
61.当退出低功耗时,先从nand的bootloader/fw区域加载启动代码、用户固件程序并执行,从system data区域加载对应的系统数据,恢复运行时刻场景,响应主机读写。
62.在上述过程中,在进入低功耗时需要将掉电易失的内存中的数据保存到nand上,导致写放大较大;且退出后需要从nand上读取恢复,整个过程的恢复延迟较大,进而影响命
令响应延迟。
63.请参阅图2到图6所示的具体实施例,其中,请参阅图3至图4所示,本发明公开了一种ssd低功耗优化方法,包括以下步骤:
64.s1,统计待保存的数据内容;
65.其中,在s1步骤之前,还包括:ssd准备进入低功耗模式。
66.其中,在本实施例中,数据内容包括关键启动数据或恢复数据。其中,关键启动数据或恢复数据包括启动代码、固件、管理数据等。
67.s2,根据nand的die数量,对数据内容进行分段,以得到若干分段数据;
68.s3,按顺序将若干分段数据传输至各个die的cache或data register中;
69.s4,关闭soc(片上系统)、memory(存储器)的时钟及电源,然后进入低功耗状态;
70.其中,在本实施例中,关闭soc、memory的时钟及电源时,nand的电源保持。
71.s5,判断是否退出低功耗状态;若否,则返回执行判断是否退出低功耗状态;
72.s6,若是,则打开soc、memory的时钟及电源并初始化;
73.s7,将各个die内cache或data register中的第一数据加载到soc内存中,然后跳转到启动代码,执行启动代码加载并执行对应的固件;
74.其中,在本实施例中,第一数据包括启动代码和固件。
75.s8,将各个die内cache或data register中的第二数据加载到soc内存中,然后响应主机读写命令。
76.其中,在本实施例中,所述第二数据包括映射表和运行时刻的管理数据。
77.其中,通过使用cache或data register缓存进出低功耗前后需要保存、恢复的关键数据,大大降低了nand的写放大,同时也提升了命令响应延迟。
78.请参阅图4所示,将soc内存中掉电易失的关键数据进行分段,按照ssd各个die的cache/data register进行划分,进入低功耗前,将对应的分段数据传输到各个die的cache/data register空间,但不写入到nand array中;再关闭soc、memory等时钟、电源,但保持nand电源(nand在无操作时功耗很低,为微瓦级),进入到低功耗状态;退出低功耗时,与传统ssd不同,而是直接从cache/data register中加载固件运行;固件运行后,按照进入时的分段规则继续加载其他的关键数据,以完成场景重建,进而响应主机命令。
79.其中,由于主机进入低功耗非常频繁,在本发明中,采用cache或data register作为缓存,存放固件运行时所需的关键数据(包含固件本身),大大降低了对nand的写入,进而降低了写放大,提升了ssd寿命;而且cache或data register的访问速率要远远高于nand array的物理块/页的读写访问速率,因此也极大地提升了低功耗场景下的命令响应延迟性能。
80.其中,针对nand中一般由多个cache或data register(如64kb每个die)组成,当nand处于低功耗状态时,其内容可以得到保持。进一步地,一般ssd内部由多个die组成,故此cache或data register空间可达数百kb级别;故而,本发明中将一些退出低功耗系统运行所需的关键数据(其一般数据量较少(百kb级别))不再写入到nand物理块/页中,而是写入到此cache或data register中,从而实现快速的存取,且此过程不涉及物理块/页的编程,也降低了写放大。
81.请参阅图5所示,本发明还公开了一种ssd低功耗优化装置,包括:统计单元10,分
signal processor,dsp)、专用集成电路(application specific integrated circuit,asic)、现成可编程门阵列(field-programmable gate array,fpga)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。其中,通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。
102.本领域普通技术人员可以理解的是实现上述实施例的方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成。该计算机程序包括程序指令,计算机程序可存储于一存储介质中,该存储介质为计算机可读存储介质。该程序指令被该计算机系统中的至少一个处理器执行,以实现上述方法的实施例的流程步骤。
103.因此,本发明还提供一种存储介质。该存储介质可以为计算机可读存储介质。该存储介质存储有计算机程序,其中计算机程序包括程序指令,所述程序指令当被处理器执行时可实现上述的ssd低功耗优化方法。
104.所述存储介质可以是u盘、移动硬盘、只读存储器(read-only memory,rom)、磁碟或者光盘等各种可以存储程序代码的计算机可读存储介质。
105.本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。
106.在本发明所提供的几个实施例中,应该理解到,所揭露的装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的。例如,各个单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式。例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。
107.本发明实施例方法中的步骤可以根据实际需要进行顺序调整、合并和删减。本发明实施例装置中的单元可以根据实际需要进行合并、划分和删减。另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以是两个或两个以上单元集成在一个单元中。
108.该集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分,或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,终端,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。
109.上述实施例为本发明较佳的实现方案,除此之外,本发明还可以其它方式实现,在不脱离本技术方案构思的前提下任何显而易见的替换均在本发明的保护范围之内。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1