當前位置:
首頁 > 科技 > 用PCI Express SR-IOV實現大量虛擬化功能

用PCI Express SR-IOV實現大量虛擬化功能

用PCI Express SR-IOV實現大量虛擬化功能

當今數據中心用的PCI Express最強大的一個功能是I/O虛擬化。I/O虛擬化讓虛擬機直接訪問I/O硬體設備,提高了企業級伺服器的性能。單根I/O虛擬化(SR-IOV)技術規範拉動了市場。SR-IOV技術規範讓一台PCI Express設備能在主機里呈現為多台不同的「虛擬」設備。這是通過在傳統PCI Express功能(即實體功能)上添加一個新的PCI Express功能結構實現的。實體功能控制新型虛擬化功能的創建和分配。

虛擬化功能共享設備的底層硬體和PCI Express 鏈接(見圖1)。SR-IOV技術規範的主要特點是,虛擬化功能非常輕量化,從而可以在單一設備上實現。

用PCI Express SR-IOV實現大量虛擬化功能

圖1:仍用一個PCIe介面移動數據時,虛擬化功能呈現實體功能底層硬體相互獨立的視圖和配置。

虛擬化功能的要求

系統級晶元的架構師常常要花費很大的精力,來確定設備需要提供多少虛擬化功能。單個最小的虛擬化功能需要約1,000位元組存儲器才符合輕量化的定義。如果每種虛擬化功能都需要面向數據中心的特定功能,例如高級錯誤報告(AER)和消息信號中斷(MSI/MSI-X),需要的存儲器位元組數會增加三四倍。系統級晶元應用邏輯需要增加邏輯才能虛擬化系統級晶元關鍵任務的功能,不過這不是本文討論的內容。系統級晶元的架構師至少應該為設備預期支持的每台虛擬機提供一種虛擬化功能。

假設有一台八核四插槽伺服器——該系統用超線程運行32台虛擬機(每核一台),甚至64台虛擬機(或更多)完全是可行的。有些類型的應用,例如高端網路設計或存儲處理器,把系統級晶元資源進一步細分,由單個虛擬化功能來控制資源,可能會有意義。虛擬機管理器通過向每台虛擬機分配數量不等的虛擬化功能,可以向各虛擬機分配大小不同的系統級晶元容量。這樣一來,這些類型的設備架構很容易就能處理成百上千個虛擬化功能!

為虛擬化功能確定正確的存儲方案

PCIe配置空間一般是在基於觸發器的寄存器上實現的。之所以這樣安排,是因為PCIe設備可有六個左右的地址解碼器、各種不同的控制位元組、大量錯誤狀態或其他狀態的位元組,所有這些的運行都是相互獨立的。

基於觸發器的地址解碼器把延遲降至最低,而基於觸發器的控制和狀態寄存器可以直接與相關邏輯連接,都會簡化設計工程師的工作,有助於直接合成數據。不幸的是,隨著虛擬化功能的增多,以及每種虛擬化功能的PCIe功能的增多(尤其是像AER和MSI-X這類佔用寄存器多的功能),寄存器柵極的負擔會非常重。要給PCIe添加幾百個全性能虛擬化功能,產品上可能要增加多達二三百萬個柵極。

由於SR-IOV技術規範支持在一台設備里用64,000多種虛擬化功能,PCI-SIG花很大力氣來支持安裝啟動,而不是直接映射到觸發器。只要有可能,所有虛擬化功能的控制和狀態功能都與相關的實體功能統一起來。

所有PCI Express鏈接層控制都屬於這一類,因為一種虛擬化功能不應把與其他虛擬化功能共享的鏈接拿走。複製的只有每種虛擬化功能(例如啟用匯流排主控)必須單獨執行的各種控制。通過對實體功能區域內所有虛擬化功能複本的連續定位,大大簡化了地址解碼——因此不管有多少虛擬化功能,每個區域只需要增加兩個解碼器,而不是每增加一種虛擬化功能就要增加一個解碼器(見圖2)。正因如此,一種虛擬化功能的大多數存儲器與直接映射到觸發器的相同時鐘周期的訪問時間相比會比較慢,而且延遲的時間長。

用PCI Express SR-IOV實現大量虛擬化功能

圖2:因為對虛擬化功能內存區域連續定位,所以大大簡化了虛擬化功能的內存地址解碼。

PCI Express控制器設計工程師謹慎地把每種虛擬化功能的速度快延遲小的少量存儲器(例如觸發器)隔離開,巧妙地增加一些邏輯用於合併較慢的大容量存儲器的數據,有些情況下則要合併實體功能的數據(見圖3)。這自然會增加設備配置空間的系統讀寫延遲時間,不過,初始化時就完成了對那些寄存器的存取,也不會影響執行輸入輸出的設備的性能。

用PCI Express SR-IOV實現大量虛擬化功能

圖3:較慢的大容量存儲器數據與底層實體功能信息合併,啟用PCI Express控制器外部虛擬化功能配置空間的存儲器。

不管配置空間是觸發器還是較慢的存儲器,都能以相同的速度存取SR-IOV設備主內存地址空間。只有當主機先初始化了設備,處理鏈接層錯誤時,才能訪問配置空間,其他時候都將暫停虛擬機操作。還要注意,SR-IOV技術規範假定虛擬機管理器會限制和截取虛擬機對每個配置空間的訪問,所以在硬體上哪怕只增加幾十個時鐘周期,名義上都會受到整個系統配置空間的存取時間影響。

片上存儲器與基於CPU的存儲器對比

由於配置的存取速度對設備性能不重要,PCI Express控制器的設計工程師可能會把大容量存儲器置於片上靜態隨機存儲器(SRAM)里,甚至置於晶元外的專用內存里,例如DDR內存。由於現在有高密度硅處理工藝,很小硅面積就能實現比較大的SRAM——當然這個小是與幾千台虛擬設備安裝基於觸發器的寄存器需要數百萬的柵極相比較而言的。面對虛擬化功能多如牛毛的系統級晶元設計工程師們應該為此感到振奮,不過儘管如此,還是需要相當多的實體內存專門用於SR-IOV。這在系統不需要使用設備提供的所有虛擬化功能時,或者一個矽片要用於多種不同功能的的產品時,就有不浪費內存的優勢。

有些系統級晶元架構可能會用容易分割的專門內存,以便更改用途,讓底層應用邏輯使用SR-IOV不需要的內存。其他架構里,儘管系統級晶元的架構可能希望考慮能否通過中斷機制(見圖4)把大容量存儲器卸載到本地CPU。這種情況下PCI Express控制器會顯示大容量存儲器(實際上由本地CPU提供服務,數據或確認返回到控制器硬體)的讀寫請求。由於系統級晶元固件可以選擇分配多少CPU內存而不必查詢其他的硬體或多個埠的內存,避免了浪費,從而使RAM劃分機制非常直接。由於大多數虛擬化功能可以在固件里執行,使用這種方法的設備支持PCIe功能也很靈活。通過不同的固件構建或只是通過不同的配置,硬體可以支持不同的SKU,它的虛擬化功能數量不同,可以支持或不支持AER和MSI-X。

用PCI Express SR-IOV實現大量虛擬化功能

圖4:大容量感測器可以直接安裝在片上存儲器里,或者間接通過本地CPU提供讀寫請求。

小結

系統級晶元架構和PCI Express控制器設計工程師應該評估他們需要的虛擬化功能的總量,根據總量和硅面積限制決定是用觸發器、SRAM,還是用基於CPU的存儲器合適。新思科技提供PCI Express經過硅驗證的DesignWare IP解決方案,它兼容最新的PCI-SIG和SR-IOV技術規範,能混合使用觸發器、RAM和本地CPU,靈活安裝數以千計的虛擬化功能。DesignWare PCI Express IP的SR-IOV實現可以配置和擴展,使設計工程師能加快把產品推向市場的速度。

喜歡這篇文章嗎?立刻分享出去讓更多人知道吧!

本站內容充實豐富,博大精深,小編精選每日熱門資訊,隨時更新,點擊「搶先收到最新資訊」瀏覽吧!


請您繼續閱讀更多來自 電子創新設計 的精彩文章:

「60秒半導體新聞」硅晶圓出貨持續攀高,連續5個季度創歷史新高/手機零組件供貨缺口恐擴大 PC產業營運難逃衝擊
AMD公布2017第二季度財報 營業額同比上漲19%
利用 OpenCL? 平台和英特爾 Stratix 10 FPGA 加快深度學習發展
「60秒半導體新聞」牛!長電科技將進入2017全球先進封裝供應商前三/10nm A11大量出貨,iPhone 8或將如期上市
10月最潮最嗨的「互聯網+」博覽會觀眾預登記入口開放啦!

TAG:電子創新設計 |

您可能感興趣

CentOS+OpenVZ+Vtonf實現Linux虛擬化
SDN與NFV催生智能網卡需求,Ethernity基於FPGA加速虛擬化網路
針對Linux的I/O虛擬化框架VirtIO
研究員發現SEV加密虛擬化安全漏洞AMD EPYC及Ryzen Pro處理器遭殃
Imagination 推出可滿足汽車儀錶板、HUD 和信息娛樂系統需求的硬體虛擬化 GPU 內核
Imagination 推出可滿足汽車儀錶板、HUD 和信息娛樂系統需求的硬體虛擬化 GPU 內核
英偉達聯手VMware提供虛擬化GPU,加速AI部署
Enea出席中國SDN NFV大會,展示全球領先的5G/LTE及虛擬化平台方案!
微軟的Azure Stack HCI:運行連接Azure的虛擬化應用程序的新選擇
vSphere虛擬化管理平台的功能
以虛擬化為支點 VMware NSX打造下一代安全生態
幾張圖看一下Intel和NVIDIA顯卡虛擬化
DeepMotion為三星S10手機提供AR虛擬化身技術
AMD EPYC助力全新的HPE Gen10單路伺服器重新詮釋虛擬化和軟體定義存儲
VR老兵轉投AR行業,創立AR虛擬化身公司Artie
Corellium非法銷售虛擬化iOS 蘋果控侵權
VMware要當心!Nutanix正在蠶食網路虛擬化業務
Cloud Native,下一代虛擬化核心網應用系統架構
Windows 10的Linux子系統更新了,引入虛擬化技術
在 Ubuntu 18.04 LTS 上使用 KVM 配置無頭虛擬化伺服器