存储器概述
- 存储器
- 存储器是计算机中常用来存储程序和数据的部件,分为内部存储器和外部存储器和高速缓存器 ;
- 内部存储器又称主存储器,通常由半导体组成CPU可以直接对其进行访问
- 外存储器又称辅助存储器,外存中的程序要通过接口电路输入到内存后才可以供CPU 处理
-
存储器性能指标
- 存储容量
- 指的是存储器所能容纳的最大存储位数
- 由于存储单元一般较大,因而常以 KB(1024 B , 2 的 10 次方) ,MB,GB 为单元
- 计算方式:
- 存储器 芯片容量 = 存储单元数 * 位数
- 存储器 芯片容量 = 2 的地址线数次方 * 数据线数
- 存储器芯片的地址线决定存储单元数( 字数,纵的次数 ),数据线决定位数(横的次数)
- 1KB = 2 的 10 次方 B = 1024 B = 1024 * 8b (位)
- 1MB = 2 的 10 次方 KB = 1024 KB = 1024 * 1024 * 8b (位)
- 1 B(字节) = 8 b(位)
- 1 KB = 2 的 10 次方 * 8 b
- 存取速度:存储器一次完整的读入或写入数据的时间
- 可靠性
- 功耗
- 性价比
-
存储器的三级结构
-
存储器芯片与其构成的存储容量计算
- 位扩展:存储器的字数满足要求,而位数不够,需要对位数进行扩展
- 字扩展:存储器芯片的位数满足要求,而字数不够,需要对芯片字数扩展
- 字,位同时扩展:存储器芯片字数,位数都不满足要求,需要同时扩展
- 芯片数量 = 构成存储容量 / 所采用的芯片容量
- 存储器种类
-
RAM 随机存储器
- SRAM 静态存储器
- MOS 型静态RAM 存储器
- 由 6 个 MOS 场晶体管构成
- 用作 chche(高速缓冲器) 较多
- 速度较快
- 容量较小 ,所以行 和 列 的地址可以 一次性送入
- DRAM 动态存储器
- 存储信息具有时效性,超过一定时间信息就会失效
- 位了使数据时常有效,就会在存有信息的单元,进行周期性刷新 (重写)
- 用作内存比较多
- DRAM 则需要将 行 和 列 的地址分别送入
-
ROM 只读存储器
- MROM 掩模只读存储器
- 在出厂时就已经写入信息,这种信息,就是永久性存储
- 使用时只能读出不能写入
- PROM 可编程只读
- 在出厂时没有写入信息
- 但在使用时,开始写入信息
- 但这些信息是一次性的,只读不可在写
- EPROM 可擦 可编程 只读存储器
- 可以使用 特定的 紫外线 对存储器进行擦除
- 可以重复进行编程,可多次该写所写内容
- EEPROM 电可擦 可编程 只读存储器
- 使用时让电流只通过指定的存储单元把其中的一个字 或 字节进行擦去
-
PROM 只能够写入一次数据,一次性写入数据
-
- 高速缓存器(CACHE)
-
高速缓存器主要位于 主存 与 CPU 之间一级缓冲器
-
主要由 讲台存储器芯片 SRAM ,容量比较小但速度比 主存 快得多
-
与 CPU 的速度相近
-
他与主存储器一起构成一级的存储器
-
高速缓冲器 和 主存储器之间信息的调度 和 传送是由硬件自动进行的
-
某些机器甚至有 二级三级 缓存,没级缓存比前一级缓存速度慢并且容量大
-
统一编址和独立编址
-
CUP 可以与内存 与 外设 进行数据传输
-
所以 为了区分 内存 与 外设 进行区分进行两种编址
-
统一编址
-
I/O接口与内存单元进行统一编址,既把 I/O 接口 看作 内存进行处理
-
既在内存中分配出一部分空间来存储I/O接口
-
例图:
-
-
对于 CPU 来说,内存 与 IO 的唯一不同就是 地址不同
-
优点:
- I/O 端口 数目几乎不受限制
- 访问 内存的指令均可以 访问 I/O 接口,对 I/O 端口的数据处理能力强
- CPU 无须区分访问内存 和 I/O 接口 的控制信号,从而减少 引脚
- 缺点:
- 程序中对 I/O 操作不明显,难以区分程序中 对 内存 和 I/O 的操作
- I/O 接口占用部分内存
- 译码电路复杂,内存地址位数较多
-
-
独立编址
-
I/O 接口 与 内存单元进行独立编址
-
既内存与 I/O 并不在一起,通过不同的指令来访问 内存和I/O 接口
-
例图:
-
-
对于 CPU 来说,内存 与 IO 使用引脚标志位 M/ IO| 进行区分
-
访问 IO 是使用 IN 和 OUT 指令来进行访问
-
对于 8086 来说可以访问的内存大小为 1M 00000 H ~ 0FFFFF H
-
访问 IO 的大小为 64 k 0000 H ~ 0FFFF H
-
优点:
- 不占用内存空间
- 使用 I/O 操作指令,程序清晰
- 译码电路简单,
- 缺点:
-
FFFFF H
- 访问 IO 的大小为 64 k 0000 H ~ 0FFFF H
- 优点:
- 不占用内存空间
- 使用 I/O 操作指令,程序清晰
- 译码电路简单,
- 缺点:
- 只能用专门的指令来进行访问 I/O