背景:
字級:小標準大特大 行距:緊湊標準寬鬆超寬

第199章 運算測試透過,準備編寫程式

  何建軍蹲在機箱前,將三塊電源板逐一滑入卡槽,擰緊螺絲,他從工具箱裡抽出一卷粗號漆包線,把接地端子串聯起來,焊接到機箱底部的銅排上。

  【寫到這裡我希望讀者記一下我們域名 天天看小說超順暢,𝚝𝚝𝚔𝚊𝚑.𝚝𝚠隨時看 】

  他拿出萬用表,挨個量了一遍接地電阻,確認每個端子的阻值都在規定範圍之內。

  「電源就位。」

  「王德明,運算器板上架。」

  王德明把第一塊運算器電路板推進卡槽,手指卡住板子的邊緣稍微晃了晃,確認接外掛咬合到位。

  他擰緊四顆固定螺絲。

  每顆正好三圈半。

  多一圈板子可能翹曲,少半圈執行時可能因振動接觸不良,王德明擰的不快,但每一顆都嚴格按規程來。

  六塊板子依次就位後,他從工具箱裡取出萬用表,開始測量板間聯結器的對應管腳。

  「第二板到第三板進位線……通,第三板到第四板資料匯流排……通。」

  他一邊測量一邊念出結果。

  旁邊的李明遠在記錄表上逐項打鉤,六塊板子之間一共四十多個管腳需要逐一測通,李明遠的記錄表寫滿了兩頁紙。

  第三天的工作是安裝儲存器。

  張國平跪在地上,一塊一塊的把穿好的子陣列放進儲存器框架,每兩塊之間隔上一層薄銅板做遮蔽,十六塊子陣列加上十五層銅板疊起來有半尺多厚,他托著框架的手臂始終保持平穩。

  全部安裝到位才直起身子。

  他長出一口氣,後背的工裝已經被汗浸透了,活動了一下發僵的手腕,又趴下去檢查了一遍框架底部的固定螺栓。

  前三天都是機械裝配。

  麻煩從第四天才真正開始。

  這一天要進行整機聯調,陳序年接通電源,在撥碼開關上輸入了一條最簡單的指令,把儲存地址0000的內容裝入累加器。

  他按下執行鍵。

  控制面板上指示燈依次閃爍,取指、解碼、取數,到取數這一步,累加器的十六盞燈全部暗著。

  「儲存器沒讀出來。」

  王德明湊過來看面板。

  張國平蹲到儲存器框架旁邊,拿示波器探頭搭在驅動線上,螢幕上出現鋸齒狀的脈衝波形。

  「驅動電流不夠,波形前沿上升太慢,磁芯還沒翻轉過來脈衝就結束了。」

  陳序年先排除了電源問題。

  又讓張國平量了第一塊子陣列的驅動管基極偏置電阻。

  四百七十歐。

  「改三百三十歐試試。」

  張國平用烙鐵拆掉原來的電阻,換上新的三百三十歐電阻,焊好之後吹了吹焊點上的松香菸氣,再按執行鍵,示波器上的驅動脈衝前沿陡了不少。

  累加器面板上亮了燈。

  0000地址的內容被正確讀出。

  但這只是十六塊里的第一塊。

  接下來五天,張國平和王德明把十六塊子陣列的驅動引數逐一微調,每塊磁芯的特性有細微差異,驅動電流大了干擾相鄰磁芯,小了讀不出來。

  有時候調好了一塊。

  旁邊那塊又出毛病。

  來回反覆的折騰。

  期間燒了十一隻驅動電晶體。

  每燒一隻,方培生就從備品箱裡遞一隻新的,臉上的表情從肉疼變成麻木。

  「幸好孫工多備了三倍。」

  方培生把第十一隻燒毀的管子扔進廢品筐。

  十六塊全部調通後,陳序年開始測運算器和控制器的配合,加法、減法、邏輯與或、移位、條件跳轉,前十條全對。

  到第十一條出了問題。

  那是一條儲存器間接定址指令,先從一個地址取出另一個地址,再從新地址取出資料,兩次訪存之間,累加器的值莫名其妙的變了。

  重複十次,六次對,四次錯。

  「時序競爭。」

  陳序年盯著面板上閃爍的燈。

  「兩次訪存之間有一個時鐘周期的空隙,累加器鎖存訊號和儲存器選通訊號出現了重疊。」

  王德明拿示波器接上兩路訊號,兩個波形疊在一起看,果然有一小段重疊區間,兩個訊號同時有效,累加器在不該被寫入的時候被灌了垃圾資料。

  「改兩相非重疊時鐘。」

  王德明自己提出了方案。

  「把一個時鐘周期分成兩個不重疊的相位,奇數相干訪存,偶數相干運算,兩個相之間留出安全間隔。」

  陳序年看了他一眼。

  這方案他畫總體框圖的時候就考慮過,當時為了簡化選了單相時鐘,王德明能在除錯中自己摸到這個點,說明他不是照貓畫虎。

  「你畫電路,何建軍改振盪器和分頻器。」

  陳序年拍板。

  改造花了四天。

  拆舊電路,焊新電路,重新布線,調整各級閘電路的訊號接入相位,王德明畫的電路圖改了三版,前兩版在搭試驗板的時候發現訊號走線太長會引入雜散電容。

  第三版重新調整了布局才過關。

  換上兩相時鐘後,間接定址指令連續測一百次,全對。

  但陳序年沒有放鬆。

  他又跑了兩百條隨機指令序列,在第一百七十三條時又錯了,條件跳轉在特定資料模式下偶爾失靈。

  查了三個小時。

  鎖定原因了。

  三條關鍵訊號路徑上電晶體批次不同,開關延遲有差異,在相位切換瞬間最慢那條路徑上的訊號還沒穩定就被取樣了。

  解決辦法簡單。

  三條路徑上各並聯一隻小電容做延遲匹配,C14等於22pF,C15等於15pF,C16等於10pF,焊上去,再跑兩百條隨機指令,問題消失。

  第五周,全機連續執行老化測試。

  一段已知結果的迴圈程式,設定無限重複執行,目標七十二小時不間斷零錯誤。

  前二十四小時出了三次停機。

  第一次虛焊。

  方培生補了一焊。

  第二次濾波電容漏電,何建軍換新的,第三次儲存器驅動線鬆了,張國平擰緊端子。

  每次停機他們都在記錄本上寫清楚故障現象、原因和處理方法。

  這是陳序年定下的規矩。

  後四十八小時,沒有再停過。

  第七十二小時整,陳序年按下停機鍵。

  方培生從紙帶輸出裝置上撕下最後一段結果。

  逐行核對。

  「全對。」

  實驗室里安靜了兩秒。

  王德明率先拍了一下桌面,張國平和李明遠跟著叫了一聲好,何建軍蹲在機箱旁邊,手裡還攥著螺絲刀,咧著嘴直笑。

  陳序年沒有急著表態,他走到控制面板前,低頭看了一眼機箱側板上的溫度貼片,又摸了摸電源模組的外殼,溫度正常,風扇轉速穩定。

  七十二個小時。

  這台機器扛下來了。

  「下午兩點,全員到實驗室。」

  陳序年直起腰,看著在場的人。

  「正式運算測試。」

  中午,陳序年去食堂打了兩份飯,一份端回了宿舍,林晚秋今天上午在醫務室給新來的青工做入所體檢,中午趕不回來。

  他把飯菜用紗布蓋好,放在灶台上溫著。

  自己三兩口扒完碗裡的棒子麵糊糊,啃了一個窩頭,喝了半杯涼白開,就往主樓走。

  下午兩點。

  實驗室里擠滿了人。

  除了計算機組的王德明、張國平、李明遠,還有方培生、何建軍、梁啟明,梁啟明是帶著兩個年輕計算員一起來的,三個人手裡都抱著厚厚一沓草稿紙。

  紙上寫滿了手算的驗證資料。

  陳序年站在控制面板前,伸手撥動撥碼開關。

  十六個開關,每一個對應一個二進位制位,他按照預設的測試方案,在撥碼開關上手動輸入了第一條正式計算指令。

  將儲存地址0010中的數與儲存地址0011中的數相加,結果存入地址0012。

  他的手指在最後一個開關上停了一下。

  屋裡沒有人出聲。

  陳序年按下執行鍵。

  控制面板上的指示燈亮了。

  取指燈亮,滅。

  解碼燈亮,滅。

  取數燈亮,滅。

  運算燈亮,滅。

  回存燈亮,滅。

  整個過程不到一秒鐘。

  方培生第一個撲到面板前,俯下身子,挨個讀地址0012上十六盞指示燈的狀態。

  「1101010001001100。」

  他從口袋裡掏出鉛筆頭,在手心裡飛快的把二進位制轉成十進位制。

  嘴裡念叨著。

  「十進位制,54604。」

  梁啟明翻開手裡的草稿紙,上面提前寫好了驗算結果。

  兩個預置的加數分別是27851和26753,他在紙上算過的結果正是54604。

  「對。」

  梁啟明的聲音比平時高了兩度。

  陳序年沒有停,他在撥碼開關上連續輸入了十五組測試指令,加法、減法、邏輯與、邏輯或、左移位、右移位、條件跳轉、子程式呼叫,每一條指令執行完畢,方培生讀數,梁啟明對照手算結果。

  十五組,全部正確。

  王德明從工具箱裡翻出一段打好孔的紙帶,遞給陳序年。

  「陳工,我提前編了一段迴圈程式,依次往4096個儲存地址里寫入資料,再逐個讀出來校驗,能跑一遍嗎?」

  「上。」

  陳序年接過紙帶,裝入紙帶讀入裝置。

  紙帶噠噠噠的被機器吞進去,指示燈開始有節奏的閃爍,儲存器驅動電路發出細微的嗡嗡聲,紙帶輸出端開始吐出打了孔的結果帶。

  二十分鐘後。

  最後一段結果紙帶落下。

  方培生和張國平一人抓著一頭。

  逐行比對。

  「4096個字,寫入讀出全部正確,無一錯誤。」

  方培生把紙帶卷好。

  塞進工具箱裡。

  手都在抖。

  梁啟明手裡的鉛筆掉在地上,他彎腰去撿,站起來的時候眼眶有點發紅。

  他在手搖計算機前熬了多少個通宵,那些日子他自己最清楚。

  以後再也不用二十個人輪班倒了。

  何建軍從機箱後面探出頭來。

  「陳工,散熱正常,電源電壓穩定,時脈頻率沒有偏移。」

  陳序年點了點頭,轉身看著屋裡所有人。

  「從今天下午開始,這台機器正式投入使用。」

  陳序年說。

  「梁組長,程式編寫的事,你來牽頭。」

  梁啟明吞了口口水。

  「陳工,我先問一句,輻射流體力學那套方程組,降維到二維軸對稱之後,600個網格點,四個物理量加三個中間變數,隱式格式每步要解一組稀疏線性方程,這個程式,你估計多少條指令能寫完?」

  陳序年在腦子裡過了一遍程式結構。

  「主程式加十幾個子程式,總共大概一千二百條左右。」

  梁啟明倒吸了一口氣。

  一千二百條機器指令。

  全部手工編碼。

  每一條都要翻譯成十六位二進位制數,再用打孔機打在紙帶上,中間任何一條指令的地址算錯了,程式就會跑飛。

  「時間夠嗎?」

  梁啟明問。

  「三周。」

  陳序年說。

  「前兩周寫程式和除錯,第三周跑小規模測試算例驗證,你選兩個數學底子最好的人跟你一起干。」

  「行。」

  梁啟明把鉛筆往耳朵後面一別,回頭沖身後兩個年輕人招了招手。

  「小周、老李,今晚開始加班,先把方程組的離散格式全部推導一遍,確認沒有錯誤。」

  兩個年輕人互相看了一眼,齊聲應道。

  「好。」

  散了之後,陳序年在實驗室里多待了一會兒,他蹲在機箱前,用手電筒往裡照了照,檢查了幾處關鍵焊點和接線端子。

  一切正常。

  從實驗室出來,天已經擦黑了。

  食堂的大鐘敲了六下。

  陳序年穿過林蔭道往後排宿舍走,經過醫務室門口的時候,看見裡頭的燈還亮著。

  他推開門探了一下頭。

  林晚秋正坐在桌前,手裡拿著毛筆往一本厚厚的登記簿上抄寫體檢資料,桌上摞著一摞表格,旁邊放著一杯已經涼透了的白開水。

  「還沒忙完?」

  陳序年走進去。

  「快了,就剩最後三個人的資料沒抄上。」

  林晚秋抬頭看了他一眼,筆沒停。

  「你今天臉色比昨天好看多了,是不是有好事?」

  陳序年在她對面的凳子上坐下來。

  「差不多。」

  「什麼叫差不多?」

  林晚秋一邊抄一邊問。

  「到底是好事還是不好的事?」

  「好事。」

  「那就好。」

  林晚秋沒有追問具體內容。

  她在登記簿上寫完最後一個數字,把筆帽蓋好,伸了個懶腰。

  「走吧,回去做飯,中午給你留的那份你吃了沒有?」

  「吃了。」

  「碗洗了沒有?」

  陳序年頓了頓。

  「沒來得及。」

  林晚秋白了他一眼,站起身收拾桌上的東西。

  「你就記得干你那些大事,碗放在那兒都能長毛了。」

  兩人並排往宿舍走。

  五月的晚風吹的楊樹葉子嘩啦啦響,院子裡的路燈還沒亮,只有主樓二樓幾扇窗戶透出白熾燈的光。