第四章 存储器

第四章 存储器

4.1 概述

4.1.1 存储器的分类

1. 按存储介质分类

存储介质是指能寄存“0”、“1”两种代码并能区别两种状态的物质或元器件。

  • 半导体存储器:存储元件由半导体器件组成的存储器称为半导体存储器

    • 优点:体积小、功耗低、存取时间短
    • 缺点:当电源消失时,所存信 息也随即丢失,它是一种易失性存储器
    • MOS半导体存储器:具有高集成度的特点,并且制造简单,成本低廉,功耗小,故
    • 双极型(叮L)半导体存储器:具有高速的特点;
  • 磁表面存储器:磁表面存储器是在金属或塑料基体的表面上涂一层磁性材料作为记录介质,工作时磁层随载磁体高速运转,用磁头在磁层上进行读/写操作,故称为磁表面存储器

    • 特点:存储器具有非易失性的特点。
  • 光盘存储器:光盘存储器是应用激光在记录介质(磁光材料)上进行读/写的存储器,具有非易失性的特点

    • 特点:光盘记录密度高、耐用性好、可靠性高和可互换性强等特点

2. 按存取方式分类

按存取方式可把存储器分为随机存储器只读存储器顺序存取存储器直接存取存储器

  • 随机存储器(Random Access -Memory,RAM) :RAM是一种**可读/写**存储器

    • 特点:存储器的任何一个存储单元的内容都可以随机存取, 而且存取时间与存储单元的物理位置无关。
    • RAM又分为静态RAM(以触发器原理寄存信息)动态RAM(以电容充放电原理寄存信息)
  • 只读存储器(Read Only Memory, ROM)*只读**存储器是能对其存储的内容读出,而不能对其重新写人的存储器。

第四章 存储器_第1张图片

存储器的分类

简而言之:知道存储器分为主存、辅存、缓存+闪存(就是U盘)、其次,要知道RAM是Random Access随机存储器 + ROM是Read Only Memory只读存储器,最后知道MOS是半导体存储器


4.1.2 存储器的层次结构

存储器有3个主要性能指标:速度、容量和每位价格(简称位价)

一般来说,速度越高, 位价就越高容量越大,位价就越低,而且容量越大,速度必越低

第四章 存储器_第2张图片

存储器速度、容量和位价的关系

寄存器:是CPU内部用来存放数据的一些小型存储区域,用来暂时存放参与运算的数据和运算结果。

简而言之:速度越快、容量越小、价格越高(常识)(狗头)


4.2 主存储器

4.2.1 概述

第四章 存储器_第3张图片

主存的基本组成

1. 主存中存储单元地址的分配

主存各存储单元的空间位置是由单元地址号来表示的,而地址总线是用来指出存储单元地址号的,根据该地址可读出或写入一个存储字。

第四章 存储器_第4张图片

字节寻址的主存地址分配

2. 主存的技术指标

主存的主要技术指标是存储容量和存储速度

  • 存储容量

存储容量是指主存能存放二进制代码的总位数,即
存储容量=存储单元个数x存储字长

它的容量也可用字节总数来表示,即

存储容量=存储单元个数x存储字长/8

  • 存储器带宽

与存取周期密切相关的指标为存储器带宽,它表示单位时间内存储器存取的信息量,单位可用字/秒或字节/秒或位/秒表示

提高存储器的带宽,可以采用以下措施

1.缩短存取周期。
2.增加存储字长,使每个存取周期可读/写更多的二进制位数。

3.增加存储体。

4.2.2 半导体存储芯片简介

1. 半导体存储芯片的基本结构

半导体存储芯片采用超大规模集成电路制造工艺,在一个芯片内集成具有记忆功能的**存储矩阵、译码驱动电路和读/写电路等**

基本概念

  • 读/写电路包括读出放大器和写人电路,用来完成读/写操作。
  • 存储芯片通过地址总线、数据总线和控制总线与外部连接。
  • 地址线是单向输入的,其位数与芯片容量有关。
  • 数据线是双向的(有的芯片可用成对出现的数据线分别作为输人或输出),其位数与芯片可 读出或写人的数据位数有关。数据线的位数与芯片容量有关。
  • 地址线和数据线的位数共同反映存储芯片的容量
  • 控制线主要有读/写控制线与片选线两种

数据总线、地址总线、控制线(读/写 + 片选)

2. 半导体存储芯片的译码驱动方式

一共两种方法:线选法和重合法

线选法:是用一根字选择线(字 线),直接选中一个存储单元的各位(如一个字节)。第四章 存储器_第5张图片

16 x 1 字节 线选法结构示意图

重合法:只要用64根选择线(X、Y两个方向各32根),便可选择32 x32矩阵中的任一位。

第四章 存储器_第6张图片

1 K x 1 位重合法结构示意图

4.2.3 随机存取存储器

静态RAM和动态RAM两大类。

基本概念

  • CS片选信号:低电平有效
  • WE写允许信号:低电平为写,高电平为读
  • VDD电源端
  • GND接地端

1. 静态RAM(Static RAM, SRAM)

(1)静态RAM基本单元电路

存储器中用于寄存“0”和“1”代码的电路称为存储器的基本单元电路**,由MOS管组成的基本单元电路**

特点由于静态RAM是用触发器工作原理存储信息,因此即使信息读出后,它仍保持其原状态, 不需要再生。但**电源掉电时,原存信息丢失,故它属易失性半导体存储器。**

2.动态RAM(Dynamic RAM, DRAM)

常见的动态RAM基本单元电路有**三管式和单管式两种**,

共同特点

  • 靠电**容存储电荷的原理**来寄存信息。若电容上存有足够多的电荷表示存” 1 ” ,电容上无电荷表示存“ 0”。
  • 电容上的**电荷一般只能维持1 -2 ms,因此即使电源不掉电,信息也会自动消失。 为此,必须在 2 ms内对其所有存储单元恢复一次原状态,这个过程称为再生或刷新**。
  • 它与静态RAM相比,具有集成度更高、功耗更低等特点,目前被各类计算机广泛应用。

这里电容刷新间隔我们固定为2毫秒,这句话一定要明白!!!!!

(1)动态RAM的刷新

刷新的过程实质上是先将原存信息读出,再由刷新放大器形成原信息并重新写入的再生过程

  • 集中刷新:集中刷新是在规定的一个刷新周期内,对全部存储单元集中一段时间逐行进行刷新,此刻必须停止读/写操作。

    • 特点:存在死区,且死去时间是三种方式最长的

第四章 存储器_第7张图片

集中刷新时间分配图

两毫秒,把128行全部刷新一遍

  • 分散刷新:分散刷新是指对每行存储单元的刷新分散到每个存取周期内完成。

    • 特点:无死区,但是存储周期长了,整个系统速度降低了

第四章 存储器_第8张图片

分散刷新时间分配图

每一行就刷新一次,但是在2毫秒内没行多刷新了很多遍

  • 异步刷新:异步刷新是前两种方式的结合,它既可缩短“ 死时间” ,又充分利用最大刷新间隔为2 ms的特点d
    • 特点: 死区时间 ” 缩短“
    • 如果将动态RAM的刷新安排在CPU对指令的译码阶段,由千这个阶段CPU不访问存储 器,所以这种方案既克服了分散刷新需独占0. S µ.s用于刷新,使存取周期加长且降低系统速度 的缺点,又不会出现集中刷新的访存“死区 ” 问题,从根本上提高了整机的工作效率。

第四章 存储器_第9张图片

异步刷新时间分配图

要在2毫秒内刷新128行,那么只要把这个2毫秒分为128份,在15.6微妙内刷新一行就行了

(2)动态RAM与静态RAM的比较
  1. 在同样大小的芯片中,动态RAM的集成度远高于静态RAM,如动态RAM的基本单元电路为一个MOS管,静态RAM的基本单元电路可为4~6个MOS管。
  2. 动态RAM行列地址按先后顺序输送,减少了芯片引脚,封装尺寸也减少。
  3. 动态RAM的功耗比静态RAM小。
  4. 动态RAM的价格比静态R-AM的价格便宜。
  5. 由千使用动态元件(电容),因此它的速度比静态RAM低。
  6. 动态RAM需要再生,故需配置再生电路,也需要消耗一部分功率。通常,容量不大的高 速缓冲存储器大多用静态RAM实现。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-CEZNQo61-1667035581727)(D:\大学四年经历\计算机组成原理\图片质料\动态RAM和静态RAM的比较.png)]

DRAM和SRAM比较

4.2.4 只读存储器

1.掩模ROM

2. PROM

PROM是可以实现一次性编程的只读存储器,由双极型电路和熔丝构成的基本单元电路。

3. EPROM

EPROM是一种可擦除可编程只读存储器

4. 闪速存储器(Flash ·Memory),又称快擦型存储器

它 是在EPROM和EEPROM工艺基础上产生的一种新型的、具有性能价格比更好、可靠性更高的可擦写非易失性存储器。它既有EPROM的价格便宜、集成度高的优点,又有EEPROM电可擦除重 写的特性。它具有整片擦除的特点,其擦除、重写的速度快。

4.2.5 存储器与CPU 的连接

1. 存储容量的扩展

(1)位扩展

位扩展是指增加存储字长,例如,2片1Kx4位的芯片可组成1kx8位的存储器

第四章 存储器_第10张图片

位扩展
(2)字扩展

字扩展是指增加存储器字的数量。例如,用2片1K x8位的存储芯片可组成一个2K x8位的存储器,即存储字增加了一倍

第四章 存储器_第11张图片

字扩展
(3)字、位扩展

字位扩展是指既增加存储字的数量,又增加存储字长

第四章 存储器_第12张图片

字、位扩展

2. 存储器与CPU的连接

存储芯片与CPU芯片相连时,特别要注意片与片之间的地址线、数据线和控制线的连接。

  1. 地址线的连接
  2. 数据线的连接
  3. 读/写命令线的连接
  4. 片选线的连接
  5. 合理选择存储芯片

4.2.6 存储器的校验

1.汉明码的组成

汉明码是由Richard Hanming于1950年提出的,原码 + 检测位的编码,它**具有一位纠错能力**。

L - 1 = D +C 且 D ≥ \geq C

基本概念

  • 编码最小距离L
  • 检测错误的位数D
  • 纠正错误的位数C

特点

  • 编码最小距离L越大,则其检测错误的位数D越大,纠正错误的位数C也越大
  • 纠错能力恒 小于或等于检错能力(D恒小于C)
(1)检测位

设欲检测的二进制代码为n位,为使其具有纠错能力,需增添K位检测位,组成n+ k位的 代码,安放在2k - 1

2k ≥ \geq n + k +1

基本概念

  • 检测位k
  • 二进制代码为n位

第四章 存储器_第13张图片

代码长度与检测位位数的关系

奇偶校验位又“管着”哪一组数据呢?

第一位是“1”的索引有:1011,1001,0111,0101,0011,0001

分别对应的10进制索引为:11,9,7,5,3,1,那么,这几位上面的数据位和1号“奇偶校验位”构成了一组

从右往左(低位往高位)数,第二位是“1”的索引有:1011,1010,0111,0110,0011,0010

分别对应10进制索引为:11,10,7,6,3,2,那么,这几位上面的数据位和2号“奇偶校验位”构成了一组。

其他组同理:总结一下,就是第几组数据,就管理着那位二进制为1的

也可以看下图:

第四章 存储器_第14张图片

2. 汉明码的纠错过程

汉明码的纠错过程实际上是对传送后的汉明码形成新的检测位Pi(i= 1,2,4,8,···),根据Pi的状态,便可直接指出错误的位置。Pi的状态是由原检测位c,及其所在小组内“1”的个数确定的。倘若按配偶原则配置的汉明码,其传送后形成新的检测位Pi应为0,否则说明传送有错,并 且还可直接指出出错的位置。由于Pi与Ci有对应关系,故Pi可由下式确定:

第四章 存储器_第15张图片

例1 设已知传送的正确汉明码(按配偶原则配置)为0100101,若传送后接收到的汉明码为 0100111,其出错位可按下述步骤确定。

第四章 存储器_第16张图片

由此可见,传送结果P4和P2均不呈偶数,显然出了差错。那么,错在哪一位呢?仔细分析发现,只有第6位出错才会同时P4和P2不呈偶数。即P4P2 P1= 110,表示第6位出错。

例2 按配奇原则配置1100101的汉明码。

根据1100101,得n=1。根据2k ≥ \geq n + k +1,可求出需增添k=4位检测位,各位的安排如下

请添加图片描述
第四章 存储器_第17张图片


4.2.7 提高访存速度的措施

除了寻找高速元件和采用层次结构以外,调整主存的结构也可提高访存速度。

1. 单体多字系统

由于程序和数据在存储体内是连续存放的,因此CPU访存取出的信息也是连续的,如果可以在一个存取周期内,从同一地址取出4条指令,然后再逐条将指令送至CPU执行,即每隔1/4 存取周期,主存向CPU送一条指令,这样显然增大了存储器的带宽,提高了单体存储器的工作速 度

简而言之一次传输多条指令+数据

2. 多体并行系统

多体并行系统就是采用多体模块组成的存储器。每个模块有相同的容量和存取速度,各模 块各自都有独立的地址寄存器(MAR)、数据寄存器(MDR)、地址译码、驱动电路和读/写电路, 它们能并行工作,又能交叉工作。

简而言之:并行工作即**同时访问N个模块,同时启动,同时读出,完全并行地工作(不过,同时读出的N 个字在总线上需分时传送)**。

基本概念

  • T存取周期
  • τ \tau τ 总线传输周期
  • n模块个数
(1)低位交叉

对于低位交叉的存储器,连续读取n个字所需的时间t1

t1 = T + (n - 1) τ \tau τ

第四章 存储器_第18张图片

四体地位交叉编址存储器流水线工作方法示意图
(2)高位交叉(顺序存储)

若采用高位交叉编址,则连续读取n个字所需的时 间t2

t2 = nT

(1)排队器

由于要求访存的请求源很多,而且访问都是随机的,这样有可能在同一时刻出现多个请求源 请求访问同一个存储体。为了防止发生两个以 上的请求源同时占用同一存储体,并防止将代码错送到另一个请求源等各种错误的发生,在存储体 内需设置一个排队器,由它来确定请求源的优先级别。

原则:

  • 对易发生代码丢失的请求源,应列为最高 优先级,
  • 对严重影响CPU工作的请求源,给予次高优先级,否则会导致CPU工作失常。
(2)存控标记触发器CM

用来接受排队器的输出信号,一旦响应某请求源的请求心,CM被置”1”,以便启动节拍发生器工作。

(3)节拍发生器

它用来产生固定节拍,与机器主脉冲同步,使控制线路按一定时序发出信号。

(4)控制线路

由它将排队器给出的信号与节拍发生器提供的节拍信号配合,向存储器各部件发出各种控制信号,用以实现对总线控制及完成存储器读/写操作,并向请求源发出回答信号,表示存储器已 响应了请求等。

3.高性能存储芯片

(1)SDRAM (Synchronous DRAM,同步DRAM)
(2)RDRAM (Rambus DRAM)
(3)带Cache的DRAM(CD RAM)

简而言之:提高访存速度的措施有:单体多字系统、多体并行系统-低位交叉、(1)SDRAM (Synchronous DRAM,同步DRAM)(2)RDRAM (Rambus DRAM)(3)带Cache的DRAM(CD RAM)


4.3 高速缓冲存储器

1. 问题的提出

希望由高速缓存Cache来解决主存与CPU速 度的不匹配问题。

2. Cache的工作原理

与Cache映射,将主存与缓存都分成若干块,每块内又包含若干个字,并使它们的块大小相同(即块内的字数相同)。这就**将主存的地址分成两段:高m位表示主存的块地址,低b位表示块内地址,则2m= M表示主存的块数。同样,缓存的地址也分为两段**:高c位表示缓存的块号,低b位表示块内地址,则2c=C 表示缓存块数,且C远小于M。主存与缓存地址中都用b位表示其块内字数,即B=2b反映了块 的大小,称B为块长。

(1)基本概念

主存由2n个可编址的字组成,每个字有惟一的n位地址。

第四章 存储器_第19张图片

Cache-主存的基本结构

(2)Cache的命中问题

CPU欲读取主存某字时,有两种可能:

  • CPU访问Cache命中:一种是 所需要的字已在缓存中,即可直接访问Cache(CPU与Cache之间通常一次传送一个字);

  • CPU访问Cache不命中:另一 种是所需的字不在Cache内,此时需将该字所在的主存整个字块一次调入Cache中(Cache与主存之间是字块传送)。

(3) Cache的效率

Cache的容量与块长是影响Cache效率的重要因素,通常用 ”命中率”来衡量Cache的效率

定义:

命中率是指CPU要访问的信息巳在Cache内的比率。

基本概念:
  • Nc为访问Cache的总命中次数,
  • Nm为访问主存的总次数
  • h为命中率
  • tc为命中时的Cache访问时间
  • tm为未命中时的主存访问时间
  • 1-h表示未命中率
  • ta为Cache- 主存系统的平均访问时间
  • e表 示访问效率

命中率 :

h = Nc / (Nc + Nm)

Cache- 主存系统的平均访问时间:

ta = h * tc + (1-h) * tm

访问效率:

e = tc/ta * 100% = tc / (h * tc + (1 - h) * t m) * 100%

简而言之:Cache的命中 / (Cache + 主存)的命中

(4) Cache的基本结构原理

组成:

由Cache存储体、地址映射变换机构、Cache替换机构几大模块组成。

  • Cache存储体:Cache存储体以块为单位与主存交换信息,为加速Cache与主存之间的调动,主存大多采用 多体结构,且Cache访存的优先级最高。
  • 地址映射变换机构:地址映射变换机构是将CPU送来的主存地址转换为Cache地址。
  • 替换机构:当Cache内容已满,无法接受来自主存块的信息时,就由Cache内的替换机构按一定的替换算法来确定应从Cache内移出哪个块返回主存,而把新的主存块调入Cache。
  • Cache的读写操作
    • 写直达法(Write-through):又称为存直达法(Store-through),即写操作时数据既写入 Cache又写入主存。
      • 特点:它能随时保证主存和Cache的数据始终一致,但增加了访存次数
    • 写回法(Write-back):又称为拷回法(Copy-back),即写操作时只把数据写入Cache而不写入主存,但当Cache数据被替换出去时才写回主存。
      • 特点可见写回法Cache中的数据会与主存中 的不一致。
      • 解决办法为了识别Cache中的数据是否与主存一致,Cache中的每一块要增设一个标志位,该 位有两个状态;“清" (表示未修改过,与主存一致)和 “浊 " (表示修改过,与主存不一致)。
  • Cache的改进
    • 一级缓存和两级缓存
      • 所谓单一缓存,是指在CPU和主存之间只设一个缓存
      • 由片外缓存和片内缓存组成的Cache称 为两级缓存,并称片内缓存为第一级,片外缓存为第二级

第四章 存储器_第20张图片

Cache的基本结构原理框图

简而言之:这里知道Cache的基本组成是由,Cache存储体、地址映射变换机构、替换机构、Cache的读写操作的写回法、写直达法是什么就可以了


4.3.2 Cache——主存地址映射

由主存地址映射到Cache地址称为地址映射。地址映射方式很多,有直接映射(固定的映射 关系)、全相联映射(灵活性大的映射关系)、组相联映射(上述两种映射的折中)。

1. 直接映射

第四章 存储器_第21张图片

直接映射

基本概念

  • C为缓存块数 ——也即一组的块数
  • i为缓存块号
  • j为主存块号
(1) 映射关系

​ i = j mod C 或 i = j mod 2c

  • 特点

    • 优点是实现简单,只需利用主存地址的某些位直接判断,即可确定所需字块是否在缓存中。
    • 缺点是不够灵活,因每个主存块只能固定地对应某个缓存块,即使缓存内还 空着许多位置也不能占用,使缓存的存储空间得不到充分的利用
    • 如果程序恰好要重复访问对应同一缓存位置的不同主存块,就要不停地进行替换,从而降低命中率。

    简而言之:把主存分为n块Cache,与之相连,

2. 全相联映射

第四章 存储器_第22张图片

全相联

全相联映射允许主存中每一字块映射到Cache中的任何一块位置上

  • 特点

    • 这种方式灵活,命中率也更高,缩小了块冲突率。
    • 这种方式所需的逻辑电路甚多,成本较高,实际的Cache还要采用各种措施来减少地址的比较次数。

    简而言之:主存中每一字块映射到Cache中的任何一块位置上

3. 组相联映射

组相联映射是对直接映射和全相联映射的一种折中。它把Cache分为Q组,每组有R块,

基本概念

  • i为缓存的组号
  • j为主存的块号
  • Q人为认定的——某一块主存快按模Q将其映射到缓存的第i组内

简而言之:Q就是一组的块数!!!

(1)映射关系

i = j mod Q

第四章 存储器_第23张图片

组相联映射

如果上图看不懂,试试看看我画的图,希望对你有帮助!

第四章 存储器_第24张图片

组相联映射——作者手绘版

4.3.3 替换策略

当新的主存块需要调人Cache并且它的可用空间位置又被占满时,需要替换掉Cache的数据,这就产生了替换策略(算法)问题

1. 先进先出(First-In-First-Out, FIFO)算法

2. 近期最少使用(Least Recently Used,LRU)算法

3. 随机法

简而言之:了解即可

你可能感兴趣的:(计算机组成原理,算法)