<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          新聞中心

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

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

          作者: 時間:2013-10-31 來源:網(wǎng)絡 收藏


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

          6 部分虛擬化

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

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

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

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

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

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

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

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

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

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

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

          7 結語

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


          上一頁 1 2 3 下一頁

          評論


          相關推薦

          技術專區(qū)

          關閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();