首頁 分類 排行榜 閱讀記錄 我的書架
第478章 像寫文章一樣寫程式

思路定下來之後,呂辰開始動筆寫方案。

他在稿紙上寫下第一行字:《微程式輔助程式設計機——總體構想與實施方案》

他決定圖文並茂,要把這個想法變成能讓別人看懂、能讓協作單位認可、能分給各組去實現的“總體方案”,光有文字描述不夠直觀,得配圖。

畫圖不是他的長項。

他畫個示意圖、畫個邏輯框圖還湊合,但要畫得像說明書一樣一目瞭然,讓人一看就懂,那得有點美術功底。

呂辰起身來到左附樓二層,這裡是第八小組的辦公區域。

第八組有幾個美術功底好的研究員,算是畫版圖、畫示意圖的擔當。

呂辰到第八組的時候,正好有三人正趴在桌上畫圖。

領頭的是個戴眼鏡的年輕人,叫周建國,去年從工業學院畢業招進來的,素描底子不錯,人也踏實。

“建國。”呂辰站在門口敲了敲門框。

周建國抬起頭,看見是他,趕緊站起來:“呂師兄?您怎麼來了?”

呂辰走進去,在他旁邊坐下:“有個活兒,得請你們幫個忙。”

他把自己的想法說了一遍。

三張圖。

第一張,要畫出現狀的困境,“人海戰術”編微程式,又慢又容易錯。

第二張,要畫出解決方案,程式設計機的系統架構,從輸入到處理到輸出,一層一層畫清楚。

第三張,要畫出技術路線,分三步走,甚麼時候做到甚麼程度。

周建國聽完,眼睛亮了:“這個有意思。”

他招呼另外兩個人過來,聽呂辰描述。

“第一張圖,我想做個對比。左邊畫一個人趴在桌上,對著一堆紙和累得半死。右邊畫崑崙機的規模預估,上千塊晶片、上萬條微指令。讓人一看就明白,用手工編微程式,是死路一條。”

周建國點點頭,拿起鉛筆在紙上勾了個輪廓。

“這個人,要畫得憔悴一點,頭髮亂一點,桌上堆滿稿紙。旁邊標一行字:手工編寫1000條微指令,平均出錯率17%,查錯耗時——無法估算。”

“右邊畫一個機櫃,上面標著‘崑崙機規模預估’,旁邊寫:上千塊晶片,上萬條微指令。”

呂辰看了看,覺得差不多了,又說:“下面再加一行紅字,我們需要一支‘筆’,而不是一把‘鏟子’。”

周建國抬頭看他:“筆?鏟子?”

“對。”呂辰說,“用手挖土,累死也挖不了多少。用鏟子,效率翻倍。但咱們要的不是鏟子,是筆能寫程式的筆。”

周建國若有所思地點點頭,在圖紙下方加了一行紅字。

第二張圖是重頭戲。

呂辰把自己腦子裡那套架構畫成草圖:從上到下,輸入層、處理層、輸出層,還有底層的支撐系統。

“輸入層,一個鍵盤。”他指著草圖,“操作員直接敲助記符,比如LDA、STA,不用記0101。”

“處理層,微程式編輯核心。這是整個系統的大腦,用HX-2的晶片擴充套件來做。它幹三件事:一是把敲進去的助記符翻譯成二進位制;二是送到顯示驅動,讓工程師能看見自己敲的是甚麼;三是送到儲存管理,存在可讀寫的儲存晶片裡。”

“輸出層,二維卡編碼介面,連到制卡機。工程師確認無誤後,按一下鍵,制卡機自動把二進位制資料打成二維卡上的孔。”

“最下面,系統監控程式,固化在ROM裡。開機就載入,負責管理整個系統的執行。”

周建國一邊聽一邊畫,鉛筆在紙上沙沙作響。

畫完草圖,他抬起頭:“呂師兄,這個架構,有點像……有點像一臺小計算機?”

呂辰笑了笑:“對,就是一臺專用的計算機。”

周建國愣了愣,然後低下頭繼續畫,沒再問。

第三張圖是技術路線圖。

呂辰把時間節點標出來:第一步,1-2個月,做出原型機。只支援最基本的編輯,輸入、修改、刪除,能輸出到二維卡就行。

第二步,3-4個月,完善編輯功能。增加語法檢查、自動查錯,讓工程師程式設計序的時候能少犯錯。

第三步,年底前,與崑崙-0驗證機聯調。用這臺程式設計機,寫出崑崙-0的第一個測試程式。

周建國把這三個步驟畫成三個臺階,臺階上標著時間和目標,臺階下面畫著崑崙-0的輪廓,寓意“一步一步走向崑崙”。

三張圖,畫了三天。

周建國三個人確實下了功夫。

第一張圖左邊那個“憔悴的程式設計師”,頭髮真是一根一根畫的,眼睛裡畫著紅血絲,桌上的稿紙堆得像小山。

右邊那個“崑崙機規模預估”,晶片一塊一塊畫出來,密密麻麻,看著就讓人頭皮發緊。

第二張圖更細。鍵盤的按鍵都畫出來了,雖然只是示意,但每個鍵的位置都標得清清楚楚。

處理層那個方塊裡,還畫了幾個小方塊,代表“翻譯模組”、“顯示驅動模組”、“儲存管理模組”,讓人一看就知道里面分了幾個部分。

第三張圖簡潔有力。三個臺階,一步一步往上走,每一步都有明確的目標。

最上面那個臺階旁邊,畫著崑崙-0的輪廓,寓意“終點”。

呂辰看著這三張圖,心裡踏實了不少。

有圖,有文,這方案拿出去,協作單位拿到手,一眼就知道自己要做甚麼、做到甚麼程度、甚麼時候做完。

但還差一樣東西,這臺程式設計機,長甚麼樣?

呂辰腦子裡有畫面,但他畫不出來。

鍵盤多大?熒光管顯示矩陣怎麼排列?主機箱甚麼形狀?二維卡制卡機放在左邊還是右邊?連起來的整體是個甚麼樣子?

這些,得找人畫。

呂辰想了想,拿著三張草圖出了門。

來到驚雷專案組所在的車間。

衛兵正檢視著他的紅證,正好碰見謝凱從裡出來,手裡拿著一沓圖紙。

“呂辰,你來這裡幹甚麼?”謝凱打招呼。

呂辰把三張草圖遞過去:“謝師兄,你來的正好,幫我畫個東西。”

謝凱接過來,一張一張翻。

翻到第二張的時候,他停住了,抬起頭看著呂辰:“這是……程式設計機,落到你手裡了?”

“對。”呂辰說,“所裡就要最閒,宋教授分配給了我,寫了總體方案,畫了系統架構圖,但物理形態還沒畫出來。你幫我畫一下鍵盤、主機箱、顯示矩陣、制卡機,整體是個甚麼樣子。”

謝凱沒說話,繼續往下翻。

翻完第三張,他把圖紙還給呂辰,說:“走吧,去我那兒。”

來到謝凱辦公室,謝凱在桌前坐下,拿起鉛筆:“說吧,甚麼樣?”

呂辰在他旁邊坐下,開始描述。

“鍵盤,是一個長方型,要有字母鍵,至少26個,加上數字鍵、功能鍵,總共六七十個鍵。排列方式,可以參考英文打字機Q、W、E、R、T、Y這樣一排一排排下來。”

謝凱在紙上畫了個草圖,標出鍵位。

“顯示部分,”呂辰繼續說,“是一個矩形的熒光管陣列。一排能顯示24個字元。每個字元,用七段數碼管那種思路,但要有字元發生器,能顯示字母和符號。”

謝凱在旁邊畫了一個長條方塊,方塊裡畫了24*8個小方塊,代表每個字元的位置。

“主機箱單獨做,”呂辰指著第二張圖,“裡面分幾個模組,電源模組、主控板、儲存板、介面板。模組化設計,方便維修和升級。”

謝凱在鍵盤後面加了一個方塊,方塊裡畫了幾個小格子,代表模組。

“二維卡制卡機,”呂辰說,“放在主機箱旁邊,能自動把資料打成二維卡。”

謝凱在主機箱右邊畫了一個小方塊,方塊下面畫了一個出口,出口處畫了一張卡片的一半,代表“正在出卡”。

謝凱畫完草圖,抬起頭:“還有嗎?”

呂辰道:“暫時就這些。”

謝凱換了一張紙,開始畫。

他畫得很快,鉛筆在紙上刷刷刷地走,線條流暢,比例精準。

先是鍵盤,一個一個鍵位畫出來,鍵帽上標著字母和數字。

然後是顯示矩陣,一排24個字元位,每個字元位裡畫了一個“8”字輪廓,代表能顯示任何字元。

再是主機箱,方方正正,前面板上畫了幾個指示燈,側面畫了散熱孔。

最後是制卡機,放在主機箱右邊,和主機箱連在一起,前面有一個出卡口,出卡口下面畫了一個接卡的小托盤。

畫完這些,謝凱開始畫連線線。

鍵盤連著主機箱,顯示矩陣也連著主機箱,制卡機同樣連著主機箱。

線畫得整整齊齊,該拐彎拐彎,該標註標註。

然後,他開始畫使用場景。

一個人坐在桌子前面,雙手放在鍵盤上,眼睛看著顯示矩陣。

桌子上擺著這臺程式設計機,旁邊還放著一沓稿紙。

桌子對面,是一臺崑崙-0驗證機的輪廓,暗示著“用程式設計機編出來的程式,去驅動崑崙-0”。

最後,謝凱畫了一個區域性放大圖,主控電路板。

板上畫了幾個方塊,標著“電源”、“主控”、“儲存”、“介面”。

方塊之間用線條連著,線條旁邊標著“資料匯流排”、“地址匯流排”、“控制匯流排”。

整張圖,從整體到區域性,從外觀到內部,清清楚楚,一目瞭然。

呂辰看著那張圖,半天沒說話。

謝凱把鉛筆放下,揉了揉手腕:“行嗎?”

呂辰點點頭:“行。太行了。”

他指著那張圖:“你看,電源、主控、儲存、介面,模組化設計。哪個模組壞了,換哪個。哪個模組要升級,換哪個。以後技術發展了,主控晶片可以換更好的,儲存晶片可以換更大的,介面可以換更快的,但整體架構不用動。”

謝凱點點頭:“這就是你常說的‘可擴充套件性’?”

“對。”呂辰說,“這套架構,不只是為了這臺程式設計機。以後做別的專用裝置,也可以用這個思路,模組化、標準化、可擴充套件。”

他把謝凱畫的圖收起來,和那三張草圖放在一起。

四張圖,一張現狀困境,一張系統架構,一張技術路線,一張物理形態。

再加兩萬字的總體方案,這套東西,拿出去,應該能說服人了。

第二天一早,呂辰帶著這四張圖和厚厚一沓方案,騎著車去了中科院計算所。

呂辰一路躲著漫天的楊絮,到計算所門口的時候,頭髮上、肩膀上落了一層白毛毛。

他把車停好,撣了撣衣服,拎著檔案袋往裡走。

夏先生的辦公室在二樓東頭,門半掩著。

呂辰敲了敲門,裡面傳來一聲:“進來。”

他推門進去,夏先生正坐在辦公桌前看檔案,眼鏡後面的眼睛微微眯著。

“夏先生。”呂辰站在門口,微微鞠了一躬,“打擾您了,我來彙報程式設計機的初步構想。”

夏先生抬起頭,放下手裡的檔案,摘下眼鏡。

“小呂?坐。”

呂辰在他對面坐下,把檔案袋開啟,取出方案放在桌上,特別把那四張圖,一張一張攤在桌上。

夏先生看了一眼:“你自己畫的?”

呂辰道:“我做了方案,覺得不方便閱讀,請謝凱畫了這個外觀圖,其餘三張是所裡會畫圖的同事畫的。”

夏先生點點頭,拿起第一張圖。

他看得很慢,從左邊那個“憔悴的程式設計師”看到右邊那行“上千塊晶片,上萬條微指令”,最後目光落在那行紅字上。

“我們需要一支‘筆’,而不是一把‘鏟子’。”他念了一遍,然後抬起頭看著呂辰,“這個比喻,有意思。”

他放下第一張,拿起第二張。

這張他看得更仔細,從頂層的“鍵盤”看到底層的“系統監控程式”,每一個方塊、每一個箭頭都看了一遍。

看完,他問:“這個‘微程式編輯核心’,用HX-2的晶片擴充套件來做?”

“對。”呂辰說,“HX-2的架構有擴充套件餘地,加一些指令,加一些外設介面,應該能跑起來。”

“儲存呢?”

“用儲存晶片。一片不夠就多片拼,總能拼出需要的容量。”

夏先生點點頭,繼續往下看。

第三張圖,技術路線圖,三步走,每一步的時間節點、目標、成果,清清楚楚。

第四張圖,物理形態圖。

鍵盤、顯示矩陣、主機箱、制卡機,還有使用場景、內部模組、電路板佈局,一目瞭然。

夏先生把四張圖都看完了,然後拿起那沓方案,翻了翻。

翻到第二頁的時候,他停下,問:“你說‘鍵盤’是像打字機那樣輸入?”

呂辰點點頭:“對。工程師不用記直接敲助記符,如LDA、STA、ADD、SUB等,機器自動翻譯成二進位制。”

“這個‘編輯器軟體’,是固化在晶片裡的翻譯程式?”

“對。開機就載入,一直執行。工程師敲甚麼,它實時翻譯成二進位制,顯示在螢幕上。敲錯了可以刪,可以改。”

“這個‘顯示器’,是帶字元發生器的熒光管?”

“對。24個字元一排,每個字元用七段數碼管那種思路,但能顯示字母和符號。”

……

夏先生仔細的閱讀寫方案,一連讀一邊問,呂辰也是儘可能用夏先生熟悉的語言進行著講解。

讀完後,夏先生然後放下方案,看著呂辰。

“小呂,你這個東西,本質上是一臺專用的計算機啊。”

呂辰點點頭:“是的,夏先生。它就是一臺專用計算機。”

夏先生沉默了幾秒,然後笑了。

“好。”他說,“好。”

他看著呂辰:“你剛才說,‘鍵盤’像打字機那樣輸入,‘顯示器’能看見自己敲了甚麼,‘儲存’能把程式存下來,‘翻譯程式’能自動把助記符轉成二進位制,‘制卡機’能自動把資料打成二維卡。你知道這意味著甚麼嗎?”

呂辰沒說話。

夏先生拿起那張外觀圖。

“這意味著,以後搞計算機的人,可以坐在這臺機器前面,像寫文章一樣寫程式。寫完了,不用手輸二進位制,不用手打紙帶,按一下鍵,卡片就出來了。”

他頓了頓:“我搞計算機這麼多年,最怕的就是‘手寫程式碼’。幾百條指令,手寫,手輸,手查錯,出一點錯就全廢。你這一套,把這三個‘手’全省了。”

呂辰說:“夏先生,這套東西,不只是為了崑崙-0。以後做更大的機器,也可以用同樣的思路,鍵盤輸入,螢幕顯示,儲存儲存,自動輸出。”

夏先生點點頭,沒說話,又拿起那四張圖,一張一張看了一遍。

看完,夏先生拿起筆,在方案的扉頁上寫了一行字:“同意按此方案啟動程式設計機研製。夏,”

寫完,他放下筆,看著呂辰。

“小呂,這個方案很好,我同意了,你先回去,我們把這份方案再研討一下。把協作單位的任務分解出來。下週一開個會,把這個事定下來,任務分配出去。”

呂辰站起來,深深鞠了一躬:“謝謝夏先生。”

夏先生擺擺手:“去吧。”

呂辰走出計算所的大門,站在臺階上,看著外面漫天飛舞的楊絮。

他想起夏先生剛才那句話:“像寫文章一樣寫程式。”

這個念頭,在後世,是再普通不過的事。

隨便一個程式設計師,坐在電腦前面,敲鍵盤,寫程式碼,編譯,執行,天經地義。

但在這個年代,在這個連計算機都是用電子管和電晶體堆出來的年代,在這個程式都是用二進位制手寫、用紙帶手輸的年代,這個念頭,是革命性的。

A−
A+
護眼
目錄