1、主存储器的并行读写技术,半导体存储器的设计步骤,选择存储器芯片选择存储器芯片的原则是:一般根据存取速度、存储容量、电源电压、成本等因素综合考虑,以便选择指标相当的存储器芯片。 位向(字长)芯片数量的确定如果所选芯片的位数不够,即不能满足系统的字长要求,则可按字长位数计算出所需要的芯片数。即芯片数=总字长/每片的字长,若要求总字长为16位,Intel 2114芯片的容量为1024字4位/字,则16/4=4片即需要用4片芯片来组成一个“单元存储体”。这时,可将4片芯片的地址线A9A0、片选端CS、读/写控制端WE对应地并联起来,并将各芯片的数据线(2114每片4条)连向相应的数据总线,从第一片至第
2、四片的I/O线依次连向D0D3、D4D7、D8D11、D12D15。,字向(容量)芯片数目的确定如果所选存储器芯片的容量不够,应增加容量,则可按容量要求计算出字向所需的芯片数。即总片数=总容量/每片的容量若现要求容量为8K16位,对2114芯片来说,总片数为 (8K16位)/(1K4位/片)=84=32片,这时,可将各“单元存储体”内各片的片内地址对应端相并联,并连向对应的地址总线低位上,把各“单元存储体”中各芯片的读/写控制线WE相并联,并接向CPU的读/写控制端,将各“单元存储体”内各芯片的片选端CS并联后,再连到相应的译码器输出端,以便实现片选寻址。,对CPU总线负载能力的考虑目前使用的
3、半导体存储器多数是MOS电路,直流负载小,其主要负载为电容负载,因此,在小型机系统中,存储器可以与CPU直接相连。而在较大的系统中,就应当考虑CPU是否有足够的驱动能力,当需要时,必须选用驱动能力相当的的缓冲器。, CPU的时序和存储器存取速度的配合通常情况下,CPU在“取指令”和“读/写操作”时,其时序是固定的。常常以它们为基准来确定对存储器存取速度的要求。或在存储器存取速度已经确定的情况下,必须对CPU的周期安排进行调整,例如增设等待周期以实现CPU与存储器之间的时序配合。 有关存储器的地址分配和选片问题主存储器通常分为RAM和ROM两大部分,RAM又要分成系统区和用户区,因此,主存储器的
4、地址分配是个十分重要的问题。这将涉及有关地址越界和存储保护等有关技术。,CPU要实现对存储单元的访问,首先要选择存储芯片,即进行片选;然后再从选中的芯片中依地址码选择出相应的存储单元,以进行数据的存取,这称为字选。片内的字选是由CPU送出的N条低位地址线完成的,地址线直接接到所有存储芯片的地址输入端(N由片内存储容量2N 决定),而片选信号则是通过高位地址得到的。实现片选的方法可分为三种:即线选法、全译码法和部分译码法。,线选就是用低位地址进行每片内的存储单元寻址,用高位地址线作为各片的片选信号线。线选法地址不连续,仅适合于由1-2片芯片组成的小容量存储器。 部分译码法即用片内寻址外的高位地址
5、的一部分来译码产生片选信号,会出现地址重叠。 全译码法将片内寻址外的全部高位地址线作为地址译码器的输入,其地址是连续的并且是唯一的。,控制信号线的连接除了片内地址线、片选信号线、读/写控制线和数据线等连接之外,还要考虑附加控制存储器等的连线,以便实现CPU对存储器的正确控制。,由于CPU和主存储器在速度上不匹配,而且在一个CPU周期中可能需要用几个存储器字,这便限制了高速计算,为了使CPU不至因为等待存储器读写操作的完成而无事可做,可以采取一些加速CPU和存储器之间有效传输的特殊措施。,加快CPU和主存之间有效传输措施,采用更高速的主存或加长存储器字长,采用交叉存储器,采用cache,六、主存
6、储器的并行读写技术,(1)单体多字结构,单体:只有一套地址寄存器和一套地址译码器 多字是指每个主存地址单元中的存储字的长度加宽了。,优点: 一次读出数据宽度增大 缺点: 每次读出的几个主存字必须首先保存在一个位数足够长的寄存器中,等待分几次通过数据总线被取走 冲突可能性增大(采用多体交叉存储器),(2)多体交叉访问存储器,多体交叉访问存储器是由几个容量相等、字长为一个主存字长的存储模块(也称为存储体)组成的。各模块有自己的地址寄存器、译码器和数据寄存器,所以各模块可以独立地进行读写操作。 合理地对这多个存储体进行组织,涉及两个问题 如何对这些存储体执行读写 如何分配这些存储体各自工作的地址范围
7、,如何对这些存储体执行读写,一是在同一个读写周期同时启动所有体的读或写操作,与一体多字方案类似; 二是使这些存储体顺序地轮流启动各自的读写周期,能达到的最高读写速度,是在一个存储体的读写周期内,能启动每一个存储体的读写操作,即启动相邻两个存储体的最小时间间隔,要小于或等于一个读写周期除以存储体的个数。 依次读出来的每一个存储字,可以直接通过数据总线依次传送走,而不必设置专门的数据缓冲寄存器。,如何分配这些存储体各自工作的地址范围,交叉编址,即把连续地址的几个主存字依次分配在不同的存储体中,因为程序运行的局部性特性已经表明,程序运行过程中,在短时间内读写地址相邻的主存字的概率更大。,地址寄存器送到主存储器的地址的低几位(例如对4个存储体的情形为低2位),用于区分读写哪个存储体,其余高位部分送到每个存储体,用于区分读写每个存储体的哪一个存储字。,