System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind() 一种基于申威架构特权固件热升级的方法技术_技高网

一种基于申威架构特权固件热升级的方法技术

技术编号:41364163 阅读:6 留言:0更新日期:2024-05-20 10:12
本发明专利技术公开了一种基于申威架构特权固件热升级的方法,属于固件热升级技术领域,包括预先访问并触发待升级特权固件所在内存地址的TLB miss;修改特权固件内指令错误处理起始位置的指令为死循环指令,使核心的执行流进入预定的死循环;将特权固件中除死循环指令外的所有其他指令更改为触发异常错误的指令;设置延时函数;替换除死循环指令之外的特权固件指令为热升级版本的指令;将死循环指令修改为跳转至特权固件起始位置的指令;将跳转至特权固件起始位置的指令替换为热升级版本的指令。本发明专利技术热升级内存中运行的特权固件,修改即生效,可在嵌入式系统运行过程中实时进行特权固件的更新而不需重启服务器。

【技术实现步骤摘要】

本专利技术涉及固件热升级,尤其涉及一种基于申威架构特权固件热升级的方法


技术介绍

1、申威特权固件面对的申威处理器平台采用自主指令集,是我国具有完全知识产权的处理器系列,目前应用于申威系所有芯片中。目前申威架构的内核运行基础除了各架构均有的bios(basic input output system,基本输入输出系统)以外,在bios与内核之间还存在一个特权固件,特权固件用于完成内核在内核模式下各类权限不够的操作。此固件烧录于flash中,开机后加载到内存中运行,目前行业内烧录特权固件需要使用维护工具,且烧录后需要重启才可以生效,而服务器重启代价很大而且很费时间,所以需要一个可以即时生效、无需重启且用户无感知的方式完成特权固件的升级工作。


技术实现思路

1、本专利技术的目的在于克服现有技术中的不足,提供一种基于申威架构特权固件热升级的方法,热升级的为内存中运行的特权固件,修改即生效,重启后不影响原版特权固件,可在嵌入式系统运行过程中实时进行特权固件的更新而不需重启服务器,解决了传统升级方式导致的服务中断和高成本问题。

2、为实现上述目的,本专利技术提供了如下技术方案:

3、第一方面,本专利技术提供一种基于申威架构特权固件热升级的方法,包括以下步骤:

4、步骤s1、预先访问并触发待升级特权固件所在内存地址的tlb miss,确保后续升级过程不会因tlb miss中断;

5、步骤s2、修改特权固件内指令错误处理起始位置的指令为死循环指令,使核心的执行流进入预定的死循环;

6、步骤s3、将特权固件中除死循环指令外的所有其他指令更改为触发异常错误的指令,使得指令异常时保持所有核心状态可控;

7、步骤s4、设置延时函数以确保所有核心均进入特权模式下的死循环,之后替换特权固件内除死循环指令之外的指令为热升级版本的指令;

8、步骤s5、将死循环指令修改为跳转至特权固件起始位置的指令,使得核心从起始位置的指令重新跑入内核;

9、步骤s6、将跳转至特权固件起始位置的指令替换为热升级版本的指令,至此完成特权固件的热升级。

10、进一步地,步骤s1中预先访问并触发待升级特权固件所在内存地址的tlb miss具体方式为:对物理内存地址0x10000进行一次访存动作以触发一次tlb miss。

11、进一步地,步骤s2特权固件内指令错误处理起始位置的物理内存地址为0xd80,将物理内存地址0xd80中的内容改成死循环指令0x13ffffff。

12、进一步地,步骤s3中触发异常错误的指令具体为0x7fffffff。

13、进一步地,步骤s5中将死循环指令修改为跳转至特权固件起始位置的指令,具体修改为0x13e0009f,翻译后对应的指令为0x10000,为特权固件的起始位置的物理内存地址。

14、第二方面,本专利技术提供了一种电子终端,包括处理器及存储介质;所述存储介质用于存储指令;所述处理器用于根据所述指令进行操作以执行第一方面任一项所述方法的步骤。

15、第三方面,本专利技术提供了一种计算机可读存储介质,其上存储有计算机程序,其特征在于,该程序被处理器执行时实现第一方面任一项所述方法的步骤。

16、与现有技术相比,本专利技术所达到的有益效果:

17、(1)本专利技术通过精细控制内核行为,分步骤逐步替换特权固件的指令,能够在服务器不停机的情况下完成特权固件的热升级,避免了服务器重启带来的业务中断,显著提高了系统可用性。

18、(2)本专利技术通过预触发tlb miss确保升级期间内存访问不受干扰,通过定死循环指令和触发异常错误的指令,安全引导和控制内核在升级过程中的行为,确保了升级过程中内核核心始终处于可控状态,有效防止了因操作不当造成的系统崩溃或者不可预测的行为。

本文档来自技高网...

【技术保护点】

1.一种基于申威架构特权固件热升级的方法,其特征在于,包括以下步骤:

2.根据权利要求1所述的基于申威架构特权固件热升级的方法,其特征在于,步骤S1中预先访问并触发待升级特权固件所在内存地址的TLB miss具体方式为:对物理内存地址0x10000进行一次访存动作以触发一次TLB miss。

3.根据权利要求1所述的基于申威架构特权固件热升级的方法,其特征在于,步骤S2特权固件内指令错误处理起始位置的物理内存地址为0xd80,将物理内存地址0xd80中的内容改成死循环指令0x13ffffff。

4.根据权利要求1所述的基于申威架构特权固件热升级的方法,其特征在于,步骤S3中触发异常错误的指令具体为0x7fffffff。

5.根据权利要求1所述的基于申威架构特权固件热升级的方法,其特征在于,步骤S5中将死循环指令修改为跳转至特权固件起始位置的指令,具体修改为0x13e0009f,翻译后对应的指令为0x10000,为特权固件的起始位置的物理内存地址。

6.一种电子终端,其特征在于,包括处理器及存储介质;

7.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,该程序被处理器执行时实现权利要求1~5任一项所述方法的步骤。

...

【技术特征摘要】

1.一种基于申威架构特权固件热升级的方法,其特征在于,包括以下步骤:

2.根据权利要求1所述的基于申威架构特权固件热升级的方法,其特征在于,步骤s1中预先访问并触发待升级特权固件所在内存地址的tlb miss具体方式为:对物理内存地址0x10000进行一次访存动作以触发一次tlb miss。

3.根据权利要求1所述的基于申威架构特权固件热升级的方法,其特征在于,步骤s2特权固件内指令错误处理起始位置的物理内存地址为0xd80,将物理内存地址0xd80中的内容改成死循环指令0x13ffffff。

4.根据权利要求1...

【专利技术属性】
技术研发人员:何升智通泽杭骁骞
申请(专利权)人:无锡先进技术研究院
类型:发明
国别省市:

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

1