1. 程式人生 > >計算機組成原理之流水線及流水線中的衝突

計算機組成原理之流水線及流水線中的衝突

一.實驗目的

(1)理解計算機流水線基本概念。
(2)理解MIPS結構如何用5段流水線來實現。
(3)理解各段的功能和基本操作。
(4)加深對資料衝突、結構衝突的理解,理解這兩類衝突對CPU效能的影響。
(5)進一步理解解決資料衝突的方法,掌握如何應用定向技術來減少資料衝突引起的停頓。

二.實驗內容和步驟

(1)、啟動MIPSsim。
(2)、根據預備知識中關於流水線各段操作的描述,進一步理解流水線視窗中各段的功能,掌握各流水暫存器的含義。(用滑鼠雙擊各段,就可以看到各流水暫存器的內容)
(3)、參照MIPSsim模擬器使用說明,熟悉MIPSsim模擬器的操作和使用方法。
(4)、選擇配置選單中的“流水方式”選項,使模擬器工作於流水方式

下。
(5)、觀察程式在流水線中的執行情況,步驟如下:
1)選擇MIPSsim的“檔案”—>“載入程式”選項來載入pipeline.s
2)關閉定向功能。這是通過“配置”—>“定向”。

關閉定向

3)用單步執行一個週期的方式執行該程式,觀察每一個週期中,各段流水暫存器內容的變化、指令的執行情況(“程式碼”視窗)以及時鐘週期圖
4)當執行到第13個時鐘週期時,各段分別正在處理的指令是:
IF: LW R4,60(R6) 取指
ID: ADDI r3,r0,25 讀暫存器
EX: ADDI r

1,r1,-1 執行
MEM: ADDI r6,r0,8 訪存
WB: ADD r2,r1,$r0 回寫

這裡寫圖片描述
畫出這時的時鐘週期圖。
2

(6)、這時各流水暫存器中的內容為:
IF/ID.IR: 0X8CC4003C 機器碼
IF/ID.NPC: 0X00000030 下一條地址
ID/EX.A: 0
ID/EX.B: 0
ID/EX.IR: 25
ID/EX.Imm: 0X20030019
EX/MEM.ALUo: 4
EX/MEM.IR: 0X2021FFFF


MEM/WB.LMD: 0
MEM/WB.ALUo: 8
MEM/WB.IR: 0X20060008

12

(7)、觀察和分析結構衝突對CPU效能的影響,步驟如下:
1)載入structure_hz.s
2)執行該程式,找出存在結構衝突的指令對以及導致結構衝突的部件
指令fadd;
部件是浮點加法器

這裡寫圖片描述

3)記錄由結構衝突引起的停頓時鐘週期數,計算停頓時鐘週期數佔總執行週期數的百分比。
總週期數52個,結構停頓週期數35個,佔總執行週期數的67.30769%

1

4)把浮點加法器的個數改為4個。

4

5)再次重複步驟1)-步驟3)的工作。

1

這裡寫圖片描述

6)分析結構衝突對CPU效能的影響,討論解決結構衝突的方法。

1

解決一:暫停一個時鐘週期,取後一條指令操作;
解決二:設定兩個獨立的儲存器分別存放運算元和指令,
還可以採取指令預存技術;
(8)、 觀察資料衝突並用定向技術來減少停頓,步驟如下:
1)全部復位。
2)載入data_hz.s
3)關閉定向功能。
4)單步執行一個週期,同時檢視時鐘週期圖,列出在什麼時刻發生了RAW(先寫後讀)衝突。
4、6、7、9、10、13、14、17、18、20、21、25、26、28、29、32、33、36、37、39、40、44、45、47、48、51、52、55、56、58、59

5)記錄資料衝突引起的停頓時鐘週期數及程式執行的總時鐘週期數,計算停頓時鐘週期數佔總執行週期數的百分比。

1

6)復位CPU。
7)開啟定向功能。

開啟定向

8)單步執行一個週期,同時檢視時鐘週期圖,列出在什麼時刻發生了RAW(先寫後讀)衝突,並與步驟(3)的結果進行比較。
4 9 12 17 21 24 29 33 36
9)記錄由資料衝突引起的停頓時鐘週期數以及程式執行的總時鐘週期數,計算採用定向技術後的效能是原來的幾倍。65/43=1.51倍

1

三.實驗結果分析

  1. 由於指令 處理過程分為取指令和執行指令兩個階段,不採用流水技術計算機裡,取指閒時間較高;所以有了流水線技令和執行指令是周而復始重複出現,但是問題來了,取指令與執行指令有它們的各自部件來完成,所以執行部件利用率不高,空術;

  2. 好的流水線要充分流水;不發生斷流;由於資料相關,結構相關,控制相關,導致我們的流水線不斷流實現起來很困難;

  3. 為什麼三種相關會對流水線造成影響?
    結構相關:指令在重疊執行過程中,不同指令爭用同一功能部件產生資源衝突是產生,例如:大多數電腦指令和資料儲存在同一個儲存器;某一時鐘週期裡,流水線既要完成某條指令對運算元的儲存器訪問操作MEM,又要完成另一條指令的取操作IF;
    如何解決:暫停一個時鐘週期,或者設定2個獨立儲存器存放運算元和指令
    資料相關:由於指令相挨太近,上一條執行的結果要在下一條指令中執行;但是由於五段流水方式導致,先寫後讀的順序變為了先讀後寫,發生先寫後讀RAM的資料相關衝突;
    如何解決:後推法(停頓後繼指令的執行,直至前面指令結果已經產生)
    定向技術:(不必等執行結果送回暫存器,再次暫存器讀出該結果,而是作為下一條指令的源運算元,直接將結果送到指令需要的地方,EX段末尾處產生結果)
  4. 五段流水線的各種各種操作

    1

    結構衝突

    2

    資料衝突

    2

四.實驗總結

通過本次實驗,需要知道五個流水線產生的背景,學習MIPS五個流水線的具體含義,以及各段的具體含義,IF ID EX MEM WB主要作用,知道資料結構控制相關所可能產生的資料衝突,結構衝突;對兩種衝突所提出的解決的方法;

  • 資料衝突採用定向功能對RAW(先寫後讀)衝突所產生得影響,後推法以及定向技術對衝突有所改進;

  • 結構衝突可以插入暫停週期,停頓一拍再執行;或者設定相互獨立的指令儲存器和資料儲存器,設定相互獨立的指令/資料cache;

了指令的流水原理,以及分析了影響流水線效能的因素,並找出了很好的解決方案。

文件

相關推薦

計算機組成原理流水線流水線衝突

一.實驗目的 (1)理解計算機流水線基本概念。 (2)理解MIPS結構如何用5段流水線來實現。 (3)理解各段的功能和基本操作。 (4)加深對資料衝突、結構衝突的理解,理解這兩類衝突對CPU效能的影響。 (5)進一步理解解決資料衝突的方法,掌握

計算機組成原理高速緩存

過程 概念 高速 可能 關於 判斷 下標 一個數 這一 這一篇也是計算機組成中比較重要的概念,高速緩存。 上一篇已經講了存儲層次結構,接下來看看高速緩存的原理。 Cache取回數據時並不只是取回CPU要求的單個數據,而是取回一個數據塊Block,其實這是一個預期的行為,比如

軟考複習計算機組成原理儲存系統

儲存裝置 my knowledge: 儲存有記憶體 外存之分 記憶體:儲存速度快,儲存空間小,易丟失,外存:儲存空間大,不易丟失,訪問速度慢,一般是磁碟,然後暫存器和記憶體不是一個東西,暫存器在cpu裡,大概就是這麼多了。  軟考書籍知識: 軟考試題知識點:

軟考計算機組成原理指令系統

/*學習使人 困餓醜陋貧窮不開心  0-0*/ 指令系統: 我的知識儲備:大概就是一堆指令組成的系統吧。不同的機器指令似乎是不同的。。。。為啥書還能扯3頁。。 看完一遍書:它講了啥,,,,,CISC SISC 流水線,,,,,,,,,,,,,,,,不明白講指令集系統為什

計算機組成原理浮點數

一、浮點數的表示方法: 在計算機中,一個任意進位制數N可以可以寫成:N=R^e*M 一般來說,變化的數值是M和e。在計算機中只需要存M和e即可,R預設為2。為了使浮點數的表示具有唯一性,需要在運算過程中對浮點數進行規格化操作。於是,制定了IEEE754浮點數表示方法。

計算機組成原理加法器詳解

未經博主允許,禁止轉載,翻版必究! 上次的文章寫了補碼,也簡單的涉及了計算機的加減運算,但是後續涉及到了硬體的設計,我認為《計算機組成原理》這門課是要銜接硬體和軟體一門課,不僅要掌握簡單的設計硬體知識,也要掌握具體的在程式設計中的應用。所以,這一篇文章來具體地講一下加

計算機組成原理原碼、補碼、反碼和移碼

在討論之前,先說一下無符號數和有符號數的概念,計算機的數均存放在暫存器中,通常稱暫存器的位數為機器字長,所謂無符號數,即沒有符號的數,在暫存器中的每一位均可用來存放數值,有符號數是首位不用來表示數值,

計算機組成原理儲存器總結---來自北大陸俊林老師的視訊內容(1)

1. 儲存結構概況 2. DRAM和SRAM SRAM 根據外部送入的行地址和列地址生產行選擇訊號和列選擇訊號 選中儲存單元 . SDRAM是在DRAM的基礎上對輸入輸出介面進行同步,從而提高了讀寫效率,而現在更為常

計算機組成原理儲存器總結---來自北大陸俊林老師的視訊內容(2)

1. 首先科普下 Mbps Mbps=Mbit/s即兆位元每秒。Million bits per second的縮寫 傳輸速率是指裝置的的資料交換能力,也叫“頻寬”,單位是Mbps(兆位/秒),目前主流的集線器頻寬主要有10Mbps、54Mbps

計算機組成原理指令排程和延遲分支

一.實驗目的 (1)加深對指令排程技術的理解。 (2)加深對延遲分支技術的理解。 (3)熟練掌握用指令排程技術解決流水線中的資料衝突的方法。 (4)進一步理解指令排程技術對CPU效能的改進。 (5)進一步理解延遲分支技術對CPU效能的改進。

計算機組成原理記憶體

一個記憶體包括一個具有記憶功能的儲存矩陣(該矩陣是由m*n個儲存晶片構成),譯碼驅動電路,以及讀寫電路構成。 譯碼電路負責把地址匯流排送來的地址訊號翻譯成對對應儲存單元選擇的訊號,該訊號在讀寫電路的配合下完成對被選中單元的讀寫。 記憶體通過地址匯流排,資料匯流排以及控制匯流

計算機體系結構實驗——流水線流水線衝突

實驗目的 加深對計算機流水線基本概念的理解。 理解MIPS結構如何用5段流水線來實現,理解各段的功能和基本操作。 加深對資料衝突、結構衝突的理解,理解這兩類衝突對CPU效能的影響。 進一步理解解決資料衝突的方法,掌握如何應用定向技術來減少資料衝突引起的停頓。

計算機組成原理流水線處理器

前言 流水線的想法源自於傳統工廠生產產品的方式,通過這種方式大大提高了生產效率,反應在CPU上就是提高了指令的吞吐率。 上篇文章介紹了單週期處理器,姑且算是揭開了CPU那層神祕的面紗。現在我們來深入瞭解一下,一個超標量流水線處理器是什麼樣的。 流水線的設計

計算機組成原理筆記浮點數運算

http 計算機組成 nbsp 技術 -1 .com alt bsp 筆記 計算機組成原理筆記之浮點數運算

計算機組成原理——匯流排補充:地址匯流排、資料匯流排、定址能力、字長cpu位數等概念之間的關係

地址匯流排決定了CPU的定址能力;資料匯流排的寬度與字長及CPU位數一致。 詳細解釋見下文: 1.地址匯流排與定址能力 要存取資料或指令就要知道資料或指令存放的位置,地址暫存器儲存的就是CPU當前要存取的資料或指令的地址,該地址是由地址匯流排傳輸到地址暫存器上的。

計算機組成原理(四)儲存器

6.1儲存器及半導體儲存器的分類 儲存器是計算機用來儲存資訊的部件。 6.1.1  儲存器的分類 按存取速度和用途可把儲存器分為兩大類:記憶體儲器和外儲存器。 記憶體:把通過系統匯流排直接與CPU相連的儲存器稱為記憶體儲器,簡稱

計算機組成原理(二)系統匯流排

在這個系列文章的第一講,漫談計算機組成原理(一)之程式執行的過程 中說過,現代計算機是從馮若伊曼計算機發展起來的。其組成部分有儲存器、運算器、控制器、輸入裝置、輸出裝置,在現代計算機中,人們將運算器與控制器封裝起來成為CPU(中央處理

計算機組成原理第五章中央處理器CPU

中央處理器CPU 整個計算器所有部件都由控制器所控制,CPU集成了控制器和運算器。 資料和指令進出CPU都要先經過緩衝暫存器。指令暫存器用來存放當前正在執行的指令。PC用來存放下一條要執行的指令,地址暫存器存放CPU當前需要訪問的記憶體的地址。 程式執行之前,所有的指令都要先放入儲存器,

軟考複習第一部分計算機組成原理

/*先說個好笑的,昨日我在知乎看見一個問題“初中生可以學佛法麼,看不懂怎麼辦”,下面有個回答就是,“你先好好學習,我初中就皈依了,我那個師傅日常跟我講“學習都學不好還想學佛法,先好好學習””然後我 0-0忍不住哈哈哈哈,一樣的口氣。同一個世界啊。。。下面大概先是手默知識點,我

計算機組成原理實驗運算器組成實驗

一、實驗目的: 1、熟悉邏輯測試筆的使用方法; 2、熟悉LK-TEC-9模型計算機的節拍脈衝T1、T3、T3; 3、熟悉雙埠通用暫存器組的讀寫操作; 4、熟悉運算器的資料傳送通路; 5、驗證74LS181的加、減、與、或功能; 6、按給定的資料,完成幾種指定的