CN115202808A - 一种用于虚拟化环境中片上系统的dma方法及系统 - Google Patents

一种用于虚拟化环境中片上系统的dma方法及系统 Download PDF

Info

Publication number
CN115202808A
CN115202808A CN202210698619.9A CN202210698619A CN115202808A CN 115202808 A CN115202808 A CN 115202808A CN 202210698619 A CN202210698619 A CN 202210698619A CN 115202808 A CN115202808 A CN 115202808A
Authority
CN
China
Prior art keywords
dma
fpga
virtual machine
memory
module
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
CN202210698619.9A
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.)
Institute of Computing Technology of CAS
Original Assignee
Institute of Computing Technology of CAS
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 Institute of Computing Technology of CAS filed Critical Institute of Computing Technology of CAS
Priority to CN202210698619.9A priority Critical patent/CN115202808A/zh
Publication of CN115202808A publication Critical patent/CN115202808A/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
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/20Handling requests for interconnection or transfer for access to input/output bus
    • G06F13/28Handling requests for interconnection or transfer for access to input/output bus using burst mode transfer, e.g. direct memory access DMA, cycle steal
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/76Architectures of general purpose stored program computers
    • G06F15/78Architectures of general purpose stored program computers comprising a single central processing unit
    • G06F15/7807System on chip, i.e. computer system on a single chip; System in package, i.e. computer system on one or more chips in a single package
    • 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)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Software Systems (AREA)
  • Computing Systems (AREA)
  • Microelectronics & Electronic Packaging (AREA)
  • Bus Control (AREA)

Abstract

本发明提出一种用于虚拟化环境中片上系统的DMA方法和系统,包括:读主机内存‑写FPGA内存和读FPGA内存‑写主机内存两个方向的DMA硬件。以读主机内存‑写FPGA内存为例,主机运行的虚拟机发起访问FPGA内存指令,DMA模块接受该指令,将FPGA访存地址和传输字节大小以数据流的形式输入至命令字生成模块将数据流转换为命令字,流数据转换模块根据该命令字访问FPGA内存。本发明通过设计DMA软硬件,实现在上述两个方向分别只使用一个DMA描述符,以减少主机硬件地址翻译竞争开销。在SoC FPGA中,片上总线互连的CPU和FPGA紧耦合,在其CPU主机上运行的虚拟机中直通上述两个方向DMA。

Description

一种用于虚拟化环境中片上系统的DMA方法及系统
技术领域
本发明涉及计算机系统结构、系统虚拟化以及异构处理系统领域,特别涉及一种用于虚拟化环境中片上系统的直接存储器访问(Direct Memory Access,DMA)系统。
背景技术
随着摩尔定律放缓,同时云上人工智能等新型应用程序对算力的需求暴增,通用CPU越来越难以满足这些应用的需求。为了应对算力瓶颈、减轻CPU负担,越来越多的加速器开始在云中部署,如GPU、现场可编程门阵列(Field Programmable Gate Array,FPGA)、张量处理单元(Tensor Processing Unit,TPU)等不同种类的硬件加速器在商用云中不断涌现。
由于具有硬件可编程性和较高的计算能效比,FPGA已经在云中广泛部署用于应用程序加速。亚马逊、微软和阿里等云厂商在云中部署FPGA,用于加速机器学习、图计算、视频图像处理、区块链和基因分析等应用。
FPGA加速器的部署依赖动态部分可重构技术来重新配置FPGA。动态部分可重构技术把FPGA划分为静态区(SHELL)和部署FPGA加速器的动态区(ROLE),保证了在重新配置用户加速器的动态区时静态区和其他加速器的动态区将保持不变且不受影响。
云FPGA的使用依赖在主机上运行的虚拟机和FPGA内存之间进行数据拷贝,而且虚拟机和加速器FPGA内存间的数据拷贝效率在一定程度上影响了FPGA加速器的加速效率。但是,针对嵌入CPU硬核的SoC(System On Chip,片上系统)FPGA,由于主机和FPGA之间不是PCIe接口,因此缺少PCIe DMA的支持,导致虚拟机和FPGA内存不同地址空间的DMA数据拷贝的软硬件支持不完善,特别是针对在FPGA动态部分可重构场景中多加速器共享FPGA内存的情况。
目前针对SoC FPGA,现有的DMA硬件不论是主机到FPGA内存,还是FPGA内存到主机方向,都需要访问主机内存获取DMA描述符,在虚拟化环境下硬件地址翻译竞争开销较大。此外,针对SoC FPGA,在FPGA划分多个动态区部署多加速器的情况下,目前在CPU主机上运行的虚拟机中执行不同加速器的DMA数据拷贝没有成熟的解决方案。
发明内容
针对目前SoC FPGA平台在CPU虚拟机中执行DMA拷贝没有成熟的方案,提出了一种虚拟化环境中片上系统的DMA系统,包括DMA硬件和驱动软件。本发明可以用于在SoC FPGA的主机上运行的虚拟机中执行虚拟机和FPGA加速器内存间的数据拷贝,而且每个方向只需要获取一个DMA描述符。
具体来说,本发明提出一种用于虚拟化环境中片上系统的DMA方法,其中包括:
片上系统包括通过片上总线互连的紧耦合的CPU主机和FPGA,当主机运行的虚拟机传输数据到FPGA内存时执行步骤1,从FPGA内存传输数据至该虚拟机时执行步骤2;
步骤1、主机运行的虚拟机根据DMA描述符发起传输数据到FPGA内存的指令,DMA模块接受该访问FPGA内存指令,并将该访问FPGA内存指令的FPGA访存地址和传输字节大小以数据流的形式输入至命令字生成模块,命令字生成模块将该数据流转换为命令字,流数据转换模块接受该命令字后,该模块根据该FPGA访存地址和传输字节大小访问该FPGA内存;
步骤2、主机运行的虚拟机根据DMA描述符发起从FPGA内存读数据的指令,DMA模块接受该指令,并将该指令的虚拟机地址和传输字节大小以数据流的形式输入至命令字生成模块,命令字生成模块将该数据流转换为命令字,流数据转换模块接受该命令字后,该模块根据该虚拟机地址和传输字节大小返回数据至该虚拟机。
所述的用于虚拟化环境中片上系统的DMA方法,其中为该主机上每个虚拟机直通DMA硬件,该DMA硬件包括该DMA模块、该命令字生成模块和流数据转换模块。
所述的用于虚拟化环境中片上系统的DMA方法,其中该FPGA内存按照动态部分可重构区域(简称为动态区)的数量划分,而且不同FPGA动态区具有相同的FPGA内存视图;
根据当前FPGA动态区资源使用情况,系统在分配动态区资源后记录各动态区的FPGA加速器编号,执行该步骤1或该步骤2时,根据FPGA加速器编号获得不同动态区的FPGA内存基地址,通过为每个动态区配置不同的内存基地址偏移,实现在不同动态区中部署的加速器只能访问对应地址空间的FPGA内存。
所述的用于虚拟化环境中片上系统的DMA方法,其中该DMA描述符包括用户字段数据,该命令字生成模块根据该用户字段数据构建该命令字发往该流数据转换模块。
本发明还提出了一种用于虚拟化环境中片上系统的DMA系统,其中包括:
片上系统包括片上互连的CPU主机和FPGA,当主机运行的虚拟机传输数据到FPGA内存时调用第一传输模块,从FPGA内存传输数据至该虚拟机时调用第二传输模块;
第一传输模块,用于使主机运行的虚拟机根据DMA描述符发起传输数据到FPGA内存的指令,DMA模块接受该访问FPGA内存指令,并将该访问FPGA内存指令的FPGA访存地址和传输字节大小以数据流的形式输入至命令字生成模块,命令字生成模块将该数据流转换为命令字,流数据转换模块接受该命令字后,该模块根据该FPGA访存地址和传输字节大小访问该FPGA内存;
第二传输模块,用于使主机运行的虚拟机根据DMA描述符发起从FPGA内存读数据的指令,DMA模块接受该指令,并将该指令的虚拟机地址和传输字节大小以数据流的形式输入至命令字生成模块,命令字生成模块将该数据流转换为命令字,流数据转换模块接受该命令字后,该模块根据该虚拟机地址和传输字节大小返回数据至该虚拟机。
在虚拟机中直通DMA硬件,该DMA硬件包括该DMA模块、该命令字生成模块和流数据转换模块。
所述的用于虚拟化环境中片上系统的DMA系统,其中该FPGA内存按照动态部分可重构区域(简称为动态区)的数量划分,而且不同FPGA动态区具有相同的FPGA内存视图;
根据当前FPGA动态区资源使用情况,系统在分配动态区资源后记录各动态区的FPGA加速器编号,执行该步骤1或该步骤2时,根据FPGA加速器编号获得FPGA内存基地址,通过为每个动态区配置不同的内存基地址偏移,实现不同动态区加速器只能访问指定范围的FPGA内存。
所述的用于虚拟化环境中片上系统的DMA系统,其中该DMA描述符包括用户字段数据,该命令字生成模块根据该用户字段数据构建该命令字发往该流数据转换模块。
本发明还提出了一种存储介质,用于存储执行所述任意一种用于虚拟化环境中片上系统的DMA方法的程序。本发明还提出了一种客户端,用于所述任意一种用于虚拟化环境中片上系统的DMA系统。
由以上方案可知,本发明的优点在于:
本发明所述方法,针对SoC FPGA平台,支持在其主机上运行的虚拟机中实现虚拟机和加速器FPGA内存间的DMA数据拷贝,同时每个方向只需要访问一次DMA描述符。
附图说明
图1为本发明DMA硬件结构图;
图2为虚拟机DMA软硬件框架图;
图3为虚拟机使用DMA方式传输数据流程图。
具体实施方式
目前SoC FPGA尚无在CPU虚拟机中执行DMA拷贝的成熟方案,而且现有DMA硬件在做主机和FPGA内存之间的数据拷贝时,每个方向需要两次从主机内存读取描述符,因此硬件地址翻译竞争开销较大。本发明通过定制设计DMA硬件,每个方向只用一个DMA描述符,因此每个方向DMA获取描述符只访问一次主机内存,从而减少硬件地址翻译的竞争开销。其次,本发明在SoC FPGA主机上运行的每个虚拟机中直通两个方向DMA,并通过在FPGA内存方向使用不同的FPGA内存物理地址偏移,以实现不同部分可重构区域具有相同的FPGA内存地址空间,并在虚拟机中进行安全的DMA拷贝。
为了实现上述技术效果,本发明主要包括以下关键技术点:
关键点一,通过在DMA描述符的用户字段中自定义访问FPGA内存的元数据,实现在主机和FPGA内存间执行DMA拷贝时每个方向只使用一个DMA描述符;
关键点二,通过在FPGA主机上运行的每个虚拟机中直通两个DMA硬件实现H2C和C2H两个方向的DMA拷贝;
关键点三,通过使用不同FPGA内存基地址,为不同FPGA部分可重构区域上部署的加速器提供统一地址空间的不同FPGA内存,并在DMA驱动中通过访存偏移支持不同虚拟机和加速器间的DMA数据拷贝。
为让本发明的上述特征和效果能阐述的更明确易懂,下文特举实施例,并配合说明书附图作详细说明如下。
以主机CPU为ARM架构的SoC FPGA为例,本发明提出的用于虚拟化环境片上系统的DMA系统框架包括硬件和软件两部分,下面分别介绍。
本发明DMA硬件系统框架如图1所示。在H2C(Host to Card,主机到FPGA卡)和C2H(Card to Host,FPGA卡到主机)两个方向上,都通过定制的命令字生成模块,配合仅包含MM2S(Memory-Mapped to Stream,内存映射到流)通道的DMA(包括但不限于多通道DMA)和流数据转换模块(包括但不限于DataMover)实现了DMA数据拷贝。
以读主机内存-写FPGA内存为例,即H2C方向DMA的具体实现原理如下:
在DMA驱动中自定义DMA描述符的用户APP字段,这些字段会以多个流数据的形式从DMA的CNTRL接口输出。另一方面,流数据转换模块根据cmd接口输入的命令字把输入的流数据转为AXI4数据输出到下游,该命令字中包含了访存地址和传输字节大小。因此本发明在DMA驱动中把BD描述符的APP字段定义为包含加速器FPGA访存地址和传输大小等信息,则这些关键信息将通过DMA CNTRL接口以Stream流的形式输出。接着图1中的命令字生成模块即可在硬件中使用得到的多个DMA描述符中用户字段数据拼凑出下游流数据转换模块需要的命令字。最后流数据转换根据指定的FPGA内存物理地址和大小访问FPGA内存。另一方向C2H的硬件实现原理与H2C的实现类似。因此不论是H2C还是C2H方向,主机和FPGA内存间的DMA数据拷贝只需要DMA模块的一个DMA描述符。
虚拟机中定制DMA工作原理的系统框架如图2,在FPGA SHELL中为每个ROLE分配一对定制DMA(H2C和C2H两个方向),用于在主机和FPGA内存之间进行DMA数据拷贝,同时在动态区中部署的加速器通过访问FPGA内存进行加速计算。在软件实现中,在每个虚拟机操作系统内核中部署DMA驱动和定制DMA代理驱动,因此虚拟机租户可以通过该驱动暴露的用户态h2c(与H2C DMA硬件对应)和c2h(与C2H DMA硬件对应)字符设备进行DMA传输。具体来说,定制DMA硬件在虚拟机中的运行依赖ARM主机的IOMMU(Input/Output Memory ManagemnetUnit,I/O内存管理单元)实现硬件地址翻译,并通过VFIO(Virtual Function I/O,虚拟功能I/O)框架进行设备直通。在QEMU(Quick Emulator,快速模拟器)中通过封装vfio-platform抽象设备模型实现DMA的设备直通模型(vfio-axi-mcdma)。在运行在主机上的租户虚拟机启动时为其直通H2C和C2H两个方向的DMA用于双向数据拷贝。使能DMA直通的QEMU启动参数配置如下所示:
-device vfio-axi-mcdma,host=81008000.axi_mcdma
-device vfio-axi-mcdma,host=81007000.axi_mcdma
虚拟机DMA拷贝应该访问合法的加速器FPGA内存地址。本发明将FPGA内存按照动态部分可重构区域的数量进行划分,如16GB FPGA内存并且FPGA逻辑划分为4个动态区,则0~4GB内存用于动态区1使用,4~8GB用于动态区2使用,以此类推。而且不同加速器具有相同的内存视图,如对于16GB FPGA内存,则每个加速器的内存视图为0~4GB,这是通过为每个加速器的FPGA访存地址配置不同基地址偏移实现的。
虚拟机DMA代理驱动的实现保证了不同动态区中部署的加速器只能访问对应地址空间的FPGA内存,其原因是:本发明在SHELL中实时记录了动态区资源的使用情况,在分配动态区资源后QEMU将记录其加速器编号,因此当DMA代理驱动进行DMA传输时,根据分配的动态区加速器编号获得其FPGA内存基地址,从而访问对应地址空间的FPGA内存。
另一方面,虚拟机DMA代理驱动需要配合定制DMA硬件。由于定制DMA硬件通过DMA输出的CNTRL流数据向流数据转换模块发起访存命令,因此本发明在DMA驱动的DMA描述符中包含与图1中命令字生成模块输入流数据格式一致的自定义用户字段。
如图3,所述在虚拟机中通过DMA传输数据的方法,包括:步骤1、步骤2、步骤3、步骤4、步骤5、步骤6和步骤7;其中,步骤1为在FPGA的SHELL中实现H2C和C2H方向的定制DMA,步骤2为使能主机IOMMU软硬件和VFIO驱动,步骤3为在主机操作系统内核中实现DMA设备直通的复位功能,步骤4为在虚拟机监视器中实现DMA直通的设备模型,步骤5为在租户虚拟机启动时直通H2C和C2H DMA设备,步骤6为在虚拟机操作系统内核中实现和加载DMA相关驱动,步骤7为在虚拟机中租户通过DMA驱动暴露的字符设备进行DMA数据传输。
另外,为了实现步骤1在FPGA的SHELL中实现H2C和C2H方向的定制DMA,如图1,步骤1具体包括:步骤1.1以及步骤1.2;其中,步骤1.1为实现命令字生成模块,将DMA输出的包含FPGA访存地址和大小等信息的数据流(AXI Stream)转换为下游流数据转换模块的命令字,步骤1.2为通过集成DMA、命令字生成模块和流数据转换模块,实现主机和FPGA内存间H2C和C2H两个方向的定制DMA数据传输硬件。
另外,为了实现步骤2使能主机IOMMU软硬件和VFIO驱动,步骤2具体包括:步骤2.1、步骤2.2和步骤2.3;其中,步骤2.1为使能主机IOMMU硬件,步骤2.2为在主机操作系统内核中使能并加载IOMMU驱动,步骤2.3为在主机内核中使能并加载VFIO驱动。
另外,为了实现步骤6在虚拟机操作系统内核中实现和加载DMA相关驱动,步骤6具体包括:步骤6.1、步骤6.2、以及步骤6.3;其中,步骤6.1为在虚拟机中使能DMA驱动,步骤6.2为在虚拟机中实现并加载DMA代理驱动,该驱动在配合定制DMA硬件的同时保证该虚拟机访问对应地址空间的FPGA内存。
以下为与上述方法实施例对应的系统实施例,本实施方式可与上述实施方式互相配合实施。上述实施方式中提到的相关技术细节在本实施方式中依然有效,为了减少重复,这里不再赘述。相应地,本实施方式中提到的相关技术细节也可应用在上述实施方式中。
本发明还提出了一种用于虚拟化环境中片上系统的DMA系统,其中包括:
片上系统包括紧耦合的CPU主机和FPGA,当主机运行的虚拟机传输数据到FPGA内存时调用第一传输模块,从FPGA内存传输数据至该虚拟机时调用第二传输模块;
第一传输模块,用于使主机运行的虚拟机根据DMA描述符发起传输数据到FPGA内存的指令,DMA模块接受该访问FPGA内存指令,并将该访问FPGA内存指令的FPGA访存地址和传输字节大小以数据流的形式输入至命令字生成模块,命令字生成模块将该数据流转换为命令字,流数据转换模块接受该命令字后,该模块根据该FPGA访存地址和传输字节大小访问该FPGA内存;
第二传输模块,用于使主机运行的虚拟机根据DMA描述符发起从FPGA内存读数据的指令,DMA模块接受该指令,并将该指令的虚拟机地址和传输字节大小以数据流的形式输入至命令字生成模块,命令字生成模块将该数据流转换为命令字,流数据转换模块接受该命令字后,该模块根据该虚拟机地址和传输字节大小返回数据至该虚拟机。
在虚拟机中直通DMA硬件,该DMA硬件包括该DMA模块、该命令字生成模块和流数据转换模块。
所述的用于虚拟化环境中片上系统的DMA系统,其中该FPGA内存按照动态部分可重构区域(简称为动态区)的数量划分,而且不同FPGA动态区中部署的加速器具有相同的FPGA内存视图;
根据当前FPGA动态区资源使用情况,系统在分配动态区资源后记录各动态区的FPGA加速器编号,执行该步骤1或该步骤2时,根据FPGA加速器编号获得FPGA内存基地址,通过为每个动态区配置不同的内存基地址偏移,实现不同动态区加速器访问对应地址空间的FPGA内存。
所述的用于虚拟化环境中片上系统的DMA系统,其中该DMA描述符包括用户字段数据,该命令字生成模块根据该用户字段数据构建该命令字发往该流数据转换模块。
本发明还提出了一种存储介质,用于存储执行所述任意一种用于虚拟化环境中片上系统的DMA方法的程序。本发明还提出了一种客户端,用于所述任意一种用于虚拟化环境中片上系统的DMA系统。

Claims (10)

1.一种用于虚拟化环境中片上系统的DMA方法,其特征在于,包括:
片上系统包括通过片上总线互连的紧耦合的CPU主机和FPGA,当主机运行的虚拟机传输数据到FPGA内存时执行步骤1,从FPGA内存传输数据至该虚拟机时执行步骤2;
步骤1、主机运行的虚拟机根据DMA描述符发起传输数据到FPGA内存的指令,DMA模块接受该访问FPGA内存指令,并将该访问FPGA内存指令的FPGA访存地址和传输字节大小以数据流的形式输入至命令字生成模块,命令字生成模块将该数据流转换为命令字,流数据转换模块接受该命令字后,该模块根据该FPGA访存地址和传输字节大小访问该FPGA内存;
步骤2、主机运行的虚拟机根据DMA描述符发起从FPGA内存读数据的指令,DMA模块接受该指令,并将该指令的虚拟机地址和传输字节大小以数据流的形式输入至命令字生成模块,命令字生成模块将该数据流转换为命令字,流数据转换模块接受该命令字后,该模块根据该虚拟机地址和传输字节大小返回数据至该虚拟机。
2.如权利要求1所述的用于虚拟化环境中片上系统的DMA方法,其特征在于,为该主机上每个虚拟机直通DMA硬件,该DMA硬件包括该DMA模块、该命令字生成模块和流数据转换模块。
3.如权利要求1或2所述的用于虚拟化环境中片上系统的DMA方法,其特征在于,该FPGA内存按照动态部分可重构区域(简称为动态区)的数量划分,而且不同FPGA动态区具有相同的FPGA内存视图;
根据当前FPGA动态区资源使用情况,系统在分配动态区资源后记录各动态区的FPGA加速器编号,执行该步骤1或该步骤2时,根据FPGA加速器编号获得FPGA内存基地址,通过为每个动态区配置不同的内存基地址偏移,实现在不同动态区中部署的加速器具有相同的FPGA内存地址空间。
4.如权利要求1或2所述的用于虚拟化环境中片上系统的DMA方法,其特征在于,该DMA描述符包括用户字段数据,该命令字生成模块根据该用户字段数据构建该命令字发往该流数据转换模块。
5.一种用于虚拟化环境中片上系统的DMA系统,其特征在于,包括:
片上系统包括通过片上总线互连的紧耦合的CPU主机和FPGA,当主机运行的虚拟机传输数据到FPGA内存时调用第一传输模块,从FPGA内存传输数据至该虚拟机时调用第二传输模块;
第一传输模块,用于使主机运行的虚拟机根据DMA描述符发起传输数据到FPGA内存的指令,DMA模块接受该访问FPGA内存指令,并将该访问FPGA内存指令的FPGA访存地址和传输字节大小以数据流的形式输入至命令字生成模块,命令字生成模块将该数据流转换为命令字,流数据转换模块接受该命令字后,该模块根据该FPGA访存地址和传输字节大小访问该FPGA内存;
第二传输模块,用于使主机运行的虚拟机根据DMA描述符发起从FPGA内存读数据的指令,DMA模块接受该指令,并将该指令的虚拟机地址和传输字节大小以数据流的形式输入至命令字生成模块,命令字生成模块将该数据流转换为命令字,流数据转换模块接受该命令字后,该模块根据该虚拟机地址和传输字节大小返回数据至该虚拟机。
6.如权利要求5所述的用于虚拟化环境中片上系统的DMA系统,其特征在于,为该主机上每个虚拟机直通DMA硬件,该DMA硬件包括该DMA模块、该命令字生成模块和流数据转换模块。
7.如权利要求5或6所述的用于虚拟化环境中片上系统的DMA系统,其特征在于,该FPGA内存按照动态部分可重构区域(简称为动态区)的数量划分,而且不同FPGA动态区具有相同的FPGA内存视图;
根据当前FPGA动态区资源使用情况,系统在分配动态区资源后记录各动态区的FPGA加速器编号,执行该步骤1或该步骤2时,根据FPGA加速器编号获得FPGA内存基地址,通过为每个动态区配置不同的内存基地址偏移,实现在不同动态区中部署的加速器具有相同的FPGA内存地址空间。
8.如权利要求5或6所述的用于虚拟化环境中片上系统的DMA系统,其特征在于,该DMA描述符包括用户字段数据,该命令字生成模块根据该用户字段数据构建该命令字发往该流数据转换模块。
9.一种存储介质,用于存储执行如权利要求1到4所述任意一种用于虚拟化环境中片上系统的DMA方法的程序。
10.一种客户端,用于权利要求5至8中任意一种用于虚拟化环境中片上系统的DMA系统。
CN202210698619.9A 2022-06-20 2022-06-20 一种用于虚拟化环境中片上系统的dma方法及系统 Pending CN115202808A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202210698619.9A CN115202808A (zh) 2022-06-20 2022-06-20 一种用于虚拟化环境中片上系统的dma方法及系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202210698619.9A CN115202808A (zh) 2022-06-20 2022-06-20 一种用于虚拟化环境中片上系统的dma方法及系统

Publications (1)

Publication Number Publication Date
CN115202808A true CN115202808A (zh) 2022-10-18

Family

ID=83575856

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202210698619.9A Pending CN115202808A (zh) 2022-06-20 2022-06-20 一种用于虚拟化环境中片上系统的dma方法及系统

Country Status (1)

Country Link
CN (1) CN115202808A (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN116010301A (zh) * 2022-11-29 2023-04-25 上海燧原科技有限公司 从数据流到dma配置的映射方法与装置、存储介质和dla

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN116010301A (zh) * 2022-11-29 2023-04-25 上海燧原科技有限公司 从数据流到dma配置的映射方法与装置、存储介质和dla
CN116010301B (zh) * 2022-11-29 2023-11-24 上海燧原科技有限公司 从数据流到dma配置的映射方法与装置、存储介质和dla

Similar Documents

Publication Publication Date Title
US20210232528A1 (en) Configurable device interface
JP5608243B2 (ja) 仮想化環境においてi/o処理を行う方法および装置
CN103034524A (zh) 半虚拟化的虚拟gpu
EP4053706A1 (en) Cross address-space bridging
KR20100058670A (ko) 크로스-시스템의 프록시-기반 태스크 오프로딩을 위한 장치, 시스템 및 방법
US20180239728A1 (en) Management controller including virtual usb host controller
US20210149587A1 (en) Technologies to provide access to kernel and user space memory regions
Zazo et al. A PCIe DMA engine to support the virtualization of 40 Gbps FPGA-accelerated network appliances
US10649915B1 (en) Disaggregated computing architecture using device pass-through wherein independent physical address spaces between systems nodes are implemented in a single execution environment
CN118159951A (zh) 一种处理请求的方法、装置及系统
CN115202808A (zh) 一种用于虚拟化环境中片上系统的dma方法及系统
CN117591489B (zh) 基于多系统隔离的虚拟文件共享系统
WO2021223744A1 (zh) 实现热迁移的方法、芯片、板卡和存储介质
CN108829530B (zh) 一种图像处理方法及装置
CN117032812B (zh) 服务器的管理方法、设备、装置、存储介质和电子设备
CN114490023A (zh) 一种基于arm和fpga的高能物理可计算存储设备
Bertolotti et al. Modular design of an open-source, networked embedded system
CN113568734A (zh) 基于多核处理器的虚拟化方法、系统、多核处理器和电子设备
WO2021170054A1 (zh) 一种虚拟化的方法、设备、板卡及计算机可读存储介质
CN116126459A (zh) 一种面向异构计算环境的fpga虚拟化实现方法
US20230244380A1 (en) Device and method for implementing live migration
CN117806892B (zh) 存储芯片模型测试方法、装置、通信设备及存储介质
CN113326118A (zh) 基于多核处理器的虚拟化方法、系统、多核处理器和电子设备
KR102358752B1 (ko) 모바일 환경에서 그래픽 처리 장치를 가상화하는 방법 및 기록 매체
CN117369906B (zh) Pcie验证平台、方法、装置、存储介质及电子设备

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