超新星 发表于 2024-4-4 06:53:21

自动计算的历史以及世界上第一颗CPU的诞生



计算梦想,从莱布尼茨到图灵

(1)德国数学家莱布尼茨

莱布尼茨27岁时发明了一台能做加减乘除运算的机械装置,不过他并不满足于此,他的雄心是用机器完成逻辑推理。

为了实现逻辑推理,莱布尼茨需要发明一些逻辑运算符号,它们代表观念之间的逻辑关系。例如,A⊕A=A中的⊕表示的不是普通的加法,而是逻辑观念上的合并,例如将马和马合并在一起仍是马。

1679年,莱布尼茨发明了二进制,并对其系统性深入研究,完善了二进制。

不过,莱布尼茨来不及将二进制跟逻辑运算结合起来,就被别的事务占据了时间,他的想法足足沉寂了一个半世纪,直到19世纪一位英国数学家乔治·布尔重新拾起了它。

(2)英国数学家乔治·布尔

18岁的布尔走在空旷的田野上时突然想到,莱布尼茨所沉迷的那些逻辑关系具有某种共性。

例如,“所有马都是哺乳动物”,这句话描述了一些“类”或“集合”。这些集合之间的逻辑关系可以用代数表达出来。具体来说,用A代表马,B代表白色的事物,那么AB就代表既属于A又属于B的事物,即两者的交集——白马,A与B之间是一种“与”的逻辑关系。

布尔还发现,AA表示既属于马又属于马的事物,结果还是马。所以AA=A。这种情况总为真,不管A是代表马还是别的东西。如果把AA=A当成代数方程,它的解只有两种可能:0和1。


图片来源于网络

布尔恍然大悟,只要将A的取值范围限制在0和1两个数值,那么逻辑关系就变成了代数关系,于是布尔认定,只需在代数计算中采用二进制,就能将逻辑推理和代数计算融合起来,从而用代数形式来表达逻辑关系。布尔的这一发现后来成为当代计算机的基石。

布尔发现,0和1还能表示命题的真和假。例如,如果命题“约翰穿了一件白色上衣”为真,那么P=1,否则P=0。类似地,如果“约翰穿了一条白色裤子”为真,则Q=1,否则Q=0。如果约翰同时穿了一件白色上衣和一条白色裤子,那么PQ=1,否则PQ=0。

一切吻合得天衣无缝,布尔用代数来表示逻辑关系和逻辑推理这条路走通了,开创了一种逻辑演绎的新方法,即布尔代数。

(3)弗里德里希·弗雷格

1879年,德国数学家弗里德里希·弗雷格(Friedrich Frege)把布尔的发现又向前推进了一步。如果说布尔为逻辑表达式创造了一些单词和短语,那么弗雷格则创立了一门语言所需的全部语法规则。例如,用弗雷格的逻辑系统表达“如果w是一只龟,那么w是爬行动物”这个命题,可以写成一串字符:(∀w)[龟(w)⊃爬行(w)]。这里的∀表示“任何一个”,⊃表示“如果……那么……”。

一旦定义好弗雷格的规则,我们就只管执行即可,而无须关心符号(例如上面的w)所代表的具体含义,弗雷格梦想着可以将它们交给机器自动推理。

但在1902年,弗雷格的梦想被一封来自英国数学家伯兰特·罗素(Bertrand Russell)的信件打破了。罗素说:“我在一个地方遇到了一点困难。”他发现弗雷格的规则中隐藏着一颗“定时炸弹”。一个集合可能会包含它自身,这样它就是异常的,从而陷入矛盾中无法自拔。

(4)大卫·希尔伯特和库尔特·哥德尔

弗雷格的这个问题与德国数学家大卫·希尔伯特(David Hilbert)在1900年国际数学大会上列出的20世纪有待解决的23个重要问题之一“算术一致性”有关。如果能证明这一命题,那么自动逻辑推导的努力或许还有救。一位出生于奥地利的年轻数学博士生库尔特·哥德尔(Kurt Gödel)决定放手一试。

然而,哥德尔的全部努力都付之东流了。更糟糕的是,他不仅意识到自己无法证明这一命题,而且发现任何方法都证明不了这一命题。换句话说,数学中存在一些命题,我们无论如何不能判定它是真还是假。这意味着这样构造出来的逻辑体系存在重大缺陷,因而弗雷格、罗素、希尔伯特等人希望建立一套完备的逻辑体系是无望的。

1930年,哥德尔在柯尼斯堡的一个数学研讨会上宣布了他的发现,这被称为“哥德尔不完全性定理”,当时科学家冯·诺伊曼也在会场。

(5)图灵和冯·诺伊曼

1935年,24岁的图灵从剑桥大学的数学课上听到了“哥德尔不完全性定理”。在哥德尔的问题上,图灵也从最基本的计算操作开始思考,图灵想象一个人正在纸上做一个简单的计算(例如两位数加法)。


图片来自于网络

首先,他把注意力集中到第一个加数的个位数上,记下这个数,然后将注意力放到第二个加数的个位数上,同样记下它。之后将两者相加,写下结果。然后再将注意力转移到十位数上,依次计算下去。在每一时刻,计算者只关注当前计算所需的字符,并按顺序执行。

图灵将上述过程不断地简化,简化的极限就是一条细长的纸带。他假设将关注的字符放入纸带的方格中并进行计算,然后转向下一个方格再次计算。由此,纸带来回移动,机器每次只关注和计算当前的方格,即使再复杂的算法也能拆分成简单的任务,并在纸带上分而治之。图灵认为这一步骤完全可以借助机器来完成。


图片来源于网络

不仅如此,图灵更进了一步,他认为任何能写成算法的任务都能在这条移动的纸带上完成。这种想法以前从来没有人提到过。

此前,计算机都被设计为只能完成特定的计算任务,如加减、微分、积分等,而图灵则认为计算机能完成任何任务,不管是下棋、处理文档,还是破解密码,只要它能写成一步一步的算法,就能操控这条纸带并一一完成。

这样,图灵预见到了一种能执行通用任务的计算机——图灵机。只要给定解释程序,图灵机就能把任何复杂的算法翻译成机器能理解的代码,从而转化为数值,进行计算。由此,图灵得出了一个非凡的结论:任何可计算的东西都能在图灵机上计算。

1936年,图灵在美国普林斯顿大学数学系的大楼里,遇到了从德国逃到这里的冯·诺伊曼,经过沟通,冯·诺伊曼了解到了图灵的研究。

第二次世界大战结束时,冯·诺伊曼加入了离散变量自动电子计算机(简称EDVAC)研究项目,在设计计算机的逻辑结构时,他提出了一个设想:这台计算机应当作为图灵机的一个真实物理版本,它包含存储器——对应于纸带,能够执行算术基本操作的计算单元,以及一个控制单元,用于把指令从存储器转移到计算单元。

这种计算结构即“冯·诺伊曼结构”,它建构在图灵机的基础上,也是今天绝大部分计算机的通用结构。


冯·诺伊曼结构
1999年,图灵和冯·诺伊曼同时入选了《时代》杂志评选的20世纪最伟大的20位科学家名单,《时代》杂志评论说:“所有计算机都有一个共同点:它们都是冯·诺伊曼机,都是冯·诺伊曼基于图灵在20世纪40年代的工作中所提出的基本计算机结构的‘变种’。每一次敲击键盘、打开数据表格或Word处理程序的人都是在图灵机理论的基础上工作的。”

不过,提出图灵机和冯·诺伊曼架构的理论是一回事,而要实现它们却是另外一回事。

(6)劳德·香农

1937年,美国麻省理工学院一位21岁的硕士研究生克劳德·香农(Claude Shannon)采用继电器作为开关来表示1和0,用于计算。

开关也能做计算?不能,但是开关很适合表达逻辑关系。例如,两个开关可以组成“与”“或”等逻辑。我们只要采用二进制,就能把代数计算转化为逻辑计算,从而用开关来实现代数计算。

首先,开关可以表达逻辑关系。例如,两个串联的开关如果同时导通(输入为1),那么就能点亮灯泡(产生逻辑1),这实际上是一个逻辑“与”运算,只需两个串联的开关即可实现。类似地,用两个并联的开关就能实现逻辑“或”运算。


用开关实现逻辑运算与加法运算

两个开关串联得到“与”逻辑(a);将串联的开关替换成晶体管,实现“与”逻辑门(b);加法器:A与B经过“异或”门得到结果S;A与B经过“与”门得到进位C(c)。

其次,逻辑运算可以实现代数计算。例如,要做一位数的加法,用二进制表示总共有4种可能:0 + 0=0,0 + 1=1,1 + 0=1,1 + 1=10。如果将加号替换为“或”逻辑运算符号(A or B),就有0 or 0=0,0 or 1=1,1 or 0=1,1 or 1=1。前3个加法式子都可以直接用“或”逻辑替代,唯一的例外是1+1=10,个位结果不同,且有进位1。


代数加法、“或”逻辑、“异或”逻辑的对比

那么,1+1得数10中的0该如何得到呢?我们需要修改一下“或”逻辑的规则,将其变为“异或”(xor)逻辑,即“相同的两个数的结果为0,不同的两个数的结果为1”。这样一来,我们就有了0 xor 0=0,0 xor 1=1,1 xor 0=1,1 xor 1=0。“异或”逻辑的结果与加法计算完全一致,所以只需一个“异或”逻辑开关就能实现加法。

至于进位,只有两个加数同时是1时才会出现,而只要把两个1送入“与”逻辑就能得到进位的1,即1 and 1=1。这样,一个加法器就能用一个“异或”电路和一个“与”电路实现。

1948年,香农在贝尔实验室工作时发现了一种更加小巧、快速的开关。“这是一个固态放大器。”肖克利解释说,那时晶体管还没有正式对外发布。这个新诞生的晶体管的开关速度远远超过了继电器开关,甚至可以达到每秒数百万次。

到了20世纪50年代,一台计算机中需要成千上万个晶体管,电路板非常庞大。1954年诞生的第一台全晶体管计算机(简称TRADIC)有一人多高,勉强能塞进“B-52”轰炸机中。

这时,小巧的芯片就变得非常重要。芯片中的晶体管数量越多,计算的规模越大,就越能完成复杂的计算。

假设在一个空旷的场地上有一些沙堆。白沙堆代表1,黄沙堆代表0。每次计算,就相当于移动白色沙堆或黄色沙堆。可以发现,把沙堆的体积减小一半,并不影响1和0的表达与计算。这样不仅消耗的能量减半,移动速度加倍,而且在同一块场地上可以放入更多的沙堆,完成更多的计算。显然,这是一个一举多得的结果。

把沙堆替换成晶体管,把场地替换成芯片,我们会看到,随着芯片上的元件数不断翻番,“沙堆”越来越多、越来越小。量变引起质变,当晶体管数量增长,芯片变成大规模集成电路时,一种将全部计算整合到一颗芯片上的CPU就出现了。

(6)法金发明世界上第一颗CPU

提到CPU,人们的第一反应就是英特尔公司。

英特尔公司成立于1968年,这一年,仙童照相和仪器公司的CEO职位出现空缺,诺伊斯本来极有可能顺位升任这个职务,但是母公司以诺伊斯太年轻为由,没有把这个职位交给他。

于是诺伊斯鼓动摩尔一起出走创业,成立了英特尔(Intel),它是三年前摩尔提出摩尔定律的文章最初的名字“集成电子学”(Integrated Electronics)的缩写。后来格鲁夫和莱斯利·沃达斯也加入了他们。

彼时,仙童半导体公司已经有一大波人出走创业。公司几乎每周都有人跳槽出去创业。这种出走创业模式已蔚然成风,以至于仙童半导体公司成了硅谷培养半导体人才的摇篮,从仙童半导体公司出走的员工总共创立了400多家公司,它们大多坐落于硅谷,被称为“小仙童们”。

那么,诺伊斯和摩尔的新公司准备做什么产品呢?根据摩尔的预测,1968年,芯片上的元件数量将达到512个,这意味着芯片将跨过中规模集成电路的门槛,进入大规模集成电路的时代,诺伊斯和摩尔瞄准了半导体的新应用—存储器。

当时计算机上主流的存储元件是磁芯存储器,稳定但笨重。随着计算机对存储空间需求的急剧增加,诺伊斯梦想用轻巧的半导体存储器替代它。英特尔公司成立后,先推出了编号为1101的256位静态随机存取存储器(简称SRAM),但市场反应不佳。

于是英特尔公司的存亡寄托在了编号为1103的能够存储1024位的DRAM上,这将是世界上第一颗1K内存的MOS DRAM。英特尔公司期待它能成功跨过每比特1美分的门槛,打败磁芯存储器,但这个新产品仍要等上一段时间才能上市。

到了1969年,英特尔公司的现金流越来越紧张。诺伊斯需要为英特尔公司找到一条快速盈利的渠道以缓解现金流危机。

这时碰巧一家日本公司比吉康(Busicom)找上门来,主动送来一项业务。他们想让英特尔为掌上型计算器设计一系列微处理器芯片,实现计算、存储和控制功能。

当时日本公司几乎垄断了全世界的计算器市场,最著名的是夏普公司(Sharp Corporation)。计算器团队的佐佐木正(Sasaki Tadashi)注意到,从20世纪60年代中期开始,每过一年,计算器上使用的芯片数量就会减半。他预计大规模集成电路时代即将来临,于是找了夏普的美国合作伙伴罗克韦尔自动化公司(Rockwell Automation)协助设计包含4颗芯片的处理器。但罗克韦尔自动化公司因为利润原因拒绝了这个合作请求。

佐佐木正去找了自己在比吉康公司开发计算器的校友光岛(Kojima),并建议光岛立即去联系一家美国公司开发计算器上的处理器芯片。

比吉康公司了解到英特尔公司掌握了当时最先进的硅栅自对准工艺,芯片集成度更高。而且,诺伊斯作为集成电路的发明人之一在日本业界非常知名。

1969年6月,比吉康公司与英特尔约定,比吉康公司提出处理器芯片架构,英特尔公司完成芯片电路设计和制造。用现在的话来说,英特尔公司接了一笔代工设计和制造的订单。

比吉康的技术负责人是嶋正利(Masatoshi Shima),他此前开发过桌面计算器的芯片架构。英特尔公司方面将设计任务交给了马尔奇安·霍夫(Marcian Hoff)。

嶋正利将以前的经验顺利“移植”过来,没过多久就完成了80%~90%的架构设计,而霍夫看到嶋正利设计的系统架构后,却暗暗担心起来。整个系统竟要同时容下16颗芯片,系统异常复杂,不仅成本高企,而且需要大量的人力来设计。英特尔公司的设计人员并不多,而且大都投入公司押注的存储器上了,抽不出那么多人力来设计这16颗芯片。

霍夫在诺伊斯的支持下,仔细研究了比吉康公司的方案,然后大刀阔斧地精简了整体系统的架构,只保留了4颗芯片。这4颗芯片分别是4001(ROM)、4002(RAM)、4003(寄存器)和4004(CPU)。它们的数据总线是4位的,因此以4开头,名为“4000系列”。这些芯片构成了“冯·诺伊曼结构”,前3颗组成了存储系统,而4004构成了最关键的计算单元和控制系统。这样一来,英特尔公司承担的整体设计任务就大大减轻了。

经过多轮沟通,比吉康公司接受了霍夫的新架构。但英特尔公司的开发却卡在了具体的电路设计上。霍夫只熟悉处理器架构和指令集,并不懂逻辑电路设计,而且他还接到了新任务,为CTC公司设计8位处理器架构。于是他把“4000系列”芯片的设计任务转交给了MOS场效晶体管研究部的莱斯利·沃达斯。然而,沃达斯同样不懂电路设计,直到1970年初,仙童半导体的前同事法金联系他,并于1970年3月底前往英特尔公司报到后,这个项目才得以继续进行下去。

法金在1941年出生于意大利。19岁那年,他在一家计算机公司奥利维蒂(Olivetti)找到了第一份工作,工作的主要内容是用锗晶体管搭建一台计算机。

法金虽然在仙童半导体公司从事MOS场效晶体管的研发,但他觉得自己的兴趣仍在于芯片电路设计,去英特尔公司做芯片设计应该是个不错的选择。


费德里科·法金

法金需要设计的4颗芯片,从4001到4004难度逐渐增加,4001、4002和4003是存储器,相对容易,而4004是逻辑电路,预估有1900个晶体管,实际上最后有2200多个晶体管,不同于其他单一功能的专用芯片,这颗CPU能实现数学计算、控制交通灯和电梯等各种功能,是第一款通用处理器芯片。

4001、4002、4003芯片先后测试成功,4004则是直到1971年1月下旬才得以测试成功,并且完全符合预期。速度比法金19岁时用锗晶体管搭建的计算机还快10倍,而功耗只有0.75瓦,仅仅是锗晶体管计算机的1/1000,世界上第一颗CPU芯片诞生了。


然而,英特尔公司却没有人对此欢呼庆祝。公司内部对是否大规模销售这颗CPU芯片产生了严重分歧。

不过,英特尔公司的销售主管埃德·盖尔博(Ed Gelbach)极力支持CPU项目,并给出了一个极具诱惑性的理由:一旦客户购买了4004 CPU,就仍需购买存储器,而这能极大地带动英特尔存储器的销售。

法金则为4004 CPU找到了许多应用场景,包括工厂的自动测试平台、出租车计价器、自动售货机、电梯、交通灯、医疗设备等。

就在这时,比吉康公司遇到了麻烦。计算器的市场价格一路下跌,公司现金流变得紧张起来,诺伊斯亲自前往日本谈判,承诺下调设计费,换来了销售4004 CPU的权利。

1971年11月,英特尔公司在《电子新闻》周刊上打出占据两页纸的巨幅广告,宣告集成微电子的新时代来临。在拉斯维加斯的秋季电脑展上,英特尔公司推出了重新命名的“MCS-4”处理器。

就在法金测试成功4004 CPU一个月后,德州仪器公司也发布了一款CPU芯片,可惜它没有采用硅栅工艺,芯片面积较大,最终没能得到大规模应用。

此后,英特尔公司开始将研究方向放到了更复杂的8位处理器芯片8008上。同样由霍夫设计架构,法金和嶋正利等人设计电路。之后又设计了升级版的8080 CPU,大获成功。在此基础上,英特尔公司又发布了8086处理器,这成为x86系列CPU的起点。

1981年,IBM公司推出了个人计算机,并选择了英特尔公司的8086处理器作为个人计算机上的CPU。个人计算机具有良好的兼容性,应用领域延伸到各个领域,使得8086成为最受欢迎的处理器。后来陆续有了80286 CPU、80386 CPU、80486 CPU、80586 CPU,以及至强(Xeon)CPU等,其辉煌一直延续到了21世纪。

IBM公司在允许英特尔公司作为其CPU供应商时附加了一个条件,英特尔公司必须开放自己的x86指令集给第二家CPU制造商,以避免供货风险。英特尔公司选中了规模较小的超威半导体公司(简称AMD),这家公司是仙童半导体公司的前员工杰里·桑德斯(Jerry Sanders)创立的,后来他们跟英特尔公司展开了激烈的竞争。除此之外,IBM公司推出了Power系列CPU,摩托罗拉公司推出了68000系列CPU。

在个人计算机领域,英特尔公司独占鳌头,成了CPU领域难以撼动的“领头羊”。2005年,英特尔公司的x86处理器替代IBM公司的Power处理器,成为苹果公司的计算机处理器供货商。

1974年,法金从英特尔辞职,创办了齐洛格公司(Zilog),并与嶋正利一起开发了风靡一时的Z80和Z8000处理器,在处理器市场上与英特尔不分伯仲。但后来8086 CPU成为IBM公司个人计算机的首选,而齐洛格公司的Z80和Z8000 CPU逐渐走向了衰落。

“最没效率的方法”,弗里曼发明FPGA

20世纪80年代后,日本的通用型芯片大举“进攻”美国,尤其是存储器芯片,它们结构简单,容易设计,产量大、价格低,这直接导致许多美国半导体公司亏本甚至关停了通用芯片,转向了差异化的专用集成电路(简称ASIC)。

但并不是每个客户都有能力支付巨额的ASIC设计费用的。即便客户咬牙下血本购买了ASIC芯片,只要芯片中存在一个小错误,整个芯片就报废了,得重新等待一两个月才能拿到新一版芯片,而此前花费的巨额资金也就打了水漂。

如何才能既满足差异化的定制需求,又免去ASIC的设计和制造风险呢?一个方法是,预先制造好芯片“模板”,它能同时提供多种用途以满足差异化需求。这种想法可以比喻成提供烤好的蛋糕坯给客户,从而省去了烤蛋糕的时间和麻烦。客户拿到蛋糕坯后,再添加上不同的水果和奶油,就可以满足各自的口味。

编程芯片也是类似的道理,它的内部预设了基本模块,客户拿到芯片后,对内部电路进行编程后就能使用,从而免去了版图设计和制造的过程,还节约了等待的时间。

早期,用户只能将自己的定制信息存储在可编程只读存储器(简称PROM)里。到了20世纪70年代,工程师开始用可编程逻辑阵列(简称PLA)实现逻辑功能,它只需一组“与门”和一组“或门”就能实现所有可能的逻辑功能。

为了理解PLA的逻辑,可以看一个简单的穿衣组合的例子。如果要表示“约翰穿了白上衣+白裤子”或“穿了蓝上衣+蓝裤子”,就可以用“(P and Q)or(R and S)”,简写成“PQ+RS”:这是一种“与-或”组合。


可编程逻辑阵列

左边是“与门”阵列,右边是“或门”阵列,每个交叉点都代表一个熔断丝开关

实际上,所有逻辑运算都能表示为“与-或”组合,就像任何多项式都能写成“乘-加”的组合,例如z=ax+by。然后,我们就能用一组“与门”+“或门”来实现任意逻辑功能。这就是PLA的基本原理。

美国的西格尼蒂克公司(Signetics)开发了第一个商用的现场PLA器件82S100。在现场PLA中,“与门”阵列前有一组熔断丝,将“与运算”编程;在“或门”阵列前同样有另一组熔断丝,将“或运算”编程。

然而,信号在进入“与门”和“或门”前需要经过两组熔断丝,这不仅拖慢了速度,而且增加了功耗和成本。

单片存储器件公司(Monolithic Memories,Inc.)的约翰·比克纳(John Birkner)提出,可以去掉“或门”前的熔断丝,只保留“与门”前的熔断丝用于编程。这样做牺牲了一部分PLA的灵活性,但仍能实现PLA的大部分功能,而且能换取更快的速度、更低的成本和功耗。这就是可编程阵列逻辑(简称PAL),一经推出就大受欢迎。

到了20世纪80年代,PAL这条路却即将走到尽头。

让我们回到穿衣组合的例子。当约翰可挑选的上衣和裤子的种类大大增加后,会发生什么?例如,上衣和裤子种类各增加了100倍,那么两者的组合会增大多少呢?是100的平方,也就是10000倍。可以把它想象成一个Excel表格,当横向表头和纵向表头分别扩大了100倍,那么表格的“面积”则扩大了100×100,即10000倍。

当芯片选择开关的规模以平方倍增加,随之而来的功耗与面积同样也会按平方倍增加,这必然不可持续。

我们可以想象一座城市。如果整座城市采用集中布局,即住房、商场、洗衣店、饭店、理发店等都有专门的区域。随着规模扩大,不同区域之间的距离就会越来越远,这将使得人们到访不同区域的成本大大增加。PLA和PAL芯片的规模问题与此同理。

弗里曼想,PAL里的集中控制方式限制了芯片规模的扩大,他想将其改为分布式排布,便于阵列的进一步扩展。

弗里曼的想法是把城市分割为大小相等的街区,变成分布式结构,每个街区都是预先设计好的“综合体”,每个街区都能提供一应俱全的住房、商场、洗衣店、饭店、理发店等。这样一来就不存在规模问题,城市可以按照这个模式一直扩张下去。街区之间采用横平竖直的街道划分,每条街道的交汇口都允许直行、拐弯或斜插,这样就能从一处抵达任何方向。


FPGA架构

每个黑色方块中都包含了多种逻辑功能

弗里曼的分布式结构里,每个逻辑功能模块都提供所需的全部功能:时序单元、计算单元、查找单元等,这些模块叫作可配置逻辑模块(简称CLB),它们之间由互连模块连接起来,这些互连模块位于每个街区的交汇处,由上下左右的通路相连。

由于消除了“与阵列”,FPGA架构由此能自由地建造逻辑模块。只需将模块向上下左右4个方向扩张,就能完成芯片规模的扩张。

当然,这种分布式结构也存在问题。每个街区都包含所有可能的场所,但实际上不是每个场所都会发挥作用,有些只会白白空在那里。在FPGA里也是如此,如果芯片只需要实现很少几种功能,那么包含各种功能的逻辑块中有许多晶体管就“浪费”了。正是这个想法挑战了当时主流的“晶体管越少越好”的观念。

弗里曼通过一种极度“浪费”晶体管的方式,换来了逻辑编程芯片的规模增长,使其不再受功耗和面积的羁绊。这种“浪费”是值得的,因为弗里曼能看到更远的未来,他认为摩尔定律最终将打垮成本,确信这个技术将经受住时间的考验。

弗里曼是在齐洛格公司工作期间产生FPGA的想法的。他找到上司,请求公司立项开发FPGA芯片,以此作为公司的第二业务来源,但齐洛格公司的大股东埃克森美孚公司经过一番评估,否决了这个想法。

1984年2月,弗里曼从齐洛格公司离职创业,成立了赛灵思公司。同年3月,卡特加入赛灵思公司,他的任务是设计第一款FPGA芯片XC2064。


图片来源于网络

XC2064芯片的尺寸很大,达到了7.8毫米,甚至超过了摩托罗拉公司32位的68000处理器,总共用了32000个晶体管。

1985年7月,卡特拿到了第一批FPGA样片,他将配置数据输入这颗芯片。保险起见,卡特给其中的一个CLB只配置了最简单的反相器功能,作用只是将比特0翻转为1或者反过来。卡特成功了,这是世界上第一颗能工作的FPGA。

相对于死板的ASIC(专用集成电路),FPGA充分地发挥了灵活性的优势,因为客户能将逻辑关系输入其中,并配置成任何自己想要的功能。当客户需要小规模地试验一个想法时,他们会尝试FPGA。当通信和网络领域的客户面对不断变化的标准时,他们也会尝试FPGA。近年来,随着人工智能的发展,FPGA又找到了新的应用场景。

2021年,赛灵思公司占据了FPGA全球产值的一半,阿尔特拉公司(Altera)和爱特梅尔公司(Atmel)分列第二和第三。

进入21世纪后,甚至FPGA内部都集成了一个免费的微处理器,它也是一台图灵机,如此巨大的算力正是起源于图灵那个极其简单的移动纸带的想法。

计算是拉动摩尔定律不断获得验证的重要动力。自动计算的历史可以追溯到莱布尼茨和布尔。布尔在19世纪发现,只要把数值选择限定为0和1,就能把代数计算转化为逻辑计算,从而用开关来实现代数计算。图灵提出了通用图灵机的概念,使得计算机除了计算之外,还能够完成各种任务。

20世纪以来,计算机分别采用继电器、真空管和分立的晶体管作为开关元件,体积十分庞大。

20世纪60年代起,人们开始用芯片搭建计算机,伴随着MOS场效晶体管技术的成熟和芯片集成度的提高,到了60年代末,只需一颗芯片就能实现大部分计算功能。

英特尔公司的霍夫于1969年提出了精简的CPU架构,他的同事法金于1971年设计并做出了第一颗CPU芯片4004。

伴随着个人计算机和CPU的兴起,英特尔公司和超威半导体公司成为最重要的芯片生产商。

法金于1974年离开英特尔公司,成立了齐洛格公司,与英特尔公司在芯片开发与生产领域展开竞争。1984年,齐洛格公司的弗里曼发明了一种更灵活的FPGA芯片,成为CPU的重要补充。

注:本文节选自汪波老师的《芯片简史》

页: [1]
查看完整版本: 自动计算的历史以及世界上第一颗CPU的诞生