存储元件与阵列
                            
                            
                            下載 
第9章存儲元件與陣列
大多數的數字系統需要具備“記憶”二進制變量數值的能力,以對其作進一步的計算。
這種能力通過一類稱為存儲單元的數字電路予以實現。存儲單元允許用戶把二進制變量的數
值存儲起來,在需要時再調用它。盡管存儲單元能夠被獨立地使用,但它們通常以稱為寄存
器的字長大小的組,或者作為能夠存儲成千上萬位數據的巨大陣列的形式出現。
9.1 一般屬性
存儲元件是能夠保持系統所需的二進制變量數值的電路。
在圖9 - 1中,描繪了一個基本的存儲單元。在最通用的術語中,
有三種操作刻畫出該單元的特性。
? 寫入在一個寫入操作中,數據位碼D的值(為0或者1)
置于輸入,并被該元件
所接受。
? 保持在寫入操作中所存儲的D值被保持,盡管輸入可能有所變化。
? 讀出一個讀出操作把存儲位碼的值提供給輸出變量Q。
E n a b l e使能控制位可能存在于某個設計中, Enable = 0示意保存,而Enable = 1容許進行讀
出或者寫入操作。
數字系統采用不同類型的存儲元件,它們的特性隨應用而變化。一個分類方案基于該單
元設計提供了哪些操作。讀/寫存儲器就是用戶可以用來存儲數值,保持它們一段不確定時期,
并在需要時再把該數值讀出來的存儲器。它可能是最一般類型的存儲器,通常稱為隨機存取
存儲器或者R A M。大多數的讀/寫存儲器在掉電時丟失其內容。一類限制性更大的存儲器稱為
只讀存儲器(R O M)。對于R O M,信息在它置入電子系統之前就被永久地存儲于器件之中。
用戶可以讀出R O M中的信息,但是不允許改變該數據。可編程R O M(P R O M)是R O M的一
個變種,用戶可以在其中存儲期望的數據,但是寫入過程需要一個特別的電子裝置,且它僅
能執行數次。
計算機圍繞著一組稱為寄存器的存儲元件而設計。一個寄存器被設計來保存整個的n比特
字,而它在其他方面與R A M相同。不管具體的應用如何,所有的存儲元件在數字邏輯方面有
著共同的基礎。
9.2 鎖存器
鎖存器是能夠跟隨數據變化并傳送這些變化到一根輸出線的邏輯元件。圖9 - 2是它的一個
簡單表示。通常地,鎖存器由兩個主要的特性所刻畫:
? 它是貫通的,因為輸出Q(t)跟隨上一時刻輸入的變化;而且,
? 它使用雙穩態電路實現存儲,從而,不是Q = 0就是Q = 1能夠在該單元中保持。
使用簡單的邏輯門就可以構成幾類鎖存器。
輸入(寫)
圖9-1 通用存儲單元
輸出(讀)
使能
9.2.1 SR鎖存器
置位復位( S R)鎖存器是一個貫通的雙穩態元件,它對于輸入的變化是敏感的。SR 鎖存
器具有分別標注為S與R的兩個輸入和一個標注為Q的輸出;互補輸出
-Q
也被提供。圖9 - 3是其
一般的方框圖表示。該元件的名稱從它的兩個基本操作的定義所得出。
圖9-2 基本鎖存器符號圖9-3 SR鎖存器符號
? 置位(S)操作,輸出值被強制為Q = 1。
? 復位(R)操作,Q值被強制為Q = 0。
術語“置位”與“復位”十分通用,在數字系統中經常被用來描述條件。例如,如果我們說
我們想要“置位變量A”,這意味著我們強制A值為1。類似地,復位A意味著A→0。在這里,
我們將討論兩種基本S R鎖存器電路。一種是基于兩輸入或非門N O R 2,另一種使用兩輸入與
非門N A N D 2邏輯。既然或非門和與非門互為對偶關系,那么它們的開關特性將是相反的。
或非門S R鎖存器
S R鎖存器能夠由兩個交叉耦合的或非門構成,如圖9 - 4 a所示。“交叉耦合” 這個術語定
義了兩個門的連接方式;它的意思是一個或非門的輸出連接到另一個或非門的輸入,反之亦
然。這在術語上也稱為反饋網絡,因為每一個門的輸出都被“反饋”而成為另一個門的輸
入。要建立一個能保存兩個邏輯值的雙穩態電路,反饋是必需的。圖9 - 4 b中的狀態表總結了
該鎖存器的操作。我們必須關注其中對輸入的解釋,因為S R鎖存器通過感知輸入S和R的變
化來存儲比特。這意味著,我們真正感興趣的是S ( t )和R ( t ),以及它們對該鎖存器狀態的影
響。
現在,我們來分析一下S R鎖存器的功能表。該狀態表中的第一種輸入稱為保持操作,在
那里,維持著S = 0和R = 0;這意味著只要S= 0 =R,Q值就不會改變。為了理解這個性質,回
顧一下圖9 - 5所示的或非門的真值表。或非門的功能可被解釋為任意一個輸入為1,都使得輸
出為0;輸出為1的唯一方式是兩個輸入皆為0值。現在假設S= 0與R= 0被應用到輸入。如果Q =
0,那么下方的或非門(帶輸入S)的兩個輸入皆為0,這意味著
-Q
= 1。這就反過來作用到上方
244 數字系統設計基礎教程
使能
輸入輸出
輸入輸出
操作
置位
復位
不使用
保持
圖9-4 基于或非門的SR鎖存器電路
a) 邏輯圖解b) 功能表
下載
的或非門(帶輸入R),確保Q = 0被維持。如果代之以Q= 1,
那么僅僅是變元反向。這個分析的重要性在于這樣一個事
實,保持Q值是可能的。交差耦合的或非門形成一個有兩個
“穩定”狀態的雙穩態網絡。這意味著該電路能夠“保持”
數值Q = 0;對于另外一種可能性Q = 1,它同樣地正確。
為了置位該鎖存器,輸入S從0上升到1,同時保持R = 0。
接下來,S又返回為0,使該鎖存器回到保持狀態。在該功能
表中,這個行為由S的一個脈沖輸入表示。從或非門的真值
表可見,隨著S = 1,輸出
-Q
被強制為0。那么,上方的或非門有R = 0與Q = 0作用到它的輸入,產
生一個輸出Q = 1。這就導致了“置位”的動作。復位強制Q為0,可以用同樣的方式去分析它。
在該功能表的第四種輸入中, S和R的值同時設為邏輯1。從真值表可見,兩個輸出都被強
制為0。由于在這種情形下兩輸出不互補,我們就把它定義為S R鎖存器“不使用”的輸入組合。
這僅僅意味著,要避免兩輸入同時被脈沖所激勵的情形。在數字系統中應用S R鎖存器時,
必須考慮到它的這種行為。
與非門S R鎖存器
如圖9 - 6所示,也可以使用與非門構成S R鎖存器。兩與非門交叉耦合,產生必需的反饋而
形成雙穩態網絡。然而,它的性質與基于或非門的方案是相反的,保持的條件是R = 1且S = 1。
正如它的功能表指明的,使S從1下跳為0,該鎖存器就可以置位Q = 1;使S回跳到1,就開始
保持。相反地,如果R從1下跳為0,該鎖存器就被復位Q = 0。R再恢復為邏輯電平1,則保持
輸出值。“不使用”的情形是, S與R同時下跳為0。
圖9-6 基于與非門的SR鎖存器
通過研究圖9 - 7中與非門的真值表可以理解,為什么這
種鎖存器的行為與基于或非門的電路的行為相反。與非門
的操作可以歸納為,只要有一個輸入為邏輯0,就使得輸出
為邏輯1。因為或非門在輸入邏輯1時翻轉,我們期望這兩
種鎖存器有類似的行為,但是這里要導致一個開關事件必
須是相反的輸入電平。由于這一點發現,這種鎖存器的符
號必須相對于圖9 - 3所示的鎖存器的符號有所修改,那里的
S和R現在都被指定為低輸入有效。
第9章存儲元件與陣列245
下載
圖9-5 兩輸入或非門真值表
兩輸入都為1的條件可能導致一個不穩定狀態,使該器件震蕩。這種可能性依賴于信號通過門的延遲。
操作
不使用
置位
復位
保持
a) 邏輯圖解b) 功能表
圖9-7 兩輸入與非門真值表
9.2.2 D鎖存器
D型鎖存器只有單個作為輸入數據位碼的輸入D。它的特性在于,它具有鎖定D的值并追
蹤其任何變化的能力。構造一個D鎖存器的簡單方式如圖9 - 8所示。它采用了一個S R鎖存器,
而用D和
-D
替換其輸入。D的補是通過增加一個反相器得到的。D鎖存器的操作能夠用S R鎖存
器的功能表來理解。當D = 0時,到下方或非門的
-D
輸入為1。它強制輸出Q = 0,并被交叉耦
合的網絡所保持。如果D = 1,上方的或非門的輸出被強制為
-Q
= 0,也就是另一個穩態。
圖9-8 基本的D 型鎖存器
9.3 時鐘與同步
在一個復雜的數字系統中,我們必須仔細地控制數據流,確保每一部分正確的信息在需
要時能夠得到。控制網絡中數據傳送最容易的方式,是通過一個預定義好的參考如時鐘信號
來同步系統的操作。盡管在第1章中已經介紹了時鐘,下面快速地回顧一下它的基本原理。
時鐘是從0到1又返回0作周期性變化的控制信號,如圖9 - 9所示。我們通常用符號?(t)或
者C L K標注時鐘。它最重要的特性是每T秒重復一次,即眾所周知的周期。時鐘的頻率定義為
( 9 - 1 )
表示時鐘在1秒鐘內重復的次數。頻率有精確的單位s-1,稱為H z(赫茨)。在計算機中,
對T最常用的度量是微秒(簡作ms),有
1ms = 10-6s
或者納秒( n s),有
1ns = 10-9s
T = 1ms的頻率是
( 9 - 2 )
圖9-9 用于同步的時鐘信號
這里, M H z讀作兆赫茨,意思是每秒一百萬個周期。在現代臺式計算機中,它是最通用的時
鐘單位。
246 數字系統設計基礎教程
下載
a) 元件b) 操作c) 邏輯圖解
輸入輸出
t[秒]
例9 - 1
假定時鐘頻率為5 0 0 M H z,與之對應的時鐘周期T通過倒數關系計算出來
( 9 - 3 )
這是許多現代系統典型的時間量級。
使用時鐘信號控制存儲元件的操作,使我們能夠指定把數據值存入該器件的時間。在數
據位碼可載入時,產生的結果是存儲元件被該部分時鐘周期特性化。這涉及能以同步方式傳
送數據的非常復雜的數字網絡的設計。
9.3.1 時鐘S R鎖存器
時鐘S R鎖存器如圖9 - 1 0 a所示。與圖9 - 4相比較,時鐘信號?(t)分別同輸入R、S相與,使交
叉耦合的或非門電路的輸入有效值修改為
( 9 - 4 )
圖9-10 時鐘SR鎖存器
圖9-11 時鐘D型鎖存器
因為或非門鎖存器的保持條件是( 0,0),所以,當? = 0時,這種鎖存器自動處于保持狀態,
置位和復位操作僅當? = 0時才能發生。這就定義了一個電平觸發的或者電平敏感的鎖存器,
在時鐘? = 1的任何時候,它允許輸入。時鐘S R鎖存器的符號如圖9 - 1 0 b所示。注意,它包含
了作為控制信號的時鐘?。
第9章存儲元件與陣列247
下載
a) 邏輯圖解b) 符號
a) 邏輯圖解b) 符號
按照這樣的處理,定義觸發器為任何鐘控存儲元件,那它也稱為觸發器。
9.3.2 時鐘D鎖存器
時鐘D鎖存器能以同樣的方式構成,如圖9 - 11 a所示。再次,時鐘信號?和常規的輸入相與,
得到有效輸入為
D ' = D·? ( 9 - 5 )
這就構成了一個電平敏感的鎖存器,其符號如圖9 - 11 b所示。如前面的時鐘S R鎖存器一樣,僅
當? = 1時,輸入能起作用。由于時鐘D鎖存器在此期間的這種行為,經常把它稱作貫通的鎖
存器。時鐘條件? = 0保持輸出Q和
-Q
的值。
在使數據流同步通過一個復雜系統方面,時鐘鎖存器是有效的。它們也賦予名稱“鎖存
器”以更多的意義,因為當它們被時鐘信號激活時,能夠形象化為“抓住”數據的電路。
9.4 主-從觸發器和邊沿觸發器
觸發器是時鐘控制的非貫通的鎖存器。這意味著該存儲元件當前的輸出值Q與當前的輸入
值A無關。它有幾種不同的變體,但是它們全都具有一個特性:在較早的時候由時鐘電路確立
的輸出Q(t)被存儲起來。
主-從觸發器網絡的基本特征如圖9 - 1 2所示。
如此命名這種存儲元件,是由于它指定了兩個內
部塊,代表兩個分離的鎖存電路。主鎖存器用于
接收輸入數據位碼A到觸發器。這個值被保存在
主觸發器里,在一定的時間后傳送到從鎖存器。
它們的輸入由時鐘信號?(t)同步。
圖9 - 1 3總結了主-從配置的操作。在圖9 - 1 3 a
中,主電路的輸入被激活, A值存儲在那里。在此期間,從鎖存器不活動(也就是,處于保持
狀態),不能接受輸入。下一操作階段如圖9 - 1 3 b所示。在此期間,主鎖存器處于保持狀態,而
從鎖存器激活。然后,A值被從鎖存器接受,該觸發器輸出端得到Q = A。因為此時主鎖存器失
效,其輸出端繼續保持A值,即使輸入變化為B。在此期間,該觸發器是非貫通的。其重要的
特性是,輸出值Q(t)與當前的輸入(B)無關,而表示早些時候主鎖存器激活時的輸入值。
9.4.1 主-從D型觸發器
主-從D型觸發器(D F F)如圖9 - 1 4所示。這種存儲元件由層疊的兩個時鐘D型鎖存器構成。
第一個鎖存器指定為主電路,負責得到輸入數據位D。第二個鎖存器作為從鎖存器,用來保持
它從主鎖存器接收的數據位碼的值。只要觀察到主從電路被反相的時鐘?(t)所控制,就很
容易理解D F F的操作。因為
-?應用到主觸發器,所以當? = 0時,主鎖存器接受輸入。另一方面,
從鎖存器使用?定時,這樣當? = 1時,它允許輸入改變。
D F F操作的一個詳細例子如圖9 - 1 5所示。在圖9 - 1 5 a中,當時鐘? = 0時,主鎖存器激活,
輸入數據位碼D = 1被接受,并存儲在第一個鎖存器里。在此期間,從鎖存器處于保持狀態,
以致于它的內容在主鎖存器載入時不受影響。當時鐘變化到? = 1時,主鎖存器保持,它的輸
出饋入現已被時鐘激活的從鎖存器,如圖9 - 1 5 b所示。數據位碼A傳送到從鎖存器,輸出值為
Q= 1和
-Q
= 0。
248 數字系統設計基礎教程
下載
圖9-12 主-從結構
主從
圖9-13 主-從操作
圖9-14 D型觸發器電路
圖9-15 DFF操作細節
第9章存儲元件與陣列249
下載
a) 主鎖存器有效b) 從鎖存器有效
主
(有效)
從
(有效)
從主
主
主
主
從
從
從
a) 載入主鎖存器
b) 傳送到從鎖存器
圖9-16 主-從DFF時序圖解
現在,讓我們使用時序圖9 - 1 6來分析一下主-從D F F的操作。在圖9 - 1 6中,時鐘信號?(t)
提供同步信息,從而? = 0指明主鎖存器接受輸入D,而? = 1意味著D F F輸入失效,數據傳送
到從觸發器,可在輸出端Q(t)處得到。
上面描述的主-從D F F被設計為在? = 0的期間接受輸入D。當時鐘從? = 0變化到? = 1的時
刻,傳送到從鎖存器電路的值(這里是輸出Q)就是主鎖存器中的值。因為這個理由,主-從
配置被劃分到邊沿敏感器件一類。這意味著,當時鐘從一個值跳變到另一個值時, Q值依賴于
主鎖存器中的內容,對應于時鐘波形的一個“邊沿”。
一種相關的存儲元件是邊沿觸發器。功能上,它似乎類似于邊沿敏感的設計。然而,僅
當時鐘跳變時,邊沿觸發器才允許載入輸入數據D。這不同于主-從電路,那里,主鎖存器在
半個時鐘周期內是貫通的。按照我們的處理,我們不關心主-從電路和邊沿觸發電路之間的
內部差別。取而代之,我們認為任何觸發器就像一個多路選擇器一樣,能夠用來作為一個基
本的積木,我們僅僅分析該器件的總體特性。邊沿觸發D F F的符號如圖9 - 1 7 a所示,時鐘輸
入增加了一個特別的標注,來指明一個正邊沿觸發行為,僅當時鐘從? = 0跳變到? = 1 時輸
入被接受。
圖9-17 邊沿觸發DFF操作總結
圖9 - 1 7 b中的總結表描述了邊沿觸發D F F的操作,它表明輸出Q僅僅是輸入D延遲一個時鐘
周期后的值。該表中的標注使用時間變量t表示“當前”值,如D ( t ),這里t是時鐘上升邊沿的
250 數字系統設計基礎教程
下載
[秒]
[秒]
[秒]
D觸發器
a) 符號b) 操作總結
時刻。另一方面,輸出寫作Q(t+T),這里T是時鐘周期。這意味著在下一個時鐘周期,也就
是在(t+T)時,輸出變量Q的值。該邊沿觸發D F F由下面的方程所表征:
Q(t+T)=D(t) ( 9 - 6 )
它表明輸出值與上一時鐘周期的輸入相同。延遲是邊沿觸發D型觸發器重要的一個方面,因為
它允許我們存儲當前值,以在下一時鐘周期使用。
對于數字設計中的許多應用,邊沿觸發D F F的延遲特性是足夠的。然而,一些系統要求
我們具有保持一個數據位碼幾個時鐘周期的能力。為了構建一個提供這種功能的電路,我們
必須把輸出Q傳送回輸入D,然后用相同的值“重新載入”觸發器。實現它的一個簡單方式
是,使用如圖9 - 1 8所示的2選1多路選擇器。在這個方案中,載入信號L D控制輸入,從而通
過把輸出傳送回輸入, L D = 0 保持當前值。如果L D = 1,那么新的d值傳送到D F F存儲單元。
另一個時常有用的特征是觸發器復位的能力,也就是強制Q為0。這個能力可以通過增加
如圖9 - 1 9所示的與門來提供。在此種情形,控制信號是—R E S E T,這樣
R E S E T = 0:使輸入D = d,
而
R E S E T = 1:強制輸入D = 0。
這里,在時鐘跳變時, R E S E T的值起作用,如果想要修改邏輯,這個特征也能與載入操作相
組合。
圖9-18 帶數據載入控制的DFF 圖9-19 帶復位能力的DFF
D型存儲元件的V H D L描述
對于一般的邏輯設計, D型鎖存器與D型觸發器是有用的。V H D L描述引入了新的思想,
值得詳細解說。
首先考慮如圖9 - 2 0所示的電平觸發D鎖存器。時鐘輸入用c l k表示,完全不同于?。為描述
該鎖存器的操作,我們首先必須注意到c l k的值控制著這個元
件的行為。當c l k = 0時,鎖存器不允許改變Q的狀態,僅當c l k
= 1時,才可以改變存儲位碼的值。下面的描述引入了V H D L進
程的思想。V H D L進程是一種允許包含定時關系的結構。
- - D鎖存器的V H D L描述
- -結構體包含進程語句
第9章存儲元件與陣列251
下載
輸入
輸出
輸入
D觸發器
圖9-20 b型負存器
D鎖存器
關鍵字p r o c e s s指明一組順序語句的開始,它意味著命令以它們排列的順序依次執行。這個進
程由下面的序列描述,
該序列按照它的理解準確地執行。換句話說,時鐘值c l k =‘1’使得D傳送到輸出Q。
邊沿觸發器件要稍微復雜一些,因為我們必須寫一個說明c l k值變化的進程。考慮圖9 - 2 1
所示的正邊沿觸發的D F F模塊。在V H D L中,描述信號變化的一個方式是使用‘ e v e n t指令。
語句
解釋為一個布爾對象,其值為真或假。若c l k‘e v e n t為真,意味著信號c l k值已經改變,若c l k
沒有改變,那么它返回假。為了描述正時鐘邊沿,它寫作
因為c l k正在改變且c l k的值目前為1,它的計算結果為真。記住這樣一點, D F F能夠由下面的
程序清單描述。
圖9-21 邊沿觸發DFF模塊
- -邊沿觸發D F F的V H D L描述
- -結構體包含進程語句
252 數字系統設計基礎教程
下載
如果我們希望描述負邊沿觸發器,那么我們只須改變進程命令來反映時鐘最終的值c l k = 0。
- - D F F的V H D L描述
- -結構體包含進程語句
本章中所有其他時鐘敏感元件的V H D L描述都能夠使用該進程結構建立。
9.4.2 其他類型的觸發器
其他的幾種觸發器能夠使用基本邏輯門構成。每一種由一組獨特的、對設計者有用的并
依賴于系統規范的特性所定義。我們將僅僅關注在時鐘邊沿接受輸入的邊沿觸發器。
圖9-22 SR觸發器特性
S R觸發器
S R觸發器有著和D F F同樣的基本結構,而由S R鎖存器取代D F F的輸入電路。它有兩個獨
立的輸入S和R,由S = 0 = R定義它的保持狀態。在S R鎖存器的操作中, S和R同時為1的狀態
禁用,記住這一點是重要的,以便在S R觸發器中排除這種情況。邊沿觸發SR FF的符號如圖9 -
2 2 a所示,圖9 - 2 2 b是相應的操作表。它能夠概述為
( 9 - 7 )
注意到,輸入S ( t )和R ( t )皆等于1的情形沒有定義。這是由于電路中使用了基本S R鎖存器。
第9章存儲元件與陣列253
下載
操作
保持
置位
復位
不使用
a) 符號b) 操作總結
J K觸發器
J K觸發器修改了SR FF 的電路,以使兩輸入同時跳變為1的情形引起切換操作
( 9 - 8 )
這意味著,若Q, - Q = R ( t ),那么該切換改變它們到(Q, - Q)=(0, 1 )。這個電路中的輸入與S R
觸發器是相同的,但它們有著并不相同的外部操作。圖9 - 2 3總結了這些特性。J K觸發器在以
往基于S S I集成電路的硬件設計中占據支配地位,目前在某些系統中,它仍然是常用的器件。
圖9-23 JK觸發器的特性
T觸發器
切換觸發器是有一個輸入T的電路,在圖9 - 2 4的邏輯符號中指明。T F F的操作恰如它的名
字所暗示:無論什么時候, T從0變化到1,輸出就切換。這是一個相當特殊的器件,它沒有上
面所討論的觸發器的多面性,但仍然很實用。
圖9-24 T觸發器的特性
9.5 寄存器
寄存器是一個用來存儲nb i t二進制字的邏輯元件。幾乎每一大型的數字系統都采用寄存器
來保持重要的數據,所以有必要對它進行詳細地研究。它可以構造出幾種變體,它們在數字
系統設計中各有其應用范圍。
9.5.1 基本存儲寄存器
我們可以并行方式簡單地使用n個1 b i t存儲單元,構成一個允許對全部單元同時讀或者寫
的寄存器。通常為了方便,以系統規范要求的字長大小來構成寄存器。
我們來測試一個8位寄存器,它能夠存儲一個字節的數據。為了建立這個寄存器,我們使
用如圖9 - 2 5 a所示的獨立存儲單元來構成圖9 - 2 5 b所示的電路。注意,我們選擇了邊沿觸發存儲
元件作為基本的單元。為了簡單起見,我們僅僅指出了輸入、輸出和時鐘端口。元件可能需
要的其他控制線,如載入( L D)信號,沒有明確地表示出來。盡管每一位可以單獨存取,該
寄存器作為所定義的一組,用于保持一個8 b i t的字,因此所有單元的讀出或者寫入操作同時執
254 數字系統設計基礎教程
下載
a) 符號b) 操作總結
a) 符號b) 操作總結
操作
保持
置位
復位
轉換
行。既然一直使用邊沿觸發存儲單元,那么僅在時鐘跳變時執行寫入操作。一個簡化的記號
如圖9 - 2 6 a所示,這些單元簡單地組合在一起,呈現為一個獨立的單位。在圖9 - 2 6 b中,我們把
寄存器表示為帶8 b i t輸入輸出線和單個時鐘控制的單一實體。在許多應用中,它理解為,寄存
器根據時鐘信號?(和任何其他條件)載入,即使它在圖中被忽略掉。
圖9-25 由獨立的存儲元件創建的寄存器
圖9-26 用于表示8位寄存器的符號
這種類型的通用寄存器在計算機設計中被廣泛地使用,在第11章計算機系統環境下,我
們將詳細地討論它。此處要記住的重要概念是,寄存器保持nb i t字作為一組,它自身能夠當作
一個單獨的由更小的單元所組成的數字元件來看待。
9.5.2 移位寄存器
移位寄存器被設計用于在時鐘脈沖作用下傳送它的位碼到相鄰單元。為了說明移位寄存
器的一般性質,讓我們重復圖9 - 2 7 a中的存儲單元,建立如圖9 - 2 7 b所示的串行鏈,在那里,每
個單元的輸出作為它右邊相鄰單元的輸入。總之,該電路有單個輸入位D和單個輸出位Q,組
成了一個8位移位寄存器。既然所有的單元由同一個時鐘信號?控制,因此它們同時載入。
圖9-27 基本移位寄存器結構
圖9-28 移位寄存器的簡化符號
使用圖9 - 2 8所示的簡化符號,很容易理解移位寄存器的操作。這種示意圖使我們可以形
第9章存儲元件與陣列255
下載
輸入字
輸出字
輸入
輸出
a) 單個單元b) 8位寄存器
輸入
輸出
a) 獨立單元b) 單個寄存器
a) 單個單元b) 串行載入移位寄存器
象地分析該單元的內容,跟蹤數據在結構中的傳送。即使沒有明確地表示時鐘?,仍然如初始
電路一樣,設定輸入同步。
假設我們想要以比特序列
D0= 1,而
D1= 1,而
D2= 0,而
D3= 0,
等等載入寄存器,就如圖9 - 2 9 a所示的移位寄存器的輸入“ 0 , 1 , 0 , 1 , 0 , 0 , 1 , 1”。當我們使用這種
記號表示串行輸入時,意味著右邊的位碼是將要進入部件或系統的下一位。因為在寄存器中
有8個單元,載入整個寄存器將花費8個時鐘周期。根據圖9 - 2 9 b中的時鐘圖解,就在時間7T之
后,正如前面所言,可得到第一個輸入位D0= 1的輸出。
圖9 - 3 0提供的序列明確地表示出位碼通過移位寄存器的進程。左邊指出的時間隱含寄存
器在下一個載入事件發生之前的內容(因為單元由正時鐘邊沿觸發)。數據傳送筆直向前流動,
在第一個正時鐘跳變時,單元d7裝入T時刻
的D0= 1。下一個正時鐘邊沿使D0= 1移到下一
個單元d6,同時接受D1= 1進入單元d7。每個
子序列在正時鐘跳變時接受下一位,使每一
個存儲位碼傳送到右邊的單元。在7T之后,
該字的末位裝入單元d7,首位D0= 1在移位寄
存器的輸出端得到。因為d0位先載入且先出
來,所以它稱作F I F O(先進先出)電路。
對于某些類型的存儲應用, F I F O極其有用。
圖9-30 數據在移位寄存器內傳送
256 數字系統設計基礎教程
下載
F I F O按照音節讀作f i - f o。
a) 內容清除
輸入序列
b) 時鐘周期
圖9-29 串行數據輸入移位寄存器
時刻輸入隊列
并行載入的移位寄存器允許用戶在一個時鐘跳變存儲整個字,如圖9 - 3 1所示。這個特定
的寄存器有兩種移位操作,分別由信號S H R(右移)和S H L(左移)控制。兩者的作用如圖9 -
3 2所示。在圖9 - 3 2 a中,寄存器的初始內容是字1 0 1 0 11 0 0(從左讀到右)。通過設置SHR = 1啟
動移位寄存器操作,每一位碼向右移動一個位置(圖9 - 3 2 b)。注意,最左邊的位碼(以斜體
表示)自動強制為0。圖9 - 3 2 c表明,通過設置
控制位SHL = 1可實現左移操作。每一位碼向
左移動一個位置,與右移操作恰恰相反。在這
種情形下,最右邊的位碼被強制為0。
在一個復雜的數據傳送系統中使用移位寄
存器時,一般建立允許移動多位的電路。在
這種情形下,內容右移n個單元,命令寫作如
下形式
SHR n
而
SHL m
表明內容左移m個位置的操作。
圖9-32 移位操作總結
移位操作的一個直接應用是執行二進制碼字的冪2乘除法。要理解它,讓我們先看看二進
制字
N = 000111 0 0
它的十進制數值是2 8。我們執行一個SHL 1操作,結果為
NL 1 = 00111 0 0 0
它是十進制數5 6,也就是NL1 = 2N。以最初的字開始,調用SHL 2操作,得到
第9章存儲元件與陣列257
下載
a) 初始條件
b) 在右移操作之后
c) 在左移操作之后
輸入
輸出
(載入)
圖9-31 有并行載入功能的移位寄存器
NL2 = 0111 0 0 0 0
它等于11 21 0,于是NL2= 22N。因此,一般地,操作SHL n等價于寄存器的內容乘上2n
右移操作SHR m實現相反的效果。例如,若首先有
N = 000111 0 0
那么,SHR 1和SHR 2 操作得出
NR1 = 0000111 0
NR2 = 00000111
容易驗證,
NR1 = N/ 2
NR 2 = N/22
對應于十進制數NR1= 1 4,NR2= 7。這表明SHR m能夠使寄存器的內容與2m相除。
寄存器不僅有移位操作,還可以有循環操
作R O R(右循環)和R O L(左循環)的能力。
循環不丟失位碼,它移出寄存器但傳送到另一
邊,除此之外,它們與相應的移位操作完全一
樣。圖9 - 3 3總結了這兩種操作的結果。在圖9 -
3 3 a中,顯示內容1 0 1 0 11 0 0。通過設置控制位
ROR = 1,啟動循環右移操作。它使每一位碼
向右移動一個位置。最右邊的位碼被傳送到寄
存器的左邊。圖9 - 3 3 b顯示了通過置位ROL = 1
引起的循環左移操作。在這種情形下,每一位
碼向左移動一個位置,左邊單元的內容(最初
為1)傳送到最右邊的位置。對于移位操作,
通過改變組成寄存器的存儲單元的接線,構建
一個允許多循環
ROR n和ROL m
的寄存器是可能的。
移位和循環操作對于許多種類的數字信號處理相當重要,它們作為基本的操作包含在所
有的計算機里。在第11章計算機體系結構的語境里,我們再詳細地討論它們。
9.6 隨機存取存儲器
隨機存取存儲器是適用于通用讀/寫存儲單元的大型陣列的術語。R A M通常作為臺式計算
機設備中的主系統存儲器,它提供存儲所有重要數據的能力,這些數據是計算機運行程序和
操作系統所必需的。
9.6.1 靜態R A M單元
靜態存儲器能夠保持所存儲的數據位碼,只要電源連接到該電子線路。
258 數字系統設計基礎教程
下載
它僅僅精確地作用于十進制偶數。
a) 初始條件
b) 在右循環操作之后
c) 在左循環操作之后
圖9-33 循環操作
如圖9 - 3 4 a所示, S R A M 是基于兩個級聯的反相器所組成的閉環特性。它是一個雙穩態
電路,A = 0或者A = 1皆能在環中保持。盡管乍一看它可能很陌生,但是它的操作等價于S R鎖
存器。重畫該電路如圖9 - 3 4 b所示,使反相器交叉耦合,可以看出這一點。與圖9 - 4中兩輸入
或非門鎖存器相比較,我們看到,除單輸入非門用于邏輯之外,結構是相同的。
圖9-34 交叉耦合反相器形成雙穩態電路
通過嵌入交叉耦合的反相器到一個與反
相器環相連的較大的網絡,就構成一個存儲
一位數據的靜態R A M單元。圖9 - 3 5表示一個
S R A M單元,它增加了兩個由字線上的信號
W L控制的存取開關( S w)。這些開關由邏輯
控制, W L = 0使開關斷開,而W L = 1閉合它
們。當W L = 0時,存儲單元與外部影響隔離,
保存數據位碼。若W L = 1,兩個開關都閉合,
單元對應的兩邊分別與位線( D)和位線(
-D
)
連接。這就允許對單元進行寫或者讀。總之,
? W L = 0保存狀態,而
? W L = 1允許進行讀寫操作。
當附加電路判定W L = 1時,執行實際的操作。
9.6.2 SRAM陣列
通常制造出S R A M,是為了可以輕易地存儲nb i t二進制字,而不是單獨的一位。這是一個
實用的考慮,起因于這樣的事實:大多數應用的建立是如此設想的。一個m×nS R A M陣列由
m行、每行包含n個單元所組成。
讓我們分析怎樣才能構造一個很簡單的存儲8個字,每個字長8位的存儲器,也就是說,
一個8×8陣列。首先,考慮一個8比特字的存儲。它需要8個單元,每比特一個,如圖9 - 3 6所
示。我們已經為字線使用了簡化的標注,但它的意義仍然一樣: W L = 0隔離單元,而W L = 1
提供存取,允許進行寫或者讀操作。為了保存8個字,我們再構造七個相同的電路,把它們堆
疊起來,如圖9 - 3 7所示。為了選定所要求的行(字),我們包含一個3 / 8高電平有效的行譯碼器
電路,該譯碼器的輸入是一個稱為地址的3位二進制字
A2A1A0
因為它指明了存儲器中特定字的位置。陣列的下方提供了接口電路,它們提供寫入或者
第9章存儲元件與陣列259
下載
S R A M讀作S- ram 。
a) 基本電路b) 重畫
圖9-35 SRAM單元設計
位線
存儲單元
位線
字線
讀出陣列的每一行所必需的電路。E n a b l e是一個高電平有效的激活陣列的控制信號, R/W決定
是否進行讀(R /W = 1),或者寫(R/W = 0)。讀/寫控制信號R/W僅當E n a b l e = 1時有效。
圖9-36 8位存儲陣列
圖9-37 8×8RAM陣列
讓我們研究圖9 - 3 8 a所示簡化的讀操作,來闡明該陣列的操作。多數連線已經被組合在一
起,以便我們能夠專注于數據傳送,而不被太多的細節轉移目標。該圖顯示了每一行的內
容;圖9 - 3 8 b總結了輸入地址如何激活一個特定的工作線,該線反過來允許數據行被讀出來。
260 數字系統設計基礎教程
下載
讀寫操作接口電路
例如,如果地址是1 0 0,那么選定線4,結果是輸出0 1 0 1 0 1 0 1。
圖9-38 RAM陣列中的讀操作
圖9-39 64×8SRAM器件的方框圖
第9章存儲元件與陣列261
下載
輸出
輸出
行
地址
a) 簡化網絡
b) 功能表
地址內容
可能
地址
可能
讀/寫
數據
a) 內部組織b) 符號
簡化的操作圖解和符號提供了一個簡明的方式,以這種方式,一個復雜的數字單元的重
要特性能夠明顯地表示出來,而不使邏輯圖解散亂。它們等效于在分級結構中更高層次上觀
察該單元,對于描述一個復雜系統如計算機很有用處。要創建一個符號,我們必須定義它所
有相對于“外部世界”重要的特性。盡管內部電路本身可能有令人感興趣之處,但是大部分
與用戶無關。
考慮一個S R A M陣列。在用戶層次,它是一個器件,允許我們對二進制字執行寫、保持
和讀操作。該陣列的容量告訴我們它能夠存儲多少字,尋址方案提供一種方式,使我們能夠
明了每一個字定位于該陣列的哪一個位置。圖9 - 3 9 a中的方框圖總結了一個容納6 4個8比特字
的器件的性質。進出這個存儲設備的數據作為8比特字
b7b6b5b4b3b2b1b0
傳送。地址給出每一個字的位置,由選擇一個存儲位置的6位字
A5A4A3A2A1A0
表明。如果Enable =1 激活了該設備,那么讀寫操作由R/W控制選定。在這個層次, R A M的內
部結構被描繪為一組存儲位置,每個存儲位置有唯一的地址。這就使我們可以闡明它的內容。
一個更精簡的符號如圖9 - 3 9 b所示。該設備的操作在各個方面都一樣,但是內部細節沒有表示
出來。這使它更易于在設計分級結構的系統級中使用。
9.6.3 動態R A M
動態存儲器( D R A M)陣列和S R A M陣列相似,因為它們都允許我們使用單元尋址的概
念存儲數據。兩者不同之處在于自身單元的內部設計。動態R A M單元要簡單得多,在硅片上
只需要更少的面積。這使D R A M的存儲密度比S R A M要高得多,每一位的成本要低得多。因
為較低的價格,在需要大型存儲陣列,成本重要的任何時候,通常使用D R A M。D R A M最大
的應用是作為臺式計算機的主系統存儲。使用“動態”存儲的一個障礙是, D R A M比較簡單
的單元設計導致電路顯著變慢;讀寫時間都增加,這就限定了它們如何才能在大型系統中用
來存儲數據。
MOS DRAM的細節和操作在9 . 9 . 2節敘述,在那里我們將看到,位存儲技術的物理學即使
得D R A M密度高,又解釋了為什么它們被稱為“動態的”。
9.6.4 奇偶和錯誤檢驗碼
可靠的數據存儲是所有數字系統的關鍵。即使單個的錯誤位碼就能導致整個程序崩潰,
或者數據庫文件無用,所以提供一些技術,能夠檢測錯誤的存在,以及在某些情況下能夠修
正那些錯誤,是非常重要的。對檢錯碼( E D C)和糾錯碼( E C C)的詳細研究超出了本書的
范圍,但是它們的原理基于一些相當簡單的概念,在這里予以介紹。
首先,讓我們分析這樣一個問題,我們要確保從一個存儲位置讀出的數據字節與寫入
的數據字節相同。這將要求我們在存儲數據字節之前記錄一些有關它的信息,然后在讀出
該數據字節之時使用這些信息來檢查它。實現這個的一個簡單方式是,引入奇偶位P的概
念。
假設最初數據字節寫作
B=b7b6b5b4b3b2b1b0 ( 9 - 9 )
262 數字系統設計基礎教程
下載
因為每個bn非1即0,我們能夠計算該字中1的個數,用此定義一個奇偶位P,讓它記錄在包含
奇偶位P的組合字節中1的個數為偶還是為奇。若我們選擇偶校驗方案,那么奇偶位Pe v e n有如此
特性,
選擇Pe v e n,使(B +Pe v e n)有偶數個1。
例如,若B1= 0 11 0 11 0 1,則Pe v e n= 1,因為B1包含5個1,這種選擇使之具有偶數個1。反之,
字節B2= 1111 0 0 0 0要求Pe v e n = 0,因為B2已經有偶數(4)個1。奇校驗恰恰相反。在這種情況下,
我們引入奇校驗位Po d d,這樣
(B +Po d d)有奇數個1。
對于B10 11 0 11 0 1,將要求Po d d = 0,類似地,若B2= 1111 0 0 0 0,則將有Po d d = 1。
圖9-40 奇偶校驗生成電路
一種生成奇偶位的容易的方式是使用如圖9 - 4 0所示的異或操作。回憶一下,異或門實現
了奇功能。在這個邏輯圖解里,我們已經定義了輸出為
P = b7?b6?b5?b4?b3?b2?b1?b0 ( 9 - 1 0 )
所以,該字中如果有奇數個1,那么P = 1,如果有偶數個1,那么P = 0。所以這樣選擇
P = Pe v e n ( 9 - 11 )
因為該字節加上P中1的全部數量有偶校驗所要求的特性。如果我們使用異或非門代之,那么
輸出將是奇校驗位。
為了應用奇偶性的概念到檢錯問題,假設我們存儲最初的數據字節以及奇偶位如圖9 - 4 1 a
所示。由上面的討論, P的選擇代表偶校驗。注意,這個方案要求存儲位置寬度為( 8 + 1)= 9
位,以適應附加位。奇偶位P提供原始數據的信息。當字節讀出存儲器時,如圖9 - 4 1 b所示,
我們獲得數據段
( 9 - 1 2 )
它被用來計算新的奇偶位Pc,為
( 9 - 1 3 )
接下來,使用異或功能比較存儲的奇偶值P和Pc,產生檢驗位C。若P = Pc,則存儲的奇偶
值與計算的奇偶值相等, C = 0 。然而,若P≠Pc,那么兩個奇偶位不同, C = 1 ,指示兩
者有差異。這樣, C = 1 表明錯誤已經發生,所以不是數據字節就是存儲的奇偶位不正確。
檢驗位C通常放置在一個特別的稱為標志的存儲單元里,當C = 1 時,我們說標志被置位,
一個錯誤已經被檢測到。檢驗位C = 0 不保證無錯誤發生,它僅僅意味該電路沒有檢出錯
誤。
第9章存儲元件與陣列263
下載
(輸入奇數個1)
(輸入偶數個1)
輸入字
圖9-41 錯誤檢測電路
9.7 只讀存儲器
只讀存儲器是用作永久數據存儲的存儲陣列。信息由R O M的生產者或者系統程序員存儲。
用戶依賴于特殊的設備具有有限的編程能力(或者根本沒有)。R O M提供非易失性的存儲,這
意味即使切斷電源連接,數據仍然保持在該存儲器中。非易失性的存儲設備是許多系統應用的
關鍵。例如,每一臺個人計算機有一個R O M ,加電時提供啟動系統軟件所必需的二進制碼。
圖9 - 4 2 a中的符號顯示了一個小容量R O M的重要特性。整體上,它在操作方面與R A M很
類似。先指明地址,然后使芯片操作執行讀,導致數據輸出。圖9 - 4 2 b所示的內部模型提供了
這種設備必需的細節。被存儲的數據字作為所指明的地址位置的位組被查看。該地址字為:
A5A4A3A2A1A0
圖9-42 ROM的符號和用戶模型
264 數字系統設計基礎教程
下載
存儲字
輸出字
a) 寫操作
b) 讀操作
它稱為B I O S,表示基本輸入輸出系統。
地址
使能
數據輸出
a) 符號b) 內部組織
存儲
數據
使能
被送到一個行譯碼器,然后通過置位合適的字線為高來激活該字的存儲位置。該數據字送到
由E n a b l e控制激活的輸出電路,使得該數據字為:
b7b6b5b4b3b2b1b0
輸出R O M。這種設備不支持寫操作,這是只讀存儲器顯著的特征。
9.8 CD ROM
緊湊圓盤( C D)R O M是一個復雜數字系統的有趣范例,它結合了電子學和光學,提供高
密度存儲介質。CD ROM的基本格式和操作基于C D音頻標準,但是比那些用來再現聲音的
C D有著更迫切的市場需求。
CD ROM是一個由潔凈的、一面鑄造成小缺口的多碳酸塑料組成的圓形盤片。其上涂有
一層鋁金屬,然后覆蓋另外一層塑料,再把標簽印在最上層。如圖9 - 4 3所示,C D的頂面有標
簽,而潔凈的底面有存儲信息。在多碳酸塑料和鋁之間的界面稱為信息表面,因為這是數據
存儲的地方。信息被記錄在始于盤片中心,螺旋向外的單個軌道之上,如圖9 - 4 4 a所示。為了
從盤片讀數據,盤片旋轉,越過一個包含在播放機械中的固定激光源。為了便于分析,把它
看作一個固定的盤片和一個跟隨軌道移動的激光束,如圖9 - 4 4 b所描繪。
圖9-43 緊湊圓盤的結構
圖9-44 CD信息軌道
圖9 - 4 5顯示了從潔凈的塑料往鋁涂層所看到的信息表面的一個特寫。該表面的大部分平
整,稱為平地(l a n d)區。而大量的小缺口稱為凹口( p i t s),鑄造在塑料里,然后被鋁所覆
蓋。沿著一條稱為軌道的隱含線,提供一系列凹口和平地,實現數據存儲。這些軌道相互間
距1 . 6mm,可以密集地存儲。一張CD ROM能夠存儲大約540 MB有用數據,以正常速度可播
放6 0分鐘。在制造盤片時,凹口和平地被沖壓入塑料,不能改變,使得它成為只讀設備。
第9章存儲元件與陣列265
下載
a) 緊湊圓盤b) 橫截面視圖
頂層標簽面
底層-信息面
鉆涂層可見
鉆層
信息表面
a) 底視圖b) 數據軌道的可視化
超始
結束
由螺旋軌道
組成的信息
存儲區激光束跟隨
軌道
圖9-45 CD信息表面的凹口和平地
當盤片自旋時,通過把一小束激光聚焦到軌道可以實現數據的讀出。對于標準( 1倍)速
度播放器,光點以一個恒定的速度v = 1 . 2 5 m / s跟隨軌道運動。跟蹤從信息表面反射回的激光就
讀出了存儲信息。圖9 - 4 6顯示了一個軌道和它的橫截面圖。當激光束照射在一個平地區時,
鋁涂層提供一個強反射。另一方面,如果光束掃描一個凹口,那么由于眾所周知的光的散射
和干擾,反射的光束是很微弱的。凹口的深度和相對于凹口寬度的光點的大小都是很重要的。
圖9-46 激光讀信息軌道
當監視反射激光束的功率Pre f時,我們發現它依賴于激光束是否照射在凹口或者平地區而
變化。圖9 - 4 7說明了這一點,它顯示反射功率在高低電平之間變化。盡管我們用高電平表示
邏輯1,用低電平表示邏輯0,似乎顯而易見,但出于系統設計過程中的物理考慮, C D標準選
擇了不同的編碼方案。這種用于C D的編碼稱為N R Z - i。它以如下方式定義邏輯電平:
? 邏輯0 持續的高或低電平
? 邏輯1 一個從高到低或者從低到高的跳變
266 數字系統設計基礎教程
下載
軌道
凹口
掃描激
光束
平地
平地
平地
平地
平地
平地平地平地
光束點
凹口
凹口
平地
塑料
弱反射
強反射
標簽覆蓋
激光束
凹口
a) 信息表面
b) 橫截面視圖
這樣,當激光掃描凹口或者平地區時,恒定的反射功率強度被翻譯為邏輯0。僅當光束從平地
到凹口,或者從凹口到平地傳送時,邏輯1發生。使用這種編碼方案提供該圖所示的邏輯翻譯。
注意,這種技術的關鍵是,為一個邏輯位定義時間間隔T。對于1倍速播放器,串行數據讀出
數率大約為1 5 0 K B / s(千字節每秒)。
我們之所以使用N R Z - i編碼,是因為讀盤進程產生不了該圖所示的精密明確的反射光束。
由于不一致的激光照明、跟蹤錯誤、振動和物理環境中其他干擾,反射功率強度看上去更像
如圖9 - 4 8所示一樣。盡管光束照射在凹口或者平地區時,它的強度發生變化,但是當激光束
從凹口移向平地,或者反之時, C D系統確保有一個仍然合理的改變。因此,這個編碼方案濾
及一個信號可靠的輸出,雖然并不理想。
圖9-47 掃描表面時的發射激光功率
應用這種編碼把數據存儲在軌道上的方式,導致了其他的復雜性。如果我們比較凹口的
寬度、長度和激光束的直徑(大約1mm),我們發現兩個1在軌道上相鄰是不可能的。事實上,
當在軌道上記錄時,這產生一個規則
1必定至少被兩個0分隔
這暗示我們不能直接在C D的軌道上存儲“標準”編碼數據!取而代之,數據服從一個調制方
案,它原則上類似于編碼/譯碼過程。
緊湊盤片使用一個8到1 4調制( E F M)技術,一個8 b i t數據字被擴展為1 4 b i t的調制當量,
它不違反1之間的間隔規則。整個方案如圖9 - 4 9 a所示。記錄在盤片上的是調制位流,而不是
原始數據。實際的轉換使用一個查詢表定義,該表的一小段已經再現于圖9 - 4 9 a中。數據讀出
時,必須簡單地把該表用作一個字典,解調數據以產生原始的8 b i t字。
圖9-48 實際的發射信號變量
C D另一個有趣的方面在于,讀盤以后對數據使用了檢錯碼( E D C)和糾錯碼( E C C)。
C D制造工藝固有的偏差導致有相當高的可能性得到一個數據流錯誤。通常,它由誤碼率
(B E R)表明如下:
( 9 - 1 4 )
第9章存儲元件與陣列267
下載
平地平地平地
位時間
凹口凹口
平地凹口平地凹口平地
圖9-49 CD 8到14調制方案
這里,Ne為不正確的位數,NT為被考慮的位的總數。在C D音頻應用中(C D標準的最初使用),
指明B E R最大值為R E R= 1 0-9。計算標準更加嚴格,最高可接受的值為B E R= 1 0- 1 2。為了確保C D
滿足該值,在記錄數據之前,一套復雜的E D C和E C C應用到數據之上。這導致另外一個數據
集記錄在C D上。這個思想類似于在R A M陣列中使用奇偶位的概念,但是它要強大得多,因為
該代碼可以( a )檢錯,以及( b )通過計算起初的碼字來進行糾錯。C D采用了一種算法,它包含
于一大類已知的R e e d - S o l o m o n碼理論中,以一些數據字塊來實現任務。它們是如此強有力,
以至于你能夠真正地掩蓋C D上一段大約長1 m m的軌道,它不影響被處理的數據輸出。
緊湊盤片系統十分復雜,但它是現實數字系統的一個優秀的樣例。其他光學記錄和數據
存儲的途徑已經發展起來,而它們都趨向于被類似的物理限定所約束,且各自有獨特的方面,
通過使用基本的準則說明一個數字設計如何能夠解決復雜的系統設計問題。
9.9 CMOS存儲器
C M O S是所有類型的存儲器芯片的主導技術。因為M O S F E T很小,創建大容量的相當快
的存儲器陣列就是可能的。在這一部分,我們將簡要地分析一些有關使用C M O S技術創建存
儲器單元的概念。
9.9.1 CMOS SRAM
單個的CMOS SRAM單元電路如圖9 - 5 0所示。它包含兩個交叉耦合的反相器(M n 1,M p 1,
M n 2,M p 2),作為存儲單元,使用一對N溝道晶體管存取它們。這與圖9 - 3 5所示的更基本的
原理圖有著相同的結構,所以它們的操作是相同的。由于它有六個晶體管,在文獻里稱為一
個“6 T”設計。該6 T設計可能是制作C M O S存儲器最普通的方法。使用四個M O S F E T和兩個
電阻創建一個“4 T”單元也是可能的。
268 數字系統設計基礎教程
下載
8位字
14b字到
光盤
14b字
讀出
8位字
8位字14位長效值
a) EFM記錄和讀出方案
b) EFM 表的一部分
用來存取單元的簡單方案能夠擴展到多端口靜態存儲器,在這里,能夠使用一對以上的
輸入/輸出線。一個雙端口靜態存儲器如圖9 - 5 1所示。它有兩個獨立的數據I / O通路,用D1和D2
表示。單元存取由兩個獨立的標注為W L 1和W L 2的字線控制。任意一個能夠用作讀或寫操作。
所引起的一個問題是,我們必須實施排他性,即
W L 1·W L 2= 0 ( 9 - 1 5 )
確保一個輸入不干擾另一個。它可通過使用片上邏輯仲裁每一個單元的存取來實現。多端口
存儲器很有用,因為它們允許把共享存儲器一次硬連到幾個數字邏輯單元。
圖9-50 CMOS SRAM單元
圖9-51 雙端口SRAM單元
9.9.2 動態存儲器
描繪動態存儲器的特征要更加復雜,但是它們廣泛地被用作主存,因為它們能以比S R A M
高得多的密度構建。形容詞“動態的”反映了這樣一個事實,在一個保持操作期間,單元的
內容將隨著時間改變。這使得動態存儲器的設計更加復雜,但是現代的芯片通常對用戶屏蔽
復雜性。D R A M主要的缺點是它們沒有S R A M快。D R A M主要的優勢是每b i t的花費很低,使
它在需要大陣列的系統設計上具有經濟上的吸引力。
第9章存儲元件與陣列269
下載
(字線)
位線
反碼位線
端口2
端口1
端口1
端口2
D R A M單元的電路原理圖如圖9 - 5 2所示。一眼看去,簡單
性是明顯的:整個單元由單個n F E T和一個存儲電容CS組成。
這便于相當高的集成密度,使構建有數百萬個單元的單一芯片
成為可能;使用現代技術,每片2 5 6 M b和1 G b大小是可能的。
D R A M市場競爭的本質使它成為技術驅動器,許多公司使用
他們最先進的工藝技術制造D R A M。
在這個基本存儲電路里, n F E T作為存取器件,由字線變
量W L控制導通。當W L = 1時,n F E T作為一個閉合的開關,允
許一個寫或讀操作。要寫該單元,一個數據電壓VD應用到數據
線,產生的電流充電存儲電容CS到電壓VS。如圖9 - 5 3所示。存儲位碼的值由電容上的電荷定義
( 9 - 1 6 )
如果VS= V0= 0V,那么QS= 0,對應于邏輯0的值。另一方面,如果VS= V1是高電平,那么邏
輯1的電荷存儲在電容上
QS = CSV1 ( 9 - 1 7 )
使字線W L = 0可得到一個保持狀態,在數據線與存儲電容器之間斷開直接的導電通路。
理想地,晶體管將阻塞所有的電流,電荷QS將永久地保持。然而, n F E T并不能阻塞所有的電
流。即使對一個0門電壓, F E T允許一個小的漏電流IL把電荷從電容器移走。泄漏通路的電路
效果如圖9 - 5 4 a所示, 9 - 5 4 b中的示意圖表明了晶體管中問題的物理起源,在那里, p n結存在
一個不能排除的反向電流IR。在這種情況下,我們可以記作
IL = IR ( 9 - 1 8 )
既然電荷能夠從CS泄露掉,而數據位碼的值依賴于電荷,所以數據位碼僅僅能夠保持一個較
短的時期。
圖9-53 DRAM單元中的寫操作
圖9-54 DRAM保持狀態和泄露問題
270 數字系統設計基礎教程
下載
在實際的D R A M單元中,也存在其他幾種漏電流。
輸入
(邏輯0)
(邏輯1)
門
斷開
漏電流
邏輯1電壓將
漸變為0V
a) 電路模型b) 漏電流的起源
圖9-52 CMOS動態RAM(DRAM)
單元設計
預估這個值能夠保持的時間間隔是有價值的。假定我們在電容器上設置邏輯1電平VS=V1,
希望計算n F E T斷開時電壓能夠保持在該單元上的時間。這能通過使用電流的定義來實現,記
作
( 9 - 1 9 )
這里,我們在第二行中使用了基本的關系
( 9 - 2 0 )
使用負號是因為電荷隨時間減少。重新排列得到
( 9 - 2 1 )
所以,兩邊積分得到
( 9 - 2 2 )
這里,tH是保持時間。保持時間定義為電容器能夠維持Vm i n以上電壓的時間間隔, Vm i n是仍然譯
作邏輯1值的最小電壓。右邊的下限V1表示t = 0時刻的初始存儲的邏輯1電壓。計算該積分,
重新排列保持時間為
( 9 - 2 3 )
為了理解時間間隔的意義,我們記存儲電容為5 0 f F = 5 0×1 0-1 5F的量級,漏電流為1 p A(1 0-1 2A)
的量級。因為電壓為1 V的量級,保持時間就大約為
( 9 - 2 4 )
也就是5 0毫秒( m s)。這是一個很短的時期。數
據必須周期地更新以確保在系統需要它時是有效
的。這稱為刷新操作,在下面描述。
如圖9 - 5 5表示了一個讀操作。為了從該單元
檢索數據,我們使W L = 1,閉合存取晶體管,允
許電流流向位線。一個放大器在輸出端提供加強
的信號。該放大器是設計的關鍵部分,在設計過
程中被給予更多的關注。為了對數據提供快速存
取,讀電路必須適當地快。
刷新操作就是,周期地對數據執行讀出、放大及回寫到單元。刷新電路包含在芯片中,
使該存儲器似乎有長期的保持特性。因為最大保持時間是在1 0- 3秒數量級,所以最小刷新頻率
的量級為
( 9 - 2 5 )
第9章存儲元件與陣列271
下載
放大器
圖9-55 DRAM單元中的讀操作
從而,刷新率為數千赫茲的量級。記住重要的一點,每一個單元必須周期地刷新,所以該電
路被設計為循環通過整個陣列。
現代計算機技術中的許多進展能夠回朔到R A M制造工藝的技術發展。因此,那是一個吸
引人的研究領域,即使你的興趣在其他方面。
9.9.3 ROM
C M O S技術為大量要制造的R O M電路作了準備。盡管它們歸屬于“只讀”器件,但允許
通過特別的電路技術輸入用戶數據。它們通常需要施加相當高的電壓電平來操作芯片。因為
該器件能被編程,有時稱它們為“主要讀”器件。
E P R O M
E P R O M是Erasable-Programmable ROM的首字母的縮寫詞。這種類型的器件允許用戶編
程(輸入數據)和擦除數據。
用一個高電壓傳送電荷到一個“浮動的”電容器,就實現了編程。電荷存儲在該電容器
上,在正常環境下不能逃逸。在這種器件里,把器件放在強烈的紫外線( U V)光源之下,能
夠實現擦除。電子吸收光子(光能包),使它們有能量運動返回半導體中。盡管它們從前是用
戶可編程R O M的主要類型,但已經被電可擦除可編程的器件所取代。
E2P R O M
這種存儲器是電可擦除的( E2),代替了E P R O M的U V技術。它有這樣的優勢,數據可以
使用電子電路擦除,不需要芯片物理地從系統移開。因為這個特性,它在現代數字系統設計
中非常流行。
在管腳上加一個高電壓,使電荷傳送到電容器面板,實現編程。要擦除單元,使電壓反
向,電荷向相反的方向移動。在一個基本陣列里,限制每次擦除一個單元。然而,更加新穎
的技術允許同時擦除大量的單元。這些器件稱為閃爍E P R O M,這里的“閃爍”是指整個陣列
可以擦除的速度。
9.10 傳輸門電路
在集成電路設計中,傳輸門能夠用來構建C M O S存儲器元件。它們非常有用,因為T G的
行為就像一個理想的開關,能夠斷開和閉合。在一個存儲電路的輸入端使用一個T G,允許以
T G控制機制來控制鎖存活動。
9.10.1 基本鎖存器
圖9 - 5 6表示了一個基本的鎖存器電路,它使用了兩個傳輸門T G 0和T G 1來控制數據
流;兩個反相器提供雙穩態存儲。該電路的操作由載入控制位L D和它的補
—L D實現。注意,
到傳輸門T G 0 和T G 1的控制信號是以相反的方式應用的;當一個T G閉合時,另一個斷
開。
為了理解該鎖存器的操作,讓我們首先分析L D = 1時的情況。T G 0斷開和T G 1閉合,如
圖9 - 5 7 a所示的條件。輸入數據位碼D能夠進入電路,使第二個反相器的輸出Q = D;這允許
我們載入(寫)一個數據位碼到該鎖存器。注意,只要L D = 1,該鎖存器就是貫通的,因為
輸出將跟蹤輸入的變化。保持條件是如圖9 - 5 7 b所示的L D = 0。斷開T G 0,它反過來阻擋了新
272 數字系統設計基礎教程
下載
數據的進入。傳輸門T G 1是一個閉合的開關,
產生雙穩態的交叉耦合的反相器電路,能夠維
持Q值。
基本的T G鎖存器歸屬于電平敏感的器件,
因為它在L D = 1時接受輸入。通過組合一個時
鐘信號?進入控制集,它能夠用作一個時鐘控制
的鎖存器。在圖9 - 5 8中,各處的L D(和
—L D)信
號已經用?(和-?)取代;這就使該鎖存器在時
鐘狀態? = 1時接受新的數據。
圖9-57 TG鎖存器操作
圖9-58 時鐘TG鎖存器電路
圖9-59 帶控制載入的時鐘鎖存器
第9章存儲元件與陣列273
下載
圖9-56 TG鎖存器電路
閉合斷開
斷開閉合
a) L D = 1 b) L D = 0(保持)
當? = 1時D認可
a) 電路圖解b) 時鐘
a) 電路b) 控制邏輯
圖9 - 5 9表示了另一種時鐘控制輸入的方法。在這種情況下,輸入傳輸門T G 0由復合信號
L D·?和
—L D·
-?
控制。僅當L D = 1且?= 1為真時,允許新數據輸入。從而,這種電路的行為類
似于如圖9 - 5 8中的時鐘方式,除了L D對數據流提供一個附加的控制之外。圖9 - 6 0的波形說明
了該電路時序的一個例子。總之,時鐘信號?(t)總是用作定時參考。在這種情況下,載入
信號L D僅在第一和第四個時鐘周期為高。從而,復合信號L D·?在此期間跟隨時鐘,在中間
的兩個時鐘周期為0。觀察結果是,該鎖存器將僅在第一和第四個周期接受數據。
圖9-60 帶載入控制的時鐘TG鎖存器的時序圖解
9.10.2 TG觸發器
一個主從觸發器能夠由級聯的兩個反相T G鎖存器構建,如圖9 - 6 1所示。第一個鎖存器
(第一級)作為主觸發器,第二個鎖存器(第二級)作為從觸發器。通過注意輸入傳輸門由反
相時鐘控制,可以看出這一點。當? = 0時,主觸發器有效并接受數據,而從觸發器的輸入需
要時鐘? = 1來容許新的信息。這在操作上與正邊沿敏感的D F F是相同的。通過簡單地交換時
鐘信號?和-?,可得到一個負邊沿敏感的D F F。該電路如圖9 - 6 2所示。
圖9-61 主從DFF電路
274 數字系統設計基礎教程
下載
[秒]
[秒]
[秒]
階段1 階段2
圖9-62 負邊沿主從DFF電路
9 . 11 問題
1. 下面的置位( S)和復位(R)信號應用到一個S R鎖存器。描繪出這個器件的輸出Q(t)
的草圖。
2. 下面的信號應用到圖9 - 1 0中的時鐘S R鎖存器。描繪出輸出Q(t)的草圖。
3. 下面所示的數據信號D(t)應用到一個正邊沿觸發D F F的輸入。描繪出這個器件的輸
出Q(t)的草圖。
第9章存儲元件與陣列275
下載
階段1 階段2
4. 對于D(t)應用到一個負邊沿觸發D F F的輸入,重做前一個問題。
5. 一個基于或非門的S R鎖存器的復位(R)輸入跳變為1,同時S = 0。畫出它發生時的電
路,并在每一個節點標注邏輯值( 0或者1)。
6. 考慮基于與非門的S R鎖存器。當S和R皆為0電平時,它的輸出是什么?它為什么為
“不使用”的情形?
7. 考慮一個8位移位寄存器,起初,其中有二進制字0 1 0 111 0 0。在下面的操作已經執行之
后,該寄存器的內容是什么?對于每一種情況,假設初始狀態由上面給出。
(a) SHR 2
(b) SHL 1
(c) ROL 3
(d) ROR 2
8. 一個8位移位寄存器,有十進制8 6的二進制等效值存儲于其中。在下面的操作已經執行
之后,該寄存器十進制的等效內容為多少?對于每一種情況,假設被賦予相同的初始狀態。
(a) SHR 1
(b) SHL 1
(c) SHR 2
(d) ROR 2
9. 一個1 6位寄存器包含0 x 4 A 3 5的二進制等效值。在下述操作已經執行之后,得出該寄存
器十進制的等效內容。對于每一種情況,假設被賦予相同的初始狀態。
(a) SHR 6
(b) SHR 3
(c) SHL 8
(d) SHL 16
10. 考慮圖9 - 3 7中的8×8 S R A M陣列。每一行的內容由下述列表給定:
行0:1010 1111
行1:1010 1111
行2:1010 1111
行3:1010 1111
行4:1010 1111
行5:1010 1111
行6:1010 1111
行7:1010 1111
當下述地址被應用到行譯碼器時,輸出的十進制值是多少?
(a) A2A1A0 = 101
(b) A2A1A0 = 011
(c) A2A1A0 = 100
(d) A2A1A0 = 11 0
11. 使用圖9 - 3 8中的示意圖作為一個基礎,畫出一個1 6×4 S R A M的方框圖。
12. 考慮圖9 - 3 9所示的6 4×8 S R A M。該器件將作為創建一個大小為6 4 b×3 2 b的大型存儲
276 數字系統設計基礎教程
下載
器陣列的基礎。構造這個大型存儲器的方框圖。
13. 考慮圖9 - 3 9所示的6 4×8 S R A M。你想要使用該器件來設計一個包含2 5 6個3 2 b i t字的存
儲器陣列。構造該存儲器陣列的方框圖。你可能考慮想要給每一個器件增加一個片選輸入C S,
控制每一芯片,使得C S = 0使該器件失效,而C S = 1使它有效,容許讀和寫數據。
14. 在最近的報紙或者計算機雜志上尋找計算機廣告,找到你所能夠找到的關于S R A M和
D R A M芯片或者模塊的最佳價格。然后,計算每種類型的每一b i t價格。這兩類存儲器在價格
上的百分比差異是多少?
15. 研究雜志或者報紙上的計算機廣告。你能夠找到多少種S R A M在個人計算機上的具體
應用?
16. 考慮3 b i t數據字b2b1b0。各位用于生成一個偶校驗位p。那么,有3 + 1 = 4位被存儲在存儲
器中。當從存儲器中讀數據時,我們得到下面所列的結果。判決該數據是否滿足奇偶校驗檢
查,或者存在一個錯誤。
(a) p b 2b1b0= 0111
(b) p b 2b1b0= 11 0 1
(c) p b 2b1b0= 0100
(d) p b 2b1b0= 11 0 1
(e) p b 2b1b0= 0000
17. 假設我們想要在一個緊湊盤片的表面上存儲1 0 2 4個1 6 b i t數據字。實際上,在該盤的信
息表面上將要存儲多少位?
18. CD ROM強有力的糾錯能力是通過記錄包含足夠信息的大量數據來重構任何錯誤的輸
出而獲得的。因為這不是用戶可存取的數據,所以稱之為開銷,它減少了有用存儲的數量。
C D上的信息被劃分為一些數據塊,使目錄簡單化。每一塊包含2 3 5 2個字節,其中2 0 4 8個
字節是真實的數據。一張標準C D可能的最長“播放時間”是7 4分鐘,對應于3 3 3 , 0 0 0個塊。
(a) 對于7 4分鐘的播放時間,計算用戶字節的總量。
(b) 開銷占全部存儲數據的百分之多少?
(c) 如果播放時間減少到6 0分鐘,可利用的用戶字節為多少?
(該C D在存儲和播放時間之間存在線性關系。)
19. 一個數據傳輸系統的B E R確定為1 0-1 0。假設該系統以每秒1 0 0 M b的速率傳輸數據。該
系統能夠傳輸數據而不發生錯誤的平均時間是多少?在真實世界環境中,我們怎樣才能克服
該問題?
20. 考慮一個處于保持狀態的動態R A M(D R A M)單元。它的存儲電容的值為CS=6 0 f F,
而漏電流估計為IL= 0 . 2 p A。對于邏輯1狀態,電壓特性已知為V1= 3V,Vm i n=1 . 2 V。求出該單元
的保持時間。
21. 一個動態R A M(D R A M)單元的存儲電容為CS=5 5 F,漏電流估計為IL= 0 . 1 4 p A。該電
容器上的最大電壓為V1=3 V,最小邏輯1的電壓為Vm i n=1 V。
(a) 該單元能夠保持邏輯0狀態多久?
(b) 邏輯1狀態的保持時間為多少?
22. DRAM中的軟錯誤是這樣的情形,一個a粒子撞擊硅,導致電荷的流動。這能夠改變
該單元的內容。你能否想起一個D R A M環境,在那里,它可能是特別的重要?
第9章存儲元件與陣列277
下載
                        
                        
                        第9章存儲元件與陣列
大多數的數字系統需要具備“記憶”二進制變量數值的能力,以對其作進一步的計算。
這種能力通過一類稱為存儲單元的數字電路予以實現。存儲單元允許用戶把二進制變量的數
值存儲起來,在需要時再調用它。盡管存儲單元能夠被獨立地使用,但它們通常以稱為寄存
器的字長大小的組,或者作為能夠存儲成千上萬位數據的巨大陣列的形式出現。
9.1 一般屬性
存儲元件是能夠保持系統所需的二進制變量數值的電路。
在圖9 - 1中,描繪了一個基本的存儲單元。在最通用的術語中,
有三種操作刻畫出該單元的特性。
? 寫入在一個寫入操作中,數據位碼D的值(為0或者1)
置于輸入,并被該元件
所接受。
? 保持在寫入操作中所存儲的D值被保持,盡管輸入可能有所變化。
? 讀出一個讀出操作把存儲位碼的值提供給輸出變量Q。
E n a b l e使能控制位可能存在于某個設計中, Enable = 0示意保存,而Enable = 1容許進行讀
出或者寫入操作。
數字系統采用不同類型的存儲元件,它們的特性隨應用而變化。一個分類方案基于該單
元設計提供了哪些操作。讀/寫存儲器就是用戶可以用來存儲數值,保持它們一段不確定時期,
并在需要時再把該數值讀出來的存儲器。它可能是最一般類型的存儲器,通常稱為隨機存取
存儲器或者R A M。大多數的讀/寫存儲器在掉電時丟失其內容。一類限制性更大的存儲器稱為
只讀存儲器(R O M)。對于R O M,信息在它置入電子系統之前就被永久地存儲于器件之中。
用戶可以讀出R O M中的信息,但是不允許改變該數據。可編程R O M(P R O M)是R O M的一
個變種,用戶可以在其中存儲期望的數據,但是寫入過程需要一個特別的電子裝置,且它僅
能執行數次。
計算機圍繞著一組稱為寄存器的存儲元件而設計。一個寄存器被設計來保存整個的n比特
字,而它在其他方面與R A M相同。不管具體的應用如何,所有的存儲元件在數字邏輯方面有
著共同的基礎。
9.2 鎖存器
鎖存器是能夠跟隨數據變化并傳送這些變化到一根輸出線的邏輯元件。圖9 - 2是它的一個
簡單表示。通常地,鎖存器由兩個主要的特性所刻畫:
? 它是貫通的,因為輸出Q(t)跟隨上一時刻輸入的變化;而且,
? 它使用雙穩態電路實現存儲,從而,不是Q = 0就是Q = 1能夠在該單元中保持。
使用簡單的邏輯門就可以構成幾類鎖存器。
輸入(寫)
圖9-1 通用存儲單元
輸出(讀)
使能
9.2.1 SR鎖存器
置位復位( S R)鎖存器是一個貫通的雙穩態元件,它對于輸入的變化是敏感的。SR 鎖存
器具有分別標注為S與R的兩個輸入和一個標注為Q的輸出;互補輸出
-Q
也被提供。圖9 - 3是其
一般的方框圖表示。該元件的名稱從它的兩個基本操作的定義所得出。
圖9-2 基本鎖存器符號圖9-3 SR鎖存器符號
? 置位(S)操作,輸出值被強制為Q = 1。
? 復位(R)操作,Q值被強制為Q = 0。
術語“置位”與“復位”十分通用,在數字系統中經常被用來描述條件。例如,如果我們說
我們想要“置位變量A”,這意味著我們強制A值為1。類似地,復位A意味著A→0。在這里,
我們將討論兩種基本S R鎖存器電路。一種是基于兩輸入或非門N O R 2,另一種使用兩輸入與
非門N A N D 2邏輯。既然或非門和與非門互為對偶關系,那么它們的開關特性將是相反的。
或非門S R鎖存器
S R鎖存器能夠由兩個交叉耦合的或非門構成,如圖9 - 4 a所示。“交叉耦合” 這個術語定
義了兩個門的連接方式;它的意思是一個或非門的輸出連接到另一個或非門的輸入,反之亦
然。這在術語上也稱為反饋網絡,因為每一個門的輸出都被“反饋”而成為另一個門的輸
入。要建立一個能保存兩個邏輯值的雙穩態電路,反饋是必需的。圖9 - 4 b中的狀態表總結了
該鎖存器的操作。我們必須關注其中對輸入的解釋,因為S R鎖存器通過感知輸入S和R的變
化來存儲比特。這意味著,我們真正感興趣的是S ( t )和R ( t ),以及它們對該鎖存器狀態的影
響。
現在,我們來分析一下S R鎖存器的功能表。該狀態表中的第一種輸入稱為保持操作,在
那里,維持著S = 0和R = 0;這意味著只要S= 0 =R,Q值就不會改變。為了理解這個性質,回
顧一下圖9 - 5所示的或非門的真值表。或非門的功能可被解釋為任意一個輸入為1,都使得輸
出為0;輸出為1的唯一方式是兩個輸入皆為0值。現在假設S= 0與R= 0被應用到輸入。如果Q =
0,那么下方的或非門(帶輸入S)的兩個輸入皆為0,這意味著
-Q
= 1。這就反過來作用到上方
244 數字系統設計基礎教程
使能
輸入輸出
輸入輸出
操作
置位
復位
不使用
保持
圖9-4 基于或非門的SR鎖存器電路
a) 邏輯圖解b) 功能表
下載
的或非門(帶輸入R),確保Q = 0被維持。如果代之以Q= 1,
那么僅僅是變元反向。這個分析的重要性在于這樣一個事
實,保持Q值是可能的。交差耦合的或非門形成一個有兩個
“穩定”狀態的雙穩態網絡。這意味著該電路能夠“保持”
數值Q = 0;對于另外一種可能性Q = 1,它同樣地正確。
為了置位該鎖存器,輸入S從0上升到1,同時保持R = 0。
接下來,S又返回為0,使該鎖存器回到保持狀態。在該功能
表中,這個行為由S的一個脈沖輸入表示。從或非門的真值
表可見,隨著S = 1,輸出
-Q
被強制為0。那么,上方的或非門有R = 0與Q = 0作用到它的輸入,產
生一個輸出Q = 1。這就導致了“置位”的動作。復位強制Q為0,可以用同樣的方式去分析它。
在該功能表的第四種輸入中, S和R的值同時設為邏輯1。從真值表可見,兩個輸出都被強
制為0。由于在這種情形下兩輸出不互補,我們就把它定義為S R鎖存器“不使用”的輸入組合。
這僅僅意味著,要避免兩輸入同時被脈沖所激勵的情形。在數字系統中應用S R鎖存器時,
必須考慮到它的這種行為。
與非門S R鎖存器
如圖9 - 6所示,也可以使用與非門構成S R鎖存器。兩與非門交叉耦合,產生必需的反饋而
形成雙穩態網絡。然而,它的性質與基于或非門的方案是相反的,保持的條件是R = 1且S = 1。
正如它的功能表指明的,使S從1下跳為0,該鎖存器就可以置位Q = 1;使S回跳到1,就開始
保持。相反地,如果R從1下跳為0,該鎖存器就被復位Q = 0。R再恢復為邏輯電平1,則保持
輸出值。“不使用”的情形是, S與R同時下跳為0。
圖9-6 基于與非門的SR鎖存器
通過研究圖9 - 7中與非門的真值表可以理解,為什么這
種鎖存器的行為與基于或非門的電路的行為相反。與非門
的操作可以歸納為,只要有一個輸入為邏輯0,就使得輸出
為邏輯1。因為或非門在輸入邏輯1時翻轉,我們期望這兩
種鎖存器有類似的行為,但是這里要導致一個開關事件必
須是相反的輸入電平。由于這一點發現,這種鎖存器的符
號必須相對于圖9 - 3所示的鎖存器的符號有所修改,那里的
S和R現在都被指定為低輸入有效。
第9章存儲元件與陣列245
下載
圖9-5 兩輸入或非門真值表
兩輸入都為1的條件可能導致一個不穩定狀態,使該器件震蕩。這種可能性依賴于信號通過門的延遲。
操作
不使用
置位
復位
保持
a) 邏輯圖解b) 功能表
圖9-7 兩輸入與非門真值表
9.2.2 D鎖存器
D型鎖存器只有單個作為輸入數據位碼的輸入D。它的特性在于,它具有鎖定D的值并追
蹤其任何變化的能力。構造一個D鎖存器的簡單方式如圖9 - 8所示。它采用了一個S R鎖存器,
而用D和
-D
替換其輸入。D的補是通過增加一個反相器得到的。D鎖存器的操作能夠用S R鎖存
器的功能表來理解。當D = 0時,到下方或非門的
-D
輸入為1。它強制輸出Q = 0,并被交叉耦
合的網絡所保持。如果D = 1,上方的或非門的輸出被強制為
-Q
= 0,也就是另一個穩態。
圖9-8 基本的D 型鎖存器
9.3 時鐘與同步
在一個復雜的數字系統中,我們必須仔細地控制數據流,確保每一部分正確的信息在需
要時能夠得到。控制網絡中數據傳送最容易的方式,是通過一個預定義好的參考如時鐘信號
來同步系統的操作。盡管在第1章中已經介紹了時鐘,下面快速地回顧一下它的基本原理。
時鐘是從0到1又返回0作周期性變化的控制信號,如圖9 - 9所示。我們通常用符號?(t)或
者C L K標注時鐘。它最重要的特性是每T秒重復一次,即眾所周知的周期。時鐘的頻率定義為
( 9 - 1 )
表示時鐘在1秒鐘內重復的次數。頻率有精確的單位s-1,稱為H z(赫茨)。在計算機中,
對T最常用的度量是微秒(簡作ms),有
1ms = 10-6s
或者納秒( n s),有
1ns = 10-9s
T = 1ms的頻率是
( 9 - 2 )
圖9-9 用于同步的時鐘信號
這里, M H z讀作兆赫茨,意思是每秒一百萬個周期。在現代臺式計算機中,它是最通用的時
鐘單位。
246 數字系統設計基礎教程
下載
a) 元件b) 操作c) 邏輯圖解
輸入輸出
t[秒]
例9 - 1
假定時鐘頻率為5 0 0 M H z,與之對應的時鐘周期T通過倒數關系計算出來
( 9 - 3 )
這是許多現代系統典型的時間量級。
使用時鐘信號控制存儲元件的操作,使我們能夠指定把數據值存入該器件的時間。在數
據位碼可載入時,產生的結果是存儲元件被該部分時鐘周期特性化。這涉及能以同步方式傳
送數據的非常復雜的數字網絡的設計。
9.3.1 時鐘S R鎖存器
時鐘S R鎖存器如圖9 - 1 0 a所示。與圖9 - 4相比較,時鐘信號?(t)分別同輸入R、S相與,使交
叉耦合的或非門電路的輸入有效值修改為
( 9 - 4 )
圖9-10 時鐘SR鎖存器
圖9-11 時鐘D型鎖存器
因為或非門鎖存器的保持條件是( 0,0),所以,當? = 0時,這種鎖存器自動處于保持狀態,
置位和復位操作僅當? = 0時才能發生。這就定義了一個電平觸發的或者電平敏感的鎖存器,
在時鐘? = 1的任何時候,它允許輸入。時鐘S R鎖存器的符號如圖9 - 1 0 b所示。注意,它包含
了作為控制信號的時鐘?。
第9章存儲元件與陣列247
下載
a) 邏輯圖解b) 符號
a) 邏輯圖解b) 符號
按照這樣的處理,定義觸發器為任何鐘控存儲元件,那它也稱為觸發器。
9.3.2 時鐘D鎖存器
時鐘D鎖存器能以同樣的方式構成,如圖9 - 11 a所示。再次,時鐘信號?和常規的輸入相與,
得到有效輸入為
D ' = D·? ( 9 - 5 )
這就構成了一個電平敏感的鎖存器,其符號如圖9 - 11 b所示。如前面的時鐘S R鎖存器一樣,僅
當? = 1時,輸入能起作用。由于時鐘D鎖存器在此期間的這種行為,經常把它稱作貫通的鎖
存器。時鐘條件? = 0保持輸出Q和
-Q
的值。
在使數據流同步通過一個復雜系統方面,時鐘鎖存器是有效的。它們也賦予名稱“鎖存
器”以更多的意義,因為當它們被時鐘信號激活時,能夠形象化為“抓住”數據的電路。
9.4 主-從觸發器和邊沿觸發器
觸發器是時鐘控制的非貫通的鎖存器。這意味著該存儲元件當前的輸出值Q與當前的輸入
值A無關。它有幾種不同的變體,但是它們全都具有一個特性:在較早的時候由時鐘電路確立
的輸出Q(t)被存儲起來。
主-從觸發器網絡的基本特征如圖9 - 1 2所示。
如此命名這種存儲元件,是由于它指定了兩個內
部塊,代表兩個分離的鎖存電路。主鎖存器用于
接收輸入數據位碼A到觸發器。這個值被保存在
主觸發器里,在一定的時間后傳送到從鎖存器。
它們的輸入由時鐘信號?(t)同步。
圖9 - 1 3總結了主-從配置的操作。在圖9 - 1 3 a
中,主電路的輸入被激活, A值存儲在那里。在此期間,從鎖存器不活動(也就是,處于保持
狀態),不能接受輸入。下一操作階段如圖9 - 1 3 b所示。在此期間,主鎖存器處于保持狀態,而
從鎖存器激活。然后,A值被從鎖存器接受,該觸發器輸出端得到Q = A。因為此時主鎖存器失
效,其輸出端繼續保持A值,即使輸入變化為B。在此期間,該觸發器是非貫通的。其重要的
特性是,輸出值Q(t)與當前的輸入(B)無關,而表示早些時候主鎖存器激活時的輸入值。
9.4.1 主-從D型觸發器
主-從D型觸發器(D F F)如圖9 - 1 4所示。這種存儲元件由層疊的兩個時鐘D型鎖存器構成。
第一個鎖存器指定為主電路,負責得到輸入數據位D。第二個鎖存器作為從鎖存器,用來保持
它從主鎖存器接收的數據位碼的值。只要觀察到主從電路被反相的時鐘?(t)所控制,就很
容易理解D F F的操作。因為
-?應用到主觸發器,所以當? = 0時,主鎖存器接受輸入。另一方面,
從鎖存器使用?定時,這樣當? = 1時,它允許輸入改變。
D F F操作的一個詳細例子如圖9 - 1 5所示。在圖9 - 1 5 a中,當時鐘? = 0時,主鎖存器激活,
輸入數據位碼D = 1被接受,并存儲在第一個鎖存器里。在此期間,從鎖存器處于保持狀態,
以致于它的內容在主鎖存器載入時不受影響。當時鐘變化到? = 1時,主鎖存器保持,它的輸
出饋入現已被時鐘激活的從鎖存器,如圖9 - 1 5 b所示。數據位碼A傳送到從鎖存器,輸出值為
Q= 1和
-Q
= 0。
248 數字系統設計基礎教程
下載
圖9-12 主-從結構
主從
圖9-13 主-從操作
圖9-14 D型觸發器電路
圖9-15 DFF操作細節
第9章存儲元件與陣列249
下載
a) 主鎖存器有效b) 從鎖存器有效
主
(有效)
從
(有效)
從主
主
主
主
從
從
從
a) 載入主鎖存器
b) 傳送到從鎖存器
圖9-16 主-從DFF時序圖解
現在,讓我們使用時序圖9 - 1 6來分析一下主-從D F F的操作。在圖9 - 1 6中,時鐘信號?(t)
提供同步信息,從而? = 0指明主鎖存器接受輸入D,而? = 1意味著D F F輸入失效,數據傳送
到從觸發器,可在輸出端Q(t)處得到。
上面描述的主-從D F F被設計為在? = 0的期間接受輸入D。當時鐘從? = 0變化到? = 1的時
刻,傳送到從鎖存器電路的值(這里是輸出Q)就是主鎖存器中的值。因為這個理由,主-從
配置被劃分到邊沿敏感器件一類。這意味著,當時鐘從一個值跳變到另一個值時, Q值依賴于
主鎖存器中的內容,對應于時鐘波形的一個“邊沿”。
一種相關的存儲元件是邊沿觸發器。功能上,它似乎類似于邊沿敏感的設計。然而,僅
當時鐘跳變時,邊沿觸發器才允許載入輸入數據D。這不同于主-從電路,那里,主鎖存器在
半個時鐘周期內是貫通的。按照我們的處理,我們不關心主-從電路和邊沿觸發電路之間的
內部差別。取而代之,我們認為任何觸發器就像一個多路選擇器一樣,能夠用來作為一個基
本的積木,我們僅僅分析該器件的總體特性。邊沿觸發D F F的符號如圖9 - 1 7 a所示,時鐘輸
入增加了一個特別的標注,來指明一個正邊沿觸發行為,僅當時鐘從? = 0跳變到? = 1 時輸
入被接受。
圖9-17 邊沿觸發DFF操作總結
圖9 - 1 7 b中的總結表描述了邊沿觸發D F F的操作,它表明輸出Q僅僅是輸入D延遲一個時鐘
周期后的值。該表中的標注使用時間變量t表示“當前”值,如D ( t ),這里t是時鐘上升邊沿的
250 數字系統設計基礎教程
下載
[秒]
[秒]
[秒]
D觸發器
a) 符號b) 操作總結
時刻。另一方面,輸出寫作Q(t+T),這里T是時鐘周期。這意味著在下一個時鐘周期,也就
是在(t+T)時,輸出變量Q的值。該邊沿觸發D F F由下面的方程所表征:
Q(t+T)=D(t) ( 9 - 6 )
它表明輸出值與上一時鐘周期的輸入相同。延遲是邊沿觸發D型觸發器重要的一個方面,因為
它允許我們存儲當前值,以在下一時鐘周期使用。
對于數字設計中的許多應用,邊沿觸發D F F的延遲特性是足夠的。然而,一些系統要求
我們具有保持一個數據位碼幾個時鐘周期的能力。為了構建一個提供這種功能的電路,我們
必須把輸出Q傳送回輸入D,然后用相同的值“重新載入”觸發器。實現它的一個簡單方式
是,使用如圖9 - 1 8所示的2選1多路選擇器。在這個方案中,載入信號L D控制輸入,從而通
過把輸出傳送回輸入, L D = 0 保持當前值。如果L D = 1,那么新的d值傳送到D F F存儲單元。
另一個時常有用的特征是觸發器復位的能力,也就是強制Q為0。這個能力可以通過增加
如圖9 - 1 9所示的與門來提供。在此種情形,控制信號是—R E S E T,這樣
R E S E T = 0:使輸入D = d,
而
R E S E T = 1:強制輸入D = 0。
這里,在時鐘跳變時, R E S E T的值起作用,如果想要修改邏輯,這個特征也能與載入操作相
組合。
圖9-18 帶數據載入控制的DFF 圖9-19 帶復位能力的DFF
D型存儲元件的V H D L描述
對于一般的邏輯設計, D型鎖存器與D型觸發器是有用的。V H D L描述引入了新的思想,
值得詳細解說。
首先考慮如圖9 - 2 0所示的電平觸發D鎖存器。時鐘輸入用c l k表示,完全不同于?。為描述
該鎖存器的操作,我們首先必須注意到c l k的值控制著這個元
件的行為。當c l k = 0時,鎖存器不允許改變Q的狀態,僅當c l k
= 1時,才可以改變存儲位碼的值。下面的描述引入了V H D L進
程的思想。V H D L進程是一種允許包含定時關系的結構。
- - D鎖存器的V H D L描述
- -結構體包含進程語句
第9章存儲元件與陣列251
下載
輸入
輸出
輸入
D觸發器
圖9-20 b型負存器
D鎖存器
關鍵字p r o c e s s指明一組順序語句的開始,它意味著命令以它們排列的順序依次執行。這個進
程由下面的序列描述,
該序列按照它的理解準確地執行。換句話說,時鐘值c l k =‘1’使得D傳送到輸出Q。
邊沿觸發器件要稍微復雜一些,因為我們必須寫一個說明c l k值變化的進程。考慮圖9 - 2 1
所示的正邊沿觸發的D F F模塊。在V H D L中,描述信號變化的一個方式是使用‘ e v e n t指令。
語句
解釋為一個布爾對象,其值為真或假。若c l k‘e v e n t為真,意味著信號c l k值已經改變,若c l k
沒有改變,那么它返回假。為了描述正時鐘邊沿,它寫作
因為c l k正在改變且c l k的值目前為1,它的計算結果為真。記住這樣一點, D F F能夠由下面的
程序清單描述。
圖9-21 邊沿觸發DFF模塊
- -邊沿觸發D F F的V H D L描述
- -結構體包含進程語句
252 數字系統設計基礎教程
下載
如果我們希望描述負邊沿觸發器,那么我們只須改變進程命令來反映時鐘最終的值c l k = 0。
- - D F F的V H D L描述
- -結構體包含進程語句
本章中所有其他時鐘敏感元件的V H D L描述都能夠使用該進程結構建立。
9.4.2 其他類型的觸發器
其他的幾種觸發器能夠使用基本邏輯門構成。每一種由一組獨特的、對設計者有用的并
依賴于系統規范的特性所定義。我們將僅僅關注在時鐘邊沿接受輸入的邊沿觸發器。
圖9-22 SR觸發器特性
S R觸發器
S R觸發器有著和D F F同樣的基本結構,而由S R鎖存器取代D F F的輸入電路。它有兩個獨
立的輸入S和R,由S = 0 = R定義它的保持狀態。在S R鎖存器的操作中, S和R同時為1的狀態
禁用,記住這一點是重要的,以便在S R觸發器中排除這種情況。邊沿觸發SR FF的符號如圖9 -
2 2 a所示,圖9 - 2 2 b是相應的操作表。它能夠概述為
( 9 - 7 )
注意到,輸入S ( t )和R ( t )皆等于1的情形沒有定義。這是由于電路中使用了基本S R鎖存器。
第9章存儲元件與陣列253
下載
操作
保持
置位
復位
不使用
a) 符號b) 操作總結
J K觸發器
J K觸發器修改了SR FF 的電路,以使兩輸入同時跳變為1的情形引起切換操作
( 9 - 8 )
這意味著,若Q, - Q = R ( t ),那么該切換改變它們到(Q, - Q)=(0, 1 )。這個電路中的輸入與S R
觸發器是相同的,但它們有著并不相同的外部操作。圖9 - 2 3總結了這些特性。J K觸發器在以
往基于S S I集成電路的硬件設計中占據支配地位,目前在某些系統中,它仍然是常用的器件。
圖9-23 JK觸發器的特性
T觸發器
切換觸發器是有一個輸入T的電路,在圖9 - 2 4的邏輯符號中指明。T F F的操作恰如它的名
字所暗示:無論什么時候, T從0變化到1,輸出就切換。這是一個相當特殊的器件,它沒有上
面所討論的觸發器的多面性,但仍然很實用。
圖9-24 T觸發器的特性
9.5 寄存器
寄存器是一個用來存儲nb i t二進制字的邏輯元件。幾乎每一大型的數字系統都采用寄存器
來保持重要的數據,所以有必要對它進行詳細地研究。它可以構造出幾種變體,它們在數字
系統設計中各有其應用范圍。
9.5.1 基本存儲寄存器
我們可以并行方式簡單地使用n個1 b i t存儲單元,構成一個允許對全部單元同時讀或者寫
的寄存器。通常為了方便,以系統規范要求的字長大小來構成寄存器。
我們來測試一個8位寄存器,它能夠存儲一個字節的數據。為了建立這個寄存器,我們使
用如圖9 - 2 5 a所示的獨立存儲單元來構成圖9 - 2 5 b所示的電路。注意,我們選擇了邊沿觸發存儲
元件作為基本的單元。為了簡單起見,我們僅僅指出了輸入、輸出和時鐘端口。元件可能需
要的其他控制線,如載入( L D)信號,沒有明確地表示出來。盡管每一位可以單獨存取,該
寄存器作為所定義的一組,用于保持一個8 b i t的字,因此所有單元的讀出或者寫入操作同時執
254 數字系統設計基礎教程
下載
a) 符號b) 操作總結
a) 符號b) 操作總結
操作
保持
置位
復位
轉換
行。既然一直使用邊沿觸發存儲單元,那么僅在時鐘跳變時執行寫入操作。一個簡化的記號
如圖9 - 2 6 a所示,這些單元簡單地組合在一起,呈現為一個獨立的單位。在圖9 - 2 6 b中,我們把
寄存器表示為帶8 b i t輸入輸出線和單個時鐘控制的單一實體。在許多應用中,它理解為,寄存
器根據時鐘信號?(和任何其他條件)載入,即使它在圖中被忽略掉。
圖9-25 由獨立的存儲元件創建的寄存器
圖9-26 用于表示8位寄存器的符號
這種類型的通用寄存器在計算機設計中被廣泛地使用,在第11章計算機系統環境下,我
們將詳細地討論它。此處要記住的重要概念是,寄存器保持nb i t字作為一組,它自身能夠當作
一個單獨的由更小的單元所組成的數字元件來看待。
9.5.2 移位寄存器
移位寄存器被設計用于在時鐘脈沖作用下傳送它的位碼到相鄰單元。為了說明移位寄存
器的一般性質,讓我們重復圖9 - 2 7 a中的存儲單元,建立如圖9 - 2 7 b所示的串行鏈,在那里,每
個單元的輸出作為它右邊相鄰單元的輸入。總之,該電路有單個輸入位D和單個輸出位Q,組
成了一個8位移位寄存器。既然所有的單元由同一個時鐘信號?控制,因此它們同時載入。
圖9-27 基本移位寄存器結構
圖9-28 移位寄存器的簡化符號
使用圖9 - 2 8所示的簡化符號,很容易理解移位寄存器的操作。這種示意圖使我們可以形
第9章存儲元件與陣列255
下載
輸入字
輸出字
輸入
輸出
a) 單個單元b) 8位寄存器
輸入
輸出
a) 獨立單元b) 單個寄存器
a) 單個單元b) 串行載入移位寄存器
象地分析該單元的內容,跟蹤數據在結構中的傳送。即使沒有明確地表示時鐘?,仍然如初始
電路一樣,設定輸入同步。
假設我們想要以比特序列
D0= 1,而
D1= 1,而
D2= 0,而
D3= 0,
等等載入寄存器,就如圖9 - 2 9 a所示的移位寄存器的輸入“ 0 , 1 , 0 , 1 , 0 , 0 , 1 , 1”。當我們使用這種
記號表示串行輸入時,意味著右邊的位碼是將要進入部件或系統的下一位。因為在寄存器中
有8個單元,載入整個寄存器將花費8個時鐘周期。根據圖9 - 2 9 b中的時鐘圖解,就在時間7T之
后,正如前面所言,可得到第一個輸入位D0= 1的輸出。
圖9 - 3 0提供的序列明確地表示出位碼通過移位寄存器的進程。左邊指出的時間隱含寄存
器在下一個載入事件發生之前的內容(因為單元由正時鐘邊沿觸發)。數據傳送筆直向前流動,
在第一個正時鐘跳變時,單元d7裝入T時刻
的D0= 1。下一個正時鐘邊沿使D0= 1移到下一
個單元d6,同時接受D1= 1進入單元d7。每個
子序列在正時鐘跳變時接受下一位,使每一
個存儲位碼傳送到右邊的單元。在7T之后,
該字的末位裝入單元d7,首位D0= 1在移位寄
存器的輸出端得到。因為d0位先載入且先出
來,所以它稱作F I F O(先進先出)電路。
對于某些類型的存儲應用, F I F O極其有用。
圖9-30 數據在移位寄存器內傳送
256 數字系統設計基礎教程
下載
F I F O按照音節讀作f i - f o。
a) 內容清除
輸入序列
b) 時鐘周期
圖9-29 串行數據輸入移位寄存器
時刻輸入隊列
并行載入的移位寄存器允許用戶在一個時鐘跳變存儲整個字,如圖9 - 3 1所示。這個特定
的寄存器有兩種移位操作,分別由信號S H R(右移)和S H L(左移)控制。兩者的作用如圖9 -
3 2所示。在圖9 - 3 2 a中,寄存器的初始內容是字1 0 1 0 11 0 0(從左讀到右)。通過設置SHR = 1啟
動移位寄存器操作,每一位碼向右移動一個位置(圖9 - 3 2 b)。注意,最左邊的位碼(以斜體
表示)自動強制為0。圖9 - 3 2 c表明,通過設置
控制位SHL = 1可實現左移操作。每一位碼向
左移動一個位置,與右移操作恰恰相反。在這
種情形下,最右邊的位碼被強制為0。
在一個復雜的數據傳送系統中使用移位寄
存器時,一般建立允許移動多位的電路。在
這種情形下,內容右移n個單元,命令寫作如
下形式
SHR n
而
SHL m
表明內容左移m個位置的操作。
圖9-32 移位操作總結
移位操作的一個直接應用是執行二進制碼字的冪2乘除法。要理解它,讓我們先看看二進
制字
N = 000111 0 0
它的十進制數值是2 8。我們執行一個SHL 1操作,結果為
NL 1 = 00111 0 0 0
它是十進制數5 6,也就是NL1 = 2N。以最初的字開始,調用SHL 2操作,得到
第9章存儲元件與陣列257
下載
a) 初始條件
b) 在右移操作之后
c) 在左移操作之后
輸入
輸出
(載入)
圖9-31 有并行載入功能的移位寄存器
NL2 = 0111 0 0 0 0
它等于11 21 0,于是NL2= 22N。因此,一般地,操作SHL n等價于寄存器的內容乘上2n
右移操作SHR m實現相反的效果。例如,若首先有
N = 000111 0 0
那么,SHR 1和SHR 2 操作得出
NR1 = 0000111 0
NR2 = 00000111
容易驗證,
NR1 = N/ 2
NR 2 = N/22
對應于十進制數NR1= 1 4,NR2= 7。這表明SHR m能夠使寄存器的內容與2m相除。
寄存器不僅有移位操作,還可以有循環操
作R O R(右循環)和R O L(左循環)的能力。
循環不丟失位碼,它移出寄存器但傳送到另一
邊,除此之外,它們與相應的移位操作完全一
樣。圖9 - 3 3總結了這兩種操作的結果。在圖9 -
3 3 a中,顯示內容1 0 1 0 11 0 0。通過設置控制位
ROR = 1,啟動循環右移操作。它使每一位碼
向右移動一個位置。最右邊的位碼被傳送到寄
存器的左邊。圖9 - 3 3 b顯示了通過置位ROL = 1
引起的循環左移操作。在這種情形下,每一位
碼向左移動一個位置,左邊單元的內容(最初
為1)傳送到最右邊的位置。對于移位操作,
通過改變組成寄存器的存儲單元的接線,構建
一個允許多循環
ROR n和ROL m
的寄存器是可能的。
移位和循環操作對于許多種類的數字信號處理相當重要,它們作為基本的操作包含在所
有的計算機里。在第11章計算機體系結構的語境里,我們再詳細地討論它們。
9.6 隨機存取存儲器
隨機存取存儲器是適用于通用讀/寫存儲單元的大型陣列的術語。R A M通常作為臺式計算
機設備中的主系統存儲器,它提供存儲所有重要數據的能力,這些數據是計算機運行程序和
操作系統所必需的。
9.6.1 靜態R A M單元
靜態存儲器能夠保持所存儲的數據位碼,只要電源連接到該電子線路。
258 數字系統設計基礎教程
下載
它僅僅精確地作用于十進制偶數。
a) 初始條件
b) 在右循環操作之后
c) 在左循環操作之后
圖9-33 循環操作
如圖9 - 3 4 a所示, S R A M 是基于兩個級聯的反相器所組成的閉環特性。它是一個雙穩態
電路,A = 0或者A = 1皆能在環中保持。盡管乍一看它可能很陌生,但是它的操作等價于S R鎖
存器。重畫該電路如圖9 - 3 4 b所示,使反相器交叉耦合,可以看出這一點。與圖9 - 4中兩輸入
或非門鎖存器相比較,我們看到,除單輸入非門用于邏輯之外,結構是相同的。
圖9-34 交叉耦合反相器形成雙穩態電路
通過嵌入交叉耦合的反相器到一個與反
相器環相連的較大的網絡,就構成一個存儲
一位數據的靜態R A M單元。圖9 - 3 5表示一個
S R A M單元,它增加了兩個由字線上的信號
W L控制的存取開關( S w)。這些開關由邏輯
控制, W L = 0使開關斷開,而W L = 1閉合它
們。當W L = 0時,存儲單元與外部影響隔離,
保存數據位碼。若W L = 1,兩個開關都閉合,
單元對應的兩邊分別與位線( D)和位線(
-D
)
連接。這就允許對單元進行寫或者讀。總之,
? W L = 0保存狀態,而
? W L = 1允許進行讀寫操作。
當附加電路判定W L = 1時,執行實際的操作。
9.6.2 SRAM陣列
通常制造出S R A M,是為了可以輕易地存儲nb i t二進制字,而不是單獨的一位。這是一個
實用的考慮,起因于這樣的事實:大多數應用的建立是如此設想的。一個m×nS R A M陣列由
m行、每行包含n個單元所組成。
讓我們分析怎樣才能構造一個很簡單的存儲8個字,每個字長8位的存儲器,也就是說,
一個8×8陣列。首先,考慮一個8比特字的存儲。它需要8個單元,每比特一個,如圖9 - 3 6所
示。我們已經為字線使用了簡化的標注,但它的意義仍然一樣: W L = 0隔離單元,而W L = 1
提供存取,允許進行寫或者讀操作。為了保存8個字,我們再構造七個相同的電路,把它們堆
疊起來,如圖9 - 3 7所示。為了選定所要求的行(字),我們包含一個3 / 8高電平有效的行譯碼器
電路,該譯碼器的輸入是一個稱為地址的3位二進制字
A2A1A0
因為它指明了存儲器中特定字的位置。陣列的下方提供了接口電路,它們提供寫入或者
第9章存儲元件與陣列259
下載
S R A M讀作S- ram 。
a) 基本電路b) 重畫
圖9-35 SRAM單元設計
位線
存儲單元
位線
字線
讀出陣列的每一行所必需的電路。E n a b l e是一個高電平有效的激活陣列的控制信號, R/W決定
是否進行讀(R /W = 1),或者寫(R/W = 0)。讀/寫控制信號R/W僅當E n a b l e = 1時有效。
圖9-36 8位存儲陣列
圖9-37 8×8RAM陣列
讓我們研究圖9 - 3 8 a所示簡化的讀操作,來闡明該陣列的操作。多數連線已經被組合在一
起,以便我們能夠專注于數據傳送,而不被太多的細節轉移目標。該圖顯示了每一行的內
容;圖9 - 3 8 b總結了輸入地址如何激活一個特定的工作線,該線反過來允許數據行被讀出來。
260 數字系統設計基礎教程
下載
讀寫操作接口電路
例如,如果地址是1 0 0,那么選定線4,結果是輸出0 1 0 1 0 1 0 1。
圖9-38 RAM陣列中的讀操作
圖9-39 64×8SRAM器件的方框圖
第9章存儲元件與陣列261
下載
輸出
輸出
行
地址
a) 簡化網絡
b) 功能表
地址內容
可能
地址
可能
讀/寫
數據
a) 內部組織b) 符號
簡化的操作圖解和符號提供了一個簡明的方式,以這種方式,一個復雜的數字單元的重
要特性能夠明顯地表示出來,而不使邏輯圖解散亂。它們等效于在分級結構中更高層次上觀
察該單元,對于描述一個復雜系統如計算機很有用處。要創建一個符號,我們必須定義它所
有相對于“外部世界”重要的特性。盡管內部電路本身可能有令人感興趣之處,但是大部分
與用戶無關。
考慮一個S R A M陣列。在用戶層次,它是一個器件,允許我們對二進制字執行寫、保持
和讀操作。該陣列的容量告訴我們它能夠存儲多少字,尋址方案提供一種方式,使我們能夠
明了每一個字定位于該陣列的哪一個位置。圖9 - 3 9 a中的方框圖總結了一個容納6 4個8比特字
的器件的性質。進出這個存儲設備的數據作為8比特字
b7b6b5b4b3b2b1b0
傳送。地址給出每一個字的位置,由選擇一個存儲位置的6位字
A5A4A3A2A1A0
表明。如果Enable =1 激活了該設備,那么讀寫操作由R/W控制選定。在這個層次, R A M的內
部結構被描繪為一組存儲位置,每個存儲位置有唯一的地址。這就使我們可以闡明它的內容。
一個更精簡的符號如圖9 - 3 9 b所示。該設備的操作在各個方面都一樣,但是內部細節沒有表示
出來。這使它更易于在設計分級結構的系統級中使用。
9.6.3 動態R A M
動態存儲器( D R A M)陣列和S R A M陣列相似,因為它們都允許我們使用單元尋址的概
念存儲數據。兩者不同之處在于自身單元的內部設計。動態R A M單元要簡單得多,在硅片上
只需要更少的面積。這使D R A M的存儲密度比S R A M要高得多,每一位的成本要低得多。因
為較低的價格,在需要大型存儲陣列,成本重要的任何時候,通常使用D R A M。D R A M最大
的應用是作為臺式計算機的主系統存儲。使用“動態”存儲的一個障礙是, D R A M比較簡單
的單元設計導致電路顯著變慢;讀寫時間都增加,這就限定了它們如何才能在大型系統中用
來存儲數據。
MOS DRAM的細節和操作在9 . 9 . 2節敘述,在那里我們將看到,位存儲技術的物理學即使
得D R A M密度高,又解釋了為什么它們被稱為“動態的”。
9.6.4 奇偶和錯誤檢驗碼
可靠的數據存儲是所有數字系統的關鍵。即使單個的錯誤位碼就能導致整個程序崩潰,
或者數據庫文件無用,所以提供一些技術,能夠檢測錯誤的存在,以及在某些情況下能夠修
正那些錯誤,是非常重要的。對檢錯碼( E D C)和糾錯碼( E C C)的詳細研究超出了本書的
范圍,但是它們的原理基于一些相當簡單的概念,在這里予以介紹。
首先,讓我們分析這樣一個問題,我們要確保從一個存儲位置讀出的數據字節與寫入
的數據字節相同。這將要求我們在存儲數據字節之前記錄一些有關它的信息,然后在讀出
該數據字節之時使用這些信息來檢查它。實現這個的一個簡單方式是,引入奇偶位P的概
念。
假設最初數據字節寫作
B=b7b6b5b4b3b2b1b0 ( 9 - 9 )
262 數字系統設計基礎教程
下載
因為每個bn非1即0,我們能夠計算該字中1的個數,用此定義一個奇偶位P,讓它記錄在包含
奇偶位P的組合字節中1的個數為偶還是為奇。若我們選擇偶校驗方案,那么奇偶位Pe v e n有如此
特性,
選擇Pe v e n,使(B +Pe v e n)有偶數個1。
例如,若B1= 0 11 0 11 0 1,則Pe v e n= 1,因為B1包含5個1,這種選擇使之具有偶數個1。反之,
字節B2= 1111 0 0 0 0要求Pe v e n = 0,因為B2已經有偶數(4)個1。奇校驗恰恰相反。在這種情況下,
我們引入奇校驗位Po d d,這樣
(B +Po d d)有奇數個1。
對于B10 11 0 11 0 1,將要求Po d d = 0,類似地,若B2= 1111 0 0 0 0,則將有Po d d = 1。
圖9-40 奇偶校驗生成電路
一種生成奇偶位的容易的方式是使用如圖9 - 4 0所示的異或操作。回憶一下,異或門實現
了奇功能。在這個邏輯圖解里,我們已經定義了輸出為
P = b7?b6?b5?b4?b3?b2?b1?b0 ( 9 - 1 0 )
所以,該字中如果有奇數個1,那么P = 1,如果有偶數個1,那么P = 0。所以這樣選擇
P = Pe v e n ( 9 - 11 )
因為該字節加上P中1的全部數量有偶校驗所要求的特性。如果我們使用異或非門代之,那么
輸出將是奇校驗位。
為了應用奇偶性的概念到檢錯問題,假設我們存儲最初的數據字節以及奇偶位如圖9 - 4 1 a
所示。由上面的討論, P的選擇代表偶校驗。注意,這個方案要求存儲位置寬度為( 8 + 1)= 9
位,以適應附加位。奇偶位P提供原始數據的信息。當字節讀出存儲器時,如圖9 - 4 1 b所示,
我們獲得數據段
( 9 - 1 2 )
它被用來計算新的奇偶位Pc,為
( 9 - 1 3 )
接下來,使用異或功能比較存儲的奇偶值P和Pc,產生檢驗位C。若P = Pc,則存儲的奇偶
值與計算的奇偶值相等, C = 0 。然而,若P≠Pc,那么兩個奇偶位不同, C = 1 ,指示兩
者有差異。這樣, C = 1 表明錯誤已經發生,所以不是數據字節就是存儲的奇偶位不正確。
檢驗位C通常放置在一個特別的稱為標志的存儲單元里,當C = 1 時,我們說標志被置位,
一個錯誤已經被檢測到。檢驗位C = 0 不保證無錯誤發生,它僅僅意味該電路沒有檢出錯
誤。
第9章存儲元件與陣列263
下載
(輸入奇數個1)
(輸入偶數個1)
輸入字
圖9-41 錯誤檢測電路
9.7 只讀存儲器
只讀存儲器是用作永久數據存儲的存儲陣列。信息由R O M的生產者或者系統程序員存儲。
用戶依賴于特殊的設備具有有限的編程能力(或者根本沒有)。R O M提供非易失性的存儲,這
意味即使切斷電源連接,數據仍然保持在該存儲器中。非易失性的存儲設備是許多系統應用的
關鍵。例如,每一臺個人計算機有一個R O M ,加電時提供啟動系統軟件所必需的二進制碼。
圖9 - 4 2 a中的符號顯示了一個小容量R O M的重要特性。整體上,它在操作方面與R A M很
類似。先指明地址,然后使芯片操作執行讀,導致數據輸出。圖9 - 4 2 b所示的內部模型提供了
這種設備必需的細節。被存儲的數據字作為所指明的地址位置的位組被查看。該地址字為:
A5A4A3A2A1A0
圖9-42 ROM的符號和用戶模型
264 數字系統設計基礎教程
下載
存儲字
輸出字
a) 寫操作
b) 讀操作
它稱為B I O S,表示基本輸入輸出系統。
地址
使能
數據輸出
a) 符號b) 內部組織
存儲
數據
使能
被送到一個行譯碼器,然后通過置位合適的字線為高來激活該字的存儲位置。該數據字送到
由E n a b l e控制激活的輸出電路,使得該數據字為:
b7b6b5b4b3b2b1b0
輸出R O M。這種設備不支持寫操作,這是只讀存儲器顯著的特征。
9.8 CD ROM
緊湊圓盤( C D)R O M是一個復雜數字系統的有趣范例,它結合了電子學和光學,提供高
密度存儲介質。CD ROM的基本格式和操作基于C D音頻標準,但是比那些用來再現聲音的
C D有著更迫切的市場需求。
CD ROM是一個由潔凈的、一面鑄造成小缺口的多碳酸塑料組成的圓形盤片。其上涂有
一層鋁金屬,然后覆蓋另外一層塑料,再把標簽印在最上層。如圖9 - 4 3所示,C D的頂面有標
簽,而潔凈的底面有存儲信息。在多碳酸塑料和鋁之間的界面稱為信息表面,因為這是數據
存儲的地方。信息被記錄在始于盤片中心,螺旋向外的單個軌道之上,如圖9 - 4 4 a所示。為了
從盤片讀數據,盤片旋轉,越過一個包含在播放機械中的固定激光源。為了便于分析,把它
看作一個固定的盤片和一個跟隨軌道移動的激光束,如圖9 - 4 4 b所描繪。
圖9-43 緊湊圓盤的結構
圖9-44 CD信息軌道
圖9 - 4 5顯示了從潔凈的塑料往鋁涂層所看到的信息表面的一個特寫。該表面的大部分平
整,稱為平地(l a n d)區。而大量的小缺口稱為凹口( p i t s),鑄造在塑料里,然后被鋁所覆
蓋。沿著一條稱為軌道的隱含線,提供一系列凹口和平地,實現數據存儲。這些軌道相互間
距1 . 6mm,可以密集地存儲。一張CD ROM能夠存儲大約540 MB有用數據,以正常速度可播
放6 0分鐘。在制造盤片時,凹口和平地被沖壓入塑料,不能改變,使得它成為只讀設備。
第9章存儲元件與陣列265
下載
a) 緊湊圓盤b) 橫截面視圖
頂層標簽面
底層-信息面
鉆涂層可見
鉆層
信息表面
a) 底視圖b) 數據軌道的可視化
超始
結束
由螺旋軌道
組成的信息
存儲區激光束跟隨
軌道
圖9-45 CD信息表面的凹口和平地
當盤片自旋時,通過把一小束激光聚焦到軌道可以實現數據的讀出。對于標準( 1倍)速
度播放器,光點以一個恒定的速度v = 1 . 2 5 m / s跟隨軌道運動。跟蹤從信息表面反射回的激光就
讀出了存儲信息。圖9 - 4 6顯示了一個軌道和它的橫截面圖。當激光束照射在一個平地區時,
鋁涂層提供一個強反射。另一方面,如果光束掃描一個凹口,那么由于眾所周知的光的散射
和干擾,反射的光束是很微弱的。凹口的深度和相對于凹口寬度的光點的大小都是很重要的。
圖9-46 激光讀信息軌道
當監視反射激光束的功率Pre f時,我們發現它依賴于激光束是否照射在凹口或者平地區而
變化。圖9 - 4 7說明了這一點,它顯示反射功率在高低電平之間變化。盡管我們用高電平表示
邏輯1,用低電平表示邏輯0,似乎顯而易見,但出于系統設計過程中的物理考慮, C D標準選
擇了不同的編碼方案。這種用于C D的編碼稱為N R Z - i。它以如下方式定義邏輯電平:
? 邏輯0 持續的高或低電平
? 邏輯1 一個從高到低或者從低到高的跳變
266 數字系統設計基礎教程
下載
軌道
凹口
掃描激
光束
平地
平地
平地
平地
平地
平地平地平地
光束點
凹口
凹口
平地
塑料
弱反射
強反射
標簽覆蓋
激光束
凹口
a) 信息表面
b) 橫截面視圖
這樣,當激光掃描凹口或者平地區時,恒定的反射功率強度被翻譯為邏輯0。僅當光束從平地
到凹口,或者從凹口到平地傳送時,邏輯1發生。使用這種編碼方案提供該圖所示的邏輯翻譯。
注意,這種技術的關鍵是,為一個邏輯位定義時間間隔T。對于1倍速播放器,串行數據讀出
數率大約為1 5 0 K B / s(千字節每秒)。
我們之所以使用N R Z - i編碼,是因為讀盤進程產生不了該圖所示的精密明確的反射光束。
由于不一致的激光照明、跟蹤錯誤、振動和物理環境中其他干擾,反射功率強度看上去更像
如圖9 - 4 8所示一樣。盡管光束照射在凹口或者平地區時,它的強度發生變化,但是當激光束
從凹口移向平地,或者反之時, C D系統確保有一個仍然合理的改變。因此,這個編碼方案濾
及一個信號可靠的輸出,雖然并不理想。
圖9-47 掃描表面時的發射激光功率
應用這種編碼把數據存儲在軌道上的方式,導致了其他的復雜性。如果我們比較凹口的
寬度、長度和激光束的直徑(大約1mm),我們發現兩個1在軌道上相鄰是不可能的。事實上,
當在軌道上記錄時,這產生一個規則
1必定至少被兩個0分隔
這暗示我們不能直接在C D的軌道上存儲“標準”編碼數據!取而代之,數據服從一個調制方
案,它原則上類似于編碼/譯碼過程。
緊湊盤片使用一個8到1 4調制( E F M)技術,一個8 b i t數據字被擴展為1 4 b i t的調制當量,
它不違反1之間的間隔規則。整個方案如圖9 - 4 9 a所示。記錄在盤片上的是調制位流,而不是
原始數據。實際的轉換使用一個查詢表定義,該表的一小段已經再現于圖9 - 4 9 a中。數據讀出
時,必須簡單地把該表用作一個字典,解調數據以產生原始的8 b i t字。
圖9-48 實際的發射信號變量
C D另一個有趣的方面在于,讀盤以后對數據使用了檢錯碼( E D C)和糾錯碼( E C C)。
C D制造工藝固有的偏差導致有相當高的可能性得到一個數據流錯誤。通常,它由誤碼率
(B E R)表明如下:
( 9 - 1 4 )
第9章存儲元件與陣列267
下載
平地平地平地
位時間
凹口凹口
平地凹口平地凹口平地
圖9-49 CD 8到14調制方案
這里,Ne為不正確的位數,NT為被考慮的位的總數。在C D音頻應用中(C D標準的最初使用),
指明B E R最大值為R E R= 1 0-9。計算標準更加嚴格,最高可接受的值為B E R= 1 0- 1 2。為了確保C D
滿足該值,在記錄數據之前,一套復雜的E D C和E C C應用到數據之上。這導致另外一個數據
集記錄在C D上。這個思想類似于在R A M陣列中使用奇偶位的概念,但是它要強大得多,因為
該代碼可以( a )檢錯,以及( b )通過計算起初的碼字來進行糾錯。C D采用了一種算法,它包含
于一大類已知的R e e d - S o l o m o n碼理論中,以一些數據字塊來實現任務。它們是如此強有力,
以至于你能夠真正地掩蓋C D上一段大約長1 m m的軌道,它不影響被處理的數據輸出。
緊湊盤片系統十分復雜,但它是現實數字系統的一個優秀的樣例。其他光學記錄和數據
存儲的途徑已經發展起來,而它們都趨向于被類似的物理限定所約束,且各自有獨特的方面,
通過使用基本的準則說明一個數字設計如何能夠解決復雜的系統設計問題。
9.9 CMOS存儲器
C M O S是所有類型的存儲器芯片的主導技術。因為M O S F E T很小,創建大容量的相當快
的存儲器陣列就是可能的。在這一部分,我們將簡要地分析一些有關使用C M O S技術創建存
儲器單元的概念。
9.9.1 CMOS SRAM
單個的CMOS SRAM單元電路如圖9 - 5 0所示。它包含兩個交叉耦合的反相器(M n 1,M p 1,
M n 2,M p 2),作為存儲單元,使用一對N溝道晶體管存取它們。這與圖9 - 3 5所示的更基本的
原理圖有著相同的結構,所以它們的操作是相同的。由于它有六個晶體管,在文獻里稱為一
個“6 T”設計。該6 T設計可能是制作C M O S存儲器最普通的方法。使用四個M O S F E T和兩個
電阻創建一個“4 T”單元也是可能的。
268 數字系統設計基礎教程
下載
8位字
14b字到
光盤
14b字
讀出
8位字
8位字14位長效值
a) EFM記錄和讀出方案
b) EFM 表的一部分
用來存取單元的簡單方案能夠擴展到多端口靜態存儲器,在這里,能夠使用一對以上的
輸入/輸出線。一個雙端口靜態存儲器如圖9 - 5 1所示。它有兩個獨立的數據I / O通路,用D1和D2
表示。單元存取由兩個獨立的標注為W L 1和W L 2的字線控制。任意一個能夠用作讀或寫操作。
所引起的一個問題是,我們必須實施排他性,即
W L 1·W L 2= 0 ( 9 - 1 5 )
確保一個輸入不干擾另一個。它可通過使用片上邏輯仲裁每一個單元的存取來實現。多端口
存儲器很有用,因為它們允許把共享存儲器一次硬連到幾個數字邏輯單元。
圖9-50 CMOS SRAM單元
圖9-51 雙端口SRAM單元
9.9.2 動態存儲器
描繪動態存儲器的特征要更加復雜,但是它們廣泛地被用作主存,因為它們能以比S R A M
高得多的密度構建。形容詞“動態的”反映了這樣一個事實,在一個保持操作期間,單元的
內容將隨著時間改變。這使得動態存儲器的設計更加復雜,但是現代的芯片通常對用戶屏蔽
復雜性。D R A M主要的缺點是它們沒有S R A M快。D R A M主要的優勢是每b i t的花費很低,使
它在需要大陣列的系統設計上具有經濟上的吸引力。
第9章存儲元件與陣列269
下載
(字線)
位線
反碼位線
端口2
端口1
端口1
端口2
D R A M單元的電路原理圖如圖9 - 5 2所示。一眼看去,簡單
性是明顯的:整個單元由單個n F E T和一個存儲電容CS組成。
這便于相當高的集成密度,使構建有數百萬個單元的單一芯片
成為可能;使用現代技術,每片2 5 6 M b和1 G b大小是可能的。
D R A M市場競爭的本質使它成為技術驅動器,許多公司使用
他們最先進的工藝技術制造D R A M。
在這個基本存儲電路里, n F E T作為存取器件,由字線變
量W L控制導通。當W L = 1時,n F E T作為一個閉合的開關,允
許一個寫或讀操作。要寫該單元,一個數據電壓VD應用到數據
線,產生的電流充電存儲電容CS到電壓VS。如圖9 - 5 3所示。存儲位碼的值由電容上的電荷定義
( 9 - 1 6 )
如果VS= V0= 0V,那么QS= 0,對應于邏輯0的值。另一方面,如果VS= V1是高電平,那么邏
輯1的電荷存儲在電容上
QS = CSV1 ( 9 - 1 7 )
使字線W L = 0可得到一個保持狀態,在數據線與存儲電容器之間斷開直接的導電通路。
理想地,晶體管將阻塞所有的電流,電荷QS將永久地保持。然而, n F E T并不能阻塞所有的電
流。即使對一個0門電壓, F E T允許一個小的漏電流IL把電荷從電容器移走。泄漏通路的電路
效果如圖9 - 5 4 a所示, 9 - 5 4 b中的示意圖表明了晶體管中問題的物理起源,在那里, p n結存在
一個不能排除的反向電流IR。在這種情況下,我們可以記作
IL = IR ( 9 - 1 8 )
既然電荷能夠從CS泄露掉,而數據位碼的值依賴于電荷,所以數據位碼僅僅能夠保持一個較
短的時期。
圖9-53 DRAM單元中的寫操作
圖9-54 DRAM保持狀態和泄露問題
270 數字系統設計基礎教程
下載
在實際的D R A M單元中,也存在其他幾種漏電流。
輸入
(邏輯0)
(邏輯1)
門
斷開
漏電流
邏輯1電壓將
漸變為0V
a) 電路模型b) 漏電流的起源
圖9-52 CMOS動態RAM(DRAM)
單元設計
預估這個值能夠保持的時間間隔是有價值的。假定我們在電容器上設置邏輯1電平VS=V1,
希望計算n F E T斷開時電壓能夠保持在該單元上的時間。這能通過使用電流的定義來實現,記
作
( 9 - 1 9 )
這里,我們在第二行中使用了基本的關系
( 9 - 2 0 )
使用負號是因為電荷隨時間減少。重新排列得到
( 9 - 2 1 )
所以,兩邊積分得到
( 9 - 2 2 )
這里,tH是保持時間。保持時間定義為電容器能夠維持Vm i n以上電壓的時間間隔, Vm i n是仍然譯
作邏輯1值的最小電壓。右邊的下限V1表示t = 0時刻的初始存儲的邏輯1電壓。計算該積分,
重新排列保持時間為
( 9 - 2 3 )
為了理解時間間隔的意義,我們記存儲電容為5 0 f F = 5 0×1 0-1 5F的量級,漏電流為1 p A(1 0-1 2A)
的量級。因為電壓為1 V的量級,保持時間就大約為
( 9 - 2 4 )
也就是5 0毫秒( m s)。這是一個很短的時期。數
據必須周期地更新以確保在系統需要它時是有效
的。這稱為刷新操作,在下面描述。
如圖9 - 5 5表示了一個讀操作。為了從該單元
檢索數據,我們使W L = 1,閉合存取晶體管,允
許電流流向位線。一個放大器在輸出端提供加強
的信號。該放大器是設計的關鍵部分,在設計過
程中被給予更多的關注。為了對數據提供快速存
取,讀電路必須適當地快。
刷新操作就是,周期地對數據執行讀出、放大及回寫到單元。刷新電路包含在芯片中,
使該存儲器似乎有長期的保持特性。因為最大保持時間是在1 0- 3秒數量級,所以最小刷新頻率
的量級為
( 9 - 2 5 )
第9章存儲元件與陣列271
下載
放大器
圖9-55 DRAM單元中的讀操作
從而,刷新率為數千赫茲的量級。記住重要的一點,每一個單元必須周期地刷新,所以該電
路被設計為循環通過整個陣列。
現代計算機技術中的許多進展能夠回朔到R A M制造工藝的技術發展。因此,那是一個吸
引人的研究領域,即使你的興趣在其他方面。
9.9.3 ROM
C M O S技術為大量要制造的R O M電路作了準備。盡管它們歸屬于“只讀”器件,但允許
通過特別的電路技術輸入用戶數據。它們通常需要施加相當高的電壓電平來操作芯片。因為
該器件能被編程,有時稱它們為“主要讀”器件。
E P R O M
E P R O M是Erasable-Programmable ROM的首字母的縮寫詞。這種類型的器件允許用戶編
程(輸入數據)和擦除數據。
用一個高電壓傳送電荷到一個“浮動的”電容器,就實現了編程。電荷存儲在該電容器
上,在正常環境下不能逃逸。在這種器件里,把器件放在強烈的紫外線( U V)光源之下,能
夠實現擦除。電子吸收光子(光能包),使它們有能量運動返回半導體中。盡管它們從前是用
戶可編程R O M的主要類型,但已經被電可擦除可編程的器件所取代。
E2P R O M
這種存儲器是電可擦除的( E2),代替了E P R O M的U V技術。它有這樣的優勢,數據可以
使用電子電路擦除,不需要芯片物理地從系統移開。因為這個特性,它在現代數字系統設計
中非常流行。
在管腳上加一個高電壓,使電荷傳送到電容器面板,實現編程。要擦除單元,使電壓反
向,電荷向相反的方向移動。在一個基本陣列里,限制每次擦除一個單元。然而,更加新穎
的技術允許同時擦除大量的單元。這些器件稱為閃爍E P R O M,這里的“閃爍”是指整個陣列
可以擦除的速度。
9.10 傳輸門電路
在集成電路設計中,傳輸門能夠用來構建C M O S存儲器元件。它們非常有用,因為T G的
行為就像一個理想的開關,能夠斷開和閉合。在一個存儲電路的輸入端使用一個T G,允許以
T G控制機制來控制鎖存活動。
9.10.1 基本鎖存器
圖9 - 5 6表示了一個基本的鎖存器電路,它使用了兩個傳輸門T G 0和T G 1來控制數據
流;兩個反相器提供雙穩態存儲。該電路的操作由載入控制位L D和它的補
—L D實現。注意,
到傳輸門T G 0 和T G 1的控制信號是以相反的方式應用的;當一個T G閉合時,另一個斷
開。
為了理解該鎖存器的操作,讓我們首先分析L D = 1時的情況。T G 0斷開和T G 1閉合,如
圖9 - 5 7 a所示的條件。輸入數據位碼D能夠進入電路,使第二個反相器的輸出Q = D;這允許
我們載入(寫)一個數據位碼到該鎖存器。注意,只要L D = 1,該鎖存器就是貫通的,因為
輸出將跟蹤輸入的變化。保持條件是如圖9 - 5 7 b所示的L D = 0。斷開T G 0,它反過來阻擋了新
272 數字系統設計基礎教程
下載
數據的進入。傳輸門T G 1是一個閉合的開關,
產生雙穩態的交叉耦合的反相器電路,能夠維
持Q值。
基本的T G鎖存器歸屬于電平敏感的器件,
因為它在L D = 1時接受輸入。通過組合一個時
鐘信號?進入控制集,它能夠用作一個時鐘控制
的鎖存器。在圖9 - 5 8中,各處的L D(和
—L D)信
號已經用?(和-?)取代;這就使該鎖存器在時
鐘狀態? = 1時接受新的數據。
圖9-57 TG鎖存器操作
圖9-58 時鐘TG鎖存器電路
圖9-59 帶控制載入的時鐘鎖存器
第9章存儲元件與陣列273
下載
圖9-56 TG鎖存器電路
閉合斷開
斷開閉合
a) L D = 1 b) L D = 0(保持)
當? = 1時D認可
a) 電路圖解b) 時鐘
a) 電路b) 控制邏輯
圖9 - 5 9表示了另一種時鐘控制輸入的方法。在這種情況下,輸入傳輸門T G 0由復合信號
L D·?和
—L D·
-?
控制。僅當L D = 1且?= 1為真時,允許新數據輸入。從而,這種電路的行為類
似于如圖9 - 5 8中的時鐘方式,除了L D對數據流提供一個附加的控制之外。圖9 - 6 0的波形說明
了該電路時序的一個例子。總之,時鐘信號?(t)總是用作定時參考。在這種情況下,載入
信號L D僅在第一和第四個時鐘周期為高。從而,復合信號L D·?在此期間跟隨時鐘,在中間
的兩個時鐘周期為0。觀察結果是,該鎖存器將僅在第一和第四個周期接受數據。
圖9-60 帶載入控制的時鐘TG鎖存器的時序圖解
9.10.2 TG觸發器
一個主從觸發器能夠由級聯的兩個反相T G鎖存器構建,如圖9 - 6 1所示。第一個鎖存器
(第一級)作為主觸發器,第二個鎖存器(第二級)作為從觸發器。通過注意輸入傳輸門由反
相時鐘控制,可以看出這一點。當? = 0時,主觸發器有效并接受數據,而從觸發器的輸入需
要時鐘? = 1來容許新的信息。這在操作上與正邊沿敏感的D F F是相同的。通過簡單地交換時
鐘信號?和-?,可得到一個負邊沿敏感的D F F。該電路如圖9 - 6 2所示。
圖9-61 主從DFF電路
274 數字系統設計基礎教程
下載
[秒]
[秒]
[秒]
階段1 階段2
圖9-62 負邊沿主從DFF電路
9 . 11 問題
1. 下面的置位( S)和復位(R)信號應用到一個S R鎖存器。描繪出這個器件的輸出Q(t)
的草圖。
2. 下面的信號應用到圖9 - 1 0中的時鐘S R鎖存器。描繪出輸出Q(t)的草圖。
3. 下面所示的數據信號D(t)應用到一個正邊沿觸發D F F的輸入。描繪出這個器件的輸
出Q(t)的草圖。
第9章存儲元件與陣列275
下載
階段1 階段2
4. 對于D(t)應用到一個負邊沿觸發D F F的輸入,重做前一個問題。
5. 一個基于或非門的S R鎖存器的復位(R)輸入跳變為1,同時S = 0。畫出它發生時的電
路,并在每一個節點標注邏輯值( 0或者1)。
6. 考慮基于與非門的S R鎖存器。當S和R皆為0電平時,它的輸出是什么?它為什么為
“不使用”的情形?
7. 考慮一個8位移位寄存器,起初,其中有二進制字0 1 0 111 0 0。在下面的操作已經執行之
后,該寄存器的內容是什么?對于每一種情況,假設初始狀態由上面給出。
(a) SHR 2
(b) SHL 1
(c) ROL 3
(d) ROR 2
8. 一個8位移位寄存器,有十進制8 6的二進制等效值存儲于其中。在下面的操作已經執行
之后,該寄存器十進制的等效內容為多少?對于每一種情況,假設被賦予相同的初始狀態。
(a) SHR 1
(b) SHL 1
(c) SHR 2
(d) ROR 2
9. 一個1 6位寄存器包含0 x 4 A 3 5的二進制等效值。在下述操作已經執行之后,得出該寄存
器十進制的等效內容。對于每一種情況,假設被賦予相同的初始狀態。
(a) SHR 6
(b) SHR 3
(c) SHL 8
(d) SHL 16
10. 考慮圖9 - 3 7中的8×8 S R A M陣列。每一行的內容由下述列表給定:
行0:1010 1111
行1:1010 1111
行2:1010 1111
行3:1010 1111
行4:1010 1111
行5:1010 1111
行6:1010 1111
行7:1010 1111
當下述地址被應用到行譯碼器時,輸出的十進制值是多少?
(a) A2A1A0 = 101
(b) A2A1A0 = 011
(c) A2A1A0 = 100
(d) A2A1A0 = 11 0
11. 使用圖9 - 3 8中的示意圖作為一個基礎,畫出一個1 6×4 S R A M的方框圖。
12. 考慮圖9 - 3 9所示的6 4×8 S R A M。該器件將作為創建一個大小為6 4 b×3 2 b的大型存儲
276 數字系統設計基礎教程
下載
器陣列的基礎。構造這個大型存儲器的方框圖。
13. 考慮圖9 - 3 9所示的6 4×8 S R A M。你想要使用該器件來設計一個包含2 5 6個3 2 b i t字的存
儲器陣列。構造該存儲器陣列的方框圖。你可能考慮想要給每一個器件增加一個片選輸入C S,
控制每一芯片,使得C S = 0使該器件失效,而C S = 1使它有效,容許讀和寫數據。
14. 在最近的報紙或者計算機雜志上尋找計算機廣告,找到你所能夠找到的關于S R A M和
D R A M芯片或者模塊的最佳價格。然后,計算每種類型的每一b i t價格。這兩類存儲器在價格
上的百分比差異是多少?
15. 研究雜志或者報紙上的計算機廣告。你能夠找到多少種S R A M在個人計算機上的具體
應用?
16. 考慮3 b i t數據字b2b1b0。各位用于生成一個偶校驗位p。那么,有3 + 1 = 4位被存儲在存儲
器中。當從存儲器中讀數據時,我們得到下面所列的結果。判決該數據是否滿足奇偶校驗檢
查,或者存在一個錯誤。
(a) p b 2b1b0= 0111
(b) p b 2b1b0= 11 0 1
(c) p b 2b1b0= 0100
(d) p b 2b1b0= 11 0 1
(e) p b 2b1b0= 0000
17. 假設我們想要在一個緊湊盤片的表面上存儲1 0 2 4個1 6 b i t數據字。實際上,在該盤的信
息表面上將要存儲多少位?
18. CD ROM強有力的糾錯能力是通過記錄包含足夠信息的大量數據來重構任何錯誤的輸
出而獲得的。因為這不是用戶可存取的數據,所以稱之為開銷,它減少了有用存儲的數量。
C D上的信息被劃分為一些數據塊,使目錄簡單化。每一塊包含2 3 5 2個字節,其中2 0 4 8個
字節是真實的數據。一張標準C D可能的最長“播放時間”是7 4分鐘,對應于3 3 3 , 0 0 0個塊。
(a) 對于7 4分鐘的播放時間,計算用戶字節的總量。
(b) 開銷占全部存儲數據的百分之多少?
(c) 如果播放時間減少到6 0分鐘,可利用的用戶字節為多少?
(該C D在存儲和播放時間之間存在線性關系。)
19. 一個數據傳輸系統的B E R確定為1 0-1 0。假設該系統以每秒1 0 0 M b的速率傳輸數據。該
系統能夠傳輸數據而不發生錯誤的平均時間是多少?在真實世界環境中,我們怎樣才能克服
該問題?
20. 考慮一個處于保持狀態的動態R A M(D R A M)單元。它的存儲電容的值為CS=6 0 f F,
而漏電流估計為IL= 0 . 2 p A。對于邏輯1狀態,電壓特性已知為V1= 3V,Vm i n=1 . 2 V。求出該單元
的保持時間。
21. 一個動態R A M(D R A M)單元的存儲電容為CS=5 5 F,漏電流估計為IL= 0 . 1 4 p A。該電
容器上的最大電壓為V1=3 V,最小邏輯1的電壓為Vm i n=1 V。
(a) 該單元能夠保持邏輯0狀態多久?
(b) 邏輯1狀態的保持時間為多少?
22. DRAM中的軟錯誤是這樣的情形,一個a粒子撞擊硅,導致電荷的流動。這能夠改變
該單元的內容。你能否想起一個D R A M環境,在那里,它可能是特別的重要?
第9章存儲元件與陣列277
下載
總結
                            
                        - 上一篇: 汽车网络安全对抗赛
 - 下一篇: 程序员必看之文章(转)