“到1975年,关于图形学,我已经做够了。”尽管被称为计算机图形学、虚拟现实、人机交互,又或者计算机辅助设计之父——Ivan Sutherland,这位1988年图灵奖得主,早已告别这些被他人所铭记的领域四十年,将研究方向瞄准了一个几乎所有人都认为理所应当,而从不怀疑的问题。
戈登·摩尔曾设想制造异步计算机,但觉得太难,于是放弃了。他说“这不可能,我做不到”。他错了,我今天展示的图片并非仿真,而是实实在在的元件。
----Ivan Sutherland在采访中对我说
“在艾伦·图灵时代,逻辑原件价格昂贵,速度缓慢,而导线的速度快且不值几个钱。不过从那时起,两者的发展路径就反过来了。”Sutherland说,芯片中的逻辑原件的速度越来越快,成本则一路走低,而与逻辑原件相比,导线不但慢,而且代价高昂。所谓“高昂”体现在三个方面:
现代集成电路中,导线占据了绝大部分空间,晶体管则隐匿在由细小导线构成的电路背后;导线是造成现代芯片延迟的主要原因;最重要的是,电荷在这些导线上来来去去,消耗掉了绝大部分电能。
逻辑与存储元件成本曾是图灵的主要担忧,而如今,“通信”而非逻辑应当成为我们最在乎的问题。
“你真的这么在乎通信吗?”Sutherland说,这是他对硬件、软件,以及计算机理论的质问。现今的数字系统设计,基于规律的时钟信号,这些信号将时间分割成离散的步阶。芯片设计者确切知道每个时间步阶将有哪些行为发生,也可以追溯检查先前的步阶发生了什么。这种方式简化了设计的工作。
电报出现前,没有简便的方法远距离同步时间。幸运的是,除了导航,很少有必要了解其他地域的时间。“芝加哥与纽约之间没必要同步,每个城市可以有自己的时区。”然而铁路的出现改变了这种情况——乘客想知道抵达城市的当地时间,调度员也想避免事故发生。幸运的是,电报可以提供一种令两地同时的方式。与此类似,时钟步阶设计范式,让芯片设计者拥有了一种同步概念,时钟在各处同时开始和结束。
随着晶体管与导线变小,能通过时钟信号传递“同步”的区域也在变小,而“时钟区域”的数量则在增加。每个区域,其时钟跳动的相位与它们相邻的区域不同,频率也往往不同。复杂芯片内部往往包含数以百计甚至千记的独立时钟区域。原先那种基于时钟的设计范式在每个区域内仍然有效,但也仅在其内有效。
这种方式阻碍了不同时钟区域之间的数据流动,它强制要求输入数据时钟的频率和相位与目标区域一致,这种同步离不开可靠的特殊措施预防错误发生,就像每个区域都设置了位边境检察员,导致相邻区域产生两或三个时钟周期延迟——这种基于时钟的设计范式,加剧了通信的延迟。
“在1988年图灵奖演讲时,我就在探索一种不需要时钟的设计范式,摆脱时钟暴政。”Sutherland认为,与其令所有逻辑原件遵循一个“外部鼓点”,不如允许它们以自己的节奏运转。这种设计范式的改变,将让芯片更节能,也将让计算机运转得更快,因为不需要跨越边界,加快了通信速度。他觉得这与欧盟成员国之间开放国界,提高了经济效率有异曲同工之处。
摆脱时钟暴政,为优化每个独立部分的设计开辟了自由之路。例如,康奈尔大学的Rajit Manohar和他的学生,设计了一种符合IEEE标准的无时钟双精度浮点加法器,其数据处理能力与基于时钟的设计相当。而其每一次进行加法运算的功耗,不到基于时钟设计的一半,约为40%。这种设计较之前简化,处理简单任务的速度更快,同时允许少见的困难任务运算更长时间。Sutherland所在的波特兰州立大学Asynchronous Research Center也发表过一篇论文,通过允许移位比减法的速度更快,令除法运算速度也达到了提升。
摆脱时钟暴政,也令模块化设计更自如。原DEC首席工程师Sam Fuller曾向Sutherland抱怨,他的团队原本每6个月就能制造出速度更快的处理器,但产品却不能如约问世,因为需要18个月,才能根据新的时钟频率,重新设计整套计算机系统。时钟暴政,让低效模块阻碍了整体性能的提升。他选择让整台计算机匹配单一的鼓点,而非允许每个部分以它们自己的最佳速度运转。
Sutherland说,好似一切暴政,“时钟暴政”源于我们自己选择了臣服于暴君的权威。而他所宣扬的这种与时钟无关的设计范式,类似“自由经济”相对于“计划经济”。可以通过抵抗无处不在的外部时钟频率,重新获得把握局部的自由。
如今,与时钟无关的商业产品已然出现在我们的生活中。荷兰计算机辅助设计公司Handshake Solutions已制造了上千万枚时钟无关芯片,应用在智能卡、护照、手机及其他移动设备中。Intel也在2011年收购了一家从加州理工学院出来的芯片设计公司Fulcrum Microsystems,它们设计了一种自定时的(self-timed)太网交换机芯片,性能出众。
“我正在追寻的这种范式改变,面对着三种令人畏惧的障碍:技术、社会、胆量。”Sutherland解释他所遇到的难题。
首先是技术因素:在设计中不能犯错,因为设计时钟无关系统将让硬件工程师面对类似并行给软件工程师带来的梦魇。不过一些先行者已经证明,时钟无关设计是可能的,有时甚至相当容易,而且他们也揭示了这种设计的优势,例如前面提到的,每次运算功耗只有常规设计的40%。
其次是社会因素:如今,所有商业设计工具,一概假定设计基于时钟;所有工程学校教授的都是基于时钟的设计。我们能训练出足够多的掌握了时钟无关设计的年轻人,让这项技术自我延续吗?
最后,需要勇气:管理者明白时钟设计范式已经过验证,清楚其成本、困难和结果。但他们选择“宁愿忍受这些弊病,而非驶往未知之境”。
“我认定时钟无关设计范式终将流行。它更符合物理规律。”Sutherland说,因通信而付出的代价每高过逻辑一次,就让我们更接近物理的本质——“同步”缺乏意义。自图灵时代起,时钟无关与我们掌握的一切与编程经验都更相符。假如不能避免全局时间限制,软件库就不可能存在。“模块化”与“数据隐藏”是高质量软件遵循的基本原则,这些原则令其可以重用并进行局部优化。软件也是自定时的——每个子例程以自己的步调运行,用户等待结束。设想子例程以某种时钟频率运行将是怎样的情景,例如“我的所有子例程都以3.68毫秒间隔运行,那要运行多少次呢?”Sutherland怀疑道。
软件开发先关注正确性,后着眼于性能。稳定运行后,我们便开始调整使用最频繁的部分,以提高其效率。绝大多数情况,整体性能仅取决于某个小部分。将这种情况与基于时钟的硬件设计对照,所有信号都必须“准时”送达,即便用不上也是如此,“不但在设计过程中浪费精力,在运行中也消耗能源,实在多此一举。”
Sutherland说,仅有少数无畏的企业家和研究者敢于探索他所推崇的这种时钟无关设计。但他预言,不久之后,勇敢的管理者将厌倦在时钟设计范式上浪费金钱,转而采用他的方式,而这种勇气将取得巨大的回报。“假如这些管理者说着亚洲语言,而非我与艾伦·图灵所共有的腔调,我会感到羞愧,但并不会为此而惊讶。”
导师,家人
Sutherland:对我影响最大的人是父母。父亲是位工程师,年幼时,我就在他膝边学到了许多工程知识。你还得有位好母亲,她是位勇敢的女性。某天她遇见了位认识Claude Shannon的人,我恳求他为我们引荐。母亲原本对开汽车极为恐惧,但那天她还是带着哥哥和我奔波五十公里,横穿纽约中部,见到了Shannon。他在当时已名满天下,而我们只是两名高中生。大多数问题是我哥哥问的,后来Shannon曾对我说,他以为我就是跟着凑热闹来的小弟弟。其实那天晚些时候,我也问了犀利的问题,只是现在已回忆不起具体是什么。Claude Shannon开始指导我们,他也是我们的博士导师。
我哥哥的名字叫William Robert Sutherland,按说William的简称是Bill,不过我们都叫他Bert。有时你会听到某人说,“我跟Bill很熟”,你就知道实情了。
我有两次是在家人的领导下工作,之前在哥哥的领导下工作了二十年,现在是妻子Marly Ronken,她是Asynchronous Computing Center主任。这些都是美好的回忆。
你我的观点一样好
Sutherland:对年轻人,我的建议是找到自己的兴趣所在,并努力行动。幸福的秘诀在于喜欢你的事业。“喜欢”是指真正对其感兴趣,若是音乐,就去学音乐,若是计算机,就去学计算机,这也是我所一直遵循的原则。结果是,我从未觉得自己终日工作——相反,我是在玩、享受自己的生活。
在我的国家,年轻人都叫我Ivan,而不是Sutherland博士或Sutherland教授。为何如此?因为你的观点其实和我的一样好,甚至比我更有见解。我会受不可为之事的束缚,但你们没什么不能做,可以大胆研究。这种平等很重要,没人知道一个好观点会来自谁,它可能来自任何人。
研究还与运气关联,因此有时不是人的问题,而是环境造就的结果。我在Lincoln Laboratory发现了世界上最大的计算机TX-2,它的使用方式非同寻常。要知道,那时候操作其他计算机,需要你将穿孔卡交给操作员,他们将其放入计算机,两个小时以后,你收到的是一摞纸片。而只有这台能用光笔、鼠标在显示屏上实时交互,离开TX-2,Sketchpad在任何别的地方都做不出来。
另外我也知道自己想与哪种人一同工作,与我互补。当下的研究,我需要和善于表达自己,语言能力强的人在一起。
最看重的成就
Sutherland:我有两个孩子和四个孙子,他们绝对是我最重要的成就。
不过《Logical Effort》这本书是我最看重的科学作品。我是工程师,大多数时间,我在创造。《Logical Effort》是种科学,告诉你事物如何工作。它讲述设计集成电路的数学原理,令你能迅速制作不同大小的晶体管。在西方传说中,世界是平的,驮在一头大象的脊背上,大象站在龟上,而龟又在石头上……自下而上大小逐渐递增。对集成电路来说,也与此类似。若想驱动大事物,需从小处着手,一步步进行,像个以指数增加的扩音喇叭。《Logical Effort》告诉你如何在扩大时保持逻辑,因为每次做逻辑,你就会失去扩大的能力,它告诉你每做一个“和”或“异或”——这是个复杂的逻辑功能,两个输入值相同为0,不同为1——会失去多少扩大的能力。这是科学,不是工程,但在工程中非常有用。
如何做出好研究
Sutherland:好研究包含三个要素。第一,这是个问题吗?不论是可以解决,还是科技并不那么完善时难以解决的,但总需要有个问题。第二,支持——需要资金,有人为研究者提供物质支撑。第三,需要一位领导者,这是最难寻觅的。
你需要的领导者,是个迫切想解决问题的人,一个宁死也不愿失败的人。有些人天生是领导者,但他们十分稀缺。因为有上百人愿意去跟随,所以每百人当中只有一个。怎样才能找到他们?我也不知道。他们有时就这样出现,一望可知,但在出现并成为领导者之前又无迹可寻。历史上,这样的案例很多,他们原本默默无闻,但恰逢天时、地利、人和,说了或做了正确的事,便突然出现。但有一点我很确定,好研究必定是在好领导的引领下进行。
我有个关于领导力的故事。当我在加州理工学院,是计算机系的负责人,我的领导是工程院院长Bob Cannon。计算机系师生每周有几天下午都会打排球,在停车场我们搭建了简易设施。假如有车影响,就把车搬走——二十个人就能搬动汽车。有时球会碰到车身,留下灰尘。而紧挨着停车场的,是校区建筑办公室,他们负责保证校区的一切井井有条。有次,我们发现场地旁贴着一张“停车场请勿打球”的告示,为此我去找了Cannon院长。就在第二天,校区办公室的工作人员在停车场喷绘了一条线,划出我们的排球场。我问Cannon是怎么做到的,他说很简单,在与办公室一位领导吃午饭时,向他解释校区是为师生服务的,打排球对科研十分重要,因此应该支持师生。
本文转自ink。