小服務員給弄來的這套漁相當有檔次。
用一應俱全:釣竿、水兜、魚簍、小笊籬、魚餌……
居然還有個小摺疊凳。
江寒謝過小服務員,拿著這些東西,來到中央魚塘。
在岸邊選了個沒人的地方,架好魚竿,就開始閉目養神。
當然,其實是進了虛擬空間。
閒著也是閒著,不如做點事。
上次做的算數邏輯單元,還有幾個地方,必須完善一下。
比如,其中的加法部分,當時並沒有考慮執行效率的問題。
當進位從低位向高位,逐一傳遞時,可能會產生很高的延遲。
江寒通過看書,找到了一種解決方案。
這種被稱爲“進位預測(carry look-ahead)”的技,通過特殊設計的邏輯電路,能有效地緩解進位延遲問題。
江寒按照資料中的講解,將原本的ALU改造了一下。
測試後,效果還算令人滿意。
附帶一提,這個ALU並沒有實現乘除法和浮點運算。
並不是不需要,而是如果一切都用件來實現,電路會過於複雜。
ALU是和作系統搭配工作的,一個計算機系統能做多事,由二者共同決定。
在設計ALU時,件上需要實現多種功能和作指令,本質上是個價比問題。
如果爲了能,應該儘可能用件來實現所有的算數運算和邏輯運算。
但這樣做,本太高昂了。
江寒權衡再三後,決定現階段只實現基本的算數和邏輯,剩下的部分給作系統,用件的方式解決。
接下來,江寒打算實現一個存儲系統。
計算機不僅要能做計算,還應該能據需要,存儲、讀取數據。
щщщ★ тт kǎn★ Сo
計算機中的數據,都是以二進制來存儲的。
其中比較特別的,是機指令代碼。
其實,在馮諾依曼系中,指令也被看做一種數據,特殊的、可執行的數據。
這也就是存儲程序的概念……
計算機中的存儲單元,無論是寄存,還是部存儲,通常都是由時序電路組的。
時序電路的實現,其實並不算特別複雜,本質上就是個週期電信號的理。
但如果考慮到同步、時鐘、反饋等一系列問題,就稍微有點麻煩了。
江寒照舊將大任務分解小模快,,然後從最基本的地方手。
首先,要實現一個“發”。
如果說ALU的基本部件是“與非門”,那麼時序單元的基本部件,就是“發”。
工程實踐中,“發”有多種設計方案。
江寒選用的,是最常用的,也是比較簡單的“D發”(Data Flip-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寄存。
這樣才能將互相獨立的一系列件,同步一個協調、統一的整系統。
江寒耗費了一點腦細胞後,終於將“二進制單元”搞定。
接下來,就可以大展拳腳了。
只要做出一個二進制單元,就能很容易地做出n位寄存。
只要將n個一模一樣的二進制單元,有機地組織在一起,就能構建出n個“比特門”。
然後將此寄存的load信號,賦予每個“比特門”,就可以批量存取數據了。
通常用8個“比特門”,來實現一個字節的數據存取。
若干個字節組織在一起,又可以構任意位寬的寄存。
比如江寒打算實現的,就是一個由4個字節組的32位寄存。
每個寄存存儲的位寬,也“字長”,若干個寄存組織在一起,就形了“寄存組”。
江寒設計的寄存組,由8個32位寄存組。
接下來,是“存儲塊”,也就是俗稱存的RAM(隨機讀寫存儲)。
這種存在設計上,要求不管存儲單元的理位置在哪裡,ALU都能花費基本相同的時間,直接訪問。
設計的時候,先給RAM的每個記憶單元,分配一個地址,然後構建一個由N個寄存組的陣列。
再構建一個邏輯門,使其通過地址訪問到對應的記憶單元……
典型的RAM接三種輸值:數據、地址和加載位。
RAM設計起來不容易,但實現起來意外的簡單。
江寒先做出了一個字節的RAM,然後將其與空白圖紙一起賣掉。
得到圖紙後,就利用自搭建功能,批量生產出大量“字節存儲單元”。
接下來,就可以組裝出任意規模的存儲陣列了。
江寒組裝了一個8個字節的存儲陣列,稱之爲RAM8,然後將其再次轉換圖紙。
接下來,製作8組RAM8陣列,設計配套的電路,將其組合在一起,就了RAM64。
重複上述過程,就打造出了RAM512、RAM4K、RAM16K、RAM64K……
“我去,這麼貴?”
前面還好,從4kb存開始,自構建功能的附加收費,就超過了元件本的價格了。
但爲了節省時間,消滅錯誤率,還是得使用這個自構建功能。
浪費點積分也是值得的。
反正積分來的容易,萬一不夠了,再多做幾臺無線電發也就是了……
靈氣復甦百年之後。天地開啓了新紀元。新紀元人類吸收復蘇在天地間的靈氣,形成靈氣職業。與此同時星球本土的動植物也在進行著進化,野性返祖,靈性變異。林遠發現自己能讓靈物無限進化,不斷提純血脈,從此星網上一家靈物進化小店風生水起的開了起來。林遠:沒有什麼是我給你進貨解決不了的,如果有就給你多進一點。這是一本純粹的寵
這是一個會讓你感覺輕鬆溫暖的故事,在尋易走黴運的時候你會覺得他活該,在他走好運的時候你也會覺得他活該。喜歡溫馨故事的朋友來陪著尋易一起追美女師尊吧!
被閃電擊中,卻得到八百年的修仙記憶,且看淪為廢物的葉塵,如何逆襲人生!