訪存
機器字長 = 機器位數:是CPU一次處理的位數
- (64位機器,機器字長為64位,1字=64位=8位元組)
儲存字長 = 資料匯流排根數(MDR) :一次訪存取出一個儲存字長的資料,所以可能需要多次訪存才能進行一次操作
- (主存為64K×16位,儲存字長為16位,2位元組)
儲存字長不等於機器字長,但有些題並未分別清楚給出時預設相等
低體交叉編址和字位擴充套件
低體交叉編址分為輪流(流水線)和同時執行
判斷輪流還是同時需要看儲存字長(資料匯流排寬度)
輪流執行:
此時儲存字長 = 1個體的位數
- 可以理解為多個記憶體條先後依次執行,每次讀出還是1個記憶體的位數
同時執行:
儲存字長 = n個體的位數
- 並行,理解為n個記憶體條同時讀出,每次讀出n個記憶體的位數
- 如下的題幹中便為並行執行的方式
【2017 統考真題】某計算機主存按位元組編址,由4個64Mx8 位的 DRAM 晶片採用交叉編址方式構成,並與寬度為 32 位的儲存器匯流排相連
- 【2022.17】某記憶體條包含8個8192x8192*8位的DRAM 晶片,按位元組編址,支援突發(bust)傳送方式,對應儲存器匯流排寬度為64位,每個DRAM晶片內有一個行緩衝區,下列關於該記憶體條的敘述中,不正確的是(C)。(注意DRAM使用地址複用技術)
A.記憶體條的容量為512MB
B.採用多模組交叉編址方式 此處就是同時執行的情況
C.晶片的地址引腳為26位
D.晶片內行緩衝有8192x8位
而字位擴充套件可以穿插在交叉編址中
- 比如系統要求32K×16b的儲存器,透過兩個16K×8b的DRAM先擴充套件為32K×8b,再將兩個32K×8b的體進行交叉編址(此情況為同時執行)
- 也可以系統要求16K×16b的儲存器,透過兩個16K×8b的DRAM先擴充套件為16K×16b,再將兩個16K×16b的體進行交叉編址(此情況為輪流執行)
編址,定址
按位元組進行編址,可以按字或者位元組進行定址
按字編址則只能按字進行定址
- cpu有20根地址線和32根資料線,按位元組編址,按位元組和字定址,定址範圍分別是多少?
(注意此處預設了機器位數 = 儲存字長 = 32位)
按位元組定址,定址範圍:220=1MB
按字定址,32根資料線可以看做儲存字長有32位,4個位元組,這4個位元組的區分,需要從20根地址線拿出兩根作為字內定址,這樣剩下18根資料線來定址,定址範圍:218(0~218-1)
- 設有一個1MB容量的儲存器,字長32位,問:按位元組編址,字編址的定址範圍以及各自的定址範圍大小?
如果按位元組編址,則
1MB =220B
220B/1B=220
地址範圍為0~220-1,也就是說需要二十根地址線,定址範圍大小為2^20=1M
如果按字編址,則
1字=32bit=4B
220B/4B=218
地址範圍為0~218-1,也就是說我們至少要用18根地址線,因此按字編址的定址範圍是218
頁-主存-Cache
邏輯地址
透過邏輯頁號找到該頁對應的頁框號(物理頁號),以它為前n位,在後面n位後加上頁內地址即為主存地址
邏輯頁號(12) | 頁內地址(11) |
---|
頁面大小4KB=212,邏輯頁號(虛頁號)=12位
邏輯(虛擬)地址空間8MB=223,則頁內地址為11位
主存地址
物理頁號(3) | 頁內地址(11) |
---|
主存塊號(6) | 塊內地址(8) |
---|---|
標記+行號(組號) |
主存地址空間為16KB=214,物理頁號為14-11=3位
主存塊內地址 = Cache行長 = 28
Cache
行長(8) |
---|
cache行長只代表塊內地址位數,標記等資訊不參與計算
注意容量和總容量,容量=行長×塊數,總容量行長還要加上標記等
髒位 | 有效位 | 標記 | 行長(8) |
---|
N組相聯 LRU髒位數n: 2n=N