CPU架构和微架构
CPU架构(CPU Architecture)
CPU架构是指处理器的整体设计框架,定义了处理器的指令集、寄存器、内存管理方式等。它是处理器设计的顶层规范,决定了软件如何与硬件交互。
主要特点:
- 指令集架构(ISA, Instruction Set Architecture):定义了处理器支持的指令集(如x86、ARM、RISC-V)。
- 寄存器:定义了处理器的寄存器数量和用途。
- 内存模型:定义了处理器如何访问和管理内存。
- 输入/输出(I/O):定义了处理器与外部设备的交互方式。
常见CPU架构**:**
- x86/x86-64:用于PC和服务器。
- ARM:用于移动设备和嵌入式系统。
- RISC-V:开源架构,适用于多种场景。
- MIPS/Power/SPARC:用于特定领域(如网络设备、高性能计算)。
1. 早期CPU架构
- 4位和8位处理器:如Intel 4004(1971年)和Intel 8008(1972年),主要用于简单计算和控制任务。
- 16位处理器:如Intel 8086(1978年),标志着x86架构的诞生,支持更复杂操作和更大内存寻址。
2. x86架构的演进
- 32位处理器:如Intel 80386(1985年),引入保护模式,支持多任务和虚拟内存。
- 64位处理器:如AMD Athlon 64(2003年),扩展了寄存器和内存寻址能力,提升性能。
3. RISC架构的兴起
- RISC(精简指令集计算机):如ARM、MIPS、SPARC,简化指令集,提升执行效率,广泛应用于移动设备和嵌入式系统。
4. 多核与并行计算
- 多核处理器:如Intel Core 2 Duo(2006年),通过多核设计提升并行处理能力。
- SIMD(单指令多数据):如MMX、SSE、AVX,加速多媒体和科学计算。
5. 现代CPU架构
- 异构计算:如ARM big.LITTLE,结合高性能与低功耗核心,优化能效。
- 专用加速器:如GPU、TPU,针对AI和机器学习任务进行优化。
6. 指令集架构(ISA)
- CISC(复杂指令集计算机)处理器微架构(Microarchitecture)和CPU架构(CPU Architecture)是计算机处理器设计中的两个重要概念,它们密切相关但又有不同的侧重点。以下是它们的详细解释及关系:
2. 处理器微架构(Microarchitecture)
处理器微架构是指CPU架构的具体实现方式,即如何在硬件层面实现指令集和功能。它关注的是处理器的内部设计细节,如流水线、缓存、分支预测等。
主要特点:
流水线设计:将指令执行分为多个阶段,提高并行性。
缓存层次:包括L1、L2、L3缓存,优化数据访问速度。
分支预测:预测程序分支,减少流水线停顿。
乱序执行:动态调整指令执行顺序,提高效率。
功耗管理:通过动态频率调整和核心休眠降低功耗。
常见微架构:
Intel:
Haswell(第四代酷睿)
Skylake(第六代酷睿)
Golden Cove(第十二代酷睿)
AMD:
Zen(第一代Ryzen)
Zen 3(Ryzen 5000系列)
ARM:
Cortex-A77
Cortex-X1
Intel x86架构下的微架构演进
CPU架构 | 微架构 | 特点 |
---|---|---|
x86 | NetBurst | 高频设计,但功耗高(Pentium 4)。 |
x86 | Core | 高效能设计,注重能效(Core 2 Duo)。 |
x86-64 | Nehalem | 引入超线程技术,改进内存控制器(Core i7)。 |
x86-64 | Haswell | 22纳米工艺,支持AVX2指令集(第四代酷睿)。 |
x86-64 | Skylake | 14纳米工艺,支持DDR4内存(第六代酷睿)。 |
x86-64 | Golden Cove | 高性能设计,支持DDR5内存(第十二代酷睿)。 |
ARM架构下的微架构演进
CPU架构 | 微架构 | 特点 |
---|---|---|
ARMv7 | Cortex-A8 | 早期高性能设计,用于智能手机。 |
ARMv8 | Cortex-A53 | 低功耗设计,用于嵌入式设备。 |
ARMv8 | Cortex-A77 | 高性能设计,支持AI加速。 |
ARMv9 | Cortex-X2 | 极致性能设计,用于旗舰手机。 |
CPU架构和微架构的关系
- CPU架构:定义了处理器的指令集和功能,是软件与硬件交互的基础。
- 微架构:是CPU架构的具体实现,决定了处理器的性能、功耗和效率。
- 关系:
-
CPU架构是顶层设计,微架构是底层实现;一个CPU架构可以有多个微架构,微架构的改进可以提升 处理器的性能。
- CPU架构是规范,微架构是实现:
- CPU架构定义了处理器的指令集和功能(“做什么”)。
- 微架构决定了如何实现这些功能(“怎么做”)。
-
- 一个CPU架构可以有多个微架构:
- 例如,x86架构下有Intel的Haswell、Skylake微架构,以及AMD的Zen微架构。
- 微架构的改进可以提升性能:
- 在同一CPU架构下,通过优化微架构(如增加缓存、改进流水线),可以提高处理器的性能和能效。
类比**:**
- CPU架构:像是一本菜谱,定义了菜品的原料和步骤。
- 微架构:像是厨师的具体做法,决定了菜品的口感和质量。
处理器微架构详细
Nehalem 微架构 和Lynnfield处理器
2008年推出。
Nehalem微架构采用可扩展的架构,主要是每个处理器单元均采用了Building Block模组化设计,组件包括有:核心数量、SMT功能、L3缓存容量、QPI连接数量、IMC数量、内存类型、内存通道数量、整合GPU、 ? 能耗和时钟频率等,这些组件均可自由组合,以满足多种性能需求,比如可以组合成双核心、四核心甚至八核心的处理器,而且组合多个QPI连接更可以满足多路服务器的需求。
2009年9月, 推出基于Nehalem微架构的Lynnfield处理器。
Lynnfield核心示意图
Sandy Bridge,桑迪桥
双芯融合, GPU和CPU融合
关于 Sandy Bridge的更多介绍,可以参考:
https://www.expreview.com/topic/snb/
Sandy Bridge还有一个最重要的改进就是加入AVX指令集。
Ivy Bridge : Sandy Bridge的工艺改良版。首次采用22nm 3D晶体管工艺,是今后Intel半导体工艺的重要基础
Haswell
2013年推出的全新微架构。把原来主板上的VRM模块整合到了CPU内部,FIVR调压模块的加入让主板的供电变得简单,并且可以对CPU内部的电压进行更为精确的控制,提高供电效率。
Haswell核心示意图
指令集: 增加了两个:
1.针对多线程应用的TSX扩展指令
2. AVX指令的进阶版AVX2
Broadwell:14nm工艺的Haswell处理器, 主要用在移动平台。
Skylake
Kaby Lake是Skylake的优化版本。
指令集
AVX, 高级矢量扩展,是因特尔在2008年3月推出的微处理器X86指令集架构的扩展。
在Visual Studio设置指令集的方法:
https://docs.microsoft.com/en-us/cpp/build/reference/arch-x64?view=vs-2019