一碗酸梅湯 作品

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

    小服務員給弄來的這套漁具相當有檔次。

    用具一應俱全:釣竿、水兜、魚簍、小笊籬、魚餌……

    居然還有個小摺疊凳。

    江寒謝過小服務員,拿著這些東西,來到中央魚塘處。

    在岸邊選了個沒人的地方,架好魚竿,就開始閉目養神。

    當然,其實是進入了虛擬空間。

    閒著也是閒著,不如做點事情。

    上次做的算數邏輯單元,還有幾個地方,必須完善一下。

    比如,其中的加法器部分,當時並沒有考慮執行效率的問題。

    當進位從低位向高位,逐一傳遞時,可能會產生很高的延遲。

    江寒通過看書,找到了一種解決方案。

    這種被稱為“進位預測(carrylook-ahead)”的技術,通過特殊設計的邏輯電路,能有效地緩解進位延遲問題。

    江寒按照資料中的講解,將原本的alu改造了一下。

    測試後,效果還算令人滿意。

    附帶一提,這個alu並沒有實現乘除法和浮點運算。

    並不是不需要,而是如果一切都用硬件來實現,電路會過於複雜。

    alu是和操作系統搭配工作的,一個計算機系統能做多少事情,由二者共同決定。

    在設計alu時,硬件上需要實現多少種功能和操作指令,本質上是個性價比問題。

    如果為了性能,應該儘可能用硬件來實現所有的算數運算和邏輯運算。

    但這樣做,成本太高昂了。

    江寒權衡再三後,決定現階段只實現基本的算數和邏輯,剩下的部分交給操作系統,用軟件的方式解決。

    接下來,江寒打算實現一個存儲系統。

    計算機不僅要能做計算,還應該能根據需要,存儲、讀取數據。

    計算機中的數據,都是以二進制來存儲的。

    其中比較特別的,是機器指令代碼。

    其實,在馮諾依曼體系中,指令也被看做一種數據,特殊的、可執行的數據。

    這也就是存儲程序的概念……

    計算機中的存儲單元,無論是寄存器,還是內部存儲器,通常都是由時序電路組成的。

    時序電路的實現,其實並不算特別複雜,本質上就是個週期性電信號的處理。

    但如果考慮到同步、時鐘、反饋等一系列問題,就稍微有點麻煩了。

    江寒照舊將大任務分解成小模快,,然後從最基本的地方入手。

    首先,要實現一個“觸發器”。

    如果說alu的基本部件是“與非門”,那麼時序單元的基本部件,就是“觸發器”。