咱們先從一道簡單的問題提及!post
設有一個1MB容量的存儲器,字長32位,問:按字節編址,字編址的尋址範圍以及各自的尋址範圍大小? 編碼
若是按字節編址,則 .net
1MB = 2^20B blog
(ps:1MB=1024kb,1kb=1024btye,1024是2的10次方)get
1字節=1B=8bit it
2^20B/1B = 2^20 class
地址範圍爲0~(2^20)-1,也就是說須要二十根地址線才能完成對1MB空間的編碼,因此地址寄存器爲20位,尋址範圍大小爲2^20=1M方法
(ps:求出該存儲器最多可容納多少字節,從0到最多可容納的字節數就是地址範圍)qq
若是按字編址,則計算機
1MB=2^20B
1字=32bit=4B
(ps:字長是32位,就是指1字=32bit,該信息只有在按字編址時纔有用。這裏的字長說的是存儲字長)
2^20B/4B = 2^18
地址範圍爲0~2^18-1,也就是說咱們至少要用18根地址線才能完成對1MB空間的編碼。所以按字編址的尋址範圍是2^18
以上題目注意幾點:
1.區分尋址空間與尋址範圍兩個不一樣的概念,尋址範圍僅僅是一個數字範圍,不帶有單位
而尋址範圍的大小很明顯是一個數,指尋址區間的大小
而尋址空間指可以尋址最大容量,單位通常用MB、B來表示;本題中尋址範圍爲0~(2^20)-1,尋址空間爲1MB。
2.按字節尋址,指的是存儲空間的最小編址單位是字節,按字編址,是指存儲空間的最小編址單位是字,以上題爲例,總的存儲器容量是必定的,按字編址和按字節編址所須要的編碼數量是不一樣的,按字編址因爲編址單位比較大(1字=32bit=4B),從而編碼較少,而按字節編址因爲編碼單位較小(1字節=1B=8bit),從而編碼較多。
3.區別M和MB。
M爲數量單位。1024=1K,1024K=1M
MB指容量大小。1024B=1KB,1024KB=1MB.
某機字長爲32位,存儲容量爲64MB,若按字節編址.它的尋址範圍是多少?
問題:
問題:
一、某計算機字長爲32位,其存儲容量爲16MB,若按雙字編址,它的尋址範圍是多少?
二、某機字長爲32位,存儲容量爲64MB,若按字節編址.它的尋址範圍是多少?
解答:
個人方法是所有換算成1位2進制的基本單元來算。先計算總容量,如第一題中是16mb中,一B爲8位,也就是8個一位基本單元組成,16M=2^24位=2^24個一位基本單元。因此總的基本單元是2^24*8。
一個字長是n位,就是說一個字是由n個一位基本單元組成。按照字來編址就是說由一個字所包含的一位基本單元的個數做爲一個地址單元,它對應一個地址。同理,雙字編址就是兩個字所包含的的基本單元數做爲一個地址單元。因爲一個字節(1B)永遠是8位,因此按字節編址永遠是8個一位基本單元做爲一個地址單元。尋址範圍就是說總共有多少個這樣的地址。
第一題中一個字長是32位,對於按字編址來講一個地址單元有32個基本單元,按雙字編址則是一個地址單元有64個,按字節是8個,總容量是2^24*8個。因此按字編址的地址數是2^24*8/32個,按雙字是2^24*8/64個,按字節是2^24*8/8個。所以,第一題答案是2^21=2M。
同理,第二題答案是2^26*8/8=2^26=64M。