0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

T-Head原型为虚拟IOMMU提供创新的硬件支持

芯片开放社区 来源:芯片开放社区 2023-06-02 14:06 次阅读

最近,T-Head 完成了基于 QEMU 的虚拟机虚拟 IOMMU 硬件支持的概念验证,基于 T-Head IOMMU 提案中的规范在其成立时提交给 IOMMU TG 作为其中之一候选人提案。 T-Head IOMMU 的虚拟 IOMMU 设计展示了一种向虚拟机公开与主机使用的虚拟 IOMMU 相同的虚拟 IOMMU 的方法。好处是来宾虚拟机可以直接重新使用完全相同的内核驱动程序,并且消除了传统解决方案中昂贵的基于软件的仿真

背景

出于性能或安全等原因,可以将物理 I/O 设备配置为由来宾虚拟机直接访问,这种技术被广泛称为设备直通。直通设备受 IOMMU 转换表的限制,因此它们只能对属于它们所分配到的虚拟机的内存区域执行 DMA。从虚拟机的角度来看,直通设备表现为直接访问虚拟机物理地址空间的外围设备。如果不合并 IOMMU 供虚拟机使用,虚拟机会遇到与主机中的所有设备都不由 IOMMU 管理的情况相同的不便和缺点。它们不能被进一步分配到虚拟机的用户空间,也不能出于可靠性目的限制它们。

wKgZomR5ikqAa1BHAAD8vNpYeeE860.jpg

图 1:模拟虚拟 IOMMU

如图 1 所示,为虚拟机提供 IOMMU 的传统解决方案是 trap-n-emulate 或半虚拟化。 Trap-n-emulate 很昂贵。虽然它向来宾虚拟机提供与主机使用的硬件 IOMMU 相同的 IOMMU,但是,来宾对虚拟 IOMMU 的访问会触发由主机处理的异常。处理是昂贵的。主机不仅需要模拟对虚拟 IOMMU 寄存器的访问,还需要在虚拟机修改其内存驻留翻译结构时将翻译的两个阶段结合起来。后者是由于现有的硬件 IOMMU 不直接使用 guest 的转换表,因为硬件只支持一个阶段的地址转换。一些 IOMMU,例如 ARM SMMU v3,可以进行嵌套地址转换,也有内核补丁可以直接使用guest的转换表,但是补丁仍然是RFC,估计是硬件架构定义的表结构导致软件交互复杂。

wKgZomR5ikqAZF4tAADfP2__PGA269.jpg

图 2:半虚拟化 IOMMU

半虚拟化(如图 2 所示)通过要求来宾虚拟机将其 IOMMU 配置显式传达给主机来减少仿真工作。最大的缺点是需要修改来宾和主机,因此,在某些环境中可能不可用。

T-Head 对虚拟 IOMMU 的硬件支持

T-Head的IOMMU提案试图从硬件架构开始解决上述缺点。简要的想法是指定一个内存区域(称为状态区域),用于呈现给来宾虚拟机的虚拟 IOMMU 的寄存器状态。同时,主机的表结构包括指向状态区域的指针。当需要转换 DMA 请求时,IOMMU 会查找状态区域,从中获取转换表和来宾虚拟机配置的虚拟 IOMMU 的状态。随后,硬件 IOMMU 以与主机结构相同的方式遍历来宾的表结构,将所有地址视为来宾物理地址,即以嵌套转换方式。

wKgaomR5ikqAWM_1AAE1JRyDIgM304.jpg

图 3:T 头的硬件辅助虚拟 IOMMU

T-Head 的虚拟 IOMMU(如图 3 所示)避免了昂贵的仿真,因为客户机的配置直接由硬件使用。也就是说,来宾正在与硬件支持的“直通”IOMMU 进行交互。IOMMU 的接口由硬件 IOMMU 直接公开;它与主机的 IOMMU 相同。主机使用的完全相同的驱动程序可以直接重复使用。使用内存来存储虚拟 IOMMU 的阶段使解决方案具有可扩展性,而不受寄存器上的资源约束。

原型

我们已经完成了QEMU和Linux/KVM的概念验证。我们在本机 QEMU 中的 IOMMU 仿真代码中添加了对根据 T-Head 的 IOMMU 规范的嵌套转换的支持。我们以以前的设备直通工作为基础,在 RISC-V QEMU 中向 VFIO 层添加了嵌套的 IOMMU 支持。IOMMU 内核驱动程序为 RISC-V QEMU 公开了一个新的 API,用于管理状态区域并在转换描述符中配置设备 ID,新 API 作为名为 /dev/xt_iommu 的设备文件存在,我们覆盖了该文件上的 mmap 和写入处理程序。

未来工作

我们将继续评估和改进当前的原型和设计,包括在 RTL 中实现它。在适当的时候,我们希望将此解决方案贡献给更大的RISC-V社区。

审核编辑:汤梓红

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 内核
    +关注

    关注

    3

    文章

    1309

    浏览量

    39862
  • 仿真
    +关注

    关注

    50

    文章

    3872

    浏览量

    132167
  • 硬件
    +关注

    关注

    11

    文章

    2923

    浏览量

    64840
  • 虚拟机
    +关注

    关注

    1

    文章

    855

    浏览量

    27387
  • RISC-V
    +关注

    关注

    41

    文章

    1906

    浏览量

    45074

原文标题:T-Head Prototypes Innovative Hardware Support for Virtual IOMMU

文章出处:【微信号:芯片开放社区,微信公众号:芯片开放社区】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    中国硬件创新大赛如何注册?

    卡尔,TI,ST,京微雅格等,参赛者提供从元器件芯片物料、PCB打样、原厂开发平台技术支持、创业机构孵化、创业资本及众筹平台一条龙免费服务,力助中国硬件创业团队快速获取成功!中国
    发表于 05-15 09:25

    SynplicityHAPS ASIC原型设计系统增添新成员

    创新型IC设计与验证解决方案供应商Synplicity有限公司日前宣布HAPS(High-performance ASIC Prototyping System)产品系列增添新成员HAPS-51
    发表于 11-20 15:49

    请问虚拟系统原型有什么作用?

    虚拟系统原型是什么?虚拟系统原型有什么作用?
    发表于 04-27 06:41

    【RVBoards-哪吒】T-Head C906的规格书

    、人工智能等应用领域。OVERVIEW  The T-Head C906 processor is based on the RV64GCV instruction set and includes
    发表于 05-20 14:52

    LIDAR原型制作平台如何建立算法和自定义硬件解决方案的原型

    本文探讨ADI公司新推出且拥有广泛市场的LIDAR原型制作平台,以及它如何通过提供完整的硬件和软件解决方案,使得用户能够建立其算法和自定义硬件解决方案的
    发表于 06-17 09:08

    玄铁CPU调试系统介绍

    工具:面向开发人员的软件调试工具。调试工具通常运行在开发人员的主机或服务器上。常用的调试工具包括GDB和IDE,如GDB、CDK、DebugServer等,以及T-Head提供的RISC-V工具链中的其他工具
    发表于 03-09 07:20

    设备仿真模拟软件 QEMU 8.0 发布:改进对 ARM / RISC-V 架构支持

    的 PMU 事件、Zawrs / Svadu / T-Head /Zicond 扩展和 ACPI 等。 此外,RISC-V 收到了多项修复,涵盖 TLB 的 PMP 传播、mret 异常、未压缩指令
    发表于 05-05 09:48

    Arm虚拟硬件用户指南

    用于第三方板的Arm虚拟硬件(AVH)流行的物联网开发套件提供基于云的功能准确的虚拟模型,模拟CPU、外围设备、传感器和板组件。它允许开发
    发表于 08-08 07:45

    将 Virtualizer 虚拟原型和 HAPS 系列基于 FPGA 的原型无缝集成

    如今,设计人员使用两种相对独立的方法进行 SoC 原型验证:以事务级模型为基础的虚拟原型验证和基于 FPGA 的原型验证。 虚拟
    发表于 02-08 14:32 305次阅读

    NFVi:用标准化虚拟化技术来支持多租户,为不同类型虚拟网元按需提供支持

    NFVi(网络功能虚拟化基础设施)是承载VNF(网络网元功能)的基础,其核心在于利用标准化的虚拟化技术来支持多租户,从而为不同类型的虚拟网元按需提供
    的头像 发表于 01-24 11:08 7284次阅读

    介绍虚拟机器原型及应用

    机电一体化基础---虚拟机器原型概述及其商业价值视频教程
    的头像 发表于 06-25 02:11 1689次阅读
    介绍<b class='flag-5'>虚拟</b>机器<b class='flag-5'>原型</b>及应用

    带有Android的四核ARM虚拟原型

      虚拟原型基于 Synopsys 模型库和 ARM 的快速模型。用户可以使用自定义 SystemC TLM-​​2.0 兼容模型扩展虚拟原型
    的头像 发表于 06-19 10:14 831次阅读
    带有Android的四核ARM<b class='flag-5'>虚拟</b><b class='flag-5'>原型</b>

    OVP使系统级虚拟原型成为现实

      OVP 有可能为硬件和软件开发提供真正的系统级虚拟原型。它有望成为第一个通用抽象建模系统,将形成完整流向硬件和软件社区的基石。
    的头像 发表于 06-28 14:29 1150次阅读
    OVP使系统级<b class='flag-5'>虚拟</b><b class='flag-5'>原型</b>成为现实

    推荐一款基于RISC-V MCU的开源SoC平台

    无剑100是阿里旗下芯片公司平头哥(T-Head)推出的一款基于RISC-V MCU的开源SoC平台。
    的头像 发表于 10-24 09:36 2777次阅读

    【技术案例】Firefly虚拟硬件技术

    Firefly虚拟硬件技术可通过软件的方式,在操作系统中虚拟出指定的硬件设备,让需要指定硬件设备才能运行的APP正常工作。目前已
    的头像 发表于 04-13 11:00 577次阅读
    【技术案例】Firefly<b class='flag-5'>虚拟</b><b class='flag-5'>硬件</b>技术