freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內(nèi)容

第7章多處理機ppt課件(參考版)

2025-02-24 11:53本頁面
  

【正文】 多處理機實例 。 每塊對應(yīng)一個目錄項,每個目錄項包含其對應(yīng)存儲器塊的狀態(tài)信息和系統(tǒng)中各 Cache共享存儲情況的位向量,根據(jù)位向量可以知道本存儲器塊在哪些Cache中有拷貝。在 Origin的結(jié)點中,有一個存儲器和一個目錄存儲器。Origin系統(tǒng)的 Cache采用寫作廢協(xié)議。 當(dāng)一個處理器初次讀取某一存儲單元數(shù)據(jù)時,該數(shù)據(jù)在提供給 CPU的同時也拷貝到本結(jié)點的 Cache中。 L2 Cache安裝在結(jié)點卡中 , 統(tǒng)一存放指令和數(shù)據(jù) , 由 SRAM組成 。 多處理機實例 訪問存儲器的延遲時間: 系統(tǒng) CPU數(shù) 最小延遲時間 最大延遲時間 平均延遲時間 2 318ns 343ns 343ns 4 318ns 554ns 441ns 8 318ns 759ns 623ns 16 318ns 759ns 691ns 32 318ns 836ns 764ns 64 318ns 1067ns 851ns 128 318ns 1169ns 959ns 多處理機實例 系統(tǒng)頻帶寬度: 處理器數(shù) 頻寬(無快速連線) * 頻寬(有快速連線) * 8 16 32 64 128 25Gb/s *相當(dāng)于虛線情況 多處理機實例 Origin系統(tǒng)的存儲器層次結(jié)構(gòu)可分為寄存器 、 L1 Cache、 L2 Cache和主存儲器 , 其中寄存器和 L1 Cache在 R10000微處理器中 。 在結(jié)點之間實現(xiàn)的是大規(guī)模并行處理結(jié)構(gòu) ,但又解決了共享存儲器問題 。 多處理機實例 4處理器系統(tǒng) 16處理器系統(tǒng) 128處理器系統(tǒng) 128處理器構(gòu)成的 Origin 2022系統(tǒng)由 4個立方體組成 , 在立方體之間傳送數(shù)據(jù)多經(jīng)過了一級路由器 。 Origin的路由器和互連網(wǎng)絡(luò)是 ASIC芯片 , 通過芯 片內(nèi)部的交叉開關(guān)選擇數(shù)據(jù)傳送路徑 。 多處理機實例 第7章 多處理機 ? Origin基于 NUMA體系結(jié)構(gòu) 的 每個結(jié)點可安裝 1個或 2個 MIPS R10000微 處理器、第二級高速緩存( L2 Cache)、主存 儲器、目錄存儲器及 Hub等, Hub用于連接微處 理器、存儲器、 I/ O和路由器等。 同時多線程 ? Origin 2022分布共享存儲器結(jié)構(gòu)的大規(guī)模并行 多處理機系統(tǒng) , 采用 超結(jié)點 的模塊結(jié)構(gòu) , 可以從 1個處理器擴展到 128個處理器 。 ? 同時多線程的能力也很強大,可以支持 8個 線程,并為兩個線程同步取指。 同時多線程 同時多線程的性能 ? 圖 8個線程的同 時多線程能力時獲得的性能提高 ? 圖 SMT與基本的超標(biāo)量處理器在主要內(nèi) 部指標(biāo)利用率和命中率上的對比 同時多線程 ? 兩個特點 ? 超標(biāo)量處理器本身功能十分強大,它具有很 大的一級 cache、二級 cache以及大量的功能 單元。 ? 設(shè)置用來保存多個上下文所需的龐大的寄存器文件 ? 必須保持每個時鐘周期的低開銷 特別是在關(guān)鍵步驟上 ? 需要保證由于并發(fā)執(zhí)行多個線程帶來的 cache沖突 不會導(dǎo)致顯著的性能下降。 ? 當(dāng)有兩個優(yōu)先線程時 , 需要并發(fā)預(yù)取兩個指令流 , 這給取指部件和指令 cache的設(shè)置都增添了復(fù)雜度 。 ? 從取指階段開始就優(yōu)先處理優(yōu)先線程 只要優(yōu)先線程的指令預(yù)取緩沖區(qū)未滿 , 就為它 優(yōu)先取指 。所有的多線程處理器都必須在這里尋求一種折衷方案。 同時多線程 ? 多個線程的混合執(zhí)行將不可避免地影響單個線程 的執(zhí)行時間 為提高單個線程的性能,應(yīng)該為指定的優(yōu)先線程盡可能多地向前取指,并且在分支預(yù)測失效和預(yù)取緩沖失效的情況下清空取指單元。 ? 多線程技術(shù)可以通過在一個亂序執(zhí)行的處理器上為 每個線程設(shè)置重命名表、保留各自的 PC值、提供多 個線程的指令結(jié)果提交的能力來實現(xiàn)。 ? 動態(tài)調(diào)度超標(biāo)量處理器有大量的虛擬寄存器組,可 以用來保存每個獨立線程的寄存器狀態(tài)。 理想情況下 , 流出槽的使用率只受限于多個線程對資源的需求和可用資源間的不平衡 。由于在每個時鐘周期內(nèi)只流出一個線程的指令,指令級并行的限制仍然導(dǎo)致一個時鐘周期內(nèi)存在不少的空閑流出槽。由于只有當(dāng)發(fā)生阻塞時才進行線程切換, 新線程還需要流水線建立時間,所以會產(chǎn)生一些 完全空閑的時鐘周期。 同時多線程 2. 一個超標(biāo)量處理器在以下幾種配置時其性能的差別 ? 支持多線程技術(shù)的超標(biāo)量處理器 由于缺乏足夠的指令級并行而限制了流出槽 的利用率 。 1. 產(chǎn)生的主要原因 ? 現(xiàn)代多流出處理器通常含有多個并行的功能單元, 而單個線程不能有效地利用這些功能單元。阻塞后切換的新的線程在指令執(zhí)行產(chǎn)生結(jié)果 之前必須先填滿整個流水線。 原因: 由粗粒度多線程的流水線建立時間的開銷造 成的。 主要優(yōu)點: 能夠隱藏由任何或長或短的阻塞帶來的 吞吐率的損失 主要缺點: 減慢了每個獨立線程的執(zhí)行 ? 目前有兩種主要的多線程實現(xiàn)方法 同時多線程 ? 第二種方法: 粗粒度多線程技術(shù) 粗粒度多線程之間的切換只在發(fā)生代價較高、 時間較長的阻塞出現(xiàn)時。線程的切 換應(yīng)該比進程的切換要高效的多,進程的切換一般 需要成百上千個處理器時鐘周期。 同時多線程 ? 為實現(xiàn)共享,處理器必須保存各個線程的獨立狀態(tài)。 當(dāng)然 , 實現(xiàn)組合樹柵欄時也可采用fetch_and_increment來降低樹中每個結(jié)點的串行競爭 。 對 10個處理器 , 總共需要 30個總線事務(wù)或 3000個時鐘周期 。 (2) 柵欄實現(xiàn) 同 步 解 下面的程序段給出柵欄的代碼 。條件與前面假設(shè)相同,并設(shè)一次 fetch_and_increment操作也需 100個時鐘周期。使用 fetch_and_increment可以很好地改進柵欄的實現(xiàn)。 ? 最后 , 必須有硬件來回收鎖 , 因為請求加鎖的 進程可能被切換時切出 , 并且有可能在同一處 理器上不再被調(diào)度切入 。 同 步 ? 首先 , 需要識別出對鎖進行初次訪問的進程 , 從而對其進行排隊操作 。注意這里的總線事務(wù)總數(shù)隨處理器數(shù)量成線性增長,而不是前面旋轉(zhuǎn)鎖那樣成二次方增長。每一個后續(xù)的處理器需要 2個總線事務(wù): 1個獲得鎖 ,另 1個釋放鎖。假設(shè)條件與前面例子相同。 ? 當(dāng)該鎖被釋放時,控制器從等待的進程排隊中選出 一個使用鎖,這可以通過更新所選進程 Cache中的 鎖變量來完成。同步控制器可集成在存儲控制器中 (基 于總線的系統(tǒng) )或集成在目錄控制器中。 ? 在基于總線的機器中要將鎖從一個進程顯式 地傳給另一個進程,軟件實現(xiàn)會更好一些。 ? 采用 sense_reversing技術(shù)來給出下面的基于 同 步 struct node { / * * int counterlock; int count ; int parent; } ; struct node tree [ 0..p1] ; / * * int local_sense; int release; barrier(int mynode) { lock(tree[mynode].counterlock);/ *保護計數(shù)器 * count++; / * * unlock(tree[mynode].conterlock);/ * * if(tree[mynode].count==k){ / *本結(jié)點全部到達 * if(tree[mynode].parent)=0{ barrier(tree[mynode] .parent) } else{ release=local_sense } tree[mynode].count= 0; } / *為下次重用初始化 */ else { spin(release=local_sense); } ; } local_sense= ! local_sense; barrier (mynode) 同 步 2. 介紹兩種硬件同步原語: (1) 排隊鎖 可以排隊記錄等待的進程,當(dāng)鎖釋放時送 出一個已確定的等待進程。當(dāng) k個進程都到達樹的某個結(jié)點時,則發(fā) 信號進入樹的上一層。 降低沖突的原因:將大沖突化解成為并行的多 個小沖突 。 ? 前面柵欄機制實現(xiàn)中 , 所有的進程必須讀取 release標(biāo)志 , 形成沖突 。 同 步 先討論采用數(shù)組進行的軟件實現(xiàn) 。 同 步 大規(guī)模機器的同步 所希望的同步機制 :在無競爭的條件下延遲較小 1. ? 旋轉(zhuǎn)鎖 (1) 旋轉(zhuǎn)鎖實現(xiàn)的 主要問題 當(dāng)多個進程檢測并競爭鎖時引起的延遲 (2) 一種解決辦法 : 當(dāng)加鎖失敗時就人為地推延 這些進程的等待時間 。 ? 總線的使用是這個問題關(guān)鍵所在 。 ? 同步操作 最嚴(yán)重的問題 :進程的串行性 當(dāng)出現(xiàn)競爭時 , 就會出現(xiàn)串行性問題 。 基本的旋轉(zhuǎn)鎖操作可在兩個總線周期內(nèi)完成: 一個讀鎖 , 一個寫鎖 。 設(shè)總線完全公平 , 整個過程需多長時間 ? 答: 下表給出一個處理器通過柵欄發(fā)出的事件序列 ,設(shè)第一個獲得總線的進程并未擁有鎖 。 ? 另一種解決辦法 sense_reversing柵欄 , 每個進程均使用一個私 有變量 local_sense, 初始化為 1。這樣所有的進程在這個柵欄的第二次使用中都處于無限等待狀態(tài),因為進程的數(shù)目永達不到 total。 ? 實際情況中會出現(xiàn)的問題 可能反復(fù)使用一個柵欄 , 柵欄釋放的進程運行 一段后又會再次返回柵欄 , 這樣有可能出現(xiàn)某個進 程永遠離不開柵欄的狀況 (它停在旋轉(zhuǎn)操作上 )。 ? 一種典型的實現(xiàn) , 其中 lock和 unlock提供基本的 旋轉(zhuǎn)鎖 , total是要到達柵欄的進程總數(shù) 。 旋轉(zhuǎn)鎖的 主要優(yōu)點 : 對于總線或網(wǎng)絡(luò)開銷較低 同 步 ? 并行循環(huán)的程序中另一個常用的同步操作 : 柵欄 柵欄強制所有到達的進程進行等待 , 直到全部的 進程到達柵欄 , 然后釋放全部的進程 , 從而形成同步 。 因此對 n個處理器,總線事務(wù)的總和為: n ∑ (2i+1)=n(n+1)+n=n2+2n i=1 對于 10個處理器有 120個總線事務(wù),需要 12022個時鐘周期。 設(shè)時間為 0時鎖已釋放并且所有處理器在旋轉(zhuǎn) , 求處理這 10個請求時間為多長 ?假設(shè)總線在新的請求到達之前已服務(wù)完掛起的所有請求 , 并且處理器速度相同 。 例 : 設(shè)總線上有 10個處理器同時準(zhǔn)備對同一變量加鎖 。 同 步 同步性能問題 ? 簡單旋轉(zhuǎn)鎖不能很好地適應(yīng)可伸縮性 。 Ll不產(chǎn)生總線數(shù)據(jù)傳送 , 這使下面代碼與使用經(jīng) 過優(yōu)化交換的代碼具有相同的特點: lockit: ll R2, 0(R1) ; loadlinked bnez R2, lockit li R2,, # 1 sc R2, 0(R1) beqz R2, lockit ;如存失敗轉(zhuǎn)移 第一個分支形成環(huán)繞的循環(huán)體 , 第二個分支解決了兩個同時請求鎖的處理器競爭問題 。
點擊復(fù)制文檔內(nèi)容
教學(xué)課件相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1