本章小结

  • 指令集架构(ISA)是软件和硬件之间的基本契约。ISA 是计算机的抽象模型,定义了可用操作和数据类型的集合、一组寄存器、内存寻址方式以及其他事项。你可以用多种不同方式实现特定的 ISA。例如,你可以设计一个优先考虑能效的"小"核心,或者一个以高性能为目标的"大"核心。
  • 实现的细节封装在 CPU"微架构"(microarchitecture)这个术语中。这个话题已经被数千名计算机科学家长期研究。多年来,许多聪明的想法被发明出来并在大众市场 CPU 中实现。最值得注意的是流水线、乱序执行、超标量引擎、推测执行和 SIMD 处理器。所有这些技术都有助于开发指令级并行性(ILP)并提高单线程性能。
  • 与单线程性能并行,硬件设计师开始推动多线程性能。绝大多数面向客户端的现代设备都有包含多个核心的处理器。一些处理器借助同时多线程(SMT)将可观察到的 CPU 核心数量翻倍。SMT 使多个软件线程能够使用共享资源在同一物理核心上同时运行。这个方向上更新的技术被称为"混合"处理器,它在单个封装中结合了不同类型的核心,以更好地支持多样化的工作负载。
  • 现代计算机中的内存层次结构包括几个缓存级别,反映了访问速度与大小之间的不同权衡。L1 缓存倾向于最接近核心、快速但容量小。L3/LLC 缓存更慢但也更大。DDR 是大多数平台使用的主流 DRAM 技术。DRAM 模块在 rank 数量和内存宽度方面有所不同,这可能对系统性能产生轻微影响。处理器可能有多个内存通道,以同时访问多个 DRAM 模块。
  • 虚拟内存是将物理内存与在 CPU 上运行的所有进程共享的机制。程序在访问时使用虚拟地址,这些地址被转换为物理地址。内存空间被分成页(pages)。x86 上默认页面大小为 4KB,ARM 上为 16KB。只有页面地址被转换,页面内的偏移量按原样使用。操作系统在页表中保存转换,页表被实现为基数树。有硬件特性可以改善地址转换的性能:主要是转换后备缓冲区(TLB)和硬件页面遍历器。此外,开发人员在某些情况下可以利用大页(Huge Pages)来减少地址转换的开销(参见 [secDTLB])。
  • 我们查看了 Intel 最新 Golden Cove 微架构的设计。从逻辑上讲,核心被分为前端和后端。前端由分支预测单元(BPU)、L1 I-cache、指令取指和译码逻辑以及 IDQ 组成,IDQ 向 CPU 后端提供指令。后端由 OOO 引擎、执行单元、加载-存储单元、L1 D-cache 和 TLB 层次结构组成。
  • 现代处理器具有性能监控特性,这些特性被封装到性能监控单元(PMU)中。该单元围绕性能监控计数器(PMC)的概念构建,可以观察程序运行时发生的特定事件,例如缓存未命中和分支预测错误。

results matching ""

    No results matching ""