存储系统
基本概念与分类法
-
主存——辅存:实现虚拟存储系统,解决了主存容量不够的问题
-
Cache——主存:解决了主存与CPU速度不匹配的问题
-
Cache与主存储器(主存、外存)可直接被CPU读写
存储介质
- 半导体存储(主存、Cache)
- 磁性材料(软盘、磁带、机械硬盘)
- 光介质存储(光盘)
存取方式
-
随机存取存储器(RAM):读写任何一个存储单元所需时间都相同,与存储单元所在的物理位置无关
-
顺序存取存储器(SAM):读写一个存储单元所需时间取决于存储单元所在物理位置(磁带、复读机)
-
直接存取存储器(DAM):既有随机存取特性,也有顺序存取特性。先直接选取所在区域,然后按顺序方式存取(机械硬盘)
信息可更改性
- 读写存储器:可读可写(磁盘、内存、Cache)
- 只读存储器:只读不能写(CD-ROM音乐专辑、蓝光光碟)
信息可保存性
- 易失性存储器(主存、Cache)–断电后存储信息消失
- 非易失性存储器(磁盘、光盘)–断电后存储信息依然保持
破坏性读出–信息读出后原信息被破坏(DRAM芯片,读出数据后要进行重写)
非破坏性读出–信息读出后原信息不被破坏(SRAM芯片、磁盘、光盘)
性能指标
- 存储容量:存储字数x字长(MDR尾数反应存储字长)
- 单位成本:每位价格 = 总成本/总容量
- 存储速度:数据传输率 = 数据宽度(存储字长)/存储周期
主存储器基本组成
而存储体由存储单元组成
-
每个存储单元的读与写由mos管与电容控制,mos管可以控制电路的导通与否,电容是否存储电荷又代表了这个存储元表示的是0还是1.
-
从CPU向存储单元读取数据先通过地址总线将n位地址传给译码器,再由译码器通过字选线向存储单元施加高电平或低电平最终从MDR(图中绿色电路)输出数据,而这些数据再通过数据总线被CPU读取
控制电路负责控制当存储元电流稳定时再向MDR输出数据
- 引脚的数目就取决于片选线、读/写线、数据线、地址线、供电引脚、接地引脚
存储芯片的描述:8K x 8位就代表总共有8个存储单元、8个字长
总容量 = 存储单元个数 x 存储字长
寻址
DRAM与SRAM
DRAM:动态RAM(用于主存),使用栅极电容存储信息
SRAM:静态RAM(用于Cache),使用双稳态触发器存储信息
注:现在的主存通常采用同步DRAM,即SDRAM芯片,双倍数据速率DDR,则为SDRAM的改进型
双稳态:1时为A高B低;0时为A低B高,并且需要两根数据线读取数据
对比 | 双稳态 | 栅极电容 |
---|---|---|
存储信息 | 触发器 | 电容 |
信息破坏性 | 非破坏 | 电容放电导致信息被破坏,需要重写操作 |
易失性 | 易失 | 易失 |
读写速度 | 快 | 慢(原因由信息破坏性导致的重写所致) |
功耗 | 每个存储元制造成本高,集成度低,功耗高 | 集成度高,功耗低,成本低 |
发热 | 高 | 低 |
刷新? | 不需要 | 需要 |
送行列地址 | 同时送 | 分两次送 |
刷新
栅极电容存储的电荷只能维持2ms,即使不断电2ms后信息也会丢失,所以需要定时刷新电荷(充电),会占用一个读写周期
- 只要不断电,触发器的状态就不会改变,所以不需要刷新
- 存储芯片独立完成,不需要CPU控制
- 以行为单位刷新
行列译码器
随着存储容量需求的上升,单译码器很难连接百万级(1M)以上的选通线,这时行列地址译码器解决了这个问题,行/列移码器只需连接1024根选通线就能处理20位的地址信息
- 行列译码器选通线的数量=2n/2,n代表n位地址
- 采用行列译码器与单元阵列排布可以节省引脚数量
刷新方式
- 每次读写完都刷新一行(分散刷新),系统存取周期翻倍
- 集中安排时间全部刷新(集中刷新),这段时间称为访存“死区”,系统存取周期不变
- 只需保证每行刷新一次,称为异步刷新,这个方法可以在译码阶段刷新
注:未说明的情况下默认刷新周期为2ms
地址线复用技术
为了应对地址位数日益增长导致的地址译码器制造困难,提出了地址线复用技术,对于n位地址,将n/2个地址通过地址线分别送入行地址/列地址缓冲器
- 降低了地址线的数目,从而减少了芯片引脚数
- DRAM采用了该技术
ROM芯片(非易失性芯片)
Read-Only Memory 只读类型存储器,但其有些类型可读可写
注意U盘、SSD、虽然可以进行写操作,但其仍然基于EEPROM发展而来,本质上仍然属于只读存储器
-
MROM—-掩模式只读存储器,生产后任何人不可重写(只读)
-
PROM—-可编程只读存储器,生产后可用专门的PROM写入器写入信息,写过一次后就不可修改
-
EPROM—-可擦除可编程只读存储器,用户可写,之后可以擦除数据
-
UVEPROM,使用紫外线擦除所有信息的EPROM
-
EEPROM,使用电擦除擦除特定字的EPROM
-
-
Flash Memory—闪存,(u盘,sd卡),基于EEPROM发展而来,断电后可保存信息,且可以进行多次快速擦除重写
-
注:由于闪存需要先擦除在写入,因此写速度比读速度更慢
-
每个存储元只需使用单个mos管,位密度比RAM高
-
-
SSD—-固态硬盘
- 主控+存储单元(闪存芯片)
-
BIOS芯片—-存储了自举装入程序,负责引导装入操作系统(开机)
- 主存的一部分
逻辑上讲,主存由RAM+ROM组成,且二者常统一编址
且现在很多ROM也具有随机存取能力,比如EPROM与NOR Flash
主存储器与CPU的连接
多块存储芯片与CPU的连接
位扩展
增加主存存储字长的一种方法
为了应对数据总线大于存储芯片字长的情况,设计了位扩展这一方法,使CPU将对应的地址总线同时发向N块存储芯片,这样数据总线就可以将N位I/O数据从数据总线返回CPU
字扩展
增加主存的存储字数的一种方法
基于线选法的改进,取一个地址位与片选线连接,并在其中一条支路设置非门(也称1-2译码器)
扩展到n条线路后即是译码片选法:由n条线–>2n个选片信号
线选法 | 译码器片选法 |
---|---|
n条线对应n个片选信号 | n条线对应2n个片选信号 |
电路简单 | 电路复杂 |
地址空间不连续 | 地址空间连续 |
字位同时扩展
基于上述两种方法同时应用,可以增加主存容量的一种方法
多体并行存储器
- 采用“流水线”的方式并行存取(宏观并行,微观上串行)
- 宏观上,一个存储周期内,m体交叉存储器可以提供的数据量为单个模块的m倍
- 存取周期为T,存取时间(总线传输周期)为r,为了使流水线不间断运行,应保证模块数m>=T/r
每个模块都有相同的容量和存取速度,各模块都有独立的读写控制电路、地址寄存器、数据寄存器。它们既能并行工作,又能交叉工作。
对于单体多字存储器
- 每个存储单元存储m个字,总线宽度也为m个字,一次并行读出m个字
- 每次只能同时取m个字,不能单独取其中某个字,指令和数据在主存内必须是连续存放的
“双通道”:低位交叉的多体存储器,可以使CPU的访存速度翻倍
“单纯的扩容”:在主板上将两根内存条插入到不同颜色的插槽中,相当于实现了高位交叉的多体存储器