精品国产人成在线_亚洲高清无码在线观看_国产在线视频国产永久2021_国产AV综合第一页一个的一区免费影院黑人_最近中文字幕MV高清在线视频

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

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

3天內不再提示

Arm對虛擬化下設備直通的支持

安芯教育科技 ? 來源:安謀科技學堂 ? 2023-04-28 15:30 ? 次閱讀

隨著云計算領域里,ARM架構處理器的廣泛使用,應用開發人員熟悉ARM架構相關技術的需求越來越迫切。眾所周知,提供虛擬機服務是云計算的典型應用場景,而虛擬機里設備性能的優劣對服務質量至關重要。

提到虛擬機里的設備,就不得不提及設備的虛擬化,最初虛擬機里的設備完全是依靠軟件模擬來實現,也叫全虛擬化設備,這樣的好處是運行在物理機里的OS可以完全不需要修改就能在虛擬機里運行,但設備性能很差,滿足不了人們的需求。后來,有人提出了半虛擬化的思想,寄希望于軟件的優化,比如修改設備模型,減少不必要的內存拷貝,來滿足大家對設備的性能需求。典型代表virtio設備。此法使性能雖有較大提升,但與真實的設備仍有較大差距。為了獲取等同于真實設備的性能,設備直通的方式被提了出來,也漸漸成為主流方式。

虛擬機里使用直通的設備,的確可以帶來最大的性能提升。但是卻暴漏出一系列的系統安全問題。比如提供DMA的設備通常可以寫內存的任意頁,因此虛擬機里的Guest OS擁有創建DMA的能力就等同于用戶空間擁有了root權限,惡意的設備可能利用此發動DMA攻擊,給其他虛擬機乃至整個物理機帶來安全問題。因此,需要提供DMA重映射功能,通過頁表方式將直通設備對內存的訪問限制到特定的域中,在提高IO性能的同時完成了直通設備的隔離,保證了直通設備DMA的安全性。此外,直通設備的中斷默認是發給物理CPU的,要想通知到虛擬機里的vCPU,就需要中斷的重定向。

DMA重映射跟中斷重定向的實現,最初是完全交由虛擬機監控器(Hypervisor)或模擬器(比如qemu)來負責。這是一種純軟件的思路,必然大大降低設備的性能,因此急需硬件的參與配合。為此,ARM的SMMU和GIC規范順勢添加了對DMA重映射跟中斷重定向的支持。本文的重點便是圍繞這兩大特性介紹如何支持虛擬化環境下的設備直通。

一、DMA重映射

SMMU是System MMU的縮寫,是ARM架構下一種對非CPU設備提供地址翻譯服務的組件,功能類似于CPU的MMU組件。這里非CPU設備主要指發起DMA操作的外圍子系統。如下圖所示:

10fd7ffa-e593-11ed-ab56-dac502259ad0.png

注:PE為Processing Element 的縮寫,可理解為CPU。

在虛擬化應用場景下,地址翻譯往往分為兩個階段。階段一是虛擬地址(VA)到GuestOS認為的物理地址(IPA)間的轉換;階段二為IPA到真實物理地址(PA)間的轉換。而SMMU既可以同時支持兩個階段的轉換,也可以單獨支持每個階段的轉換。這為直通設備DMA重映射提供了可能。直通設備的DMA只需要獲取IPA,之后的工作便交由SMMU來做階段二的處理,以達到安全高效的訪問PA的目的。如下圖所示:

11179bc4-e593-11ed-ab56-dac502259ad0.png

針對以上應用場景,我們介紹SMMU的內部結構來闡述具體實現原理。SMMU含有兩個核心單元,分別為翻譯控制單元TCU和翻譯緩沖單元TBU。其中TCU主要含有Stream Mapping Table(SMT)和Context Bank Table(CBT)。SMT通過StreamID來索引內部的Entry,StreamID跟具體直通設備一一對應, 從而獲取到指向CBT具體Entry的指針。CBT的Entry內容則含有階段二翻譯表的指針,當獲取到此指針后,翻譯過程即可像普通MMU一樣按部就班的進行下去。而TBU的作用等同于TLB,借助Cache原理,加快SMMU工作效率,不再贅述。以上描述過程總結為如下框圖所示:

112a1236-e593-11ed-ab56-dac502259ad0.png

二、中斷重定向

GIC是Generic Interrupt Controller的縮寫。GIC的主要作用是路由各種不同的中斷信息給CPU。虛擬化環境下的中斷處理情形要復雜的多,有些因指令trap產生的中斷需要Hypervisor本身來處理;有些是分配給某個虛擬機的直通設備產生的中斷則需要虛擬機內的軟件來處理;也有中斷被接收時,對標的虛擬機沒有處于運行狀態的情況。這需要GIC提供機制,重定向中斷以滿足上述復雜的需求。

由于本文的重點是對直通設備虛擬化支持的講解,因此此部分將介紹GIC是如何支持直通設備中斷重映射的,并不會剖析GIC內部組成及實現原理。我們以GICv3為例,圖示如下:

1141741c-e593-11ed-ab56-dac502259ad0.png

配以如下步驟說明:

1 直通設備發起的中斷IRQ到達GIC;

2 GIC發物理的IRQ到CPU;

3 Hypervisor會從Physical CPU Interface讀取中斷信息;

4 Hypervisor發現此中斷是某虛擬機內的直通設備觸發,于是通過寫GIC List Register重新注入一個虛擬IRQ到GIC中;

5 GIC產生vIRQ中斷并發給vCPU;

6 最終vCPU接收vIRQ中斷并由運行其上的GuestOS接管并通過跟Virtual CPU interface交互處理后續中斷任務。

至此,一個完整的中斷重映射過程結束。

在GIC參與直通設備的中斷重映射后,虛擬機在處理中斷效率上有了明顯提升,但是跟Host主機上普通物理中斷相比,總是多了一步由軟件Hypervisor參與的動作。因此,我們稱以上方式為間接注入中斷的方式。為了進一步提高處理中斷的效率,GICv4引入了直接注入中斷方式。具體原理則是直通設備在獲取中斷時,GIC會將分配給設備的物理中斷與虛擬中斷做一個映射。這樣當設備觸發中斷時,GIC會直接發信號給vCPU。有這樣一種情況,設備觸發中斷時vCPU沒有運行,即虛擬機處于休眠態,如果直接發vIRQ給vCPU是得不到響應的,這時候會產生一個物理的door-bell中斷來代替,此中斷交由Hypervisor處理,它會重新調度vCPU,從而使中斷得到及時響應。

本文通過虛擬化下如何支持設備直通的角度,講解了ARM架構支持DMA重映射跟中斷重定向的原理,旨在普及ARM架構下一些支持虛擬化的技術。當然ARM架構對虛擬化的支持不僅局限于此。相信隨著ARM生態的不斷完善,這些技術會被越來越多的人所熟知。

審核編輯 :李倩

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

    關注

    134

    文章

    9056

    瀏覽量

    366845
  • cpu
    cpu
    +關注

    關注

    68

    文章

    10827

    瀏覽量

    211173
  • 虛擬機
    +關注

    關注

    1

    文章

    908

    瀏覽量

    28107
收藏 人收藏

    評論

    相關推薦

    深入KVM虛擬之構建高效、可擴展的虛擬環境

    目錄 KVM虛擬 創建虛擬機 報錯解決 虛擬介紹 kvm介紹 KVM部署(基于CentOS7) KVM管理界面安裝 KVM web界面管
    的頭像 發表于 11-26 17:22 ?82次閱讀
    深入KVM<b class='flag-5'>虛擬</b><b class='flag-5'>化</b>之構建高效、可擴展的<b class='flag-5'>虛擬</b><b class='flag-5'>化</b>環境

    虛擬數據恢復—XenServer虛擬機數據恢復案例

    服務器虛擬數據恢復環境: 某品牌720服務器中有一組通過同品牌、型號為H710P的RAID卡+4塊STAT硬盤組建的RAID10磁盤陣列。上層部署XenServer虛擬平臺。1臺
    的頭像 發表于 11-08 10:32 ?109次閱讀
    <b class='flag-5'>虛擬</b><b class='flag-5'>化</b>數據恢復—XenServer<b class='flag-5'>虛擬</b>機數據恢復案例

    望獲實時Linux-虛擬PLC解決方案

    行業趨勢:IT與OT的深度融合 虛擬PLC的優勢:靈活與高效的結合 望獲實時Linux的優勢:強實時和強大的行業中間件支持 實時性:系統響應延遲<10us,支持EtherCAT-12
    的頭像 發表于 11-08 10:28 ?117次閱讀
    望獲實時Linux-<b class='flag-5'>虛擬</b><b class='flag-5'>化</b>PLC解決方案

    云計算中的虛擬技術應用

    云計算中的虛擬技術是一種將計算機物理實體(如服務器、存儲設備、網絡設備)通過軟件技術劃分為多個虛擬實體的技術,每個
    的頭像 發表于 10-24 09:22 ?387次閱讀

    理解機智云虛擬設備與實際設備的關系

    在使用機智云平臺進行設備管理和應用開發時,用戶常常會遇到虛擬設備無法控制實際設備的問題。這種情況的根源在于虛擬設備的本質和功能定位。Q虛擬設備
    的頭像 發表于 09-22 08:02 ?185次閱讀
    理解機智云<b class='flag-5'>虛擬設備</b>與實際<b class='flag-5'>設備</b>的關系

    什么是虛擬機?什么是虛擬

    在日新月異的科技世界中,虛擬技術如同一座橋梁,連接著現實與數字的鴻溝,為我們打開了全新的計算維度。虛擬機,這一概念,自其誕生以來,就以其獨特的魅力和強大的功能,深深地影響了軟件開發、系統測試和云計算等多個領域。即使目前你還不了
    的頭像 發表于 09-04 14:55 ?700次閱讀

    虛擬數據恢復—XenServer虛擬平臺數據恢復案例

    虛擬數據恢復環境: 某品牌R720服務器,4塊STAT硬盤通過H710P陣列卡組建了一組raid10磁盤陣列。服務器上部署XenServer虛擬平臺,
    的頭像 發表于 07-30 13:18 ?231次閱讀
    <b class='flag-5'>虛擬</b><b class='flag-5'>化</b>數據恢復—XenServer<b class='flag-5'>虛擬</b><b class='flag-5'>化</b>平臺數據恢復案例

    直通網線的作用及制作步驟

    直通網線的主要作用是連接不同的設備,如電腦和路由器、路由器和交換機等,以建立網絡連接。以下是直通網線的制作步驟: 一、直通網線的作用 直通
    的頭像 發表于 07-04 09:51 ?659次閱讀

    EZ-USB SX3 CYUSB3017設備能否同時在USB 2.0線路上傳輸視頻流并支持通過虛擬COM傳輸命令?

    EZ-USB SX3 CYUSB3017 設備能否同時在 USB 2.0 線路上傳輸視頻流并支持通過虛擬 COM 傳輸命令? 情況是這樣的:打開兩個不同的 PC 程序: 通過 USB 2.0 傳輸
    發表于 05-23 07:11

    直通網線和交叉網線區別

    白、棕。而交叉網線則在一端采用568A線序,另一端采用568B線序,其線纜兩端的線序是交叉的。568A的線序是:綠白、綠、橙白、藍、藍白、橙、棕白、棕。 使用場景:直通網線主要用于連接不同類型的設備,例如路由器與交換機、個人電腦
    的頭像 發表于 05-10 10:06 ?2956次閱讀

    百度智能云進一步集成Arm虛擬硬件 加速AI開發創新

    Arm 虛擬硬件于 2023 年八月上線百度智能云后,近日,雙方基于 Arm 虛擬硬件的合作再度迎來新里程!
    的頭像 發表于 03-11 15:17 ?424次閱讀

    存儲虛擬有哪些常見類型?有什么優點?

    存儲虛擬是一種將多個存儲設備的物理存儲資源抽象出來、將它們集中在一起并將它們呈現為單個邏輯存儲單元的技術。此過程簡化了存儲管理,提高了資源利用率,并實現了跨各種存儲設備(例如硬盤驅動
    的頭像 發表于 03-07 16:47 ?1102次閱讀

    直通網線和交叉網線的區別有哪些呢?

    T-568B線序標準。 在實際運用中,直通網線常用來連接不同的設備,例如電腦和路由器、路由器和交換機等,而交叉網線用來連接相同的設備,例如電腦和電腦、路由器和路由器。 此外,直通網線和
    的頭像 發表于 03-07 10:34 ?1365次閱讀

    smt貼片加工直通率為什么如此重要

    smt貼片加工,smt 直通率堪稱是貼片加工廠的生命線,有些公司的直通率必須達到95%才是達標線,因此直通率的高低,反應了貼片加工廠的技術實力、工藝品質,直通率高能夠提升公司的產能效率
    的頭像 發表于 12-05 10:23 ?1925次閱讀

    直通串口和交叉串口的區別 如何辨別交叉串口線與直連串口線?

    直通串口和交叉串口的區別 如何辨別交叉串口線與直連串口線?什么時候用交叉,什么時候用直通直通串口和交叉串口是在計算機設備或系統中用于連接串行設備
    的頭像 發表于 11-28 15:45 ?2485次閱讀