一. 概述
1. 定义:
存储器是计算机系统中的记忆设备,用来存放程序和数据
2. 作用:
- I/O设备要与存储器交换信息
- 多处理机系统中,各处理机都要与主存交换信息,而且各处理机在相互通信中,也都需要共享存放在存储器中的数据
3. 存储器的分类:
(1). 按存储介质分类
存储介质是指能寄存0、1两种代码并能区别两种状态的物质或元器件
(2). 按存取方式分类
(3). 按在计算机中的作用分类
4. 存储器的层次结构
存储器有3个性能指标:速度、容量、每位价格
速度越高,位价越高
容量越大,位价越低
容量越大,速度越低
- 这三者之间的关系
- 各部件主要作用:
寄存器:制作在CPU中,其中数直接在CPU内部参与运算
高速缓存cache:也制作在CPU中,速度快于内存,容量小于内存
内存:存放将要参与运行的程序和数据,可以直接和CPU交换信息
辅助存储器:用来存放暂时未用到的程序和数据文件,CPU不能直接访问辅存,辅存只能与主存交换信息
- 存储系统的层次结构体现在:缓存-主存 、 主存-辅存
- 缓存-主存层次:主要解决CPU和主存速度不匹配的问题
缓存的速度比主存的速度高,只要将CPU近期需要的数据调入缓存,
然后CPU在从缓存中取走数据,提高CPU的访存速度。
但是缓存容量小,需要不断从主存中调入数据,使原来的信息被替换掉,这些都是由硬件自动完成。
- 主存-辅存层次:主要解决存储系统的容量问题
辅存的速度低,不能和CPU直接交换信息,但它的容量大,存放了许多暂时用不到的信息。
当CPU需要的时候,将这些内容调入主存,供CPU直接访问,这两者之间的数据调动也是有硬件直接完成
> 通过分类:主存、缓存、辅存来分别介绍以下几种存储器
二. 主存储器
1. 概述
(1). 主存的基本结构
(2). 存储单元地址的分配
主存各存储单元的空间位置是由单元地址号来表示的,而地址总线是用户来指出存储单元地址号的,根据该地址可读出或写入一个存储字。
举例:
(3). 主存的技术指标
2. 半导体存储芯片简介
(1). 半导体存储芯片的基本结构
存储芯片片选线的作用:
(2). 半导体存储芯片的译码驱动方式
3. 主存储器分类
1. 随机存储器RAM
静态RAM
(1). 静态RAM的基本电路
存储器中用于寄存0、1代码的电路称为存储器的基本单元电路
- 读操作
由于静态RAM是用触发器工作原理存储信息,因此即使信息读出后,它任保持其原状态,不需要再生。
但掉电后原存信息丢失,故它属于易失性半导体存储器
- 写操作
(2). 静态RAM芯片举例
(3). 静态RAM读/写时序
动态RAM
(1). 动态RAM的基本单元电路
(2). 动态RAM芯片举例
- 三管动态RAM芯片
- 单管动态RAM芯片
(3). 动态RAM时序
(4). 动态RAM刷新
刷新的过程实质上是先将原存信息读出,再由刷新放大器形成原信息并重新写入的再生过程
- 为什么需要刷新
由于存储单元被访问是随机的,有可能某些存储单元长期得不到访问,不进行存储器的读/写操作,其存储单元内的原信息将会慢慢消失。
所以必须采用定时刷新的方法,规定在一定时间内,对动态RAM全部基本单元电路必作一次刷新
一般刷新周期为2ms
刷新是一行一行的进行,必须在刷新周期内,用专门的刷新电路来完成对基本单元电路的逐行刷新
- 刷新的方式
- 集中刷新
- 分散刷新
- 异步刷新
动态RAM与静态RAM的比较
2. 只读存储器ROM
对半导体ROM而言,基本器件为两种:MOS型和TTL型
(1). 用户的需求变化
(2). 只读存储器ROM的作用
只读存储器的特点是只能读出而不能写入信息,通常在电脑主板的ROM里面固化一个基本输入/输出系统,称为BIOS(基本输入输出系统)。其主要作用是完成对系统的加电自检、系统中各功能模块的初始化、系统的基本输入/输出的驱动程序及引导操作系统。
(3). 只读存储器ROM的发展
注:闪存比较适合作为一种高密度、非易失的数据采集和存储器件
在便携计算机,工控系统及单片机系统中大量应用,近年来被用于微信计算机中存放输入输出驱动程序和参数(BIOS系统)
闪存经过不断的发展,大容量逐渐取代磁盘,不断升级的闪速存储器做成了固态硬盘(SSD)
4. 存储器与CPU的连接
CPU执行的指令和需要的数据都保存在主存储器当中,运行结果也需要保存在主存储器当中,因此必须实现CPU和主存储器的正确连接,才能实现CPU和主存储之间的信息交换
通常CPU的地址线条数比较多,寻址空间范围大,由于单个存储芯片的容量总是有限的,很难满足实际的需要,所以要构成一个主存储器需要多个存储芯片共同组成,称为存储容量的扩展。
(1). 存储容量的扩展
1. 位扩展
- 目的
增加存储字长 - 如何进行位扩展
2. 字扩展
- 目的
增加存储字的数量 - 如何进行位扩展
3. 字和位同时扩展
- 目的
既增加存储字的数量,又增加存储字长 - 如何实现?
(2). 存储器与CPU的连接
1. 基本方法
- 地址线的连接
- 数据线的连接
- 读写命令线的连接
- 片选线的连接
- 合理选择存储芯片
- 时序、负载
2. 举例
5. 存储器的校验
在计算机运行过程中,由于种种原因致使数据在存储过程中可能出现差错,为了能及时发现错误并及时纠正错误,通常可将数据配成汉明编码
6. 提高访存速度的措施
(1). 采用高性能存储芯片
(2). 采用层次结构:Cache-主存
(3). 调整主存结构
方式一:单体多字系统
方式二:多体并行系统
三. 高速缓冲存储器
1. 概述
(1). 为什么需要用Cache
- 在多体并行存储系统中,由于I/O设备向主存请求的级别高于CPU访存,这就出现了CPU等待I/O设备访存的现象,致使CPU空等一段时间,甚至可能等待几个主存周期,从而大大降低了CPU的工作效率
- 主存的速度提高始终跟不上CPU的发展。
- Cache的出现使CPU可以不直接访问主存,而与高速Cache交换信息
CPU从主存取指令或取数据,在一定时间内,只是对主存局部地址区域的访问
原因是:指令和数据在主存中都是连续存放的,有些指令和数据往往会被多次调用(子程序、循环程序、一些常熟)
这就使的程序访问具有局部性原理(CPU在执行程序时,访存具有相对局部性)
由于这个原因我们就可以将CPU近期要使用的程序和数据提前放到Cache中,就可以使CPU在一定时间内只访问Cache
(2). Cache的工作原理
1. 主存和缓存的编址
2. 命中与未命中
CPU访问Cache命中:
CPU欲访问主存某个字时,所需的字已在缓存中,CPU可直接访问Cache(CPU和Cache之间通常一次传送一个字)
CPU访问Cache未命中
CPU所要访问的字不在Cache内,此时需将该字所在的主存整个字块一次调入Cache中(Cache与主存之间是字块传送)
3. 如何判断所读的信息是否已在缓存中
因为缓存块数C远小于主存块数M,因此一个缓存块可以不断的更新所对应的主存块,所以每个缓存块需要设一个标记,用来表示当前存放的是哪一个主存块
标记的内容对应于主存块的编号(也就是主存地址的高m位),来判断所读的信息是否在缓存中
4. Cache的命中率
定义:指CPU要访问的信息已在Cache内的比率
(3). Cache的基本结构
主要由:Cache存储体、地址映射变换机构、Cache替换机构等几大模块组成
- Cache存储体
- 地址映射变换机构
- Cache替换机构
(4). Cache的读写操作
(5). Cache 的改进
2. Cache-主存地址映射
定义:由主存地址映射到Cache地址称为地址映射
方式:
1. 直接映射
2. 全相联映射
3. 组相联映射
3. 替换策略
产生的原因:当新的主存块需要调入Cache并且它的可用空间位置又被占满时,需要替换掉Cache的数据,这就产生了替换算法问题
直接映射的Cache中:由于某个主存块只与一个Cache字块有映射关系,因此替换策略简单
组相联和全相联映射的Cache中:主存块可以写入Cache中的若干位置,这就出现了替换掉哪一个字块的问题
(1). 先进先出(FIFO)算法
(2). 近期最少使用(LRU)算法
(3). 随机法
四. 辅助存储器
1. 概述
(1). 辅存存储器的特点
辅助存储器又称外存
它不直接与CPU交换信息
它与主存一起组成了存储器系统的主存-辅存层次
与主存相比,辅存的特点:具有容量大、速度慢、价格低、可脱机保存信息等特点,属于非易失性存储器
(2). 磁表面存储器的主要技术指标
2. 磁记录原理和记录方式
(1). 磁记录原理
(2). 磁表面存储器记录方式
3. 辅存存储器的分类
4. 辅存存储器的发展史