最新网址:www.3qxsw.com

第156章 林知夏

作品:《 香江:从破产电器厂到全球巨头》

林知夏的办公桌在实验室最角落,靠窗的位置。窗外能看到工厂门口那棵斜长着的紫荆树,阳光从树叶缝隙里漏进来,在他摊开的手稿上投下细碎的光斑,随着太阳的移动从桌角缓缓滑到桌心。桌上堆满了画满逻辑门和时序图的稿纸,有些边角已经被反复翻阅磨得起了毛边,有些还带着刚画完时被手掌蹭花的墨迹。他不喜欢别人动他的稿纸——不是洁癖,是那些看似杂乱的排列在他脑子里有一个只有他自己知道的秩序。阿强有一次帮他整理桌面,把同一叠稿纸按页码顺序排得整整齐齐,结果他回来之后站在桌前找了很久,最后从垃圾桶里把那张被揉成团的废稿捡出来摊平,说这张不在页码里,是夹在两组时序图之间的过渡稿——页码排不上,但逻辑链断不了。从那以后,再也没有人帮他整理桌面。

他毕业于麻省理工学院,博士论文是关于精简指令集处理器的分支预测算法优化,答辩委员会主席在评语里写了一句话:“此论文将延迟槽填充率的理论上限推进了至少好几个百分点。”这篇论文后来被《国际计算机体系结构期刊》收录,在学术圈内被引用了多次,但在工业界几乎没有激起任何水花。他对此并不在意——他在意的是那些论文里被他逐行推导过的公式和门级逻辑图,在意的是每一次修改都把延迟槽的有效填充率往上推了零点几个百分点。小数点后的那些数字,是他在无数个深夜里一行一行手算出来的,每一个都有对应的测试数据佐证。

在硅谷的英特尔工作过几年,参与过一款商用处理器的前端设计。那是他职业生涯最痛苦也最清醒的几年。痛苦是因为他发现大公司的逻辑不是技术驱动,而是市场驱动——市场需要什么就做什么,不需要的即使技术上再先进也要砍掉。清醒是因为他在这几年里把自己对精简指令集架构的理解从理论推到了工程实现的边缘——五级流水线的时序分配、数据前推路径的冲突消解、分支预测单元的门级实现,他全部用手算过一遍,在每一张草图的右下角签下自己名字的缩写。大公司的流程要求每一个设计决策都必须经过至少三级评审,他的方案在评审会上被否决时,否决的理由不是技术指标不达标,而是“市场对性能的需求还没有到那个程度,目前主流应用对处理器性能的依赖还停留在低频阶段”。他把评审记录复印了一份留底,锁进抽屉最里面。离开英特尔时他在辞职信上只写了一行字,字体和他画草图的笔记一样简练而清晰。

离开硅谷后他没有马上找工作。他在旧金山租了一间地下室,除了一张床和一台从公司带出来的旧终端外几乎没有家具,墙上贴满了手绘的精简指令集架构图,不同颜色的箭头标注了数据前推路径的每一级冲突消解逻辑。他在那里花了几个月时间,把自己在分支预测和延迟槽优化上的所有思路从头到尾重新推导了一遍。他不急着投论文,也不急着找工作,只是想确认一件事:他在英特尔被否决的那个方案,到底是他自己想错了,还是市场不需要不等于技术不成立。他逐行推导延迟槽填充率的理论上限,用几组不同的指令序列反复验证分支预测单元的门级逻辑。最终他确认了自己的判断:技术本身没有问题,只是时机不对。他把这一阶段的验证数据整理成技术笔记,在笔记的扉页上写了一句话:“精简指令集的精髓不是指令少,是把每一个指令的执行周期压缩到不能再压缩。”

这篇笔记后来发表在《国际计算机体系结构期刊》上,石沉大海。他习惯了被忽视。直到林知夏收到那封来自香港的信——信里没有一句“我们很欣赏你的才华”之类的客套话,也没有任何关于薪资和待遇的承诺,只是说创世纪正在设计一颗十六位的精简指令集处理器,五级流水,单周期执行,所有IP核全部自主设计,不向任何第三方购买授权,问他有没有兴趣来香港看看。信的最后附了一段手写的话,说创世纪实验室的规矩是所有设计决策都必须附带书面理由,所有测试数据都必须归档保存,所有验证失败都必须记录原因和修正过程——和他在英特尔被迫遵守的三级评审制度不同,这里的归档不是为了推卸责任,是为了让后来的人能沿着前人的错误走得更快。他把这段话反复看了好几遍,然后翻开自己的技术笔记,在扉页上那行字旁边又加了一行,笔迹和他在辞职信上写的一模一样。

他来了。第一次走进创世纪实验室时,他在白板前站了很久,把曙光一号的初步架构图从头到尾逐行看完——数据通路、控制通路、中断优先级矩阵、总线协议。架构图还比较粗糙,有几个模块的接口信号没有对齐,中断优先级的分配也有些地方不太合理。但他在最关键的地方没有看到一处错误。他在CPU和存储控制器之间的总线宽度上画了一个圈,把十六位改成了三十二位,在旁边标注了新的时序频率和对应的流水线冲突点调整方案。然后他说了那句被阿强后来记进车间日志的话,语气和他当初决定加入时一样平静而笃定。

李家港给了他一个承诺:十年内不要求盈利。这个承诺对他来说比任何薪酬都重要——他在硅谷最深的挫败感不是钱少,是每一次研发到关键阶段就被管理层喊停,理由是“市场窗口期不够大”。他需要的是一个能让他把精简指令集架构从头到尾跑通的实验室,而不是一个整天盯着季度财报的董事会。这个承诺他从未在口头上回应过,只是在每天深夜离开实验室前把当天画完的时序图逐张编号归档,在每一页的右下角签下日期和名字缩写。李家港发现之后没有多说什么,只是在实验室档案柜里专门辟了一格,挂上写着“曙光一号·林知夏手稿”的标签,把所有归档稿纸按编号顺序锁进防潮纸盒里。

他的世界和车间里其他人的世界在物理空间上只隔着一扇实验室的门,但在感知上完全不同。阿强每天在实验台前逐只抽检磁鼓底座的接触压力曲线,方洁瑛在设计工作室里对着新一批磁带标签的配色方案反复比对炭笔色卡,刘师傅在注塑机旁边调试曙光一号外壳模具的第一版水路线。这些工作他都知道,但他很少主动走进车间,就像阿强很少主动走进实验室一样。不是冷漠,是各自在自己的精度世界里入了定——他能听出注塑机液压泵声音里极细微的频率变化,但不会走过去说;阿强能看懂白板上时序图的某些局部,但不会主动评论。

唯一的例外是阿强那枚Q值八十九的中周变压器。有一次他在实验室白板上画中断优先级矩阵时卡住了——矩阵里几个中断源被分配到不同优先级,但有一个来自音频处理器的中断信号无论如何都找不到合适的优先级位置:放在高优先级会干扰显示控制器的帧刷新时序,放在低优先级又会导致音频输出出现间歇性卡顿,不管怎么排都会和其他信号产生冲突。他放下记号笔在走廊里踱步,踱到阿强实验台前时停住了。示波器屏幕上那条平稳的正弦波正无声跳动着——每一个周期都分毫不差,波峰与波谷的间距精确得像是用尺子画出来的。他盯着那条波形看了很久,忽然开口:“你看这条线——每一个周期都分毫不差,是因为你的每一圈铜丝都排得足够紧密,匝与匝之间的分布电容被你压到了最低。中断信号也一样——每一个优先级窗口都是固定的时钟周期,要压到最低才能不冲突。音频中断和显示中断之间的窗口应该像你的线圈匝间距一样,不留任何多余的空隙。”

阿强沉默了片刻,把探头拔下来放在桌上。“你把那个中断信号画出来我看看。”两个人在实验台旁边铺开一张空白稿纸,阿强用他画了无数圈中周变压器的手势把那几个中断信号的时序波形逐条画出来,每一根线条的粗细和他在示波器屏幕上看到的几乎完全一致。他在旁边逐条标注对应的优先级窗口和时钟周期数,画到音频中断和显示中断时停了一下——两个中断信号之间的空隙刚好够一个最小优先级窗口。阿强把这个空隙用铅笔重重涂了一下,说这里绕不过去——不是优先级不够,是两个信号撞在了同一拍上。他看着那个被涂黑的空隙,忽然拿起笔在旁边画了一个新的小方框——仲裁控制器,说应该让仲裁控制器在这两个中断之间强制插入一级缓冲,把同时到达的信号错开一拍。这个方法不是从芯片设计教科书上学来的,是从中周变压器线圈匝间绝缘的分布电容控制原理里类推出来的——当两条铜丝靠得太近时会产生分布电容干扰信号,解决办法不是拉开间距,是在两条铜丝之间加一层绝缘纸。仲裁控制器的缓冲逻辑,就是那层绝缘纸。他在中断优先级矩阵里正式加入了仲裁控制器模块,在方框旁边用铅笔注了一行字,说明设计灵感来源于中周变压器线圈的匝间绝缘技术。这张草稿后来被他夹进曙光一号的设计档案,和那些被反复翻阅磨得起毛边的时序图放在一起。

方洁瑛有好几次半夜起来给启明喂奶,从走廊经过时看到实验室门缝里漏出的灯光,知道那是他在熬他的时序图。她在传达室放了一只搪瓷缸,每晚临走前往里面泡好普洱茶,让福伯半夜端上去。福伯端着搪瓷缸推开实验室门时从不说话,只是把缸子放在他手边,顺手把上一缸已经凉透的茶端走。有一夜福伯发现他趴在桌上睡着了,手还压在半张没画完的时序图上,窗外的启明星正好悬在紫荆树枝梢上方。福伯把搪瓷缸轻轻放在他手边,把窗上被风掀开一角的窗帘重新拉好,带上门走了。他在梦里大概还在推导延迟槽的填充逻辑,手指在桌面上无意识地画着圈。那些圈和他在白板上画的中断优先级矩阵一样,每一个都闭合得严丝合缝。窗外启明星正低悬在飞鹅岭上方,光度比往日更亮。紫荆树的枝叶在夜风里轻轻摇晃,树影透过窗帘缝隙落在他那张旧木桌上,和那些画满逻辑门的稿纸叠在一起,像一棵正在生长的时钟树。