深入理解计算机系统笔记(一)

2021-02-25  本文已影响0人  西门早柿

存储器的层次结构

  1. 存储技术

    • 随机访问存储器 RAM
      • SRAM CPU 的高速缓存
      • DRAM 主存
      • 地址访问模型
        • 单位存储器采用,阵列式寻址,需要的线路少,但需要两次寻址
        • 多个单位存储器组合在一起,提供更大的空间,每个单位存储器存储部分比特位
      • 平均响应时间在 ns 组
    • 存储器的访问
      • 系统总线
      • 存储器总线
      • IO 桥
      • 存储器映射 I/O
      • 直接存储器访问(Direct Memory Access, DMA)
    • 机械硬盘
      • 磁道,扇区,柱面
      • 寻道时间,旋转时间,传送时间
      • 平均响应时间在 ms 级
      • 磁盘访问的抽象
        • 抽象成 block
        • 磁盘控制器将 block 映射成磁道、扇区和盘面的组合
        • block 一般要多大?
    • 固态硬盘 SSD
      • 基于闪存的存储技术 EEPROM
      • 最小访问单位为页,一页一般有 512B~4KB 等大小
      • SSD 分为很多块(16KB512KB),每块包括很多页(32128)
      • 修改(MODIFY)某一页的时候,要保证该块被擦除之后才能写入
        • 需要将该块已有的页移动到其它空块
        • 一旦一个块被擦除之后,其中的每个页就可以不需要再进行擦除就写一次(ADD)
  2. 程序的局部性

    • 空间局部性
      • 访问一个地址的时候,有很大概率会访问其相邻的地址
    • 时间局部性
      • 访问一个地址的时候,在接下来的一定时间内可能会多次访问这个地址
  3. 存储器的层次结构

    • 缓存

      • 缓存命中
      • 缓存不命中与替换策略
      • 缓存不命中的种类
        • 冷不命中
        • 冲突不命中
        • 容量不命中,工作集,working set
      • 缓存管理
        • 编译器管理寄存器
        • 硬件管理 L1,L2,L3
        • 操作系统管理磁盘缓存
      • write through 与 write back,一般采用 write back,write back 需要多余的状态位来判断是否被修改过,从而在驱逐的时候可以判断是否需要 write back。
    • 寄存器 0 个时钟周期,4 字节或 8 字节

    • L1 4,64 字节块

    • L2 10,64 字节块

    • L3 40,64 字节块

    • 内存,4KB 页

    • 磁盘

    • 网络存储

  4. CPU 高速缓存

    • 多个 CPU 访问导致的 false sharing
    • 映射到相同的组导致的抖动不命中,本质上是冲突不命中
    • 缓存友好的代码
      • 关注调用次数最多的内循环
      • 多用步长为 1 的引用,空间局部性
      • 尽量增同一个变量的访问次数,时间局部性
上一篇下一篇

猜你喜欢

热点阅读