新聞中心

        EEPW首頁 > 嵌入式系統 > 設計應用 > 2011/06/14 一種基于硬件的虛擬化設計簡化多核處理器的方案

        2011/06/14 一種基于硬件的虛擬化設計簡化多核處理器的方案

        作者: 時間:2013-10-31 來源:網絡 收藏


        一個隊列與流量管理控制器可以實現對非法資源訪問的多級響應。最簡單的響應是阻止訪問,并給應用生成一個警報,通常是通過一個中斷。這個警報告訴應用,它試圖做了一些不應做的事。第二種方法是由開發人員記錄下使用的違背情況,幫助在現場查錯。隊列與流量控制器亦必須能夠通過觸發一個復位,并重新初始化一個可能損壞的應用,逐步升級其響應。理想情況下,開發人員可以創建一個控制此響應的策略。例如,開發人員可以設定一個閾值,如果某個應用做了三次非法訪問,就認為它是一個已損壞的應用,必須重新啟動。

        6 部分虛擬化

        當一系列事務必須依次發生時,這種要求就成為了一個阻塞實例,因為其它請求方必須等待此事務的完成,然后才能獲得資源的控制權。考慮一個典型的SATA(串行先進技術連接)事務,此時首先要配置SATA端口,然后執行一個指令序列。與數據包都是單個事件的以太網端口不同,SATA端口必須鎖定給某個應用,直到事務完成時為止;否則,兩個應用會相互覆蓋,致使誰也無法完成自己的任務。

        圖4.(a)硬件實施的虛擬化在有完全寬帶管理的SOC中也能實現資源分配
        (b)這種方案能夠在整個系統上高效地共享資源

        盡管各個應用無法完全共享支持這種事務特性的資源,但對配額可以做部分虛擬化。首先,等待使用資源的應用必須確認端口空閑可用,然后在使用期間鎖定端口。對鎖定的支持要求在操作系統中有一個薄的軟件層,這樣就能相互通信,看哪個應用擁有對鎖的控制權。不過,硬件的使用可以管理鎖,并加快鎖的獲得速度。必須用硬件實現鎖的獲取,從而為資源提供一種失效恢復機制;或者,也可以用一個加鎖處理器去鎖定資源。

        根據應用情況,系統必須支持可以完全虛擬化的共享資源,以及需要鎖定的共享資源。例如,一片SoC可以提供一個不共享的SATA端口,但只有一個處理器可以使用它,而資源的共享必須在軟件中實現。另外通過對可鎖定資源的支持,SoC中的核心仍能夠以一種對所有應用透明的方式,共享資源,具有失效恢復的可靠性。

        多核架構的一個重要方面是易于集成。將多個處理器做到一只芯片上的能力,需要應用軟件的直接遷移;否則,開發人員還不如去設計一個新的系統。

        在確定遷移到虛擬化架構是否方便時,必須考慮一系列因素。例如,架構必須支持多操作系統,因為根據需要支持的應用情況,多處理器經常會在多個核心上使用多個操作系統。僅支持一個操作系統的多核架構會使開發人員被迫采用該操作系統,然后將所有代碼移植到它上面。而支持多個操作系統時,一片多核SoC就簡化了代碼遷移工作。

        另外,還需要考慮到QoS問題,因為各個應用有不同的帶寬需求。延時敏感型應用(如視頻流)需要實時訪問共享資源,而數據型的應用(如內容下載)可以容忍延遲,充分利用未使用的帶寬。為不同帶寬需求提供服務的能力使開發人員能夠在相同的處理簇下整合異質的應用。

        還要考慮架構是否包含了透明的資源共享,因為透明性能讓開發人員同時遷移支持虛擬化的應用以及不支持虛擬化的應用。另外一個方面是去除軟件虛擬化層。雖然在做SoC之間的移植時,某些代碼的重寫是必要的,但對很多應用來說,當轉向采用硬件資源共享的SoC時,大多數的變動并不是修改軟件,而是消除軟件虛擬化層。去掉這一層可簡化系統設計與查錯工作,增加了系統的效率。對于制造商已取得虛擬化代碼許可的情況,去掉此層還可以降低系統成本。

        還有一個要考慮的因素,即架構是否整合了系統資源。當一個系統采用多只芯片和操作系統時,每個都有自己的存儲資源。通過資源的硬件管理,所有任務都可以共享對資源的訪問。例如,一塊硬盤或一個以太網端口可以服務于整個系統(甚至跨各個SoC),而不是像傳統架構那樣需要多塊硬盤。這種方案可節省設備成本,降低系統部件的總數。

        SoC之間的通信也很重要。各個應用可以通過一個大帶寬系統總線(如PCIe)共享資源,從而實現了SoC之間的共享。傳統架構會給每個處理器分配一個固定帶寬,這種方法限制了各核之間的有效QoS管理,難以超額申請(圖4a)。采用基于硬件的虛擬化時,即使在SoC之間,資源的分配也是靈活的(圖4b)。通過速率監管、流量整形,以及隊列仲裁,反映并平衡著每個處理器與應用的需求,從而能夠實現全帶寬管理。同樣,這種方案還能夠獲得資源(如一塊硬盤或一個安全引擎)在整個系統上的有效共享,而不僅是一只處理器。

        另外還應考慮的是處理器之間的通信,因為多處理器系統經常要在各處理器之間傳輸相當多的數據。隊列管理機制為SoC上各處理器之間以及多個SoC之間的通信提供了一種簡單而有效的加速方法。

        7 結語

        今天的下一代SoC是復雜的多處理器環境,它必須共享片上資源,而不會帶來額外開銷,降低系統的效率。隊列管理有助于芯片資源的虛擬化,通過一種可靠的機制,分配帶寬、隔離故障,以及促進可靠的錯誤恢復,簡化了資源共享工作。流量管理通過一種滿足不同應用對延時和流量需求的方式,控制流量進出隊列的速率,從而確保了系統公平地共享資源。通過硬件實現的虛擬化,開發人員可以卸載隊列與流量管理工作,從而增強應用的效率、獲得最大的資源吞吐量、減少延時,增加系統的可靠性。


        上一頁 1 2 3 下一頁

        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 抚顺县| 广汉市| 托克逊县| 来宾市| 缙云县| 乐都县| 运城市| 靖宇县| 河南省| 锦屏县| 察雅县| 彩票| 横山县| 安陆市| 永吉县| 高雄县| 镇安县| 安仁县| 阿拉善左旗| 通海县| 镇江市| 马边| 于都县| 秦安县| 涞源县| 商水县| 托克托县| 平远县| 新晃| 无为县| 微山县| 达州市| 屏东县| 万全县| 无极县| 宣武区| 乌什县| 普安县| 常德市| 巨野县| 顺平县|