計算機體系結構實驗二

2022-09-18 01:57:05 字數 2823 閱讀 5432

實驗二迴圈展開及指令排程

實驗目的

1. 加深對迴圈級並行性、指令排程技術、迴圈展開技術以及暫存器換名技術的理解;

2. 熟悉用指令排程技術來解決流水線中的資料相關的方法;

3. 了解迴圈展開、指令排程等技術對cpu效能的改進。

實驗平台

windlx simulator

實驗內容和步驟

1.用指令排程技術解決流水線中的結構相關與資料相關

(1) 用dlx組合語言編寫**檔案*.s,程式中應包括資料相關與結構相關(假設:加法﹑乘法﹑除法部件各有2個,延遲時間都是3個時鐘週期)

** .data

.global one

one: .word 1

.text

.global main

main:

lf f1,one

cvti2f f7,f1

nopdivf f1,f8,f7

divf f2,f6,f7

addf f3,f1,f2

divf f10,f3,f7

divf f4,f11,f7

divf f5,f12,f7

multf f6,f11,f7

multf f6,f4,f5

divf f13,f6,f7

finish:

trap 0

(2) 通過configuration選單中的 「floating point stages」 選項,把加法﹑乘法﹑除法部件的個數設定為2個,把延遲都設定為3個時鐘週期;

(3) 用windlx執行程式。記錄程式執行過程中各種相關發生的次數、發生相關的指令組合,以及程式執行的總時鐘週期數;

結構相關1次

別在9 10行

資料相關 3次

分別在 5 6 11行

(4)採用指令排程技術對程式進行指令排程,消除相關; .data

.global one

one: .word 1

.text

.global main

main:

lf f1,one

cvti2f f7,f1

nopdivf f1,f8,f7

divf f2,f6,f7

divf f10,f3,f7

divf f4,f11,f7

addf f3,f1,f2

multf f6,f11,f7

divf f5,f12,f7

multf f6,f4,f5

divf f13,f6,f7

finish:

trap 0

(5) 用windlx執行排程後的程式,觀察程式在流水線中的執**況,記錄程式執行的總時鐘週期數;

(6) 根據記錄結果,比較排程前和排程後的效能。論述指令排程對於提高cpu效能的意義。

提高了cpu效能

2. 用迴圈展開、暫存器換名以及指令排程提高效能

(1) 用dlx組合語言編寫**檔案*.s,程式中包含乙個迴圈次數為4的整數倍的簡單迴圈;

計算四個3相加

.data

.global one

one: .word 1

.text

.global main

main:

addi r1,r0,#4

addi r2,r0,#0

addi r4,r0,#3

loop:

sgt r3,r1,r0

bnez r3,sub1

trap 0

sub1:

mult r2,r2,r4

subi r1,r1,#1

j loop

(2) 用windlx執行該程式。記錄執行過程中各種相關發生的次數以及程式執行的總時鐘週期數;

(3) 將迴圈展開3次,將4個迴圈體組成的**代替原來的迴圈體,並對程式做相應的修改。然後對新的迴圈體進行暫存器換名和指令排程;

暫存器換名和指令排程後

.data

.global one

one: .word 1

.text

.global main

main:

addi r1,r0,#4

addi r2,r0,#0

addi r4,r0,#3

mult r5,r2,r4

subi r6,r1,#1

mult r7,r5,r4

subi r8,r6,#1

mult r9,r7,r4

subi r10,r8,#1

mult r11,r9,r4

subi r12,r10,#1

trap 0

(4) 用windlx執行修改後的程式,記錄執行過程中各種相關發生的次數以及程式執行的總時鐘週期數;

(5) 根據記錄結果,比較迴圈展開、指令排程前後的效能。

迴圈展開和指令排程前為總時鐘週期數39,後20次。加速比43/20=1.95倍,提高了性

能。預備知識

1. windlx模擬器的相關知識,詳見相關的文件。

2. 複習和掌握教材中相應的內容:

(1) 迴圈級並行性

(2) 指令排程

(3) 迴圈展開

(4) 暫存器換名

計算機體系結構

平行計算 之我見指導老師 陳麗萍 學院 資訊科學與工程學院 班級 計科0908班 姓名 原海南 學號 0909083125 完成日期 2012年5月21日 目錄1.平行計算簡介 1.1什麼是平行計算 1.2為什麼需要平行計算 1.3平行計算的歷史 1.4平行計算的現狀 2.平行計算與網際網路 2.1...

計算機體系結構複習

模擬試題一 課程名稱計算機系統結構適用班級 考試時間 120 分鐘班級學號姓名 一 單項選擇題 本大題共10小題,每小題2分,共20分。在每小題的四個備選答案中選出乙個符合題意的,並將其前面的序號填在題後的括號內。1.按flynn分類法,處理機illiac iv屬於 sisd simd misd m...

計算機體系結構報告

計算機組織與體系結構 實驗報告 實驗名稱 姓名班級 學號實驗一基本運算器實驗 一 實驗目的 1 了解運算器的組成結構。2 掌握運算器的工作原理。二 實驗裝置 pc 機一台,td cma 實驗系統一套。三 實驗原理 本實驗的原理如圖 1 1 1 所示。運算器內部含有三個獨立運算部件,分別為算術 邏輯和...