一碗酸梅湯 作品

第144章 時序邏輯電路和寄存器

    工程實踐中,“觸發器”有多種設計方案。

    江寒選用的,是最常用的,也是比較簡單的“d觸發器”(dataflip-flop),簡稱dff。

    此類“觸發器”通常包括4個“與非門”,並提供1個輸入管腳,一個輸出管腳,通過“反饋迴路”來連接基本的邏輯門。

    大多數計算機系統裡,都是採用振盪器來實現時鐘信號。

    用連續的交變信號序列,來表示時間流逝。

    所謂交變,就是電信號從高到低,在從低到高,反覆循環。

    用數字來表示,就是0-1-0-1-0-1……

    每兩個波峰之間的間隔,稱之為1個“時鐘週期”。

    現代個人電子計算機的時鐘頻率,通常高達每秒鐘幾十、幾百甚至幾千兆赫!

    計算機系統通過時序信號,來整體協調各個部件的運行。

    “觸發器”根據主時鐘信號的連續交變,將前一個時鐘週期的輸入,當做當前時鐘週期的輸出。

    這個過程可以用out(t)=in(t-1)來描述。

    江寒用4個與非門打造出d觸發器後,又在其基礎上實現了“二進制存儲單元”。

    這是隻能存取、記憶1個二進制位的小裝置。

    包括一個輸入、一個輸出,和一個負責寫操作的load接口。

    別看它小,可是構成寄存器和內存陣列的基本結構。

    根據out(t)=in(t-1)的設計需求,d觸發器的輸出必須反饋到輸入。

    但簡單的將輸出信號傳送給輸入端,肯定是行不通的。

    必須通過合理的設計,才能讓其正確工作。

    比如加裝一個“多路轉換器”,用它的“選擇位”作為寄存器的“加載位”……

    d觸發器的設計,保證了輸出變化僅發生在兩個時鐘週期之間的切換點上,而不會發生在時鐘週期內部。

    這樣,即使時序邏輯電路在時鐘週期內出現不穩定,也不會影響輸出的準確性。

    只需要保證在下一個時鐘週期開始時,輸出準確無誤的數值就可以了。

    這種“離散化”的特性,對於保證計算機系統的同步協調十分重要。

    比如,要讓alu計算兩個數a與b的和。

    假設a所在的ram寄存器,距離alu很近,而b所在的ram寄存器,距離alu較遠。

    由於物理條件的限制,比如電阻、干擾、信號噪聲或者其他隨機因素,a、b信號也許無法同步到達alu。

    為了不讓運算結果出錯,就要保證:在一個時鐘週期內,alu輸出的結果,能到達最遠的ram寄存器。