缓冲器的队列管理器的制作方法

文档序号:6361490阅读:165来源:国知局
专利名称:缓冲器的队列管理器的制作方法
技术领域
本发明通常涉及数据队列的管理,该数据队列接收自外部源并被输入到一个设备中做进一步处理。本发明尤其涉及一种与FIFO缓冲器一起用于控制所接收数据队列的改进DRAM。
在许多应用中,在短时间段内接收数据的速率比特殊设备利用数据的速率高,因此迫使队列数据有序地输入到其将被使用的设备中。一种通用型队列是先进先出(FIFO)缓冲器,它将从某种外部源接收的数据临时存储起来,以接收设备能够适应的速度输入到接收设备中。遇到的问题之一是FIFO缓冲器可能会超过其容量来存储输入比输出更快的数据。因此,当这种输入数据比FIFO缓冲器的存储容量更大时,需要在时间周期内以具有最小开销的有序方法来管理数据。
根据本发明,提供一种FIFO缓冲器的带宽保存队列管理器,最好在ASIC芯片上且最好包括独立的DRAM,该独立的DRAM包含可扩展到FIFO缓冲器数据存储空间以外从而提供所需的附加数据存储空间的FIFO队列。在ASIC芯片上使用FIFO缓冲器来存储和检索多重队列入口。只要队列的总大小不超过缓冲器中的有效存储,则不需要附加数据存储器。然而,当超过FIFO缓冲器中的缓冲器存储空间时,则在附加数据存储器中写入和读取数据,附加数据存储器最好是DRAM且最好是包的形式,包具有保持数据存储设备最佳性能的最佳大小,且按地址的先进先出(FIFO)顺序进行排列这样的方式将包写入数据存储器。DRAM可以是独立芯片,或者也可以形成在ASIC上。在两者中的任一种情况下,其存储器与FIFO缓冲器是分离的。


图1是本发明被管理的DRAM队列管理器结构的高级简图;图2是输入FIFO缓冲器的稍微概略的详细视图,及图3是输出FIFO缓冲器的稍微概略的详细视图。
现在参考附图,先参考图1,所示为根据本发明的带宽保存DRAM队列管理器的结构和操作概貌。在ASIC芯片10上形成队列管理器。队列管理器从外部源接收的数据输入12,输入到数据按队列排列的输入FIFO(先进先出)缓冲器14。数据16从输入FIFO缓冲器14中输出到存储器接口18和多路转接器(Mux)20。存储器接口18连接到独立芯片DRAM芯片22(然而,DRAM可形成在ASIC10上)。多路转接器控制逻辑24控制多路转接器20选择性地把数据16从FIFO缓冲器14输出到DRAM芯片22或输出FIFO缓冲器32上。FIFO缓冲器32把数据34输出到将要被提供数据的设备(未示出)中。
通常,图1所示的队列管理器以下列方式操作将写入队列的数据12输入到输入FIFO缓冲器14中。离开FIFO的数据16可以进入输出FIFO缓冲器32也可以进入外部存储器接口18,然后再根据输入FIFO缓冲器14和输出FIFO缓冲器32中是否有足够的空间给正在从外部源读取的数据来通过多路转接器20和多路转接器控制逻辑24控制进入DRAM芯片22。对多路转接器20的控制基于下列条件即,输入FIFO缓冲器14和输出FIFO缓冲器32是否为满的或至少具有满容量的预定百分比。当有比最大允许值更多的数据将存储在输入FIFO缓冲器14和输出FIFO缓冲器32中时,多路转接器20选择将要写入到外部存储接口18中的数据,然后将数据存储在DRAM芯片22中。当读取输出FIFO缓冲器32时,在多路转接器控制逻辑24控制下通过存储接口将数据从DRAM芯片22中读入到输出FIFO缓冲器32中。因此,只要从外部源中读取的输入数据12的量不超过输入FIFO缓冲器14和输出FIFO缓冲器32的预选容量,则数据直接从输入FIFO缓冲器14传送到输出FIFO缓冲器32。
然而,当所输入的数据12的量超过输入FIFO缓冲器14和输出FIFO缓冲器32的容量或容量的预定百分比时,则输入FIFO缓冲器14通过存储接口18将数据写入到DRAM芯片22中。DRAM芯片22具有在相连地址以先进先出原理进行写入和读取的结构,从而不再需要如传统高速缓冲存储器中的地址变换。每次一个数据项地将数据从外部源写入输入FIFO缓冲器14和从输入FIFO缓冲器14写入输出FIFO缓冲器32。然而,数据最好是写入到存储接口18中并从那里进入DRAM芯片22,由输出FIFO32以成组多数据项形式从DRAM芯片22读取数据来利用DRAM芯片22的最佳传输率。此外,由于按先进先出原理对DRAM进行排列,因此可利用组性能且不需要将地址标记加到所写入的数据上。因此,例如,可以以三项的数据包的形式将数据写入DRAM芯片22中和从DRAM芯片22中读出,而不必由地址一个一个地读取每个数据项。DRAM最好是DDR(双倍数据率)DRAM。双倍数据率DRAM允许给定数量的ASIC包上I/O引脚的数据带宽是标准同步DRAM的两倍。这是通过在时钟信号的上升沿和下降沿上都装入和捕捉数据来实现的。RAMBUS是在一些应用中有利于增加每英寸带宽的另一种方案。
现在参考图2,所示为输入FIFO缓冲器14更为详细的描述。输入FIFO缓冲器14包括锁存器,锁存器在用于六个不同数据项的存储单元40a,40b,40c,40d,40e和40f上。从外部源每次一个数据项地读取数据项,并在控制选择器40a,40b和40c的控制下每次一个数据项地写入FIFO缓冲器14中。设有为比较器48提供输出的写指针44和读指针46。比较器48的输出进入多路转接器控制逻辑24。如上所述,以组形式写入数据,例如,响应多路转接器20的控制,三个数据项从FIFO缓冲器14进入到DRAM20或每次一个数据项地进入输出FIFO缓冲器32。图3所示为输出FIFO缓冲器32的详细视图。
图3所示为在存储单元50a,50b,50c,50d,50e和50f上的数据项锁存器及控制输入54a,54b,54c,54d,54e和54f到存储单元50a-50f的选择器52a,52b,52c,52d,52e和52f。所提供的来自数据项存储器50a-50f的数据输出56a,56b,56c,56d,56e和56f进入选择器58来提供数据输出34,每次一个数据项地输出数据。设有将信号输出到比较器66的写指针62和读指针64。比较器66将其差输出到多路转接器控制逻辑24。
DRAM20也具有写指针、读指针和比较器(均未示出),DRAM比较器的输出也提供给多路转接器控制逻辑24。如上所述,以多数据项方式将数据从DRAM写入输出FIFO32中来利用DRAM的最佳数据传输率。存储器接口用于保持指针指向存储在DRAM芯片22中的队列的头尾部分。通过相连地址和头、尾指针,可排除对单地址的需要,DRAM芯片22以FIFO方式运行。
多路转接器控制逻辑24以下述方式控制多路转接器20首先,每次一个数据项地把数据12输入到FIFO缓冲器14中的输入FIFO队列中;且假定输出FIFO缓冲器32为空,则在多路转接器20的作用下将数据从输入FIFO缓冲器14直接发送到输出FIFO缓冲器32中。当输出FIFO缓冲器32全充满且输入FIFO缓冲器14半充满时,控制逻辑24响应比较器48和66来切换多路转接器20,在写周期以多数据项将数据经过存储接口18送入DRAM芯片22,输出FIFO缓冲器32在读周期以多数据项经过存储接口18从DRAM芯片22读取数据。当DRAM中的比较器指出DRAM芯片22中不再存有数据项时,则将多路转接器20切换回到使数据从输入FIFO缓冲器14送入到输出FIFO缓冲器32。
如上所述,通过写指针记录下一组数据项写入到在什么地方以及读指针记录下一组数据项从什么地方读来实现上述存储接口的控制。比较器确定这两个指针是否相同,这表示缓冲器是满的还是空的。读指针和写指针按下列方式运行当读指针和写指针在读周期上处于相同数据单元时,意味着存储单元为空,当读指针和写指针在写周期上处于相同数据单元时,意味着存储单元为满。
因此,读指针、写指针、比较器44,46和48以及读指针、写指针和比较器62,64和66的操作是用于指示输入FIFO缓冲器14中的数据存储器是满还是空以及输出FIFO缓冲器32中的数据存储器是满还是空,并据此控制多路转接器20的操作。DRAM中的读、写以及比较器以相同方式操作。(需要注意的是在某些应用中可使用数据项的链表,而不是使用读指针和写指针)输入数据12和输出数据34的接口总线带宽可与存储器总线接口的带宽相同。然而,我们期望具有不同的总线带宽,特别是在使用DDRDRAM时。基于特殊应用所必须作出的比较评定是所提供的单片缓冲数量(硅面积)对数据传输效率(带宽)。在大多数情况下,带宽更为重要。由DRAM接口的带宽和可接受命令和数据的速率来确定最大带宽。尽管通常ASIC上的I/O数量是限制因素,但这些速率是DRAM的特性且带宽是可选的。当权衡这些问题后,就存在保持该最大带宽所需的特殊最小包大小。通常由特殊应用来指示输入数据12和输出数据34宽度,以使变量具有单片缓冲器大小,所述大小说是最小DRAM包大小除以数据项乘以4(每个输入和输出FIFO都需要能够存储具有数据价值的两个存储包)归纳本发明设备的操作,数据从外部源读入输入FIFO缓冲器14,且只要输出FIFO缓冲器32不满,就从输入FIFO缓冲器14写入输出FIFO缓冲器32。当输出FIFO缓冲器32变满且输入FIFO缓冲器14半满时,多路转接器20转换并允许输入FIFO缓冲器14将数据写入DRAM芯片22中,允许输出FIFO缓冲器32从DRAM芯片22中读取数据。输出FIFO缓冲器32的输出作为输出34被输出。当输出FIFO缓冲器32和DRAM芯片22为空时,则多路转接器20允许输入FIFO缓冲器14直接写入输出FIFO缓冲器32。因此,当数据输入12比输入FIFO缓冲器14和输出FIFO缓冲器32所能处理的数据更大时,DRAM芯片22充当附加缓冲空间。
权利要求
1.一种管理数据从外部源输入系统的队列管理器,包括输入FIFO缓冲器,接收和存储来自所述外部源的数据项;输出FIFO缓冲器,接收、存储和输出数据项到所述系统;存储器设备,与所述输入FIFO缓冲器和所述输出FIFO缓冲器接口,及控制机构选择性地将数据从所述输入FIFO缓冲器写入到所述存储器设备中,从所述存储器设备中将数据读入所述输出FIFO缓冲器。
2.根据权利要求1定义的发明,其中所述数据作为数据项存储在所述输入FIFO缓冲器和所述输出FIFO缓冲器中,且所述控制电路包括以多包数据项方式将数据写入到所述输出数据缓冲器和从所述输入FIFO缓冲器中读取数据的电路逻辑。
3.根据权利要求2定义的发明,其中所述存储器设备配置成以组方式读写数据。
4.根据权利要求1定义的发明,其中所述存储器设备包括至少一个DRAM芯片。
5.根据权利要求1定义的发明,其中所述控制逻辑包括的逻辑是,将所述输入FIFO缓冲器连接到所述输出FIFO缓冲器直至所述输出FIFO缓冲器充至第一预定量且所述输入FIFO缓冲器充至记录预定量,此后将所述输入FIFO缓冲器连接到所述存储器设备直至所述存储器设备为空且所述输出FIFO缓冲器为空,然后再将所述输入FIFO缓冲器与所述输出FIFO缓冲器相连接。
6.根据权利要求5定义的发明,其中所述第一预定量为全充满,记录预定量为半充满。
7.根据权利要求1定义的发明,其中所述控制机构包括多路转接器。
8.根据权利要求4定义的发明,其中所述DRAM芯片为双密度DRAM芯片。
9.一种管理数据从外部源输入到系统的方法,包括以下步骤提供输入FIFO缓冲器,用于接收和存储来自所述外部源的数据项的;提供输出FIFO缓冲器,用于接收、存储和输出数据项到所述系统;提供与所述输入FIFO缓冲器和所述输出FIFO缓冲器接口的存储器设备;将输入数据提供给所述输入FIFO缓冲器并从所述输出FIFO缓冲器输出数据,及控制数据流以便将所述输入FIFO缓冲器连接到所述输出FIFO缓冲器直至所述输出FIFO缓冲器充至第一预定量且所述输入FIFO缓冲器充至第二预定量,此后将所述输入FIFO缓冲器连接到所述存储器设备直至所述存储器设备为空且所述输出FIFO缓冲器为空,然后再将所述输入FIFO缓冲器与所述输出FIFO缓冲器相连接。
10.根据权利要求9定义的发明,其中所述数据作为数据项被写入到所述输入FIFO缓冲器和所述输出FIFO缓冲器,以多包数据项方式将数据写入到所述输出数据缓冲器并从所述输入FIFO缓冲器中读取数据。
11.根据权利要求9定义的发明,其中数据以组方式写入到所述存储器设备并从所述存储器设备中读取。
12.根据权利要求9定义的发明,其中所述存储器设备包括至少一个DRAM芯片。
13.根据权利要求9定义的发明,其中所述第一预定量为全充满,所述第二预定量为半充满。
全文摘要
提供一种用于FIFO缓冲器的带宽保存队列管理器。只要队列的总大小不超过缓冲器的有效存储,就不需要附加的数据存储器。然而,当超过FIFO缓冲器上缓冲器存储空间的某个预定量时,数据写入到附加数据存储器和从附加数据存储器中读取,最好是以能够保持数据存储设备最佳性能的最佳大小的包方式,包最好以按照地址的先进先出(FIFO)顺序排列的方式写入到数据存储设备中。数据最好以组方式写入DRAM和从DRAM中读取。
文档编号G06F13/38GK1303053SQ0013700
公开日2001年7月11日 申请日期2000年12月27日 优先权日2000年1月4日
发明者布赖恩·M·巴斯, 吉恩·L·卡尔维纳克, 迈科·C·海蒂斯, 迈克尔·S·西格尔, 迈克尔·R·特朗布利, 法布里斯·J·韦普兰克 申请人:国际商业机器公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1