主存储器

以下为我个人归纳总结,有不当之处欢迎指正


基本概念

存储介质:能表示二进制1和0的物理器件

存储元:存储1位二进制代码信息的器件

存储单元:若干个存储元的集合,比如说用作存放一个字节

存储体:若干个存储单元的集合

地址:存储单元的编号

SRAM:静态随机存储器

DRAM:动态随机存储器

ROM:只读存储器


主存储器可以分为两类,一类是RAM,一类是ROM,RAM分为SRAM和DRAM,具体区别下面会说,ROM分为ROM、PROM(这个可以往里面编程,但只能做一次)、EPROM(这个比前面高级点,可擦除,需要用紫外线)、EEPROM(可电擦可编程只读存储器)、Flash Memory(U盘上用的比较常见,同样用电来擦除)


主存储器的技术指标:

1,存储容量

(1)字节数:1TB=2^10GB=2^20MB=2^30KB=2^40B

(2)若字长超过一字节,则用单元数×位数来表示

        举个例子:机器字长64位,其存储容量为128MB,若按字编址,则它的存储容量为16M字。这是因为,这台计算机一个字长为8个字节

2,存取时间

    存取时间是指启动一次存储器到完成该操作所经历的时间

3,存取周期

    指存储器完整的进行一次读写操作所需的全部时间,即连续两次访问存储器操作之间所需的最短时间

4,存储器带宽

    单位时间里存储器所存取的信息量,体现数据传输速率技术指标


存取时间和存储周期是不同的,存储周期要大于存取时间,这是因为存储周期中不仅包含存取时间,还包括回复内部状态的时间,比如说破坏性读出的存储器,信息存取后还要有复原工作


RAM存储器的扩展

1,位扩展

比方说,使用1k×4的存储器芯片组成1k×8的存储器,需要8/4=2片

2,字扩展

比方说,使用1k×8的存储器芯片组成16k×8的存储器,需要16k/1k=16片

3字位同时扩展

1k×4的存储器芯片组成16k×8的存储器,需要16k/1k × 8/4 =32片


[例]模块化存储器设计。已知某8位机的主存采用半导体存储器,地址码为18位,若使用4k×4RAM芯片组成该机所允许的最大主存空间,并选用模块条的形式,则(1)若每个模块条为32k×8位,共需几个模块条?(2)每个模块内共有多少片RAM芯片(3)主存共需要多少RAM芯片?CPU如何选择各模块条

[答](1) 八位机地址码为18位,则我们要设计的存储器总容量为2^18B即256K×8,而模块条为32k×8,所以使用字扩展,需要256k/32k=8片

     (2) 4k×4位组成32k×8位,字位同时扩展,需要32k/4k × 8/4 =16片

     (3) 由(1)(2)得,共需8×16=128片,可以将18位地址线最高的3位,通过38译码器来选择模块条



动态随机存储器的刷新

因为电容的绝缘电阻不是无穷大的,所以电荷会泄露掉,而这会导致无法获取信息,所以需要刷新

刷新通常是一行一行进行的,每一行的记忆单元同时被刷新

刷新时不需要加片选信号,整个存储器的所有芯片同时被刷新

刷新有三种方式:

(1)集中式:就是在一个刷新间隔(如果超过这个间隔,电容的漏失会造成影响)内,前一段时间进行读写,后面单独开辟一段时间进行集中刷新,刷新的时候不能进行读写,因此也被称为死时间

(2)分散式:一个读写周期后面跟着刷新一行,假如一个存储器由64行,那么第65个读写周期后,会从第一行开始刷新,也就是64个系统周期可以将存储器刷一遍,没有死时间,但刷新太频繁了,影响速度

(3)异步式:同样假如存储器有64行,那么把刷新间隔除以64,分成的这64小段时间,前一大部分进行正常读写操作,后一部分对某行刷新,这样每一行相邻的两次刷新间隔恰好不超过刷新最大间隔,相当于将上两种方式结合起来。

[例]有一个16K×16的存储器,用1K×4位的DRAM芯片(内部结构为64×16)构成,设读写周期为0.1us 

(1)如果采用异步刷新,单元刷新间隔不超过2ms,刷新信号周期是多少?

(2)如果采用集中刷新方式,存储器刷新一遍最少用多少读写周期,死时间率是多少?

[答](1)也就是2ms内把64行都刷一遍,2ms/64就可以了,然后向下取整

      (2)由题可知,1k×4位的芯片内部矩阵为64×16,因此需要64个读写周期;在一个单元刷新间隔里,有2000个读写周期,其中,64个用在了刷新上,所以死时间率为0.32%



多体交叉存储器

交叉存取是指各个模块的存储单元交叉编址且存取时间均匀分布在一个存取周期内。

有两种实现方式,一种是所有模块同时启动一次存储周期,也就是同时读出,这需要成倍的总线宽度;另一种是m个模块轮流启动,启动两个相邻模块的最小时间间隔等于单模块访问周期/模块数,这样做的好处是,当所有模块读取数据后,在从第一个读取,此时已经过了一个读取周期,可以继续读取,而且不必增加总线宽度

[例]设存储器容量为4M字,字长32位,模块数m=4,分别用顺序方式和交叉方式进行组织,存储周期200ns,数据总线宽度32位,总线传送周期位50ns,求顺序存储器和交叉存储器的平均存取时间、带宽各是多少

[答]顺序存储器存储一个字长为200ns,则存储128位的存取时间为800ns,平均时间为200ns

                        带宽为32bits/200ns=16Mb/s

     交叉存储器,4个模块依次存取,故所花时间为:200+50*3=350ns,平均时间为87.5ns

                        带宽为32bits/87.5ns=37.5Mb/s


    


你可能感兴趣的:(计算机组成原理)