新聞中心

EEPW首頁 > 電源與新能源 > 設(shè)計應(yīng)用 > 基于FPGA的M2M異構(gòu)虛擬化系統(tǒng)(一)

基于FPGA的M2M異構(gòu)虛擬化系統(tǒng)(一)

作者: 時間:2018-09-03 來源:網(wǎng)絡(luò) 收藏

  摘要

本文引用地址:http://2s4d.com/article/201809/388223.htm

  在多核體系構(gòu)架與并行計算時代,尤其是云計算的出現(xiàn),虛擬化技術(shù)正迅速發(fā)展成為計算系統(tǒng)中的一項核心技術(shù)。虛擬化技術(shù)提供了系統(tǒng)層次之間的抽象化,并將資源以一個或多個虛擬的運行環(huán)境提供給用戶。目前對虛擬化的研究工作主要關(guān)注于資源的分割,獨立和封裝等研究點,但主要在一個特定處理器體系結(jié)構(gòu)以及處理器同構(gòu)的前提下。

  本項目提出一種新穎的M2M(Multiple ISAs applications to Multiple heter-ogeneous core,M2M)概念,將虛擬化系統(tǒng)分為多核異構(gòu)層、虛擬化管理層、二進(jìn)制翻譯層、軟件應(yīng)用層四個層次,創(chuàng)新地在傳統(tǒng)的虛擬化管理層上增加二進(jìn)制翻譯層,從而引入多個不同體系結(jié)構(gòu)的應(yīng)用程序,虛擬化管理器調(diào)度分配給硬件層引入的異構(gòu)處理器。M2M的特性使虛擬化系統(tǒng)上層應(yīng)用的靈活性大大增加,并且硬件異構(gòu)化也使系統(tǒng)的效率有效提升。

  本項目主要貢獻(xiàn)點和創(chuàng)新點有:

  多指令集體系應(yīng)用虛擬環(huán)境。在應(yīng)用層提供不同指令集體系構(gòu)架的虛擬運行環(huán)境,以支持不同應(yīng)用系統(tǒng)的應(yīng)用程序。

  軟硬協(xié)同的二進(jìn)制翻譯層。在二進(jìn)制翻譯層,采用軟硬協(xié)同的方式實現(xiàn)不同架構(gòu)體系間的動態(tài)二進(jìn)制翻譯,提高硬件目標(biāo)代碼生成和運行的性能和靈活性。

  設(shè)計實現(xiàn)了自主可擴(kuò)展32位的SoC核。在多核異構(gòu)層,設(shè)計了一個自主,可擴(kuò)展,可配置的32位RISC處理器?;诖颂幚砥骱丝膳渲脤崿F(xiàn)多個RISC SoC平臺(QS-I)。本項目在XUP Virtex-5和Digilent Nexys3 FPGA開發(fā)平臺構(gòu)建了多核異構(gòu)層。

  動態(tài)虛擬化管理。在虛擬化管理層,以輕量級的方式實現(xiàn)了系統(tǒng)資源與上層應(yīng)用的管理。通過資源管理與任務(wù)調(diào)度動態(tài)分配或遷移運行任務(wù)。虛擬層的多個體系結(jié)構(gòu)的應(yīng)用程序(如x86和MIPS)可動態(tài)運行于異構(gòu)的處理器核上(如處理能力不同的MIPS核)。

  提供了系統(tǒng)庫和運行程序。在軟件應(yīng)用層,為自主設(shè)計的QS-I平臺提供完善的程序運行環(huán)境并設(shè)計了多樣化的應(yīng)用程序。項目完全自主地設(shè)計實現(xiàn)了系統(tǒng)庫(如圖形庫、I/O庫)以及典型的多樣化應(yīng)用軟件,包括MIPS下的吃豆子游戲、X86下的推箱子游戲。

  1.項目背景

  在計算機(jī)科學(xué)領(lǐng)域中,虛擬化代表著對計算資源的抽象,而不僅僅局限于虛擬機(jī)的概念,實現(xiàn)虛擬化的方法不止一種,無論何種方法都是以不同層次的抽象來實現(xiàn)某一視角對應(yīng)的效果。

  1.1.項目需求

  虛擬化技術(shù)正迅速發(fā)展成為計算系統(tǒng)中的一項核心技術(shù),它提供了計算機(jī)系統(tǒng)層次之間的抽象層,并將資源分配以提供一個或多個虛擬的運行環(huán)境?,F(xiàn)在對虛擬化的研究工作主要關(guān)注于資源的分割,獨立和封裝等研究點,但主要在一個特定處理器體系結(jié)構(gòu)以及處理器同構(gòu)的前提下。本項目提出一種新穎的M2M(Multiple ISAs applications to Multiple heterogeneous core,M2M)概念,將虛擬化系統(tǒng)分為多核異構(gòu)層、虛擬化管理層、二進(jìn)制翻譯層、軟件應(yīng)用層四個層次,創(chuàng)新地在傳統(tǒng)的虛擬化管理層上增加二進(jìn)制翻譯層,從而引入多個不同體系結(jié)構(gòu)的應(yīng)用程序,并在硬件層引入處理器的異構(gòu)性。M2M的特性使虛擬化系統(tǒng)的上層應(yīng)用的靈活性大大增加,并且硬件異構(gòu)化也使系統(tǒng)的效率有效提升。

  1.2.相關(guān)技術(shù)及其發(fā)展現(xiàn)狀

  本小節(jié)將介紹虛擬化以及動態(tài)翻譯等技術(shù)的基本概念及其發(fā)展現(xiàn)狀。

  1.2.1.虛擬化技術(shù)的基本概念

  虛擬化技術(shù)最早可以追溯到上個世紀(jì)60年代,IBM公司的System 360系統(tǒng)對運行多個虛擬化系統(tǒng)進(jìn)行了最早的嘗試。如今,虛擬化技術(shù)正迅速發(fā)展成為計算機(jī)系統(tǒng)中的一項核心技術(shù),它提供了計算機(jī)系統(tǒng)層次之間的抽象層,并將資源分配以提供一個或多個虛擬的運行環(huán)境。

  例如計算機(jī)系統(tǒng)可分為如圖 1中所示的四個層次,由最底層的硬件自下而上分別是操作系統(tǒng)、用戶庫、應(yīng)用程序。相應(yīng)地,虛擬化技術(shù)可以針對各個層次進(jìn)行抽象虛擬,從而為上一層的應(yīng)用提供一個或多個虛擬環(huán)境。

  

  圖 1 計算機(jī)系統(tǒng)的四個層次

  更具體地,虛擬化的層次可分為如圖 2所示的指令集架構(gòu)(ISA)、硬件抽象層(HAL)、操作系統(tǒng)、用戶級庫、應(yīng)用程序的五個層次。圖 2中還在各個層次下方列出了與其對應(yīng)的知名產(chǎn)品。

  

  圖 2 虛擬化技術(shù)的五個層次及其相應(yīng)產(chǎn)品

  1.2.2.ISA層的虛擬化技術(shù)

  ISA層的虛擬化是虛擬化技術(shù)中的一個重要內(nèi)容,它的主要目的是為上層應(yīng)用提供一個或多個不同于物理層實際處理器ISA的ISA抽象層,從而使得多個處理器架構(gòu)的應(yīng)用程序能夠在同一個處理器上運行,如圖 3所示。

  

  圖 3 ISA層的虛擬化

  ISA層虛擬化所產(chǎn)生的異構(gòu)性使處理器本身的性能得到提高[1]。同時,x86架構(gòu)憑借其強(qiáng)大的軟硬件支持,仍將在未來的處理器競爭中占有統(tǒng)治地位[2] 。本項目將重點實現(xiàn)不同ISA(x86和MIPS)之間的虛擬化技術(shù),使該RISC處理器與x86架構(gòu)達(dá)到二進(jìn)制兼容。

  1.2.3.動態(tài)翻譯技術(shù)

  在ISA層的虛擬化中,二進(jìn)制翻譯是最重要的實現(xiàn)技術(shù)。二進(jìn)制翻譯是指把一中體系結(jié)構(gòu)的機(jī)器碼翻譯成為另一種體系結(jié)構(gòu)的機(jī)器碼。通過二進(jìn)制翻譯,體系結(jié)構(gòu)將成為一個軟件層,它使得復(fù)雜的遺留體系結(jié)構(gòu)能夠用簡單的硬件來實現(xiàn),并且使得新穎的體系結(jié)構(gòu)能夠兼容原來的軟件;此外,二進(jìn)制翻譯能夠促進(jìn)軟件的優(yōu)化[3]。

  二進(jìn)制翻譯有兩種主要的實現(xiàn)方法,一種是靜態(tài)翻譯,另一種動態(tài)翻譯。

  靜態(tài)翻譯把整個二進(jìn)制可執(zhí)行文件翻譯成目標(biāo)體系結(jié)構(gòu)的指令集,它不需要先運行代碼,所有的翻譯都在編譯時完成。所以靜態(tài)翻譯很難做到正確性,因為不是所有的代碼都能在編譯時被翻譯器發(fā)現(xiàn)。比如,可執(zhí)行文件的某些部分只能通過間接跳轉(zhuǎn)才能到達(dá),而間接跳轉(zhuǎn)的目標(biāo)值只有在運行時才知道。

  動態(tài)翻譯把一小段源體系結(jié)構(gòu)的代碼翻譯成目標(biāo)體系結(jié)構(gòu)的代碼并把這一小段生成的代碼緩存起來。只有當(dāng)代碼被運行時才開始執(zhí)行翻譯。跳轉(zhuǎn)指令會被指定到已經(jīng)翻譯和緩存起來的代碼段上。

  2.項目目標(biāo)及開發(fā)平臺選擇

  2.1.項目目標(biāo)及內(nèi)容

  本項目提出一種新穎的M2M(Multiple ISAs applications to Multiple heter­-og­eneous core,M2M)概念,在虛擬化管理層上增加二進(jìn)制翻譯層,從而引入多個不同體系結(jié)構(gòu)的應(yīng)用程序,并在硬件層引入處理器的異構(gòu)性。如圖 4所示的項目總體層次包括多核異構(gòu)層、虛擬化管理層、二進(jìn)制翻譯層以及軟件應(yīng)用層。

  

  圖 4 項目總體層次

  本項目目標(biāo)是基于Xilinx公司的XUP Virtex-5和Digilent的Nexys3 FPGA開發(fā)板實現(xiàn)多個RISC SoC平臺建立硬件多核異構(gòu)層;選擇MIPS和x86 ISA構(gòu)架設(shè)計吃豆子、俄羅斯方塊等典型應(yīng)用程序構(gòu)成多樣化應(yīng)用場景,實現(xiàn)M2M原型系統(tǒng)。

  具體任務(wù)如下:

  多核異構(gòu)層

  實現(xiàn)MIPS基本指令集,支持精確中斷,含一級Cache的32位RISC CPU的RTL描述及其驗證;

  完成VGA(或DVI)、PS/2、SRAM、UART等外設(shè)的控制器模塊描述及各個模塊的驗證;

  引入Wishbone總線,集成SoC平臺的各個模塊;

  基于不同F(xiàn)PGA的RISC SoC平臺(分別在XUP Vritex-5和Digilent Nexys3上基于自主軟核QS-I搭建了RISC SoC平臺),構(gòu)建多核異構(gòu)層

  虛擬化管理層

  對多核異構(gòu)層的資源管理;

  對應(yīng)用層多樣化程序的調(diào)度分配

  二進(jìn)制翻譯層

  以軟硬件協(xié)同方式完成RISC處理器在ISA層對x86的虛擬化,使得RISC處理器能夠與多架構(gòu)(如x86)二進(jìn)制兼容;

  動態(tài)翻譯的軟件架構(gòu)設(shè)計

  軟件應(yīng)用層

  系統(tǒng)軟件編寫。系統(tǒng)軟件包括外設(shè)的驅(qū)動程序及系統(tǒng)控制程序;

  運行環(huán)境及庫編寫。設(shè)計實現(xiàn)系統(tǒng)庫(如圖形庫、I/O庫);

  應(yīng)用軟件編寫。應(yīng)用軟件包括多個SoC完整應(yīng)用系統(tǒng)(x86和MIPS),如簡單的游戲程序。

  2.2.開發(fā)平臺選擇

  本項目主要選用Xilinx公司的XUP Virtex-5開發(fā)平臺及Digilent公司的Nexys3開發(fā)平臺。

  2.2.1.XUP Virtex-5 FPGA開發(fā)平臺簡介

  XUP Virtex5是集成了OpenSparcT1開源微處理器的一個強(qiáng)大系統(tǒng)。其豐富的特色以及開發(fā)平臺的通用性,使得該板卡非常適合在教學(xué)及研究的領(lǐng)域搭建各種系統(tǒng)。如數(shù)字設(shè)計、嵌入式系統(tǒng)、通訊系統(tǒng)、網(wǎng)絡(luò)、視頻及圖像處理等各個領(lǐng)域。XUP Virtex-5實體圖見圖 5,其資源模塊圖如圖 6所示。XUP Virtex-5含有豐富的片上資源以及完整的工業(yè)標(biāo)準(zhǔn)接口。

  

  圖 5 XUP Virtex-5 FPGA開發(fā)平臺

  

  圖 6 XUP Virtex-5平臺資源模塊

  本項目基于XUP Virtex-5 FPGA開發(fā)平臺構(gòu)建了基于自主軟核QS-I的RISC SoC平臺。

  2.2.2.Digilent Nexys3 FPGA開發(fā)平臺簡介

  Digilent公司的Nexys3平臺是一個基于Xilinx Sparten-6 FPGA的完整,易用的數(shù)字電路開發(fā)平臺。Sparten-6 FPGA為高性能邏輯設(shè)計做了充分優(yōu)化,其片內(nèi)的block RAM,時鐘管理模塊,DSP等資源為高級邏輯設(shè)計提供了必要硬件基礎(chǔ)。Nexys3實體圖見圖 7,其平臺資源模塊如圖 8。

  

  圖 7 Digilent Nexys3 FPGA開發(fā)平臺

  

  圖 8 Digilent Nexys3平臺資源模塊


上一頁 1 2 3 下一頁

關(guān)鍵詞:

評論


相關(guān)推薦

技術(shù)專區(qū)

關(guān)閉