1. 程式人生 > >計算機組成原理補充——多體並行:高位/低位交叉編址

計算機組成原理補充——多體並行:高位/低位交叉編址

(1)圖是適合於並行工作的高位交叉編址的多體儲存器結構示意圖,圖中程式因按體內地址順序存放(一個體存滿後,再存入下一個體),故又有順序儲存之稱。高位地址可表示體號,低位地址為體內地址。按這種編址方式,只要合理調動,使不同的請求源同時訪問不同的體,便可實現並行工作。例如,當一個體正與CPU交換資訊時,另一個體可同時與外部裝置進行直接儲存器訪問,實現兩個體並行工作。這種編址方式由於一個體內的地址是連續的,有利於儲存器的擴充。


(2)圖是低位交叉編址的多體模組結構示意圖。由於程式連續存放在相鄰體中,故又有交叉儲存之稱。低位地址用來表示體號,高位地址為體內地址。這種編址方式又稱為模M編址(M等於模組數),一般模組數取2的方冪,使硬體電路比較簡單。有的機器為了減少儲存器衝突,採取質數個模組。

以實際資料為例,這樣比較容易理解,比如說某個儲存體的有2個儲存晶片,每個晶片的儲存週期為100ns,如果你去讀資料,如果你的資料按照這種放置方法,先放第一個晶片,放滿後再放第2個晶片(順序方式)。那麼你讀資料的過程就是這樣:

讀0位置資料,等100ns,讀1位置資料,等100ns讀2位置資料。很容易理解。

但如果你換個方式來放,比如說我0位置是1號晶片起始,1位置是2號晶片起始位置,2位置是1號晶片第2個單元,3位置是2號晶片的第2個單元這樣交叉來編址。再回憶儲存週期的概念:其實從晶片中把資料讀到緩衝區,再從緩衝區讀到CPU,這個讀的過程非常短,僅僅是個脈衝就可以解決的問題,但由於晶片的物理屬性,你讀一個晶片後,必須間隔一段時間才能去讀。採用

交叉編址後,你的讀過程就像這樣:

讀0位置資料到緩衝區,40ns後,CPU取走了資料。這時1號晶片的100ns的週期還沒過,不能去讀,但幸運的是我們讀的不是1號晶片,而是2號晶片,這樣,我們就把2號晶片的資料讀到緩衝區。過了40ns後,CPU取走資料,此時過去了80ns,我們只需再等20ns就可以繼續去讀3號位置資料,這樣速度就比以前快了很多。

低位交叉編址又稱為橫向編址,連續的地址分佈在相鄰的儲存體中,而同一儲存體內的地址都是不連續的。儲存器地址暫存器的低位部分經過譯碼選擇不同的儲存體,而高位部分則指向儲存體內的儲存字。如果採用分時啟動的方法,可以在不改變每個儲存體存取週期的前提下,提高整個主存的速度。



1、一個4體並行低位交叉儲存器,每個模組的容量是64K×32位,存取週期為200ns,在以下說法中,( )是正確的。
A. 在200ns內,儲存器能向CPU提供256位二進位制資訊
B. 在200ns內,儲存器能向CPU提供128位二進位制資訊
C. 在50ns內,每個模組能向CPU提供32位二進位制資訊
D. 都不對
解:對CPU來說,它可以在一個存取週期內連續訪問4個模組,32位×4=128位。本題答案為B。

2、以下敘述中正確的是( )。
Ⅰ.雙埠儲存器可以同時訪問同一區間、同一單元
Ⅱ.當兩個埠的地址碼相同時,雙埠儲存器必然會發生衝突
Ⅲ.高位多體交叉儲存器的設計依據是程式的區域性性原理
Ⅳ.高位四體交叉儲存器可能在一個儲存週期內連續訪問4個模組
A. 僅Ⅰ、Ⅲ    B. 僅Ⅱ、Ⅲ    C. 僅Ⅰ、Ⅳ     D. 僅Ⅰ
解:雙埠儲存器有兩組相互獨立的地址線、資料線和讀寫控制線,因此可以同時訪問同一區間。當兩個埠的地址碼相同時,雙埠儲存器的讀操作不會發生衝突,寫操作會發生衝突。由於高位多體交叉儲存器中單個儲存器中的字是連續存放的,不能保證程式的區域性性原理,而由於低位多體交叉儲存器交叉存放,因此滿足程式的區域性性原理。高位四體交叉儲存器仍可能一次連續讀出彼此地址相差一個儲存體容量的4個字,但這樣讀的概率較小。本題答案為C。

3、採用4體並行低位交叉儲存器,每個模組的容量是32K×16位,存取週期為400ns,在以下說法中,      是正確的。
A. 在0.1µs內,儲存器能向CPU提供26位二進位制資訊
B. 在0.1µs內,儲存器能向CPU提供16位二進位制資訊
C. 在0.4µs內,儲存器能向CPU提供26位二進位制資訊
D. 都不對
解:400ns=0.4µs,16位×4=64位=26位。本題答案為C。

4、多體並行方式有兩種,其中高位交叉編址的多體儲存器中,程式  ① 存放,而低位交叉編址的多體儲存器中,程式  ② 

解:本題答案為:① 按體內地址順序 ② 連續存放在相鄰體中。

採用多體交叉儲存器時,主要由地址的低位部分來選擇各個儲存體。

採用多體交叉儲存器時,當連續訪問的儲存單元位於不同的儲存體時可獲得較高的存取速度。

有M個儲存體的低位交叉編址的多體儲存器是採用模M編址方式。

附加:**程式的空間區域性性**: 是指程式即將用到的資訊可能與目前正在使用的資訊在空間上相鄰或者臨近。 程式的區域性性原理是計算機體系結構設計的基礎之一