CH5-存储器基础
易错点
1、注意看存储器容量的时候:
区分32位和32个.如果是32个需要化为5位
看清容量之后有没有加KB
一、半导体存储器基础
1、定义:
由存储单元组成,每个单元有二进制格式储存的唯一地址
2、分类:
- 按存取方式:随机存储器Random(RAM)、只读存储器Readonly(ROM)、顺序存储器Sequential(SAM)。
- 按器件类型:MOS型和双极型(Bipolar,速度快,用于高速缓存)
3、技术指标
固定关系:
- 1 Byte(字节) = 8 bits(比特)。
- 1 word(字) = word_length(字长)bits
- 一般给存储器的容量大小的格式都是字数*字长
- 字数(word):存储单元的个数(地址译码需要编码的地址数)
- 字长(word_length):每个存储单元的大小容量(bits)
- = 寄存器位数
- = 输入/输出数据线条数
- 例题:
- word:32k = 2^15,所以需要15位二进制位作为地址信号编码
- word_length = 8,即每个存储单元/地址的数据容量 = 寄存器位数
常见换算:
- 1k = 2^10 (近似1000)
- 1M = 2^20
- 1G = 2^30
容量(Capacity):
- 容量=字数 (存储单元总数)×字长 (位数)\text{容量} = \text{字数 (存储单元总数)} \times \text{字长 (位数)}容量=字数(存储单元总数)×字长(位数)
- 容量(总bit数) = word× word_length (bits)
二、随机存储器:RAM
1、特点:
- 读+写
- 断电丢失全部数据
- 分类:
静态sram:CPU内部缓存(Cache)
速度快
容量小
动态dram:计算机内存/主存储器
速度慢
容量大
2、组成部分
2.1、存储阵列(memory array)
2.2、地址译码器(Address Decoder)
- 单译码结构:将n条地址线直接译码成 2^n个地址信号,每个信号对应一个存储字。
- 双译码结构:
- m条地址线行译码器X(一般是低位)
- n条地址线列译码器Y(一般是高位)
- 编码2^(m+n)个地址信号。
2.3、输入输出(R/W control)
- R/WˉR/\bar{W}R/Wˉ(Read/Write,读/写控制线):
- 当信号为高电平(1)时,执行Read(读)操作,数据从芯片内部流向外部。
- 当信号为低电平(0)时,执行Write(写)操作,外部数据写入芯片内部。
- CS‾\overline{CS}CS(Chip Select,片选线):
- 带有上划线表示Active-Low(低电平有效)
- 反之为高阻态
- 输入/输出端数据线(I/O 线)的条数:
- 核心结论:数据线的条数 = 寄存器位数 = 字长 word_length。
3、核心考察方式:
3.1核心参量
- 容量 = 字数*字长(bits)
- 字数(bits)
- 地址线(address_line) =log2(字数)\log_2(\text{字数})log2(字数)
- 字线(word_line) = 字数
- 字长(bits)
- 数据线条数(Bit_Line/Data_Line/I/O) = 字长
- 字数(bits)
3.2核心引脚定义(作图注意)
核心引脚:地址线/数据线/读写线/片选(使能)线
3.2存储器扩展
3.2.1位扩展(字长扩展)
- 共用:地址线/读写线/片选
- 分用:数据线
3.2.2字扩展(地址扩展)
- 共用:地址线/读写线/数据线
- 分用:片选线
两个RAM:
- 片选使用非门连接
- 高位多一路片选线
- 其他连线都相同
n个RAM:
- 目标:M × N /现有:m × n
- RAM芯片数目:(M × N) /(m × n)
- 译码器:(一般是高位地址线接译码器)
输出:字扩展倍数:32/8 = 4
输入:log2字扩展倍数:log24 = 2
故选用2-4译码器
- 目标:M × N /现有:m × n
3.2.3位和地址同时扩展
- 先扩位:D
- 后扩字:A
3.2.4 字扩展的16进制表示法
注:如果使用16进制表示,地址最后一定要加上H!!!
三、只读存储器
A、ROM
1、特点:
- 数据只读
- 断电后数据不会丢失
- 分类:
2、组成部分
地址译码器、存储矩阵、输出缓冲
3、确定映射关系
4、使用ROM实现组合逻辑函数/ROM熔丝图绘制
1、确定几位输入、几位输出
2、写真值表
3、用标准与或式表示,写成最小项和的i形式
4、建立熔丝图
四、寄存器堆RF
1、定义:
- CPU内部的一小块高速存储器阵列
- 寄存器堆一般用静态触发器或小容量 SRAM 单元
- 跟cache关系
- RF寄存器堆比cache速度更快,容量更小
- 功能定位的区别
- 寄存器堆 (RF):直接服务于 CPU 内核的运算单元,用于存放当前正在执行指令的中间结果、操作数和地址。指令集通常以寄存器为中心设计 。
- Cache:其核心作用是作为内存的影子,存放经常被访问的数据和指令,减少 CPU 直接访问慢速内存的次数
2、特点:容量小、速度极快、端口多
3、为什么需要寄存器堆
寄存器堆存在的主要原因是解决内存访问速度远慢于CPU运算速度的问题:
- 存储层次的最顶层:它是整个计算机存储结构中速度最快、延迟最低的一层。
- 减少CPU等待:内存访问太慢,寄存器堆用于存放运算的中间结果、操作数和地址,避免CPU处于“等数据”的状态。
- 支持高性能架构:支持流水线和多发射技术,允许在一个时钟周期内进行多次读写操
4. 简单结构与端口概念
寄存器堆通常被设计为多端口存储器:
- 端口定义:一对地址线和数据线的组合称为一个端口。
5. 寄存器堆的典型应用
- 通用CPU:包括整数寄存器堆、浮点寄存器堆和向量寄存器堆。
- GPU:为大量的线程或Warp提供本地变量与中间结果存储,以实现高吞吐量。
- DSP 和 AI 加速器:为乘加运算(MAC)和矩阵运算单元提供高带宽的数据通路。
- 嵌入式系统:作为工作寄存器组或小容量的高速缓冲区使用