具有多端口超高速缓存阵列的集 成电路存储器设备及其操作方法 【发明领域】
本发明涉及集成电路存储器设备及其操作方法,尤其是涉及缓冲存储器设备以及操作缓冲存储器设备的方法。
发明背景技术
通常能够在存储器功能、数据存取模式以及数据存储机制特性的基础上对半导体存储器设备进行分类。例如,通常在只读存储器(ROM)设备和读写存储器(RWM)设备之间进行区别。RWM设备通常在提供具有可比地数据存取时间的读和写功能方面占有优势。通常,在RWM设备中,数据存储被存储在用于“静态”存储器设备的触发器中,或者是被存储为“动态”存储器设备中的一个电容上的电荷预定电平。如本领域技术人员理解得那样,只要保持电源供应静态存储器设备就保持它们的数据,而动态存储器设备却要求周期的数据刷新以补偿潜在的电荷泄漏。由于RWM设备使用有源电路储存数据,它们属于一类被称为“易失性”存储器设备的存储器设备,这是由于一旦终止了电源供应,存储在其中的数据将会丢失。在另一方面,ROM设备可以将数据编码到电路拓扑结构里(例如,通过烧断熔丝、除去二极管等等)。由于这个后一类型的数据存储器可以是硬布线的,所以数据不能被修改,而是只能读取。ROM设备通常也属于一类被称为“非易失性”存储器设备的存储器设备,这是由于即使终止了电源供应,存储在其中的数据通常也不会丢失。近年来已经进一步发展的其它类型存储器设备通常被认为是非易失性的读写(NVRWM)存储器设备。例如,这些类型的存储器设备包含EPROM(可擦可编程只读存储器)、E2PROM(电可擦可编程只读存储器)、以及闪速存储器。
一个额外的存储器分类通常是以能够存取数据的次序为基础。在这里,大部分存储器设备属于随机存取类别,这意味着存储单元能够以随机次序读取或写入。尽管大部分存储器设备提供了随机存取,但是通常只有随机存取的RWM存储器使用RAM简称。做为选择,存储器设备可以限制数据存取的次序以获得更短的数据存取时间、减少布局面积和/或提供专门的功能。这种专门存储器设备的例子包括缓冲存储器设备诸如先进先出(FIFO)存储器设备、后进先出(LIFO或“堆栈”)存储器设备、移位寄存器以及按内容寻址存储器(CAM)设备等。
半导体存储器的最后一个分类是基于与其中存储单元有关的数据输入和数据输出端口的数目。例如,尽管大部分存储器设备具有仅仅提供单个端口的单元,其中该单个端口被共享以提供一条用于传送数据的输入和输出路径,但是带有较高带宽要求的存储器设备经常具有其中带有多个输入和输出端口的单元。然而,存储单元的附加端口通常增加了用于这些较高带宽存储器设备的复杂性和布局面积要求。
通常,如果快速数据存取时间是一个必要条件的话,则单端口存储器设备一般使用静态RAM构成,如果低成本是一个主要必要条件的话,则使用动态RAM构成。许多先进先出(FIFO)存储器设备使用带有自我递增的内部读和写指针、基于双端口RAM的设计以获得快速通过性能。如本领域技术人员理解得那样,快速通过性能通常被测量为自上一个空FIFO周期写入的结束到下一个数据读取操作开始时所经过的时间。示范的FIFO存储器设备在由A.K.Shamia所著、IEEE出版社(1997)出版、名为“SemiconductorMemories:Technology.Testing and Reliability”的教科书的2.2.7部分中进行了更为完全地描述和说明。
尤其是,由于写入到一个双端口SRAM FIFO里的数据能够被立即存取用于读取,所以基于双端口SRAM的FIFO通常利用独立的读和写指针以有利地允许读和写操作相互独立地出现、并实现快速快速通过性能。由于这些读和写操作可以独立地出现,所以可以提供具有不同频率的独立读和写时钟用来使FIFO能够起到操作在不同速率下的外围设备之间的缓存作用。不幸地,典型的基于双端口SRAM的FIFO的主要缺点是用于其中每个双端口SRAM单元的单元尺寸相对较大。因此,对一个给定的半导体芯片尺寸来说,双端口缓冲存储器设备相对于单端口缓冲存储器设备来说通常提供较少的存储器容量。例如,通过使用一个标准DRAM单元作为一个使用一个(1)单位面积的参考单元,单端口SRAM单元通常可能使用四个(4)单位面积,且一个双端口SRAM单元通常可能使用十六个(16)单位面积。此外,双端口SRAM FIFO的相对大的单元限制了写操作数目能够大于读操作数目的程度,即限制了FIFO的容量。
为了解决双端口缓冲存储器设备的这些局限,其中已经开发了单端口缓冲存储器设备以实现用于一个给定半导体芯片尺寸的较高数据容量。例如,Ko等人的题为“Interleaving Architecture And Method For A High DensityFIFO”、授予当前受让人的美国专利5,546,347中,公开了一种具有大容量并使用相对小的单端口存储单元的存储器设备。然而,仅使用单端口存储单元一般排除了同时对同一存储单元中的数据的读和写存取,这意味着单端口缓冲存储器设备与双端口存储器设备相比通常具有较慢的通过时间。此外,单端口缓冲存储器设备可使用复杂的判优硬件以控制读和写操作的定序和排队。
此外,授予Kobayashi的美国专利5,371,708公开了一种包含一个单端口存储器阵列、一个用于保持从该存储器阵列读取的数据的读数据寄存器、以及一个保持写入到该存储器阵列的数据的写数据寄存器在内的FIFO存储器设备。还提供了一个旁路开关用于从写数据寄存器向读数据寄存器传送数据,以便使该存储器阵列能够在测试FIFO期间被绕过以检测其中存在的故障。然而,如同上述的单端口缓冲存储器设备那样,同时对数据进行的读和写存取是不可行的。
普通授权的美国专利5,978,307、5.982,700和5.998,478公开了具有快速快速通过性能的存储缓冲器。这些存储缓冲器包含一个适中容量的三端口存储器阵列和一个实质上较大容量的辅助存储器阵列(如DRAM阵列),其中该三端口存储器阵列具有非线性列的三端口单元,它们合起来形成四个独立寄存器,且辅助存储器阵列具有减少的单元尺寸的单元。该三端口存储器阵列具有一个读端口、一个写端口和一个双向输入/输出端口。三端口存储器阵列经由该双向输入/输出端口和辅助存储器阵列进行内部通信,并经由读和写数据端口和外部设备(例如外围设备)进行通信。还由一个双向交叉开关提供了有效的控制电路,该开关在写到存储器的时间间隔内、以及反过来在从存储器读取的时间间隔内,将双向输入/输出端口的终端(线路IO和IOB)并联电连接到辅助存储器阵列中的位线(BL和BLB)。
尽管具有以上描述的缓冲存储器,但是还存在对开发具有扩展的功能、增加的数据容量以及减少的单元尺寸的高速缓冲存储器设备的需要。
发明概述
依据本发明一个实施例的一种集成电路存储器设备包含一个四端口的超高速缓存设备和一个嵌入在其中的存储器设备。这些设备一起操作作为例如具有快速快速通过性能和扩展数据容量的高速缓冲存储器设备。这些设备同样不要求复杂的判优电路以监视读和写操作。
该四端口的超高速缓存设备可以包含一个数据输入寄存器,该寄存器有一个输入端与该超高速缓存设备的第一端口电连接,以及一个输出端与该超高速缓存设备的第二端口电连接。还提供了一个多路复用器。这个多路复用器对至少一个选择信号做出响应,且具有第一输入端与该数据输入寄存器的输出电连接,第二输入端与该超高速缓存设备的第三端口电连接。该四端口超高速缓存设备最好还包含一个输出寄存器,其一个输入端与该多路复用器的输出电连接,且一个输出端与该超高速缓存设备的第四端口电连接。通过在该四端口高速缓存内包含一个重发寄存器还可以提供重发功能。这个重发寄存器最好有一个输入端与第一端口电连接,且有一个输出端电连接到该多路复用器的第三输入端。该至少一个选择信号例如可以包含三个(3)选择信号。这些选择信号可以是一个重发路径选择信号、一个存储器路径选择信号和一个直接路径选择信号。此外,数据输入寄存器、输出寄存器和重发寄存器最好是分别对写地址、读地址和重发地址做出响应。嵌入式存储器设备例如可以包含一个SRAM存储器阵列,且该阵列可以有一个写端口电连接到该超高速缓存设备的第二端口,一个读端口电连接到该超高速缓存设备的第三端口。
本发明的另一个实施例包含三端口或其它多端口的超高速缓存设备。这种设备可以包含一个数据输入寄存器,其具有一个输入端电连接到该超高速缓存设备的第一端口,以及一个多路复用器响应直接路径选择信号和存储器路径选择信号。该多路复用器还可以有一个第一输入端电连接到该数据输入寄存器的一个输出端,一个第二输入端电连接到该超高速缓存设备的第二端口。还提供了一个输出寄存器。这个输出寄存器有一个输入端电连接到该多路复用器的一个输出端,一个输出端电连接到该超高速缓存设备的第三端口。这里,该超高速缓存设备的第二端口可以是一个双向端口,且该多路复用器的第一输入端可以通过一个传递门设备(例如CMOS传输门)电连接到该双向端口。该传递门设备可以响应一个读/写控制信号。一个嵌入式DRAM存储器阵列也可以电连接到该双向端口。
本发明还有另外一个实施例包含一个多端口存储器设备位单元。这个位单元可以包含一个输入寄存器和一个第一重发寄存器,其具有一个输入端电连接到该输入寄存器的一个输入端。 这个第一重发寄存器可以包含一个来自零寄存器的重发。还可以提供一个多路复用器。这个多路复用器可以有一个第一输入端电连接到该输入寄存器的一个输出端,和一个第二输入端电连接到第一重发寄存器的一个输出端。此外还可以与第二重发寄存器一起提供一个输出寄存器。特别地,该输出寄存器可以有一个输入端电连接到该多路复用器的一个输出端,且第二重发寄存器可以有一个输入端电连接到该输出寄存器的一个输出端,以及一个输出端电连接到该多路复用器的第三输入端。第二重发寄存器可以构成从标记(RTM)寄存器的一个重发。该多路复用器还可以响应来自零路径选择信号、直接路径选择信号的一个重发和来自标记路径选择信号的一个重发。
本发明另外的实施例包含操作一个其中具有一个嵌入式存储器设备和多个多端口超高速缓存设备的FIFO缓冲存储器设备的方法。这些方法包含操作:在第一读取时间间隔内从第一多端口超高速缓存设备读取第一页数据,并在第一时间间隔之后的第二读取时间间隔内从第二多端口超高速缓存设备读取第二页数据。在这些读取操作期间还执行判优操作以便不中断就使附加页的数据有效。特别地,在结束第二读取时间间隔之前,执行一个判优操作以确定相对于第二页数据的接下来要读取的数据页在该嵌入式存储器设备中是否有效。然后,如果接下来要读取的数据页是有效的,则在第二读取时间间隔内执行一个操作以从该嵌入式存储器设备中将接下来要读取的数据页传送到第一多端口超高速缓存设备。还可以在第一和/或第二读取时间间隔内执行操作以将数据写入到第二多端口超高速缓存中,然后在第二读取时间间隔内从第二多端口超高速缓存设备向该嵌入式存储器设备传送这个数据页。
附图简要说明
图1是依据本发明第一实施例的一个缓冲存储器设备的框图。
图2是依据本发明第二实施例的一个多排缓冲存储器设备的详细框图。
图3是依据本发明第三实施例的一个高速缓存位单元的框图。
图4是图3中的高速缓存位单元的详细电路图。
图5是依据本发明第四实施例的一个缓冲存储器设备的框图。
图6是依据本发明第五实施例的一个高速缓存位单元的框图。
图7是图6中的高速缓存位单元的详细电路图。
图8A是依据本发明第六实施例的一个四端口高速缓存位单元的框图。
图8B是依据本发明第七实施例的一个三端口高速缓存位单元的框图。
图9是用以说明从缓冲存储器设备中读取的最佳方法的操作流程图。
图10是用以说明向缓冲存储器设备中写入的最佳方法的操作流程图。
最佳实施例说明
下面将结合附图对本发明进行更加充分地描述,在附图中显示了本发明的最佳实施例。然而,这个发明可以具体表现为许多不同的形式,而且不应该被认为是局限于在此处阐述的这些实施例。相反地,提供这些实施例以使这个公开彻底和完整,并且向本领域技术人员充分地表达本发明的范围。相似的附图标记始终表示相似的元件。
现在参考图1,依据本发明第一实施例的一个最佳缓冲存储器设备10包含一个多端口高速缓存和一个嵌入式存储器阵列40。图示的该多端口高速缓存包含一个四端口高速缓存30(QPCACHE),它具有第一端口用于从一个输入块12接收数据(例如写数据),和一个第四端口用于向一个输出块16传送数据(例如读取数据)。该四端口高速缓存30的第二和第三端口分别连接到一个嵌入式存储器阵列40(例如SRAM阵列)的写和读端口。如图所示,该四端口高速缓存30响应由一个四端口高速缓存控制电路14产生的多个控制信号。被提供到该四端口高速缓存30内部的一个数据多路复用器的选择输入端的这些控制信号包含一个重发路径信号(RTPATH)、一个嵌入式存储器路径信号(SRAMPATH)和一个直接路径信号(DIRECTPATH)。
图1中的缓冲存储器设备10可以被操作用作一个扩展容量的先进先出缓冲器(FIFO)。特别地,四端口高速缓存30可以包含一个具有快速通过性能和适中容量的高速存储器设备,且嵌入式存储器阵列40可以包含一个具有更大存储容量的相对慢速但更高度集成的存储器设备。如在下文中充分描述地那样,输入数据作为一序列N位的字能够被提供给输入块12,然后被传递到四端口高速缓存30的第一端口。然后,多个这些N位的字作为写数据的相应页可以从该四端口高速缓存30的第二端口并联传递到该嵌入式存储器阵列40。在一个读操作期间,存储器的一个选定页也可以从该嵌入式存储器阵列40传递到该四端口高速缓存30的第三端口。然后,该存储器选定页部分作为N位的字,可以从该四端口高速缓存30的第四端口传递到输出块16。也可以通过在一个后续读操作期间立即存取写入到该四端口高速缓存30里的数据来实现快速通过性能。
如图2-4所示,图1中的四端口高速缓存30和嵌入式存储器40可以在一个多排缓冲存储器设备10a内部使用。特别地,图3说明了用于图2的该多排缓冲存储器设备10a中的一个最佳四端口高速缓存位单元30a的框图。图4是图3中的高速缓存位单元30a的详细电路图。图3中的位单元30a包含一个含有多个选择输入端的多路复用器(数据MUX),其分别响应多个控制信号对这些选择输入端进行选择。这些控制信号包含一个重发路径信号(RETRANSMIT PATH)、一个嵌入式存储器路径信号(EMBEDDEDMEMORY PATH)和一个直接路径信号(DIRECT PATH)。还提供了多个寄存器,包含一个数据输入寄存器、一个重发寄存器和一个数据输出寄存器。该数据输入寄存器一旦应用了一个恰当的写地址就接收和锁定输入数据。该重发寄存器一旦应用了一个恰当的重发地址就接收和锁定起始输入数据。例如,一旦在一个重置或供电操作之后开始写操作,就可以应用该重发地址。因此,写入到该重发寄存器中的数据可以用于在先前写操作期间存储的数据的立即重发。当缓冲存储器设备10a收到一个重发请求时,通过利用重发寄存器取消了执行从嵌入式存储器阵列40取出原始数据的费时操作的需要。经常涉及一个“从零重发”请求的这个重发请求可以由一个与该缓冲存储器设备10a通信的外围设备产生。在该四端口高速缓存位单元30a内部还提供了一个数据输出寄存器。取决于这些控制信号的状态,该数据输出寄存器能够:(i)从该嵌入式存储器读取数据;(ii)从该重发寄存器重发数据;或(iii)写入存储在该数据输入寄存器内部的数据。
如图4中的详细电路图所示,在其上接收控制信号的这些信号线分别与多路复用器(DATA MUX)内部的传输门相连。数据输出寄存器有一个输入端电连接到该多路复用器的一个输出端。该数据输出寄存器也对一个读地址做出响应。一对反并行连接在该输出寄存器的数据输入端的反相器操作产生一个锁存的互补数据输入信号 D1,该信号被提供到PMOS上拉晶体管P1和NMOS下拉晶体管N1的栅极。该读地址还被提供到PMOS上拉晶体管P2的栅极和中间NMOS晶体管N3的栅极。如图所示,数据输出寄存器还产生一个补码读地址,提供给中间PMOS晶体管P3和NMOS下拉晶体管N2的栅极。还提供了一个包含PMOS上拉晶体管P4和NMOS下拉晶体管4的三态输出缓存级。PMOS上拉晶体管P4的栅极电连接到PMOS上拉晶体管P1和P2的漏极、中间NMOS晶体管N3的漏极以及中间PMOS晶体管P3的源极。NMOS下拉晶体管N4的栅极电连接到NMOS下拉晶体管N1和N2的漏极、中间PMOS晶体管P3的漏极以及中间NMOS晶体管N3的源极。基于数据输出寄存器的这个配置,在多路复用器的输出端产生一个逻辑0信号和一个逻辑1读地址,将会导致在该数据输出寄存器(DATA OUT)的输出端产生一个逻辑1信号。特别地,该逻辑0信号和逻辑1地址将同时导通:NMOS下拉晶体管N1、中间NMOS晶体管N3、中间PMOS晶体管P3和PMOS上拉晶体管P4。相反地,在多路复用器的输出端产生一个逻辑1信号和一个逻辑1读地址,将会导致在该数据输出寄存器的输出端产生一个逻辑0信号。最后,收到一个逻辑0读地址将会使该数据输出寄存器的输出端进入一个高阻态,而不考虑补码数据输入信号DT的值。
再次参见图2中的多排存储设备10a,输入数据最初被保存在一个输入寄存器(INPUT REG)中,并通过一个输入多路复用器(INPUT MUX)传递到第一和第二四端口超高速缓存QPCACHE0和QPCACHE1。该输入寄存器可以通过一个N位宽的总线电连接到该输入多路复用器。在图示实例中,N可以等于36。如图所示,第一四端口超高速缓存QPCACHE0包含4N个立单元,每个位单元最好如图3-4中所示那样配置。QPCACHE0内部的四组位单元如图所示为组#0-#3,其中每组包含36个位单元。相似地,第二四端口超高速缓存QPCACHE1如图所示也包含4N个位单元。QPCACHE1内部的四组位单元如图所示为#4-#7。
如在下文中关于图9-10更充分描述得那样,读写操作在QPCACHEO和QPCACHE1之间独立地来回切换。例如,一旦启动或发生了一个重置操作,输入数据的36位字能够按照次序被写入到位单元的#0-#3组内部的数据输入寄存器里。在这些初始写入操作期间,输入数据还被按照次序写入到位单元的#0-#3组内部的重发寄存器里。这个写数据可以通过设置控制线RTPATHO为逻辑1电平立即用于读取,并借此当该输入数据由QPCACHE0收到之时将写数据传递到数据输出寄存器。这个输出数据然后可以从该数据输出寄存器传递到一个输出多路复用器(OUTPUT MUX)和输出寄存器(OUTPUT REG)。在四个36位字已经被写入到QPCACHE0里之后,将写控制传递到QPCACHE1。当写操作正在QPCACHE1中被执行时,在QPCACHE0的数据输入寄存器内部的写数据也最好被写入到相应的嵌入式存储器阵列(SRAM阵列#0)里。当执行将新输入数据写入到每个四端口超高速缓存的数据输入寄存器里的操作时,也可以同时执行读取数据输入寄存器内部的“最近”数据或是先前保存在嵌入式SRAM存储器阵列中的数据的操作。
下面参考图5-7,将要描述一个其中具有一个最佳三端口超高速缓存30’的缓冲存储器设备10′。图5中的缓冲存储器设备10′包括一个输入块12、一个嵌入式存储器阵列40′(显示为一个DRAM阵列)和一个输出块16。最好还提供一个三端口超高速缓存控制电路14′。与图1中的四端口超高速缓存控制电路14类似,该三端口超高速缓存控制电路14′产生多个控制信号(RTPATH、DRAMPATH和DIRECTPATH),然后这些控制信号被提供给该三端口超高速缓存30′内部的一个多路复用器的选择输入端。在图5的该三端口超高速缓存30′内部的一个位单元30a′的详细的框图和电路图如图6-7所示。此外,图5中的该三端口超高速缓存控制电路14′产生一个读/写控制信号,该信号有助于连接该三端口超高速缓存30′到嵌入式存储器阵列40′的一个双向端口及双向总线的正确操作。该读/写控制信号被提供到一个传输门,它在一个读操作期间阻塞在数据输入寄存器的一个输出端和双向总线之间的数据传送,但是当该嵌入式存储器阵列40′被设置为从该双向总线接受一页写数据的模式时能够在一个写操作期间启动数据传送。这个传输门在图6-7中被显示为一个CMOS传输门。
如图8A和8B所示,图3中的四端口位单元30a和图6中的三端口位单元30a′都能够被修改以包括一个从“标记”寄存器(MRT寄存器)的重发。这个MRT寄存器可以有一个内部结构类似于图4或7中的重发寄存器。这个MRT寄存器能够在一个在此处描述的最佳多端口超高速缓存内使用,以继由一个处理器(未显示)产生的一个标记请求之后存储多个数据字(例如一页)。因此,当由一个包含图8A-8B所示的位单元的缓冲存储器设备收到一个来自标记(RFM)请求的重发时,这个数据立即有效于通过数据多路复用器和输出寄存器重发。通过设置MRT路径信号为逻辑1电平、并由此导通该数据多路复用器内部的一个CMOS传输门,启动数据从MRT寄存器的输出端到数据输出寄存器的一个输入端的传送。
图9的流程图说明了当从图2中的多端口缓冲存储设备读取数据时能被使用的最佳操作50。一旦重置或收到一个重发请求信号(例如,“从零重发”信号),可以执行操作82以激活第一四端口超高速缓存(QPCACHE0),并停用直接路径信号DIRECTPATHO和DIRECTPATH1(例如设置为逻辑0电平)。嵌入式存储器路径信号(SRAMPATHO和SRAMPATH1)也被停用,但是重发路径信号(RTPATH0和RTPATH1)是启用的(例如,设置为逻辑1电平)。这些原始操作使缓冲存储器设备处于允许数据从该重发寄存器读取的模式。这个数据可以包含在接收重置信号之后写入到该重发寄存器里的数据,或是在产生该重发请求信号之前的一个有效时间期间最初被写入到该重发寄存器里的数据。
如程序块54和56说明的那样,通过QPCACHE0内部的数据多路复用器和数据输出寄存器提供一条读取数据路径,直到数据的所有144位(即四个36位字)已经从QPCACHE0内部的重发寄存器读出为止。然而,一旦数据的所有原始144位都已经从QPCACHE0读取后,在程序块58进行一个检查以确定一个“小于三”的标志是否有效。每当在嵌入式存储器内写指针(未显示)和读指针(未显示)的值之间的差值小于三(3)时,这个标志就是有效的。换句话说,在程序块58执行一个操作以确定相对于该超高速缓存数据(即在QPCACHE0和QPCACHE1内有效于读取的数据)的一个附加页数据在该嵌入式存储器阵列SRAM阵列#0中是否有效。如程序块60所示,如果<3的标志是有效的,则该附加页的数据是不有效的,而且直接路径信号DIRECTPATHO被设置为逻辑1电平,信号RTPATH0变成无效的。这个操作使写入到QPCACHE0内部的该数据输入寄存器里的数据在QPCACHE1内部的数据已经读取之后有效于读取。然而,如果一个附加页的数据在该嵌入式存储器SRAM阵列#0中是有效的,则在程序块62执行一个从SRAM阵列#0的取(即读取)操作,且将信号SRAMPATH0设置为逻辑1电平。由于QPCACHE0内部的重发寄存器信号中的原始数据已经完全地读出了,所以RTPATH0信号也变成无效的。
然后将读取控制传递到QPCACHE1,如程序块64和66所示,然后进行一个连续检查以确定在QPCACHE1中的重发寄存器内部的读出数据的所有144位是否都已经读出了。如果所有144位都已经读取了,则在程序块68再次检查该<3标志以确定相对于QPCACHE0和QPCACHE1中的当前数据的一个附加页的数据在该嵌入式存储器SRAM阵列#1中是否有效。如果该<3标志是有效的,这意味着一个附加页的数据是不有效的,则在程序块70将信号DIRECTPATH1设置为一个有效电平,且信号RTPATH1变为无效。然而,如果该<3标志不是有效的,则在程序块72将信号SRAMPATH1设置为逻辑1电平,执行一个从SRAM阵列#1的取操作,且信号RTPATH1变为无效。然后将读取控制传递返回到QPCACHE0,并且开始从数据输入寄存器或者SRAM阵列#0读取数据的操作。如图9所示,这些操作继续在QPCACHE0和QPCACHE1之间来回切换,直到收到下一个重置或重发信号为止。
由于接下来要写的“寄存器”总是没有接收当前写数据的那个超高速缓存的数据输入寄存器,因此不要求广泛的写判优操作以确定随后的写数据被存储在哪儿,所以图10中的用于向图2的多端口缓冲存储器设备写入数据的操作80与如图9所示的读操作相比复杂性要大大降低。相反地,在Chin等人于1998年5月21日申请的、申请号为09/082,893、题为“Methods of ControllingMemory Buffers Having Tri-Port Cache Arrays Therein”、现在专利号为——的美国专利中,更完全地描述了多端口存储器设备,它利用广泛的读和写判优操作以在连续基础上确定接下来要写和接下来要读的寄存器,并向一个嵌入式存储器执行取操作,这里通过参考包含该专利的公开文本。
现在参考图10中的程序块82,一旦重置后,就激活QPCACHE0以接收写数据。此外还执行操作以使QPCACHE0和QPCACHE1内部的数据输入寄存器的输出端从它们相应的输出寄存器断开连接。这通过使DIRECTPATHO和DIRECTPATH1无效来进行。此外,从嵌入式存储器填塞的数据路径也通过使SRAMPATH0和SRAMPATH1无效来断开连接。如程序块84和86所示,重发地址被用于QPCACHE0和QPCACHE1以允许在该重发寄存器中存储开始两页的写数据(例如,288位)。在开始两页的写数据已经被保存在该重发寄存器中之后,停用该重发地址直到已经收到一个随后的重发或重置请求为止。当正在执行这些操作以将数据写入到该重发寄存器里时,还将写数据保存在QPCACHE0和QPCACHE1内部的数据输入寄存器中。例如,在程序块88和94,数据最初被写入到QPCACHE0里。一旦一整页的数据都已经被写入到QPCACHE0中之后,在程序块90,执行一个操作以将这页写数据传送到该嵌入式存储器(即SRAM阵列#0),并将控制传递到QPCACHE1。然后,在程序块92和98,由QPCACHE1执行写操作直到另一页数据已经接收为止。如程序块96所示,QPCACHE1内部的这页数据然后被传递到该嵌入式存储器(即SRAM阵列#1),并将写控制传递回QPCACHE0。在QPCACHE0和QPCACHE1之间的这个来回切换继续至收到下一个重置操作为止。
在这些附图和说明书中,已经公开了本发明的典型的最佳实施例,而且尽管使用了专用术语,但是它们仅仅用作一个通用和叙述性的含义,而不是为了限制起见,本发明的范围由以下的权利要求书进行阐述。