数据处理装置和数据处理方法

文档序号:6340287阅读:157来源:国知局
专利名称:数据处理装置和数据处理方法
技术领域
本发明涉及数据处理装置和数据处理方法。
背景技术
传统的数据处理装置通过利用单向环形总线连接多个模块来进行数据处理。例 如,日本特开平10-167560提出一种装置,该装置中的每个模块包括一级或多级缓冲器或 存储器,与模块数量相等的数据包(packet)可存在于环形总线中,且这些数据包在模块之 间并行传送。另外,为提高装置的整体处理性能,日本特开平10-167560和日本特开 2007-316699提出一种方法,该方法对包含由自身模块(self-module)处理的数据以及将 由另一模块处理的数据的数据包赋予优先级,每一模块判断优先级,并对具有高优先级的 数据包优先进行传送。对于上文提及的优先级,日本特开平10-167560提出通过中央控制(central control)实现对应于优先级而传送的方法。然而,通过中央控制实现对应于优先级而传送 会造成控制电路的复杂度随模块数量的增加成比例增长的问题。日本特开2007-316699提出一种使用针对各模块分散的优先级的数据包传送方 法。更具体地,模块由数据传送总线和应答传送总线这两条环形总线连接。如果某一模块 判断出环形总线已传送的数据包的优先级低于该模块将要发送的数据包的优先级,则该模 块丢弃已传送的数据包,并将要发送的高优先级的数据包发送至环形总线。由于已传送的 数据包被丢弃,因而该模块通过使用应答传送总线通知另一模块该数据包丢失。被通知了 数据包丢失的模块将该数据包再发送至发送源。按照这种方式,实现了对应于优先级而进 行数据包传送。不幸的是,所有模块均必须保持已发送数据包的副本,直到确认该数据包未被另 一模块丢弃为止。这造成了保持已发送数据包副本的缓冲器容量随模块数量的增加成比例 增加的问题。另外,当使用数据传送总线和应答传送总线两条环形总线时,从原理上讲,数 据包会不可避免地在应答传送总线上相互冲突。因此,考虑到应答数据包到达发送源之前 的延迟,每个模块除包括用于保持未能发送的应答数据包的缓冲器之外,还必须包括能够 保持已发送数据包副本的缓冲器。即使在仅使用一条环形总线时,也需要缓冲器容量能保 证即使被丢弃数据的再发送请求发生延迟也不会出现缓冲器容量不够。换言之,数据包传 送效率会相应降低。当根据优先级传送数据包时,期望每个模块中的数据处理都基于优先级而动作。 然而,当利用环形总线连接多个模块的数据处理装置通过自由改变所用模块的数量及顺序 来进行各种处理时,为提高数据处理的整体效率,需要与每个模块的处理能力对应地进行 数据包传送。考虑到上述情况做出了本发明,本发明提供的数据处理能够通过利用简单机构判 断数据的优先级来提高数据处理装置的数据包传送效率。

发明内容
根据本发明的一个方面,提供一种数据处理装置,其通过使用连接至环形总线的 多个模块依预先设置的顺序处理数据,各所述模块包括接收单元,用于从另一模块接收数 据包;判断单元,用于基于包含在所述数据包中且表示所述顺序的第一信息,判断是否由自 身模块来处理所述接收单元接收到的数据包中保持的数据;处理单元,用于如果所述判断 单元判断为应由所述自身模块来处理所述数据,则处理所述数据;生成单元,用于生成包含 所述第一信息且包含所述处理单元处理后的数据和表示由所述处理单元处理的数据未被 处理而停止的第二信息其中之一的数据包;以及发送单元,用于根据所述第一信息将所述 生成单元生成的数据包发送至预期用于处理该数据包的下一模块,其中,如果所述第一信 息和所述第二信息表示所述接收单元接收到的数据包包含应由依处理顺序位于所述自身 模块之后的下一模块来处理且未被处理而停止的数据,则所述发送单元以长于预定时间的 发送间隔来进行发送。根据本发明的另一方面,提供一种数据处理方法,其通过使用连接至环形总线的 多个模块依预定的顺序处理数据,所述数据处理方法包括接收步骤,用于从另一模块接收 数据包;判断步骤,用于基于包含在所述数据包中且表示所述顺序的第一信息,判断是否由 自身模块来处理在所述接收步骤中接收到的数据包中保持的数据;处理步骤,用于如果在 所述判断步骤中判断为应由所述自身模块来处理所述数据,则处理所述数据;生成步骤,用 于生成包含所述第一信息且包含在所述处理步骤中处理后的数据和表示要在所述处理步 骤中处理的数据未被处理而停止的第二信息其中之一的数据包;以及发送步骤,用于根据 所述第一信息将在所述生成步骤中生成的数据包发送至预期用于处理该数据包的下一模 块,以及其中,如果所述第一信息和所述第二信息表示在所述接收步骤中接收到的数据包 包含应由依处理顺序位于所述自身模块之后的下一模块来处理且未被处理而停止的数据, 则在所述发送步骤中以长于预定时间的发送间隔来进行发送。通过以下参考附图对典型实施例的说明,本发明的其它特征将变得明显。


图1是数据处理装置的功能框图。图2是示出数据包结构的图。图3A和;3B是示出发送源ID结构的图。图4是发送控制器的功能框图。
具体实施例方式以下将参考附图来详细说明本发明的典型实施例。应当注意,除非特别指明,否则 这些实施例给出的组件的相对配置、数字表达式及数值并不限制本发明的范围。下文将参考图1解释根据实施例的数据处理装置。根据此实施例的数据处理装置 包括多个模块以及连接该多个模块的环形总线。模块101是用于处理数据的模块。模块101包括数据处理器103、发送源ID寄存 器104、数据包生成器105、数据包接收器106、等待ID寄存器107、接收控制器108、发送控制器109、数据包发送器110以及ID判断单元111。CPU(未示出)控制上述这些单元。环 形总线102以环的形式连接各模块101。数据处理器103进行预定的数据处理。发送源ID 寄存器104是设置要添加至数据包的发送源ID (第一信息)的寄存器。数据包生成器105 根据数据处理器103处理后的数据生成将由环形总线102传送的数据包。数据包接收器 106经由环形总线102接收数据包。等待ID寄存器107是可设置数据处理器103将要处 理的数据包的ID的寄存器。接收控制器108进行控制以在自身模块可处理数据包数据时 将数据包接收器106接收到的数据包发送至数据处理器103,或者,在自身模块不能处理数 据包数据时将该数据包传送至发送控制器109。发送控制器109进行控制以将保持有数据 处理器103处理后的数据的数据包以及从接收控制器108传送来的数据包发送至环形总线 102。数据包发送器110发送数据包至环形总线102。ID判断单元111判断数据包接收器 106所接收数据包的ID、发送源ID寄存器104的ID以及等待ID寄存器107的ID,并根据 这些ID值生成接收控制器108和发送控制器109的控制信息。请注意,所接收数据包的ID 是依处理顺序位于本模块之前的模块的发送源ID寄存器104所设置的ID。根据本实施例的数据处理装置具有模块101连接至环形总线102的环形结构,且 模块的数量并无特别限制。此外,发送控制器109包括缓冲器,该缓冲器的输出是下一个模 块的输入。一个数据包在一个周期(cycle)内传送至下一个模块101。每个模块101在一 个周期内传送一个数据包至下一个模块101,由此整个装置可以并行传送数据。下文将参考图2解释根据本实施例的数据处理装置中在模块101之间传送数据 所使用的数据包。数据包包括有效(valid)标志201、发送源ID 202(第一信息)、数据 (data) 203以及停止(stall)标志204 (第二信息)。有效标志201表示数据包是否有效。 发送源ID 202是数据包发送源的标识符,并保持所保持数据的优先级。数据203是数据包 所保持的数据。停止标志204(第二信息)表示数据包所保持的数据的接收在传送目的地 停止。对发送源ID 202分配可识别数据包的发送源模块与处理中将使用的模块之间的顺 序关系的值。这使得可以通过简单运算判断每个数据包所保持的数据的处理优先级。下文将参考图3A详细解释发送源ID 202。根据处理顺序将升序值或降序值添加 至形成发送源ID 202的顺序(order) 302。只要可以判断顺序关系,所添加的值可以是任 意值。为提高数据处理装置的整体处理效率,优先传送依处理顺序位于后面的数据。因此, 添加如下值,通过该值能够判断出依处理顺序位于后面的数据包具有较高的优先级。然而, 如果期望不管处理顺序如何都向如下模块的数据包添加高优先级,其中该模块所包含处理 器的处理性能在要使用的模块中是瓶颈,则通过使用模式(mode) 301的字段(field)设置 ID。当以这种方式添加ID时,处理顺序具有在一系列数据处理步骤中不会重复的值,所以 该ID也可以用作每个模块的标识符。通过识别多个数据处理步骤的路径,如图3B的路径 (path) 303所示,可在数据处理装置中并行执行多个数据处理步骤。请注意,图2、3A、3B所 示的数据包结构仅为示例,字段的顺序不受限制。此外也可存在其他字段。特别地,发送源 ID 202只需具有如下值,通过该值可识别数据包的发送源模块与处理中即将使用的模块之 间的顺序关系。如果不需要模式301,则发送源ID 202也可仅包含顺序302。下文将解释数据处理装置的模块之间传送数据包的动作。首先将解释数据包接收 动作。ID判断单元111判断数据包接收器106接收到的数据包所保持的数据是将由自身模 块101的数据处理器103处理的数据还是将由另一模块处理的数据。ID判断单元111通过
5对所接收数据包的发送源ID 202的ID值以及等待ID寄存器107的ID值进行运算来进行 该判断。例如,ID判断单元111将要处理的所接收数据包的ID值分配给等待ID寄存器的 ID值,如果这两个ID匹配则进行处理。请注意,可以检查全部ID是否匹配,也可仅检查部 分ID是否匹配。如果这两个ID匹配,则ID判断单元111将数据输出至数据处理器103,否 则将数据包传送至发送控制器109。然而,即使当ID判断单元111所保持的数据是将由数 据处理器103处理的数据时,如果数据处理器103不能处理该数据,则ID判断单元111也 会判断为停止处理,设置停止标志204,并将数据包传送至发送控制器109。下面将解释将数据处理器103处理后的数据通过图2所示的数据包发送至预期用 于处理该数据的下一模块的动作。将数据处理器103处理后的数据存储在数据203中。将 发送源ID寄存器104的ID值存储在发送源ID 202的字段中。使有效标志201有效,且数 据包生成器105生成数据包。发送控制器109控制是否经由缓冲器将该数据包发送至环形 总线102。下文将参考图4解释根据本实施例的发送控制器109的结构。缓冲器401保持来 自接收控制器108的数据包。缓冲器402保持数据包生成器105生成的数据包。发送间隔 控制器403控制来自缓冲器402的数据包的发送间隔。选择器404选择要发送的数据包。缓冲器401存储从接收控制器108传送来的数据包,或者存储保持将由自身节点 (self-node)处理而不能由数据处理器103处理的数据的数据包。数据包能否由数据处理 器103处理可通过停止标志204来识别。另外,如上文所述,缓冲器402存储数据包生成器 105生成的数据包。选择器404从上述两个缓冲器存储的数据包中选择要发送的数据包。发 送间隔控制器403判断能否发送缓冲器402中存储的数据包。发送间隔控制器403包括内 部计时器,每当发送数据包时就将该计时器复位至预定值,由此确保数据包发送间隔最小。 此发送间隔可由寄存器等来设置,且可设置与依处理顺序位于后面的模块101的处理能力 对应的值。在本发明中,所接收数据包的发送源模块与自身模块之间的处理顺序关系可通过 发送源ID 202来判断。也可以通过检查所接收数据包的停止标志204,通过处理顺序来检 测哪个模块处于处理停止状态。发送间隔控制器403可根据检测结果动态控制从缓冲器 402的发送间隔,由此提高数据包传送效率。下文将解释发送间隔控制器403进行的发送间隔控制的例子。首先,将发送间隔 设置为预定值作为初始状态。如果自身模块检测到依处理顺序位于自身模块之后的下一模 块所发送的数据包处于停止状态,则发送间隔控制器403将发送间隔设置为大于绕环形总 线102 —周所需的时间的值。这是因为按顺序位于自身模块之后的下一模块不能接收自身 模块所发送的新数据包的可能性非常高。当发送间隔设置值大于数据包绕环形总线102 — 周所需的时间时,可推测环形总线102中不再存在自身模块的停止数据包,随后发送下一 个数据包。请注意,数据包绕环形总线102 —周所需的时间是根据连接至环形总线102的 模块数量而预先确定的。上述时间也可由发送间隔控制器403的内部计时器来测量。(例 如,代替绕环形总线102 —周所需的时间,还可通过使用数据包经过预定数量的模块的时 间、或者预定数量的时钟,达到某种程度的效果。)另一方面,如果自身模块检测到依处理顺序位于自身模块的发送目的地(依处理 顺序位于自身模块之后的下一模块)之后的模块处于停止状态,则依处理顺序位于自身模块之后的下一模块可接收数据包的可能性相对较高。因此,数据包以小于绕环形总线102 一周所需的时间的发送间隔而发送。发送间隔也可设置为等于或大于作为初始状态设置的 值。这种设置方式可减少占用环形总线102的自身模块停止数据包的数量。另外,只要依 处理顺序位于自身模块的下一模块之后的模块能接收数据包,即可提供数据包。如果自身 模块检测到依处理顺序位于自身模块之前的模块处于停止状态,则由于依处理顺序位于后 面的模块未停止处理,因此无需改变发送间隔。如上文所述,通过根据其他模块的处理状态动态控制从自身模块发送数据包的发 送间隔,可提高数据包传送效率。换言之,通过抑制生成作为停止数据包通过环形总线102 并干扰其他模块发送数据的数据包,来提高整体的数据包传送效率。由于数据包传送量是 根据每个模块的数据处理能力和处理优先级来动态控制的,因此即使在模块的数据处理能 力不是常数而是动态变化时也能控制数据包的传送。在本发明中,处理顺序关系可以从发送源ID 202来判断,因此可添加对应于处理 顺序的优先级。因此,如果检测到停止数据包,则可经由简单运算来判断已发送数据包的模 块依处理顺序是否位于后面。此外,要发送的新数据包被抑制。结果,可确保高优先级模块 的带(band),从而使高优先级模块能发送数据包。这使得可以在预定数据处理完成之前减 少周期数,且可以有效提高数据处理装置的整体处理效率。本实施例的特征是仅使用单一 ID和停止标志就可以根据进行预定数据处理的顺序来传送数据包,且可以考虑数据优先级 而确保数据包传送带。由于只需要单一 ID,因而接收到数据包的每个模块都可通过对所接收数据包的 ID以及自身模块寄存器的设置值进行运算,来判断是否由数据处理器处理数据包并判断数 据的优先级。这不仅简化了判断机构,而且除了 ID之外不需要在数据包中保持数据的优先 级。另外,以上方法不需要用于将ID和优先级与每个模块相关联所需的存储器。本发明可通过经由简单机构判断数据优先级来提高数据处理装置的数据包传送 效率。其他实施例还可以由读出并执行存储器装置所记录的程序以执行上述实施例的功能的系统 或者装置中的计算机(例如CPU或MPU等装置)以及通过下面的方法来实现本发明的各方 面,其中,系统或者装置中的计算机通过例如读出并执行存储器装置所记录的程序以执行 上述实施例的功能,来执行上述方法的各步骤。为实现以上目的,例如经由网络或从用作存 储器装置的各种类型的记录介质(例如计算机可读存储介质)向计算机提供上述程序。尽管已经参考典型实施例说明了本发明,但是应该理解,本发明不限于所公开的 典型实施例。所附权利要求书的范围符合最宽的解释,以包含所有这类修改、等同结构和功 能。
权利要求
1.一种数据处理装置,其通过使用连接至环形总线的多个模块依预先设置的顺序处理 数据,各所述模块包括接收单元,用于从另一模块接收数据包;判断单元,用于基于包含在所述数据包中且表示所述顺序的第一信息,判断是否由自 身模块来处理所述接收单元接收到的数据包中保持的数据;处理单元,用于如果所述判断单元判断为应由所述自身模块来处理所述数据,则处理 所述数据;生成单元,用于生成包含所述第一信息且包含所述处理单元处理后的数据和表示由所 述处理单元处理的数据未被处理而停止的第二信息其中之一的数据包;以及发送单元,用于根据所述第一信息将所述生成单元生成的数据包发送至预期用于处理 该数据包的下一模块,其中,如果所述第一信息和所述第二信息表示所述接收单元接收到的数据包包含应由 依处理顺序位于所述自身模块之后的下一模块来处理且未被处理而停止的数据,则所述发 送单元以长于预定时间的发送间隔来进行发送。
2.根据权利要求1所述的数据处理装置,其特征在于,如果所述接收单元接收到的数 据包包含应由依处理顺序位于所述自身模块的发送目的地模块之后的模块来处理且未被 处理而停止的数据,则所述发送单元以短于所述预定时间的发送间隔来进行发送。
3.根据权利要求1所述的数据处理装置,其特征在于,如果所述判断单元判断为不应 由所述自身模块来处理所述数据,则所述接收单元将接收到的数据包传送至所述发送单元。
4.一种数据处理方法,其通过使用连接至环形总线的多个模块依预定的顺序处理数据,所述数据处理方法包括接收步骤,用于从另一模块接收数据包;判断步骤,用于基于包含在所述数据包中且表示所述顺序的第一信息,判断是否由自 身模块来处理在所述接收步骤中接收到的数据包中保持的数据;处理步骤,用于如果在所述判断步骤中判断为应由所述自身模块来处理所述数据,则 处理所述数据;生成步骤,用于生成包含所述第一信息且包含在所述处理步骤中处理后的数据和表示 要在所述处理步骤中处理的数据未被处理而停止的第二信息其中之一的数据包;以及发送步骤,用于根据所述第一信息将在所述生成步骤中生成的数据包发送至预期用于 处理该数据包的下一模块,以及其中,如果所述第一信息和所述第二信息表示在所述接收步骤中接收到的数据包包含 应由依处理顺序位于所述自身模块之后的下一模块来处理且未被处理而停止的数据,则在 所述发送步骤中以长于预定时间的发送间隔来进行发送。
全文摘要
本发明提供一种数据处理装置和数据处理方法,该数据处理装置包括接收单元,用于接收数据包;判断单元,用于基于包含在所述数据包中且表示处理顺序的第一信息来判断是否由自身模块处理数据包的数据;处理单元,用于在应由所述自身模块处理所述数据的情况下处理所述数据;生成单元,用于生成包含所述第一信息且包含处理后的数据和表示处理的数据被停止的第二信息其中之一的数据包;以及发送单元,用于根据所述第一信息将数据包发送至预期用于处理数据包的下一模块。如果所述第一信息和所述第二信息表示所述数据包包含应由依处理顺序位于所述自身模块之后的下一模块来处理且被停止的数据,则所述发送单元以长于预定时间的发送间隔来进行发送。
文档编号G06F13/36GK102147776SQ20101061030
公开日2011年8月10日 申请日期2010年12月17日 优先权日2009年12月18日
发明者坂本伊左雄, 石川尚 申请人:佳能株式会社
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1