双向数据传输装置的制作方法

文档序号:7560223阅读:162来源:国知局

专利名称::双向数据传输装置的制作方法双向数据传输装置(=信号交换端口)可用于通信数据处理设备的数据接口,如果单向或双向数据传输不是与公共的系统时钟同步的和/或不是连续的话。这种端口的主要功能是处理信号交换协议,后者可确保仅当数据在发送器处确已齐备且当接收器确已准备就绪接收时数据才得以发送。在较为复杂的系统中,这些先决条件并不总是具备的。例如,由于差值延迟,系统时钟可能会有显著的相位偏差,以致无法保证正确的数据传输。系统时钟的频率越高,差值延迟越至关重要。在较为复杂的系统中另一个难处是不再随时都有可能估计出何时某个数据字确已齐备。这取决于诸如数据处理电路的内部延迟和运行时间,而它们当采用流水线操作进行并行处理时则更难以看透。在一篇发表在《IEEE计算机论文集》1987年12月第C-36卷第12期第1523至1538页上的题为“Warp(瓦德金自动远程处理计算机体系结构、实现和性能”的文章中,描述了一种大型计算机,它的在插件板上实现的处理器模块通过信号交换协议来交换数据。各个处理器模块之间的通信通过队列来进行。当队列(=先进先出存储器=FIFO存储器)是满的或空的时,发送或接收模块分别用一个停止信号来封锁直至数据通信可再次通过队列来处理,这分别是由于那里已为新数据准备了存储槽或新数据已齐备。这种数据驱动式数据传输装置当有多个这种接口参与数据处理时是非常优越的。对程序员而言,整个数据处理因而就成了“透明的”。因此,此发明所提出的目的就是提供一种用作在一数据源和一与该数据源异步工作的数据接收点之间数据接口的双向数据传输装置,它仅需要一个时钟周期进行一次数据传输,通过修改程序数据传输可扩展到任意多个尤其是两个时钟周期,并且它还包括当出现不一致的数据发生和数据接收率时用以缓存所传输的数据的装置,当缓冲器满时数据源的操作被中断,而当缓冲器空时数据接收点的操作被中断。此发明及其更多的优点将参照附图予以更详细的说明,图中图1为此发明所述双向数据传输装置一实施例的框图,带有缓冲器及反向和正向单元停止信号;图2为信号交换协议的时序图;图3为表示读语句执行周期的流程图;图4为表示写语句执行周期的流程图;以及图5为此发明所述FIFO存储器一实施例的框图。图1所示的双向数据传输装置(=信号交换端口)包括两个数据交换单元。第一单元Z1作为数据发送器,而第二单元Z2作为数据接收器。第一和第二单元Z1、Z2的实际信号处理电路可分别大致构成一数据源dq和一数据接收点ds。由数据源dq发出的数据被缓存在发送器缓冲器f1中,后者有至少一第一缓冲寄存器r1和一第二缓冲寄存器r2,并且如果必要还有预定数量的附加的缓冲寄存器ri。一般来讲,发送缓冲器应是一个FIFO存储器(=先进先出存储器)。FIFO存储器后面接有一门/缓冲电路tp,后者也作为所需发送数据即数据dat的驱动电路。在接收器一侧与发送器缓冲器f1相对应的装置为接收器缓冲器f2,它也是以-FIFO存储器来实现的。它包括至少一第一缓冲寄存器r1和一第二缓冲寄存器r2,并且如果必要还有预定数量的附加的缓冲寄存器ri。仅仅在发送器一侧的一个缓冲器f1或在接收器一侧的一个缓冲器f2就可使数据接收点ds或数据源dq有可能分别在短时间内具有不同的数据接收或数据发生率。补偿是通过缓冲器来实现的。补偿时间越长,在发送器或接收器一侧的可用的缓冲寄存器数量必须越大。如后面将要说明的,发送器一侧需要至少两个缓冲寄存器,而这只不过是由于特定的信号交换协议执行阶段无法足够快地阻塞数据源dq以致所发生的数据必须予以缓存。数据传输由发送器和接收器的时序电路su1、Su2来控制,它们用信号交换协议来实现数据传输。如果数据源dq向发送器时序电路su1发出写信号Wr以表示它打算将一数据字写入发送端口,发送器时序电路su7将检验发送器缓冲器f1是否已准备好接收,亦即它是否有任何空的缓冲寄存器或是否所有缓冲寄存器都满了。作为这一信息,发送器缓冲器f1提供三种状态信号1.当所有缓冲寄存器都满时,第一状态满信号V1;2.当除了一个之外所有缓冲寄存器都满时,第二状态满信号V2;和3.当所有缓冲寄存器都空时,状态空信号e。采用这些状态信号,可得出发送器缓冲器f1的下列充填级</tables>同样地,接收器缓冲器f2提供下列三种信号1.当所有缓冲寄存器都空时,第一状态空信号e1;2.当除了一个之外所有缓冲寄存器都空时,第二状态空信号e2;和3.当所有缓冲寄存器都满时,状态满信号v。</tables>从数据接收点ds发出的读信号告诉接收器时序电路su2一数据字dat将从该端口读入。在接收器缓冲器f2中数据字的可获得与否是用刚说明的三种状态信号e1、e2和v来告知接收器时序电路su2的。两个时序电路su1和su2信号交换协议的时序图如图2所示。信号交换协议在时刻1以请求信号req开始,它告诉接收器时序电路su2-数据字将被传送。这个数据字的接收在时刻2通过将认收信号ack置位来告诉发送器时序电路。在发送器时序电路su1中,认收信号ack的收到可使请求信号req在时刻3复位。在接收器时序电路中,这个复位操作可使认收信号ack在时刻4被取消。在图2中,假定在时刻5所要传输的信号dat不是立即可以而是只能在一个时钟周期之后被接收器所接收。因而认收信号只能在一个时钟周期之后在时刻6被置位。信号交换协议的其余部分则在时刻7和8无延迟地得以执行。只有在这时新的数据传输周期才能开始。这种操作序列的作用是确保正确的数据传输不取决于信号交换协议的执行时间。通过适当地设计各个分支电路。信号交换协议即使在时钟频率很高时也能在一个时钟周期内完全实现。但是,如果控制序列需要多于一个时钟周期,由于它们包括比如说一个初始化段和一个执行段,单元控制问题就会出现。这当中包括反向和正向单元截断信号st1、st2,它们取决于状态信号,因为状态信号的置位是在与它们的测定不同的时钟周期内进行的,这就是比如说,由于认收信号ack未被接收器时序电路su2复位,并且由于在认收信号复位与数据源dq阻塞之间有一段由电路所导致的等待时间以致数据源dq将继续工作一或两个时钟周期,因而数据源dq必须被阻塞的情形。在这种情况下,由数据源dq继续发生的数据必须缓存在发送器一侧的缓冲寄存器内,并且仅当认收信号ack复位时才发出。表示这些缓冲寄存器充填级的状态信号没有必要去阻塞数据源dq,如果数据源的启动需要同样多个时钟周期的话。这也就是两个读语句re一个紧接着另一个而在接收缓冲器f2中只有一个数据字的情况。这样,第二个读语句会遇到一个仍未置位的状态空信号并认为接收缓冲器f2有一数据字-但那就不再是这种情况了。类似的操作在发送器时序电路su1中进行,当两个写语句一个紧接着另一个时,它将过迟地认识到发送缓冲器f1是满的,如果执行第一个写语句时在发送缓冲器f1中只有一个寄存器可用的话。用从发送器时序电路su1发出的反向单元截断信号st1来阻塞数据源dq就会迟了一个时钟周期,以致由于存储器满着而数据源dq中的一个数据字会被丢失。用从接收器时序电路su2发出的正向单元截断信号st2来阻塞数据接收点ds也会迟了一个时钟周期,以致数据接收点ds会从空的缓冲器f2中读数据。为了克服这一点,按照此发明,发送器和接收器缓冲器f1和f2各用一个附加的状态信号来有远见地予以监控,分别称之为第二状态满信号V2和第二状态空信号C2。用这种方法,过长的控制序列的初始化被提前了。如果执行的是另一个短的控制序列而不是会导致冲突的临界控制语句,这个初始化的取消当然肯定不会造成任何延迟。为了说明这一点,图3表示一读语句re的执行周期的流程图。矩形框表示语句被执行,这是在时钟c12的CO段进行的。六角形框表示在ci段语句被读入,并附有相应的条件。执行是在下一个co段进行的。这些条件在流程图中表示为是/否的判定。这些条件信号的置位是在时钟c12的ci段进行的。流程图在co段中的时刻1以执行任意一个语句(这里称为“开始”)开始。在时刻2,即在ci段,下一个语句以及作为一个条件的第一状态空信号e1被装入。如果这个语句不是读语句re,一个一般的语句将被执行,这被表示为一个指向开始语句输入端的箭头。如果该语句是读语句,操作序列将取决于第一状态空信号e1的状态。如果这个信号为“0”,即没有置位,读语句re将在下一个co段被执行;这在流程图中用读框fre表示,并且在时刻3进行。如果接收缓冲器f2为空的,这可由被置为“1”的第一状态空信号e1来表示,在数据接收点ds中的信号处理将被截断,这在流程图中用带有正向单元截断信号st2的框“截断”来表示。当这种状态已开始后,在co段中数据接收点中的数据处理状态保持“冻结”。这种“冻结”保持到从接收器缓冲器f2发出的第一状态空信号e1被复位,即恢复状态“0”。根据第一状态空信号e1的状态,在ci段既可以开始一个新的等待循环也可以开始执行读语句。如果第一状态空信号e1未被置位,箭头因而将在时刻3指向读框fre。这个读语句re的执行fre启动了为下一个语句所做的如下准备。第二状态空信号e2被从接收器缓冲器f2传送到接收器时序电路su2,其中采用了下列条件函数1.如果下一个语句不是读语句re,这个语句将被执行,这在流程图中用返回到开始框夹表示。2.如果下一个语句是读语句re,仅当第二状态空信号e2未被置位即是“0”时,它才将被执行。否则,即第二状态空信号e2已置位,将执行正向单元截断st2而不是下一个读语句;这用一个指向截断框输入端的箭头来表示。在co段中的时刻5现有的数据状态被冻结,而没有所期望的那样执行第二个读语句re。在后续的ci段,即时刻6,更多的程序执行仅由第一状态空信号e7的状态来决定。如果该状态空信号e1被置位,另一个等待循环将被执行;如果该信号未被置位,读语句re将被执行。由于第二个读语句可以紧跟著有更多的读语句,未置位的第二状态空信号e2导致返回到读出框fre而不是开始框。只要读语句一个接着另一个并且接收缓冲器f2有至少两个数据字,这个循环就不会退出。发送器一侧相继的写指令的监控对应于接收器一侧相继的读指令的监控。写语句的执行周期的流程图如图4所示。由于它与图3的流程图对应,不需要再作详细说明。下列各点是相互对应的读语句re与写语句ωr,第一状态空信号e1与第一状态满信号v1,第二状态空信号e2与第二状态满信号v2,读语句re的执行fre与写语句ωr的执行fωr,以及正向单元截断信号stz与反向单元截断信号st1。图4的流程图的基本特点在于当写语句ωr一个紧接着另一个时,至少一个等待循环将被插入,如果第二状态满信号v2表明在第一个写语句ωr的执行fωr期间发送缓冲器f1中只有一个寄存器可以接收数据的话。如果发送缓冲器f1中有更多的空位置可用,相继的写语句将导致返回到写入框fωr,它将在co段执行写语句ωr。在图2中,在单个时钟周期内完成数据传输的正常情况如时刻1和时刻4之间所表示的。下一次数据传输,从时刻5到时刻8,用了较长时间,因为数据的接收是迟一些在时刻6进行的;接收器缓冲器f2已满。这一数据传输的拖延不是所期望的。在数据接口用来实现与芯片之外交换数据的情况下,高时钟频率时难以确保数据传输能在一个时钟周期内完成。这一点必须在程序设计中通过将经由这些接口的数据传输予有准备地降低至一半的数据传输率或更低而予以考虑。做到这一点有两种方法。1.在访问一个端口的两个相继的读语句之间插入至少一条nop(=空操作)指令,或2.在发送器一侧,信号交换端口由写语句ωr以至多不过一半的时钟频率来驱动。当发送器和接收器两侧的半时钟频率相应于平均数据传输率时,可得到进一步的改善。在这种情况下,在一定时间内读和写语句紧密相连是允许的;但是,缓存是靠发送器或接收器缓冲器f1、f2中的附加的缓冲寄存器ri来实现的。在发送器缓冲器f1中附加缓冲寄存器ri的预定数量至少要等于到达该端口的相继的写语句的数量。这种双向数据传输装置的操作因而可确保不依赖于两个时钟cl1、cl2的相位或频率。如果一个时钟周期不够,尤其是如果数据传输超出芯片之外进行,数据传输的时间范围可以用上述步骤予以随意扩展,只需要提供足够的数据缓存以及到达各个端口的降低了的平均写和读速率。这种双向数据传输装置在带有多个单元的数据驱动的阵列处理器中是特别有利的,这些单元与它们的相邻单元或芯片之外交换数据。这些用于实时信号尤其是视频信号处理的阵列处理器要求很高的时钟频率,比如说高达125兆赫。此发明所述的双向数据传输装置可实现处理深度很大的数据传输,例如在一个时钟周期内执行有十二位二进制数的三地址指令,参见同时提交的欧洲专利申请(ITT案U.Schmidt等1-2)。由于这种单片集成阵列处理器从MIMD原理工作(MIMD=多指令、多数据流),它可以用于种类广泛的任务。因而无法预料各个单元可能要处于等待状态多久。因此它们的数据源dq和它们的数据接收点ds被设计成静态或准静态的分支电路,即使在任意时间段的单元截断时也能保持各数据状态。这里所用的术语“准静态分支电路”也包括能通过刷新循环来在任意时间段内保持各状态的动态分支电路。因此,尽管增加了电路复杂程度,只要无法准确预料各个等待状态将持续多久,在数据单元21、22中采用这种静态或准静态分支电路就是有益的。图5表示用作此发明所述缓冲器的FIFO存储器一实施例的框图,它除了可提供通常的状态空信号e、e1或状态满信号V、v1之外,还提供第二状态空信号e2或第二状态满信号v2。所有这些状态信号都与数据存储器fi本身的充填级有关,在以上设定的例子中该存储器可存入八个十二位数据字。需写入的数据di通过输入放大器iv送入,而需读出的数据do通过输出放大器ov送出。数据存储器fi的操作如下。由写信号ωr控制的写指针pω指示数据字di将被写入的写地址。下一个写信号ωr将写地址增加一个位置,这一直持续到写指针pω返回到第一个地址。同样,读信号rs通过读指针pr来确定读地址。两个指针的输出是“8中取1”编码的,并且用八个“与”门同读、写和时钟信号连在一起。在与写指针pω有关的八个“与”门和与读指针pr有关的八个“与”门中,图5只表示了第八个“与”读门uω8和第一个“与”写门ur1。写信号ωs还控制着四位二进制计数器cb的向上计数输入端auf,而其向下计数端ab侧由读信号rs记录次数。但是,按照图5左边的表,计数器cb当只加有读信号rs或只有写信号ωs时才增加或减少。在所有其它情况下,计数值保持不变。作为一个初始状态,计数器cb和两个指针pω、pr的所有位都被置为零。计数器cb的四位在解码器dec中按照图5右边的表被解码。如果数据存储器fi为空的,计数器cb的所有四位都是“0”。在这种情况下,解码器将第一和第二状态空信号e1、e2置位。如果数据存储器fi中有单一的数据字,计数器输出信号最低位被置位。在这种情况下,解码器dec只将第二状态空信号e2置位。如果数据存在器fi中的所有寄存器除了一个之外都已被占用,即如果七个寄存器是满的,从计数器cd发出的二进制编码的输出信号的值为七。在这种情况下,解码器只将第二状态满信号v2置位。如果数据存储器的所有八个单元都是满的,计数值为八,这就使解码器dec将第一和第二状态满信号v1、v2置位。在所有其它情况下,即从计数值2到计数值6,解码器dec不将任何状态信号置位。这里应当注意,第一状态空信号e1时应于图1中的状态空信号e,而第一状态满信号v1对应于状态满信号v。为了防止当同一个存储器地址被同时写和读时两个指针pω、pr之间的冲突,读指针pr的定时在锁存器1a中被延迟了半个时针周期。写和读信号ωs、rs在时钟周期的co段被起动,两锁存器在仅半个时钟周期之后在ci段发出读信号rs。以同样的方式,通过将八个“与”写门同ci段相关联并将八个“与”读门同co段相关联可以防止16个“与”门之间的冲突。权利要求1.用于两个各带有一数据源(dq)和一数据接收点(ds)的数据交换单元(z1、z2)的数据接口的双向数据传输装置(=信号交换端口),包括-一发送器时序电路(sa1)和一接收器时序电路(su2),用来执行用以实现数据传输的信号交换协议并提供一反向单元截断信号(st1)和一正向单元截断信号(st2),-一第一时钟(cl1)和一第二时钟(cl2),用以分别使第一单元(z1)和第二单元(z2)中的数据处理同步,以及--发送器一侧至少一缓冲器和接收器一侧至少一缓冲器,带有表示该缓冲器是否准备好接收,即其中没有数据的状态信号,具有以下特点-信号交换协议可在第一和第二时钟(cl1、cl2)的一个时钟周期内执行;-接收器一侧的缓冲器为接收器缓冲器(f2),其中包括至少两个缓冲寄存器(r1、r2)并可将一第一状态空信号(e1)和一第二状态空信号(e2)置位,而它们可分别告知接收器时序电路(su2)所有缓冲寄存器为空的和除了一个之外其它所有缓冲寄存器为空的;-接收器缓冲器进而可将一状态满信号(v;v1)置位,它可告知接收器时序电路(su1)所有缓冲寄存器为满的;--发送器一侧的缓冲器为发送器缓冲器(f1),其中包括至少两个缓冲寄存器(r1、r2)并可将一第一状态满信号(v1)和一第二状态满信号(v2)置位,而它们可分别告知发送器时序电路(su1)所有缓冲寄存器是满的和除了一个之外所有其它缓冲寄存器是满的;--发送器缓冲器进而可将一状态空信号(e,e1)置位,它可告知发送器时序电路(su1)所有缓冲寄存器为空的;--在从接收器缓冲器(f2)读出一个数据字的第一个读语句(re)之后,紧接着的第二个读语句仅当第二状态空信号(e2)未被置位时才得以执行;--如果第二状态空信号(e2)被置位,正向单元截断信号(st)将使数据接收点(ds)截断,因而第二个读语句的执行被延迟至少一个时钟周期;--在向发送缓冲器(f1)写入一个数据字的第一个写语句之后,紧接着的第二个写语句仅当第二状态满信号(v2)未被置位时才得以执行;-如果第二状态满信号(v2)被置位,反向单元截断信号(st1)将使数据源(dq)截断,因而第二个写语句的执行被延迟至少一个时钟周期,以及--在正向或反向单元截断之后,第二状态空信号(e2)或第二状态满信号(v2)的状态对于第二个将被执行的读或写语句不再有影响。2.权利要求1所述的双向数据传输装置,其特征在于接收器缓冲器(f2)和/或发送器缓冲器(f1)包含至少预定数量的附加的缓冲寄存器(ri),用以缓存具有不同发生和接收率的数据,在由所述预定数量决定的几个时钟周期之内的发生和接收率按平均数计算是相等的。3.权利要求2所述的双向数据传输装置,其特征在于在作为用来与芯片之外交换数据的数据接口的情况下,可通过在两个访问该端口的相继的写语句之间插入至少一个nop指令(=空操作)将数据传输延长到至少两个时钟周期而无需改变信号交换协议。4.权利要求2所述的双向数据传输装置,其特征在于在作为用来与芯片之外交换数据的数据接口的情况下,可通过以至多一半的时钟频率用写语句来驱动发送器一侧的端口将数据传输延长到至少两个时钟周期而无需改变交接协议。5.权利要求2所述的双向数据传输装置,其特征在于在发送器缓冲器(f1)中附加缓冲寄存器(ri)的预定数量至少与到达该端口的相继的写语句(ωr)的数量相等,并且平均而言该端口是以至多一半的时钟频率由写语句来驱动的。6.权利要求1所述的双向数据传输装置,其特征在于它可用于两个异步计时的单元之间的数据通讯。7.权利要求1所述的双向数据传输装置,其特征在于数据源(dq)和数据接收点(ds)包括静态或准静态的分支电路,即使在任意时间段的一个单元截断中仍保持它们的逻辑状态。8.权利要求1至7任何一个所述的双向数据传输装置,其特征在于这种双向数据传输装置可用作数据驱动的有多个单元的单片集成阵列处理器的数据接口,这些单元与它们各自的相邻单元或芯片之外交换数据。9.权利要求2所述的双向数据传输装置,其特征在于发送器缓冲器(f1)和接收器缓冲器(f2)包含下列分支电路-有n个可寻址寄存器的数据存储器(fi),-由写信号(ωs)控制的写指针(pω)和由读信号(rs)控制的读指针(pr),所述写和读指针分别在co和ci段记录次数,-向上/向下计数器(cb),写信号(ωs)和读信号(rs)分别被送入其向上计数和向下计数输入端,以及-由向上/向下计数器(cb)的计数值得出第一和第二状态空信号(e1、e2)以及第一和第二状态满信号(v1、v2)的解码器(dec),并且-写和读指针(pω、pr)以及向上/向下计数器(cb)的计数容量等于数据存储器(fi)中可寻址寄存器的数量。10.权利要求1所述双向数据传输装置,其特征在于-发送缓冲器(f1)中的缓冲寄存器的数量至少等于使数据源(dq)截断或使其起动同等时间长度所需的时钟周期数;且-在存在这种最小缓冲寄存器数量的情况下,表示发送器缓冲寄存器(f1)的充填级的状态信号都不是必要的。全文摘要用作分别包含一数据源(dq)和一数据接收点(ds)的两个数据交换单元(z1、z2)之间数据接口的双向数据传输装置(=信号交换端口)。在每个单元中至少有一个缓冲器(f1、f2),当发送器缓冲器满或接收器缓冲器空时,反向单元截断信号(st1)或正向单元截断信号(st2)分别使数据源(dq)或数据接收点(ds)的状态冻结。这些单元截断信号(st1、st2)是由取自缓冲器(f1、f2)的附加的状态信号(v2、e2)控制的。文档编号H04L13/08GK1060377SQ9010919公开日1992年4月15日申请日期1990年11月17日优先权日1989年11月21日发明者克奴特·喀萨尔,托姆斯·希迈尔,乌里希·施米特,阿诺德·乌莱豪夫申请人:德国Itt工业股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1