硬盘固件启动方法、装置及设备与流程

文档序号:17547971发布日期:2019-04-30 17:58阅读:291来源:国知局
硬盘固件启动方法、装置及设备与流程

本申请涉及硬盘技术领域,尤其涉及一种硬盘固件启动方法、装置及设备。



背景技术:

在电子设备(例如服务器、电脑等)中通常设置有硬盘接口,可以通过硬盘接口在电子设备中插入硬盘,以使电子设备可以通过所述硬盘接口使用硬盘。为了保证硬盘可以正常运行,需要在硬盘中加载固件,由固件实现对硬盘的控制,例如,可以通过固件实现驱动硬盘、检测硬盘等。固件由软件实现,可以根据实际需要对硬盘的固件进行升级。

在现有技术中,通常在硬盘中固定存储固件,当硬盘启动之后,直接加载已存储的固件。当需要对固件升级时,电子设备获取得到最新的固件,并由电子设备对每个硬盘中的固件进行单独升级。在对硬盘中的固件进行升级时,电子设备和每个硬盘均需要进行多次交互,将最新版本的固件保存至每个硬盘预先设定的固定存储固件的位置区域,以及从固定存储固件的位置区域删除固定存储的旧版本的固件,才能完成对硬盘中的固件升级,该维护过程需要维护每个硬盘预先设定的固定存储固件的位置区域,较为复杂。

然而,在实际应用过程中,当电子设备中的硬盘数量较多时,由于电子设备需要分别对每一个硬盘中的固件进行升级维护,需要对每个硬盘预先设定的固定存储固件的位置区域进行维护,导致对固件的维护过程复杂。



技术实现要素:

本申请提供一种硬盘固件启动方法、装置及设备,简化了对固件的维护过程。

第一方面,本申请提供一种硬盘固件启动方法,在确定硬盘上电或复位之后,硬盘控制器获取固件在电子设备的内存中的位置信息,根据位置信息,以dma方式在电子设备的内存中获取固件,并将固件存储在硬盘的内存中。

在上述过程中,硬盘的存储介质中不再永久存储固件,而是在硬盘每次上电或者复位之后,再到电子设备的内存中获取最新的固件,并直接在硬盘中启动获取得到的最新固件。这样,可以保证硬盘中的固件始终为最新的固件,进一步的,由于不再在硬盘中永久存储固件,使得电子设备也无需单独对每一个硬盘中的固件进行维护,进而简化对固件的维护过程。

可选的,位置信息包括固件在电子设备的内存中的起始地址和固件的大小;或者,位置信息包括固件在电子设备的内存中的起始地址和终止地址。可选的,当位置信息包括固件在电子设备的内存中的起始地址和终止地址时,起始地址和终止地址之间为一块连续的、用于存储固件的存储空间。

在一种可能的实施方式中,硬盘控制器可以通过查询硬盘的第一寄存器,获取位置信息。

可选的,在硬盘控制器获取位置信息之前,可以先查询硬盘的第二寄存器中的值,当确定第二寄存器中的值为第一预设值时,硬盘控制器通过查询硬盘的第一寄存器,获取位置信息。

在上述过程中,当第一寄存器为非易失性存储器时,在硬盘上电或者复位之后,第一寄存器中的值为硬盘在上一次运行过程中写入的值,而在硬盘的不同次运行的过程中,固件在电子设备的内存中的位置信息可能不同。在硬盘控制器查询到第二寄存器中的值为第一预设值时,则可以确定第一寄存器中的位置信息为硬盘本次运行过程中写入的,即,第一寄存器中的位置信息为正确的,这样,可以避免硬盘控制器获取得到错误的位置信息。

在另一种可能的实施方式中,在硬盘控制器以dma方式在电子设备的内存中获取固件时,可以先查询硬盘的第三寄存器中的值,当确定第三寄存器中的值为第二预设值时,硬盘控制器根据位置信息,以dma方式在电子设备的内存中获取固件。

在上述过程中,在硬盘控制器获取得到位置信息之后,电子设备控制器可能还没有完成将固件存储至电子设备的内存中,此时,硬盘控制器在电子设备的内存中并无法成功的获取得到固件。当硬盘控制器查询到第三寄存器中的值为第二预设值时,则说明固件被存储至了内存,此时,硬盘控制器可以成功的电子设备的内存中获取得到固件。这样,可以避免硬盘控制器在电子设备的内存中进行无效的获取操作,进而避免了资源浪费。

在另一种可能的实施方式中,硬盘控制器通常需要通过数据总线在电子设备的内存中获取固件,为了确定硬盘控制器可以成功的获取得到固件,需要保证数据总线的链路装置为正常状态,因此,在电子设备的内存中获取固件之前,硬盘控制器可以通过查询硬盘的第四寄存器,确定电子设备的数据总线的链路状态,在确定链路状态为异常状态时修复数据总线,直至数据总线的链路状态切换为正常状态。

可选的,硬盘控制器修改第五寄存器的数值,以指示复位数据总线的通信链路,并修改第六寄存器的数值,以指示建立数据总线的通信链路,这样,可以实现修复数据总线,以使数据总线的状态切换为正常状态。

第二方面,本申请提供一种硬盘固件启动方法,在电子设备控制器启动之后,电子设备控制器获取最新的固件,将固件存储在电子设备的内存中,并将固件在电子设备的内存中的位置信息存储至硬盘的第一寄存器。

在上述过程中,硬盘的存储介质中不再永久存储固件,而是在硬盘每次上电或者复位之后,再到电子设备的内存中获取最新的固件,并直接在硬盘中启动获取得到的最新固件。这样,可以保证硬盘中的固件始终为最新的固件,进一步的,由于不再在硬盘中永久存储固件,使得电子设备也无需单独对每一个硬盘中的固件进行维护,进而简化对固件的维护过程。

在一种可能的实施方式中,为了保证硬盘控制器可以获取得到正确的位置信息,在电子设备控制器将固件在电子设备的内存中的位置信息存储至硬盘的第一寄存器之后,还可以将硬盘的第二寄存器中的值设为第一预设值,第一预设值用于指示硬盘控制器在第一寄存器中获取位置信息。

在另一种可能的实施方式中,为了避免硬盘控制器在电子设备的内存中进行无效的获取操作而导致资源浪费,在电子设备控制器将固件存储在电子设备的内存中之后,还可以将硬盘的第三寄存器中的值设为第二预设值,第二预设值用于指示硬盘控制器以dma方式在电子设备的内存中获取固件。

第三方面,本申请提供一种硬盘固件启动装置,第一获取模块、第二获取模块和存储模块,其中,

所述第一获取模块用于,在确定硬盘上电或复位之后,获取固件在电子设备的内存中的位置信息,所述固件用于管理控制所述硬盘;

所述第二获取模块用于,根据所述位置信息,以直接内存存取dma方式在所述电子设备的内存中获取所述固件;

所述存储模块用于,将所述固件存储在所述硬盘的内存中。

在一种可能的实施方式中,所述第一获取模块具体用于:

通过查询所述硬盘的第一寄存器,获取所述位置信息。

在另一种可能的实施方式中,所述第一获取模块具体用于:

在查询到所述硬盘的第二寄存器中的值为第一预设值时,通过查询所述硬盘的第一寄存器,获取所述位置信息,所述第一预设值用于指示在所述第一寄存器中获取所述位置信息。

在另一种可能的实施方式中,所述第二获取模块具体用于:

在查询到所述硬盘的第三寄存器中的值为第二预设值时,根据所述位置信息,以dma方式在所述电子设备的内存中获取所述固件,所述第二预设值用于指示以dma方式在所述电子设备的内存中获取所述固件。

在另一种可能的实施方式中,所述位置信息包括所述固件在所述电子设备的内存中的起始地址和所述固件的大小;或者,

所述位置信息包括所述固件在所述电子设备的内存中的起始地址和终止地址。

在另一种可能的实施方式中,所述装置还包括链路管理模块,其中,

所述链路管理模块用于,在所述第二获取模块根据所述位置信息,在所述电子设备的内存中获取所述固件之前,通过查询硬盘的第四寄存器,确定所述电子设备的数据总线的链路状态;

所述链路管理模块还用于,所述链路管理模块确定所述链路状态为异常状态时修复所述数据总线,直至所述数据总线的链路状态切换为正常状态。

在另一种可能的实施方式中,所述链路管理模块具体用于:

修改第五寄存器的数值,以指示复位所述数据总线的通信链路;

修改第六寄存器的数值,以指示建立所述数据总线的通信链路。

本申请提供的硬盘固件启动装置可以执行上述第一方面任一项所示的技术方案,其实现原理以及有益效果类似,此处不再进行赘述。

第四方面,本申请提供一种硬盘固件启动装置,包括获取模块和存储模块,其中,

所述获取模块用于,在启动之后获取最新的固件;

所述存储模块用于,将所述固件存储在所述电子设备的内存中;

所述存储模块还用于,将所述固件在所述电子设备的内存中的位置信息存储至硬盘的第一寄存器。

在一种可能的实施方式中,所述存储模块还用于,在所述存储模块将所述固件在所述电子设备的内存中的位置信息存储至硬盘的第一寄存器之后,将所述硬盘的第二寄存器中的值设为第一预设值,所述第一预设值用于指示在所述第一寄存器中获取所述位置信息。

在另一种可能的实施方式中,

所述存储模块还用于,在所述存储模块将所述固件存储在所述电子设备的内存中之后,将所述硬盘的第三寄存器中的值设为第二预设值,所述第二预设值用于指示以直接内存存取dma方式在所述电子设备的内存中获取所述固件。

本申请提供的硬盘固件启动装置可以执行上述第二方面任一项所示的技术方案,其实现原理以及有益效果类似,此处不再进行赘述。

第五方面,本申请提供一种硬盘,包括处理器、存储器及通信总线,所述通信总线用于实现各元器件之间的连接,所述存储器用于存储程序指令,所述处理器用于读取所述存储器中的程序指令,并根据所述存储器中的程序指令执行如下步骤:

在确定硬盘上电或复位之后,获取固件在电子设备的内存中的位置信息,所述固件用于管理控制所述硬盘;

根据所述位置信息,以直接内存存取dma方式在所述电子设备的内存中获取所述固件;

将所述固件存储在所述硬盘的内存中。

在一种可能的实施方式中,所述处理器具体用于:

通过查询所述硬盘的第一寄存器,获取所述位置信息。

在另一种可能的实施方式中,所述处理器具体用于:

在查询到所述硬盘的第二寄存器中的值为第一预设值时,通过查询所述硬盘的第一寄存器,获取所述位置信息,所述第一预设值用于指示在所述第一寄存器中获取所述位置信息。

在另一种可能的实施方式中,所述处理器具体用于:

在查询到所述硬盘的第三寄存器中的值为第二预设值时,根据所述位置信息,以直接内存存取dma方式在所述电子设备的内存中获取所述固件,所述第二预设值用于指示以dma方式在所述电子设备的内存中获取所述固件。

在另一种可能的实施方式中,所述位置信息包括所述固件在所述电子设备的内存中的起始地址和所述固件的大小;或者,所述位置信息包括所述固件在所述电子设备的内存中的起始地址和终止地址。

在另一种可能的实施方式中,所述处理器还用于,在所述处理器根据所述位置信息,在所述电子设备的内存中获取所述固件之前,通过查询硬盘的第四寄存器,确定所述电子设备的数据总线的链路状态;

所述处理器还用于,所述处理器确定所述链路状态为异常状态时修复所述数据总线,直至所述数据总线的链路状态切换为正常状态。

在另一种可能的实施方式中,所述处理器具体用于:

修改第五寄存器的数值,以指示复位所述数据总线的通信链路;

修改第六寄存器的数值,以指示建立所述数据总线的通信链路。

本申请提供的硬盘可以执行第一方面任一项所示方法,其实现原理以及有益效果类似,此处不再进行赘述。

第六方面,本申请提供一种电子设备,包括处理器、存储器及通信总线,所述通信总线用于实现各元器件之间的连接,所述存储器用于存储程序指令,所述处理器用于读取所述存储器中的程序指令,并根据所述存储器中的程序指令执行如下步骤:

在启动之后获取最新的固件;

将所述固件存储在所述电子设备的内存中;

将所述固件在所述电子设备的内存中的位置信息存储至硬盘的第一寄存器。

在一种可能的实施方式中,所述处理器还用于:

在所述处理器将所述固件在所述电子设备的内存中的位置信息存储至硬盘的第一寄存器之后,将所述硬盘的第二寄存器中的值设为第一预设值,所述第一预设值用于指示硬盘控制器在所述第一寄存器中获取所述位置信息。

在另一种可能的实施方式中,所述处理器还用于:

在所述处理器将所述固件存储在所述电子设备的内存中之后,将所述硬盘的第三寄存器中的值设为第二预设值,所述第二预设值用于指示所述硬盘控制器以直接内存存取dma方式在所述电子设备的内存中获取所述固件。

本申请提供的电子设备可以执行第二方面任一项所示方法,其实现原理以及有益效果类似,此处不再进行赘述。

第七方面,本申请提供一种计算机可读存储介质,所述计算机可读存储介质中存储有计算机执行指令,当硬盘的至少一个处理器执行所述计算机执行指令时,硬盘执行第一方面任一项所示方法。

第八方面,本申请还提供一种计算机可读存储介质,所述计算机可读存储介质中存储有计算机执行指令,当电子设备的至少一个处理器执行所述计算机执行指令时,电子设备执行第二方面任一项所示方法。

第九方面,本申请还提供一种计算机程序产品,所述计算机程序产品包括计算机执行指令,所述计算机执行指令存储在计算机可读存储介质中,硬盘的至少一个处理器可以从所述计算机可读存储介质读取该计算机执行指令,所述至少一个处理器执行所述计算机执行第一方面任一项所示方法。

第十方面,本申请还提供一种计算机程序产品,所述计算机程序产品包括计算机执行指令,所述计算机执行指令存储在计算机可读存储介质中,电子设备的至少一个处理器可以从所述计算机可读存储介质读取该计算机执行指令,所述至少一个处理器执行所述计算机执行指令使得电子设备执行第二方面任一项所示方法。

第十一方面,本申请还提供一种芯片系统,所述芯片系统包括处理器,用于支持硬盘实现第一方面任一项所示方法。

第十二方面,本申请还提供一种芯片系统,所述芯片系统包括处理器,用于支持电子设备实现第二方面任一项所示方法。

本申请提供的固件启动方法、装置及设备,在电子设备控制器每次启动之后,电子设备控制器均将最新的固件存储在电子设备的内存中,并将固件在电子设备的内存中的位置信息写入硬盘的第一寄存器中。在硬盘上电或者复位之后,硬盘控制器在第一寄存器中获取得到固件在电子设备的内存中的位置信息,并根据该位置信息在电子设备的内存中获取固件,并将该固件存储至硬盘的内存中。在本申请中,在硬盘的存储介质中不再永久存储固件,而是在硬盘每次上电或者复位之后,再到电子设备的内存中获取最新的固件,并直接在硬盘中启动获取得到的最新固件。这样,可以保证硬盘中的固件始终为最新的固件,进一步的,由于不再在硬盘中永久存储固件,使得电子设备也无需单独对每一个硬盘中的固件进行维护,进而简化对固件的维护过程。

附图说明

图1为本申请提供的存储系统的结构图;

图2为本申请提供的图1中的电子设备控制器的结构示例图;

图3为本申请提供的图1中的硬盘的结构图;

图4为本申请提供的硬盘固件启动方法的流程示意图一;

图5为本申请提供的硬盘固件启动方法的流程示意图二;

图6为本申请提供的硬盘控制器的结构示意图;

图7为本申请提供的硬盘固件启动方法的流程示意图三;

图8a为本申请提供的一种硬盘固件启动装置的结构示意图一;

图8b为本申请提供的一种硬盘固件启动装置的结构示意图二;

图9为本申请提供的另一种硬盘固件启动装置的结构示意图;

图10为本申请提供的硬盘的结构示意图;

图11为本申请提供的电子设备的结构示意图。

具体实施方式

图1为本申请提供的存储系统的结构图。请参见图1,包括电子设备控制11和至少一个硬盘12。

电子设备控制器11通过存储区域网络(storageareanetwork,san)与主机(图中未示出)连接。电子设备控制器11可以是一种计算设备,如服务器、台式计算机等等。在电子设备控制器11上安装有写入系统以及应用程序。电子设备控制器11可以接收来自主机的输入输出(i/o)请求。电子设备控制器11还可以存储i/o请求中携带的数据,并且将该数据写入硬盘12中。电子设备控制器11属于系统控制器,系统控制器是独立的设备,不同于硬盘12中的控制芯片。本实施例将硬盘12的控制芯片称为硬盘控制器。

硬盘12是以闪存(英文:flashmemory)芯片为存储介质的存储器,本申请中的硬盘12还可以称为固态硬盘,还可以称为固态驱动器(solidstatedrive,ssd)。

图2为本申请提供的图1中的电子设备控制器的结构示例图。请参见图2,电子设备控制器11包括接口卡110、存储器111、处理器112和接口卡113。

接口卡110,用于和主机通信,用于接收主机发送的指令,电子设备控制器11可以通过接口卡110接收主机的写入指令。

接口卡113,用于和硬盘12通信,电子设备控制器11可以通过接口卡113将写数据指令发送给硬盘12存储。

处理器112,是一个中央处理器(centralprocessingunit,cpu)。在本发明实施例中,处理器112可以用于接收来自主机的写入指令或者读取指令并且处理这些指令。处理器112还可以将所述写入指令中的数据发送给硬盘12。

存储器111,包括易失性存储器,非易失性存储器或其组合。易失性存储器例如为随机访问存储器(random-accessmemory,ram)。非易失性存储器例如为软盘、硬盘12、固态硬盘(solidstatedisk,ssd)、光盘等各种可以存储程序代码的机器可读介质。存储器111具有保电功能,保电功能是指系统发生掉电又重新上电时,存储器111中存储的数据也不会丢失。存储器111可以有一个或者多个,用于临时存储从主机接收的数据或从硬盘12读取的数据,例如,电子设备控制器11接收主机发送的多个写入指令时,可以将所述多个写入指令中的数据暂时保存在存储器111中。

图3为本申请提供的图1中的硬盘的结构图。请参见图3,硬盘12包括硬盘控制器121、内存122、存储介质123、及至少一个寄存器124。

硬盘控制器121,可以为硬盘12中的控制芯片,用于对硬盘12进行控制。

内存122,也可以称为内存储器,用于暂时存放处理器中的运算数据、以及与其它存储器交换的数据。内存122可以为易失性存储器,其中,易失性存储器例如为随机访问存储器(random-accessmemory,ram)。内存122不具有保电功能,即,在硬盘12发生掉电又重新上电时,内存121中存储的数据丢失。

存储介质123,通常为非易失性存储器,例如,非易失性存储器例如为软盘、硬盘、ssd、光盘等各种可以存储程序代码的机器可读介质。存储介质123具有保电功能,即,在硬盘12发生掉电又重新上电时,存储介质123中存储的数据也不会丢失。

寄存器124,用于暂存指令、数据和地址等信息。例如,寄存器124可以包括用于存储整数数字的数据寄存器、用于存储地址的地址寄存器、用于存储指令的指令寄存器等,在实际应用过程中,可以根据实际需要设置寄存器124的个数、以及寄存器中用于存储的数据,本申请实施例对此不作具体限定。

在本申请中,在硬盘12的存储介质中不再永久存储固件,而是在硬盘12每次上电或者复位之后,再到电子设备的内存中获取最新的固件,并直接在硬盘12中启动获取得到的最新固件。这样,可以保证硬盘12中的固件始终为最新的固件,进一步的,由于不再在硬盘12中永久存储固件,使得电子设备也无需单独对每一个硬盘12中的固件进行维护,进而简化对固件的维护过程。

下面,通过具体实施例,对本申请所示的技术方案进行详细说明。需要说明的是,下面几个具体实施例可以相互结合,对于相同或相似的内容,在不同的实施例中不再进行重复说明。

图4为本申请提供的硬盘固件启动方法的流程示意图一。请参见图4,该方法可以包括:

s401、电子设备控制器11启动之后,电子设备控制器11获取最新的固件。

本申请中所示的电子设备中可以插设至少一个硬盘12。例如,电子设备可以为电脑、服务器等,当然,电子设备还可以为其它类型,本申请对此不作具体限定。

可选的,电子设备控制器11可以通过网络在其它设备中获取最新的固件,或者,电子设备控制器11还可以在本地的预设存储器中获取最新的固件,其中,本地的预设存储器中的最新固件可以由工作人员进行维护。当然,电子设备控制器11还可以通过其它可行的实现方式获取最新的固件。

s402、电子设备控制器11将固件存储在电子设备的内存中。

电子设备的内存通常为非永久存储介质,即,在电子设备断电之后,电子设备的内存中的内容将丢失,因此,在电子设备(或电子设备控制器11)每次启动之后,电子设备控制器11均需要将最新的固件存储在电子设备的内存中。

可选的,电子设备控制器11可以根据固件的大小,在电子设备的内存中申请大小合适的存储空间,并将固件存储在申请得到的存储空间中。

可选的,固件的大小通常在预设范围之后,电子设备控制器11还可以将内存中的一部分固定存储空间作为存储固件的存储空间。这样,在电子设备控制器11需要在电子设备的内存中存储固件时,直接将固件存储至固定的存储空间即可。

可选的,在电子设备中设置有固件管理模块,固件管理模块通常通过软件实现,在电子设备控制器11对固件管理的过程中,电子设备控制器11可以将固件管理模块加载至电子设备的内存,并执行固件管理模块对应的程序指令,以实现上述s401中所示的功能。这样,当需要更新对固件的管理方式时,只需更新固件管理模块中的程序指令即可,使得对固件进行管理的灵活性较好。

s403、电子设备控制器11将固件在电子设备的内存中的位置信息存储至硬盘12的第一寄存器。

可选的,硬盘12的第一寄存器通常仅用于存储固件在电子设备的内存中的位置信息。

在电子设备控制器11将固件存储到电子设备的内存中之后,电子设备控制器11获取固件在电子设备的内存中的位置信息,并将固件在电子设备的内存中的位置信息写入至硬盘12的第一寄存器。

可选的,电子设备控制器11可以通过数据总线,将位置信息写入第一寄存器。

需要说明的是,当在s401中,电子设备控制器11将固件存储到电子设备的内存中固定的存储空间时,且硬盘12的第一寄存器为非易失性存储器时,则电子设备控制器11只需要向第一寄存器写入一次位置信息。即,只需在电子设备第一次启动时,电子设备控制器11将固件在电子设备的内存中的位置信息写入第一寄存器,在电子设备之后(第二次及第二次之后)启动时,电子设备控制器11无需将固件在电子设备的内存中的位置信息写入第一寄存器。

即,在电子设备第二次、及第二次之后的启动过程中,s403为一个可选的步骤。这样,在电子设备第二次、及第二次之后的启动过程中,可以简化信息交互过程,进而提高固件的启动效率。

可选的,硬盘控制器121通常具备链路管理功能,在硬盘12上电之后,硬盘控制器121可以通过查询硬盘12的第四寄存器,以确定电子设备的数据总线的链路状态,在硬盘控制器121确定链路状态为异常状态时修复数据总线,直至数据总线的链路状态切换为正常状态。

可选的,第四寄存器中通常仅用于存储数据总线的链路状态,例如,当第四寄存器中的数值为1时,确定数据总线的链路状态为正常状态,当第四寄存器中的数值为0时,确定数据总线的状态为异常状态。可选的,第四寄存器通常为只读存储器。

可选的,硬盘控制器121可以通过如下可行的实现方式修复数据总线:硬盘控制器121修改第五寄存器的数值,以复位数据总线的通信链路,硬盘控制器121修改第六寄存器的数值,以建立数据总线的通信链路。

可选的,第五寄存器为可读可写寄存器,当第五寄存器中的数值为对应的预设数值时,则数据总线进行复位。

可选的,第六寄存器为可读可写寄存器,当第六寄存器中的数值为对应的预设数值时,则建立数据总线的通信链路。

当然,也可以由电子设备控制器11管理数据总线的链路状态,本申请对此不作具体限定。

需要说明的是,在s402之前,电子设备控制器11需要先确定固件在电子设备的内存中的位置信息,相应的,s402与s403可以顺序执行,也可以同时执行,本申请实施例对s402和s403的执行顺序不作具体限定。

s404、在确定硬盘12上电或复位之后,硬盘控制器121通过查询第一寄存器获取固件在电子设备的内存中的位置信息。

在实际应用过程中,在电子设备启动之后,电子设备通常会向硬盘12对应的硬盘12接口供电,以使插设在电子设备中的硬盘12上电,因此,在电子设备启动之后的短时段内,插设在电子设备上的硬盘12便可以上电。

当然,在电子设备和硬盘12运行的过程中,可以通过预设指令使得硬盘12复位。

可选的,在确定硬盘12上电或者复位之后,硬盘控制器121通过查询硬盘12的第一寄存器,以获取固件在电子设备的内存中的位置信息。

可选的,位置信息包括固件在内存中的起始地址和固件的大小;或者,位置信息包括固件在内存中的起始地址和终止地址,其中,起始地址和终止地址之间为一块连续的存储空间。

需要说明的是,在电子设备控制器11将位置信息写入第一寄存器之后,若将硬盘12的第二寄存器的值修改为第一预设值,该第一预设值用于指示硬盘控制器121在第一寄存器中获取位置信息,相应的,在硬盘控制器121确定第二寄存器的值为第一预设值时,再获取固件在电子设备的内存中的位置信息。若硬盘12中不包括第二寄存器,或者,在电子设备控制器11架构位置信息写入第一寄存器之后,若修改第二寄存器的值,相应的,硬盘控制器121可以实时获取位置信息,直至获取得到位置信息。

s405、硬盘控制器121根据位置信息,以直接内存存取(directmemoryaccess,dma)方式在电子设备的内存中获取固件。

硬盘控制器121中集成有dma控制器,即,硬盘控制器121具有dma控制器的空能,相应的,硬盘控制器121可以根据获取得到的位置信息,确定固件在电子设备的内存中的位置,并根据固件在电子设备的内存中的位置,以dma方式在电子设备的内存中获取固件。

s406、硬盘控制器121将固件存储在硬盘12的内存中。

在硬盘控制器121获取得到固件之后,将固件存储在硬盘12的内存中。可选的,在硬盘控制器121将固件存储在硬盘12的内存之后,还可以执行固件对应的程序指令,以实现在硬盘12中启动固件。

本申请提供的固件启动方法,在电子设备控制器11每次启动之后,电子设备控制器11均将最新的固件存储在电子设备的内存中,并将固件在电子设备的内存中的位置信息写入硬盘12的第一寄存器中。在硬盘12上电或者复位之后,硬盘控制器121在第一寄存器中获取得到固件在电子设备的内存中的位置信息,并根据该位置信息在电子设备的内存中获取固件,并将该固件存储至硬盘12的内存中。在本申请中,在硬盘12的存储介质中不再永久存储固件,而是在硬盘12每次上电或者复位之后,再到电子设备的内存中获取最新的固件,并直接在硬盘12中启动获取得到的最新固件。这样,可以保证硬盘12中的固件始终为最新的固件,进一步的,由于不再在硬盘12中永久存储固件,使得电子设备也无需单独对每一个硬盘12中的固件进行维护,进而简化对固件的维护过程。

在上述任意一个实施例的基础上,下面,通过图5所示的实施例,对图4所示的实施例进行进一步详细说明。

图5为本申请提供的硬盘固件启动方法的流程示意图二。请参见图5,该方法可以包括:

s501、在电子设备控制器11启动之后,电子设备控制器11获取最新固件,并在电子设备的内存中确定用于存储固件的存储空间的位置信息。

需要说明的是,s501的执行过程可以参见s401,此处不再进行赘述。

s502、电子设备控制器11将固件在电子设备的内存中的位置信息存储至硬盘12的第一寄存器。

需要说明的是,s502的执行过程可以参见s403,此处不再进行赘述。

s503、电子设备控制器11将硬盘12的第二寄存器中的值设为第一预设值。

其中,第二寄存器中的第一预设值用于指示硬盘控制器121在第一寄存器中获取位置信息。

可选的,第二寄存器中的第一预设值还用于指示电子设备控制器11已将位置信息存储在第一寄存器中。

在电子设备确定得到位置信息之后,可以同时执行s502-s503、与s504(将固件存储至电子设备的内存),由于固件较大,且向寄存器中写入数据的过程较快,因此,在电子设备将第二寄存器中的值设置为第一阈值时,电子设备可能还没有完成将固件存储至电子设备的内存中。

可选的,在硬盘12断电之后,第二寄存器中的值被设置为空、或者默认值。

在上述过程中,当第一寄存器为非易失性存储器时,通过对第二寄存器的值进行设置,可以避免硬盘控制器121获取得到错误的位置信息。

还需要说明的是,s503为一个可选的步骤,即,硬盘12中也可以不设置第二寄存器,相应的,在电子设备将位置信息存储至硬盘12的寄存器之后,也可以不在第二寄存器中写入第一预设值。

s504、电子设备控制器11根据位置信息,将固件存储至电子设备的内存中。

需要说明的是,s504的执行过程可以参见s401,此处不再进行赘述。

还需要说明的是,s502-s503、与s504可以顺序执行,也可以同时执行,本申请对s502-s503、与s504的执行顺序不作具体限定。

s505、电子设备控制器11将硬盘12的第三寄存器中的值设置为第二预设值。

其中,第三寄存器中的第二预设值用于指示硬盘控制器121以dma方式在所述电子设备的内存中获取固件。

可选的,第三寄存器中的第二预设值还可以用于指示电子设备控制器11已根据位置信息,将固件存储至电子设备的内存。

需要说明的是,s505为一个可选的步骤,即,硬盘12中也可以不设置第三寄存器,相应的,在电子设备将固件存储至电子设备的内存之后,也可以不在第三寄存器中写入第二预设值。

s506、在确定硬盘12上电或者复位之后,在查询到硬盘12的第二寄存器中的值为第一预设值时,硬盘控制器121通过查询硬盘12的第一寄存器,获取位置信息。

可选的,在s506中,在确定硬盘12上电或者复位之后,硬盘控制器121还可以实时或周期性的查询第一寄存器,直至获取得到位置信息。

在上述过程中,当第一寄存器为非易失性存储器时,在硬盘12上电或者复位之后,第一寄存器中的值为硬盘12在上一次运行过程中写入的值,而在硬盘12的不同次运行的过程中,固件在电子设备的内存中的位置信息可能不同。在硬盘控制器121查询到第二寄存器中的值为第一预设值时,则可以确定第一寄存器中的位置信息为硬盘12本次运行过程中写入的,即,第一寄存器中的位置信息为正确的,这样,可以避免硬盘控制器121获取得到错误的位置信息。

s507、在查询到硬盘12的第三寄存器中的值为第二预设值时,硬盘控制器121根据位置信息,以dma方式在电子设备的内存中获取固件。

在实际应用过程中,在硬盘控制器121获取得到位置信息之后,电子设备控制器11可能还没有完成将固件存储至电子设备的内存中,此时,硬盘控制器121在电子设备的内存中无法成功的获取得到固件。当硬盘控制器121查询到第三寄存器中的值为第二预设值时,则说明固件被存储至了内存,此时,硬盘控制器121可以成功的电子设备的内存中获取得到固件。这样,可以避免硬盘控制器121在电子设备的内存中进行无效的获取操作,进而避免了资源浪费。

可选的,在s507中,在硬盘控制器121获取得到位置信息之后,电子设备控制器11可能还没有完成将固件存储至电子设备的内存中,此时,硬盘控制器121可以实时或周期性的根据该位置信息以dma方式在电子设备的内存中获取固件,直至硬盘控制器121获取得到固件。

例如,在硬盘控制器121获取得到位置信息之后,硬盘控制器121可以根据位置信息以dma方式在电子设备的内存中获取固件,此时,若固件未被存储至电子设备的内存中,则硬盘控制器121无法在内存中获取得到固件,则在预设时长之后,硬盘控制器121再次根据位置信息以dma方式在电子设备的内存中获取固件,重复该过程,直至硬盘控制器121在电子设备的内存中获取得到固件。例如,预设时长可以为1毫秒、2毫秒等,在实际应用过程中,可以根据实际需要设置该预设时长,本申请对此不作具体限定。

s508、硬盘控制器121将固件存储在硬盘12的内存中。

在图5所示的实施例中,在电子设备控制器11将位置信息写入第一寄存器之后,将第二寄存器的值设置为第一预设值,相应的,在硬盘控制器121查询得到第二寄存器的值被设置为第一预设值之后,才到第一寄存器中获取位置信息,这样,可以避免在第一寄存器中获取得到错误的位置信息。在电子设备控制器11将固件存储至电子设备的内存之后,将第三寄存器的值设置为第二预设值,相应的,在硬盘控制器121查询得到第三寄存器的值被设置为第二预设值之后,才到电子设备的内存中获取固件,这样,避免了硬盘控制器121在电子设备的内存中进行无效的获取操作,进而避免了资源浪费。

在上述任意一个实施例的基础上,可选的,可以将硬盘控制器121划分为多个模块,并由不同的模块执行不同的操作,下面,结合图6,对硬盘控制器121中包括的模块进行详细说明。

图6为本申请提供的硬盘控制器的结构示意图。请参见图3,硬盘控制器121可以包括直接dma模块、面向x的设计(designforx,dfx)模块、固件引导模块和链路管理模块,其中,dma模块用于直接在电子设备的内存中获取固件,dfx模块用于对固件进行数据一致性校验,固件引导模块用于负责在硬盘12中启动固件,链路管理模块用于对数据总线进行管理维护。

下面,以硬盘控制器121的结构为图6所示的结构为例,在图4所示实施例的基础上,通过图7所示的实施例,对图4所示的实施例进行进一步详细说明。

图7为本申请提供的硬盘固件启动方法的流程示意图三。请参见图7,该方法可以包括:

s701、电子设备控制器11启动之后,电子设备控制器11获取最新的固件.。

s702、电子设备控制器11将固件存储在电子设备的内存中。

s703、电子设备控制器11将固件在电子设备的内存中的位置信息存储至硬盘12的第一寄存器。

需要说明的是,s701-s703的执行过程可以参见s401-s402,此处不再进行赘述。

s704、在确定硬盘12上电或复位之后,dma模块通过查询第一寄存器获取固件在电子设备的内存中的位置信息。

s705、dma模块根据位置信息,在电子设备的内存中获取固件。

s706、dma模块向dfx模块发送固件。

s707、dfx模块对固件进行数据一致性校验。

可选的,dfx模块可以对固件进行循环冗余校验(cyclicredundancycheck,crc),以确保固件中数据的完整性以及正确性。

s708、在dfx模块对固件校验通过之后,向固件引导模块发送固件。

s709、固件引导模块将固件存储至硬盘12的内存。

s710、固件引导模块运行固件对应的程序代码,以实现启动固件。

在图7所示的实施例中,在硬盘12的存储介质中不再永久存储固件,而是在硬盘12每次上电或者复位之后,再由dma模块到电子设备的内存中获取最新的固件,由dfx模块对固件校验通过之后,固件引导模块负责在硬盘12中启动固件,这样,可以保证硬盘12中的固件始终为最新的固件,进一步的,由于不再在硬盘12中永久存储固件,使得电子设备也无需单独对每一个硬盘12中的固件进行维护,进而简化对固件的维护过程。

图8a为本申请提供的一种硬盘固件启动装置的结构示意图一。请参见图8a,包括第一获取模块801、第二获取模块802和存储模块803,其中,

所述第一获取模块801用于,在确定硬盘12上电或复位之后,获取固件在电子设备的内存中的位置信息,所述固件用于管理控制所述硬盘12;

所述第二获取模块802用于,根据所述位置信息,以直接内存存取dma方式在所述电子设备的内存中获取所述固件;

所述存储模块803用于,将所述固件存储在所述硬盘12的内存中。

需要说明的是,本申请提供的硬盘固件启动装置可以执行上述方法实施例所示的技术方案,其实现原理以及有益效果类似,此处不再进行赘述。

在一种可能的实施方式中,所述第一获取模块801具体用于:

通过查询所述硬盘12的第一寄存器,获取所述位置信息。

在另一种可能的实施方式中,所述第一获取模块801具体用于:

在查询到所述硬盘12的第二寄存器中的值为第一预设值时,通过查询所述硬盘12的第一寄存器,获取所述位置信息,所述第一预设值用于指示在所述第一寄存器中获取所述位置信息。

在另一种可能的实施方式中,所述第二获取模块802具体用于:

在查询到所述硬盘12的第三寄存器中的值为第二预设值时,根据所述位置信息,以dma方式在所述电子设备的内存中获取所述固件,所述第二预设值用于指示以dma方式在所述电子设备的内存中获取所述固件。

在另一种可能的实施方式中,所述位置信息包括所述固件在所述电子设备的内存中的起始地址和所述固件的大小;或者,

所述位置信息包括所述固件在所述电子设备的内存中的起始地址和终止地址。

图8b为本申请提供的一种硬盘固件启动装置的结构示意图二。在图8a所示实施例的基础上,请参见图8b,所述装置还包括链路管理模块804,其中,

所述链路管理模块804用于,在所述第二获取模块802根据所述位置信息,在所述电子设备的内存中获取所述固件之前,通过查询硬盘12的第四寄存器,确定所述电子设备的数据总线的链路状态;

所述链路管理模块804还用于,所述链路管理模块804确定所述链路状态为异常状态时修复所述数据总线,直至所述数据总线的链路状态切换为正常状态。

在另一种可能的实施方式中,所述链路管理模块804具体用于:

修改第五寄存器的数值,以指示复位所述数据总线的通信链路;

修改第六寄存器的数值,以指示建立所述数据总线的通信链路。

需要说明的是,本申请提供的硬盘固件启动装置可以执行上述方法实施例所示的技术方案,其实现原理以及有益效果类似,此处不再进行赘述。

在图8a-图8b所示的实施例中,可选的,第一获取模块801可以通过硬盘12中的硬盘控制器121实现,具体功能实现可以参见图4所示实施例中的s404、或图5所示实施例中的s506或图7所示实施例中的s704,本申请此处不再进行赘述。

可选的,第二获取模块802可以通过硬盘12中的硬盘控制器121实现,具体功能实现可以参见图4所示实施例中的s405、或图5所示实施例中的s507或图7所示实施例中的s705,本申请此处不再进行赘述。

可选的,存储模块803可以通过硬盘12中的硬盘控制器121实现,具体功能实现可以参见图4所示实施例中的s406、或图5所示实施例中的s508或图7所示实施例中的s709,本申请此处不再进行赘述。

可选的,链路管理模块804可以通过硬盘12中的硬盘控制器121实现,例如,链路管理模块804可以为图6实施例中所示的链路管理模块,具体功能实现可以参见图4所示实施例中的s403本申请此处不再进行赘述

图9为本申请提供的另一种硬盘固件启动装置的结构示意图。请参见图9,该装置可以包括获取模块901和存储模块902,其中,

所述获取模块901用于,在启动之后获取最新的固件;

所述存储模块902用于,将所述固件存储在所述电子设备的内存中;

所述存储模块902还用于,将所述固件在所述电子设备的内存中的位置信息存储至硬盘12的第一寄存器。

本申请提供的硬盘固件启动装置可以执行上述方法实施例所示的技术方案,其实现原理以及有益效果类似,此处不再进行赘述。

在一种可能的实施方式中,所述存储模块902还用于,在所述存储模块902将所述固件在所述电子设备的内存中的位置信息存储至硬盘12的第一寄存器之后,将所述硬盘12的第二寄存器中的值设为第一预设值,所述第一预设值用于指示在所述第一寄存器中获取所述位置信息。

在另一种可能的实施方式中,所述存储模块902还用于,在所述存储模块将902所述固件存储在所述电子设备的内存中之后,将所述硬盘12的第三寄存器中的值设为第二预设值,所述第二预设值用于指示以直接内存存取dma方式在所述电子设备的内存中获取所述固件。

本申请提供的硬盘固件启动装置可以执行上述方法实施例所示的技术方案,其实现原理以及有益效果类似,此处不再进行赘述。

在图9所示的实施例中,可选的,获取模块901可以通过电子设备控制器11实现,具体功能实现可以参见图4所示实施例中的s401、或图5所示实施例中的s501或图7所示实施例中的s701,本申请此处不再进行赘述。

可选的,存储模块902可以通过电子设备控制器11实现,具体功能实现可以参见图4所示实施例中的s402-s403、或图5所示实施例中的s502-s505、或图7所示实施例中的s702-s703,本申请此处不再进行赘述。

图10为本申请提供的硬盘的结构示意图。请参见图10,包括处理器1001、存储器1002及通信总线1003,所述通信总线1003用于实现各元器件之间的连接,所述存储器1002用于存储程序指令,所述处理器1001用于读取所述存储器1002中的程序指令,并根据所述存储器1002中的程序指令执行如下步骤:

在确定硬盘12上电或复位之后,获取固件在电子设备的内存中的位置信息,所述固件用于管理控制所述硬盘12;

根据所述位置信息,以直接内存存取dma方式在所述电子设备的内存中获取所述固件;

将所述固件存储在所述硬盘12的内存中。

本申请提供的硬盘12可以执行上述方法实施例所示的技术方案,其实现原理以及有益效果类似,此处不再进行赘述。

在一种可能的实施方式中,所述处理器1001具体用于:

通过查询所述硬盘12的第一寄存器,获取所述位置信息。

在另一种可能的实施方式中,所述处理器1001具体用于:

在查询到所述硬盘12的第二寄存器中的值为第一预设值时,通过查询所述硬盘12的第一寄存器,获取所述位置信息,所述第一预设值用于指示在所述第一寄存器中获取所述位置信息。

在另一种可能的实施方式中,所述处理器1001具体用于:

在查询到所述硬盘12的第三寄存器中的值为第二预设值时,根据所述位置信息,以直接内存存取dma方式在所述电子设备的内存中获取所述固件,所述第二预设值用于指示以dma方式在所述电子设备的内存中获取所述固件。

在另一种可能的实施方式中,所述位置信息包括所述固件在所述电子设备的内存中的起始地址和所述固件的大小;或者,所述位置信息包括所述固件在所述电子设备的内存中的起始地址和终止地址。

在另一种可能的实施方式中,所述处理器1001还用于,在所述处理器1001根据所述位置信息,在所述电子设备的内存中获取所述固件之前,通过查询硬盘12的第四寄存器,确定所述电子设备的数据总线的链路状态;

所述处理器1001还用于,所述处理器1001确定所述链路状态为异常状态时修复所述数据总线,直至所述数据总线的链路状态切换为正常状态。

在另一种可能的实施方式中,所述处理器1001具体用于:

修改第五寄存器的数值,以指示复位所述数据总线的通信链路;

修改第六寄存器的数值,以指示建立所述数据总线的通信链路。

本申请提供的硬盘12可以执行上述方法实施例所示的技术方案,其实现原理以及有益效果类似,此处不再进行赘述。

图11为本申请提供的电子设备的结构示意图。请参见图11,包括处理器1101、存储器1102及通信总线1103,所述通信总线1103用于实现各元器件之间的连接,所述存储器1102用于存储程序指令,所述处理器1101用于读取所述存储器1102中的程序指令,并根据所述存储器1102中的程序指令执行如下步骤:

在启动之后获取最新的固件;

将所述固件存储在所述电子设备的内存中;

将所述固件在所述电子设备的内存中的位置信息存储至硬盘12的第一寄存器。

本申请提供的电子设备可以执行上述方法实施例所示的技术方案,其实现原理以及有益效果类似,此处不再进行赘述。

在一种可能的实施方式中,所述处理器1101还用于:

在所述处理器1101将所述固件在所述电子设备的内存中的位置信息存储至硬盘12的第一寄存器之后,将所述硬盘12的第二寄存器中的值设为第一预设值,所述第一预设值用于指示硬盘控制器121在所述第一寄存器中获取所述位置信息。

在另一种可能的实施方式中,所述处理器1101还用于:

在所述处理器1101将所述固件存储在所述电子设备的内存中之后,将所述硬盘12的第三寄存器中的值设为第二预设值,所述第二预设值用于指示所述硬盘控制器121以直接内存存取dma方式在所述电子设备的内存中获取所述固件。

本申请提供的电子设备可以执行上述方法实施例所示的技术方案,其实现原理以及有益效果类似,此处不再进行赘述。

本申请还提供一种计算机可读存储介质,所述计算机可读存储介质中存储有计算机执行指令,当硬盘12的至少一个处理器执行所述计算机执行指令时,硬盘12执行上述方法实施例所示的方法。

本申请还提供一种计算机可读存储介质,所述计算机可读存储介质中存储有计算机执行指令,当电子设备的至少一个处理器执行所述计算机执行指令时,电子设备执行上述方法实施例所示的方法。

本申请还提供一种计算机程序产品,所述计算机程序产品包括计算机执行指令,所述计算机执行指令存储在计算机可读存储介质中,硬盘12的至少一个处理器可以从所述计算机可读存储介质读取该计算机执行指令,所述至少一个处理器执行所述计算机执行指令使得硬盘12执行上述方法实施例所示的方法。可选的,硬盘12中的处理器可以为硬盘控制器121。

本申请还提供一种计算机程序产品,所述计算机程序产品包括计算机执行指令,所述计算机执行指令存储在计算机可读存储介质中,电子设备的至少一个处理器可以从所述计算机可读存储介质读取该计算机执行指令,所述至少一个处理器执行所述计算机执行指令使得电子设备执行上述方法实施例所示的方法。

本申请还提供一种芯片系统,所述芯片系统包括处理器,用于支持硬盘12实现上述方法实施例所示的方法。

本申请还提供一种芯片系统,所述芯片系统包括处理器,用于支持电子设备实现上述方法实施例所示的方法。

在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。所述计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行所述计算机程序指令时,全部或部分地产生按照本发明实施例所述的流程或功能。所述计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。所述计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,所述计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如同轴电缆、光纤、数字用户线(dsl))或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。所述计算机可读存储介质可以是计算机能够存取的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。所述可用介质可以是磁性介质,(例如,软盘、硬盘、磁带)、光介质(例如,dvd)、或者半导体介质(例如固态硬盘)等。

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