CPU架构:修订间差异
跳转到导航
跳转到搜索
LeakerLand.S(留言 | 贡献) 无编辑摘要 |
|||
第1行: | 第1行: | ||
<div class="navi" style="vertical-align: super; font-size: 84%; margin: -10px 0px 0.9em 1em">[[Beta 常识]] > '''CPU 架构'''</div> | <div class="navi" style="vertical-align: super; font-size: 84%; margin: -10px 0px 0.9em 1em">[[Beta 常识]] > '''CPU 架构'''</div> | ||
==综述== | ==综述== | ||
CPU 架构是 CPU 厂商给属于同一系列的 CPU 产品定的一个规范,主要目的是为了区分不同类型CPU的重要标示。目前市面上的 CPU 分类主要分有两大阵营,一个是 Intel、AMD 为首的复杂指令集 CPU,另一个是以 IBM、ARM 为首的精简指令集 CPU。两个不同阵营的 CPU,其产品的架构也不相同,例如,Intel、AMD 的 CPU 是 x86 架构的,而 IBM 公司的 CPU 是 PowerPC 架构,ARM 公司是 ARM 架构。 | |||
世界上的 CPU 架构前前后后有很多,我们在这里以实用与知名度的角度出发,只列举出几种常见的 CPU 架构指令集,为读者们介绍。 | |||
==x86== | ==x86== | ||
x86 架构在于 1978 年推出的 Intel 8086 中央处理器中首度出现,它是从Intel 8008处理器中发展而来的,而 8008 则是发展自 Intel 4004 的。8086 在三年后为 IBM PC 所选用,之后 x86 便成为了个人计算机的标准平台,成为了历来最成功的CPU架构。 | |||
其他公司也有制造 x86 架构的处理器,计有 Cyrix(现为 VIA 所收购)、NEC 集团、IBM、IDT 以及 Transmeta。Intel 和 AMD 是 x86 处理器市场上最成功的两个企业,AMD的早先产品Athlon系列处理器的市场份额仅次于Intel Pentium。 | |||
8086 是 16 位处理器;直到 1985 年 32 位的 80386 的开发,这个架构都维持是 16 位。接着一系列的处理器表示了 32 位架构的细微改进,推出了数种的扩充,直到 2003 年 AMD 对于这个架构发展了64位的扩充,并命名为 AMD64 。后来 Intel 也推出了与之兼容的处理器,并命名为 Intel 64。 | |||
值得注意的是 Intel 早在 1990 年代就与 HP 合作提出了一种用在安腾系列处理器中的独立的 64 位架构,这种架构被称为 IA-64。IA-64 是一套崭新的系统,和 x86 架构完全没有相似性;不应该把它与 x86-64 或 x64 弄混。 | |||
==AMD64(x64)== | ==AMD64(x64)== | ||
AMD 试图以自家的 AMD64 指令集去清理 Intel 的 x86-32 专属的,并把 x86 更新至近似领先的 RISC 环境。曾参与设计 DEC Alpha64 位处理器的 Dirk Meyer 也参与制定了 AMD64 的规格,以及AMD的员工中有不少前 Alpha 处理器的工程师,因此他们为 AMD64 立下不少功劳。 | |||
此架构的一个显著特征就是地址阔度加长;SSE2、SSE3指令;"禁止执行"位元 (NX-bit):AMD64其中一个特色是拥有"禁止执行"(No-Execute, NX)的位元,可以防止蠕虫病毒以缓冲区满溢的方式来进行攻击(也称:缓冲区溢位攻击,Buffer Overflow)。 | |||
===Windows on Windows 64 Bit=== | ===Windows on Windows 64 Bit=== | ||
Wow64(Windows on Windows 64-Bit) | Wow64(Windows on Windows 64-Bit)是微软公司为旗下 Windows 64 位版本(包括 IA-64 和 AMD64 版本的 Windows)开发的 x86 虚拟环境,旨在让 Windows 64 位操作系统运行为 32 位操作系统开发的程序,是 Windows 中一个非常重要的组件。 | ||
WoW64 被用来处理许多在 32-bit Windows 和 64-bit Windows 之间的程序差异, 尤其是在Windows自身的结构变化上的不同。 | |||
该组件首次出现于 Windows 2000 Advanced Server Limited Edition 和 Windows 2000 Datacenter Server Limited Edition 中,直到今天的 Windows 10/Server 2016,它仍然存在。 | |||
而在此之前的运行于 Alpha 处理器上的 Windows NT 3.5x/4.0 系列操作系统也有类似的组件,只不过不叫 WoW64,而是叫Fx!32。 | |||
==IA64== | ==IA64== | ||
IA64 处理器 Itanium(安腾)是 Intel 自推出 32 位微处理器以来,在高性能计算机领域的又一座里程碑。基于 IA64 处理器架构的服务器具有 64 位运算能力、64 位寻址空间和 64 位数据通路,突破了传统 IA32 架构的许多限制,在数据的处理能力,系统的稳定性、安全性、可用性、可管理性等方面获得了突破性的提高。 | |||
其实 IA64 的历史早于 x86-64,最初由 Intel 和惠普于 1990 年联合推出。由于 IA64 不与 32 位兼容,所以没有受到重视。而后为了日益扩张的计算需求,Intel重新将ia64拿出来,发布了安腾系列服务器CPU。IA64 是一种崭新的系统,和 x86 架构完全没有相似性,不应该把它与 x86-64 或 x64 弄混。基于 IA64 处理器架构的服务器具有 64 位运算能力、64 位寻址空间和 64 位数据通路,突破了传统 IA32 架构的许多限制,在数据的处理能力,系统的稳定性、安全性、可用性、可管理性等方面获得了突破性的提高。它是 Intel 自推出 32 位微处理器以来,在高性能计算机领域的又一座里程碑。 | |||
===IA64与AMD64的区别=== | ===IA64与AMD64的区别=== | ||
x64 和 IA64 处理器都能够运行 64 位操作系统和应用程序,但是区别在于:x64 架构基于 x86,是为了让 x86 架构 CPU 兼容 64 位计算而产生的技术。x64 架构的设计是采用直接简单的方法将目前的 x86 指令集扩展。这个方法与当初的由 16 位扩展至 32 位的情形很相似。优点在于用户可以自行选择 x86 平台或 x64 平台,兼容性高。IA64 则是原生的纯 64 位计算处理器,并且与 x86 指令不兼容。如果想要执行x86指令需要硬件虚拟化支持,而且效率不高。优点在于 IA64 架构体系将拥有 64 位内存寻址能力,能够支持更大的内存寻址空间。并且由于架构的改变,性能比起 x64 的 64 位兼容模式更高更强。所以,IA64 操作系统也是比较少见的,由于只能在 Intel 安腾系列处理器及 AMD 部分服务器处理器运行,所以主流市场并不常见。而且,这些 IA64 架构处理器也不能够使用 x64 操作系统。而 x64 处理器则可以自由选择 x86 或是 x64 操作系统。 | |||
===EM64T与IA64=== | ===EM64T与IA64=== | ||
EM64T(又称为Intel 64) | EM64T(又称为Intel 64),中文名为扩展 64 位内存技术。是 IA32 指令集的扩展,也称为 IA32e,和 AMD64 一样,也是通过 64 位兼容指令实现 64 位运算,也是在 Intel CPU 上运行 AMD64 的一个关键。 | ||
IA64 是一个独立于 x86 指令之外的 64 位架构,其实现 64 位的方式与 EM64T 和 AMD 完全不同,是一个完全的 64 位指令集。 | |||
==ARM== | ==ARM== | ||
ARM 是英国 Acorn 有限公司设计的低功耗成本的一款 RISC 微处理器。全称为 Advanced RISC Machine。ARM 本身是 32 位设计,但也配备 16 位指令集,一般来讲比等价 32 位代码节省达 35%,却能保留 32 位系统的所有优势。 | |||
ARM 的 Jazelle 技术使 Java 加速得到比基于软件的 Java 虚拟机(JVM)高得多的性能,和同等的非Java加速核相比功耗降低80%。CPU功能上增加DSP指令集提供增强的16位和32位算术运算能力,提高了性能和灵活性。ARM 还提供两个前沿特性来辅助带深嵌入处理器的高集成 SoC 器件的调试,它们是嵌入式 ICE-RT 逻辑和嵌入式跟踪宏核(ETMS)系列。 | |||
ARM的三大特点是:耗电少功能强、16 位/32 位双指令集和合作伙伴众多。 | |||
1、体积小、低功耗、低成本、高性能; | 1、体积小、低功耗、低成本、高性能; | ||
2、支持 Thumb(16 位)/ARM(32 位)双指令集,能很好的兼容 8位/16 位器件; | |||
3、大量使用寄存器,指令执行速度更快; | 3、大量使用寄存器,指令执行速度更快; | ||
第57行: | 第57行: | ||
==ARM64== | ==ARM64== | ||
与 32 位 ARM 架构相比,64 位 ARM 架构包括以下重大变动:首先是名称的变化——它的官方名称为 “AArch64”,但这个名字读起来很绕口,敲起来也别扭。苹果称它为 ARM64。 | |||
较32位ARM架构而言,ARM64 的整数寄存器数量增加了一倍,32 位 ARM 架构有 16 个整数寄存器,其中 1 个是专用的程序计数器,还有2个用于堆栈指针和链接,其他 13 个则作一般用途。而 ARM64 架构有 32 个整数寄存器,包括 1 个专用的零寄存器,1 个链接寄存器和1个帧指针寄存器,还有 1 个寄存器预留给平台,另外 28 个则为通用整数寄存器。ARM64 上可用浮点寄存器的数量有所增加。32 位 ARM 处理器有 32 个 32 位浮点寄存器,还有 16 个额外的 64 位寄存器。这些寄存器的结构有些特殊,可被视为等价于 16 个重叠的128位寄存器。 ARM64 则将其简化为 32 个 128 位寄存器,且没有重叠。 | |||
寄存器的数量 | 寄存器的数量 会对性能会产生巨大影响。与 CPU 相比,内存要慢得多。与 CPU 处理一条指令的时间相比,读取和写入内存都需要更长时间。CPU 试图通过引入缓存来缓解这一差距。但与 CPU 内部的寄存器相比,即使速度最快的缓存也慢得多。更多的寄存器意味着更多数据能存储在 CPU 内部,这降低了内存访问频率,同时提高了性能。 | ||
除了增加寄存器数量,ARM64 也为指令集带来了重大变化。大多数 32 位 ARM 处理器可基于运行时条件寄存器的状态执行条件指令,这使得在编译 if 等语句时无需分支。不过这种方式引入的麻烦多于便利,因此 ARM64 取消了条件执行。ARM64 的 NEON SIMD 单元完全符合 IEEE754 双精度标准,而 32 位版本的 NEON SIMD 单元只支持单精度。ARM64还增加了专门的 AES、SHA-1、SHA-256 加密指令。这些指令也许对普通应用帮助不大,但对特定领域的应用来说价值无穷。 | |||
现在流行的 Qualconm Snapdragon, Hisilicon Kirin 和 MediaTek 系列处理器都基于本架构。 | |||
==PowerPC== | ==PowerPC== | ||
PowerPC(英语:Performance Optimization With Enhanced RISC – Performance | PowerPC(英语:Performance Optimization With Enhanced RISC – Performance Computing,有时简称PPC)是一种精简指令集(RISC)架构的中央处理器(CPU),其基本的设计源自 IBM 的 POWER(Performance Optimized With Enhanced RISC;《IBM Connect 电子报》2007年8月号译为“增强 RISC 性能优化”)架构。POWER是1991年,Apple(苹果电脑)、IBM、Motorola(摩托罗拉)组成的 AIM 联盟所发展出的微处理器架构。PowerPC 是整个 AIM 联盟平台的一部分,并且是到目前为止唯一的一部分。但苹果电脑自2005年起,将旗下电脑产品转用 Intel CPU。虽然如此,时至今日还有部分机械工业与教育事业使用 Motorola 和 Freescale(NXP)的 PowerPC 微处理器产品。 | ||
{{黑幕| | {{黑幕|自苹果公司停用 PPC 以后,个人电脑的 PPC 就凉了。}} | ||
==MIPS== | ==MIPS== | ||
第83行: | 第83行: | ||
DEC Alpha,是 64 位的 RISC 微处理器,支持 VMS 操作系统、Linux 和 BSD,曾经有部分 Windows 兼容本架构。 | DEC Alpha,是 64 位的 RISC 微处理器,支持 VMS 操作系统、Linux 和 BSD,曾经有部分 Windows 兼容本架构。 | ||
DEC | DEC Alpha,也称为 Alpha AXP,是 64 位的 RISC 微处理器,最初由 DEC 公司制造,并被用于 DEC 自己的工作站和服务器中。作为 VAX 的后续被开发,支持 VMS 操作系统,如 Digital UNIX。不久之后开放源代码的操作系统也可以在其上运行,如 Linux 和 BSD。 | ||
Microsoft 支持这款处理器,直到 Windows NT 4.0 SP6 ,但是从 Windows 2000 64 Bit RC 阶段后便开始放弃了对 Alpha 的支持。虽然如此,目前仍有极小比重的服务器与超算产业使用该架构及其改进架构,CPU 结构性质也趋于封闭化。 | Microsoft 支持这款处理器,直到 Windows NT 4.0 SP6 ,但是从 Windows 2000 64 Bit RC 阶段后便开始放弃了对 Alpha 的支持。虽然如此,目前仍有极小比重的服务器与超算产业使用该架构及其改进架构,CPU 结构性质也趋于封闭化。 |