基于多核处理器的虚拟化方法、系统、多核处理器和电子设备

文档序号:168523 发布日期:2021-10-29 浏览:12次 >En<

阅读说明:本技术 基于多核处理器的虚拟化方法、系统、多核处理器和电子设备 (Virtualization method and system based on multi-core processor, multi-core processor and electronic equipment ) 是由 不公告发明人 于 2020-04-29 设计创作,主要内容包括:本公开记载了一种基于多核处理器的虚拟化方法、系统、电子设备和计算装置,其中计算装置可以包括在组合处理装置中,该组合处理装置还可以包括通用互联接口和其他处理装置。所述计算装置与其他处理装置进行交互,共同完成用户指定的计算操作。组合处理装置还可以包括存储装置,该存储装置分别与计算装置和其他处理装置连接,用于计算装置和其他处理装置的数据。(The present disclosure describes a multi-core processor based virtualization method, system, electronic device and computing apparatus, wherein the computing apparatus may be included in a combined processing apparatus, which may further include a universal interconnect interface and other processing apparatuses. The computing device interacts with other processing devices to jointly complete computing operations specified by a user. The combined processing device may further comprise a storage device connected to the computing device and the other processing device, respectively, for data of the computing device and the other processing device.)

基于多核处理器的虚拟化方法、系统、多核处理器和电子设备

技术领域

本公开涉及人工智能领域,更具体地,涉及处理器的虚拟化技术。

背景技术

在计算机中,虚拟化(Virtualization)是一种资源管理技术,是将计 算机的各种资源,如服务器、网络、内存及存储等,予以抽象、转换后呈 现出来,使用户可以比原本的组态更好的方式来应用这些资源。

图1示出了一种通过时间切片(time slicing)技术来实现虚拟化的示 意性框图。

如图1所示,有四个虚拟机VM0-VM3,这些虚拟机分别执行自身的 任务,这些任务经过时间切片管理器之后,会形成时间切片并且按照时间 进行排序。计算引擎根据时间切片来处理不同的任务(分时任务)。在此 模式下,当虚拟机VM1工作时,则其他虚拟机无法工作,处于等待时间。 在时间切片很小的时候,用户不太容易察觉时间延迟,但如果有某个虚拟 机的任务占用大量时间(例如如图1所示的VM1)时,则其他用户会感受 到明显的时间延迟,从而影响用户体验。

此外,现有技术中,计算引擎对于不同的虚拟机是公共的,一旦某个 虚拟机造成了计算引擎出现问题,则会影响全部虚拟机的瘫痪,从而影响 全部用户。

由此,现有的虚拟机方案存在计算效率低、队首阻塞(HOL Blocking)、 相邻噪声较大、难以扩展等缺陷。

发明内容

本公开的目的是提供一种能够克服现有技术中至少一种缺陷的、基于 多核处理器的虚拟化方法和系统。

根据本公开的第一方面,提供一种基于多核处理器的虚拟化方法,其 中,所述多核处理器包括多个处理核,所述方法包括:将所述多核处理器 划分为多个虚拟功能,每个所述虚拟功能对应于一个或多个处理核;以及 将所述虚拟功能对应到虚拟机。

根据本公开的第二方面,提供一种基于多核处理器的虚拟化方法,其 中,所述多核处理器包括多个处理核,所述方法包括:将所述多核处理器 划分为多个虚拟功能,所述多个虚拟功能共享所述多个处理核;以及将所 述虚拟功能对应到容器。

根据本公开的第三方面,提供一种虚拟化系统,包括:多核处理器, 所述多核处理器包括多个处理核;多个虚拟功能,所述多个虚拟功能共享 所述多个处理核;以及虚拟机,所述虚拟机对应于所述虚拟功能。

根据本公开的第四方面,提供一种虚拟化系统,包括:多核处理器, 所述多核处理器包括多个处理核;多个虚拟功能,所述多个虚拟功能共享 所述多个处理核;以及容器,所述容器对应于所述虚拟功能。

根据本公开的第五方面,提供一种包括多个处理核的多核处理器,其 中,所述多核处理器划被分为多个虚拟功能,所述多个虚拟功能共享一个 或多个处理核。

根据本公开的第六方面,提供一种电子设备,包括如上所述的虚拟化 系统或者如上所述的多核处理器。

根据本公开的第七方面,提供一种计算机可读存储介质,其上存储有 计算机程序代码,当所述计算机程序代码由处理器运行时,执行上所述的 方法。

本公开能够实现至少一个如下技术效果:

较高的服务质量(QoS);

无队首阻塞;

无相邻噪声影响;

无上下文切换开销;

易于扩展和部署。

附图说明

通过参考附图阅读下文的详细描述,本公开示例性实施方式的上述以 及其他目的、特征和优点将变得易于理解。在附图中,以示例性而非限制 性的方式示出了本公开的若干实施方式,并且相同或对应的标号表示相同 或对应的部分其中:

图1示出了一种通过时间切片(time slicing)技术来实现虚拟化的示 意性框图;

图2a示出了本公开的方法可以应用的一个处理集群的内部结构示意 图;

图2b示出了本公开的方法可以应用的人工智能处理器的结构示意图 图;

图3示出了根据本公开第一方面的基于多核处理器的虚拟化方法;

图4示出了根据本公开的一个实施方式的一种虚拟化系统;

图5示出了根据本公开的一个实施方式的虚拟功能与处理集群进行对 应的示意图;

图6a,图6b和图6c示例性地示出了分为1个、2个和4个虚拟功能 时对PEIe卡的资源占用情况;

图7示出了根据本公开的又一个实施方式的虚拟化系统的示意性框 图;

图8示例性地示出了虚拟化系统的结构示意图;

图9示出了根据本公开的组合处理装置的示意图;

图10示出了根据本公开的板卡的示意性框图;

图11a和图11b示出了虚拟机模式和Docker模式的对比示意图;

图12示出了根据本公开第一方面的基于多核处理器的虚拟化方法;

图13示出了根据本公开的一个实施方式的一种虚拟化系统;以及

图14示出了根据本公开的一个实施方式的虚拟化系统的示意性框图。

具体实施方式

下面将结合本披露实施例中的附图,对本披露实施例中的技术方案进 行清楚、完整地描述,显然,所描述的实施例是本披露一部分实施例,而 不是全部的实施例。基于本披露中的实施例,本领域技术人员在没有做出 创造性劳动前提下所获得的所有其他实施例,都属于本披露保护的范围。

应当理解,本披露的权利要求、说明书及附图中的术语“第一”、“第 二”、“第三”和“第四”等是用于区别不同对象,而不是用于描述特定 顺序。本披露的说明书和权利要求书中使用的术语“包括”和“包含”指 示所描述特征、整体、步骤、操作、元素和/或组件的存在,但并不排除一 个或多个其它特征、整体、步骤、操作、元素、组件和/或其集合的存在或 添加。

还应当理解,在此本披露说明书中所使用的术语仅仅是出于描述特定 实施例的目的,而并不意在限定本披露。如在本披露说明书和权利要求书 中所使用的那样,除非上下文清楚地指明其它情况,否则单数形式的“一”、 “一个”及“该”意在包括复数形式。还应当进一步理解,在本披露说明 书和权利要求书中使用的术语“和/或”是指相关联列出的项中的一个或多 个的任何组合以及所有可能组合,并且包括这些组合。

如在本说明书和权利要求书中所使用的那样,术语“如果”可以依据 上下文被解释为“当...时”或“一旦”或“响应于确定”或“响应于检测 到”。类似地,短语“如果确定”或“如果检测到[所描述条件或事件]” 可以依据上下文被解释为意指“一旦确定”或“响应于确定”或“一旦检 测到[所描述条件或事件]”或“响应于检测到[所描述条件或事件]”。

进一步地,在本公开的说明书和权利要求中,两个部分之间的对应, 可以理解为两个部分存在连接关系、响应关系或者匹配关系。

虚拟化是一种将一个计算机设备虚拟为多个虚拟机的技术。当在一台 计算机上同时运行多个虚拟机时,每个虚拟机可运行相同或不同的操作系 统,在操作系统上运行的应用程序可以在独立的空间内互不影响,从而显 著提高计算机的工作效率。

虚拟化技术与多任务或是超线程技术是不同的。多任务是指在一个操 作系统中多个程序同时运行,而在虚拟化技术中,则可以同时运行多个操 作系统,而且每一个操作系统中都有多个程序运行,每一个操作系统都运 行在一个虚拟机上。超线程技术只是单处理器模拟双处理器来平衡程序运 行性能,这两个模拟出来的处理器是不能分离的,只能协同工作,而在虚 拟化技术中,虚拟处理器是独立运作的。

虚拟化技术通常是采用软件重新定义划分计算机的物理资源,以实现 计算机资源的动态分配、灵活调度、跨域共享,进而提高资源利用率。

图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。

在上文中,描述了一种基于多核处理器的虚拟化方法,采用了虚拟机 的方式。而在下文中,可以采用docker-container的方式。

如图12所示,本公开还提供一种基于多核处理器的虚拟化方法,其 中,所述多核处理器包括多个处理核,所述方法包括:在操作S1210,将 所述多核处理器划分为多个虚拟功能,所述多个虚拟功能共享所述多个处 理核;以及在操作S1220,将所述虚拟功能对应到容器。

图13示出了根据本公开的一个实施方式种虚拟化系统,该虚拟化系 统包括:多核处理器,所述多核处理器包括多个处理核;多个虚拟功能, 所述多个虚拟功能共享所述多个处理核;以及容器,所述容器对应于所述 虚拟功能。

如图12和图13所示,虚拟功能可以对应到容器,例如虚拟功能VF0 对应到容器0,虚拟功能VF1对应到容器1,虚拟功能VF2对应到容器2, 虚拟功能VF3对应到容器3。需要理解的是,这种对应关系仅仅是一种实 例,本公开还可以采用其他的对应关系,从而更加便于系统的部署。这将 在后文中进行更加详细的描述。此外,图13中尽管描述了4个虚拟功能和4个容器,但也可以是更少或更多的其他数量。

在本公开中,容器容纳了执行任务(例如任务0-任务3)所需的硬件 资源和软件资源,其相互之间可以独立运行,互相不产生干扰。与现有技 术中采用时间切片技术的虚拟化方案相比,本公开的技术方案由于采用了 独立运行的容器,所以在容器之间不存在队首阻塞问题,也不会受到相邻 的噪声影响,也没有上下文切换开销。

如图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。

图14示出了根据本公开的又一个实施方式的虚拟化系统的示意性框 图。

如图14所示,根据本公开的另一个实施方式,本公开的虚拟化系统 进一步包括:公共驱动器,所述多个虚拟功能由所述公共驱动器来驱动。

该驱动器可以是对于所有虚拟功能公用的,其可以是安装在操作系统 中的程序。该驱动器例如可以为每个虚拟功能VF建立对应的节点,节点 可以是存储在某个目录(例如dev目录)下的文件,以供其他应用运行或 调用。文件的名称可以根据厂商的不同而不同。

在创建了节点之后,可以将这些节点中的一个或多个包含或对应到相 应的容器中。每个容器可以包含一个或多个节点,这意味着每个容器可以 对应或包含一个或多个虚拟功能。在本公开中,每个容器可以对应或包含 不同数量的节点,由此容器的配置将更加灵活,部署更加方便。此外,由 于每个虚拟功能的运算能力可能不同,因此可以根据需求进行非常灵活的 设计。

容器确立之后,本公开的方法可以进步一步包括为每个所述容器建立 一一对应的镜像,所述镜像能够与所述容器进行通信。可以通过 docker-container技术来建立上述的镜像。

镜像可以远程地安装在用户端,用户可以通过该镜像运行或调用容 器,进而调用多核处理器以及其他相关的各种资源。

图11a和图11b示出了虚拟机模式和Docker-container模式的对比示 意图。

在图11a中,在虚拟机模式下,主机Host将PCIe设备传递(Pass through)到客户机Guest里面,客户机包括了驱动器和目录,因此每个 客户机需要自己加载驱动器,在并在客户机的目录下创建节点,即字符型 设备。

在图11b中,在Docker模式下,驱动器和目录均处于主机中,因此 只有主机需要加载驱动器,驱动器对于所有的虚拟功能是公共的。因此, 主机的驱动器在主机目录下创建节点,即字符型设备,然后将设备传递到 镜像设备,即Docker里面。由此,相对于虚拟机模式,本公开的 docker-container模式无需每个客户机安装和加载驱动器,由此简化了系统的设置,方便了用户的使用。

与硬件虚拟机的使用场景类似,基于Docker的轻量化的虚拟化解决 方案,不仅仅是以整张卡为粒度,而是需要多个容器更细粒度的,共享使 用-张或多张物理加速卡。在每个Docker容器里,可以使用-个或者多 个VF。不同的容器之间的VF可以独立地、安全隔离地相互工作。

使用SR-IOV的硬件虚拟化方案可以同时支持Docker的使用模式并 且在物理机上能够同时生成多个VF。系统管理员可以根据需求把不同VF 指派给不同容器。隶属不同容器的VF可互不干扰的独立工作,VF间具 备与PF间同等的健壮(又称鲁棒性,robustness)和安全隔离性。相较于 虚拟机模式,Docker的优点在于启动更快,需要的资源更少,对系统的利用率更高。无论是开发、测试还是部署都更加简单。

本公开还提供了一种包括多个处理核的多核处理器,其中,所述多核 处理器划被分为多个虚拟功能,每个所述虚拟功能对应于一个或多个处理 核。

本公开还公开了一种电子设备,包括上所述的虚拟化系统或者如上所 述的多核处理器。该电子设备可以是主机,即本公开的技术方案实现在主 机中,并与外部镜像(docker)进行通信。

SR-IOV功能具备更好的租户隔离、应用热迁移特性,可为云服务供 应商提供安全、优质的AI计算资源,以充分保障用户在AI领域的投资。

本公开的方案瞄准了用户的一个痛点,即如何高效利用AI计算资 源。

采用本公开的方案的芯片、装置和电子设备支持全面的AI推断场景 部署,包括视觉、语音、自然语言处理等多样化的人工智能应用。本公开 的技术方案支撑数据中心、专业场景乃至桌面等多元化部署场景。

在这些部署场景中,面向云端部署、多样化人工智能推断、以及配合 边缘侧板卡进行应用开发时,如何对AI计算资源的有效利用是用户首要 关心的问题。也是本公开的SR-IOV虚拟化功能的核心诉求:

1)面向云端部署:在云部署环境下,云服务提供商(CSP)帮助海量 租户以高性价比、高可用性的方式提供计算、存储、网络资源的服务,在 此基础上还可提供高达99.99%的高可用服务级别。从Hypervisor和底 层硬件上对资源进行高效共享以及多租户、实例进行相互隔离,成为了AI 云服务的基本诉求。

2)面向复杂的人工智能推断:在AI应用进行部署时,用户通常会 遇到业务逻辑较为复杂的场景,需借助多个网络模型来构建AI辅助决策 系统。为保证服务器节点内的服务质量,通常会采用一机多卡的部署方式。 但计算成本和服务质量需要兼顾时,用户会希望用单张板卡并行多个模型 来解决问题。

3)面向边缘、端侧应用开发:本公开的方案能够在云、边、端三个 维度实现全面覆盖,在面向边缘侧和端侧的应用开发过程中,用户经常会 受部署侧的CPU、产品形态或网络条件的限制,无法直接在最终部署的 设备上进行开发。本公开的方案支持采用端云一体的开发环境帮助用户快 速将应用落地,而帮助云侧计算资源高效、合理的分配给应用开发组,是 本公开的一个目标。

本公开所提供的SR-IOV功能能够让AI云、业务部署和应用开发更 灵活、高效、安全。

本公开采用的虚拟化技术允许多个操作系统和应用程序共存于一个 物理计算平台上,共享同一个芯片的计算资源。它为用户提供良好的安全 性和隔离性,还支持如热迁移等高灵活特性。本虚拟化技术还有助于提高 云计算密度,也使数据中心的IT资产管理更灵活。

除了虚拟化基本的资源共享特性,本公开的SR-IOV虚拟化技术支 持运行在云服务器上的多个实例直接共享智能芯片的硬件资源。传统虚拟 化系统中大量的资源和时间损耗在Hypervisor或VMM软件层面,PCIe 设备的性能优势无法彻底发挥。而SR-IOV的价值在于消除这一软件瓶 颈,助力多个虚拟机实现高效物理资源共享。

与传统图形加速卡的vGPU所采用的虚拟化技术不同,本公开的方 案采用「非基于时间片的共享」方式,因为其没有因时间片切换上下文带 来的性能损失,因此能充分保证各VF独立的服务质量,彼此完全独立运 行互不影响。

另外,SR-IOV还可以避免因分时复用切换应用带来的性能开销。如 上图显示,虚拟功能搭配Docker或虚拟机(VM)运行时,单个VF业 务性能保持在硬件性能的91%以上。这使得用户在多模型并行时,对各 VF可以做出更准确的服务质量(QoS)预期,而不必考虑多模型时的拥塞 或切换带来的性能开销。

基于SR-IOV的虚拟功能(例如vMLU)还能够提供更好的租户隔离 性。虚拟化技术被数据中心广泛采用,除了因为其提供了对资源共享的能 力(提供了更好的密度性能),也因为相对于其它技术(如docker),虚拟 化提供了更好的隔离性和安全性。本公开中基于SR-IOV的虚拟化技术 可以帮助云用户实现更好的隔离特性,具体优势如下:

首先,资源独立,互不干扰,能确保服务质量(QoS);其次,多任 务时,没有无队列阻塞的烦恼;再次,其具备独立内存资源,各VF之间 互不可见;最后,它的部署相对简单,不需要对开源软件成分进行修改。

本公开中面向Docker-container的SR-IOV flat技术(例如如图12-14 所示)能够提供更高效的部署方式。除了对虚拟机(VM)提供虚拟化支 持,本公开的技术还对docker-container提供基于SR-IOV的虚拟化扩展 (SR-IOV flat模式),用于多个容器(container)共享一块板卡的计算能力, 同时,提供了基于kubernetes的管理插件。该功能为那些对隔离性和安 全性需求没那么高的数据中心提供更轻量级部署方式。

相对于弹性GPU共享池技术(Elastic GPUs Shared Pools),本公开 所采用的SR-IOV-Flat技术在隔离性、QoS上都有明显优势。

根据不同的应用场景,电子设备或装置还可以包括数据处理装置、机 器人、电脑、打印机、扫描仪、平板电脑、智能终端、手机、行车记录仪、 导航仪、传感器、摄像头、服务器、云端服务器、相机、摄像机、投影仪、 手表、耳机、移动存储、可穿戴设备、交通工具、家用电器、和/或医疗设 备。所述交通工具包括飞机、轮船和/或车辆;所述家用电器包括电视、空调、微波炉、冰箱、电饭煲、加湿器、洗衣机、电灯、燃气灶、油烟机; 所述医疗设备包括核磁共振仪、B超仪和/或心电图仪。

本公开还提供一种计算机可读存储介质,其上存储有计算机程序代 码,当所述计算机程序代码由处理器运行时,执行如上所述的方法。

本公开能够实现至少一个如下技术效果:

1.采用硬件隔离,安全性有较大提高,即使一个虚拟功能或容器出现 问题,也不会影响其他部分的正常运行。

2.无需修改快速仿真器(QEMU),从而降低了设置系统的复杂度。

3.由于各个部分相对独立,因此延迟较小,具有较高的服务质量 (QoS)。

4.无队首阻塞。

5.无相邻噪声影响。

6.无上下文切换开销,与传统的vGPU所采用的虚拟化技术不同,采 用“非基于时间片的共享”方式,从而消除了因上下文切换带来的性能开 销。

7.易于扩展和部署。

图9示出了一种组合处理装置900,其包括计算装置902(例如图8 所述的计算装置830等),通用互联接口904,和其他处理装置906。根 据本公开的计算装置与其他处理装置进行交互,共同完成用户指定的操 作。图9为组合处理装置的示意图。

其他处理装置,包括中央处理器CPU、图形处理器GPU、神经网络 处理器等通用/专用处理器中的一种或以上的处理器类型。其他处理装置所 包括的处理器数量不做限制。其他处理装置作为机器学习运算装置与外部 数据和控制的接口,包括数据搬运,完成对本机器学习运算装置的开启、 停止等基本控制;其他处理装置也可以和机器学习运算装置协作共同完成 运算任务。

通用互联接口,用于在计算装置(包括例如机器学习运算装置)与其 他处理装置间传输数据和控制指令。该计算装置从其他处理装置中获取所 需的输入数据,写入该计算装置片上的存储装置;可以从其他处理装置中 获取控制指令,写入计算装置片上的控制缓存;也可以读取计算装置的存 储模块中的数据并传输给其他处理装置。

可选的,该结构还可以包括存储装置908,存储装置分别与所述计算 装置和所述其他处理装置连接。存储装置用于保存在所述计算装置和所述 其他处理装置的数据,尤其适用于所需要运算的数据在本计算装置或其他 处理装置的内部存储中无法全部保存的数据。

该组合处理装置可以作为手机、机器人、无人机、视频监控设备等设 备的SOC片上系统,有效降低控制部分的核心面积,提高处理速度,降 低整体功耗。此情况时,该组合处理装置的通用互联接口与设备的某些部 件相连接。某些部件譬如摄像头,显示器,鼠标,键盘,网卡,wifi接口。

在一些实施例里,本披露还公开了一种芯片,其包括了上述的计算装 置或组合处理装置。

在一些实施例里,本披露还公开了一种板卡,其包括了上述芯片。参 阅图10,其提供了一种示例性的板卡,上述板卡除了包括上述芯片1002 以外,还可以包括其他的配套部件,该配套部件包括但不限于:存储器件 1004、接口装置1006和控制器件1008。

所述存储器件与所述芯片封装结构内的芯片通过总线连接,用于存储 数据。所述存储器件可以包括多组存储单元1010。每一组所述存储单元与 所述芯片通过总线连接。可以理解,每一组所述存储单元可以是DDR SDRAM(英文:Double Data Rate SDRAM,双倍速率同步动态随机存储 器)。

DDR不需要提高时钟频率就能加倍提高SDRAM的速度。DDR允许 在时钟脉冲的上升沿和下降沿读出数据。DDR的速度是标准SDRAM的 两倍。在一个实施例中,所述存储装置可以包括4组所述存储单元。每一 组所述存储单元可以包括多个DDR4颗粒(芯片)。在一个实施例中,所 述芯片内部可以包括4个72位DDR4控制器,上述72位DDR4控制器中 64bit用于传输数据,8bit用于ECC校验。在一个实施例中,每一组所述 存储单元包括多个并联设置的双倍速率同步动态随机存储器。DDR在一个 时钟周期内可以传输两次数据。在所述芯片中设置控制DDR的控制器, 用于对每个所述存储单元的数据传输与数据存储的控制。

所述接口装置与所述芯片封装结构内的芯片电连接。所述接口装置用 于实现所述芯片与外部设备1012(例如服务器或计算机)之间的数据传输。 例如在一个实施例中,所述接口装置可以为标准PCIE接口。比如,待处 理的数据由服务器通过标准PCIE接口传递至所述芯片,实现数据转移。 在另一个实施例中,所述接口装置还可以是其他的接口,本披露并不限制 上述其他的接口的具体表现形式,所述接口单元能够实现转接功能即可。 另外,所述芯片的计算结果仍由所述接口装置传送回外部设备(例如服务 器)。

所述控制器件与所述芯片电连接。所述控制器件用于对所述芯片的状 态进行监控。具体的,所述芯片与所述控制器件可以通过SPI接口电连接。 所述控制器件可以包括单片机(Micro Controller Unit,MCU)。如所述芯 片可以包括多个处理芯片、多个处理核或多个处理电路,可以带动多个负 载。因此,所述芯片可以处于多负载和轻负载等不同的工作状态。通过所 述控制装置可以实现对所述芯片中多个处理芯片、多个处理和/或多个处理 电路的工作状态的调控。

需要说明的是,对于前述的各方法实施例,为了简单描述,故将其都 表述为一系列的动作组合,但是本领域技术人员应该知悉,本披露并不受 所描述的动作顺序的限制,因为依据本披露,某些步骤可以采用其他顺序 或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实 施例均属于可选实施例,所涉及的动作和模块并不一定是本披露所必须 的。

在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没 有详述的部分,可以参见其他实施例的相关描述。

在本披露所提供的几个实施例中,应该理解到,所披露的装置,可通 过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例 如所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的 划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或 一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合 或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通 信连接,可以是电性、光学、声学、磁性或其它的形式。

所述作为分离部件说明的单元可以是或者也可以不是物理上分开的, 作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地 方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的 部分或者全部单元来实现本实施例方案的目的。

另外,在本披露各个实施例中的各功能单元可以集成在一个处理单元 中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在 一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软 件程序模块的形式实现。

所述集成的单元如果以软件程序模块的形式实现并作为独立的产品 销售或使用时,可以存储在一个计算机可读取存储器中。基于这样的理解, 当本披露的技术方案可以以软件产品的形式体现出来,该计算机软件产品 存储在一个存储器中,包括若干指令用以使得一台计算机设备(可为个人 计算机、服务器或者网络设备等)执行本披露各个实施例所述方法的全部 或部分步骤。而前述的存储器包括:U盘、只读存储器(ROM,Read-OnlyMemory)、随机存取存储器(RAM,Random Access Memory)、移动硬 盘、磁碟或者光盘等各种可以存储程序代码的介质。

以上对本披露实施例进行了详细介绍,本文中应用了具体个例对本披 露的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本 披露的方法及其核心思想;同时,对于本领域的一般技术人员,依据本披 露的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本 说明书内容不应理解为对本披露的限制。

通过以下条款,可以对本公开的技术方案有更好的理解:

条款1.一种基于多核处理器的虚拟化方法,其中,所述多核处理器 包括多个处理核,所述方法包括:

将所述多核处理器划分为多个虚拟功能,每个所述虚拟功能对应于一 个或多个处理核;以及

将所述虚拟功能对应到虚拟机。

条款2.根据条款1所述的方法,其中,所述虚拟机为多个,多个虚 拟机之间能够独立运行。

条款3.根据条款1或2所述的方法,其中,特定数量的处理核构成 一个处理集群,每个虚拟功能对应于一个或多个处理集群。

条款4.根据条款1-3中任意一项所述的方法,其中,将一个虚拟功 能对应到一个虚拟机;或者将多个虚拟功能对应到一个虚拟机。

条款5.根据条款1-4中任意一项所述的方法,其中,每个虚拟功能 具有独立的硬件资源。

条款6.根据条款1-5中任意一项所述的方法,其中,所述多个虚拟 功能由不同的驱动器来驱动。

条款7.根据条款6所述的方法,其中,通过所述驱动器为相应的虚 拟功能建立对应的节点。

条款8.一种基于多核处理器的虚拟化方法,其中,所述多核处理器 包括多个处理核,所述方法包括:

将所述多核处理器划分为多个虚拟功能,所述多个虚拟功能共享所述 多个处理核;以及

将所述虚拟功能对应到容器。

条款9.根据条款8所述的方法,其中,所述容器为多个,多个容器 之间能够独立运行。

条款10.根据条款8或9所述的方法,其中,特定数量的处理核构成 一个处理集群,多个虚拟功能共享一个或多个处理集群。

条款11.根据条款8-10中任意一项所述的方法,其中,将一个虚拟 功能对应到一个容器;或者将多个虚拟功能对应到一个容器。

条款12.根据条款9-11中任意一项所述的方法,其中,所述多个虚 拟功能由共同的驱动器来驱动。

条款13.根据条款12所述的方法,其中,通过所述驱动器为每个虚 拟功能建立对应的节点,所述容器对应于一个或多个节点。

条款14.根据条款8-13中任意一项所述的方法,进一步包括为每个 所述容器建立一一对应的镜像,所述镜像能够与所述容器进行通信。

条款15.一种虚拟化系统,包括:

多核处理器,所述多核处理器包括多个处理核;

多个虚拟功能,所述多个虚拟功能共享所述多个处理核;以及

虚拟机,所述虚拟机对应于所述虚拟功能。

条款16.根据条款15所述的虚拟化系统,其中,所述虚拟机为多个, 多个虚拟机之间能够独立运行。

条款17.根据条款15或16所述的虚拟化系统,其中,特定数量的处 理核构成一个处理集群,多个虚拟功能共享一个或多个处理器集群。

条款18.根据条款15-17中任意一项所述的虚拟化系统,其中,一个 虚拟功能对应到一个虚拟机;或者多个虚拟功能对应到一个虚拟机。

条款19.根据条款15-18中任意一项所述的虚拟化系统,其中,每个 虚拟功能具有独立的硬件资源。

条款20.根据条款15-19中任意一项所述的虚拟化系统,进一步包括: 多个驱动器,所述多个虚拟功能由不同的驱动器来驱动。

条款21.根据条款22所述的虚拟化系统,其中,所述驱动器配置为, 为相应的虚拟功能建立对应的节点。

条款22.一种虚拟化系统,包括:

多核处理器,所述多核处理器包括多个处理核;

多个虚拟功能,所述多个虚拟功能共享所述多个处理核;以及

容器,所述容器对应于所述虚拟功能。

条款23.根据条款22所述的虚拟化系统,其中,所述容器为多个, 多个容器之间能够独立运行。

条款24.根据条款22或23所述的虚拟化系统,其中,特定数量的处 理核构成一个处理集群,多个虚拟功能共享一个或多个处理器集群。

条款25.根据条款22-24中任意一项所述的虚拟化系统,其中,一个 虚拟功能对应到一个容器;或者多个虚拟功能对应到一个容器。

条款26.根据条款22-25中任意一项所述的虚拟化系统,其中,所述 多个虚拟功能共享硬件资源。

条款27.根据条款22-26中任意一项所述的虚拟化系统,进一步包括: 公共驱动器,所述多个虚拟功能由所述公共驱动器来驱动。

条款28.根据条款27所述的虚拟化系统,其中,所述公共驱动器配 置为,为每个虚拟功能建立对应的节点,所述容器对应于一个或多个节点。

条款29.根据条款22-28中任意一项所述的虚拟化系统,进一步包括 镜像,所述镜像与所述容器一一对应,并且能够与所述容器进行通信。

条款30一种包括多个处理核的多核处理器,其中,

所述多核处理器划被分为多个虚拟功能,所述多个虚拟功能共享一个 或多个处理核。

条款31.一种电子设备,包括如条款15-29中任意一项所述的虚拟化 系统或者如条款30所述的多核处理器。

条款32.一种计算机可读存储介质,其上存储有计算机程序代码,当 所述计算机程序代码由处理器运行时,执行条款1-14中任意一项所述的方 法。

33页详细技术资料下载
上一篇:一种医用注射器针头装配设备
下一篇:数据处理方法及系统

网友询问留言

已有0条留言

还没有人留言评论。精彩留言会获得点赞!

精彩留言,会给你点赞!