芝加哥的九月,空气干燥。
南环区富尔顿市场街,以太动力总部的地下二层。
这里的通风管道里总是回荡着低频的嗡嗡声。
实验室正中央的工作台上,散落着几十张打印出来的肌电图(EMG)和脑电图(EEG)对比数据。
最上面的一份文件上,红笔圈出了一个名字:
StepheHawkig(斯蒂芬·霍金)。
旁边是一份来自剑桥大学的病理报告复印件,详细记录了这位物理学家颈部以上仅存的肌肉活动范围——
右脸颊,收缩幅度不足3毫米。
这是他们唯一的输入源。
距离飞往伦敦的航班起飞还有不到14小时。
“第十七次带通滤波,失败。”
克莱尔盯着泰克示波器的屏幕。
那上面有一条绿色的波形线,正在剧烈地上下跳动,幅度充满了整个显示区域。
她没有抱怨,只是机械地拿起桌上的冰美式,晃了晃,里面只剩下冰块撞击塑料杯壁的声响。
她仰头把最后一点融化的冰水倒进嘴里,喉结滚动了一下。
“老板,这是物理层面的死结。”
克莱尔放下杯子,手指在屏幕上那团杂乱的波形上划过。
“肌电信号的电压幅度是毫伏(V)级,而我们要抓取的运动皮层脑电信号只有微伏(μV)级。两者相差了整整一千倍。
“这就好比把一个正在全速运转的电锯放在枕头边,然后让你去听枕头下机械手表的秒针走动声。强信号把弱信号彻底盖住了(MaskigEffect)。”
实验室角落里,赵晓峰正戴着防静电手环,用镊子夹着一颗绿豆大小的电容。
他的额头上有一层细密的油汗,眼镜滑到了鼻梁中间。
“而且频率重叠。”
赵晓峰没抬头,手很稳地把电容焊在电路板上,焊锡丝接触烙铁,冒出一缕青烟,“肌电信号的频谱覆盖了20到500Hz,我们要找的高频伽马波(GaaWave)刚好被埋在里面。常用的巴特沃斯滤波器切不下去。一刀切下去,全是死线。”
他放下烙铁,指了指旁边垃圾桶里一块烧焦的电路板。
“ADI公司的仪表放大器,号称共模抑制比(CMRR)120dB。刚才我就加了点增益,两分钟,它就过热自激了。那种糊味儿现在还没散。”
林允宁靠在服务器机柜旁。
机柜排风口的废热吹在他的后背上,但他似乎毫无知觉。
他手里拿着半个吃剩的三明治,面包片已经干硬了。
他咬了一口,慢慢咀嚼着,目光越过杂乱的实验台,盯着那台显示着霍金面部肌肉震颤数据的显示器。
那是完全无序的抖动。
对于渐冻症患者来说,神经末梢的坏死导致肌肉纤维失去了统一指挥,它们在随机发放电信号。
“我们不需要过滤噪音。”
林允宁咽
他走到控制台前,伸手调节了一下示波器的时基旋钮,将波形展开。
锯齿状的波形被拉长,显露出了更加破碎的细节。
“或者说,把肌电信号定义为‘噪音’,这个思路本身就是错的。”
林允宁的声音沙哑,那是声带缺水的表现。
“那是什么?”克莱尔转过椅子,看着他。
“是湍流。”
林允宁伸出食指,在落了灰尘的CRT显示器外壳上画了一条直线,然后又在上面画了一团密集的螺旋线,将直线完全覆盖。
“对于空气动力学工程师来说,这层覆盖在机翼表面的湍流边界层是阻力,是废热。但对于数学家来说,它是纳维-斯托克斯方程(N-S方程)在高雷诺数下的一种特定解。它遵循动量守恒,它是能量的一种存在形式。”
他转过身,目光投向机房深处。
在最底层的机架上,插着一块没有任何厂商标识的黑色PCIe扩展卡。
那上面有一颗硕大的芯片,表面没有任何文字,只有一行激光蚀刻的编号。
那是之前在哈佛演示过,被美国商务部列入“导弹技术控制制度(MTCR)”违禁品名单的赛灵思Virtex-5FPGA。
“晓峰,把那块卡拆下来。”
林允宁的声音很轻,但在只有风扇声的实验室里显得格外清晰。
赵晓峰手里的镊子“叮”的一声掉在桌上。
“拆……那块?”他站直了身体,膝盖骨发出咔吧一声响,“林老师,那上面烧录的可是咱们花了三个月才调通的NACA0012机翼流体模型。那是咱们的底牌,要是刷坏了……”
“代码在硬盘里有备份,霍金只有一个。”
林允宁走到机柜前,切断了电源。指示灯熄灭。
“把它拆下来。把里面的流体固件格式化。我们要把这块算力怪兽,变成一台专门处理‘大脑湍流’的整流器。”
“可是它的功耗……”赵晓峰还在犹豫,“这玩意儿全速运转的热设计功耗(TDP)是40瓦!如果不接液冷,它能把霍金教授的轮椅侧袋烧穿!”
“那就给它加风扇。加暴力的工业风扇。”
林允宁已经坐回主控电脑前,手指悬在键盘上方,“我们现在需要的不是优雅的低功耗。我们需要的是绝对的算力暴力,去把这团乱麻硬生生梳理清楚。”
……
半小时后。
那块价值连城的FPGA被粗暴地放置在一张防静电测试台上。
原本的被动散热片被撬掉了,露出了灰色的芯片核心。
赵晓峰从废旧物资堆里翻出了一个服务器用的暴力风扇,用扎带和导热硅脂,硬生生地绑在了芯片上。
旁边是一台安捷伦的直流电源,电压旋钮被拧到了12V,电流限制解除。
“准备烧录JTAG接口。”
林允宁的手指在键盘上敲击。
屏幕上滚动的不再是常规的C++代码,而是更底层的Verilog硬件描述语言。
他在重构芯片内部的数亿个晶体管连接方式。
“我把霍金的面部肌肉震颤定义为‘高雷诺数涡流’,把他的思维意图定义为‘低雷诺数层流’。”
林允宁一边操作,一边盯着进度条,“利用拓扑学里的‘庞加莱截面’(Poicaréap)。当信号进入高维相空间时,混乱的肌电信号会表现出奇怪吸引子(StrageAttractor)的特征,那是混沌的。而思维信号……”
他猛地敲下回车键。
“……是一个稳定的闭环。”
进度条走到100%。
“上电。”
赵晓峰深吸一口气,推上了电源闸刀。
“嗡————!!!”
那个转速高达8000转的暴力风扇瞬间发出了尖啸,声音尖锐得让人牙酸。整个测试台都在随着风扇的震动而微微颤抖。
示波器上的绿色光点凝固了一瞬。
然后,原本那团狂暴的锯齿波,像是被一只看不见的大手按住了。
背景里那些杂乱的毛刺消失了。
屏幕中央,浮现出了一条蓝色的曲线。
它很细,起伏极小,甚至带着一丝犹豫和颤抖,但它极其稳定。
就像是一条在暴风雨的海面上,奇迹般保持平静的航线。
克莱尔凑近屏幕,屏住了呼吸。她的瞳孔倒映着那条蓝线。
“这是……”她指着曲线上一个极其微小的凸起,那个凸起呈现出一种特定的几何形状,“这是眼动信号?”
“不。”
林允宁盯着那条曲线,眼睑有些跳动,“这是他在尝试说‘H’。”
那是人类大脑皮层布罗卡区(Broca'sarea)活跃时特有的拓扑特征。
“成了。”赵晓峰一屁股坐在地上,抹了一把脸上的油汗,“拿算导弹气动的算法去算脑子……这事儿要是让英特尔那帮人知道了,估计得气死。”
林允宁伸手摸了摸那块芯片的散热片。
烫手。指尖刚接触就被迫缩了回来。
“虽然成了,但我们现在面临一个物理问题。”
林允宁指了指那个还在轰鸣的散热器,又指了指旁边那台像砖头一样沉重的直流电源。
“这套系统加上电池,起码有三公斤重。而且按照这个功耗,哪怕背上两块最大的18650锂电池组,续航也撑不过两个小时。”
他看着那块滚烫的芯片,眉头紧锁。
这就是现有半导体工艺的物理极限。
想要高性能,就必须付出高能耗的代价。
如果能有新一代的电池……或者更高能效比的存内计算芯片……
林允宁摇了摇头,把这个念头压了下去。现在不是搞基础材料研发的时候。
“晓峰,把角落那台3D打印机打开。”
林允宁站起身,活动了一下僵硬的脖子,颈椎发出咔咔的响声。
“把之前设计的那个全包围头盔方案废弃。太重了,霍金的脖子受不了。
“打印一副眼镜架。最普通的那种黑框眼镜。把干电极埋在镜腿和鼻托里。
“至于这个发热的‘砖头’……”
他看了一眼那块连着无数飞线的FPGA,“做一根一米长的屏蔽线,把它和电池组封装在一起。做一个外挂的计算盒,挂在腰上。或者放在霍金教授的轮椅侧袋里。”
“这……”克莱尔看着那堆乱七八糟的线,“这会不会太丑了?这就像是给霍金教授挂了个尿袋。”
“克莱尔。”
林允宁转过头,目光冷峻,“对于一个溺水的人来说,只要那是氧气瓶,哪怕长得像手雷,也是最美的东西。”
……
凌晨两点。
芝加哥海德公园的公寓里,所有的窗帘都拉上了。
林允宁站在全身镜前。