在每个总线周期中可读取和/或写入可选数目的数据字的先进先出缓冲区的制作方法

文档序号:6358111阅读:170来源:国知局
专利名称:在每个总线周期中可读取和/或写入可选数目的数据字的先进先出缓冲区的制作方法
技术领域
本发明涉及数字式数据缓冲区,具体地说,涉及先进先出(FIFO)缓冲区,例如用于集成电路到集成电路互连的同步数据通信。
背景技术
半导体生产技术不断制造出更高密集度和速度的集成电路(IC)装置。每平方厘米硅片上容纳数百万逻辑门的能力,使得能够大量集成、例如制造完整的单片系统(SOC)。不幸的是,设计高度集成的系统的能力通常落后于制造能力。不断增加的复杂度提高了与构成SOC的门电路块之间和IC之间接口调试和校验有关的风险。
缩短高度集成装置的设计周期时间的一个途径是快速硅原型法(RSP),它为定制的专用集成电路(ASIC)或集成的多个ASIC同时设计软硬件。RSP将设计重用、片上总线结构及系统集成的方法组合起来,极大地提高了设计者更快地创建先进的定制ASIC及相关的系统软件内容的能力,并且成功的概率很高。RSP基于这样的前提通过“重构”来设计系统较为容易,即从现有和证明可靠的由可重用组件组成的参考设计中除去模块以及“延伸”即添加模块。
标准化总线通过在可重用组件上施行标准化接口而允许重构及延伸参考设计。因而,标准化总线向RSP相关的市场带来了许多好处,例如减低风险、提高生产率及减少时间。在使用RSP设计的系统中,对于高带宽流数据经常需要一种类型的标准化总线,下文称为“隧道”。
因发送IC装置和接收IC装置是有差别的,使得利用隧道来互连不同的IC复杂化。例如,两个IC可能使用不同的制造工艺制造,其中发送IC装置是工作在200MHZ的外围装置,而接收IC装置是工作于400MHZ的处理装置。另一个例子是,由于生产的差异,一个IC工作的速度可能与另一个的稍微不同。进一步的例子是,由于软件设计的原因,一个IC设计可能工作在变化间隔的流数据上。如此,因这些和其他的因素,由于同步问题及每个总线周期数据传输的限制,隧道可能成为高带宽流数据流量的限制。
在发送IC装置和接收IC装置两者中,传统上通过先进先出(FIFO)循环缓冲区(本文也称FIFO)来提供在片到片互连中的数据同步。发送FIFO在传输前先缓冲数据元素。接收FIFO缓冲从传输中接收到的数据元素。传统的FIFO循环缓冲区包括存取存储器阵列的读端口和写端口。写指针指向紧接着最近写入的数据槽的空数据槽。读指针指向包含存储在数据缓冲区中的最旧数据元素的数据槽,所述槽紧接着最后一次从缓冲区读取的数据槽。在FIFO的每次总线周期期间,读端口利用读指针对每次从存储器阵列读取之后的下一个存储器位置连续地寻址,而写端口利用写指针对每次写入存储器阵列之后的下一个存储器位置连续地寻址。设置控制电路以便防止对已满的FIFO写入并且防止从空的FIFO中读取。
因为FIFO局限于每个总线周期读取和/或写入一个数据元素,所以隧道通常被有效地限制在两个IC装置中较慢的一个的时钟速率。例如,较慢的发送IC装置将以相应的较慢的速率来填充其发送FIFO缓冲区。较快的接收IC装置具有较快的接收FIFO缓冲区,趋向于较快地读空其缓冲区,本质上说被迫地等待被传递并放入其缓冲区中的新的数据。这样,隧道的带宽被限制在发送FIFO能够对其存储的数据进行排序(sequencing out)的速率上。或者,与较慢的接收IC装置及其接收FIFO缓冲区能够处理的速度相比,快速的发送IC装置将更快地填满其发送FIFO。这样,受到接收FIFO缓冲区可以将所接收的数据排序的速率限制,两个缓冲区往往会被填满。
由于不断增加的生产成本,为得到更快的FIFO而提高较慢的IC装置的速度通常是不现实的。另外,由于IC之间可用导体数目的限制和/或分离及合并通过不同信道传送的数据而带来的额外复杂性和延迟,向隧道添加附加信道以增加流数据的带宽可能是不现实的。
因此,需要有一种能使连接不同通信能力(如因不同的时钟速率)的IC之间隧道带宽最大化的方式。具体地说,很需要有可以增加传送的数据元素带宽因而可以帮助协调通过隧道连接的各个独立IC的FIFO缓冲区。
发明概述本发明旨在解决先有技术中存在的这些和其他问题,它提供能够在每个总线周期单向传送多个数据元素的先进先出(FIFO)缓冲区,从而在不提高总线速率的情况下增加传送的数据量。此外,还可提供允许在给定总线周期单向传送可选数目的数据元素的FIFO缓冲区,这样就可以动态地控制FIFO缓冲区的有效带宽。
与本发明的特定方面相一致,FIFO缓冲区包括具有多个数据槽的存储器阵列,每个数据槽存储数据元素。FIFO控制电路通过利用存储器阵列执行单数据元素传送或双数据元素传送来响应数据指令。
与本发明的另一个方面相一致,FIFO缓冲区用于发送装置和接收装置的通信链路中。所述FIFO包括存取存储器阵列中数据元素的一对写端口和一对读端口。FIFO控制电路响应写数据指令,以便通过写端口执行对存储器阵列的单数据元素写入或双数据元素写入。FIFO控制电路还响应读数据指令,通过读端口执行从存储器阵列的单数据元素或双数据元素读取。
与本发明的又一方面相一致,在发送装置和接收装置之间的通信链路包括发送FIFO缓冲区,所述发送FIFO缓冲区通过传输信道向接收FIFO缓冲区发送数据元素。每个FIFO缓冲区都包括FIFO控制电路,以便响应读数据指令而执行单数据元素或双数据元素读取、并响应写数据指令而执行单数据元素或双数据元素写入。
与本发明的又另一方面相一致,在发送装置和接收装置之间的数据元素通信方法包括通过执行单数据元素或双数据元素写入来响应写数据指令并且通过执行单数据元素或双数据元素读取来响应读数据指令。
与本发明的其他一个方面相一致,FIFO缓冲区包括用以存取存储器阵列中的数据槽的多个端口和响应数据指令而通过所述多个端口单向存取多个数据槽的FIFO控制电路。
从附图及其详细的说明中将明白本发明的以上及其他目的和优点。
附图简单说明

图1是构成集成装置的两个装置之间的数据总线、即或隧道的示意图。
图2是图1的集成装置的隧道的示意图,其中每个装置都包括与本发明各个方面相一致的FIFO循环缓冲区。
图3是图2的FIFO循环缓冲区的示意图。
被包括在本说明书中并作为本说明书一部分说明本发明的实施例的附图与上面对本发明的一般描述一起以及下面给出的对实施例的具体说明,用来解释本发明的原理。
特定实施例的详细说明先进先出(FIFO)循环缓冲区在存储器阵列的读写侧都有附加端口,以便允许从FIFO同时传送多个数据元素,例如数字分组或数字字。这样可以在单个总线周期期间传送多个数据元素,而不是顺序地经多个总线周期,从而无需较快时钟周期的开支就可以提供较快的FIFO操作。而且,在某些实施例中,在一个总线周期期间传送的数据元素的数目可以在不同的可能值之间选择,从而通过FIFO的有效带宽提供较大的控制。此外,集成电路(IC)之间数据总线中的FIFO循环缓冲区应用能灵活地执行一次或多次数据读取和/或数据写入,简化了IC之间的同步控制。
现转向附图,其中若干幅图中相同标号表示相同的部件。图1描绘集成系统10,它由第一IC(接收)装置12和第二IC(发送)装置14构成,它们通过通信链路(描绘为隧道16)进行通信。虽然装置12、14可以归于同一个半导体芯片上,但在所示的实施例中,每个装置12、14是分离的集成电路,由各自的时钟18、20所驱动。例如,每个装置12、14可以是分别为快速硅原型化(RSP)环境下同时产生的处理器芯片和外围芯片。隧道16很好地为高带宽数据流提供芯片到芯片的互连,允许装置12、14之间的高度的结合。
具体地说,隧道16包括归于发送装置14的隧道出口电路22。隧道出口电路22具有目标24,目标24与内部IC总线26相接,以便从流数据装置28接收。隧道16还包括归于接收装置12的隧道入口电路30。隧道入口电路30包括启动器32,启动器32归于接收装置12的内部IC总线34上、用来向接收装置12上的部件(描绘为DRAM控制器36)提供流数据。
隧道16使得发送装置14的内部IC总线26上的流数据装置28看起来像似归于接收装置12上,与内部IC总线34进行通信。因此,能够增强RSP以便产生接收装置12和发送装置14,因为时钟18、20的同步和其他定时考虑事项对于集成系统10中的正确通信并不是至关重要的。
隧道16还同时包括前向通信路径38和返向通信路径40。具体地说,隧道出口电路22包括传送电路42,它通过前向通信路径38转发数据给隧道入口电路30的接收电路44。同样地,隧道入口电路30包括传送电路46,它通过返向通信路径40转发数据给隧道出口电路22的接收电路48。
受本发明启发的本专业的技术人员将会明白,对集成系统10的叙述只起说明作用,与本发明各方面一致的隧道16可以归于单个装置12、14中,以内部IC总线的形式履行作业。此外,隧道16可以是单向的,只有前向通信路径38或返向通信路径40。另外,与本发明各方面一致的应用可以执行其他形式的数字通信。因此,本发明并不局限于此处所讨论的特定RSP应用。实际上,本文说明的FIFO缓冲区可以应用于使用传统FIFO缓冲区的缓冲任何应用中。
现转向图2,用于从发送装置14转发数据通信至接收装置12的隧道16的一部分最好在隧道出口电路22中包括发送FIFO缓冲区50,在隧道入口电路30中包括接收FIFO缓冲区52,以便分别用来缓冲发送和接收过程中的数据。根据发送FIFO缓冲区50的状态,即取决于发送FIFO缓冲区50是否有容纳更多数据的空间,被隧道出口电路22的目标24所接收的流数据写入到发送FIFO缓冲区50。隧道出口电路22还响应隧道入口电路30中接收FIFO缓冲区52的状态,以便通过前向隧道38传送数据。隧道出口电路22把传送数据速率限制在接收FIFO缓冲区52可以接受数据的能力。然后,隧道入口电路30中的启动器32响应接收FIFO缓冲区5 2的状态,以便读取接收FIFO缓冲区52中的数据。
具体地说,隧道16有选择地在每个总线周期缓冲并发送一定数目的数据字,以便增强装置12、14之间的同步。取决于发送FIFO缓冲区50的状态,在内部IC总线26上被目标24所接收的流数据写入到发送FIFO缓冲区50。在所述说明性叙述中,发送FIFO缓冲区50包括两个写端口54、56和两个读端口58、60。目标24检测线路62两端发送FIFO缓冲区50的状态。若状态为“满”,则在所述总线周期期间目标将不发出写指令。若线路62上的状态是几乎满(即“满-1″),则目标24向发送FIFO缓冲区50发出写一个数据元素的指令(″WR1″),并向写端口54(“数据入口1”)提供一个数据元素。发送FIFO缓冲区50响应数据指令,将第一个写端口54选址到下一个可个可用的数据槽。若线路62上的状态不为满或几乎满,则目标24向发送FIFO缓冲区50发出写两个数据元素的指令(″WR2″),并如前述提供第一个数据元素,另外还向第二个写端口56(“数据入口2”)提供第二个数据元素。发送FIFO缓冲区50如前述地将第一个写端口54选址到下一个可用数据槽,另外将第二个写端口56选址到紧邻第一个写端口54所选址的槽的下一个可用数据槽。下面将指出,若未从内部IC总线26上接收到流数据,则目标24将不发出写指令,或只接收到一个数据元素,则即使发送FIFO缓冲区50可以处理更多数据元素,也仍发出写一个数据元素的指令。
作为发送FIFO缓冲区50下游的隧道出口电路22的一部分同时响应通过线路64接收到的发送FIFO缓冲区50的状态以及通过线路66接收到的接收FIFO缓冲区52的状态。具体地说,所述下游部分包括通信编码器68,当检测到的发送FIFO缓冲区50的状态为空或检测到接收FIFO缓冲区52的状态为满时,它不执行来自发送FIFO缓冲区50的读取操作。当接收FIFO缓冲区52的状态为即将满或发送FIFO缓冲区50的状态为即将空时,所述信道编码器68命令从发送FIFO缓冲区50的写端口58读取一个数据元素(″RD 1″)。为响应″RD 1″指令,发送FIFO缓冲区50将写端口58连接到最旧的数据地址,以便写出“数据出口1”。信道编码器68将“数据出口1”数据元素编码,通过一条或多条内部传输信道70将它转发至信道发送器72,后者通过前向隧道38将已编码并信道化的数据元素传送到隧道入口电路30。
或者,信道编码器68响应检测到的接收FIFO缓冲区52未满也未即将满的状态以及检测到的发送FIFO缓冲区50未空或未即将空的状态,命令读取两个元素(″RD2″)。除了上述读取一个数据元素(RD1)的数据指令操作外,发送FIFO缓冲区50还响应RD2指令,输出紧随的最旧数据元素(“数据出口2”)至信道编码器68,所述数据元素被类似地编码、信道化并传送到接收IC装置12。
隧道入口电路30包括信道接收器74,后者从前向隧道38接收编码的信道化数据。所接收到的数据被通过一条或多条内部接收信道76转发给信道解码器/调整程序78。取决于接收到的数据量,信道解码器/调整程序78向接收FIFO缓冲区52发出无数据传送、写一个数据元素(″WR1″)或写两个数据元素(″WR2″)的指令。信道解码器/调整程序78使一个或两个数据元素“数据入口1”和“数据入口2”分别在接收FIFO缓冲区52的写端口80、82上可用。接收FIFO缓冲区52将这些数据元素写入下一个可用的写数据槽。
虽然未描绘出,但本专业的技术人员看了本发明之后将会明白,信道解码器/调整程序78可以进一步响应接收FIFO缓冲区52的状态,有选择地命令传送比所接收较少的数据量。例如,信道解码器/调整程序78可以包括内在存储功能,它还可以用来存储传送给接收FIFO缓冲区52的可选数目的数据字。
接收FIFO缓冲区52使最旧的两个数据元素在读端口84、86上可用,以便启动器32发出指令读取。当接收FIFO缓冲区52即将空时,启动器32响应线路88上检测到的接收FIFO缓冲区52的状态,指示读取一个数据元素(″RD1″)。当接收FIFO缓冲区52未空也不是即将空时,启动器32进一步响应接收缓冲区52的状态,指示读取两个数据元素(″RD2″)。
下面将指出,可以实现用单一时钟触发的发送FIFO缓冲区50,其中响应该同一个时钟信号而发生数据的输入和输出。相反,接收FIFO缓冲区52最好响应两个时钟信号,以便进一步增强集成装置10中的同步。具体地说,从信道解码器/调整程序70接收的数据可以响应前向通信路径38上接收的数据中固有的时钟信号。因而,写到FIFO 52的数据可以与所述接收的时钟信号同步;由启动器32读取的数据可以与接收装置12的时钟18信号同步。
现参考图3,它是FIFO循环缓冲区的操作图,它顺序地引用寻址数据槽的数据、以便将数据写到存储器阵列,当到达阵列结尾处时绕回开始处。同样地,存储在存储器中的数据被顺序地读出,存储最旧数据的数据槽首先被寻址。写指针跟踪用来写数据元素的下一个可用数据槽,读指针跟踪存储最旧数据的数据槽。包括了预防措施以防止读指针超越写指针。
具体地说,FIFO缓冲区90通过以“写端口1”和“写端口2”表示的多个写端口和以“读端口1”和“读端口2”表示的多个读端口来说明多个数据元素的传送。FIFO缓冲区90包括响应数据指令以执行单数据元素或双数据元素传送的控制电路。具体地说,所述FIFO控制电路包括用来接收数据指令的控制逻辑92;用来检测存储于存储器阵列96中数据量的标志逻辑94;以及用来对多个端口寻址的写指针电路98和读指针电路100。
控制逻辑92接收写入一个数据元素(″WR1″)或写入两个数据元素(″WR2″)的指令。控制逻辑92响应由标志逻辑94提供的所检测的存储器96的状态来选择性地发出写数据传送指令。具体地说,首先,若存储器阵列96的状态为满或若未接收到WR1或WR2信号,则控制逻辑92不启动写数据传送。其次,若接收到写一个数据元素的信号WR1,或若接收到写两个数据元素的信号WR2,但存储器阵列96为即将满,控制逻辑92用写允许信号1(″WR1_N″)来启用“写端口1”。第三,当接收到写两个数据元素的信号WR2并且存储器阵列96未满也未即将满时,则控制逻辑92除了启用“写端口1”之外,还用写允许信号2(″WR2_N″)来启用“写端口2”。
当被启动时,“写端口1”读取数据输入1(″DI1″)处的“数据入口1”信号,并将它写到写地址1(″AW1″)所指定的数据槽。当被启动时,“写端口2”读取数据输入2(″DI2″)处的“数据入口2”信号,并将它写到写地址2(″AW2″)所指定的数据槽。这两个写地址AW1、AW2由写指针电路98提供。
写指针电路98对存储器阵列96中的数据槽寻址(图3中未显示)、使得存储器阵列96可以作为循环缓冲区使用。具体地说,写指针电路98包括D型触发器102,后者有指向输入″AW1″处下一个可用槽的输出″Q″,用来单向地写数据到存储器阵列96。下一个可用写地址AW1还反馈给+1加法器104、+2加法器106及3合1的多路复用器108。加法器104、106的递增输出连接到多路复用器108的另外两个输入端。+1加法器104的递增输出还提供给输入″AW2″,以便寻址“写端口2”的再下一个地址。多路复用器108由控制逻辑92控制,以便更新地址AW1和AW2。具体地说,写传输一个数据元素后,命令多路复用器108输出来自+1加法器104的递增值,所述值将D型触发器102的输入″D″重置为下一个可用地址。在写传输两个数据元素后,命令多路复用器108输出来自+2加法器106的二次递增值到D型触发器102。
控制逻辑92还接收读取一个数据元素(″RD1″)或读取两个数据元素(″RD2″)的指令。控制逻辑92向应由标志逻辑94提供的所检测的存储器96的状态来选择性地发出读数据传送指令。具体地说,首先,若存储器阵列96的状态为空或若未接收到RD1或RD2信号,则控制逻辑92不启动读数据传送。其次,若接收到读一个数据元素的信号RD1或若接收到读两个数据元素的信号RD2,但存储器阵列96为即将空,控制逻辑92用读允许信号1(″RD1_N″)来启用“读端口1”。第三,当接收到读两个数据元素的信号RD2并且存储器阵列96未空也未即将空时,则控制逻辑92除了启用“读端口1”之外,还用读允许信号2(″RD2_N″)来启用“读端口2”。
当被启动时,“读端口1”通过读地址1(″AR1″)所指定的数据槽,在数据输出1(″DO1″)处输出“数据出口1”信号。当被启动时,“读端口2”通过读地址2(″AR2″)所指定的数据槽,在数据输出2(″DO2″)处输出“数据出口2”信号。这两个读地址AR1、AR2由读指针电路100提供。
读指针电路100包括D型触发器110,后者具有输出端″Q″,所述输出端″Q″将包含最旧数据的数据槽的存储器地址提供给存储器阵列96的“读端口1”的″AR1″输入端。最旧数据的地址AR1还反馈给+1加法器112、+2加法器114以及3合1的多路复用器116。加法器112、114的递增输出连接到多路复用器116的另外两个输入端。+1加法器112的递增输出还提供给输入端″AR2″,以寻址“读端口2”的下一个最旧地址。多路复用器116由控制逻辑92控制,以更新地址AR1和AR2。具体地说,在读传输一个数据元素之后,命令多路复用器116输出来自+1加法器112的递增值,所述值将D型触发器110的输入″D″重置为下一个可用地址。在读传输两个数据元素之后,命令多路复用器116输出来自+2加法器114的二次递增值到D型触发器110。
标志逻辑94从D触发器102接收当前写地址AW1并从D触发器110接收当前读地址AR1,从中作出决定,存储器阵列96是否为满(无空槽)、即将满(只有一个空槽)、空(没有填充的槽)或即将空(只有一个槽被填充)。
下面将指出,符合本发明方面的应用可以包括更多端口,如三个或三个以上,那两个读端口和两个写端口仅起说明作用。另外,读端口的数目可以不同于写端口的数目。此外,写到存储器阵列和从中读取的数据元素的大小可以不同,这样,写端口和读端口可以执行相互大小不同数据元素的数据传送。
先进先出缓冲区90的读写次序由总线时钟所控制。这样,在一个定时点上能执行一个或多个读或写操作。在后续的定时点上,读和写指针被增加合适的槽数,以符合数据传送要求。总线时钟可以很好地包括双数据率传输,其中传输同时发生于时钟脉冲的上升和下降沿上。
使用时,FIFO缓冲区90接收总线时钟脉冲。为响应写一个或两个数据元素(WR1,WR2)的数据指令,控制逻辑92确定存储器阵列96的状态是否有足够的可用数据槽,减少启用(WR1_N,WR2_N)的写端口(写端口1和2)的数目以对应可用数据槽的数目。每个启用的写端口接收输入数据(数据入口1、数据入口2),并将它写到由写指针电路98所提供的对应地址(AW1,AW2)。
为响应读一个或两个数据元素(RD1,RD2)的指令,控制逻辑92确定存储器阵列96的状态是否有足够的可用数据槽,减少启用(RD1_N,RD2_N)的读端口(读端口1和2)的数目以对应可用数据槽的数目。每个启用的读端口输出从读指针电路100所提供的对应地址(AR1,AR2)所指向的数据槽读取的输出数据(数据出口1、数据出口2)。
在随后的定时时间间隔上,写和读指针电路98、100被更新为下几个可用的数据槽,所述槽数符合各自写或读的数据元素的个数。并且,标志逻辑94更新存储器阵列96的状态,具体地说是设置满、即将满、空或即将空的状态标志。
虽然已经通过对多个实施例的描述来说明本发明并且对这些实施例也相当详细地进行了描述,但申请人的意图不是为了局限或用任何形式将所附权利要求书的范围限制在这些细节上。对本专业的技术人员来说,其他的优点和修改是显而易见的。因此,从广义上来说,本发明并不局限于特定细节、代表性的装置和方法,以及显示和描述的说明性示例。因而在不背离申请人一般发明概念的精神或范围的情况下,可以从这些细节作出不同的修改。
权利要求
1.一种先进先出(FIFO)缓冲区(90),它包括具有多个数据槽的存储器阵列(96),每个数据槽配置成存储数据元素;以及FIFO控制电路(92、94、96、98、100),它响应数据指令而利用所述存储器阵列(96)单向地执行单数据元素传送和双数据元素传送中选择的一种传送。
2.如权利要求1所述的FIFO缓冲区(50、52、90),其特征在于所述FIFO控制电路(92、94、96、98、100)接收时钟信号并进而配置成在一个时钟周期内执行双数据元素传送。
3.如权利要求1所述的FIFO缓冲区(50、52、90),其特征在于所述单和双数据元素的传送各自包括响应写数据指令而写到所述存储器阵列(96)的相应的一个和两个数据槽,所述FIFO控制电路(92、94、96、98、100)还响应读数据指令而执行从所述存储器阵列(96)的相应的一个和两个数据槽的单数据元素读出和双数据元素读出中所选的一种读出。
4.如权利要求3所述的FIFO缓冲区(50、52、90),其特征在于所述FIFO控制电路(92、94、96、98、100)还配置成检测即将满状态并响应关于写双数据元素的写数据指令而向所述存储器阵列(96)写入单数据元素。
5.如权利要求3所述的FIFO缓冲区(50、52、90),其特征在于所述FIFO控制电路(92、94、96、98、100)还配置成检测即将空状态并响应关于读双数据元素的读数据指令而从所述存储器阵列(96)读取单数据元素。
6.一种在发送装置和接收装置之间的通信链路(16)中的先进先出(FIFO)缓冲区(90),它包括具有多个数据槽的存储器阵列(96),每个槽配置成存储数据元素;配置成向所述存储器阵列(96)写入一对相应的数据元素的一对写端口(54、56、80、82);配置成从所述存储器阵列(96)读取一对相应的数据元素的一对读端口(58、60、84、86);FIFO控制电路(92、94、96、98、100),它响应写数据指令而执行通过所述一对写端口(54、56、80、82)向所述存储器阵列(96)的单数据元素写入和双数据元素写入中选择的一种并响应读数据指令而执行通过所述一对读端口(58、60、84、86)从所述存储器阵列(96)的单数据元素读取和双数据元素读取中选择的一种。
7.如权利要求6所述的FIFO缓冲区(50、52、90),其特征在于还包括配置成检测所述存储器阵列(96)的满和即将满状态的FIFO检测电路,其中,所述FIFO控制电路(92、94、96、98、100)响应所述检测的数据状态而把写数据指令与从由以下各种状态组成的组中选择的一种状态相对应不写入数据元素、写入单数据元素以及写入双数据元素。
8.如权利要求6所述的FIFO缓冲区(50、52、90),其特征在于还包括配置成检测所述存储器阵列(96)的空和即将空状态的FIFO检测电路,其中,所述FIFO控制电路(92、94、96、98、100)响应所述检测的数据状态而把写数据指令与从由以下各种状态组成的组中选择的一种状态相对应不读出数据元素、读出单数据元素以及读出双数据元素。
9.如权利要求6所述的FIFO缓冲区(50、52、90),其特征在于还包括写指针电路(98),写指针电路(98)配置成存储当前写指针值并且响应所述FIFO控制电路(92、94、96、98、100)而选择性地把所述写指针值递增一和二个槽地址;并且还包括读指针电路(100),所述读指针电路(100)配置成存储当前读指针值并且响应所述FIFO控制电路(92、94、96、98、100)而选择性地把所述读指针值递增一和二个槽地址。
10.一种在发送装置和接收装置之间通信链路(16),它包括发送装置和接收装置之间的传输信道;发送FIFO缓冲区(50),它配置成在通过所述传输信道传送给所述接收装置之前缓冲来自所述发送装置的数据元素;接收FIFO缓冲区(52),它配置成缓冲通过所述传输信道从所述发送装置接收的数据元素;其中所述发送和接收FIFO缓冲区(50、52)中的每一个包括具有多个数据槽的存储器阵列(96),每个槽配置成存储数据元素;配置成将一对相应数据元素写入所述存储器阵列(96)的一对写端口(54、56、80、82);配置成从所述存储器阵列(96)读取一对相应数据元素的一对读端口(58、60、84、86);FIFO控制电路(92、94、96、98、100),它响应写数据指令而执行通过所述一对写端口(54、56、80、82)向所述存储器阵列(96)的单数据元素写入和双数据元素写入中选择的一种,并且响应读数据指令而执行通过所述一对读端口(58、60、84、86)从所述存储器阵列(96)的单数据元素读出和双数据元素读出中选择的一种。
11.如权利要求10所述的通信链路(16),其特征在于所述发送和接收FIFO缓冲区(50、52)中每一个还包括配置成检测所述存储器阵列(96)的数据状态的FIFO检测电路,所述通信链路(16)还包括通信链路控制电路,它响应所述检测的所述接收FIFO缓冲区(52)的数据状态而选择性地产生从以下指令中选择的一种数据指令不向所述发送FIFO缓冲区(50)读出数据的指令、向所述发送FIFO缓冲区(50)的单读出指令以及向所述发送FIFO缓冲区(50)的双读取指令。
12.如权利要求11所述的通信链路(16),其特征在于所述每个FIFO检测电路配置成检测下列数据状态满、满减一个数据元素、空以及空加一个数据元素。
13.一种通过在先进先出(FIFO)缓冲区(50、52、90)中缓冲数据元素而在发送装置(14)和接收装置(12)之间传达数据元素的方法,所述缓冲区包括具有多个数据槽的存储器阵列(96),每个数据槽配置成存储数据元素,所述方法包括通过执行从向所述存储器阵列(96)的单数据元素写入和双数据元素写入中选择的一种写入来响应写数据指令;以及通过执行从所述存储器阵列(96)的单数据元素读出和双数据元素读出中选择的一种读出来响应读数据指令。
14.如权利要求13所述的方法,其特征在于还包括检测所述存储器阵列(96)的数据状态;以及根据所述存储器阵列(96)的所述检测的数据状态来响应读数据指令和写数据指令。
15.如权利要求14所述的方法,其特征在于检测所述数据状态包括检测满和即将满数据状态,响应写数据指令还包括响应接收关于写双数据元素的写数据指令并响应检测到所述存储器阵列(96)的即将满数据状态而执行向所述存储器阵列(96)的单数据元素写入。
16.如权利要求14所述的方法,其特征在于检测所述数据状态包括检测空和即将空数据状态,响应读数据指令还包括响应接收关于读双数据元素的读数据指令并响应检测到所述存储器阵列(96)的即将空数据状态而执行从所述存储器阵列(96)的单数据元素读出。
17.如权利要求13所述的方法,其特征在于对关于读双数据元素和写双数据元素的数据指令的响应是在所述FIFO缓冲区(50、52、90)的一个时钟周期内执行的
18.如权利要求13所述的方法,其特征在于所述FIFO缓冲区(50、52、90)包括具有写指针电路(98)和读指针电路(100)的循环缓冲区,所述写指针电路(98)配置成存储当前写指针值并且将所述当前写指针值递增一个和二个槽地址,所述读指针电路(100)配置成存储当前读指针值并且把所述当前读指针值递增一个和二个槽地址,所述方法还包括通过从来自所述写指针电路(98)的所述当前写指针值选择两个槽地址来响应关于写双数据元素的写数据指令;以及通过从所述读指针电路(100)的所述当前读指针值选择两个槽地址来响应关于读双数据元素的读数据指令。
19.一种先进先出(FIFO)缓冲区,它包括具有多个数据槽的存储器阵列(96),每个数据槽配置成存储数据元素;用于存取所述存储器阵列(96)的数据槽的多个端口;以及响应数据指令、通过所述多个端口而单向和并行地存取多个数据槽的FIFO控制电路(92、94、96、98、100)。
20.如权利要求19所述的FIFO缓冲区(50、52、90),其特征在于所述FIFO缓冲区(50、52、90)通过进一步包括以下部分而配置成循环缓冲区指针值电路,它配置成将当前数据槽指针保留在所述存储器阵列(96)中的数据槽并且响应来自所述FIFO控制电路(92、94、96、98、100)的所述数据指令、根据所述当前数据槽指针值选择多个槽地址。
21.如权利要求19所述的FIFO缓冲区(50、52、90),其特征在于所述FIFO控制电路(92、94、96、98、100)响应数据指令而通过所述多个端口(54、56、58、60、80、82、84、86)单向和并行地存取从所述多个数据槽中选择的若干数据槽。
全文摘要
通过单向地执行多个数据元素传送、采用多个端口对存储器阵列寻址的方法,先进先出(FIFO)循环缓冲区使得能够在集成电路器件之间进行高速的流数据传输。此外,在一个总线周期中执行多次传送,并且传送的次数是可以选择的。FIFO控制电路响应存储器阵列的包括即将空或即将满的状态而限制传送的数据元素的数目。
文档编号G06F5/10GK1513135SQ02811203
公开日2004年7月14日 申请日期2002年6月3日 优先权日2001年6月6日
发明者G·E·埃曼, G E 埃曼 申请人:皇家菲利浦电子有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1