CN113760525A - 数据处理加速器的具有静态资源分区的数据保护 - Google Patents

数据处理加速器的具有静态资源分区的数据保护 Download PDF

Info

Publication number
CN113760525A
CN113760525A CN202011439282.7A CN202011439282A CN113760525A CN 113760525 A CN113760525 A CN 113760525A CN 202011439282 A CN202011439282 A CN 202011439282A CN 113760525 A CN113760525 A CN 113760525A
Authority
CN
China
Prior art keywords
virtual
virtual machine
data processing
host
accelerator
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
CN202011439282.7A
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.)
Kunlun Core Beijing Technology Co ltd
Kunlunxin Technology Beijing Co Ltd
Baidu USA LLC
Original Assignee
Kunlun Core Beijing Technology Co ltd
Baidu USA LLC
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 Kunlun Core Beijing Technology Co ltd, Baidu USA LLC filed Critical Kunlun Core Beijing Technology Co ltd
Publication of CN113760525A publication Critical patent/CN113760525A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/10Network architectures or network communication protocols for network security for controlling access to devices or network resources
    • 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/5061Partitioning or combining of resources
    • G06F9/5077Logical partitioning of resources; Management or configuration of virtualized resources
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/604Tools and structures for managing or administering access control systems
    • 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
    • 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/5061Partitioning or combining of resources
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N20/00Machine learning
    • 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
    • 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/45579I/O management, e.g. providing access to device drivers or storage
    • 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/45583Memory management, e.g. access or allocation
    • 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/45587Isolation or security of virtual machine instances
    • 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/45595Network integration; Enabling network access in virtual machine instances
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2209/00Indexing scheme relating to G06F9/00
    • G06F2209/50Indexing scheme relating to G06F9/50
    • G06F2209/509Offload

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computing Systems (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Hardware Design (AREA)
  • Mathematical Physics (AREA)
  • Medical Informatics (AREA)
  • Evolutionary Computation (AREA)
  • Data Mining & Analysis (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Artificial Intelligence (AREA)
  • Signal Processing (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Automation & Control Theory (AREA)
  • Health & Medical Sciences (AREA)
  • Bioethics (AREA)
  • General Health & Medical Sciences (AREA)
  • Advance Control (AREA)
  • Storage Device Security (AREA)
  • Memory System Of A Hierarchy Structure (AREA)

Abstract

本公开的实施方式公开数据处理(DP)加速器的虚拟化环境的方法与系统。在一个实施方式中,数据处理(DP)加速器包括:一个或多个静态分区资源与一个或多个虚拟函数(VF),每个虚拟函数与一个或多个静态分区资源中的一个相关联。主机的虚拟机(VM)分配有一个或多个VF中的一个,以访问与所分配的VF相关联的静态分区资源。VM无法访问DP加速器的一个或多个静态分区资源中的其余部分。

Description

数据处理加速器的具有静态资源分区的数据保护
技术领域
本发明的实施方式总体涉及数据保护。更具体地,本发明的实施方式涉及数据处理(DP)加速器的具有静态资源分区的数据保护的系统与方法。
背景技术
敏感交易越来越多地由数据处理(DP)加速器(诸如,人工智能(AI)加速器或协处理器)执行。这增加了对更好的DP加速器之间的分区/隔离的需求。
例如,当DPA之间的通信信道是可能的,安装在现有集群中的恶意DPA可以在没有许可的情况下从其它DPA获得AI模型/数据,以使得由DPA处理的AI模型和数据可能不受保护。
发明内容
本申请提供数据处理(DP)加速器,该DP加速器可包括:一个或多个静态分区资源;以及一个或多个虚拟函数(VF),每个虚拟函数与一个或多个静态分区资源中的一个相关联,其中,主机的虚拟机(VM)分配有一个或多个VF中的一个,以访问与所分配的VF相关联的静态分区资源,并且其中,VM无法访问DP加速器的一个或多个静态分区资源中的其余部分。
本申请提供数据处理(DP)系统,该DP系统可包括:主机;以及联接至主机的DP加速器。DP加速器可包括:一个或多个静态分区资源;以及一个或多个虚拟函数(VF),每个虚拟函数与一个或多个静态分区资源中的一个相关联,其中,主机的虚拟机(VM)分配有一个或多个VF中的一个,以访问与所分配的VF相关联的静态分区资源,并且其中,VM无法访问DP加速器的一个或多个静态分区资源中的其余部分。
本申请提供计算机实现方法,该方法可包括:通过虚拟函数(VF)从应用程序中接收请求,以通过数据处理(DP)加速器使用在DP加速器处的资源执行指令,其中,接收为来自虚拟机(VM)的直通通信,其中,VF仅分配给一个VM,并且VF为DP加速器的多个VF中的一个;基于请求使用DP加速器资源执行指令并生成结果;确定VM的一个或多个存储器地址以存储结果;以及基于VM的一个或多个存储器地址,使用VF将结果传输至VM。
本申请提供计算机程序产品,该产品可包括计算机程序,该计算机程序在被处理器执行时可实现以下方法:通过虚拟函数(VF)从应用程序中接收请求,以通过数据处理(DP)加速器使用在DP加速器处的资源执行指令,其中,接收为来自虚拟机(VM)的直通通信,其中,VF仅分配给一个VM,并且VF为DP加速器的多个VF中的一个;基于请求使用DP加速器资源执行指令并生成结果;确定VM的一个或多个存储器地址以存储结果;以及基于VM的一个或多个存储器地址,使用VF将结果传输至VM。其中,该指令可为训练AI模型或基于AI模型执行推理的指令;该VF的硬件I/O信息可位于托管在VM上运行的应用程序的主机处的VM的驱动程序处;该DP加速器可包括SR-IOV通过装置;该主机的VM最初可由主机的虚拟机管理器(VMM)分配VF;数据包可在VM与对应于VM的虚拟函数之间传输,而不通过VMM;可经由独立于主机的处理单元的直接存储器访问(DMA),在VM与对应于VM的VF之间传输数据包。
附图说明
本发明的实施方式在附图中作为示例而不是限制的方式示出,在附图中相同的附图标记指示类似的元件。
图1是示出根据一些实施方式的主机和数据处理(DP)加速器的系统配置的示例的框图。
图2是示出根据一个实施方式的与数据处理(DP)加速器进行通信的主机的示例的框图。
图3是示出根据一个实施方式的DP加速器的静态资源分区的示例的框图。
图4是示出根据一个实施方式的DP加速器的示例性方法的流程图。
图5是示出根据一个实施方式的DP加速器的动态资源隔离的示例的框图。
图6是示出根据一个实施方式的DP加速器的示例性方法的流程图。
具体实施方式
将参考以下讨论的细节描述本发明的各种实施方式和方面,并且附图将示出各种实施方式。下面的描述和附图可说明本发明,而并不构成对本发明的限制。描述了许多具体细节以提供对本发明的各种实施方式的透彻理解。然而,在某些实例中,为了提供本发明的实施方式的简洁讨论,没有描述公知的或常规的细节。
在说明书中提及的“一个实施方式”或“实施方式”意味着结合该实施方式所描述的特定特征、结构或特性可包括在本发明的至少一个实施方式中。在说明书中的各个地方出现的短语“在一个实施方式中”并不一定都指相同的实施方式。
根据本公开的第一方面,数据处理(DP)加速器包括:一个或多个静态分区资源和一个或多个虚拟函数(VF),一个或多个VF中的每一个与一个或多个静态分区资源中的一个相关联。主机的虚拟机(VM)分配有一个或多个VF中的一个,以访问与所分配的VF相关联的静态分区资源。VM无法访问DP加速器的一个或多个静态分区资源的其余部分。
根据本公开的第二方面,虚拟函数(VF)从应用程序接收请求,以由数据处理(DP)加速器使用来自虚拟机(VM)的DP加速器的资源来执行指令,其中该接收是直通通信,其中VF专用于VM,并且VF是DP加速器的多个VF中的一个。DP加速器基于请求使用DP加速器资源执行指令并生成结果。DP加速器确定VM的一个或多个存储器地址。DP加速器基于VM的一个或多个存储器地址使用VF将结果传输到VM。
根据本公开的第三方面,数据处理(DP)加速器包括:资源管理单元以及由资源管理单元管理的一个或多个资源。DP加速器包括:一个或多个虚拟函数(VF),每个虚拟函数与一个或多个资源中的一个相关联,其中主机的虚拟机(VM)分配有一个或多个VF中的一个,以访问与所分配的VF相关联的资源,并且其中VM无法访问一个或多个资源中的其余部分。
根据本公开的第四方面,虚拟函数(VF)从应用程序接收对数据处理(DP)加速器资源的请求,其中该接收是来自虚拟机(VM)的直通通信,并且VF专用于VM,其中VF是DP加速器的多个VF中的一个。DP加速器确定分配给VF的DP加速器的第一资源隔离。DP加速器确定第一资源隔离不满足请求的大小。DP加速器通过DP加速器的资源管理单元将第一资源隔离动态地更新为第二资源隔离,以满足请求的大小。
图1是示出根据一些实施方式的主机和数据处理(DP)加速器的系统配置的示例的框图。参照图1,系统配置100包括但不限于:通过网络103通信地联接到DP服务器104的一个或多个客户端装置101和102。客户端装置101和102可以是任何类型的客户端装置,诸如,个人计算机(例如,台式计算机、膝上型计算机和平板计算机)、“瘦”客户端、个人数字助理(PDA)、支持Web的设备、Smartwatch或移动电话(例如,Smartphone)等。或者,客户端装置101和102可以是其它服务器。网络103可以是任何类型的有线或无线网络,诸如,局域网(LAN)、诸如因特网的广域网(WAN)或其组合。
服务器(例如,主机)104可以是任何种类的服务器或服务器群集,诸如,Web或云服务器、应用程序服务器、后端服务器或其组合。服务器104还包括:接口(未示出),以允许诸如客户端装置101和102的客户端访问由服务器104提供的资源或服务(诸如,由DP加速器经由服务器104提供的资源和服务)。例如,服务器104可以是云服务器或向客户端提供各种云服务的数据中心的服务器,例如,云存储、云计算服务、机器学习训练服务、数据挖掘服务等。服务器104可配置为云上的软件即服务(SaaS)或平台即服务(PaaS)系统的一部分,该云可以是私有云、公共云或混合云。该接口可包括:Web接口、应用程序编程接口(API)和/或命令行接口(CLI)。
例如,客户端(在本示例中,客户端装置101的用户应用程序(例如,Web浏览器、应用程序))可以向服务器104发送或传输用于执行的指令(例如,人工智能(AI)训练、推理指令等),并且该指令由服务器104通过网络103经由接口接收。响应于该指令,服务器104与DP加速器105至107进行通信,以完成指令的执行。在一些实施方式中,指令是机器学习类型的指令,其中作为专用机器或处理器的DP加速器可以比由服务器104执行快许多倍地执行指令。因此,服务器104可以以分布式方式控制/管理一个或多个DP加速器的执行作业。然后,服务器104向客户端装置101和102返回执行结果。DP加速器或AI加速器可包括:一个或多个专用处理器,诸如,可从Baidu公司获得的Baidu人工智能(AI)芯片组,或者,DP加速器可以是来自NVIDIA、Intel或一些其它AI芯片组提供商的AI芯片组。
根据一个实施方式,访问联接到数据处理服务器104(也称为主机)的DP加速器105至107中的任意一个的每个应用程序可验证该应用程序是由受信源或供应商提供的。每个应用程序可以在由主机104的中央处理单元(CPU)具体配置和执行的虚拟机(VM),或执行环境(EE)或容器,或容器内的VM内启动和执行。当应用程序配置为访问DP加速器105至107中的任意一个时,可在主机104和DP加速器105至107中的相应一个之间建立连接。
图2是示出根据一个实施方式的与数据处理(DP)加速器进行通信的主机的示例的框图。参照图2,系统200为主机/服务器和/或DP加速器提供虚拟化环境,以共享DP加速器的公共和/或专用资源。在一个实施方式中,主机机器或服务器104可以是托管一个或多个虚拟机(VM)201A至201N的系统,并且每个VM 201A至201N可托管可分别运行用户应用程序203A至203N和驱动程序205A至205N的操作系统。VM 201A至201N可由虚拟机管理器(VMM)209管理。VMM 209(有时称为超管理器)可在主机机器104的硬件213(例如,中央处理单元(CPU),以及可选地,安全模块(例如,受信平台模块(TPM)))上运行。主机机器104通常是CPU系统,该CPU系统可控制和管理主机机器104上的用户应用程序203和/或DP加速器105至107的执行作业。
在一个实施方式中,主机系统104包括:具有一个或多个CPU 213的硬件,其中,CPU213配备有主机机器104内的安全模块(诸如,受信平台模块(TPM))。TPM是端点装置上的专用芯片,其存储专用于主机系统的用于硬件认证的密码密钥(例如,RSA密码密钥)。每个TPM芯片可包含被称为签注密钥(EK)或签注凭证(EC)的一个或多个RSA密钥对(例如,公钥和私钥对),即,根密钥。密钥对被保持在TPM芯片内部,并且不能被软件访问。然后,在执行固件和软件的关键部分之前,可由EK或EC对固件和软件的关键部分进行散列,以保护系统免于未授权的固件和软件修改。因此,主机机器上的TPM芯片可用作安全引导的信任根。
包括安全引导的TPM芯片可保卫VMM 209免于未授权的访问。VMM 209可包括:由DP加速器供应商提供的驱动程序,该驱动程序指定DP加速器105至107的硬件描述符,以供主机104与DP加速器105至107进行通信。由于DP加速器105至107的通信信道215可被VMM 209专属地占用,因此,通信信道215可通过TPM芯片来保卫。
参照图2,系统200可包括:主机系统104和DP加速器105至107。DP加速器105至107可包括:可执行AI密集计算任务的Baidu AI芯片组或任何其它AI芯片组,诸如,NVIDIA图形处理单元(GPU)。在一个实施方式中,DP加速器105至107是外围组件互连快速(PCIE)组件。在一个实施方式中,通信信道215包括:PCIE信道。
在一个实施方式中,每个VM 201A至201N可表示安全执行环境或独立容器,诸如,对接容器。这里,主机机104可实例化一个或多个安全执行环境或独立容器,并且每个VM201A至201N可在安全执行环境或独立容器内执行。安全执行环境/容器可以由TPM/CPU 213强制为安全。安全执行环境的示例可以是Intel软件防护扩展(SGX),或AMD安全加密虚拟化(SEV),或任何非安全执行环境。Intel SGX和/或AMD SEV可包括:一组中央处理单元(CPU)指令代码,其中,该代码允许用户级代码分配CPU的存储器的私有区域,该私有区域被保护免受以较高特权级别运行的进程的影响。这里,安全执行环境可保护用户应用程序203和驱动程序205,其中用户应用程序203和驱动程序205可分别由终端用户和DP加速器供应商提供。这里,驱动程序205可将API调用转换为用于DP加速器105至107的执行、配置和/或控制的命令。
在一个实施方式中,DP加速器105至107实现单根I/O虚拟化(SR-IOV)实现标准,以允许基于硬件的虚拟化。SR-IOV标准使得能够在虚拟机之间有效地共享装置,并且在硬件中实现SR-IOV标准以得到与本机性能相当的I/O性能。SR-IOV规范定义了使虚拟机能够直接地连接到I/O装置的标准。例如,每个DP加速器装置(诸如可表现为多样的、单独的物理DP加速器装置的具有适当硬件和OS支持的SR-IOV使能的AI加速器)都具有它自己的PCIE配置空间。
在一个实施方式中,每个DP加速器105至107都具有至少一个物理函数(PF)以及一个或多个虚拟函数(VF)。SR-IOV可使用PF 231至233来管理各个DP加速器105至107的SR-IOV和/或VF函数。DP加速器105至107的VF/PF可被映射到各个VM。然后,VM可经由PF 231至233和VF 235至237直接访问DP加速器的资源。这样,每个VM 201都可访问DP加速器105至107的唯一和/或共享资源。注意,VF是与PF和/或与该PF相关联的其它VF共享一个或多个(专用或公共)资源的轻量级的PCIE函数。
物理函数(PF)是支持如SR-IOV规范所定义的SR-IOV能力的PCI函数。物理函数包含SR-IOV能力结构并管理SR-IOV功能。PF是完全特征化的PCIE函数,其可以像PCIE装置一样被发现、管理和操作。PF可用于配置和控制PCIE装置。VF可由PF创建。在创建之后,可将VF直接分配给I/O域。这使得VF能够共享物理装置并在没有中央处理单元(CPU)和超管理器开销的情况下执行I/O。
参照图2,在一个实施方式中,驱动程序205可提供物理函数(PF)231至233和/或虚拟函数(VF)235至237的硬件输入/输出描述符(未示出)。主机104的VMS 201A至201N可访问驱动程序205并经由驱动程序205内的硬件输入/输出描述符与PF 231至233和/或VF 235至237进行通信。
主机机器104可以如下设置:将存储器安全Linux发行版安装到配备有TPM安全引导的系统上。该安装可在制造或准备阶段期间离线执行。该安装还可确保使用存储器安全编程语言对用户应用程序203进行编程。
在安装之后,系统则可通过基于TPM的安全引导来启动。TPM安全引导确保在提供加速器服务的内核空间中仅启动经签署/认证的硬件和VMM。注意,超级管理器或虚拟机管理器(VMM)是创建并运行虚拟机的计算机软件、固件或硬件。注意,内核空间是其中识别内核(即,用于执行的预定的一组(例如,预定义的)函数)以向用户应用程序提供功能和服务的声明性区域或范围。在系统的完整性受到损害的情况下,TPM安全引导可能无法启动,而是关闭系统。
在安全引导之后,VMM 209可启动VM 201的实例。接下来,可在VM 201的操作系统内启动用户应用程序203和驱动程序205。在一个实施方式中,用户应用程序203和驱动程序205被静态地链接并一起启动。在另一个实施方式中,首先在VM 201中启动驱动程序205,然后在VM 201中动态加载用户应用程序203。在另一个实施方式中,首先在VM 201中启动用户应用程序203,然后在VM 201中动态加载驱动程序205。
总之,系统200使用位于主机104处的一个或多个VM和具有静态分区和/或资源的SR-IOV使能的DP加速器来提供基于硬件的虚拟化环境。系统200可包括:基于TPM的安全引导保护层和安全执行环境层。此外,系统200可通过确保用存储器安全编程语言实现主机机器上的其它应用程序来提供存储器安全用户空间,系统200还可通过消除潜在的存储器破坏/漏洞来确保应用程序内的安全性。在一个实施方式中,系统200可包括:使用无侧信道算法以便防御侧信道攻击(诸如,基于高速缓存的侧信道攻击)的应用程序。
图3是示出根据一个实施方式的与DP加速器进行通信的主机的示例的框图。参照图3,DP加速器105可被静态地划分为一个或多个资源分区,并且每个VF(#1至4)235可以与资源的特定静态分区相关联。这里,在本示例中,DP加速器105的资源225可由DP加速器的制造商/供应商静态地划分为四个资源分区225A至225D。资源的每个静态分区可包括:多个I/O资源、数据计算处理单元、图形处理单元、AI处理单元、存储器/高速缓存、硬盘驱动空间、寄存器等。
在一个实施方式中,资源的每个静态分区不同于资源的其它分区(或专用于特定VF)。在一个实施方式中,资源的一个静态分区不能访问资源的另一个静态分区,并且分配给对应于资源的静态分区的一个VF的VM不能访问资源的另一个静态分区。在一个实施方式中,除了对静态分区进行删除和重新分区之外,静态分区是不可修改的。
在一个实施方式中,驱动程序205A至205N分别为VM 201A至201N提供硬件输入输出描述符,以访问VF 235/PF 231。在一个实施方式中,每个VF 235可以与PF 231和/或其它VF 235共享或不共享DP加速器105的一个或多个资源。这样,只有分配给特定VF的VM可访问与VF相关联的资源。换句话说,其它VM不能访问已分配的VF。
在一个实施方式中,VF的数目等于静态分区资源的数目。在一个实施方式中,当VM被实例化时,VMM(或超级管理器)可自动地将VF分配给VM。在另一个实施方式中,超级管理器将VF分配给包含VM的容器。在一个实施方式中,当连接到资源的VM的数量大于VF的数量时,超级管理器无法再将VF分配给VM。在这种情况下,超级管理器可使VM排队等待下一个可用的VF,或者丢弃分配,或者将VM迁移到另一个主机服务器系统(这可能导致用户应用程序的附加等待时间/处理成本),以使用另一个主机服务器系统的可用的VF。
在一个实施方式中,DP加速器105包括:队列301和(可选地)数据分类器303。VF235(例如,VF#1)可从被分配给VF 235(例如,VF#1)的VM 201A(例如,VM#1)接收请求。该请求可以是I/O类型、机器学习、数据处理、AI训练、请求的AI推断类型等。当DP加速器105完成该请求时,DP加速器105可基于该请求确定VM 201A的标识符,诸如,媒体访问控制(MAC)地址。然后,数据分类器303可基于标识符对结果进行分类,并将结果发送到与MAC地址相关联的队列301(例如,队列#1)。然后,队列301使用直接存储器访问使要从VF 235(例如,VF#1)传输到VM 201A(例如,VM#1)的结果排队。
在另一实施方式中,当DP加速器105完成请求时,DP加速器105可确定VM处的一个或多个存储器地址,以存储请求的结果。然后,数据分类器303可基于存储器地址对结果进行分类,并将结果发送到与VM的存储器地址相关联的队列301(例如,队列#1)。然后,队列301使用直接存储器访问使要从VF 235(例如,VF#1)传输到VM201A(例如,VM#1)的结果排队。这里,直接存储器存取(DMA)是允许输入/输出(I/O)装置绕过主机104的CPU直接向主机104的主存储器发送数据或直接从主机104的主存储器接收数据的方法。
图4是示出根据一个实施方式的DP加速器的示例性方法的流程图。过程400可由可包括软件、硬件或其组合的处理逻辑来执行。例如,过程400可由主机系统(诸如,图3的DP加速器105)执行。参照图4,在框401处,处理逻辑(例如,VF)从应用程序接收请求,以由数据处理(DP)加速器使用DP加速器处的资源来执行指令,其中该接收是来自虚拟机(VM)的直通通信,其中VF专用于VM(例如,VF仅分配给一个VM),并且VF是DP加速器的多个VF中的一个。在框402处,处理逻辑基于请求使用DP加速器资源来执行指令并生成结果。在框403处,处理逻辑确定VM的一个或多个存储器地址,以存储结果。在框404处,基于VM的一个或多个存储器地址,处理逻辑使用VF将结果传输到VM。
在一个实施方式中,指令是训练AI模型或基于AI模型执行推断的指令。在一个实施方式中,VF的硬件I/O信息位于托管在VM上运行的应用程序的主机处VM的驱动程序处。
在一个实施方式中,DP加速器包括:SR-IOV通过装置。在一个实施方式中,主机的VM最初由主机的虚拟机管理器(VMM)分配VF。
在一个实施方式中,数据包在VM和对应于VM的VF之间传输,而不通过VMM。在一个实施方式中,数据包经由独立于主机的处理单元的直接存储器访问(DMA)在VM和对应于VM的VF之间传输。
图5是示出根据一个实施方式的DP加速器的动态资源隔离的示例的框图。参照图5,对于一个示例,DP加速器107包括:资源池505和资源管理单元507。资源管理单元507可管理和实施资源池505的资源227的资源隔离。在一个实施方式中,资源池505可实时地动态实例化多个资源隔离227A至227N。例如,VF 237#1至4可以与PF 233相关联。在这种情况下,资源池505可分别为VF237#1至4实例化n个资源隔离227A至227N。VM 201B可被分配给四个VF237#1至4中的任意一个(这里,VF#2)。VFS#1至4可根据来自分配给VM的VF处的VM的请求来访问任何资源隔离227A至227N。每个资源隔离可包括:多个I/O资源、数据计算处理单元、图形处理单元、AI处理单元、存储器/高速缓存、硬盘驱动空间、寄存器等。
在一个实施方式中,DP加速器107包括:队列501和(可选地)数据分类器503。VF237(例如,VF#2)可接收来自分配给VF 237(例如,VF#2)(由主机104的VMM 209分配)的VM201B(例如,VM#2)的请求。该请求可以是I/O类型、机器学习、数据处理、AI训练、请求的AI推断类型等。接下来,可基于请求的大小为请求动态地实例化与资源池505的资源隔离,诸如,资源227B#2。
在一个实施方式中,响应于确定请求(或后续请求)需要较大量的资源,VM#2向资源管理单元507(经由图2的VMM 209)传输控制命令,以控制资源管理单元507动态更新资源227B#2。这里,可基于请求大小来更新资源227B#2,以具有较大量的资源。更新可使用资源池505可用的资源或由资源池505维护的资源(例如,资源池505可用的公共资源(未示出))。
当DP加速器107完成该请求时,DP加速器107可基于该请求为VM#2确定标识符,诸如,媒体访问控制(MAC)地址。然后,数据分类器503可基于标识符对结果进行分类,并将结果发送到与标识符相关联的队列501(例如,队列#2)。然后,队列501使用直接存储器访问使要从VF 237(例如,VF#2)传输到VM 201B(例如,VM#2)的结果排队。在另一实施方式中,当DP加速器107完成请求时,DP加速器107可确定VM处的一个或多个存储器地址,以存储请求的结果。然后,数据分类器503可基于存储器地址对结果进行分类,并将结果发送到与VM的存储器地址相关联的队列501(例如,队列#2)。然后,队列501使用直接存储器访问使要从VF237(例如,VF#2)传输到VM 201B(例如,VM#2)的结果排队。
图6是示出根据一个实施方式的DP加速器的示例性方法的流程图。过程600可由可包括软件、硬件或其组合的处理逻辑来执行。例如,过程600可由主机系统(诸如,图5的DP加速器107)执行。参照图6,在框601处,处理逻辑(例如,VF)从应用程序接收对DP加速器资源的请求,其中,该接收是来自虚拟机(VM)的直通通信,其中,VF仅分配给一个VM而非其它VM,并且VF是DP加速器的多个VF中的一个。在框602处,处理逻辑确定DP加速器资源的第一隔离被分配给VF。在框603处,处理逻辑确定资源的第一隔离不满足请求的大小。在框604处,处理逻辑通过DP加速器的资源管理单元将第一资源隔离动态地更新为第二资源隔离,以满足请求大小。
在一个实施方式中,请求包括:训练AI模型的请求。在一个实施方式中,VF的硬件I/O信息位于托管应用程序的主机处的VM的驱动程序处。
在一个实施方式中,DP加速器包括:单根输入输出虚拟化(SR-IOV)通过装置。在一个实施方式中,主机的VM最初由主机的虚拟机管理器(VMM)分配VF。
在一个实施方式中,数据包在VM与分配给VM的VF之间直接传输,而不通过VMM。在一个实施方式中,数据包经由独立于主机的处理单元的直接存储器访问(DMA)在VM和对应于VM的VF之间传输。
注意,如上所示与所述的一些组件或全部组件可在软件、硬件或其组合中实现。例如,这种组件可实现为安装并存储在永久存储装置中的软件,该软件可由处理器(未示出)在存储器中加载并执行,以实行在整个本申请中所描述的进程或操作。或者,这种组件可实现为经编程或嵌入到专用硬件(诸如集成电路(例如,专用集成电路或ASIC)、数字信号处理器(DSP)或现场可编程门阵列(FPGA))中的可执行代码,其可经由相应的驱动程序和/或操作系统从应用程序访问。此外,这种组件可被实现为处理器或处理器核心中的专用硬件逻辑,作为可由软件组件经由一个或多个专用指令访问的指令集的一部分。
前面详细描述的一些部分已经依据对计算机存储器内的数据位的操作的算法和符号表示来呈现。这些算法描述和表示是数据处理领域的那些技术人员用来最有效地将他们工作的实质传达给本领域的其他技术人员的方式。这里,算法通常被构想成是导致期望结果的自洽操作序列。这些操作是那些需要对物理量进行物理操纵的操作。
然而,应该记住,所有这些术语和类似的术语将与适当的物理量相关联,并且仅仅是适于这些量的方便的标签。除非从上面的讨论中另有明确地说明,应当理解,在整个说明书中,利用诸如下面的权利要求书中所阐述的术语的讨论参考计算机系统或类似的电子计算装置的动作和进程,其中,计算机系统或类似的电子计算装置操纵并将表示为计算机系统的寄存器和存储器中的物理(电子)量的数据转换为类似地表示为计算机系统存储器或寄存器或其它这种信息存储、传输或显示装置内的物理量的其它数据。
本公开的实施方式还涉及用于执行本文中的操作的设备。这种计算机程序被存储在非暂时性计算机可读介质中。机器可读介质包括:用于以机器(例如,计算机)可读的形式存储信息的任何机制。例如,机器可读(例如,计算机可读)介质包括:机器(例如,计算机)可读存储介质(例如,只读存储器(“ROM”)、随机存取存储器(“RAM”)、磁盘存储介质、光存储介质、闪存装置)。
在前面的图中所描绘的进程或方法可由处理逻辑来执行,其中处理逻辑包括硬件(例如,电路、专用逻辑等)、软件(例如,体现在非暂时性计算机可读介质上)或两者的组合。尽管上面依据一些顺序操作描述了进程或方法,但是应当理解,所描述的一些操作可以以不同的顺序执行。此外,一些操作可以并行地执行,而不是顺序地执行。
未参考任何特定编程语言来描述本公开的实施方式。将了解的是,可使用各种编程语言来实现如本文所描述的本公开的实施方式的教学。
在前面的说明书中,已经参考本公开的具体示例性实施方式描述了本公开的实施方式。显然,可对其进行各种修改,而不脱离如所附权利要求书中所阐述的本公开的较宽的精神和范围。因此,说明书和附图被认为是说明性的,而不是限制性的。

Claims (22)

1.数据处理加速器,包括:
一个或多个静态分区资源;以及
一个或多个虚拟函数,每个虚拟函数与所述一个或多个静态分区资源中的一个相关联,其中,主机的虚拟机分配有所述一个或多个虚拟函数中的一个,以访问与所分配的虚拟函数相关联的所述静态分区资源,并且其中,所述虚拟机无法访问所述数据处理加速器的所述一个或多个静态分区资源中的其余部分。
2.根据权利要求1所述的数据处理加速器,还包括:单根输入输出虚拟化通过装置。
3.根据权利要求1所述的数据处理加速器,其中,所述虚拟机使用在所述虚拟机上运行的虚拟函数驱动程序经由对所述虚拟函数的硬件访问向所述虚拟函数直接传输数据包。
4.根据权利要求1所述的数据处理加速器,其中,所述虚拟函数经由所述虚拟函数的I/O队列将数据包传输至所述虚拟机。
5.根据权利要求1所述的数据处理加速器,其中,所述主机的虚拟机管理器分配所述主机的虚拟机以与所述虚拟函数通信。
6.根据权利要求5所述的数据处理加速器,其中,所述主机的虚拟机管理器分配至多一个虚拟函数给所述虚拟机,并且其中,如果没有所述一个或多个虚拟函数可供分配,则所述虚拟机管理器等待所述一个或多个虚拟函数中的下一个以变成可供分配,或者所述虚拟机管理器拒绝所述分配,或者所述虚拟机管理器将所述虚拟机迁移至另一主机,以便分配给所述另一主机的虚拟函数。
7.根据权利要求5所述的数据处理加速器,其中,数据包直接在所述虚拟机与分配给所述虚拟机的所述虚拟函数之间传输,而不通过所述虚拟机管理器。
8.数据处理系统,包括:
主机;以及
联接至所述主机的数据处理加速器,所述数据处理加速器包括:
一个或多个静态分区资源;以及
一个或多个虚拟函数,每个虚拟函数与所述一个或多个静态分区资源中的一个相关联,其中,主机的虚拟机分配有所述一个或多个虚拟函数中的一个,以访问与所分配的虚拟函数相关联的所述静态分区资源,并且其中,所述虚拟机无法访问所述数据处理加速器的所述一个或多个静态分区资源中的所述其余部分。
9.根据权利要求8所述的数据处理系统,其中,所述数据处理加速器包括单根输入输出虚拟化通过装置。
10.根据权利要求8所述的数据处理系统,其中,所述虚拟机使用在所述虚拟机上运行的虚拟函数驱动程序经由对所述虚拟函数的硬件访问向所述虚拟函数直接传输数据包。
11.根据权利要求8所述的数据处理系统,其中,所述虚拟函数经由所述虚拟函数的I/O队列将数据包传输至所述虚拟机。
12.根据权利要求8所述的数据处理系统,其中,所述主机的虚拟机管理器分配所述主机的虚拟机以与所述虚拟函数通信。
13.根据权利要求12所述的数据处理系统,其中,所述主机的虚拟机管理器分配至多一个虚拟函数给所述虚拟机,并且其中,如果没有所述一个或多个虚拟函数可供分配,则所述虚拟机管理器等待所述一个或多个虚拟函数中的下一个以变成可供分配,或者所述虚拟机管理器拒绝所述分配,或者所述虚拟机管理器将所述虚拟机迁移至另一主机,以便分配给所述另一主机的虚拟函数。
14.根据权利要求8所述的数据处理加速器,其中,数据包直接在所述虚拟机与分配给所述虚拟机的所述虚拟函数之间传输,而不通过所述虚拟机管理器。
15.计算机实现方法,包括:
通过虚拟函数从应用程序中接收请求,以通过数据处理加速器使用在所述数据处理加速器处的资源执行指令,其中,所述接收为来自虚拟机的直通通信,其中,所述虚拟函数仅分配给一个虚拟机,并且所述虚拟函数为所述数据处理加速器的多个虚拟函数中的一个;
基于所述请求使用所述数据处理加速器资源执行所述指令并生成结果;
确定所述虚拟机的一个或多个存储器地址以存储所述结果;以及
基于所述虚拟机的所述一个或多个存储器地址,使用所述虚拟函数将所述结果传输至所述虚拟机。
16.根据权利要求15所述的计算机实现方法,其中,所述指令为训练AI模型或基于AI模型执行推理的指令。
17.根据权利要求15所述的计算机实现方法,其中,所述虚拟函数的所述硬件I/O信息位于托管在所述虚拟机上运行的所述应用程序的主机处的所述虚拟机的驱动程序处。
18.根据权利要求15所述的计算机实现方法,其中,所述数据处理加速器包括单根输入输出虚拟化通过装置。
19.根据权利要求17所述的计算机实现方法,其中,所述主机的所述虚拟机最初由所述主机的虚拟机管理器分配所述虚拟函数。
20.根据权利要求19所述的计算机实现方法,其中,数据包在所述虚拟机与对应于所述虚拟机的所述虚拟函数之间传输,而不通过所述虚拟机管理器。
21.根据权利要求17所述的计算机实现方法,其中,经由独立于所述主机的处理单元的直接存储器访问,在所述虚拟机与对应于所述虚拟机的所述虚拟函数之间传输数据包。
22.一种计算机程序产品,包括计算机程序,所述计算机程序在被处理器执行时实现根据权利要求15-21中任一项所述的方法。
CN202011439282.7A 2020-06-03 2020-12-11 数据处理加速器的具有静态资源分区的数据保护 Pending CN113760525A (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US16/891,458 US11822964B2 (en) 2020-06-03 2020-06-03 Data protection with static resource partition for data processing accelerators
US16/891,458 2020-06-03

Publications (1)

Publication Number Publication Date
CN113760525A true CN113760525A (zh) 2021-12-07

Family

ID=74095656

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202011439282.7A Pending CN113760525A (zh) 2020-06-03 2020-12-11 数据处理加速器的具有静态资源分区的数据保护

Country Status (3)

Country Link
US (1) US11822964B2 (zh)
EP (1) EP3920501B1 (zh)
CN (1) CN113760525A (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN117312233A (zh) * 2023-11-28 2023-12-29 苏州元脑智能科技有限公司 现场可编程逻辑门阵列芯片、及其构建方法及加速器设备

Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20070217409A1 (en) * 2006-03-20 2007-09-20 Mann Eric K Tagging network I/O transactions in a virtual machine run-time environment
US7502884B1 (en) * 2004-07-22 2009-03-10 Xsigo Systems Resource virtualization switch
WO2013097901A1 (en) * 2011-12-29 2013-07-04 Telefonaktiebolaget L M Ericsson (Publ) Virtual machine management using a downloadable subscriber identity module
US20150149995A1 (en) * 2013-11-22 2015-05-28 International Business Machines Corporation Implementing dynamic virtualization of an sriov capable sas adapter
US20180212875A1 (en) * 2017-01-20 2018-07-26 Huawei Technologies Co., Ltd. Data packet forwarding method, network adapter, host device, and computer system
US20180225237A1 (en) * 2017-02-03 2018-08-09 Intel Corporation Hardware-based virtual machine communication
WO2018176393A1 (en) * 2017-03-31 2018-10-04 Intel Corporation Techniques for virtual machine transfer and resource management
US20190155548A1 (en) * 2016-09-30 2019-05-23 Huawei Technologies Co., Ltd. Computer system and storage access apparatus

Family Cites Families (38)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9813283B2 (en) * 2005-08-09 2017-11-07 Oracle International Corporation Efficient data transfer between servers and remote peripherals
JP4756603B2 (ja) * 2006-10-10 2011-08-24 ルネサスエレクトロニクス株式会社 データプロセッサ
JP4934642B2 (ja) 2008-06-11 2012-05-16 株式会社日立製作所 計算機システム
US8392625B2 (en) * 2010-06-25 2013-03-05 Intel Corporation Methods and systems to implement a physical device to differentiate amongst multiple virtual machines of a host computer system
US8761187B2 (en) 2011-06-14 2014-06-24 Futurewei Technologies, Inc. System and method for an in-server virtual switch
US20130042238A1 (en) 2011-08-12 2013-02-14 International Business Machines Corporation Optimized Virtual Function Translation Entry Memory Caching
US20130055254A1 (en) * 2011-08-31 2013-02-28 Nokia Corporation Methods and apparatuses for providing a virtual machine with dynamic assignment of a physical hardware resource
US9542350B1 (en) * 2012-04-13 2017-01-10 Google Inc. Authenticating shared interconnect fabrics
JP5954074B2 (ja) * 2012-09-20 2016-07-20 富士通株式会社 情報処理方法、情報処理装置、及びプログラム。
JP6015342B2 (ja) * 2012-10-24 2016-10-26 富士通株式会社 情報処理方法、プログラム、情報処理装置、及び情報処理システム
CN103049331B (zh) * 2012-12-06 2015-09-23 华中科技大学 一种虚拟功能的动态调度方法
US9218303B2 (en) 2012-12-14 2015-12-22 Dell Products L.P. Live migration of virtual machines using virtual bridges in a multi-root input-output virtualization blade chassis
US9298484B2 (en) 2013-03-14 2016-03-29 International Business Machines Corporation Encapsulation of an application for virtualization
US9672167B2 (en) * 2013-07-22 2017-06-06 Futurewei Technologies, Inc. Resource management for peripheral component interconnect-express domains
US9507935B2 (en) * 2014-01-16 2016-11-29 Fireeye, Inc. Exploit detection system with threat-aware microvisor
US9294567B2 (en) 2014-05-02 2016-03-22 Cavium, Inc. Systems and methods for enabling access to extensible storage devices over a network as local storage via NVME controller
US9501245B2 (en) 2014-05-02 2016-11-22 Cavium, Inc. Systems and methods for NVMe controller virtualization to support multiple virtual machines running on a host
US20160149877A1 (en) 2014-06-05 2016-05-26 Cavium, Inc. Systems and methods for cloud-based web service security management basedon hardware security module
US9569242B2 (en) * 2014-07-16 2017-02-14 International Business Machines Corporation Implementing dynamic adjustment of I/O bandwidth for virtual machines using a single root I/O virtualization (SRIOV) adapter
US9594649B2 (en) * 2014-10-13 2017-03-14 At&T Intellectual Property I, L.P. Network virtualization policy management system
US10198288B2 (en) * 2014-10-30 2019-02-05 Oracle International Corporation System and method for providing a dynamic cloud with subnet administration (SA) query caching
US10223159B2 (en) * 2015-02-18 2019-03-05 Red Hat Israel, Ltd. Configuring virtual machine interfaces to provide access to a requested logical network based on virtual function availability and a virtual function capability option
EP3306870B1 (en) * 2015-07-03 2019-09-11 Huawei Technologies Co., Ltd. Network configuration method, network system and device
US20170180325A1 (en) * 2015-12-22 2017-06-22 Intel Corporation Technologies for enforcing network access control of virtual machines
US10353727B2 (en) 2016-05-26 2019-07-16 International Business Machines Corporation Extending trusted hypervisor functions with existing device drivers
US10423437B2 (en) 2016-08-17 2019-09-24 Red Hat Israel, Ltd. Hot-plugging of virtual functions in a virtualized environment
US10824455B2 (en) * 2016-12-02 2020-11-03 Nutanix, Inc. Virtualized server systems and methods including load balancing for virtualized file servers
US10228981B2 (en) 2017-05-02 2019-03-12 Intel Corporation High-performance input-output devices supporting scalable virtualization
US10972449B1 (en) 2018-06-28 2021-04-06 Amazon Technologies, Inc. Communication with components of secure environment
US20190114195A1 (en) 2018-08-22 2019-04-18 Intel Corporation Virtual device composition in a scalable input/output (i/o) virtualization (s-iov) architecture
US11669372B2 (en) * 2018-12-13 2023-06-06 Intel Corporation Flexible allocation of compute resources
US11003484B2 (en) * 2019-06-28 2021-05-11 Intel Corporation Inter-processor interrupt virtualization with pass-through of local interrupt controller
US11709712B2 (en) * 2019-10-10 2023-07-25 Baidu Usa Llc Method and system for artificial intelligence model training using a watermark-enabled kernel for a data processing accelerator
US11481678B2 (en) * 2019-11-14 2022-10-25 Baidu Usa Llc Systems and methods for learning new watermark algorithms for a data processing accelerator
US11574032B2 (en) * 2019-11-14 2023-02-07 Baidu Usa Llc Systems and methods for signing an AI model with a watermark for a data processing accelerator
US11579928B2 (en) * 2019-11-14 2023-02-14 Baidu Usa Llc Systems and methods for configuring a watermark unit with watermark algorithms for a data processing accelerator
US11582260B2 (en) * 2019-11-14 2023-02-14 Baidu Usa Llc Systems and methods for verifying a watermark of an AI model for a data processing accelerator
US11544096B2 (en) * 2020-02-27 2023-01-03 Hewlett Packard Enterprise Development Lp Virtual trusted platform modules

Patent Citations (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7502884B1 (en) * 2004-07-22 2009-03-10 Xsigo Systems Resource virtualization switch
US20070217409A1 (en) * 2006-03-20 2007-09-20 Mann Eric K Tagging network I/O transactions in a virtual machine run-time environment
WO2013097901A1 (en) * 2011-12-29 2013-07-04 Telefonaktiebolaget L M Ericsson (Publ) Virtual machine management using a downloadable subscriber identity module
US20150149995A1 (en) * 2013-11-22 2015-05-28 International Business Machines Corporation Implementing dynamic virtualization of an sriov capable sas adapter
DE102014116808A1 (de) * 2013-11-22 2015-05-28 International Business Machines Corporation Realisieren einer dynamischen Virtualisierung eines Sriov-fähigen SAS-Adapters
US20190155548A1 (en) * 2016-09-30 2019-05-23 Huawei Technologies Co., Ltd. Computer system and storage access apparatus
US20180212875A1 (en) * 2017-01-20 2018-07-26 Huawei Technologies Co., Ltd. Data packet forwarding method, network adapter, host device, and computer system
US20180225237A1 (en) * 2017-02-03 2018-08-09 Intel Corporation Hardware-based virtual machine communication
WO2018176393A1 (en) * 2017-03-31 2018-10-04 Intel Corporation Techniques for virtual machine transfer and resource management
US20190361728A1 (en) * 2017-03-31 2019-11-28 Intel Corporation Techniques for virtual machine transfer and resource management

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN117312233A (zh) * 2023-11-28 2023-12-29 苏州元脑智能科技有限公司 现场可编程逻辑门阵列芯片、及其构建方法及加速器设备
CN117312233B (zh) * 2023-11-28 2024-02-23 苏州元脑智能科技有限公司 现场可编程逻辑门阵列芯片、及其构建方法及加速器设备

Also Published As

Publication number Publication date
EP3920501A1 (en) 2021-12-08
US11822964B2 (en) 2023-11-21
EP3920501B1 (en) 2023-01-18
US20210382756A1 (en) 2021-12-09

Similar Documents

Publication Publication Date Title
US10216628B2 (en) Efficient and secure direct storage device sharing in virtualized environments
US8464260B2 (en) Configuration and association of a supervisory virtual device function to a privileged entity
US8656482B1 (en) Secure communication using a trusted virtual machine
US11381566B2 (en) Isolating network resources in a virtualized environment
US9823868B2 (en) Method and apparatus for virtualization
US20190034633A1 (en) Protecting computer systems used in virtualization environments against fileless malware
US10713081B2 (en) Secure and efficient memory sharing for guests
US11036645B2 (en) Secure userspace networking for guests
CN112948070A (zh) 用于由数据处理加速器处理数据的方法及数据处理加速器
EP3923535B1 (en) Method for data protection in a data processing cluster with policy-based partition
EP3920068A1 (en) Data protection with dynamic resource isolation for data processing accelerators
TWI772747B (zh) 用於將中斷及例外注入安全虛擬機器之電腦實施方法、電腦系統及電腦程式產品
EP3920501B1 (en) Data protection with static resource partition for data processing accelerators
US11687376B2 (en) Method for data protection in a data processing cluster with dynamic partition
US20240104193A1 (en) Direct assignment of physical devices to confidential virtual machines
US20240220639A1 (en) Secure data offload in a disaggregated and heterogenous orchestration environment
US11687629B2 (en) Method for data protection in a data processing cluster with authentication
US11847501B2 (en) Method for data protection in a data processing cluster with partition
US20240220666A1 (en) Hardware access control at software domain granularity
Raut Flexible Hypervisor

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