其中数据处理单元经网络进行通信的数据处理电路的制作方法

文档序号:7634060阅读:228来源:国知局
专利名称:其中数据处理单元经网络进行通信的数据处理电路的制作方法
技术领域
本发明涉及一种数据处理电路,在该电路中,数据处理单元是经网络进行通信的,特别地,本发明涉及一种包含了此类数据处理电路的集成电路。
信号处理电路处理的是音频或视频数据之类的实时流或接近实时的流。在分布式信号处理电路中,这种数据的流会在不同数据处理电路之间进行交换,该电路则可以是用于处理该流的可编程处理器电路、专用处理电路、外围IO电路等等。
流所具有的实时特性要求有可供其使用的得到保证的通信带宽,按照其则可以每时间单位传送预定的数据量。提供用于该目的的通信结构的最简单的方法是为每一个流实现专用连接导线。然而在大多数情况下,较为理想的是提供一种可以由不同流共享的通信结构。这样做可以减少用于连接导线的电路面积,在流只在有限的时间跨度中存在或者流并未占用所有可用通信带宽的情况下则更是如此。
一种通信总线结构足以在具有少量数据处理单元的简单电路中提供用于通信。在总线结构中,通信数据处理单元与共享的一组通信导线相耦合,且来自不同流的数据是在交替时隙中经由这些通信导线传递的。然而,在必须互连的通信数据处理单元的数量不断增长时,这种简单的通信结构将不再能够满足需要。
为了提供更大和更灵活的通信容量,越来越多的使用了通信网络来互连那些处于集成电路内部的数据处理单元。在一个网络中,不再有单组共享的通信导线来直接连接数据处理单元。取而代之的是提供多组这样的可共享的通信导线,这些可共享通信导线由所谓的节点电路相互连接,该节点电路将来自一组通信导线的数据转发到另一组通信导线,从而在不同的数据处理单元之间创建通信路径。一般来说,网络使得有可能沿着若干备选路径中的一条可选路径而在一对数据处理单元之间建立连接。如果一条路径中的某个部分被占用,那么可以选择另一条路径。由此,各个流可以在众多的可任选数据处理单元对之间并行传递。
流的实时特性需要对每一个有效流有一个被保证的带宽量持久地可用,该带宽量通常是可用通信时隙中的某个预定部分。应该防止由于争用通信导线之类的资源所导致的流通信中断,因为这类中断会导致视频显示中的中断或是音频输出中的迟钝(hick up)等故障。在某种程度上,争用问题可以通过在节点中临时缓冲数据来加以缓解,但是因为缓冲存储器的包含会增大节点使用的集成电路面积,因此应将缓冲量最小化。
通常,对一个流保证实时带宽的持久可用性需要某种形式的集中规划,或者至少需要对网络中的节点进行设计,以便为每一个流保留资源,例如指示在预定时隙中为一个特定流保留对到下一个节点的通信导线的访问。当数据处理单元启动流时,有必要在节点电路中搜索未被保留的时隙,其可能会与其他的已启动流发生争用。
需要在节点中存储信息以指示为一个流保留带宽会使节点设计复杂化,这可能导致节点变慢并且占用宝贵的电路面积。此外,设立这类保留数据的过程也具有相同的缺点。
特别地,本发明的一个目的是提供带有互连网络的一个数据处理单元的电路,其中一旦建立了数据的流,那么该网络就为该数据流中的连续消息提供有保证的访问,而不需要在网络的节点电路中存储关于该流的信息。
特别地,本发明的另一个目的是将那些在足以确立流来接收有保证的访问之前需要传送的消息的数量减至最少。
特别地,本发明的又一个目的是对接收到来自该流的消息做出响应,建立一个从进行接收的数据处理单元返回的流,由此为返回流的消息提供对网络的有保证的访问,同时,一旦进行接收的数据处理单元开始传送返回流中的消息,那么只需要最少的消息来建立该返回流。
特别地,本发明的再一个目的是支持数据处理单元的使用,其中该数据处理单元被编程成以分布方式执行组合任务,由此经由互连网络来传送任务中包含的数据流,其中程序与经由该网络的路径长度无关。
本发明提供了一种依照权利要求1的电路。在这个电路中,数据处理单元通过时隙复用网络相互连接,该网络包含了经由网络转发消息的节点电路。数据处理单元选择消息流的启动时隙,其以一种周期性重复的时隙模式来占用网络中的资源,并且每一个流都具有相同周期(称为网络周期),而流中的连续消息则是沿着经由该网络的相同的流特定的路径来行进的。
节点电路基于其特定流中的消息资历(seniority)(也就是自启动这个特定流起处于这个消息之前的消息的数量)来仲裁该消息是否能够访问可共享的网络资源(例如节点电路之间的通信线路)。只有当来自先前启动的流的具有更高资历的消息留下了足够资源时,节点电路才会转发来自特定流的消息。否则是不会转发该消息的。举例来说,该资历可以在消息的某个字段中指示,节点电路则通过读取该字段来确定资历。由此,一旦从节点电路转发了初始消息,就可以确保所有后续消息都将从那个节点电路转发,因为在稍后的整数个网络周期中争用资源的新产生的周期性流将始终没那么高资历。
在实施例中,发回一个确认,该确认将会证实流中的初始消息到达了流的目的地数据处理单元。一旦源数据处理单元接收到这个确认,那么我们可以确信该流中的所有后续消息都将被转发。这样一来,通过以下方式可以简化有关转发消息的判决,即如果一个消息具有的资历超出了在接收到确认之前的最后一个消息的阈值资历,那么可以准许无条件的访问。
优选地,甚至是在一个流的初始消息达到目的地数据处理单元之前,便向源数据处理单元确认该网络中的节点电路已经部分转发了该初始消息。这样做会降低阈值资历,之后便不再需要执行仲裁。优选地,节点电路如此频繁地发送确认,以致阈值资历可被减小到1,使得只需要为该流中的初始消息来仲裁资源争用。这可以简化仲裁,并且可以最小化无益的资源占用。
优选地,如果节点电路没有及时接收到转发初始消息的确认,那么该节点电路会丢弃流中的消息。并不需要以每一个节点电路中的确认接收为条件来进行转发。每次为沿该路径中的某一段的多个节点电路执行所述操作便足够了。为此目的,单个确认最迟在与来自特定流的下一个消息相同的时隙中到达处于某一段开端处的节点电路便足够了,以此表明先前消息已经成功地转发到该段的末端。因此,每网络周期只需要将确认经由一节点电路传递一次,且在沿该段的多个节点电路处是不需要确认的。
优选地,节点电路会沿着流消息路径来发回一个或多个确认,以便指示成功地通过网络转发了消息。作为替换,举例来说,该确认可以在网络之外发回。在沿着经由网络的路径发回确认的实施例中,节点电路优选地是在返回时隙中发回该确认的,该返回时隙被选择,使得借助预定方案可以预测所述确认与流中后续消息相交的交叉时隙(举例来说,使得交叉是在预定时隙或是如下时隙中发生的,即该时隙可以从那些已知要包含在流的后续消息中的信息计算得到)。节点电路使用预定方案来预测交叉时隙,并且测试它们是否在所预测的交叉时隙中接收到交叉消息以及用于相同流的确认。如果没有检测到消息与确认的预期交叉,那么节点电路就丢弃这个消息。这样一来,一旦没有转发初始消息(正如从缺少预期的确认而清楚了解的),则也丢弃那些如此高资历而应该与所述确认相交的消息,由此使得不必为这些消息仲裁对网络资源的访问。这简化了仲裁并且最小化无益的网络占用。
优选地,足够频繁地发送确认,以使节点电路上的第一交叉必须至多在那个节点电路已经转发了该流的初始消息之后的一个网络周期(且优选的是恰好一个网络周期)出现。这样,确保能够转发流中的第二消息以及其他消息,而不用进一步仲裁该消息是否与确认相交。通过在彼此相隔至多半个网络周期的时隙中发送连续的初始消息转发确认,可以确保节点上的转发与节点上的后续交叉之间至多一个网络周期的延迟。这样一来,对于初始消息从发送第一确认的节点电路行进到发送第二确认的另一个节点电路的时间、以及确认从所述另一个节点电路行进回到该节点电路的时间来说,这两个时间的总和至多是一个网络周期。
优选地,所述确认是在选定的返回时隙中发送的,使得连续的确认以所述网络周期而周期性占用网络每一个资源。这样,资历仲裁方案同样可用于确认。当在一系列时隙的各个时隙中转发初始消息、而这些时隙以恰好半个网络周期来重复时,通过发送初始消息转发确认,而可以实现周期性的网络资源占用。这样一来,只是通过对时钟周期进行计数,就可以选择用于发回确认的返回时隙。
优选地,返回流是响应于原始流中的初始消息接收而从原始流的目的地数据处理单元建立的。目的地数据处理则被安排成发送返回流中的返回消息,使得它们在整数个网络周期之后跟随所述原始流的各确认,从最后一个确认之后的一个网络周期开始。这样一来,在前的确认可以用作返回流中的更高资历的消息,而这将会降低(或者甚至消除)返回流中的返回消息被基于仲裁而丢弃的可能性。基本上,返回流是被准许访问的,不需要对返回消息的转发进行仲裁。
在一个实施例中,进行接收的数据处理单元被预先安排,以便周期性地从一个时隙开始来发送返回流中的消息,该时隙是根据原始流中的初始消息的到达时隙而被选择。执行该选择,使得原始流中的初始消息达到的时隙序列号与返回流中的消息传输时隙序列号ts、tr的总和等于预定编号“s”对流的网络周期取模。这预先确保了在甚至不了解经由网络的路径长度的情况下,也可以确定返回流与原始流的消息在节点电路处将在哪些时隙中彼此相交。这种交叉时隙的序列号的两倍等于2*(s+1),即两倍的预定编号加1对该流的网络周期取模。这样使节点电路能在传输返回流之前选择沿该路径传输返回的确认的时间。
对每一个流来说,可将预定编号选为相同的,或者也可以为每一个流单独选择编号,流的初始消息指示所述编号,由此,节点电路可以确定何时发送确认消息。在一个实施例中,该预定编号模该网络周期等于负一。这样,节点电路可以在那些序列号模半个网络周期等于零的时隙中发送确认。
本发明的这些和其他目的以及有利方面将借助下列附图中显示的实例来描述的。


图1显示的是数据处理电路。
图2显示的是连接了一对数据处理单元并且经由网络的路径。
图2a显示的是经过一个网络的替换实施例的路径。
图3显示的是节点电路。
图3a显示的是节点电路的一部分。
图4描述的是在通信过程中使用的时隙。
图5描述的是在通信过程中使用的另外的时隙。
图1显示的是一个数据处理电路,该电路包括多个数据处理单元10以及互连这些数据处理单元的网络12。通常,数据处理单元10与网络12是一起整合在集成电路中的。术语“数据处理单元”一般用于产生和/或处理数据的任何类型的电路,其中包括但不局限于可编程信号处理核心、DCT(离散余弦变换)计算电路之类的专用信号处理电路、存储器、IO电路等等。虽然在这里明确显示了三个数据处理单元10,但是应该理解,在实践中将可以存在更多电路。
图2显示的是网络12的一部分,其中包含了通信导线20以及互连通信导线20的节点电路22。终端节点电路22a、b将数据处理单元10a、b耦合到网络12。虽然在这里显示线路对是用于经由通信导线20来执行前向和反向通信的,但是应该理解,每一条线路实际都可能代表例如多条用于消息数据和各种控制数据的通信导线。如所示,一部分通信导线20以及节点电路22形成了一条通信路径,该路径是经由该网络在传输数据处理单元10a与接收数据处理单元10b之间的。应该强调的是,附图只显示了网络12中涉及所示特定路径的一部分通信导线20以及节点电路22。在实践中是可以存在更多的通信导线20以及节点电路22的,另外,在图中所示的这对数据处理电路10a、b之间还可能存在更多路径。
图2a显示的是一条经过了网络的替换实施例的路径,其中通信导线20为前向和反向通信所共享。每一次两个节点电路22会连接到通信导线20以及访问控制电路24,如果这两个节点电路全都尝试进行访问,那么所述访问控制电路24会决定哪一个节点电路将能够进行访问。应该理解的是,在其他类型的网络中,两个以上的节点电路22可以与同一个通信导线20相连。
在操作中,选定的数据处理单元10经由网络12而将数据流传送到选定的其他数据处理单元10。每一个流都包含了一系列消息,这些消息从传输数据处理单元10a进入网络12,并且从节点电路22经由网络12转发到节点电路22,以到达接收数据处理单元10b。由此,流中的每一个消息都是沿着某一条节点电路22的路径经由网络12传递的。一般来说,该电路是在连续时隙中工作的,使得每一个消息都会在连续时隙中沿着连续的通信导线20进行传送。
数据处理单元10以网络周期P而周期性地传送来自每一个流的消息,其中该网络周期通常是依据从传送流中的某一个消息到传送流中的下一个消息的多个传输时隙来表示的。来自同一个流的所有消息始终是经由相同路径传递的。为此目的,在一个实施例中,传输数据处理单元10a将路径描述包含在每一个消息中,但是举例来说,该路径也可以借助路径的源和目的地来加以暗示。此外,传输数据处理单元10a或终端节点电路22a、b还在消息中包含了用于表明所述消息是否是流的初始消息的信息。
图3显示的是节点电路22的一个实施例。该实施例包含了与通信导线20相耦合的多个端口222以及用于相应端口222的相应路由电路220,其中所述通信导线20与节点电路22相耦合。每一个路由电路220都具从其端口耦合到相应外出通信导线20的输出端,以及从剩余端口20耦合到进入通信导线的输入端。在将通信导线用于双路或多路通信的实施例中,路由电路的输出端耦合到端口222的组合输入/输出端。出于例示目的,在这里将节点电路显示成具有四个输入端和四个输出端。但是应该理解,节点电路可以具有任意数量的端口以及路由电路。
图3a显示的是路由电路220中的某一部分的实施例。
路由电路220包括输入消息存储器36、接收电路37a-c以及转发电路38。输入消息存储器36经由转发电路38而与一个或多个外出数据导线30d相耦合,并且具有与接收电路37a-c相耦合的端口。转发电路38也从与其输出数据导线30d相同的端口耦合到一个或多个进入数据导线32。每一个接收电路37a-c都与剩余端口中某一个相应端口的进入数据导线相耦合。此外,转发电路38还具有用于返回使能信号的输入端。
在操作中,节点电路22接收来自进入数据导线30a-c的消息,并且将这些消息保存在输入消息存储器36中。转发电路38对每一个消息进行检查,以便确定是否应该经由一个或多个与转发电路38相耦合的输出数据导线30d来转发所述消息。转发电路38使转发一个消息的判决首先基于是否存在来自一个以上的输入端30a-c的消息,以及在选定时隙中还基于是否已从输入端32接收到返回消息。
在使用了双路或多路通信导线的实施例中,转发电路38还会根据是否可以访问外出通信导线30d来做出转发判决。在这个实施例中,转发电路依照外出消息在其流中的位置(初始或后续)来发布一个访问控制信号。如果该消息是后续消息,那么转发电路38会向访问控制电路施加一个支配(overruling)访问信号,并且确保该消息能够经由它的一个或多个数据导线30d来进行传送。如果该消息是一个初始消息,那么转发电路38会向访问控制电路施加一个请求信号。如果为通信导线提供的访问控制电路24返回的是访问准许信号,那么转发电路38会经由它的一个或多个数据导线30d来传送所述消息。如果没有的话,则不会传送所述消息。在这种情况下,消息将会丢失且说成是被丢弃。
在这个实施例中,只有在为通信导线提供的访问控制电路24没有从任何转发电路(在任何附接的节点电路中)接收到支配信号时,它才会返回访问准许信号。如果访问控制电路24接收到单个请求并且没有接收到支配信号,那么它会准许该请求。如果访问控制电路24从一个以上的转发电路接收到非支配请求,那么它会选择这其中的一个转发电路,并且准许对那个转发电路进行访问。
尽管为了清楚起见,在图3中为每一个端口都显示了独立的路由电路220,并且这些电路具有用于存储来自其他端口的进入消息的存储器36,但是应该理解,在实践中当然也可以将单一的路由电路用于所有端口,一个存储器来存储从所有端口接收的消息,该路由电路则将这些消息路由到任何恰当的端口。
如下文中详细描述的那样,向传送流的消息的源数据处理单元10告知至少该初始消息成功经由网络12传输。源数据处理单元10被安排为如果在任何地方丢弃了初始消息,那么制止传送来自该流的后续消息。在这种情况下,源数据处理单元10通常会尝试在不同的时间点重新启动该流。
应该了解的是,借助这种机制,一旦成功转发了流中的初始消息,那么对于该流中的消息便使一个有保证的信道可用,由此在沿着该路径的节点电路中周期性地占据重复的时隙。当已由节点电路在某个时隙中转发了一个初始消息时,那么已知没有更旧(older)的流通过在那个时隙中要求那个节点电路而阻挡访问。一旦成功传输了初始消息,则确保后续引发的流不能以后续消息为代价来妨碍访问。
在下文中将会描述用于向数据处理单元10告知成功传输了初始消息的方式。
在第一实施例中,一个流(进一步称为“原始流”)的接收数据处理单元10b被安排为对接收到原始流中的初始消息做出响应,从而设立一个返回流。来自返回流的消息沿与原始流的消息相同的节点电路22在相同路径上传送,但是是在相反的方向上。与原始流(以及任何其他流)相似,返回流由那些在周期性重复的时隙中传送的消息组成。
由此,借助于返回流中初始消息的到达,向传输数据处理单元10告知成功传送了该流的初始消息。如果传输数据处理单元10a没有及时接收到返回流中的初始消息,那么它会断定初始消息已被丢弃,并且停止传送原始流中的后续消息。
优选地,刚一接收到原始流中的初始消息,节点电路22便在一些周期性时隙中沿着该路径反向传送返回流中的预报(precursor)消息,在所述周期性时隙中将传送所述返回流中的后续消息。这使传输数据处理单元10a能较早检测到已经丢弃了初始消息,使得它可以较早停止传送原始流中的后续消息。当然,为此目的节点电路22需要知道返回流中的消息会在将来的什么时间到达。优选地,该电路被安排使得这是跟随在原始流中的初始消息到达时间之后。
在一个实施例中,由于将接收数据处理单元10b安排成根据接收原始流中初始消息的时隙来选择用以传送返回流中的初始消息的时隙,因此,这种处理被简化。所选定的时隙是基于下列考虑而被确定的。假设将连续的整数编号“t”分配给时隙。令“ta”为原始流中的初始消息到达接收数据处理单元10b的时隙的编号。由于来自原始流的消息是周期性传送的,因此,消息将会在任何一个满足下列条件的后续时隙中到达t=tamod P(在这里,等式(或等式语句)之后的常规按模运算限定条件“modP”表明如果在右边加上P的某个整数倍,仍满足该方程式(或等式)。更具体地,在当前等式中存在整数“n”,使得t=ta+nP)。令“tr”为来自接收数据处理单元10b的返回流中初始消息的传输时隙的编号。现在,接收数据处理单元10b被安排成在第一个时隙中传送返回流的初始消息,其中该时隙满足tr=-ta-1 mod P进行这一选择,以确保来自返回流以及原始流的消息在特定时间点上沿着该路径相互交叉。如果来自原始流的消息是在编号为tc-1的时隙中在一对节点电路22之间的一个或多个特定数据导线20中传递,并且来自返回流的消息是在编号为tc的时隙中在这对节点电路22之间反方向传递,那么就说在编号为tc的时隙中出现交叉。结合之前关于tr的选择,时间点tc满足2tc=0 mod P也就是说,如果P是偶数,那么tc会以大小为P/2的周期进行重复。令人惊讶的结果是,交叉的时隙既不取决于所涉及的这对节点电路22,也不取决于用以从源数据处理单元10传送消息的时隙。从下文中可以看到情况是如此的。如果使用整数“i”来对一个或多个数据导线20进行编号,其中所述编号沿着路径递增,在源数据处理单元10上是从零开始的,并且在接收数据处理单元10b上递增到“k”,那么原始流中的消息是在编号为“i”的一个或多个数据导线20上在编号为“ti”的时隙中传递的,其中ti满足
ti=t0+i mod P相应地,这些消息到达接收数据处理单元10b的时隙满足ta=t0+k mod P返回流中的消息是在具有编号“i”的一个或多个数据导线30a上在编号为“ti’”的时隙中传递的,其中所述ti’满足ti’=tr+k-i mod P用表达式替换tr和tat1’=-t0-1-i mod P在ti=t1+1、即-t0-i-1=t0+i+1 mod P时出现交叉。
也就是说,如果2*i=-2*(t0+1)mod P那么2*ti’=0 mod P这种关系正是较早时提到的关系,这表明交叉的时隙既不取决于所涉及的一个或多个数据导线20,也不取决于从源数据处理单元10a传送消息的时隙。这通过在以下的情况中、产生返回流中的预报消息以及在时隙“t”中沿着一个或多个进入的数据导体30d反向传送这些消息,而在节点电路22中应用(a)t满足2t=0 mod P(这是由RET输入端上周期为网络周期P的一半的时钟信号指示的)。
(b)来自原始流的消息已从一个或多个进入的数据导线32到达节点电路,并且可获得访问来转发该消息。
(c)没有对于原始流的该返回流中的消息或预报消息是在之前时隙t-1中沿该路径反向到达的(正如可以通过检查用于这种消息的存储器36来确定的)。
(d)可获得访问来用于在时隙t中沿着一个或多个进入的数据导线30d反向传送预报消息在产生预报消息时,转发电路38会将其标记为初始消息。然而,当节点电路在某个满足2t=0 mod P的时间t-1、从标志为返回流的某个流接收到初始消息(预报或其他任何消息)时,该节点电路在将该消息转换成“后续”消息之后转发这个消息,使得所述消息不再是用于转发判决目的的初始消息。由此,预报消息能够沿着早先的预报消息所铺设的路径前进,从而得到支配访问。
图4描述的是在使用这种机制时、对沿某条路径上的数据导线的、作为时间函数的占用。第一条水平线用于表示连续时隙,这些时隙被分组到具有P=8个时隙的网络周期中。处于这条线下方的连续行则用于表示经由该网络沿该路径的一个或多个连续数据导线的占用,用索引“i”来标注。传输数据处理单元10a在第一个时隙t0中传送原始流的初始消息(用“a”标记)。这个初始消息是在连续时隙中沿着路径上的一个或多个连续数据导线行进的。该初始消息在另一个时隙ta中到达接收数据处理单元10b。作为响应,接收数据处理单元10b在时隙tr中开始传送返回流中的消息(用b标记),其时隙的编号依照下式而与ta相关tr=-ta-1 mod P正如可以注意到的,来自返回流的消息b在网络周期开端以及网络周期中途处的交叉46、48与来自原始流的消息相交(相交,即在数据导线被来自原始流的某个消息占用的时隙之后的时隙中占用那个数据导线)。正如已经说明的那样,通过为返回流中的消息恰当选择时隙tr,这种特性并不取决于经由该网络的路径的长度,也不取决于原始流中的开始时隙ta。
当来自原始流的消息在这类时隙中到达并且没有接收到返回流中的消息时,节点电路22会产生返回流的预报消息(用p标记)。由此,交叉40、42被仿真。预报消息转而可以导致一个交叉44。在这样一个交叉上是不需要产生新的预报消息的。而旧的预报消息则仅仅会被转发。
应该理解的是,预报消息p向原始流的传输数据处理单元10a指示沿经由该网络的路径的其他连续部分中并未丢弃原始流的初始消息。当传输数据处理单元没有接收到返回流中的预报消息或正常消息时,它不会传送原始流的下一个消息。
与此同时,预报消息还用于为返回流铺设路径。在大部分路径中,返回流的真实初始消息(接收数据处理单元10b发送的第一个消息)实际是跟随在一个或多个预报消息(这些消息已由节点电路44发送)之后的“后续”消息。在每一个节点电路22上,真实初始消息是在恰好一个网络周期P之后跟随于最后一个在前的预报消息。因此,真实的初始消息可以被视为是非初始消息,它可以在没有不得不放弃其他流的风险的情况下得到无条件访问。
虽然在这里借助了具体实施例来对本发明进行描述,但是应该了解,各种不同的实施例都是可能的。例如在一个实施例中,节点电路并未发送预报消息,或者至少没有发送与满足2t=0 mod P的所有时隙相对应的预报消息。这样做的效果是对原始流的初始消息已经沿着部分路径成功行进的确认会稍晚到达。相应地,在接收到第一个可能的预报消息之前,传输数据处理单元可能必须传送原始流的后续消息。这样转而具有如下效果,那就是这个后续消息可能尝试沿着某一条数据导线进行传送,而在该数据导线上,初始消息已因为与其他流发生冲突而被丢弃。
在这种情况下,后续消息同样应该丢弃。由此,在这种情况下是不可能准许对后续消息的无条件访问的。为此目的,后续消息优选包含了用于表示其在原始流中的序列号的信息。在这个实施例中,在对数据导线争用的情况下,访问控制电路24会准许资历最高的争用消息(具有最高序列号)进行访问,如果资历相等,那么会使用一种准许相同流执行一致性访问的方案。在这个方案中,序列号的使用概括出初始与后续消息之间的区别。该序列号并不需要表示比在传输数据处理单元接收到初始消息到达确认之前、可用一个网络周期P传送的最大消息数量更高的序列号。最大序列号可以用在具有较高序列号的所有消息中。
在另一个实施例中,可以使用其他时隙来传送返回流中的消息。举例来说,如果数据处理单元10选择编号为tr的时隙来传送返回流中的消息,并且该时隙满足tr=-ta-s mod P(其中s是奇数偏移值),那么交叉时隙的编号满足2tc=2*(1-s) mod P也就是说,交叉仍旧是以大小为半个网络周期P的周期出现的,但是所述交叉是在网络周期P中的不同相位处。相应地,在这种情况下,节点电路会在满足tc表达式的时隙中发送预报令牌。在这里还可以对偏移值“s”进行选择,使之对于所有流而言都是相等的,或者,偏移值“s”也可以是为每一个流独立选择的。在后一种情况下,该偏移值可以在消息中规定(或者至少在每一个流的前导消息中规定),节点电路可以被安排成依照tc的表达式来选择发送预报令牌的时隙,其中该表达式是指定偏移的函数。有关偏移值的规定可以是明确的或固有的,例如,该规定可以作为流类型指示的结果,或者是取决于流的源或目的地。如果路径长度“k”是预先已知的(并且可以从消息中推导得到),那么甚至可以通过规定用于发送返回消息的时隙编号“tr”来规定偏移值“s”。
然而应该了解,已描述的实施例具有这样的优点,那就是可以在没有预先了解时间路径长度的情况下确定交叉的时间。这样则可以动态选择路径。
必须了解的是,在其他实施例中不需要包含返回流。在这种情况下,在前文中被称为预报消息的消息仅仅充当了转发的确认消息。此外,用以向源数据处理单元10表明是否成功转发了流中的初始消息的其他机制也是存在的。例如,在这里可以使用另一与网络分离的通信,而不要求一个返回流。如果使用了返回流,那么可以使用独立的附加网络来发送所有返回流。在这种情况下,节点电路可以经由这个附加网络来发送预报消息。
应该理解的是,所描述的机制假设流中的所有消息都将经由相同路径发送。因此,初始消息经过管理而在某个特定时隙中沿着该路径行进的事实可以用来为后续消息夺取对路径上的数据导线的访问,而不用担心与旧的流发生冲突。可以使用多种方式来确保使用的是相同路径。例如,这些消息可以指定该路径,由此节点将会根据指定的路径来路由消息。作为另一个实例,节点电路可以被安排成沿着一可再生路径来路由该消息,其中举例来说,所述路由是通过保留关于来自相同流的在先消息选定路由的信息来实现,或者是使用从给定源到给定目的地的预定路由来实现。
在该消息指定路径时,所述路径指定可以由传输数据处理单元10a预先选择,或者可以从节点电路为流的初始消息所选择的路径中推导得到。在后一种情况下,有关路径的信息可以在初始信息沿该路径行进时添加到该初始消息中,并且节点电路可以在预报消息中反向报告这个消息,由此传输数据处理单元10a可以将所述指定包含在后续消息中。
作为选择,在交叉时,节点电路可以在原始流与返回流的交叉消息之间交叉传送路径信息。因此,举例来说,在交叉时,消息可以每一次都接收有关到下一个交叉所要遵循的路径的信息。节点电路可以传送来自返回流的消息的、用于指定来自该原始流的消息所遵循的路径的信息。这样一来,到下一个交叉(或是其他的)的时间的、与路径相关的信息可以被提供给来自原始流的消息。由此,在转发初始消息时可以动态选择路径,并且在节点中不必保留路径信息。反过来也是一样,相似的信息可以从原始流的消息中转移到返回流的消息中。这样节省了描绘路径所需要的消息量,但是这并不是严格必需的,因为返回流中的消息可以从头开始被供给与反向路径有关的信息。
虽然使用了实施例对本发明进行描述,并且在该实施例中,节点电路是在跟随到达时隙之后的时隙中立即转发每一个消息,但是应该理解,在不偏离本发明的情况下,举例来说,节点电路也可能被安排成在多个时隙中缓冲所述消息,以便等待数据导线可用。在这种情况下,一旦在节点电路中缓冲了该流的初始消息,那么在该节点电路上,该流的后续消息应该在相同数量的时隙中得到缓冲。这一点可以采用与指定路径相同的方式来指定。
本实施例可以与返回流以及节点电路中预报消息的生成相结合。在一个实施例中,节点电路像先前那样在满足下列条件的时隙中产生(但是未必传送)预报消息2tc=0 mod P或者更为一般的是2tc=2*(1-s) mod P然而,用于发送预报消息的条件(b)被概括为(b’),来自原始流的消息在先前时隙t-1中已从一个或多个进入数据导线32到达节点电路,或者这个消息已在较早的时隙中到达,但是仍旧被缓冲,以便等待传输。由于预报消息可以在传输之前在多个时隙中保持被缓冲,因此,用于发送预报消息的条件(d)是不严格的。取而代之的是,如果传输过于延迟而使预报消息没有或者不能在用于下一个交叉时隙的时隙之前到达已发生交叉的节点电路(正如通过从该节点电路传送更早的预报来确定的),那么较为优选的是丢弃该预报消息。
图5描述的是在使用这种机制时某条路径上的数据导线的占用示例,所述占用是时间的函数。如以参考50所示,原始流的初始消息在一个时隙中进行了缓冲。与这个初始消息相对应的新的预报消息在前述正常的时隙中传送,但是该消息是来自另一个节点电路而不是缺少延迟。随后,在时隙40之后的一个完整网络周期P,新的预报消息在节点电路上与来自原始流的消息在时隙52中相交,在时隙40中一个较旧的预报从该节点电路传送。要想在这个时隙中实现从该节点电路开始的传输,那么必须延迟这个预报,但是这种延迟也可以在路径上的任何位置发生。
正如人们可能注意到的,这将预报消息在时隙52中到达交叉的节点电路之前可能遭遇的延迟限制成是原始流中的初始消息遭遇的延迟。如果该预报消息经历了更大的延迟,则必须丢弃这个消息。通过每次在产生预报消息的时隙之后、传送预报消息之前引入某个故意的延迟,可以放松这个条件。由此,对沿该路径进一步向下的、来自节点电路的预报消息的到达的时间约束被放松。在一个实施例中,这个故意的延迟可以取决于原始流中的初始消息所经历的延迟来进行设置,这样一来,如果初始消息已经历较少的延迟,那么将会增大预报消息的故意延迟,且如果初始消息已经历较多延迟,则减少预报消息的延迟。其原因在于应该记得的是,预报消息必须反向到达路径上游的节点电路,时间是在传送了在先预报消息之后的一个网络周期。当初始消息以微小延迟行进到发送预报消息的节点电路22时,留下了更多的时间来实现这个。在发现该附加时间可得到时,该时间可能被用来通过延迟传送来自节点电路22的预报消息而放松对下游节点电路44的定时限制。
虽然所描述的仅仅是周期性重复的时隙中的消息流,但是应该理解,在实施例中,那些不属于一个流的一部分的个别消息可能附加地经由该网络传送。如果这样一个个别消息与来自现有流的消息发生冲突,那么来自现有流的消息将会得到优选的访问。这样便有可能在不中断流的情况下也发送附加消息。
虽然本发明已被使用为所有节点电路使用相同时隙来进行描述,而这通常需要用到一个中央时钟,但是应该理解,使用集中同步的时隙并不是必需的。执行通信的节点电路可以是本地同步的,可能是使用某种类型的异步握手来进行。
此外,虽然本发明已被描述为是用于那些在每一个网络周期的单个时隙中占用每个资源的流,但是应该了解,更复杂的流也是可以使用的,该流是以每一个网络周期的一个以上时隙的模式来占用资源。非常有效的是,这可以归结为建立多个流,其中每一个流都占用在每一个序列对于相应的单个时隙的各个资源,且如果没有接收到关于任何一个流的预期确认,则中止所有这些流。
此外,虽然在这里是就单个消息能在单个时隙中沿着某个通信连接进行传递的情况来描述本发明的,但是应该理解,在其他实施例中,每一个通信导线20都可以支持每时隙中的多个消息的传输。在替换实施例中,这可以用来在同一个时隙中传送来自周期性消息的多个流的消息和/或不属于周期性流的个别消息。在一个时隙中,可沿着通信导线20传递的消息的数量可以是预定的消息数量,或者该消息的数量也可以取决于消息的组合尺寸。在后一种情况下,给定流中的消息优选地全部具有相同的尺寸,或者至少应该要求(claim)相同(最大)的尺寸。节点电路则优选使用了给定流所要求的尺寸来限制其他那些在时隙中沿着相同通信导线传送的周期性消息流的数量。其它流的这个数量被限制,使得它们的组合要求的尺寸为来自该给定流的消息的最大尺寸留下时隙中的足够容量。如果来自给定流的消息所需要的尺寸小于所要求的尺寸(甚至是根本没有尺寸),那么节点电路可以使用剩余带宽来传送个别的消息。
类似地,每一个消息都可在多个时隙上扩展。在这种情况下,传输基本上可以归结为是在连续时隙中传输多个流。
此外,虽然在这里针对处理通信导线20的带宽限制来描述本发明的,但是应该了解,本发明同样可适用于对网络中的其他类型的资源限制进行处理。
此外应该了解,虽然在这里是借助特定电路来对本发明进行描述的,但是其他的电路实施方式同样是可能的。例如,可以将某种简化的节点电路与处理电路结合使用,而不使用图3和3a所示的结构化节点电路22,其中该处理电路对来自所有通信导线20的输入消息进行处理,并且在选定的通信导线20上传送消息。另举一例,虽然在这里将数据处理单元10显示成是经由终端节点电路22a、b而与通信导线20相连的,但是人们当然可将终端节点电路22a、b的功能包含在数据处理单元10a、b(其中数据处理单元同样被视为是节点电路)或是多输入节点电路中。通过使用终端节点电路22a、b,数据处理电路10可以在无争用的情况下访问终端节点电路,所述终端节点电路22a、b处理对通信导线20的访问。
权利要求
1.一种数据处理电路,包括可在连续时隙中工作的网络(12);多个通过网络(12)互连的数据处理单元(10),这些数据处理单元被安排成同时经由该网络(12)来发送消息流,其中每一个流都包含了在周期性重复选择的连续时隙内占用该网络(12)中的可共享资源(20)的消息,并且对所有的流来说,重复的周期(P)是相同的;该网络(12)中的节点电路(22),该节点电路(22)被安排成沿着经由该网络(12)的多节点路径来转发消息,每一个特定流都被指配了一个相应流特定的路径,而节点电路(22)则是在该路径上转发特定流中的所有消息的,该节点电路(22)被安排成根据每一个消息在其特定流中的资历的测度来决定是转发还是丢弃该消息,每一个特定的节点电路(22)都被安排成阻止转发那些由于从特定节点电路(22)转发了来自另一个流的资历更高的消息而对其剩余资源不足(20)的特定流中的资历较低的消息。
2.根据权利要求1的数据处理电路,其中至少一个节点电路被安排成发回一个确认,确认来自一个特定流的初始部分的消息被成功转发直至所述其中至少一个节点,其中至少另一个节点电路(22)被安排成只在及时接收到该确认之后才转发来自所述特定流的后续消息。
3.根据权利要求1的数据处理电路,其中该至少一个节点电路(22)被安排成产生一个确认并且经由网络(12)来发回该确认,其中所述确认是成功转发了来自特定流的初始部分的消息的确认;沿着从该至少一个节点电路(22)返回的路径的另一个节点电路被安排成在接收到来自该流的另一个消息后检测所述另一个消息和所述确认是否在交叉时隙中在所述另一个节点电路(22)中相交,以及仅在检测到所述相交后转发所述另一个消息,所述另一个电路是根据预定方案来选择交叉时隙的,该至少一个节点电路(22)被安排成在选定的返回时隙中发回确认,所述返回时隙是以预定方式选择的,使得如果没有丢失,那么该确认会在依照预定方案确定的交叉时隙中与另一个消息相交。
4.根据权利要求3的数据处理电路,其中节点电路(22)被安排成在多个选定的返回时隙中发回关于转发成功的确认,其中这些返回时隙由至多一半的所述周期(P)间隔开。
5.根据权利要求4的数据处理电路,其中节点电路(22)被安排成基于资历来决定是转发还是丢弃每一个特定消息,其中所述资历仅仅取决于该特定消息是否是其特定流的一个初始消息。
6.根据权利要求3的数据处理电路,其中节点电路(22)被安排成当成功转发了消息时,在多个选定返回时隙中发回一个或多个确认,使得所述确认会在依照所述周期(P)重复的到达时隙中抵达该源数据处理单元(10a)。
7.根据权利要求6的数据处理电路,其中处于路径末端的目的地数据处理单元(10b)被安排成开始在选定的返回时隙中传送返回消息的返回流,该返回时隙被选择使得返回消息会在依照所述周期(P)重复的到达时隙中到达源数据处理单元(10a),跟随各确认、从最后一个确认之后的一个周期开始,所述一个或多个确认形成了返回流的一个或多个预报消息,与一个或多个预报消息中的至少一个初始消息相比,节点电路(22)会以较高的资历来对待返回消息。
8.根据权利要求3的数据处理电路,其中节点电路(22)被安排成在成功地在预定时隙中转发了来自特定流的消息时发回确认,其中所述预定时隙是依照所述周期(P)的一半而重复的。
9.根据权利要求8的数据处理电路,其中处于路径末端的目的地数据处理单元(10b)被安排成开始在选定的返回时隙中传送由返回消息组成的返回流,该返回时隙是根据来自原始流的消息达到目的地数据处理单元的时隙来选择的,用于传送返回流中的消息的返回时隙则被选择,以使传送返回流的时隙的时隙序列号tr与原始流消息的到达时隙序列号ta之和(ta+tr)等于预定编号“s”对该周期的长度取模,该确认在时隙中传送,使得这些时隙的序列号的两倍等于2*(s+1),即两倍的预定编号加1对该周期的长度取模。
10.根据权利要求3的数据处理电路,其中源数据处理单元(10a)被安排成在源数据处理单元(10a)没有在确认时隙中接收到确认的情况下,中止传送来自该流的消息,其中所述确认时隙是由预定的返回时隙确定的。
11.一种在电路中处理数据的方法,该电路包含多个通过节点电路(22)的网络(12)互连的数据处理单元(10),所述节点电路(22)使用连续时隙而沿数据处理单元(10)配对之间的传输路径转发消息,使用该网络(12)允许在时隙复用的基础上、在不同路径之间共享的资源(20),该方法包括启动消息的流,其中每一个流都是从相应的源数据处理单元(10a)到相应的目的地数据处理单元(10b),每一个流包含占用周期性重复选择的时隙中资源的消息,并且对所有的流来说,重复的周期都是相同的,沿着为特定流分配的流特定路径中的节点电路(22)而经由网络(12)转发特定流中的所有消息,该节点电路(22)根据其特定流中的消息资历测度来决定是转发还是丢弃每一个消息,每一个特定的节点电路(22)会阻止转发那些由于从特定节点电路转发资历更高的消息而对其剩余资源不足的资历较低的消息。
12.根据权利要求11的方法,包括在至少一个节点电路(22)中产生一个确认,以便向特定流的源数据处理单元确认成功地从该至少一个节点电路(12)转发了来自该特定流中的初始部分的消息,在选定的返回时隙中沿着该路径从该至少一个节点电路(22)向源数据处理单元(10a)发回该确认,选择该返回的时隙,使得如果没有丢失确认,那么该确认将会在交叉时隙中与来自该特定流的另一个消息相交,所述交叉时隙可以依照预定方案来预测,检测该流中的另一个消息是否在交叉时隙中与所述确认在另一个节点电路(22)中相交,其中该交叉时隙依照预定方案来预测;只有在检测到这种交叉时才从该另一个节点电路(22)转发该另一个消息。
13.根据权利要求12的方法,包括在选定的返回时隙中发回来自节点电路的一个或多个确认,该返回的时隙被选择,使得在存在一个以上的确认的情况中,该确认是在以所述周期(P)重复的到达时隙中抵达源数据处理单元(10a);响应于特定流目的地数据处理单元(10b)对于初始消息的接收,沿着经由网络(12)的路径而在时隙中将返回消息组成返回流从目的地数据处理单元(10b)发回源数据处理单元(10a),所述返回的时隙被选择,使得该返回消息占用以所述周期(P)重复的、另外的周期性重复选择的时隙,所述时隙是从在一个或多个确认的最后一个确认之后的一个周期(P)开始。
全文摘要
数据是在一个电路中处理的,该电路包含了多个数据处理单元,这些数据处理单元是由节点电路的网络相互连接的。节点电路基于时隙复用来使用资源。流则是在源数据处理单元与目的地数据处理单元之间启动的。每一个流都包含了消息,这些消息在周期性重复选择的时隙中占用了资源。重复的周期则是一个网络周期,这对所有的流来说都是相同的。节点电路沿着流特定路径上的节点而经由网络转发特定流中的所有消息,其中该路径被指配给特定流。节点电路根据其特定流中的消息资历量度来决定是转发还是丢弃转发每一个消息。一个节点电路会阻止从特定节点电路转发那些因为转发了资历更高的消息而导致剩余资源不足的资历较低的消息。优选地,在选定的返回时隙中,节点电路发回确认,以便确认成功转发了消息。选定的返回时隙是以预定方式选择的,使得有可能在沿该路径返回的另一个节点电路中、根据在交叉时隙中在该另一个节点电路中该流的另一个消息的存在来预测是否该另一个消息将在该交叉时隙中在该另一个节点电路(22)处与确认相交,举例来说,通过从那些节点电路(22)发送确认,在这里,初始消息是在一系列时隙中的某个时隙到达的,该时隙则是依照半个网络周期重复的。节点电路检测流消息是否在该节点电路中在预期的交叉时隙中与确认相交。只有在预期时隙中检测到相交时,节点电路才转发消息。更为优选地是,传送该确认,使得连续确认依照网络周期而对资源进行周期性的占用。在这种情况下,目的地数据处理单元可以在某些时隙中启动返回消息的流,其中该时隙跟随该确认在该网络周期之后。由此预先确保转发所述返回流。
文档编号H04L12/56GK1926826SQ200580006683
公开日2007年3月7日 申请日期2005年2月21日 优先权日2004年3月3日
发明者E·里杰浦克马 申请人:皇家飞利浦电子股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1