亚洲精品影院一区二区-亚洲精品永久一区-亚洲精品中文一区不卡-亚洲精品中文字幕久久久久久-国产亚洲精品aaa大片-国产亚洲精品成人a在线

您好,歡迎光臨電子應用網![登錄] [免費注冊] 返回首頁 | | 網站地圖 | 反饋 | 收藏
在應用中實踐
在實踐中成長
  • 應用
  • 專題
  • 產品
  • 新聞
  • 展會
  • 活動
  • 招聘
當前位置:中國電子應用網 > 技術應用 > 正文

利用MIPS多線程處理器優化SoC設計

2011年12月07日09:33:22 本網站 我要評論(2)字號:T | T | T
關鍵字:應用 IPC 

  多線程是一種基于硬件或軟件的處理技術,它的首要目標是計算型工作中利用并發來提高性能。多線程也可以用于區別各種任務,以便可以將優先權分配給更多時間敏感的流量,如語音、視頻或關鍵數據。而公認的基于軟件的多線程技術,如任務切換和基于軟件的線程調度已經存在了相當一段時間,很少有人知道基于硬件的多線程的歷史。基于硬件的多線程技術其實已經存在了相當長一段時間,其實現可以追溯到20世紀60年代的CDC6600。在CDC6600電腦中,10個硬件線程被用來保證從I/O處理器到約16個外圍設備的響應時間。這個例子的處理器運行速度遠遠超過了許多I/O設備,是一個充分利用多線程優勢的典型應用,因為空閑處理時間可以被從線程到線程切換的有益工作所取代。在70年代,Denelcor HEP機是在CPU內,而不是在I/O實際執行線程切換。類似上例,較終結果是每個周期的指令(IPC)有了顯著改善。之后10年推出的其他幾個系統和學術研究進一步展示了硬件多線程的好處。

  今天的市場上有許多多線程處理器。英特爾公司已經利用其超線程技術將該技術引入高端計算應用領域。此外,其他許多SoC制造商,如Broadcom、Lantiq、Mobileye、NetLogic Microsystems、PMC-Sierra、Ralink Technology和Sigma Designs也交付了上百萬個采用多線程處理器的產品。許多這樣的SoC都采用了基于業界標準MIPS架構的多線程MIPS32 34K系列內核或多線程、多處理MIPS32 1004K一致處理系統(CPS)。目前硬件多線程已經成為主流應用,并越來越被視為SoC設計中實現較佳性能的有效方法。

  用多線程提高流水線利用率

  如前所述,增加一個給定單線程處理器的IPC數量是一個主要目標。通常情況下,即使是非常高性能的處理器也有大量時間閑置,目的是等待數據到達。常見的情況是,帶有共享存儲系統先進處理器需花50%的時間等待數據在緩存未中(cache miss)后返回。此數據檢索的等待時間可能會持續幾十個周期,在極端情況下甚至是數百個周期。無論數量多少,處理器在此期間做的都是無效工作。多線程處理器可以在多個線程之間切換以利用這些閑置的周期。這些周期現在可以用來自其他線程的有用指令填滿,從而避免未使用的周期白白浪費。這較終將獲得更好的流水線利用率并提升系統的吞吐量。

  確保線程切換效率的一個關鍵環節是怎樣進行線程相關信息或語境的管理。當映射到一個線程時,每個任務都有相關的上下文信息,如程序計數器和寄存器信息子集,這些信息是以硬件加載和更新的。在單線程處理器中,由于處理器在線程之間切換,這些上下文必須導入(swapped in)或導出。當在線程之間變換時,需要有與保存和恢復操作有關的額外處理。這種負擔可能會變得非常繁重,尤其是采用高語境(high context)切換。多線程處理器支持由每個硬件支持的線程的完整上下文存儲,無需保存和恢復操作。這種機制支持切換線程或上下文的零周期開銷。

  圖1顯示了多線程是如何提高流水線利用率的基本機制。在這種情況下,在不同的時間點有三個線程出現了緩存未中。在這些線程暫停(stall)期間,其他線程在同一條流水線上做著有用的工作,從而增加了IPC。

  

  MIPS多線程技術

  MIPS科技的多線程技術基于兩個層次框架,涉及虛擬處理單元(VPE)和線程上下文(TC),支持每個周期的線程切換。每個多線程內核多達可支持兩個VPE,它們共享其他硬件資源中的一條流水線。不過,由于每個VPE可以有自己針對高速緩存的轉換后備緩沖器(Translation Look-aside Buffer,TLB),因此它們都可作為針對一個SMP Linux操作系統的兩個獨立處理器出現。對于更細粒度的線程處理應用,每個VPE可以支持多個TC。這些TC共享一個執行單元,但各有各的程序計數器和內核寄存器文件,以便每個TC都可以處理來自軟件的線程。34K內核多達可以支持分配在兩個VPE上的九個TC,在運行時進行優化和分區。利用較小的芯片面積可執行MIPS多線程功能。

  34K內核也允許為線程分配處理器周期,并利用一個可選的服務質量(QoS)管理塊設置相對線程優先權。這有助于實現兩個優先機制,確定總線上的信息流量。第一個機制允許用戶讓某一個線程優先于另一個。第二個機制用來根據時間的變化為特定線程分配一個指定的周期率。這兩個機制的結合使用可以有效地給線程組分配帶寬,更好地控制延遲。在實時系統中,系統級的決定是非常關鍵的,而QoS塊有利于改善系統的可預測性。圖2a顯示了34K內核中VPE、TC和QoS塊的關系。

  1004K CPS是MIPS科技的較新一代多線程處理器。該系統支持多達四個多線程內核,每個內核都可以配置為像34K內核那樣支持2個VPE。在1004K CPS中的多個內核通過一個一致管理單元連接在一起,以保持每個CPU的L1高速緩存之間的一致性。一致多內核架構的每個內核的多線程集成允許1004K CPS超過同類單線程多核處理器的總性能。該系統還包括一個可選模塊,為來自I/O外圍設備的數據傳輸提供一致性,從而通過卸載作為操作系統一部分、通常運行于軟件的I/O一致性方案獲得額外的性能。一致處理系統還包括一個全局中斷控制器,可以接收多達256個中斷并把它們分配到內核,或每個內核內的硬件線程。整個系統采用MIPS L2高速緩存控制器,通過一個擴展的256位寬接口連接到一致管理單元,以優化一致系統和L2高速緩存之間的吞吐量。EJTAG、“一致管控”程序和數據跟蹤塊完善了系統,通過開發工具為系統中的每個CPU內核和一致單元提供了同步的能見度。

  SMP Linux被用來考察VPE接口的效應,從而保持高級API不變。這使得對現有傳統內核的利用在新內核出現后也不會改變。此外,一些諸如ThreadX的RTOS的SMP版本包括對細粒度、基于TC的多線程的支持。應該指出的是,1004K的多線程和多核硬件功能利用了一個通用的軟件編程模型。也就是說,例如,有人用SMP Linux開發的線程應用可以有效地運行在34K或1004K上,而無需修改,而SMP內核可以實現任務的親和性以及跨線程和內核的工作量負載均衡決策。  

  圖2a:34K頂層架構。

  

  圖2b:1004K頂層架構。

  多線程是一種基于硬件或軟件的處理技術,它的首要目標是計算型工作中利用并發來提高性能。多線程也可以用于區別各種任務,以便可以將優先權分配給更多時間敏感的流量,如語音、視頻或關鍵數據。而公認的基于軟件的多線程技術,如任務切換和基于軟件的線程調度已經存在了相當一段時間,很少有人知道基于硬件的多線程的歷史。基于硬件的多線程技術其實已經存在了相當長一段時間,其實現可以追溯到20世紀60年代的CDC6600。在CDC6600電腦中,10個硬件線程被用來保證從I/O處理器到約16個外圍設備的響應時間。這個例子的處理器運行速度遠遠超過了許多I/O設備,是一個充分利用多線程優勢的典型應用,因為空閑處理時間可以被從線程到線程切換的有益工作所取代。在70年代,Denelcor HEP機是在CPU內,而不是在I/O實際執行線程切換。類似上例,較終結果是每個周期的指令(IPC)有了顯著改善。之后10年推出的其他幾個系統和學術研究進一步展示了硬件多線程的好處。

  今天的市場上有許多多線程處理器。英特爾公司已經利用其超線程技術將該技術引入高端計算應用領域。此外,其他許多SoC制造商,如Broadcom、Lantiq、Mobileye、NetLogic Microsystems、PMC-Sierra、Ralink Technology和Sigma Designs也交付了上百萬個采用多線程處理器的產品。許多這樣的SoC都采用了基于業界標準MIPS架構的多線程MIPS32 34K系列內核或多線程、多處理MIPS32 1004K一致處理系統(CPS)。目前硬件多線程已經成為主流應用,并越來越被視為SoC設計中實現較佳性能的有效方法。

  用多線程提高流水線利用率

  如前所述,增加一個給定單線程處理器的IPC數量是一個主要目標。通常情況下,即使是非常高性能的處理器也有大量時間閑置,目的是等待數據到達。常見的情況是,帶有共享存儲系統先進處理器需花50%的時間等待數據在緩存未中(cache miss)后返回。此數據檢索的等待時間可能會持續幾十個周期,在極端情況下甚至是數百個周期。無論數量多少,處理器在此期間做的都是無效工作。多線程處理器可以在多個線程之間切換以利用這些閑置的周期。這些周期現在可以用來自其他線程的有用指令填滿,從而避免未使用的周期白白浪費。這較終將獲得更好的流水線利用率并提升系統的吞吐量。

  確保線程切換效率的一個關鍵環節是怎樣進行線程相關信息或語境的管理。當映射到一個線程時,每個任務都有相關的上下文信息,如程序計數器和寄存器信息子集,這些信息是以硬件加載和更新的。在單線程處理器中,由于處理器在線程之間切換,這些上下文必須導入(swapped in)或導出。當在線程之間變換時,需要有與保存和恢復操作有關的額外處理。這種負擔可能會變得非常繁重,尤其是采用高語境(high context)切換。多線程處理器支持由每個硬件支持的線程的完整上下文存儲,無需保存和恢復操作。這種機制支持切換線程或上下文的零周期開銷。

  圖1顯示了多線程是如何提高流水線利用率的基本機制。在這種情況下,在不同的時間點有三個線程出現了緩存未中。在這些線程暫停(stall)期間,其他線程在同一條流水線上做著有用的工作,從而增加了IPC。

  

  MIPS多線程

相關閱讀:

    沒有相關新聞...
網友評論:已有2條評論 點擊查看
登錄 (請登錄發言,并遵守相關規定)
如果您對新聞頻道有任何意見或建議,請到交流平臺反饋。【反饋意見】
關于我們 | 聯系我們 | 本站動態 | 廣告服務 | 歡迎投稿 | 友情鏈接 | 法律聲明
Copyright (c) 2008-2025 01ea.com.All rights reserved.
電子應用網 京ICP備12009123號-2 京公網安備110105003345號