按字寻址与按字节寻址
問:一個16K×32位的存儲器,其地址線和數據線的總和是多少?選用如下規格的存儲器芯片時,需要多少片?
A.1K×4位芯片? ? ?B.4K×8位芯片
解答:
- 內存的容量有多少,就是用多少個二進制數表示,地址線的條數就是多少根。
? ? ? ? ?16K是其容量大小,16K=2^14,故地址線14根;
- 數據線指一次傳輸的數據的寬度,32位的寬度需要用32根數據線。
? ? ? ? ?故總和為14+32=46根。
A.(16K×32)/(1K×4)=16×8=128片
B.(16K×32)/(4K×8)=4K×4=16片
基本概念:
- 字長?表示機器CPU的處理能力,即CPU在單位時間內能處理的最大二進制數的位數稱為字長
? ? ?若字長為32位,則1字=32bit=4B,表明存儲器一次可以處理4個存儲單元,指令長度為4個存儲單元。
- 位? ?數據存儲的最小單位,一個位的取值只能是0或1
- 字節(B/Byte)1個字節等于8位,即1Byte=8bit
- 字? 在計算機中,一串數碼作為一個整體來處理或運算的,稱為一個字。字的位數稱為字長;字通常分若干個字節。
- 存儲單元 :CPU訪問存儲器的最小單位,每個存儲單元都有一個地址。
- 存儲字長?:存儲器中一個存儲單元(存儲地址)所存儲的二進制代碼的位數。
- 存儲容量? ? 存儲容量是主存中能存放二進制代碼的總位數,即存儲容量=存儲單元個數*存儲字長(每個存儲單元的位數),也可用字節總數來表示:?存儲容量=存儲單元個數*存儲字長/8
- 地址線??存儲單元的個數=存儲容量=2^地址線的條數?,一個存儲單元占一個字節(1B,也就是8位)。字節用來計量存儲容量。
? ? ? ?一個cpu的N根地址總線,則可以說這個CPU的地址總線寬度為N。這樣cpu最多可以尋址2^N個內存單元
? ? ? ? 若題目中給出存儲容量=4GB,則內存容量=4GB=4*(2^30)B=2^32B,一個存儲單元占一個字節,故存儲單元個數為? ? ? ? ? ? ? ? ? ? ? 2^32,地址線條數是32根。
- 數據線 數據線確定存儲字長,數據線的條數=字長的位數。
- 尋址空間與尋址范圍
?尋址范圍只是一個數字范圍,不帶有單位,而尋址范圍的大小指的是尋址空間的大小,尋址空間指能夠尋址的最大容? ? ? ? ? ? ? ? ? ? 量,?單位一般用MB、B來表示。
《計算機組成原理》——唐朔飛 P73
對于24位地址線的主存而言
若字長為32位:①按字節尋址的范圍為16M?!?^24B=16M】②按字尋址的范圍為4M?!?^24B / 4B = 4M】
若字長為16位:①按字節尋址的范圍為16M?!?^24B=16M】②按字尋址的范圍為8M。【2^24B / 2B = 8M】
按字節尋址:
一組地址線的每個不同狀態對應一個字節的地址,存儲空間的最小編址單位是字節。
例如,對24位地址線的主存而言(也就是有24根地址線),按字節尋址,每根線有兩個狀態,那么24根地址線組成的地址信號就有2^24個不同的狀態,每個狀態對應一個字節的地址空間的話,那么24根地址線的可尋址空間為2^24B,即16MB。
按字尋址:
一組地址線的每個不同狀態對應一個字的地址,存儲空間的最小編址單位是字。
一個字由若干個字節構成,所以計算機在尋址過程中會區分字里面的字節,即會給字里面的字節編址,這樣就會占用部分地址線,例如有24根地址線,機器字長為16位,若按字尋址的話,16位=2個字節,需要占用一根地址線用來字內尋址,這樣就剩下23根地址線,故按字尋址范圍是2^23W(W是字長的意思),也就是8MW。【真正用于按字尋址的地址線只有24-1=23根】
設有一個1MB容量的存儲器,字長為32位,問按字節尋址、按字尋址的尋址范圍以及各自的尋址范圍的大小是多少?
1MB=2^20B? ?① 1字節=1B=8b=8位?②1字=32位=32b=4B
(1)按字節編址
尋址范圍:0~(2^20-1),【2^20B / 1B = 2^20】,即需要20根地址線才能完成對1MB空間的編碼,即地址寄存器為20位
尋址范圍大小:2^20=1M
(2)按字編址
尋址范圍:0~(2^18-1),【2^20B / 4B = 2^18】,即至少需要18根地址線才能完成對1MB空間的編碼。
尋址范圍大小:2^18=256K
NOTE:
- https://blog.csdn.net/m0_37345402/article/details/83414412?
- 1K和1KB區別。在硬盤等存儲上一般認為二者沒有區別,都是指大小,但在一些計算題中,1K往往是指由地址線個數(或地址位)直接得出的大小,1KB往往是和機器字長相乘的出的存儲器容量大小。
- 一個16位機,即一個字的字長為16位,因為1字節=8位,故這里一個字由2個字節組成。
- 一個32位機,即一個字的字長為32位,因為1字節=8位,故這里一個字有4個字節組成。
- M是數量單位:1024=1K,1024K=1M;? MB是指容量大小:1024B=1KB,1024KB=1MB
- 機器字長:CPU一次能處理數據的位數,通常與CPU的寄存器位數有關。
- 存儲字長:存儲器中一個存儲單元(存儲地址)所存儲的二進制代碼的位數,即存儲器中的MDR的位數。
- 指令字長:計算機中指令字的位數。
- 數據字長:計算機數據存儲所占用的位數。
注:馮諾依曼機中,指令和數據同等重要,都存放在存儲器中,并可按地址尋訪。
通常早期計算機:存儲字長 = 指令字長 = 數據字長。故訪問一次便可取一條指令或一個數據,隨著計算機應用范圍的不斷擴大,三者可能各不相同,但它們必須是字節的整數倍。
習題1:若256KB的SRAM(靜態隨機存取存儲器)有8條數據線,則它有多少條地址線?
存儲容量=存儲單元個數*存儲字長(每個存儲單元的位數,一般為1B=8b(位))
8條數據總線代表8位,也就是1B,存儲容量=存儲單元數*存儲字長,即存儲單元數=256K=2^18,故有18條地址線。
習題2:寫出下列RAM芯片片內的地址線和數據線的條數:(1)4K*8位? (2)512K*4位? (3)1M*1位
(1)地址線:12條【4K=2^12】 數據線:8條
(2)地址線:19條【512K=2^19】 數據線:4條
(3)地址線:20條【1M=2^20】 數據線:1條
習題3:設一個具有20位地址和32位字長的存儲器,問:
(1)那么該存儲器能存儲多少個字節的信息?
? ? ? ? ?2^20次方=1M(1024K),32位字長即為4B(4個字節),故存儲器容量為:1M*4B=4MB,即可以存儲4M字節的信息。
(2)如果存儲器由512K*8位SRAM芯片組成,需要多少片?(512Kx8位,512K表示芯片的尋址范圍可以達到512K,8位表示系統數據總線有8位。512Kx8位表示芯片的容量。)
? ? ? ? (?1M×32)/( 512K×8)需要8片??
(3)需要多少地址線做芯片選擇?
? ? ? ? 512Kx8位的芯片需要19位地址,因此只有1位地址作芯片選擇。方法:將4片SRAM芯片位擴展位512Kx32位(地址線19位),再將兩組512Kx32位組成整個存儲器(1根地址線)。
轉載按字尋址與按字節尋址
總結
以上是生活随笔為你收集整理的按字寻址与按字节寻址的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 洛谷P2401 不等数列(线性DP)
- 下一篇: 汉明码的理解