钱学敏沉默了。
孙立国的话,像一块巨石,沉甸甸地压在她的心头。
她无法反驳。
因为孙立国说的每一个字,都站在硬件工程师的“绝对正确”之上。
在有限的“硅预算”和“功耗预算”下,追求一个更通用、更精简、更具扩展性的底层架构,这本身就是硬件设计的金科玉律。
如果为了一个当前看起来很重要的“镜面高光”算法,就去固化一个庞大而臃-肿的SFU(特殊函数单元),那么未来,当出现更先进、更复杂的算法时,又该怎么办?
难道要再加一个新的硬件单元吗?
那样的话,“女娲”神石,最终会变成一个,由各种,功能固化的,专用模块,堆砌起来的,四不像。
笨重,低效,且毫无,未来可言。
从这个角度看,孙立国的选择,无疑是,更具远见的。
可是……
钱学敏,又,心有不甘。
她,不仅仅是,“点睛”组的,组长。
她,更是,“补天”组的,副组长。
她,比,在场的,任何一个人,都清楚,如果,硬件,不提供,任何,高级指令的支持。
那么,编写“龙章”着色器程序的,那个,程序员,将会有,多痛苦。
一个,简单的,pow(x, y)函数。
如果,用,泰勒展开,去,软件模拟。
可能,需要,写,十几行,甚至,几十行的,底层代码。
而且,还要,小心翼翼地,处理,各种,精度问题,和,边界条件。
这,对于,算法的,推广,和,开发效率的,提升,无疑是,一场,灾难。
“难道,就,没有,两全其美的,办法吗?”钱学敏,喃喃自语。
她的,大脑,在,飞速地,运转。
试图,在,孙立国的,“极简硬件”,和,她所期望的,“强大软件”,之间,找到一条,可以,共存的,中间道路。
“或许……”她,抬起头,试探性地,问道,“我们,可以,做一个,折中?”
“我们,不要求,硬件,实现,一个,功能完整的,SFU。”
“但是,可不可以,提供,一些,最基础的,‘辅助指令’?”
“比如,一个,可以,快速,计算出,浮点数,对数的,近似值的,指令。”
“或者,一个,可以,快速,计算,平方根倒数的,指令。”
“有了,这些,基础的,‘半成品’,我们,软件层面,再去,组合,实现,像,‘幂运算’这样的,复杂函数,就会,容易得多。”
“这,就是,著名的,‘卡马克快速平方根倒数’算法的,思想!”
钱学敏,抛出了,一个,来自,另一个时空的,天才设想。
她,希望,通过,这种,软硬结合的,方式,来,打破,僵局。
然而,孙立国,在,听完她的,提议后,依旧,只是,缓缓地,摇了摇头。
“钱教授,你的,想法,很有,启发性。”
“但是,你,还是,没有,跳出,‘为特定算法服务’的,那个,思维定式。”
“你,今天,为了,‘幂运算’,需要,一个,‘求对数’的,指令。”
“那,明天,为了,一个新的,物理模拟算法,你,是不是,又需要,一个,‘求三角函数’的,指令?”
“我们,不能,在,硬件里,打,补丁。”
“硬件,一旦,流片,就是,永恒的。”
“它,必须,是,纯粹的。是,放之四海而皆准的,‘公理’。”
“而不是,一条条,针对,特定问题的,‘推论’。”
孙立国的,态度,异常,坚决。
他,像一个,最顽固的,守门人。
捍卫着,他心中,那,纯粹而完美的,硬件世界。
不容许,任何,来自,软件世界的,“杂质”,侵入。
钱学敏,彻底,没话说了。
她,知道,再说下去,也没有,任何,意义。
这,是,两种,设计哲学的,根本性,冲突。
除非,有,更高级的,力量,介入。
否则,绝无,调和的,可能。
会议室的,气氛,压抑到了,极点。
刚才,还,热火朝天的,讨论声,消失了。
所有,硬件工程师,都,低着头,沉默不语。
他们,既,佩服,孙总工,对,硬件设计原则的,坚守。
又,觉得,钱教授的,担忧,不无道理。
这,似乎,成了一个,无解的,死结。
就在,所有人都,一筹莫展的时候。
一个,略显,稚嫩的,声音,在,角落里,弱弱地,响了起来。
“那个……孙总工,钱教授……”
所有人,都,循声望去。
发现,说话的,竟然是,赵成。
这位,刚刚,被,聂老总,任命为,“女娲”计划,首席技术顾问的,年轻人。
他,不知道,什么时候,来到了,“炼石”组的,会议室。
他,刚才,一直,安静地,站在,门口。
听着,孙立国,和,钱学敏的,整场,辩论。
“赵顾问!”孙立国,看到赵成,眼神,微微一变。
对于,这个,被,聂老总,赋予了,最高权限的,年轻人。
孙立国的心情,很复杂。
他,一方面,承认,赵成,在,理论层面,有着,妖孽般的,天赋。
“女娲”计划的,整个,宏伟蓝图,都,来自于,他的,“转述”。
但,另一方面,他又,觉得,赵成,太年轻了。
在,工程实现领域,缺乏,足够的,经验。
他,不希望,赵成的,一些,过于,理想化的,想法,干扰到,他们,脚踏实地的,硬件研发。
“你,有什么,看法?”孙立国,的语气,很客气,但,也,带着一丝,不易察觉的,距离感。
赵成,没有,在意,孙立国的,态度。
他,径直,走到,那块,写满了,争论焦点的,白板前。
他,先是,对着,钱学敏,微微,鞠了一躬。
“钱教授,您的,担忧,我,完全,理解。”
“软件的,易用性,和,开发效率,确实,至关重要。”
然后,他又,转向,孙立国,再次,鞠躬。
“孙总工,您的,坚持,我,更加,敬佩。”
“硬件架构的,纯粹性,和,通用性,是,我们,‘女娲’神石,能够,行稳致远的,基石。”
赵成的,这两句话,瞬间,就,缓和了,现场,那,剑拔弩张的,气氛。
他,没有,偏袒,任何一方。
而是,首先,肯定了,双方的,价值。
这,让,钱学敏,和,孙立国,的脸色,都,缓和了,不少。
“但是,”赵成,话锋一转。
“我们,是不是,都,陷入了,一个,思维的,误区?”
“我们,一直在,讨论,一个,问题。”
“那就是,‘一个复杂的功能,到底是,应该,由,硬件,来实现?还是,由,软件,来实现?’”
“我们,好像,默认了,只有,这两种,选择。”
“可,事实,真的,如此吗?”
赵成,拿起,一支,红色的,粉笔。
在,白板上,那,代表着,“硬件”的,底层。
和,代表着,“软件”的,顶层之间。
画下了,一条,长长的,横线。
“在,硬件,和,软件之间,难道,就不能,再,增加,一个新的,‘层次’吗?”
“一个,既,不属于,纯硬件,也,不属于,纯软件的,中间层?”
“我们,称之为——”
赵成,停顿了一下。
他的目光,扫过,在场的,每一个人。
然后,一字一顿地,说出了,一个,颠覆所有人,认知的,词语。
“——‘微码’(Microcode)!”
“微码?”孙立国,和,钱学敏,同时,惊呼出声。
这个词,对于,他们来说,是,完全,陌生的。
“是的,微码。”赵成的,眼神,变得,明亮而深邃。
他知道,自己,即将,抛出的,这个,来自于,另一个时空的,超级核弹。
将,彻底,解决,眼前这个,看似,无解的,死结。
“我们可以,把,‘小笨蛋’(计算核心)的,AL-U,设计得,非常,非常,简单。”
“简单到,它,只会,执行,几种,最最,基础的,微指令。比如,寄存器传送,位移,加法……”
“这些,微指令,就像,一个个,最基本的,‘乐高’积木。”
“然后,我们,在,‘班长’(SM)内部,集成,一个,小容量的,可编程的,ROM(只读存储器)。”
“这个,ROM里,存储的,就是,‘微码’。”
“所谓的,‘微码’,就是,由,那些,最基础的,‘微指令’,组合而成的,‘微程序’!”
“当我们,上层的,‘龙章’,编译器,发来一条,比如,‘乘法’的,指令时。”
“硬件,并不会,直接,执行。”
“它,会,把这条‘乘法’指令,当作一个,‘地址’。去,那个,微码ROM里,查找,对应的,‘微程序’。”
“然后,再,由,一个,‘微码定序器’,去,一条一条地,执行,那个,‘乘我们’的,‘微程序’!”
“这样一来,对于,上层的,软件来说。硬件,好像,是,支持,‘乘法’指令的。”
“但,对于,底层的,硬件来说。它,其实,只执行了,一系列的,加法,和,位移!”
“而,最关键的是!”赵成的,声音,陡然,拔高。
“这个,存储‘微码’的,ROM,是,‘可编程’的!”
“这就,意味着,我们,可以在,未来,通过,升级,‘微码’的方式,来,让,硬件,‘学会’,新的,指令!”
“比如,钱教授,您今天,需要的,‘幂运算’指令。”
“我们,完全,可以,把它,写成,一个,‘幂运算’的,微程序,固化进去。”
“这样,软件,就可以,直接,调用。”
“而,孙总工,您,也,不用,担心。因为,我们的,底层ALU,依旧,是,最精简,最通用的。我们,只是,增加了一个,微码定序器,和,一个小小的,ROM。这,在,硬件开销上,几乎,可以,忽略不计!”
“我们,用,一个,极小的,硬件代价,换来了,一个,既,拥有,CISC(复杂指令集)的,强大功能,和,易用性。又,保持了,RISC(精简指令集)的,底层架构,简洁性,和,灵活扩展性,的,完美系统!”
“这,就是,‘微码’的,威力!”
“它,是,架在,软件,和,硬件之间,那道,鸿沟上的,一座,完美的,桥梁!”
赵成,说完,这番话。
整个,会议室,陷入了,长达,一分钟的,死寂。
所有,硬件工程师,都,像,被,施了,定身术一样。
呆呆地,站在原地。
他们的,大脑,已经,完全,停止了,思考。
因为,赵成,所描述的,那个,世界,已经,远远,超出了,他们,能够,理解的,范畴。
孙立国,这位,在,硬件领域,浸淫了一辈子的,老专家。
他的,嘴唇,在,微微,颤抖。
他,看着,白板上,那个,被,赵成,画出来的,三层,架构图。
【软件层(龙章指令)】
【微码层(可编程微程序)】
【硬件层(极简微指令)】
他的,眼中,流露出,一种,看到了,神迹般的,迷茫,和,震撼。
他,知道。
从,今天起。
整个,计算机体系结构的,历史。
都将,被,这个,年仅,二十岁的,年轻人。
彻底,改写。