第三節(jié) 讀寫存儲器RAM
本節(jié)內(nèi)容:
一、 基本存儲電路
二、 RAM的結(jié)構(gòu)
三、 典型RAM芯片舉例
四、 RAM與CPU的連接
§5.3.1 基本存儲電路
一個基本存儲電路存儲一位二進(jìn)制信息0或1。它是存儲器的核心。
1、SRAM基本存儲電路
SRAM的基本存儲電路的核心是MOS管構(gòu)成的雙穩(wěn)態(tài)觸發(fā)器。

MOS(場效應(yīng))管的工作特性如左圖所示。
MOS管構(gòu)成的雙穩(wěn)態(tài)觸發(fā)器:

T3、T4的g、s端連在一起,vgs=0,d、s呈現(xiàn)高阻,該大電阻作為負(fù)載。 雙穩(wěn)態(tài)觸發(fā)器有兩個穩(wěn)定狀態(tài):
?、?若T1導(dǎo)通,A=0,使T2截止,B=1,B=1又保證T1導(dǎo)通。該狀態(tài)表示存儲信息0。(A=0)。
?、?若T1截止,A=1,使T2導(dǎo)通,B=0,B=0又保證T1截止。該狀態(tài)表示存儲信息1。(A=1)。
為了將信息0/1寫入或讀出觸發(fā)器,就需要加控制電路。加入控制電路的基本存儲單元如下圖:

寫操作:CPU送出地址信號、數(shù)據(jù)信號D和寫入信號R/W=0。地址信號分成行地址和列地址,行地址經(jīng)"行選擇譯碼"產(chǎn)生行選擇線信號,使該基本存儲電路被選中,T5、T6導(dǎo)通;列地址經(jīng)"列選擇譯碼"產(chǎn)生列選擇線信號,使T7、T8導(dǎo)通。R/W=0,三態(tài)緩沖器A1、A3導(dǎo)通,A2禁止,數(shù)據(jù)信號D經(jīng)A1、A3、T7、T8、T5、T6進(jìn)入該基本存儲電路。
如寫入1,則I/O=1、I/O=0,它們使A=1、B=0,T1截止、T2導(dǎo)通,即數(shù)據(jù)1被寫入。
如寫入0,則I/O=0、I/O=0,它們使A=0、B=1,T1導(dǎo)通、T2截止,即數(shù)據(jù)0被寫入。
在寫入完成后,地址信號消失,T5、T6、T7、T8截止,雙穩(wěn)態(tài)電路保持寫入的信息不變?;蛘哒f,寫入過程相當(dāng)于將輸入電荷存儲到T1、T2的柵極上。在寫入信號和選擇信號消失后,兩個作為負(fù)載電阻的T3、T4和電源Vcc相連,從而可以不斷地往T1、T2的柵極補(bǔ)充電荷(T3給T2、T4給T1補(bǔ)充),加上T1、T2互相控制,能夠保持住所寫入的數(shù)據(jù)。
讀操作:CPU送出地址信號,R/W=1。T5、T6、T7、T8導(dǎo)通,R/W=1,三態(tài)緩沖器A2導(dǎo)通,A1、A3禁止,基本存儲電路A點狀態(tài)經(jīng)T5、T7、A2送至數(shù)據(jù)線D。A=1表示D=1,A=0表示D=0。在讀出后,基本存儲電路的狀態(tài)不發(fā)生變化,即讀操作是非破壞性的。
SRAM的特點:
(1) 采用CMOS電路構(gòu)成,讀出/寫入速度快(5~15ns)。
(2) 所用管子數(shù)目多,單個器件的容量小,如256×4,16Kb×1,64Kb×8。
(3) T1、T2總有一個處于導(dǎo)通狀態(tài),使得SRAM的功耗較大。
2、 DRAM基本存儲電路(單管DRAM基本存儲電路)
數(shù)據(jù)以電荷形式存在電容C上,當(dāng)C上有電荷,表示信息1;當(dāng)C上無電荷,表示信息0。
寫操作時,"行選擇信號"為1,Q導(dǎo)通,若"列選擇信號"為1,該基本存儲電路被選中,由"數(shù)據(jù)輸入/輸出線"送來的信息通過刷新放大器和Q管送入到電容C。
讀操作時,"行選擇信號"為高電平,使存儲矩陣中該行的所有基本存儲電路的Q管導(dǎo)通,"刷新放大器"讀取對應(yīng)電容C上的電壓值,刷新放大器的靈敏度很高,放大倍數(shù)很大,并且能將從電容上讀得的電壓值折合為邏輯"0"或邏輯"1"。"列選擇信號"所選中的基本存儲電路輸出數(shù)據(jù)。

在讀出過程中,選中行上所有基本存儲電路中的電容均受到打擾,為了在讀出之后,仍能保存所容納的信息,刷新放大器對這些電容上的電壓值讀取之后又立即進(jìn)行重寫。
DRAM的特點:
(1) 利用電容存儲電荷的原理來存儲信息的。由于電容會逐漸放電,所以,必須對DRAM中的電容不斷地補(bǔ)充電荷,這一過程稱為刷新。
(2) 典型的刷新周期為2ms,一般用專門的DRAM控制器控制刷新,其刷新過程稱為刷新周期。
(3) 所用MOS管較SRAM少,芯片位密度較高,如32Kb×1,16Mb×1。
(4) 功耗較小。
§5.3.2 RAM的結(jié)構(gòu)
1、 存儲體
存儲芯片中全部基本存儲電路的集合稱為"存儲體"。存儲體中的基本存儲電路按矩陣排列,稱為"存儲矩陣"。 存儲矩陣有N×1、N×4、N×8結(jié)構(gòu)。
下圖是一個4096×1的存儲芯片的邏輯示意圖和結(jié)構(gòu)示意圖。


2、 外圍電路
(1) 地址譯碼。
4Kb×1的存儲器有4096個存儲單元,選擇某一單元需要12根地址信號(212=4096),它們被分為行地址和列地址。
(2) I/O電路(輸出驅(qū)動)。
(3) 讀寫控制電路。R/W。
(4) 片選信號,CE或CS。
微機(jī)存儲器由多個存儲芯片組成,CPU讀寫存儲器時,必須選中一個芯片,該選擇信號稱為"片選信號",一般用CE或CS表示。只有被選中的芯片(CE/CS有效),才能讀出或?qū)懭霐?shù)據(jù)。
(5) 三態(tài)緩沖器(圖中未畫出)
用于連接CPU數(shù)據(jù)總線和存儲器數(shù)據(jù)總線。當(dāng)三態(tài)緩沖器選通時,CPU才能與存儲器交換數(shù)據(jù)。否則,CPU與存儲器斷開。
(6) 刷新電路(圖中未畫出,僅DRAM存儲器需要)
用于控制DRAM刷新。
3、 地址譯碼方法
?。?) 單譯碼(N×8)
以32×8存儲器為例。需要5根地址線(A4~A0),地址譯碼后,同時訪問存儲器中的8位。
![]() |
NX8存儲器,單個 芯片同時輸入/輸 出一字節(jié)地所有8 位采用單譯碼 |
![]() |
|
(2) 雙譯碼(N×1)
以1024×1存儲器為例。需要10根地址線(210=1024),A4~A0地址譯碼后,得到32根行選擇線X32~X1,選中存儲矩陣的某一行;A9~A5地址譯碼后,得到32根列選擇線Y32~Y1,選中存儲矩陣的某一列。行和列均被選中的單元可以寫入或讀出。

三、 典型RAM芯片舉例
1、 Intel 2114芯片(1Kb×4)
該芯片有1024×4=4096個基本存儲單元,排列成64×64矩陣,10根地址信號線(210=1024)譯碼后選中芯片中的4位。
存儲器中的數(shù)據(jù)經(jīng)"輸入/輸出三態(tài)門"與數(shù)據(jù)總線相連。由片選信號CS和讀寫信號R/W共同控制三態(tài)門。當(dāng)CS=0,R/W=0,輸入三態(tài)門打開,數(shù)據(jù)總線來的數(shù)據(jù)被寫入存儲器。當(dāng)CS=0,R/W=1,輸出三態(tài)門打開,存儲器中的數(shù)據(jù)輸出到數(shù)據(jù)總線。
2114的讀寫時序如下圖。
?。?) 讀操作

?、?nbsp;存儲器收到地址總線上來的地址信號后,經(jīng)過一定時間,片選信號CS有效(片選信號CS由地址信號譯碼產(chǎn)生)。
?、?nbsp;片選信號CS有效后,經(jīng)過時間tCX,存儲器開始輸出數(shù)據(jù)。輸出數(shù)據(jù)穩(wěn)定后,CPU獲得數(shù)據(jù)。從CS有效到數(shù)據(jù)穩(wěn)定的時間是tCD。
?、踭OTD:恢復(fù)時間,用于存儲器內(nèi)部操作。從輸出數(shù)據(jù)穩(wěn)定至可以輸入新的地址的時間
④ 地址信號消失后,數(shù)據(jù)維持的時間是tOHA。
?、?nbsp;從存儲器獲得地址信號,到輸出數(shù)據(jù)穩(wěn)定的時間,稱為"存取時間"tA。
?、?nbsp;從存儲器獲得地址信號,到允許下次地址信號出現(xiàn)的時間,稱為"讀周期"tRC。 tRC=tA+tOTD。
?。?)寫操作

寫周期是指:啟動一次寫操作至啟動下一次寫操作的時間。
tA:存取時間(寫入時間),從地址有效到數(shù)據(jù)寫入。
tAW:地址建立時間,從地址出現(xiàn)到穩(wěn)定。
tW:寫脈沖寬度。
tWR:寫操作恢復(fù)時間,從數(shù)據(jù)寫入到可以輸入新地址的時間,用于存儲器內(nèi)部操作。
tDW:數(shù)據(jù)有效時間,從數(shù)據(jù)穩(wěn)定到數(shù)據(jù)寫入。
tDH:數(shù)據(jù)保持時間,寫信號無效后,輸入數(shù)據(jù)應(yīng)保持的時間。
寫周期對時序的要求是:①地址建立時間tAW(從地址輸入到穩(wěn)定)應(yīng)盡量短,在寫入信號WE有效前,地址已穩(wěn)定。
?、趯懨}沖寬度tW應(yīng)滿足要求。 寫周期tWC=tAW+tW+tWR。
2、Intel 2164芯片(64Kb×1)
?。?)、外部結(jié)構(gòu)
Intel 2164 是64Kb×1 DRAM芯片,其位密度較高,選擇其中某個基本存儲電路需要16根地址信號,為了減少引腿數(shù)目,對于高密度DRAM,一般使行地址和列地址共用一組引腿,并設(shè)置行地址選通信號RAS和列地址選通信號CAS,在內(nèi)部設(shè)置行地址寄存器和列地址寄存器。Intel 2164的引腳圖及邏輯符號如下圖:
![]() |
|
先在引腳A7~A0上提供行地址RA7~RA0,并使 有效,芯片把該行地址鎖存在行地址鎖存器中,再在引腳A7~A0上提供列地址CA7~CA0,根據(jù)行地址RA7~RA0和列地址CA7~CA0,選中一個基本存儲電路。
?。?)、內(nèi)部結(jié)構(gòu)
該芯片的內(nèi)部結(jié)構(gòu)如下圖,包括存儲體、行地址鎖存器、時鐘控制電路、1/4 I/O門、數(shù)據(jù)輸出緩沖器、數(shù)據(jù)輸入緩沖器等部分構(gòu)成。

64K存儲體由4個128×128存儲矩陣、4個128讀出放大器、2個1/128行譯碼器和2個1/128列譯碼器構(gòu)成。行地址中的RA6~RA0同時加到4個存儲矩陣上,在每個存儲矩陣中均選中一行,共有4×128個基本存儲電路被選中,它們的信息被選通至4×128個讀出放大器。列地址中的CA6~CA0也同時加到4個存儲矩陣上,在每個存儲矩陣中均選中一列。這樣,經(jīng)RA6~RA0和CA6~CA0,選中4個基本存儲電路。最后,由RA7和CA7控制"1/4 I/O 門"選中其中一個基本存儲電路(RA7由"8位地址緩沖器"即行地址寄存器提供,CA7實際使用經(jīng)"列時鐘緩沖器"的CAS代替)。
?。?)、工作時序
讀周期工作時序:

?、?nbsp;先在A7~A0引腳上提供行地址,在tASR時間后使行地址選通信號RAS有效,把行地址鎖存在內(nèi)部的行地址鎖存器中。讀周從RAS有效開始,在RAS有效后,A7~A0引腳上的行地址應(yīng)至少保持tRAH時間。
?、?nbsp;再在A7~A0引腳上提供列地址,在tASC時間后使列地址選通信號CAS有效,在CAS有效后,A7~A0引腳上的列地址還應(yīng)至少保持tCAH時間。行地址和列地址選中一個基本存儲電路。
?、?nbsp;讀信號(WE=1)應(yīng)在CAS有效前tRCS有效。
?、?nbsp;在CAS有效tCAC后,數(shù)據(jù)輸出線Dout開始輸出數(shù)據(jù)。如果從讀周期開始(RAS有效)計算,數(shù)據(jù)在tRAC后輸出。為了保證數(shù)據(jù)可靠讀出,RAS有效的時間tRAS應(yīng)滿足一定的寬度。
?、?nbsp;RAS當(dāng)變高后,對存儲電路中的電容進(jìn)行預(yù)充電,預(yù)充電時間為tRP,因此,整個讀周期的時間tRC=tRAS+tRP。
寫周期工作時序:

?、?nbsp;行地址->RAS有效->行地址保持->列地址->CAS有效->列地址保持。行地址和列地址選中一個基本存儲電路。
?、?nbsp;寫信號(WE=0)應(yīng)在CAS有效前tWCS有效。為了保證可靠寫入數(shù)據(jù),寫信號的寬度至少應(yīng)為tWP。
③ 數(shù)據(jù)信號CAS在有效的下降沿被寫入,但數(shù)據(jù)信號應(yīng)在CAS有效tDS前有效,且在CAS有效后應(yīng)維持tDH。
?、?nbsp;整個寫周期的時間tRC=tRAS+tRP。
讀-修改-寫周期工作時序:
在指令中,常要對某個內(nèi)存單元(8個基本存儲電路)的內(nèi)容讀出進(jìn)行修改,然后再寫回這一單元。為了提高操作速度,在存儲器中設(shè)計了"讀-修改-寫"周期。
這一周期的性質(zhì)類似于讀周期和寫周期的組合,但它不是由兩個單獨的讀周期和寫周期結(jié)合起來的,而是在RAS和CAS同時有效的情況下,由WE信號先實現(xiàn)讀出(①,WE=1),在修改后又實現(xiàn)寫入(②,WE=0)。

頁模式讀周期工作時序:
在指令中常要求數(shù)據(jù)塊操作,為了提高數(shù)據(jù)傳送的速度,可采用頁模式操作。即維持行地址不變(RAS不變),由連續(xù)的CAS信號對不同的列地址進(jìn)行操作。每個CAS操作一個內(nèi)存單元。(CAS信號的數(shù)量要受RAS信號寬度的限制)。
首先給存儲器指定行地址,然后連續(xù)指定幾個列地址。在每次列地址有效tASC時間后,CAS信號有效,在CAS信號有效后tCAC時間,數(shù)據(jù)被讀出。
當(dāng)行地址(CPU訪問地址的高位)不變,幾個列地址(CPU訪問地址的低位)對應(yīng)幾個內(nèi)存單元,這幾個內(nèi)存單元稱為一"頁",故這種內(nèi)存操作方式稱為"頁模式"。如,列地址為8位,則一頁等于256字節(jié)。
在頁模式操作時,可實現(xiàn)存儲器讀、存儲器寫、讀-修改-寫操作。上圖為頁模式讀操作時序。頁模式操作提高了數(shù)據(jù)傳送的速度,又稱為"快速頁模式FPM(fast page mode)"。
刷新周期工作時序:

與一般的存儲器刷新方式類似,Intel 2164的刷新周期只需行地址(稱為"唯刷新方式")。先在A7~A0上提供行地址,然后使 有效,選中存儲體中的一行或幾行,由"讀出放大器"實施刷新。對于Intel 2164,存儲體由4個128×128矩陣構(gòu)成,每次刷新在4個128×128矩陣中均選中一行,經(jīng)過128個刷新周期即可完成整個存儲體的刷新。在刷新過程中,由于 始終無效,故數(shù)據(jù)不會讀出至Dout線上。
四、 RAM與CPU的連接
1、 RAM芯片組的連接
以8個4096×1芯片連接成一組4KB的芯片組為例。

連接方法:
① 每一片4096×1芯片輸出一位數(shù)據(jù),8片輸出數(shù)據(jù)一字節(jié)D7~D0。
② 8片的 連接在一起,同時被選中。
③ 8片的 連接在一起,同時被讀/寫。
④ 8片的地址線A11~A0連接在一起。
2、 4KB RAM的連接(全譯碼) 以8片Intel 2114(1Kb×4)構(gòu)成4KB RAM為例。 每片Intel 2114需要10根地址線A9~A0,每片輸出4位數(shù)據(jù),兩片構(gòu)成一組,輸出一字節(jié)8位數(shù)據(jù)。

每組的兩片應(yīng)同時被訪問,因此,其地址信號A9~A0連接在一起,讀/寫信號也連接在一起。
用地址信號A15~A10譯碼輸出(0~63)選擇某組存儲器。
| 組別 | A15~A10 | 組內(nèi)地址A9~A0 | 地址范圍(A15~A0) |
| 0組 | 000000 | 0000000000 ~1111111111 |
0000,0000,0000,0000(0000FH)~ |
| 1組 | 000001 |
0000,0100,0000,0000(0400H)~ 0000,0111,1111,1111(07FFH) |
|
| 2組 | 000010 |
0000,1000,0000,0000(0800H)~ 0000,1011,1111,1111(0BFFH) |
|
| 3組 | 000011 |
0000,1100,0000,0000(0C00H)~ 0000,1111,1111,1111(0FFFH) |
在這種連接方式中,全部高位地址A15~A10(A9~A0為芯片組的組內(nèi)地址)均參與譯碼選擇芯片組,稱為"全譯碼"。其特點是,每一組的地址是唯一的。
3、 4KB RAM的連接(線譯碼)
"線譯碼"方式:單獨用一根地址線選擇芯片組。例如,用A10=0選0組,A11=0選1組,A12=0選2組,A13=0選3組。

線譯碼的特點是:
?、?nbsp;直接用某根地址線選擇芯片組,不需要地址譯碼器。
?、?nbsp;一組芯片有多組地址。
以0組為例(A10=0選中0組)。
|
A15~A11
|
A10
|
A9~A0
|
地址范圍
|
|
00000
|
0
|
0000000000~111111111
|
0000,0000,0000,0000(0000H)~ 0000,0011,1111,1111(03FFH)
|
|
00001
|
0000,1000,0000,0000(0800H)~ 0000,1011,1111,1111(0BFFH)
|
||
|
.....
|
|
||
|
11111
|
1111,1000,0000,0000(F800H)~ 1111,1011,1111,1111(FBFFH)
|



