思路定下來之後,呂辰開始動筆寫方案。
他在稿紙上寫下第一行字:《微程式輔助程式設計機——總體構想與實施方案》
他決定圖文並茂,要把這個想法變成能讓別人看懂、能讓協作單位認可、能分給各組去實現的“總體方案”,光有文字描述不夠直觀,得配圖。
畫圖不是他的長項。
他畫個示意圖、畫個邏輯框圖還湊合,但要畫得像說明書一樣一目瞭然,讓人一看就懂,那得有點美術功底。
呂辰起身來到左附樓二層,這裡是第八小組的辦公區域。
第八組有幾個美術功底好的研究員,算是畫版圖、畫示意圖的擔當。
呂辰到第八組的時候,正好有三人正趴在桌上畫圖。
領頭的是個戴眼鏡的年輕人,叫周建國,去年從工業學院畢業招進來的,素描底子不錯,人也踏實。
“建國。”呂辰站在門口敲了敲門框。
周建國抬起頭,看見是他,趕緊站起來:“呂師兄?您怎麼來了?”
呂辰走進去,在他旁邊坐下:“有個活兒,得請你們幫個忙。”
他把自己的想法說了一遍。
三張圖。
第一張,要畫出現狀的困境,“人海戰術”編微程式,又慢又容易錯。
第二張,要畫出解決方案,程式設計機的系統架構,從輸入到處理到輸出,一層一層畫清楚。
第三張,要畫出技術路線,分三步走,甚麼時候做到甚麼程度。
周建國聽完,眼睛亮了:“這個有意思。”
他招呼另外兩個人過來,聽呂辰描述。
“第一張圖,我想做個對比。左邊畫一個人趴在桌上,對著一堆紙和累得半死。右邊畫崑崙機的規模預估,上千塊晶片、上萬條微指令。讓人一看就明白,用手工編微程式,是死路一條。”
周建國點點頭,拿起鉛筆在紙上勾了個輪廓。
“這個人,要畫得憔悴一點,頭髮亂一點,桌上堆滿稿紙。旁邊標一行字:手工編寫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。以後做更大的機器,也可以用同樣的思路,鍵盤輸入,螢幕顯示,儲存儲存,自動輸出。”
夏先生點點頭,沒說話,又拿起那四張圖,一張一張看了一遍。
看完,夏先生拿起筆,在方案的扉頁上寫了一行字:“同意按此方案啟動程式設計機研製。夏,”
寫完,他放下筆,看著呂辰。
“小呂,這個方案很好,我同意了,你先回去,我們把這份方案再研討一下。把協作單位的任務分解出來。下週一開個會,把這個事定下來,任務分配出去。”
呂辰站起來,深深鞠了一躬:“謝謝夏先生。”
夏先生擺擺手:“去吧。”
呂辰走出計算所的大門,站在臺階上,看著外面漫天飛舞的楊絮。
他想起夏先生剛才那句話:“像寫文章一樣寫程式。”
這個念頭,在後世,是再普通不過的事。
隨便一個程式設計師,坐在電腦前面,敲鍵盤,寫程式碼,編譯,執行,天經地義。
但在這個年代,在這個連計算機都是用電子管和電晶體堆出來的年代,在這個程式都是用二進位制手寫、用紙帶手輸的年代,這個念頭,是革命性的。