计算机组成原理:4. 存储器

更好的阅读体验 \huge{\color{red}{更好的阅读体验}} 更好的阅读体验



4.1 概述


4.1.1 存储器分类


按存储介质分类


  • 半导体存储器:存储元件由半导体器件组成的存储器。
  • 磁表面存储器:在金属或塑料基体的表面上添加磁性材料涂层作为记录介质。
  • 磁芯存储器:由硬磁材料做成的环状元件,在磁芯中穿有驱动线(通电流)和读出线。
  • 光盘存储器:光盘存储器是应用激光在记录介质(磁光材料)上进行读/写的存储器。

按存取方式分类


  • 随机存储器(Random Access Memory,RAM):
    • RAM 是一种可读/写存储器,其任何一个存储单元的内容都可以随机存取。
  • 只读存储器(Read Only Memory,ROM):
    • ROM 只能对其存储的内容读出,而不能对其重新写入的存储器。
  • 串行访问存储器:
    • 对存储单元进行读/写操作时,需按其物理位置的先后顺序寻找地址的存储器。
    • 主要有两种:顺序存取存储器、直接存取存储器。

按在计算机中的作用分类


在这里插入图片描述


4.1.2 存储器的层次结构


存储器三个主要特性的关系


存储器有 3 个主要性能指标:

  • 速度
  • 容量
  • 每位价格(简称位价)

其特性关系如图所示:

在这里插入图片描述


缓存-主存层次和主存-辅存层次


存储系统层次结构主要体现在缓存——主存和主存——辅存这两个存储层次上:

  • CPU 和缓存、主存都能直接交换信息;
  • 缓存能直接和 CPU、主存交换信息;
  • 主存可以和 CPU、缓存、辅存交换信息。

在这里插入图片描述


4.2 主存储器


4.2.1 概述


主存的基本组成


在这里插入图片描述

  • 存储体:

    • 由许多存储单元组成;
    • 每个存储单元又包含若干个存储元件
  • 存储单元:

    • 8 8 8 位二进制作为一个存储单元,也就是一个字节
    • 一个存储单元可以存储一串二进制代码,称这串二进制代码为一个存储字,代码位数位存储字长。
    • 存储单元的编号称为存储单元的地址号。存储单元按地址寻访。这些地址都是二进制的形式。
  • MAR:

    • 存储器地址寄存器。
    • 保存了存储单元的地址(编号)。
    • 其位数反映存储单元的个数。
  • MDR:

    • 存储器数据寄存器。
    • 存放存储器中从存储某单元读出、或要写入某存储单元的数据(代码)。
    • 其位数反映存储字长。

主存的技术指标


  • 存储容量:

    • 用能存放二进制代码的总位数表示:  存储容量  =  存储单元个数  ×  存储字长  \text{ 存储容量 } = \text{ 存储单元个数 } \times \text{ 存储字长 }  存储容量 = 存储单元个数 × 存储字长 
    • 用字节总数来表示:  存储容量  =  存储单元个数  ×  存储字长  ÷ 8 \text{ 存储容量 } = \text{ 存储单元个数 } \times \text{ 存储字长 } \div 8  存储容量 = 存储单元个数 × 存储字长 ÷8
  • 存储速度:

    • 存取时间存取周期来表示。

    • 存取时间/访问时间(Memory Access Time):

      • 启动一次存储器操作(读或写)到完成该操作所需的全部时间。

      • 读出时间:从存储器接收到有效地址开始,到产生有效输出所需的全部时间。

      • 写入时间:从存储器接收到有效地址开始,到数据写入被选中单元为止所需的全部时间。

    • 存取周期(Memory Cycle Time):

      • 存储器进行连续两次独立的存储器操作(如连续两次读操作)所需的最小间隔时间。
      • 通常存取周期大于存取时间。
  • 存储器带宽:

    • 单位时间内存储器存取的信息量,单位可用字/秒或字节/秒或位/秒表示。
    • 带宽是衡量数据传输率的重要技术指标
    • 存储器的带宽决定了以存储器为中心的机器获得信息的传输速度,提升带宽方法如下:
      • 缩短存取周期。
      • 增加存储字长,使每个存取周期可读/写更多的二进制位数。
      • 增加存储体。

4.2.2 半导体存储芯片简介


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


在这里插入图片描述

  • 地址线:单向输入,其位数与芯片的容量有关。
  • 数据线:双向传输,其位数与芯片可读出或写入的数据位数有关,也与芯片的容量有关。
  • 读/写控制线:控制芯片读写操作,WE 为写控制信号,OE 为读控制信号,都是低电平有效。
  • 片选线:有 CSCE 两种,分别为芯片选择器和芯片使能器。

地址线和数据线共同来反应存储芯片的容量,比如地址线 10 10 10 根,数据线 4 4 4 根,芯片容量为 2 10 × 4 = 4 K 2^{10} \times 4 = 4 K 210×4=4K位。

在这里插入图片描述

如上图所示,是一个由 32 32 32 16 K × 1 16 K \times 1 16K×1 位的存储芯片组成的 64 K × 8 64 K \times 8 64K×8 位的存储器,每次读出一个存储字时,通过片选线选中 8 8 8 片。


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



线选法

在这里插入图片描述

  • 用一根字选择线(字线),直接选中一个存储单元的各位(如一个字节)。
  • 例如,当地址线 A 3 A 2 A 1 A 0 A_3 A_2 A_1 A_0 A3A2A1A0 1111 1111 1111 时,则第 15 15 15 根字线被选中。
  • 结构较简单,但只适于容量不大的存储芯片。

重合法

在这里插入图片描述

  • 64 64 64 根选择线( X X X Y Y Y 两个方向各 32 32 32 根),便可选择 32 × 32 32 \times 32 32×32 矩阵中的任一位。
  • 例如,当地址线为全 0 0 0 时,译码输出 X 0 X_0 X0 Y 0 Y_0 Y0 有效,矩阵中第 0 0 0 行、第 0 0 0 列共同选中的那位即被选中。
  • 由于被选单元是由 X X X Y Y Y 两个方向的地址决定的,故称为重合法。

4.2.3 随机存取存储器


静态 RAM(Static RAM, SRAM)


在这里插入图片描述

特点

  • T 1 ∼ T 4 T_1 \sim T_4 T1T4 是一个由 MOS 管组成的触发器基本电路,由 T 1 ∼ T 6 T_1 \sim T_6 T1T6 6 6 6MOS管共同构成一个基本单元电路。
  • 静态 RAM 是用触发器工作原理存储信息,因此即使信息读出后,它仍保持其原状态,不需要再生。
  • 电源掉电时,原存信息丢失,故它属易失性半导体存储器。

读周期

在这里插入图片描述

写周期

在这里插入图片描述


动态 RAM(Dynamic RAM,DRAM)


在这里插入图片描述

特点

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

读周期

在这里插入图片描述

写周期

在这里插入图片描述

刷新方式

  • 集中刷新:在规定的一个刷新周期内,对全部存储单元集中一段时间逐行进行刷新,此刻必须停止读/写操作。
  • 分散刷新:对每行存储单元的刷新分散到每个存取周期内完成。
  • 异步刷新:前两种方式的结合,它既可缩短“死时间”,又充分利用最大刷新间隔为 2ms 的特点。(最佳刷新方式)

静态 RAM 和动态 RAM 比较


目前,动态 RAM 的应用比静态 RAM 要广泛得多。其原因如下:

  • 动态 RAM 的集成度远高于静态 RAM
  • 动态 RAM 行、列地址按先后顺序输送,减少了芯片引脚,封装尺寸也减少。
  • 动态 RAM 的功耗比静态 RAM 小。
  • 动态 RAM 的价格比静态 RAM 的价格便宜。

随着动态 RAM 容量不断扩大,速度不断提高,它被广泛应用于计算机的主存

动态 RAM 的缺点:

  • 由于使用动态元件(电容),因此它的速度比静态 RAM 低。
  • 动态 RAM 需要再生,故需配置再生电路,也需要消耗一部分功率。
  • 通常,容量不大的高速缓冲存储器大多用静态RAM实现

4.2.4 只读存储器


掩模 ROM


在这里插入图片描述

特点

  • 用行、列交叉处是否有耦合元件 MOS 管,便可区分原存“1”还是存“0”。
  • ROM 制成后不可能改变原行、列交叉处的 MOS 管,故用户无法改变原始状态。

PROM


在这里插入图片描述

特点

  • 熔丝断和未断可区别其所存信息是“1”或“0”。
  • 用户使用前,可按需要将信息存入行、列交叉的耦合元件内。若欲存“0”,则置耦合元件一大电流,将熔丝熔断。
  • 已断的熔丝是无法再恢复的,故这种 ROM 往往只能实现一次编程,不得再修改。

EPROM


在这里插入图片描述

特点

  • 是一种可擦除可编程只读存储器。它可以由用户对其所存信息作任意次的改写。
  • 依靠浮动栅的控制是否导通,进而表示“0”和“1”。
  • 擦写操作可以利用紫外线照射或电气方法,另有可局部擦写的 EEPROM

4.2.5 存储器与 CPU 的连接


存储容量扩展


位扩展

位扩展是指增加存储字长,例如, 2 2 2 1 K × 4 1K \times 4 1K×4 位的芯片可组成 1 K × 8 1K \times 8 1K×8 位的存储器:

在这里插入图片描述


字扩展

字扩展是指增加存储器字的数量。例如,用 2 2 2 1 K × 8 1K \times 8 1K×8 位的存储芯片可组成一个 2 K × 8 2K \times 8 2K×8 位的存储器:

在这里插入图片描述

注意

  • A 10 A_{10} A10。用做片选信号:
    • A 10 A_{10} A10 为低电平时, C S 0 ‾ \overline{CS_0} CS0有效,选中左边的 1 K × 8 1K \times 8 1K×8 位芯片;
    • A 10 A_{10} A10 为高电平时,反相后 C S 0 ‾ \overline{CS_0} CS0 有效,选中右边的 1 K × 8 1K \times 8 1K×8 位芯片。

字、位扩展

字、位扩展是指既增加存储字的数量,又增加存储字长。例如,用 8 8 8 1 K × 4 1K \times 4 1K×4 位的芯片组成 4 K × 8 4K \times 8 4K×8 位的存储器。

在这里插入图片描述


存储器与 CPU 的连接


地址线的连接

存储芯片的容量不同,其地址线数也不同,CPU的地址线数往往比存储芯片的地址线数多。

  • 通常总是将CPU地址线的低位与存储芯片的地址线相连。
  • CPU地址线的高位或在存储芯片扩充时用,或做其他用途,如片选信号等。

例如,设CPU地址线为 16 16 16 A 15 ∼ A 0 A_{15} \sim A_0 A15A0

  • 1 K × 4 1K \times 4 1K×4位的存储芯片时,有 10 10 10 根地址线 A 9 ∼ A 0 A_9 \sim A_0 A9A0,此时,可将CPU的低位地址 A 9 ∼ A 0 A_9 \sim A_0 A9A0 与存储芯片地址线 A 9 ∼ A 0 A_9 \sim A_0 A9A0相连。
  • 16 K × 1 16K \times 1 16K×1 位存储芯片时,有 14 14 14 根地址线 A 13 ∼ A 0 A_{13} \sim A_0 A13A0,此时,可将CPU的低位地址 A 13 ∼ A 0 A_{13} \sim A_0 A13A0 与存储芯片地址线 A 13 ∼ A 0 A_{13} \sim A_0 A13A0 相连。

数据线的连接

同样,CPU的数据线数与存储芯片的数据线数也不一定相等。此时,必须对存储芯片扩位,使其数据位数与CPU的数据线数相等。


读/写命令线的连接

CPU读/写命令线一般可直接与存储芯片的读/写控制端相连,通常高电平为读,低电平为写。有些CPU的读/写命令线是分开的,此时CPU的读命令线应与存储芯片的允许读控制端相连,而CPU的写命令线则应与存储芯片的允许写控制端相连。


片选线的连接

片选线的连接是CPU与存储芯片正确工作的关键。

存储器由许多存储芯片组成,哪一片被选中完全取决于该存储芯片的片选控制端 C S ‾ \overline{CS} CS 是否能接收到来自CPU的片选有效信号。

  • 片选有效信号与CPU的访存控制信号 M R E Q ‾ \overline{MREQ} MREQ (低电平有效)有关,因为只有当CPU要求访存时,才需选择存储芯片。若CPU访问 I/O,则 M R E Q ‾ \overline{MREQ} MREQ 为高电平,表示不要求存储器工作。
  • 此外,片选有效信号还和地址有关,因为CPU的地址线往往多于存储芯片的地址线,故那些未与存储芯片连上的高位地址必须和访存控制信号共同产生存储芯片的片选信号。

通常需用到一些逻辑电路,如译码器及其他各种门电路,来产生片选有效信号。


合理选择存储芯片

合理选择存储芯片主要是指存储芯片类型(RAM或ROM)和数量的选择。通常选用ROM存放系统程序、标准子程序和各类常数等。RAM则是为用户编程而设置的。此外,在考虑芯片数量时,要尽量使连线简单方便。


4.2.6 存储器的校验


汉明码的组成


汉明码具有一位纠错能力;

  • 由编码纠错理论得知,任何一种编码是否具有检测能力和纠错能力,都与编码的最小距离有关。
  • 所谓编码最小距离,是指在一种编码系统中,任意两组合法代码之间的最少二进制位数的差异。根据纠错理论得 L − 1 = D + C L - 1 = D + C L1=D+C D ≥ C D \ge C DC 即编码最小距离 L L L 越大,则其检测错误的位数 D D D 越大,纠正错误的位数 C C C 也越大,且纠错能力恒小于或等于检错能力。
  • 例如,当编码最小距离 L = 3 L = 3 L=3 时,这种编码可视为最多能检错二位,或能检错一位、纠错一位。

可见,倘若能在信息编码中增加若干位检测位,增大 L L L,显然便能提高检错和纠错能力。汉明码就是根据这一理论提出的具有一位纠错能力的编码。

设欲检测的二进制代码为 n n n 位,为使其具有纠错能力,需增添k位检测位,组成 n + k n+k n+k 位的代码。为了能准确对错误定位以及指出代码没错,新增添的检测位数 k k k 应满足: 2 k ≥ n + k + 1 2^k \ge n + k + 1 2kn+k+1

k k k 的位数确定后,便可由它们所承担的检测任务设定它们在被传送代码中的位置及它们的取值:

  • n + k n + k n+k 位代码自左至右依次编为第 1 , 2 , 3 , … , n + k 1,2,3,\dots,n + k 1,2,3n+k 位,而将 k k k 位检测位记作 C : ( i = 1 , 2 , 4 , 8 , …   ) C:(i=1,2,4, 8,\dots) C:(i=1,2,4,8,) 分别安插在 n + k n + k n+k 位代码编号的第 1 , 2 , 4 , 8 , … , 2 k − 1 1,2,4,8,\dots,2^{k - 1} 1,2,4,82k1 位上。
  • 这些检测位的位置设置是为了保证它们能分别承担 n + k n + k n+k 位信息中不同数位所组成的“小组”的奇偶检测任务,使检测位和它所负责检测的小组中 1 1 1 的个数为奇数或为偶数,具体分配如下:
    • 每个小组 g i g_i gi:有且仅有一位为它所独占,这一位是其他小组所没有的,即 g i g_i gi 小组独占第 2 i − 1 2^{i - 1} 2i1 ( i = 1 , 2 , 3 , … ) (i=1,2,3,…) (i=1,2,3,)
    • 每两个小组 g i g_i gi g j g_j gj 共同占有一位是其他小组没有的,即每两小组 g i , g j g_i,g_j gi,gj 共同占有第 2 i − 1 + 2 j − 1 2^{i - 1}+2^{j - 1} 2i1+2j1 ( i , j = 1 , 2 , … ) (i,j=1,2,…) (i,j=1,2,)
    • 每三个小组 g i , g j , g l g_i,g_j,g_l gi,gj,gl,共同占有第 2 i − 1 + 2 j − 1 + 2 l − 1 2^{i - 1} + 2^{j - 1} + 2^{l - 1} 2i1+2j1+2l1 位,是其他小组所没有的。
    • 依次类推,便可确定每组所包含的各位。
  • 在这里插入图片描述

汉明码的纠错过程


对传送后的汉明码形成新的检测位 P i , ( i = 1 , 2 , 4 , 8 , … ) P_i,(i = 1,2,4,8,…) Pi,(i=1,2,4,8,),根据 P i P_i Pi 的状态,便可直接指出错误的位置。

P i P_i Pi 的状态由原检测位 C i C_i Ci 及其所在小组内“1”的个数确定的:

  • 倘若按配偶原则配置的汉明码,其传送后形成新的检测位 P i P_i Pi 应为 0 0 0
  • 否则说明传送有错,并且还可直接指出出错的位置。

在这里插入图片描述


4.2.7 提高访存速度的措施


单体多字系统


由于程序和数据在存储体内是连续存放的,因此 CPU 访存取出的信息也是连续的:

  • 故可以在一个存取周期内,从同一地址取出 4 4 4 条指令,然后再逐条将指令送至CPU执行;
  • 每隔1/4存取周期,主存向CPU送一条指令,这样显然增大了存储器的带宽,提高了单体存储器的工作速度。

在这里插入图片描述


多体并行系统


多体并行系统就是采用多体模块组成的存储器:

  • 每个模块有相同的容量和存取速度;
  • 各模块各自都有独立的地址寄存器(MAR)、数据寄存器(MDR)、地址译码、驱动电路和读/写电路;
  • 这些模块能并行工作,又能交叉工作。

在这里插入图片描述


高性能存储芯片


采用高性能存储芯片也是提高主存速度的措施之一:

  • DRAM集成度高,价格便宜,广泛应用于主存。其发展速度很快,几乎每隔3年存储芯片的容量就翻两番。
  • 为了进一步提高DRAM的性能,人们开发了许多对基本DRAM结构的增强功能,出现了SDRAM、RDRAM和CDRAM。

4.3 高速缓冲存储器


在多体并行存储系统中,由于I/O设备向主存请求的级别高于CPU访存,这就出现了CPU等待/0设备访存的现象,致使CPU空等一段时间,甚至可能等待几个主存周期,从而降低了 CPU的工作效率。

为了避免CPU与I/O设备争抢访存,可在CPU与主存之间加一级缓存,使得主存可将CPU要取的信息提前送至缓存,一旦主存在与I/0设备交换时,CPU可直接从缓存中读取所需信息,不必空等而影响效率。


4.3.1 Cache 概述


主存和缓存的编址


缓存和主存的地址都分为两部分,其中两者的块内地址相等,块内地址的大小决定了块的大小,比如块内地址为 4 4 4 位,并且编址方式为字节,则每块大小为 16 16 16 字节。另外,Cache 中还存在一个标记,用于标识当前 Cache 块对应的主存块号。

在这里插入图片描述


命中与命中率


主存和缓存按块存储,块的大小相同,若缓存共有 C 块,主存共有 M 块,已知 M 远远大于 C,CPU 在主存中申请数据:

  • 如果这一块数据已经在缓存中了,则直接从缓存中调入CPU,称为命中;
  • 否则需要从主存中访问数据,再调入到 CPU ,称为未命中;
  • 如果命中,说明主存块和缓存块之间建立了对应关系,用标记记录与某缓存块建立了对应关系的主存块号

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

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

在这里插入图片描述


基本结构和工作原理


[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-sdITip5g-1679316288124)(L:\02 学习笔记\计算机组成原理\图片4\Cache的组成原理.png)]

CPU通过地址总线发送主存块号,由于Cache和主存的块内地址编号相同,可以直接转换。主存块号先经过主存Cache地址映射变换机构判断是否命中:

  • 如果命中则给出相应的Cache地址的块号,然后从Cache存储体中取数据通过数据总线送给CPU。
  • 如果未命中,则查看Cache是否已满:
    • 如果未满,则通过主存块号访问主存,将数据装入Cache,Cache和主存有一条直接通路。
    • 如果已满,则经过Cache替换机构,通过替换算法,判断是否替换Cache的数据,以及和谁替换。
    • 与此同时,主存将CPU所需的数据通过数据总线直接交给CPU

主存Cache地址映射变换机构:
地址映射用于判断主存的数据可以存入到哪些Cache块中,变换机构用于查找某个主存块号所对应的Cache地址块号。


读写操作


读操作

在这里插入图片描述


写操作

因为对Cache块内写入的信息,必须与被映射的主存块内的信息完全一致,故需要解决Cache和主存的一致性的问题:

  • 写直达法(Write – through):
    • 写操作时数据既写入Cache又写入主存,写操作时间就是访问主存的时间,Cache块退出时,不需要对主存执行写操作,更新策略比较容易实现;
    • 缺点:会造成Cache和内存数据的频繁信息交换,如不停进行求和。
  • 写回法(Write – back):
    • 写操作时只把数据写入 Cache 而不写入主存,当 Cache 数据被替换出去时才写回主存;
    • 缺点:无法保证Cache和内存操作时间的一致性,在并行计算机(多个独立Cache和主存)中会出现问题。

改进方式


Cache刚出现时,典型系统只有一个缓存,近年来普遍采用多个Cache:

  • 增加 Cache 的级数:片载(片内)Cache,片外 Cache,采用多级Cache。
  • 统一缓存和分立缓存:指令Cache和数据Cache是否独立存放,与指令执行的控制方式有关。

4.3.2 Cache——主存地址映射


由主存地址映射到Cache地址称为地址映射。地址映射方式很多:

  • 直接映射(固定的映射关系)
  • 全相联映射(灵活性大的映射关系)
  • 组相联映射(上述两种映射的折中)

直接映射


在这里插入图片描述

CPU给出的主存地址由三部分组成:主存字块标记,Cache字块地址,字块内地址。

  • 主存字块标记就是主存的分区号;
  • 分区内的块号就是cache字块地址;
  • 字块内地址就是字块内的偏移地址,在Cache和主存中相同,不用处理。

以第0块为例:由于cache中的第0块装的可能是主存中任意一个分区的第0块,所以需要比较主存字块标记和cache上的标记是否相同,如果相同则说明命中。

特点

  • 每个主存块只与一个缓存块相对应:
    • 映射关系式为: i = j m o d    C i = j \mod{C} i=jmodC i = j m o d    2 C i = j \mod{2^C} i=jmod2C
    • 其中 i i i 为缓存块号, j j j 为主存块号, C C C 为缓存块数。
  • 优点:
    • 实现简单,只需利用主存地址的某些位直接判断,即可确定所需字块是否在缓存中。
  • 缺点:
    • 不够灵活,缓存的存储空间得不到充分的利用。
    • 如果程序恰好要重复访问对应同一缓存位置的不同主存块,就要不停地进行替换,从而降低命中率。

全相联映射


在这里插入图片描述

特点

  • 全相联映射允许主存中每一字块映射到Cache中的任何一块位置上:
    • 只要Cache中有空余则就可以装入;
    • 这种映射方式可以从已被占满的Cache中替换出任一旧字块。
  • 优点:
    • 这种方式灵活,命中率也更高,缩小了块冲突率。
  • 缺点:
    • 由于可以装入到任意的位置,所以要和Cache所有的块比较判断是否命中,比较次数多。
    • 所需的逻辑电路甚多,成本较高,实际的Cache还要采用各种措施来减少地址的比较次数。

组相联映射


在这里插入图片描述

  • Cache字块地址字段由 c c c 位变为组地址字段 q q q 位,且 q = c − r q = c - r q=cr
    • 其中 2 c 2^c 2c 表示Cache的总块数;
    • 2 q 2^q 2q 表示Cache的分组个数;
    • 2 r 2^r 2r 表示组内包含的块数。
  • 主存字块标记字段由 t t t 位变为 s = t + r s = t + r s=t+r 位。

为了便于理解,假设 c = 5 , q = 4 c=5,q=4 c=5,q=4,则 r = c − q = 1 r = c - q = 1 r=cq=1 。其实际含义为:Cache共有 2 c = 32 2^c = 32 2c=32 个字块,共分为 2 q = 16 2^q = 16 2q=16 组,每组内包含 2 1 = 2 2^1 = 2 21=2 块。组内 2 2 2 块的组相联映射又称为二路组相联。

特点

  • 组相联映射是对直接映射和全相联映射的一种折中:
    • 它把Cache分为 Q Q Q 组,每组有 R R R 块;
    • 映射关系为: i = j m o d    Q i = j \mod{Q} i=jmodQ,其中 i i i 为缓存块号, j j j 为主存块号
    • 某一主存块 j j j 按模 Q Q Q 映射到缓存的第 i i i 组内的任一块,其中主存块第 j j j 块只能放在特定的第 i i i 组中。
  • 在Cache中查找时,先根据组地址(即 j m o d    Q j \mod{Q} jmodQ)找到Cache对应的组,然后通过若干个并行的比较器(个数由每组块数决定)比较主存字块标记(即主存的分区号),只要有一个命中则命中。

替换策略


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

  • 先进先出(First-In-First-Out,FIFO)算法:
    • 先进入Cache的数据先被替换。
    • 不需要记录各字块的使用情况,比较容易实现,开销小。
    • 但没有根据访存的局部性原理,故不能提高Cache的命中率。因为最早调入的信息可能以后还要用到,或者经常要用到,如循环程序。
  • 近期最少使用(Least Recently Used, LRU):
    • 比较好地利用访存局部性原理,替换出近期用得最少的字块。
    • 它需要随时记录 Cache中各字块的使用情况,以便确定哪个字块是近期最少使用的字块。
    • 它实际是一种推测的方法,比较复杂,一般采用简化的方法,只记录每个块最近一次使用的时间。LRU算法的平均命中率比FIFO的高。
  • 随机法随机法:
    • 随机地确定被替换的块,比较简单,可采用一个随机数产生器产生一个随机的被替换的块。
    • 但它也没有根据访存的局部性原理,故不能提高Cache的命中率。

4.4 辅助存储器


4.4.1 概述


辅助存储器的特点


辅助存储器作为主存的后援设备又称为外部存储器,简称外存,它与主存一起组成了存储器系统的主存——辅存层次。

  • 辅存具有容量大、速度慢、价格低、可脱机保存信息等特点,属“非易失性”存储器。
  • 主存具有速度快、成本高、容量小等特点,而且大多由半导体芯片构成,所存信息无法永久保存,属“易失性”存储器。

目前,广泛用于计算机系统的辅助存储器有硬磁盘、软磁盘、磁带、光盘等。前三种均属磁表面存储器。


主要技术指标


  • 记录密度:单位长度内所存储的二进制信息量。单位长度磁道能记录二进制信息的位数,称为位密度或线密度。
  • 存储容量:外存所能存储的二进制信息总数量,一般以位或字节为单位。
  • 平均寻址时间:取寻址时间的平均值,称为平均寻址时间。
  • 数据传输率:单位时间内磁表面存储器向主机传送数据的位数或字节数,它与记录密度和记录介质的运动速度有关。
  • 误码率:衡量磁表面存储器出错概率的参数,它等于从辅存读出时,出错信息位数和读出信息的总位数之比。

4.4.2 磁盘存储器


硬磁盘存储器


硬磁盘存储器类型

  • 按磁头的工作方式可分为固定磁头磁盘存储器移动磁头磁盘存储器
  • 按磁盘是否具有可换性又可分为可换盘磁盘存储器固定盘磁盘存储器

硬磁盘存储器的结构

  • 磁盘驱动器:主机外的一个独立装置,又称磁盘机,用于驱动磁盘。
  • 磁盘控制器:是接收由主机发来的命令,将它转换成磁盘驱动器的控制命令,实现主机和驱动器之间的数据格式转换和数据传送。
  • 盘片:存储信息的载体,一般为半导体盘。

软磁盘存储器


软磁盘存储器与硬磁盘存储器的存储原理和记录方式是相同的,但在结构上有较大差别:

  • 硬盘转速高,存取速度快;软盘转速低,存取速度慢。
  • 硬盘有固定磁头、固定盘、盘组等结构;软盘都是活动头,可换盘片结构。
  • 硬盘是靠浮动磁头读/写,磁头不接触盘片;软盘磁头直接接触盘片进行读/写。
  • 硬盘系统及硬盘片价格比较贵,大部分盘片不能互换;软盘价格便宜,盘片保存方便、使用灵活、具有互换性。
  • 硬盘对环境要求苛刻,要求采用超净措施;软盘对环境的要求不苛刻。

4.4.3 光盘存储器


光盘(Optical Disk)是利用光学方式进行读/写信息的圆盘。

如果光存储使用的介质是磁性材料,即利用激光在磁记录介质上存储信息,就称为磁光存储:

  • 通常把采用非磁性介质进行光存储的技术称为第一代光存储技术,它不能把内容抹掉重写新内容。
  • 磁光存储技术是在光存储技术基础上发展起来的,称为第二代光存储技术,主要特点是可擦除重写。

根据光存储性能和用途的不同,光盘存储器可分为三类:

  • 只读型光盘(CD-ROM):光盘内的数据和程序是由厂家事先写入的,使用时用户只能读出,不能修改或写入新的内容。
  • 只写一次型光盘(WORM):允许用户写入信息,写入后可多次读出,但只能写人一次,而且不能修改。
  • 可擦写型光盘这种光盘类似磁盘,可以重复读/写。

猜你喜欢

转载自blog.csdn.net/LYS00Q/article/details/129675939
今日推荐