CN112579245B - 异构cpu的计算核虚拟化方法 - Google Patents

异构cpu的计算核虚拟化方法 Download PDF

Info

Publication number
CN112579245B
CN112579245B CN201910924866.4A CN201910924866A CN112579245B CN 112579245 B CN112579245 B CN 112579245B CN 201910924866 A CN201910924866 A CN 201910924866A CN 112579245 B CN112579245 B CN 112579245B
Authority
CN
China
Prior art keywords
core
virtual machine
computing
resources
computing core
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
CN201910924866.4A
Other languages
English (en)
Other versions
CN112579245A (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.)
Wuxi Jiangnan Computing Technology Institute
Original Assignee
Wuxi Jiangnan Computing Technology Institute
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 Wuxi Jiangnan Computing Technology Institute filed Critical Wuxi Jiangnan Computing Technology Institute
Priority to CN201910924866.4A priority Critical patent/CN112579245B/zh
Publication of CN112579245A publication Critical patent/CN112579245A/zh
Application granted granted Critical
Publication of CN112579245B publication Critical patent/CN112579245B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

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/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5027Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
    • 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)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Memory System Of A Hierarchy Structure (AREA)

Abstract

本发明公开了一种异构CPU的计算核虚拟化方法,包括以下步骤:宿主机核心启动后,宿主机核心会完成计算核资源的扫描并建立可用计算核资源位图,此计算核资源为计算核的数目以及计算核可访问内存空间;虚拟机管理模块依照虚拟机硬件配置,申请资源,并创建虚拟机CPU线程,具体步骤如下:虚拟机内计算核的初始化,以及虚拟机穿透访问计算核资源配置;虚拟机CPU线程开始运行虚拟机核心,虚拟机核心向虚拟机管理驱动模块申请对计算核进行初始化;驱动模块调用宿主机核心计算核初始化接口,完成计算核的初始化,同时将该计算核资源对应的IO地址设置为穿透读写。本发明实现了虚拟机对计算核资源的管理和使用,不同计算核间相互不冲突,减少了管理的复杂性,保证了计算核资源管理和使用的正确性和高效性。

Description

异构CPU的计算核虚拟化方法
技术领域
本发明属于计算机技术领域,尤其涉及一种异构CPU的计算核虚拟化方法。
背景技术
虚拟化技术在云计算和集群服务中的作用越来越重要,超级计算机的虚拟化重点在于扩展应用的多元性,但是同时要保证足够的计算能力,因此虚拟机必须能够正确且高效的管理和使用计算核的计算能力。
异构CPU物理结构和使用逻辑上,管控核和计算核是绑定的,运行时它们密切相关。这使得计算核的虚拟化更加复杂,现有技术很难覆盖这种需求。
现阶段没有一个完整的对异构CPU的计算核进行虚拟化的方案。通用的虚拟机化技术包括CPU的虚拟化和设备的虚拟化。其中CPU的虚拟化需要物理CPU支持完整的线程切换模型,计算核不具备这个功能,因此不适用。普通设备的虚拟化方案中,无需将设备同物理核之间进行绑定,而且各种通用设备的虚拟化架构方案无法覆盖所有计算核使用和控制接口,也无法有效针对异构CPU的计算核进行资源划分。
发明内容
本发明目的在于提供一种异构CPU的计算核虚拟化方法,该计算核虚拟化方法解决了通用CPU虚拟化和设备虚拟化技术在异构CPU的计算核虚拟化中无法适配的问题,实现了虚拟机对计算核资源的管理和使用,不同计算核间相互不冲突,减少了管理的复杂性,保证了计算核资源管理和使用的正确性和高效性。
为达到上述目的,本发明采用的技术方案是:一种异构CPU的计算核虚拟化方法,所述计算核虚拟化方法基于管控核、计算核、宿主机核心、虚拟机核心和KVM管理模块,所述管控核负责给宿主机核心提供宿主机核心运行必要的指令译码执行,各类中断和异常等,同时管控核在物理上提供对计算核控制通路,可以向计算核发送控制信号,所述计算核负责提供计算能力;
所述宿主机核心负责探测和整合硬件资源,且接收虚拟机管理模块的资源查询请求,所述硬件资源包括可用的管控核和计算核资源,向虚拟机管理模块提供硬件资源查询和占用功能接口;
所述虚拟机核心为运行于虚拟机CPU线程之上操作系统内核,用于整合计算核资源并对其进行初始化操作,计算核的初始化为通过写IO寄存器配置计算核硬件功能可用;
所述虚拟机管理模块完成管控核虚拟机CPU线程的创建,并且将线程同物理核进行绑定,保证虚拟机核心穿透直接访问计算核资源的功能的正确性,同时向虚拟机核心提供查询不同虚拟机独占的硬件资源的接口;
所述虚拟机核心调用虚拟机管理模块的资源查询接口获取本虚拟机分配的硬件资源,并且提供完整的计算核管控软件接口,在宿主机内核层对计算核资源进行抽象,建立可用计算核资源位图,宿主机核心根据该位图分配计算核资源,并更新位图状态,虚拟机核心直接通过IO或者内存对计算核资源进行控制;
所述计算核虚拟化方法包括以下步骤:
S1、宿主机核心启动后,宿主机核心会完成计算核资源的扫描并建立可用计算核资源位图,此计算核资源为计算核的数目以及计算核可访问内存空间;
S2、虚拟机管理模块依照虚拟机硬件配置,申请资源,并创建虚拟机CPU线程,具体步骤如下:
S2-1、用户模块接受虚拟机硬件配置,通过系统调用向驱动模块提出资源申请请求;
S2-2、驱动模块向宿主机核心发起硬件资源查询,宿主机核心已经S1中建立的资源位图进行判定,如果资源不可用,则返回错误;否则进入下一步;
S2-3、驱动模块通知宿主机核心更新资源位图,将其申请的资源设置为占用状态;将结果返回给用户模块;
S2-4、用户模块根据资源申请的计算核资源所在的核组创建虚拟机CPU线程,并设置虚拟机CPU线程同对应物理核组绑定运行;
S3、虚拟机内计算核的初始化,以及虚拟机穿透访问计算核资源配置;
S3-1、虚拟机CPU线程开始运行虚拟机核心,虚拟机核心向虚拟机管理驱动模块申请对计算核进行初始化;
S3-2、驱动模块调用宿主机核心计算核初始化接口,完成计算核的初始化,同时将该计算核资源对应的IO地址设置为穿透读写。
由于上述技术方案的运用,本发明与现有技术相比具有下列优点:
本发明异构CPU的计算核虚拟化方法,其解决了通用CPU虚拟化和设备虚拟化技术在异构CPU的计算核虚拟化中无法适配的问题,实现了虚拟机对计算核资源的管理和使用,不同计算核间相互不冲突,减少了管理的复杂性,保证了计算核资源管理和使用的正确性和高效性。
附图说明
附图1为本发明计算核虚拟化运行状态示意图;
附图2为本发明计算核虚拟化方法的流程图。
具体实施方式
下面结合实施例对本发明作进一步描述:
实施例:一种异构CPU的计算核虚拟化方法,所述计算核虚拟化方法基于管控核、计算核、宿主机核心、虚拟机核心和KVM管理模块,所述管控核负责给宿主机核心提供宿主机核心运行必要的指令译码执行,各类中断和异常等,同时管控核在物理上提供对计算核控制通路,可以向计算核发送控制信号,负责操作系统运行和计算核的运行,所述计算核负责提供计算能力;
所述宿主机核心负责探测和整合硬件资源,且接收虚拟机管理模块的资源查询请求,所述硬件资源包括可用的管控核和计算核资源,向虚拟机管理模块提供硬件资源查询和占用功能接口;
所述虚拟机核心为运行于虚拟机CPU线程之上操作系统内核,用于整合计算核资源并对其进行初始化操作,计算核的初始化为通过写IO寄存器配置计算核硬件功能可用;
所述虚拟机管理模块完成管控核虚拟机CPU线程的创建,并且将线程同物理核进行绑定,保证虚拟机核心穿透直接访问计算核资源的功能的正确性,同时向虚拟机核心提供查询不同虚拟机独占的硬件资源的接口;
所述虚拟机核心调用虚拟机管理模块的资源查询接口获取本虚拟机分配的硬件资源,并且提供完整的计算核管控软件接口,在宿主机内核层对计算核资源进行抽象,建立可用计算核资源位图,宿主机核心根据该位图分配计算核资源,并更新位图状态,使得不同虚拟机使用独立的计算核资源,保证不出现对计算核的越权访问,虚拟机核心直接通过IO或者内存对计算核资源进行控制;
所述计算核虚拟化方法包括以下步骤:
S1、宿主机核心启动后,宿主机核心会完成计算核资源的扫描并建立可用计算核资源位图,此计算核资源为计算核的数目以及计算核可访问内存空间;
S2、虚拟机管理模块依照虚拟机硬件配置,申请资源,并创建虚拟机CPU线程,具体步骤如下:
S2-1、用户模块接受虚拟机硬件配置,通过系统调用向驱动模块提出资源申请请求;
S2-2、驱动模块向宿主机核心发起硬件资源查询,宿主机核心已经S1中建立的资源位图进行判定,如果资源不可用,则返回错误;否则进入下一步;
S2-3、驱动模块通知宿主机核心更新资源位图,将其申请的资源设置为占用状态;将结果返回给用户模块;
S2-4、用户模块根据资源申请的计算核资源所在的核组创建虚拟机CPU线程,并设置虚拟机CPU线程同对应物理核组绑定运行;
S3、虚拟机内计算核的初始化,以及虚拟机穿透访问计算核资源配置。
S3-1、虚拟机CPU线程开始运行虚拟机核心,虚拟机核心向虚拟机管理驱动模块申请对计算核进行初始化;
S3-2、驱动模块调用宿主机核心计算核初始化接口,完成计算核的初始化,同时将该计算核资源对应的IO地址设置为穿透读写。
采用上述异构CPU的计算核虚拟化方法时候,其解决了通用CPU虚拟化和设备虚拟化技术在异构CPU的计算核虚拟化中无法适配的问题,实现了虚拟机对计算核资源的管理和使用,不同计算核间相互不冲突,减少了管理的复杂性,保证了计算核资源管理和使用的正确性和高效性。
上述实施例只为说明本发明的技术构思及特点,其目的在于让熟悉此项技术的人士能够了解本发明的内容并据以实施,并不能以此限制本发明的保护范围。凡根据本发明精神实质所作的等效变化或修饰,都应涵盖在本发明的保护范围之内。

Claims (1)

1.一种异构CPU的计算核虚拟化方法,其特征在于:所述计算核虚拟化方法基于管控核、计算核、宿主机核心、虚拟机核心和KVM管理模块,所述管控核负责给宿主机核心提供宿主机核心运行必要的指令译码执行,各类中断和异常,同时管控核在物理上提供对计算核控制通路,向计算核发送控制信号,所述计算核负责提供计算能力;
所述宿主机核心负责探测和整合硬件资源,且接收虚拟机管理模块的资源查询请求,所述硬件资源包括可用的管控核和计算核资源,向虚拟机管理模块提供硬件资源查询和占用功能接口;
所述虚拟机核心为运行于虚拟机CPU线程之上操作系统内核,用于整合计算核资源并对其进行初始化操作,计算核的初始化为通过写IO寄存器配置计算核硬件功能可用;
所述虚拟机管理模块完成管控核虚拟机CPU线程的创建,并且将线程同物理核进行绑定,保证虚拟机核心穿透直接访问计算核资源的功能的正确性,同时向虚拟机核心提供查询不同虚拟机独占的硬件资源的接口;
所述虚拟机核心调用虚拟机管理模块的资源查询接口获取本虚拟机分配的硬件资源,并且提供完整的计算核管控软件接口,在宿主机内核层对计算核资源进行抽象,建立可用计算核资源位图,宿主机核心根据该位图分配计算核资源,并更新位图状态,虚拟机核心直接通过IO或者内存对计算核资源进行控制;
所述计算核虚拟化方法包括以下步骤:
S1、宿主机核心启动后,宿主机核心会完成计算核资源的扫描并建立可用计算核资源位图,此计算核资源为计算核的数目以及计算核可访问内存空间;
S2、虚拟机管理模块依照虚拟机硬件配置,申请资源,并创建虚拟机CPU线程,具体步骤如下:
S2-1、用户模块接受虚拟机硬件配置,通过系统调用向驱动模块提出资源申请请求;
S2-2、驱动模块向宿主机核心发起硬件资源查询,宿主机核心已经S1中建立的资源位图进行判定,如果资源不可用,则返回错误;否则进入下一步;
S2-3、驱动模块通知宿主机核心更新资源位图,将其申请的资源设置为占用状态;将结果返回给用户模块;
S2-4、用户模块根据资源申请的计算核资源所在的核组创建虚拟机CPU线程,并设置虚拟机CPU线程同对应物理核组绑定运行;
S3、虚拟机内计算核的初始化,以及虚拟机穿透访问计算核资源配置;
S3-1、虚拟机CPU线程开始运行虚拟机核心,虚拟机核心向虚拟机管理驱动模块申请对计算核进行初始化;
S3-2、驱动模块调用宿主机核心计算核初始化接口,完成计算核的初始化,同时将该计算核资源对应的IO地址设置为穿透读写。
CN201910924866.4A 2019-09-27 2019-09-27 异构cpu的计算核虚拟化方法 Active CN112579245B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201910924866.4A CN112579245B (zh) 2019-09-27 2019-09-27 异构cpu的计算核虚拟化方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201910924866.4A CN112579245B (zh) 2019-09-27 2019-09-27 异构cpu的计算核虚拟化方法

Publications (2)

Publication Number Publication Date
CN112579245A CN112579245A (zh) 2021-03-30
CN112579245B true CN112579245B (zh) 2022-07-12

Family

ID=75109905

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201910924866.4A Active CN112579245B (zh) 2019-09-27 2019-09-27 异构cpu的计算核虚拟化方法

Country Status (1)

Country Link
CN (1) CN112579245B (zh)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN117389694B (zh) * 2023-12-13 2024-04-05 麒麟软件有限公司 基于virtio-blk技术提升虚拟存储IO性能的方法

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20150355929A1 (en) * 2014-06-06 2015-12-10 International Business Machines Corporation Provisioning virtual cpus using a hardware multithreading parameter in hosts with split core processors
CN109522087A (zh) * 2018-09-13 2019-03-26 上海交通大学 基于处理器的虚拟机构建方法和系统

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20150355929A1 (en) * 2014-06-06 2015-12-10 International Business Machines Corporation Provisioning virtual cpus using a hardware multithreading parameter in hosts with split core processors
CN109522087A (zh) * 2018-09-13 2019-03-26 上海交通大学 基于处理器的虚拟机构建方法和系统

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
《Virtualization of Heterogeneous and Adaptive Multi-Core /Multi-Board Systems》;Oliver Oey 等;《Proceedings of the 2012 Conference on Design and Architectures for Signal and Image Processing》;20121224;全文 *
《基于MIPS架构的异构内存虚拟化方法研究》;蔡万伟 等;《高技术通讯》;20130930;第23卷(第9期);全文 *

Also Published As

Publication number Publication date
CN112579245A (zh) 2021-03-30

Similar Documents

Publication Publication Date Title
CN114816664B (zh) Gpu虚拟化
EP2831728B1 (en) Architecture and method for managing interrupts in a virtualized environment
EP3968160A1 (en) Inter-process communication method and apparatus, and computer device
TWI273495B (en) Information processing device, process control method, and computer program
US20140358848A1 (en) Interconnect partition binding api, allocation and management of application-specific partitions
CN104598294B (zh) 用于移动设备的高效安全的虚拟化方法及其设备
US20110219373A1 (en) Virtual machine management apparatus and virtualization method for virtualization-supporting terminal platform
CN114077379B (zh) 一种计算机设备、异常处理的方法以及中断处理的方法
CN101876926A (zh) 一种非对称结构的软件三机热备容错方法
CN107562685B (zh) 一种基于延时补偿的多核处理器核心间数据交互的方法
US20120144146A1 (en) Memory management using both full hardware compression and hardware-assisted software compression
CN115988217A (zh) 一种虚拟化视频编解码系统、电子设备和存储介质
US7552434B2 (en) Method of performing kernel task upon initial execution of process at user level
CN115988218A (zh) 一种虚拟化视频编解码系统、电子设备和存储介质
US11886898B2 (en) GPU-remoting latency aware virtual machine migration
US7546600B2 (en) Method of assigning virtual process identifier to process within process domain
US20140373006A1 (en) System And Method For Virtual Machine Management
CN112579245B (zh) 异构cpu的计算核虚拟化方法
CN117389694B (zh) 基于virtio-blk技术提升虚拟存储IO性能的方法
KR20040087898A (ko) 프로그램 처리 시스템 및 프로그램 처리 방법, 및컴퓨터·프로그램
Wang et al. Efficient asynchronous communication between virtual machines in embedded systems
Zhang et al. NVMe-over-RPMsg: A virtual storage device model applied to heterogeneous multi-core SoCs
CN111459620A (zh) 安全容器操作系统到虚拟机监控器的信息调度方法
US20140237149A1 (en) Sending a next request to a resource before a completion interrupt for a previous request
CN114428757B (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