四川大學期末考試試題(閉卷)答案及評分標準
(2017——2018學年第 2 學期) B卷
課程號:304036030 課程名稱:計算機組成原理
填空題(本大題共15空,每空2分,共30分)
在評價計算機性能時用 響應時間 表示計算機完成某任務所需時間;用 吞吐量 表示計算機單位時間完成任務的數量。
8位二進制行16位符號擴展的結果是 1111111110101010 。
現代計算機會在處理器與主存之間增加 Cache (部件)用于減小處理器高時鐘頻率與主存訪問時間之間的差異;依據主存數據能夠被放置到該部件的哪些位置,該部件的組織方式可分為 直接映射 、 組相聯 和 全相聯 ,其中 全相聯 (組織方式)的缺失率更低。
某字節數據為101001102,其對應的奇校驗碼為 101001101 ,漢明糾錯碼為 001101000110 。
MIPS使用 ll 、 sc 指令對來實現原子交換操作。
在DRAM中,數據以電荷量的形式保存在 電容 中,由于電荷會隨時間而流失,所以需要不斷地 刷新 來保持數值。
ALU總是將減法運算轉化為加法來實現,在計算00,實際進行的運算是0+ 0xFFECA870 。
二、簡答題(本大題共4小題,每小題5分,共20分)
1、處理器P1和P2分別完成相同任務,P1的時鐘頻率是4GHz,平均CPI為1.4,需執行3x109條指令;P2的時鐘頻率是3GHz,平均CPI為2.0,需執行1.2x109條指令。請計算P1和P2的性能比。
答: P1/P2 = T2/T1 (1分)
= (1.2x109 x 2.0 / 3G)/(3x109 x 1.4 / 4G) (3分)
= 0.76 (1分)
請寫出IEEE754單精度浮點數0代表的十進制數是多少?(詳細給出計算過程)
答:
4074000016 = 0100 0000 0111 0100 0000 0000 0000 00002(1分)
符號為0 ,為正數 (1分)
階碼,128-127 = 1 (1分)
尾數為 1.111012 (1分)
所以,該數為1.11101x21 = 11.11012 = 3.812510 (1分)
在某任務中訪存指令占30%,不考慮Cache缺失時處理器的平均CPI為3;如果指令Cache缺失率為1%,數據Cache缺失率為5%,缺失代價為150個時鐘周期,請計算具備Cache缺失時的平均CPI為多少?
答:
設指令數為N;
讀取指令缺失增加的周期數為 N x 1% x 150 (1分)
訪存缺失增加的周期數為 N x 30% x 5% x 150 (1分)
全部周期數為N x 3 + N x 1% x 150 + N x 30% x 5% x 150 (1分)
所以 CPI = 3 + 1% x 150 + 30 % x 5% x 150 (1分)
= 6.75 (1分)
舉例說明為什么在編寫MIPS匯編語言程序時應避免使用$at寄存器?
答:偽指令使MIPS擁有比硬件實現的更為豐富的指令集。匯編器在將偽指令轉換為MIPS指令時可能會用到$at寄存器,所以我們在編寫MIPS程序時應該避免使用$at。(3分)
如 偽指令 blt $s1, $s2, label 在匯編時被轉換為
slt $at,$s1,$s2
bne $at,$zero,label (2分)(使用其它偽指令舉例也可得分)
三、應用題(本大題共2小題,每小題10分,共20分)
1、請將下面的C語言程序翻譯為MIPS匯編語言程序(10分):
int MaxValue(int array[],int count)
{
int max_value = array[0];
for(int i=1;i
{
if(array[i] > max_value) max_value = array[i];
}
return max_value;
}
答:
(本題無標準答案,評閱時按匯編程序是否完成函數功能酌情給分)
一個直接映射Cache有4096個塊,每塊為4-Word,假設使用32bit地址,請計算這個Cache的標記Tag和索引Index各多少位(4分)? 整個Cache需要的總位數是多少(3分)?總位數與數據存儲位數的比率是多少(3分)?(詳細給出計算過程)
答:
字節選擇有4位;Index有12位(2分);Tag有16位;(2分)