深度长文 | 计算机体系结构:核心原理、发展演进与未来趋势(计算机架构系列-1) 本文聚焦计算机体系结构概念与设计思路剖析现代微处理器设计逻围绕以下维度展开计算机体系结构的定义体系结构设计领域与核心目标计算机体系结构的历史性能演进多核处理器片上系统SoC及后续技术的未来发展趋势。全文参考ARM官方公开资料。一、计算机体系结构的核心基础一发展背景与价值从发展历程来看现代计算机诞生不足百年20世纪30-40年代首款机电式和电子管计算机问世历经数十年发展如今的计算机在速度、功耗、可靠性和成本上实现了数量级的优化。EDSAC是第一台全面投入运行的电子存储程序计算机。该项目于1947年启动并在1949年运行了首批程序。EDSAC配备16KB闪存和4KB RAM的Arm Cortex-M3微控制器的芯片二三层抽象层级计算机体系结构的设计与研究围绕三层核心抽象层级展开各层级分工明确、相互支撑架构Architecture架构定义了指令集以及操作系统和 Hypervisor 所依赖的异常模型与内存模型。Arm 架构还包括系统寄存器、调试与跟踪架构的定义以及虚拟内存系统的细节。除了 CPU 之外定义其他组件和接口也常常有助于硬件与软件之间的互操作这些有时被称为“系统架构”—CPU 架构与系统架构共同构成了操作系统可以依赖的平台定义。微体系结构Microarchitecture计算机内部结构的逻辑组织方式是体系结构的具体逻辑实现。架构没有描述的是处理器的构建方式这部分我们称之为微架构。理解微架构的一个简单方法是想象有两辆汽车。两辆车都能带你到达同一个目的地但它们的构造方式可能截然不同。类似地两个处理器可以实现相同的架构但拥有不同的微架构这意味着它们以非常不同的方式构建。这里的唯一约束是满足规范从而使不同的微架构设计在功能上保持一致。不同的微架构可能在性能和成本例如面积、功耗或复杂度之间做出不同的权衡。硬件实现层Hardware or Implementation可以针对给定的微架构选择参数然后使用不同的电路、门和晶体管即使用不同的制造工艺技术来实现设计。不同的实现也可以针对不同的时钟频率并以此运行。即使在相同的工艺节点例如 28 nm 或 10 nm下也会存在许多选择例如侧重性能还是能效。三体系结构的核心内涵计算机体系结构并非仅局限于指令集或高层体系结构的定义其核心是结合制造工艺挖掘技术潜力以满足市场需求。如下图展示了“计算机体系结构领域”及其主要“参与者”应用、体系结构、技术及市场。这些要素之间均存在不同程度的相互影响图中的连线/箭头表示强影响或根本性影响用粗线表示。半导体技术的进步催生了更小的晶体管进而推动新的应用与市场诞生。而市场本身也可能反向影响基础制造技术。基础技术还对计算机体系结构产生根本性影响因为技术特性限制了设计的可能性如时钟频率、晶体管数量、功耗以及哪种设计最优。封装技术和存储技术也会产生类似的影响。同样应用特性会决定常见场景即处理器设计应针对优化的目标从而影响体系结构设计的选择。市场则定义了诸多目标如成本、性能、尺寸、安全性、可靠性、功耗、上市时间等。同时体系结构设计各层级均有独特的需求和约束且会随时间演变。二、计算机体系结构的设计领域与核心目标一设计领域的核心影响因素计算机体系结构的设计受多重因素交叉影响核心包括应用特征、新兴应用、制造技术和市场需求各因素相互作用共同决定了体系结构的设计方向和优化重点。二六大核心设计目标设计过程需围绕六大核心目标展开各目标相互制约需根据目标市场进行差异化权衡功能性硬件功能缺陷难以像软件一样快速修正验证是设计流程中成本最高的环节芯片制造后的测试同样成本高昂需在设计阶段提前规划性能无统一的性能评判标准性能表现高度依赖工作负载类似跑车与越野四驱车的性能差异需匹配具体应用场景功耗当前绝大多数设计的一级约束条件功耗直接限制系统的性能上限安全性核心为控制敏感数据访问、防止恶意输入劫持处理器控制权。安全性往往是一个关键的设计目标因为我们依赖网络化计算机系统来提供关键基础设施并存储个人数据。有些防御措施需要在架构和硬件层面实施以防范蓄意滥用。安全性被认为日益重要并且正越来越多地影响处理器的设计。成本涵盖设计成本复杂度、芯片裸片成本面积、封装成本等多个维度可靠性需考虑运行过程中故障的检测和/或容错能力。三目标市场与处理器品类匹配不同目标市场对功耗、成本、面积、性能、安全性、可靠性的权衡需求不同Arm针对各市场推出了差异化的处理器品类Cortex-A高性能应用处理器适用于手机等消费电子设备Cortex-R具备确定性实时性能支持故障检测与容错适用于实时性要求高的场景Cortex-M高能效嵌入式处理器属于微控制器级核心适用于各类嵌入式设备三、计算机体系结构的历史性能演进一核心性能提升阶段1985-20021985年完整的微处理器首次实现单芯片集成此后随着制造工艺进步晶体管尺寸不断缩小单核性能进入快速提升期依托SPEC基准数据测算近20年单核性能年均提升52%该数据针对桌面/服务器处理器。1985-2002年处理器性能实现约800倍提升核心驱动因素包括时钟频率优化、指令执行效率提升和指令集优化。二性能提升的核心驱动因素时钟频率优化1985-2002年时钟频率实现大幅提升其中晶体管提速带来约10倍提升流水线和电路级技术进步带来约10倍提升合计实现约100倍提升贡献了800倍性能提升中的100倍核心路径包括缩短关键路径和制造工艺升级。指令执行效率提升CPI/IPC优化早期处理器受晶体管数量限制单条指令需多个时钟周期执行随着晶体管预算增加设计向CPI趋近1演进若不考虑时钟频率该目标易实现高频率下实现低CPI则难度显著提升需通过各类技术避免处理器停滞后续行业实现单时钟周期取指并执行多条指令CPI降至1以下核心依托指令级并行ILP技术通过更多晶体管挖掘并利用指令间的独立性。其他因素剩余约700倍性能提升中约7倍来自指令数减少、编译器优化和IPC提升指令数减少的核心手段包括增加数据通路宽度、减少加载/存储指令、引入复杂指令和SIMD指令等。三流水线技术性能提升的核心支撑流水线技术是提升处理器并行执行效率的核心手段其原理类似汽车制造的流水线作业将指令执行的完整流程拆分为多个阶段如底盘、发动机、喷漆不同指令的不同阶段可并行执行打破了“单指令完成后再执行下一条”的串行模式大幅提升了单位时间内的指令执行数量。四、单核性能增长放缓与技术转型一单核性能增长放缓的核心原因2002年后单核性能增长速度从年均52%降至21%核心受四大因素限制且均存在难以突破的技术瓶颈。流水线技术的极限流水线中断的成本持续增加如缓存缺失、分支预测错误的影响部分组件难以流水线化高频时钟的分布式传输存在实际限制寄存器延迟不可忽略流水线阶段间的逻辑平衡难度大幅提升。指令级并行的极限大量指令集并行难以高效发现和利用投入产出比快速下降需消耗更多功耗和晶体管才能挖掘少量额外的提升。功耗约束1980-1990年代即便制造工艺进步、电源电压降低处理器功耗仍快速增长如今功耗已成为所有主流市场的一级设计约束。片上布线的限制布线延迟的缩放效果远差于逻辑延迟限制了单时钟周期内可访问的状态量进而制约了大型复杂处理器的性能。二技术转型从单核到多核受单核性能瓶颈影响约2005年起多核设计成为行业主流技术发展方向发生核心转变从追求单核高频转向增加单芯片核心数量时钟频率增速放缓单个核心的设计重点向功耗效率优化倾斜。典型设计如4核Arm Cortex-A72处理器每个核心配备独立L1缓存所有核心共享L2缓存。而且编写并行程序并处理并发问题远比编写串行应用程序更加困难。五、片上系统SoC与专业化加速技术一专业化加速超越通用处理器的设计思路为满足设计目标行业逐渐突破通用可编程处理器的范畴转向专业化加速设计以灵活性为代价换取效率提升剔除通用处理器中不常用的模块针对窄范围工作负载甚至单一算法定制设计这类“加速器”在功耗和性能上相比通用解决方案有10-1000倍的优势。专业化加速的核心设计手段包括移除处理器中低频使用部分针对常见操作优化指令集或替换为硬连线控制挖掘应用中丰富的并行形式将专用处理单元和本地内存多次复现定制专用内存并优化其宽度和大小设计组件间的专用互连优化数据使用模式。典型的专业化加速单元包括神经网络处理单元NPU、图形处理单元GPU前者针对人工智能算法定制集成MAC引擎、本地内存等专用模块后者针对图形处理优化包含多个着色器核心、高级分块单元等专用组件。二片上系统SoC高度集成的设计趋势多核与专业化加速技术的结合推动了片上系统SoC的发展现代SoC实现了各类处理器核心、专用加速器、存储和接口的高度集成。以2019年手机SoC为例其集成了超70亿个晶体管核心组成包括多个处理器核心大核小核的异构设计、GPU、大量专用加速器、片上大内存、片外内存的高带宽接口。三计算机体系结构的并行化发展脉络从发展历程来看计算机体系结构的性能提升始终围绕并行化展开核心脉络为早期计算机依托位级并行提升性能流水线和超标量发射技术挖掘指令级并行多核/GPU实现线程级并行和数据级并行SoC的高度集成、异构设计和专业化加速进一步挖掘加速器级并行。值得注意的是存储层次结构的发展同样至关重要其通常占据晶体管预算的很大一部分。1. 参考ARM官方公开资料