深入理解计算机系统(csapp)阅读笔记——第六章存储器层次结构

1.存储技术

  • 计算机程序一个称为局部性的基本属性。具有良好局部性的程序倾向于一次又一次地访问相同的数据项集合,或是倾向于访问邻近的数据项集合。具有良好局部性的程序比局部性差的程序更多地倾向于从存储器层次结构中较高层次处访问数据项。

(1)随机访问存储器

  • 随机访问存储器分为两类:静态的和动态的。静态RAM比动态RAM更快,但也贵很多。SRAM用来作为高速缓存存储器,既可以在CPU芯片上,也可以在片下。DRAM用来作为主存以及图形系统的帧缓冲区
  • SRAM与DRAM的特性:
    在这里插入图片描述
    只要用供电,SRAM就会保持不变,与DRAM不同,它不需要刷新。SRAM的存取比DRAM快。SRAM对诸如光和电噪声这样的干扰不敏感。
  • 传统的DRAM
    在这里插入图片描述
    在这里插入图片描述
    举个例子:
    在这里插入图片描述
  • DRAM芯片封装在内存模块中。Corei7系统使用的240个引脚的双列直插内存模块,它以64位块传送数据到内存控制器和从内存控制器传出数据
    在这里插入图片描述
    在这里插入图片描述
  • 增强的DRAM:
    在这里插入图片描述
    在这里插入图片描述

(2)非易失性存储器

如果断电,DRAM和SRAM会丢失它们的信息,从这个意义上说,它们是易失的。从而有非易失存储器ROM。它即使是在关电后,仍然保存着它们的信息。ROM是以它们能够被重编程(写)的次数和对它们进行重编程所用的机制来区分的。

  • PROM只能被编程一次,每个存储器单元有一种熔丝,只能用高电流熔断一次
  • 可擦写可编程EPROM可编程的次数的数量级可以达到105次。
  • 闪存(flashmemory)基于EEPROM
  • 存储在ROM设备中的程序通常被称为固件(firmware)。当一个计算机系统通电以后,它会运行存储在ROM中的固件

(3)访问主存

  • 数据流通过称为总线的共享电子电路在处理器和DRAM主存之间来来回回。每次CPU和主存之间的数据传送都是通过一系列步骤完成的,这些步骤称为总线事务。读事务从主存传送数据到CPU。写事务从CPU传送数据到内存。
  • 总线是一组并行的导线,能携带地址、数据和控制信号。取决于总线的设计,数据和地址信号可以共享同一组导线,也可以使用不同的。同时,两个以上的设备也能共享同一总线。控制线携带的信号会同步事务,并标识出当前正在被执行的事务的类型。
    在这里插入图片描述
    举个例子:movq A,%rax 在这里插入图片描述

(4)磁盘存储

  • 磁盘是广为应用的保存大量数据的存储设备,存储数据的数量级可以达到几百和几千兆字节,而基于RAM的存储器只能有几百或几千兆字节。不过,从磁盘上读信息的时间为毫秒级,比从DRAM读慢了10万倍,比从SRAM堵慢了100万倍
① 磁盘构造
  • 磁盘是由盘片构成的。每个盘片有两面或者称为表面。盘片中央有一个可以旋转的主轴。磁盘通常包含一个或多个这样的盘片,并封装在一个密封的容器内。
  • 磁盘表面的结构
    在这里插入图片描述
    每个表面是由一组称为磁道的同心圆组成的,每个磁道被划分为一组扇区。每个扇区包含相等数量的数据位(通常是512字节)扇区之间有一些间隙(gap)分隔开,这些间隙中不存储数据位。间隙存储用来标识扇区的格式化位
  • 磁盘是由一个或多个叠放在一起的盘片组成的, 它们被封装在一个密封的包装里,整个装置被称为磁盘驱动器。
  • 柱面:所有盘片表面上到主轴中心的距离相等的磁道的集合
② 磁盘容量
  • 一个磁盘上可以记录的最大位数称为它的最大容量,或者简称为容量。
  • 磁盘容量的相关因素:
    • 记录密度(位/英寸):磁盘一英寸的段中可以放入的位数
    • 磁道密度(道/英寸):从盘面中心出发半径上一英寸的段内可以有的磁道数
    • 面密度(位/平方英寸):记录密度与磁道密度的乘积·
  • 磁盘容量的计算公式:
    在这里插入图片描述
③ 磁盘操作
  • 磁盘的动态特性
    在这里插入图片描述
  • 对扇区的访问时间:寻道时间+旋转时间+传送时间
    • 寻道时间:为了读取某个目标扇区的内容,传动臂首先将读/写头定位到包含目标扇区的磁道上,通常为3~9ms
    • 旋转时间:一旦读/写头定位到了期望的磁道,驱动器等待目标扇区的第一个位旋转到读/写头下。计算方法:
      在这里插入图片描述
    • 传送时间:读取数据的时间,通常为转动的速度乘以所在扇区的长度
  • 寻道时间和旋转延迟大致相当,而传送时间可忽略不计,所以简单的可将寻到时间乘2获得访问时间

(5)连接I/O设备

  • 总线结构示例:
    在这里插入图片描述
    • 通用串行总线(Universal Serial Bus,USB)
    • 图形卡(或适配器)
    • 主机总线适配器:将一个或多个磁盘连接到I/O总线。

(6)固态硬盘

  • 固态硬盘(Solid State Disk,SSD)是一种基于闪存的存储技术。
    在这里插入图片描述
  • 读SSD要比写要快

2.局部性

  • 局部性原理:计算机倾向于引用邻近与其他最近引用过的数据项的数据项,或者最近引用过的数据项本身。包括时间局部性和空间局部性:
    • 时间局部性:被引用过一次的内存位置很可能在不远的将来再被多次引用。
    • 空间局部性:如果一个内存位置被引用了一次,那么程序很可能在不远的将来引用附近的一个内存位置
  • 步长为1的引用模式是程序中空间局部性常见和重要的来源。一般而言,随着步长的增加,空间局部性下降。
    例如:遍历一个二维数组应该使用行遍历而不是列遍历,因为一个二维数组在虚存中按照行顺序存放的。

3.存储器层次结构

在这里插入图片描述

  • 高速缓存(cache)是一个小而快速的存储设备,它作为存储在更大、也更慢的设备中的数据对象的缓冲区域。使用高速缓存的过程称为缓存。
  • 存储器层次结构的中心思想是:对于每个k,位于k层的更快更小的存储设备作为位于k+1层的更大更暗的存储设备的缓存
    在这里插入图片描述
  • 缓存命中:当程序需要第k+1层的某个2数据对象d时,它首先在当前存储在第k层的一个块中查找d。如果d刚好缓存在第k层中,那么就是我们所说的缓存命中了。
  • 缓存不命中:如果第k层中没有缓存数据对象d,那么就是我们所说的缓存不命中。当发生缓存不命中时,第k层的缓存从第k+1层缓存中取出包含d的那个快,如果第k层的缓存已经满了,可能就会覆盖现存的一个块。
  • 一个空的缓存有时被称为冷缓存,此类不命中称为强制性不命中或冷不命中。冷不命中很重要,因为它们通常是短暂的事件,不会在反复访问存储器使得缓存暖身之后的稳定状态中出现。
  • 缓存和局部性地关系:
    • 时间局部性:如果第一次访问未命中则将其置入缓存,之后的访问就能名字了
    • 空间局部性:缓存是一块一块的,一块包括多个数据对象,如果接下来要访问的数据对象还在该块中,则直接命中。

4.高速缓存存储器

  • L1高速缓存的访问速度几乎和寄存器一样快,典型地大约4个时钟周期
  • 高速缓存在CPU中
    在这里插入图片描述
  • 通用的高速缓存存储器组织结构
    在这里插入图片描述
  • 根据每个组的高速缓存行数E,高速缓存被分为不同的类:
    • 直接映射高速缓存:每个组1行
    • 组相联高速缓存:大于等于1行

(1)直接映射高速缓存

  • 高速缓存确定一个请求是否被命中,然后抽取出被请求的字的过程,分为三步:
    ①组选择②行匹配③字抽取
  • 组选择
    在这里插入图片描述
  • 行匹配和字选择
    在这里插入图片描述
  • 直接映射高速缓存中的冲突不命中:当程序访问大小为2的幂的数组时,直接映射高速缓存中通常会发生冲突不命中。
    例如对于以下程序会发生抖动:即高速缓存反复地加载和驱逐相同的高速缓存块的组
    在这里插入图片描述
    发生抖动的原因主要是每组只有一行导致块过大
    在这里插入图片描述

(2)组相联高速缓存

  • 组向联高速缓存中的组选择:与直接映射高速缓存一样
  • 组向联高速缓存中的行匹配和字选择
    我们可以把组向联高速缓存中的每个组都看成是一个小的相联存储器,key是标记和有效位,而value就是块的内容
    在这里插入图片描述

(3)全相联高速缓存

  • 只有一个组
    在这里插入图片描述
  • 组选择
    在这里插入图片描述
  • 行匹配和字选择
    在这里插入图片描述

(4)高速缓存参数的性能影响

  • 衡量高速缓存的性能一些指标:
    • 不命中率:不命中数量/引用数量
    • 命中率:1-不命中率
    • 命中时间:从高速缓存传送一个字到CPU所需的时间
    • 不命中处罚:由于不命中所需要的额外的时间。

(5)有关写的问题

在这里插入图片描述

5.编写高速缓存友好的代码

  • 两个确保代码高速缓存友好的基本方法
    • 让最常见的情况运行得快
    • 尽量减小每个循环内部的缓存不命中数量
  • 两个确保代码高速缓存友好的重要问题
    • 对局部变量的反复引用是好的
    • 步长为1的引用模式是好的
发布了33 篇原创文章 · 获赞 3 · 访问量 613

猜你喜欢

转载自blog.csdn.net/qq_43647628/article/details/104627088