存储系统为了缓解cpu的高速运行与低速但大容量的存储器之间的矛盾,发展出了多级的存储系统。
从高速、小容量到低速、大容量排列,依次是 寄存器<-cache<-主存(内存)<-磁盘<-外存
存储容量=存储字数*字长 (MAR*MDR)
按照是否随机存储,可将存储器分为以下三类:
RAM random access memory 随机存取存储器 它的特点是访问磁盘的任意位置,耗时都一致
SAM saquential access memory 顺序存取存储器 比如磁带
DAM direct access memory 直接存取存储器 它先选择信息区域,再按照顺序存取,磁盘就属于此类
SAM和DAM都是串行访问类型。
----
以上三种都是按地址访问的存储器类型。按照内容访问的存储器称为相联存储器,它是按照内容访问的存储器。计算机中的“快表”就是此类存储器。
----
RAM继续划分,可按读取效果来划分为DRAM和SRAM。D指dynamic,读取信息时会破坏存储器内存储的信息,S指static,读取时不破坏原有存储信息。在硬件上,SRAM使用双稳态触发器设计,需要6个mos管,它能够稳定地存储信息。DRAM使用一个mos管和一个电容设计,电容存储高低电平做信息,mos管控制开闭。
DRAM的设计图
SRAM | DRAM | |
稳定度 | 信息不会被破坏 | 信息会被破坏 |
功耗 | 速度快,功耗大 | 低功耗 |
是否刷新 | 无需刷新 | 要定时刷新 |
集成度 | 低 | 高 |
送址方式 | 同时送行列地址 | 分两次送行列地址 |
用处 | cache | 内存 |
存储元:最小的完整存储单位
存储单元:一行存储元的集合,此处默认8个存储元为一单元。
存储元以行列形式构成了存储器,并且行列等长。这样设计是因为可以节省连通线的数目,一维排列需要2^n,二维排列就只需要2^n/2 + 2^n/2根即可。
在存取周期中,一个存取周期包含存取时间和恢复时间两部分。
由于DRAM必须要刷新,所以在设计时必须要定期刷新存储器,一般认定每个存储元刷新的间隔不能超过2ms,或者说2ms内必须完整刷新一次存储器。在刷新时,以行为单位,一次可刷新一行存储单元。刷新的操作和读写是一样的,占用一个存取周期。常见的刷新方式有三种:分散刷新 异步刷新和集中刷新。
(在这里假设有一个128*128的DRAM存储器,它的读写周期为0.5us)
1)分散刷新:每次读写完都刷新一次。那么相当于读写周期就变为了1us,好处是不需要单独安排时间做刷新。
2)集中刷新:在2msnei集中一小段时间对所有存储单元进行刷新,在刷新时不能进行任何外部访问,此时就成为内存的“死期”,死期刷新/2ms内总刷新次数=死时间率。
3)异步刷新:由于这个存储器是128*128的,2ms内分128次,每次刷新一行也可达到要求。此时就可以选择cpu未访问该行的时间来刷新。
注:刷新行为由存储器自行控制,CPU不参与。
--------------------
以上为RAM部分整理。对于ROM,RAM和ROM的区别是:RAM在断电后会丢失信息, ROM不会,但ROM是只读性存储器,随着技术发展,逐步发展出了可编程写入的PROM,可擦除可编程的EPROM,再到现在的flash memory已经可以自由擦写,它的存储元只需要一个mos管。
注:BIOS也是ROM,它独立存在,但也应该算是主存。