计算机组成原理学习笔记:三 存储系统

时间:2024-03-28 17:17:58

  这章内容较多,本章内容按下面的知识结构图展开:
计算机组成原理学习笔记:三 存储系统

一、存储器概述

1.存储器的分类

  • 按在计算机中的作用/层次分类:

  高速缓存Cache:位于主存和CPU之间,用来存放正在执行的程序段和数据,以便CPU能高速地使用它们。Cache的存取速度可与CPU的速度相匹配,但存储容量小、价格高。目前的高档计算机通常将它们制作在 CPU中。
  主存/内存:位于Cache和辅存之间,用来存放计算机运行期间所需的大量程序和数据,CPU可以直接随机地对其进行访问,也可以和高速缓冲存储器Cache及辅助存储器交换数据。其特点是容量较小、存取速度较快、每位价格较高。
  辅存/外存:是主存储器的后援存储器,用来存放当前暂时不用的程序和数据,以及一些需要永久性保存的信息,它不能与CPU直接交换信息。其特点是容量极大、存取速度较慢、单位成本低。
计算机组成原理学习笔记:三 存储系统

  • 按存储介质分类:

  磁表面存储器:磁盘、磁带
  磁心存储器:MOS型存储器、双极型存储器。
  光存储器:光盘。

  • 按存取方式分类:

  随机存储器(RAM):用于Cache和主存。随机存取、读写方便、使用灵活。分为静态(SRAM,触发器原理)、动态(DRAM,电容充电原理)。
  只读存储器(ROM):用于主存。随机读取、写入较慢、内容不易失性。注意现在派生的ROM已经支持写入了,不过写入比读取慢很多,不易失性仍然保留。
  串行访问存储器:用于辅存。按物理位置的先后顺序寻址。包括顺序存取存储器SAM(只能按顺序挨个访问,速度慢,比如磁带)、直接存取存储器DAM(先分成几块,先随机访问找到块,块内只能顺序访问,比如磁盘)。

  • 按信息的可保存性分类:

  易失性存储器:断电后信息消失,RAM。
  非易失性存储器:ROM。
  破坏性读出存储器:读出信息会破坏原存储单元信息。
  非破坏性读出存储器:。

2.存储器的性能指标

  存储器有三个重要指标:存储容量、单位成本、存储速度,这三个指标相互制约。

  • 存储容量=存储字数*字长。存储字数表示存储器的地址空间大小,字长表示一次存取操作的数据量。
  • 单位成本=总成本/容量。
  • 存储速度/数据传输率/主存带宽=数据宽度/存储周期,表示每秒从主存进出信息的最大数量。

存取时间与存取周期:
计算机组成原理学习笔记:三 存储系统

3.存储器的层次化结构

计算机组成原理学习笔记:三 存储系统

  层次结构主要体现在"Cache-主存"层次和"主存-辅存"层次。前者主要解决CPU 和主存速度不匹配的问题,后者主要解决存储系统的容量问题。
  在存储体系中,Cache、主存能与CPU直接交换信息,辅存则要通过主存与CPU交换信息,主存与CPU、Cache、辅存都能交换信息。
计算机组成原理学习笔记:三 存储系统
  存储器层次结构的主要思想:上一层的存储器作为低一层存储器的高速缓存。从 CPU的角度看,"Cache-主存"层次速度接近于Cache,容量和位价却接近于主存。从"主存-辅存"层次分析,其速度接近于主存,容量和位价却接近于辅存。这就解决了速度、容量、成本这三者之间的矛盾,现代计算机系统几乎都采用这种三级存储系统。
  需要注意的是,主存和Cache之间的数据调动是由硬件自动完成的,对所有程序员均是透明的;而主存和辅存之间的数据调动则是由硬件和操作系统共同完成的,对应用程序员是透明的。
  另外,上一层中的内容都只是下一层中内容的副本,也即Cache(或主存)中的内容只是主存(或辅存)中内容的一部分。

二、半导体随机存储器(RAM、ROM)

1.基本结构
计算机组成原理学习笔记:三 存储系统

2.随机存储器RAM

  Cache由静态随机存取SRAM实现,主存由动态随机存储器DRAM实现,它们都是易失的。

  • 工作原理:

  SRAM基于双稳态触发器,存取速度快,但集成度低,功耗较大。

  DRAM基于电荷,采用地址复用技术(地址线是原来的一半),存取速度比SRAM慢,集成度高,价位低,容量大,功耗低。
  即时电源不断电,信息也会自动消失,因此每个一个刷新周期(2ms)就要刷新一次,每次占用一个存储周期,有以下三种刷新方式:
  ①集中刷新:在死时间/死区对所有行一次刷新,访存速度快,但在死时间内不能访问存储器。
  ②分散刷新:把对每行的刷新分散到各个工作周期中去,访存速度慢,但没有死时间。
  ③异步刷新:具体做法是将刷新周期除以行数,得到两次刷新操作之间的时间间隔t,利用逻辑电路每隔时间t产生一次刷新请求。这样可以避免使CPU连续等待过长的时间,而且减少了刷新次数,从根本上提高了整机的工作效率。
  若将刷新安排在不需要访问存储器的译码阶段,则既不会加长存取周期,又不会产生"死时间",这是分散刷新方式的发展,也称为"透明刷新"。
~~
  DRAM的刷新需注意以下问题∶①刷新对CPU是透明的,即刷新不依赖于外部的访问;②动态RAM的刷新单位是行,因此刷新操作时仅需要行地址;③刷新操作类似于读操作,但又有所不同。刷新操作仅给栅极电容补充电荷,不需要信息输出。另外,刷新时不需要选片,即整个存储器中的所有芯片同时被刷新
~~

  • SRAM和DRAM的比较:

计算机组成原理学习笔记:三 存储系统

3.只读存储器ROM

  结构简单,所以位密度比可读写存储器的高;具有非易失性,所以可靠性高。

  • MROM∶在生产过程中直接写入,以后任何人都无法改变其内容
  • PROM∶允许用户用专门设备写入程序,写入后内容就无法改变
  • EPROM∶允许用户写入程序,程序员可以对其内容进行多次改写
  • Flash∶在不加电时仍可长期保存信息且能进行快速擦除重写
  • SSD:什么都好,但价格高。

4.主存储器的基本组成

计算机组成原理学习笔记:三 存储系统

三、主存储器和CPU的连接

计算机组成原理学习笔记:三 存储系统

1.主存容量的扩展

  • 位扩展法
    计算机组成原理学习笔记:三 存储系统

注意∶仅采用位扩展时,各芯片连接地址线的方式相同,但连接数据线的方式不同,在某一时刻选中所有的芯片,所以片选信号CS要连接到所有芯片。

  • 字扩展法
    计算机组成原理学习笔记:三 存储系统

注意∶仅采用字扩展时,各芯片连接地址线的方式相同,连接数据线的方式也相同,但在某一时刻只需选中部分芯片,所以通过片选信号CS或采用译码器设计连接到相应的芯片。

  • 字位同时扩展法
    计算机组成原理学习笔记:三 存储系统

注意∶采用字位同时扩展时,各芯片连接地址线的方式相同,但连接数据线的方式不同,而且需要通过片选信号CS或采用译码器设计连接到相应的芯片。

2.存储芯片的地址分配和片选

  片选信号的产生分为线选法和译码片选法。

  • 线选法
    计算机组成原理学习笔记:三 存储系统

  当某地址线信息为"0"时,就选中与之对应的存储芯片。优点∶不需要地址译码器,线路简单。缺点∶地址空间不连续,选片的地址线必须分时为低电平(否则不能工作),不能充分利用系统的存储器空间,造成地址资源的浪费。

  • 译码片选法
      即用一片74LS138作为地址译码器,则A15A14A13=000时选中第一片,A15A14A13=001 时选中第二片,以此类推(即3位二进制编码)。

四、并行技术:双端口RAM(空间并行)和多模块存储器(时间并行)

1.双端口RAM
计算机组成原理学习笔记:三 存储系统
  双端口RAM是指同一个存储器有左、右两个独立的端口,分别具有两组相互独立的地址线、数据线和读写控制线,允许两个独立的控制器同时异步地访问存储单元,如上图。当两个端口的地址不相同时,在两个端口上进行读写操作一定不会发生冲突。
  端口对同一主存操作有以下4种情况∶

  • 两个端口不同时对同一地址单元存取数据。不出错
  • 两个端口同时对同一地址单元读出数据。不出错
  • 两个端口同时对同一地址单元写入数据。出现写入错误
  • 两个端口同时对同一地址单元操作,一个写入数据,另一个读出数据。出现读取错误

  解决出错的方法∶置"忙"信号BUSY为0,由判断逻辑决定暂时关闭一个端口(即被延时),未被关闭的端口正常访问,被关闭的端口延长一个很短的时间段后再访问。

2.多模块存储器

  • 单体多字存储器: 存储器中只有一个存储体,每个存储单元存储m个字,总线宽度也为m个字。一次并行读出m个字,地址必须顺序排列并处于同一存储单元。即每隔1/m存取周期,CPU向主存取一条指令。显然,这增大了存储器的带宽,提高了单体存储器的工作速度。
  • 多体并行存储器:多体并行存储器由多体模块组成。每个模块都有相同的容量和存取速度,各模块都有独立的读写控制电路、地址寄存器和数据寄存器。它们既能并行工作,又能交叉工作。

高位交叉编址(顺序)
计算机组成原理学习笔记:三 存储系统
  总是按顺序访问存储模块,存储模块不能被并行访问,因而不能提高存储器的吞吐率。仍是顺序存储器。

低位交叉编址(流水线)
计算机组成原理学习笔记:三 存储系统
  编址后,可在不改变每个模块存取周期的前提下,采用流水线的方式并行存取,提高存储器的带宽。
  设模块字长等于数据总线宽度,模块存取一个字的存取周期为T,总线传送周期为r,为实现流水线方式存取,存储器交叉模块数应大于等于m=T/r,以保证启动某模块后经过mxr的时间后再次启动该模块时,其上次的存取操作已经完成(流水线不间断)。

计算机组成原理学习笔记:三 存储系统

五、高速缓存Cache

1.程序访问的局部性原理
  时间局部性是指在最近的未来要用到的信息,很可能是现在正在使用的信息,因为程序中存在循环。空间局部性是指在最近的未来要用到的信息,很可能与现在正在使用的信息在存储空间上是邻近的。
  高速缓冲技术就是利用程序访问的局部性原理,把程序中正在使用的部分存放在一个高速的、容量较小的Cache 中,使CPU的访存操作大多数针对Cache 进行,从而大大提高程序的执行速度。

2.Cache工作原理
  Cache位于存储器层次结构的顶层,通常由SRAM构成。为便于Cache和主存之间交换信息,Cache和主存都被划分为相等的块,Cache 块又称Cache 行,每块由若干字节组成。由于Cache的容量远小于主存的容量,所以Cache中的块数要远少于主存中的块数,它仅保存主存中最活跃的若干块的副本。因此Cache按照某种策略,预测 CPU在未来一段时间内欲访存的数据,将其装入Cache。
  当CPU发出读请求时,若访存地址在Cache中命中,就将此地址转换成Cache地址,直接对Cache进行读操作,与主存无关;若Cache不命中,则仍需访问主存,并把此字所在的块一次性地从主存调入Cache。若此时Cache 已满,则需根据某种替换算法,用这个块替换Cache中原来的某块信息。值得注意的是,CPU与Cache之间的数据交换以字为单位,而Cache与主存之间的数据交换则以Cache 块为单位。
  某些计算机中也采用同时访问Cache和主存的方式,若Cache命中,则主存访问终止;否则访问主存并替换Cache。

  • Cache命中率:(Nc为Cache命中次数,Nm为主存命中次数)
    计算机组成原理学习笔记:三 存储系统
  • 平均访问时间:(tc为Cache访问时间,tm为主存访问时间)
    计算机组成原理学习笔记:三 存储系统

3.Cache和主存的映射方式

  标记:Cache中块是来自主存的哪一块。
  有效位:Cache中块/行中的信息是否有效。
  地址映射的方法有以下三种:

  • 直接映射:

附:王道课后题笔记

1.一SRAM芯片,容量是1024*8位,除电源和接地端外,引脚最小数目是?
  地址10根(地址复用技术减半为5),数据8根,读写2根,片选1根(地址复用技术片选为2根),一共21根。

2.一个四体并行低位交叉存储器,每个模块的容量是64K×32位,存取周期为200ns,总线周期为 50ns,在200ns 内,存储器能向CPU提供128位二进制信息。