主存储器的组成

组成

存储元

是由电容和mos管组成的

mos管是一种电控开关,只要输入电压达到一定的量,就可以接通

然后再电容的两侧产生电势差,让电容存储电荷来表示1

存储单元(存储字)

八个这样的存储元就可以算一个存储单元 (当然也可以是16个)

存储体

而多个存储单元就构成了我们要学的存储体

数据总线(宽度=存储字长)

根据地址获取我们要操作的存储字

这涉及到译码器的使用

他会根据地址寄存器,转变成某个选通线的高电平信号

如果地址存储器n位的,那么就有 2^n 个存储单元,总容量的算法是

存储单元个数x存储字长

也就是2^n *8bit

我们在控制时候,还需要添加个控制电路,只有当MAR(地址存储器)的稳定后,控制电路才会打开 译码器

同样也要在 MDR(读写的数据)稳定之后才会去读取

另外控制电路还需要对外提供cs(chip select)和ce(chip enable)两条片选线,当头上有划线,表示低电平有效

以及读控制线写控制线

如果是两根线:

we(write enable)代表可以写

oe 代表可以读

如果是一根线:

we 低电平的时候代表可以写,高电平代表可以读

![image-20250909095410580](/Users/tusier/Library/Application Support/typora-user-images/image-20250909095410580.png)

内存条:

一块内存条可能包含多个存储芯片

片选线就可以帮我们选择需要读取的那个单元芯片

每一个芯片都会有好几个金属引脚,如下图,每一根地址线都可以看作一个引脚

因此如果题目问你有几个金属引脚,就是问你有几个地址线

![image-20250909095754186](/Users/tusier/Library/Application Support/typora-user-images/image-20250909095754186.png)

常见的描述方式:

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

![image-20250909101130527](/Users/tusier/Library/Application Support/typora-user-images/image-20250909101130527.png)


sram和dram

static ram 和dynamic ram

dram一般用于作为主存,而sram用来作为cache

高频考点

他们的对比

Dram的刷新

Dram的地址线复用技术

Dram 上面的信息就是dram

dram 是用栅极电容存储信息的

栅极电容的读写

当读出1的时候,mos管接通,电容放电,数据线上产生电流

当读出0的时候,mos管接通无电流

而电容放电信息被破坏,是破坏性读出,读出后应有重写操作,也称为再生

Sram

是用双稳态触发器存储信息

双稳态电路是这样的,需要用到6个mos管道

![image-20250909101822333](/Users/tusier/Library/Application Support/typora-user-images/image-20250909101822333.png)

而双稳态触发器的读写

读出数据的时候,触发器保持稳定,是非破坏性的读出,无需重写

因为不需要重写,所以双稳态读写更加快

栅极电容只需要一个mos,
因此制造成本更低,集成度高,功耗低

双稳态触发器需要6个mos
因此制造成本高,集成度低,功耗大

下面表格对比

![image-20250909105737460](/Users/tusier/Library/Application Support/typora-user-images/image-20250909105737460.png)

刷新:

栅极电容:如果电容里的信息只能维持2ms,即使不断电,2ms信息也会消失,所以需要一直刷新

双稳态:只要不断电,触发器状态就不会变

刷新一般每2ms刷新一次,每次以行为单位,刷新一行存储单元

如果数据贼多,比如说有n位,就需要有2^n根选通线,这个在工程上有点难实现,因此,我们使用二维排列

把存储单元排列成2^{n/2} x 2^{n/2} 这样每次刷新就只需要2{n/2}+2根选通线即可

根据地址选中存储单元

如果此时地址八位全0,那么按照一维排列,译码器就去选择第0根

如果按照二维排列 就有两个译码器,而地址的前四位表示行地址,后四位表示列地址 emm看图

![image-20250909110945255](/Users/tusier/Library/Application Support/typora-user-images/image-20250909110945255.png)

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

![image-20250909111300947](/Users/tusier/Library/Application Support/typora-user-images/image-20250909111300947.png)

但是他们其实都已经过时了,现在的主存通常使用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

![image-20250909141439468](/Users/tusier/Library/Application Support/typora-user-images/image-20250909141439468.png)

多体并行存储器

即使是单cpu,cpu的读写速度也比内存要快很多,因为内存需要有恢复期,如果cpu需要连续读取,就必须要等待恢复时间

多体并行存储器可以解决这个等待时间的问题(可以理解为,插入四根内存条)

此时有两种方法

高位交叉编址的多体存储器

由两个体号和三个体内地址表示

体号代表它在哪一根存储体,体内地址表示它在当前存储体的第几个地址

但是体号在前

低位交叉编址的多体存储器

和高位差不多

只是体号在后

每个存储体的存储周期为T

存取时间为r

高位和低位的时间消耗如下图

为了让流水线不间断,魔块术m应该等于t/r,这样效率达到顶峰,

如果m<t/r 那么会出现cpu等待内存的情况

如果m>t/r 那么会出现M0闲置的情况,都不是我们想要的

不间断时候读取m个字所需的时间为:t1=T+(m-1)r
如果是四路,那么T=4r

![image-20250909144656825](/Users/tusier/Library/Application Support/typora-user-images/image-20250909144656825.png)

![image-20250909153835488](/Users/tusier/Library/Application Support/typora-user-images/image-20250909153835488.png)

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

如果对不上,那么就采用流水线工作方式

posted @ 2025-09-09 21:26  是我,米老鼠  阅读(20)  评论(0)    收藏  举报