多線程使多個(gè)線程以重疊的方式共享單個(gè)處理器的功能單_第1頁
多線程使多個(gè)線程以重疊的方式共享單個(gè)處理器的功能單_第2頁
多線程使多個(gè)線程以重疊的方式共享單個(gè)處理器的功能單_第3頁
多線程使多個(gè)線程以重疊的方式共享單個(gè)處理器的功能單_第4頁
多線程使多個(gè)線程以重疊的方式共享單個(gè)處理器的功能單_第5頁
已閱讀5頁,還剩12頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、 多線程使多個(gè)線程以重疊的方式共享單個(gè)處理器的功能單元。 7.6 同時(shí)多線程q 為實(shí)現(xiàn)共享,處理器必須保存各個(gè)線程的獨(dú)立狀態(tài)。q 硬件必須能夠較快地完成線程間的切換。線程的切 換應(yīng)該比進(jìn)程的切換要高效的多,進(jìn)程的切換一般 需要成百上千個(gè)處理器時(shí)鐘周期。第章 多處理機(jī) 第一種方法:細(xì)粒度多線程技術(shù) 它在每條指令間都能進(jìn)行線程的切換,從而導(dǎo) 致多個(gè)線程的交替執(zhí)行。 主要優(yōu)點(diǎn):能夠隱藏由任何或長(zhǎng)或短的阻塞帶來的 吞吐率的損失 主要缺點(diǎn):減慢了每個(gè)獨(dú)立線程的執(zhí)行q 目前有兩種主要的多線程實(shí)現(xiàn)方法7.6 同時(shí)多線程 第二種方法:粗粒度多線程技術(shù) 粗粒度多線程之間的切換只在發(fā)生代價(jià)較高、 時(shí)間較長(zhǎng)的阻塞出

2、現(xiàn)時(shí)。 缺點(diǎn):不能有效地減少吞吐率的損失。 原因:由粗粒度多線程的流水線建立時(shí)間的開銷造 成的。由于實(shí)現(xiàn)粗粒度多線程的CPU只執(zhí)行單個(gè)線 程的指令,因此當(dāng)發(fā)生阻塞時(shí),流水線必須排空或 暫停。阻塞后切換的新的線程在指令執(zhí)行產(chǎn)生結(jié)果 之前必須先填滿整個(gè)流水線。7.6 同時(shí)多線程將線程級(jí)并行轉(zhuǎn)換為指令級(jí)并行 同時(shí)多線程技術(shù)是一種在多流出、動(dòng)態(tài)調(diào)度處理器上開發(fā)線程級(jí)并行和指令級(jí)并行的改進(jìn)的多線程技術(shù)。1. 產(chǎn)生的主要原因q 現(xiàn)代多流出處理器通常含有多個(gè)并行的功能單元,現(xiàn)代多流出處理器通常含有多個(gè)并行的功能單元, 而單個(gè)線程不能有效地利用這些功能單元。而單個(gè)線程不能有效地利用這些功能單元。q 通過寄存器

3、重命名和動(dòng)態(tài)調(diào)度機(jī)制,來自各個(gè)獨(dú)立通過寄存器重命名和動(dòng)態(tài)調(diào)度機(jī)制,來自各個(gè)獨(dú)立 線程的多條指令可以同時(shí)流出,而不考慮他們之間線程的多條指令可以同時(shí)流出,而不考慮他們之間 的相互依賴關(guān)系;其相互依賴關(guān)系將通過動(dòng)態(tài)調(diào)度的相互依賴關(guān)系;其相互依賴關(guān)系將通過動(dòng)態(tài)調(diào)度 機(jī)制得以解決。機(jī)制得以解決。7.6 同時(shí)多線程2. 一個(gè)超標(biāo)量處理器在以下幾種配置時(shí)其性能的差別 支持多線程技術(shù)的超標(biāo)量處理器 由于缺乏足夠的指令級(jí)并行而限制了流出槽由于缺乏足夠的指令級(jí)并行而限制了流出槽 的利用率。的利用率。 支持粗粒度多線程的超標(biāo)量處理器 通過線程的切換部分隱藏了長(zhǎng)時(shí)間阻塞帶來通過線程的切換部分隱藏了長(zhǎng)時(shí)間阻塞帶來 的

4、開銷。由于只有當(dāng)發(fā)生阻塞時(shí)才進(jìn)行線程切換,的開銷。由于只有當(dāng)發(fā)生阻塞時(shí)才進(jìn)行線程切換, 新線程還需要流水線建立時(shí)間,所以會(huì)產(chǎn)生一些新線程還需要流水線建立時(shí)間,所以會(huì)產(chǎn)生一些 完全空閑的時(shí)鐘周期。完全空閑的時(shí)鐘周期。7.6 同時(shí)多線程 支持細(xì)粒度多線程的超標(biāo)量處理器 線程的交替執(zhí)行消除了完全空閑的流出槽。由于線程的交替執(zhí)行消除了完全空閑的流出槽。由于在每個(gè)時(shí)鐘周期內(nèi)只流出一個(gè)線程的指令,指令級(jí)并在每個(gè)時(shí)鐘周期內(nèi)只流出一個(gè)線程的指令,指令級(jí)并行的限制仍然導(dǎo)致一個(gè)時(shí)鐘周期內(nèi)存在不少的空閑流行的限制仍然導(dǎo)致一個(gè)時(shí)鐘周期內(nèi)存在不少的空閑流出槽。出槽。 支持同時(shí)多線程的超標(biāo)量處理器 通過在一個(gè)時(shí)鐘周期內(nèi)調(diào)

5、度多個(gè)線程使用流出槽,通過在一個(gè)時(shí)鐘周期內(nèi)調(diào)度多個(gè)線程使用流出槽,從而同時(shí)實(shí)現(xiàn)線程級(jí)并行和指令級(jí)并行。從而同時(shí)實(shí)現(xiàn)線程級(jí)并行和指令級(jí)并行。 理想情況下,流出槽的使用率只受限于多個(gè)線程理想情況下,流出槽的使用率只受限于多個(gè)線程對(duì)資源的需求和可用資源間的不平衡。對(duì)資源的需求和可用資源間的不平衡。7.6 同時(shí)多線程圖圖7.16: 7.16: 超標(biāo)量處理器中的超標(biāo)量處理器中的4 4種不同的流出槽使用方法種不同的流出槽使用方法q 開發(fā)的基礎(chǔ)開發(fā)的基礎(chǔ): : 使用動(dòng)態(tài)調(diào)度技術(shù)的處理器已經(jīng)具有使用動(dòng)態(tài)調(diào)度技術(shù)的處理器已經(jīng)具有 了開發(fā)線程級(jí)并行所需的硬件設(shè)置。了開發(fā)線程級(jí)并行所需的硬件設(shè)置。 動(dòng)態(tài)調(diào)度超標(biāo)量處

6、理器有大量的虛擬寄存器組,可動(dòng)態(tài)調(diào)度超標(biāo)量處理器有大量的虛擬寄存器組,可 以用來保存每個(gè)獨(dú)立線程的寄存器狀態(tài)。以用來保存每個(gè)獨(dú)立線程的寄存器狀態(tài)。 由于寄存器重命名機(jī)制提供了唯一的寄存器標(biāo)識(shí)符,由于寄存器重命名機(jī)制提供了唯一的寄存器標(biāo)識(shí)符, 多個(gè)線程的指令可以在數(shù)據(jù)路徑上混合執(zhí)行,而不多個(gè)線程的指令可以在數(shù)據(jù)路徑上混合執(zhí)行,而不 會(huì)導(dǎo)致各線程間源操作數(shù)和目的操作數(shù)的混亂。會(huì)導(dǎo)致各線程間源操作數(shù)和目的操作數(shù)的混亂。 多線程技術(shù)可以通過在一個(gè)亂序執(zhí)行的處理器上為多線程技術(shù)可以通過在一個(gè)亂序執(zhí)行的處理器上為 每個(gè)線程設(shè)置重命名表、保留各自的每個(gè)線程設(shè)置重命名表、保留各自的PCPC值、提供多值、提供多

7、 個(gè)線程的指令結(jié)果提交的能力來實(shí)現(xiàn)。個(gè)線程的指令結(jié)果提交的能力來實(shí)現(xiàn)。7.6 同時(shí)多線程同時(shí)多線程處理器的設(shè)計(jì)q 同時(shí)多線程只有在細(xì)粒度的實(shí)現(xiàn)方式下才有意義q 并發(fā)多個(gè)同優(yōu)先級(jí)的線程必然拉長(zhǎng)單個(gè)線程的執(zhí) 行時(shí)間 通過指定一個(gè)優(yōu)先線程來減小這種影響,從通過指定一個(gè)優(yōu)先線程來減小這種影響,從 而在整體性能提高的同時(shí)對(duì)單個(gè)指定的線程性能而在整體性能提高的同時(shí)對(duì)單個(gè)指定的線程性能 只產(chǎn)生較小的影響。只產(chǎn)生較小的影響。7.6 同時(shí)多線程q 多個(gè)線程的混合執(zhí)行將不可避免地影響單個(gè)線程 的執(zhí)行時(shí)間 為提高單個(gè)線程的性能,應(yīng)該為指定的優(yōu)先為提高單個(gè)線程的性能,應(yīng)該為指定的優(yōu)先線程盡可能多地向前取指,并且在分支

8、預(yù)測(cè)失效線程盡可能多地向前取指,并且在分支預(yù)測(cè)失效和預(yù)取緩沖失效的情況下清空取指單元。但是這和預(yù)取緩沖失效的情況下清空取指單元。但是這樣限制了其他線程可用來調(diào)度的指令條數(shù),從而樣限制了其他線程可用來調(diào)度的指令條數(shù),從而減少了吞吐率。所有的多線程處理器都必須在這減少了吞吐率。所有的多線程處理器都必須在這里尋求一種折衷方案。里尋求一種折衷方案。7.6 同時(shí)多線程q 只要一有可能,處理器就運(yùn)行指定的優(yōu)先線程。q 從取指階段開始就優(yōu)先處理優(yōu)先線程 只要優(yōu)先線程的指令預(yù)取緩沖區(qū)未滿,就為它只要優(yōu)先線程的指令預(yù)取緩沖區(qū)未滿,就為它 優(yōu)先取指。只有當(dāng)優(yōu)先線程的緩沖區(qū)填滿以后才為優(yōu)先取指。只有當(dāng)優(yōu)先線程的緩沖

9、區(qū)填滿以后才為 其他線程預(yù)取指令。其他線程預(yù)取指令。q 當(dāng)有兩個(gè)優(yōu)先線程時(shí),需要并發(fā)預(yù)取兩個(gè)指令流, 這給取指部件和指令cache的設(shè)置都增添了復(fù)雜度。 7.6 同時(shí)多線程q 設(shè)計(jì)同時(shí)多線程處理器時(shí)面臨的其他主要問題q 指令流出單元也要優(yōu)先考慮指定的優(yōu)先線程,只有 當(dāng)優(yōu)先線程阻塞不能流出的時(shí)候才考慮其他線程。 設(shè)置用來保存多個(gè)上下文所需的龐大的寄存器文件設(shè)置用來保存多個(gè)上下文所需的龐大的寄存器文件 必須保持每個(gè)時(shí)鐘周期的低開銷必須保持每個(gè)時(shí)鐘周期的低開銷 特別是在關(guān)鍵步驟上特別是在關(guān)鍵步驟上 需要保證由于并發(fā)執(zhí)行多個(gè)線程帶來的需要保證由于并發(fā)執(zhí)行多個(gè)線程帶來的cachecache沖突沖突 不會(huì)

10、導(dǎo)致顯著的性能下降。不會(huì)導(dǎo)致顯著的性能下降。7.6 同時(shí)多線程q 通過研究這些問題還可以了解到 在大多情況下多線程所導(dǎo)致的額外性能開銷是很小在大多情況下多線程所導(dǎo)致的額外性能開銷是很小 的,簡(jiǎn)單的線程切換選擇算法就足夠;的,簡(jiǎn)單的線程切換選擇算法就足夠; 目前的超標(biāo)量處理器的效率是比較低的,還有很大的目前的超標(biāo)量處理器的效率是比較低的,還有很大的 改進(jìn)余地,同時(shí)多線程是獲得吞吐率改進(jìn)的最有前途改進(jìn)余地,同時(shí)多線程是獲得吞吐率改進(jìn)的最有前途 的方法之一。的方法之一。7.6 同時(shí)多線程同時(shí)多線程的性能q 圖7.17表示在超標(biāo)量處理器上增添8個(gè)線程的同 時(shí)多線程能力時(shí)獲得的性能提高q 圖7.18表示SMT與基本的超標(biāo)量處理器在主要內(nèi) 部指標(biāo)利用率和命中率上的對(duì)比 7.6 同時(shí)多線程q 兩個(gè)特點(diǎn) 超標(biāo)量處理器本身功能十分強(qiáng)大,它具有很超標(biāo)量處理器本身功能十分強(qiáng)大,它具有很 大的一級(jí)大的一級(jí)cachecache、二級(jí)、二級(jí)cachecache以及大量的功能以及大量的功能 單元。僅僅采用指令級(jí)并行,不可能利用全單元。僅僅采用指令級(jí)并行,不可能利用全 部的硬件性能。部的硬件性能。 同時(shí)多線程的

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論