0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

T-Head原型為虛擬IOMMU提供創(chuàng)新的硬件支持

芯片開放社區(qū) ? 來源:芯片開放社區(qū) ? 2023-06-02 14:06 ? 次閱讀

最近,T-Head 完成了基于 QEMU 的虛擬機虛擬 IOMMU 硬件支持的概念驗證,基于 T-Head IOMMU 提案中的規(guī)范在其成立時提交給 IOMMU TG 作為其中之一候選人提案。 T-Head IOMMU 的虛擬 IOMMU 設計展示了一種向虛擬機公開與主機使用的虛擬 IOMMU 相同的虛擬 IOMMU 的方法。好處是來賓虛擬機可以直接重新使用完全相同的內核驅動程序,并且消除了傳統(tǒng)解決方案中昂貴的基于軟件的仿真。

背景

出于性能或安全等原因,可以將物理 I/O 設備配置為由來賓虛擬機直接訪問,這種技術被廣泛稱為設備直通。直通設備受 IOMMU 轉換表的限制,因此它們只能對屬于它們所分配到的虛擬機的內存區(qū)域執(zhí)行 DMA。從虛擬機的角度來看,直通設備表現為直接訪問虛擬機物理地址空間的外圍設備。如果不合并 IOMMU 供虛擬機使用,虛擬機會遇到與主機中的所有設備都不由 IOMMU 管理的情況相同的不便和缺點。它們不能被進一步分配到虛擬機的用戶空間,也不能出于可靠性目的限制它們。

wKgZomR5ikqAa1BHAAD8vNpYeeE860.jpg

圖 1:模擬虛擬 IOMMU

如圖 1 所示,為虛擬機提供 IOMMU 的傳統(tǒng)解決方案是 trap-n-emulate 或半虛擬化。 Trap-n-emulate 很昂貴。雖然它向來賓虛擬機提供與主機使用的硬件 IOMMU 相同的 IOMMU,但是,來賓對虛擬 IOMMU 的訪問會觸發(fā)由主機處理的異常。處理是昂貴的。主機不僅需要模擬對虛擬 IOMMU 寄存器的訪問,還需要在虛擬機修改其內存駐留翻譯結構時將翻譯的兩個階段結合起來。后者是由于現有的硬件 IOMMU 不直接使用 guest 的轉換表,因為硬件只支持一個階段的地址轉換。一些 IOMMU,例如 ARM SMMU v3,可以進行嵌套地址轉換,也有內核補丁可以直接使用guest的轉換表,但是補丁仍然是RFC,估計是硬件架構定義的表結構導致軟件交互復雜。

wKgZomR5ikqAZF4tAADfP2__PGA269.jpg

圖 2:半虛擬化 IOMMU

半虛擬化(如圖 2 所示)通過要求來賓虛擬機將其 IOMMU 配置顯式傳達給主機來減少仿真工作。最大的缺點是需要修改來賓和主機,因此,在某些環(huán)境中可能不可用。

T-Head 對虛擬 IOMMU 的硬件支持

T-Head的IOMMU提案試圖從硬件架構開始解決上述缺點。簡要的想法是指定一個內存區(qū)域(稱為狀態(tài)區(qū)域),用于呈現給來賓虛擬機的虛擬 IOMMU 的寄存器狀態(tài)。同時,主機的表結構包括指向狀態(tài)區(qū)域的指針。當需要轉換 DMA 請求時,IOMMU 會查找狀態(tài)區(qū)域,從中獲取轉換表和來賓虛擬機配置的虛擬 IOMMU 的狀態(tài)。隨后,硬件 IOMMU 以與主機結構相同的方式遍歷來賓的表結構,將所有地址視為來賓物理地址,即以嵌套轉換方式。

wKgaomR5ikqAWM_1AAE1JRyDIgM304.jpg

圖 3:T 頭的硬件輔助虛擬 IOMMU

T-Head 的虛擬 IOMMU(如圖 3 所示)避免了昂貴的仿真,因為客戶機的配置直接由硬件使用。也就是說,來賓正在與硬件支持的“直通”IOMMU 進行交互。IOMMU 的接口由硬件 IOMMU 直接公開;它與主機的 IOMMU 相同。主機使用的完全相同的驅動程序可以直接重復使用。使用內存來存儲虛擬 IOMMU 的階段使解決方案具有可擴展性,而不受寄存器上的資源約束。

原型

我們已經完成了QEMU和Linux/KVM的概念驗證。我們在本機 QEMU 中的 IOMMU 仿真代碼中添加了對根據 T-Head 的 IOMMU 規(guī)范的嵌套轉換的支持。我們以以前的設備直通工作為基礎,在 RISC-V QEMU 中向 VFIO 層添加了嵌套的 IOMMU 支持。IOMMU 內核驅動程序為 RISC-V QEMU 公開了一個新的 API,用于管理狀態(tài)區(qū)域并在轉換描述符中配置設備 ID,新 API 作為名為 /dev/xt_iommu 的設備文件存在,我們覆蓋了該文件上的 mmap 和寫入處理程序。

未來工作

我們將繼續(xù)評估和改進當前的原型和設計,包括在 RTL 中實現它。在適當的時候,我們希望將此解決方案貢獻給更大的RISC-V社區(qū)。

審核編輯:湯梓紅

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規(guī)問題,請聯系本站處理。 舉報投訴
  • 內核
    +關注

    關注

    3

    文章

    1361

    瀏覽量

    40185
  • 仿真
    +關注

    關注

    50

    文章

    4023

    瀏覽量

    133341
  • 硬件
    +關注

    關注

    11

    文章

    3217

    瀏覽量

    66066
  • 虛擬機
    +關注

    關注

    1

    文章

    905

    瀏覽量

    28022
  • RISC-V
    +關注

    關注

    44

    文章

    2208

    瀏覽量

    45959

原文標題:T-Head Prototypes Innovative Hardware Support for Virtual IOMMU

文章出處:【微信號:芯片開放社區(qū),微信公眾號:芯片開放社區(qū)】歡迎添加關注!文章轉載請注明出處。

收藏 人收藏

    評論

    相關推薦

    中國硬件創(chuàng)新大賽如何注冊?

    卡爾,TI,ST,京微雅格等,參賽者提供從元器件芯片物料、PCB打樣、原廠開發(fā)平臺技術支持、創(chuàng)業(yè)機構孵化、創(chuàng)業(yè)資本及眾籌平臺一條龍免費服務,力助中國硬件創(chuàng)業(yè)團隊快速獲取成功!中國
    發(fā)表于 05-15 09:25

    請問虛擬系統(tǒng)原型有什么作用?

    虛擬系統(tǒng)原型是什么?虛擬系統(tǒng)原型有什么作用?
    發(fā)表于 04-27 06:41

    【RVBoards-哪吒】T-Head C906的規(guī)格書

    、人工智能等應用領域。OVERVIEW??The T-Head C906 processor is based on the RV64GCV instruction set and includes
    發(fā)表于 05-20 14:52

    玄鐵CPU調試系統(tǒng)介紹

    工具:面向開發(fā)人員的軟件調試工具。調試工具通常運行在開發(fā)人員的主機或服務器上。常用的調試工具包括GDB和IDE,如GDB、CDK、DebugServer等,以及T-Head提供的RISC-V工具鏈中的其他工具
    發(fā)表于 03-09 07:20

    設備仿真模擬軟件 QEMU 8.0 發(fā)布:改進對 ARM / RISC-V 架構支持

    的 PMU 事件、Zawrs / Svadu / T-Head /Zicond 擴展和 ACPI 等。 此外,RISC-V 收到了多項修復,涵蓋 TLB 的 PMP 傳播、mret 異常、未壓縮指令
    發(fā)表于 05-05 09:48

    Arm虛擬硬件用戶指南

    用于第三方板的Arm虛擬硬件(AVH)流行的物聯網開發(fā)套件提供基于云的功能準確的虛擬模型,模擬CPU、外圍設備、傳感器和板組件。它允許開發(fā)
    發(fā)表于 08-08 07:45

    將 Virtualizer 虛擬原型和 HAPS 系列基于 FPGA 的原型無縫集成

    如今,設計人員使用兩種相對獨立的方法進行 SoC 原型驗證:以事務級模型基礎的虛擬原型驗證和基于 FPGA 的原型驗證。
    發(fā)表于 02-08 14:32 ?370次閱讀

    介紹虛擬機器原型及應用

    機電一體化基礎---虛擬機器原型概述及其商業(yè)價值視頻教程
    的頭像 發(fā)表于 06-25 02:11 ?1838次閱讀
    介紹<b class='flag-5'>虛擬</b>機器<b class='flag-5'>原型</b>及應用

    工控機移動支付提供硬件支持

    本期上海研強給大家分享的是研強科技工控機移動支付提供硬件支持,希望看完本篇文章您能對工控機有一個全新的認識!
    發(fā)表于 08-02 17:30 ?532次閱讀

    帶有Android的四核ARM虛擬原型

      虛擬原型基于 Synopsys 模型庫和 ARM 的快速模型。用戶可以使用自定義 SystemC TLM-??2.0 兼容模型擴展虛擬原型。
    的頭像 發(fā)表于 06-19 10:14 ?1013次閱讀
    帶有Android的四核ARM<b class='flag-5'>虛擬</b><b class='flag-5'>原型</b>

    OVP使系統(tǒng)級虛擬原型成為現實

      OVP 有可能為硬件和軟件開發(fā)提供真正的系統(tǒng)級虛擬原型。它有望成為第一個通用抽象建模系統(tǒng),將形成完整流向硬件和軟件社區(qū)的基石。
    的頭像 發(fā)表于 06-28 14:29 ?1433次閱讀
    OVP使系統(tǒng)級<b class='flag-5'>虛擬</b><b class='flag-5'>原型</b>成為現實

    推薦一款基于RISC-V MCU的開源SoC平臺

    無劍100是阿里旗下芯片公司平頭哥(T-Head)推出的一款基于RISC-V MCU的開源SoC平臺。
    的頭像 發(fā)表于 10-24 09:36 ?3666次閱讀

    本機NVMe/FC支持虛擬基礎架構提供了性能增長路徑

    電子發(fā)燒友網站提供《本機NVMe/FC支持虛擬基礎架構提供了性能增長路徑.pdf》資料免費下載
    發(fā)表于 08-23 10:59 ?0次下載
    本機NVMe/FC<b class='flag-5'>支持</b><b class='flag-5'>為</b><b class='flag-5'>虛擬</b>基礎架構<b class='flag-5'>提供</b>了性能增長路徑

    Simcenter 車輛能量管理解決方案——使用虛擬原型設計加速創(chuàng)新

    使用虛擬原型設計加速創(chuàng)新在性能和能效之間實現最佳平衡限制物理原型數量跟蹤從概念到后期改進階段的車輛能源效率功能為仿真解決方案提供單一套件,
    的頭像 發(fā)表于 05-22 08:35 ?1281次閱讀
    Simcenter 車輛能量管理解決方案——使用<b class='flag-5'>虛擬</b><b class='flag-5'>原型</b>設計加速<b class='flag-5'>創(chuàng)新</b>

    國產電腦主板,智慧教學提供堅實的硬件支持

    在當今數字化、智能化的時代,教育也在不斷地進行著變革與創(chuàng)新。智慧教學作為一種全新的教學模式,正逐漸走進我們的課堂,學生和教師帶來更加高效、便捷的教學體驗。而在這一過程中,國產電腦主板以其卓越的性能和可靠的品質,智慧教學
    的頭像 發(fā)表于 11-04 10:13 ?53次閱讀