第三章

3.1 存储系统基本概念 重点

存储的分类 按照存取方式
随机存取存储器(RAM) 内存
顺序存取存储器(SAM)磁带
直接存取存储器(DAM)磁盘
SAM和DAM都属于串行访问存储器

按照信息读出后 原信息是否被破坏
DRAM芯片 破坏性读出 磁盘光盘
SRAM芯片 非破坏性读出

存储性能指标 容量 数据传输速率即带宽 存储周期

3.2 主存

主存储器的基本组成

一次读写的完整流程是什么样的

豆包总结
一次读操作完整流程

  1. CPU 把内存地址送入 MAR,通过地址总线发给存储芯片。
  2. 地址送到芯片内部译码器,译码选中存储矩阵某一行(存储单元)
  3. 片选信号,把这块芯片激活。
  4. 发读控制信号 O E \overline{OE}
  5. 被选中一行全部 bit,经过读写电路送上数据总线,送入 MDR,CPU 拿到数据。

一次写操作完整流程

  1. 地址从 MAR 经地址总线送入芯片,译码选中目标存储单元。
  2. 片选信号有效,激活芯片。
  3. CPU 要写的数据放到 MDR,送到数据总线
  4. 发写控制信号 W E \overline{WE}
  5. 数据总线上的数据,写入存储矩阵选中行的存储元。

注意点 区分片内地址和片选地址
片选是外部电路 拿高位地址生成 所有芯片全部收到全部地址 包括没选中的芯片 但是片选无效

这里就可以联想下一个知识点

存储扩展的两种方式

  1. 位扩展 扩充字长
  2. 字扩展 这就是上面的方式 片选目标的芯片

寻址方式
按字节寻址 按字寻址 按半字寻址 按双字寻址

SRAM和DRAM
DRAM 用于主存 SRAM用于cache

重点:SRAM和DRAM对比

对比点整理
豆包整理

  1. ✅SRAM:静态,触发器,6MOS,非破坏读,不需要刷新,速度快,做 Cache。知道 BL、BLX 是一对互补位线即可 集成低 发热量大
  2. ✅DRAM:动态,栅极电容,1MOS + 电容,破坏性读出,读后重写再生,还要定时刷新,集成度高,做主存。集成高 发热量小
    补充集成高低的意思
    同一个芯片上能装更多的bit 意味这集成度高 不难想象DRAM的集成度更高
    注意“DRAM 集成度高,因此存取速度更快” → ❌错,集成度高≠速度快,DRAM 速度反而比 SRAM 慢。

补充发热量的意思
SRAM 不是读写的时候才耗电,静态保持数据的时候就在持续耗电发热。 双稳态触发器里面,始终有管子处于导通,一直有电流在回路流动,只要通电维持数据,就持续消耗电能

DRAM
电容保存电荷,静态(不读不写)的时候几乎没有电流;只有读写、刷新瞬间才有电流。
大部分时间几乎不耗电,所以整体发热量小,功耗低

补充送行列地址的区别
DRAM 芯片引脚数量有限,为了减少芯片引脚,行地址、列地址复用同一组地址线
SRAM:同时送 SRAM 的行地址、列地址有分开独立的两组地址引脚,行、列地址同一时刻一起送入芯片,一次性译码。

同:全都是易失存储器

选择会考零碎的概念区别
大题考DRAM 刷新的三种方式:集中式、分散式、异步刷新 算刷新间隔 刷新开销

  1. 以行为单位 每次刷新一行
    引出一个知识点 为什么要区分行列地址 -- 减少选通线的个数

‼️‼️注意二维译码减少选通线和 地址线复用 一定要好好区分 在脑中多过几次

芯片把地址拆成行地址、列地址,内部做行译码、列译码
减少芯片内部的行 / 列选通线(字线)数量
发生在芯片内部电路,外部引脚不受影响
选通线的数量 是有多少个存储单元或者存储元(看具体题目)就有多少根
引脚的数量是存储单元的对数 也就是地址线的位数
芯片把地址拆成行地址、列地址 并不能减少引脚的数目
让引脚数目减少的是行列地址复用 引脚减半

  1. 刷新的方式

豆包口诀:
DRAM 电容会漏电,二毫秒内全行刷;
集中刷新死区长,分散刷新速度垮;
异步分摊最实用,按行刷新别管列。

ROM
只读存储器 ROM
可能的考法 区分几类ROM 区分和RAM的区别

5 类 ROM 简单区分(必背)

  1. MROM(掩膜 ROM):工厂出厂时硬件光刻做好内容,用户完全不能改写
  2. PROM(一次可编程 ROM):用户可以烧录仅此 1 次,烧完再也改不了。
    EPROM(Erasable Programmable Read-Only Memory)——可擦除可编程只读存储器允许用户写入信息,之后用某种方法擦除数据,可进行多次重写
  3. UVEPROM(紫外线擦除):紫外线照射整片芯片,整片全部擦除,可以反复烧写;不能按字节擦除,必须全片擦。
  4. 闪存(Flash Memory):属于E²PROM 进化版;可以按块 / 按页擦除,不用整片擦;可以快速改写,断电不丢数据。
  5. SSD 固态硬盘不是芯片,是成品设备,由多颗 Flash 闪存芯片 + 主控 + 缓存组装而成。

⚠️易错:SSD≠闪存,闪存是芯片,SSD 是用闪存做出来的磁盘形态设备。

双端口RAM和 多模块存储器

先明白这两个东西是干嘛的 DRAM芯片恢复时间比较长有可能是存取时间的几倍

但是多核cpu都要方寸 而且CPU的读写速度比主存快很多

双端口RAM了解即可

多模块存储器 也分为两种

  1. 多体并行存储器
  2. 单体多字存储器

多体并行存储器
可以理解为多个内存条
有两种编址方式: 高位交叉和低位交叉

重点是分析连续访问多个地址的存取时间
假如T=4r T是存取周期 r是存取时间
高位交叉:连续读5个单位的数据高位交叉就是 5*T
低位交叉:在T=4r的情况下 如果刚好使用4个内存条 那么前4个也就是前(n-1)读取时间就是每过r就读入一块数据最后一块数据的读取需要一整个T 即(n-1)r+T
这就是流水线的思量
所以可以推出来 要想一个流水线不中断 m≥T/r 小于时 需要等待 大于时 某个体会闲置

还有一种 单体多字存储器
豆包补充关于单体多字的说明
硬件:只有 1 套存储阵列(“单体”),但是存储体内部,每个存储单元存 m 个字。总线宽度拉宽为 m 个字

一次读m个字 靠加宽总线来拿更多数据

和位扩展有点像 但是 位扩展是凑一个字的bit 单体多字是直接一次读出m个字
缺点:如果程序不是顺序连续读,性能很差。

⚠️注意 对于多体并行存储器和字扩展的一点说明

多个存储器如果只按照高位交叉编址组织 就只是扩充容量 相当于字扩展
但是如果编址方式采用了低位交叉编址就可以即扩容又提高读写速度 !注意这里 确实可以提速 但是只有连续、成块访问的时候才能发挥高速效果

3.3 主存储器和cpu的连接

这一讲的概要:

这一讲其实就是详细探讨 存储器的字扩展和位扩展

⚠️ 关于控制信号 CS和CE片选信号 以及流程的说明

存储器读操作 信号完整流程

CE和CS都是片选线 带横线低电平有效 不带横线高电平有效

前提:存储器芯片:地址线A、数据线D(双向)、片选 C S \boldsymbol{\overline{CS}} (低有效)、读写控制 W E \boldsymbol{\overline{WE}} (高读、低写)。
考试核心:信号先后顺序、哪些信号由 CPU 发出、什么时候数据稳定出现在数据总线、片选的作用

存储器【读】时序步骤(CPU 读主存,从内存拿数据到 CPU)

  1. CPU 先把地址送到地址总线
    CPU 输出地址,地址信号送到存储器芯片的地址引脚 A 0 A n A_0\sim A_n

地址信号需要一点建立时间,芯片内部译码驱动,选中存储矩阵里面对应的存储单元。

  1. CPU 使片选信号 C S \boldsymbol{\overline{CS}} 有效(拉为低电平)
    C S \overline{CS} 有效,芯片才被 “唤醒”; C S \overline{CS} 无效时,芯片数据线是高阻态(和总线断开)

⚠️必须地址稳定之后,再让片选有效;如果地址还没稳定就打开片选,会读到错误单元。

  1. 读写控制 W E \boldsymbol{\overline{WE}} 置为高电平,代表读模式
    W E = 1 \overline{WE}=1 → 读; W E = 0 \overline{WE}=0 → 写。

部分芯片是分开信号: O E \overline{OE} 输出使能(读使能),读的时候 O E \overline{OE} 拉低。逻辑等价。

  1. 芯片内部:被选中单元的数据送到芯片内部读写电路,输出到外部数据总线 D
    经过芯片的存取时间,数据稳定出现在数据总线上。CPU 等待存取时间之后,采样、读取数据总线上的数据。
  2. 撤销信号
    CPU 读完数据:撤销片选 C S \overline{CS} (变高),撤销地址;芯片数据线回到高阻,脱离总线。

关键时间概念(选择题常考)

两种控制芯片的两种电路形式

字扩展的两种方式

多条高位地址送给译码器输入;译码器输出产生片选信号。

n 根输入地址线,译码器输出 2 n \boldsymbol{2^n} 路片选信号。完美解决线选法的地址碎片、总线冲突问题。

关于电路时序图的补充

时序图要点

1、地址线上的交叉「×」
这个交叉不是信号跳变,是 “不确定区间”

通俗:交叉 = 信号正在翻转,数值不确定,不能采样;平直横线 = 信号稳定,可以使用。

2、灰色填充区域 vs 空白区域

根据以上规律能够大概分析时序图即可

对于编址的一些疑问补充

由于已经知道高位交叉编址和低位交叉编址的区别
然后在学到让高位地址作为片选线进行片选的时候 我产生了一些疑惑
就是如果按照译码器翻译出来每个芯片都有它的最低地址和最高地址 那么这样的情况下就和低位交叉编址产生矛盾
原来答案就是 → 高位交叉编址就是用地址高位来进行片选 高位交叉编址就是用地址低位来进行片选!

注意线选法和片选法还有一个区别就是 线选法电路简单 片选法电路复杂

3.4 外存储器

磁表面存储器优点
①存储容量大,位价格低;
②记录介质可以重复使用;
③记录信息可以长期保存而不丢失,甚至可以脱机存档;
④非破坏性读出,读出时不需要再生
磁表面存储器的缺点
①存取速度慢;
②机械结构复杂;
③对工作环境要求较高。

结构 必须了然于胸 磁头 柱面 扇区
磁盘的性能指标

这一部分和操作系统最后一章联系非常紧密!!!

但是这里我产生了一个疑问
按照这个计算数据传输率的公式 理论上应该达不到这个数字 因为读完一个扇区 不能接着读下一个扇区

豆包的回答 D r = r × N D_r=r\times N N = 整条磁道全部字节(包含扇区 + 扇区间隙、头部、间隔)
这个是磁道物理带宽,磁盘硬件极限传输率:磁盘一圈完整扫过磁头,把磁道上所有比特全部读出来的速率。
现实是达不到的 真实磁盘有间隙 读完一个扇区还需要校验 中断
所以连续读多个扇区,实际有效传输率 < D r D_r

考试的时候

  1. 题目直接给公式 D r = r N D_r=rN ,就直接用这个值,不要自己脑补间隙损耗。
  2. 题干明确出现 扇区间隙大小 交叉编号 读完一个扇区 CPU 处理时间,下一个扇区已经转过磁头 这几个信息时需要按照实际情况分析

磁盘地址的划分 这个简单 一般地址排布就按照 驱动器号 柱面号(注意会出现一个柱面对应多个磁道的情况) 盘面号 扇区号

还需要掌握的一个点是 磁盘读写的时候,需要串‑并、并‑串变换,因为系统总线并行,磁盘介质是串行存储
问:磁头读出信号之后,先经过什么? → 读放电路(信号放大)
问:写磁盘时并行数据首先进入哪个模块? → 并‑串变换电路
写:并行 →【并串转换】→串行 →磁头写盘
读:盘片磁头输出串行 →【读放放大】→【串并转换】→并行送总线

第三章