日韩欧美自拍在线观看-欧美精品在线看片一区二区-高清性视频一区二区播放-欧美日韩女优制服另类-国产精品久久久久久av蜜臀-成人在线黄色av网站-肥臀熟妇一区二区三区-亚洲视频在线播放老色-在线成人激情自拍视频

了解一下ARMv8處理器架構(gòu)中的虛擬化操作

出處:半導體行業(yè)觀察 發(fā)布于:2018-09-29 13:59:51

  基于ARMv8的系統(tǒng)中的虛擬化工具在這些系統(tǒng)中起著特殊的作用,它由幾個組件組成,雖然ARMv7具有特殊的CPU模式來運行虛擬機管理程序作為擴展,但在ARMv8中,它已成為架構(gòu)的一部分,并且已經(jīng)以名稱EL2集成到特權(quán)級系統(tǒng)中。同時,該模式僅解決與CPU訪問系統(tǒng)資源相關(guān)的問題,例如存儲器和外圍設備。為了提高虛擬化環(huán)境中設備啟動的事務的效率,已經(jīng)為基于ARMv8的系統(tǒng)開發(fā)了許多組件,例如新的中斷控制器和IOMMU。本文從軟件開發(fā)的角度概述了這些工具組件。
  基于ARMv8的系統(tǒng)中的虛擬化如圖1所示:EL2特權(quán)級別運行虛擬機管理程序,控制虛擬機(VM)代碼的執(zhí)行以及它們之間的資源共享。EL1(OS內(nèi)核,特權(quán)代碼)和EL0(非特權(quán)代碼)的級別留給VM實例。地址轉(zhuǎn)換分兩個階段執(zhí)行(圖2):在階段,使用級轉(zhuǎn)換表(TTBR0_EL1 / TTBR1_EL1寄存器中保存的指針)從虛擬地址計算所謂的中間物理地址(IPA); 在第二階段,使用管理程序準備的第二級表計算實際物理地址(指針存儲在VTTBR_EL2寄存器中)。這樣的組織架構(gòu)可以提供有效的權(quán)限分離和VM與硬件的隔離。


  圖1:基于ARMv8的系統(tǒng)中的虛擬化()
  

  兩級轉(zhuǎn)換允許VM維護自己的轉(zhuǎn)換表,同時還允許管理程序完全控制終結(jié)果。EL2權(quán)限級別專門用于執(zhí)行管理程序代碼,與其他級別有一些差異。因此,它是特殊寄存器VTTBR_EL2、VTCR_EL2可訪問的特權(quán)級別以及用于VM管理的許多其他特權(quán)寄存器。
  在ARMv8架構(gòu)的原始版本中,僅為管理程序提供了一個轉(zhuǎn)換表,而為當前VM提供了另一個轉(zhuǎn)換表。管理程序可以訪問多個特殊寄存器,通過這些寄存器可以設置EL1級別的VM可見的配置參數(shù),例如CPU標識符(制造商,版本等)和多處理器系統(tǒng)ID。這允許將在同一系統(tǒng)上運行的VM暴露給來自不同版本和制造商的虛擬SMP系統(tǒng)和CPU的不同拓撲。
  如果在VM中發(fā)生需要管理程序干預的事件,則其處理按如下方式執(zhí)行:
  在EL2級別發(fā)生異常;
  根據(jù)其類型,從表中調(diào)用相應的處理程序(該地址存儲在VBAR_EL2寄存器中);
  執(zhí)行必要的行動;
  如果需要,將所需值放入登記冊;
  管理程序返回到退出發(fā)生的VM(如果設計了管理程序,則切換到另一個VM)。
  

  發(fā)生此類VM退出異常的事件由HCR_EL2寄存器位定義。因此,這些可以是系統(tǒng)寄存器訪問,包括EL1權(quán)限級別可用的訪問(例如,TTBR0_ EL1 / TTBR1_EL1,F(xiàn)AR_EL1),緩存和TLB刷新指令,常規(guī)異常(中斷,包括來自定時器和不支持的操作代碼的中斷),以及中斷和事件等待指令。兩級地址轉(zhuǎn)換啟用也由該寄存器控制。此外,EL2級還有一個單獨的硬件定時器,它允許管理程序配置周期性中斷,通常用于啟動VM切換,類似于在現(xiàn)代操作系統(tǒng)中切換任務的方式。
  切換過程還包括保存當前VM上下文,加載新VM以及將控制轉(zhuǎn)移給它。同時,VM可以以類似于EL0級別的非特權(quán)代碼執(zhí)行系統(tǒng)調(diào)用的方式執(zhí)行管理程序調(diào)用。為了執(zhí)行這樣的調(diào)用,VM將參數(shù)放在寄存器中并執(zhí)行“hvc”指令。這導致以標準方式處理的EL2權(quán)限級別的異常。通常,這在調(diào)用標準化PSCI協(xié)議功能時發(fā)生。
  還應該提到的是,管理程序可以攔截從VM到可信代碼例程的調(diào)用(例如,在那里實現(xiàn)非虛擬化環(huán)境中的PSCI,并且在特權(quán)級別EL3處理對它的調(diào)用)。ARMv8架構(gòu)還包含用于提高虛擬化環(huán)境性能的其他工具:除了管理程序可以分配的可共享域以減少緩存一致性流量之外,還可以為每個VM分配其自己的標識符或VMID。它的使用使得在切換VM時可以避免“昂貴的”TLB刷新。
  原始版本的ARMv8提供了8位標識符,后來擴展為16位。此外,在ARMv8.1中,EL2級別的第二個轉(zhuǎn)換表TTBR1_EL2作為VM主機擴展的一部分添加,因此,類型2的管理程序(它們是主機操作系統(tǒng)的一部分)具有更多可能性。同時,如上所述,全功能虛擬化需要VM與外圍設備(網(wǎng)絡適配器,存儲控制器等)進行交互,同時化管理程序參與以及從設備到處理器的交付中斷。
  系統(tǒng)存儲管理單元
  ARMv8系統(tǒng)中虛擬化環(huán)境的各個方面由兩個單元處理:通用中斷控制器(GIC)和系統(tǒng)內(nèi)存管理單元(SMMU)(圖3)。SMMU執(zhí)行I / O地址轉(zhuǎn)換的方式與CPU啟動的存儲訪問相同。該單元支持I / O地址的和兩級轉(zhuǎn)換。因此,可以在VM和管理程序中使用轉(zhuǎn)換和保護內(nèi)存區(qū)域的優(yōu)勢。因此,允許設備僅對特定存儲器地址范圍進行讀/寫。


  圖3:系統(tǒng)存儲管理單元(SMMU)
  此外,有時通過SMMU在I / O緩沖區(qū)上組織分散 - 收集操作很方便。轉(zhuǎn)換階段的使用模型與CPU的使用模型幾乎相同(即,階段的輸出產(chǎn)生當前VM獨有的IPA,第二階段的輸出產(chǎn)生整個特有的真實物理地址系統(tǒng))。SMMU轉(zhuǎn)換表的格式類似于CPU的格式,頁面屬性有一些差異。支持4,16和64 KB的頁面大小以及一個或兩個轉(zhuǎn)換表,具體取決于寄存器設置和轉(zhuǎn)換階段,以及完整的48或52位地址空間。
  每個涉及的設備都有自己的轉(zhuǎn)換上下文(終選擇相關(guān)的轉(zhuǎn)換表集)??梢栽诙鄠€設備之間共享單個上下文。上下文選擇由單元使用所謂的流ID(硬件相關(guān)的設備標識符)來執(zhí)行。因此,對于PCIe設備(物理或虛擬功能),RID用作復制PCIe配置空間中的設備地址的標識符。SMMU擁有自己的TLB并支持VM ID以加速。在錯誤的配置檢測,轉(zhuǎn)換錯誤和其他異常的情況下,SMMU斷言所謂的上下文中斷(即,綁定到轉(zhuǎn)換上下文的中斷)。
  SMMU維護類似于CPU內(nèi)存管理單元(MMU)。但是,處理器MMU上的操作(TLB復位,轉(zhuǎn)換結(jié)果檢索等)是通過特殊指令執(zhí)行的,而對于SMMU,它們是通過訪問上下文寄存器來執(zhí)行的。截至2017年底,SMMU規(guī)格有多個版本,版本為3.1。SMMU版本3.0和3.1支持擴展流ID,并使用RAM中的表來匹配流和上下文的ID。這樣的表可以有一個或兩個級別。表元素包含指向存儲在存儲器中的上下文描述符的指針,以及與元素相關(guān)的VM標識符,以及指向第二級轉(zhuǎn)換表的指針。
  反過來,上下文描述符包含指向級轉(zhuǎn)換表的指針。SMMUv3的一個重要特性是能夠在軟件響應之前停止執(zhí)行事務。這種模型允許設備訪問不在RAM中的頁面或者推測性地分配。SMMU還可以自動設置轉(zhuǎn)換表中的更改頁面指示位。這可以簡化VM遷移,快照VM狀態(tài)等。SMMUv3還支持VM標識符掩碼,允許在不同VM之間共享轉(zhuǎn)換表,從而降低TLB壓力。
  在SMMUv3中,控制和事件信令都已經(jīng)過顯著重構(gòu):該單元使用事件隊列,它是內(nèi)存中的環(huán)形緩沖區(qū),上下文中斷被替換為中斷,該中斷表示隊列中新描述符的出現(xiàn)。要獲取設備訪問的頁面,有一個單獨的隊列,即所謂的頁面請求接口(PRI)。如上所述,代替上下文寄存器,使用存儲器中的控制塊,并且通過將命令描述符寫入命令隊列并提交它們來執(zhí)行上下文管理。
  GIC在虛擬化環(huán)境功能中發(fā)揮著至關(guān)重要的作用。在2017年底,規(guī)范的第四個版本是版本,而第二個版本是用于ARMv8處理器的版本。GIC本身非常復雜,因為需要在多處理器系統(tǒng)中提供中斷(現(xiàn)有的實現(xiàn)可以有256個或更多的硬件線程)。但是,本文僅考慮與虛擬化直接相關(guān)的控制器功能。大多數(shù)GIC寄存器都沒有虛擬化,這會在訪問時導致VM退出。同時,該規(guī)范引入了諸如虛擬中斷之類的概念。
  中斷虛擬化
  虛擬中斷可以分為兩個虛擬組中的一個:0和1。組0保存所謂的快速中斷請求(FIQ),而組1保存所有其他(中斷請求,IRQ)。處理器以與物理處理完全相同的方式處理虛擬中斷?;贏RMv8的虛擬化環(huán)境中的中斷處理組織如下:來自設備的物理中斷被發(fā)送到EL2級別(到管理程序),并且如果中斷用于虛擬機管理程序,則管理程序激活虛擬處理器上的相應虛擬中斷。系統(tǒng)和服務中斷都可以路由到虛擬機管理程序。根據(jù)GIC規(guī)范,管理程序在虛擬化之前處理物理中斷。
  支持GIC中的中斷虛擬化由表示虛擬中斷的事件列表支持,存儲在相應的寄存器中并作為虛擬IRQ或FIQ處理。通過處理器寄存器接口控制虛擬中斷類似于物理中斷。因此,在虛擬處理器上運行的軟件能夠執(zhí)行以下操作:
  設置虛擬優(yōu)先級掩碼;
  控制在組內(nèi)解釋虛擬優(yōu)先級的方式;
  確認虛擬中斷;
  降低虛擬中斷的優(yōu)先級;
  停用虛擬中斷。
  為了管理虛擬中斷,CPU接口提供了一組系統(tǒng)寄存器,它們位于與物理中斷控制寄存器相同的地址。這意味著控制機制對于VM是透明的。虛擬中斷列表上的寄存器數(shù)量是實現(xiàn)定義的,但限制為16,如果尋址到虛擬處理器的中斷數(shù)超過可用寄存器數(shù),則管理程序可以在內(nèi)存中存儲相應的事件以將其寫入釋放狀態(tài)稍后注冊。中斷的優(yōu)先級在硬件中執(zhí)行。
  虛擬接口產(chǎn)生尋址到管理程序的中斷,管理程序應該響應事件(空中斷列表,啟用和禁用組,發(fā)信號通知不在寄存器中的中斷的中斷結(jié)束等)。除了專用外設中斷(PPI)和共享外設中斷(SPI)之外,ARMv8系統(tǒng)還有一類稱為特定于位置的外設中斷(LPI)的消息(消息信號中斷(MSI))發(fā)出的中斷信號。
  GICv3及更高版本的GIC擴展了對此中斷類的支持,該中斷類可以根據(jù)特殊規(guī)則(中斷轉(zhuǎn)換服務(ITS))處理中斷消息。但是,這些功能與虛擬化有某種間接關(guān)系,但值得簡要描述它們,以提供GICv4中引入的更改的一般視圖。
   在使用ITS時,設備通過在GITS_TRANSLATOR寄存器中發(fā)出具有目標地址的寫事務來發(fā)送事件信號。寫入事務由正在寫入的數(shù)據(jù)(包含事件ID)和源標識符(與SMMU相同)組成。系統(tǒng)軟件對ITS寄存器進行編程,使它們指向存儲器中的設備、集合和中斷存儲器表,這些存儲器表包含處理來自指定目標CPU和中斷ID的相關(guān)源的事件的規(guī)則。
  中斷導致在掛起中斷表中設置元素的相應字段。對于GICv3,此機制僅針對物理中斷(即,由設備直接發(fā)信號通知)進行定義。這導致管理程序?qū)崿F(xiàn)中的某些不便。特別是,它要求管理程序執(zhí)行ITS在軟件中完成的所有操作。GICv4引入了以編程方式生成此類中斷并將LPI轉(zhuǎn)換為為相應虛擬處理器設置的虛擬中斷的功能,為此引入了描述中斷與目標處理器的親和性的附加表,以及虛擬掛起中斷表。如果在中斷到達期間映射到目標vCPU的目標物理CPU核上正在執(zhí)行具有不同標識符的VM,GICv4生成一個特殊的中斷,旨在通知管理程序。為了控制虛擬中斷的轉(zhuǎn)換,ITS GICv4命令接口中添加了新的命令類型。
  本文描述的工具為虛擬化環(huán)境的實現(xiàn)提供了堅實基礎(chǔ),現(xiàn)在,它們得到了各種虛擬機管理程序(類和第二類)的良好支持。總的來說,基于軟件開發(fā)人員的請求,CPU和系統(tǒng)設施架構(gòu)正在不斷發(fā)展。

關(guān)鍵詞:了解一下ARMv8處理器架構(gòu)中的虛擬化操作ARMv8處理器

版權(quán)與免責聲明

凡本網(wǎng)注明“出處:維庫電子市場網(wǎng)”的所有作品,版權(quán)均屬于維庫電子市場網(wǎng),轉(zhuǎn)載請必須注明維庫電子市場網(wǎng),http://www.hbjingang.com,違反者本網(wǎng)將追究相關(guān)法律責任。

本網(wǎng)轉(zhuǎn)載并注明自其它出處的作品,目的在于傳遞更多信息,并不代表本網(wǎng)贊同其觀點或證實其內(nèi)容的真實性,不承擔此類作品侵權(quán)行為的直接責任及連帶責任。其他媒體、網(wǎng)站或個人從本網(wǎng)轉(zhuǎn)載時,必須保留本網(wǎng)注明的作品出處,并自負版權(quán)等法律責任。

如涉及作品內(nèi)容、版權(quán)等問題,請在作品發(fā)表之日起一周內(nèi)與本網(wǎng)聯(lián)系,否則視為放棄相關(guān)權(quán)利。

廣告
OEM清單文件: OEM清單文件
*公司名:
*聯(lián)系人:
*手機號碼:
QQ:
有效期:

掃碼下載APP,
一鍵連接廣大的電子世界。

在線人工客服

買家服務:
賣家服務:
技術(shù)客服:

0571-85317607

網(wǎng)站技術(shù)支持

13606545031

客服在線時間周一至周五
9:00-17:30

關(guān)注官方微信號,
第一時間獲取資訊。

建議反饋

聯(lián)系人:

聯(lián)系方式:

按住滑塊,拖拽到最右邊
>>
感謝您向阿庫提出的寶貴意見,您的參與是維庫提升服務的動力!意見一經(jīng)采納,將有感恩紅包奉上哦!