计算机组成原理学习笔记:三 存储系统
文章目录
这章内容较多,本章内容按下面的知识结构图展开:
一、存储器概述
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位二进制信息。