有史以来最具影响力的芯片:42年历史的8086裸片拆解分析

EETOP

EETOP创芯网(易特创芯):国内著名的老牌电子工程师社区及半导体行业门户网站(150万会员)

www.eetop.cn bbs.eetop.cn

blog.eetop.cn edu.eetop.cn

来源:EETOP编译自righto

英特尔8086微处理器是在42年前的上个月推出的, 我们为此款芯片制作了一些高分辨率的裸片以示纪念。8086是有史以来最有影响力的芯片之一。它开创了x86体系结构,该体系结构如今仍占据着台式机和服务器计算的主导地位。
下图是8086的裸片照片。在这张照片中,可以看到芯片的金属层,大部分遮住了其下的硅片层。在裸片的边缘,细细的绑定线提供了芯片上的焊盘和外部引脚之间的连接。(电源和接地焊盘各有两根绑定线,以支持较大的电流)。该芯片在当时是很复杂的,包含29000个晶体管。

(点击查看大图)

观察芯片内部
大多数集成电路都是用环氧树脂封装的,为了观察到内部的裸片,对于环氧树脂封装的芯片我们需要用到危险的酸来溶解封装。为了避免这种情况,我采用陶瓷封装的8086来替代。打开陶瓷封装很简单,就是用凿子沿着缝隙敲击,然后将陶瓷顶盖弹开即可。
40引脚陶瓷DIP封装的8086芯片
除去顶部,可以在中心看到硅芯片。芯片通过微小的绑定线连接到芯片的金属引脚。这是40针DIP封装,当时是微处理器的标准封装。请注意,硅芯片本身仅占芯片尺寸的一小部分。
8086芯片在集成电路封装的中间
我们采用冶金显微镜拍摄了数十张裸片的照片,并使用名为Hugin的程序将它们贴合成高分辨率的图像,文章开头的照片显示了芯片的金属层,但该层隐藏了其下方的硅。
在显微镜下,可以看到8086部件号以及版权日期。绑定线连接到焊盘和位于顶部的一部分微码ROM
对于下面的管芯照片,去除了金属和多晶硅层,显示了具有29,000个晶体管的底层硅。2  标签是根据我的逆向工程显示的主要功能块。芯片的左侧包含16位数据路径:芯片的寄存器和算术电路。加法器和高位寄存器构成与外部存储器通信的总线接口单元,而低位寄存器和ALU构成处理数据的执行单元。芯片的右侧具有控制电路和指令解码,以及控制每个指令的微码ROM。
在下面的芯片照片中,去掉了金属和多晶硅层,显示了底层的硅和29,000个晶体管。标签显示了主要的功能块。芯片的左侧包含16位数据通路:寄存器和算术电路。加法器和上层寄存器构成与外部存储器通信的总线接口单元,下层寄存器和ALU构成处理数据的执行单元。芯片的右侧有控制电路和指令解码,以及控制每条指令的微码ROM。
显示主要功能块的8086微处理器的裸片。
8086的一个特点是指令预取,它通过在需要指令之前从内存中获取指令来提高性能。这是由左上方的总线接口单元实现的,它可以访问外部存储器。高位寄存器包括8086的臭名昭著的段寄存器,它提供对比16位地址所允许的64 KB更大的地址空间的访问。对于每次存储器访问,都添加了段寄存器和存储器偏移量以形成最终的存储器地址。为了提高性能,8086有一个单独的加法器用于这些内存地址计算,而不是使用ALU。高位寄存器还包括六个字节的指令预取缓冲区和程序计数器。
芯片的左下角存放着执行单元,该单元用于执行数据操作。低位寄存器包括通用寄存器和堆栈指针等索引寄存器。16位ALU执行算术运算(加减法)、布尔逻辑运算和移位。ALU不执行乘法或除法,这些运算是通过一连串的移位和加/减法来完成的,所以速度相对较慢。
微码计算机设计中最困难的部分之一就是创建控制逻辑,该逻辑用来告知处理器的每个部分如何执行每条指令。1951年,莫里斯·威尔克斯(Maurice Wilkes)提出了微代码的想法:代替由复杂的逻辑门电路构建控制逻辑,可以用称为微代码的特殊代码代替控制逻辑。为了执行一条指令,计算机在内部执行一些更简单的微指令,这些指令由微码指定。使用微码,构建处理器的控制逻辑成为编程任务,而不是逻辑设计任务。
微代码在20世纪60年代的大型计算机中很常见,但早期的微处理器如6502和Z-80并没有使用微代码,因为早期的芯片没有空间来存储微代码。但是,后来的8086和68000等芯片,利用芯片密度不断增加的优势,使用了微代码。这使得8086可以实现复杂的指令(如乘法和字符串复制),而不会使电路更加复杂。缺点是微码占用了8086的很大一部分裸片;在裸片照片的右下角可以看到。
微码ROM的一部分。
上面的照片显示了微码ROM的一部分。在显微镜下,可以看到微码ROM的内容,并且可以根据每个位置上是否存在晶体管来读取位。ROM由512条微指令组成,每条21位宽。每个微指令指定数据在源和目标之间的移动。它还指定了微操作,可以是跳转,ALU操作,内存操作,微代码子例程调用。微码非常有效;一个简单的指令(例如递增或递减)由两个微指令组成,而更复杂的字符串复制指令则由八个微指令实现。
8086的历史
通往8086的道路并不像你想象的那样直接和有计划。它最早的祖先是1970年的台式电脑/终端机Datapoint 2200。Datapoint 2200是在微处理器诞生之前,所以它使用的是由一块布满独立TTL集成电路的电路板构建的8位处理器。Datapoint咨询英特尔和德州仪器公司是否可以用一块芯片取代那块板子。复制Datapoint 2200的架构,德州仪器在1971年推出了TMX 1795处理器,而英特尔推出的是8008处理器(1972年)。然而,Datapoint拒绝了这些处理器,这是一个致命的决定。尽管德州仪器公司找不到TMX 1795处理器的客户而放弃了它,但英特尔还是决定将8008作为产品出售,就此开创了微处理器市场。英特尔在8008之后又推出了改进的8080(1974)和8085(1976)处理器。
Datapoint 2200计算机。照片由Austin Roche提供。
1975年,英特尔的下一个重大计划是将8800处理器设计为1980年代英特尔的主要架构。由于计划的高性能,该处理器被称为“微型大型机”。它具有为Ada等高级语言设计的全新指令集,并在硬件级别支持面向对象的编程。不幸的是,该芯片当时过于雄心勃勃,大大落后于计划。它最终在1981年推出(作为iAPX 432),性能令人失望,是一款商业失败的产品。
由于iAPX 432进度落后,因此英特尔在1976年决定在iAPX 432就绪之前需要一个简单的,权宜之计的处理器来销售。英特尔迅速将8086设计成一个16位处理器,与1978年发布的8位80804有一定的兼容性。随着1981年IBM个人电脑(PC)的推出,8086有了很大的突破。到1983年,IBM PC成为最畅销的计算机,并成为个人计算机的标准。IBM PC中的处理器是8088,是8086的变种,采用8位总线。IBM PC的成功使8086体系结构成为仍然持续了42年的标准。
IBM PC为什么选择Intel 8088处理器?据最初的IBM PC工程师之一David Bradley博士说,关键因素是团队对Intel开发系统和处理器的熟悉程度。(他们在较早的IBM Datamaster台式计算机 中使用了Intel8085 。)另一位工程师Lewis Eggebrecht表示,Motorola 68000是值得竞争的产品,但其16位数据总线将大大增加成本(与8086一样)。他还称赞了英特尔更好的支持芯片和开发工具。
无论如何,使用8088处理器的决定巩固了x86系列的成功。IBM PC AT(1984)升级到兼容但功能更强大的80286处理器。1985年,x86系列产品的80386移植到32位,然后在2003年采用AMD Opteron架构的移植到  64位。x86体系结构仍在通过AVX-512  矢量操作(2016)等功能进行扩展  。但是即使进行了所有这些更改,x86体系结构仍保留了与原始8086的兼容性。
晶体管
8086芯片采用了一种叫做NMOS的晶体管。可以将晶体管视为开关,控制电流在称为源极和漏极的两个区域之间流动。这种晶体管是通过在硅基底的区域掺杂杂质来制造具有不同电性能的 "扩散 "区域。晶体管由栅极激活,栅极由一种特殊类型的硅制成,称为多晶硅,层叠在硅基板之上。晶体管通过上面的金属层连接在一起,构建了完整的集成电路。现代的处理器可能有十几层金属层,而8086的金属层只有一层。
集成电路中MOSFET的结构。
下图是硅的特写照片,显示了算术逻辑单元(ALU)的一些晶体管。掺杂的导电硅呈深紫色。白色条纹是多晶硅线穿过硅的地方,形成了晶体管的栅极。(23个晶体管形成7个门)晶体管的形状很复杂,以使布局尽可能高效。此外,晶体管有不同的尺寸,以便在需要的地方提供更高的功率。请注意,相邻的晶体管可以共享源极或漏极,从而使它们连接在一起。圆圈是硅层和金属布线之间的连接(称为过孔),而小方块是硅层和多晶硅之间的连接。

8086中一些晶体管的特写镜头,金属和多晶硅层已在这张照片中去除。由于薄膜干扰,掺杂的硅具有深紫色外观。

结论
8086的本意是在英特尔发布他们的旗舰iAPX 432芯片之前,作为一个临时性的临时处理器,它是由一块满是TTL芯片的电路板构建的处理器的“后代”。但从这些不起眼的开始,8086的架构(x86)意外地最终主导了桌面和服务器计算,直到现在。
虽然8086是一个复杂的芯片,但可以在显微镜下检查单个晶体管。这里有一张8086去除金属和多晶硅后的高分辨率照片,点击查看大图。

资料推荐


(0)

相关推荐