第十八章 七十二小時

投票推薦 加入書籤 小說報錯

  決賽之前,左城必須先把環節二的硬仗打完。

  算法移植到定製晶片上的問題已經解決了,接下來是系統集成和聯調——把移植後的算法裝進藍灣通信南區實驗基站的信號處理單元,和基站的其他模塊完成對接,確保整套系統能協同運轉。

  韓哲給左城開了遠程訪問權限,但聯調階段的最後一步必須到現場做——因為真實基站的射頻模塊和天線陣列沒法遠程模擬,信號鏈路的端到端測試必須在物理設備上跑。

  十一月八號,左城和方澤一起去了藍灣通信南區基站。

  基站建在一棟商業樓的樓頂,外面是一排白色的天線陣列,裡面是一個不到二十平米的設備間,塞滿了機櫃、光纖和散熱風扇,嗡嗡聲吵得說話要抬高音量。

  藍灣通信派了一個現場工程師配合他們,叫老吳,四十多歲,穿一件油漬斑斑的工裝,說話帶著濃重的南方口音。

  」你們就是學校來的?」老吳上下打量了他倆一眼,語氣裡帶著善意的懷疑,」這麼年輕,行不行啊?」

  」試試就知道了。」左城笑了一下,打開筆記本電腦接入基站的調試埠。

  聯調的前半段出乎意料地順利。算法模塊和基站的基帶處理單元對接成功,數據通路跑通了,信號採集和輸出都正常。方澤全程盯著嵌入式平台的運行狀態,內存占用、CPU負載、中斷響應時間全部在安全線以內。

  問題出在射頻端。

  當左城把算法切換到實時處理模式,開始接收天線陣列送過來的真實無線信號時,輸出數據出現了一種詭異的周期性抖動——每隔大約四秒鐘,信道估計值會突然偏移一次,然後又恢復正常。

  偏移幅度不大,但足以讓性能指標掉到達標線以下。

  」這個抖動不是算法的問題。」方澤看著示波器上的波形,皺起眉頭,」周期太規律了,四秒一次,像是外部干擾。」

  左城也注意到了這個規律。他轉頭看向老吳:」基站周圍有沒有什麼設備會產生四秒周期的電磁干擾?」

  老吳想了想,一拍大腿:」隔壁樓頂有個氣象監測站,上面那個雷達每四秒轉一圈。之前就有工程師反映過這個問題,但因為不影響常規通信,一直沒處理。」

  左城和方澤對視了一眼。

  氣象雷達的旁瓣信號泄露到了基站的接收頻段,每轉一圈就干擾一次。常規通信算法對這種級別的干擾不敏感,但左城的自適應追蹤算法精度更高,反而把這個干擾給」看見」了。

  精度太高也是一種煩惱。

  」兩條路。」左城在筆記本上飛快地畫了個示意圖,」第一條,在算法前端加一個陷波濾波器,把氣象雷達的頻段直接濾掉。簡單粗暴,但會損失一小段有用頻譜。第二條,在自適應追蹤模塊里加一個周期性干擾識別機制,讓算法自己學會區分雷達干擾和有用信號。」

  」第二條更優雅,但開發時間——」方澤說。

  」兩個小時夠。」左城說。

  方澤看了他一眼,沒有質疑,轉身去調試環境裡開了一個新分支。

  左城坐下來寫代碼。周期性干擾的識別邏輯不複雜——干擾的頻率、幅度和持續時間都是固定的,只要在追蹤模塊的輸入端加一層模式匹配,識別出干擾特徵後將其從信號中剝離,剩下的就是純淨的有用信號。

  一個半小時後,新模塊寫完了。方澤把代碼刷進晶片,重新跑測試。

  四秒周期的抖動消失了。信道估計值的曲線變得光滑而穩定,所有性能指標回到了達標線以上。

  老吳站在旁邊看了全程,原本掛在臉上的懷疑表情早就沒了,取而代之的是一種老工程師特有的欣慰。

  」小伙子們可以啊。」他拍了拍左城的肩膀,力氣大得左城往前踉蹌了半步,」這個雷達干擾的問題困擾我們半年了,你們一下午就給解決了。」

  」是順手的事。」左城穩住身形,笑了笑。

  聯調全部完成。

  接下來是最後的關卡——七十二小時連續運行驗證。

  算法必須在真實基站環境中不間斷運行三天三夜,處理數千名真實用戶的通信信號,期間不能出現任何崩潰、死機或性能驟降。

  十一月十號上午十點,左城啟動了七十二小時測試。

  前二十四小時風平浪靜。算法運行穩定,各項指標在達標線以上,波動極小。左城每隔兩小時通過遠程系統檢查一次運行狀態,方澤同步監控嵌入式平台的資源消耗。


  第三十六小時,凌晨四點,左城被手機震醒了。

  方澤發來消息:」內存泄漏。很慢,每小時大概增長0.3%,但如果持續下去,預計在第六十小時左右會撞到上限。」

  左城一個激靈坐起來,打開電腦遠程連入基站調試系統。

  方澤說得沒錯。嵌入式平台的內存占用在以極其緩慢的速度上升——每小時0.3%,在短時間內完全感覺不到,但七十二小時就是超過20%的增長。一旦內存占滿,系統要麼變慢要麼直接崩潰。

  」定位到了。」方澤在凌晨四點二十分又發來一條消息,」干擾識別模塊的緩衝區沒有做循環覆寫,每識別到一次干擾就分配一小塊新內存記錄日誌,但記錄完之後沒有釋放。常規測試時間短看不出來,長時間運行就累積了。」

  左城閉了一秒鐘眼。

  這是他自己寫的代碼里的bug。一個半小時趕工寫出來的模塊,測試不夠充分,漏掉了內存釋放。

  」能熱修復嗎?」他問。熱修復是指不重啟系統的情況下在線打補丁——如果必須重啟,七十二小時測試就得從頭計時。

  方澤回了兩個字:」能。但需要你這邊遠程把補丁包編好,我來推送。」

  左城用了十五分鐘寫完補丁——把緩衝區改成環形結構,固定大小,新數據自動覆蓋最老的數據,內存占用恆定不變。方澤遠程推送,熱修復成功。

  內存占用曲線立刻走平了。

  凌晨四點四十二分,一切恢復正常。

  左城靠在椅背上,後背全是冷汗。

  如果方澤沒有在凌晨四點發現這個問題,等到第六十小時內存崩潰再處理,七十二小時測試就廢了,環節二的期限也會變得極其緊張。

  他給方澤發了一條消息:」謝了。這個bug是我的鍋。」

  方澤回了一句:」寫代碼的人都會有bug,重要的是發現得早。睡吧,後面我盯著。」

  左城沒有再睡。他坐在黑暗的宿舍里,盯著電腦屏幕上緩慢跳動的運行數據,一直看到天亮。

  第七十二小時。

  十一月十三號上午十點。

  左城、方澤和老吳三個人站在基站設備間裡,盯著監控屏幕上的最終報告。

  連續運行72小時。處理用戶信號總量:4,217,603條。信道估計平均精度:超出基準值34.2%。系統崩潰次數:0。性能驟降次數:0。內存泄漏:已修復,修復後運行36小時無異常。

  老吳嘬了口保溫杯里的濃茶,點了點頭:」過了。漂漂亮亮地過了。」

  左城看著屏幕上的數字,什麼都沒說,只是長長地吐了一口氣。

  光幕在意識中亮起:

  【主線任務鏈·通信破局·環節二:完成!】

  【實測驗證評價:優秀(72小時零崩潰,性能超標34.2%)】

  【獎勵發放中——】

  【解鎖葉片:通信系統工程 ✓】

  【積分+10(當前積分:23)】

  【因評價等級為」優秀」,環節三期限額外延長7天。】

  【環節三即將解鎖——】

  二十三個積分。五枚葉片。

  左城關掉面板,看了方澤一眼。方澤靠在機柜上,雙手插兜,面無表情,但嘴角有一個極其輕微的弧度。

  」走。」左城說,」回學校。四天後決賽。」

章節目錄