我們先從一道簡單的問題說起!
設有一個1MB容量的存儲器,字長32位,問:按字節編址,字編址的尋址范圍以及各自的尋址范圍大小?
*如果按字節編址,則*
1MB = 2^20B
1字節=1B=8bit
2^20B/1B = 2^20
地址范圍為0~(2^20)-1,也就是說需要二十根地址線才能完成對1MB空間的編碼,所以地址寄存器為20位,尋址范圍大小為2^20=1M
*如果按字編址,則*
1MB=2^20B
1字=32bit=4B
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.
什么是位、字節、字、KB、MB?
什么是位、字節、字、KB、MB
位:”位(bit)”是電子計算機中最小的數據單位。每一位的狀態只能是0或1。
字節:8個二進制位構成1個”字節(Byte)”,它是存儲空間的基本計量單位。1個字節可以儲存1個英文字母或者半個漢字,換句話說,1個漢字占據2個字節的存儲空間。
字:”字”由若干個字節構成,字的位數叫做字長,不同檔次的機器有不同的字長。例如一台8位機,它的1個字就等於1個字節,字長為8位。如果是一台16位機,那么,它的1個字就由2個字節構成,字長為16位。字是計算機進行數據處理和運算的單位。
KB:在一般的計量單位中,通常K表示1000。例如:1公里= 1000米,經常被寫為1km;1公斤=1000克,寫為1kg。同樣K在二進制中也有類似的含義。只是這時K表示1024,也就是2的10次 方。1KB表示1K個Byte,也就是1024個字節。
MB:計量單位中的M(兆)是10的6次方,見到M自然想起要在該數值的后邊續上六個0,即擴大一百萬倍。在二進制中,MB也表示到了百萬級的數量級,但1MB不正好等於1000000字節,而是1048576字節,即 1MB = 2E+20 Bytes = 1048576Bytes。
MB就是通常說的兆
KB 1KB=1024B
MB 1MB=1024KB
GB 1GB=1024MB
某機字長為32位,存儲容量為64MB,若按字節編址.它的尋址范圍是多少?
問題:
1、某計算機字長為32位,其存儲容量為16MB,若按雙字編址,它的尋址范圍是多少?
2、某機字長為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。