主存储器的组成
组成
存储元
是由电容和mos管组成的
mos管是一种电控开关,只要输入电压达到一定的量,就可以接通
然后再电容的两侧产生电势差,让电容存储电荷来表示1
存储单元(存储字)
八个这样的存储元就可以算一个存储单元 (当然也可以是16个)
存储体
而多个存储单元就构成了我们要学的存储体
数据总线(宽度=存储字长)
根据地址获取我们要操作的存储字
这涉及到译码器的使用
他会根据地址寄存器,转变成某个选通线的高电平信号
如果地址存储器n位的,那么就有 2^n 个存储单元,总容量的算法是
存储单元个数x存储字长
也就是2^n *8bit
我们在控制时候,还需要添加个控制电路,只有当MAR(地址存储器)的稳定后,控制电路才会打开 译码器
同样也要在 MDR(读写的数据)稳定之后才会去读取
另外控制电路还需要对外提供cs(chip select)和ce(chip enable)两条片选线,当头上有划线,表示低电平有效
以及读控制线和写控制线
如果是两根线:
we(write enable)代表可以写
oe 代表可以读
如果是一根线:
we 低电平的时候代表可以写,高电平代表可以读

内存条:
一块内存条可能包含多个存储芯片
片选线就可以帮我们选择需要读取的那个单元芯片
每一个芯片都会有好几个金属引脚,如下图,每一根地址线都可以看作一个引脚
因此如果题目问你有几个金属引脚,就是问你有几个地址线

常见的描述方式:
8x8位的存储芯片
8K x 8位 就是2^13 x 8bit (此时地址线有13位,数据线有8位) 在加上片选线和读写控制线,那么最后就一共有 23根线
8K x 1位 就是 2^13 x 1bit (13,1)
64K x 16位 就是 2^16 x 16bit (16,16)
具体为什么8K=2^13 ,因为8=2^3 1K=2^10

sram和dram
static ram 和dynamic ram
dram一般用于作为主存,而sram用来作为cache
高频考点
他们的对比
Dram的刷新
Dram的地址线复用技术
Dram 上面的信息就是dram
dram 是用栅极电容存储信息的
栅极电容的读写
当读出1的时候,mos管接通,电容放电,数据线上产生电流
当读出0的时候,mos管接通无电流
而电容放电信息被破坏,是破坏性读出,读出后应有重写操作,也称为再生
Sram
是用双稳态触发器存储信息
双稳态电路是这样的,需要用到6个mos管道

而双稳态触发器的读写
读出数据的时候,触发器保持稳定,是非破坏性的读出,无需重写
因为不需要重写,所以双稳态读写更加快
栅极电容只需要一个mos,
因此制造成本更低,集成度高,功耗低
双稳态触发器需要6个mos
因此制造成本高,集成度低,功耗大
下面表格对比

刷新:
栅极电容:如果电容里的信息只能维持2ms,即使不断电,2ms信息也会消失,所以需要一直刷新
双稳态:只要不断电,触发器状态就不会变
刷新一般每2ms刷新一次,每次以行为单位,刷新一行存储单元
如果数据贼多,比如说有n位,就需要有2^n根选通线,这个在工程上有点难实现,因此,我们使用二维排列
把存储单元排列成2^{n/2} x 2^{n/2} 这样每次刷新就只需要2{n/2}+2根选通线即可
根据地址选中存储单元
如果此时地址八位全0,那么按照一维排列,译码器就去选择第0根
如果按照二维排列 就有两个译码器,而地址的前四位表示行地址,后四位表示列地址 emm看图

电容最长坚持2ms,读写周期是0.5us ,如果dram排列是128x128

但是他们其实都已经过时了,现在的主存通常使用sdram
rom
rom一般分为好几种
MROM (mask read-only memory)-掩模式只读存储器
厂家按照客户的要求,在生产芯片的时候写入数据,之后任何人不可重写,只能读出
PROM(programmable read-only memory)-可编程只读存储器
用户可用专门的PROM写入器写入信息,写一次后不可更改
EPROM(erasable programmable read-only memory)-可擦除的只读存储器
允许用户写入,之后用某种方法可以擦除数据,多次重写
UVEPROM(ultraviolet rays) 用紫外线照射8-20分钟可以擦除所有信息
EEPROM (Electrically)可以用电擦除方式,擦除特定的字
闪存 -闪速存储器(u盘 sd卡这些就是闪存)
u盘每个存储元很小,因此集成度很高
在EEPROM的基础上发展来,即使断电后也能保存信息,而且可以多次快速擦除重写,由于需要先擦除再写入,因此闪存的写比读速度慢
SSD(solid state drives)
由控制单元和存储单元组成,与闪存的区别在于控制单元不一样,但存储介质类似
可以多次快速擦除重写,ssd速度快,功耗低,价格高,一般个人电脑都用ssd取代传统机械硬盘
我们手机里使用的也是Flash芯片,但是相比于ssd,手机的集成度更高,功耗更低,价格更贵
苹果的闪存芯片当黄金卖不是没道理的
主机上bios芯片,存储了“自举装入程序”
虽然bios芯片在rom上,但是逻辑上,我们要把它看成主存的一部分
也就是说,如果bios容量是1kb,cpu会先给bios分配0-1023的地址,主存ram是从1024开始的
双端口ram

多体并行存储器
即使是单cpu,cpu的读写速度也比内存要快很多,因为内存需要有恢复期,如果cpu需要连续读取,就必须要等待恢复时间
多体并行存储器可以解决这个等待时间的问题(可以理解为,插入四根内存条)
此时有两种方法
高位交叉编址的多体存储器
由两个体号和三个体内地址表示
体号代表它在哪一根存储体,体内地址表示它在当前存储体的第几个地址
但是体号在前
低位交叉编址的多体存储器
和高位差不多
只是体号在后
每个存储体的存储周期为T
存取时间为r
高位和低位的时间消耗如下图
为了让流水线不间断,魔块术m应该等于t/r,这样效率达到顶峰,
如果m<t/r 那么会出现cpu等待内存的情况
如果m>t/r 那么会出现M0闲置的情况,都不是我们想要的
不间断时候读取m个字所需的时间为:t1=T+(m-1)r
如果是四路,那么T=4r


如果题目说n个DRAM x位的芯片组成了nx位的存储器,那么这时候就要使用同时启动的方式 因为刚好对上
如果对不上,那么就采用流水线工作方式