概述
- 存储器的类型
- 现代存储器为什么要分层次,以及结构
存储器的分类
-
按照存储介质分类
- 半导体存储器
- 计算机的内存是由芯片构成的
- U盘也是半导体存储器
- TTL晶体管,晶体管逻辑
- 集成度较低,功耗高,速度快
- MOS金属氧化物半导体
- 功耗低,集成度比较高,用于计算机
- 磁表面存储器
- 磁头,磁载体
- 磁盘、磁带
- 磁芯存储器
- 硬磁材料、磁环元件
- 磁芯有磁化电流阈值,未达到之前不会被磁化
- 作为计算机系统的内存,大大提高了计算机的存储速度,
- 磁芯中有导线,在电流的作用下磁化磁性导体,因此可以通过磁场的方向来确定里面存储的数据
- 一根线用于数据读出,另一根用于数据读入
- 导线起到了寻址的作用,电流和磁氧体
- 光盘存储器 1、易失,2、3、4不易失
- 半导体存储器
-
按存取方式分类
- 存取时间与物理地址无关(随机访问)
|存储器类型|| |-|-| |随机存储器|在程序执行过程中可读可写| |只读存储器|在程序执行过程中只读|
-
- 存起时间与物理地址有关(串行访问)
|串行访问| | |-|-| |顺序存取存储器|磁带| |直接存取存储器|磁盘|
-
按在计算机中的作用分类
存储器的层次结构
存储器的三个特性的主要关系
- 寄存器在CPU里面
- 缓存的一部分在CPU里面
- 有些寄存器在指令当中可以使用,从体系结构中不透明,提供给程序员,称为体系结构寄存器,另一类透明的称为非体系结构寄存器。
- I/O端口也有寄存器。
- 部分缓存在CPU外面
- 金字塔越往下速度越低,计算机的寄存器可能很小。容量很小,价格贵
- 缓存的一部分在CPU里面
- 计算机多种的存储器目的是为了客户的需求不同,因此采用了这种存储体系,把两种或者两种以上的存储介质,用软件、硬件、软硬件结合的方式把他链接为一个整体,从某一级的程序员眼中符合要求
- 存储过程是自动完成的
缓存-主存层次和主存-辅存层次
- 应用程序员都不需要关心存储器的情况,不需要自己进行自己调用主存和辅存之间的调用
- 该层次是为了调整存储器的存储
- 存储器的存储速度和访问速度提升不一致,出现了多层次的访问体系结构
- 多种存储器的速度10ns-20ns-200ns-ms
- 缓存-主存
- 采用硬件方法链接,数据的调出调入对程序员来说是透明的不需要了解
- 按内容进行查找
- 使用的主存地址,使用的时候会转换为缓存块中的地址。
- 主存-辅存
- 软硬件相结合的方式,可以通过命令调用
- 主要是为了解决容量问题
- 虚拟存储器
- 在编写程序中以虚拟地址存放,使用的是逻辑地址
主存储器
概述
- 主存的基本组成
- 存储体保存了程序的数据以及指令
- MAR保存了要访问的存储单元地址 需要经过译码器才能选定存储单元存储体中的数据,也保存了要进行写入写出的命令
- 方向的控制,由读写控制电路控制读写
- 写入就从MDR写入到存储体,读取就从存储体到MAR
- 主存和CPU的关系
- 数据总线
- 完成了CPU和存储数据传输 双向
- 地址总线
- 给出要访问的地址单元的地址
- 控制总线
- 单向的由CPU给出信号
- 数据总线
- 主存中存储单元的地址分配
- 存储器对某一个单元进行读取和写入
- 每一个字节都有一个地址(例如每个数据如何存储)
- 第一种 大端大尾方式
- 高位字节定义为字的地址,一个字包含四个地址
- 高位字节存放在低地址,
- 第二种 小端小尾方式
- 地位字节为字地址
- 情况与第一种相反
- 二者相互通讯时需要调整字节地址
- 设 24根地址线
- 按字节寻址
- 24根地址线是对每一个地址线进行分配
- 设字长为16位
- 按字寻址
- 存储器容量可以写成8MW
- 设字长为32位
- 按字寻址
- 每个字节一个地址,四个字节构成一个字
- 存储容量为4MW
- 第一种 大端大尾方式
- 每一个字节都有一个地址(例如每个数据如何存储)
- 存储器对某一个单元进行读取和写入
- 主存的技术指标
- 存储容量
- 主存 存放二进制代码的总位数
- 存储速度
- 存取时间 存储器的访问时间,存储器从给出地址直到稳定的得到数据输出和写入
读出时间,写入时间 - 存取周期 连续两次独立的存储器操作
(读或者写)所需的最小间隔时间。存取时间比存取周期短
读周期 写周期
- 存取时间 存储器的访问时间,存储器从给出地址直到稳定的得到数据输出和写入
- 存储器的带宽
- 位/秒
- 存储容量
主存储器–半导体芯片简介
- 半导体存储芯片的基本结构
- CPU 外部设备给出地址,经过译码驱动电路选择指定的存储矩阵,通过数据传出
- 片选线
- 芯片选择信号,指出这次操作给出的地址是不是该芯片,所需位置是不是在该芯片上。
- 地址线,单向的,数据线双向的
- 芯片容量
- 地址线10位,数据线4位
- 进行访存时表示为1K×4位
- 地址线14位(对存储矩阵的单元编址为需要14位二进制数,能够编址的存储单元个数为),数据线1位(每个存储单元只保留一位)
- 容量为表示16K×1位
- 地址线10位,数据线4位
- 半导体片选线两种标识方式
- 片选线
- CS芯片选择的缩写
- CE芯片使能的缩写
- 读写控制线
- 一根线时表示写操作低电平表示写操作,高电平表示读操作
- 读操作写操作
- 片选线
如何选择芯片
- 用 16K × 1位 的存储芯片组成 64K × 8位 的存储器
- 8个芯片放一起就构成8位 就构成16K×8位(同时工作)
- 4组芯片连接在一起一共32个芯片,将每一租的片选线连接在一起
- 分组地址可编辑为
- 1~16K-1 第一组地址
- 16K~32K-1 第二组地址
- 32K~48K-1 第三组地址
- 48K~64K-1 第四组地址
- 若要访问65535根据规则,在片选信号的作用下,会选择最后一组的低电平才有效,其余的都不会响应
- 可以在8个芯片的地址的同一位读出,以达到8位的效果,同时读取八位
- 半导体存储芯片的译码驱动方式(给出地址后如何找到存储)
- 线选法
- 给出到一共四位地址 说明16个存储单元
- 数据线到 一共八位说明存储器为16×8
- 译码器
- 二次译码器 两个输入,四个输出
- 两个输入为00
- 四个输入的对应0会有效
- 如果输出为1的话 对应的1输出会有效
- 地址译码器 输入4根线输出是根线
- 给定一个输入,输出端只有一根线有效,会控制该条线上的所有单元
- 二次译码器 两个输入,四个输出
- 读写控制电路,读写选通,则会进行相应操作
- 如果符合条件才会进行相应的读写操作
- 局限性 太小
- 地址线4条每个才16×8的存储容量
- 假设1M×8位,经过译码后会有1M条线溢出(对空间布局极其不友好)
- 重合法(二维阵列)
- X行地址Y列地址,只能同时有一位生效
- 行地址译码器译码后只有一个生效
- 列地址为全零,译码之后开关才会打开0才会生效,数据才会生效从D输出
- 在此过程中0,31也会输出,但是不会生效,该电路下无法输出数据 31,0也是
- 二者差异
- 线选法中 如果20根地址线 由一个地址译码器进行译码 输出产生1M条线
- 重合法中 20个地址分成两部分,每部分10位,产生的线为2×10K条线
- 线选法
主存储器–随机存取存储器
- 静态RAM
- 保存0和1的原理是什么?
- 基本单元电路的构成是什么?
- 对单元电路如何读出和写入?
- 典型芯片的结构是很么样子的?
- 静态RAM芯片的如何进行读出和写入操作?
- 动态 RAM ( DRAM )
- 动态 RAM 和静态 RAM 的比较
静态RAM (双稳态存储器)
- 静态RAM基本电路
- ~构成双稳态的触发器,一段为触发器头
- ~用于解决对存储文件的读或者写,都是由行地址选择,如果有效的话就会导通
- ~列开关,这一列都有这两个管辖,只有该开关有效时,行开关才能生效
- 基本的读操作
- 6管的静态RAM
- 给出行选信号 控制、 打开
- 给出列选信号 、 打开
- 读有效,导通后存放的有效数据会通过 -送到位线A上去> 同时送到总线上去
- 当 、 打开数据是双向的,但是会被拦截 、 也是
- 基本的写操作
- 下路写非后才能输出,如果基本电路会被选中,行地址选择才会有效,列地址生效,写选择有效,放大器导通,两则导通,通过取反的信号,才能完成基本的写操作
- 静态RAM芯片举例
- InteL 2114 外特性
- 阵列结构 读操作 一个选择四个
- 行地址6位
- 经过译码后 产生 0-63 可以选择从
- 给出一个地址 其中一行会被选中
- 列地址只有四位,选中一个四个都会被选中
- 每一列选信号,控制4个地址
- 四个列地址产生16个列选信号
- 每一个列选信号,控制着每一组中的该列
- 四组同时输出
- 写操作
- 分为4组,每一组可以从0开始,也可以不从0开始
- 行地址译码后 第N行有效,改行所有的基本单元电路被选中
- 列地址每一组中的那一列会被选中,每一组列开关打开
- 、低电平写操作
- 数据通过I/O电路输出
- 阵列结构 读操作 一个选择四个
- InteL 2114 外特性
动态RAM(电容存储器)
-
静态 RAM (SRAM)
-
动态 RAM ( DRAM )
- 保存0和1的原理是什么?
- 基本单元电路的构成是什么?
- 对单元电路如何读出和写入?
- 典型芯片的结构是很么样子的?
- 动态RAM芯片的如何进行读出和写入操作?
- 动态RAM为什么要刷新,刷新方法?
-
动态 RAM 和静态 RAM 的比较
-
动态RAM的基本电路
- 单管和双管、三管,电容式存储数据
- 三管
- 预充信号有效,导通
- 对读数据线进行充电,读有效 1
- 读出模式下
- 读选择线有效
- 导通如果保存信息,为0的情况下不会导通,因此输出的数据为1
- 写入模式下
- 写选择线有效
- 导通,向中保存信息,对进行冲放电,因此与原来的输入信息保持一致
- 单管
- 被选中时,字线会打开
- 如果保存为0数据线无电流
- 保存为1数据线有电流
- 写入0时放电
- 写入1时充电
-
动态RAM举例
- 三管动态地址(Intel 1103)
- 参加译码的时候不仅仅是地址,还有读写信号
- 读操作
- 第0行被选中,该行读选择线生效
- 列地址为5个0,第0列被选中
- 输出0.0单元的数据
- 通过读写控制电路向外输出
- 需要刷新放大器,对电容信号重现,电容会漏电,导致信息丢失,因此需要每隔一段时间检测信息
- 写操作
- 与读操作基本一致
- 单管RAM 4116芯片(16K× 1位)
- 容量上需要14根地址线,但是实际只有七根线分两次选中
- 七位行地址放在行地址缓存器中,列地址放在列缓冲器中
- 芯片自带时序控制结构,控制输入和输出
- 读操作
- 放大器两端为跷跷板 一端为0另一端必定为1
- 通过行选择线输出信号,对读放大器进行输入信号
- 列地址通过信号 对选择后的数据经过I/O缓冲后输出数据
- 在读放大器左侧 有电为0 无电为1,右侧有电为1无电为0
- 写操作
- 容量上需要14根地址线,但是实际只有七根线分两次选中
- 三管动态地址(Intel 1103)
-
动态RAM刷新
- 原因
- 电容会缓慢放点
- 刷新与行地址有关
- 每一次刷新刷新的是一行的数据
- 刷新的是列地址,一行中的所有电路
- 刷新方式
- 集中刷新(存取周期为0.5μs)
- 2ms集中刷新所有行的数据,4000个存取周期,前面的3872周期中可以进行读写操作,后面的128周期可以进行刷新操作,任何CPU和设备无法通讯,称为死区,只能进行等待。
- 分散刷新(存取周期为1μs)
- 效果
- 把刷新时间扩增了一倍(发明者真是个天才)
- 无死区,芯片性能降低
- 效果
- 分散刷新与集中刷新相结合(异步刷新)
- 如果安排得当不会出现死区
- 集中刷新(存取周期为0.5μs)
- 原因
-
动态RAM和静态RAM的比较
DRAM(主存) | SRAM(缓存) | |
存储原理 | 电容式存储 | 触发器 |
集成度 | 高 | 低 |
芯片引脚数 | 行、列分别传送地址线条数可以减少为原来的一半 | 价格贵,速度快,所以不会减少引脚数 |
功耗 | 少 | 多 |
价格 | 低 | 高 |
速度 | 慢 | 快 |
刷新 | 有 | 无 |
只读存储器(ROM)
- 只能读取,不能修改
- 出厂时已经写好了内容(初代)
- 改进版1
- 只能写一次,不能擦除
- 改进版
- 需要单独的檫除设备
- 改进版3
- 电擦写,特定设备
- 改进版4
- 连接计算机之后可擦写
- 掩模ROM(MROM)(厂家出厂配置)
- 行列选择线交叉处有 MOS 管为“1”
- 行列选择线交叉处无 MOS 管为“0”
- PROM (一次性编程)
- 破坏性编程,无法修改
- EPROM (多次性编程 )
- 对程序修改的话,用紫外线直接照射,驱散浮动栅
- 信息檫除依旧比较麻烦
- EEPROM (多次性编程 )
- 电可擦写
- 局部擦写
- 全部擦写
- Flash Memory (闪速型存储器)
EPROM | 价格便宜 集成度高 |
EEPROM | 电可擦洗重写 |
比 EEPROM快 | 具备 RAM 功能 |
主存储器–存储器与CPU的连接
- 地址线和数据线的计算方式
如果是的芯片,2K是容量,由地址线决定,计算方法:=容量,n就是地址线的位数,这里算出来是11位;4是一个存储单元的位数,也就是数据线的位数,所以这个芯片的地址线11位,数据线4位。 - 存储器容量的扩展
- 位扩展
- 使用同样的片选,同时读出设备(连接同一条片选线和读写信号线)
- 地址线连接方式相同
- 数据线占了按顺序读出的四位
- 当数据输入或者输出为,会同时输出相同列的存储单元
- 作用是,使两个设备合并成一个设备来用(同时进行读写操作,利用片选线传输同样的信号)
- 字扩展(增加存储字的数量)(位扩展容量)
- 需要两个芯片不同时工作
- 芯片中多出一条地址线用来控制片选信号
- 使用与门进行连接
- 需要两个芯片不同时工作
- 混合扩展字、位扩展
- 对地址空间进行编组
- 第一组 两个芯片 00…000 ~ 001…111
- 第二组 两个芯片 01…000 ~ 011…111
- 第三组 两个芯片 10…000 ~ 101…111
- 第四组 两个芯片 11…000 ~ 111…111
- 通过片选译码之后通过前两位的选择进行限信号的选择
- 对地址空间进行编组
- 位扩展
- 存储器与CPU的连接
- 地址线的连接
- 地址连接,低位作为地址,送入到地址选择器中,高位作为选择信号
- 数据线的连接
- CPU数据线的条数可能比存储线多,要使用位扩展满足要求
- 读/写命令线的连接
- CPU给出命令,连接线除了不连ROM其他都可以连到读写控制端上
- 片选线的连接
- 决定访问的位置,
- 确认CPU访问的是存储器不是I/O,
- 每一个内存芯片都有自己访问范围,每次访问必须要符合范围要求,有一些地址作为片选地址
- 合理选择存储芯片
- ROM和RAM要合理的选择
- 保存系统程序用ROM
- 保存配置信息用ROM
- 系统程序运行区域,用户运行用RAM
- 综合考虑芯片的数量
- 少,简单最好
- ROM和RAM要合理的选择
- 其他 时序、负载
- 地址线的连接
- 题例
分配地址线
- CPU与存储器的连接图