CPU和主存存储之间的速度上是不匹配的,这种情况成为限制高速计算机设计的主要问题,为了提高CPU和主存之间的数据交换速率,可以在不同层次采用不同的技术加速存储器访问速度: 芯片技术:提高单个芯片的访问速度,可以选用更高速的半导体器件或改善存储芯片内部结构和对外接口方式,列如突发传输技术、同步DRAM技术和CDRAM技术等。 结构技术:为了解决存储器与CPU速度不一的问题,需要改进存储器与CPU之间的连接方式,加速CPU与存储器之间的有效传输。例如,采用并行技术和双口存储器,甚至是多口存储器以及多体交叉存储器,都可以让CPU在一个周期中访问多个存储字。 系统结构技术:这是从整个存储系统的角度,采用分层存储结构解决访问速度问题,例如,增加cache,采用虚拟存储器等。 并行存储器包括双端口存储器和多体交叉存储器,捡走了采用空间并行技术,后者采用时间并行技术。 一、双端口存储器 1、双端口存储器的逻辑结构 双端口存储器由于同一个存储器具有两个互相独立的读写控制电路而得名,由于进行并行的独立操作,因而是一种高速工作的存储器。 上图为双端口存储器IDT 7133的逻辑框图,嗯,就是一个存储容量为2k字长16位的SRAM,他提供了两个相互独立的端口及所端口和右端口,他们分别具有各自的地址线,数据线和控制线,因而可以对存储器上任何位置的数据进行独立的存取操作,图中,字符符号下标为L表示左端口,R表示右端口,LB表示低位字节,UB表示高位字节。
2、无冲突读写控制 当两个端口的地址不相同时,在两个端口上进行读写操作,一定不会发生冲突。当任意端口被选中驱动时,就可以对整个存储区进行存取,每一个端口都有自己的片选控制和输出驱动控制时,端口的非OE(低电平有效)打开输出驱动器,由存储矩阵读出的数据就出现在I/O线上。下表中列出了无冲突的读写条件,表中符号1代表高电平,0为低电平,x为任意,z为高阻态。
3、有冲突的读写控制 当两个端口同时存取存储器同一存储单元,而且至少有一个端口为写操作,便发生读写冲突。 当两端口均为开放状态且存取地址相同时发生写冲突,此时仲裁逻辑可以根据两个端口的地址匹配和片选使能信号有效的时间决定哪个端口进行存取,判别方法有以下两种。 ①如果地址匹配且在非CE之前有效,片上的控制逻辑在非CEL和非CER之间进行判断来选择端口(非CE判断)。 如果非CE在地址匹配之前变低片上的控制逻辑,在左右地址之间进行判断来选择端口(地址有效判断)。
二、多模块交叉存储器 1、存储器的模块化组织 一个由若干个模块组成的主存储器,是线性编制的,这些地址在各个模块中如何安排,有两种方式,一是顺序方式,一种是交叉方式。
顺序存储器连续读出m个字所需要的时间为 : t=mT(m为模块数,T为存储周期) 交叉存储器连续读出m个字所需要的时间为:t=T+(m-1)τ (τ为传送周期) 顺序编码:高(模块)+低(字) 物理上地址是连续的。 交叉编码:高(字)+低(模块) 物理上不连续,但逻辑上连续。