主存储器
主存储器是整个存储系统的核心, 它用来存放计算机运行期间所需要的程序和数据。
主存储器的基本结构
主存通常由存储体、地址译码(address decoding)驱动电路、I/O和读写电路组成。 组成框图如图5.2-1所示。

图5.2-1 主存组成框图
主存储器的核心是存储体。程序和数据都放在存储体中。
存储体是由若干存储单元组成的, 存储单元的编号称为地址, 地址和存储单元之间有一对一的对应关系。
位是二进制数的最基本单位, 也是存储器存储信息的最小单位。 一个二进制数由若干位组成, 当这个二进制作为一个整体存入或取出时, 这个数称为存储字。
存放存储字或存储字节的主存空间称为存储单元或主存单元,大量存储单元的集合构成一个存储体。
为了区别存储体中各个存储单元, 必须将它们逐一编号。 存储单元的编号称为存储单元的地址。
存储单元的地址和存储单元之间有一对一的对应关系。
一个存储单元可能存放一个字,也可能存放一个字节,这是由计算机的结构确定的,对于字节编址的计算机,最小寻址单元是一个字节,相邻的存储单元地址指向相邻的存储字节;对于字编制的计算机,最小寻址单位是一个字,相邻的存储单元地址指向相邻的存储字,所以存储单元是CPU对主存可访问操作的最小存储单位。
地址译码驱动电路:包含译码器和驱动器两部分。译码器将地址总线输入的地址码转换成与之对应的译码输出线上的有效电平,以表示选中了某一存储单元,然后由驱动器提供驱动电路去驱动相应的短些电路,完成对被选中存储单元的读写操作。
I/O和读写电路:包括放大器、写入电路和读写控制电路,用以完成被选中的存储单元中各位的读出和写入操作。
动态随机存储器DRAM
四管动态存储元
在六管静态存储元电路中,信息暂存于T1,T2管的栅极,这是因为管子总是存在着一定的电容。负载管T3,T4是为了给这些存储电荷补充电荷用的。由于MOS的栅极电阻很高,故泄漏电流很小,在一定的时间内这些信息电荷可以维持住。为了减少管子以提高集成度,把负载管T3,T4去掉,这样变成了四管的动态存储电路。
图5.2-8 4管DRAM记忆单元电路
单管动态存储元
它由一个管子T1和一个电容C构成,写入时,字选择线为“1”,T1管导通,定入信息由位线(数据线)存入电荷C上的电荷,通过T1输出到数据线上,通过读出放大器即可得到存储信息。

图5.2-9 单管DRAM记忆单元电路
当字线为高电平时,该电路被选中。
写入时,若写入“1”,位线为高电平,对电容C充电;若写入“0”,位线为低电平,C上的电荷经位线泄放。
读出时,若原存“1”,C上有电荷,经T1管在位线上产生读电流,完成读“1”操作。若原存“0”,C上无电荷,在位线上不产生读电流,完成读“0”操作。当读操作完毕,存储电容C上的电荷已被泄放完,故是破坏性读出,必须采取重写(再生)的措施。
存储电容C的容量不可能做得很大,一般比位线上的寄生电容Cd 间分配,就会使读出信息减少,所以,用单管记忆单元组成的存储器中,读出放大器应有较高的灵敏度。因为信息是存储在一个很小电容C上,也只能保留几毫秒的时间,所以必须定时第进行刷新操作。
刷新

动态RAM的存储元件依靠电容上的电荷表示所存储的数据信息,而电容的绝缘电阻不可能无限大,因此漏电不可避免。每隔一定的时间就对存储体中全部的存储电进行充电,以补充所消失的电荷,维持原存信息不变,这个过程称为“刷新”。
刷新的时间间隔取决与存储电容上的电荷释放速度。应在规定的时间内对全部存储体刷新一遍。
设电容为C,电压为u,电荷Q=Cu,则泄放电流为:

如果取C=0.2pF, △u=1V,I=0.1nA,则: 泄放时间△t=2ms

刷新方式:
(1)集中式刷新
在整个的2MS的时间内集中对每一行进行刷新,刷新时读/写操作停止,每行的刷新一般与一次 的读/写周期相等。
刷新时间=存储矩阵行数╳刷新周期
刷新周期是刷新一行所需要的时间。由于刷新过程就是“假读”的过程,所以刷新周期等于存 取周期。
对128*128矩阵存储器进行刷新时,刷新的时间相当于128个读周期,假如读写周期为0.5us,刷新 周期为2ms,那么共有2ms/0.5us=4000个周期.其中4000-128=3872个周期用来读写或维持,然后用 128个周期,相当于128*0.5=64us用来刷新操作.由于在这64us中不进行读写操作,故称其为死时间.

图5.2-10 集中式方式示意图
(2)分散式刷新
是把每行存储元件的刷新分散安排在各个读写周期内即把读写周期分为两段,前段表示读写,后段 表示刷新时间.
这种刷新方式增加了系统的存取周期。
这种刷新方式没有死区,明显的缺点:一是加长了系统的存取周期 ,降低了整机的速度;二是 刷新过于频繁,尤其是在当存储容量比较小的情况下, 没有充分利用所允许的最大刷新间隔(2ms)
例如:对32*32的存储器,假如存储器的读写周期为0.5us,那么刷新的时间也为0.5us,则整个存储系 统周期为1us.只需32us就能对全部的存储单元刷新一遍.

图5.2-11 分散式方式示意图
(3)异步式刷新
这种刷新方式可以看成前两种方式的结合,它充分利用了最大刷新间隔时间,把刷新操作平均分配到整个最大刷新间隔时间内进行。
相邻两行的刷新时间=最大刷新间隔时间÷行数
对于32╳32矩阵,在2ms内需要将32行刷新一遍,所以相邻两行的刷新时间间隔 =2ms÷32=62.5μs,即每隔62.5μs安排一个刷新周期。在刷新是封锁读写。

图5.2-12 异步式方式示意图
只读存储器
即使电源断电,ROM中存储的信息也不会丢失。
ROM的类型
ROM工作是只能读出,不能写入。 把向ROM写入的过程称为对ROM进行编程,根据编程方法的不同,通常可分为以下几类:
(1)掩膜式ROM(MROM)
它的内容是由半导体制造厂按用户提出的要求在芯片的生产过程中直接写入的。写入之后任何都无法改变。
(2)一次可编程ROM(PROM)
PROM允许用户利用专门的设备(编程器)写入自己的程序,一旦写入,其内容将无法改变。
(3)可擦除可编程ROM(EPROM)
EPROM不仅可以由用户利用编程器写入信息,而且可以对其内容进行多次修改。
EPROM又可分为两种:紫外线擦除(UVEPROM)和电擦除(EEPROM).
(4)闪速存储器
闪速存储器(Flash Memory,简称闪存)是一种允许在操作中被多次擦除或重写的只读存储器,它的主要特点是既可在不加电的情况长期保存信息,又能在线进行快速擦除与重写。兼备了EEPROM和RAM的有点。
主存储器和CPU的连接
位扩展法:
说明:当芯片的容量和主存容量相同,而位数不足时,就要对位数进行扩展。
方法:将多片存储芯片的地址端、片选端和读/写控制端各自并联在一起,而他们的数据端分别引出,连到存储器不同位的数据总线上。
例1:用Intel2114芯片,组成1024*8的存储器。
解:2114的规格为1024*4,所以需要两片

图4.2-13 位扩展存储器和CPU的连接
字扩展法:
说明:当芯片字长与主存相同,而容量不足时,就需要用几片存储器芯片组成合起来对存储空间即地址空间进行扩展,称为字扩展。
方法:将各芯片的地址线,数据线、读/写线分别并联在一起,片选信号单独连接,用来区分各片地址,用高位地址经过译码而产生的输出信号作为各个芯片的片选信号,用低位地址作为各芯片的片内地址。
例2:用Intel2114芯片,组成4096*4的存储器
解:系统地址线:12条,数据线4条
芯片地址线:10条,数据线4条

图4.2-14 字扩展存储器和CPU的连接
字位同时扩展
一个存储器的容量假定为M×N位,若使用l×k位的芯片(l<M,k<N)需要在字向和位向同时进行扩展。此时共需要(M/l)×(N/k)个存储器芯片。
其中,M/l表示把M×N的空间分成(M/l)个部分(称为页或区),每页(N/k)个芯片。
地址分配:
①用log2 l位表示低位地址:用来选择访问页内的l个字
②用log2(M/l)位表示高位地址:用来经片选译码器产生片选信号。
例3:用Intel 2114芯片1K*4构成4K*8的存储系统。

图4.2-14 字位扩展存储器和CPU的连接
3.CPU的地址总线16根,双向数据总线8根,控制总线中与主存有关的信号MERQ,R/W。主存地址空间分配如下:0—8191为系统程序区,由只读存储芯片组成,8192—32767为用户程序区,最后2K地址空间为系统工作区。
现有芯片:
EPROM 8K*8
SRAM 16K*1,2K*8,4K*8,8K*8

图4.2-15
根据条件选用
ROM:8k*8位,1片
RAM:8K*8,3片,2K*8 1片

关键词
地址:address
虚拟内存:virtual memory
虚拟内存地址空间:virtual address space
程序对象:program object