一种控制器低功耗启动方法、装置、计算机设备及存储介质与流程

文档序号:17924747发布日期:2019-06-15 00:20阅读:156来源:国知局
一种控制器低功耗启动方法、装置、计算机设备及存储介质与流程

本发明涉及固态硬盘,更具体地说是一种固态硬盘控制器低功耗启动方法、装置、计算机设备及存储介质。



背景技术:

目前固态硬盘控制器从低功耗模式下唤醒的流程如图1所示,固态硬盘控制器在进入低功耗模式之前,会清空命令,关闭一些模块电源和时钟以降低功耗,关闭除cpu0以外的所有cpu,并使cpu进入wfi状态。现有控制器从低功耗模式下唤醒时,控制器收到主机发送的中断信号,cpu0重新开始运行,首先运行bootrom(启动代码),bootrom加载bootloader(引导加载程序)到cpu0的atcm(存储区域)中,cpu运行指针再跳转至atcm零地址,bootloader运行,bootloader再重新加载固件,使多核全系统固件重新运行。该方法能够正常唤醒,但唤醒所需时间较长。



技术实现要素:

本发明的目的在于克服现有技术的不足,提供一种控制器低功耗启动方法、装置、计算机设备及存储介质。

为实现上述目的,本发明采用以下技术方案:一种控制器低功耗启动方法,所述方法包括以下步骤:

接收主机发送的命令;

判断命令是进入低功耗或者是退出低功耗命令;

若是退出低功耗命令,则cpu0运行启动代码;

cpu0的运行指针跳转到低功耗唤醒工程的零地址;

恢复固态硬盘控制器中接口模块的寄存器值;

从动态随机存取存储器中取出寄存器值,并重新赋值;

将保存于动态随机存取存储器中的内存区域数据进行恢复;

复位除cpu0外的其它cpu,固件重新运行。

其进一步技术方案为:所述cpu0运行启动代码的步骤之后,还包括以下步骤:

启动代码对低功耗跳转标志位进行校验;

判断是否进行低功耗启动;

若是,则进入所述cpu0的运行指针跳转到低功耗唤醒工程的零地址的步骤;

若否,则启动代码从存储器中加载引导加载程序运行;

引导加载程序从存储器中加载固件,并进入所述复位除cpu0外的其它cpu,固件重新运行的步骤。

其进一步技术方案为:所述判断命令是进入低功耗或者是退出低功耗命令的步骤之后,还包括以下步骤:

若是进入低功耗命令,则将除cpu0之外的所有内存区域数据搬移到动态随机存取存储器中;

动态随机存取存储器进行自动刷新;

关闭除cpu0之外的所有cpu,cpu0进入等待中断状态;

关闭接口模块的时钟和电源。

其进一步技术方案为:所述将除cpu0之外的所有内存区域数据搬移到动态随机存取存储器中的步骤之后,还包括以下步骤:

将低功耗唤醒工程文件存在于cpu0存储区域中,并保存低功耗唤醒工程文件的基地址;

向电源管理单元的寄存器中写入低功耗跳转标志位以及低功耗唤醒工程文件的基地址;

将接口模块的寄存器值搬移到动态随机存取存储器中。

一种控制器低功耗启动装置,所述装置包括接收单元、第一判断单元、运行单元、跳转单元、第一恢复单元、赋值单元、第二恢复单元以及复位单元;

所述接收单元,用于接收主机发送的命令;

所述第一判断单元,用于判断命令是进入低功耗或者是退出低功耗命令;

所述运行单元,用于cpu0运行启动代码;

所述跳转单元,用于cpu0的运行指针跳转到低功耗唤醒工程的零地址;

所述第一恢复单元,用于恢复固态硬盘控制器中接口模块的寄存器值;

所述赋值单元,用于从动态随机存取存储器中取出寄存器值,并重新赋值;

所述第二恢复单元,用于将保存于动态随机存取存储器中的内存区域数据进行恢复;

所述复位单元,用于复位除cpu0外的其它cpu,固件重新运行。

其进一步技术方案为:所述装置还包括启动单元、第二判断单元、第一加载单元以及第二加载单元;

所述启动单元,用于启动代码对低功耗跳转标志位进行校验;

所述第二判断单元,用于判断是否进行低功耗启动;

所述第一加载单元,用于启动代码从存储器中加载引导加载程序运行;

所述第二加载单元,用于引导加载程序从存储器中加载固件。

其进一步技术方案为:所述装置还包括第一搬移单元、自动刷新单元、第一关闭单元以及第二关闭单元;

所述第一搬移单元,用于将除cpu0之外的所有内存区域数据搬移到动态随机存取存储器中;

所述自动刷新单元,用于动态随机存取存储器进行自动刷新;

所述第一关闭单元,用于关闭除cpu0之外的所有cpu,cpu0进入等待中断状态;

所述第二关闭单元,用于关闭接口模块的时钟和电源。

其进一步技术方案为:所述装置还包括保存单元、写入单元以及第二搬移单元;

所述保存单元,用于将低功耗唤醒工程文件存在于cpu0存储区域中,并保存低功耗唤醒工程文件的基地址;

所述写入单元,用于向电源管理单元的寄存器中写入低功耗跳转标志位以及低功耗唤醒工程文件的基地址;

所述第二搬移单元,用于将接口模块的寄存器值搬移到动态随机存取存储器中。

一种计算机设备,包括存储器、处理器以及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现如上述的控制器低功耗启动方法步骤。

一种存储介质,所述存储介质存储有计算机程序,所述计算机程序包括程序指令,所述程序指令被处理器执行时,使得所述处理器执行如上述的控制器低功耗启动方法步骤。

本发明与现有技术相比的有益效果是:本发明提供的一种控制器低功耗启动方法,固态硬盘控制器从低功耗启动时,使用恢复现场的方式取代原有控制器重新加载固件的唤醒方式,进低功耗状态前,将原有的寄存器值和数据备份在随机存取存储器中,等到唤醒时再恢复寄存器值和内存区域数据。通过此方法,原来的cpu指令和固件的堆栈都得以保存。唤醒过程中时不必再做堆栈初始化和从存储器中读取固件的操作,减少了唤醒时间。

上述说明仅是本发明技术方案的概述,为了能够更清楚了解本发明技术手段,可依照说明书的内容予以实施,并且为了让本发明的上述和其它目的、特征及优点能够更明显易懂,以下特举较佳实施例,详细说明如下。

附图说明

图1为现有技术的固态硬盘控制器从低功耗启动的流程图;

图2为本发明一种控制器低功耗启动方法具体实施例的流程图;

图3为本发明一种控制器低功耗启动装置具体实施例的结构示意图;

图4为本发明为本发明一种计算机设备具体实施例的示意性框图。

具体实施方式

为了更充分理解本发明的技术内容,下面结合具体实施例对本发明的技术方案进一步介绍和说明,但不局限于此。

应当理解,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体/操作/对象与另一个实体/操作/对象区分开来,而不一定要求或者暗示这些实体/操作/对象之间存在任何这种实际的关系或者顺序。

还应当理解,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者系统不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者系统所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括该要素的过程、方法、物品或者系统中还存在另外的相同要素。

如图2所示,本发明提供了一种控制器低功耗启动方法,该方法包括以下步骤:

s1、接收主机发送的命令;

s2、判断命令是进入低功耗或者是退出低功耗命令;

s21、若是退出低功耗命令,s211、则cpu0运行启动代码;

s212、启动代码对低功耗跳转标志位进行校验;

s213、判断是否进行低功耗启动;

若是,则进入步骤s2132;

若否,s2131、则启动代码从存储器中加载引导加载程序运行;

s21311、引导加载程序从存储器中加载固件,并进入步骤s21324。

s2132、cpu0的运行指针跳转到低功耗唤醒工程的零地址;

s21321、恢复固态硬盘控制器中接口模块的寄存器值;

s21322、从动态随机存取存储器中取出寄存器值,并重新赋值;

s21323、将保存于动态随机存取存储器中的内存区域数据进行恢复;

s21324、复位除cpu0外的其它cpu,固件重新运行。

具体的,当固态硬盘控制器的cpu0收到主机发送的唤醒中断信号时,cpu0会运行启动代码(bootrom),启动代码会校验低功耗跳转标志位,若为低功耗启动,则cpu0的运行指针跳转到低功耗唤醒工程的零地址,恢复固态硬盘控制器中接口模块的寄存器值,其中接口模块包括nvme(逻辑设备接口)模块和nfc(近场通信)模块,再从动态随机存取存储器中取出寄存器值,并重新赋值,将保存于动态随机存取存储器中的内存区域数据(tcm)进行恢复,再复位除cpu0外的其它cpu,固件重新运行。

另外,若为冷启动,则按照普通的方式进行,即启动代码从存储器中加载引导加载程序运行;引导加载程序从存储器中加载固件,复位除cpu0外的其它cpu,固件重新运行。

进一步的,判断命令是进入低功耗或者是退出低功耗命令的步骤之后,还包括以下步骤:

s22、若是进入低功耗命令,s221、则将除cpu0之外的所有内存区域数据搬移到动态随机存取存储器中;

s222、将低功耗唤醒工程文件存在于cpu0存储区域中,并保存低功耗唤醒工程文件的基地址;

s223、向电源管理单元的寄存器中写入低功耗跳转标志位以及低功耗唤醒工程文件的基地址;

s224、将接口模块的寄存器值搬移到动态随机存取存储器中。

s225、动态随机存取存储器进行自动刷新;

s226、关闭除cpu0之外的所有cpu,cpu0进入等待中断状态;

s227、关闭接口模块的时钟和电源。

具体的,当固态硬盘控制器收到主机发送的进入低功耗命令时,固态硬盘会首先处理完成未处理的所有命令,再将除cpu0之外的所有内存区域数据搬移到动态随机存取存储器中,保存低功耗唤醒工程文件的基地址(cpu0的存储区域在低功耗模式下不掉电);向电源管理单元(pmu)的寄存器中写入低功耗跳转标志位以及低功耗唤醒工程文件的基地址(电源管理单元在低功耗模式下不掉电);然后将接口模块的寄存器值搬移到动态随机存取存储器中,动态随机存取存储器进入自刷新模式,然后关闭除cpu0之外的所有cpu,cpu0进入等待中断状态,最后关闭接口模块的时钟和电源,固态硬盘控制器进入低功耗状态。

应理解,上述实施例中各步骤的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本发明实施例的实施过程构成任何限定。

对应于上述实施例所述的一种控制器低功耗启动方法的启动方法,本发明提供了一种控制器低功耗启动装置。如图3所示,该装置包括接收单元1、第一判断单元2、运行单元3、跳转单元4、第一恢复单元5、赋值单元6、第二恢复单元7以及复位单元8;

接收单元1,用于接收主机发送的命令;

第一判断单元2,用于判断命令是进入低功耗或者是退出低功耗命令;

运行单元3,用于cpu0运行启动代码;

跳转单元4,用于cpu0的运行指针跳转到低功耗唤醒工程的零地址;

第一恢复单元5,用于恢复固态硬盘控制器中接口模块的寄存器值;

赋值单元6,用于从动态随机存取存储器中取出寄存器值,并重新赋值;

第二恢复单元7,用于将保存于动态随机存取存储器中的内存区域数据进行恢复;

复位单元8,用于复位除cpu0外的其它cpu,固件重新运行。

进一步的,该装置还包括启动单元9、第二判断单元10、第一加载单元19以及第二加载单元18;

启动单元9,用于启动代码对低功耗跳转标志位进行校验;

第二判断单元10,用于判断是否进行低功耗启动;

第一加载单元19,用于启动代码从存储器中加载引导加载程序运行;

第二加载单元18,用于引导加载程序从存储器中加载固件。

进一步的,该装置还包括第一搬移单元17、自动刷新单元16、第一关闭单元15以及第二关闭单元14;

第一搬移单元17,用于将除cpu0之外的所有内存区域数据搬移到动态随机存取存储器中;

自动刷新单元16,用于动态随机存取存储器进行自动刷新;

第一关闭单元15,用于关闭除cpu0之外的所有cpu,cpu0进入等待中断状态;

第二关闭单元14,用于关闭接口模块的时钟和电源。

进一步的,该装置还包括保存单元13、写入单元12以及第二搬移单元11;

保存单元13,用于将低功耗唤醒工程文件存在于cpu0存储区域中,并保存低功耗唤醒工程文件的基地址;

写入单元12,用于向电源管理单元的寄存器中写入低功耗跳转标志位以及低功耗唤醒工程文件的基地址;

第二搬移单元11,用于将接口模块的寄存器值搬移到动态随机存取存储器中。

如图4所示,本发明还提供了一种计算机设备,包括存储器、处理器以及存储在存储器上并可在处理器上运行的计算机程序,处理器执行计算机程序时实现如上述的控制器低功耗启动方法步骤。

该计算机设备700可以是终端或服务器。该计算机设备700包括通过系统总线710连接的处理器720、存储器和网络接口750,其中,存储器可以包括非易失性存储介质730和内存储器740。

该非易失性存储介质730可存储操作系统731和计算机程序732。该计算机程序732被执行时,可使得处理器720执行任意一种控制器低功耗启动方法。

该处理器720用于提供计算和控制能力,支撑整个计算机设备700的运行。

该内存储器740为非易失性存储介质730中的计算机程序732的运行提供环境,该计算机程序732被处理器720执行时,可使得处理器720执行任意一种控制器低功耗启动方法。

该网络接口750用于进行网络通信,如发送分配的任务等。本领域技术人员可以理解,图4中示出的结构,仅仅是与本申请方案相关的部分结构的框图,并不构成对本申请方案所应用于其上的计算机设备700的限定,具体的计算机设备700可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。其中,所述处理器720用于运行存储在存储器中的程序代码,以实现以下步骤:

接收主机发送的命令;

判断命令是进入低功耗或者是退出低功耗命令;

若是退出低功耗命令,则cpu0运行启动代码;

cpu0的运行指针跳转到低功耗唤醒工程的零地址;

恢复固态硬盘控制器中接口模块的寄存器值;

从动态随机存取存储器中取出寄存器值,并重新赋值;

将保存于动态随机存取存储器中的内存区域数据进行恢复;

复位除cpu0外的其它cpu,固件重新运行。

进一步的:所述cpu0运行启动代码的步骤之后,还包括以下步骤:

启动代码对低功耗跳转标志位进行校验;

判断是否进行低功耗启动;

若是,则进入所述cpu0的运行指针跳转到低功耗唤醒工程的零地址的步骤;

若否,则启动代码从存储器中加载引导加载程序运行;

引导加载程序从存储器中加载固件,并进入所述复位除cpu0外的其它cpu,固件重新运行的步骤。

进一步的:所述判断命令是进入低功耗或者是退出低功耗命令的步骤之后,还包括以下步骤:

若是进入低功耗命令,则将除cpu0之外的所有内存区域数据搬移到动态随机存取存储器中;

动态随机存取存储器进行自动刷新;

关闭除cpu0之外的所有cpu,cpu0进入等待中断状态;

关闭接口模块的时钟和电源。

进一步的:所述将除cpu0之外的所有内存区域数据搬移到动态随机存取存储器中的步骤之后,还包括以下步骤:

将低功耗唤醒工程文件存在于cpu0存储区域中,并保存低功耗唤醒工程文件的基地址;

向电源管理单元的寄存器中写入低功耗跳转标志位以及低功耗唤醒工程文件的基地址;

将接口模块的寄存器值搬移到动态随机存取存储器中。

应当理解,在本申请实施例中,处理器720可以是中央处理单元(centralprocessingunit,cpu),该处理器720还可以是其他通用处理器、数字信号处理器(digitalsignalprocessor,dsp)、专用集成电路(applicationspecificintegratedcircuit,asic)、现成可编程门阵列(field-programmablegatearray,fpga)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。其中,通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。

本领域技术人员可以理解,图4中示出的计算机设备700结构并不构成对计算机设备700的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。

所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明实施例的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)或处理器(processor)执行本发明中各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:u盘、移动硬盘、只读存储器(rom,read-onlymemory)、随机存取存储器(ram,randomaccessmemory)、磁碟或者光盘等各种可以存储程序代码的介质。

所属领域的技术人员可以清楚地了解到,为了描述的方便和简洁,仅以上述各功能单元、模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能单元、模块完成,即将所述装置的内部结构划分成不同的功能单元或模块,以完成以上描述的全部或者部分功能。实施例中的各功能单元、模块可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中,上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。另外,各功能单元、模块的具体名称也只是为了便于相互区分,并不用于限制本申请的保护范围。上述装置中单元、模块的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。

本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。

在本发明所提供的实施例中,应该理解到,所揭露的装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述模块或单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个装置,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通讯连接可以是通过一些接口,装置或单元的间接耦合或通讯连接,可以是电性,机械或其它的形式。

所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。

另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。

上述仅以实施例来进一步说明本发明的技术内容,以便于读者更容易理解,但不代表本发明的实施方式仅限于此,任何依本发明所做的技术延伸或再创造,均受本发明的保护。本发明的保护范围以权利要求书为准。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1