關於按字定址和按位元組定址的理解
我們先從一道簡單的問題說起!
設有一個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
位:”位(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
問題:
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。