① 問:什麼是位擴展,什麼是字擴展
存儲晶元的擴展包括位擴展、字擴展和字位同時擴展等三種情況。1、位擴展位擴展是指存儲晶元的字(單元)數滿足要求而位數不夠,需對每個存儲單元的位數進行擴展。例:用1K×4的2114晶元構成lK×8的存儲器系統。分析:每個晶元的容量為1K,滿足存儲器系統的容量要求。但由於每個晶元只能提供4位數據,故需用2片這樣的晶元,它們分別提供4位數據至系統的數據匯流排,以滿足存儲器系統的字長要求。設計要點:(1)將每個晶元的10位(1k=2^10)地址線按引腳名稱一一並聯,按次序逐根接至系統地址匯流排的低10位。(2)數據線則按晶元編號連接,1號晶元的4位數據線依次接至系統數據匯流排的D0-D3,2號晶元的4位數據線依次接至系統數據匯流排的D4-D7。(3)兩個晶元的端並在一起後接至系統控制匯流排的存儲器寫信號(如CPU為8086/8088,也可由和/M或IO/組合來承擔)(4)引腳分別並聯後接至地址解碼器的輸出,而地址解碼器的輸入則由系統地址匯流排的高位來承擔。當存儲器工作時,系統根據高位地址的解碼同時選中兩個晶元,而地址碼的低位也同時到達每一個晶元,從而選中它們的同一個單元。在讀/寫信號的作用下,兩個晶元的數據同時讀出,送上系統數據匯流排,產生一個位元組的輸出,或者同時將來自數據匯流排上的位元組數據寫入存儲器。2、字擴充字擴展用於存儲晶元的位數滿足要求而字數不夠的情況,是對存儲單元數量的擴展。例:用2K×8的2716A存儲器晶元組成8K×8的存儲器系統分析:由於每個晶元的字長為8位,故滿足存儲器系統的字長要求。但由於每個晶元只能提供2K個存儲單元,故需用4片這樣的晶元,以滿足存儲器系統的容量要求。設計要點:同位擴充方式相似。(1)先將每個晶元的11(2*2^10)位地址線按引腳名稱一一並聯,然後按次序逐根接至系統地址匯流排的低11位。(2)將每個晶元的8位數據線依次接至系統數據匯流排的D0-D7。(3)兩個晶元的端並在一起後接至系統控制匯流排的存儲器讀信號(這樣連接的原因同位擴充方式),(4)它們的引腳分別接至地址解碼器的不同輸出,地址解碼器的輸入則由系統地址匯流排的高位來承擔。當存儲器工作時,根據高位地址的不同,系統通過解碼器分別選中不同的晶元,低位地址碼則同時到達每一個晶元,選中它們的相應單元。在讀信號的作用下,選中晶元的數據被讀出,送上系統數據匯流排,產生一個位元組的輸出。3、同時進行位擴充與字擴充存儲器晶元的字長和容量均不符合存儲器系統的要求,需要用多片這樣的晶元同時進行位擴充和字擴充,以滿足系統的要求。例:用1K×4的2114晶元組成2K×8的存儲器系統分析:由於晶元的字長為4位,因此首先需用採用位擴充的方法,用兩片晶元組成1K×8的存儲器。再採用字擴充的方法來擴充容量,使用兩組經過上述位擴充的晶元組來完成。設計要點:每個晶元的10根地址信號引腳宜接接至系統地址匯流排的低10位,每組兩個晶元的4位數據線分別接至系統數據匯流排的高/低四位。地址碼的A10、A11經解碼後的輸出,分別作為兩組晶元的片選信號,每個晶元的控制端直接接到CPU的讀/寫控制端上,以實現對存儲器的讀/寫控制。當存儲器工作時,根據高位地址的不同,系統通過解碼器分別選中不同的晶元組,低位地址碼則同時到達每一個晶元組,選中它們的相應單元。在讀/寫信號的作用下,選中晶元組的數據被讀出,送上系統數據匯流排,產生一個位元組的輸出,或者將來自數據匯流排上的位元組數據寫入晶元組。
② 存儲器容量擴充方法有哪幾種他們各有什麼優缺點
字擴展與位擴展,但是它們兩個合起來才是一種完整的存儲器擴展方法。
③ 字擴展與位擴展
位擴展:當主存儲器的字長與單個存儲晶元的字數相同而位數不相同時,可採用位擴展方式來組織 多個存儲晶元構成主存儲器。
字擴展:當主存儲器的字長與單個存儲晶元的字長相同而字數不相同時,可採用字擴展方式來組織多個存儲晶元構成主存儲器。
④ 計算機組成原理(三)存儲系統
輔存中的數據要調入主存後才能被CPU訪問
按存儲介質,存儲器可分為磁表面存儲器(磁碟、磁帶)、磁心存儲器半導體存儲器(MOS型存儲器、雙極型存儲器)和光存儲器(光碟)。
隨機存取存儲器(RAM):讀寫任何一個存儲單元所需時間都相同,與存儲單元所在的物理位置無關,如內存條等
順序存取存儲器(SAM):讀寫一個存儲單元所需時間取決於存儲單元所在的物理位置,如磁碟等
直接存取存儲器(DAM):既有隨機存取特性,也有順序存取特性。先直接選取信息所在區域,然後按順序方式存取。如硬碟等
相聯存儲器,即可以按內容訪問的存儲器(CAM)可以按照內容檢索到存儲位置進行讀寫,「快表」就是一種相聯存儲器
讀寫存儲器—即可讀、也可寫(如:磁碟、內存、Cache)
只讀存儲器—只能讀,不能寫(如:實體音樂專輯通常採用CD-ROM,實體電影採用藍光光碟,BIOS通常寫在ROM中)
斷電後,存儲信息消失的存儲器——易失性存儲器(主存、Cache)
斷電後,存儲信息依然保持的存儲器——非易失性存儲器(磁碟、光碟)
信息讀出後,原存儲信息被破壞——破壞性讀出(如DRAM晶元,讀出數據後要進行重寫)
信息讀出後,原存儲信息不被破壞——非破壞性讀出(如SRAM晶元、磁碟、光碟)
存儲器晶元的基本電路如下
封裝後如下圖所示
圖中的每條線都會對應一個金屬引腳,另外還有供電引腳、接地引腳,故可以由此求引腳數目
n位地址對應2 n 個存儲單元
假如有8k×8位的存儲晶元,即
現代計算機通常按位元組編址,即每個位元組對應一個地址
但也支持按位元組定址、按字定址、按半字定址、按雙字定址
(Dynamic Random Access Memory,DRAM)即動態RAM,使用柵極電容存儲信息
(Static Random Access Memory,SRAM)即靜態RAM,使用雙穩態觸發器存儲信息
DRAM用於主存、SRAM用於Cache,兩者都屬於易失性存儲器
簡單模型下需要有 根選通線,而行列地址下僅需 根選通線
ROM晶元具有非易失性,斷電後數據不會丟失
主板上的BIOS晶元(ROM),存儲了「自舉裝入程序」,負責引導裝入操作系統(開機)。邏輯上,主存由 輔存RAM+ROM組成,且二者常統一編址
位擴展的連接方式是將多個存儲晶元的地址端、片選端和讀寫控制端相應並聯,數據端分別引出。
字擴展是指增加存儲器中字的數量,而位數不變。字擴展將晶元的地址線、數據線、讀寫控制線相應並聯,而由片選信號來區分各晶元的地址范圍。
實際上,存儲器往往需要同時擴充字和位。字位同時擴展是指既增加存儲字的數量,又增加存儲字長。
兩個埠對同一主存操作有以下4種情況:
當出現(3)(4)時,置「忙」信號為0,由判斷邏輯決定暫時關閉一個埠(即被延時),未被關閉的埠正常訪問,被關閉的埠延長一個很短的時間段後再訪問。
多體並行存儲器由多體模塊組成。每個模塊都有相同的容量和存取速度,各模塊都有獨立的讀寫控制電路、地址寄存器和數據寄存器。它們既能並行工作,又能交義工作。多體並行存儲器分為高位交叉編址(順序方式)和低位交叉編址(交叉方式)兩種.
①高位交叉編址
②低位交叉編址
採用「流水線」的方式並行存取(宏觀上並行,微觀上串列),連續取n個存儲字耗時可縮短為
宏觀上,一個存儲周期內,m體交叉存儲器可以提供的數據量為單個模塊的m倍。存取周期為T,存取時間/匯流排傳輸周期為r,為了使流水線不間斷,應保證模塊數
單體多字系統的特點是存儲器中只有一個存儲體,每個存儲單元存儲m個字,匯流排寬度也為m個字。一次並行讀出m個字,地址必須順序排列並處於同一存儲單元。
缺點:每次只能同時取m個字,不能單獨取其中某個字;指令和數據在主存內必須是連續存放的
為便於Cache 和主存之間交換信息,Cache 和主存都被劃分為相等的塊,Cache 塊又稱Cache 行,每塊由若干位元組組成。塊的長度稱為塊長(Cache 行長)。由於Cache 的容量遠小於主存的容盤,所以Cache中的塊數要遠少於主存中的塊數,它僅保存主存中最活躍的若干塊的副本。因此 Cache 按照某種策略,預測CPU在未來一段時間內欲訪存的數據,將其裝入Cache.
將某些主存塊復制到Cache中,緩和CPU與主存之間的速度矛盾
CPU欲訪問的信息已在Cache中的比率稱為命中率H。先訪問Cache,若Cache未命中再訪問主存,系統的平均訪問時間t 為
同時訪問Cache和主存,若Cache命中則立即停止訪問主存系統的平均訪問時間t 為
空間局部性:在最近的未來要用到的信息(指令和數據),很可能與現在正在使用的信息在存儲空間上是鄰近的
時間局部性:在最近的未來要用到的信息,很可能是現在正在使用的信息
基於局部性原理,不難想到,可以把CPU目前訪問的地址「周圍」的部分數據放到Cache中
直接映射方式不需要考慮替換演算法,僅全相聯映射和組相聯映射需要考慮
①隨機演算法(RAND):若Cache已滿,則隨機選擇一塊替換。實現簡單,但完全沒考慮局部性原理,命中率低,實際效果很不穩定
②先進先出演算法(FIFO):若Cache已滿,則替換最先被調入Cache的塊。實現簡單,依然沒考慮局部性原理
③近期最少使用演算法(LRU):為每一個Cache塊設置一個「計數器」,用於記錄每個Cache塊已經有多久沒被訪問了。當Cache滿後替換「計數器」最大的.基於「局部性原理」,LRU演算法的實際運行效果優秀,Cache命中率高。
④最不經常使用演算法(LFU):為每一個Cache塊設置一個「計數器」,用於記錄每個Cache塊被訪問過幾次。當Cache滿後替換「計數器」最小的.並沒有很好地遵循局部性原理,因此實際運行效果不如LRU
現代計算機常採用多級Cache,各級Cache之間常採用「全寫法+非寫分配法」;Cache-主存之間常採用「寫回法+寫分配法」
寫回法(write-back):當CPU對Cache寫命中時,只修改Cache的內容,而不立即寫入主存,只有當此塊被換出時才寫回主存。減少了訪存次數,但存在數據不一致的隱患。
全寫法(寫直通法,write-through):當CPU對Cache寫命中時,必須把數據同時寫入Cache和主存,一般使用寫緩沖(write buffer)。使用寫緩沖,CPU寫的速度很快,若寫操作不頻繁,則效果很好。若寫操作很頻繁,可能會因為寫緩沖飽和而發生阻塞訪存次數增加,速度變慢,但更能保證數據一致性
寫分配法(write-allocate):當CPU對Cache寫不命中時,把主存中的塊調入Cache,在Cache中修改。通常搭配寫回法使用。
非寫分配法(not-write-allocate):當CPU對Cache寫不命中時只寫入主存,不調入Cache。搭配全寫法使用。
頁式存儲系統:一個程序(進程)在邏輯上被分為若干個大小相等的「頁面」, 「頁面」大小與「塊」的大小相同 。每個頁面可以離散地放入不同的主存塊中。CPU執行的機器指令中,使用的是「邏輯地址」,因此需要通「頁表」將邏輯地址轉為物理地址。頁表的作用:記錄了每個邏輯頁面存放在哪個主存塊中
邏輯地址(虛地址):程序員視角看到的地址
物理地址(實地址):實際在主存中的地址
快表是一種「相聯存儲器」,可以按內容尋訪,表中存儲的是頁表項的副本;Cache中存儲的是主存塊的副本
地址映射表中每一行都有對應的標記項
主存-輔存:實現虛擬存儲系統,解決了主存容量不夠的問題
Cache-主存:解決了主存與CPU速度不匹配的問題
⑤ 《計算機組成原理》存儲器的字擴展法
4片需要4個片選信號,高兩位地址產生經2-4解碼器產生4個片選信號。1k*4到
2k*8從4位到8位是位擴展,其實字擴展的只是將兩個1k*8得到2k*8,只需兩個片選信號即可,一位高位地址線即可。
二
1.給的晶元的數據線只有4條,但要你通過位擴展到8條
2,3.其實就是用現有晶元得到擴展晶元的連線圖,然後與cpu的數據線和控制線相連
4.是的
⑥ 給出晶元的存儲范圍怎麼連接解碼器
主存晶元和cpu的連接原理
主存通過數據線/地址線/控制線和cpu相連
數據匯流排的位數W D W_DW
D
和匯流排工作頻率f B f_Bf
B
的乘積B = W D f B B=W_Df_BB=W
D
f
B
正比於數據傳輸速率
地址匯流排的位數決定了可定址的最大內存空間
控制匯流排(讀.寫)指出匯流排周期的類型和本次輸入輸出操作完成的時刻
多個內存晶元集成到一個內存條上
多個內存條和主板上的ROM晶元組成計算機所需的主存空間,再通過匯流排與cpu相連
內存條插槽就是存儲器匯流排
內存中的信息通過內存條的引腳,再通過插槽內的引線連接到主板上
主板上的導線連接到cpu上
主存容量的擴展
單個晶元的容量有限
可通過字擴展/位擴展兩方面來擴充主存容量
位擴展法
字擴展發
字位同時擴展
存儲器容量S=地址線數N A N_AN
A
乘以字長W
S = N A × W S=N_A\times{W}S=N
A
×W
位擴展法
cpu的數據線和存儲晶元數據位數不一定相等
必須進行位擴展,使用多個存儲器間對字長進行擴展,使其數據位數和cpu的數據線相等
也即是擴展單個存儲字的字長(僅提升W)
可見,單純的位擴展沒有擴大定址范圍
在同一時刻,cpu片選中所有晶元,每個晶元讀取相同個bit內容
片選信號C S ‾ \overline{CS}
CS
要鏈接到所有晶元
每片的數據線一次作為cpu數據線的一位
採用位擴展時,所有晶元鏈接地址線的方式相同
另一種擴展方式是字擴展法,擴展的是存儲字總數(僅提升N A N_AN
A
)
將多個存儲晶元的以下方面相應並聯
地址端
片選端
讀寫控制端
數據端分別引出
字擴展法
擴展的是存儲字總數(僅提升N A N_AN
A
),字的位數不變
將晶元的以下方面相應並聯
地址線
數據線
讀寫控制線
片選信號用來區分各晶元的地址范圍
僅採用字擴展時,各晶元
連接地址線的方式相同
連接數據線的方式也相同
但是在某一時刻只選中部分晶元
通過**片選信號C S ‾ \overline{CS}
CS
**或者採用解碼器設計連接到相應存儲晶元
字位同時擴展法
同時增加N A , W N_A,WN
A
,W
一般先執行位擴展(分組→ \to→整體)
再執行字擴展
連線:
所有晶元的地址線連線還是相同
數據線不同
存儲晶元的地址分配和片選
cpu訪問存儲單元
首先需要進行片選
多個存儲晶元構成的存儲器,選擇其中的一片進行訪問
片選信號的產生分為線選法和解碼片選法
再進行字選
在選中的晶元中,根據地址碼選擇相應的存儲單元
片內的字選通常由cpu送出的N條低位地址線完成的
地址線直接鏈接到所有存儲晶元的地址輸入端
線選法
不需要解碼器,線路簡單
地址空間不連續,片選的地址線必須分時為低電平(否則不能工作)
可能無法充分利用系統的存儲器空間,造成地址資源浪費
比如cpu可用的高位地址線數量不足以選中大量需要獨立選中的晶元(組),即片選信號種類不足
解碼片選法
用高位地址線(除了片內定址外的)通過地址解碼器晶元產生片選信號
半導體存儲晶元的解碼驅動方式
半導體存儲晶元的解碼驅動方式有兩種:線選法和 重合法
線選法
它的特點是用一根 字選擇線(字線),直接選中一個存儲單元的各位(如一個位元組的各個位)
這種方式結構較簡單,但只適於容量不大的存儲晶元
4.19 是一個 16×1 位元組線選法存儲晶元的結構示意圖
如當地址線 A 3 A 2 A 1 A 0 A_{3}A_{2}A_{1}A_{0}A
3
A
2
A
1
A
0
為 1111 時,則第 15 根字線被選中,對應下圖中的最後一行 8 位代碼便可直接讀出或寫入
重合法
由於被選單元是由 X、Y 兩個方向的地址決定的,故稱為重合法
4.10 是一個 1K×1 位重合法結構示意圖
顯然,只要用 64 根選擇線(X、Y 兩個方向各 32 根),便可選擇 32×32 矩陣中的 任一位
例如,當地址線為全 0 時,解碼輸出 X 和 Y 有效,矩陣中第 0 行、第 О 列共同選中的那位即被選中
當欲構成 1K×1 位元組的存儲器時,只需用 8 片即可
存儲器與 CPU 的連接🎈
合理選擇存儲晶元
要組成一個主存系統,選擇存儲晶元是第一步,主要指
存儲晶元的類型(RAM 或 ROM)
晶元數量
ROM 存放系統程序、標准子程序和各類常數
RAM 則是為用戶編程而設置的
考慮晶元數量時,要盡量使連線簡單、方便
地址線的連接
存儲晶元的容量不同,其地址線數也不同,而 CPU 的地址線數往往比存儲晶元的地址線數要多
將 CPU 地址線的低位與存儲晶元的 地址線相連,以選擇晶元中的某一單元(字選)
這部分的解碼是由晶元的片內邏輯完成的
將 CPU地址線的高位則在 擴充存儲晶元時使用
用來 選擇存儲晶元(片選),這部分解碼由外接解碼器邏輯完成
數據線的連接
CPU 的數據線數與存儲晶元的數據線數不一定相等,
在相等時可直接相連;
在不等時必須對存儲晶元擴位,使其數據位數與 CPU 的數據線數相等
讀寫命令線的連接
CPU 讀/寫命令線一般可直接與存儲晶元的讀/寫控制端相連,
通常高電平為讀,
低電平為寫
有些 C P U \mathrm{CPU}CPU 的讀/寫命令線是分開的
讀為 R D ‾ \overline{RD}
RD
(read), 寫為 W E ‾ \overline{WE}
WE
(write) , 均為低電平有效
此時 C P U \mathrm{CPU}CPU 的讀命令線應與存儲晶元的允許讀控制端相連,
而 CPU 的寫命令線則應與存儲晶元的允許寫控制端相連
片選線的連接
片選線的連接是 CPU 與存儲晶元連接的關鍵
存儲器由許多存儲晶元疊加而成
哪一片被選中完全取決於該存儲晶元的片選控制端 C S ‾ \overline{CS}
CS
是否能接收到來自 CPU 的片選有效信號
片選有效信號與 CPU 的 訪存控制信號M R E Q ‾ \overline{MREQ}
MREQ
(MemoryRequst)(低電平有效)有關,
因為只有當 CPU 要求訪存時,才要求選中存儲晶元
若 CPU 訪問外設IO,則 M R E Q ‾ \overline{MREQ}
MREQ
為高,表示不要求存儲器工作
晶元引腳縮寫參考🎆
Pin Name Abbreviations - Using Altium Documentation
https://techdocs.altium.com › files › wiki_attachments
示例
注意到存儲是按照位元組編址,容量是(范圍*8bit)
也不是必須要將十六進制轉換為二進制(可以直接執行十六進制的減法運算:67 F F H − 6000 H + 1 = 800 H = 2 11 = 2 × 2 10 67FFH-6000H+1=800H=2^{11}=2\times2^{10}67FFH−6000H+1=800H=2
11
=2×2
10
=2k
類似的,6 B F F H − 6800 H + 1 = 400 H = 2 10 H = 1 k 6BFFH-6800H+1=400H=2^{10}H=1k6BFFH−6800H+1=400H=2
10
H=1k
此處+1是因為此處范圍為閉區間,包括起始地址
不過,要寫成二進制形式的時候,在標注坐標的時候,每一段的首尾可以標注一下,可以這樣分配:
LHS=[A 0 , A 4 , A 7 , A 8 , A 12 A_0,A_4,A_7,A_8,A_{12}A
0
,A
4
,A
7
,A
8
,A
12
]
RHS=[A 3 , A 7 , A 11 , A 15 A_3,A_7,A11,A15A
3
,A
7
,A11,A15]
但是在畫片選邏輯圖的時候,需要結合cpu地址線的高位部分以及要求的定址范圍,得出哪些cpu地址線需要保持高電平/低電平,從而便於接入特定的地址解碼器(驅動其)進行片選
另外我們可以從二進制形式中方便的看出A 11 , A 12 , A 13 A_{11},A_{12},A_{13}A
11
,A
12
,A
13
的規律,即他們除了A 11 A_{11}A
11
外,其餘都保持不變(分別是A 12 = 0 , A 13 = 1 A_{12}=0,A_{13}=1A
12
=0,A
13
=1);如此一來,就可以確定A 13 , A 12 , A 11 A_{13},A_{12},A_{11}A
13
,A
12
,A
11
(高位到低位分別是100,101這兩種可能(十進制就是4,5;所以最終在連接解碼器輸出端的時候,我們接入的是Y 4 , Y 5 Y_{4},Y_{5}Y
4
,Y
5
而不是其他的解碼器輸出))
第一片存儲晶元用作系統空間,定址空間需要11條地址線才能夠充分利用該晶元的存儲單元
第二部分是有兩片小的4位晶元組合成一個整體上有8位字長的晶元組,然而位擴展不會增加定址范圍,因此和擴展前的地址線要求一致,僅需要10條地址線
M R E Q ‾ \overline{MREQ}
MREQ
端:注意,cpu上的訪存控制信號M R E Q ‾ \overline{MREQ}
MREQ
和A 14 A_{14}A
14
的始終保持低電平不同,在需要訪存的時候,M R E Q ‾ \overline{MREQ}
MREQ
信號(低電平有效/觸發,所以型號名上有overline)才會呈現低電平,從而達到只在需要訪存的時候驅動地址解碼器進行存儲晶元片選
A 12 , A 13 , A 14 A_{12},A_{13},A_{14}A
12
,A
13
,A
14
這幾條地址本質上和其他地址線沒有什麼不同(是指,如果該cpu接入的存儲系統(晶元不通過小晶元擴展而成,而是同一塊晶元的時候,這些地址線仍然以同樣的方式工作))
當然,這里被用來接入片選解碼器,但是解碼器應該對於這幾條線是透明的.
關鍵在於圖中的與非門(用於控製片選RAM部分(晶元組))
由於ROM和RAM屬於的是字擴展(而非位擴展),所以他們不能同時被選中
而A 10 A_{10}A
10
比較獨特,因為ROM晶元片內地址需要11條線(也就是需要A 10 A_{10}A
10
,但是RAM片內並用不上A 10 A_{10}A
10
)(本例中,存儲擴展後,可定址地址范圍不連續)
guess:
我們要讓A 10 A_{10}A
10
有效(高電平)的時候只訪問ROM,而不訪問RAM
又,解碼器Y 5 ‾ \overline{Y_{5}}
Y
5
為低電平的時候有效,故當A 10 , Y 5 ‾ A_{10},\overline{Y_{5}}A
10
,
Y
5
均為低電平的時候才選中RAM(書上的說明是用了與門),RAM也是電平有效(選中)
後兩個晶元構成一組(字長的擴展(也就是為擴展),來匹配機器 cpu 字長)(執行為擴展的時候,注意數據線(D線)的劃分:高位部分和低位部分分別連接到不同的被位擴展的晶元上,同時所有成員晶元被同時片選中(是通過該位擴展晶元組的被選中而同時選所有成員 ))
一般各個存儲晶元都有自己的使能端(片選C S ‾ \overline{CS}
CS
(ChipSelect))(和存儲晶元的地址線以及數據線都是不同的)
打開CSDN APP,看更多技術內容