第330章 七天七夜
直播1980:網友教我手搓火箭 作者:靈台三心 投票推薦 加入書簽 留言反饋
第330章七天七夜
六月二十三日,晚上六點整。
米勒準時從三號樓二層下來。
他捂著肚子,對傳達室的門衛擺了擺手。
“拉肚子,回宿舍了。”
門衛翻著報紙,根本沒抬頭。
米勒走出大門後,拐進了計算機所對麵的小飯館。
要了一碗炸醬麵,坐在角落裏,臉朝著牆。
六點十五分。
地下室的鐵門被推開。
司徒淵走在前麵。
右手拎著一個帆布袋,裏麵裝著一盒spice2g6的磁帶和兩遝打孔卡片。
林希跟在後麵,手裏拿著周副所長給的鑰匙。
張秉謙最後進來。
他從津門坐了兩個小時火車趕到帝都。
褲子膝蓋上的白印子還沒洗掉。
三個人站在玻璃房外麵。
攝像頭的紅燈已經滅了。
司徒淵用米勒給的管理員口令登錄係統。
花了四分鍾關閉底層日誌記錄模塊。
屏幕上跳出一行確認碼。
他核對了兩遍,按下回車。
“幹淨了。”
林希搬了兩把折疊椅進來。
張秉謙把手繪版圖的數據本攤開在膝蓋上。
司徒淵將磁帶插入驅動器,機器發出低沉的轉動聲。
綠色光標在黑色屏幕上跳了兩下。
他開始敲鍵盤。
......
第一個晚上。
仿真程序跑了四十七分鍾。
屏幕上刷出密密麻麻的紅色字符。
`timingvition:nodea7→d3,dy=287ns(maxallowed:200ns)`
`timingvition:nodeb2→clk,setuptimeinsufficient`
`timingvition:…`
紅色的報錯信息刷了整整三屏。
張秉謙湊到屏幕前,老花鏡幾乎貼在顯示器上。
“兩百八十七納秒……”
他的聲音很輕。
李工用計算尺,算了七十二個小時沒算清楚的東西。
機器四十分鍾給出了答案。
超標八十七納秒。
差距比人腦估算的還要大。
張秉謙沒說話。
他把報錯的節點編號一個一個抄在本子上。
握筆的手很穩,但寫字的速度明顯比白天慢。
司徒淵靠在椅背上,盯著屏幕看了半分鍾。
“a7到d3這條路徑,邏輯門串了九級。”
他站起來,走到張秉謙身邊。
指著版圖數據本上的一處走線。
“這裏,地址譯碼器的輸出經過兩級緩衝再進字庫rom的片選端。”
“多了一級。”
“能砍掉嗎?”張秉謙抬頭。
“不能直接砍,會影響驅動能力。”
司徒淵拿起鉛筆,在數據本空白處畫了一個簡圖。
“換一種拓撲結構。”
“把譯碼和片選合並成一級複合門。”
“同時給關鍵路徑上的走線加寬零點五個單位,降低rc延遲。”
張秉謙盯著那個簡圖看了十秒鍾。
“明天白天改。”
林希看了一眼表。
淩晨一點十二分。
“收工。”
......
這是第一晚。
白天,津門二廠的車間裏。
(本章未完,請點擊下一頁繼續閱讀)第330章七天七夜(第2/2頁)
張秉謙帶著年輕技術員們跪在坐標紙上。
按照前一晚仿真結果反饋的問題。
一條一條撕掉舊的膠帶走線,重新貼新的。
撕掉,量尺,貼下去。
再撕,再量,再貼。
每改一處,旁邊的人就在修改記錄表上打一個勾。
有時候改到一半,發現牽一發動全身。
一條走線挪了位置,相鄰的三條都得跟著調。
最長的一次,一個修改點從上午八點改到晚上七點。
中間吃飯都是蹲在坐標紙旁邊扒拉的。
到了傍晚,林希和司徒淵坐火車回帝都。
有時候張秉謙也跟著來。
六點,米勒準時“拉肚子”。
六點十五,三個人進玻璃房。
輸入新數據,跑仿真。
紅色報錯一屏一屏地刷。
但每一天,紅色的行數都在減少。
【第一晚:34個】
【第二晚:19個】
【第三晚:12個】
【第四晚:8個】
【第五晚:3個】
直播間的觀眾們跟著熬了五天。
彈幕從最初的【不忍看】【這也太肝了】。
慢慢變成了【又少了兩個!】【穩住穩住!】。
有人甚至做了一張折線圖,每天更新報錯數量。
配文“華國芯片倒計時”。
第六個晚上,剩兩個違規。
一個是時鍾信號的偏移。
司徒淵用了一個在仙童內部都算高階技巧的“時鍾樹平衡”方法解決。
張秉謙看懂原理後,連說了三個“妙”字。
最後一個,卡在isa總線的地址映射上。
問題出在cpu發出讀信號後。
芯片內部的字庫尋址路徑還是比200納秒多了11納秒。
十一納秒。
張秉謙坐在玻璃房的折疊椅上,盯著屏幕上那個數字看了很久。
“我們的走線已經沒有優化空間了。”
他說,
“物理極限。”
司徒淵沒接話。
他閉著眼靠在牆上,手指無意識地敲著膝蓋。
林希坐在邊上,腦海裏彈幕正在瘋狂滾動。
【11納秒!就差11納秒!】
【加流水線?上緩衝?不行,isa總線不支持等待周期......】
【等等,有個思路!386以前的isa總線其實有一個隱藏特性——i/orecoverytime!8088的isa時序裏,連續兩次i/o讀取之間有一個強製恢複間隔,大約一微秒!】
【對對對!這意味著cpu不可能背靠背地連續讀取,芯片有時間“喘口氣”!所以隻要把字庫的預取邏輯改成“讀當前字的同時,預加載下一個字的首字節”,真正需要響應的時間就不是200納秒,而是更寬裕!】
林希睜開眼。
“司徒總工。”
司徒淵的手指停了。
“isa總線連續讀取之間,有強製恢複間隔。”
“如果在芯片裏加一個預取緩衝寄存器。”
“當前請求返回數據的同時。”
“提前把下一個地址的字模從rom裏讀出來存著。”
“實際響應時間可以攤薄。”
司徒淵愣了兩秒。
然後他猛地從牆上彈起來。
“預取!”
他抓過鉛筆,直接在數據本的封底上畫電路。
畫完,他盯著看了五秒,把鉛筆往桌上一拍。
“能過。”
六月二十三日,晚上六點整。
米勒準時從三號樓二層下來。
他捂著肚子,對傳達室的門衛擺了擺手。
“拉肚子,回宿舍了。”
門衛翻著報紙,根本沒抬頭。
米勒走出大門後,拐進了計算機所對麵的小飯館。
要了一碗炸醬麵,坐在角落裏,臉朝著牆。
六點十五分。
地下室的鐵門被推開。
司徒淵走在前麵。
右手拎著一個帆布袋,裏麵裝著一盒spice2g6的磁帶和兩遝打孔卡片。
林希跟在後麵,手裏拿著周副所長給的鑰匙。
張秉謙最後進來。
他從津門坐了兩個小時火車趕到帝都。
褲子膝蓋上的白印子還沒洗掉。
三個人站在玻璃房外麵。
攝像頭的紅燈已經滅了。
司徒淵用米勒給的管理員口令登錄係統。
花了四分鍾關閉底層日誌記錄模塊。
屏幕上跳出一行確認碼。
他核對了兩遍,按下回車。
“幹淨了。”
林希搬了兩把折疊椅進來。
張秉謙把手繪版圖的數據本攤開在膝蓋上。
司徒淵將磁帶插入驅動器,機器發出低沉的轉動聲。
綠色光標在黑色屏幕上跳了兩下。
他開始敲鍵盤。
......
第一個晚上。
仿真程序跑了四十七分鍾。
屏幕上刷出密密麻麻的紅色字符。
`timingvition:nodea7→d3,dy=287ns(maxallowed:200ns)`
`timingvition:nodeb2→clk,setuptimeinsufficient`
`timingvition:…`
紅色的報錯信息刷了整整三屏。
張秉謙湊到屏幕前,老花鏡幾乎貼在顯示器上。
“兩百八十七納秒……”
他的聲音很輕。
李工用計算尺,算了七十二個小時沒算清楚的東西。
機器四十分鍾給出了答案。
超標八十七納秒。
差距比人腦估算的還要大。
張秉謙沒說話。
他把報錯的節點編號一個一個抄在本子上。
握筆的手很穩,但寫字的速度明顯比白天慢。
司徒淵靠在椅背上,盯著屏幕看了半分鍾。
“a7到d3這條路徑,邏輯門串了九級。”
他站起來,走到張秉謙身邊。
指著版圖數據本上的一處走線。
“這裏,地址譯碼器的輸出經過兩級緩衝再進字庫rom的片選端。”
“多了一級。”
“能砍掉嗎?”張秉謙抬頭。
“不能直接砍,會影響驅動能力。”
司徒淵拿起鉛筆,在數據本空白處畫了一個簡圖。
“換一種拓撲結構。”
“把譯碼和片選合並成一級複合門。”
“同時給關鍵路徑上的走線加寬零點五個單位,降低rc延遲。”
張秉謙盯著那個簡圖看了十秒鍾。
“明天白天改。”
林希看了一眼表。
淩晨一點十二分。
“收工。”
......
這是第一晚。
白天,津門二廠的車間裏。
(本章未完,請點擊下一頁繼續閱讀)第330章七天七夜(第2/2頁)
張秉謙帶著年輕技術員們跪在坐標紙上。
按照前一晚仿真結果反饋的問題。
一條一條撕掉舊的膠帶走線,重新貼新的。
撕掉,量尺,貼下去。
再撕,再量,再貼。
每改一處,旁邊的人就在修改記錄表上打一個勾。
有時候改到一半,發現牽一發動全身。
一條走線挪了位置,相鄰的三條都得跟著調。
最長的一次,一個修改點從上午八點改到晚上七點。
中間吃飯都是蹲在坐標紙旁邊扒拉的。
到了傍晚,林希和司徒淵坐火車回帝都。
有時候張秉謙也跟著來。
六點,米勒準時“拉肚子”。
六點十五,三個人進玻璃房。
輸入新數據,跑仿真。
紅色報錯一屏一屏地刷。
但每一天,紅色的行數都在減少。
【第一晚:34個】
【第二晚:19個】
【第三晚:12個】
【第四晚:8個】
【第五晚:3個】
直播間的觀眾們跟著熬了五天。
彈幕從最初的【不忍看】【這也太肝了】。
慢慢變成了【又少了兩個!】【穩住穩住!】。
有人甚至做了一張折線圖,每天更新報錯數量。
配文“華國芯片倒計時”。
第六個晚上,剩兩個違規。
一個是時鍾信號的偏移。
司徒淵用了一個在仙童內部都算高階技巧的“時鍾樹平衡”方法解決。
張秉謙看懂原理後,連說了三個“妙”字。
最後一個,卡在isa總線的地址映射上。
問題出在cpu發出讀信號後。
芯片內部的字庫尋址路徑還是比200納秒多了11納秒。
十一納秒。
張秉謙坐在玻璃房的折疊椅上,盯著屏幕上那個數字看了很久。
“我們的走線已經沒有優化空間了。”
他說,
“物理極限。”
司徒淵沒接話。
他閉著眼靠在牆上,手指無意識地敲著膝蓋。
林希坐在邊上,腦海裏彈幕正在瘋狂滾動。
【11納秒!就差11納秒!】
【加流水線?上緩衝?不行,isa總線不支持等待周期......】
【等等,有個思路!386以前的isa總線其實有一個隱藏特性——i/orecoverytime!8088的isa時序裏,連續兩次i/o讀取之間有一個強製恢複間隔,大約一微秒!】
【對對對!這意味著cpu不可能背靠背地連續讀取,芯片有時間“喘口氣”!所以隻要把字庫的預取邏輯改成“讀當前字的同時,預加載下一個字的首字節”,真正需要響應的時間就不是200納秒,而是更寬裕!】
林希睜開眼。
“司徒總工。”
司徒淵的手指停了。
“isa總線連續讀取之間,有強製恢複間隔。”
“如果在芯片裏加一個預取緩衝寄存器。”
“當前請求返回數據的同時。”
“提前把下一個地址的字模從rom裏讀出來存著。”
“實際響應時間可以攤薄。”
司徒淵愣了兩秒。
然後他猛地從牆上彈起來。
“預取!”
他抓過鉛筆,直接在數據本的封底上畫電路。
畫完,他盯著看了五秒,把鉛筆往桌上一拍。
“能過。”