導航:首頁 > 信息技術 > 什麼叫指令級並行技術

什麼叫指令級並行技術

發布時間:2022-12-13 05:50:23

A. 計算機系統結構(雙語)

計算機體系結構是計算機科學與技術、軟體工程等專業的核心課程之一,重點論述計算機系統各種基本結構、設計技術和性能分析方法。通過本課程,了解計算機系統的各種基本結構,掌握在計算機設計各個環節中影響性能的因素,以及提高性能的各種理論和方法。

本門課程屬於計算機偏硬技術課程,針對計算機科學與技術、軟體工程等專業高年級學生開設。主要講授內容為:計算機系統結構、計算機指令集結構設計、流水線技術、指令級並行、存儲層次結構、輸入輸出系統、多處理機等。

結合計算機系統性能提升的技術路線及方法分析計算機體系結構的基本理論、基本技術和基本方法,與此同時,採用最新計算機體系結構實例講解課程內容。

課程大綱

第一章 計算機系統結構的基本概念
1. 計算機系統結構的概念(計算機系統的層次結構,計算機系統結構,計算機組成,計算機實現,系列機)
2. 計算機系統結構的發展
3. 影響計算機系統結構的成本和價格因素
4. 定量分析技術基礎(計算機性能評測的基本概念,測試程序,性能設計和評測的基本原則,Amdahl定律,CPU的性能)
5. 計算機系統結構中並行性的發展(並行性概念,提高並行性的技術途徑)

第二章 計算機指令集結構設計
1. 指令集結構的分類
2. 定址技術
3. 指令集結構的功能設計
4. 操作數的類型、表示和大小
5. 指令集格式的設計(定址方式的表示方法,指令集格式的選擇)
6. DLX指令集結構

第三章 流水線技術
1. 流水線的基本概念及分類
2. DLX的基本流水線
3. 流水線性能分析(時空圖、吞吐率、加速比、效率、消除流水線瓶頸段的方法)
4. 流水線中的相關及解決方法(結構相關、數據相關、控制相關、定向技術、指令調度、分支預測、延遲分支等)
5. MIPS R4000流水線計算機簡介
6. 向量處理機(向量處理方式、向量處理機的概念、提高向量處理機性能的主要技術、向量處理機的性能評價)

第四章 指令級並行
1. 指令級並行的概念(循環展開,相關)
2. 指令的動態調度(動態調度的原理、記分牌技術、Tomasulo演算法)
3. 控制相關的動態解決技術(分支預測緩沖、分支目標緩沖、基於硬體的前瞻執行)
4. 多指令流出技術(靜態超標量、動態多指令流出、超長指令字)

第五章 存儲器層次結構
1. 存儲器的層次結構(存儲層次的性能參數、「Cache —主存」層

B. sse2指令集、多線程threads、openmpi、gpu之間的有什麼區別和聯系

SSE是指令級並行的技術SIMD,一條指令可以進行多個運算;多線程是利用CPU的多核並行,每個線程可以執行不同的指令流;mpi是進程間通信介面,可用於單機多進程並行,或多機並行;GPU是同一指令流的多線程SIMT,因為核心數多並行度很高。
區別就是這樣,聯系大概是他們都是用並行的方式來獲得高性能的。

C. 指令集是什麼意思

CPU依靠指令來計算和控制系統,每款CPU在設計時就規定了一系列與其硬體電路相配合的指令系統。指令的強弱也是CPU的重要指標,指令集是提高微處理器效率的最有效工具之一。從現階段的主流體系結構講,指令集可分為復雜指令集和精簡指令集兩部分,而從具體運用看,如Intel的MMX(Multi Media Extended)、SSE、 SSE2(Streaming-Single instruction multiple data-Extensions 2)和AMD的3DNow!等都是CPU的擴展指令集,分別增強了CPU的多媒體、圖形圖象和Internet等的處理能力。我們通常會把CPU的擴展指令集稱為"CPU的指令集"。

1、精簡指令集的運用

在最初發明計算機的數十年裡,隨著計算機功能日趨增大,性能日趨變強,內部元器件也越來越多,指令集日趨復雜,過於冗雜的指令嚴重的影響了計算機的工作效率。後來經過研究發現,在計算機中,80%程序只用到了20%的指令集,基於這一發現,RISC精簡指令集被提了出來,這是計算機系統架構的一次深刻革命。RISC體系結構的基本思路是:抓住CISC指令系統指令種類太多、指令格式不規范、定址方式太多的缺點,通過減少指令種類、規范指令格式和簡化定址方式,方便處理器內部的並行處理,提高VLSI器件的使用效率,從而大幅度地提高處理器的性能。

RISC指令集有許多特徵,其中最重要的有:

指令種類少,指令格式規范:RISC指令集通常只使用一種或少數幾種格式。指令長度單一(一般4個位元組),並且在字邊界上對齊,欄位位置、特別是操作碼的位置是固定的。
定址方式簡化:幾乎所有指令都使用寄存器定址方式,定址方式總數一般不超過5個。其他更為復雜的定址方式,如間接定址等則由軟體利用簡單的定址方式來合成。
大量利用寄存器間操作:RISC指令集中大多數操作都是寄存器到寄存器操作,只以簡單的Load和Store操作訪問內存。因此,每條指令中訪問的內存地址不會超過1個,訪問內存的操作不會與算術操作混在一起。
簡化處理器結構:使用RISC指令集,可以大大簡化處理器的控制器和其他功能單元的設計,不必使用大量專用寄存器,特別是允許以硬體線路來實現指令操作,而不必像CISC處理器那樣使用微程序來實現指令操作。因此RISC處理器不必像CISC處理器那樣設置微程序控制存儲器,就能夠快速地直接執行指令。
便於使用VLSI技術:隨著LSI和VLSI技術的發展,整個處理器(甚至多個處理器)都可以放在一個晶元上。RISC體系結構可以給設計單晶元處理器帶來很多好處,有利於提高性能,簡化VLSI晶元的設計和實現。基於VLSI技術,製造RISC處理器要比CISC處理器工作量小得多,成本也低得多。
加強了處理器並行能力:RISC指令集能夠非常有效地適合於採用流水線、超流水線和超標量技術,從而實現指令級並行操作,提高處理器的性能。目前常用的處理器內部並行操作技術基本上是基於RISC體系結構發展和走向成熟的。
正由於RISC體系所具有的優勢,它在高端系統得到了廣泛的應用,而CISC體系則在桌面系統中占據統治地位。而在如今,在桌面領域,RISC也不斷滲透,預計未來,RISC將要一統江湖。

2、CPU的擴展指令集

對於CPU來說,在基本功能方面,它們的差別並不太大,基本的指令集也都差不多,但是許多廠家為了提升某一方面性能,又開發了擴展指令集,擴展指令集定義了新的數據和指令,能夠大大提高某方面數據處理能力,但必需要有軟體支持。

MMX 指令集
MMX(Multi Media eXtension,多媒體擴展指令集)指令集是Intel公司於1996年推出的一項多媒體指令增強技術。MMX指令集中包括有57條多媒體指令,通過這些指令可以一次處理多個數據,在處理結果超過實際處理能力的時候也能進行正常處理,這樣在軟體的配合下,就可以得到更高的性能。MMX的益處在於,當時存在的操作系統不必為此而做出任何修改便可以輕松地執行MMX程序。但是,問題也比較明顯,那就是MMX指令集與x87浮點運算指令不能夠同時執行,必須做密集式的交錯切換才可以正常執行,這種情況就勢必造成整個系統運行質量的下降。

SSE指令集
SSE(Streaming SIMD Extensions,單指令多數據流擴展)指令集是Intel在Pentium III處理器中率先推出的。其實,早在PIII正式推出之前,Intel公司就曾經通過各種渠道公布過所謂的KNI(Katmai New Instruction)指令集,這個指令集也就是SSE指令集的前身,並一度被很多傳媒稱之為MMX指令集的下一個版本,即MMX2指令集。究其背景,原來"KNI"指令集是Intel公司最早為其下一代晶元命名的指令集名稱,而所謂的"MMX2"則完全是硬體評論家們和媒體憑感覺和印象對"KNI"的 評價,Intel公司從未正式發布過關於MMX2的消息。

而最終推出的SSE指令集也就是所謂勝出的"互聯網SSE"指令集。SSE指令集包括了70條指令,其中包含提高3D圖形運算效率的50條SIMD(單指令多數據技術)浮點運算指令、12條MMX 整數運算增強指令、8條優化內存中連續數據塊傳輸指令。理論上這些指令對目前流行的圖像處理、浮點運算、3D運算、視頻處理、音頻處理等諸多多媒體應用起到全面強化的作用。SSE指令與3DNow!指令彼此互不兼容,但SSE包含了3DNow!技術的絕大部分功能,只是實現的方法不同。SSE兼容MMX指令,它可以通過SIMD和單時鍾周期並行處理多個浮點數據來有效地提高浮點運算速度。

SSE2指令集
SSE2(Streaming SIMD Extensions 2,Intel官方稱為SIMD 流技術擴展 2或數據流單指令多數據擴展指令集 2)指令集是Intel公司在SSE指令集的基礎上發展起來的。相比於SSE,SSE2使用了144個新增指令,擴展了MMX技術和SSE技術,這些指令提高了廣大應用程序的運行性能。隨MMX技術引進的SIMD整數指令從64位擴展到了128 位,使SIMD整數類型操作的有效執行率成倍提高。雙倍精度浮點SIMD指令允許以 SIMD格式同時執行兩個浮點操作,提供雙倍精度操作支持有助於加速內容創建、財務、工程和科學應用。除SSE2指令之外,最初的SSE指令也得到增強,通過支持多種數據類型(例如,雙字和四字)的算術運算,支持靈活並且動態范圍更廣的計算功能。SSE2指令可讓軟體開發員極其靈活的實施演算法,並在運行諸如MPEG-2、MP3、3D圖形等之類的軟體時增強性能。Intel是從Willamette核心的Pentium 4開始支持SSE2指令集的,而AMD則是從K8架構的SledgeHammer核心的Opteron開始才支持SSE2指令集的。

SSE3指令集
SSE3(Streaming SIMD Extensions 3,Intel官方稱為SIMD 流技術擴展 3或數據流單指令多數據擴展指令集 3)指令集是Intel公司在SSE2指令集的基礎上發展起來的。相比於SSE2,SSE3在SSE2的基礎上又增加了13個額外的SIMD指令。SSE3 中13個新指令的主要目的是改進線程同步和特定應用程序領域,例如媒體和游戲。這些新增指令強化了處理器在浮點轉換至整數、復雜演算法、視頻編碼、SIMD浮點寄存器操作以及線程同步等五個方面的表現,最終達到提升多媒體和游戲性能的目的。Intel是從Prescott核心的Pentium 4開始支持SSE3指令集的,而AMD則是從2005年下半年Troy核心的Opteron開始才支持SSE3的。但是需要注意的是,AMD所支持的SSE3與Intel的SSE3並不完全相同,主要是刪除了針對Intel超線程技術優化的部分指令。

3D Now!(3D no waiting)指令集
3DNow!是AMD公司開發的SIMD指令集,可以增強浮點和多媒體運算的速度,並被AMD廣泛應用於其K6-2 、K6-3以及Athlon(K7)處理器上。3DNow!指令集技術其實就是21條機器碼的擴展指令集。

與Intel公司的MMX技術側重於整數運算有所不同,3DNow!指令集主要針對三維建模、坐標變換 和效果渲染等三維應用場合,在軟體的配合下,可以大幅度提高3D處理性能。後來在Athlon上開發了Enhanced 3DNow!。這些AMD標準的SIMD指令和Intel的SSE具有相同效能。因為受到Intel在商業上以及Pentium III成功的影響,軟體在支持SSE上比起3DNow!更為普遍。Enhanced 3DNow!AMD公司繼續增加至52個指令,包含了一些SSE碼,因而在針對SSE做最佳化的軟體中能獲得更好的效能。

D. 指令並行流水線是什麼(出自微機原理與介面技術)

你指的是「指令流水線」吧, 指令的執行過程分為取指令,解碼,執行3個階段, 指令的這3個階段是並行的, 就是說當前的指令在執行的時候,前一條指令正在解碼, 再前一條正在取指令,在復雜一點的cpu上,執行階段還要再細分,比如ARM9,五級流水線,就是這個概念,
取指令1個周期,解碼1個周期,執行3個周期,每個周期都是並行的,一條1個周期的加法,實際的執行時間是5個周期。

E. 什麼是指令重排

什麼是指令重排序?
有兩個層面:
**在虛擬機層面,**為了盡可能減少內存操作速度遠慢於CPU運行速度所帶來的CPU空置的影響,虛擬機會按照自己的一些規則(這規則後面再敘述)將程序編寫順序打亂——即寫在後面的代碼在時間順序上可能會先執行,而寫在前面的代碼會後執行——以盡可能充分地利用CPU。拿上面的例子來說:假如不是a=1的操作,而是a=new byte1024*1024,那麼它會運行地很慢,此時CPU是等待其執行結束呢,還是先執行下面那句flag=true呢?顯然,先執行flag=true可以提前使用CPU,加快整體效率,當然這樣的前提是不會產生錯誤(什麼樣的錯誤後面再說)。雖然這里有兩種情況:後面的代碼先於前面的代碼開始執行;前面的代碼先開始執行,但當效率較慢的時候,後面的代碼開始執行並先於前面的代碼執行結束。不管誰先開始,總之後面的代碼在一些情況下存在先結束的可能。
**在硬體層面,**CPU會將接收到的一批指令按照其規則重排序,同樣是基於CPU速度比緩存速度快的原因,和上一點的目的類似,只是硬體處理的話,每次只能在接收到的有限指令范圍內重排序,而虛擬機可以在更大層面、更多指令范圍內重排序。硬體的重排序機制參見《從JVM並發看CPU內存指令重排序(Memory Reordering)》
Java提供了兩個關鍵字volatile和synchronized來保證多線程之間操作的有序性,volatile關鍵字本身通過加入內存屏障來禁止指令的重排序,而synchronized關鍵字通過一個變數在同一時間只允許有一個線程對其進行加鎖的規則來實現。
在單線程程序中,不會發生「指令重排」和「工作內存和主內存同步延遲」現象,只在多線程程序中出現。
1)編譯器優化的重排序。編譯器在不改變單線程程序語義的前提下,可以重新安排語句的執行順序。
2)指令級並行的重排序。現代處理器採用了指令級並行技術(Instruction-LevelParallelism,ILP)來將多條指令重疊執行。如果不存在數據依賴性,處理器可以改變語句對應機器指令的執行順序。
3)內存系統的重排序。由於處理器使用緩存和讀/寫緩沖區,這使得載入和存儲操作看上去可能是在亂序執行

F. 何為安騰的「顯式並行指令計算(EPIC)技術」

安騰體系結構脫離了IA-32 CISC體系結構的束縛,但並沒有完全照搬RISC處理機的設計思想。EPIC既不是RISC,也不是CISC,而是一種吸收了CISC和RISC兩者長處的全新的體系結構。主要體現在以下幾個方面:
1:顯式並行指令計算(EPIC)技術
2:超長指令字(VLIW)技術
3:分支推斷技術
4: 推測技術
5: 軟體流水技術
6: 寄存器堆棧技術

顯式並行指令計算(EPIC)技術:安騰的指令中設計了屬性欄位,用於指明哪些指令可以並行執行。這些屬性信息並不是在指令執行過程中由處理機判定後獲得的,而是由編譯程序在編譯時通過對源代碼的分析獲取指令級的並行性信息,並填寫到執行代碼中。這就是所謂顯式並行的概念。
EPIC技術則充分利用現代編譯程序強大的對程序執行過程的調度能力,由專用的EPIC編譯器首先分析源代碼,根據指令之間的依賴關系最大限度地挖掘指令級的並行性,從而確定哪些指令可以並行執行,然後把並行指令放在一起並重新排序,提取並調度其指令級的並行,並將這種並行性通過屬性欄位「顯式」地告知指令執行部件。

超長指令字(VLIW)技術:超長指令字(VLIW)技術是提高計算機系統並行性的有效手段。VLIW系統中指令字長可多達幾百位,編譯器經過優化,能將多條能夠並行執行的指令合並成一個具有多個操作碼的超長指令字,控制多個獨立的功能部件工作。

線面給你介紹一下安騰其它的技術

分支推斷技術:推斷技術能將傳統的「if then else」分支結構轉變為無分支的順序/並行代碼,以避免由於錯誤預測分支而付出代價。當處理機在運行中遇到分支時,它並不是進行傳統的分支預測並選擇可能性最大的一個分支執行,而是按分支的所有可能的後續路徑開始並行執行多段代碼並暫存各段代碼的執行結果,直到處理機能夠確認分支轉移與否的條件是真是假時,處理機再把應該選擇的路徑上的指令執行結果保留下來。
採用了推斷技術後,原有的轉移指令被轉換成條件執行指令。原有的轉移指令的所有的分支都被並行執行,無論哪條分支將被命中,都不會出現流水線斷流現象,故消除了因分支預測失誤而重新裝載流水線導致的低效率現象。更進一步,以前由於程序分支和指令依賴等因素不能並行執行的許多指令現在完全可以並行執行,從而提高了處理機的執行效率。

推測技術:推測技術,包括控制推測和數據推測,以減少存儲器訪問響應時間的影響。 控制推測技術和數據推測技術允許提前執行從內存單元至通用寄存器的取數指令。當程序中有分支時,控制推測技術將位於分支指令之後的取數指令提前若干周期執行,以此消除訪存延時,提高指令執行的並行度。而數據推測技術則用於解決提前取數指令後的數據相關性問題。 推測技術避免了cache命中失敗而導致訪存延遲的損失,消除了因處理機空閑而導致的並行性降低的缺憾。

軟體流水技術:安騰體系結構提供了很強的硬體支持,使循環執行過程中一次循環的代碼執行與下一次循環代碼的執行在時間上部分重疊,也即下一個循環步可以在上一個循環步結束前開始執行。 這種實現並行性的方式稱為軟體流水。
安騰體系結構引入了新機制來支持軟體流水,包括自動寄存器重命名、推斷執行和特殊的循環終止指令。因此,安騰處理機能夠通過旋轉寄存器機制為每個循環步提供自己的寄存器,並且不需要把循環擴展開來。
安騰體系結構中硬體對編譯器管理軟體流水線的支持使得編譯器能夠生成精簡的代碼,以高度並行的方式實現循環操作。

閱讀全文

與什麼叫指令級並行技術相關的資料

熱點內容
微信小程序如何實現掃身份證 瀏覽:847
中沃無線數據終端怎麼管理網路 瀏覽:30
內向產品經理如何溝通 瀏覽:422
鐵嶺技術學院在哪個區 瀏覽:831
吉林冰島如何代理 瀏覽:860
製造小程序如何加入 瀏覽:304
csm日版和代理版哪個好 瀏覽:259
旅遊什麼是主要市場 瀏覽:552
美團外賣代理商一個店能賺多少錢 瀏覽:44
數據流怎麼看發動機失火 瀏覽:60
毒數據看板怎麼看 瀏覽:644
大數據在未來想從事什麼工作 瀏覽:653
cf交易等待著要等多久 瀏覽:532
汽車產品的需求怎麼分類 瀏覽:530
如何培育農產品營銷 瀏覽:674
如何知道車展展商信息 瀏覽:19
鋰電池隔膜技術有哪些公司 瀏覽:606
寧夏民族職業技術學院哪個好 瀏覽:930
西安公租房有哪些代理機構可以辦 瀏覽:476
千牛上產品型號怎麼填 瀏覽:661