新聞中心

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

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

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

        今天的SoC(系統單芯片)處理器都集成了一系列的核心、加速器和其它處理單元。這些異質的多核架構提供了更多的計算能力,但其復雜性也為各種應用中嵌入系統的開發人員帶來了新的挑戰,這些應用包括控制層處理器、視頻服務器、無線基站,以及寬帶網關等。如果是分立的核心,每個核心都能完全地訪問和控制自己的資源。這種可預測的訪問能夠做直接的管理,而有實時約束的應用也具備了確定的性能。然而,在一個多核架構中,各個核心共享資源,潛在的競爭使很多設計因素復雜化,例如處理延時以及可靠地中斷處理。

        為了提供與單核器件相當的確定性能,多核架構開始采用已經過網絡通信驗證的。這些架構使用已有的隊列與,在多個核心之間有效地分配資源、使吞吐量最大化、盡可能減小響應延時,并且避免了不必要的擁擠。

        1 資源虛擬化

        從架構的角度看,SoC是多核心的復雜系統,它通過一個高速結構,將各種控制與資源連接起來(圖1)。在很多方式上,一片SoC內部的無數交互操作都很像一個有很多資源(或核心)的通信網絡,這些資源與相同目的地做交互操作,包括內存、外設與總線。顯然,設計人員用于提高網絡效率的帶寬管理技術(如虛擬化)也能用于管理多處理器核心以及共享外設之間的流量。

        圖1.下一代SOC是多核心訪問相同的共同資源的復雜系統

        片上資源的虛擬化使各個核心能夠共享訪問權;這種共享的訪問權對應用是透明的。每個應用都可以把一個資源看作像自己獨有一樣,而一個虛擬化管理器用于匯總共享的所有權(由所分配的帶寬量所測定)。對資源的虛擬訪問和共享訪問都需要一個隊列管理器和一個流量管理器。各應用使用一個或多個隊列,緩存對某個資源的訪問。虛擬化為隊列增加事件或事務,當資源可用時將它們從隊列中拉出。隊列包含了一個指向緩沖區中數據的緩存描述符(buffer descriptor),并且實現隊列可以有多種方式,具體取決于應用的需求。一只SoC所支持的隊列數是不定的,從數百個到數萬個,可滿足各種應用的需求。

        隊列管理器可刷新隊列的狀態,即:隊列大小、頭指針、尾指針,以及起始地址,并且維護填充水平與閾值,包括全滿(full)、將滿(almoST full)、將空(almost empty)和全空(empty)。隊列管理器還為每個隊列提供完全的內存管理,包括空閑池的緩沖分配與回收,以及當某個隊列中增加事件時的訪問權檢查(圖2)。多個請求者可以同時為一個或多個隊列增加描述符,也能在等待某項服務的多個隊列中做出選擇。

        對于指向相同資源的多個隊列,管理器作為可用帶寬的仲裁器。此任務不僅是在共享某個資源的各應用之間,也包括一個應用可能必須使能QoS(服務質量)的多個隊列之間。

        流量管理采用監管與整形機制,測量并控制指定給某個流或一組流的帶寬數。監管機制用于控制流量管理器為某個隊列增加事件的速率,而整形機制則是流量管理器從隊列中去除事件的速率。為了獲得最佳的控制,以及管理隊列優先權的能力,必須在每個隊列基礎上實現監管與整形。流量管理器亦根據一個預設的服務算法,將多個隊列映射到單一的共享資源。

        有了隊列和流量管理,就可以提供可靠的端至端QoS。這種方案允許多個路徑共享一個資源,而不會對帶寬的預訂產生負面影響。精細粒度QoS支持SLA(服務水平協議),保證了在每個流量基礎上的最小、平均和最大帶寬。開發人員可以實現隊列水平的流量標記與度量,以防止出現擁塞。擁塞的早期通知使隊列管理器能夠采用正確的措施,通過向流量資源的反饋,去除對可能丟棄數據包的不必要處理,或理想情況下,能完全避免擁塞。
        舉例來說,一個基于隊列與流量管理的以太網驅動程序能防止任何一個處理器不公平地獨占端口帶寬。它還能確保帶寬分配以及最大的延時約束,而與其它隊列狀態無關。驅動程序支持對仲裁方法的選擇(例如:嚴格優先級或帶權重的輪叫),有助于實現可靠的實時服務,如視頻流。最后,多個資源還可以共享以太網端口,而不會對帶寬預訂產生負面影響。像IP(互聯網協議)轉發這類任務很容易可靠地實現,而對延時敏感的應用(如音視頻的發送)則受益于確定且可靠的端口管理。另外,當用硬件實現了隊列和流量管理時,驅動程序幾乎無需軟件開銷,就可以維持端至端的QoS。

        2 虛擬化層

        早期的多核SoC與初期的網絡處理器類似,都將虛擬化資源的全部工作留給了開發人員。應用在某種程度上必須判斷出自己在與其它應用共享某個資源。當一個應用使用某個共享資源時,它必須以某種與其它應用共存的方式這樣做。操作系統也需要支持虛擬化。

        圖2.基于硬件的虛擬化卸下了應用處理器的隊列管理負擔,包括刷新隊列狀態,維持填充水平和閾值,分配與重新分配緩沖區,以及當應用要訪問某隊列時,確認其訪問權限。


        上一頁 1 2 3 下一頁

        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 普格县| 白河县| 兴文县| 江阴市| 长顺县| 简阳市| 呼伦贝尔市| 嘉义县| 台东县| 田东县| 龙南县| 莱芜市| 化德县| 漾濞| 新乡县| 都江堰市| 郸城县| 吉木萨尔县| 崇左市| 抚远县| 叙永县| 波密县| 万全县| 鄄城县| 团风县| 高陵县| 敖汉旗| 漳平市| 竹溪县| 邵阳市| 廉江市| 天柱县| 和政县| 青神县| 长顺县| 长寿区| 鄱阳县| 娱乐| 南和县| 噶尔县| 怀集县|