最美情侣中文字幕电影,在线麻豆精品传媒,在线网站高清黄,久久黄色视频

歡迎光臨散文網(wǎng) 會員登陸 & 注冊

研究生高級計算機體系結(jié)構(gòu)復習總結(jié)

2022-08-09 20:24 作者:小清舍  | 我要投稿

為什么進入多核時代,出現(xiàn)背景原因

衡量處理器性能的主要指標是每個時鐘周期內(nèi)可以執(zhí)行的指令數(shù)(IPC, Instruction Per Clock)和處理器的主頻。因此提高處理器性能就是兩個途徑:提高主頻和提高IPC。

然而,由于處理器的功耗和處理器內(nèi)部的電流、電壓的平方和主頻成正比,而主頻與電壓成正比,因此處理器功耗正比于主頻的三次方。如果通過提高主頻來提高處理器的性能,則處理器的功耗也就越大,這就遇上了功耗墻。提高每個周期內(nèi)執(zhí)行的指令數(shù)是通過指令的并行執(zhí)行來實現(xiàn)。提高并行度有兩個途徑:提高CPU微架構(gòu)的并行度和采用多核架構(gòu)。由于IPC(單位周期內(nèi)執(zhí)行的指令數(shù))與電流成正比,處理器的功耗和處理器內(nèi)部的電流、電壓的平方和主頻成正比,因此CPU由單核變成雙核且主頻不變的情況下,IPC理論上可以提高一倍(兩個CPU共同執(zhí)行),但功耗上也僅僅增加一倍。

Flynn's分類方法

費林分類法(Flynn's Taxonomy),是一種高效能計算機的分類方式。1972年費林(Michael J. Flynn)根據(jù)信息流(information stream)可分成指令(Instruction)和數(shù)據(jù)(Data)兩種。據(jù)此又可分成四種計算機類型:SISD, SIMD, MISD, and MIMD.

注意:費林分類是劃分計算機的,不是劃分CPU的。

單指令流、單數(shù)據(jù)流(SISD)-(ILP)Single Instruction Single Datastream:其指令部件每次只對一條指令進行譯碼,并只對一個操作部件分配數(shù)據(jù)。

單指令流、多數(shù)據(jù)流(SIMD)-(DLP)Single Instruction Multiple Datastream:由單一指令部件控制,按照同一指令流的要求為它們分配各自所需的不同數(shù)據(jù)。

  • 將大量重復設(shè)置的處理單元按一定方式互連成陣列,在單一控制部件CU(Contrul Unit)控制下對各自所分配的不同數(shù)據(jù)并行執(zhí)行同一指令規(guī)定的操作;

  • 數(shù)據(jù)并行;

  • 采用資源重復開發(fā)并行性。

多指令流、單數(shù)據(jù)流(MISD)Multiple Instruction Single Datastream:按 n條不同指令的要求對同一數(shù)據(jù)流及其中間結(jié)果進行不同的處理。沒有商業(yè)實現(xiàn)。

多指令流、多數(shù)據(jù)流(MIMD)Multiple Instruction Multiple Datastream:每個處理器都提取自己的指令,對自己的數(shù)據(jù)進行操作,它針對的是任務(wù)級并行。在任何時鐘周期內(nèi),不同的處理器可以在不同的數(shù)據(jù)片段上執(zhí)行不同的指令,也即是同時執(zhí)行多個指令流,而這些指令流分別對不同數(shù)據(jù)流進行操作。

  • 根據(jù)內(nèi)存的物理分布、邏輯映射、讀取方式將MIMD類并行計算機系統(tǒng)進一步細分為:共享內(nèi)存,虛擬共享內(nèi)存,分布式內(nèi)存;

  • 編程模式:共享內(nèi)存,消息傳遞,混合模式;

  • 緊耦合MIMD(線程級并行TLP)

  • 松耦合MIMD(請求級并行RLP)

CISC、RISC概念和特點,比較優(yōu)缺點

RISC的英文全稱為“Reduced Instruction Set Computer”,中文即“精簡指令集計算機”。RISC構(gòu)架的指令格式和長度通常是固定的(如ARM是32位的指令)、且指令和尋址方式少而簡單、大多數(shù)指令在一個周期內(nèi)就可以執(zhí)行完畢。是一種使用高度優(yōu)化的指令集的微處理器架構(gòu)

二、RISC架構(gòu)的特點

1.RISC架構(gòu)中使用了簡單指令。
2.RISC幫助并支持一些簡單數(shù)據(jù)類型并綜合復雜數(shù)據(jù)類型。
3.RISC利用簡單的尋址模式和固定長度的指令進行流水線處理。
4.RISC允許任何寄存器在任何上下文中使用。
5.單周期執(zhí)行時間。
6.通過分開“LOAD”和“STORE”指令,可以減少計算機可以執(zhí)行的工作量。

7.RISC包含大量寄存器,以防止與內(nèi)存進行各種交互。

8.在RISC中,流水線操作很容易,因為所有指令的執(zhí)行將在統(tǒng)一的時間間隔(即單擊一次)中完成。

9.在RISC中,需要更多RAM來存儲程序集級指令。
10.精簡指令減少了RISC中的晶體管數(shù)量。

11.編譯器用于執(zhí)行轉(zhuǎn)換操作,將高級語言語句轉(zhuǎn)換成其形式的代碼。

三、RISC架構(gòu)的優(yōu)勢
1.RISC(精簡指令集計算)架構(gòu)具有一組指令,因此高級語言編譯器可以生成更有效的代碼。
2.由于其簡單性,它允許自由使用微處理器上的空間。

3.許多RISC處理器使用寄存器來傳遞參數(shù)和保存局部變量。
4.RISC函數(shù)僅使用幾個參數(shù),而RISC處理器無法使用調(diào)用指令,因此,使用易于流水線化的固定長度指令。

5.操作速度可以最大化,執(zhí)行時間可以最小化。
6.所需的指令格式數(shù)量很少,所需的指令數(shù)量和尋址方式也很少。


四、RISC架構(gòu)的缺點

1.通常,RISC處理器的性能取決于程序員或編譯器,因為在將CISC代碼更改為RISC代碼時,編譯器的知識起著至關(guān)重要的作用。
2.在將CISC代碼重新排列為RISC代碼(稱為代碼擴展)時,將會增加大小。并且,此代碼擴展的質(zhì)量將再次取決于編譯器以及機器的指令集。
3.RISC處理器的一級緩存也是RISC的缺點,其中這些處理器在芯片本身上具有大容量的內(nèi)存緩存。為了提供指令,它們需要非??焖俚拇鎯ο到y(tǒng)。

CPU的RISC和CISC架構(gòu)的區(qū)別

RISC和CISC的區(qū)別方面

CISC架構(gòu)的代表: x86, C51

RISC架構(gòu)的代碼:arm, mips,powerpc, avr, pic

指令集的區(qū)別

首先從字面上理解就能知道, CISC(Complex Instruction SetComputer)架構(gòu)的指令數(shù)肯定是遠遠多于RISC(ReducedInstruction Set Computer)架構(gòu)的.另外, RISC架構(gòu)下,不同指令opcode的長度是相等的, 而x86下不同的指令的長度差別很大.

寄存器的區(qū)別

CISC架構(gòu)一般都提供通用寄存器a(x86下為eax),來支持大部分運算指令,但是由于指令太過復雜的原因,并不是所有的寄存器都能支持全部指令的運算,所以匯編代碼中會有各種針對eax的mov操作,影響性能.

指令執(zhí)行所需要的時鐘周期

在CISC架構(gòu)中,不同指令所需要的時鐘周期是不同的(比如乘法和加法的周期就不太可能相同).而RISC架構(gòu)的處理器,大部分的指令都可以在一個時鐘周期內(nèi)完成,這應(yīng)該可以降低指令流水線設(shè)計的復雜度. CISC架構(gòu)的很多復雜指令都通過CPU內(nèi)的微碼來完成, 這樣那些微碼比較復雜的指令就需要多個時鐘周期才能完成. 指令執(zhí)行需要的時鐘周期不同, 會增加指令流水線優(yōu)化的難度.

訪問內(nèi)存的區(qū)別

RISC在結(jié)構(gòu)設(shè)計上是一個載入/存儲(load/store)的構(gòu)架,只有載入和存儲指令可以訪問內(nèi)存,數(shù)據(jù)處理指令只對寄存器的內(nèi)容進行操作。為了加速程序的運算,RISC會設(shè)定多組的寄存器,并且指定特殊用途的寄存器。CISC架構(gòu)則允許數(shù)據(jù)處理指令對內(nèi)存進行操作,因此需要的寄存器數(shù)量會比較少.另外X86架構(gòu)支持cpu對非對齊的內(nèi)存地址的訪問,這在RISC架構(gòu)的處理器中通常會引起CPU產(chǎn)生異常.其實像類似非對齊內(nèi)存地址訪問的功能, X86也是通過CPU內(nèi)微碼來實現(xiàn)的,效率會大大降低.

尋址方式和IO空間

X86架構(gòu)下IO空間和內(nèi)存空間是分開的, IO空間使用完全不同的指令來訪問(in, out). RISC架構(gòu)則不區(qū)分IO空間和內(nèi)存空間,都是直接把IO空間映射到內(nèi)存空間,直接用內(nèi)存空間的訪問方式來操作. RISC架構(gòu)下對于尋址方式同樣做了精簡,幾乎所有的指令都使用寄存器尋址.


編譯的區(qū)別

CISC的指令豐富的優(yōu)勢,使得它的編譯器可以少做很多事情,編譯器的設(shè)計更簡單.而RISC在實現(xiàn)一個功能的時候,需要的指令條目數(shù)會更多一些,程序也會更大.

參考資料:

https://blog.csdn.net/shinezhang86/article/details/48393203

http://www.elecfans.com/emb/danpianji/20171219605119.html

https://www.renrendoc.com/paper/113740963.html

五級流水線(Load指令五個階段)

Ifetch(取指):從指令存儲器取指令并計算PC + 4(指令存儲器、Addr)

Reg/Dec(取數(shù)和譯碼):寄存器取數(shù),同時對指令進行譯碼(寄存器堆讀口、指令譯碼器)

Exec(執(zhí)行):計算內(nèi)存單元地址(擴展器、ALU)

Mem(讀存儲器):從數(shù)據(jù)存儲器中讀出的數(shù)據(jù)寫到主存(數(shù)據(jù)存儲器)

Wr(寫寄存器):將數(shù)據(jù)寫入寄存器中(寄存器堆寫口)

計算機的性能是怎樣描述的、衡量指標、測量方法

典型測量指標有響應(yīng)時間和吞吐率?,F(xiàn)在還考慮加速比、執(zhí)行時間

性能測量基準測試:程序內(nèi)核,玩具程序,合成測試 ,基準測試套件。

? ? 衡量計算機系統(tǒng)性能可采用各種尺度,但最為可靠的衡量尺度是時間。時間可根據(jù)計算方法給以不同的定義,如響應(yīng)時間、CPU 時間等。

響應(yīng)時間是指用戶向計算機系統(tǒng)送入一個任務(wù)后,直到獲得他所需要的結(jié)果所需的等待時間。其中包括了訪問磁盤和訪問主存器時間、CPU 運算時間、I/O動作時間以及操作系統(tǒng)工作的時間開銷等。

影響CPU性能的因素

性能的最本質(zhì)定義:

完成一個任務(wù)所需要的時間;

以指令為基本單位

CPU性能公式

CPU時間:一個程序在CPU上運行的時間(不包括I/O時間)

  • 主頻、時鐘頻率:CPU內(nèi)部主時鐘的頻率,表示一秒可以完成多少個周期

例如,主頻為4.1GHz,表示每秒可以完成 個時鐘周期。

  • 時鐘周期:時鐘周期也稱為振蕩周期,定義為時鐘頻率的倒數(shù)。是計算機中最基本的、最小的時間單位。再一個時鐘周期內(nèi),CPU僅完成一個最基本的動作。CPU的時鐘周期越短,CPU性能越好。

  • 指令周期:取出并執(zhí)行一條指令的時間。

  • 程序的時鐘周期數(shù):平均一個程序執(zhí)行所耗費的時鐘周期數(shù)。

  • 指令周期數(shù)CPI:平均每條指令耗費的時鐘周期數(shù)。

  • 執(zhí)行的指令條數(shù)IC

處理器性能取決于時鐘周期、每條指令的時鐘周期數(shù)(CPI)和指令數(shù)(IC)

單CPU上常見的提高性能的方法和并行計算

  1. 提高單個處理器的工作頻率

  2. 分層Cache結(jié)構(gòu)

  3. 多級流水線(提高CPU頻率的利器)

  4. 超標量執(zhí)行(多條流水線并同時發(fā)送多條指令)

  5. 亂序執(zhí)行(指令的重排)

  6. 單指令流多數(shù)據(jù)流SIMD

  7. 超長指令字處理器(依賴于編譯器分析)

多線程并行的優(yōu)點

多線程:是指從軟件或者硬件上實現(xiàn)多個線程并發(fā)執(zhí)行的技術(shù)。具有多線程能力的計算機因有硬件支持而能夠在同一時間執(zhí)行多于一個線程,進而提升整體處理性能。

多線程的好處

  • 創(chuàng)建一個線程比創(chuàng)建一個進程的代價要小很多;

  • 線程的切換代價要比進程切的代價換小很多;

  • 能夠充分利用多處理器;多核情況下可充分利用CPU資源。發(fā)揮多處理器的強大性能,提升資源利用率以及系統(tǒng)的吞吐率。

  • 提供了數(shù)據(jù)共享可能;

  • 具有快速響應(yīng)的特性。

SMT:在一個時鐘周期內(nèi)發(fā)射多個線程的指令到功能部件上執(zhí)行。

參考資料https://www.cnblogs.com/BRSblackshoot/p/15562346.html

RISC的設(shè)計原則

RISC的設(shè)計原則:

  • 使用頻度很高的指令

  • 大大減少尋址方式

  • 所有指令在一個機器周期內(nèi)完成

  • 擴大通用寄存器個數(shù)

  • 采用硬聯(lián)控制實現(xiàn)

  • 通過精簡指令和優(yōu)化設(shè)計編譯程序,以簡單有效的方式支持高級語言

RISC結(jié)構(gòu)采用的基本技術(shù):

  • 在邏輯上采用硬聯(lián)實現(xiàn)和微程序固件實現(xiàn)相結(jié)合的技術(shù)

  • 在CPU中設(shè)置數(shù)量較大的寄存器組,并采用重疊寄存器窗口的技術(shù)

  • 指令的執(zhí)行采用流水和延遲轉(zhuǎn)移技術(shù)

  • 采用優(yōu)化編譯技術(shù),優(yōu)化寄存器的分配和使用

UMA/NUMA模型

UMA(Uniform Memory Access)模型

  • 物理存儲器被所有節(jié)點共享;

  • 所有節(jié)點訪問任意存儲單元的訪問時間相同;

  • 發(fā)生訪存競爭時,仲裁策略平等對待每個節(jié)點,即每個節(jié)點機會均等;

  • 各節(jié)點的CPU可帶有局部私有高速緩存;

  • 外圍I/O設(shè)備也可以共享,且每個節(jié)點有平等的訪問權(quán)利。

NUMA(Non-Uniform Memory Access)模型

  • 物理存儲器被所有節(jié)點共享,任意節(jié)點可以直接訪問任意內(nèi)存模塊;

  • 節(jié)點訪問內(nèi)存模塊的速度不同,訪問本地存儲模塊的速度一般是訪問其他節(jié)點內(nèi)存模塊

的3倍以上;

  • 發(fā)生訪存競爭時,仲裁策略對節(jié)點可能是不平等的;

  • 各節(jié)點的CPU可帶有局部私有高速緩存;

  • 外圍I/O設(shè)備也可以共享,但對各節(jié)點是不平等的。

Cache一致性

處理器可能在CACHE中看到不同的值:

一致性:確定了讀取操作返回什么值;

連貫性:確定了一個寫入值何時被讀取操作返回。

cache一致性:(coherence)

  • 所有處理器的讀操作必須返回最近寫回的值;

  • 兩個處理器寫到同一位置的值,其順序應(yīng)被所有處理器按序看到;

連貫性:(consistence)

  • 在何種程度上保持一致;

  • 如果一個處理器寫A后再寫B(tài),則所有看到新值B的處理器也必然看到新值A(chǔ);

  • 何種程度的一致是指:一個處理器必須在什么時候看到另一個處理器更新過的值.

MESI Protocols

CPU緩存一致性協(xié)議MESI

  • MESI 是一種使用廣泛的協(xié)議,用來實現(xiàn) cache coherence 和 memory coherence.

  • MESIMModified Exclusive Shared Or Invalid)(也稱為伊利諾斯協(xié)議,是因為該協(xié)議由伊利諾斯州立大學提出)是一種廣泛使用的支持寫回策略的緩存一致性協(xié)議。

參考資料:https://www.cnblogs.com/z00377750/p/9180644.html

SIMD并行的三種結(jié)構(gòu)

SIMD 并行的 3 種體系結(jié)構(gòu)為:向量體系結(jié)構(gòu)、SIMD 擴展和圖形處理單元(GPUs)

(1) 向量體系結(jié)構(gòu)的基本思想

  1. 讀存儲器中散布的數(shù)據(jù)集至“vector registers”;

  2. 寄存器操作;

  3. 分散結(jié)果存儲至存儲器;

  4. 向量體系結(jié)構(gòu)使用一條向量指令開啟一組數(shù)據(jù)操作,其中數(shù)據(jù)的加載、存儲以及數(shù)據(jù)計算以流水線的形式進行。

特點:僅在一組數(shù)據(jù)操作的第一個元素存在存儲器延遲和由冒險引起的停頓,后續(xù)元素會沿著流水線順暢流動。

執(zhí)行時間與三個因素有關(guān):向量長度、結(jié)構(gòu)冒險、數(shù)據(jù)相關(guān)。

(2) SIMD 擴展的基本思想:主要針對多媒體應(yīng)用。

主要進行了3項簡化。

  1. 固定了操作中操作數(shù)的數(shù)目:向量體系結(jié)構(gòu)采用向量長度寄存器;

  2. SIMD 擴展沒有復雜的尋址模式:步幅和集中-分散尋址模式;

  3. 沒有遮罩寄存器。

實現(xiàn):

  1. 操作數(shù)連續(xù)且與存儲地址對齊;

  2. 擴展的目的主要為了加速精心編制的庫函數(shù)運行。

(3) 圖形處理單元 (GPUs)的基本思想:

  • 異構(gòu)執(zhí)行模型是 CPU 為主機, GPU 為加

速器;

  • 開發(fā)類C的編程語言;

  • 統(tǒng)一所有的GPU并行為CUDA 線程;

  • 編程模型“SIMT”。

NVIDI GPU架構(gòu):

與向量機類似:擅長數(shù)據(jù)級并行、采用集中-分散尋址模式、具有遮罩寄存器和大的寄存

器組。

與向量機的不同:沒有標量處理器、使用多線程隱藏內(nèi)存訪問延遲以及有很多功能單元

深度流水化。

流水線冒險

什么是冒險? 指流水線遇到無法正確執(zhí)行后續(xù)指令或執(zhí)行了不該執(zhí)行的指令

結(jié)構(gòu)冒險:Structural hazards (hardware resource conflicts):

現(xiàn)象:同一個部件同時被不同指令所使用

如果只有一個存儲器,則在Load指令取數(shù)據(jù)同時又取指令的話,則發(fā)生沖突!

如果不對寄存器堆的寫口和讀口獨立設(shè)置的話,則發(fā)生沖突!

解決辦法:

1.每個部件在特定的階段被用!(如:ALU總在第三階段被用?。?/span>

2.將Instruction Memory (Im)和 Data Memory (Dm)分開

3.將寄存器讀口和寫口獨立開來

數(shù)據(jù)冒險:Data hazards (data dependencies)

現(xiàn)象:后面指令用到前面指令結(jié)果時,前面指令結(jié)果還沒產(chǎn)生。

解決辦法:

1.在硬件上采取措施,使相關(guān)指令延遲執(zhí)行

3.軟件上插入無關(guān)指令

3.利用DataPath中的中間數(shù)據(jù)

4.編譯器進行指令順序調(diào)整

數(shù)據(jù)冒險的解決方法( ( 五個 )

1.硬件阻塞 (stall)

2.軟件插入“NOP”指令

3.編譯優(yōu)化:調(diào)整指令順序

4.合理實現(xiàn)寄存器.堆的讀/寫操作

5.轉(zhuǎn)發(fā)(Forwarding或Bypassing 旁路)技術(shù)。

--若相關(guān)數(shù)據(jù)是ALU結(jié)果,則如何?

可通過轉(zhuǎn)發(fā)解決

-相關(guān)數(shù)據(jù)是上條指令DM讀出內(nèi)容,則如何?

不能通過轉(zhuǎn)發(fā)解決,隨后指令需被阻塞一個時鐘 或 加NOP指令

控制冒險:Control (Branch) hazards (changes in program flow)

現(xiàn)象:轉(zhuǎn)移或異常改變執(zhí)行流程,順序執(zhí)行指令在目標地址產(chǎn)生前已被取出

解決辦法:

控制冒險 的解決方法(四個)

1.硬件上阻塞(stall)分支指令后三條指令的執(zhí)行;

2.軟件上插入三條“NOP”指令;

3.分支預(yù)測(Predict)

?簡單(靜態(tài))預(yù)測:

-總是預(yù)測條件不滿足(not taken),即:繼續(xù)執(zhí)行分支指令的后續(xù)指令

可加啟發(fā)式規(guī)則:在特定情況下總是預(yù)測滿足(taken),其他情況總是預(yù)測不滿足。如:循環(huán)頂 ? ? ? ? ? ? ? ? (底)部分支總是預(yù)測為不滿足(滿足)。能達65%-85%的預(yù)測準確率

?動態(tài)預(yù)測:

-根據(jù)程序執(zhí)行的歷史情況,進行動態(tài)預(yù)測調(diào)整,能達90%的預(yù)測準確率

:采用分支預(yù)測方式時,流水線控制必須確保錯誤預(yù)測指令的執(zhí)行結(jié)果不能生 ?

? ? ? 效,而且要能從正確的分支地址處重新啟動流水線工作

4.延遲分支(Delayed branch),通過編譯程序優(yōu)化指令順序。

?把分支指令前面與分支指令無關(guān)的指令調(diào)到分支指令后面執(zhí)行,也稱延遲轉(zhuǎn)移

層次化存儲優(yōu)化方法

6 個基本的 cache 的優(yōu)化方法

1)更大的塊:強制缺失減少;容量和沖突缺失增加,缺失代價增加

2)更大的 cache 容量:缺失率降低;命中時間增加,功耗增加

3)更高的相聯(lián)度:沖突缺失減少;命中時間增加,功耗增加

4)更多級的 cache:內(nèi)存訪問的時間減少了

5)讀缺失優(yōu)先級更高:缺失代價降低

6)緩存索引期間避免地址轉(zhuǎn)換:減少命中時間

10 種高級優(yōu)化方法:

  1. 小而簡單的一級緩存;

  2. 路預(yù)測;

  3. 緩存訪問流水化;

  4. 無阻塞緩存;

  5. 多種緩存;

  6. 關(guān)鍵字優(yōu)先,提前重啟動;

  7. 合并寫緩沖區(qū);

  8. 編譯器優(yōu)化;

  9. 硬件預(yù)?。?/span>

  10. 編譯器預(yù)取

動態(tài)預(yù)測

二位的預(yù)測位(畫出兩位預(yù)測狀態(tài)圖):

配置一個從不發(fā)生缺失的Cache,處理器快多少

AMAT

CPI,處理器速率提高

給定程序畫時空圖,找依賴,解決方法

有無遠程訪問,速率快多少


研究生高級計算機體系結(jié)構(gòu)復習總結(jié)的評論 (共 條)

分享到微博請遵守國家法律
民和| 连城县| 海丰县| 达尔| 昭苏县| 新蔡县| 丰城市| 银川市| 巨鹿县| 来安县| 凤庆县| 漳平市| 横峰县| 略阳县| 金阳县| 肇庆市| 青浦区| 易门县| 密云县| 额济纳旗| 个旧市| 无锡市| 巩义市| 江达县| 榆中县| 山西省| 湖北省| 祥云县| 黎平县| 大关县| 深水埗区| 东阿县| 万荣县| 柳林县| 勃利县| 屯门区| 花莲县| 莱西市| 西乡县| 淳化县| 宁南县|