这款游戏机所含的处理器是著名的英特尔奔腾III(Pentium III)(一种用于电脑的货架CPU)的略微定制版本,运行频率为733 MHz。 由此可以推测,这款游戏机背后只是一台个人电脑... ...我不会告诉你答案,但我保证,在文章的最后,你一定能得出自己的结论。
无论如何,奔腾处理器以及英特尔公司设计和制造的其他系列CPU在计算机市场上大受欢迎。 英特尔的市场占有率之高,使其成为事实上的质量参照标准: 作为一个普通用户,如果你想要一台好电脑,又有足够的预算,那么你只需要寻找搭载英特尔CPU的某型电脑。 我们现在都知道,这其中还涉及到更多的因素,但这就是英特尔营销人员所计划的。
技术信息
既然我们已经将英特尔定位在地图上,那么让我们回到这款游戏机的主题上来。 在研究过程中,我本以为能找到与其他CPU(MIPS、SuperH、ARM等)一样深入的文档,但却偶然发现了过多的营销术语,这只会转移我的搜索方向。 因此,在这篇文章中,我想出了一个结构来组织所有必要的信息,这将有助于理解这种CPU的工作原理。 此外,我还将尝试介绍英特尔为这款CPU品牌所使用的一些术语。
说到这里,让我们来看看:
牌子
首先,Xbox的CPU确定为奔腾III。 这意味着什么呢? 在当时(20世纪90年代初),奔腾系列代表了新一代CPU。 它们是"新高端",集合了所有能让电脑超快运行的花哨技术,还能帮助买家决定购买哪款CPU,以获得最佳性能。
奔腾III 取代了奔腾II,而奔腾II又取代了原来的奔腾。 此外,当第一代奔腾问世时,它取代了80486,而80486又取代了80386...... 你懂的。 重要的是,"奔腾"主要是一个品牌名称,与它的内部结构并无直接关联。 因此,我们必须深入研究!
为了深入探讨,不至于迷失方向,我把信息编成了三个部分,它们共同构成了芯片。 首先是指令集架构(Instruction Set Architecture,"ISA")(用于指挥CPU的指令组)、微架构(如何在硅片中实现ISA)和内核(用于封装微架构以形成特定 CPU 型号的组件集)。
ISA

一颗英特尔80386(1985年),或其兼容型号是20世纪90年代中期应用程序的最低配置要求。
事实上,一旦我提到"英特尔",我迟早会介绍著名的x86,即它的指令集。
1978年,英特尔发布了16位CPU英特尔8086,这是x86的雏形。 此后,随着更多英特尔CPU的发布(80186、80286 等),ISA 不断扩展,指令也越来越多。 因此,随着更多突破性功能的加入(如"保护模式"和"长模式"),x86开始变得碎片化。 为了解决这个问题,现代x86应用程序通常以80386 ISA(也称为IA-32或i386)为基准,除其他外,该ISA可在32位环境中运行。
随后,英特尔通过使用扩展功能增强了 IA-32,这意味着IA-32 CPU可能包含也可能不包含新功能。 程序通过查询CPU来检查是否存在特定的增强功能。 Xbox的CPU包括两个扩展:
- MMX(Multimedia Extension,多媒体扩展):增加了57条SIMD指令和8个64位寄存器(仅限整数),可加快矢量运算速度。
- SSE(Streaming SIMD extension,流SIMD扩展): 另一种SIMD类型的扩展,解决了MMX的诟病(缺乏浮点支持和无法并行使用浮点单元)。 它增加了56条新指令和8个128位寄存器(称为"XMM"),可容纳4个32位浮点数
floats。
好消息是,由于游戏机将始终使用相同的CPU,程序员可以优化代码以利用这些扩展,因为它们将始终存在。
微架构
说到构建可解释x86指令的电路,英特尔公司为其CPU设计了多种不同的方案。 有些设计随着新奔腾系列(如 奔腾4)的发布而出现,而另一些设计则在英特尔发布"增强"版奔腾(如"奔腾Pro")时出现。 不过,自第一代奔腾发布以来,CPU型号和微架构已不再使用相同的名称。 例如,80486使用的是80486微架构(而非其他),而最初的奔腾使用的是"P5"微架构。
现在,Xbox CPU和其他奔腾III处理器都使用P6微架构(也称为"i686")。 这是第六代处理器(从8086开始计算),其特点如下:
- 庞大的14级流水线: 这意味着最多可并行处理14条指令。 另一方面,单个指令可能需要更多的周期才能完成。 参见前面的解释。
- 乱序执行: 在可能的情况下,CPU会重新安排指令顺序,以提高效率和性能。
- 动态执行: 由于P6是一种乱序超标量设计。 传统的分支预测器现在与其他技术("推测执行"和"数据流分析")相结合,以利用新的功能。 这样就能进一步减少流水线停滞。
说到这里,请仔细看看这些功能。 恰好它们与之前的游戏机非常相似,然而,与英特尔的CPU相比,其他CPU在设计上却大相径庭。 从历史上看,可以说x86的设计根本不允许英特尔生产流水线式CPU。 然而,他们却做到了,让我们来看看原因何在...
CISC还是RISC

英特尔奔腾Pro处理器(1995年)首次采用了P6微架构,在x86领域架起了CISC与RISC技术发展的桥梁。 这一突破令许多人始料未及——尤其是那些曾断言x86架构时日无多的人士。
竞争对手的CPU恰好是根据RISC准则设计的,而英特尔的x86并非如此,因此被归入CISC组。 与CISC CPU相比,RISC CPU以有意简化设计而著称。 例如,RISC CPU采用存-取架构,只提供从寄存器操作值的指令(而不是直接从内存操作)。
RISC处理器的优势之一在于其简单的设计方法使其CPU的设计具有模块化意识,而模块化意识反过来又可以利用并行技术来提高性能。 这就是我们看到MIPS和PowerPC等CPU首次采用流水线阶段、超标量设计、乱序执行、分支预测等技术的原因。 另一方面,CISC处理器早于RISC处理器,前者旨在解决不同的需求。 因此,它们的设计不如RISC CPU灵活。
回到最初的问题,P6是一种有趣的设计,因为虽然这种CPU只能理解CISC指令集(x86),但其操作码的子集可以用微码来解释。 最重要的是,执行微码的单元是围绕存-取模型构建的。 这是因为P6体系结构是由英特尔i960(英特尔曾经寄予厚望的RISC CPU)的前工程师编写的。 总而言之,这使得英特尔在不破坏与历史悠久的x86 ISA兼容的情况下,获得了与 RISC 处理器类似的优势。 可以说,随着时间的推移,"CISC"和"RISC"等术语已经变得模糊不清,无法对任何现代CPU进行分类。
顺便提一句,微码已经嵌入芯片中,但它可以打补丁,只要发现错误或安全漏洞,英特尔就可以在生产后修复CPU。 如果您读过以前的文章(如N64或PS2),请记住,英特尔的微码是不公开的(更不用说留文档了),英特尔是其唯一的"维护者"。
内核
英特尔推出了大量采用P6微架构的芯片。 Xbox包括一个名为铜矿(Coppermine)的型号。 它被称为奔腾III的第二次修订版(取代了"Katmai"内核),具有以下组件:
- 32 KiB 一级高速缓存(L1 Cache): 16 KiB用于指令,16 KiB用于数据。
- 集成128 KiB 二级高速缓存(L2 Cache):这很奇怪,因为货架上的铜矿有256 KiB的L2。 事实上,铜矿128(英特尔"赛扬"品牌中的低端奔腾替代品)也有相同数量的L2。 因此,这样做可能是为了降低制造成本,使这款游戏机保持有竞争力的价格。
- 133 MHz前端总线(Front-side bus): 这是连接L2和内存控制器的总线,稍后我们将详细介绍。
- 英特尔将其命名为"前端总线",以区别于连接L2(外部缓存)和L1(内部缓存)的另一条总线。 后一条总线被称为"后端总线"(Back-side bus)......在英国使用这个名字很不吉利。
铜矿还在原有的L2基础上增加了两个"增强功能",即高级传输缓存(Advanced Transfer Cache)和高级系统缓冲(Advanced System Buffering)。 总而言之,L2在芯片上,总线更宽,这有助于减少前端总线可能出现的瓶颈。
最后,芯片使用的是适合PC主板的"Micro-PGA2"插座,但与其他游戏机一样,Xbox焊上了个球栅阵列封装(Ball Grid Array,"BGA")版的。
P6和奔腾数字的终结
下面是一些更多的历史。 在P6诞生多年后,英特尔计划用"NetBurst"微架构(奔腾4的特色)来继承它。 不过,继承关系也到此为止。 尽管NetBurst采用了许多现代技术,但也存在功耗过高、发热量大(平均85 W)和可扩展性差等问题,所有这些都阻碍了该设计的进一步发展。
因此,这促使以色列的英特尔团队重新审视他们的低功耗P6 CPU("奔腾 M"),并开发出功能更强大的后续产品。 第一个成果就是Yonah内核,它是对P6设计的轻微改进,被命名为酷睿Solo或酷睿Duo。 有了它,功耗降到了合理的数字(27 W 到 31 W ,取决于不同的变体)。 几个月后,后续的酷睿微架构成为P6(和NetBurst)的旗舰后继产品,令人困惑的是,它以酷睿2 CPU系列的形式出现在货架上。 多年来,后续的微架构在很多方面都有所改进,但它们也设法重新整合了NetBurst中被遗忘的元素,而没有重蹈覆辙。
说来奇怪,我不知道Yonah内核的命名是否是《约拿书》的隐喻,尤其是联系到先知最终改正了自己的道路,拯救了尼尼微城这一事件。 不过也有可能是我想多了。
主板架构
在PC发展史上的某个时期,主板变得越来越复杂,必须从头开始开发新的设计,才能有效地满足新出现的需求。
所制定的新标准依靠两个专用芯片来处理主板的大部分功能。 这两个芯片是:
- 北桥: 用作内存控制器和GPU接口。
- 南桥:接入其他I/O接口(如USB、 ATA/SATA、PCI 等)。
这些芯片的组合称为芯片组,其重要性足以决定主板的功能和性能。 Xbox与PC如此接近,因此也包含了两个芯片:NV2A是北桥和GPU的组合;MCPX负责处理其余的I/O接口。
两块芯片通过一条名为HyperTransport的专用总线相互连接。 值得指出的是,一些PC主板也采用了这项技术,只是品牌不同而已(英伟达nForce MCP-D)。
内存布局
Xbox包含总容量为64 MiB的DDR SDRAM,与同类产品相比,这种内存的速度非常快。 不过,它也是系统所有组件共享的。 因此,我们又一次看到了统一内存架构(unified memory architecture,"UMA")布局。

交换网络的表示。 GPU使用两个内存库,而CPU使用另一个内存库,从而减少了过程中的竞争。
我们已经看到,这种设计有时会很麻烦。 不过,程序可以通过将数据分散到不同的内存库来解决这个问题。 NV2A实现了一个交换网络,可以让不同的单元(CPU、GPU等)同时访问它们 。
此外,游戏机有一个内置硬盘,而且恰好设置了三个分区,每个分区保留750 MiB用于临时存储。 CPU可以从主内存中卸载部分数据,然后在需要时再上传回来。 请注意,这是一个手动过程,不涉及虚拟内存。



