第448章 星核晶片回片測試
晶片從新加坡運回來了,梁夢松親自押的貨,從樟宜機場飛到香港,再轉機到濟南,一路上沒讓那個鋁合金手提箱離開過自己的視線。
過安檢的時候安檢員讓他開箱,他打開了箱子,但眼睛一直盯著對方的手,生怕那隻戴著白手套的手碰到晶片封裝盒。安檢員大概是被他盯得不自在,草草看了一眼就讓他合上了。
到研發中心的時候已經是下午三點,李默帶著測試組的三個人在實驗室里等著,桌上鋪好了防靜電墊,測試板已經插好了排線,示波器的探頭也校準過兩遍。
實驗室的空調開得比平時低了五度,有人披了件外套,有人沒來得及披,胳膊上起了一層雞皮疙瘩。
梁夢松把箱子放到桌上,打開,裡面是一個黑色泡沫襯墊,襯墊上嵌著十顆晶片,每一顆都用防靜電袋單獨封裝。
他把其中一顆拿出來,放到測試板旁邊的托盤上。晶片在日光燈下泛著一層暗沉的金屬光澤,指甲蓋大小,上面蝕刻著星火的logo和一串編號。
「一路上沒出岔子吧?」李默問。
「飛機上我一直抱著這個箱子,」梁夢松說,「空姐問我裡面是什麼,我說是人工心臟起搏器,她立馬不敢碰了。」
李默笑了一聲,他感覺梁夢松這個理工男還挺幽默。他戴上防靜電手環,用鑷子夾起晶片,對準測試板上的封裝槽,慢慢往下放。
晶片的引腳和插槽對齊的那一瞬間,他的手腕輕輕一壓,晶片咔噠一聲嵌了進去。聲音很輕,但實驗室里每個人都聽見了。
「上電。」李默說。
坐在示波器前面的工程師按下電源開關。測試板的指示燈閃了一下,綠色的。然後顯示屏亮了。
屏幕先是藍的,然後跳出一行白色英文:StarCore Booting……光標在句尾閃了三下,接著屏幕變了——星火OS的logo彈了出來,Logo下面是一個進度條,進度條從零跳到百分之百,用了不到一秒。桌面出現了,還是那個深藍色的背景,幾個圖標安安靜靜地列在屏幕邊緣。
「啟動成功。」
說這話的是坐在最邊上的年輕工程師,聲音不高,像是怕把什麼東西吵醒。但緊跟著整個實驗室炸了——有人摘下眼鏡擦了一下又戴上,有人拍了一下大腿,有人兩隻手撐著桌沿肩膀往下垮了一截像是一口氣從胸口卸出去的。
李默沒有喊也沒有動,但他攥著鑷子的那隻手在微微發抖,鑷子尖碰在金屬託盤上,發出很細很碎的叮叮聲,他趕緊把鑷子放下,用手指按住。
「先跑一遍基準測試。」他說。
基準測試程序是提前寫好的,跑了一遍CPU整數運算、浮點運算、內存讀寫帶寬。
數據從屏幕上滾過去的時候,負責記錄的人手指跟著屏幕上的數字往下劃拉,嘴裡念念有詞——主頻400MHz穩定不跳,整數運算超出設計預期百分之三,浮點略低,低了不到兩個點,內存帶寬達標。
李默湊過去看了兩眼,說再跑一遍。第二遍數據和第一遍完全一致。
「GPU測試,」梁夢松在旁邊抱著胳膊說,「先把那兩個場景跑了。上次仿真的時候就是這兩個場景出的花屏。」
李默點了點頭,自己動手輸了測試命令。屏幕上的畫面從桌面切到一個3D渲染場景——一個由上千個三角形組成的旋轉球體,表面貼著金屬光澤的紋理。
球體轉了一圈,畫面乾淨。轉第二圈的時候,屏幕右下角出現了一個很小的閃爍,一閃而過,像是夏天傍晚遠處天邊打的那種沒有聲音的閃電。
李默的表情沒有變,但他在筆記本上飛快地畫了一個坐標,標出了閃爍出現的位置。
第二個場景是一個粒子系統,模擬下雨的效果,幾千個粒子同時從屏幕頂端往下落。粒子落到一半的時候有幾顆忽然變成了紫色的長條,在屏幕上閃了零點幾秒又恢復了正常。不多,就幾顆。
「還是那兩個場景,」李默在本子上寫完最後一行字,擱下筆,「GPU花屏只在這兩個特定渲染條件下出現,位置和仿真結果完全吻合。不是隨機故障,是設計層面的底層算法問題——圖形加速器的z緩存算法在粒子深度排序上有bug。功耗呢?」
旁邊負責記錄的人把整張測試報表往前翻了一頁,手指停在中間偏下的位置。
滿載功耗608毫瓦,比設計值高了一成半,待機功耗72毫瓦。USB高負載丟包率百分之零點七,剛好踩在設計上限的紅線邊緣。
數字往上跳的時候他還偏頭看了李默一眼,發現李默在笑——不是那種開懷大笑,是嘴角往上翹了一下就收住的那種,像是看見了什麼在意料之中甚至在期待之中的東西,然後他低下頭繼續寫筆記,筆尖在紙上刮出一道很深的墨痕。
「良率呢?」凌雲的聲音從門口傳來。
實驗室里的人全體回頭。凌雲不知什麼時候進來的,站在門口,肩膀靠著門框的右側。
他穿著一件深藍色的工作夾克,拉鏈拉到胸口的位置,左肩上有一小片沒有撣乾淨的粉筆灰,像是剛離開那間鋪滿圖紙的會議室。
梁夢松轉過身來,拿起那份被記號筆划過好幾次的測試報表翻到最後一頁。「首批十顆測試片,十顆全部可啟動。其中兩顆功耗超標在允許範圍之外,一顆USB接口在高速模式下有間歇性掉包,一顆GPU花屏頻率高於設計標準,但所有晶片均可運行完整基準測試——首批良率,八成六。」
他說完這句話,自己先愣了一下。然後又將測試報表從頭到尾又看了一遍,像是在確認自己剛才沒有看錯任何一個數字。
事實上報告單上的每行數據他都能背。從新加坡廠啟動改造到流片、回片,一年零兩個月,中間設備調試停擺過三次,工藝參數調整了不下上百次。
有一回深夜裡蝕刻機報警,他和三個工程師穿著防護服在裡面站了五個小時,出來的時候臉上被口罩勒出來的印子三天都沒消下去。
凌雲從門口走進來,拿起那顆還沒裝回防靜電袋的晶片,對著燈光看。晶片在他指尖轉了一小圈,封裝的金屬殼反了一下光,暗沉中有一絲亮。
「這是第一顆完全走完從設計到流片到測試全流程的晶片,」他把晶片放回托盤裡,「不管它現在有多少問題,至少證明我們能做完。」
李默摘下防靜電手環,往桌上一擱。「問題倒回來看,GPU花屏是算法層面的,需要改z緩存排序邏輯,主攻渲染管線那塊。功耗高了百分之十五,我們原定的四檔電壓域劃分太保守,需要拉到六檔,加上時鐘門控那邊的優化還可以再摳出來一截。USB丟包好辦,是控制器寄存器時序配置的問題,補丁包這周內就能搞好。」
「年底前能出第二版嗎?」
「能,」李默說這句話的時候手裡已經把鍵盤拉過來準備開始寫Debug計劃,「給我兩個月,問題全部清掉。」
凌雲沒再多說。他繞著測試台走了一圈,看了看正在運行的晶片測試界面,看了看示波器上還在跳動的波形,看了看那幾個擠在顯示器前面復盤測試報告的工程師——有一個頭髮亂得像雞窩,有一個外套的袖子一長一短卷著,有一個手裡攥著一塊已經涼透了的餡餅,咬了一口又眼睛盯著屏幕忘了嚼。
他走完一圈停下來,站在那個頭髮亂得像雞窩的工程師後面,看了一眼屏幕,說了一句:「今晚加班餐我讓食堂加菜。」
然後他走向門口。梁夢松跟出來兩步。凌雲轉身對他說:「新加坡那邊,月產能現在能到多少?」
「一萬兩千片,設備全速運轉的話。但第二版的流片窗口如果卡在十二月,需要跟深圳廠那邊協調,他們有一條測試線可以用在——」「調度權給你,」凌雲說,「不用簽報。直接調。」
梁夢松沒有說謝謝。他站在原地,看著凌雲走出實驗室的門,然後轉身回去,把袖子往上一卷,對著那幫還在盯著屏幕的工程師拍了拍手,「都聽到了啊,晚上加菜,吃完接著干。」
過安檢的時候安檢員讓他開箱,他打開了箱子,但眼睛一直盯著對方的手,生怕那隻戴著白手套的手碰到晶片封裝盒。安檢員大概是被他盯得不自在,草草看了一眼就讓他合上了。
到研發中心的時候已經是下午三點,李默帶著測試組的三個人在實驗室里等著,桌上鋪好了防靜電墊,測試板已經插好了排線,示波器的探頭也校準過兩遍。
實驗室的空調開得比平時低了五度,有人披了件外套,有人沒來得及披,胳膊上起了一層雞皮疙瘩。
梁夢松把箱子放到桌上,打開,裡面是一個黑色泡沫襯墊,襯墊上嵌著十顆晶片,每一顆都用防靜電袋單獨封裝。
他把其中一顆拿出來,放到測試板旁邊的托盤上。晶片在日光燈下泛著一層暗沉的金屬光澤,指甲蓋大小,上面蝕刻著星火的logo和一串編號。
「一路上沒出岔子吧?」李默問。
「飛機上我一直抱著這個箱子,」梁夢松說,「空姐問我裡面是什麼,我說是人工心臟起搏器,她立馬不敢碰了。」
李默笑了一聲,他感覺梁夢松這個理工男還挺幽默。他戴上防靜電手環,用鑷子夾起晶片,對準測試板上的封裝槽,慢慢往下放。
晶片的引腳和插槽對齊的那一瞬間,他的手腕輕輕一壓,晶片咔噠一聲嵌了進去。聲音很輕,但實驗室里每個人都聽見了。
「上電。」李默說。
坐在示波器前面的工程師按下電源開關。測試板的指示燈閃了一下,綠色的。然後顯示屏亮了。
屏幕先是藍的,然後跳出一行白色英文:StarCore Booting……光標在句尾閃了三下,接著屏幕變了——星火OS的logo彈了出來,Logo下面是一個進度條,進度條從零跳到百分之百,用了不到一秒。桌面出現了,還是那個深藍色的背景,幾個圖標安安靜靜地列在屏幕邊緣。
「啟動成功。」
說這話的是坐在最邊上的年輕工程師,聲音不高,像是怕把什麼東西吵醒。但緊跟著整個實驗室炸了——有人摘下眼鏡擦了一下又戴上,有人拍了一下大腿,有人兩隻手撐著桌沿肩膀往下垮了一截像是一口氣從胸口卸出去的。
李默沒有喊也沒有動,但他攥著鑷子的那隻手在微微發抖,鑷子尖碰在金屬託盤上,發出很細很碎的叮叮聲,他趕緊把鑷子放下,用手指按住。
「先跑一遍基準測試。」他說。
基準測試程序是提前寫好的,跑了一遍CPU整數運算、浮點運算、內存讀寫帶寬。
數據從屏幕上滾過去的時候,負責記錄的人手指跟著屏幕上的數字往下劃拉,嘴裡念念有詞——主頻400MHz穩定不跳,整數運算超出設計預期百分之三,浮點略低,低了不到兩個點,內存帶寬達標。
李默湊過去看了兩眼,說再跑一遍。第二遍數據和第一遍完全一致。
「GPU測試,」梁夢松在旁邊抱著胳膊說,「先把那兩個場景跑了。上次仿真的時候就是這兩個場景出的花屏。」
李默點了點頭,自己動手輸了測試命令。屏幕上的畫面從桌面切到一個3D渲染場景——一個由上千個三角形組成的旋轉球體,表面貼著金屬光澤的紋理。
球體轉了一圈,畫面乾淨。轉第二圈的時候,屏幕右下角出現了一個很小的閃爍,一閃而過,像是夏天傍晚遠處天邊打的那種沒有聲音的閃電。
李默的表情沒有變,但他在筆記本上飛快地畫了一個坐標,標出了閃爍出現的位置。
第二個場景是一個粒子系統,模擬下雨的效果,幾千個粒子同時從屏幕頂端往下落。粒子落到一半的時候有幾顆忽然變成了紫色的長條,在屏幕上閃了零點幾秒又恢復了正常。不多,就幾顆。
「還是那兩個場景,」李默在本子上寫完最後一行字,擱下筆,「GPU花屏只在這兩個特定渲染條件下出現,位置和仿真結果完全吻合。不是隨機故障,是設計層面的底層算法問題——圖形加速器的z緩存算法在粒子深度排序上有bug。功耗呢?」
旁邊負責記錄的人把整張測試報表往前翻了一頁,手指停在中間偏下的位置。
滿載功耗608毫瓦,比設計值高了一成半,待機功耗72毫瓦。USB高負載丟包率百分之零點七,剛好踩在設計上限的紅線邊緣。
數字往上跳的時候他還偏頭看了李默一眼,發現李默在笑——不是那種開懷大笑,是嘴角往上翹了一下就收住的那種,像是看見了什麼在意料之中甚至在期待之中的東西,然後他低下頭繼續寫筆記,筆尖在紙上刮出一道很深的墨痕。
「良率呢?」凌雲的聲音從門口傳來。
實驗室里的人全體回頭。凌雲不知什麼時候進來的,站在門口,肩膀靠著門框的右側。
他穿著一件深藍色的工作夾克,拉鏈拉到胸口的位置,左肩上有一小片沒有撣乾淨的粉筆灰,像是剛離開那間鋪滿圖紙的會議室。
梁夢松轉過身來,拿起那份被記號筆划過好幾次的測試報表翻到最後一頁。「首批十顆測試片,十顆全部可啟動。其中兩顆功耗超標在允許範圍之外,一顆USB接口在高速模式下有間歇性掉包,一顆GPU花屏頻率高於設計標準,但所有晶片均可運行完整基準測試——首批良率,八成六。」
他說完這句話,自己先愣了一下。然後又將測試報表從頭到尾又看了一遍,像是在確認自己剛才沒有看錯任何一個數字。
事實上報告單上的每行數據他都能背。從新加坡廠啟動改造到流片、回片,一年零兩個月,中間設備調試停擺過三次,工藝參數調整了不下上百次。
有一回深夜裡蝕刻機報警,他和三個工程師穿著防護服在裡面站了五個小時,出來的時候臉上被口罩勒出來的印子三天都沒消下去。
凌雲從門口走進來,拿起那顆還沒裝回防靜電袋的晶片,對著燈光看。晶片在他指尖轉了一小圈,封裝的金屬殼反了一下光,暗沉中有一絲亮。
「這是第一顆完全走完從設計到流片到測試全流程的晶片,」他把晶片放回托盤裡,「不管它現在有多少問題,至少證明我們能做完。」
李默摘下防靜電手環,往桌上一擱。「問題倒回來看,GPU花屏是算法層面的,需要改z緩存排序邏輯,主攻渲染管線那塊。功耗高了百分之十五,我們原定的四檔電壓域劃分太保守,需要拉到六檔,加上時鐘門控那邊的優化還可以再摳出來一截。USB丟包好辦,是控制器寄存器時序配置的問題,補丁包這周內就能搞好。」
「年底前能出第二版嗎?」
「能,」李默說這句話的時候手裡已經把鍵盤拉過來準備開始寫Debug計劃,「給我兩個月,問題全部清掉。」
凌雲沒再多說。他繞著測試台走了一圈,看了看正在運行的晶片測試界面,看了看示波器上還在跳動的波形,看了看那幾個擠在顯示器前面復盤測試報告的工程師——有一個頭髮亂得像雞窩,有一個外套的袖子一長一短卷著,有一個手裡攥著一塊已經涼透了的餡餅,咬了一口又眼睛盯著屏幕忘了嚼。
他走完一圈停下來,站在那個頭髮亂得像雞窩的工程師後面,看了一眼屏幕,說了一句:「今晚加班餐我讓食堂加菜。」
然後他走向門口。梁夢松跟出來兩步。凌雲轉身對他說:「新加坡那邊,月產能現在能到多少?」
「一萬兩千片,設備全速運轉的話。但第二版的流片窗口如果卡在十二月,需要跟深圳廠那邊協調,他們有一條測試線可以用在——」「調度權給你,」凌雲說,「不用簽報。直接調。」
梁夢松沒有說謝謝。他站在原地,看著凌雲走出實驗室的門,然後轉身回去,把袖子往上一卷,對著那幫還在盯著屏幕的工程師拍了拍手,「都聽到了啊,晚上加菜,吃完接著干。」