计算机系统基础笔记(8)——存储器

前言

这章的重点也挺多的 大家好好学==

一、存储技术

(一)随机访问存储器

1.面向字节的存储器组织

  • 程序根据地址引用数据
  • 地址就像数组的下标
    • 用指针来存储地址
      在这里插入图片描述
回顾:几种简单的存储器寻址模式
  • 间接寻址 :寄存器R指向了存储器的地址
    • 与C语言的指针作用相同
    • movq (%rcx),%rax
  • 基地址+偏移量寻址 :寄存器 R 指定了存储器区域的开始位置
    • 常数 D 是偏移量
    • movq 8(%rbp),%rdx

2.使用传统总线结构连接CPU和内存

  • 总线:一组用于传输地址、数据和控制信号的并行线路
  • 总线通常由多个设备共享
  • 系统总线分为
    • 数据总线(传输数据或者指令):CPU——寄存器
    • 地址总线
    • 控制总线(传输控制信号):CPU——输入输出设备
      在这里插入图片描述

3.内存读

  1. CPU把地址A发送到总线上在这里插入图片描述

  2. 主存从总线上接收到地址A,检索到数据x(字)(这是控制区域的开关),然后发送到总线上
    在这里插入图片描述
    3.CPU从总线上接收数据x(字),然后写入到%eax寄存器中
    就

4.内存写

  1. CPU将地址A发送到总线上,主存收到地址并等待相应数据的到达
    在这里插入图片描述
    2.CPU通过总线发送数据y (字)
    在这里插入图片描述
    3.主存从总线上接收到数据y(字),然后存储到地址A
    在这里插入图片描述

5.随机访问存储器(重点)

需要了解英文名、相关特点及不同

  • 随机访问存储器Random-Access Memory (RAM)
  • 两者实现和存放都是二进制
(1)静态随机访问存储器(SRAM)

常用于高速缓存等等

  • 每个单元用四个或六个晶体管构成的电路存储一个比特
  • 只要保持供电,内容就会一直保持
  • 比DRAM更快也更贵
  • 对电噪声(EMI)、辐射等相对不敏感(抗干扰能力强
    • 很难改变电路
(2)动态随机访问存储器(DSAM)

1.不同

  • 比SRAM更慢也更便宜
  • 对干扰(电噪声,辐射,…)比SRAM更敏感
  • 数据必须每10-100毫秒刷新一次(为了保持内容)
  • 每个单元用一个电容器存储一个比特
  • 还需要一个晶体管用于存取
  1. 主要特征
  • 传统上,DRAM通常被封装成一个芯片
  • 大多数计算机上的主存都是有多个DRAM芯片构成的
    3.技术特点
  • 以两个维度(行和列)组织
  • 在DRAM芯片内访问:先选择行,然后选择列(所以这就是空间局部性的源头^^)
  • 结果:第二次访问同一行比不同的行更快
常规的DRAM组织
  1. d x w DRAM:
    总容量:d x w位
    d 个超单元,每个超单元有w位(每格为一个超单位存放一些二进制数据)
    在这里插入图片描述

  2. 读DRAM超单元(2,1)

  • 第一步(a):**行访问选通信号(RAS) **(也就是行地址)选择第2行

第一步(b):行2复制到DRAM阵列的行缓冲区中
在这里插入图片描述第二步(a):列访问选通信号 (CAS) (也就是列地址)选择第1列

第二步(b):超单元(2,1)从缓冲区复制到数据线,并最终返回CPU
在这里插入图片描述
3.内存条:由多个DSAM芯片组成

增强型DRAM
  • 同步DRAM
    • 使用常规时钟信号代替异步控制
  • 双数据速率同步DRAM(通过发送多几倍的数据来使指令读取的更快)
    • 采用双沿时钟触发,每周期每引脚发送两比特
(3)SRAM和DRAM的比较

在这里插入图片描述

6.非易失存储器(重点)

需要知道一些经典的非易失存储器

  • 易失存储器:DRAM和SRAM都是易失存储器
  • 最常见的非易失存储器是硬盘
    • 硬盘是旋转的盘片(像DVD一样),大容量,但非常慢
    • 还有 ROM(可读)、PROM(可编程)、EPROM(可擦写)、EEPROM、Flash Memory(散存)
  • 非易失存储器可以在断电时保持信息
  • 应用:存储程序固件(BIOS、磁盘控制器、网卡、图形加速卡、安全子系统等)、固态硬盘(作为机械硬盘的替代,应用于智能手机、平板电脑、笔记本电脑等电子产品中)

(二)磁盘存储

1. 磁盘的组成

在这里插入图片描述

2.磁盘构造(重点)

  • 磁盘由多个转盘组成,每个盘有两个面
  • 每个面由多个同心圆,称为磁道
  • 每个磁道由多个扇区组成,扇区之间通过间隙分隔开
    如图
    在这里插入图片描述

在这里插入图片描述

  • 柱面:所有盘片的面上到主轴中心距离相等的磁道的集合
    在这里插入图片描述

3.磁盘的容量(重点)

  • 容量:能被存储的最大位数

◼ 厂商一版使用 GB 作为容量单位(非标准单位)(跟内存中GB的量级相同但是大小不同 因为生产技术不同)
1 GB = 10 9 Bytes

  • 决定容量的因素:
    ◼ 记录密度(位/英寸):每英寸的磁道上可以放入的位数
    ◼ 磁道密度(磁道/英寸):每英寸半径内的磁道数
    ◼ 面密度(位/平方英寸):记录密度与磁道密度的乘积

  • 容量 = (#字节/扇区) x (avg. # 扇区/磁道) x (# 磁道/面) x (# 面/转盘) x (#转盘/硬盘)


下面是例子
Example:
512 bytes/sector
300 sectors/track (on average)
20,000 tracks/surface
2 surfaces/platter
5 platters/disk
Capacity = 512 x 300 x 20000 x 2 x 5
= 30,720,000,000
= 30.72 GB

4.多区记录

  • 现代磁盘将磁道划分为不相交的子集,称为记录区
  • 区域中的每个磁道具有相同数量的扇区,由最内侧的磁道的周长决定
  • 记录区之间的扇区磁道比是不同的
    在这里插入图片描述

5. 磁盘操作

  • 磁盘的盘片以固定的转速旋转
  • 沿着径向移动,臂可以将读/写头定
    位在任何磁道上
  • 读写头步调一致的从一个扇区移动
    到另一个扇区
    在这里插入图片描述
    在这里插入图片描述

6.磁盘访问

  • 寻道:寻找目标扇区所在磁道
    如图在这里插入图片描述
  • 旋转延迟:等待目标扇区旋转到读写头
    在这里插入图片描述- :通过磁道旋转 读写头接触到不同的磁道并进行读的操作
    如图
    在这里插入图片描述

7.磁盘访问时间(重点)

  • 由刚刚对磁盘访问的分析知道 磁盘的访问时间分为三部分
  • 寻道时间
    • 将读写头移动到目标扇区所在柱面的时间
    • 典型值:3 - 9ms
  • 旋转延迟
    • 待目标扇区第一个比特通过读写头所花费的时间
    • T avg rotation = 1/2 x 1/RPMs x 60 sec/1 min
  • 传输时间
    • 读取扇区内所有数据的时间
    • T avg transfer = 1/RPM x 1/(avg # sectors/track) x 60secs/1 min

总结
磁盘访问时间 = 平均寻道时间 + (60/转速) **(1/平均每个扇区的磁道数)1000 +1/2 (60/转速)*1000


下面是例子
已知:
◼ 转速 = 7200 RPM
◼ 平均寻道时间 = 9 ms
◼ 平均每个扇区的磁道数 = 400
可得:
◼ T avg rotation = 1/2 x (60 secs/7200 RPM) x 1000 ms/sec = 4 ms.
◼ T avg transfer = 60/7200 RPM x 1/400 secs/track x 1000 ms/sec = 0.02 ms
◼ T access = 9 ms + 4 ms + 0.02 ms

  • 补充:磁盘比SRAM慢四万倍左右,比DRAM慢2500倍,SRAM的访问时间是4ns/双字,DRAM是60ns/双字

8.逻辑磁盘块

  • 建立逻辑块与物理扇区之间的映射
  • 将对逻辑块的请求转换为三元组(盘面、磁道、扇区

9.I/O总线

  • I/O桥:用于实现高速总线与低速总
    线的协同工作
    在这里插入图片描述

10.读磁盘扇区

  • CPU通过向与磁盘控制器相关的端口
    (地址)写入命令、逻辑块号和目标存
    储器地址来开启磁盘读取。在这里插入图片描述
  • 磁盘控制器读取扇区信息,并启动DMA
    将磁盘数据向主存的传输。(DMA:直接内存访问技术(绕开CPU))(DMA是重点^^)在这里插入图片描述
  • 当DMA传输完成时,磁盘控制器用一个
    中断通知CPU(即在CPU上触发一个特
    殊的中断引脚)

(三)固态存储

了解即可

1.固态硬盘(SSD)

页:512B – 4KB
块:32 – 128 个页
数据读写以页为单位
页仅能才擦除后被写入
通常擦除操作以块为单位
块的寿命大约是100,000次写入
在这里插入图片描述

2.固态硬盘性能特点

为什么随机写慢?
◼ 擦除一个块的时间很慢(将近1ms)
◼ 写入页将触发当前块中所有有效页的一次复制
◼ 找到一个用过的块(新块)并擦除它
◼ 将页面写入新块
◼ 块将其他页面从旧块复制到新块
在这里插入图片描述

3.硬盘与磁盘之间的选择

优点(固态硬盘)
◼ 没有机械结构 → 更快,更低能耗,更结实
缺点
◼ 寿命问题
◼ 可以通过Flash转换层(FTL)的负载均衡来缓解
◼ 例如:Intel X25 保证 1PB(10 15 byte)数据的随机读写寿命
◼ 在2010年,大约每字节的成本是(磁盘)的100倍

(四)存储技术趋势

  • DRAM,磁盘和CPU间性能差距越来越大
    在这里插入图片描述

二、局部性原理

(一)问题的提出:内存的访问速度慢

  • 与CPU指令周期相比,DRAM的访问速度相当慢
    • ◼ DRAM芯片的访问时间大约是30-50ns
      ◼ 将数据从主存传输至寄存器的时间更是至少要3倍于此
      ◼ CPU指令周期是亚纳秒级的,每次内存访问的时间大约是100多个CPU指令周期
      ◼ 而且这种差距还有扩大的趋势
  • 结果:内存的访问效率对计算机系统的性能有重要的影响
    • ◼ 程序中近乎1/3的指令时内存数据的加载和存储
      ◼ 这个问题需要硬件设计者和程序员共同来解决

2.局部性原理

  • 局部性原理:程序倾向于使用最近访问过的数据和指令,或是与之临近的数据和指令(会考)

  • 时间局部性

    • 最近使用过的指令/数据很可能在不久的将来还会再次被使用
      在这里插入图片描述
  • 空间局部性

    • 临近地址的指令/数据在短期内可能会使用
      在这里插入图片描述

下面是例子
在这里插入图片描述

  • 数据使用
    ◼ 连续使用数组元素(步长为1)(空间局部性)
    ◼ 每一次循环都会使用sum 变量(时间局部性)
  • 指令使用
    ◼ 按照顺序使用指令(空间局部性)
    ◼ 通过循环反复使用指令(时间局部性)

三、存储器层次结构

(一)软件与硬件

  • 建构一种用与组织存储器与存储系统的方法,称之为存储器层次结构

(二)存储器结构

下面是经典的存储器金字塔,需要了解他的特征以及大概的分布

  • 缓存:更小、更快速存储设备来暂时存储较大、较慢存储设备中数据子集(快暂存慢的)
  • 基本思想是对于更小、更快的第k层,缓存较大、较慢的第k+1层中的数据
  • 为什么能提高效率: 程序的局部性原理:程序访问第k层的数据的概率要比第k+1层更大
  • 重要思想:存储器层次结构构建了一个巨大的存储池,其成本接近于最底部的廉价存储,其速度接近于最顶部的快速存储
    在这里插入图片描述

(三)缓存

1.高速缓存与主存间的缓存

  • 以“块”作为基本传输单元
    如图
    在这里插入图片描述

2.命中

  • 若请求的数据在块中即为命中
    如下例
    在这里插入图片描述

3.局部性特征如何导致缓存命中

  • 时间局部性
    ◼ 如果第二次到第N次都访问相同位置,将会导致命中
  • 空间局部性
    ◼ 缓存块中包含多个数据,第二次到第N次数据访问可能会命中在第一次访问数据所处的缓存块上
    ◼ DRAM的行缓冲器也是一个缓存的案例

4.未命中

  • 块未在高速缓存中: 未命中
  • 各种类型的未命中(重点)
    • 冷(强制)未命中
      • 对块的第一次访问必然会错过
        大多数冷未命中发生在(程序、系统)启动时,因为缓存是空的
    • 容量未命中
      - 当活跃的缓存块集合(工作集)大于缓存容量时发生
    • 冲突未命中
      • 大多数缓存机制都是将k+1层的块的位置映射在k层指定的一个子集中(有时甚至固定的某个位置
      • 例如:级别k+1的块i必须放在级别k的块(i mod 4)中
      • 即使k层缓存足够大,但当k+1层的多个数据对象都映射到相同k级块时,也会发生冲突未命中
      • 例如:按下列次序引用快0、8、0、8、0、8 ……,每次都会出现未命中
  • 解决方案
    • 块放置策略
      决定了块#12存储在缓存中
      的那个位置
    • 块替换策略
      决定了高速缓存中那个块要
      被换出(牺牲)
      在这里插入图片描述

重点

  • 局部性原理
  • 磁盘的两个指标 容量和访问磁盘的时间的计算
  • 了解常见的易失存储器和非易失存储器
  • 需要了解随机访问存储器的英文名、相关特点及不同
  • 存储器的结构特点
  • 未命中的类型
  • 16
    点赞
  • 28
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值