第四章、存储器
4.1、概述
问题1、存储器可分那些类型
答:按存储介质分、按存储方式分、按在计算机中的作用分
问题2、现代存储器的层次结构,为什么分层
答:为了满足各个对存储的需求。例如大容量、速度、价格等因素。
4.1.1、存储器分类
1、按存储介质分类
1、半导体存储器(易失)
(1)TTL:功耗高、速度快
(2)MOS:功耗低、功耗相对慢
2、磁表面存储器(非易失)
(1)磁头、载磁体
3、磁芯存储器(非易失)
(1)硬磁材料、环状元件
(2)图示

4、光盘存储器(非易失)
(1)激光、磁光材料
2、按存储方式分类
1、存取时间与物理地址无光(随机访问)
(1)随机存储器:在程序中执行过程可读可写
(2)只读存储器:在程序中只能读
2、存取时间与物理地址有关(串行访问)
(1)顺序存取存储器:磁带
(2)直接存取存储器:磁盘
3、按在计算机中的作用分类

4.1.2、存储器的层次结构
1、存储器三个主要特性的关系

1、存储体系:各层次的存储器通过软件硬件连接起来
2、数据在层次中调用,都是通过软件来自动调用的
2、缓冲—主存层次和主存—辅存层次

1、主存和缓存通过硬件控制
2、主存的速度辅助存储器的容量和辅助存储器的价格
3、因为CPU的速度提升远远快于主存的速度,所以需要缓存来进行填补差距
4、缓存保存主存中的一些副本
4.2、主存储器—随机存取存储器
4.2.1、概述
1、主存的基本组成
1、内容

2、主存和CPU的联系
1、内容

3、主存中存储单元地址的分配
1、数据如何在主存储器中进行存储
1、存储12345678H这个数据如何在主存储器中进行存储?
方式一
(1)、按大端、大尾方式,高位字节存储
(2)、就是高位字节放在底部,低位字节放在顶部

方式二
(1)、按照小尾、小端方式存储
(2)、就是高位字节放在高位地址,低位字节放在低位地址

2、例如x86系统使用的是小尾小端方式
3、不同存储方式相互使用就会产生问题
4、例子

4、主存的技术指标
1、存储容量:主存 存放二进制代码的总位数
2、存储速度

3、存储器的带宽:位/秒
4.2.2、半导体存储芯片简介
1、问题:半导体的基本结构是什么?
2、问题:什么是半导体的译码驱动方式?
1、半导体存储芯片的基本结构
1、片选线,顾名思义选择芯片执行的导线
2、地址线:输入CPU地址给进地址
3、读写控制信号

4、片选线、读写控制线

2、存储芯片片选线的作用
(1)可以让一个或多个存储芯片同时工作
1、例子

3、半导体存储芯片的译码驱动方式
1、线选法

1、存储芯片容量越大,地址译码器转换的线也就越多,芯片集成度没有那么高
2、重合法

(1)降低经过地址译码器后的的线。集成度高
?4.2.3、随机存取存储器(RAM)
1、问题:保存0和1的原理是什么?
2、问题:基本单元电路的构成是什么?
3、问题:对单元电路如何读出和写入?
4、问题典型芯片的结构是什么样子?
5、静态RAM芯片是如何进行读出和写入操作?
1、静态RAM(SRAM)
1、基本电路
2、存放0和1的触发器
3、控制行地址选择器
4、图示

5、静态RAM基本电路的读操作

6、静态RAM基本电路的写操作

2、静态RAM芯片举例
1、WE低电平用于写操作,高电平表示读操作
2、CS是片选信号:低电平才被选中
3、外特征

4、intel 2114RAM矩阵(64x64)读

5、64行64列(因为一列有4行所以16*4,读数据是4位)
6、intel 2114RAM矩阵(64x64)写操作

3、动态RAM(DRAM)
1、动态RAM基本单元电路
1、读出与原存信息相反
2、写入与输入信息相同

2、动态RAM芯片举例(三管动态RAM芯片(Intel 1103)读)

2、存储单元为1k(2^10)
3、刷新放大器(三角形)是因为电容会漏电,所以需要进行电容补充
3、动态RAM芯片举例(三管动态RAM芯片(intel 1103)写
1、图示

4、动态RAM举例(单管动态RAM(4116 16kX1位)
1、图示

2、4116(16kX1位)芯片读原理

3、读放大器相对于跷跷板,左边高电平,右边就是底电平
4、该芯片的行和列是相反的
5、4116(16K X 位))芯片的写原理

4、动态RAM刷新
1、刷新与行地址有关,不会影响存储单元中的内容
1、集中刷新
1、存取周期为5us 以128*128矩阵为例

2、死区:为0.5us*128 = 64us
3、死时间率为:128/4000*100% = 3.2%
4、这段时间内动态RAM是无法使用的
2、分散刷新(存取周期为1微秒)
1、以128*128矩阵为例

2、好处是没有死区
3、坏处是周期时间延长1倍,影响性能
3、分散刷新与集中刷新相结合(异步刷新)
1、还是以为128*128的存储芯片为例(存储周期为0.5微秒)
2、每隔15.6微秒刷新一次(一行)
3、局部看是集中刷新,全局看是分散刷新

5、动态RAM和静态RAM的比较

4.2.4、只读存储器(ROM)
1、早期发展问题历程

1、掩模ROM(MROM)
1、任何信息无法修改
2、行列选择线交叉处有MOS管位"1"
3、行列选择器交叉处无MOS管“0”
2、PROM(一次性编程)
1、通过熔丝断和未断来控制信号

3、EPROM(多次性编程)

4、EEPROM(多次性编程)
1、电可擦写
2、局部擦写
3、全部擦写
5、Flash Memory(闪电型存储器)
| EPROM | 价格便宜,集成度高 |
|---|---|
| EEPROM | 电可擦洗重写 |
| Flash Memory比EEPROM快 | 具备RAM功能 |
4.2.5、存储器与CPU的连接
1、存储器容量的扩展
1、位扩展(增加存储字长)
1、2114芯片是4位的所以有4条数据线,1k的2114芯片,大小位2^10=1k
2、片选和读写信号需要连接在一起

2、字扩展(增加存储字的数量)
1、用2片1K X8位 存储芯片组成2K X8位的存储器
2、图示

3、两个芯片不能同时工作,因为数据线只有8条,所以会混乱
4、系统给2k X8位的存储器多一条地址线,如果A10==0,就选择第一个芯片,A10=1就是第二个芯片
3、字、位扩展
1、4K*8位,总共有12根地址线,8根数据线
2、用8片1K4位存储芯片组成4K\8位的存储器
3、直接将8片1K*4的芯片分为4组
4、图示

5、通过A10和A11来控制使用哪个芯片组
6、A10和A11分别为 00 01 10 11 来控制1、2、3、4组芯片的使用
3、存储器与CPU的连接
1、主要内容

1、例子1
1、写出对应的二进制地址码

2、确定芯片的数量及类型
3、分配地址线

4、确定片选信号

5、注意MREQ信号(内存请求信号)需要连接在片选器上
2、例子1:CPU与存储器的链接图
1、图示

2、A13A12A11分别对应1,0,1,并且A10是低电平,才能与ROM和RAM进行连接
3、例子2
1、假设同前,要求最小4K为系统程序区,相邻8K为用户程序区
2、步骤1:写出对应的二进制地址码
3、确定芯片的数量及类型
4、分配地址线
5、确定片选信号
6、确定片选逻辑
4、例子2:写出对应的二进制地址码
1、MREQ需要接在G2A、或者G2B
2、CPU与存储器的连接图

4.2.6、存储器的校验
需要解决的问题
1、为什么要对存储器的信息进行校验?
答:因为电子,可能会因为磁场等东西发生变化,代码执行错误等
2、为了效验信息是否正确,如何进行编码?
3、纠错或检错能力与什么因素有关?
4、校验出信息出错后是如何进行纠错?
5、除了教材上的校验码,还有什么容错编码?原理是什么?
1、合法代码集合
1、例子

2、编码的最小距离
1、任意两组合法代码之间二进制位的最少差异数
2、编码的纠错、检错能力与编码的最小距离有关(距离越大,纠错和检错越强)
3、公式

2、汉明码的组成
补充:奇偶校验
1、定义:是一种校验代码传输正确性的方法。根据被传输的一组二进制代码的数位中“1”的个数是奇数或偶数来进行校验
2、内容
奇校验:使完整编码(有效位和校验位)中的"1"的个数为奇数个;
偶校验:使完整编码(有效位和校验位)中的"1"的个数为偶数个
3、例子

4、校验位:就是在原本数据上加一个1,构成奇校验或者偶校验
1、内容
1、汉明码采用奇偶校验
2、汉明码采用分组校验

3、汉明码的分组是一种非划分方式


4、如何进行分组

1.把十进制翻译成对应的二进制数,然后根据1的位置进行分组
2、
5、汉明码的三要素
1、汉明码的组成需要添加?位检测位

2、检测位的位置?

3、检测位的取值?

4、各检测位Ci所创承担的检测小组为

3、例子4.4
1、题目:要求0101按“偶校验”配置汉明码
1、

2、题目:按配偶原则配置0011的汉明码
1、解

1、自己理解

4、汉明码的纠错过程

1、例子4.5
1、已知接收到啊的汉明码为0100111(按配偶原则配置)试问要求传送的信息是什么?

2、自己做题思路

2、例子2
1、写出按偶校验配置的汉明码0101101的纠错过程


3、例子3
1、按配奇原则,配置0011的汉明码

4.2.7、提高访存速度的措施
1、采用高速器件
2、采用层次结构Cache—主存
3、调整主存的结构
1、单体多字系统
1、内容

2、问题:会覆盖掉多余的48的数据寄存器,可能会发生不可避免的错误
3、问题:取出的数据寄存器64位,被分为4份,会导致只有一个被使用
2、多体并行系统
1、高位交叉 顺序编址
2、前两位是存储体的体号,后四位是存储地址
3、利用存储体和存储体内地址进行查找(图示)

4、问题:会造成1个存储体繁忙,其他存储体十分清闲
5、适合提高存储器大小,不适合提高存储器的带宽
1、低位交叉 各个体轮流编址
2、后两位是存储体的体号(M0:00,M1:01,M2:10,M3:11)
4、前4位是存储体的体内地址
5、图示


3、低位交叉的特点
1、在不改变存取周期的前提下,增加存储器的带宽

2、设四体地低位交叉存储器,存取周期为T,总线传输周期为t(tao),为实现流水线方式存取,应满足T=4τ

4、高性能存储芯片
1、SDRAM(同步DRAM)
2、RDRAM:由Rambus开发,主要解决存储器带宽问题
3、带Cache的DRAM:在DRAM的芯片内集成了一个由SRAM组成的Cache,有利于猝发式读取
4.2.8、课后习题
1、习题一
1、某机字长为32位,其存储容量为64K
1、问题1:
1、若主存按字编址,它的寻址范围是多少?
2、解答1
1、寻址范围就是64K
2、32位是32bit,转换为byte要除以8
3、问题2
1、若主存按字节编址,试画出主存字节和字字节地址的分配情况
4、解答2

2、习题二
1、问题及解答

2、答案

3、习题三
1、知识点CPU与存储器的连接
1、问题

2、解答
1、写出对应的二进制地址码

2、确定芯片的数量及类型
ROM:4K4位2片,RAM:4K82片
3、分配地址线
4、确定片选信号

5、画出CPU和存储芯片的连接图

4、习题四
1、CPU和存储器的连接
1、问题

2、解答1
1、写出对应的二进制地址码

2、确定芯片的数量及类型
8片RAM 8K*8位
3、分配地址线
4、确定片选信号

5、CPU与存储器的连接图

3、解答2:每个RAM的地址范围

3、解答3

4、解答4

5、习题五
考察内容:存储器和CPU的连接、多体并行系统
1、问题

2、分析:低八体交叉存储结构
1、每个RAM存储体容量为64KB/8=8KB,即:8K*8位RAM

3、解答1:CPU与存储芯片的连接图
1、写出对应的二进制地址码

2、确定芯片的数量和类型:8片RAM 8K*8位
3、分配地址线
4、确定片选信号

5、CPU和存储器的连接图

4、解答2

4.3、高速缓冲存储器
4.3.1、概述
1、为什么要使用高速缓冲存储器
1、是为了避免CPU“空等”现象
2、CPU和主存(DRAM)的速度差异(图示)

3、程序访问的局部性原理:时间局部性,空间的局部性
2、Cache的工作原理
1、主存和缓存的编址
1、图示

2、标记是记录主存块号
3、主存和缓存按块存储 块的大小相同
2、命中和不命中
1、内容

3、Cache的命中率
1、CPU与访问的信息在Cache中的比率
2、命中率与Cache的容量和块长有关
3、一般每块可以取4~8个字
4、块长取一个存取周期内从主存调出的信息长度

4、Cache—主存系统的效率
1、公式

3、Cache的基本结构
1、结构图

2、Cache存储体、主存Cache地址映射、变换机构十分重要
3、变换机构:是将主存的块号或者地址号,转换为Cache的块号或地址号
4、Cache地址映射:通过块号找到响应CPU所需的资源
5、Cache替换机构:通过算法解决新的主存信息是否替换原来的Cache块地址信息号
4、Cache的读写操作
1、读操作

2、写操作
1、Cache和主存的一致性
2、两种写法

5、Cache的改进
1、增加Cache的级数
2、片载(片内)Cache:CPU中的Cache
3、片外Cache:就是CPU外,主板上的Cache
2、统一缓存和分立缓存
1、指令cache和数据Cache分开
2、与指令的控制方式有关
3、是否流水
4、例子

4.3.2、Cache—主存的地址映射
1、主存当中的任意一块,如果要加入Cache中的哪一块
1、直接映射
1、图示

2、主存当中任意一个给定的块,只能装载在某一个之指定的块
3、将主存储体划分为若干和Cache相同的存储体
4、类似哈希表
5、Cache存储体的第0块,可能是存储体中块的第0号,就需要写入标记
2、问题
1、十分容易发生块的冲突
2、Cache存储体中的字号0存储了,主存储体中的字块0,现在主存储体化中的区块2中的字块0需要被Cache访问,就会替换掉原来Cache存储体中的字号0存储体,导致1个字块卖命工作,其他字块围观
2、全相连映射
1、图示

1、主存储器的字块,可以放在Cache存储器中的任意位置
2、问题
1、电路复杂,速度较慢
2、位数也比较长,比较器比较长
3、组相联映射
1、内容
1、图示

2、把Cache分成块,再将块分成若干组,每组包含若干块
3、主存储器进行分区,每个区大小和Cache的块相同
4、相当于Cache中的组分为很多块,主存储器中的区块可以存放在第一组中的若干块
5、某主存块j按模Q映射到缓存的第i组中的任一块(全相连映射)
6、Cache每一组只有唯一一块,就变成直接相连
7、Cache靠近CPU需要高速度:就可以直接相连
8、中间层次:可以采用组相连方式
9、距离最远的层次:就可以用全相连映射方式
4、小结

4.3.3、替换算法
1、Cache内存块满了,需要替换掉旧的内存
1、先进先出(FIFO)算法
2、近期最少使用(LRU)算法
1、最近一段时间内,使用最少的Cache内存块,及时使用也需要很长时间,就可以成为被替换的目标
4.4、辅助存储器
4.4.1、概述
1、特点
1、不直接与CPU交换信息
2、磁表面存储器的技术指标
1、内容

4.4.2、磁记录原理和记录方式
1、磁记录原理
1、写操作

2、读操作

4.4.3、硬磁盘存储器
1、硬磁盘存储器的类型
1、固定磁头和移动磁头
1、固定磁头:磁头不变,盘片选择,磁头有很多个,但是速度会很快
2、移动磁头:磁头只有一个,速度相对慢
2、可换盘和固定盘
2、硬磁盘存储器的结构
1、图示

2、磁盘控制器驱动:相当于接口
2、磁盘驱动器
1、图示

2、控制十分精确
3、磁盘控制器
1、接受主机发来的命令,转换成磁盘驱动器的控制命令
2、实现主机和驱动器之间的数据格式转换
3、控制磁盘驱动器读写
4、磁盘控制器是主机与磁盘驱动器之间的接口(对主机:通过总线 对硬盘:设备控制器)
4、盘片
1、由硬质铝合金材料制作
4.4.4、软磁盘存储器
1、概述
1、比较

2、软盘片

4.4.5、光盘存储器
1、概述
1、采用光存储技术:利用激光写入和读出
2、内容

2、光盘的存储原理
1、只读型和只写一次型:热作用(物理或化学)
2、可擦写光盘:热磁效应