第五章存儲器


 

 

沒有哪個存儲器是可以同時滿足這三個要求的

這就形成了不同的存儲結構之間相互組合最終組成一個如下存儲系統層次結構

2.存儲系統層次結構

 

 

(1)緩存-主存
解決問題:CPU 與 主存 速度不匹配問題
完成:硬件完成
透明:透明(程序員不用知道內部如何實現)
(2)主存-輔存
解決問題:存儲系統的容量問題
完成:硬件+操作系統(軟件)

為了增加 主存和輔存的容量這里添加了虛擬存儲器,程序員會得到一個更大的存儲空間,將虛擬地址轉換為邏輯地址后對數據進行存取,而這一過程對程序員是透明的。對於虛擬存儲器的深入理解可以看鏈接

4.2 主存儲器

4.2.1概述

1.主存儲器的詳細構成

 

 2.主存儲器與 CPU 的連接

 

 

讀數據: CPU 將該字的地址送到 MAR ,經地址線轉到主存,讀出此單元的數據。內存將數值讀到數據總線上再由 CPU 控制 MDR 送到相應的部件上

存數據: CPU 將該字所在主存儲單元的地址 由 MAR 送到地址主線,將字節信息存入 MDR,CPU 再向內存發出寫命令,再將 MDR 的信息寫入對應的地址線上傳給相應的部件

3.主存中存儲單元地址的分配

例如:12345678H 這個數據如何在主存儲器中進行存儲

高位字節 地址為字地址

 

 低位字節 地址為字地址

 

 

兩種機器進行通信就會產生問題

設地址有 24 根 按 字節 尋址 2^24=16MB

若字長為16為 按 字 尋址 8MW

若字長為32為 按 字 尋址 4MW

地址分配問題就是在已知地址線,電腦位數的情況下,以按字,按字節尋址內存的尋址范圍是多少,即如何給內存單元進行編號。筆記進行了單獨的整理按字節/字尋址

題:一個機型:有30根地址線,字長為32位,則

另一個機型:有30根地址線,字長為16位,則

 

答案:

點擊這里

 

4.主存的技術指標

1)存儲容量   

一般情況下,存儲容量越大,能存放的程序和數據越多,其解題能力也越強。

 2)存取周期

存取周期又叫讀寫周期或訪問周期,它是衡量主存儲器工作速度的重要指標。 存儲器從接受讀/寫命令信號開始,待信息讀出或寫入后,直到能接受下一條讀/寫命令為止所需的全部時間為存取 周期。即允許連續訪問存儲器的最短時間間隔。存儲器的存取周期越短,其存取速度就越快,反之就越慢。 在同一類型的存儲器中,存取周期的長短與存儲容量的大小有關,容量越大,存取周期越長。同是半導體存儲器,MOS工藝的存儲器存取周期已達100毫微秒,而雙極型工藝的存儲器存取周期則接近10毫微秒。 值得一提的是,盡管存儲器的速度指標隨着存儲器件的發展得到了很大程度的提高,但仍跟不上CPU處理指令和數據的速度,從CPU的角度來看,主存的周期時間變成了系統的瓶頸。為了能與CPU在速度上相匹配,希望存取周期越短越好。

 

3)可靠性

通常用平均無故障工作時間(Mean Time Between Failures,簡稱MTBF)即兩次故障之間的平均時間來衡量。MTBF越長,說明存儲器的可靠性越高。通常用差錯校驗技術提高平均無故障時間。 在衡量存儲器時,除上述指標以外,性能價格比(性能與價格的比值是衡量存儲器經濟性能參數好壞的綜合性指標,這項指標與存儲體的結構和外圍電路以及用途、要求、使用場所等諸多因素有關。性能是前四項性能的綜合,只能定性的概括,價格是存儲器的總價格既包含存儲單元本身的價格,又包含存儲系統中所用邏輯電路的價格)、功耗、集成度等也是不可忽視的指標。此不贅述。

4.2.2 半導體存儲芯片

什么是存儲芯片

 

 在內存條中這樣的一個個的黑色方塊就是存儲芯片,芯片中有:具有記憶功能的存儲矩陣,譯碼驅動電路和讀/寫單路等,下面將從芯片整體出發逐個剖析芯片內部

1.半導體存儲芯片的基本結構

 

 芯片容量=2的地址線位數次方乘以數據線位數

 

存儲芯片包含三部分:譯碼驅動,存儲矩陣, 讀/寫電路。
其中存儲芯片依靠:地址總線,數據總線,控制總線(片選線+讀/寫控制線)與外部鏈接。下面是這幾個概念的解釋

(1)譯碼驅動:將地址總線的地址送來的地址號翻譯成對應存儲單元的選擇信號
(2)讀/寫電路:用來完成讀寫操作
(3)地址線:單項輸入,將地址輸入由 CPU 或其它設備用來尋找數據。上圖有對於地址線,數據線的計算問題,具體計算可見按字節/字尋址
(4)數據線:雙向傳輸,與數據的輸入輸出有關
(5)片選線:用於選擇芯片 ,判斷所給出的地址是否是針對這個存儲芯片的地址,被選擇的存儲單元與字節是否在此芯片當中。用 CS(有上划線)或CE(有上划線)信號判斷

(6)存儲體又叫存儲矩陣,它是個二維陣列結構。因為一個字由K個二進制代碼組成,字方向是一維;存儲體的各存儲單元都有確定的地址,地址方向是另一維。存儲體內的基本存儲單元按排列方法又有兩種結構:

一種是“多字一位結構”,其存儲容量表示成 N字*1位序,例如Intel 2118動態 RAM芯片是 16K*1位;

另一種是“多字多位結構”,常見的有N字*4位/字和N字*8位/字兩種,例如,Intel 21l4靜態RAM芯片是1K*4位。

 

帶上划線的信號什么意思
帶有上划線的信號是指,該信號在低電平有效,如果一個信號 CE 為低電平狀態則代表這個芯片就是所選的芯片
(7)讀/寫控制線:決定芯片的讀/寫操作,可用 WE一個信號的兩種狀態表示寫/寫操作,或者 OE(上划線)及 WE(上划線)兩個信號分別表示讀操作和寫操作
(8)芯片的組合:

 

 

例如:一個芯片的大小為 16K * 1位,如果想要一個 64K * 8 位的內存,首先將8個內存芯片組成一組,要有四組,所以一共有32個芯片,這32個芯片被片選線進行連接。
第一組存儲芯片的地址為:0 ~ 16K-1
第二組存儲芯片的地址為:16K ~ 32K-1
第三組存儲芯片的地址為:32K ~ 48K-1
第四組存儲芯片的地址為:48 ~ 64K-1
所以如果想訪問 地址65535 時 ,在最后一列的那八個的片選器是有效的

2.半導體存儲芯片的譯碼驅動方式

主要是用於:地址總線給出了地址后如何在內存中找到存儲單元

有兩種方法 : 線選法,重合法
1.線選法

 

 

特點:一根字選線對應一根存儲單元
工作原理: 這里有 4根地址線 A1,A2,A3,A4,這四根地址線可以表示 16 個存儲單元,在內存中對應了16根字線,可以看到是 0~15,選中0000這個存儲單元,其余 15根不選中。用下面的8根位線直接為單元內每一位傳輸數據

缺點: 如果有一個 1M 的地址線,那么在內存中就要部署 220個字線,來對這 1M 的存儲單元寫入數據,這樣會對內存電路集成中造成很大困難,所以這種方法更適合存儲量不大的芯片

2.重合法

 

 特點: 將線選法中單一的地址譯碼器分成了行地址譯碼器和列地址譯碼器,行和列的交匯處共同鎖定一個單元
工作原理: 加入選中行地址譯碼器為 00000,這時0行一整行都被選中。然后讓列地址譯碼器為00000,那么就可以確定是0行0列的這個單元
適用性: 更適合存儲大的內存芯片

4.2.3隨機存儲器(RAM)
隨機存儲器可以分為:靜態RAM(SRAM) 與 動態 RAM(DRAM) 。根據不同的特性在電腦中承擔的任務也不同

1.靜態 RAM

問題

  • 保存0和1的原理是什么?
  • 基本單元電路的構成是什么?
  • 對單元電路如何進行讀出和寫入?
  • 典型芯片得到結構式什么樣子的?
  • 靜態RAM芯片是如何進行讀出和寫入操作的?

(1)靜態 RAM 的基本電源電路

基本電源電路:用於存儲 0/1 代碼的那一塊電路

T1~T4是用來保存數據的觸發器。觸發器用於保存數據,保存電路的狀態,解決了用什么樣的電路來存放0/1
當進行數據傳輸時,片選器選中的整行行開關會被全部打開,但是只有列地址是通着的那一列上的觸發器才會被保存數據。

T5 - T6 行開關,解決對存儲文件進行讀/寫

T7 - T8 列開關,一列共用

下方的圖是由 6根 MOS(晶體管的一種)組成的基本電路

A 是觸發器的源端,A’ 是觸發器的非端

讀操作

 

 首先經過譯碼之后相應的 T5,T6打開;其次讓 T7,T8打開。假設觸發器已存有 1 信號,即A點為高電平,這時 T6被接通

 

 

再由位線 A 通過T8作為讀出放大器的輸入信號,在讀選擇有效時將 1 輸出

寫操作

 

 根據譯碼將響應的 T5,T6,T7,T8晶體管打開,寫選擇器有效

 

 同過 DIN 這條線將數據由左右兩端進行輸入分別通向 A,A’,最終將數據寫入

 

 

左邊的電路有取反操作,保證了 A’ 中寫入的數據是相反的,最終完成寫的操作(只有兩個相反的數據才能存入寄存器)

(2)靜態RAM芯片存儲矩陣

 

 

這是一個Intel2114 RAM芯片,下面是它的結構

A0~A9 是10根地址線,說明有 1M 的存儲單元
I/O1~I/O4 是四根數據線,可以存放 4位的數據,一次讀取四位的數據
WE,CS 分別是片選線與讀寫控制線,低電平有效
於是就組成了一個 1K x 4位 為的芯片,這個存儲矩陣由 64 x 64 個基本單元電路組成

下面是針對這個芯片整體的讀寫過程,相比於上面更加宏觀

讀操作

 

 2114結構可以一次傳輸 4 位的數據,所以可以將這個64 * 64的矩陣分為4組,每組里面有16個單元。

 

 

假設我將行地址譯碼輸入000000,則會選中0行的所有單元,也就是上方圖紫色的單元;列地址譯碼輸入0000,則會選中每一組的第一個單元;行選擇,列選擇同時工作,由下方的 WE,CE同時控制就可以實現對於黃色框的讀數據操作。
根據上面的基本電路的知識,最終通過讀寫電路將 A端與A’ 端的數據讀取出來

寫操作結構相似

2.動態RAM

(1)動態 RAM 的基本單元電路
常見的動態 RAM 基本單元電路有 三管式和單管式兩種。與靜態RAM的觸發器不同,動態RAM使用電容存儲數據,電容中有電荷為1否則為0

a. 三管式

 

 

T1,2,3 三個控制管,通過他們控制數據讀出和寫入
T2讀,T3寫,保存在 Cg電容當中

b.單管

 

 

通過 T 這個控制管,將數據保存在 Cs電容當中

(2)對基本單元電路如何讀出和寫入

a.三管式

讀操作

如果進行讀操作,首先將 T4晶體管進行通電,VDD通過T4讀數據線進行充電,讀選擇信號有效,T2也就會被導通。

 

 如果Cg沒有進行充電是0,也就是我們想要讀出的數據是0,T1不用進行通電,電流只通過T2傳到讀數據線,最終的結果是高電平1。讀取的數據也是1.

 

 

如果我們想要讀出的數據是1,Cg中的數據是1,則 T1進行通電,那么電流就會通過 T1,T2同時放電,高電平變低電平,於是讀數據線的數據就是0。

所以對於讀操作讀出的數據最后要加一個 “非門”邏輯判斷

寫操作
與讀操作相似,寫操作只需T3一個晶體管控制,T3通電寫入1,不通電寫入0

讀出與原存信息相反
寫入與輸入信息相同
b.單管

讀操作

 

 如果 CS中保存的是0,則數據線沒有電流

 

 

如果 CS中保存的是1,則數據線有電流

寫操作

寫入的是1 : 對電容進行充電
寫入的是 0:對電容進行放電

(2)動態 RAM 芯片存儲矩陣

a.三管式

讀操作

這個芯片有 5根行地址線,5根列地址線。與靜態不同在於添加了兩個不同的選擇線,分別進行讀寫操作。(在靜態中使用的是位線)

 

 

假如對 行地址譯碼器輸入 00000,所對應的整行會被連通。列地址譯碼器輸入 00000,最終確定所選單元,也就是黃色的單元。同時相應的讀操作的選擇線會被選中,通過讀寫控制電路將數據讀出。

刷新放大器:(三角形區域)因為電容會漏電,一定時間之后電容的數據會消失,所以要對存儲單元恢復存儲狀態。

寫操作

 

 

寫入時換了傳入的地址,最終在黃色單元內進行數據的寫入。

b.單管

芯片結構

 

 

4116單管芯片:這是一個 16K x 1位的存儲芯片,它的特殊之處在於理應該有14根地址線,但是這里只有7根,地址分兩次傳輸,先送 7位行地址保存到芯片內的行地址緩存器,再傳入列地址。芯片內有時序電路,它受 行地址選通 RAS(上划線),列地址選通 CAS (上划線),以及寫允許信號 WE(上划線)控制

存儲矩陣示意圖

讀操作

 

 

假設選中63行0列的單管MOS電路電容當中保存的信息會被送出,到讀放大器的左側,如果電容中有電,讀放大器左側為1,右側為0.如果沒有電,左端為0,右端為1。相反,讀放大器右側的電路,電容中為1輸出的就是1

讀放大器左側,有電最后輸出為0,沒有電輸出為1
讀放大器右側,有電最后輸出為1,沒有電輸出為0

寫操作

 

 

寫操作與讀操作一致,放大器右側讀寫始終一致,左側,如果想要寫入1,則保存的是0.

這樣一想,如果我們在左側保存1,實則保存的是0。在讀出的時候由於讀放大器所以再取一次反,讀出的就是1了不用再取反

這樣使寫入與讀取一致

撬撬板電路:讀放大器是一個撬撬板電路,類似一個觸發器,使得左右 兩邊電平相反

(3)動態RAM 的刷新

首先先認識幾個定義

存取周期:對於某個單元存取一次數據所用的時間
刷新周期:存儲單元恢復一次原狀態的時間間隔

集中刷新
定義:在規定的一個刷新周期內,對全部的存儲單元逐行進行刷新

 

 

對一個 128 x 128矩陣的存儲芯片進行刷新,存取周期為 0.5us,刷新周期為2ms,是4000個存取周期。
對128行進行逐行刷新共需 64us(128個存取周期)還剩3872個存取周期,用來讓 CPU,I/O設備讀,寫維持信息。
這64us不能進行讀/寫,CPU,I/O設備只能等待,所以這段時間成為死時間,訪存區成為死區。死時間率為 128/4000=3.2%。這也是集中刷新的缺點。

2)分散刷新
定義:對每行存取單元的刷新分散到每個存儲周期完成。將每個單元的存儲周期分為兩段,每段為0.5us,tM 段用於tR,tM 可以用於CPU等設備的讀寫操作;tR用於刷新。這樣的好處就是沒有死區

 

 

一個128 x 128的矩陣,2ms為一個刷新周期,可以將數據刷新156遍,但是刷新太過頻繁,系統性能會降低

3)異步刷新
定義: 將前兩種方法結合

 

 

存儲周期是0.5us,並且在2ms內將所有行刷新一遍即可,所以每隔15.6us刷新一行,刷新這一行的死時間為 0.5us,如果說將這段死時間進行合理安排,比如安排CPU譯碼則避免了內存CPU的信息傳輸,避免死時間,提升工作效率

3.靜態 RAM(DRAM) 動態 RAM 比較(SRAM)

 

 靜態 RAM 多用於做 cash ,動態RAM多用於做 內存存儲

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM