CN118227277A - 芯片上操作的执行方法、装置、存储介质和电子设备 - Google Patents

芯片上操作的执行方法、装置、存储介质和电子设备 Download PDF

Info

Publication number
CN118227277A
CN118227277A CN202310812514.6A CN202310812514A CN118227277A CN 118227277 A CN118227277 A CN 118227277A CN 202310812514 A CN202310812514 A CN 202310812514A CN 118227277 A CN118227277 A CN 118227277A
Authority
CN
China
Prior art keywords
target
operating system
chip
rollback
memory
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CN202310812514.6A
Other languages
English (en)
Inventor
马文凯
王杰
马斌
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Suzhou Inspur Intelligent Technology Co Ltd
Original Assignee
Suzhou Inspur Intelligent Technology Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Suzhou Inspur Intelligent Technology Co Ltd filed Critical Suzhou Inspur Intelligent Technology Co Ltd
Priority to CN202310812514.6A priority Critical patent/CN118227277A/zh
Publication of CN118227277A publication Critical patent/CN118227277A/zh
Pending legal-status Critical Current

Links

Landscapes

  • Stored Programmes (AREA)

Abstract

本申请实施例提供了一种芯片上操作的执行方法、装置、存储介质和电子设备,其中,该方法包括:检测芯片的目标操作状态,其中,目标操作状态用于指示芯片是否待执行目标操作;在检测到目标操作状态用于指示芯片待执行目标操作的情况下,向芯片上运行的第二操作***发起目标操作指令,其中,目标操作指令用于指示对芯片执行目标操作,第二操作***的响应速度高于目标响应速度,第二操作***用于响应目标操作指令对芯片执行目标操作。通过本申请,解决了芯片上操作的执行效率较低的问题,进而达到了提高芯片上操作的执行效率的效果。

Description

芯片上操作的执行方法、装置、存储介质和电子设备
技术领域
本申请实施例涉及计算机领域,具体而言,涉及一种芯片上操作的执行方法、装置、存储介质和电子设备。
背景技术
芯片上的操作***能够完成各种各样的操作,但有些操作需要执行大量的重复动作,或者执行了大量的重复动作后只是实现一些简单的功能,这就会给操作***带来较大的负担,效率不高还会极大的增加处理器的占用率,导致操作***的性能大打折扣,操作的执行效率也受到严重的影响。
针对相关技术中芯片上操作的执行效率较低的问题,尚未提出有效的解决方案。
发明内容
本申请实施例提供了一种芯片上操作的执行方法、装置、存储介质和电子设备,以至少解决相关技术中芯片上操作的执行效率较低的问题。
根据本申请的一个实施例,提供了一种芯片上操作的执行方法,应用于芯片上运行的第一操作***,所述方法包括:
检测所述芯片的目标操作状态,其中,所述目标操作状态用于指示所述芯片是否待执行目标操作;
在检测到所述目标操作状态用于指示所述芯片待执行所述目标操作的情况下,向所述芯片上运行的第二操作***发起目标操作指令,其中,所述目标操作指令用于指示对所述芯片执行所述目标操作,所述第二操作***的响应速度高于目标响应速度,所述第二操作***用于响应所述目标操作指令对所述芯片执行所述目标操作。
在一个示例性实施例中,所述向所述芯片上运行的第二操作***发起目标操作指令,包括:
向共享内存中存储所述目标操作的操作信息;
向所述第二操作***发送所述目标操作对应的目标中断,其中,所述目标中断用于指示所述第二操作***使用所述操作信息执行所述目标操作。
在一个示例性实施例中,所述向共享内存中存储所述目标操作的操作信息,包括:
读取所述共享内存中元内存区中的记录,其中,所述共享内存包括内存区和所述元内存区,所述内存区被划分为多个内存单元,每个所述内存单元用于存储数据,所述元内存区用于记录所述内存区中各个内存单元的容量和占用状态;
根据读取到的记录从所述内存区中确定处于未占用状态且总容量大于或者等于所述操作信息的数据量的至少一个内存单元;
将所述操作信息存储至所述至少一个内存单元中,并将所述元内存区中记录的所述至少一个内存单元的占用状态转换为已占用状态。
在一个示例性实施例中,所述向所述第二操作***发送所述目标操作对应的目标中断,包括:
从具有对应关系的操作和中断号中获取所述目标操作对应的目标中断号;
向所述第二操作***发送所述目标中断号,其中,所述目标中断号用于指示所述第二操作***使用所述至少一个内存单元中存储的所述操作信息执行所述目标操作。
在一个示例性实施例中,在所述向所述第二操作***发送所述目标中断号之后,所述方法还包括:
所述第二操作***响应所述目标中断号读取所述元内存区中的记录;
所述第二操作***从读取到的记录中确定处于已占用状态的所述至少一个内存单元;
所述第二操作***从所述至少一个内存单元中读取所述操作信息,并将所述元内存区中记录的所述至少一个内存单元的占用状态转换为未占用状态;
所述第二操作***使用所述操作信息执行所述目标操作。
在一个示例性实施例中,所述检测所述芯片的目标操作状态,包括:检测所述芯片的升级状态,其中,所述升级状态用于指示所述芯片是否待升级;
所述向所述芯片上运行的第二操作***发起目标操作指令,包括:向所述第二操作***发起升级指令,其中,所述升级指令用于指示对所述芯片进行升级,所述第二操作***用于响应所述升级指令对所述芯片进行升级。
在一个示例性实施例中,所述检测所述芯片的升级状态,包括:
获取所述芯片的升级包;
在获取到所述升级包的情况下,确定检测到所述升级状态用于指示所述芯片待升级。
在一个示例性实施例中,所述获取所述芯片的升级包,包括以下之一:
接收所述芯片对应的主机***上的浏览器发送的所述升级包;
接收所述芯片上部署的命令行工作发送的所述升级包。
在一个示例性实施例中,所述向所述第二操作***发起升级指令,包括:
获取所述芯片的升级包的目标存储地址;
将所述目标存储地址存储至共享内存中;
向所述第二操作***发送第一中断指令,其中,所述第一中断指令用于指示所述第二操作***使用所述目标存储地址上存储的所述升级包升级所述芯片。
在一个示例性实施例中,所述获取所述芯片的升级包的目标存储地址,包括:
获取所述芯片的所述升级包;
将所述升级包存储至目标存储空间;
映射所述目标存储空间的物理地址作为所述目标存储地址。
在一个示例性实施例中,所述将所述目标存储地址存储至共享内存中,包括:
读取所述共享内存中元内存区中的记录,其中,所述共享内存包括内存区和所述元内存区,所述内存区被划分为多个内存单元,每个所述内存单元用于存储数据,所述元内存区用于记录所述内存区中各个内存单元的容量和占用状态;
根据读取到的记录从所述内存区中确定处于未占用状态且总容量大于或者等于所述目标存储地址的数据量的至少一个内存单元;
将所述目标存储地址存储至所述至少一个内存单元中,并将所述元内存区中记录的所述至少一个内存单元的占用状态转换为已占用状态。
在一个示例性实施例中,所述向所述第二操作***发送第一中断指令,包括:
从具有对应关系的操作和中断号中获取升级操作对应的升级中断号;
向所述第二操作***发送所述升级中断号,其中,所述升级中断号用于指示所述第二操作***使用所述至少一个内存单元中存储的所述目标存储地址对所述芯片进行升级。
在一个示例性实施例中,在所述向所述第二操作***发送所述升级中断号之后,所述方法还包括:
所述第二操作***响应所述升级中断号读取所述元内存区中的记录;
所述第二操作***从读取到的记录中确定处于已占用状态的所述至少一个内存单元;
所述第二操作***从所述至少一个内存单元中读取所述目标存储地址,并将所述元内存区中记录的所述至少一个内存单元的占用状态转换为未占用状态;
所述第二操作***从所述目标存储地址所指示的存储位置读取所述升级包;
所述第二操作***使用所述升级包对所述芯片进行升级。
在一个示例性实施例中,在所述检测所述芯片的升级状态之前,所述方法还包括:
在所述芯片上的目标处理器上启动所述第二操作***;
在所述第二操作***中创建升级进程,其中,所述升级进程用于接收所述升级指令并对所述芯片进行升级。
在一个示例性实施例中,所述检测所述芯片的目标操作状态,包括:检测所述芯片的回滚状态,其中,所述回滚状态用于指示所述芯片是否待执行回滚操作;
所述向所述芯片上运行的第二操作***发起目标操作指令,包括:向所述第二操作***发起回滚指令,其中,所述回滚指令用于指示执行目标回滚操作,所述第二操作***用于响应所述回滚指令执行所述目标回滚操作。
在一个示例性实施例中,所述检测所述芯片的回滚状态,包括:
检测所述第一操作***上是否存在待回滚的任务;
在获取到所述第一操作***上存在待回滚的目标任务的情况下,确定检测到所述回滚状态用于指示所述芯片待执行回滚操作。
在一个示例性实施例中,所述向所述第二操作***发起回滚指令,包括:
获取所述目标任务待执行的目标回滚操作的初始回滚位置和目标回滚位置;
将所述初始回滚位置和所述目标回滚位置存储至共享内存中;
向所述第二操作***发送第二中断指令,其中,所述第二中断指令用于指示所述第二操作***使用所述共享内存上存储的所述初始回滚位置和所述目标回滚位置执行所述目标回滚操作。
在一个示例性实施例中,所述将所述初始回滚位置和所述目标回滚位置存储至共享内存中,包括:
读取所述共享内存中元内存区中的记录,其中,所述共享内存包括内存区和所述元内存区,所述内存区被划分为多个内存单元,每个所述内存单元用于存储数据,所述元内存区用于记录所述内存区中各个内存单元的容量和占用状态;
根据读取到的记录从所述内存区中确定处于未占用状态且总容量大于或者等于所述初始回滚位置和所述目标回滚位置的总数据量的至少一个内存单元;
将所述初始回滚位置和所述目标回滚位置存储至所述至少一个内存单元中,并将所述元内存区中记录的所述至少一个内存单元的占用状态转换为已占用状态。
在一个示例性实施例中,所述向所述第二操作***发送第二中断指令,包括:
从具有对应关系的操作和中断号中获取回滚操作对应的回滚中断号;
向所述第二操作***发送所述回滚中断号,其中,所述回滚中断号用于指示所述第二操作***使用所述至少一个内存单元中存储的所述初始回滚位置和所述目标回滚位置进行回滚。
在一个示例性实施例中,在所述向所述第二操作***发送所述回滚中断号之后,所述方法还包括:
所述第二操作***响应所述回滚中断号读取所述元内存区中的记录;
所述第二操作***从读取到的记录中确定处于已占用状态的所述至少一个内存单元;
所述第二操作***从所述至少一个内存单元中读取所述初始回滚位置和所述目标回滚位置,并将所述元内存区中记录的所述至少一个内存单元的占用状态转换为未占用状态;
所述第二操作***将所述初始回滚位置所存储的数据复制到所述目标回滚位置上。
在一个示例性实施例中,在所述检测所述芯片的升级状态之前,所述方法还包括:
在所述芯片上的目标处理器上启动所述第二操作***;
在所述第二操作***中创建回滚进程,其中,所述回滚进程用于接收所述回滚指令并对所述芯片进行回滚。
根据本申请的另一个实施例,提供了一种芯片上操作的执行装置,应用于芯片上运行的第一操作***,所述装置包括:
检测模块,用于检测所述芯片的目标操作状态,其中,所述目标操作状态用于指示所述芯片是否待执行目标操作;
发起模块,用于在检测到所述目标操作状态用于指示所述芯片待执行所述目标操作的情况下,向所述芯片上运行的第二操作***发起目标操作指令,其中,所述目标操作指令用于指示对所述芯片执行所述目标操作,所述第二操作***的响应速度高于目标响应速度,所述第二操作***用于响应所述目标操作指令对所述芯片执行所述目标操作。
根据本申请的又一个实施例,还提供了一种计算机可读存储介质,所述计算机可读存储介质中存储有计算机程序,其中,所述计算机程序被设置为运行时执行上述任一项方法实施例中的步骤。
根据本申请的又一个实施例,还提供了一种电子设备,包括存储器和处理器,所述存储器中存储有计算机程序,所述处理器被设置为运行所述计算机程序以执行上述任一项方法实施例中的步骤。
通过本申请,芯片上运行的第一操作***对芯片的目标操作状态进行检测,从而检测出芯片是否待执行目标操作,如果检测到芯片待执行目标操作,则通过向第二操作***发起目标操作指令的方式指示芯片上运行的第二操作***来执行给目标操作,从而将原本由第一操作***执行的目标操作转移到第二操作***上执行,降低了第一操作***的处理器的占用率,提高了第一操作***的运行性能,同时第二操作***的响应速度高于目标响应速度,使得目标操作能够更迅速的被响应。因此,可以解决芯片上操作的执行效率较低的问题,达到提高芯片上操作的执行效率的技术效果。
附图说明
图1是本申请实施例的一种芯片上操作的执行方法的服务器的硬件结构框图;
图2是根据本申请实施例的一种芯片上操作的执行方法的流程图;
图3是根据本申请实施例的一种操作***交互过程的示意图;
图4是根据本申请实施例的一种共享内存的示意图;
图5是根据本申请实施例的一种芯片启动方式的示意图;
图6是根据本申请实施例的一种芯片升级方式的示意图;
图7是根据本申请实施例的一种芯片回滚方式的示意图;
图8是根据本申请实施例的一种芯片上操作的执行装置的结构框图。
具体实施方式
下文中将参考附图并结合实施例来详细说明本申请的实施例。
需要说明的是,本申请的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。
本申请实施例中所提供的方法实施例可以在移动终端、计算机终端、服务器或者类似的运算装置中执行。以运行在服务器上为例,图1是本申请实施例的一种芯片上操作的执行方法的服务器的硬件结构框图。如图1所示,服务器可以包括一个或多个(图1中仅示出一个)处理器102(处理器102可以包括但不限于微处理器MCU或可编程逻辑器件FPGA等的处理装置)和用于存储数据的存储器104,其中,上述服务器还可以包括用于通信功能的传输设备106以及输入输出设备108。本领域普通技术人员可以理解,图1所示的结构仅为示意,其并不对上述服务器的结构造成限定。例如,服务器还可包括比图1中所示更多或者更少的组件,或者具有与图1所示不同的配置。
存储器104可用于存储计算机程序,例如,应用软件的软件程序以及模块,如本申请实施例中的芯片上操作的执行方法对应的计算机程序,处理器102通过运行存储在存储器104内的计算机程序,从而执行各种功能应用以及数据处理,即实现上述的方法。存储器104可包括高速随机存储器,还可包括非易失性存储器,如一个或者多个磁性存储装置、闪存、或者其他非易失性固态存储器。在一些实例中,存储器104可进一步包括相对于处理器102远程设置的存储器,这些远程存储器可以通过网络连接至服务器。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
传输设备106用于经由一个网络接收或者发送数据。上述的网络具体实例可包括服务器的通信供应商提供的无线网络。在一个实例中,传输设备106包括一个网络适配器(Network Interface Controller,简称为NIC),其可通过基站与其他网络设备相连从而可与互联网进行通讯。在一个实例中,传输设备106可以为射频(Radio Frequency,简称为RF)模块,其用于通过无线方式与互联网进行通讯。
在本实施例中提供了一种芯片上操作的执行方法,应用于芯片上运行的第一操作***,图2是根据本申请实施例的一种芯片上操作的执行方法的流程图,如图2所示,该流程包括如下步骤:
步骤S202,检测芯片的目标操作状态,其中,目标操作状态用于指示芯片是否待执行目标操作;
步骤S204,在检测到目标操作状态用于指示芯片待执行目标操作的情况下,向芯片上运行的第二操作***发起目标操作指令,其中,目标操作指令用于指示对芯片执行目标操作,第二操作***的响应速度高于目标响应速度,第二操作***用于响应目标操作指令对芯片执行目标操作。
通过上述步骤,芯片上运行的第一操作***对芯片的目标操作状态进行检测,从而检测出芯片是否待执行目标操作,如果检测到芯片待执行目标操作,则通过向第二操作***发起目标操作指令的方式指示芯片上运行的第二操作***来执行给目标操作,从而将原本由第一操作***执行的目标操作转移到第二操作***上执行,降低了第一操作***的处理器的占用率,提高了第一操作***的运行性能,同时第二操作***的响应速度高于第一操作***的响应速度,使得目标操作能够更迅速的被响应。因此,可以解决芯片上操作的执行效率较低的问题,达到提高芯片上操作的执行效率的技术效果。
可选的,在本实施例中,上述步骤的执行主体可以为服务器,设备,主板,芯片,处理器,嵌入式***等上运行的操作***,但不限于此。
可选地,在本实施例中,上述第一操作***和第二操作***可以但不限于是两个异构的或者同构的操作***,即第一操作***和第二操作***的类型可以相同也可以不同。
以第一操作***和第二操作***为异构操作***为例,第一操作***和第二操作***可以是对响应时间的敏感程度不同的操作***,比如:第二操作***对响应时间的敏感程度高于第一操作***。或者,第一操作***和第二操作***可以是对资源的占用量不同的操作***,比如:第二操作***对业务对资源的占用量小于第一操作***。
上述第一操作***和第二操作***可以但不限于是部署在嵌入式***的处理器上的两个异构操作***,即嵌入式操作***,嵌入式操作***根据对响应时间的敏感程度可分为实时性操作***(RTOS)和非实时性操作***,实时性操作***可以但不限于包括FreeRTOS和RTLinux,非实时性操作***可以但不限于包括contiki、HeliOS和Linux等。
嵌入式***是用于控制、监视或者辅助操作机器和设备的装置,是一种专用的计算机***。嵌入式***是以应用为中心,以计算机技术为基础,软硬件可裁剪,适应应用***对功能、可靠性、成本、体积、功耗等严格要求的专用计算机***。从应用对象上加以定义来说,嵌入式***是软件和硬件的综合体,还可以涵盖机械等附属装置。
嵌入式***从硬件角度可以但不限于包括处理器,存储器和***电路等硬件设备,上述第一操作***和第二操作***基于嵌入式***的处理器运行。从软件角度可以但不限于包括底层驱动,操作***和应用程序等,上述第一操作***和第二操作***即为嵌入式***中的操作***。
上述芯片上操作的执行方法可以但不限于由第一操作***来执行,或者由第一操作***上设置的用于进行操作控制的功能模块来执行。
可选的,在本实施例中,上述芯片可以但不限于为任何允许多个操作***同时运行的芯片。比如:上述芯片可以是BMC(Baseboard Manager Controller,基板控制单元)芯片。BMC芯片的硬件可以但不限于包括SOC子模块和BMC带外子模块,其中,SOC子模块主要包含ARM核心(ARM Core 1, ARM Core 2,..., ARM Core X),其还可以但不限于包括DDR(Double Data Rate,双倍速率)4控制器(内存控制器)、MAC(Media Access ControlAddress,媒体访问控制地址)控制器(网络控制器)、SD(Secure Digital,安全数字)Card/eMMC(Embedded Multi Media Card,嵌入式多媒体卡)控制器(存储控制器)、PCIe RC(RootComplex,根复合体)控制器、SRAM(Static Random-Access Memory,静态随机存取存储器)及SPI控制器。
上述核心与各控制器通过AHB总线互连,实现核心与各控制器间的交互。同时,ARM核心间连接至AHB总线(比如:可以通过AXI(Advanced eXtensible Interface,高级可扩展接口)桥(Bridge)连接),核心间的通信通过AHB总线实现。此外,SOC子模块中还实现了AHB总线与APB总线的互连互通(比如:通过APB桥(APB Bridge)的转换实现),这样为SOC子模块访问APB总线上的外设提供一条物理通路。
DDR4控制器可以通过DDR4 PHY(Physical Layer,物理层)接口与其他部件或者设备相连,MAC控制器通过RGMII(Reduced Gigabit Media Independent Interface,吉比特介质独立接口)与其他部件或者设备相连,SD卡/eMMC控制器通过SD 接口与其他部件或者设备相连,PCIe RC控制器通过PCIe PHY接口与其他部件或者设备相连。
BMC带外子模块主要包含PWM、GPIO、FanTech(风扇调速)、mailbox(邮箱)等芯片外设对应的控制器,通过这些控制器能够实现对BMC的PECI通信(比如使用GPIO模拟PECI)、风扇调控等带外管理功能。该BMC带外子模块可以但不限于通过APB总线实现与SOC子模块的交互。
第一操作***可以是芯片上实现主要功能的操作***,比如:以BMC芯片为例,第一操作***可以是BMC芯片上用于主要实现服务器控制管理过程中主要任务的操作***,第二操作***可以是BMC芯片上辅助第一操作***的用于实现服务器控制管理过程中次要任务的操作***。
在上述步骤S202提供的技术方案中,目标操作可以但不限于是原本由第一操作***对芯片执行的操作。目标操作可以但不限于是原本由第一操作***对芯片执行的操作中具有操作难度较低,响应速度要求较高,资源占用量较小等等特点的操作。目标操作可以但不限于是具有复杂度低于一定阈值,实时性高于一定阈值,重复性高于一定阈值等等特点的操作。比如:芯片的镜像升级,回滚(Rollback),温度检测,湿度检测,信息采集等操作。
可选的,在本实施例中,目标操作状态用于指示芯片是否待执行目标操作。第一操作***可以但不限于通过各种方式确定目标操作是否待执行,比如:是否接收到操作请求,是否触发了操作指令,目标操作对应的标签为用于指示无需执行目标操作的特定值还是为用于指示需要执行目标操作的特定值等等方式。
目标操作可以但不限于为原本由第一操作***来执行的操作,在本实施例中,第一操作***只需检测目标操作是否待执行,即检测目标操作状态,第一操作***无需执行目标操作,从而降低了目标操作对于第一操作***的资源占用。
在上述步骤S204提供的技术方案中,检测到目标操作状态用于指示芯片待执行目标操作的方式可以但不限于包括:接收到目标操作的操作请求,检测到触发了目标操作的操作指令,目标操作对应的标签为用于指示需要执行目标操作的特定值等等。
可选的,在本实施例中,目标操作指令用于指示对芯片执行目标操作,目标操作指令可以但不限于为各种形式的指令,比如:中断形式的指令,操作码形式的指令等等。
如果采用中断形式的指令发送目标操作指令,可以通过软件实现,也可以通过硬件实现。在本实施例中,各个中断可以但不限于通过软件协议的方式在***间进行传输,或者也可以通过硬件模块进行传递。以硬件模块mailbox的形式传输中断为例,第一操作***和第二操作***之间可以建立mailbox通道,操作所需的数据可以通过特定的存储空间读写,中断可以通过mailbox通道传输。
可选的,在本实施例中,第二操作***也是芯片上运行的操作***,第二操作***的响应速度高于目标响应速度,该目标响应速度可以但不限于是第一操作***的响应速度,也可以但不限于是一定的阈值,从而其可以快速响应目标操作指令的指示,第一操作***无需执行目标操作,只需检测是否需要执行目标操作,如果有需要,则向第二操作***发送目标操作指令,由第二操作***来执行目标操作,一方面降低了目标操作对于第一操作***的资源占用,另一方面也能更快速的响应目标操作的执行需求,提高操作执行的效率。
可选的,在本实施例中,第二操作***在响应目标操作指令对芯片执行目标操作后,可以但不限于将操作结果告知给第一操作***,告知方式可以是类似于目标操作指令的发送方式,比如发送中断。
在一个示例性实施例中,可以但不限于通过以下方式向芯片上运行的第二操作***发起目标操作指令:向共享内存中存储目标操作的操作信息;向第二操作***发送目标操作对应的目标中断,其中,目标中断用于指示第二操作***使用操作信息执行目标操作。
可选的,在本实施例中,可以但不限于使用共享内存存储目标操作的操作信息,同时通过中断来指示第二操作***使用操作信息执行目标操作。操作信息可以但不限于是执行目标操作所需的任何信息,比如升级所使用的升级包,回滚的位置,温度检测的对象,湿度检测的对象等等。
可选的,在本实施例中,共享内存可以但不限于是允许第一操作***和第二操作***访问的内存空间,也就是说,第一操作***和第二操作***均具有共享内存的访问权限。
可选的,在本实施例中,第一操作***通过发送目标中断的方式通知第二操作***使用共享内存中的操作信息执行目标操作。不同的目标操作***可以但不限于对应不同的中断,第一操作***和第二操作***共同约定了中断的含义,因此只需传递中断即可指示相应的操作。
例如:图3是根据本申请实施例的一种操作***交互过程的示意图,如图3所示,第一操作***将操作信息存储至共享内存中,再向第二操作***发送目标中断,第二操作***即可响应该目标中断从共享内存中读取到操作信息。
在一个示例性实施例中,可以但不限于通过以下方式向共享内存中存储目标操作的操作信息:读取共享内存中元内存区中的记录,其中,共享内存包括内存区和元内存区,内存区被划分为多个内存单元,每个内存单元用于存储数据,元内存区用于记录内存区中各个内存单元的容量和占用状态;根据读取到的记录从内存区中确定处于未占用状态且总容量大于或者等于操作信息的数据量的至少一个内存单元;将操作信息存储至至少一个内存单元中,并将元内存区中记录的至少一个内存单元的占用状态转换为已占用状态。
可选的,在本实施例中,图4是根据本申请实施例的一种共享内存的示意图,如图4所示,共享内存可以但不限于被划分为内存区和元内存区,内存区又被划分为多个内存单元,每个内存单元用于存储数据,元内存区用于记录内存区中各个内存单元的容量和占用状态。元内存区可以划分为与内存单元的数量相同的存储片,每个存储片用于记录一个内存单元的大小以及被占用状态,内存单元的大小可以由内存单元的首地址和末尾地址表征,也可以由首地址和内存单元的长度来表征,占用状态可以但不限于包括已占用状态和未占用状态,可以由空闲标志的数值来表征。
可选的,在本实施例中,第一操作***可以但不限于通过读取元内存区中的记录找出处于未占用状态且总容量大于或者等于所述操作信息的数据量的至少一个内存单元来存储操作信息,并将存储了操作信息的至少一个内存单元的占用状态转换为已占用状态。从而使得第二操作***能够找到操作信息。
可选的,在本实施例中,至少一个内存单元可以但不限于是连续的至少一个内存单元,从而保证操作信息的连续存储。
在一个示例性实施例中,可以但不限于通过以下方式向第二操作***发送目标操作对应的目标中断:从具有对应关系的操作和中断号中获取目标操作对应的目标中断号;向第二操作***发送目标中断号,其中,目标中断号用于指示第二操作***使用至少一个内存单元中存储的操作信息执行目标操作。
可选的,在本实施例中,第一操作***中维护了具有对应关系的操作和中断号,不同的操作对应不同的中断号。通过向第二操作***发送不同的中断号指示第二操作***执行不同的目标操作。
在一个示例性实施例中,在向第二操作***发送目标中断号之后,可以但不限于通过以下方式执行目标操作:第二操作***响应目标中断号读取元内存区中的记录;第二操作***从读取到的记录中确定处于已占用状态的至少一个内存单元;第二操作***从至少一个内存单元中读取操作信息,并将元内存区中记录的至少一个内存单元的占用状态转换为未占用状态;第二操作***使用操作信息执行目标操作。
可选的,在本实施例中,第二操作***通过元内存区中的记录找到处于已占用状态的至少一个内存单元,从中读取操作信息同时将读取出操作信息的至少一个内存单元的占用状态转换为未占用状态,再使用读取到的操作信息执行目标中断号所对应的目标操作。
可选的,在本实施例中,第二操作***中也可以维护具有对应关系的操作和中断号,第二操作***根据接收到的目标中断号从中查找到目标操作,再使用操作信息来执行目标操作。
在一个示例性实施例中,如果目标操作为升级操作,可以但不限于通过以下方式检测芯片的目标操作状态:检测芯片的升级状态,其中,升级状态用于指示芯片是否待升级;此外,还可以但不限于通过以下方式向芯片上运行的第二操作***发起目标操作指令:向第二操作***发起升级指令,其中,升级指令用于指示对芯片进行升级,第二操作***用于响应升级指令对芯片进行升级。
可选的,在本实施例中,目标操作可以但不限于为升级操作,该升级操作可以但不限于芯片的版本升级,芯片中的功能升级等等。比如:BMC芯片镜像升级等等。
可选的,在本实施例中,如果第一操作***检测到芯片待升级,则可以向第二操作***发送升级指令来指示第二操作***对芯片进行升级。
在一个示例性实施例中,可以但不限于通过以下方式检测芯片的升级状态:获取芯片的升级包;在获取到升级包的情况下,确定检测到升级状态用于指示芯片待升级。
可选的,在本实施例中,第一操作***可以但不限于通过确定是否获取到升级包来确定是否检测到升级状态用于指示芯片待升级。
在一个示例性实施例中,可以但不限于通过以下方式之一获取芯片的升级包:
方式一,接收芯片对应的主机***上的浏览器发送的升级包;
方式二,接收芯片上部署的命令行工作发送的升级包。
可选的,在本实施例中,第一操作***可以但不限于通过带外途径获取升级包,比如:接收芯片上部署的命令行工作发送的升级包。或者通过带内途径获取升级包,比如:接收芯片对应的主机***上的浏览器发送的升级包。
可选的,在本实施例中,用户可以通过带内或带外升级工具将待升级的镜像(即上述升级包)上传到芯片,上传的方式可以但不限于包含浏览器、命令行工具等。
在一个示例性实施例中,可以但不限于通过以下方式向第二操作***发起升级指令:获取芯片的升级包的目标存储地址;将目标存储地址存储至共享内存中;向第二操作***发送第一中断指令,其中,第一中断指令用于指示第二操作***使用目标存储地址上存储的升级包升级芯片。
可选的,在本实施例中,如果目标操作是升级操作,那么存储到共享内存的操作信息可以但不限于为升级包的目标存储地址。第一操作***获取到升级包后将其存储在目标存储地址,并将目标存储地址存储到共享内存中,通过第一中断指令通知第二操作***读取共享内存,第二操作***可以从共享内存中读取到目标存储地址,从而使用目标存储地址上存储的升级包升级芯片。
在一个示例性实施例中,可以但不限于通过以下方式获取芯片的升级包的目标存储地址:获取芯片的升级包;将升级包存储至目标存储空间;映射目标存储空间的物理地址作为目标存储地址。
可选的,在本实施例中,第一操作***将用户上传的升级包(可以是镜像数据)以文件的形式存储到以SDRAM(Synchronous Dynamic Random Access Memory,同步动态随机存取存储器)为介质的文件***的一个特定的路径下(即目标存储空间)。再映射出目标存储空间的物理地址作为目标存储地址存储到共享内存中。
可选的,在本实施例中,第一操作***可以但不限于使用文件映射函数(比如:Linux操作***下的文件映射函数)映射出升级包的物理地址。
在一个示例性实施例中,可以但不限于通过以下方式将目标存储地址存储至共享内存中:读取共享内存中元内存区中的记录,其中,共享内存包括内存区和元内存区,内存区被划分为多个内存单元,每个内存单元用于存储数据,元内存区用于记录内存区中各个内存单元的容量和占用状态;根据读取到的记录从内存区中确定处于未占用状态且总容量大于或者等于目标存储地址的数据量的至少一个内存单元;将目标存储地址存储至至少一个内存单元中,并将元内存区中记录的至少一个内存单元的占用状态转换为已占用状态。
可选的,在本实施例中,第一操作***可以但不限于通过读取元内存区中的记录找出处于未占用状态且总容量大于或者等于目标存储地址的数据量的至少一个内存单元来存储目标存储地址,并将存储了目标存储地址的至少一个内存单元的占用状态转换为已占用状态。从而使得第二操作***能够找到目标存储地址。
可选的,在本实施例中,至少一个内存单元可以但不限于是连续的至少一个内存单元,从而保证目标存储地址的连续存储。
在一个示例性实施例中,可以但不限于通过以下方式向第二操作***发送第一中断指令:从具有对应关系的操作和中断号中获取升级操作对应的升级中断号;向第二操作***发送升级中断号,其中,升级中断号用于指示第二操作***使用至少一个内存单元中存储的目标存储地址对芯片进行升级。
可选的,在本实施例中,升级操作在操作和中断号的对应关系中对应了升级中断号,第一操作***将其查找到后发送给第二操作***。
在一个示例性实施例中,在向第二操作***发送升级中断号之后,可以但不限于通过以下方式对芯片进行升级:第二操作***响应升级中断号读取元内存区中的记录;第二操作***从读取到的记录中确定处于已占用状态的至少一个内存单元;第二操作***从至少一个内存单元中读取目标存储地址,并将元内存区中记录的至少一个内存单元的占用状态转换为未占用状态;第二操作***从目标存储地址所指示的存储位置读取升级包;第二操作***使用升级包对芯片进行升级。
可选的,在本实施例中,第二操作***通过元内存区中的记录找到处于已占用状态的至少一个内存单元,从中读取目标存储地址同时将读取出目标存储地址的至少一个内存单元的占用状态转换为未占用状态,再使用读取到的目标存储地址找到升级包,使用升级包对芯片执行升级中断号所指示的升级。
可选的,在本实施例中,第二操作***中也可以维护具有对应关系的操作和中断号,第二操作***根据接收到的升级中断号从中查找到升级操作,再使用升级包来执行升级操作。
例如:以芯片为BMC芯片,第一操作***为Linux操作***,第二操作***为RTOS为例,当需要对BMC镜像进行升级的时候,Linux操作***接收通过各种途径(比如:通过HTTPS(Hypertext Transfer Protocol Secure,超文本传输安全协议)、PCIE(PeripheralComponent Interconnect Express,高速串行计算机扩展总线标准)、USB(UniversalSerial Bus,通用串行总线)等)传送的升级包,然后将升级包存储到某一个特定的文件夹下(即上述共享内存),然后再映射出此文件夹下的镜像文件的物理地址,将此地址传送给RTOS。RTOS使用该地址下的升级包对BMC镜像进行升级。
在一个示例性实施例中,在检测芯片的升级状态之前,可以但不限于通过以下方式启动第二操作***:在芯片上的目标处理器上启动第二操作***;在第二操作***中创建升级进程,其中,升级进程用于接收升级指令并对芯片进行升级。
可选的,在本实施例中,在启动第二操作***的过程中在第二操作***中创建升级进程,在需要对芯片升级时,第一操作***就可以通过升级指令调用该升级进程运行来实现芯片的升级。
在一个可选的实施方式中,提供了一种芯片的启动方式,图5是根据本申请实施例的一种芯片启动方式的示意图,如图5所示,以第一操作***为Linux,第二操作***为RTOS,该启动方式包括以下过程:
过程1:上电唤醒CPU0;
过程2:CPU0运行BootRom(启动引导存储器)中的指定程序,加载RTOS***启动;
过程3:RTOS***启动过程中调用SPL(二级程序加载器),创建BMC升级进程(等到Linux发送对应信号时候才开始执行);
过程4:SPL阶段引导Uboot(启动引导程序)启动;
过程5:Uboot阶段会加载Linux内核,并启动BMC业务程序。
在一个可选的实施方式中,提供了一种芯片的升级方式,图6是根据本申请实施例的一种芯片升级方式的示意图,如图6所示,以第一操作***为Linux,第二操作***为RTOS,该升级方式包括以下过程:
过程1:用户通过带内或带外升级工具将待升级的镜像(即上述升级包)上传到BMC,上传的方式包含浏览器、命令行工具等;
过程2:Linux将用户上传的镜像以文件的形式存储到以SDRAM为介质的文件***的一个特定的路径下;
过程3:通过Linux下的文件映射函数,映射出升级镜像的物理地址(即上述目标存储地址);
过程4:Linux将映射出来的物理地址传输到RTOS操作***;
过程5:RTOS开始将对应的镜像写到Flash中,直到所有数据写入完成,从而实现BMC芯片的升级。
在一个示例性实施例中,如果目标操作为回滚操作,可以但不限于通过以下方式检测芯片的目标操作状态:检测芯片的回滚状态,其中,回滚状态用于指示芯片是否待执行回滚操作;此外,还可以但不限于通过以下方式向芯片上运行的第二操作***发起目标操作指令:向第二操作***发起回滚指令,其中,回滚指令用于指示执行目标回滚操作,第二操作***用于响应回滚指令执行目标回滚操作。
可选的,在本实施例中,目标操作可以但不限于为回滚操作,该回滚操作可以但不限于芯片的版本升级的回滚,芯片中的功能升级的回滚等等。比如:BMC芯片镜像升级的回滚等等。
可选的,在本实施例中,如果第一操作***检测到芯片待回滚,则可以向第二操作***发送回滚指令来指示第二操作***对芯片进行回滚。
在一个示例性实施例中,可以但不限于通过以下方式检测芯片的回滚状态:检测第一操作***上是否存在待回滚的任务;在获取到第一操作***上存在待回滚的目标任务的情况下,确定检测到回滚状态用于指示芯片待执行回滚操作。
可选的,在本实施例中,第一操作***可以但不限于通过检测第一操作***上是否存在待回滚的任务来确定是否检测到回滚状态用于指示芯片待执行回滚操作。
在一个示例性实施例中,可以但不限于通过以下方式向第二操作***发起回滚指令:获取目标任务待执行的目标回滚操作的初始回滚位置和目标回滚位置;将初始回滚位置和目标回滚位置存储至共享内存中;向第二操作***发送第二中断指令,其中,第二中断指令用于指示第二操作***使用共享内存上存储的初始回滚位置和目标回滚位置执行目标回滚操作。
可选的,在本实施例中,如果目标操作是回滚操作,那么存储到共享内存的操作信息可以但不限于为初始回滚位置和目标回滚位置。第一操作***获取到初始回滚位置和目标回滚位置后将其存储在共享内存中,通过第二中断指令通知第二操作***读取共享内存,第二操作***可以从共享内存中读取到初始回滚位置和目标回滚位置,从而使用初始回滚位置和目标回滚位置执行回滚操作。
可选的,在本实施例中,如果回滚操作时将一片Flash中的内容复制到另一片Flash中,例如将Flash0中的内容拷贝到Flash1中,那么初始回滚位置可以为Flash0的地址,目标回滚位置可以为Flash1的地址。
在一个示例性实施例中,可以但不限于通过以下方式将初始回滚位置和目标回滚位置存储至共享内存中:读取共享内存中元内存区中的记录,其中,共享内存包括内存区和元内存区,内存区被划分为多个内存单元,每个内存单元用于存储数据,元内存区用于记录内存区中各个内存单元的容量和占用状态;根据读取到的记录从内存区中确定处于未占用状态且总容量大于或者等于初始回滚位置和目标回滚位置的总数据量的至少一个内存单元;将初始回滚位置和目标回滚位置存储至至少一个内存单元中,并将元内存区中记录的至少一个内存单元的占用状态转换为已占用状态。
可选的,在本实施例中,第一操作***可以但不限于通过读取元内存区中的记录找出处于未占用状态且总容量大于或者等于初始回滚位置和目标回滚位置的总数据量的至少一个内存单元来存储初始回滚位置和目标回滚位置,并将存储了初始回滚位置和目标回滚位置的至少一个内存单元的占用状态转换为已占用状态。从而使得第二操作***能够找到初始回滚位置和目标回滚位置。
可选的,在本实施例中,至少一个内存单元可以但不限于是连续的至少一个内存单元,从而保证初始回滚位置和目标回滚位置的连续存储。
在一个示例性实施例中,可以但不限于通过以下方式向第二操作***发送第二中断指令:从具有对应关系的操作和中断号中获取回滚操作对应的回滚中断号;向第二操作***发送回滚中断号,其中,回滚中断号用于指示第二操作***使用至少一个内存单元中存储的初始回滚位置和目标回滚位置进行回滚。
可选的,在本实施例中,回滚操作在操作和中断号的对应关系中对应了回滚中断号,第一操作***将其查找到后发送给第二操作***。
在一个示例性实施例中,在向第二操作***发送回滚中断号之后,可以但不限于通过以下方式对芯片进行回滚:第二操作***响应回滚中断号读取元内存区中的记录;第二操作***从读取到的记录中确定处于已占用状态的至少一个内存单元;第二操作***从至少一个内存单元中读取初始回滚位置和目标回滚位置,并将元内存区中记录的至少一个内存单元的占用状态转换为未占用状态;第二操作***将初始回滚位置所存储的数据复制到目标回滚位置上。
可选的,在本实施例中,第二操作***通过元内存区中的记录找到处于已占用状态的至少一个内存单元,从中读取初始回滚位置和目标回滚位置同时将读取出初始回滚位置和目标回滚位置的至少一个内存单元的占用状态转换为未占用状态,再使用读取到的初始回滚位置和目标回滚位置执行回滚操作,即将初始回滚位置所存储的数据复制到目标回滚位置上。
可选的,在本实施例中,第二操作***中也可以维护具有对应关系的操作和中断号,第二操作***根据接收到的回滚中断号从中查找到回滚操作,再使用初始回滚位置和目标回滚位置来执行回滚操作。
例如:以芯片为BMC芯片,第一操作***为Linux操作***,第二操作***为RTOS为例,当需要对BMC的镜像进行Rollback(回滚)的时候,Linux操作***通过IPI(Inter-Processor Interrupt,核间中断)通知RTOS操作***,需要将一片Flash中的内容复制到另一片Flash中,例如将Flash0中的内容拷贝到Flash1中。由RTOS实现BMC的镜像的Rollback。
通过利用RTOS操作***去升级BMC镜像和Rollback,可以很大程度上减少升级和Rollback的时间,同时还会降低Linux端的CPU核占用率,使其可以将资源释放到其他任务中去。
在一个示例性实施例中,在检测芯片的升级状态之前,可以但不限于通过以下方式启动第二操作***:在芯片上的目标处理器上启动第二操作***;在第二操作***中创建回滚进程,其中,回滚进程用于接收回滚指令并对芯片进行回滚。
可选的,在本实施例中,在启动第二操作***的过程中在第二操作***中创建回滚进程,在需要对芯片回滚时,第一操作***就可以通过回滚指令调用该回滚进程运行来实现芯片的回滚。
可选的,在本实施例中,如图5所示的芯片启动方式中,在创建BMC升级进程时还可以创建回滚进程。
在一个可选的实施方式中,提供了一种芯片的回滚方式,图7是根据本申请实施例的一种芯片回滚方式的示意图,如图7所示,以第一操作***为Linux,第二操作***为RTOS,该回滚方式包括以下过程:
过程1:Linux操作***启动后,检查是否有需要Rollback(回滚)的任务,如果是则进行后续步骤,如果否,则直接退出;
过程2:Linux操作***侧开始通知RTOS操作***需要进行Rollback操作;
过程3:RTOS操作***执行该回滚操作,将一片Flash中的内容复制到另外一片Flash中,并将结果反馈给Linux侧。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到根据上述实施例的方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质(如ROM/RAM、磁碟、光盘)中,包括若干指令用以使得一台终端设备(可以是手机,计算机,服务器,或者网络设备等)执行本申请各个实施例所述的方法。
在本实施例中还提供了一种芯片上操作的执行装置,应用于芯片上运行的第一操作***,该装置用于实现上述实施例及优选实施方式,已经进行过说明的不再赘述。如以下所使用的,术语“模块”可以实现预定功能的软件和/或硬件的组合。尽管以下实施例所描述的装置较佳地以软件来实现,但是硬件,或者软件和硬件的组合的实现也是可能并被构想的。
图8是根据本申请实施例的一种芯片上操作的执行装置的结构框图,如图8所示,该装置包括:
检测模块82,用于检测所述芯片的目标操作状态,其中,所述目标操作状态用于指示所述芯片是否待执行目标操作;
发起模块84,用于在检测到所述目标操作状态用于指示所述芯片待执行所述目标操作的情况下,向所述芯片上运行的第二操作***发起目标操作指令,其中,所述目标操作指令用于指示对所述芯片执行所述目标操作,所述第二操作***的响应速度高于目标响应速度,所述第二操作***用于响应所述目标操作指令对所述芯片执行所述目标操作。
通过上述装置,芯片上运行的第一操作***对芯片的目标操作状态进行检测,从而检测出芯片是否待执行目标操作,如果检测到芯片待执行目标操作,则通过向第二操作***发起目标操作指令的方式指示芯片上运行的第二操作***来执行给目标操作,从而将原本由第一操作***执行的目标操作转移到第二操作***上执行,降低了第一操作***的处理器的占用率,提高了第一操作***的运行性能,同时第二操作***的响应速度高于第一操作***的响应速度,使得目标操作能够更迅速的被响应。因此,可以解决芯片上操作的执行效率较低的问题,达到提高芯片上操作的执行效率的技术效果。
在一个示例性实施例中,所述发起模块,用于:
向共享内存中存储所述目标操作的操作信息;
向所述第二操作***发送所述目标操作对应的目标中断,其中,所述目标中断用于指示所述第二操作***使用所述操作信息执行所述目标操作。
在一个示例性实施例中,所述发起模块,用于:
读取所述共享内存中元内存区中的记录,其中,所述共享内存包括内存区和所述元内存区,所述内存区被划分为多个内存单元,每个所述内存单元用于存储数据,所述元内存区用于记录所述内存区中各个内存单元的容量和占用状态;
根据读取到的记录从所述内存区中确定处于未占用状态且总容量大于或者等于所述操作信息的数据量的至少一个内存单元;
将所述操作信息存储至所述至少一个内存单元中,并将所述元内存区中记录的所述至少一个内存单元的占用状态转换为已占用状态。
在一个示例性实施例中,所述发起模块,用于:
从具有对应关系的操作和中断号中获取所述目标操作对应的目标中断号;
向所述第二操作***发送所述目标中断号,其中,所述目标中断号用于指示所述第二操作***使用所述至少一个内存单元中存储的所述操作信息执行所述目标操作。
在一个示例性实施例中,所述装置还包括:
第一读取模块,用于在所述向所述第二操作***发送所述目标中断号之后,所述第二操作***响应所述目标中断号读取所述元内存区中的记录;
第一确定模块,用于所述第二操作***从读取到的记录中确定处于已占用状态的所述至少一个内存单元;
第一处理模块,用于所述第二操作***从所述至少一个内存单元中读取所述操作信息,并将所述元内存区中记录的所述至少一个内存单元的占用状态转换为未占用状态;
第一执行模块,用于所述第二操作***使用所述操作信息执行所述目标操作。
在一个示例性实施例中,所述检测模块,用于:检测所述芯片的升级状态,其中,所述升级状态用于指示所述芯片是否待升级;
所述发起模块,用于:向所述第二操作***发起升级指令,其中,所述升级指令用于指示对所述芯片进行升级,所述第二操作***用于响应所述升级指令对所述芯片进行升级。
在一个示例性实施例中,所述检测模块,用于:
获取所述芯片的升级包;
在获取到所述升级包的情况下,确定检测到所述升级状态用于指示所述芯片待升级。
在一个示例性实施例中,所述检测模块,用于以下之一:
接收所述芯片对应的主机***上的浏览器发送的所述升级包;
接收所述芯片上部署的命令行工作发送的所述升级包。
在一个示例性实施例中,所述发起模块,用于:
获取所述芯片的升级包的目标存储地址;
将所述目标存储地址存储至共享内存中;
向所述第二操作***发送第一中断指令,其中,所述第一中断指令用于指示所述第二操作***使用所述目标存储地址上存储的所述升级包升级所述芯片。
在一个示例性实施例中,所述发起模块,用于:
获取所述芯片的所述升级包;
将所述升级包存储至目标存储空间;
映射所述目标存储空间的物理地址作为所述目标存储地址。
在一个示例性实施例中,所述发起模块,用于:
读取所述共享内存中元内存区中的记录,其中,所述共享内存包括内存区和所述元内存区,所述内存区被划分为多个内存单元,每个所述内存单元用于存储数据,所述元内存区用于记录所述内存区中各个内存单元的容量和占用状态;
根据读取到的记录从所述内存区中确定处于未占用状态且总容量大于或者等于所述目标存储地址的数据量的至少一个内存单元;
将所述目标存储地址存储至所述至少一个内存单元中,并将所述元内存区中记录的所述至少一个内存单元的占用状态转换为已占用状态。
在一个示例性实施例中,所述发起模块,用于:
从具有对应关系的操作和中断号中获取升级操作对应的升级中断号;
向所述第二操作***发送所述升级中断号,其中,所述升级中断号用于指示所述第二操作***使用所述至少一个内存单元中存储的所述目标存储地址对所述芯片进行升级。
在一个示例性实施例中,所述装置还包括:
第二读取模块,用于在所述向所述第二操作***发送所述升级中断号之后,所述第二操作***响应所述升级中断号读取所述元内存区中的记录;
第二确定模块,用于所述第二操作***从读取到的记录中确定处于已占用状态的所述至少一个内存单元;
第二处理模块,用于所述第二操作***从所述至少一个内存单元中读取所述目标存储地址,并将所述元内存区中记录的所述至少一个内存单元的占用状态转换为未占用状态;
第三读取模块,用于所述第二操作***从所述目标存储地址所指示的存储位置读取所述升级包;
升级模块,用于所述第二操作***使用所述升级包对所述芯片进行升级。
在一个示例性实施例中,所述装置还包括:
第一启动模块,用于在所述检测所述芯片的升级状态之前,在所述芯片上的目标处理器上启动所述第二操作***;
第一创建模块,用于在所述第二操作***中创建升级进程,其中,所述升级进程用于接收所述升级指令并对所述芯片进行升级。
在一个示例性实施例中,所述检测模块,用于:检测所述芯片的回滚状态,其中,所述回滚状态用于指示所述芯片是否待执行回滚操作;
所述发起模块,用于:向所述第二操作***发起回滚指令,其中,所述回滚指令用于指示执行目标回滚操作,所述第二操作***用于响应所述回滚指令执行所述目标回滚操作。
在一个示例性实施例中,所述检测模块,用于:
检测所述第一操作***上是否存在待回滚的任务;
在获取到所述第一操作***上存在待回滚的目标任务的情况下,确定检测到所述回滚状态用于指示所述芯片待执行回滚操作。
在一个示例性实施例中,所述发起模块,用于:
获取所述目标任务待执行的目标回滚操作的初始回滚位置和目标回滚位置;
将所述初始回滚位置和所述目标回滚位置存储至共享内存中;
向所述第二操作***发送第二中断指令,其中,所述第二中断指令用于指示所述第二操作***使用所述共享内存上存储的所述初始回滚位置和所述目标回滚位置执行所述目标回滚操作。
在一个示例性实施例中,所述发起模块,用于:
读取所述共享内存中元内存区中的记录,其中,所述共享内存包括内存区和所述元内存区,所述内存区被划分为多个内存单元,每个所述内存单元用于存储数据,所述元内存区用于记录所述内存区中各个内存单元的容量和占用状态;
根据读取到的记录从所述内存区中确定处于未占用状态且总容量大于或者等于所述初始回滚位置和所述目标回滚位置的总数据量的至少一个内存单元;
将所述初始回滚位置和所述目标回滚位置存储至所述至少一个内存单元中,并将所述元内存区中记录的所述至少一个内存单元的占用状态转换为已占用状态。
在一个示例性实施例中,所述发起模块,用于:
从具有对应关系的操作和中断号中获取回滚操作对应的回滚中断号;
向所述第二操作***发送所述回滚中断号,其中,所述回滚中断号用于指示所述第二操作***使用所述至少一个内存单元中存储的所述初始回滚位置和所述目标回滚位置进行回滚。
在一个示例性实施例中,所述装置还包括:
第四读取模块,用于在所述向所述第二操作***发送所述回滚中断号之后,所述第二操作***响应所述回滚中断号读取所述元内存区中的记录;
第三确定模块,用于所述第二操作***从读取到的记录中确定处于已占用状态的所述至少一个内存单元;
第五读取模块,用于所述第二操作***从所述至少一个内存单元中读取所述初始回滚位置和所述目标回滚位置,并将所述元内存区中记录的所述至少一个内存单元的占用状态转换为未占用状态;
复制模块,用于所述第二操作***将所述初始回滚位置所存储的数据复制到所述目标回滚位置上。
在一个示例性实施例中,所述装置还包括:
第二启动模块,用于在所述检测所述芯片的升级状态之前,在所述芯片上的目标处理器上启动所述第二操作***;
第二创建模块,用于在所述第二操作***中创建回滚进程,其中,所述回滚进程用于接收所述回滚指令并对所述芯片进行回滚。
需要说明的是,上述各个模块是可以通过软件或硬件来实现的,对于后者,可以通过以下方式实现,但不限于此:上述模块均位于同一处理器中;或者,上述各个模块以任意组合的形式分别位于不同的处理器中。
本申请的实施例还提供了一种计算机可读存储介质,该计算机可读存储介质中存储有计算机程序,其中,该计算机程序被设置为运行时执行上述任一项方法实施例中的步骤。
在一个示例性实施例中,上述计算机可读存储介质可以包括但不限于:U盘、只读存储器(Read-Only Memory,简称为ROM)、随机存取存储器(Random Access Memory,简称为RAM)、移动硬盘、磁碟或者光盘等各种可以存储计算机程序的介质。
本申请的实施例还提供了一种电子设备,包括存储器和处理器,该存储器中存储有计算机程序,该处理器被设置为运行计算机程序以执行上述任一项方法实施例中的步骤。
在一个示例性实施例中,上述电子设备还可以包括传输设备以及输入输出设备,其中,该传输设备和上述处理器连接,该输入输出设备和上述处理器连接。
本实施例中的具体示例可以参考上述实施例及示例性实施方式中所描述的示例,本实施例在此不再赘述。
显然,本领域的技术人员应该明白,上述的本申请的各模块或各步骤可以用通用的计算装置来实现,它们可以集中在单个的计算装置上,或者分布在多个计算装置所组成的网络上,它们可以用计算装置可执行的程序代码来实现,从而,可以将它们存储在存储装置中由计算装置来执行,并且在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤,或者将它们分别制作成各个集成电路模块,或者将它们中的多个模块或步骤制作成单个集成电路模块来实现。这样,本申请不限制于任何特定的硬件和软件结合。
以上所述仅为本申请的优选实施例而已,并不用于限制本申请,对于本领域的技术人员来说,本申请可以有各种更改和变化。凡在本申请的原则之内,所作的任何修改、等同替换、改进等,均应包含在本申请的保护范围之内。

Claims (24)

1.一种芯片上操作的执行方法,其特征在于,应用于芯片上运行的第一操作***,所述方法包括:
检测所述芯片的目标操作状态,其中,所述目标操作状态用于指示所述芯片是否待执行目标操作;
在检测到所述目标操作状态用于指示所述芯片待执行所述目标操作的情况下,向所述芯片上运行的第二操作***发起目标操作指令,其中,所述目标操作指令用于指示对所述芯片执行所述目标操作,所述第二操作***的响应速度高于目标响应速度,所述第二操作***用于响应所述目标操作指令对所述芯片执行所述目标操作。
2.根据权利要求1所述的方法,其特征在于,所述向所述芯片上运行的第二操作***发起目标操作指令,包括:
向共享内存中存储所述目标操作的操作信息;
向所述第二操作***发送所述目标操作对应的目标中断,其中,所述目标中断用于指示所述第二操作***使用所述操作信息执行所述目标操作。
3.根据权利要求2所述的方法,其特征在于,所述向共享内存中存储所述目标操作的操作信息,包括:
读取所述共享内存中元内存区中的记录,其中,所述共享内存包括内存区和所述元内存区,所述内存区被划分为多个内存单元,每个所述内存单元用于存储数据,所述元内存区用于记录所述内存区中各个内存单元的容量和占用状态;
根据读取到的记录从所述内存区中确定处于未占用状态且总容量大于或者等于所述操作信息的数据量的至少一个内存单元;
将所述操作信息存储至所述至少一个内存单元中,并将所述元内存区中记录的所述至少一个内存单元的占用状态转换为已占用状态。
4.根据权利要求3所述的方法,其特征在于,所述向所述第二操作***发送所述目标操作对应的目标中断,包括:
从具有对应关系的操作和中断号中获取所述目标操作对应的目标中断号;
向所述第二操作***发送所述目标中断号,其中,所述目标中断号用于指示所述第二操作***使用所述至少一个内存单元中存储的所述操作信息执行所述目标操作。
5.根据权利要求4所述的方法,其特征在于,在所述向所述第二操作***发送所述目标中断号之后,所述方法还包括:
所述第二操作***响应所述目标中断号读取所述元内存区中的记录;
所述第二操作***从读取到的记录中确定处于已占用状态的所述至少一个内存单元;
所述第二操作***从所述至少一个内存单元中读取所述操作信息,并将所述元内存区中记录的所述至少一个内存单元的占用状态转换为未占用状态;
所述第二操作***使用所述操作信息执行所述目标操作。
6.根据权利要求1所述的方法,其特征在于,
所述检测所述芯片的目标操作状态,包括:检测所述芯片的升级状态,其中,所述升级状态用于指示所述芯片是否待升级;
所述向所述芯片上运行的第二操作***发起目标操作指令,包括:向所述第二操作***发起升级指令,其中,所述升级指令用于指示对所述芯片进行升级,所述第二操作***用于响应所述升级指令对所述芯片进行升级。
7.根据权利要求6所述的方法,其特征在于,所述检测所述芯片的升级状态,包括:
获取所述芯片的升级包;
在获取到所述升级包的情况下,确定检测到所述升级状态用于指示所述芯片待升级。
8.根据权利要求7所述的方法,其特征在于,所述获取所述芯片的升级包,包括以下之一:
接收所述芯片对应的主机***上的浏览器发送的所述升级包;
接收所述芯片上部署的命令行工作发送的所述升级包。
9.根据权利要求6所述的方法,其特征在于,所述向所述第二操作***发起升级指令,包括:
获取所述芯片的升级包的目标存储地址;
将所述目标存储地址存储至共享内存中;
向所述第二操作***发送第一中断指令,其中,所述第一中断指令用于指示所述第二操作***使用所述目标存储地址上存储的所述升级包升级所述芯片。
10.根据权利要求9所述的方法,其特征在于,所述获取所述芯片的升级包的目标存储地址,包括:
获取所述芯片的所述升级包;
将所述升级包存储至目标存储空间;
映射所述目标存储空间的物理地址作为所述目标存储地址。
11.根据权利要求9所述的方法,其特征在于,所述将所述目标存储地址存储至共享内存中,包括:
读取所述共享内存中元内存区中的记录,其中,所述共享内存包括内存区和所述元内存区,所述内存区被划分为多个内存单元,每个所述内存单元用于存储数据,所述元内存区用于记录所述内存区中各个内存单元的容量和占用状态;
根据读取到的记录从所述内存区中确定处于未占用状态且总容量大于或者等于所述目标存储地址的数据量的至少一个内存单元;
将所述目标存储地址存储至所述至少一个内存单元中,并将所述元内存区中记录的所述至少一个内存单元的占用状态转换为已占用状态。
12.根据权利要求11所述的方法,其特征在于,所述向所述第二操作***发送第一中断指令,包括:
从具有对应关系的操作和中断号中获取升级操作对应的升级中断号;
向所述第二操作***发送所述升级中断号,其中,所述升级中断号用于指示所述第二操作***使用所述至少一个内存单元中存储的所述目标存储地址对所述芯片进行升级。
13.根据权利要求12所述的方法,其特征在于,在所述向所述第二操作***发送所述升级中断号之后,所述方法还包括:
所述第二操作***响应所述升级中断号读取所述元内存区中的记录;
所述第二操作***从读取到的记录中确定处于已占用状态的所述至少一个内存单元;
所述第二操作***从所述至少一个内存单元中读取所述目标存储地址,并将所述元内存区中记录的所述至少一个内存单元的占用状态转换为未占用状态;
所述第二操作***从所述目标存储地址所指示的存储位置读取所述升级包;
所述第二操作***使用所述升级包对所述芯片进行升级。
14.根据权利要求6所述的方法,其特征在于,在所述检测所述芯片的升级状态之前,所述方法还包括:
在所述芯片上的目标处理器上启动所述第二操作***;
在所述第二操作***中创建升级进程,其中,所述升级进程用于接收所述升级指令并对所述芯片进行升级。
15.根据权利要求1所述的方法,其特征在于,
所述检测所述芯片的目标操作状态,包括:检测所述芯片的回滚状态,其中,所述回滚状态用于指示所述芯片是否待执行回滚操作;
所述向所述芯片上运行的第二操作***发起目标操作指令,包括:向所述第二操作***发起回滚指令,其中,所述回滚指令用于指示执行目标回滚操作,所述第二操作***用于响应所述回滚指令执行所述目标回滚操作。
16.根据权利要求15所述的方法,其特征在于,所述检测所述芯片的回滚状态,包括:
检测所述第一操作***上是否存在待回滚的任务;
在获取到所述第一操作***上存在待回滚的目标任务的情况下,确定检测到所述回滚状态用于指示所述芯片待执行回滚操作。
17.根据权利要求16所述的方法,其特征在于,所述向所述第二操作***发起回滚指令,包括:
获取所述目标任务待执行的目标回滚操作的初始回滚位置和目标回滚位置;
将所述初始回滚位置和所述目标回滚位置存储至共享内存中;
向所述第二操作***发送第二中断指令,其中,所述第二中断指令用于指示所述第二操作***使用所述共享内存上存储的所述初始回滚位置和所述目标回滚位置执行所述目标回滚操作。
18.根据权利要求17所述的方法,其特征在于,所述将所述初始回滚位置和所述目标回滚位置存储至共享内存中,包括:
读取所述共享内存中元内存区中的记录,其中,所述共享内存包括内存区和所述元内存区,所述内存区被划分为多个内存单元,每个所述内存单元用于存储数据,所述元内存区用于记录所述内存区中各个内存单元的容量和占用状态;
根据读取到的记录从所述内存区中确定处于未占用状态且总容量大于或者等于所述初始回滚位置和所述目标回滚位置的总数据量的至少一个内存单元;
将所述初始回滚位置和所述目标回滚位置存储至所述至少一个内存单元中,并将所述元内存区中记录的所述至少一个内存单元的占用状态转换为已占用状态。
19.根据权利要求18所述的方法,其特征在于,所述向所述第二操作***发送第二中断指令,包括:
从具有对应关系的操作和中断号中获取回滚操作对应的回滚中断号;
向所述第二操作***发送所述回滚中断号,其中,所述回滚中断号用于指示所述第二操作***使用所述至少一个内存单元中存储的所述初始回滚位置和所述目标回滚位置进行回滚。
20.根据权利要求19所述的方法,其特征在于,在所述向所述第二操作***发送所述回滚中断号之后,所述方法还包括:
所述第二操作***响应所述回滚中断号读取所述元内存区中的记录;
所述第二操作***从读取到的记录中确定处于已占用状态的所述至少一个内存单元;
所述第二操作***从所述至少一个内存单元中读取所述初始回滚位置和所述目标回滚位置,并将所述元内存区中记录的所述至少一个内存单元的占用状态转换为未占用状态;
所述第二操作***将所述初始回滚位置所存储的数据复制到所述目标回滚位置上。
21.根据权利要求15所述的方法,其特征在于,在所述检测所述芯片的升级状态之前,所述方法还包括:
在所述芯片上的目标处理器上启动所述第二操作***;
在所述第二操作***中创建回滚进程,其中,所述回滚进程用于接收所述回滚指令并对所述芯片进行回滚。
22.一种芯片上操作的执行装置,其特征在于,应用于芯片上运行的第一操作***,所述装置包括:
检测模块,用于检测所述芯片的目标操作状态,其中,所述目标操作状态用于指示所述芯片是否待执行目标操作;
发起模块,用于在检测到所述目标操作状态用于指示所述芯片待执行所述目标操作的情况下,向所述芯片上运行的第二操作***发起目标操作指令,其中,所述目标操作指令用于指示对所述芯片执行所述目标操作,所述第二操作***的响应速度高于目标响应速度,所述第二操作***用于响应所述目标操作指令对所述芯片执行所述目标操作。
23.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质中存储有计算机程序,其中,所述计算机程序被处理器执行时实现所述权利要求1至21任一项中所述的方法的步骤。
24.一种电子设备,包括存储器、处理器以及存储在所述存储器上并可在所述处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现所述权利要求1至21任一项中所述的方法的步骤。
CN202310812514.6A 2023-07-04 2023-07-04 芯片上操作的执行方法、装置、存储介质和电子设备 Pending CN118227277A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202310812514.6A CN118227277A (zh) 2023-07-04 2023-07-04 芯片上操作的执行方法、装置、存储介质和电子设备

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202310812514.6A CN118227277A (zh) 2023-07-04 2023-07-04 芯片上操作的执行方法、装置、存储介质和电子设备

Publications (1)

Publication Number Publication Date
CN118227277A true CN118227277A (zh) 2024-06-21

Family

ID=91496762

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202310812514.6A Pending CN118227277A (zh) 2023-07-04 2023-07-04 芯片上操作的执行方法、装置、存储介质和电子设备

Country Status (1)

Country Link
CN (1) CN118227277A (zh)

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN116302141A (zh) * 2023-05-12 2023-06-23 苏州浪潮智能科技有限公司 串口切换方法、芯片及串口切换***

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN116302141A (zh) * 2023-05-12 2023-06-23 苏州浪潮智能科技有限公司 串口切换方法、芯片及串口切换***

Similar Documents

Publication Publication Date Title
US9026687B1 (en) Host based enumeration and configuration for computer expansion bus controllers
US20070006020A1 (en) Inter-host data transfer method, program, and system
RU2614569C2 (ru) Стойка с функцией автоматического восстановления и способ автоматического восстановления для этой стойки
CN116244229B (zh) 硬件控制器的访问方法、装置、存储介质和电子设备
KR101825561B1 (ko) 다중 운영 체제 디바이스에 대한 동적 재할당
CN116541227B (zh) 故障诊断方法、装置、存储介质、电子装置及bmc芯片
CN116243996B (zh) 业务的运行切换方法、装置、存储介质及电子装置
CN116521209B (zh) 操作***的升级方法及装置、存储介质及电子设备
CN116302141B (zh) 串口切换方法、芯片及串口切换***
CN116627520B (zh) 基板管理控制器的***运行方法以及基板管理控制器
CN116719700B (zh) 服务器主机***的硬件分区的监测方法及装置
CN111857303B (zh) 一种fpga复位方法、装置、***和电子设备
CN116257364A (zh) ***间的资源占用方法、装置、存储介质及电子装置
CN116830082A (zh) 嵌入式***的启动控制方法和装置、存储介质和电子设备
CN116881929B (zh) 安全防护方法、装置、电子设备以及基板控制器芯片
CN116644011B (zh) 一种i2c设备的快速识别方法、装置、设备及存储介质
CN106330595B (zh) 分布式平台的心跳检测方法和装置
CN116848519A (zh) 硬件接口信号的生成方法、装置及电子设备
CN118227277A (zh) 芯片上操作的执行方法、装置、存储介质和电子设备
WO2022160893A1 (zh) 存储区域共享方法及电子设备
EP4250128A1 (en) Message notification method and apparatus
CN110572387B (zh) 一种链路层处理方法
CN117971135B (zh) 存储设备的访问方法、装置、存储介质和电子设备
CN117149471B (zh) 通信方法、装置、嵌入式***、存储介质以及电子设备
CN117687703B (zh) 服务器的启动方法、装置、***、存储介质和电子设备

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination