本发明涉及电消息分组发送器,如用于发送电数据信号的分组到一个通信网络。 在分组交换的通信网络中,从消息源到消息目的地的通路是在该网络中产生,用于被发送的每个消息分组。通信通路的每段(连接通信网络中的相邻交换机)通过传送在该分组中的第一数据信号到该段而打开。每个通信通路段用在该段的接收端的一个设备接收在该分组中最后的数据信号来闭合。当用于一个消息分组的一个通信通路段打开时,在那个通路段上不能传送其它的消息。
当消息发射机在只发送消息分组中数据信号的一部分到通信网络之后发生故障(stall)时,在该网络的数据信号继续通过该网络传送到消息目的地,因而打开另外的通信通路段。但是,由于在该分组中的最后数据信号还未发送到该通信网络,所以被打开的通路段没有一个被闭合。因此,由消息分组打开的通路段的数量可变得更大(如大于该消息分组中的数据信号的量)。此外,由于通过消息分组打开的通路段不能由其它消息使用,通信网络的利用率可能大大地降低了。在最坏地情况,在两个或几个部分发送的消息之间可能出现死锁,阻止它们完全发送。
本发明的一个目的是提供一个电子消息发送器,它能在该消息分组的一部分被发送到该通信网络之后发送完整的消息分组,而不发生故障。
本发明的另一个目的是提供一个电子消息发送器,在中断等待状态它将不开始发送消息分组到通信网络。
根据本发明的消息分组发送器,包括一个先进先出电子存储器,用于存储形成至少一个消息分组的至少一部分的多个电子数据信号。每个消息分组包括第一电子数据信号和最后电子数据信号。电子存储器有一个消息数据输入端,用于接收电子数据信号,和一个消息数据输出端,用于输出电子数据信号。电子存储器有一个发送状态,在这个状态,存储在其中的电子数据信号有消息数据输出端输出,和一个空闲状态,在这个状态,存储在其中的电子数据信号不在消息数据输出端输出。
消息分组转变识别电路(message packet-in-transit identification circuit)在电存储器输出消息分组中的第一电数据信号之后产生一个分组转变信号。在电存储器输出消息分组中的最后电数据信号之后,分组转变识别电路产生一个无分组转变信号。
状态控制器有一个中断输入端,用于接收中断信号,和一个发送状态输入端,用于接收分组转变信号。当电存储器存储至少一部分消息分组时,状态控制器保持该电存储器处于发送状态,状态控制器的发送状态输入端接收分组转变信号,而状态控制器的中断输入端接收中断等待状态信号。
当先进先出电存储器包含至少一个消息分组的至少一部分时,该先进先出电存储器例如可产生一个分组存储(packet-in-mem-ory)信号,状态控制器可有一个存储内容状态输入端,用于接收分组存储信号。
在本发明的一个方面中,当状态控制器的存储内容状态输入端接收分组存储信号,状态控制器的发送状态输入端接收分组转变信号且状态控制器的中断输入端接收中断等待状态信号时,状态控制器将电存储器从空闲状态转换到发送状态。
最好是,在状态控制器的存储内容状态输入端接收分组存储信号、状态控制器和发送状态。当数据源处在第一状态和状态控制器的发送状态输入端接收分组转变信号及状态控制器的中断输入接收中断信号时,状态控制器最好保持该数据源处于第一状态。
本一发明的另一个方面,当状态控制器的发送状态输入接收无分组转变信号和状态控制器的中断输入接收无中断等待状态信号时,该状态控制器将电存储器从发送状态转换到空闲状态。
当电存储器处于空闲状态,状态控制器的发送状态输入端接收无分组转变信号且状态控制器的中断输入端接收中断等待状态信号时,状态控制器最好保持该电存储器处于空闲状态。
当状态控制器的存储内容状态输入端接收分组存储信号和状态控制器的中断输入端接收无中断等待状态信号时,该状态控制器最好将电存储器从空闲转换到发送状态。
根据本发明,消息分组发送器可进一步包括具有第一状态的一个数据源,用于给电存储器的消息数据输入端提供一系列的电数据信号。该数据源还有第二状态,用于不给电存储器的消息数据输入端提供电数据信号。当状态控制器的中断输入端接收中断等待状态信号以及该状态控制器的发送状态输入端接收无分组转变信号时,该状态控制器将数据源从第一状态转换到第二状态。
当数据源处在第一状态和状态控制器的发送状态输入端接收分组转变信号及状态控制器的中断输入接收中断信号时,状态控制器最好保持该数据源处于第一状态。
根据本发明的一个方面,在每个消息分组中的第一电数据信号包括一个长度信号,它代表消息分组中电数据信号的数量。消息分组转变识别电路包括一个分组转发计数器,用于产生一个分组转变信号,该分组转变信号代表还未由该电存储器输出的在该消息分组中的电数据信号的数量。
通过提供具有消息转变识别电路的一个消息分组发送器,在电存储器输出一个消息分组中的第一电数据信号之后产生一个分组转变信号,和提供一个状态控制器,在电存储器存储一个消息分组的至少一部分、和状态控制器的发送状态输入端接收一个分组转变信号和状态控制器的中断输入端接收一个中断等待状态信号时,用于保持该电存储器处于发送状态,这就保证该消息分组发送器发送完整的消息分组,而在该消息分组的一部分发送到该通信网络之后不停发。
通过提供一个消息分组发送器,在电存储器处于空闲状态和状态控制器的发送状态输入端接收一个无分组转变信号及该状态控制器的中断输入端接收一个中断等待状态信号时,该状态控制器保持该存储器处于空闲状态,这就保持在中断是等待状态时该消息分组发送器不开始发送消息到通信网络。
图1是根据本发明的一个消息分组发送器的一个例子的方框图。
图2是用在图1的消息分组发送器的一个先进先出电存储器的一个例子的方框图。
图3是图1的消息分组发送器的状态控制器的状态图的例子。
图4是图1的状态控制器的一个例子的方框图。
图5是图1的消息分级发送器的一个消息分组转接识别电路的一个例子的方框图。
图6是图5的消息分组转接识别电路的“一击”(one shot)电路的一个例子的方框图。
图7是图1的消息分组发送器的状态控制器的另一个例子的方框图。
图8是图7的状态控制器用于产生非完整的分组存储信号的电路的一个例子的方框图。
图9是图1的消息分组发送器的中断逻辑电路的一个例子的方框图。
图1是根据本发明的一个消息分组发送器的一个例子的方框图。该消息分组发送器包括一个先进先出电存储器10,用于存储形成至少一个消息分组的至少一部分的多个电数据信号。每个消息分组包括一个第一电数据信号和一个最后的电数据信号。该电存储器10有一个消息数据输入端12,用于接收电数据信号,电存储器10还有一个消息数据输出端14,用于输出电数据信号。
该电存储器10有一个发送状态,在该状态存储在其中的电数据信号在该消息数据输出端14被输出,电存储器10还有一个空闲状态,在该状态,存储在其中的电数据信号在该消息数据输出端14不被输出。
消息分组发送器进一步包括一个消息分组转变识别电路16。在该电存储器10输出一个消息分组中的第一电数据信号之后,该消息分组转变识别电路16产生一个分组转变信号。在该电存储器10输出该消息分组中的最后电数据信号之后,分组转变识别电路16还产生一个无分组转变信号。
根据本发明消息分组发送器还包括一个状态控制器18,该状态控制器18有一个中断输入端20,用于接收中断等待状态信号。状态控制器18还有一个发送状态输入端22,用于接收分组转变信号。在该电存储器10存储一个消息分组的至少一部分、状态控制器18的发送状态输入端22接收分组转变信号和状态控制器18的中断输入端20接收中断等待状态信号时,该状态控制器18保持该电存储器10处于发送状态。
在先进先出电存储器10包含至少一个消息分组的至少一部分时,该先进先出电存储器10例如可产生一个分组存储信号。该状态存储器18有一个存储内容状态输入端24,用于接收分组存储信号。
图2是一个先进先出电存储器10的一个例子的方框图。电存储器10包括连接到消息数据输入端12并且连接到消息数据输出端14的一个存储单元阵列26。存储单元阵列26有一个地址输入端28,它从一个地址解码器与比较器30接收地址。
该地址解码器与比较器30从一个写地址计数器32接收写地址,并从一个读地址计数器34接收读地址。如果该存储单元阵列26是一个单端口阵列,则读和写地址在时间上进行多路复用,以便给地址解码器与比较器30每次提供一个地址。如果存储单元阵列26是一个双端口阵列,则可同时应用读和写地址,和在消息数据输出的同时消息数据可被输入。
写地址计数器32和读地址计数器34每个分别有前进输入端36和38。在存储单元阵列26是空的时候,计数器32和34都指到存储单元阵列26中的相同地址。在一个消息数据信号出现在消息数据输入端12和一个写启动信号出现在前进输入端36时,则消息数据信号被存储在存储单元阵列26中由写地址计数器32识别的位置,然后写地址计数器32前进到存储单元阵列26中的下一个存储位置的地址。
当一个状态控制信号出现在该读地址计数器34的前进输入端38时,存储在存储单元阵列26由该读地址计数器34的内容识别的位置的消息数据在消息数据输出端14被输出,写启动信号在写启动线40上输出,而读出地址计数器34前进指到存储单元阵列26的下一个存储位置。
当先进先出电存储器10包含至少一个消息分组的至少一部分时,地址解码器与比较器30将来自写地址计数器32的写地址与来自读地址计数器34的读地址进行比较,并产生一个分组存储信号。该分组存储信号可以由一个时延锁存器42锁存。为了补偿该时延,在读地址前进到写地址的一个存储位置内时,该地址解码器与比较器可产生一个无分组存储信号。写地址计数器32和读地址计数器34可以往上计数或者往下计数来前进。
图3是图1的状态控制器18的状态图的一个例子。在这个例子中,状态控制器18有一个发送状态44,该状态相应于先进先出电存储器10的发送状态,和有一个空闲状态46,该状态相应于先进先出电存储器10的空闲状态。如图3所示,当状态控制器18的存储内容状态输入端24接收分组存储信号和状态控制器18的发送状态输入端22接收分组转变信号,以及状态控制器18的中断输入端20接收中断等待状态信号时,该状态控制器将电存储器从空闲状态46转换为发送状态44。
当状态控制器18的存储内容状态输入端24接收分组存储信号,状态控制器18的发送状态输入端22接收分组转变信号和状态控制器18的中断输入端接收中断等待状态信号或无中断等待状态信号时,状态控制器18保持电存储器10处于发送状态。
从图3还看到,当状态控制器18的发送状态输入端22接收无分组转变信号和状态控制器18的中断输入端20接收中断等待状态,信号或无中断等待状态信号时,该状态控制器18将电存储器10从发送状态44转换到空闲状态46。
当电存储器10处在空闲状态、状态控制器18的发送状态输入端22接收无分组转变信号和状态控制器18的中断输入端20接收中断等待状态信号时,该状态控制器18保持电存储器10处于空闲状态46。
当状态控制器18的存储内容状态输入端24接收分组存储信号和状态控制器18的中断输入端20接收无中断等待状态信号时,该状态控制器18还将电存储器10从空闲状态46转换到发送状态44。
图4是具有图3的状态图所示的状态和转变的状态控制器18的一个例子的方框图。如图4所示,该状态控制器有一个状态控制信号输出端48,和有一个中断禁止信号输出端50。利用时延锁存器52,或门54和非门56,当一个分组转变信号PIT=1加在非门56的一个输入端和一个反向的中断禁止信号Q=0加到非门56的另一个输入端时,则在输出端50产生一个中断禁止信号 Q=1。只当无分组转变信号PIT=0加到非门56时,该中断禁止信号才从 Q=1转换到 Q=0(中断启动)。
在输出端50存在无中断禁止信号 Q=0时,无中禁止信号将保持在 Q=0,除非一个中断等待状态IP=1出现在到或门60的一个输入端,或者一个无分组存储信号PIM=0出现在反向器62。但是,当一个中断禁止信号 Q=1出现在输出端50时,在到与门58的一个输入端的反向的中断禁止信号Q=0,当一个中断等待状态信号IP=1出现在到或门60的一个输入端或者一个无分组存储信号PIM=0出现在反向器62时保持 Q=1。
在输出端48的状态控制信号具有一个值“1”,代表只当一个反向中断禁止信号Q=0出现在非门64的一个输入端和当一个反向分组存储信号 PIM=0出现在非门64的另一输入端时的发送状态。当在输出端48的状态控制信号具有代表该发送状态的值“1”时,图2的电存储器10的读地址计数器38随着每个读周期前进,和在电存储器10的写启动线40提供一个写启动信号。
图5是一个消息分组转变识别电路16的一个例子的方框图。消息分组转变识别电路16包含具有一个数据转入端68、一个8比特计数输出端70、一个加载启动输入端72和一个递减启动输入端的一个分组转变计数器66。从电存储器10输出的每个消息数据信号也出现在分组转变计数器66的数据输入端68。只在中断禁止信号在“一击”电路75的输入端从“0”变为“1”时,该“一击”电路75才向分组转变计数器66的加载启动输入端72提供一个一周期加载信号。因此由“一击”电路75产生的加载信号与来自该存储器10的新消息分组的第一数据信号的输出一致。通过在每个消息分组中提供具有一个值等于该消息分组的长度的第一电数据信号,该分组转变计数器66被加载等于该分组长度的一个起始计数。
此后,在一个分组存储信号PIM=1出现在该分组转变计数器66的递减启动输入端74的每个周期期间,该计数减一。只是计数器66中的值不是零,或门76就产生一个分组转变信号PIT=1。
图6是图5的“一击”电路76的一个例子的方框图。如图中所示,只在当前周期“一击”电路的输入是“1”,和紧接的前一周期“一击”电路的输入是“0”时,时延锁存器80、与门82和反向器84才保证该“一击”电路输出一个“1”。
图7是图1的状态控制器18的另一个例子的方框图。除了与门58之外,图7中所示的状态控制器与图4中所示的状态控制器相同。在与门58的第三输入端加上一个非全分组存储信号。当在电存储器10中存在一个全消息分组时(除了从存储器10部分发送的任何消息分组和由存储器10部分接收的任何消息分组),在到或门60的一个输入端的一个中断等待状态信号将不能防止该中断禁止信号从 Q=0转变为 Q=1,因此不能防止状态控制顺从空闲状态46转变为发送状态44。
图8是图7的状态控制器用于产生非全分组存储信号的电路的一个例子的方框图。可逆计数器88具有等于存储在电存储器10中的全消息分组的数量的一个值。当计数器88的值为零时,非门90输出一个代表非全分组存储的“1”信号。可逆计数器88例如可以是一个4位计数器。
每当一个消息分组的第一数据信号从电存储器10读出时,状态控制器18(图4和7)的中断禁止信号从“0”变为“1”。通过提供该中断禁止信号到“一击”电路92的输入端,递减信号被加到可逆计数器88的递减输入端,因而该计数减一。
当一个新消息分组的第一数据信号从一个数据源输入到电存储器10,和当该数据源提供一个写启动信号时,则第一数据信号“代表该分组长度”的值被写入一个递减计数器94。起初,递减计数器94具有一个零值。经过非门96和与门98,在该数据源提供写启动信号时,在该消息分组的第一数据信号出现在递减计数器94的数据输入端的同时该递减计数器94被允许加载。
此后,当在递减计数器94中计数的值不为零时,在该数据源提供一个写启动信号的每个周期期间非门96和与门100使该递减计数器94递减。当整个消息分组装入电存储器10时,递减计数器94中的计数从“1”变为“0”,非门96的输出从“0”变为“1”,而“一击”电路102使该可逆计数器88递增1。
回到图1,消息分组发送器可进一步包括一个中断逻辑电路104和一个数据源106。该数据源有一个第一状态,用于提供一系列的电数据信号到电存储器的消息数据输入端。该数据源还有第二状态,用于不给电存储器的消息数据输入端提供电数据信号。经过中断逻辑电路104,当状态控制器18的中断输入端20接收一个中断等待状态信号和状态控制器18的发送状态输入端22接收无分组转变信号时,该状态控制器18将该数据源106从第一状态转换到第二状态。
当数据源106处在第一状态、状态控制器的发送状态输入端22接收一个分组转变信号和状态控制器18的中断输入端20接收一个中断信号时,该状态控制器18保持该数据源106处于第一状态。
数据源106例如可以是将数据信号写入一个选定的地址的一个微处理器。
图9是图1的中断逻辑电路104的一个例子的方框图。当中断禁止信号和非全分组存储信号的任一个或两个都具有值“0”时,经过时延锁存器108、与门110和与非门112,加到中断逻辑电路104的输入端的一个中断信号经过中断逻辑电路104的输出端加到该数据源106。当一个中断信号出现在中断逻辑电路104的输入端时,解码器114产生一个中断等待状态信号。
通过将图9的中断逻辑电路104与图7的增强的状态控制器组合,当一个消息分组从电存储器10被发送时,中断传送到数据源106,只要除了目前从电存储器10被发送的消息分组之外至少有一个存储在存储器10中的全消息分组。