CN114816648A - 一种计算装置和计算方法 - Google Patents

一种计算装置和计算方法 Download PDF

Info

Publication number
CN114816648A
CN114816648A CN202110076065.4A CN202110076065A CN114816648A CN 114816648 A CN114816648 A CN 114816648A CN 202110076065 A CN202110076065 A CN 202110076065A CN 114816648 A CN114816648 A CN 114816648A
Authority
CN
China
Prior art keywords
data
virtual machine
virtual
identification
address
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
CN202110076065.4A
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.)
Cambricon Technologies Corp Ltd
Original Assignee
Cambricon Technologies Corp 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 Cambricon Technologies Corp Ltd filed Critical Cambricon Technologies Corp Ltd
Priority to CN202110076065.4A priority Critical patent/CN114816648A/zh
Publication of CN114816648A publication Critical patent/CN114816648A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • G06F2009/4557Distribution of virtual machine instances; Migration and load balancing

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Memory System Of A Hierarchy Structure (AREA)

Abstract

本公开涉及一种对数据进行迁移的方法和相关产品,该方法可以实现在计算装置中,其中计算装置可以包括在组合处理装置中,该组合处理装置还可以包括通用互联接口和其他处理装置。所述计算装置与其他处理装置进行交互,共同完成用户指定的计算操作。组合处理装置还可以包括存储装置,该存储装置分别与计算装置和其他处理装置连接,用于计算装置和其他处理装置的数据。

Description

一种计算装置和计算方法
技术领域
本公开涉及人工智能领域,更具体地,涉及虚拟机中数据的热迁移。
背景技术
在计算机中,虚拟化(Virtualization)是一种资源管理技术,是将计算机的各种资源,如服务器、网络、内存及存储等,予以抽象、转换后呈现出来,使用户可以比原本的组态更好的方式来应用这些资源。
在云架构环境中,热迁移是一个重要特性。热迁移是指将虚拟机和业务进程在不中断业务的情况下从一个虚拟机迁移到另外一个虚拟机,整个过程对用户无感知。AI加速卡是否支持虚拟化场景下的热迁移至关重要。
当虚拟机(VM,virtual machine)出现故障时候,需要将虚拟机和设备迁移到另外物理主机上。通常的做法是将虚拟机和设备的“运行上下文”保存下来,然后通过网络传输到需要运行的物理主机上,然后执行恢复过程,将虚拟机和设备的“运行上下文”注入到新的虚拟机中。然后新的虚拟机从保存的上下文处开始继续运行。
传统的做法需要将上下文完全保存下来,并通过网络传递到目的主机。此过程取决于网络的性能,一般都需要几十秒到几十分钟的时间。如果迁移时间过长,用户会明显感觉到卡顿。
发明内容
本公开的目的在于解决现有技术中数据迁移时迁移时间构成,卡顿感受明显的缺陷。
根据本公开的第一方面,提供一种对数据进行迁移的方法,包括:建立标识地图,所述标识地图包括与所述数据的第一存放地址相关联的标识;响应于所述第一存放地址中的数据被改变,修改与所述第一存放地址相关联的标识。
根据本公开第二方面,提供一种将数据从源虚拟机迁移到目标虚拟机的方法,包括:在所述源虚拟机处,建立标识地图,所述标识地图包括与所述数据在源虚拟机的第一存放地址相关联的标识;扫描所述标识地图以确定所述标识地图中是否存在被置为使能状态的标识;响应于所述表示地图中存在被置为使能状态的标识,将与被置为使能状态的标识相关联的第一存放地址中的数据迁移到目标虚拟机;在所述目标虚拟机处,接收从所述源虚拟机迁移的数据,并将接收到的数据存到所述目标虚拟机的第二存放地址。
根据本公开第三方面,提供一种电子设备,包括:一个或多个处理器;以及存储器,所述存储器中存储有计算机可执行指令,当所述计算机可执行指令由所述一个或多个处理器运行时,使得所述电子设备执行如上所述的方法。
根据本公开第四方面,提供一种计算机可读存储介质,包括计算机可执行指令,当所述计算机可执行指令由一个或多个处理器运行时,执行如上所述的方法。
根据本公开的技术方案能够准确地跟踪迁移数据从源虚拟机到目标虚拟机的迁移过程,从而保证数据迁移的准确和平顺,减少卡顿的发生。
附图说明
通过参考附图阅读下文的详细描述,本公开示例性实施方式的上述以及其他目的、特征和优点将变得易于理解。在附图中,以示例性而非限制性的方式示出了本公开的若干实施方式,并且相同或对应的标号表示相同或对应的部分其中:
图1示出了一种通过时间切片(time slicing)技术来实现虚拟化的示意性框图;
图2a示出了本公开的方法可以应用的一个处理集群的内部结构示意图;
图2b示出了本公开的方法可以应用的人工智能处理器的结构示意图图;
图3示出了根据本公开第一方面的基于多核处理器的虚拟化方法;
图4示出了根据本公开的一个实施方式的一种虚拟化系统;
图5示出了根据本公开的一个实施方式的虚拟功能与处理集群进行对应的示意图;
图6a,图6b和图6c示例性地示出了分为1个、2个和4个虚拟功能时对PEIe卡的资源占用情况;
图7示出了根据本公开的又一个实施方式的虚拟化系统的示意性框图;
图8示例性地示出了虚拟化系统的结构示意图;
图9a示出了根据本公开一个实施方式的对数据进行迁移的方法;
图9b示出了根据本公开的一个实施方式的标识地图与存放地址关联的示意图。
图9c示出了数据从存放地址被迁移之后标识地图的改变情况
图10示出了根据本公开一个实施方式的将数据从源虚拟机迁移到目标虚拟机的方法;
图11示出了根据本公开的组合处理装置的示意图;
图12示出了一种示例性板卡。
具体实施方式
下面将结合本公开实施例中的附图,对本公开实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本公开一部分实施例,而不是全部的实施例。基于本公开中的实施例,本领域技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本公开保护的范围。
应当理解,本公开的权利要求、说明书及附图中的术语“第一”、“第二”、“第三”和“第四”等是用于区别不同对象,而不是用于描述特定顺序。本公开的说明书和权利要求书中使用的术语“包括”和“包含”指示所描述特征、整体、步骤、操作、元素和/或组件的存在,但并不排除一个或多个其它特征、整体、步骤、操作、元素、组件和/或其集合的存在或添加。
还应当理解,在此本公开说明书中所使用的术语仅仅是出于描述特定实施例的目的,而并不意在限定本公开。如在本公开说明书和权利要求书中所使用的那样,除非上下文清楚地指明其它情况,否则单数形式的“一”、“一个”及“该”意在包括复数形式。还应当进一步理解,在本公开说明书和权利要求书中使用的术语“和/或”是指相关联列出的项中的一个或多个的任何组合以及所有可能组合,并且包括这些组合。
如在本说明书和权利要求书中所使用的那样,术语“如果”可以依据上下文被解释为“当...时”或“一旦”或“响应于确定”或“响应于检测到”。类似地,短语“如果确定”或“如果检测到[所描述条件或事件]”可以依据上下文被解释为意指“一旦确定”或“响应于确定”或“一旦检测到[所描述条件或事件]”或“响应于检测到[所描述条件或事件]”。
下面结合附图来详细描述本公开的具体实施方式。在介绍本公开中对数据进行迁移的方法之前,将详细介绍进行热迁移的应用场景。
图1示出了一种通过时间切片(time slicing)技术来实现虚拟化的示意性框图。
如图1所示,有四个虚拟机VM0-VM3,这些虚拟机分别执行自身的任务,这些任务经过时间切片管理器之后,会形成时间切片并且按照时间进行排序。计算引擎根据时间切片来处理不同的任务(分时任务)。在此模式下,当虚拟机VM1工作时,则其他虚拟机无法工作,处于等待时间。在时间切片很小的时候,用户不太容易察觉时间延迟,但如果有某个虚拟机的任务占用大量时间(例如如图1所示的VM1)时,则其他用户会感受到明显的时间延迟,从而影响用户体验。
图2a示出了本公开的方法可以应用的一个处理集群的内部结构示意图。
人工智能(AI)芯片加速了数据计算能力,降低了访存延时。AI芯片采用多核处理器架构,并加入存储单元核(也可称为片上或片内存储单元) 来加速数据读取,解决了AI芯片的处理核与DDR(也可以称为片外存储单元)的访存瓶颈问题。为用户在处理深度学习、网络计算等场景中,提供更强的运算能力。
AI芯片例如可以有16个处理核,用于执行计算任务。每4个处理核组成一个处理集群,即共4个处理集群。每个处理集群内有个存储单元核。存储单元核主要用于处理集群内部的共享存储单元与处理核的数据交换和处理集群之间的数据交换。当存储核和处理核同时访问DDR时,通过多路复用器仲裁后,保证仅一组总线访问DDR。
图2b示出了本公开的方法可以应用的人工智能处理器的结构示意图图。
AI芯片的DDR采用非统一内存存取(Non-Uniform Memory Access, NUMA)架构,每个处理集群可以通过NOC0访问不同的DDR通道,但访问不同的DDR通道的延时不同。每个处理集群都对应一个访问延时最低的DDR通道,访问其他通道时延时相对较长。如图2b中处理集群与 DDR结构图所示,处理集群0,处理集群1,处理集群2和处理集群3分别访问对应的DDR0,DDR1,DDR2和DDR3时延时最低。也就是每个处理核访问了各自处理集群访存延时最低的DDR通道。
由于处理集群内部的访存带宽高于处理核和DDR之间的访问带宽,所以AI芯片可以通过采用处理集群来内部存取共享存储单元,以减少处理核直接访问DDR,从而提高了数据吞吐量。
当需要4核并行计算时,存储单元核可以通过数据广播方式(通过 NOC1),将数据由共享存储单元同时广播到处理集群内的4个处理核以进行数据计算。相对于所有处理核通过DDR来读取数据的方式,这种情况下能够降低访存延时,优化计算性能。
如果通过传统方式来进行虚拟化,那么所有的虚拟机将共享全部四个处理集群,当任务比较少的时候,某些处理集群将被空置,从而造成资源浪费。
上面描述了本公开的技术方案所应用的一种环境,下面将具体描述本公开的多个实施方式。下面结合图3和图4来描述本发明的具体实施方式。
本公开的虚拟化是一种将一个计算机设备虚拟为多个虚拟机的技术。当在一台计算机上同时运行多个虚拟机时,每个虚拟机可运行相同或不同的操作系统,在操作系统上运行的应用程序可以在独立的空间内互不影响,从而显著提高计算机的工作效率。
虚拟化技术与多任务或是超线程技术是不同的。多任务是指在一个操作系统中多个程序同时运行,而在虚拟化技术中,则可以同时运行多个操作系统,而且每一个操作系统中都有多个程序运行,每一个操作系统都运行在一个虚拟机上。超线程技术只是单处理器模拟双处理器来平衡程序运行性能,这两个模拟出来的处理器是不能分离的,只能协同工作,而在虚拟化技术中,虚拟处理器是独立运作的。
虚拟化技术通常是采用软件重新定义划分计算机的物理资源,以实现计算机资源的动态分配、灵活调度、跨域共享,进而提高资源利用率。
图3示出了根据本公开第一方面的基于多核处理器,例如AI处理器,的虚拟化方法,其中,所述多核处理器包括多个处理核,所述方法包括:在操作S310,将所述多核处理器划分为多个虚拟功能,每个所述虚拟功能对应于一个或多个处理核;以及在操作S320,将所述虚拟功能对应到虚拟机。
图4示出了根据本公开的一个实施方式的一种虚拟化系统,该虚拟化系统包括:多核处理器,所述多核处理器包括多个处理核;多个虚拟功能 VF0-VF3,每个所述虚拟功能对应于一个或多个处理核;以及虚拟机(虚拟机0-虚拟机3),所述虚拟机对应于所述虚拟功能。
以上的方法和系统可以通过SR-IOV(Single Root I/O Virtualization) 技术来实现。SR-IOV技术是一种基于硬件的虚拟化解决方案,可提供高性能和可伸缩性的虚拟解决方案。SR-IOV制定了标准化机制来实现多个虚拟机共享一个I/O设备。使得在虚拟机之间高效共享PCIe(Peripheral Component Interconnect Express,快速外设组件互连)设备,可以获得与本机相似的I/O性能。
SR-IOV分为的以下两种功能类型:
PF(Physical Function物理功能):具有PCI功能,用于支持SR-IOV 功能,如SR-IOV规范中定义。PF包含SR-IOV功能结构,用于管理 SR-IOV功能。PF是全功能的PCIe功能,可以像其他任何PCIe设备一样进行发现、管理和处理。PF拥有完全配置资源,可以用于配置或控制 PCIe设备。
VF(Virtual Function虚拟功能):与PF关联的一种功能。VF是一种轻量级PCIe功能,可以与PF以及与同PEIe设备的其他VF共享物理资源。VF仅拥有用于其自身行为的配置资源。
每个SR-IOV设备都可有一个PF,并且每个PF可有多个与其关联的 VF。每个VF都可以具有一个PCI内存空间,用于映射其寄存器集。VF 设备驱动程序对寄存器集进行操作以启用其功能,并且现实为实际存在的 PCI设备。创建VF后,可以直接将其指定给客户虚拟机VM。使得VF可以共享同一物理设备,并在没有CPU和虚拟机管理程序软件开销的情况下,执行数据的输入输出。
需要理解的是,上述的同一物理设备是指同一物理设备上的不同硬件资源。例如该物理设备可以是多核处理器,但硬件资源可以是该物理设备上不同的处理核。
由此可见,虚拟功能可以是单个或多个。当虚拟功能为单个时,则意味着可以将多核处理器中所有的处理核划分成单个虚拟功能;当虚拟功能为多个时,虚拟机之间能够独立运行。独立运行是指每个虚拟机相互隔离,运行不依赖于其他虚拟机,并且也不会受到其他虚拟机的影响,而且,由于本公开的隔离是基于硬件的隔离,因此彼此之间的干扰更少。此外,独立运行可以是每个虚拟机采用不同的操作系统,而不相互影响。
虚拟功能可以执行如多核处理器一样的工作内容,其是通过将该多核处理器进行逻辑划分所得到的。虚拟功能中可以包括一个或多个处理核,处理核越多,该虚拟功能的运算能力也越强。也可以将全部处理核划分到一个虚拟功能中。
如图3和图4所示,虚拟功能可以对应到虚拟机,例如虚拟功能VF0 对应到虚拟机0,虚拟功能VF1对应到虚拟机1,虚拟功能VF2对应到虚拟机2,虚拟功能VF3对应到虚拟机3。需要理解的是,这种对应关系仅仅是一种实例,本公开还可以采用其他的对应关系,从而更加便于系统的部署。这将在后文中进行更加详细的描述。此外,图4中尽管描述了4个虚拟功能和4个虚拟机,但也可以是更少或更多的其他数量。
在本公开中,虚拟机之间可以独立运行,互相不产生干扰。与现有技术中采用时间切片技术的虚拟化方案相比,本公开的技术方案由于采用了独立运行的虚拟机,所以在虚拟机之间不存在队首阻塞问题,也不会受到相邻的噪声影响,也没有上下文切换开销。
如图2a和图2b所示,在多核处理器中,特定数量的处理核构成一个处理集群,因此每个虚拟功能可以对应于一个或多个处理集群。
图5示出了根据本公开的一个实施方式的虚拟功能与处理集群进行对应的示意图。看需要理解的是,尽管图5以四个处理集群(处理集群0- 处理集群3)为例进行了描述,但处理集群也可以是任何其他数量。
在图5所示的示例中1中,处理集群0、处理集群1、处理集群2和处理集群3对应到虚拟功能0,即该多核处理器被划分为一个虚拟功能。
在图5所示的示例中2中,处理集群0、处理集群1和处理集群2对应到虚拟功能0,处理集群3对应到虚拟功能1,即该多核处理器被划分为两个虚拟功能,虚拟功能0相对于虚拟功能1具有较强的处理能力。
在图5所示的示例中3中,处理集群0和处理集群1对应到虚拟功能 0,处理集群2和处理集群3对应到虚拟功能1,即该多核处理器被划分为两个虚拟功能,虚拟功能0和虚拟功能1具有等同的处理能力。
在图5所示的示例中4中,处理集群0和处理集群1对应到虚拟功能 0,处理集群2对应到虚拟功能1,处理集群3对应到虚拟功能2,即该多核处理器被划分为三个虚拟功能,虚拟功能0相对于虚拟功能1和虚拟功能2具有较强的处理能,虚拟功能1和虚拟功能2具有等同的处理能力。
在图5所示的示例中5中,处理集群0对应到虚拟功能0,处理集群 1对应到虚拟功能1,处理集群2对应到虚拟功能2,处理集群3对应到虚拟功能3,这四个虚拟功能具有等同的处理能力。
在图5所示的示例中6中,处理集群0对应到虚拟功能0,处理集群 1、处理集群2和处理集群3对应到虚拟功能1,相对于虚拟功能1,虚拟功能0具有较弱的处理能力。该示例等效于示例2。
在图5所示的示例中7中,处理集群0对应到虚拟功能0,处理集群1对应到虚拟功能1,处理集群2对应到虚拟功能0,处理集群3对应到虚拟功能1,虚拟功能1和2具有等同的处理能力。该示例等效于示例3。
在图5所示的示例中8中,处理集群0对应到虚拟功能0,处理集群 1对应到虚拟功能1,处理集群2对应到虚拟功能0,处理集群3对应到虚拟功能2。虚拟功能0相对于虚拟功能1和虚拟功能2具有较强的处理能,虚拟功能1和虚拟功能2具有等同的处理能力。该示例等效于示例4。
由此可见,通过将不同的处理集群对应到不同的虚拟功能,能够实现对虚拟功能的灵活配置,从而能够根据不同的需求来动态地配置虚拟功能的处理能力。因此,相对于现有技术,本公开的技术方案还具有配置简单和灵活的优点。
根据公开的又一个实施方式,每个虚拟功能具有独立的硬件资源。
这里所述的硬件资源,可以是处理核,也可以是存储器(例如DDR)、总线、编码器/解码器、视频/音频驱动器、接口单元等等。例如,对于PCIe 板卡资源而言,其包括了AI计算单元(IPU)、图形编解码单元(VPU)、图形编解码单元(JPU)和内存。本公开对硬件资源的类型不做任何限制。
图6a,图6b和图6c示例性地示出了分为1个、2个和4个虚拟功能时对PEIe卡的资源占用情况。需要说明的是,上述的多核处理器可以是 JPU,VPU等多种多个计算核的计算装置。
如图6a所示,当虚拟功能为1个时,该虚拟功能VF0将专用所有的资源,即占用全部的计算核,全部的通道,全部的VPU以及全部的JPU。
如图6b所示,当虚拟功能为2个时,虚拟功能VF0和虚拟功能VF2 将分别使用一半的资源,即VF0占用一半的计算核,VF1占用另一半计算核。设具有四个DDR通道,则VF0可以占用通道0和通道1,VF1可以占用占用通道2和通道3。同样设有四个VPU和JPU,则VF0可以占用 VPU0和VPU1,VF1可以占用VPU2和VPU3;VF0可以占用JPU0和JPU1,而VF1可以占用JPU2和JPU3。
如图6c所示,当虚拟功能为4个时,虚拟功能VF0-VF3各占1/4的计算核。同样,设具有四个DDR通道,四个VPU和四个JPU,则虚拟功能VF0-VF3分别可以占用通道0-通道3;虚拟功能VF0-VF3分别可以占用VPU0-VPU3;虚拟功能VF0-VF3分别可以占用JPU0-JPU3。
图7示出了根据本公开的又一个实施方式的虚拟化系统的示意性框图。
如图7所示,根据本公开的另一个实施方式,本公开的虚拟化系统进一步包括:多个驱动器,所述多个虚拟功能由不同的驱动器来驱动。
根据本公开的一个实施方式,通过所述驱动器为相应的虚拟功能建立对应的节点,即客户机包括了驱动器和目录,因此每个客户机需要自己加载驱动器,在并在客户机的目录下创建节点,即字符型设备。
图8示例性地示出了虚拟化系统的结构示意图。在图8的系统中,采用虚拟机的方式。
如图8所示,该框架800包括用户空间802、内核空间804及片上系统806,在图上以虚线区隔开。用户空间802为用户程序的运行空间,只执行简单的运算,不能直接调用系统资源,必须通过系统接口,才能向内核发出指令。内核空间804是内核代码运行的空间,可以执行任意命令,调用系统的一切资源。片上系统806为人工智能芯片的各模块,通过内核空间804与用户空间802进行协作。
除非另行强调,此实施例以将一个部件虚拟化为四个虚拟部件来示例说明,但本公开不限制虚拟部件的数量。
用户空间802在未运行虚拟化前,是由硬件监测器工具808所控制,通过调用接口获取片上系统806的信息。硬件监测器工具808不仅可以采集片上系统806的信息,还可以实时获取上层软件对片上系统806资源的开销,为用户实时掌握当前片上系统806的详细信息和状态,这些详细信息和状态可以是:硬件设备型号、固件版本号、驱动版本号、设备利用率、存储装置开销状态、板卡功耗和板卡峰值功耗、快速外设组件互连(PCIe) 等数十种数据。基于硬件监测器工具808的版本及使用场景的不同,所监测的信息内容及数量会有所差异。
在系统启动虚拟化后,用户空间802的操作改由用户虚拟机810接管,用户虚拟机810是对真实计算环境的抽象和模拟,系统会分配一套数据结构来管理用户虚拟机810的状态,其数据结构包括全套寄存器、物理内存的使用情况、虚拟设备的状态等等。此实施例的用户空间802的物理空间虚拟化为四个虚拟空间812、814、816、818,这四个虚拟空间812、814、 816、818独立互不影响,可分别搭载不同的客户操作系统,如图中所示的客户操作系统1、客户操作系统2、客户操作系统3及客户操作系统4,客户操作系统可以是Windows、Linux、Unix、iOS、安卓等,每个客户操作系统上分别运行不同的应用程序。
在此实施例中,用户虚拟机810是以快速仿真器(QEMU)来实现。 QEMU是一个用C语言编写的开源虚拟化软件,通过动态二进制转换将接口虚拟化,并提供一系列的硬件模型,使得客户操作系统1、客户操作系统2、客户操作系统3、客户操作系统4都认为自己直接访问片上系统806。用户空间802包括处理器、存储器、I/O设备等,QEMU可以将用户空间 802的处理器虚拟化为四个虚拟处理器,并将存储器虚拟化为四个虚拟存储器,亦将I/O设备的虚拟化为四个虚拟I/O设备。每个客户操作系统各占用一部分用户空间802的资源,例如各占四分之一,也就是分别能访问一个虚拟处理器、一个虚拟存储器及一个虚拟I/O设备,以执行该客户操作系统的任务。通过这种模式,客户操作系统1、客户操作系统2、客户操作系统3、客户操作系统4就能独立运作。
内核空间804载有内核虚拟机820及芯片驱动程序822。内核虚拟机 820与QEMU搭配,主要负责内核空间804及片上系统806的虚拟化,使得每个客户操作系统在访问片上系统806时都能获得自己的地址空间。更详细来说,映射给客户操作系统的片上系统806上的空间实际上是映射给这个进程的虚拟部件。
从用户虚拟机810的角度来看,虚拟机运行期间,QEMU通过内核虚拟机820提供的系统调用接口进行内核设置,QEMU使用了内核虚拟机 820的虚拟化功能,为自己的虚拟机提供硬件虚拟化加速以提高虚拟机的性能。从内核虚拟机820的角度来看,当用户无法直接跟内核空间804交互时,需要借助用户空间802的管理工具,因此需要借助QEMU这个运行在用户空间802的工具。
芯片驱动程序822用以驱动物理功能826,在虚拟机运行期间,用户空间802不由硬件监测器工具808经芯片驱动程序822来访问片上系统 806,因此客户操作系统1、客户操作系统2、客户操作系统3、客户操作系统4分别配置有内核空间824,用以载入芯片驱动程序822,使得各客户操作系统依然可以驱动片上系统806。
片上系统806是通过SR-IOV技术来执行虚拟化的,更详细来说, SR-IOV技术可以使得片上系统806的各部件虚拟化。这样,每个虚拟部件都有自己对应的唯一可访问的资源。
此实施例的片上系统806包含硬件和固件。硬件包括只读存储器ROM (未显示于图中),用以存储固件,而固件包括物理功能826,用于支持或协作SR-IOV的PCIe功能,物理功能826拥有完全配置PCIe资源的权力。在实施SR-IOV技术时,物理功能826会虚拟化出多个虚拟功能828,在此实施例中为四个虚拟功能828。虚拟功能828是一种轻量级PCIe功能,受物理功能826管理,可与物理功能826以及与同一物理功能826关联的其他虚拟功能828共享PCIe物理资源。虚拟功能828仅允许控制物理功能826配置给自己的资源。
一旦在物理功能826中启用了SR-IOV,各个虚拟功能828就可以通过自身的总线、设备和功能编号去访问的自己的PCIe配置空间。每个虚拟功能828都具有一个内存空间,用于映射其寄存器集。虚拟功能828驱动程序对寄存器集进行操作以启用其功能,并直接指定给对应的用户虚拟机810。虽然是虚拟的,但会让用户虚拟机810认为是实际存在的PCIe 设备。
片上系统806的硬件还包括计算装置830、视频编解码装置832、JPEG 编解码装置834、存储装置836及PCIe 838。在此实施例中,计算装置830 为智能处理装置IPU,用以执行神经网络的卷积计算;视频编解码装置832 用以对视频数据进行编解码;JPEG编解码装置834用以对采用JPEG算法的静态图片进行编解码;存储装置836可以为动态随机存取存储器(DRAM),用以存储数据;PCIe 838即为前述的PCIe,在虚拟机运行期间,PCIe 838会虚拟化为四个虚拟接口840,虚拟功能828与虚拟接口840 为一对一对应关系,也就是第一虚拟功能对接第一虚拟接口,第二虚拟功能对接第二虚拟接口,以此类推。
通过SR-IOV技术,计算装置830虚拟化为四个虚拟计算装置842、将视频编解码装置832虚拟化为四个虚拟视频编解码装置844、将JPEG 编解码装置834虚拟化为四个虚拟JPEG编解码装置846、将存储装置836 虚拟化为四个虚拟存储装置848。
每个客户操作系统分别配置一组虚拟套件,每组虚拟套件包括一个用户虚拟机810、一个虚拟接口840、一个虚拟功能828、一个虚拟计算装置 842、一个虚拟视频编解码装置844、一个虚拟JPEG编解码装置846及一个虚拟存储装置848。每组虚拟套件各自独立运行互不影响,用来执行相对应的客户操作系统所交付的任务,以确定每个客户操作系统能通过所配置的虚拟接口840及虚拟功能828访问所配置的虚拟计算装置842、虚拟视频编解码装置844、虚拟JPEG编解码装置846及虚拟存储装置848。
更详细来说,每个客户操作系统在执行任务时,响应任务的不同,所需访问的硬件可能也不同,例如:某个任务是进行运算,例如矩阵卷积运算,则该客户操作系统会通过所配置的虚拟接口840及虚拟功能828访问所配置的虚拟计算装置842;如某个任务是进行视频编解码,则该客户操作系统会通过所配置的虚拟接口840及虚拟功能828访问所配置的虚拟视频编解码装置844;如某个任务是进行JPEG编解码,则该客户操作系统会通过所配置的虚拟接口840及虚拟功能828访问所配置的虚拟JPEG编解码装置846;如某个任务是读取或写入数据,则该客户操作系统会通过所配置的虚拟接口840及虚拟功能828访问所配置的虚拟存储装置848。
图1-图8示出了根据本公开的进行虚拟化的各种方式以及虚拟化可能会涉及到的资源,例如处理核、处理集群、JPEG编解码装置、视频编解码装置、计算装置等。
为了减少用户对数据迁移中产生的卡顿的感知,可以采用“迭代增量”的迁移方式。“迭代增量”的迁移方法可以很大的缩短迁移时间,改善迁移卡顿。迭代增量迁移是指同时保持源端和目的端虚拟机同时运行,源端虚拟机和设备的运行上下文会分批同步到目的虚拟机。
但是,在在迭代增量的迁移过程中,如何及时发现和追踪上下文的变化是一个难点。
图9a示出了根据本公开一个实施方式的对数据进行迁移的方法;图 9b示出了根据本公开的一个实施方式的标识地图与存放地址关联的示意图。
如图9a所示,对数据进行迁移的方法可以包括:在操作S910,建立标识地图,所述标识地图包括与所述数据的第一存放地址相关联的标识;在操作S920,响应于所述第一存放地址中的数据被改变,修改与所述第一存放地址相关联的标识。
如图9b所示,该标识地图也可以称为脏比特图(Dirty Bit Map,DBT) 其可以为矩阵形式,矩阵的每个元素中可以有标识,每个标识对应一段用于存储数据的存放地址。需要理解的是,该标识地图不仅限于如图9b所示的形式。如果该标识地图为软件形式,则本领域技术人员可以采用任何期望的形式,而如果所述标识地图形成为硬件结构,则其形式可以取决于硬件的结构。例如,当该标识地图实现在硬件存储器中时,可以利用硬件存储器的存储地址来设置该标识。以图8为例,可以将该标识地图设置在如标号848所示的存储装置中。通过硬件来设置标识地图有利于提升运算速度。
该标识地图中的标识可以与具体数据存放地址相关联,例如每个标识可以对应于一段存放地址,当该存放地址中的数据或内容发生变化时,则该标识地图中相应的标识也发生变化。例如,由此,通过监视该标识地图中的标识是否发生变化既可以获知存放地址中的数据是否发生变化。
根据本公开的一个实施方式,响应于要对所述数据进行迁移,初始化所述标识地图,以使得与所要迁移的数据的第一存放地址相关联的标识被设置为使能状态。
每当要将数据从一个源虚拟机中迁移到另外一个目标虚拟机时,则可以将标识地图初始化。初始化时,根据所要迁移的数据的存放地址,将与该存放地址相对应的标识数据中的数据初始化为一个初始值,每当一个存放地址中的数据被迁移完毕之后,则将该初始值修改为另一个数值,以表明数据已迁移完毕。在对该标识地图进行初始化或者配置时,可以设置bit 位监测物理页面的规格,更新的周期,阈值大小等等。每个标识对应的存放地址的大小可以是相同的,也可以是不同的。而在不需要迁移数据的时候,可以将该标识地图关闭或禁用。
以图9b为例,存放地址1和存放地址3中的数据需要进行迁移,因此可以将与这两个存放地址相对应的标识地图中的两个标识初始化为1,并监视这两个被初始化的标识。在本文中,示例性地将标识1称为使能 (enable)状态,而将标识0称为失能(disable)状态。
根据本公开的一个实施方式,响应于所述第一存放地址中的数据被迁移完毕,将与数据被迁移完毕的第一存放地址相关联的标识从使能状态修改为失能状态。
图9c示出了数据从存放地址被迁移之后标识地图的改变情况。如图 9c所示,当地址3中的数据被迁移完毕之后,则标识地图中相应的使能标识“1”被修改为失能标识“0”,从而系统知晓该地址3的数据已迁移完毕。
根据本公开的又一个实施方式,响应于与处于失能状态的标识相关联的第一存放地址中的数据发生变化,将与数据发生变化的第一存放地址相关联的标识从失能状态修改为使能状态。
当某个地址中的数据被迁移之后,由于虚拟机一直处于运行状态,因此数据被迁移走的某个地址可能被重新写入数据。当该地址被重新写入数据后,相应的标识地图中的标识被重新置为‘1’,从而表明还需要对该地址中的数据进行迁移。
由此,只要所述标识为使能状态,则将与所述使用标识相关联的第一存放地址中的数据进行迁移,直至所有的数据被迁移完毕。
需要理解的是,对数据的迁移并不必然是逐个地址进行迁移,还可以根据网络传输条件,每个虚拟的吞吐量等因素来进行多个地址中数据的整体迁移。例如,在网络传输条件较好,传输速度较快的情况下,可以一次性地迁移多个存放地址中的数据;而如果网络的传输速度较慢,延迟较大,那么一次可以仅迁移一个存放地址中的数据,也可以分多次迁移同一个地址中的数据。
更进一步地,根据本公开的一个实施方式,响应于与使能状态相关联的剩余第一存放地址之和不大于预定阈值,将所述剩余第一存放地址中的所有数据一次性迁移。
在此情况下,可以监视剩余的第一存放地址中的数据量,一旦剩余的数据量低于某个阈值从而能够在预定时间段内能完成剩余数据的迁移,则可以不必按照逐个地址来迁移数据,而是可以一次性将剩余数据全部迁移完毕。这减少了进行数据迁移的次数,同时也不会对用户的体验产生影响。
图10示出了根据本公开一个实施方式的将数据从源虚拟机迁移到目标虚拟机的方法,包括:在所述源虚拟机VM10处,在操作S1010,建立标识地图,所述标识地图包括与所述数据在源虚拟机的第一存放地址相关联的标识;在操作S1020,扫描所述标识地图以确定所述标识地图中是否存在被置为使能状态的标识;在操作S1030,响应于所述表示地图中存在被置为使能状态的标识,将与被置为使能状态的标识相关联的第一存放地址中的数据迁移到目标虚拟机;以及在所述目标虚拟机VM20处,在操作 S1040,接收从所述源虚拟机迁移的数据,并将接收到的数据存到所述目标虚拟机的第二存放地址。
如图10所示,源虚拟机VM10和目标虚拟机VM20可以是通过本文介绍的SR-IOV形成的,也可以是通过任何其他技术所形成的。各个虚拟机的硬件资源可以通过芯片的内部总线、设备之间本地连接或者设备之间的远程链路来互联起来。因此,本公开的技术方案不但适用于某一个芯片内部,某个设备内部,也适用于云构造架构。
根据各种虚拟化技术,每个虚拟机可以有自己专用的硬件存储空间 (例如存储器也被虚拟化的情况下),也可以共用一个公共的硬件存储空间。例如,在多核处理器的情况下,每个虚拟机可以分配不同数量的处理核;在具有多个硬件资源(例如VPU,JPU,PCIE接口)的情况下,每个虚拟机可以分配不同的硬件资源,例如JPEG解编码装置、视频解编码装置等等。
如操作S1010所示,将在源虚拟机VM10处建立标识地图,标识地图包括与源虚拟机VM10中的数据的存放地址相关联的标识,这些标识可以简单的为“0”或者“1”。上文中的“关联”是指标识地图中的标识与存放地址中的数据发生联动,当存放地址中的数据发生变化时,则该标识也相应地发生变化。
接下来,可以通过软件来扫描这些标识是否处于使能状态,在本文中,可以扫描这些标识是否为“1”。如果为“1”,则表明与该标识相关联的存放地址中需要有数据被迁移到目标虚拟机。
接下来,开始将数据从源虚拟机迁移到目标虚拟机,每当一个存放地址中的数据从源虚拟机VM10被完全迁移到目标虚拟机VM20的时候,则与该存放地址相对应的标识被从“1”修改为“0”,以表示该存放地址中的数据迁移完毕。
目标虚拟机VM20在接收到从源虚拟机VM10迁移的数据之后,可以存放到该目标虚拟机VM20中相应的存放改地址,从而逐步完成数据从源虚拟机VM10到目标虚拟机VM20的迁移。
根据本公开的一个实施方式,当要启动数据迁移时,可以在所述源虚拟机VM10处初始化所述标识地图,以使得与所要迁移的数据的第一存放地址相关联的标识被设置为使能状态,例如置为“1”。
根据本公开的一个实施方式,如上文所述,源虚拟机VM10在将所述第一存放地址中的数据迁移完毕之后,将与数据被迁移完毕的第一存放地址相关联的标识从使能状态修改为失能状态,例如修改为“0”。
由于在数据迁移过程中源虚拟机还保持运行,因此存放地址中的数据仍然可能会被不断修改。某些存放地址中的数据即使被迁移完毕,也可能再次有新数据进入。根据本公开的一个实施方式,如果与处于失能状态(例如为“0”)的标识相关联的第一存放地址中的数据发生变化,则将与数据发生变化的第一存放地址相关联的标识从失能状态修改为使能状态。
如上文所述,对数据的迁移并不必然是逐个地址进行迁移,还可以根据网络传输条件,每个虚拟的吞吐量等因素来进行多个地址中数据的整体迁移。例如,在网络传输条件较好,传输速度较快的情况下,可以一次性地迁移多个存放地址中的数据;而如果网络的传输速度较慢,延迟较大,那么一次可以仅迁移一个存放地址中的数据,也可以分多次迁移同一个地址中的数据。
根据本公开的一个实施方式,根据本公开的一个实施方式,响应于与使能状态相关联的剩余第一存放地址之和不大于预定阈值,将所述剩余第一存放地址中的所有数据一次性迁移。
在此情况下,可以监视剩余的第一存放地址中的数据量,一旦剩余的数据量低于某个阈值从而能够在预定时间段内能完成剩余数据的迁移,则可以不必按照逐个地址来迁移数据,而是可以一次性将剩余数据全部迁移完毕。这减少了进行数据迁移的次数,同时也不会对用户的体验产生影响。
本公开还提供一种电子设备,包括:一个或多个处理器;以及存储器,所述存储器中存储有计算机可执行指令,当所述计算机可执行指令由所述一个或多个处理器运行时,使得所述电子设备执行如上所述的方法。
本公开还提供一种计算机可读存储介质,包括计算机可执行指令,当所述计算机可执行指令由一个或多个处理器运行时,执行如上所述的方法。
根据本公开的技术方案能够准确地跟踪迁移数据从源虚拟机到目标虚拟机的迁移过程,从而保证数据迁移的准确和平顺,减少卡顿的发生。
本公开的技术方案可应用于人工智能领域,实现为或者实现在人工智能芯片中。该芯片可以单独存在,也可以包含在计算装置中。
图11示出了一种组合处理装置1100,其包括上述的计算装置1102,通用互联接口1104,和其他处理装置1106。根据本公开的计算装置与其他处理装置进行交互,共同完成用户指定的操作。图11为组合处理装置的示意图。
其他处理装置,包括中央处理器CPU、图形处理器GPU、神经网络处理器等通用/专用处理器中的一种或以上的处理器类型。其他处理装置所包括的处理器数量不做限制。其他处理装置作为机器学习运算装置与外部数据和控制的接口,包括数据搬运,完成对本机器学习运算装置的开启、停止等基本控制;其他处理装置也可以和机器学习运算装置协作共同完成运算任务。
通用互联接口,用于在计算装置(包括例如机器学习运算装置)与其他处理装置间传输数据和控制指令。该计算装置从其他处理装置中获取所需的输入数据,写入该计算装置片上的存储装置;可以从其他处理装置中获取控制指令,写入计算装置片上的控制缓存;也可以读取计算装置的存储模块中的数据并传输给其他处理装置。
可选的,该结构还可以包括存储装置1108,存储装置分别与所述计算装置和所述其他处理装置连接。存储装置用于保存在所述计算装置和所述其他处理装置的数据,尤其适用于所需要运算的数据在本计算装置或其他处理装置的内部存储中无法全部保存的数据。
该组合处理装置可以作为手机、机器人、无人机、视频监控设备等设备的SOC片上系统,有效降低控制部分的核心面积,提高处理速度,降低整体功耗。此情况时,该组合处理装置的通用互联接口与设备的某些部件相连接。某些部件譬如摄像头,显示器,鼠标,键盘,网卡,wifi接口。
在一些实施例里,本披露还公开了一种芯片封装结构,其包括了上述芯片。
在一些实施例里,本披露还公开了一种板卡,其包括了上述芯片封装结构。参阅图12,其提供了一种示例性的板卡,上述板卡除了包括上述芯片1202以外,还可以包括其他的配套部件,该配套部件包括但不限于:存储器件1204、接口装置1206和控制器件1208。
所述存储器件与所述芯片封装结构内的芯片通过总线连接,用于存储数据。所述存储器件可以包括多组存储单元1210。每一组所述存储单元与所述芯片通过总线连接。可以理解,每一组所述存储单元可以是DDR SDRAM(英文:Double Data Rate SDRAM,双倍速率同步动态随机存储器)。
DDR不需要提高时钟频率就能加倍提高SDRAM的速度。DDR允许在时钟脉冲的上升沿和下降沿读出数据。DDR的速度是标准SDRAM的两倍。在一个实施例中,所述存储装置可以包括4组所述存储单元。每一组所述存储单元可以包括多个DDR4颗粒(芯片)。在一个实施例中,所述芯片内部可以包括4个72位DDR4控制器,上述72位DDR4控制器中 64bit用于传输数据,8bit用于ECC校验。在一个实施例中,每一组所述存储单元包括多个并联设置的双倍速率同步动态随机存储器。DDR在一个时钟周期内可以传输两次数据。在所述芯片中设置控制DDR的控制器,用于对每个所述存储单元的数据传输与数据存储的控制。
所述接口装置与所述芯片封装结构内的芯片电连接。所述接口装置用于实现所述芯片与外部设备1212(例如服务器或计算机)之间的数据传输。例如在一个实施例中,所述接口装置可以为标准PCIE接口。比如,待处理的数据由服务器通过标准PCIE接口传递至所述芯片,实现数据转移。在另一个实施例中,所述接口装置还可以是其他的接口,本披露并不限制上述其他的接口的具体表现形式,所述接口单元能够实现转接功能即可。另外,所述芯片的计算结果仍由所述接口装置传送回外部设备(例如服务器)。
所述控制器件与所述芯片电连接。所述控制器件用于对所述芯片的状态进行监控。具体的,所述芯片与所述控制器件可以通过SPI接口电连接。所述控制器件可以包括单片机(Micro Controller Unit,MCU)。如所述芯片可以包括多个处理芯片、多个处理核或多个处理电路,可以带动多个负载。因此,所述芯片可以处于多负载和轻负载等不同的工作状态。通过所述控制装置可以实现对所述芯片中多个处理芯片、多个处理和/或多个处理电路的工作状态的调控。
在一些实施例里,本披露还公开了一种电子设备或装置,其包括了上述板卡。
电子设备或装置包括数据处理装置、机器人、电脑、打印机、扫描仪、平板电脑、智能终端、手机、行车记录仪、导航仪、传感器、摄像头、服务器、云端服务器、相机、摄像机、投影仪、手表、耳机、移动存储、可穿戴设备、交通工具、家用电器、和/或医疗设备。
所述交通工具包括飞机、轮船和/或车辆;所述家用电器包括电视、空调、微波炉、冰箱、电饭煲、加湿器、洗衣机、电灯、燃气灶、油烟机;所述医疗设备包括核磁共振仪、B超仪和/或心电图仪。
需要说明的是,对于前述的各方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本披露并不受所描述的动作顺序的限制,因为依据本披露,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于可选实施例,所涉及的动作和模块并不一定是本披露所必须的。
在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其他实施例的相关描述。
在本披露所提供的几个实施例中,应该理解到,所披露的装置,可通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性、光学、声学、磁性或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本披露各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件程序模块的形式实现。
所述集成的单元如果以软件程序模块的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储器中。基于这样的理解,当本披露的技术方案可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储器中,包括若干指令用以使得一台计算机设备(可为个人计算机、服务器或者网络设备等)执行本披露各个实施例所述方法的全部或部分步骤。而前述的存储器包括:U盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、移动硬盘、磁碟或者光盘等各种可以存储程序代码的介质。
以上对本披露实施例进行了详细介绍,本文中应用了具体个例对本披露的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本披露的方法及其核心思想;同时,对于本领域的一般技术人员,依据本披露的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本披露的限制。

Claims (16)

1.一种对数据进行迁移的方法,包括:
建立标识地图,所述标识地图包括与所述数据的第一存放地址相关联的标识;
响应于所述第一存放地址中的数据被改变,修改与所述第一存放地址相关联的标识。
2.根据权利要求1所述的方法,其中,响应于要对所述数据进行迁移,初始化所述标识地图,以使得与所要迁移的数据的第一存放地址相关联的标识被设置为使能状态。
3.根据权利要求1或2所述的方法,其中,响应于所述第一存放地址中的数据被迁移完毕,将与数据被迁移完毕的第一存放地址相关联的标识从使能状态修改为失能状态。
4.根据权利要求1-3中任意一项所述的方法,其中,响应于与处于失能状态的标识相关联的第一存放地址中的数据发生变化,将与数据发生变化的第一存放地址相关联的标识从失能状态修改为使能状态。
5.根据权利要求1-4中任意一项所述的方法,其中,响应于所述标识为使能状态,将与所述使用标识相关联的第一存放地址中的数据进行迁移。
6.根据权利要求2-5中任意一项所述的方法,进一步包括,响应于与使能状态相关联的剩余第一存放地址之和不大于预定阈值,将所述剩余第一存放地址中的所有数据一次性迁移。
7.根据权利要求1-5中任意一项所述的方法,其中,所述标识地图形成为硬件结构。
8.根据权利要求1-6中任意一项所述的方法,其中,对数据进行迁移包括将数据从源虚拟机迁移到目标虚拟机。
9.一种将数据从源虚拟机迁移到目标虚拟机的方法,包括:
在所述源虚拟机处,
建立标识地图,所述标识地图包括与所述数据在源虚拟机的第一存放地址相关联的标识;
扫描所述标识地图以确定所述标识地图中是否存在被置为使能状态的标识;
响应于所述表示地图中存在被置为使能状态的标识,将与被置为使能状态的标识相关联的第一存放地址中的数据迁移到目标虚拟机。
在所述目标虚拟机处,
接收从所述源虚拟机迁移的数据,并将接收到的数据存到所述目标虚拟机的第二存放地址。
10.根据权利要求9所述的方法,进一步包括:在建立标识地图之后,在所述源虚拟机处,初始化所述标识地图,以使得与所要迁移的数据的第一存放地址相关联的标识被设置为使能状态。
11.根据权利要求9或10所述的方法,进一步包括:在所述源虚拟机处,在将所述第一存放地址中的数据迁移完毕之后,将与数据被迁移完毕的第一存放地址相关联的标识从使能状态修改为失能状态。
12.根据权利要求9-11中任意一项所述的方法,进一步包括:如果与处于失能状态的标识相关联的第一存放地址中的数据发生变化,则将与数据发生变化的第一存放地址相关联的标识从失能状态修改为使能状态。
13.根据权利要求9-12中任意一项所述的方法,进一步包括,如果与使能状态相关联的剩余第一存放地址之和不大于预定阈值,将所述剩余第一存放地址中的所有数据一次性迁移到所述目标虚拟机。
14.根据权利要求9-13中任意一项所述的方法,其中,所述标识地图形成为硬件结构。
15.一种电子设备,包括:
一个或多个处理器;以及
存储器,所述存储器中存储有计算机可执行指令,当所述计算机可执行指令由所述一个或多个处理器运行时,使得所述电子设备执行如权利要求1-14中任意一项所述的方法。
16.一种计算机可读存储介质,包括计算机可执行指令,当所述计算机可执行指令由一个或多个处理器运行时,执行如权利要求1-14中任意一项所述的方法。
CN202110076065.4A 2021-01-20 2021-01-20 一种计算装置和计算方法 Pending CN114816648A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202110076065.4A CN114816648A (zh) 2021-01-20 2021-01-20 一种计算装置和计算方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202110076065.4A CN114816648A (zh) 2021-01-20 2021-01-20 一种计算装置和计算方法

Publications (1)

Publication Number Publication Date
CN114816648A true CN114816648A (zh) 2022-07-29

Family

ID=82524931

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202110076065.4A Pending CN114816648A (zh) 2021-01-20 2021-01-20 一种计算装置和计算方法

Country Status (1)

Country Link
CN (1) CN114816648A (zh)

Similar Documents

Publication Publication Date Title
US10691363B2 (en) Virtual machine trigger
US20170031699A1 (en) Multiprocessing Within a Storage Array System Executing Controller Firmware Designed for a Uniprocessor Environment
US10133504B2 (en) Dynamic partitioning of processing hardware
CN105830026A (zh) 用于调度来自虚拟机的图形处理单元工作负荷的装置和方法
WO2009151445A1 (en) Method and apparatus for configuring a hypervisor during a downtime state
US10140214B2 (en) Hypervisor translation bypass by host IOMMU with virtual machine migration support
US10853259B2 (en) Exitless extended page table switching for nested hypervisors
CN114138423B (zh) 基于国产gpu显卡的虚拟化构建系统及方法
US10013199B2 (en) Translation bypass by host IOMMU for systems with virtual IOMMU
CN113326226A (zh) 一种虚拟化的方法、装置、板卡及计算机可读存储介质
JP2023545818A (ja) チップ・システム、仮想割り込み処理方法および対応する装置
WO2021223744A1 (zh) 实现热迁移的方法、芯片、板卡和存储介质
US10459747B2 (en) Exitless timer access for virtual machines
CN113568734A (zh) 基于多核处理器的虚拟化方法、系统、多核处理器和电子设备
US11194606B2 (en) Managing related devices for virtual machines utilizing shared device data
CN113326118A (zh) 基于多核处理器的虚拟化方法、系统、多核处理器和电子设备
US11900142B2 (en) Improving memory access handling for nested virtual machines
CN114816648A (zh) 一种计算装置和计算方法
CN113326091A (zh) 一种虚拟化的方法、设备、板卡及计算机可读存储介质
WO2021170054A1 (zh) 一种虚拟化的方法、设备、板卡及计算机可读存储介质
WO2021170055A1 (zh) 一种虚拟化的方法、设备、板卡及计算机可读存储介质
CN117331704B (zh) 图形处理器gpu调度方法、装置和存储介质
Yang et al. On construction of a virtual GPU cluster with InfiniBand and 10 Gb Ethernet virtualization
US11620120B1 (en) Configuration of secondary processors
CN114281468A (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