試卷資訊
試卷名稱:無年度 - 計算機概要-16#11007
科目:計算機概論、大意(資訊科學概論,電腦常識,電子計算機概論)
以下兩種不同版本的 C 程式,所有的變數皆為整數。
版本一:
for (j=0; j<20; j++) /* Version 1 */
for (i=0; i<10000; i++) x[i][j] = x[i][j]+1;
版本二:
for (i=0; i<10000; i++) /* Version 2 */
for (j=0; j<20; j++) x[i][j] = x[i][j]+1;
2 個程式先後在同一台電腦上面執行,該電腦的處理器中有 1 個直接對應的(direct-mapped)資料快取記憶體(data cache),其容量為 8KB,區塊長度(block size)為 16 位元組,假設軟體環境維持不變,也未受到其他程式的干擾,且程式執行時未發生任何錯誤(error),請問下列敘述何者正確?
(A)版本一比版本二快,因為版本一的資料快取記憶體的失誤率(cache miss rate)比較低
(B)版本一比版本二慢,因為版本一的資料快取記憶體的失誤率(cache miss rate)比較高
(C)兩種版本速度相同,因為兩版本的資料快取記憶體的失誤率(cache miss rate)相同
(D)兩種版本的程式結果不同,不能比較