一窥
Intel
第一款
X86
处理器的内部构造
中科院微电子研究所
今天
来
源:
半导体行业观察
在42年前,
Intel 8086
微处理器
问世,为此我为芯片制作了一些高分辨率的裸die来庆祝。8086是有史以来最有影响力的芯片之一。它启动了x86体系结构,该体系结构如今仍占据着台式机和服务器计算的主导地位。通过查看芯片的
硅
片,我们可以看到该芯片的内部功能。
下面的照片显示了8086的die。在这张照片中,可以看到芯片的金属层,大部分掩盖了下面的
硅
。围绕裸片边缘的细焊线在芯片上的焊盘与外部
引脚
之间提供连接。(
电源
垫和接地垫都有两条
键合
线以支持更高的电流。)该芯片当时很复杂,包含29,000个晶体管。
查看芯片内部
为了检查芯片,我从下面的8086
集成电路
开始。大多数集成电路都是用环氧树脂
封装
的,因此必须使用危险的酸来溶解封装。为避免这种情况,我改用陶瓷封装的得8086。打开陶瓷包装很简单,只需用凿子沿接缝将其拍打,然后将陶瓷顶部弹出即可。
8086芯片采用40
引脚
陶瓷
DIP
封装
除去顶部后,可以在中心看到
硅
芯片。芯片通过微小的
键合
线连接到芯片的
金属
引脚
。这是40针
DIP
封装
,当时是
微处理器
的标准
封装
。请注意,
硅
芯片本身仅占芯片尺寸的一小部分。
8086芯片在
集成电路封装
的中间可见
使用金相显微镜,我拍摄了数十张die的照片,并使用名为Hugin的程序将它们缝制成高分辨率图像。文章开头的照片显示了芯片的金属层,但是该层隐藏了下面的
硅
。
在显微镜下,可以看到8086部件号以及版权日期。
键合
线连接到焊盘。微码ROM的一部分在顶部
对于下面的doe照片,去除了金属和多晶
硅
层,展示出了具有29,000个晶体管的底层硅。,上面的标签是根据我的逆向工程显示的主要功能块。芯片的左侧包含16位数据路径:芯片的
寄存器
和算术电路。
加法器
和高位寄存器构成与外部
存储器
通信的
总线
接口
单元,而低位
寄存器
和ALU构成处理数据的执行单元。芯片的右侧具有控制电路和指令解码,以及控制每个指令的微码ROM。
显示主要功能块的8086
微处理器
die。
8086的一项功能是指令预取,它通过在需要之前从内存中提取指令来提高性能。这是通过左上角的
总线
接口
单元实现的,该接口访问了外部
存储器
。高位
寄存器
包括8086的臭名昭著的段寄存器,该段寄存器提供对比16位地址所允许的64 KB更大的地址空间的访问。对于每次存储器访问,都添加了段寄存器和存储器偏移量以形成最终的存储器地址。为了提高性能,8086有一个用于这些存储器地址计算的单独
加法器
,而不是使用ALU。高位寄存器还包括六个字节的指令预取缓冲区和程序
计数器
。
芯片的左下角装有执行单元,该执行单元执行数据操作。低位
寄存器
包括通用寄存器和索引寄存器,例如堆栈指针。16位ALU执行算术运算(加法和减法),布尔逻辑运算和移位。ALU不执行乘法或除法;这些操作是通过一系列移位和加/减操作执行的,因此它们相对较慢。
微码
计算机
设计
中最困难的部分之一就是创建控制逻辑,该逻辑告诉处理器的每个部分如何执行每个指令。1951年,莫里斯·威尔克斯(Maurice Wilkes)提出了微代码(Microcode)的思想:代替由复杂的
逻辑门电路
构建控制逻辑,可以用称为微代码的特殊代码代替控制逻辑。为了执行一条指令,计算机在内部执行一些更简单的微指令,这些指令由微码指定。使用微码,构建处理器的控制逻辑成为编程任务,而不是逻辑
设计
任务。
微代码 在1960年代的大型机计算机中很常见,但是早期的
微处理器
(例如6502和Z-80)不使用微代码,因为早期的芯片没有存储微代码的空间。但是,后来的芯片(例如8086和68000)使用了微码,从而利用了增加的芯片密度。这使8086能够实现复杂的指令(例如乘法和字符串复制),而不会使电路更加复杂。不利的一面是微代码占用了8086的大部分die。微码在die照片的右下角可见。
微码ROM的一部分
通过存在或不存在晶体管来存储位。晶体管是每个黑色矩形上方和/或下方的白色小矩形。深色矩形是到金属层中水平输出
总线
的连接。
上面的照片显示了微码ROM的一部分。在显微镜下,可以看到微码ROM的内容,并且可以根据每个位置上是否存在晶体管来读出位。ROM由512条微指令组成,每条21位宽。每个微指令指定数据在源和目标之间的移动。它还指定了微操作,可以是跳转,ALU操作,内存操作,微代码子例程调用或微代码簿记。微码非常有效;一个简单的指令(例如递增或递减)由两个微指令组成,而更复杂的字符串复制指令则由八个微指令实现。
8086的历史
通往8086的道路并不像您预期的那样直接和有规划性。它的最早祖先是1970年的台式计算机/终端Datapoint2200。Datapoint2200在创建
微处理器
之前就已使用,因此它使用的8位处理器是由一块装有单个TTL
集成电路
的电路板构成的。Datapoint询问
英特尔
和
德州仪器
(TI),是否有可能用单个芯片替换那块芯片。为此
英特尔
复制了Datapoint 2200的体系结构后,创建了TMX 1795处理器(1971年),英特尔创建了8008处理器(1972年)。但是,Datapoint拒绝了这些处理器,这是一个影响巨大的决定。因为德州仪器(TI)找不到TMX 1795处理器的客户,并放弃了该产品,但英特尔还是决定将8008作为产品出售,从而建立了
微处理器
市场。
英特尔
紧随8008之后,改进了8080(1974)和8085(1976)处理器。
1975年,
英特尔
的下一个重大计划是将8800处理器
设计
为1980年代英特尔的主要架构。由于计划的高性能,该处理器被称为“微型大型机”。它具有为Ada等高级语言设计的全新指令集,并在硬件级别支持面向对象的编程和垃圾回收。不幸的是,该芯片当时过于雄心勃勃,大大落后于计划。它最终于1981年以iAPX 432的身份推出,但性能令人失望,且在商业上也失败了。
由于iAPX 432的进度落后,
英特尔
在1976年决定在iAPX 432就绪之前就需要一个简单的,权宜之计的处理器来销售。英特尔快速
设计
8086为16位处理器的8位8080,有些兼容在1978年公布的8086有其与引进的
IBM
个人计算机(PC)在1981年的大突破到了1983年,IBM的PC是最畅销的计算机,并成为个人计算机的标准。IBM PC中的处理器是8088,它是具有8位
总线
的8086的变体。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)的一些晶体管。
掺杂
的导电
硅
具有深紫色。白色条纹是多晶硅线与硅相交的地方,形成晶体管的栅极。(我算出形成7个门的23个晶体管。)这些晶体管具有复杂的形状,以使布局尽可能高效。另外,晶体管具有不同的尺寸以在需要时提供更高的功率。请注意,相邻的晶体管可以共享源极或漏极,从而将它们连接在一起。圆圈是硅层和金属布线之间的连接(称为过孔),而小方块是硅层和多晶硅之间的连接。
结论
8086在
英特尔
发布其旗舰iAPX 432芯片之前被用作临时权宜的处理器,并且是由装有TTL芯片的主板构建的处理器的后代。但是从这些不起眼的开始,到现在为止,8086的体系结构(x86)意外地结束了对台式机和服务器计算的控制。
尽管8086是一个复杂的芯片,但可以在显微镜下检查单个晶体管。这是8086去除金属和多晶
硅
后的高分辨率照片。
公众号ID:
imecas_wx
预览时标签不可点
阅读
分享
赞
在看
已同步到看一看
写下你的想法
前往“发现”-“看一看”浏览“朋友在看”
前往看一看
看一看入口已关闭
在“设置”-“通用”-“发现页管理”打开“看一看”入口
我知道了
已发送
取消
发送到看一看
发送
一窥Intel第一款X86处理器的内部构造
最多200字,当前共
字
发送中