Maximum efficiency of pipelining: Free from Data Hazards, Control Hazards, Structural Hazards.
- Vector Instruction Execution is data hazard-free and control hazard-free
Processors are still getting more powerful but Memory Wall remains a challenge (Memory is far away, Memory bandwidth is insufficient)
Memory Wall
Memory Wall: the growing gap between the speed of processors and the speed of main memory (DRAM). (gap between CPU and main memory)

Latency
如何减少延迟 (Reduction)?
- 本地内存 (Local Memory): 就像在大脑旁边放一个小柜子,存放最常用的资料,这样就不用每次都跑去大仓库了。在计算机里,这可以指缓存(Cache)或者一些专用的高速内存。
- NUMA (Non-Uniform Memory Access - 非一致性内存访问): 想象一下,如果一个大公司有好几个部门,每个部门都有自己的小仓库。当部门A的大脑需要资料时,它会优先从自己的小仓库拿,速度会很快。如果需要其他部门仓库的资料,就会慢一些。NUMA架构就是类似这样,处理器访问离它近的内存会更快。
- PIM (Processing-In-Memory - 内存中处理): 这个想法更激进,直接把一部分处理能力放到仓库里。就像仓库管理员不仅负责存取,还能在仓库里直接对资料进行一些简单的处理,这样大脑就不用把资料搬来搬去,直接拿到处理结果。
如何隐藏延迟 (Hiding)?
既然等待不可避免,那就想办法在等待的时候做点别的事情,不让大脑闲着。
- 多线程/超线程 (Multi-threading/Hyper-threading): 一个大脑可以同时处理多个任务(线程)。当一个任务因为等待内存而卡住时,大脑可以立刻切换到另一个任务去执行,不浪费时间。context switch
- WARP Interleaving (GPU概念): 这是图形处理器(GPU)里的一种技术。GPU有很多小“大脑”(核心),它们会分成小组(WARP)。当一个小组因为等内存而暂停时,GPU的调度器会切换到另一个准备好的小组去执行。
- 芯片级多线程 (Chip-multithreading): 和多线程/超线程类似,在芯片层面就支持多个线程的并行执行,以掩盖内存访问的等待。
Bandwidth
内存带宽 (Memory bandwidth): 指的是CPU和主内存之间数据传输的速率。
- 多Bank和交错内存 (Multi-banks and interleaved memory): 想象把大仓库分成很多个小区域(Bank),并且可以同时从不同区域存取资料,或者轮流从不同区域存取(交错),这样就能提高整体的吞吐量。
- SDRAM, HBM (Synchronous DRAM, High Bandwidth Memory): 这些都是更先进的内存技术。SDRAM通过与系统时钟同步来提高速度。HBM则是一种高带宽内存技术,它通过在芯片上堆叠内存颗粒,并使用更宽的数据通道,极大地提升了带宽,常用于高端显卡。