Contents
2.1主存儲器--概述
1、主存的基本組成
- MAR保存要訪問的存儲單元的地址,要通過譯碼器譯碼之後才能選定指定的存儲單元
- MDR當中存儲了要讀入或者寫入的數據,讀入還是寫入要通過讀寫電路和控制電路進行控制。
- 如果是寫入就把MDR數據送到MAR指定的存儲單元當中
- 如果是讀出,那麼指定的存儲單元當中的內容將會被送到MDR當中
2、主存和CPU的聯繫
- 數據總線 信息傳輸雙向 可讀出可寫入
- 地址總線 給出了要訪問的內存單元的地址
- 控制總線 例如 讀 寫
3、主存中存儲單元的地址分配
假設主存的結構存儲字長是32位,這個存儲器某一個單元進行讀或者寫,一次最多可以讀出或寫入32個0或1,主存的編址單位是字節,每一個字節都有一個地址,此時一個存儲字是32位,一個字節是8位 都有地址。
12345678H這個16進制數,每一個16進制數用4位2進製表示,32位正好保存在一個存儲單元當中,如何進行保存
設地址線24根 按字節尋址 24根就對每一個字節進行了編址,訪問的範圍=16MB
若字長爲16位 機器字長也是16位 按字尋址 存儲器容量:8MW(16位)(一個字兩個字節,一共字節,有8M字)
若字長爲16位 按字尋址 4MW
4、主存的技術指標
(1)存儲容量
主存中存放二進制代碼的總位數
(2)存儲速度
- 存取時間 從存儲器給出地址一直到給出穩定的數據輸出或數據寫入到給定的存儲單元當中 分爲讀出時間和寫入時間
- 存取週期 連續完成兩次獨立的存儲器操作所需要的最小時間間隔
- 一般存取週期要比存取時間要長 週期中有線路復原時間
(3)存儲器的帶寬 每秒可以寫入多少位數據 位/秒
2.2半導體存儲芯片簡介
一、半導體存儲芯片的基本結構
-
除核心結構外還有與cpu和外部設備連接的接口
- cpu與外部設備通過地址線給出地址,表示要存或取數據在存儲矩陣的哪個存儲單元當中,經過譯碼驅動電路選擇指定的存儲單元完成讀寫操作
- 數據線是雙向的
- 片選線是芯片選擇信號,它指出了這次操作給出的地址是不是針對這個存儲芯片的地址,被選擇的存儲單元或字節是不是在這個芯片當中
- 讀寫控制線
芯片容量計算
地址線(單向):10 數據線(雙向):4 芯片容量=
片選線有兩種標示方式
- (CS是芯片選擇的縮寫)上邊一橫表示低電平有效,標示這個管腳如果是低電平,這次數據訪問的地址就是在這個存儲矩陣當中
- (CE是芯片使能的縮寫)
- 不同類型芯片標識了兩種表示法的一個
讀寫控制線標示這次對半導體的操作是讀還是寫 可以用一根線(標示低電平寫,高電平讀)或 兩根線(讀)(寫)
存儲芯片片選線的作用
- 用16K*1如何構成64*8的芯片
- 將8個芯片構成一組,佈置4組
- 每一組是同時工作的,將他們的片選線連在一起,每一組都是16k*8位
當地址爲65535時,最後一組對應的片選信號位低電平有效,八個芯片被同時進行訪問在最後一個字節存儲, 滿足cpu對8位的要求
二、半導體存儲芯片的譯碼驅動方式
給出地址後如何找到給定的存儲單元
1、線選法
- 地址譯碼器 輸入4根線 輸出=16根線 給定一個輸入,在輸出端只有一根線有效,只有一根線上的信號會控制相應的存儲單元中的所有的存儲元件進行數據輸入輸出操作
- 讀寫控制電路:如果是讀選通,由存儲矩陣將數據進行對外輸出;若是寫選通,要進行寫操作,從外向內進行操作
- 當存儲芯片爲1M*8位 則需要100萬條線,大容量內存硬件空間肯定不足。
2、重合法
- Y0有效 MOS管纔會打開,相當於開關的左右,可以認爲短的一端輸入了高電壓,長的一端的兩條線就連通,否則斷開
2.3 隨機存取存儲器(RAM)
一、靜態RAM(SRAM)
1、靜態RAM基本電路
- 利用觸發器 觸發器由四個管子組成,T1-T4(解決了用什麼樣的電路存放0/1)構成一個觸發器,雙穩態觸發器,在兩端用來存儲信息,一端是Q端另一端是非Q端,
- T5-T6是用於解決對存儲元件進行讀或者寫
- T5-T6都是有行地址選擇進行控制,一旦行地址有效,這一行上的T5、T6就會被導通
- T7、T8是列開關,列地址選擇器有效的,那一列與行交叉點的存儲單元才能進行讀寫操作
- A是觸發器原端 A‘是非端
- 寫入是把數據分成兩個方向,一個方向在A 是直接要寫入的數據 在A‘寫入要寫入數據的非,在寫放大器處使用了三態門取反
(2)靜態RAM基本電路的讀操作
- 給出行選信號,控制T5、T6打開,給出列選信號 打開T7、T8
- 讀有效,讀選擇導通,存放在A中的數據,通過T6送到V線上,T8導通,信號送到數據總線Dout
(2)靜態RAM基本電路的寫操作
- 給出行選信號,控制T5、T6打開,給出列選信號 打開T7、T8
- 寫有效,寫選擇導通,數據通過Din這根線進行輸入,沿着左右兩根V線,進入A和A‘當中,左側寫放大器取反保證數據相反,完成寫操作。
2、靜態RAM芯片舉例
(1)Intel 2114 外特性
- 是讀寫控制信號,低電平表示寫 ,高電平表示讀 對2214存儲芯片的的某一個存儲單元進行讀或者是寫要給出相應的WE信號是高電平還是低電平
- 是片選信號,只有CS是低電平時,2114芯片纔會被選中
- 左側A0-A9給出的是地址,可看出2114是1K個存儲單元
- 右側I/O1-I/O4是數據線,每個存儲單元被選中,可以讀出或寫入4位信號,說明每個存儲單元有4個基本電路
- 存儲容量:1K*4位 佈局成64*64的陣列
- 通過譯碼驅動方式來選定給定的存儲單元和給定的基本電路
(2)Intel 2114 RAM 矩陣(64*64)讀
- 把64列分成4組 行地址一共6位,譯碼之後 產生0-63 一共64個行選信號,其中一行就會被選中,列地址一共4位,給出一個列地址其中4列會被同時選中
- 2114 4K個基本電路被佈局成64*64,若要每次讀取或寫入4位數據,每一個列選信號要控制4列,這4列同時輸入或輸出,所以分成4組,每組16列,4位列選信號,產生16位列選信號,每一個列選信號控制每一組之中的一列,在每一組當中都會產生一位0/1的輸入或者輸出,就可以完成4位的輸入或者輸出
二、動態RAM(DRAM)
1、動態RAM基本單元電路
(1)三管動態RAM
- 信息保存在電容Cg上 有電爲1 無電爲0
- T1-T3 是控制管,通過控制管進行讀出和寫入
- 讀選擇線有效,T2導通
- 寫選擇線有效,T3導通,通外部數據通過T3進行讀或者寫
- 如果預充電信號有效,T4打開, 通過T4對讀數據線進行充電,使讀數據線變成高電平,如果進行讀出,讀選擇信號線有效,T2導通,若Cg保存的信息是0,則T1的柵極是低電平,T1不會導通,讀數據線就會保持高電平,也就是說如果是0,在讀數據線上,讀出的就是1,若保存的信號是1,則T1的柵極有電,T1導通,數據線讀數據線會通過T2、T1放電變成低電平,讀出的和原存的信息是相反的,如果想讀到正確的信號,則在讀數據線的輸出端要加一個非門。
- 如果進行寫入,寫選擇線有效,T3導通,寫數據線會通過T3向Cg充電或放電,若寫入1,寫數據線是高電平,會通過T3向Cg充電,使Cg保存1,如果寫入低電平,Cg會通過T3放電,則Cg保存0,則寫入的信號與保存的是完全相同
(2)單管動態RAM 原理與三管相同
- 字線是控制線,如果相應的行被選中 則T被打開 電容通過T1進行充放電
- 如果Cs保存的是0,數據線上就不會有電流
- 如果Cs保存的是1,數據上就會有電流,由此可以判斷保存的是1還是0
2、動態RAM芯片舉例
(1)三管動態RAM芯片(Intel 1103)讀
- A0-A9 10位地址 存儲容量1k 每次讀入寫入只有1位數據,容量是1k*1
- 行地址經過譯碼後,產生的信號每一行都對應了兩個控制信號,讀和寫用不同的信號進行控制。
- 在行地址譯碼器中,參與譯碼的不只是地址,還有讀寫控制信號
- 三角形的刷新放大器使用原因:使用電容存儲電荷的原理保存信息,電容會漏電,經過一段時間電容上的信號會消失,採用刷新放大器就是對電容當中保存的信息進行重現,每隔一段時間都要對給定的存儲單元電路中的信息進行刷新
讀操作
- 第0行讀選擇線有效,第0行所有單元被選中,要進行讀操作
- 第0列被選中,0行0列交叉點上的單元被選中,通過讀數據線,把數據送到讀寫控制電路,進行輸出
(2)三管動態RAM芯片(Intel 1103)寫
寫操作
- 給出行地址信號,行中所有單元準備好進行寫操作
- 列地址給出,交叉點單元被選中,數據通過D端進行輸入,通過讀寫控制電路被寫入到交叉點存儲原件,通過寫數據信號進行寫入
(3)單管動態 RAM 4116(16K*1位)外特性
- 從芯片性能指標上 16K需要14根地址線,但4116只有7根地址線,實際上他需要14位地址
- 14位分兩次進行傳送,第一次7根地址線接收7位行地址,行地址被放在行地址緩存器當中
- 接收7位列地址,存入列地址緩存器
- 行地址和列地址分別經過行和列譯碼之後,選中給定的存儲單元在讀寫控制信號的控制之下完成對存儲單元的讀寫操作
- I/O緩存器完成輸入輸出緩衝,兩端連接了數據輸入寄存器和數據輸出驅動
- 芯片有自己的控制器有行選通信號,列選通信號,讀寫控制信號作爲輸入,產生行時鐘,列時鐘和寫時鐘,完成了芯片內部的讀和寫操作
(4)4116(16K*1位)芯片 讀 原理
- 128*128組成16K
- 豎的是行 橫的是列
- 在63-64之間 每一列都有一個讀放大器
- 讀放大器是蹺蹺板電路,如果一端強制爲1 則另一端爲0
- 若63行行選線有效,電容上有電則保存的信息被導出讀放大器左1右0,若電容沒有電則左0右1
- 若0列列選線有效,相對應晶體管打開,數據從讀放大器右側經過晶體管送到讀寫線上送到I/O緩衝到輸出驅動輸出
- 在讀放大器左側(經過放大器後反轉)有電輸出爲0 沒電輸出爲1 讀放大器右側正好相反有電爲1 無電爲0
(5)4116(16K*1位)芯片 寫 原理
- 行地址是0111111則63行所有控制管打開,通過Din進行輸入,數據被送到讀寫線上。
- 列地址0000000 第0列有效 第0列被打開,數據通過0,送到放大器右端,通過放大器左端,寫入到指定單元當中
- 若寫入的是1,在讀放棄右端爲1,在左端爲0,存儲單元存儲0,電容沒有電,與讀出對照可知讀出寫入一致
3、動態RAM刷新
刷新與行地址有關,與列地址無關
(1)集中刷新
- 集中刷新(存取週期爲0.5μs)以128*128矩陣爲例
- 集中式刷新就是把刷新時間集中在一起,2ms之內,要求對動態RAM內所有行進行刷新
- 2ms一共4000個存取週期,前3872週期可以供CPU、I/O設備對動態RAM進行寫入操作
- 最後128週期專用於芯片的刷新操作,在這128週期當中任何設備無法和動態RAM芯片進行信息交換
- 刷新週期稱爲死區 0.5*128 = 64μs
- 死時間率爲 128/4000*100% = 3.2% 在這段時間若其他設備想讀寫RAM設備,只能進行等待
(2)分散刷新
- 分散刷新(存取週期爲1μs)以128*128矩陣爲例
- 爲讀寫及維持操作
- 爲某一行的刷新操作
- 僅需要128μs就將全部行刷新完
- 2ms每一行被刷新了15.6次 但不需要如此頻繁的刷新
(3)異步刷新(分散刷新與集中刷新相結合)
- 對於128*128的存儲芯片(存取週期爲0.5μs)
- 每行每隔2ms刷新一次
- “死區”爲0.5μs
- 若將刷新安排在指令譯碼階段,不會出現“死區”
三、動態RAM和靜態RAM的比較
DRAM(用於主存) | SRAM(用於緩存) | |
存儲原理 | 電容 | 觸發器 |
集成度 | 高 | 低 |
芯片引腳 | 少 | 多 |
功耗 | 小 | 大 |
價格 | 低 | 高 |
速度 | 慢 | 快 |
刷新 | 有 | 無 |