• 同時多線程

    編輯
    本詞條由“匿名用戶” 建檔。

    同時多線程

    編輯

    同時多線程(SMT)是一種通過硬件多線程提高超標量CPU整體效率的技術。SMT允許多個獨立的執行線程更好地利用現代處理器架構提供的資源

    詳情

    編輯

    多線程這個詞有歧義,因為不僅可以在一個CPU內核上同時執行多個線程,還可以執行多個任務(具有不同的頁表、不同的任務狀態段、不同的保護環、不同的I/O權限等)。雖然運行在同一個核心上,但它們之間是完全分開的。多線程在概念上類似于搶占式多任務,但在現代超標量處理器的線程執行級別上實現。

    同時多線程(SMT)是多線程的兩種主要實現之一,另一種形式是時間多線程(也稱為超線程)。在時間多線程中,一次只能在任何給定的流水線階段執行一個指令線程。在同時多線程中,來自多個線程的指令可以一次在任何給定的流水線階段執行。這是在沒有對基本處理器架構進行重大更改的情況下完成的:所需的主要附加功能是能夠在一個周期內從多個線程獲取指令,以及一個更大的寄存器文件來保存來自多個線程的數據。并發線程的數量由芯片設計者決定。每個CPU內核有兩個并發線程很常見,但有些處理器每個內核最多支持8個并發線程。

    因為它不可避免地增加了共享資源的沖突,所以衡量或就其有效性達成一致可能很困難。然而,在歷史130nm到32nm英特爾SMT(超線程)實施中測量了具有并行本機和托管工作負載的SMT的能效發現,在45nm和32nm實施中,SMT的能效非常高,即使使用有序Atom處理器也是如此。在現代系統中,SMT有效地利用了并發性,而幾乎沒有額外的動態能力。也就是說,即使在性能增益很小的情況下,功耗節省也可能相當可觀。

    一些研究人員[誰?]已經表明,可以主動使用額外的線程來為共享資源(如緩存)播種,以提高另一個單線程的性能,并聲稱這表明SMT不僅提高了效率。其他[誰?]使用SMT提供冗余計算,用于某種級別的錯誤檢測和恢復。

    然而,在當前大多數情況下,SMT是關于隱藏內存延遲、提高效率和增加每使用硬件數量的計算吞吐量

    分類學

    編輯

    處理器設計中,有兩種方法可以以更少的資源需求增加片上并行性:一種是嘗試利用指令級并行(ILP)的超標量技術;另一種是利用線程級并行(TLP)的多線程方法。

    超標量意味著同時執行多條指令,而線程級并行(TLP)則同時執行來自一個處理器芯片內的多個線程的指令。有很多方法可以在一個芯片內支持多個線程,即:

    • 交錯多線程:來自不同線程的多條指令的交錯發布,也稱為時間多線程。根據交錯問題的頻率,它可以進一步分為細粒度多線程或粗粒度多線程。細粒度的多線程——例如在桶形處理器中——在每個周期后為不同的線程發出指令,而粗粒度的多線程只有在當前執行的線程導致一些長延遲事件(如頁面錯誤等)時才切換到從另一個線程發出指令。)。粗粒度多線程更常見于線程之間較少的上下文切換。例如,英特爾的Montecito處理器使用粗粒度多線程,而Sun的UltraSPARCT1使用細粒度多線程。對于那些每個內核只有一條流水線的處理器,交錯多線程是xxx可能的方法,因為它每個周期最多可以發出一條指令。
    • 同時多線程(SMT):在一個周期內從多個線程發出多條指令。處理器必須是超標量才能這樣做。
    • 芯片級多處理(CMP或多核):將兩個或多個處理器集成到一個芯片中,每個處理器獨立執行線程。
    • 多線程/SMT/CMP的任意組合。

    區分它們的關鍵因素是看處理器在一個周期內可以發出多少條指令,以及這些指令來自多少個線程。例如,SunMicrosystems的UltraSPARCT1是一種多核處理器,它結合了細粒度多線程技術,而不是同時多線程,因為每個內核一次只能發出一條指令。

    同時多線程

    歷史實現

    編輯

    雖然多線程CPU自1950年代以來就已經存在,但同時多線程是IBM在1968年作為ACS-360項目的一部分首次研究的。xxx個使用SMT開發的主要商用微處理器是Alpha21464(EV8)。該微處理器由DEC與加州大學圣地亞哥分校的DeanTullsen以及華盛頓大學的SusanEggers和HenryLevy合作開發。該微處理器從未發布,因為Alpha微處理器系列在惠普收購康柏之前不久就停產了,而康柏又收購了DEC。DeanTullsen的工作也被用于開發IntelPentium4微處理器的超線程版本,例如“Northwood”和“Prescott”。

    同時多線程的缺點

    編輯

    根據處理器的設計和架構,如果任何共享資源成為性能瓶頸,同時多線程可能會降低性能。批評者認為,讓軟件開發人員承擔相當大的負擔,他們必須測試同時多線程在各種情況下對他們的應用程序是好還是壞,并插入額外的邏輯以在降低性能時將其關閉。當前的操作系統缺乏方便的API調用來實現此目的,并防止具有不同優先級的進程相互獲取資源。

    某些同時多線程實現也存在安全問題。英特爾在基于NetBurst的處理器中的超線程存在一個漏洞,通過該漏洞,一個應用程序可以通過監控其緩存使用情況從運行在同一處理器中的另一個應用程序竊取加密密鑰。在BlackHat2018上還解釋了HT實施的復雜機器學習漏洞。

    內容由匿名用戶提供,本內容不代表www.gelinmeiz.com立場,內容投訴舉報請聯系www.gelinmeiz.com客服。如若轉載,請注明出處:http://www.gelinmeiz.com/132068/

    (2)
    詞條目錄
    1. 同時多線程
    2. 詳情
    3. 分類學
    4. 歷史實現
    5. 同時多線程的缺點

    輕觸這里

    關閉目錄

    目錄
    91麻精品国产91久久久久