靠谱的股票股权质押 Jim Keller访谈:传奇架构师的芯片之路

发布日期:2025-02-19 21:32:40 点击次数:78

靠谱的股票股权质押 Jim Keller访谈:传奇架构师的芯片之路

(原标题:Jim Keller访谈:传奇架构师的芯片之路)靠谱的股票股权质押

如果您希望可以时常见面,欢迎标星收藏哦~

引言

Jim Keller,作为全球最著名的CPU架构师之一,在过去几十年中为多个领先的处理器设计做出了卓越贡献。他不仅在AMD、Intel、Broadcom、Apple、Tesla等世界顶尖科技公司中担任过重要职务,还在SiByte、P.A. Semi等初创公司待过,后创办了Tenstorrent AI芯片初创公司,深刻影响了现代计算机硬件的进步。

在去年与计算机博物馆的一场访谈中,Jim Keller为我们回顾了他从一个普通家庭成长起来,逐渐加入半导体行业,辗转多家知名半导体芯片公司,到躬身创办RISC-V AI芯片公司Tenstorrent的历程。他分享了自己的童年、家人的影响,以及在职业生涯中如何通过不懈努力和创新精神,面对一次次技术挑战,突破自我、改变世界。

让我们从这段访谈中,一起走进Jim Keller的传奇人生,探寻这位CPU架构师背后的故事。

访谈实录

Jim Keller的家庭和成长背景

Fairbairn:我是 Doug Fairbairn,今天我们有幸采访 Jim Keller,他是著名的 CPU 架构师,并且在过去几十年中为许多处理器设计做出了贡献,除此之外,他还有其他众多贡献和成就。Jim,欢迎你,非常高兴能请到你。

Keller:好的,谢谢,很高兴能来到这里。

Fairbairn:正如我所说的,让我们从头开始。告诉我你在哪里出生,是什么时候出生的,你的早期家庭生活是怎样的,你的父母是做什么的?你成长时的家庭环境如何?

Keller:嗯,我出生在新泽西州,我的父亲在 GE Aerospace 工作,他们有一个项目会把员工调动到不同的地方。所以他从印第安纳州开始,然后是马萨诸塞州的 Lynn,再到费城,最后他们在宾夕法尼亚州的 Valley Forge 建了一个大工厂。我们家离 GE Aerospace 的 Valley Forge 办公室只有三分钟车程。我是家里六个孩子中的第二个,我的父亲是机械工程师,设计卫星。我母亲是她大学的毕业生代表,她曾经接受过成为教师的培训,她非常聪明,但在我小时候,大部分时间都在家里照顾我们六个孩子,她没有工作。后来她成为了一名治疗师,并且在那方面非常成功。但是作为孩子时,她是全职妈妈,我在一个充满孩子的家庭中长大,我们六个孩子的年龄相差不远。

Fairbairn:你父亲有工程背景,这对你有影响吗?他和你一起做过项目吗?你们有做过类似的事情吗?

Keller:是的,我父亲非常擅长描述和画出任何东西。所以我是在一个这样的家庭中长大的——他会下班回家,说:“哦,我看到了一座桥,来,我给你画一下”,然后他会迅速画出整座桥,告诉我它为什么能工作,为什么不能工作。我就这样长大,认为这就是生活的常态。我的父母也都参加了读书俱乐部,家里到处都是书,他们非常重视智力对话。总的来说,他们是非常聪明的人。他们还有一个家庭朋友在一次家庭旅行中和我聊天,当时我们交换了车,显然我和他聊了好几个小时。

我父亲的朋友告诉他,我是他见过的最聪明的孩子之一。我提到这件事是因为,后来我被诊断为阅读障碍,我直到三年级或四年级才真正学会阅读,而我的父母从来不担心我。所以他们认为,“哦,他没事,只是按自己的方式理解而已。”我想在现代社会,这会引发恐慌。你的孩子在二年级仍然不会读书。但这从来没有影响我。在二年级的时候,我注意到我在那群书本中拿的是字母特别大的书,而不是那些小字母的书,但这并没有太大影响。后来,我偶尔会学会一些东西。我记得在三年级快结束时,我学会了读书,突然间,我能够读书了,书本变得有趣起来,我开始读了很多书。

Fairbairn:所以,虽然学读书的过程对你来说比较慢,但你最终成为了一个热衷于阅读的人。

Keller:我变成了一个读者,但从来不是写作者。我写作总是很困难。我大多能滔滔不绝地说话,但如果能看到整页的文字,我就能把它们写下来。我想,也许在文本编辑和反复修改的世界里,这样会更好。但作为一个孩子,写作总是很痛苦的。但是数学就不一样——他们称之为“情节学习”。我记得我们在学习长除法的时候,我一开始没有理解,直到有一天我突然明白了,感觉就像是“哦,他们是在猜”,然后我就一下子懂了,接着代数也是一样,“F(x) = 什么。”我根本不知道他们在说什么,我想我整整一年的代数课上都在想,“我不知道他们在说什么。”然后它就变成了“哦,这是符号”,然后我就明白了。所以,我有这些瞬间的顿悟。但作为一个孩子,我总是在做自己的事情,学校对我来说只是从做其他事情中抽出的时间。

Fairbairn:那么,你有五个兄弟姐妹。有人走上了技术的道路吗?

Keller:我的姐姐是机械工程师,我的弟弟是计算机科学家,非常非常优秀,我的兄弟姐妹们都很聪明。不过,我们中还有一个治疗师,一个社会学家,一个哲学教授——我们各自做了不同的事情。

Fairbairn:有趣的家庭。那么,你在高中阶段是怎么发展的?有没有什么特别的老师,或者是其他什么人,给你指引了方向或激发了兴趣?

Keller:是的,我有几位非常优秀的老师。我上的是位于费城地区的一个相当大的郊区高中。我们有一位教微积分的数学老师,他每次做特别演讲时,都会穿上他的好西装,戴上五彩斑斓的领带,搞得很隆重。所以,积分学的基本定理就是一个盛大的事件。他会用多色粉笔,他是一个非常有个性的老师,而我们学校的其他一些老师就基本很差,我们几乎什么都没学到。在我们的学校,我们基本上是放任自流的。考勤是自愿的,我的朋友是学生会主席,我们班通过卖足球比赛的小吃赚了很多钱。我们觉得自己好像是在学校之外运作的。对一个孩子来说,那是一个非常狂野的地方。后来,校长被解雇了,我的弟弟说,“我上的是完全不同的高中。”

Fairbairn:这些学生得收拾一下了,是吧?

在宾夕法尼亚州立大学求学

Keller:是的。60年代末期这个国家经历了相当动荡的时期,我长大后,常常通过电视了解我的叔叔们是否死于越南战争,这对我来说是相当创伤性的。然后70年代是那个时期的后果,我开始上高中,既有好的一面也有坏的一面。正如我所说,我遇到了几位非常棒的老师——我的几何老师就非常棒。我还有两位化学老师,安娜·弗尔科夫人,我至今还记得她教我们化学计量学,她是一个了不起的老师,然而,其他一些老师就好像不关心我们。我们不去上课,似乎没人注意到。我高中毕业时拿到了B,几乎没有什么计划,唯一的理由是我喜欢的一个女孩上街去上宾夕法尼亚州立大学。所以,我就申请了。

Fairbairn:啊,这就是你去宾夕法尼亚州立大学的原因,对吧?

Keller:嗯,确实有一个有趣的事件。高中最后一年,我被学生辅导员叫去了。当时,在高年级结束时,会有人注意到你是否要上大学,而现在,他们从小学开始就开始准备了。

Fairbairn:提前好几年。

Keller:她说:“你是个非常聪明的孩子,你应该去麻省理工学院(MIT)。你听说过MIT吗?”我想我模糊地听说过MIT。我当时想:“不,我不想搬到波士顿。”然后她给我了一份按薪水排序的工作清单。那个时候,大学毕业生薪水最高的是化学工程,其次是石油工程,然后是机械工程,最后是电气工程。我觉得前两者看起来很傻。所以,我在机械和电气工程之间掷了一枚硬币。但是我的祖父是电工,每次我们去看他时,他的家里总是充满了电动机、洗衣机和各种各样的杂物。我觉得那些东西很神奇,所以我随机选择了电气工程,因为它薪水高。

我画了一条线,把生物学、物理学、海洋学这些都放在了线的下面。如果你问我大学时想学什么,所有的选择都在那条线下面。但我觉得上大学不选一个能挣钱的专业会很傻,而我的祖父是电工,我觉得这挺有趣的。所以,我报了宾夕法尼亚州立大学,成功被电气工程专业录取了。我打电话告诉我祖父,他说:“注意你的功率因数。” 这指的是电动机中电流与电压之间的角度。所以,这就是我走上工程道路的整个故事。

Fairbairn:就这样走上了这条路。那么,当你选修电气工程时,重点是微电子学吗?是电动机方面的吗?

Keller:不是,不是。

Fairbairn:那你的教育重点是什么?

Keller:我上过一门Fortran课程,上一门逻辑设计课。当时,宾夕法尼亚州立大学——1976年——有一个非常好的电气工程系,大概有600到700名学生。

Fairbairn:很大。

Keller:是的,很大。他们开设了核心课程。你第一年学的是数学、物理和选修课程。我当时还双修哲学,挺有趣的,数学课很棒。机械工程课程——那些是淘汰课程,我记得学到如何解加速旋转参考系的题目时,我觉得太神奇了,我真的很喜欢大学生活。我觉得第一年花了一段时间才跟上节奏。因为在高中,我们总是胡闹,尽管我有很好的老师,但我们不需要认真学习。第一年我一开始成绩不错,但到学年结束时,我的成绩已经很差了。我的父亲说,如果我真打算在大学里挂科,那我应该在夏天好好考虑一下这个问题。因为比起浪费学费,他认为我可以去找个工作,而我当时想:“我才不会在大学挂科呢。” 所以,剩下的时间我表现得很好。

Keller:嗯,我小时候读了很多书,对各种思想非常感兴趣。所以,我双修了哲学专业。关于这个有个有趣的故事。在我大二时,电气工程系收到了一封哲学系主任的信,说他们想见我。我挺兴奋的,心想:“哇,系主任来找我了。”然后他跟我说:“我们从来没有遇到过像你这样的学生,真的是。哲学专业里根本没有电气工程(EE)的学生。我只是想给你看一件事。”然后他给我看了一篇哲学学生写的论文。他说:“这是期中考试。”那篇文章大约五页,写得很漂亮,双倍行距,两面写完。然后他拿出了我的考试成绩,基本上就是半页,里面有很多划掉的部分。他说:“我根本看不懂,吉姆,我不知道你写了什么。”然后他说:“我们哲学专业的学生写作很多,我去问了你的老师,他们都觉得你很棒。但我得告诉你,你永远也无法从宾夕法尼亚州立大学获得哲学学位。不过,你可以上任何你想上的课,你总是能拿B。”所以,我就被哲学系“开除”了,因为我在考试环境下写不出一篇段落。这事挺好笑的。但我还是选修了很多哲学课,真的觉得那是个很有趣的经历。

Fairbairn:这个故事挺有趣的。那么,你完成学业之后,有什么想法吗?你当时是怎么打算的?

Keller:嗯,在宾夕法尼亚州立大学,我直到大二才真正开始学习电气工程,因为当时课程安排是这样的。我在电气工程学科得了全A。事实上,在哲学教授之后,电气工程系的主任打来电话,我当时想:“天啊,我是不是要被电气工程系开除了?这不能发生第二次吧。”但他却说:“我只是想见见你。我们学校没有多少学生能拿到全A。”我说:“嗯,我确实很努力。”他说:“显而易见。”我真正喜欢的方向是电磁场理论。但我的导师是乔·斯塔克博士,他是半导体小组的负责人。IBM曾捐赠给宾州大学一个2英寸的晶圆厂。所以,在我大四时,我上了一些非常有趣的半导体课程——我们在实验室里制作晶体管,甚至是6微米的晶体管。我至今还记得关于氟化氢(HF)的安全简报。我的大四课程主要集中在半导体上。当时我想自己会成为一个射频(RF)工程师,但这真的很有趣。然后,我上了一门编程课程,我觉得那非常有趣。那时是打孔卡Fortran编程,我还上了一门逻辑设计课程,我觉得那也很有意思。

Fairbairn:有意思?

Keller:它没有深入到很深的层次,但能从如此简单的东西构建任何东西,真的是很惊人。电磁场理论很复杂,几乎所有东西都变得几乎不可计算。即使是相对简单的天线和驱动设备,也变得非常难做了。如今,我们为这些东西建造了非常复杂的模拟器。所以,简单的方程式很酷,但它们的应用很快就遇到了计算壁垒。而材料科学就更难了。这是我在宾夕法尼亚州立大学最喜欢的课程,因为教授很棒,材料科学的描述语言也非常精彩。但在书本里,所有的问题最终都变成了简单方程的曲线拟合,因为氢原子以外的任何东西都是无法解决的,这对我来说是一个很有趣的哲学性科学基础问题。然后就是逻辑设计,这从逻辑设计到应用的跨度非常小,基本上就是Karnaugh图,这很简单,但它背后实际上非常奇妙。

所以我并不完全确定自己要做什么。然后我面试了很多工作,主要是在半导体公司——Fairchild、摩托罗拉。但我也随机去佛罗里达州的哈里斯公司面试,我觉得我可以住在海滩上,去冲浪。他们有一个非常酷的计算机项目,是把光纤和高速数据写入薄膜结合起来,他们需要一个逻辑设计师,所以我就接了这个工作。

Fairbairn:所以,环境和工作本身都让你觉得这是个不错的选择。

Keller:是的。然后我的老板是个读书人,他有一书架的书,都是我小时候读过的书,我们聊得非常愉快。后来,事实证明,他在我被雇用后不久就被解雇了。当我到达公司时,他们简直不知道该让我做什么。他们问:“你来这里干什么?”我拿出了一封信,上面写着:“8月15日来上班。”他们说:“嗯,大学生都是6月开始工作的。”我就说:“是啊,但我从大洋彼岸开车过来了。”我和招聘人员谈妥了这个事,他们也表示“不知道。”于是,他们给了我一个工牌和一个办公桌,过了几天,有人走过来说:“我们有一堆测试设备需要修理。”于是,我就花了一年半时间修东西,结果挺好的。

Fairbairn:所以你当时并没有接触到计算机设计?

Keller:他们确实有一些带微处理器的电路板,但它们都坏了。他们还为佛罗里达电力公司设计了一个遥控器,也没有做成。还有一些其他随机项目,我就是个忙碌的年轻人。

Fairbairn:这些项目是别人设计过但还是没弄成功的吗?他们解决不了问题吗?

Keller:是的,我被分配到一个小组,他们有很多基本的逻辑设计问题需要解决,我做了一些逻辑设计的工作,但大部分时间我都在修东西。我做过一块高频电路板,40MHz的STTL电路板,用于为光纤发射器编码数据,但它也没能成功。所以,这就是我第一份电气工程的工作,我们需要修复地面平面,修复很多东西,才让它正常工作。这份工作让我后来被数字设备公司(DEC)录用了。

Fairbairn:那么,你是怎么找到去数字设备公司(Digital Equipment)的机会的?你当时在佛罗里达冲浪...

入职第一家半导体公司Digital Equipment

Keller:有一天,我在《EE Times》上看到了一则招聘广告。我想回到北方,我的家人在费城,波士顿也很近。于是,我就看到了这则广告,招的是一名时钟设计师,来自一个我从未听说过的公司,叫做数字设备公司(Digital Equipment)。所以我在去之前一天去雷神公司(Raytheon)面试了一下,练习一下,因为我好久没面试了,他们当场给了我一个offer,不过我拒绝了。他们为我的机票买单,所以他们挺生气的。

Fairbairn:他们支付了你的差旅费用。

Keller:是的,这件事很有意思,然后他们问我:“你有打算在这里工作吗?”我说:“如果你们不像现在这样待我,我肯定会的。”这件事挺好笑的,后来我去了数字公司,他们当时需要一名高频时钟设计师,虽然很快他们发现我对这方面并不懂多少,但他们还是雇用了我,挺不错的。

Fairbairn:那么,他们把你分配到了哪个小组?

Keller:我在VAX 8800小组工作。组长是Bob Stewart,他曾是PDP 11/44、11/70、VAX 780和8800的架构师之一,所以他是数字公司最优秀的计算机架构师之一。我在一个做缓存子系统的团队工作,做逻辑设计,嗯,我当时就...

Fairbairn:你当时根本不懂计算机架构或缓存之类的东西吧?

Keller:没错。于是一个朋友在我坐飞机之前给了我11/70和780的手册,我就在飞机上读了这些手册。基本上,我进公司后跟每个和我聊的人说:“我有很多问题”,然后我就拿着这些手册问他们:“你们为什么要这样做?这个是干什么的?”我当时挺自信的,他们几乎不知道该如何应对我,他们说:“我们从来没见过像你这样的人。”所以,我就得到了这份工作,工作了大约七年。

Fairbairn:你在VAX 8800上工作?

Keller:是的,8800之后有两个后续型号,不幸的是这两个型号因为政治原因和技术问题都被取消了。但我做得还不错,做了很多逻辑设计和电路板设计。那时是ECL(发射极耦合逻辑)计算机,所以有电气设计、电路板设计、逻辑设计,后来我开始思考计算机架构和CAD工具,自己在晚上写了一个逻辑模拟器和时序验证器,做了几个较大的软件项目,实际上那并不是我的工作。

Fairbairn:他们那时候有类似的东西吗?

Keller:有的。我们买了一个来自硅谷的初创公司,叫做Valid,他们做了一个绘图系统,并配有一个时序验证器。这个系统还行,但使用起来挺麻烦。然后数字公司有一个模拟器小组,他们的模拟器很全面但速度很慢。有一次,我在和Bob Stewart、Jay Grady一起工作时,认识了一些人,比如Forest Baskett和Butler Lampson,我们在给Butler解释逻辑模拟器是怎么工作的时,他就站起来在白板上写了:“你应该这样做,如果这样做的话会快很多。”于是我就按照他的方法写了一个逻辑模拟器,打电话告诉他多快了,他说:“听起来差不多,干得不错。”

Fairbairn:那是 Butler。

Keller:是的。他——是的,我认为他没有做很多实施工作,但他可以思考得非常快。

Fairbairn:不,他告诉所有人应该怎么做,然后每个人都按照他说的去做。

Keller:是的。这完全就是发生的事情。我还遇到了 Chuck Thacker,他是另一位伟大的架构师,他们一直在关注我,因为我有点特别。但我在他们……的时候遇到了这些人。

Fairbairn:是的。当我在那里工作,研究 Alto 的时候,他们在 Xerox PARC。

Keller:是的。所以,Chuck 和 Butler 在 System Research Lab,然后 Jeremy Dion 和 Alan Eustace 以及我遇到的一群人在 Western Research Lab,它们实际上就在街对面。但它们是 Digital 的两个研究派系,我不知怎么地认识了他们两个。

Fairbairn:你和 Dan Dobberpuhl 一起工作过吗?

Keller:是的。

Fairbairn:他是直接参与其中,还是你们的关系如何?

Keller:我在 Digital 大约工作了 15 年。前半部分是在一个中档系统组,做 ECL 设计,大型计算机,然后我在大约 89 或 90 年加入了半导体组。我在 Western Research Lab 工作了六个月,在那里我遇到了 Norm Jouppi,然后和 Alan Eustace 以及一些人一起研究 BIPS 计算机,它……

Fairbairn:在这里,在硅谷?

Keller:是的,在 Palo Alto,然后当我回去时,Pete Bannon 在半导体组找到了一份工作,他说“你应该来这里”,然后我们成为了 EV5 的共同架构师,这是第二款 Alpha 芯片。所以,Dan 做了第一款 Alpha 芯片,EV4,我们做了后续产品,然后 Dan 在某个时候搬到了加利福尼亚,为 Digital 组建了 ARM 团队,也就是 StrongARM 团队。所以我很了解他。我们经常交谈。但我没有在 Digital 直接和他一起工作。

Fairbairn:他是我们非常努力想做口述历史的对象之一,但在他去世前我们并未成功。所以,我很想知道你对他的回忆,他的...

Keller:是的,他确实很了不起。当第一代Alpha芯片推出时,它的频率是166MHz兹,后来到200MHz兹,这个频率比任何之前的处理器要快三到四倍。Dan的桌子总是这样大,上面堆满了电路图,高得几乎要遮住整个桌子,我就问他:“你怎么找到需要的东西?”他说:“只要你不动它,我可以找到任何东西。”然后他会从一年前的电路图中找出一张,说:“这是怎么做的,那个是怎么做的,”就这样。

Fairbairn:那回到你最初在ECL-8800上的项目,你负责的最大项目是什么?你是领导某个领域吗?你的职责是什么?

Keller:是的,在ECL-8800上,我实际上是一个电路板设计师和逻辑设计师。所以我做了总线接口,构建了别人给出的规格的逻辑设计。后来,我开始和其中一个团队合作,做性能模型架构,因为Pete和我成了调试计算机的“专家”。

Fairbairn:Pete...

Keller:Pete Bannon。他是一个微编码员,我是逻辑设计师。当我们在实验室给机器通电时,很多人都在场,但我们基本上在实验室住了一年,调试所有东西,运行所有软件。随着软件逐步启动,做性能建模的人也想要尝试并运行一些东西。然后一些东西按预期工作,但有些东西明显不行。Pete重新写了很多固件,整个过程中,我学到了很多关于计算机是如何从头到尾构建的。当做一个I/O板的那个人辞职时,他们需要人来接替,我就把整个电路图集过了一遍,成了负责调试那部分的人。然后我们交付了公司内部的前十台机器,安装在操作系统小组中。当他们启动软件并开始加载时,机器开始崩溃,我们又去调试它。

Fairbairn:那段时间你从8800项目中学到了什么?从这段经历中,你有没有形成一些关于“这是正确的做法,那个是错误的做法,我们需要更好的工具”之类的看法?从那个项目中你有哪些收获?

Keller:一开始,一切都像是一堆零件:“这里有一个部分,这里有一个部分,这里有一个部分。”但是后来,Bob Stewart基本上在CISC机器中早早就实现了一个RISC流水线。所以,我们有了解码阶段、指令获取、解码、寄存器读取、执行、数据缓存查找和回写。VAX-8800有一个相当简洁的RISC流水线,前面有一两个额外阶段来解码CISC指令,但它们作为微操作来执行。一开始我不明白这意味着什么,但到项目结束时,我知道了流水线是什么,知道了分支预测失败的代价,因为那时候我们没有分支预测器。所以,分支走错了方向时,我们只好刷新流水线。知道了什么是缓存。所以,基本上,这三年就像是架构101课程。到我结束这个项目时,我知道了缓存如何工作,分支如何工作,指令解码器如何工作。VAX的架构有点复杂,因为我们有多个权限级别的架构,还需要处理中断,有些重指令由微代码执行。那部分工作都完成了。

然后是接下来的项目——Argonaut,基本架构加倍时钟频率。从中我学到的是,我们把时钟频率推得比技术本身能支持的更远,结果让构建变得非常困难,而且那时候的分析工具也非常差。于是我就开始参与写CAD工具。最初是时序验证器,后来是模拟器,我们在多个项目中都用到了这个工具。到最后,我虽然没有写性能模型,但我们做了一个性能项目:我们把VAX-8800的一个电路板改造,用来记录所有微程序计数器地址和其他信息。然后Doug Clark写了一篇论文,标题是《VAX计算机是如何花费时间的》,我为这项目贡献了硬件,Pete写了微代码,Doug做了高层分析。这就像是将这些不断变化的部分,转化成一台拥有流水线特性的计算机,最终变成一台因为合理的时间分配而具备性能的计算机。当我加入Alpha团队时,Pete和我从零开始为EV5写了性能模型,这是我们第一次在计算机设计中,以架构规格和性能模型为基础,转化成芯片的经验。

Fairbairn:这期间,编译器组有参与吗?

Keller:有的。编译器组非常关注高质量的编译。这里有一个有趣的过程。在CISC时代,大家会说:“我的计算机更好,因为我有更多的指令。”然后到了编译器时代,人们会说:“我们的编译器更好,因为它可靠,稳定,不会有内存泄漏。”之后,RISC派系出现,他们在系统研究实验室(SRC)建立了Titan,那是一台RISC机器,基本上是在VAX-8800项目的尾期出现的。Titan的板子是VAX-8800的一半,体积是它的四分之一,性能却更好,而且它更简单,没有权限架构,也不是多处理器架构。它的设计理念是:“这台计算机非常简单,建造编译器更容易,而且编译器也有助于性能。”这是一大转折,因为直到那时,编译器更多是在提供功能和质量,而不是在提供性能。当我们过渡到Alpha时,Alpha团队有一个内部研究小组专门做编译器性能工作,编译器组有时候会从性能理念转化到生产编译器的过程,但这在数字公司花了几年才实现,并且最终非常成功。

Fairbairn:所以你对Titan的观察,以及由此得出的结果,后来影响了你自己的方向,你能看到两者之间的不同吗?

Keller:嗯,这个有点难说。Bob Stewart相信将硬件做得尽可能简单,Titan确实朝着这个方向走。但当我们做EV时,比如说EV4是双发射,今天我们会称之为超流水线设计。

Fairbairn:EV4?

Keller:EV4是第一款Alpha芯片。

Fairbairn:哦,明白了。

Keller:然后EV5是四发射的,增加了更多的流水线,配备了多级片上缓存,这可能是一个错误。但要填满四发射的顺序机器,你真的需要编译器的优化才行。这时,关于是编译器带来更多性能,还是硬件来实现性能的争论开始了。

EV6是第三款Alpha芯片。Dirk Meyer和我一起设计了它,那是我们设计的第一款乱序机器。我们的设想是,软件能提供一个基线性能,比如说1倍,随着编译器的改进,可以提高到1.5倍。有人说:“我们只要继续提升编译器。”但当时编译器的搜索空间已经变得非常庞大。VLIW项目大多数都没能成功,因为它们需要投入大量资源,而乱序设计则成为了获取高性能的方式。但当我们设计EV6时,仍然有争论是否能构建出一台高性能的乱序计算机并使其正常工作。虽然已经有一些简单的乱序机器问世,但EV6是四发射、20条指令窗口、100条指令在飞行中的机器,超出了我们当时简单思考的能力。现在来看,这种设计已经算是相对简单的了。但那时,这是一个很大的转变。到了1996年,我已经工作了16年。

Fairbairn:是的,你已经深深嵌入其中了...

Keller:是的,EV5是我第一次在架构设计上的大突破,我和Pete一起做的。我们学到了很多。完成后,它是有史以来最快的计算机,或者说最快的微处理器,但我也有些尴尬,因为它的缺点我清楚得很,几乎不敢谈论它。那是一个有趣的个人经历,因为尽管它其实挺好,且参与其中的团队也非常优秀,但我知道每一个出错的地方。

所以,EV6时,我们从零开始重写了性能模型的架构。Alan Eustace——我描述过我们写的性能模型。那是30,000行代码,包含了各种复杂的东西,他说:“Jim,我写了一个只有1,000行代码的性能模型。”我说:“什么?为什么代码这么少?你到底做错了什么?”那一刻,我感觉像是被重击了一样,“我怎么搞砸得这么严重?”所以,我重新写了EV6的性能模型。它的第一版是1,100行代码。之后,我几乎一周不睡觉,最终把它压缩到了1,000行,能够解析Alpha架构、处理所有追踪信息、运行乱序模型(不包括内存系统)并让它工作。我给Alan打电话:“我做到了,1,000行代码。”我说,“我还是不知道你是怎么做到的。”他说:“看,Jim,我从来没做过,但我知道你有多竞争心强。我觉得如果给你设定一个更高的目标,你可能会做得更好。”他说:“30,000行代码对我来说简直疯了。”那真是挺好笑的。但这让我重新思考了如何构建性能模型,真正深刻地去思考它。在此之前,我们写模型是为了探索一些想法,而不是把它当成一个有价值、能理解、能清晰使用的工具。然后Dirk和我互相讨论,他会拿着模型说,“我要加这个加那个”,他就去重写代码,他编程的水平远超我。

Fairbairn:那EV6是DEC的终结吗?

Keller:是的。

Fairbairn:对你和公司来说,我想是吧。

加入AMD公司

Keller:是的。当我们把芯片流片时,Dirk去了AMD,最终领导了K7的开发并成为了CEO。我一直待到Unix系统在多个芯片上运行起来,然后加入他一起做K8。之后他们做了一个后续项目叫EV7,它是EV6核心的一些调整,但主要加了使用Rambus的片上内存控制器。他们用EV7做了一台128处理器的计算机。我记得这可能是在Compaq收购公司之后才完成的。大概在我加入AMD三个月后,Compaq收购了Digital Equipment。但Pete完成了EV7的开发,并且留在了那儿。

Fairbairn:那你去了AMD?你那时候的朋友已经在那里,招你来一起做下一代产品了?

Keller:对的。我当时是为Atiq Raza工作,他是COO。几年前,AMD收购了NextGen,他们的586处理器变成了K6。AMD以前的286、386、486基本是Intel处理器的“掩模复制”。K5是AMD设计的第一款处理器,虽然它成功了,但也有很多困难。接着他们收购了NextGen,因为他们已经在生产586处理器,并把它改进成了K6。Dirk领导了K7项目,我参与了其中,之后我开始了K8项目。

Fairbairn:那K7和K8的目标是什么?就是下一代x86处理器吗?

Keller:是的,可以这么说。K7在架构上和我们设计的EV6有些相似,但它有宏指令架构,用于拆解x86操作。当时我们认为必须这样做——在RISC机器中,你有加载指令、存储指令、加法指令和分支指令,它们是分开的。但在x86中,一条指令可能包含加载操作数、寄存器操作数、存储操作数,然后某些指令会深入到微代码中。当时有争论,是不是应该获取宏指令然后拆解,还是应该先拆解再发出微操作?K7在整数运算上采用了宏指令架构。但它的缓存系统和总线接口基本上是从Digital授权过来的,实际上就是EV6的总线设计。

到了K8,我们的设计目标是让它更加偏向微操作架构,并且我们还决定支持64位。所以,我对这个架构的最大贡献之一是作为x86-64规格、HyperTransport规格(无缝多处理器架构)的主要作者之一,并对芯片架构做了重大更新,最终它成为了Opteron。后来,在1999年我离开了,加入了一些创业公司,正值创业热潮。

在初创公司SiByte的经历

Fairbairn:是的,那你在这段时间里是在为Atiq工作吗?

Keller:是的,我当时是为Atiq工作,然后Atiq离开了,我也离开了,和一个朋友一起创办了一家公司,资金由Atiq提供,但结果他不能继续那个项目。所以后来我加入了Dan Dobberpuhl,在SiByte工作。

Fairbairn:那Atiq创办的公司是什么?

Keller:我甚至不知道它有没有名字。Atiq当时正处于资助创业公司的状态,我们本来打算开发一个网络处理器并且开发一个CPU。我在AMD待了三年,我们确实完成了64位规格、HyperTransport规格,并且为所谓的多核芯片打下了基础,那个时候我们做得还挺不错的。

Fairbairn:然后你去了SiByte,Dan Dobberpuhl在那儿,是吗?

Keller:对,他是CEO。

Fairbairn:所以他招你过去了。

Keller:是的,然后我就开始了...

Fairbairn:那是一个不同类型的处理器,对吧?

Keller:对。那是一个MIPS处理器,然后我们开发了一个网络SoC。它包含千兆以太网控制器、内存控制器、处理器和一些加速功能。我们和成百上千的网络公司进行了交流,那时我认识了Andy Bechtolsheim和Cisco的几位人,他们几乎直接在餐巾纸上画出图来告诉我们,“你们做出这个处理器,Cisco就会买。”我们最终做出了那个芯片,真的非常有趣。那是一个非常小的团队,最后这家公司被Broadcom收购了。

Fairbairn:那里面有其他DEC的老同事吗?

Keller:有的。团队里有DEC的成员,也有一些Sun的人,还有一堆来自各个地方的贡献者,Intel也有不少。

Fairbairn:那团队有多大?

Keller:我想最鼎盛的时候有125到130人,然后我在SiByte待了一年半左右,之后加入Broadcom,整个过程我大概在那儿待了四到五年。

Fairbairn:回到AMD,你现在已经工作过一种完全不同的指令集了,但你说你从DEC的架构中复制了一些经验。那么你从AMD学到了什么?你之前提到过自己在以前的设计中犯了很多错误...

Keller:哦,是的,确实有很多错误。其实我曾在微处理器论坛上做过一场关于EV6的演讲,那非常有趣,因为在我之前演讲的分别是Power4的负责人、HP的PA RISC团队的人,还有Sun的成员,而IBM的人特别搞笑,他说:“天啊,我得在你们之后发言,真不敢相信。我们的处理器太差了。”Power4的架构确实很酷,但它的频率很低,而且是由多个芯片构成的。

Fairbairn:Power4是哪个公司的?

Keller:IBM。

Fairbairn:哦,明白了。

Keller:然后HP的芯片功耗非常高,架构也挺有意思的。我开始演讲时说:“我来这里要谈论的是世界上最快、最大、最强的芯片,但我发现它只是最快。”因为IBM的芯片超级大,而HP的芯片功耗极高。但在Digital,我们几乎是从晶体管级别开始设计的。设计本身几乎每个芯片都有150个原理图,我们有一种叫做宏模块的设计,它可以是一个晶体管的集合,你可以把它重复多次使用。我们有一个小型的单元库,但有一次我们发现芯片里竟然有26种不同的触发器,很多都是由人手工制作的,我们曾经开玩笑说我们的库里有两种东西,N型器件和NP型器件。

Fairbairn:所以你们在晶体管级别进行了优化。

Keller:对的,但事实证明这完全不可扩展。在AMD,他们有一套非常好的标准单元方法,可以编写RTL代码,然后将其转化为门电路,并且以一种不会失去太多性能的方式布置这些门电路,而且这些门电路是经过表征的,这真是太了不起了。你可以想一想,在计算机设计中,有多少个抽象层次?因为最底层是原子,然后是晶体管,它们是掺杂的器件,再然后是金属堆叠,而在Digital,我们就是在那个层级进行设计的。然后是标准单元,再往上是CAD工具来摆放单元,最后你才有RTL和综合。理解计算机设计是一个层层嵌套的抽象集合,每一层都很复杂,而且每一层都很重要,在某个层次上,每一层都会做一些权衡,但也能让你做更大的事情。嗯,这是一次重大的事件。

Fairbairn:所以你发现了这个方法论。AMD有这些工具吗?

Keller:一些工具做得相当不错,然而有些工具就不那么好了。他们自己写了很多的布局工具。我的一个朋友曾说,他感觉自己像个“人肉合成器”。也就是说,你得把RTL拿出来,然后真的得为所有关键的部分画出门电路。现在我们总是让合成工具来做这些工作。嗯,那真是一段很奇妙的旅程。

Fairbairn:那么,回到SiByte,你们开发的处理器,DEC的经验有直接应用吗?你需要学习一些新的东西来进入面向网络的处理器领域吗?

Keller:在 SiByte,我们仍然——所以,DEC 的人仍然非常相信定制设计。它可能设计得过于定制化,但对晶体管非常友好。比如,我们真的自己制造……

Fairbairn:与……称兄道弟。

Keller:是的。我们自己制造了 PCI Express PHY。比如,购买库和 PHY 的想法在当时简直是——就像,被认为是疯狂的。但我们交付了产品,我认为我在 SiByte 学到的东西是,我与很多客户交谈,看到了很多网络设备,其中很多都有秘密。比如,他们正在做这种新的特殊网络盒子,我会和他们谈两个小时,然后从他们说的话中逆向工程他们所做的一切。这给了我一种,可以说,对这类系统设计如何结合在一起的元理解,然后在某个时候我意识到有多聪明——比如,我们正在构建的芯片实际上部分是来自一些高层人员的直接指令,部分是与很多人交谈,讨论如何制造他们都想要的部件。嵌入式业务很奇怪,因为如果你把每个人都想要的东西都放进去,它就会太贵,没人能负担得起。但如果你错过了重要的东西,没人会买它,因为他们无法使用它。嵌入式世界的诀窍是在足够多的东西使其成为一个很棒的部件,但又不是太多东西使其愚蠢地昂贵之间找到最佳点,这是一件非常奇怪的事情。这几乎就像一个附带项目——我们认为从 Digital 到 AMD,就像在处理器设计中一样,这是一条路,而这就像另一种系统工程,但事实证明它对我来说非常有趣。所以,这非常有趣。

Fairbairn:所以,你学到了很多关于应用程序的知识。

Keller:是的,然后在 Broadcom,我遇到了 Henry Samueli。他也是一位天才,我曾经和他一起旅行,我们会去和新客户交谈,我会做我的 SiByte 推销,我也了解其他两个产品,他会听,大约到了第三天,他说“让我来吧”,然后在他听了三次之后,他对我们的部分进行了更好的演讲,比我做的要好。他是个有点狂野的角色。

Fairbairn:所以,你在大公司工作过,DEC、AMD,现在 SiByte 基本上是一家初创公司,但是……

Keller:是的,然后 P.A. Semi 也是一家初创公司。

Fairbairn:对你来说有影响吗?

Keller:嗯,VAX-8800项目和Alpha项目当时也是小团队。虽然公司很大,但团队只有100人左右,所以团队的动态是非常特别的。我曾有一个理论和一些数据支持,认为大概需要400人四年,300人三年,200人两年,100人一年半。但后来Itanium用了800人,最终还是完成了那个计算机项目。后来我发现,实际上有一部分人从管理层中脱离出来,最终完成了这个项目。也就是说,团队太大时,管理层往往会对最终交付产生影响。

Fairbairn:那么AMD的团队比较大,是吧?或者说你回到AMD之后,第二轮的团队规模才变大?

Keller:对的,回到AMD时,CPU团队大约有500人,但他们负责多个项目,包括Bulldozer核心、Jaguar核心,还有一些团队负责芯片缩小和将处理器用于游戏主机部分,并且还有一个Fabric团队。

在博通的工作经历

Fairbairn:明白了。那么,回到Broadcom,你在这个新的应用领域中学到了什么?你开始接触到全新的处理器应用空间,对吧?

Keller:是的。Henry Nicholas 相信真正拥有平台。所以,你要制造一台网络计算机。有数据平面部分、控制平面部分,有 NIC。所有这些不同的部分组合在一起,一个接一个地,它们加不起来。它们不是真正的产品,但整个系统是一个产品,然后诀窍是如何构建它,才能让多个人满意?是的,细节如此之多,真的很有趣,当时的networking分为以太网世界和 SONET 世界。一个是廉价传输,一个是保证带宽分配和保证延迟,然后随着时间的推移,这些功能融合在一起,网络也建立在抽象层上,即著名的七层网络堆栈。是的,能和这些人在一起,并参与所有这些工作,真是一次伟大的工程之旅,然后还有这种关于物理的好奇之处。当我开始时,20 MHz,100 MHz是一个非常高的频率,我仍然记得看到第一个 10 GHz示波器,我当时想“到底发生了什么?我们怎么会从 100 MHz很难到 10 GHz甚至可能?”现在,我们有 112 GHz的 SARD1,而且,同样,有很多层因素促成了这种情况,我可以看到它们。

我知道封装是如何工作的,引线键合和电感器。我曾经是一个电磁场方面的人,这简直是个奇迹,而且我亲眼目睹了它随着时间的推移而进化。我和 Henry Samueli 谈过,比如,“我们什么时候才能拥有千兆无线网络?”他基本上做了计算。他真的只是坐在那里做了计算。“好吧,这是晶体管性能曲线的斜率,这是器件的尺寸和封装的几何形状,这是投资。如果你想在这里做,那将花费一万亿美元。但如果你等五年,那将花费 1000 亿美元,这是曲线的走向,我预测 5G 会在 2018 年出现”,而这实际上就是它发生的时间。对他来说,就像“好吧,这些都是形状,推动带宽——有模拟信号带宽,但也有编码符号带宽”,这是一个空间。这是一个设计空间,然后它下面还有一些参数在移动,比如“这是半导体的发展方向。这是封装的发展方向。这是编码的工作方式。”他有一个计划。就像“你在开玩笑吧。

Fairbairn:“这就是未来,这就是我们将要做的,这些是需要完成的步骤。”

Keller:嗯,你知道,著名的摩尔定律。当我们建造 VAX-8800 的时候,我们并不知道摩尔定律。在 Digital 内部,也许 Gordon Bell 知道,或者其他人知道。但我们制造的 VAX-8800 比 VAX-11/780 更快,因为客户想要更高的性能。但当时并没有“这是摩尔定律预测的曲线,如果你在曲线之上,你就能赚钱,如果你在曲线之下,你就会赔钱”这样的说法。80 年代并不是这样,然后 RISC 就出现了……

Fairbairn:这是针对半导体行业的人说的,而不是针对系统行业的人说的。

Keller:是的。你可以设计一台计算机。比如,VAX-8800 是由计算机架构师使用门阵列芯片和一些定制芯片作为组件设计的,以实现我们建造这台计算机的目标。而在 Alpha 团队,他们制造了晶体管,真的需要用它们做一些事情,当时晶体管的任务是让晶体管更小、更快,在芯片上放置更多的晶体管。然后 Dan 的天才观察是,如果你正确地构建流水线、电路技术和时钟网络,你可以让晶体管以基本全速运行,然后你不要在流水线上推得太远,因为那样逻辑设计就会崩溃。但如果你把时钟、触发器和锁存器以及所有工具都做对了,你就可以在半微米技术中制造出 200 兆赫的处理器,当你回头看时,你会觉得“发生了什么?这太神奇了。”

在P.A. Semi的从业经历

Fairbairn:那么,我们来谈谈 P.A. Semi。从……过渡到那里是一个很大的转变。

Keller:嗯,它最初是作为 SiByte 的重启开始的。我们获得了 PowerPC 的架构许可,这是一个漫长的过程。然后……

Fairbairn:其他创始人是谁?我是说,你是创始人吗?是……

Keller:有来自 SiByte 的最初三位创始人,他们是高级创始人,然后还有我们另外五个人。

Fairbairn:包括 Dan 吗?

Keller:是的,Dan Dobberpuhl、Amarjit Gill、Leo Joseph 是创始人,然后 Puneet Kumar、Mark Hader、我自己、Sribalan Santhanam 也算是创始人,但我认为我们并不是真正的高级创始人,或者像文档中那样……

Fairbairn:我明白了。

Keller:可以说是有层次的。所以,最初的想法是“让我们做一个类似的部分,但对一切进行升级。”比如,1GHz的处理器升级到10GHz,处理器性能也得到了提升。它是一个乱序的PowerPC核心,架构设计更加激进,以便我们能够进行数据流操作。为了使性能得以实现,你必须将数据从10GHz端口传入,进入片上缓存或内存,进行处理而不需要访问外部内存,然后再把它送回出去。所以,它在架构上是一个更为激进的设计。到了某个时候,它还被设计成一种方式,既有处理器区域,也有前瞻性切片、内存控制器、PCI Express和网络相关的通用部分,然后还有网络加速部分。我们设计了一个部件,可以有两种流片方式。一种是作为网络处理器,供思科(Cisco)等公司使用。但你也可以将它作为独立部件进行构建,这个部件可以是苹果的个人电脑部件。我们也与苹果进行了不少讨论……

Fairbairn: 所以,我以为P.A. Semi的一个主要目标是降低功耗。是这样吗——还是我记错了?

Keller:Dan是做低功耗的,因为他参与了StrongARM项目,然后所有的网络相关的同事,他们有很多箱子,散热有限。25瓦的功耗,你可以把部件放在板上,直接吹风就行。50瓦的功耗,就需要加散热片,把它放到合适的位置。功耗再高的话,事情就会迅速变得复杂起来。之后,我们有一些低功耗的电路设计技巧,团队在时钟门控和低功耗方面做得非常好,而且非常精确的时钟分发,我认为这比行业标准还要好。按今天的标准来看,这个设计并不算低功耗,但在当时,它实际上是相当不错的。

Fairbairn: 所以,目标是性能,但同时尽量降低功耗?

Keller:是的。在网络处理器领域,目标是性能,但同时还要达到某些功耗标准,这样才能正确部署它,就像是一个系统工程问题一样。PC领域的功耗优化已经变得更加精细。所以,桌面部件的功耗是95瓦,因为这很容易通过风扇来散热。桌面领域的目标是尽可能快。移动领域一旦进入,就开始权衡封装上的热点和电池寿命,而当时的移动部件也开始变得可行。它们的功耗仍然是25瓦到35瓦。

Fairbairn: 那么,P.A. Semi最终有没有开始销售部件,还是……

Keller:这家公司被苹果收购了。

Fairbairn: 在它实际开始销售部件之前?

Keller:我们流片出了一个能工作的部件,但公司被收购了。

加入苹果公司

Fairbairn: 你是在P.A. Semi之前离开的,还是先去了苹果,然后……

Keller:是的,我们完成了那个部件,流片后我加入了苹果,然后苹果——接下来发生了一个有趣的情况,三星和苹果合作,要打造一个1GHz的ARM处理器。我曾经和一个人一起工作过——三星和数字设备公司(Digital Equipment)合作,他们打造了叫做EV56和EV68的处理器,这些是苹果芯片在三星代工厂的缩小版。负责这个项目的人打电话给我,寻求我的帮助来使这款1GHz的处理器工作,我说:“我已经在苹果工作了,但你应该找丹(Dan),丹会帮你搞定这件事”,因为他们需要一个大客户,算是这样吧。然后丹搞清楚了事情的真相。他打电话给史蒂夫·乔布斯(Steve Jobs),说:“为什么我要帮助三星,你可以直接收购我的公司,我们可以直接为你们做。”于是苹果收购了P.A. Semi。

Fairbairn: 那你是怎么来到苹果的?

Keller:我在苹果有一些朋友,他们在一个研究小组里,说:“你应该来做点有趣的事情。”我问:“我做什么?”他们说:“我们不能告诉你。”然后有一段时间,我记得我走了很长一段路,穿过了三扇锁着的门才到我的办公室,因为苹果非常喜欢保密,部分是为了戏剧性,部分是——史蒂夫不希望这个项目干扰到那个项目,就像是“你做你的事,你做你的事,你做你的事。”

Fairbairn: 那么,拉你去苹果的那些人,是从数字设备公司来的还是……

Keller:对,我曾和Dave Conroy一起工作。他在数字设备公司(DEC)的系统研究实验室工作,和Chuck Thacker一起合作,他后来加入了苹果,成为他们的计算机大师之一。我还遇到了一些其他的人。我在想,除了Dave,我还认识谁呢?哦,Steve Polzin是另一个来自数字系统组的人,他在Mac工程部门工作。所以,我加入苹果时,认识的基本上只有三个人。

Fairbairn: 那时苹果的处理器设计状况是怎样的?我不太记得了——这是在……

Keller:对,所以我加入了——第一个iPhone芯片。

Fairbairn: 2009年?

Keller:是的,大概是那时候。是2009年吗?

Fairbairn: 2008年?

Keller:对。第一个iPhone已经开始发货,他们实际上距离第二款芯片——内部叫做H2——的流片只有几周时间……

Fairbairn: 那个芯片是——第一个芯片是基于ARM架构的……

Keller:是的,基于ARM架构,ARM的IP。第一个芯片实际上——他自称是架构师的人,给我看了架构文档,实际上就是一份Excel表格,列出了他需要的所有IP。所以他说:“我需要这个CPU,这个内存控制器,这个总线……”就只是IP的一个列表。

Fairbairn: 所以他把一堆IP组合在一起,然后……

Keller:对,然后他们把这个交给了三星,三星把它们组装成一个芯片,结果是可行的。内存延迟很糟糕,性能也很弱,他们几乎没法让软件在上面运行,但软件工程师们设法让它工作了。他们做得非常棒,因为他们基本上把OS X缩小到可以在这个平台上运行,通过这样做,他们优化并最小化了软件。所以后来当我们给他们更快的芯片时,软件就可以真正地扩展了。有人说,iOS和Android之间最大的区别是,Android是在手机芯片已经相当不错的时候被移植过去的,而且它从未像iOS那样被精简过,这可能是真的。

所以,我开始参与H2的工作,然后Tim Millet和我共同设计了H3,我们对其进行了大量优化,H4是我们首次在芯片中放入一个真正强大的图形单元,而H5是P.A. Semi团队交付的第一款处理器,叫做Swift,H6则是我和Gerard Williams设计的,实际上是苹果自那时以来一直在构建的一个大规模乱序计算机。

Fairbairn: 那在之前,是否只是执行一些已经知道的架构之类的,只是把功耗降低并使其在这种环境下工作?

Keller:嗯,最初的手机SSE(单指令流处理器)设计相当简单。你可以这样理解:你有一个无线接口,一个显示接口,一个键盘接口,还有一个运行操作系统的处理器。还有一个小GPU来渲染屏幕。就像这些架构图,纸上这一大块,里面有一堆模块和互联连接。因此,手机芯片的架构自一开始以来大体上都很简单。让它们,嗯,可以说是“神奇”的地方,实际上是达成每瓦性能和功耗的平衡,而苹果则非常积极地推出新技术。

所以,我们比任何人都先推出了64位技术。我们比任何人都先做了高分辨率显示。我们在H4中加入了大量图形性能。就像它完全超出了任何人之前做过的事情。如果你看这款芯片,GPU的尺寸比其他任何手机芯片中的GPU大五倍,而这其中有一部分是来自Steve Jobs和Mike Culbert的想法,Steve有个理念:要做出最好的技术,就需要最好的组件——要做出最好的产品,就需要最好的技术和最好的组件。然后苹果的团队,在他们真正开始投入触摸屏和视觉应用时,极力推崇像高分辨率、大量图形性能之类的技术。图形性能是为了计算机界面服务,而不是仅仅为了游戏服务。苹果从来不是一家游戏公司。

Fairbairn: 为了实现这些目标,架构上有什么独特的方面吗?还是说只是对现有架构进行优化和调整?

Keller:是的,有一些。比如,我们为各种东西设计了硬件部件。苹果的UI设计方式是多层次的。我们的显示管道做了非常酷的合成。在较低的层次上,GPU、CPU和相机处理器的协同工作,在当时是相当新颖的。不过,大部分还是在于真正地看清目标并对准它,然后,苹果通过设计自己的芯片,避免了支付那些中间商的利润。我们直接从三星购买晶圆,后来是从台积电,而不是通过高通或英伟达购买。那些公司是从台积电买晶圆,然后还得加价。所以,苹果能够把额外的成本转化为更多的晶体管,我们确实做到了。

Fairbairn: 所以,这实际上并不是简单地提高了利润率,而是你们能够制造更大的芯片,并且更具成本效益……

Keller:对。以同样的成本,我们可以在苹果手机的芯片中放入两倍的晶体管。我们的一些竞争对手——然后软件应用和处理器的共同演进也发生了变化。我们做出的优化选择让我们能够做到一些事情——如果你说“嘿,大家都想要这个很棒的相机处理器吗?”一个人说“是”,另一个人说“不”,那你就放一个中等水平的相机处理器,因为你不能通过它赚钱。而苹果一直都知道自己想要什么,而且是专门设计的。

Fairbairn: 对。所以你们能真正优化设计。你们有更多的晶体管可以使用。那么,工具、设计方法论方面,苹果是否有一些独特的东西,其他地方没有?

Keller:这是那种新团队常常能做老团队做不到的事情之一。所以,随着苹果设计团队的成长,我们有来自各个地方的人——来自NVIDIA、Intel、AMD的小公司——然后在某个时候,当我们在做方法论的工作时,不再是迭代之前五年大家都在用的设计方法,而是“从不同方法论中选择最好的特性”。有一段时间,我认为我们可能拥有行业中最好的设计方法论,因为它融合了来自不同地方不同思想的人,就像我喜欢说的,混合基因,这非常好。

Fairbairn: 那Steve Jobs是否一直在你们的工作中发挥作用,还是……

Keller:不,他是一个隐形的存在。我和他交谈过几次。每个人都知道Steve第二天想要什么,真是不可思议。我的老板经常和他交谈。

Fairbairn: 谁是你的老板?

Keller:Mike Culbert,他是苹果的非正式CTO。我们认为他是这样的人,然后我们还和Bob一起工作——他是Mac工程的技术负责人,后来负责手机和芯片工程。他是我合作过的最出色的高级副总裁之一,看着这些人如何把Steve想要的东西转化成现实,真是非常有趣。他们经常和他沟通,确保达成Steve的要求,整个公司基本上是以愿景驱动的,有很多方向感,但并不是——Steve并不是一个微观管理者。

Fairbairn: 不是如何做,而是……

Keller:对,他不是如何做的。他是“这是我想要的,你们能做什么?”“告诉我你们能做什么,然后我们看看能从中做出什么。”所以,是的,这真的是一次很疯狂的经历。

Fairbairn: 那你为什么离开了?

重回AMD

Keller:Steve Jobs去世了,Mike也去世了。是的,我知道那将会是一个完全不同的地方,我去苹果部分是为了学习东西。苹果是一个了不起的公司,我记得在那待了大约一年后,我想“我还是不太明白他们是怎么做事的。”因为它不是那种我在数字设备公司、AMD以及和Dan一起做创业时所习惯的那种自下而上的工程文化。苹果更多的是“我想做这个,我们会做一切来实现它,”而不是“我们是伟大的工程师,知道如何制造电脑。”

Fairbairn: “我们告诉你你得到什么。”

Keller:“我们告诉你你得到什么。”是的。我想去一个能够通过意图从无到有创造东西的地方,那是一个疯狂的工作环境,也很棒。但我觉得我学到了很多,我也想试一试其他的东西。所以,我去了AMD,那时候它正处于困境中。

Fairbairn: 那是谁把你带回到AMD的?

Keller:Rory Read。

Fairbairn: 他那时是CEO吗?

Keller:对。我认识Mark Papermaster。在P.A. Semi做PowerPC谈判时我就认识了Mark,然后我们大概重叠了一年左右,当时他来负责手机部门,后来Steve因为天线门事件把他炒了。但Mark是个很好的人。所以,当我在寻找新机会时,我给Mark打了个电话,接着和Rory聊了很多,我挺喜欢Rory的,然后我为Mark工作。Rory说:“我负责业务,你负责技术。我会确保我们不缺钱,但我需要这颗芯片。”

Fairbairn: 那时候AMD的目标是什么——当时AMD状况不好,对吧?

Keller:是的,情况很糟糕。

Fairbairn: 那目标就是设计一款芯片。是从零开始设计的吗?

Keller:对,没错。

Fairbairn: 在这个行业中,什么都不算是完全从零开始,但……

Keller:嗯,Rory给我展示了一张图。AMD的服务器,Opteron最初从零开始,市场份额从35%降到了大约4%。他说:“Jim,发生了什么?”我说:“嗯,产品很糟糕,所以没人买。”他回答说:“看起来好像没人关心。”结果是,Bulldozer并不是一个好的架构,而且它当时还在开发中。

Fairbairn: Bulldozer是Opteron的架构吗?

Keller:是的。嗯,不,Bulldozer是在后来的架构。K6的团队提出了一个很棒的基于单元的方法论,我们在此基础上开发了K7和K8,也就是Opteron。然后他们想要进一步提升频率,迈上一个新台阶,结果他们实际上带回了很多定制设计,加入了一些有争议的架构特性。那两件事没有实现他们的频率目标,而架构特性也不好。所以,这就造成了一个不具竞争力的产品,而AMD当时还在与代工厂斗争,最终将其剥离,成立了Global Foundries。于是他们背负了一个二流代工厂和一个二流架构。我被带进来当Zen架构的设计师,并负责重建这一切。

Fairbairn: 那当时是否很清楚需要做什么?

Keller:哦,是的,完全清楚。方法论不好,团队组织不好,架构不好。然后团队会跟我说:“Jim,我们无法与Intel竞争,因为我们的工艺落后。”我就说:“其实,Intel的IPC是我们的两倍,我告诉你,如果我们能追上他们的IPC,我能帮我们找到一个匹配的工艺。但如果IPC不好,你就不能怪工艺。”

Fairbairn: IPC是……

Keller:每个时钟周期的指令数。

Fairbairn: 每个时钟周期。

Keller:所以,有一个架构方面的因素,还有一个工艺方面的因素。在某种程度上,工艺是推动一切的。所以,IPC就是你架构的好坏,然后架构与工艺性能结合,最终决定了产品的性能。而我们在这两方面都存在问题。至于怎么获得一个好的工艺,我当时没有头绪。Mark是关键人物,他们和三星14nm的Global Foundries谈判达成了交叉许可,这有效果。后来,Rory的合同中提到,AMD将继续在Global Foundries生产,只要Global Foundries能够提供具有竞争力的领先工艺。然后,Global Foundries宣布他们不会做七纳米工艺了。

Fairbairn: 对,他们确实在这方面后退了,是吧?

Keller:是的,AMD当时最终可以转到台积电去生产,但确实是一个巨大的挑战。于是,我给Rory打了电话,说:“你介意我取消所有当前的项目吗?”这也算是解开了Zen的束缚。他们有一个Bulldozer路线图,还有一个Jaguar路线图,分别是大核心和小核心,但它们都没有竞争力。Jaguar其实做得不错,但没人购买那类产品。Bulldozer和Jaguar这些处理器在很多方面都不具竞争力,Rory当时说:“Jim,没人关心我们是竞争对手的50%还是53%,他们只是因为可怜我们才买。”于是,他基本上对我说,“做你想做的事。”然后他会打电话给我:“需要多久?”我说:“四年。”他说:“我没那么多时间,”然后董事会也没有再支持他,最后他离开了。

但是,这个过程非常有趣,部分原因是架构上的调整。从架构上讲,有很多大方向的决定——比如,我们有一份表格,写明了“你需要多少个每时钟周期的指令,什么样的分支预测器,什么样的频率。”我们设定了一个边界框,团队不断尝试重新谈判这些限制。我给出的要求是10平方毫米,5瓦功耗,3.5GHz频率,但他们会回来告诉我:“我们可以做到10毫米,但只能做到3GHz。”我就说:“没门。”

这个任务的核心是把问题转化为我们可以解决的差距,而不是一些无法完成的任务,最终大部分都实现了。后来我们还做了一个ARM处理器,作为架构上的配套,因为当时有一个信念认为ARM服务器会成为主流。我认为这有可能是真的,但在当时,ARM在服务器领域还是有点早。然后我们交付了几个其他产品,包括一个Xbox芯片和一个索尼游戏主机芯片。

Fairbairn: 那你说四年太长了,最后你们做了多久?

Keller:是的,最终确实花了四年。

Fairbairn: 四年。那么,Lisa Su是在这段过程中作为CEO加入的吗?

Keller:是的。当时她负责一个业务单元,主要是ARM服务器和半定制业务。在我在那里时,她大部分时间都在做这个工作,而她并没有参与Zen项目。

Fairbairn: 那么你决定离开是什么时候?是项目完成或接近完成的时候吗?

Keller:大部分都完成了,但可以说当时有一些管理上的困难。我其实并不想离开,但……

Fairbairn: 你是什么原因决定离开的?

Keller:我其实并不想离开,但不是所有事情都会如你所愿。我算是一个比较直率的人,喜欢事情按照我希望的方式进行——很难说清楚。我当时正处于一个阶段,我知道怎么去构建一切,事情变得非常明确。

Fairbairn:那就去Intel了吗?

Keller:不是,去了Tesla。

加入Tesla

Fairbairn:Tesla,嗯。

Keller:嗯,Doug Field 曾在苹果的 Mac 团队工作,后来去了 Tesla,我和他聊过。然后,Raj Singh 和另一个曾为 Doug 工作的人,他们说:“你应该来这里。”我当时问:“我能做什么?你们是造车的。”他说:“不不,车会变成一个计算平台,未来一切都会有计算机。”我当时觉得“太搞笑了”,然后我开始做研究——像是,Tesla 当时已经有了自动驾驶的计划,而且显然 Elon 那时就已经有些名气了。所以,我去找 Doug 和一帮人聊了下,大家说:“来吧,你也可以做做电子方面的工作。”

于是,我们需要升级自动驾驶硬件,做一些事情,我当时想“天哪,我们可以为这个做一颗芯片。”他们当时用的芯片不好,没能达到预期目标。接着,他们安排了和 Elon 的面试。我飞到洛杉矶去见他,在 SpaceX,他带我路过一个会议室,是一个 Landsat 会议室。我父亲曾是 Landsat 项目的首席工程师,那个项目是一个卫星,后来还有火箭发射。我小时候见过一次 Saturn V 火箭的发射,所以,Elon 和我聊起了 Saturn V 火箭和 Landsat,我们聊得挺愉快的。我告诉他,我可以在18个月内做出一颗能驱动汽车的计算机芯片,他基本上说:“好的。”

Fairbairn: 18个月?

Keller:对,18个月。

Fairbairn: 18个月?

Keller:是的,18个月,我们做到了,简直是世界纪录。

Fairbairn: 那是——你们用的是TSMC的技术吗?

Keller:其实我们用的是三星的技术。于是,我就接受了这个工作,没告诉任何人。离开AMD的尘埃还没完全落定。然后有一天,我的朋友Pete Bannon给我打电话,是圣诞节前或圣诞节后打的,他说:“嘿,我听说你要去特斯拉?”我问他:“你怎么知道的?”他说:“你老婆在你寄给朋友的圣诞信里写的。”我说:“我大概是1月5号左右开始。”他就说:“那好吧,我们聊聊吧。”然后他那天晚上就来找我聊了两个小时,他当时还在苹果,特别对他们的AI方向感到失望。于是我就加入了特斯拉,没过三天,Pete就和Elon面试了,Elon说:“Pete很棒。”然后我雇了Keith Witek,他是个律师,因为我们要在18个月内做出这颗芯片,我需要执行大约35项IP合同、供应协议,各种各样的事。于是,我给我在苹果时合作过的三星朋友打电话,说:“我要做这颗芯片,明年我们得完成Tape Out。”他们说:“这太难了。”

最终花了 14 个月完成流片,4 个月在工厂,2 个月启动软件,然后我们就开上了车。Pete 对 AI 引擎有一个非常酷的想法。当时,一个流行的框架叫做 CAFE,它输出一个 op、data、data、data 的列表,然后人们拿着它构建一个编译器,在其上编写一个向量化编译器,Pete 说“如果我们只是按原样执行 op 和 data 呢?”我们制造了一个基本上将 CAFE 指令作为指令执行的芯片。数据可能是三乘三的卷积数据源或其他什么,它有很多有趣的方式来遍历它,我们构建了一个内存子系统来调整数据,以匹配 CAFE 认为它正在执行的内容,这使得编译器非常简单。所以,世界上每个人都在雇佣数百人来编写 AI 编译器,而 Pete 自己编写了编译器,因为从 CAFE 输出到指令输出的转换,可以说,相对简单。最终还有一些更详细的内容。这给了我们一个架构定义,然后我从各个地方雇佣了一些朋友来构建引擎,然后三星制造了芯片。

Fairbairn:在 14 个月内完成它的关键是什么,完成 IP 合同,以及每一步都进行优化?

Keller:每一步都进行优化。就像并行执行。到那时,我已经非常擅长——我告诉人们我是 100% 的人。所以,你有一个——有一个 AI 引擎,一个与之配套的编译器,还有 IP 合同。我们有一个非常好的 SoC 片上系统 架构师,David Glasco。Dan Bailey 从 AMD 加入了我,他是地球上最好的芯片专家之一。三星的执行团队,我认识那些人。我们很快就把他们组织起来了。我们很快就做出了决定,比如安全架构、安全架构、总线架构。我们花了一点时间在摄像头处理上。当时,AI 图像都由摄像头处理器处理,但我们不确定这是一个好答案。我们对一些软件堆栈组件不确定。我们不得不导入一堆东西。所以,我们使用了我们自己的 GPU。

Fairbairn:那么,特斯拉仍然使用相同的架构吗?

Keller:所以,Hardware 3 大约在九个月前停止发货。他们发货了近五年。它是地球上最好的自动驾驶芯片,持续了五年。现在,他们正在发货 Hardware 4,这是一个升级版。它们有架构上的相似之处。当我还在特斯拉时,我们就开始了那个项目,但我不知道它最终的细节。

Fairbairn:那么,你和 Elon 一路上有很多互动吗,或者根本没有?

Keller:是的。他每周有两天在那里,我们一直和他谈话。然后我负责自动驾驶硬件,在某个时候,Doug 要求我负责低压电子设备,然后自动驾驶软件人员时不时地向我汇报,这取决于最近谁被雇佣或解雇。所以,可以说,这很戏剧化。

Fairbairn:Elon 是否想插入他自己关于事情应该如何做的想法,或者理解架构,以及……

Keller:是的。在某种程度上,他不是一个芯片专家。他写过软件。他非常擅长物理、机械工程和可视化事物。关于很多芯片方面的东西,我会向他解释。他会非常感兴趣,但他没有很多关于这方面的想法。但是关于整个事情如何运作以及为什么,是的,他真的很有兴趣,向他解释这些很有趣。我学到——在很多地方,你从“这是问题陈述,这是数据”开始,然后引导人们完成你的旅程。Elon 是一个先解决问题的人。“我们将要做这件事。那是因为我们遇到了这个问题。其他一切都是支持。”有一天,我们向他展示。“这是我们晚上拍摄的图像。这是正在发生的事情。这就是为什么它们很难……”他简直要疯了,就像“你们在说什么?”“好吧,我们马上就要讲到解决方案了。”“好吧,解决方案是什么?”“在第 18 页。”“好吧,从第 18 页开始。你们怎么了?”就像“这是旧照片。这是新照片。”他说“太棒了。新照片好多了。为什么更好?”“哦,我们倒着讲一遍吧。”他的直率很棒。就像,当他谈论第一性原理时,我以前说过。就像,你认为你是一个坚持第一性原理的人,然后你和 Elon 谈话,你会觉得,不,不,他指的是原子。就像,第一性原理是完全另一个层次的。

Fairbairn:是的。那么,是什么让你离开那里的?

Keller:我们完成了 Hardware 3,开始了 Dojo,但我很清楚,这还需要一段时间……所以,Elon 是一个大步前进的人,可以说芯片工程师,有一个节奏和持续改进的路线图,我想——我不确定在流片之前我要做什么两三年。所以,Hardware 3 到 Hardware 4,你可以从论文中读到。你可以在论文中读到。它们相隔四到五年。就我而言,我们计划在 Hardware 3 之后一年流片 Hardware 4,并进行稳步改进。但像 Elon 更像是一个“迈出一大步。充分利用它,迈出一大步”,这也有道理。但我认为“嗯,我想要一些新的刺激。”然后我收到了 Intel 的高级副总裁的 offer,负责他们的芯片工程团队,我认为这会很疯狂,因为 Intel 拥有最好的工厂、最好的 CPU 技术、最好的——他们有 cross-point 内存,他们有很多东西。我认为我们可以去开发下一代高端服务器。但任何——这一切都没有发生,但这是一份非常有趣的工作。

Fairbairn:是什么让它变得有趣?

Keller:当我离开 AMD 时,团队有 2500 人。特斯拉有 400 或 500 人。我加入了 AMD,我的团队有 10000 人。

Fairbairn:你加入了 Intel?

加入英特尔公司

Keller:是的,Intel 有 10000 人,它的范围非常大——客户端部件、服务器部件和网络部件,然后我慢慢发现,很多 Intel 技术都很棒,但很多都停留在旧的 CAD 工具、旧的设计流程上,而且……

Fairbairn:是的。Intel 的设计工具确实陷入了困境,不是吗?

Keller:是的。所以,就像“我们如何重新设计一个如此庞大的组织,使其正确地定位?”他们做了一些事情,比如——他们过去制造集成的客户端部件。所以,CPU 团队、内存控制器团队、PCI Express 团队,他们都为同一个人工作,他们都一起工作,他们制造了一个部件。然后 EVP Murthy Renduchintala 说“我们需要有 IP 团队、SOC 团队和 CPU 团队”,然后他把他们分开了。但它从未真正重构。比如,IP 团队并不是真正的 IP。IP 只是一个设计组,负责向 SoC 交付东西,然后进行测试。所以,他们有所有这些像半过渡的东西,挑战是“你如何重新设计它并修复 CAD 工具?”我接到了 Aart de Geus 的电话,他说“以色列团队正在使用我们的新 CAD 工具。你们是怎么做到的?”我说,“经过了很多争斗。”但这很有趣。那些人很棒。他们创造了地球上最好的设计流程,并使用了 25 年。很难说世界已经改变,变革即将到来,就像“这会怎么发生?”有些人会说“嘿,我们准备好了”,有些人显然,它是——人们非常情绪化。比如,工程师们一生都在建造东西。

Fairbairn:Intel 仍然有一个庞大的内部 CAD 团队,对吧?

Keller:是的,1200 人,其中很多人只是在工具周围构建包装器。所以,我们引入了我们称为裸机流程的东西,即如何为所有 CAD 工具构建低级接口?我们如何改变我们对 CAD 工具的看法?其中一些效果相当不错。

创办Tenstorrent AI公司

Fairbairn:Tenstorrent。

Keller:是的。所以,Tenstorrent 是一家 AI 公司。

Fairbairn:那么,你是如何——你在 Intel 的 10000 人团队中筋疲力尽了吗,或者是什么……

Keller:不。在高层面上。我认为公司和工程团队需要,可以说,比 CEO 做的更大的重置,我非常喜欢 Bob Swan。我们是同事,但他对需要做什么的愿景和我的愿景相差甚远。我没有筋疲力尽。我是……

Fairbairn:你无法完成你想完成的事情?

Keller:这非常困难,我了解到你需要与——CEO 经营一家公司,你不能去开会说“我们需要这样做”,然后他们会说“CEO 说了相反的话”,他有他的理由。他负责公司的财务管理,而我则关注一大堆需要相当大的改进的关键工程技术。这比你能做的要多,比如说,只是顺便做一下。在 AMD,和 Rory 以及我,就像“我们需要从头开始彻底改造它”,他说“太棒了,去吧,因为现在发生的事情不起作用。”所以,这效果很好。在 Intel,效果不太好。所以,我想去一家初创公司工作。我想过创办一家公司。我一直是 Tenstorrent 的天使投资人。我喜欢特斯拉的 AI 技术。我有机会看到所有 AI……

Fairbairn:特斯拉是你第一次真正接触到 AI 技术的内部吗?

Keller:是的。即使在那里,我也不是 AI 引擎的架构师。Pete 是。我设计了构建自动驾驶芯片的计划,而且,我认为我非常擅长跨职能边界工作,使事情能够结合在一起。我认为我可以帮助 Tenstorrent 发布产品,并构建下一代产品。此外,Tenstorrent 的 AI 技术建立在 RISC-V 处理器之上,我们使用多个 RISC-V 处理器来实现这一点,从非常小的到中等的再到大的。所以,我们筹集了投资,组建了一个高端 CPU 团队,以构建一个基本上是核心的 RISC-V 处理器。

Fairbairn:基本上是什么...靠谱的股票股权质押