章节总结

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

results matching ""

    No results matching ""