“存贮”这个名词大家都很熟悉。在图书馆里,分门别类地存贮着无数的文献资料;在人民银行里,各种储蓄单记载(存贮)着所有的存款性质和数量;在车站,专设有“小件行李寄存处”,为旅客暂时存取物件提供方便……。“存贮”处处遇到,例不胜举;“存贮”方式多样,含义深广——不仅限于上述直观的“存”、“取”,更重要的还包含有对往事的“记忆”。例如:用笔把文字或数字写在纸上记录下来这也是“存贮”;一本字典“存贮”了成千上万个单字;一张唱片“存贮”了乐曲的全部音符和音节……。各种各样用于存贮的工具或设备,都可以称之为“存贮器”。
在电子技术中,也同样需要“存贮”。因为要使运算控制的结果正确无误,首先就需要处理各种数据,进行对比、推理、判断,并按照人们预先规定的程序来操纵机器进行工作。这就象人的大脑从事思维一样,就是把大脑中“存贮”的各种有关联的事物都“取”出来,进行逻辑判断,以得到最佳方案。
独有的存贮方式
大家知道,电子计算和控制技术是离不开逻辑电路的,也就是控制和运算都是以“0”和“1”两个对立的或迥然相异的物态为基础来进行的,因此原则上凡是能区分开“1”和“0”两个状态的器件都能用来存贮逻辑信息。例如:继电器、电子管、电阻电容器、磁性材料、晶体管、半导体集成电路等等。
利用磁芯、磁带和磁棒的不同剩磁方向;纸带、纸片的有孔或无孔……做成了今天电子计算机中大量被采用的磁芯(图1)、磁带(图2)、磁鼓(图3)、穿孔纸带、卡片(图4)……等存贮器。近年来利用激光、半导体器件等又做成了各种各样新型的存贮器。




虽然形式有多种多样,但所有这些存贮器的基本存贮内容都只能是“有”或“无”,或者说:“1”和“0”。
问题在于速度和容量
计算机每秒钟要进行几十万次或几百万次的运算,存贮器的存取速度显然也要能“跟得上”。为使机器更有“本领”,它还需要能“记住”更多的信息,也就是说存贮容量要大。所以是既要高速度,又要大容量,而且还要体积小、耗电省、寿命长等。这样,在存贮器的队伍中象电子管、继电器等就逐渐被淘汰了。而且随着计算技术的飞速发展,一种存贮器对上述种种要求也难以求全兼顾,所以只能按照不同的用途使用不同的存贮器。
举个例来说:我们为进行某项工作,需要先去资料室寻找文献、资料、计算公式等,然后用笔和纸边读边算,计算过程中有些数据要暂时寄存起来又可求助于算盘,最后还得设法把计算和论证的结果保存下来。执行“资料室”这样任务的存贮器,存取速度可以允许慢一点,但容量要尽可能地大,这就要用所谓“海量存贮器”即“外存贮器”也叫“辅助存贮器”;边读边写边算的速度要求尽量的快,这样的一些计算和记录的工具,就被称为机器的“主存贮器”又称“操作存贮器”;如果有些数据要暂时寄存,这就要用到高速“缓冲存贮器”、“暂存器”,或者叫“便笺存贮器”、“寄存器”等等,显然它们的容量不要太大,但应力求有最高的速度(图5)。所以,象磁芯存贮器,存取周期约0.5微秒,容量可达数十万个存贮单元,因而通常被用作主存贮器;磁鼓、磁盘的容量更大,但速度稍慢,适用于外存贮器;半导体存贮器的速度高、体积小、但容量较小,因而适用于高速缓冲存贮器,其中以双极型TTL或ECL结构为多,它们的存取周期仅10~100毫微秒。近年来MOS集成电路有了飞速的发展,MOS型存贮器的容量已经达到可用作计算机的主存贮器。

基本结构
存贮器虽有多种多样,但从基本结构来看,可以分为两大类:一类是好象字典、手册一样,它们的内容一旦印制完毕便不能更改;另一类好象纸张、算盘一样,它们的内容随时可以写上去,也可以擦去重写。因而前者是只能读不能写,而后者是可读可写。这样前者就被称为“固定存贮器”或“只读存贮器”,常用“ROM”来表示;后者则被称为“读写存贮器”或“活动存贮器”、“随机存贮器”,并用“RAM”来表示。
存贮器的主体部分是存放数据、指令等具体内容的“存贮体”或“存贮单元矩阵”。它好比是一个大宿舍,其中每个房间按一定顺序编上号码,到宿舍找人要先知道房间号码,而机器找数据或存放数据则按“地址”号码来办理,所以需要一个选择地址的部件称“地址译码”器。地址号码编定后就不变了,而被存放的数据、指令则是可以变更的,就好比房间号不变,住的人可以随时变更似的。此外,对于只读存贮器,它还需要一个“读出放大”部分(图6);对于读写存贮器,除“读写放大”外还需增添“读写控制”部分(图7)。两图中A\(_{0}\)1……为“地址”输入, Q\(_{0}\)、Q1……为数据输出, D为数据输入,R/W为读/写控制输入。


在程序控制设备中
存贮器主要用于电子计算机,但对于搞技术革新的无线电爱好者来说,也许更感兴趣的还是把存贮器用于简单的程序控制设备中。图8示出三种办法:速度要求不高的程序控制设备,如用于电镀、纺织和线切割机床等方面的,可将“存贮”在穿孔纸带或卡片上的信息经直接译码后去驱动执行部件(图8a);对需要多次重复加工或控制的场合,可将纸带信息预先慢速存入RAM中,然后在机器执行控制时再由RAM取出(图8b),图中计数器是用来向存贮器发出选择地址的信息以保证取出的数据按顺序进行;有时执行重复控制的次数非常多,例如加工某些标准工件,没有必要去经常改变纸带的孔码,也即存贮内容可以固定不变,就可用ROM来完成(图8c)。

半导体存贮器
随着大规模、超大规模集成电路的出现,半导体存贮器发展很快。一个最基本的半导体存贮器,从可以记忆信息“1”或“0”来说,就相当于一个双稳态(RS)触发器的功能(图9)。从S-端和R-端送入信号就是“写入”;从Q端取出信号就是“读出”。S=0,Q=1即表示写入“1”;R-=0, Q=0即表示写入“0”。一旦写入完毕(S-=1,R-=1)触发器状态维持不变,即“记住”了写入的信息。很明显,一个RS触发器只能存贮二进制的一位数,所以只相当于是一个基本存贮单元。图10a是双极型半导体存贮器的一个基本存贮单元,图10b是MOS型半导体存贮器的一个基本存贮单元。实际使用中要求存贮器的容量很大,例如一台字长为16位(所谓“字”实际上就是一串代码),存贮容量为4K(常以符号k=1024为单位来计量存贮容量)的小型计算机,就需要16×4k约六万多个触发器才能组成一个存贮体。所以只有用中、大规模和超大规模集成电路才能使利用触发器来组成存贮器成为现实。


只读存贮器只要求能读出就行,所以结构较为简单。例如我们可以在纵横交叉的导线上按需要做上固定的二极管或三极管,然后再配上地址译码和读出电路(图11)。图11是一个可以存放四个四位数的实用电路(图6就是它的方框图)。其中D\(_{1}\)~D8所组成的网络就是存贮器的矩阵;二位数A\(_{0}\)1决定了地址所在,即它们的状态指明了输出是由那一横条(地址)上的二极管所决定,例如A\(_{0}\)=1=1则表明唯有横条X\(_{1}\)0=1,其余X00、X\(_{0}\)1、X11均为0,因此二极管中只有D\(_{5}\)、D6正向导通。这样从纵条就得到Y\(_{0}\)=0、Y1=1、Y\(_{2}\)=0、Y3=1,对应于Y的晶体管便只有Q\(_{1}\)和Q3通导,其余则截止,从而由Q\(_{0}\)~Q3得到输出为“1010”。在这里简单的晶体管倒相器便构成了读出电路。

显然,这个简单的半导体ROM可以控制4个对象——它们的代码是0011、1001、1010、0101。改变矩阵内二极管的位置,即可得到不同的操作程序(或者说:控制别的代码对象);增加矩阵容量(存贮器容量)即可增加控制条件和被控制的对象数目。
锦绣前程
随着技术的发展,半导体存贮器也在不断地改进以适应新的需要。由于不同的使用对象对存贮内容有不同要求,人们又寻找办法,使矩阵内容可按使用者需要由自己来编制。例如可用大电流熔断或熔通节点上的三极管或二极管矩阵的PROM(“程序可编只读存贮器”有时也称为“可写入固定存贮器”);有用紫外光照射后再通电可改变存贮内容的EROM(“电可改编的只读存贮器”)。再加存贮器的使用方法上也有着各种各样巧妙的办法,出现了所谓“虚拟存贮器”、“联相存贮器”等等。
目前存贮器更以惊人的速度向集成度更大、速度更快、价格更便宜的方向前进。不久,它将以各种形式深入到家庭服务、科学研究、生产管理等各个领域中来。(路民峰)