名词解释
名词 | 解释 |
---|---|
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的 读数据
- 多维数组进行操作的程序中,空间局部性尤其重要