色婷婷AⅤ一区二区三区|亚洲精品第一国产综合亚AV|久久精品官方网视频|日本28视频香蕉

          新聞中心

          EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > Zynq MPSoC得到 Xen 管理程序支持

          Zynq MPSoC得到 Xen 管理程序支持

          作者:賽靈思 時(shí)間:2016-01-27 來源:電子產(chǎn)品世界 收藏

            賽靈思最新  器件采用 Xen 管理程序,但選擇這種開源虛擬化方案的關(guān)鍵在于其支持能力。

          本文引用地址:http://cafeforensic.com/article/201601/286362.htm

            作者:Steven H. VanderLeest

            DornerWorks 公司首席運(yùn)營官

            Steve.VanderLeest@DornerWorks.com

            Xen 開源管理程序是一種功能齊全的虛擬化技術(shù),通常用于云計(jì)算,最近才進(jìn)入嵌入式系統(tǒng)領(lǐng)域。DornerWorks 在新型 ® UltraScale+  器件上提供 Xen 支持,為賽靈思用戶帶來多種優(yōu)勢。Xen  管理程序不僅實(shí)現(xiàn)快速的軟件集成和更高的系統(tǒng)安全性與保密性,而且還能將企業(yè)級(jí)的云計(jì)算能力運(yùn)用到嵌入式領(lǐng)域。

            管理程序提供的嚴(yán)格設(shè)計(jì)分區(qū)功能有助于在計(jì)算器件上快速集成新軟件(包括整個(gè)操作系統(tǒng))。同時(shí),這種隔離方式可減少甚至消除獨(dú)立軟件功能之間的意外干擾。

            此外,這種隔離方式還能減少功能間的意外交互,縮小受風(fēng)險(xiǎn)威脅的攻擊面,從而極大增強(qiáng)系統(tǒng)的安全性與保密性,進(jìn)而更容易實(shí)現(xiàn)安全性或保密性屬性。企業(yè)級(jí)云計(jì)算給嵌入式領(lǐng)域同樣帶來了諸多優(yōu)勢,例如只需少許修改就能將原有軟件在新的硬件上部署。

            我們?cè)诰唧w介紹 Zynq  上的開源 Xen 管理程序 Xen Zynq 之前,首先簡單了解一下什么是管理程序。

            什么是管理程序?

            管理程序是實(shí)現(xiàn)虛擬化的基礎(chǔ)軟件層。正如操作系統(tǒng) (OS) 管理同時(shí)運(yùn)行的多個(gè)應(yīng)用程序,每個(gè)應(yīng)用程序包含在一個(gè)進(jìn)程中,可以訪問由操作系統(tǒng)管理的機(jī)器資源;管理程序管理同時(shí)運(yùn)行的多個(gè)操作系統(tǒng),每個(gè)操作系統(tǒng)包含在一個(gè)虛擬機(jī)中,可以訪問由管理程序管理的機(jī)器資源。

            虛擬化概念可追溯到二十世紀(jì)六十年代。Popek 和 Goldberg 在 1974 年用三個(gè)特征定義了虛擬機(jī)監(jiān)視程序 (VMM) 的概念:

            • VMM 程序具有與原(物理)機(jī)器相同的運(yùn)行時(shí)間(虛擬)環(huán)境。

            • VMM 對(duì)性能的影響可以忽略不計(jì)。

            • VMM 管理系統(tǒng)資源。

            管理程序是一種幾乎只關(guān)注基本機(jī)器管理任務(wù)的 VMM。這意味著文件系統(tǒng)、圖形用戶界面和網(wǎng)絡(luò)協(xié)議棧等常見任務(wù)不在這層實(shí)現(xiàn),而是委托給更高的層,例如運(yùn)行在由管理程序托管的虛擬機(jī)上的客戶操作系統(tǒng)內(nèi)。

            如上所述,在硬件上運(yùn)行的管理程序被稱為 1 類管理程序。相比之下,2 類管理程序不是最低的軟件層,而是托管在操作系統(tǒng)上。這類管理程序通常用來讓一種操作系統(tǒng)運(yùn)行在另一種操作系統(tǒng)之上,例如,Mac 用戶利用 Parallels 在 MacBook 上運(yùn)行 Windows,或者 Windows 用戶使用 VirtualBox 在虛擬機(jī)上啟動(dòng)并運(yùn)行 Linux。

            企業(yè)管理程序與嵌入式管理程序之間也存在重大區(qū)別。云計(jì)算和大數(shù)據(jù)是管理程序的典型企業(yè)級(jí)用例。管理程序是最近才進(jìn)入嵌入式領(lǐng)域的。隨著具備足夠高性能和較低功耗的處理器出現(xiàn)才被該領(lǐng)域所采用。

            嵌入式管理程序的用例具有一個(gè)共同特點(diǎn):將多個(gè)復(fù)雜功能整合到單個(gè)計(jì)算平臺(tái)中,同時(shí)保持一定間距。在航空航天領(lǐng)域,管理程序經(jīng)常用于支持集成式模塊化航空電子設(shè)備,將以前在聯(lián)合式(獨(dú)立)航空電子硬件上執(zhí)行的軟件整合到單個(gè)計(jì)算平臺(tái)中。功能包括飛行控制、導(dǎo)航、飛行管理系統(tǒng)、防碰等。聯(lián)邦航空局 (FAA) 要求以前在獨(dú)立硬件上運(yùn)行的軟件功能在整合后不能相互影響。這種隔離性通過 DO-248C 等標(biāo)準(zhǔn)定義的嚴(yán)格的分區(qū)模式來實(shí)現(xiàn)。

            當(dāng)整合功能時(shí),F(xiàn)AA 考慮的是航班安全問題,而軍用航空電子設(shè)備也同樣需要隔離以支持保密性。在單個(gè)系統(tǒng)上通過嚴(yán)格分區(qū)支持多個(gè)分類等級(jí)的這種方法采用一種名為多重獨(dú)立安全等級(jí) (MILS) 的架構(gòu)。

            醫(yī)療保健行業(yè)也考慮使用管理程序?yàn)楦叨酸t(yī)療設(shè)備實(shí)現(xiàn)類似的整合,例如核磁共振掃描儀、機(jī)器人(或機(jī)器人輔助)外科手術(shù)設(shè)備以及 CT 掃描儀,所有這些設(shè)備目前都包含多個(gè)獨(dú)立處理系統(tǒng)。整合的功能有可能包括內(nèi)科醫(yī)生圖形用戶界面、圖像處理、實(shí)時(shí)電機(jī)控制、患者信息數(shù)據(jù)庫和系統(tǒng)管理功能。

            在汽車領(lǐng)域,要想將汽車內(nèi)嵌的數(shù)十個(gè)獨(dú)立微處理器和微控制器整合在一起,使用管理程序是一種不錯(cuò)的方法。幾乎所有汽車 OEM 廠商都在考慮使用管理程序?qū)⑿畔蕵?、駕駛員與乘客控制、高級(jí)駕駛員輔助系統(tǒng) (ADAS)、儀表板、導(dǎo)航系統(tǒng)、互聯(lián)網(wǎng)連接以及實(shí)時(shí)控制等功能進(jìn)行整合。

            考慮虛擬化解決方案時(shí),一定要評(píng)估 VMM 對(duì)性能的影響是否小到可以被忽略。管理程序可控制所有硬件資源(CPU、存儲(chǔ)器和 I/O),因此有可能影響所有資源的性能。就 CPU 而言,一項(xiàng)重要指標(biāo)是使內(nèi)核從運(yùn)行一臺(tái)虛擬機(jī)切換為運(yùn)行另一臺(tái)虛擬機(jī)所需的時(shí)間。該指標(biāo)有時(shí)被稱為上下文切換時(shí)間,但也稱為分區(qū)或域切換時(shí)間,這是為了將它與操作系統(tǒng)在進(jìn)程間的切換這個(gè)類似概念加以區(qū)分。還有一個(gè)相關(guān)的指標(biāo)是抖動(dòng),該指標(biāo)用來衡量切換時(shí)間的變化有多大,以及這種變化對(duì)于確定性和可預(yù)測性的影響。

            實(shí)時(shí)任務(wù)設(shè)計(jì)人員還會(huì)測量可調(diào)度的最小時(shí)間片,這能約束 CPU 調(diào)度的最大頻率,或者換句話說,能約束給定時(shí)間內(nèi)可執(zhí)行的最大虛擬機(jī)數(shù)量。當(dāng)測量對(duì)存儲(chǔ)器的影響時(shí),管理程序內(nèi)核的存儲(chǔ)足跡由不變的基本部分以及針對(duì)每個(gè)被添加客戶機(jī)(虛擬機(jī))的增量部分組成。累積的存儲(chǔ)足跡約束虛擬機(jī)的最大數(shù)量。在 I/O 性能方面,應(yīng)對(duì)每個(gè)目標(biāo)器件測量帶寬和時(shí)延這兩個(gè)關(guān)鍵數(shù)值,不過您也可根據(jù)一些通用指標(biāo)(例如總的中斷時(shí)延或原始通信帶寬)進(jìn)行估算。

            很多管理程序支持兩種 I/O 方案:即專用和共享。專用 I/O 一般開銷較低。這種方式下,管理程序會(huì)提供一個(gè)可直接或唯一性地訪問特定 I/O 器件的虛擬機(jī),該 I/O 器件通常被稱為“直通”器件。共享 I/O 開銷較高,因?yàn)楣芾沓绦虮仨毑扇∫恍C(jī)制來實(shí)現(xiàn)共享方案。

            開源方面

            “開源”一詞用來描述軟件是開放的,但不一定是免費(fèi)的。開源軟件的源代碼允許在精心制定的許可協(xié)議下修改和共享,以使軟件的自由性得到保護(hù)。最為廣泛認(rèn)可的開源許可證協(xié)議是 GNU 通用公共許可證(有效版本為 GPLv2 和 GPLv3)、GNU 寬通用公共許可證、Apache 許可證和 BSD 許可證(有多個(gè)不同版本)。

            開源不一定免費(fèi)。以開源產(chǎn)品為主的公司與傳統(tǒng)軟件公司有所不同,通常使用不同的收入模式,例如銷售產(chǎn)品支持、附件(例如印刷版用戶手冊(cè))、培訓(xùn)或定制設(shè)計(jì)服務(wù)。Red Hat 是最有名的開源公司之一,他們圍繞開源 Linux 操作系統(tǒng)打造出一家數(shù)十億美元的企業(yè)。

            將 XEN 映射到新的 ZYNQ

            賽靈思的最新 Zynq UltraScale+  可提供一個(gè)用來運(yùn)行 Xen 管理程序的強(qiáng)大平臺(tái)。該器件具有一個(gè)四核 ARM Cortex-A53 處理器,并具有硬件虛擬化擴(kuò)展和 64 位的 ARMv8 指令集。強(qiáng)大的硬件需要配以豐富的軟件支持,以充分利用其功能和性能。開發(fā)新款 Zynq MPSoC 時(shí),賽靈思對(duì)各行業(yè)的主要客戶進(jìn)行了調(diào)研,包括航空航天與軍用、醫(yī)療、電信和汽車行業(yè)。結(jié)論是:大部分客戶都希望新型器件提供管理程序,其中一半希望是開源管理程序。賽靈思選擇 Xen 作為開源管理程序,并選擇 DornerWorks 為新的 Xen Zynq 提供支持服務(wù)。

            Xen 管理程序在虛擬機(jī)中托管客戶操作系統(tǒng),為它們提供底層機(jī)器的虛擬化視圖。然后,客戶操作系統(tǒng)及其應(yīng)用程序使用虛擬化的 CPU、存儲(chǔ)器和 I/O,同時(shí)由 Xen 管理如何將虛擬化資源映射到物理資源。

            在 Xen 中,每個(gè)虛擬機(jī)都被稱為一個(gè)域。為了使管理程序內(nèi)核盡可能小,Xen 會(huì)給一個(gè)域賦予特權(quán)。這個(gè)系統(tǒng)域稱為 dom0。該域啟動(dòng)其他客戶域(每個(gè)客戶域稱為 domU),配置由內(nèi)核強(qiáng)制執(zhí)行的調(diào)度和存儲(chǔ)器映射,以及管理 I/O 訪問權(quán)限。為了更詳細(xì)說明,我們考慮一下管理程序環(huán)境的的幾個(gè)視圖:啟動(dòng)順序、ARM 異常級(jí)別、運(yùn)行調(diào)度和資源管理。

            從加電開始,可通過多種方式配置新型 Zynq MPSoC 上的啟動(dòng)順序,包括哪個(gè)處理器(Cortex-A53 或 Cortex-R5)先啟動(dòng)。在大多數(shù)用例中,兩個(gè)處理器都相當(dāng)獨(dú)立,因此,標(biāo)準(zhǔn) Xen Zynq 管理程序版本只運(yùn)行在 Cortex-A53 上。圖 1 給出了一個(gè)典型的啟動(dòng)順序。如果第一階段引導(dǎo)加載程序 (FSBL)

              

          1.jpg

           

            圖 1 – 典型啟動(dòng)順序顯示直到客戶操作系統(tǒng)運(yùn)行為止的各個(gè)階段。

            Cortex-R5 用來托管獨(dú)立的非虛擬化的安全操作系統(tǒng),那么它通常從簡單的第一階段引導(dǎo)加載程序(FSBL) 中首先啟動(dòng)。R5 啟動(dòng)后,接下來接著啟動(dòng) A53,并從其自身的 FSBL 開始。第二階段引導(dǎo)加載程序(例如 U-Boot),通常用來提供更多的啟動(dòng)功能,可能包括管理程序內(nèi)核鏡像的完整性檢查。

            在這個(gè)階段,Xen 管理程序內(nèi)核被調(diào)用。內(nèi)核啟動(dòng)包括檢查有效的 dom0。接下來,dom0 檢查客戶域的有效鏡像,然后在一個(gè)或多個(gè)內(nèi)核上啟動(dòng)和調(diào)度它們。大多數(shù)情況下,dom0 會(huì)繼續(xù)運(yùn)行,以便監(jiān)控系統(tǒng),提供對(duì)共享資源的管理,并處理特性系統(tǒng)故障。管理程序內(nèi)核在每個(gè)域上下文切換期間運(yùn)行,也通過超級(jí)調(diào)用來調(diào)用。超級(jí)調(diào)用與系統(tǒng)調(diào)用類似,后者允許應(yīng)用程序調(diào)用操作系統(tǒng)服務(wù),而這里則是調(diào)用管理程序服務(wù)。默認(rèn)方式下,dom0 可進(jìn)行任何管理程序調(diào)用,而 domU 只能做特定的管理程序調(diào)用。不過,開發(fā)人員可以使用 Xen 模塊 XSM-FLASK 對(duì)超級(jí)調(diào)用訪問實(shí)現(xiàn)更為精細(xì)的控制。處理器硬件強(qiáng)制執(zhí)行由 ARM 異常級(jí)別模型定義的分類特權(quán)。Cortex-A53 使用 ARMv8 架構(gòu),該架構(gòu)定義四個(gè)異常級(jí)別,如圖 2 所示,圖中最底部的級(jí)別具有最高特權(quán),隨著級(jí)別上升特權(quán)降低。完整訪問特權(quán)在異常級(jí)別 EL3 賦予,用于實(shí)現(xiàn) ARM Trust Zone 監(jiān)控。管理程序在 EL2 級(jí)上運(yùn)行,以實(shí)現(xiàn)客戶域的虛擬化。在每個(gè)被托管的虛擬機(jī)中,托管的操作系統(tǒng)運(yùn)行在 EL1 級(jí)上。最后,用戶應(yīng)用程序在EL0 級(jí)以最低權(quán)限運(yùn)行。當(dāng)變?yōu)闄?quán)限較低的異常級(jí)別時(shí),虛擬機(jī)寄存器必須具有相同寬度或者更窄。這意味著你可以使用 64 位管理程序和 32 位的客戶機(jī),但不能顛倒。Xen Zynq 使用 ARMv8 架構(gòu)的 AArch64 執(zhí)行模型,從而支持 64 位或 32 位客戶機(jī)。

            特權(quán)域 dom0 建立調(diào)度,以決定各域何時(shí)運(yùn)行以及在哪個(gè)或哪些內(nèi)核上運(yùn)行。然后,管理程序內(nèi)核執(zhí)行配置后的調(diào)度計(jì)劃。為達(dá)到某種類型的確定性,應(yīng)配置一個(gè)調(diào)度計(jì)劃,使客戶域在它的時(shí)隙內(nèi)對(duì)機(jī)器具有唯一訪問權(quán)。圖 3 給出的實(shí)例中,客戶機(jī) 1(與 dom0 一起)在單個(gè)時(shí)隙內(nèi)運(yùn)行在多個(gè)內(nèi)核上,而客戶機(jī) 2 和 3 則沒有這個(gè)限制,因此可以在其他時(shí)隙內(nèi)以混合匹配的負(fù)載平衡計(jì)劃對(duì)它們進(jìn)行調(diào)度。

            管理程序管理所有機(jī)器資源。CPU 內(nèi)核主要進(jìn)行分時(shí)管理,如上所述。

            存儲(chǔ)器不是通過分時(shí)進(jìn)行共享,而是分空間共享,把存儲(chǔ)器的一部分分配給每個(gè)客戶域。管理程序使用硬件存儲(chǔ)器管理單元 (MMU) 來實(shí)施存儲(chǔ)器布局。I/O 的管理差異很大,取決于器件的類型。有些 I/O 器件可被直接映射到 Cortex-A53,而其他 I/O 器件必須配置后才能連通 FPGA可編程架構(gòu)。

              

          2.jpg

           

            圖 2 – ARM 異常級(jí)別圖顯示了映射到 EL2 的管理程序。

            客戶機(jī)對(duì) I/O 器件的訪問由 dom0 進(jìn)行配置和管理,利用對(duì) Xen 內(nèi)核進(jìn)行合適的超級(jí)調(diào)用來建立指向器件的存儲(chǔ)器映射。Dom0 可授權(quán)客戶域訪問所需的特定 I/O 器件,也可能自己管理共享 I/O,起到網(wǎng)關(guān)的作用以實(shí)現(xiàn)共享機(jī)制。Xen 中的域間通信(包括 I/O)通常使用 Xen 事件通道進(jìn)行通知,使用共享存儲(chǔ)器來傳送數(shù)據(jù)。Xen 共享 I/O 器件驅(qū)動(dòng)程序采用分離驅(qū)動(dòng)模式,客戶域中的上一半驅(qū)動(dòng)程序?qū)?nbsp;API 提供至客戶操作系統(tǒng),將用來往返傳送數(shù)據(jù)的功能提供至dom0。然后,dom0 中的下一半驅(qū)動(dòng)程序執(zhí)行器件的實(shí)際 I/O 操作。

            建立對(duì) XEN ZYNQ 的支持

            賽靈思針對(duì)備受期待的下一代 Zynq SoC 器件搜集的客戶反饋顯示,很多客戶期望有強(qiáng)大的管理程序支持,其中一半想要開源選擇。這種支持不能停留在簡單的服務(wù)臺(tái)模式上,而是要具備更多支持選項(xiàng),以幫助設(shè)計(jì)可平衡各種需求(例如高帶寬、低延遲、低功耗、高可靠性)的嵌入式系統(tǒng),而且能連接到嵌入式環(huán)境中的多種系統(tǒng)設(shè)備。賽靈思之所以選擇 DornerWorks,是因?yàn)槲覀兙邆?nbsp;Xen 管理程序方面的專業(yè)技術(shù)以及嵌入式工程設(shè)計(jì)經(jīng)驗(yàn),而且我們是賽靈思聯(lián)盟計(jì)劃的高級(jí)成員,能為客戶提供更多支持選擇,為他們系統(tǒng)中的 FPGA 設(shè)計(jì)部分提供支持。

            DornerWorks 與賽靈思協(xié)作完成了 Xen 與新的 Zynq MPSoC 的端口,然后通過認(rèn)證和驗(yàn)證測試來確認(rèn)正確性。我們的測試不僅涵蓋 Xen 管理程序內(nèi)核在硬件上正確運(yùn)行,還包括特權(quán)域 dom0(運(yùn)行 Linux)以及具有多種客戶操作系統(tǒng)支持的客戶域。我們將這個(gè)軟件包命名為 Xen Zynq Distribution。

              

          3.jpg

           

            圖 3–多核調(diào)度程序?qū)⒖蛻魴C(jī) 1 放在專有時(shí)隙中,并將客戶機(jī) 2 和 3 混合。

            開發(fā)實(shí)際硬件之前,我們要進(jìn)行附加測試。我們的硬件替代模型為 QEMU 開源機(jī)器仿真軟件,可運(yùn)行在 x86 開發(fā)人員系統(tǒng)上進(jìn)行獨(dú)立的調(diào)試與測試,或者運(yùn)行在我們團(tuán)隊(duì)的構(gòu)建服務(wù)器上進(jìn)行連續(xù)集成測試。 此外,我們還使用仿真板 Remus(不要與同名的 Xen 動(dòng)態(tài)遷移工具混淆)進(jìn)行開發(fā),該仿真板使用六個(gè)賽靈思 Virtex®-7 FPGA 來仿真 Zynq MPSoC。

            圖 4 給出了我們的連續(xù)集成方案,以構(gòu)建與測試服務(wù)器為核心。服務(wù)器會(huì)定期查詢?cè)创a庫。如果檢測到任何變化,服務(wù)器會(huì)對(duì)構(gòu)建映像的相關(guān)部分執(zhí)行增量編譯。然后,它將每個(gè)測試所需的映像加載到目標(biāo)機(jī)群的每個(gè)器件上,并調(diào)用測試腳本。有些測試情況下,需要對(duì)目標(biāo)機(jī)群應(yīng)用外部刺激。測試服務(wù)器收集并核對(duì)結(jié)果,然后通過總結(jié)面板給出測試套件的總體健康度視圖或者指出哪里有需要解決的問題。

            DornerWorks 還開發(fā)了相應(yīng)的基礎(chǔ)架構(gòu),以為賽靈思客戶提供全面支持,方便他們?cè)谛碌?nbsp;Zynq MPSoC 上使用 Xen 管理程序?;局С钟砷_源社區(qū)積極分子推動(dòng),用戶可交換意見和共享信息。DornerWorks 會(huì)主持論壇并從社區(qū)收集問題。我們將 Jira 作為跟蹤工具,用以追蹤賽靈思發(fā)現(xiàn)的問題、內(nèi)部檢測的問題以及客戶(通過社區(qū)或付費(fèi)訂閱)發(fā)現(xiàn)的問題。為了維持 Xen 工作,我們還提供付費(fèi)訂閱和定制設(shè)計(jì)支持服務(wù),即應(yīng)很多客戶要求提供關(guān)鍵業(yè)務(wù)的合同式支持,以降低客戶業(yè)務(wù)風(fēng)險(xiǎn)和確保對(duì)客戶需求的及時(shí)響應(yīng)。您可登陸以下網(wǎng)址,了解支持選項(xiàng)的更多詳情:http:// http://xen.world。

            親自測試 XEN

            新的 Zynq MPSoC 器件明年初出貨,您在等待過程中可首先了解 Xen。Xen 在普通 x86 PC 上運(yùn)行,既可作為 1 類管理程序本地運(yùn)行,也可托管在基于 Windows 的 VirtualBox 的內(nèi)部。要嘗試嵌入式 Xen,你需要仿真的或?qū)嶋H的 ARM 硬件。選擇一個(gè)具有虛擬化擴(kuò)展的 ARM 處理器,最理想的是 Cortex-A53,但其他處理器,例如 Cortex-A15 也能提供頗具代表性的環(huán)境。圖 5 描述了構(gòu)建針對(duì)嵌入式目標(biāo)的完整管理程序系統(tǒng)的工作流程。

              

          4.jpg

           

            圖 4–連續(xù)集成法自動(dòng)進(jìn)行 Xen Zynq 的構(gòu)建與測試。

            您可在網(wǎng)址http://www.xenproject.org/中找到 Xen,并了解如何構(gòu)建作為 dom0 的 Linux 映像以及構(gòu)建多種客戶操作系統(tǒng)映像。

            DornerWorks 已經(jīng)發(fā)布了針對(duì)最新器件 Zynq MPSoC 的 Xen Zynq Distribution, 并在我們的網(wǎng)站上提供下載:http://dornerworks.com/services/ XilinxXen。只需添加客戶操作系統(tǒng)映像,就可擁有自己的嵌入式虛擬化系統(tǒng)。

            憑借最新 Zynq MPSoC 器件上的 Xen,您可將云計(jì)算收入囊中。

              

          5.jpg

           

            圖 5–Xen 開發(fā)工作流程

           

           

           

           

           



          關(guān)鍵詞: Zynq MPSoC

          評(píng)論


          相關(guān)推薦

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

          關(guān)閉