欢迎来到天天文库
浏览记录
ID:43972875
大小:7.03 MB
页数:290页
时间:2019-10-17
《多处理器系统精品课件》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、第七章多處理器系統本章概要單一指令單一筆資料的電腦架構單一指令多筆資料的電腦架構向量處理多個指令單一筆資料的電腦架構資料流電腦多個指令多筆資料的電腦架構疏耦合與緊耦合系統電腦的架構電腦的四種設計指令產流資料產流電腦的四種設計架構電腦的內部設計架構,依M.J.Flynn所提出的論述,可從指令產流(InstructionStream)與資料產流(DataStream)的兩個角度,將電腦分成四類:SISD、SIMD、MISD及MIMD;本章將逐次介紹這四種類型的電腦,其定義、運作及特色等等,首先需要說明的是
2、,指令產流與指令產流的涵意。指令產流電腦的執行,主要在於CPU從記憶體讀取指令及資料,然後指令解碼,經過指令運算執行後,最後算出結果;這是一個指令的完成過程,但是同時若有一大群指令或資料要執行,那CPU的設計觀念就完全不同了。指令產流的狀況,一台電腦若一次只處理一個指令,就只要在解碼時得知這個指令的運算碼,由控制單元選擇運算電路,將資料加以運算,就完成了單一指令的執行;但是同時要執行多個指令,那就必須有多個運算電路,由一個控制單元同時操作多個運算電路,分別使不同的計算指令,同時解碼,然後一起執行,同時
3、得出結果。這種同時能處理多個指令執行的架構,即為指令產流處理系統,其設計的著眼在於控制單元,也就是控制單元有同時接受多個指令的執行,操作運算電路的能力,所以也稱控制流(ControlFlow)。資料產流另一種程式的執行方式,是從資料的處理來考量的,此即為資料產流。這種設計是著重在,如何能同時處理指令中的多筆資料;如果一次只能處理一筆指令資料,就只是單一資料產流;而實際上資料產流電腦的設計,是考慮大量的資料處理。以資料的流動為主,固定而大量的運算電路為被動元件,這些電路是被放在指令執行的階段。當每個指令
4、在解碼後,其資料(運算元)會主動的,尋找所需的運算電路執行之;其控制單元是協助多筆指令的資料,在解碼後,找到適當的運算電路執行,一種以資料為主的電腦設計觀念。單一指令單一筆資料(SISD)的電腦架構單一指令單一筆資料(SISD)的電腦架構如果電腦的設計,以一次處理一個指令與一筆資料為主,即稱為SISD(SingleInstructionSingleData)的電腦架構。單一指令多筆資料(SIMD)的電腦架構陣列處理資料相依性向量處理多輸出入的運算電路浪潮陣列處理器心臟收縮陣列處理器單一指令多筆資料(S
5、IMD)的電腦架構一台電腦的內部,一次可執行一個指令而同時處理多筆資料,即為SIMD(SingleInstructionMultipleData)的電腦架構,這種電腦會有多個運算電路,同時可接受多筆資料的輸入處理,但只有一個控制單元,提供單一指令的執行。在SIMD的架構裡,一次只能執行一個指令,這對一般程式的執行,其實並沒有多大的裨益;因為少有連續多個加法或其他運算,可以一次利用SIMD架構執行,大部份的程式,是各種指令混合的,對SIMD的架構而言,運算電路較用不上,形成浪費。陣列處理但是SIMD架構
6、對大量的陣列(Array)資料,卻有很強的處理功能,譬如迴圈程式,將A陣列與B陣列相加,結果存入C陣列;這個程式如果在一個SIMD電腦內有100個運算電路,則一次就將這100個加法運算執行完成,如果只有25個運算電路,也就四次執行完成;所以SIMD可說是針對陣列處理,而設計的一種電腦架構。若以陣列處理的用途考量,則SIMD的電腦在執行上就有許多優點,所以SIMD架構也可稱為陣列處理器;它可針對數學、理工、國防等需要大量陣列處理的科技,提供大量的計算協助。像在電腦的多媒體(MultiMedia)上,就很
7、有幫助,譬如螢幕畫面上的圖素(Pixel),就是由紅、藍、綠三種顏色組成,分別為Red(X)、Blue(X)、Green(X)陣列;若依整個畫面的大小處理,都是點陣列型式的資料群,所以SIMD對畫面處理就很有幫助。陣列相加的迴圈程式陣列相加的迴圈程式,如果陣列資料共有20筆要相加,而SIMD有20個、10個及5個運算電路時,其運算過程。資料計算的獨立性但是也不是所有陣列,都能使用SIMD架構整批處理的,這涉及資料計算的獨立性(DataIndependency),相反的如果程式的指令資料有相依性(Dat
8、aDependency),就無法透過SIMD架構同時處理,而必須單一筆資料,逐一次執行,這對SIMD電腦就完全無法產生功能特性。計算總和(SUM)的程式另有一種計算總和(SUM)的程式,很能表達SIMD在處理陣列運算的過程。計算A、B兩陣列總和的程式,處理這種程式有二種:一是分組式,因為資料有50組,而運算電路只有10個,所以分成10組執行,最後再將結果相加而成。另一種是連續式,每一次運算電路都保持有資料在計算,這種做法比較有效益,但計算過程比較繁雜。向
此文档下载收益归作者所有