计算机组成原理--主存储器
主存的基本組成
存儲體由若跟個存儲單元組成,存儲單元由多個存儲元件組成
存儲體----存儲單元(存儲一串二進制串)----存儲元件(存儲一個0/1)
存儲單元:存放一串二進制代碼。
存儲字:存儲單元中的二進制代碼
存儲字長:存儲單元中二進制代碼位數。
存儲單元按照地址進行尋址
MAR:存儲器地址寄存器,反應存儲單元個數。保存了存儲體的地址(存儲單元的編號),反應了存儲單元的個數。所以MAR的位數和存儲單元的個數有關。
MDR:存儲器數據寄存器,反應存儲字長(存儲單元長度)。保存了要送入CPU中的數據或要保存到存儲體中的數據或者剛剛從存儲體中取出來來的數據。這個寄存器的長度和存儲單元的長度相同。
主存中存儲單元的地址分配
如12345678 H 在主存儲器中如何進行存儲?
1、高位字節地址為字地址(大端大尾)
2、低位字節地址為字地址(小端小尾)
尋址方式及尋址范圍計算:
地址線24根,按字節尋址,地址個數 = 2^24 * 1B = 16MB
如果字長16位,按字尋址,地址個數 = 8MW
如果字長32位,按字尋址,地址個數 = 4MW
半導體存儲芯片基本結構
容量計算
| 10 | 4 | 2^10 * 4 = 1K * 4 |
| 14 | 1 | 2^14 * 1 = 16K * 1 |
| 13 | 8 | 2^13 * 1 = 8K * 8 |
片選線作用
讓某一組芯片同時進行工作。如下圖所示,使用32片 16K * 1位的存儲器組成 64K * 8 位的存儲器。16 K * 1說明每個存儲器的數據線為1根,要組成64K * 8 位的存儲器,只需使得每次讀數據是從8個16 K * 1存儲器中各讀取一位即可,這時候就可以使用片選線同時選中8個 16K * 1的存儲器。
半導體芯片譯碼驅動方式
1、線選法
從上圖可以看出,地址總線為4,數據總線為8,按照字節進行尋址,內存大小為16 * 8 b。通過地址線判斷從那個字節進行數據的讀取,換句話說,如果地址輸入為0000,在只有字線0有效,其他字線無效。
線選法存在的問題:
如果容量稍大,比如為1M * 1 ,則此時有20根地址線,相應的有2^20 = 100萬根字線,這樣導致芯片字線非常密集,并且很難把芯片的密集程度做的很高。
2、重合法
對于重合法,同樣如果有1M * 1的容量,此時X(行)、Y(列)各有十根地址線,對應的字線各有1024條,則公有2048跟字線。
隨機存儲器(RAM)
(一) 靜態RAM
1、靜態RAM保存0和1的原理是什么?
靜態RAM使用的是觸發器進行存儲數據,觸發器由四根晶體管構成,屬于雙穩態觸發器,具有源端和非端用于存儲數據,一方為0另一方為1,一方為1,另一方為0。
2、靜態RAM基本單元電路的構成是什么?
圖中是保存一個0位或者1位的電路。
行地址線選擇:相當于重合法圖中的Xn,每行有多個基本單元電路,行地址選中一行中所有的基本單元電路。
列地址選擇:相當于重合法圖中的Yn,每列有多個基本單元電路,列地址選中一列中所有的基本單元電路。
每次讀取數據,需要行和列同時被選中。
T1 ~ T4為觸發器,T1和T4用于存儲0和1,T5和T6用于控制讀取哪一端數據。
在實際的芯片中,會將虛框中的內容(T1 ~ T 4, T5和T6)進行列分布而非單獨一個,T7和T8屬于列開關,行列交叉點會有多個基本單元電路,能讀出多位數據。
3、靜態RAM對單元電路如何進行讀出和寫入?
(1)讀操作:
讀數據時,雖然T5開,T7開,但是非端數據到寫放大器就終止了。
(2)寫操作
寫數據時,左邊的寫放大器把右邊的寫放大器的值取非后進行輸出,保證A和非A端的值相反。
4、Intel 2114靜態RAM芯片的結構及讀寫操作?
以Intel 2114芯片舉例,Intel 2114 外特性如下圖:
2114RAM芯片結構示意圖
Intel 2114 芯片是由64 * 64位矩陣構成。由圖中可知,芯片地址線9根,數據線4根,那芯片內部是如何進行布局的呢?具體布局如下圖:
如圖所示,地址線共10位,其中行地址線6位,列地址線4位,行字線2^ 6 = 64,列字線 2^ 4 = 16。讀取數據時如下所示:
將64列數據分為四組,每組16列。數據讀取的時候,如,行地址為000000,列地址為0000,此時,行位線選中第一行中所有的元件,列地址選中每組中的第一列,這樣就從每組中讀取一位,共讀取四位數據。寫數據和讀數據同理。
(二)動態RAM
1、動態RAM保存0和1的原理是什么?
動態RAM使用電容,電容中保存了電荷為1,電容沒有被充電為0。
2、動態RAM基本單元電路的構成是什么?
動態RAM基本電路有兩種,如上圖左(三管動態RAM)、右(單管動態RAM)。
3、動態RAM對單元電路如何進行讀出和寫入?
(1)左側電路讀寫操作
讀操作: T4為預充電信號,如果預充電信號有效,T4會被打開,Vdd通過T4對讀數據線進行充電,使得讀數據線成為高電平,如果是進行讀操作,則讀選擇信號有效,T2打開,如果此時CG中保存的數據是0,也就是CG沒有充電,則T1不會導通,則讀數據線就會保持高電平,所以,如果保存的數據是0,則在讀數據時候,讀出的數據是1。如果CG電容中保存的數據是1,T1導通,此時讀數據線上的電平通過T2,T1線路進行放電,讀數據線低電平,讀出的數據為0。所以電容讀出的信息和原存的信號是相反的。
寫操作: 寫入和輸入信息相同。如果是寫操作,寫選擇線有效,T3導通 寫數據線會通過T3向CG充電,或者CG通過T3進行放電,如果寫入的數據是1高電平,寫數據線會通過T3向CG充電,CG寫入1.如果寫入是0,則CG通過T3進行放電,CG放電為0。
(2)右側電路讀寫操作
讀操作: 如果相應的行被選中,字線連接的T被打開,電容就會通過T進行充電或者放電,如果CG中有電位1,此時放電,則數據線有電流,如果CS中沒有充電,則數據線無電流,通過數據數據線有無電流判斷CS中保存的是1還是0。
寫操作: 寫入時,寫入1,數據線有電流,進行充電為1。寫入0,數據線無電流,放電為0。
4、動態RAM芯片的結構及讀寫操作?
(1) 三管動態RAM(Intel 1103)
三管動態RAM讀寫操作:
(2)單管動態RAM(Intel 4116)
單管動態RAM外特性:
上圖中,大小為16k X 1,所以有14根地址線,圖中地址線只有A0 – A6共7根線,此時行地址和列地址分為兩次傳輸,將行地址和列地址分別保存早緩存器中。
單管動態RAM讀寫操作:
圖中的讀放大器的工作原理像一個撬撬板電路,一端為0,另一端就是1,一端為1,另一端就是0。
讀操作: 如果選中63行,0列。則63行中所有的開關都被打開,如果電容中有電,則讀放大器左端為1,則右端為0,此時讀出的數據為0。如果電容中沒有電,讀放大器左端為0,則右端為1,此時讀出數據為1。
寫操作: 如果如果選中63行,0列。寫入1,讀放大器右端為1,左端為0,寫入0。如果寫入0,讀放大器右端為0,左端為1,寫入1。
以上電容中實際數據和寫入讀出數據相反,但是讀出和寫入的數據相同。
三管動態RAM和單管動態RAM電路比靜態RAM電路多出放大器,放大器所用:電容存在漏掉,需要刷新放大器沒過一段時間對每一列上的電容進行刷新重現。
5、動態RAM為什么要進行刷新,刷新方法是什么?
由于動態RAM使用電容存儲信息,電容容易漏電,經過一段時間,電容漏電,會導致數據有1變為0,。動態RAM刷新只和行地址有關,和列地址無關,每次刷新的是一行中的所有基本電容電路。給出行地址,某一行被全部選中,這個行上所有電容中的信息都會被送到讀電路,如果在讀數據線和寫數據線之間增加一個刷新放大器(每一列都加),就會完成對一行數據的刷新。
(1) 集中刷新:以128 * 128矩陣為例
首先主存儲器的存儲周期 為0.5us。
上圖中的集中式刷新:每隔2ms對128行進行全部刷新,存取周期為0.5us,所以刷新每行也需要0.5us,2ms內,刷新需要64us。在這段死區內,CPU無法對動態RAM進行讀寫操作。
(2)分散刷新:以128 * 128矩陣為例
上圖的分散式刷新:延長存取周期為正常存取周期的兩倍(0.5us * 2 = 1us)。每1us對其中的一行進行刷新,128us刷新全部的128行。雖然沒有死區,但是刷新過于頻繁,并且延長了CPU的讀寫周期。
(3)分散集中相結合:以128 * 128矩陣為例
這種方式存取周期為0.5us,在集中式刷新中,每隔2ms對128行進行全部刷新,2ums= 2000us,即如果平均分到每行,則每15.6um刷新一行。若將刷新安排在指令譯碼階段,就不會出現死區。
(三)靜態RAM和動態RAM比較
DRAM用于做主存,SRAM用于主存和CPU之間的緩存。這樣就可以降低成本同時加快訪問速度。
只讀存儲器ROM
(一)只讀存儲器發展歷史
早期的只讀存儲器,在廠家就寫好了內容,無法修改。
改進1:用戶可以自己寫,一次性修改。
改進2:可以多次寫,能對信息進行擦除。
改進3:電可擦寫,特定設備。
改進4:電可擦寫,直接連接到計算機上。
(二)只讀存儲器(ROM類型)
1、掩模 ROM ( MROM )
行列選擇線交叉處有 MOS 管為“1”
行列選擇線交叉處無 MOS 管為“0”
2、PROM (一次性編程)
熔絲斷為 “0”
熔絲未斷為 “1”
3、EPROM (多次性編程 )
G:柵極 S:源 D:漏
使用紫外線進行擦洗
D 端加正電壓形成浮動柵,S 與 D 不導通為 “0”。
D 端不加正電壓不形成浮動柵,S 與 D 導通為 “1”。
4、EEPROM (多次性編程 )
使用電擦寫,可局部擦寫,也可全部擦寫。
5、Flash Memory (閃速型存儲器)
第三種EPROM價格便宜,集成度高。
第四種EEPROM,電可擦洗重寫。
Flash Memory比 EEPROM快,具備 RAM 功能。
存儲器容量的擴展
1、位擴展(增加存儲字長)
上圖為用兩個 1k * 4 位存儲芯片組成一個1K * 8位的存儲芯片。在讀取數據的時候,通過cs片選線同時選中兩個芯片,將每個芯片中的四位組成8位傳送到數據線上。
2、字擴展
圖中是將連個1k * 8的存儲芯片組成一個2k * 8的存儲芯片。共需要11根地址線 ,8根數據線,其中10根地址線選中具體的一個地址,第十根地址線用作片選線,當第十根為0時候,使用芯片1,當第十根為1時候,使用芯片2。
3、字和位同時擴展
用8片 1K * 4位的芯片組成4K * 8位的芯片。其中有12根地址線,8根數據線,其中兩根地址線作為片選線,一個片選地址選中兩片芯片。
總結
以上是生活随笔為你收集整理的计算机组成原理--主存储器的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 摩托罗拉 moto X30 手机 OTA
- 下一篇: mybatis-plus分页类型转换工具