關於存儲器按字節尋址和按字尋址的理解
近日在學習MOOC上學習哈工大劉宏偉老師的“計算機系統組成原理”課程,在4.1節提到主存的時候簡單地提到一下關於按字節尋址和按字尋址的尋址空間問題,個人非常疑惑於是各處搜索查找資料,下面是本人就這個問題的理解,諸多不足請各位網友批評指正
個人對按字、按字節尋址的理解

自己的理解:
字長度可為8的整數倍,如32,8位,按字尋址的話,32位存儲字包含4個字節,地址線需留出2跟來區分四個字節的位置。按字節尋址的話,則不需要留出地址線來分區了,因為就一個字節。
什么是位、字節、字、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
-
地址線和數據線
地址線:用於傳輸地址信息,就像網線一樣,內部的線纜有很多但是都封裝起來了所以我們看不到,一根地址線可以通過高電平(1)或低電平(0)的電流,根據電流的不同來傳輸地址數據,這樣就很清楚了,每1根地址線有2個狀態,那么N根地址線就可以表示2N2N個不同狀態,這些不同的狀態即可以用來表示不同的地址。
數據線:用於傳輸數據,可以簡單的理解為字長為16位的計算機的數據線有16根,因為單位時間內最多傳輸16位二進制數,所以16根數據線每根都要變換高低電平來輸出0或1。
例:一個16K×32位的主,其地址線和數據線的總和是?
答:首先看后面的32位,這個說明該的字長為32個字節即有32根數據線。然后看到前面16K,這個是什么意思呢?這里的16K就是尋址范圍(即尋址空間),簡單說這里的尋址范圍就是我上面提到的地址線表示的狀態,那么根據題意一共有16K個不同狀態,那么需要多少根地址線呢? 16K=16*210=24∗210=214,上面說了有N根地址線就有2N210=24∗210=214,上面說了有N根地址線就有2N個狀態,所以地址線為14根。那么總和為32+14=46根。怎么樣?是不是感覺簡單了很多呢?
按字節尋址和按字尋址
- 終於回到正題上了,首先我們講講什么叫尋址,尋址就是尋找地址,當CPU請求數據的時候就會對進行讀數據的請求。假設我們有一塊硬盤,那么硬盤在接收到請求之后就開始查找這個CPU需求的數據具體是放在哪呢?實際上,硬盤上儲存的所有數據都有一個自己的地址,在物理上實現是通過磁頭在盤片上定位數據的一個過程。不同存儲器計算機這兩個有什么區別呢?下面我們從三個例題來入手:
- 例1:設有一台機器有24根地址線,按字節尋址,求其尋址范圍。
解:如果按照字節尋址,就是一個地址線表示的數(即狀態)對應一個字節的地址。由此可以得到地址的范圍(即狀態總和)就是224224,即16M。那么尋址的范圍就是16MB,注意單位是MB,地址的范圍表示的僅僅是數量值,而按字節尋址的范圍其單位則為容量單位,自然要帶上字節B。
- 例2:設有一台機器有24根地址線,其字長為16位,按字尋址,求其尋址范圍。
解:字里面封裝了字節,為了確保每個字節或者說每個數據都有自己的一個編號,那么需要犧牲一部分地址線來實現。16位字長的機器,每個字表示2個字節,用1位地址線就能區分出來,這邊可以類比成“每個袋子裝了兩個包子,而我現在只給袋子編號,那么你想要找到袋子里面的包子到底是第一個還是第二個就必須在拿出一位的0和1來表示第一個還是第二個包子”。由此表示字地址的數據線位數就只剩下了24-1=23位了。所以尋址的范圍就變成了2^23MW,即4MW了。
- 例3:設有一台機器有24根地址線,其字長為32位,按字尋址,求其尋址范圍。
這個問題就留給后來的讀者思考吧,想通了的話其實也很簡單!
- 例3:設有一台機器有24根地址線,其字長為32位,按字尋址,求其尋址范圍。
- 例2:設有一台機器有24根地址線,其字長為16位,按字尋址,求其尋址范圍。
