【第 5 周】深入理解计算机系统共读心得体会

名词解释

名词 解释
RAM 随机访问存储器(Random-Access Memory)
SRAM 静态随机访问存储器 高速缓存存储器,既可以在CPU芯片上,也可以在片下。采用六晶体管电路来实现, 只要有电,就会永远地保持它的值
DRAM 动态 即常见的内存,采用电容来显示,对干扰非常敏感
DDR3 SDRAM(Double Data-Rate Synchronous DRAM) 双倍速率同步DRAM 使用两个时钟沿作为控制信号,从而使DRAM的速度翻倍
ROM(Read-Only Memory) 只读存储器 非易失性存储器
EEPROM(Electrically Erasable Programmable ROM) 电子可擦写可编程ROM
总线事务(bus transaction) CPU和主存之间的数据传送,分为读事务和写事务
PCIe(Peripheral Component Interconnect express) 外围设备互连总线,对接I/O设备
DMA传送(Direct Memory Access transfer) 直接内存访问 传送

局部性

  • 时间局部性
  • 空间局部性
名词 解释
顺序引用模式(sequential reference pattern) 步长为1的引用模式(stride-1 reference pattern), 一般而言,随着步长的增加,空间局部性下降
cache 读作"cash"

存储器层次结构的中心思想是: 对于每个k, 位于k层的更快更小的存储设备作为位于k+1层的更大更慢的存储设备的缓存。换句话说,层次结构中的每一层都缓存来自较低一层的数据对象

MMU是CPU芯片的一部分,而TLB(快表)是MMU的一部分。TLB(Translation Lookaside Buffer): 被用作地址翻译,专门用于改进虚拟地址到物理地址转换速度的缓存。其访问速度非常快,和寄存器相当,比L1访问还快。

编写高速缓存友好的代码

  1. 让最常见的情况运行的快。集中再核心函数里的循环上
  2. 尽量减小每个循环内部的缓存不命中数量
    • 对局部变量的反复引用。一旦从存储器读入一个数据对象,就尽可能多地使用它
    • 按照数据对象存储在内存中的顺序、以步长为1的 读数据
    • 多维数组进行操作的程序中,空间局部性尤其重要