CN116302006B - 模拟器的热升级方法及相关装置 - Google Patents

模拟器的热升级方法及相关装置 Download PDF

Info

Publication number
CN116302006B
CN116302006B CN202310561432.9A CN202310561432A CN116302006B CN 116302006 B CN116302006 B CN 116302006B CN 202310561432 A CN202310561432 A CN 202310561432A CN 116302006 B CN116302006 B CN 116302006B
Authority
CN
China
Prior art keywords
simulator
channel
data packet
upgrade
buffer
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.)
Active
Application number
CN202310561432.9A
Other languages
English (en)
Other versions
CN116302006A (zh
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.)
Zhuhai Xingyun Zhilian Technology Co Ltd
Original Assignee
Zhuhai Xingyun Zhilian 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 Zhuhai Xingyun Zhilian Technology Co Ltd filed Critical Zhuhai Xingyun Zhilian Technology Co Ltd
Priority to CN202310561432.9A priority Critical patent/CN116302006B/zh
Publication of CN116302006A publication Critical patent/CN116302006A/zh
Application granted granted Critical
Publication of CN116302006B publication Critical patent/CN116302006B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/65Updates
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Debugging And Monitoring (AREA)

Abstract

本申请提供了一种模拟器的热升级方法及相关装置,该方法应用于数据处理系统中的数据处理器DPU。获取升级指令;根据升级指令生成热升级标记,并将热升级标记与需要升级的第一模拟器进行关联,以禁止第一模拟器的配置变更;创建与第一模拟器结构一致的第二模拟器、以及与第二模拟器对应的第二缓冲区;在第二模拟器中配置第一模拟器的第一设备信息;确定第一模拟器的第一数据包,第一数据包是指第一进程当前执行完成的第二数据包的下一个数据包;启动第二模拟器,从第一数据包开始继续运行目标程序;停止运行第一模拟器。这样,使得模拟器能够在运行的过程中进行热升级,降低了升级对模拟器工作效率的影响。

Description

模拟器的热升级方法及相关装置
技术领域
本申请属于互联网一般数据处理技术领域,具体涉及一种模拟器的热升级方法及相关装置。
背景技术
目前,现有技术中,模拟器升级前需要先删除所有虚拟设备,然后停止模拟器的工作,升级完成之后开启新的模拟器,再重新创建所有虚拟设备。而虚拟设备的删除和创建都会触发Host侧热插拔流程,从而降低升级效率。
发明内容
本申请提供了一种模拟器的热升级方法及相关装置,以期提高模拟器进行热升级的效率。
第一方面,本申请提供了一种模拟器的热升级方法,应用于数据处理系统中的数据处理器DPU;所述方法包括:
获取升级指令;
根据所述升级指令生成热升级标记,并将所述热升级标记与需要升级的第一模拟器进行关联,所述热升级标记用于指示所关联的第一模拟器处于升级状态、并禁止对所述第一模拟器进行配置变更,所述第一模拟器与第一缓冲区对应,所述第一缓冲区用于存储主机端的报文;
创建与所述第一模拟器结构一致的第二模拟器;
创建与所述第二模拟器对应的第二缓冲区,所述第二缓冲区与所述第一缓冲区的存储内容一致;
在所述第二模拟器中配置所述第一模拟器的第一设备信息;
确定所述第一模拟器的第一数据包,所述第一数据包是指所述第一进程当前执行完成的第二数据包的下一个数据包;
启动所述第二模拟器,从所述第一数据包开始继续运行所述目标程序;
停止运行所述第一模拟器。
第二方面,本申请提供了一种模拟器的热升级装置,应用于数据处理系统中的数据处理器DPU,所述装置包括:
获取单元,用于获取升级指令;
标记单元,用于根据所述升级指令生成热升级标记,并将所述热升级标记与需要升级的第一模拟器进行关联,所述热升级标记用于指示所关联的第一模拟器处于升级状态、并禁止对所述第一模拟器进行配置变更,所述第一模拟器与第一缓冲区对应,所述第一缓冲区用于存储主机端的报文;
创建单元,用于创建与所述第一模拟器结构一致的第二模拟器;以及,创建与所述第二模拟器对应的第二缓冲区,所述第二缓冲区与所述第一缓冲区的存储内容一致;
配置单元,用于在所述第二模拟器中配置所述第一模拟器的第一设备信息;
确定单元,用于确定所述第一模拟器的第一数据包,所述第一数据包是指所述第一进程当前执行完成的第二数据包的下一个数据包;
启动单元,用于启动所述第二模拟器,从所述第一数据包开始继续运行所述目标程序;
停止单元,用于停止运行所述第一模拟器。
第三方面,本申请提供了一种电子设备,包括处理器、存储器、通信接口,以及一个或多个程序,所述一个或多个程序被存储在所述存储器中,并且被配置由所述处理器执行,所述程序包括用于执行本申请第一方面或第二方面中任一方面的步骤的指令。
第四方面,本申请提供了一种计算机存储介质,存储用于电子数据交换的计算机程序,其中,所述计算机程序使得计算机执行如本申请第一方面或第二方面中任一方面所描述的部分或全部步骤。
第五方面,本申请提供了一种计算机程序产品,其中,上述计算机程序产品包括存储了计算机程序的非瞬时性计算机可读存储介质,上述计算机程序可操作来使计算机执行如本申请第一方面或第二方面中任一方面所描述的部分或全部步骤。该计算机程序产品可以为一个软件安装包。
可以看出,本申请中,首先获取升级指令;根据所述升级指令生成热升级标记,并将所述热升级标记与需要升级的第一模拟器进行关联,以禁止第一模拟器的配置变更;再创建与所述第一模拟器结构一致的第二模拟器、以及与所述第二模拟器对应的第二缓冲区;然后在所述第二模拟器中配置所述第一模拟器的第一设备信息;再确定所述第一模拟器的第一数据包,所述第一数据包是指所述第一进程当前执行完成的第二数据包的下一个数据包;最后启动所述第二模拟器,从所述第一数据包开始继续运行所述目标程序,并停止运行所述第一模拟器,即完成整个热升级过程。这样,使得模拟器能够在运行的过程中进行热升级,降低了软件升级对模拟器工作效率的影响。
附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1a是本申请实施例提供的一种系统架构示意图;
图1b是本申请实施例提供的一种电子设备的结构示意图;
图2是本申请实施例提供的一种模拟器的热升级方法的流程示意图;
图3是本申请实施例提供的一种模拟器的热升级装置的结构示意图。
具体实施方式
为了使本技术领域的人员更好地理解本申请方案,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
本申请的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别不同对象,而不是用于描述特定顺序。此外,术语“包括”和“具有”以及它们任何变形,意图在于覆盖不排他的包含。例如包含了一系列步骤或单元的过程、方法、系统、产品或设备没有限定于已列出的步骤或单元,而是可选地还包括没有列出的步骤或单元,或可选地还包括对于这些过程、方法、系统、产品或设备固有的其他步骤或单元。
在本文中提及“实施例”意味着,结合实施例描述的特定特征、结构或特性可以包含在本申请的至少一个实施例中。在说明书中的各个位置出现该短语并不一定均是指相同的实施例,也不是与其它实施例互斥的独立的或备选的实施例。本领域技术人员显式地和隐式地理解的是,本文所描述的实施例可以与其它实施例相结合。
下面先对本申请涉及到的相关术语进行介绍。
DPU(Data Processing Unit,数据处理单元):它是最新发展起来的专用处理器的一个大类,是继CPU、GPU之后,数据中心场景中的第三颗重要的算力芯片,为高带宽、低延迟、数据密集的计算场景提供计算引擎。DPU将作为CPU的卸载引擎,释放CPU的算力到上层应用。
PCI即Peripheral Component Interconnect,中文意思是“外围器件互联”,是由PCISIG (PCI Special Interest Group)推出的一种局部并行总线标准。PCI总线是一种树型结构,并且独立于CPU总线,可以和CPU总线并行操作。PCI总线上可以挂接PCI设备和PCI桥片,PCI总线上只允许有一个PCI主设备,其他的均为PCI 从设备,而且读写操作只能在主从设备之间进行,从设备之间的数据交换需要通过主设备中转。
PCI Express由早期的PCI扩展衍生而来并且兼容PCI,两者的主要区别在于并行到串行的切换,且速率更快。PCI Express是一种分层协议,由事务层,数据链路层和物理层组成。
Linux设备驱动模型中bus、device和driver三者的关系如下:
bus是物理总线的抽象;device是设备抽象,存在于bus之上;driver是驱动抽象,注册到bus上,用于驱动bus上的特定device;device和driver通过bus提供的match方法来匹配(通常是使用设备ID进行匹配)。driver匹配到device后,调用driver的probe接口驱动device。一个driver可以驱动多个相同的设备或者不同的设备。
目前,在DPU场景下,为了使DPU对主机模拟出多个不同类型的标准PCIE设备,DPU的ECPU侧软件需要模拟出整个PCIE拓扑结构和不同类型的PCIE设备;主机侧操作系统则枚举PCIE拓扑和PCIE设备;最后主机侧的driver通过不同类型的Probe接口驱动不同类型PCIE设备。
而现有模拟器(Emulator)升级前需要先删除所有PCIE设备,然后停止模拟器,升级完成之后开启新的模拟器,再重新创建所有PCIE设备;PCIE设备的删除和创建都会触发主机侧热插拔流程,进而导致热升级效率降低。
为解决上述问题,本申请实施例提供了一种模拟器的热升级方法。该方法可以应用于数据处理器DPU中的模拟器热升级场景中。可以先获取升级指令;再根据所述升级指令生成热升级标记,并将所述热升级标记与需要升级的第一模拟器进行关联,以指示所关联的第一模拟器处于升级状态、并禁止对所述第一模拟器进行配置变更,所述第一模拟器与第一缓冲区对应,所述第一缓冲区用于存储主机端的报文;然后创建与所述第一模拟器结构一致的第二模拟器;以及创建与所述第二模拟器对应的第二缓冲区,所述第二缓冲区与所述第一缓冲区的存储内容一致;在所述第二模拟器中配置所述第一模拟器的第一设备信息;确定所述第一模拟器的第一数据包,所述第一数据包是指所述第一进程当前执行完成的第二数据包的下一个数据包;启动所述第二模拟器,从所述第一数据包开始继续运行所述目标程序;停止运行所述第一模拟器。本方案可以适用于多种场景,包括但不限于上述提到的应用场景。
下面介绍本申请实施例涉及的系统架构。
本申请还提供了一种数据处理系统100,如图1a所示,所述数据处理系统100包括数据处理器DPU和目标主机Host,所述DPU包括主控制器120和硬件模块110。所述主控制器120模拟生成有至少一个模拟器(例如图1a中的第一模拟器121和第二模拟器122)和至少一个缓冲区(例如图1a中的第一缓冲区123和第二缓冲区124),所述至少一个模拟器用于执行相应的程序。所述硬件模块110包括至少一个TLP通道(例如图1a中的第一通道111和第二通道112),所述至少一个TLP通道在确定接收到报文和/或数据包时,向对应的缓冲区写入所要处理的数据包,进而由模拟器调用缓冲区的数据包进行处理。所述主控制器可以是ECPU或其他能够实现相同功能的控制器件。
本申请还提供了一种电子设备10,如图1b所示,其包括至少一个处理器(processor)11;显示屏12;以及存储器(memory)13,还可以包括通信接口(CommunicationsInterface)15和总线14。其中,处理器11、显示屏12、存储器13和通信接口15可以通过总线14完成相互间的通信。显示屏12设置为显示初始设置模式中预设的用户引导界面。通信接口15可以传输信息。处理器11可以调用存储器13中的逻辑指令,以执行上述实施例中的方法。
可选的,所述电子设备10可以是移动电子设备,也可以是电子设备或其他设备,在此不做唯一性限定。
此外,上述的存储器13中的逻辑指令可以通过软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。
存储器13作为一种计算机可读存储介质,可设置为存储软件程序、计算机可执行程序,如本公开实施例中的方法对应的程序指令或模块。处理器11通过运行存储在存储器13中的软件程序、指令或模块,从而执行功能应用以及数据处理,即实现上述实施例中的方法。
存储器13可包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需的应用程序;存储数据区可存储根据电子设备10的使用所创建的数据等。此外,存储器13可以包括高速随机存取存储器,还可以包括非易失性存储器。例如,U盘、移动硬盘、只读存储器(Read-Only Memory,ROM)、随机存取存储器(Random Access Memory,RAM)、磁碟或者光盘等多种可以存储程序代码的介质,也可以是暂态存储介质。
下面对具体的方法进行详细的介绍。
请参阅图2,本申请还提供了一种模拟器的热升级方法,应用于数据处理系统中的数据处理器DPU所述方法包括:
步骤201、获取升级指令。
具体实现中,所述升级指令可以是用户输入,用于启动升级所述第一模拟器的升级流程。
步骤202、根据所述升级指令生成热升级标记,并将所述热升级标记与需要升级的第一模拟器进行关联。
其中,所述热升级标记用于指示所关联的第一模拟器处于升级状态、并禁止对所述第一模拟器进行配置变更,所述第一模拟器与第一缓冲区对应,所述第一缓冲区用于存储主机端的报文。
示例的,所述第一模拟器执行第一程序;所述第二模拟器用于运行目标程序,所述目标程序为所述第一程序的升级软件版本。
具体实现中,为了使得主控制器识别出所述第一模拟器处于热升级状态,需要为所述第一模拟器关联热升级标签。所述主控制器检测到所述第一模拟器关联有所述热升级标签,则确定所述第一模拟器处于热升级状态,当所述第一模拟器删除所述热升级标签时,则退出热升级状态。
步骤203、创建与所述第一模拟器结构一致的第二模拟器。
具体实现中,本实施例通过新建第二模拟器的方式来进行热升级,因此更新后的第二模拟器的结构需要和第一模拟器的结构一致,以使得升级前后第二模拟器与第一模拟器能够执行相同的目标程序。具体的,所述主控制器中每个模拟器会生成相应的PCIE拓扑,然后在每个PCIE拓扑节点上创建对应的PCIE设备,因此,所述结构一致是指第一模拟器和第二模拟器之间的PCIE拓扑和PCIE设备结构一致。在升级完成之后,所述第二模拟器和所述第一模拟器所执行的目标程序的版本不同。
步骤204、创建与所述第二模拟器对应的第二缓冲区,所述第二缓冲区与所述第一缓冲区的存储内容一致。
具体实现中,所述第二缓冲区中所存储的内容与所述第一缓冲区一致,在第二模拟器工作开始之后,停用所述第一缓冲区,此时第二缓冲区可以接收新的报文或数据包。当第二模拟器工作时,由所述第二缓冲区接收所述目标主机的报文或数据包,再由所述第二模拟器调用所述第二缓存区中的所述报文或数据包。
步骤205、在所述第二模拟器中配置所述第一模拟器的第一设备信息。
在一个可能的实施例中,所述在所述第二模拟器中配置所述第一模拟器的第一设备信息,包括:确定所述第一模拟器中当前的第一设备状态、第一队列状态和第一PCIE配置空间状态;根据所述第一设备状态、所述第一队列状态和所述第一PCIE配置空间状态,配置所述第二模拟器,以使得所述第二模拟器的设备信息与所述第一模拟器的所述第一设备信息一致。
具体的,所述根据所述第一设备状态、所述第一队列状态和所述第一PCIE配置空间状态,配置所述第二模拟器,包括:在所述第二模拟器中按照第一顺序恢复所述第一设备状态、所述第一队列状态和所述第一PCIE配置空间状态。
示例的,所述第一设备信息包括设备状态、队列状态和PCIE配置空间状态。所述设备状态包括设备基本属性信息和当前工作状态,以virtio-net设备为例,基本属性信息包括队列个数、队列深度、MTU、MAC地址等;当前工作状态包括与Host侧驱动协商的特性、VLAN信息、混杂模式信息等。所述队列状态包括队列的深度、队列基地址、队列使用的中断号、队列使用的硬件队列号和硬件中断号等。所述PCIE配置空间状态包括PCIE配置空间头状态和当前所使用的能力集状态,比如SR-IOV/ACS/ARI/MSIX等扩展能力集状态。
具体实现中,需要先确定所述第一模拟器中当前的第一设备信息是哪些,然后复制所述第一设备信息,然后再确定在所述第二模拟器中恢复所述第一设备状态的第一顺序,所述第一顺序可以是后进先出的顺序,例如,当以设备状态、队列状态和PCIE配置空间状态的顺序保存所述第一设备信息时,则以PCIE配置空间状态、队列状态、设备状态的顺序在所述第二模拟器中进行重新配置。此外,还可以通过其他顺序在所述第二模拟器中恢复所述第一设备信息。
可以看出,本实施例中,直接在第二模拟器中重新配置第一模拟器中的第一设备信息,使得第二模拟器能够在升级完成之后实现与第一模拟器同样的功能。
步骤206、确定所述第一模拟器的第一数据包,所述第一数据包是指所述第一进程当前执行完成的第二数据包的下一个数据包。
在一个可能的实施例中,所述确定所述第一模拟器的第一数据包,包括:获取所述第一模拟器发送的第一标识;根据所述第一标识确定所述第一数据包。
具体实现中,所述第一模拟器中获取到所述第一数据包对应的第一标识。在获取到所述第一标识之后,则确定所述第一数据包;若所述第二缓冲区中存储有所述第一数据包,则在所述第二缓冲区中调用所述第一数据包进行处理,若所述第二缓冲区中未存储有所述第一数据包,则停止处理,在接收到下一次处理指令之后再进行相应的处理。
可以看出,本实施例中,确定了第一进程处理的最后一个TLP包的下一个位置。
步骤207、启动所述第二模拟器,从所述第一数据包开始继续运行所述目标程序。
具体实现中,在为所述第二模拟器配置好第一设备信息之后,启动所述第二模拟器从所述第一数据包开始运行所述目标程序,所述目标程序是已更新的新版本的软件程序。这样,可以使得主控制器端的模拟器不需要停止工作,而主机端也不感知主控制器端的模拟器的软件更新,使得热升级过程中不影响主控制器和主机的工作状态。
步骤208、停止运行所述第一模拟器。
具体实现中,在所述第一模拟器执行完成所述第二数据包之后,停止运行所述第一模拟器,由第二模拟器从第一数据包开始处理,完成旧版本与新版本的交替。
可以看出,本实施例中,获取升级指令;根据所述升级指令生成热升级标记,并将所述热升级标记与需要升级的第一模拟器进行关联,以禁止第一模拟器的配置变更;再创建与所述第一模拟器结构一致的第二模拟器、以及与所述第二模拟器对应的第二缓冲区;然后在所述第二模拟器中配置所述第一模拟器的第一设备信息;再确定所述第一模拟器的第一数据包,所述第一数据包是指所述第一进程当前执行完成的第二数据包的下一个数据包;最后启动所述第二模拟器,从所述第一数据包开始继续运行所述目标程序,并停止运行所述第一模拟器,即完成整个热升级过程。这样,使得所述DPU能够在运行的过程中进行热升级,降低了软件升级对DPU工作效率的影响。
在一个可能的实施例中,所述DPU包括硬件模块,所述硬件模块包括第一通道;所述创建与所述第二模拟器对应的第二缓冲区之后,所述方法还包括:在所述硬件模块中配置第二通道,所述第二通道与所述第一通道的结构一致;将所述第二通道与所述第二缓冲区进行关联,并使能所述第二通道。具体的,所述第二通道包括多个寄存器,所述多个寄存器包括地址寄存器和使能寄存器;所述将所述第二通道与所述第二缓冲区进行关联,并使能所述第二通道,包括:向所述地址寄存器写入所述第二缓冲区的地址;启动所述使能寄存器,以使能所述第二通道。
其中,所述硬件模块可以是FPGA、ASIC等硬件器件,也可以是其他能够实现相同功能的电路或集成电路,在此不做唯一性限定。
具体实现中,所述主控制器中包括多个寄存器,多个寄存器构成硬件资源池。在热升级之前,硬件资源池中分配一组寄存器作为第一通道,由第一通道与主机端通信以接收主机端下发的报文和/或数据包,在接收到报文和/或数据包之后,根据第一通道的地址寄存器中存储的第一缓冲区地址,将报文和/或数据包写入第一缓冲区中,第一模拟器调用第一缓冲区中的报文和/或数据包进行处理。在热升级时,硬件资源池中分配一组与第一通道相同类型的寄存器作为第二通道,然后在第二通道的地址寄存器中写入第二缓冲区的地址,以使得在接收到主机端的报文和/或数据包之后,能够根据存储在第二通道的地址寄存器中的地址,将报文和/或数据包写入第二缓冲区中;当启动第二通道中的使能寄存器时,第二通道被使能,由第二模拟器则调用第二缓冲区中的报文和/或数据包进行处理。
可以看出,本实施例中,基于硬件模块中的双TLP通道功能,生成两个相同的TLP通道,同时存储主机端下发的TLP报文和数据包,使得模拟器能够在运行的过程中进行热升级,降低了升级对模拟器工作效率的影响。
在一个可能的实施例中,启动所述第二模拟器,从所述第一数据包开始继续运行所述目标程序,包括:启动所述第二模拟器;在所述第二缓冲区写入第一数据包;所述第二模拟器调用第一数据包进行处理。
具体实现中,当第二模拟器中配置好第一设备信息之后,启动所述第二模拟器,确定第二缓冲区中是否存在第一数据包;若第二缓冲区中存在第一数据包,则由第二模拟器从第二缓冲区中调用第一数据包进行处理;若第二缓冲区中不存在第一数据包,则停止处理,待硬件模块向第二缓冲区中写入第一数据包时,再继续进行处理。
可以看出,本实施例中,通过由第二模拟器从第一模拟器处理完成的数据包的下一个数据包开始处理,使得模拟器能够在运行的过程中进行热升级,降低了升级对模拟器工作效率的影响。
上述主要从方法侧执行过程的角度对本申请实施例的方案进行了介绍。可以理解的是,移动电子设备为了实现上述功能,其包含了执行各个功能相应的硬件结构和/或软件模块。本领域技术人员应该很容易意识到,结合本文中所提供的实施例描述的各示例的单元及算法步骤,本申请能够以硬件或硬件和计算机软件的结合形式来实现。某个功能究竟以硬件还是计算机软件驱动硬件的方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。
本申请实施例可以根据上述方法示例对电子设备进行功能单元的划分,例如,可以对应各个功能划分各个功能单元,也可以将两个或两个以上的功能集成在一个处理单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。需要说明的是,本申请实施例中对单元的划分是示意性的,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式。
请参阅图3,本申请还提供一种模拟器的热升级装置30,应用于数据处理系统中的数据处理器DPU;所述模拟器的热升级装置30包括:
获取单元31,用于获取升级指令;
标记单元32,用于根据所述升级指令生成热升级标记,并将所述热升级标记与需要升级的第一模拟器进行关联,所述热升级标记用于指示所关联的第一模拟器处于升级状态、并禁止对所述第一模拟器进行配置变更,所述第一模拟器与第一缓冲区对应,所述第一缓冲区用于存储主机端的报文;
创建单元33,用于创建与所述第一模拟器结构一致的第二模拟器;以及,创建与所述第二模拟器对应的第二缓冲区,所述第二缓冲区与所述第一缓冲区的存储内容一致;
配置单元34,用于在所述第二模拟器中配置所述第一模拟器的第一设备信息;
确定单元35,用于确定所述第一模拟器的第一数据包,所述第一数据包是指所述第一进程当前执行完成的第二数据包的下一个数据包;
启动单元36,用于启动所述第二模拟器,从所述第一数据包开始继续运行所述目标程序;
停止单元37,用于停止运行所述第一模拟器。
可以看出,本申请实施例中,首先获取升级指令;根据所述升级指令生成热升级标记,并将所述热升级标记与需要升级的第一模拟器进行关联,以禁止第一模拟器的配置变更;再创建与所述第一模拟器结构一致的第二模拟器、以及与所述第二模拟器对应的第二缓冲区;然后在所述第二模拟器中配置所述第一模拟器的第一设备信息;再确定所述第一模拟器的第一数据包,所述第一数据包是指所述第一进程当前执行完成的第二数据包的下一个数据包;最后启动所述第二模拟器,从所述第一数据包开始继续运行所述目标程序,并停止运行所述第一模拟器,即完成整个热升级过程。这样,使得模拟器能够在运行的过程中进行热升级,降低了软件升级对模拟器工作效率的影响。
在一个可能的实施例中,所述DPU包括硬件模块,所述硬件模块包括第一通道;所述创建与所述第二模拟器对应的第二缓冲区之后,所述装置还包括:所述创建单元,还用于在所述硬件模块中配置第二通道,所述第二通道与所述第一通道的结构一致;所述启动单元,还用于将所述第二通道与所述第二缓冲区进行关联,并使能所述第二通道。
在一个可能的实施例中,所述第二通道包括多个寄存器,所述多个寄存器包括地址寄存器和使能寄存器;所述将所述第二通道与所述第二缓冲区进行关联,并使能所述第二通道,所述启动单元具体用于:向所述地址寄存器写入所述第二缓冲区的地址;启动所述使能寄存器,以使能所述第二通道。
在一个可能的实施例中,启动所述第二模拟器,从所述第一数据包开始继续运行所述目标程序,所述启动单元具体用于:启动所述第二模拟器;在所述第二缓冲区写入第一数据包;所述第二模拟器从所述第二通道中调用第一数据包进行处理。
在一个可能的实施例中,所述在所述第二模拟器中配置所述第一模拟器的第一设备信息的方面,所述配置单元34具体用于:确定所述第一模拟器中当前的第一设备状态、第一队列状态和第一PCIE配置空间状态;根据所述第一设备状态、所述第一队列状态和所述第一PCIE配置空间状态,配置所述第二模拟器,以使得所述第二模拟器的设备信息与所述第一模拟器的所述第一设备信息一致。
在一个可能的实施例中,所述根据所述第一设备状态、所述第一队列状态和所述第一PCIE配置空间状态,配置所述第二模拟器的方面,所述配置单元34具体用于:在所述第二模拟器中按照第一顺序恢复所述第一设备状态、所述第一队列状态和所述第一PCIE配置空间状态。
在一个可能的实施例中,所述确定所述第一模拟器的第一数据包的方面,所述确定单元35具体用于:获取所述第一模拟器发送的第一标识;根据所述第一标识确定所述第一数据包。
上述实施例,可以全部或部分地通过软件、硬件、固件或其他任意组合来实现。当使用软件实现时,上述实施例可以全部或部分地以计算机程序产品的形式实现。所述计算机程序产品包括一个或多个计算机指令或计算机程序。在计算机上加载或执行所述计算机指令或计算机程序时,全部或部分地产生按照本申请实施例所述的流程或功能。所述计算机可以为通用计算机、专用计算机、计算机网络、或者其他可编程装置。所述计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,所述计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线或无线方式向另一个网站站点、计算机、服务器或数据中心进行传输。所述计算机可读存储介质可以是计算机能够存取的任何可用介质或者是包含一个或多个可用介质集合的服务器、数据中心等数据存储设备。所述可用介质可以是磁性介质(例如,软盘、硬盘、磁带)、光介质(例如,DVD)、或者半导体介质。半导体介质可以是固态硬盘。
本申请实施例还提供一种计算机存储介质,其中,该计算机存储介质存储用于电子数据交换的计算机程序,该计算机程序使得计算机执行如上述方法实施例中记载的任一方法的部分或全部步骤,上述计算机包括电子设备。
本申请实施例还提供一种计算机程序产品,上述计算机程序产品包括存储了计算机程序的非瞬时性计算机可读存储介质,上述计算机程序可操作来使计算机执行如上述方法实施例中记载的任一方法的部分或全部步骤。该计算机程序产品可以为一个软件安装包,上述计算机包括电子设备。
应理解,在本申请的各种实施例中,上述各过程的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本申请实施例的实施过程构成任何限定。
在本申请所提供的几个实施例中,应该理解到,所揭露的方法、装置和系统,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的;例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式;例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理包括,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用硬件加软件功能单元的形式实现。
上述以软件功能单元的形式实现的集成的单元,可以存储在一个计算机可读取存储介质中。上述软件功能单元存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的部分步骤。而前述的存储介质包括:U盘、移动硬盘、磁碟、光盘、易失性存储器或非易失性存储器。其中,非易失性存储器可以是只读存储器(read-only memory,ROM)、可编程只读存储器(programmable ROM,PROM)、可擦除可编程只读存储器(erasable PROM,EPROM)、电可擦除可编程只读存储器(electrically EPROM,EEPROM)或闪存。易失性存储器可以是随机存取存储器(random access memory,RAM),其用作外部高速缓存。通过示例性但不是限制性说明,许多形式的随机存取存储器(random access memory,RAM)可用,例如静态随机存取存储器(static RAM,SRAM)、动态随机存取存储器(DRAM)、同步动态随机存取存储器(synchronous DRAM,SDRAM)、双倍数据速率同步动态随机存取存储器(double data rateSDRAM,DDR SDRAM)、增强型同步动态随机存取存储器(enhanced SDRAM,ESDRAM)、同步连接动态随机存取存储器(synchlink DRAM,SLDRAM)和直接内存总线随机存取存储器(directrambus RAM,DR RAM)。等各种可以存储程序代码的介质。
虽然本发明披露如上,但本发明并非限定于此。任何本领域技术人员,在不脱离本发明的精神和范围内,可轻易想到变化或替换,均可作各种更动与修改,包含上述不同功能、实施步骤的组合,包含软件和硬件的实施方式,均在本发明的保护范围。

Claims (8)

1.一种模拟器的热升级方法,其特征在于,应用于数据处理系统中的数据处理器DPU;所述DPU包括硬件模块,所述硬件模块包括第一通道;所述方法包括:
获取升级指令;
根据所述升级指令生成热升级标记,并将所述热升级标记与需要升级的第一模拟器进行关联,所述热升级标记用于指示所关联的第一模拟器处于升级状态、并禁止对所述第一模拟器进行配置变更,所述第一模拟器与第一缓冲区对应,所述第一缓冲区用于存储主机端的报文;
创建与所述第一模拟器结构一致的第二模拟器;
创建与所述第二模拟器对应的第二缓冲区,所述第二缓冲区与所述第一缓冲区的存储内容一致;
在所述硬件模块中配置第二通道,所述第二通道与所述第一通道的结构一致;其中,所述第一通道是指在热升级之前硬件资源池中分配的一组寄存器;所述第一通道用于与主机端通信以接收主机端下发的报文和/或数据包,在接收到所述报文和/或所述数据包之后,根据所述第一通道的地址寄存器中存储的第一缓冲区地址,将报文和/或数据包写入第一缓冲区中,第一模拟器调用第一缓冲区中的报文和/或数据包进行处理;所述第二通道是指在热升级时所述硬件资源池中分配的一组与所述第一通道相同类型的寄存器;
将所述第二通道与所述第二缓冲区进行关联,并使能所述第二通道,其中,所述第二通道包括多个寄存器,所述多个寄存器包括地址寄存器和使能寄存器;所述将所述第二通道与所述第二缓冲区进行关联,并使能所述第二通道,包括:向所述地址寄存器写入所述第二缓冲区的地址;在接收到主机端的报文和/或数据包之后,能够根据存储在第二通道的地址寄存器中的地址,将报文和/或数据包写入第二缓冲区中;启动所述使能寄存器,以使能所述第二通道;
在所述第二模拟器中配置所述第一模拟器的第一设备信息;
确定所述第一模拟器的第一数据包,所述第一数据包是指第一进程当前执行完成的第二数据包的下一个数据包;
启动所述第二模拟器,从所述第一数据包开始继续运行目标程序;
停止运行所述第一模拟器。
2.根据权利要求1所述的方法,其特征在于,启动所述第二模拟器,从所述第一数据包开始继续运行所述目标程序,包括:
启动所述第二模拟器;
在所述第二缓冲区写入第一数据包;
所述第二模拟器调用第一数据包进行处理。
3.根据权利要求1所述的方法,其特征在于,所述在所述第二模拟器中配置所述第一模拟器的第一设备信息,包括:
确定所述第一模拟器中当前的第一设备状态、第一队列状态和第一PCIE配置空间状态;
根据所述第一设备状态、所述第一队列状态和所述第一PCIE配置空间状态,配置所述第二模拟器,以使得所述第二模拟器的设备信息与所述第一模拟器的所述第一设备信息一致。
4.根据权利要求3所述的方法,其特征在于,所述根据所述第一设备状态、所述第一队列状态和所述第一PCIE配置空间状态,配置所述第二模拟器,包括:
在所述第二模拟器中按照第一顺序恢复所述第一设备状态、所述第一队列状态和所述第一PCIE配置空间状态。
5.根据权利要求1-4任一项所述的方法,其特征在于,所述确定所述第一模拟器的第一数据包,包括:
获取所述第一模拟器发送的第一标识;
根据所述第一标识确定所述第一数据包。
6.一种模拟器的热升级装置,其特征在于,应用于数据处理系统中的数据处理器DPU,所述DPU包括硬件模块,所述硬件模块包括第一通道;所述装置包括:
获取单元,用于获取升级指令;
标记单元,用于根据所述升级指令生成热升级标记,并将所述热升级标记与需要升级的第一模拟器进行关联,所述热升级标记用于指示所关联的第一模拟器处于升级状态、并禁止对所述第一模拟器进行配置变更,所述第一模拟器与第一缓冲区对应,所述第一缓冲区用于存储主机端的报文;
创建单元,用于创建与所述第一模拟器结构一致的第二模拟器;以及,创建与所述第二模拟器对应的第二缓冲区,所述第二缓冲区与所述第一缓冲区的存储内容一致;在所述硬件模块中配置第二通道,所述第二通道与所述第一通道的结构一致,其中,所述第一通道是指在热升级之前硬件资源池中分配的一组寄存器;所述第一通道用于与主机端通信以接收主机端下发的报文和/或数据包,在接收到所述报文和/或所述数据包之后,根据所述第一通道的地址寄存器中存储的第一缓冲区地址,将报文和/或数据包写入第一缓冲区中,第一模拟器调用第一缓冲区中的报文和/或数据包进行处理;所述第二通道是指在热升级时所述硬件资源池中分配的一组与所述第一通道相同类型的寄存器;
配置单元,用于在所述第二模拟器中配置所述第一模拟器的第一设备信息;
确定单元,用于确定所述第一模拟器的第一数据包,所述第一数据包是指第一进程当前执行完成的第二数据包的下一个数据包;
启动单元,用于启动所述第二模拟器,从所述第一数据包开始继续运行目标程序;以及,向所述地址寄存器写入所述第二缓冲区的地址,其中,所述第二通道包括多个寄存器,所述多个寄存器包括地址寄存器和使能寄存器;在接收到主机端的报文和/或数据包之后,能够根据存储在第二通道的地址寄存器中的地址,将报文和/或数据包写入第二缓冲区中;以及,启动所述使能寄存器,以使能所述第二通道;
停止单元,用于停止运行所述第一模拟器。
7.一种电子设备,其特征在于,包括处理器、存储器、通信接口,以及一个或多个程序,所述一个或多个程序被存储在所述存储器中,并且被配置由所述处理器执行,所述程序包括用于执行如权利要求1-5任一项所述的方法中的步骤的指令。
8.一种计算机可读存储介质,其特征在于,存储用于电子数据交换的计算机程序,其中,所述计算机程序使得计算机执行如权利要求1-5任一项所述的方法中的步骤的指令。
CN202310561432.9A 2023-05-18 2023-05-18 模拟器的热升级方法及相关装置 Active CN116302006B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202310561432.9A CN116302006B (zh) 2023-05-18 2023-05-18 模拟器的热升级方法及相关装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202310561432.9A CN116302006B (zh) 2023-05-18 2023-05-18 模拟器的热升级方法及相关装置

Publications (2)

Publication Number Publication Date
CN116302006A CN116302006A (zh) 2023-06-23
CN116302006B true CN116302006B (zh) 2023-08-18

Family

ID=86834439

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202310561432.9A Active CN116302006B (zh) 2023-05-18 2023-05-18 模拟器的热升级方法及相关装置

Country Status (1)

Country Link
CN (1) CN116302006B (zh)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN116795605B (zh) * 2023-08-23 2023-12-12 珠海星云智联科技有限公司 一种外围器件互联扩展设备异常自动恢复系统以及方法

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1825292A (zh) * 2005-02-23 2006-08-30 华为技术有限公司 一种直接存储器存取装置及单通道双向数据交互实现方法
CN101533356A (zh) * 2009-04-21 2009-09-16 华为技术有限公司 一种实现软件在线升级的方法、装置及系统
CN105357147A (zh) * 2015-11-30 2016-02-24 北京控制工程研究所 一种高速高可靠的片上网络适配单元
CN107643937A (zh) * 2016-07-22 2018-01-30 北京金山云网络技术有限公司 一种虚拟机监视器升级方法及装置
CN110968392A (zh) * 2018-09-30 2020-04-07 华为技术有限公司 一种升级虚拟化模拟器的方法和装置
CN115857995A (zh) * 2023-02-08 2023-03-28 珠海星云智联科技有限公司 一种用于互联设备升级的方法、介质及计算设备

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10545750B2 (en) * 2017-12-06 2020-01-28 Vmware, Inc. Distributed upgrade in virtualized computing environments

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1825292A (zh) * 2005-02-23 2006-08-30 华为技术有限公司 一种直接存储器存取装置及单通道双向数据交互实现方法
CN101533356A (zh) * 2009-04-21 2009-09-16 华为技术有限公司 一种实现软件在线升级的方法、装置及系统
CN105357147A (zh) * 2015-11-30 2016-02-24 北京控制工程研究所 一种高速高可靠的片上网络适配单元
CN107643937A (zh) * 2016-07-22 2018-01-30 北京金山云网络技术有限公司 一种虚拟机监视器升级方法及装置
CN110968392A (zh) * 2018-09-30 2020-04-07 华为技术有限公司 一种升级虚拟化模拟器的方法和装置
CN115857995A (zh) * 2023-02-08 2023-03-28 珠海星云智联科技有限公司 一种用于互联设备升级的方法、介质及计算设备

Also Published As

Publication number Publication date
CN116302006A (zh) 2023-06-23

Similar Documents

Publication Publication Date Title
JP5644150B2 (ja) サービス提供システム、仮想マシンサーバ、サービス提供方法及びサービス提供プログラム
EP4089544A1 (en) Method and apparatus for extending pcie domain
CN109981493B (zh) 一种用于配置虚拟机网络的方法和装置
US20150254093A1 (en) System and method for assigning virtual functions and management host thereof
JP2020524840A5 (zh)
CN116302006B (zh) 模拟器的热升级方法及相关装置
US9740502B2 (en) Virtual bus device using management engine
US10013388B1 (en) Dynamic peer-to-peer configuration
CN106970810A (zh) 固件烧录方法和系统
JP2012243298A (ja) サーバi/oマイグレーション管理方法及び装置
CN106685741B (zh) 一种云主机网络接口的动态管理方法
US10621124B2 (en) Method, device and computer program product for enabling SR-IOV functions in endpoint device
CN113900982A (zh) 一种分布式异构加速平台通信方法、系统、设备及介质
CN110968392B (zh) 一种升级虚拟化模拟器的方法和装置
CN115904520A (zh) 基于pcie拓扑状态变更的配置保存方法及相关设备
US9069741B2 (en) Emulating level triggered interrupts of physical devices assigned to virtual machine
CN112905304A (zh) 一种虚拟机间通信方法、装置、物理主机及介质
CN114691286A (zh) 服务器系统、虚拟机创建方法及装置
WO2017177892A1 (zh) 操作系统的安装
WO2017166997A1 (zh) 智能网卡侧的异常处理方法和装置
JPWO2013150792A1 (ja) I/oデバイス共有システムおよびi/oデバイス共有方法
US11467998B1 (en) Low-latency packet processing for network device
US20170018052A1 (en) Method and Apparatus for Data Communication in Virtualized Environment, and Processor
CN109039765B (zh) 网络配置方法及装置
CN109656674B (zh) 一种计算机设备、虚拟化芯片及数据传输方法

Legal Events

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