并行系统学习之路(五) ---- Cache探索

术语介绍

  • 翻转次数(普通64位系统下)
    • +- 消耗一个翻转
    • 开方 或 / 消耗4个翻转
    • Log操作消耗8个翻转
    • 比较操作消耗一个翻转
    • 翻转和周期(cycle)不同!
    • 理论的巅峰性能
  • 执行时间
    • CPU 时间
    • wallclock 时间
    • wallclock时间使用更加广泛
    • 现在一般硬件都有硬件性能计时器

单处理器

提高性能的方式:

  • Caching
    • 延迟取决于缓存的级别
  • Parallelism
    • 性能取决于指令序列和顺序
  • Pipelining
    • 并行执行不同步骤

Cache的邻近性

  • 空间邻近性
    • 访问上一次访问的空间的旁边存储单元的可能性大
  • 时间邻近性
    • 访问前几次访问的存储单元的可能性大

Cache的优化点

  1. 保证邻近性
  2. 避免缓存抖动
  3. Loop blocking when out of cache
  4. Software pipelining