随机访问存储器分为两种,静态(S)和动态(D),静态(SRAM)比动态(DRAM)要快也要贵,因为SRAM作为高速缓存,DRAM作为主存以及图形系统的帧缓冲区。
1.静态RAM
SRAM的每一个数据位都存在一个双稳态的存储单元中(双稳态:只有两个稳定平衡状态,注意,不仅平衡,而且要稳定平衡,意味着受到一点小小的干扰也不会状态发生改变,如果处于不稳定的状态,则会转化到稳定状态),因此只要有电,数据就绝对不会改变。
2.动态RAM
DRAM采用电容来保存数据位,因此电压的稳定程度代表了数据位的稳定程度。正是因为在物理结构上的差别使得DRAM和SRAM所占空间不同,所用材料不同,价格也就不同,稳定程度也不同。
由于是电容,因此会时不时的漏电,也就需要时不时的刷新。当然,也可以使用纠错码来纠正错误的位。
SRAM和DRAM的物理结构不同导致了两者所占空间的大小,数据存储的稳定程度,以及市场价格。
3.传统DRAM
DRAM中的所有的位被分成超单元,也就是我们俗称的(字节)。分成了一个一个的小单元,然后通过矩形排布来布置这些小单元,这样取得小单元所用的数据的时候,所需要的引脚也会比较少(引脚:一个引脚可以传输一位数据,这里面的引脚是为了传输地址用),通过引脚来传输地址之后我们就可以从DRAM的芯片中读取数据了。
在芯片中如何读取数据呢?每个DRAM芯片连接到存储控制器中,这个电路可以传输地址到芯片中,分别传入RAS和CAS,也就是行号和列号,因为数据芯片的矩阵中,行号了列号确定之后我们就可以唯一的确定一个超单元。
当然,行号和列号的传输是有一个时间差的,先行,因此,在传入行号之后,我们把芯片中的一行数据都拷到芯片中的内部行缓冲区中,然后再从内部行缓冲区中读取那一列的超单元中的数据。
4.存储器模块
对于一个字,因为所组成的字节都分别属于一个超单元,因此分布在不同的芯片上,因此当我传输的时候,需要给不同的芯片传入相同的坐标,取得一个字不同字节中的数据,之后再合并,才能够取得这个字的数据。
这个字中每一个字节的取得从芯片中的内部行缓冲区取得,而合并实在存储控制器中合并。
5.增强的DRAM
在原始的DRAM结构中,我们可以看出其效率稍微有些低,因此可以做多方面的改进
快页模式DRAM(Fast Page Mode DRAM,FPM DRAM)第一个改进是比如我要读取芯片中一行的数据(根据空间局部性,这是很可能的),我没有必要每次都把数据拷到内部行缓冲区中,而可以直接从缓冲区中获得。
扩展数据输出DRAM(Extenged Data Out DRAM,EDO DRAM)。是FPM DRAM的一种增强行驶,允许CAS信号更紧密
同步DRAM(Synchronous DRAM,SDRAM),与存储控制器使用同一个时钟信号,细节不讨论,总之更快。
双倍数据速率同步DRAM(Double Data-rate Synchronous DRAM,DDR DRAM)是对SDRAM的一种增强,使用两个时钟沿作为控制信号,读取速度翻倍。
进化进程:FPM DRAM-EDO DRAM-SDRAM和DDR SDRAM
6.非易失行存储器
如果断电,RAM丢失数据,ROM能够保存数据。
PROM可一次性变成的ROM
EPROM(erase)可擦写的可编程的ROM
Flash非易失,基于EPROM,快速而持久的非一时性存储,基于闪存发明出固态硬盘。
存储在ROM的程序成为固件(firmware)
7.访问主存
数据、地址、指令等通过总线来进行传输,总线根据数据、地址和指令分为数据总线、地址总线、指令总线。指令总线携带指令,数据总线携带数据,地址总线携带地址。
在CPU和I/O桥之间通过系统总线相连,I/O桥和驻村之间通过存储器总线相连。现在哥哥计算机系统的设计罪域总线有不同的设计。但是三条总线相互协作,指令决定要做什么,地址决定在哪儿做,数据决定做什么的内容,三者相互协调,可以从CPU访问主存或者存储数据到主存。