内存电路与内存芯片

内存电路

8c9f6cba-fa8d-433f-942e-1db1148d64d7

58e95601-e67d-4723-8c7e-c82f6021391d

前面讨论过如何用多个D触发器构造8位或更多位的寄存器,而内存也是通过锁存器/除法器构造的,不过通常内存容量远远大于寄存器容量,需用用其他方式编排锁存器/除法器。上图给出了基于D触发器的12位内存电路,该电路虽然只有12位,但其方案本身是支持更大容量的。

该电路相对于之前讨论过的寄存器电路,其并未把每个D触发器的输入输出端作为管脚暴露,因为其对触发器进行了编址,该电路是按每3个位为1个字编址的,共包含4个字,其数据读写是以字为单位的。其中\(A_0,A_1\)是地址信号,其可接受4种0-1组合用于“定位”内存中待操作的字。\(I_0,I_1,I_2\)为需要写入内存某个字的输入数据信号。\(O_0,O_1,O_2\)为当前内存某个字的存储内容的输出数据信号。\(CS\)是片选信号、\(RD\)表示进行读或写、\(OE\)是输出的使能,这3者构成了这个内存的控制信号

这里引入了片选的概念,片选就是用于“通知这个内存它被选中了”,如果不结合其他硬件一起考虑的话这个概念比较抽象。这里简单举个例子,假设有电脑里有2个这样的内存,在设计电脑的时候为了节省管脚的数目,把这2个内存除\(CS\)外的其他相同管脚都做了并联处理。这种情况下如果不用片选信号的话,这2个内存就无法区分哪些信号是发给自己的,哪些是发给另一个内存的。

来看该内存如何写入字的,设向内存地址0的字(第0个字)写数据,需置地址信号\(A_0=A_1=0\),控制信号\(CS=1\),\(RD=0\)(表示写),\(OE=0\)(不需要输出)。然后可发现第1行3个D触发器的写门被打开,从左到右的3个D触发器会在1个脉冲下被分别写入已准备好的稳定的\(I_0,I_1,I_2\)。

再看其如何读取字,设要读内存地址0的字,需置\(A_0=A_1=0\),\(CS=1\),\(RD=0\)(读),\(OE=0\)。可发现第1行3个D触发器右下角的与门会输出其\(Q\),并且经过1个或门,这个或门的其他输入会被地址信号控制为0,所以这个或门也一定会输出\(Q\),所以这个字的数据会被输出到\(O_0,O_1,O_2\)前方的“三角形部件”中,这里先把其当作与门。如果置\(OE=1\),则\(O_0,O_1,O_2\)就是待读取字的数据。

这里来看这个“三角形部件”是什么,对于实际内存电路,其为了节省管脚数,会让输入输出共用管脚,也就等于短接\(I_k,O_k\)。这样做看起来是没什么问题的,因为\(RD\)会说明当前是读还是写,并且输出还有使能信号控制。但实际上输出为0和完全短路是有区别的,在写数据的时候,0输出会干扰到真正的待写入数据。所以这里需要种机制,其能在写数据时能真正的让这些公共管脚与输出断路,也就是真正的复用这些管脚。实现这种功能的部件称为缓冲器,其用三角形符号表示,其具体功能如上图所示。缓冲器相对于门而言,其最大的特点是能够提供真正的断路功能。

可以发现这个电路确实很容易进行扩展,可以让每个字包含任意多的位,也可以包含任意多个字。不过为了更有效的利用其中的译码器部分(地址信号),应当让字的数目是2的整数倍。

 

内存芯片

7f24e42f-2627-4e73-89d8-4ff314def6ef(1)

cb930904-5025-4f96-b13e-ad370772bfa1(2)

图(1)左边是种按上述电路设计的8位存储字长的4Mb内存芯片,注意这里的b代表位,所以是4*1024*1024位内存。其中的\(D_0\)到\(D_7\)为输入和输出的公共管脚,\(A_0\)到\(A_{18}\)为字的地址管脚。其D触发器的排布为8个列和\(2^{19}\)个行。实际计算机确实含多个同样的芯片,故片选\(CS\)是必须的。

图(1)右边是一种存储字长1位的4Mb内存芯片,可以发现其地址管脚数很少,而且多出来了\(CAS,RAS\)的输入,这说明其采用了与图(1)左边不同的电路方案,这里不具体看其电路,只需知道其内部触发器是按2048*2048的行列排布的。其寻址方式和前者不同,需要两个或更多的“周期”,第一个周期是让行地址信号\(RAS\)有效,并通过\(A_0\)到\(A_{10}\)提供的2048种组合选择行,然后内存会“记住”这个当前已被选择的行。第二个周期会让列地址信号\(CAS\)有效,用于选择列。最后内存芯片会根据行和列定位到具体的位,进行读取写入操作。这种方案在节省了管脚数时也增大了读写的时间(周期数),有时为了能平摊这种损失,会让内存一次性处理连续的多个位。该方案更接近现在流行的大容量内存的实际电路

之前提过现在流行的内存存储字长是8位的倍数,不是图(1)右边的1位存储字长。故这里以图(1)右边的芯片为基础,分析图(2)中有更多位的芯片。图(2)左边的16位存储字长的512Mb芯片由4个相同的128Mb的“子芯片”组成,其共享除\(BANK\)外的管脚,\(BANK\)提供的4种组合用于选择这些“子芯片”。这些“子芯片”的行地址信号为全体13个\(A\),列地址只有\(A_0\)到\(A_9\)共10个(列寻址时\(A_{10},A_{11},A_{12}\)是无效的),共提供\(2^{13}\times 2^{10}\)共8M个单元,这里的单元不仅仅是1个D触发器,而是1个16位单元。故每个“子芯片”确实能提供\(16\times 8\)共128个Mb的存储,其在行和列寻址的周期结束后,能一次性通过\(D_0\)到\(D_{15}\)读写16位。

图(2)右边的芯片则是4位存储字长的512Mb芯片,其设计思路和前者相同,同样包含4个“子芯片”,只不过其把列地址进行了扩展,其从\(A_0\)到\(A_{11}\)都是有效的。这样“子芯片”就能提供32M个单元,每个单元为4位存储单元。于是每个“子芯片”同样提供128Mb。

 

内存芯片的种类

内存作为存储器又称为RAM(随机访问存储器),这里的“随机访问”是指内存可以在任意时间对其中任意位置(地址)的数据进行读写。一般来说会把RAM继续分为如下的两类:

1) SRAM(静态RAM):静态是指SRAM只要不断电,数据能正确维持几小时到几天,其存储位的部件就是前面提到的D触发器。SRAM的优势是其稳定、速度快、外部接口(管脚)少。缺点是其需要的晶体管的数目多(位/面积更小),目前至少需要6个晶体管实现;

2) DRAM(动态RAM):动态是指DRAM就算不断电,数据在几毫秒内就可能丢失,所以其需要额外的机制维持数据。其存储位的部件是1个晶体管加1个栅极电容的结构,那么这里的数据显然就是存在电容中的,数据丢失是因为电容容易漏电。DRAM的优势其需要的原件少(位/面积更大),缺点是电容充放电速度慢、外部结构多(因为需要额外机制维持数据);

由于SRAM和DRAM各有利弊,在计算机中两者都被采用。其原因是包括成本在内的多方面权衡,也是为了能够让两者互相取长补短。现代计算机通常把DRAM用作内存条的内存芯片,把SRAM封装在CPU芯片内作为高速缓存。DRAM芯片又可以继续分类:

1) FPM(快页):FPM DRAM是最早期的一种DRAM,其结构基本等同于前面提到的基于行寻址和列寻址的内存芯片,只不过把其中的D触发器单位换成了基于栅极电容的结构;

2) EDO(扩展数据输出):EDO是代替FPM的方案,其改进在于允许在1个内存访问周期结束前就启动下1个内存访问周期,这种类似于流水线的技术使得EDO DRAM具有更大的内存带宽

3) SDR(SDRAM/同步DRAM):SDR是代替FPM的一种更加复杂的方案,其中“同步”指其与CPU时钟同步。SDR会操作进行管线(Pipeline)化,这使得SDR可以有更复杂的操作模式。管线可以让芯片处理完之前的指令前,接受一个新指令。在一个写入管线中,写入命令在另一个指令执行完之后可立刻执行。在一个读取流水线中,数据在读取指令发出后在固定的周期数到达,而在等待过程中可发出其它附加指令。这里的等待时间称为内存延迟(Latency),是选购SDR内存时的其中一个重要指标;

4) DDR(双倍数据速率):属于新型SDR方案,是目前最流行的方案(目前的是DDR4技术)。这种改进方案的核心思想是让SDR在时钟的上升沿和下降沿均能够输出,这使其速度提高1倍;

RAM类存储器并非唯一的内存种类,不过按照历史上的惯用称呼来看,较少把非RAM芯片的内存称为“内存”,这里不妨看几种“非RAM类的芯片”,其可用于存储:

1) ROM(只读存储器):虽然SRAM相比DRAM的数据更稳定,但所有RAM在断电后数据立即消失,故其仍然算是易失性存储器。而ROM则是种非易失性存储器。ROM的非易失性有物理保证,因为其是把数据通过面罩用光刻录在物理表面上。ROM出货量大时成本远低于RAM;

2) PROM(可编程ROM):相比ROM提供了1次现场可编程能力。PROM并非ROM在出厂时就有数据,其出厂后可以自行编程1次。PROM的作用是缩短生产周期、提供更多商业模式等。PROM的可编程性是基于熔丝的,编程方式是在特定管脚加电来熔断指定熔丝,所以其只能提供1次编程;

3) EPROM(可擦除PROM):相比PROM提供多次现场可编程现场可擦除能力。其数据仍算是非易失的,因为擦除时需将其暴露在强紫外下十几分钟。其编程通过在管脚加比使用时高很多的电压完成;

4) EEPROM:其对EPROM的功能进行了优化,擦除仅需通过特定的脉冲完成。EEPROM的缺点十分明显,因为其容量在比EPROM小几十倍的情况下还有更加昂贵的价格;

 

发表评论

您的电子邮箱地址不会被公开。 必填项已用 * 标注

滚动至顶部