(二)主存储器的基本组成
MOS管的概念:可理解为一种电控开关,输入电压达到某个阈值时,MOS管就可以接通导电。
存储元的构成:由电容和MOS管组成
存储元读数据的原理(电容内存在电荷表示二进制1,无电荷表示二进制0):
给MOS管一个高电平,使电路接通,若电容内存在电荷,则接通后电荷就会通过接通电路流向B端,在B端会检测到有无电流,若有电流则说明存储的是1,否则是0
存储元写数据的原理
给MOS管一个高电平,使电路接通,若写入1,则在B端给一个高电平,则电容两端会出现较大的电压差,根据电容特性,此时电容内的电荷会发生移动,即会给电容充电,根据定义,电容内存在电荷表示二进制1,所以此时写入的是1。若写入0,同样给MOS管一个高电平,使电路接通,在B端给一个低电平,因为是低电平,所以电容两端不会产生太大的电压差,因此不会充电,即电容内可视为没有电荷,即写入的为0。
将多个存储元有机制的连接在一起组成的就是存储体,可看到下图,八个存储元通过一根红线连接起来,即构成一个8bit的存储字长,红线即可控制MOS管的开关,以此来控制读写操作
除了存储体之外,在存储器中还有译码器和控制电路
译码器:作用就是解析地址
MAR传来的地址由译码器进行解析,每一个地址都对应一条线路,解析出地址后,译码器会向地址对应的线路上传输一个高电平打开本线路上存储元的MOS开关,来进行读或写的操作
控制电路:控制电信号的稳定
由地址总线向译码器传来的地址电平信号,可能是不稳定的,这种信号是不能直接传送到译码器中的,否则会解析错误,控制电路会在地址电平信号送达时将其控制住,等到信号稳定后在将其送至译码器,相当于一个警卫的角色,同样数据总线从存储元中读数据的时候也需等到信号稳定后再将数据送到数据总线上传输。
控制电路—片选线CS或CE
因为一个内存条中会包含多个存储芯片,当进行读或写操作的时候只是对一个芯片进行操作,其他芯片都不能参与,片选线的作用就是会选择指定的芯片进行操作。
片选线在低电平的时候有效,在选择芯片时,将所选芯片给予低电平,其他芯片给与高电平。
读控制线和写控制线
有的存储器把读写分为两条控制线,有的会合成一根。两根线的时候,在WE(写控制线)上给予低电平代表正在进行写操作,读也一样。合成一根线的情况,低电平代表写,高电平代表读
忽略内部构造细节进行封装,存储器包括存储矩阵(存储元矩阵)、译码驱动(译码器和驱动器)、读写电路(控制电路和译码器连接的红线电路)
这里的驱动器是连接在驱动器和存储矩阵之间的,作用是增强信号,保证译码器传送给存储矩阵(也就是红线上的信号)信号是稳定的。
引脚:
有的题可能会考到引脚的数量,给你地址总线的条数或MAR的位数等信息,问引脚数量至少为多少。MAR中,一位对应一个引脚,片选线也对应一个引脚,例如MAR为8位,则引脚数目至少为9个(再加上片选线的一根)。同样,数据线一端的引脚也一样。
存储器常见的描述方式
存储器寻址方式
可以按字节寻址、按字寻址、按半字寻址、按双字寻址,它们之间的转换关系可以通过移位实现,例如按字寻址转换成按字节寻址,一个字为4个字节,转换为字节即把按字寻址得到的地址左移位2位(2的2次方=4),其他寻址方式之间的转换也一样。
(三)SRAM和DRAM
DRAM芯片使用栅极电容存储信息,SRAM使用双稳态触发器存储信息,二者的核心区别就在于存储元不同。上一节所介绍的存储器就是DRAM存储器,她它是采用栅极电容存储信息。
下图就是两类存储元的不同结构
双稳态触发器A高B低时表示1,A低B高时表示0
双稳态触发器读数据:BL为低电平时读出的是0,BLX为低电平时,读出的是1
双稳态触发器写数据:BL给高电平,BLX给低电平,写入1,写入0操作相反。
栅极电容在读数据时会破坏原数据,例如在读1时,电容的电荷流走,1变成了0,所以DRAM的读操作是破坏性读出,读出后应有相应的重写操作。所以其读写速度更慢
读出数据,触发器状态保持稳定,读操作为非破坏性读出,无需重写。所以读写速度更快
栅极电容构造简单,所用构建少,体积也会更小,所以面积相同的情况下,栅极电容构成我存储元集成度会更高
SRAM和DRAM的对比
刷新操作
根据电容的相关知识可知,即使电路不通,电容上的电荷也会慢慢流失,栅极电容存储元中的电容内的电荷只能维持2ms。
双稳态触发器只要不断电,触发器的状态就不会改变(会一直充电)
由于电容上的电荷会消失,导致数据错乱或丢失,所以DRAM芯片要不定时的进行刷新操作。
刷新周期一般为2ms,因为一般2ms电容上的电荷就消失完了
以行为单位每次刷新一行存储单元(注意是存储单元而不是存储元)
上一节所提到的译码器,有多少个存储单元译码器就得接入多少根线(一根线连一个存储单元进行读写操作的控制),若存储单元过多,则在技术上无法实现接入大量线路的操作,所以把存储单元排列成多行多列的矩阵,每行/每列存储单元的个数仅为为(2^n)-1个,即行地址译码器/列地址译码器上只需要连接(2^n)-1根线,大大节省了所用线路的数量。
采用矩阵的方式排列存储单元如何寻址
将MAR传来的地址一分为二,前半部分为行地址,后半部分为列地址,能被行地址译码器和列地址译码器同时接通的存储单元即为要找的存储单元
怎样进行刷新,在什么时刻进行刷新(刷新一次相当于进行一次读操作,因而时间相当于一次读/写周期)
假设DRAM内部结构排列成128×128的形式,读/写周期为0.5us
2ms共2ms/0.5us=4000个周期
第一种方式(分散刷新):每次读写完都刷新一行
则1个读/写周期就由0.5us变为1us,前0.5us正常读写,后0.5us进行刷新操作
2ms/1us=2000,2ms内就可以进行2000次刷新操作,即刷新了2000行,一共有128行,所以可以保证每一行都进行了一次刷新,刷新太多,浪费时间,本来用不了这么多次刷新。
第二种方式(集中刷新):2ms内集中安排时间全部刷新
共128行,所以需要刷新128次,需要128个读/写周期,因此4000个周期内前3872个周期进行正常读写操作,后128个周期进行刷新操作
专门进行刷新的那段时间无法访问存储器,称为访存“死区”,长时间进行刷新操作可能会耽误事。
第三种方式(异步刷新):将128次刷新操作均匀分散,2ms/128=15.6us,即每15.6us内要有一次0.5us的刷新时间,这种方式不会耽误事。
注:刷新由存储器独立完成,不需要CPU控制
DRAM的地址线复用技术
向行地址译码器和列地址译码器传送地址时,可以选择同时送,也可以先送行再送列,同时送的话所需要的线路就是n,分开送的话所需线路n/2即可,这就是地址线的复用,可是地址线更少,引脚更少。