奔腾 (初代)

奔腾（又称i586）是Intel于1993年3月22日推出的微处理器，是奔腾系列品牌中的第一款CPU。它是与80486兼容的指令集，但它是一种全新的、非常不同的微架构设计。 P5 奔腾是第一个超标量x86微架构，也是世界上第一个量产的超标量微处理器。它包括双整数管道、更快的浮点单元、更宽的数据总线、单独的代码和数据缓存以及许多其他技术和功能，以提高性能并增强安全性。
它被认为是 8086 兼容处理器系列中的第五代主要产品，其代号和微架构称为P5 。与自奔腾以来英特尔的所有新处理器一样，P5添加了一些新指令以增强特定类型工作负载的性能。
奔腾是第一个为类似于大型 IBM 大型计算机的多处理提供强大硬件支持的 Intel x86处理器。这种新能力在之前的x86处理器代和竞争对手的处理器中是不存在的。
为了发挥其最大潜力，必须优化编译器以利用新的超标量双流水线和需要重新编译的应用程序提供的指令级并行性。英特尔花费大量精力和资源与开发工具供应商，主要的独立软件供应商(ISV) 和操作系统(OS) 公司合作，在产品发布之前针对奔腾优化他们的产品。
1996 年 10 月，推出了类似的奔腾MMX  ，采用MMX 指令集、拥有更大的缓存和其他一些增强功能补充了相同的基本微架构。
66 MHz SX950 芯片
竞争对手包括摩托罗拉 68040 、摩托罗拉 68060 、PowerPC 601 ，以及SPARC、MIPS 、Alpha系列，其中大多数有时也使用超标量有序双指令流水线配置。
英特尔在 2000 年初停止了 P5 奔腾 处理器（自 1997 年奔腾 II发布以来作为更便宜的产品销售），转而使用Celeron处理器。 

**开发**
P5 微架构是由曾经设计386和486的Santa Clara团队设计的。 设计工作始于1989年； 团队决定使用具有片上缓存、浮点和分支预测的超标量架构。初步设计于1990年成功模拟，随后设计了布局。到了这个时候，这个团队已经有几十名工程师了。该设计于 1992年4月流片（转移到硅片上），此时 beta 测试开始。 到1992年年中，P5 团队已有 200 名工程师。 英特尔最初计划于1992年6月在PC Expo贸易展上展示 P5，并于1992年9月正式宣布该处理器， 但设计问题迫使演示被取消，芯片的正式推出也被推迟直到1993年春天。  
最初 386 的首席设计师约翰·克劳福德 ( John H. Crawford ) 与管理架构团队的唐纳德·阿尔珀特 (Donald Alpert) 共同管理了 P5 的设计 。 Dror Avnon 管理了 FPU 的设计。  Vinod K. Dham是 P5计划的总经理。 
英特尔的Larrabee多核架构项目使用源自 P5（P54C） 的处理器内核，并通过使用多线程、 64 位指令和 16 宽矢量处理单元进行了增强。 早期Atom处理器内核中采用的英特尔低功耗Bonnell 微架构也使用类似于 P5 的有序双流水线。 
因为数字不能注册商标，所以英特尔将此系列命名为奔腾而非80586 

**对 i486 的改进**
P5 微架构比之前的 i486 架构带来了几个重要的进步。- 性能：
** 超标量架构——奔腾有两条数据路径（流水线），在许多情况下允许它在每个时钟周期完成两条指令。主管（U）可以处理任何指令，而另一个（V）可以处理最常见的简单指令。一些date=July 2018精简指令集计算机(RISC) 的支持者认为，“复杂的”x86 指令集可能永远不会通过紧密流水线的微架构实现，更不用说双流水线设计了。但486和奔腾 证明了这确实是可能和可行的。
** 64 位外部数据总线使每次内存访问时可能读取或写入的信息量翻倍，因此奔腾加载其代码缓存的速度比 80486 快；它还允许更快地访问和存储 64 位和 80 位x87 FPU数据。
** 更快的浮点单元。一些指令显示出巨大的改进，尤其是 FMUL，其吞吐量比 80486 FPU 高出 15 倍。 奔腾还能够与普通（算术或加载/存储）FPU 指令并行执行 FXCH ST(x) 指令。
** 与 80486 相比，四输入地址加法器使奔腾能够进一步减少地址计算延迟。奔腾可以在单个周期内计算段基址+基址寄存器+缩放寄存器+立即偏移量的全寻址模式； 而486只有一个三输入地址加法器，因此必须在两个周期之间进行此类计算。
** 微码可以使用两条流水线来启用自动重复指令，例如REP MOVSW每个时钟周期执行一次迭代，而80486每次迭代需要三个时钟（最早的 x86 芯片明显多于 486）。此外，在解码阶段优化对第一个微码字的访问有助于使几个频繁的指令执行得更快，尤其是在它们最常见的形式和典型情况下。例子有：（486→奔腾，时钟周期）：CALL（3→1），RET（5→2），移位/旋转（2-3→1）。
** 更快、完全基于硬件的乘法器使 MUL 和 IMUL 等指令比 80486 快几倍（且更可预测）；对于 32 位操作数，执行时间从 13 到 42 个时钟周期减少了到 10-11 个。
** 分支预测- 其他特点：
** 通过引入基于处理器的调试端口增强了调试功能（请参阅《开发人员手册》第 1 卷中的奔腾处理器调试）。
** 增强的自检功能，例如 L1 缓存奇偶校验检查（参见开发人员手册第 1 卷中的缓存结构）。
** 新指令：CPUID、CMPXCHG8B、RDTSC、RDMSR、WRMSR、RSM。
** 测试寄存器 TR0-TR7 和访问它们的 MOV 指令被取消。- 后来的奔腾MMX还添加了MMX 指令集，这是一种基本的整数单指令、多数据( SIMD ) 指令集扩展，用于多媒体应用程序。 MMX 不能与x87 FPU 指令同时使用，因为寄存器被重用（以允许快速上下文切换）。更重要的改进是指令和数据缓存大小翻了一番，以及为了获得更好的性能而做出的一些微架构更改。
奔腾可以每秒执行超过 1 亿条指令(MIPS)， 75MHz 模型在某些基准测试中能够达到 126.5 MIPS。 在普通基准测试中，奔腾架构的每个时钟周期通常可以提供略低于 486 处理器性能的两倍。最快的 80486 部件（使用略有改进的微架构和100MHz操作）几乎与第一代 奔腾一样强大，而AMD Am5x86在纯 ALU 性能方面与 奔腾 75 大致相当。
部分60-100MHz的早期版本P5奔腾处理器在浮点单元中存在问题，导致某些除法运算的结果不正确（但此问题可预测）。这个漏洞是由弗吉尼亚州林奇堡学院的 Thomas Nicely 教授于 1994 年发现的，它被广泛称为奔腾 FDIV 漏洞，并让英特尔颜面扫地，该公司随后启动了一个换货计划来更换有故障的处理器。
1997 年，发现了另一个错误，它可能允许恶意程序在没有任何特殊权限的情况下使系统崩溃，即“ F00F 错误”。所有 P5 系列处理器都受到了影响，并且没有发布任何已修复此问题的P5处理器，但是现代操作系统已经修补了此错误。

**核心和后续产品**
奔腾是英特尔在 1990 年代中期用于个人计算机的主要微处理器。原始设计在更新的处理器中重新实现，并添加了新功能以保持其竞争力，并针对便携式计算机等特定市场推出了其他变体。因此，P5微体系结构有几种变体。

**P54C**
英特尔奔腾微架构
第一个奔腾微处理器内核的代号为“P5”。它的产品代码是80501。80501有两个版本，指定运行在各60兆赫和66MHz，皆使用Socket 4 。 奔腾 的第一个实现使用传统的 5 伏电源（源自通常的晶体管-晶体管逻辑(TTL) 兼容性要求）。它包含 310 万个晶体管，测得 16.7毫米乘 17.6mm，面积为 293.92毫米2 。 它使用0.8μm双极互补金属氧化物半导体 ( BiCMOS ) 工艺。 与随后紧跟的型号相比，80851的5伏设计导致其工作频率的能耗相对较高。
英特尔奔腾 P54C 芯片
1994 年 P5的后续型号的是 P54C (80502)，其版本指定为各版本在75、90 或 100MHz运行，使用 3.3 伏电源和Socket 5 ，这是第一个在 3.3伏电压下运行的奔腾处理器，降低了能耗，但需要在主板上进行电压调节。与时钟频率较高的 486 处理器一样，它使用内部时钟倍频器，让内部电路以比外部地址和数据总线更高的频率工作，但是由于物理限制，其调节外部频率更加复杂和麻烦。它还允许双向多处理，并具有集成的本地 APIC和新的电源管理功能。它包含 330 万个晶体管，面积163个平方毫米。 它使用BiCMOS 制程制造。

**P54CQS**
1995 年初，P54C的的后续产品是 P54CQS，其运行速度为 120MH。它使用0.35μmBiCMOS 工艺，是第一个以 0.35微米工艺制造的P5处理器。 它的晶体管数量与 P54C 相同，尽管工艺较新，但它的芯片面积也相同。芯片使用引线键合连接到封装，仅允许沿芯片边缘连接。因为导线的长度有限制，而且芯片的边缘会远离封装上的焊盘，所以较小的芯片需要重新设计封装，。此问题解决方案是保持芯片尺寸不变，保留现有的焊盘环，只减小奔腾逻辑电路的尺寸，使其能够实现更高的时钟频率。 

**P54CS**
P54CQS 紧随其后的是 P54CS，它在 133、150、166 和 200MHz下运行，并引入了Socket 7 。它包含 330 万个晶体管，芯片面积为90 mm 2并以 0.35μm BiCMOS 工艺生产。

**P24T**
用于486系统的 P24T 奔腾OverDrive于 1995 年发布，基于 3.3V 0.6μm制程，使用 63 或 83 MHz时钟。由于这些处理器使用Socket 2 / 3 ，因此必须进行一些修改以补偿 486 主板的 32 位数据总线和较慢的板载 L2 缓存。因此，他们配备了32KB的L1 缓存（是 P55C 之前 奔腾 CPU 的两倍）。

**P55C**
英特尔奔腾 MMX 微架构
奔腾 MMX 166 MHz 
P55C（或 80503）由位于以色列海法的英特尔研发中心开发。它以 采用MMX科技的奔腾处理器 的名字出售（通常简称为奔腾MMX ）；尽管它基于 P5 内核，但它具有一组新的 57 条“MMX”指令，旨在提高多媒体任务的性能，例如编码和解码数字媒体数据。 奔腾MMX系列于 1996 年 10 月 22 日宣布，并于 1997 年 1 月发布。 
新指令适用于新的数据类型：8 个 8 位整数、四个 16 位整数、两个 32 位整数或一个 64 位整数的 64 位压缩向量。因此，例如，PADDUSB（Packed ADD Unsigned Saturated Byte）指令将两个向量相加，每个向量包含八个 8 位无符号整数，按元素计算；每个溢出的加法都会饱和，产生 255，这是可以用一个字节表示的最大无符号值。这些相当专业的指令通常需要程序员进行特殊编码才能使用。 
内核的其他变化包括一个 6 级管道（与 P5 上的 5 个）和一个返回堆栈（首先在 Cyrix 6x86 上完成）和更好的并行性、改进的指令解码器、16KB L1 数据缓存 + 16KB L1 指令缓存，两者都有 4路关联性（与 P5 上 2 路的 8KB L1 数据/指令相比），4 个写入缓冲区现在可由任一管道使用（与一个对应于 P5 上的每个管道）和改进的分支预测器取自 奔腾 Pro，  具有 512 个条目的缓冲区（与 P5 上的 256 个相比）。 
它包含 450 万个晶体管，面积为 140平方毫米 。该过程具有四个互连级别。 
虽然 P55C 仍然与Socket 7兼容，但为芯片供电的电压要求与标准的 Socket 7 规格不同。在 P55C 标准建立之前为 Socket 7 制造的大多数主板不符合该 CPU 正常运行所需的双电压轨（2.8 伏核心电压，3.3 伏输入/输出(I/O) 电压）。英特尔通过 OverDrive 升级套件解决了这个问题，该套件采用具有自己电压调节功能的内插器。

**Tillamook**
奔腾 MMX 笔记本 CPU 使用了一个固定 CPU 的移动模块。该模块是一块印刷电路板(PCB)，CPU 以较小的形式直接连接到其上。模块卡在笔记本主板上，通常会安装一个散热器并与模块接触。随着 0.25μm Tillamook Mobile Pentium MMX（以俄勒冈州的一个城市命名）的推出，该模块还添加了430TX芯片组以及系统的 512 KB静态随机存取存储器(SRAM) 高速缓存。

**型号和变体**

**关联阅读**
 IA-32指令集架构(ISA)

**竞争对手**
 AMD K5, AMD K6- Cyrix 6x86- WinChip C6- NexGen Nx586- Rise mP6

**参考**
  CPU-Collection.de date=20070927000055  - Intel Pentium 图像和描述-  Plasma 在线 Intel CPU 识别 date=20010423135401 -  Pentium Timeline 项目 date=20211223151333 Pentium Timeline 项目映射了已知的每个 s-spec 中最古老和最年轻的芯片。数据显示在交互式时间线中。

**英特尔数据表**
  奔腾 (P5) date=20211113202627 -  奔腾 (P54) date=20211116133428 -  奔腾 MMX (P55C) date=20211008101748 -  移动奔腾 MMX (P55C) date=20220412014710 -  移动奔腾 MMX (Tillamook) date=20220412010651 

**英特尔手册**
这些官方手册提供了奔腾处理器及其特性的概述：- 奔腾处理器系列开发人员手册 奔腾处理器（第 1 卷） （英特尔订单号 241428）- 奔腾处理器家族开发者手册 第 2 卷：指令集参考 date=20120313153131 （Intel 订单号 243191）- 奔腾处理器家族开发者手册 第 3 卷：架构和编程手册（Intel 订单号 241430）