CN103227741A - 数据处理装置、输入控制装置和控制方法 - Google Patents
数据处理装置、输入控制装置和控制方法 Download PDFInfo
- Publication number
- CN103227741A CN103227741A CN2013100221207A CN201310022120A CN103227741A CN 103227741 A CN103227741 A CN 103227741A CN 2013100221207 A CN2013100221207 A CN 2013100221207A CN 201310022120 A CN201310022120 A CN 201310022120A CN 103227741 A CN103227741 A CN 103227741A
- Authority
- CN
- China
- Prior art keywords
- data
- unit
- input
- predetermined value
- grouping
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/38—Information transfer, e.g. on bus
- G06F13/40—Bus structure
- G06F13/4063—Device-to-bus coupling
Landscapes
- Engineering & Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computer Hardware Design (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Multi Processors (AREA)
- Bus Control (AREA)
Abstract
本发明涉及一种数据处理装置、输入控制装置和控制方法。一种输入控制装置,所述输入控制装置从外部接受数据输入,并将数据输入到数据处理***中的总线,在所述数据处理***中,多个通信单元通过环形总线连接,并且经处理单元处理的数据通过该总线传递,所述输入控制装置基于应该被输出到外部、被暂停输出并停留在总线上的数据项的数量来控制数据的接受。
Description
技术领域
本发明总地涉及一种数据处理装置、输入控制装置和控制方法,特别是涉及一种用于控制对环形总线的数据输入的数据处理装置、输入控制装置和控制方法。
背景技术
根据优先级传送分组的方法传统上被提议为在数据路径控制***中执行高效率的分组传送的方法,在所述数据路径控制***中,多个模块连接以使得可进行通信和执行并行处理。
日本专利公开No.2010-217959公开了通过环形总线连接模块并将被每个模块处理的数据分组传送到下一级模块以执行一系列处理的方法。在日本专利公开No.2010-217959中的布置中,在给定模块结束处理之后,它将包含用于识别该给定模块的标识符的信号发送到环形总线上。执行下一处理的模块预先存储执行紧前面的处理的模块的标识符,并且当所述信号包含该标识符时,执行处理。在日本专利公开No.2010-217959中,当模块暂停处理时,它传送包含表示所述处理已被暂停的信息的信号。当该模块响应于它所发送的信号接收到包含表示后一模块已暂停处理的信息的信号时,即使进一步信息被发送了,它也确定执行紧后面的处理的模块不能执行处理,并且临时停止信息发送。这实现了分布式控制中使用小存储容量的高效率分组传送。
当数据输出在环形总线上的输出中被暂停时,有必要抑制或停止对环形总线的输入。然而,在日本专利公开No.2010-217959中的方法中,给定模块仅检测是否在执行该给定模块的处理紧后面的处理的模块中出现了停顿(stall)。如果环形总线的数据输出被暂停,则与环形总线的一圈对应的时间是每个模块检测它的数据输出已被暂停并停止输出所必需的。直到输入停止需要长时间,并且直到输入停止,数据都保持被输入。结果,停顿分组的数量增多,传送效率极大地降低,并且可能出现死锁。
发明内容
根据本发明的一方面,提供一种抑制在环形总线上暂停和停留的分组的数量的增大的技术。
根据本发明的一方面,提供一种数据处理装置,该数据处理装置包括:多个通信单元,其被配置为通过环形总线连接;和对应于相应的通信单元的多个处理单元,其被配置为对从所述多个通信单元供给的数据进行处理,其中,当与所述多个通信单元中的第一通信单元对应的处理单元处于不可接受数据的状态时,第一通信单元将表示该处理单元不能接受数据的停顿信息添加到不能被该处理单元接受的数据,并使该数据绕环形总线行进,并且所述多个通信单元中的第二通信单元基于添加了停顿信息的数据来抑制对环形总线的数据输入。
根据本发明的一方面,提供一种输入控制装置,该输入控制装置从外部接受数据输入,并将数据输入到数据处理***中的总线,在所述数据处理***中,多个通信单元通过环形总线连接,并且经处理单元处理的数据通过该总线传递,所述输入控制装置包括:获取单元,其被配置为获取要被输出到外部的、被暂停输出并且停留在总线上的数据项的数量;和控制单元,其被配置为基于所述数据项的数量来控制数据的接受。
根据本发明的一方面,提供一种用于数据处理装置的控制方法,所述数据处理装置包括多个通信单元和对应于相应的通信单元的多个处理单元,所述多个通信单元被配置为通过环形总线连接,所述多个处理单元被配置为对从所述多个通信单元供给的数据进行处理,所述控制方法包括:当与所述多个通信单元中的第一通信单元对应的处理单元处于不可接受数据的状态时,使第一通信单元将表示该处理单元不能接受数据的停顿信息添加到不能被该处理单元接受的数据,并使该数据绕环形总线行进;并使所述多个通信单元中的第二通信单元基于添加了停顿信息的数据来抑制对环形总线的数据输入。
根据本发明的一方面,提供一种用于输入控制装置的控制方法,所述输入控制装置从外部接受数据输入,并将数据输入到数据处理***中的总线,在所述数据处理***中,多个通信单元通过环形总线连接,并且经处理单元处理的数据通过该总线传递,所述控制方法包括:使获取单元获取要被输出到外部的、被暂停输出并且停留在总线上的数据项的数量;并且使控制单元基于所述数据项的数量来控制数据的接受。
从以下参照附图对示例性实施例的描述,本发明的进一步的特征将会清楚。
附图说明
图1是举例说明数据处理***的布置的框图;
图2是举例说明分组的数据结构的视图;
图3是举例说明输入/输出单元的布置的框图;
图4是举例说明接收单元的布置的框图;
图5是举例说明发送单元的布置的框图;
图6是举例说明发送间隔控制单元的布置的框图;
图7是举例说明第二实施例中的发送间隔控制单元的布置的框图;
图8是示出信息处理装置的示意性布置的框图;和
图9是示出关于图像处理单元与***控制单元之间的数据传送的示意性布置的框图。
具体实施方式
现在将参照附图来详细描述本发明的示例性实施例。应该指出,在这些实施例中阐述的组件的相对布置、数值表达式和数值不限制本发明的范围,除非另有特别说明。
《第一实施例》
将参照图8来描述根据本发明的第一实施例的信息处理装置的示意性布置。
图像读取单元820包括CCD传感器824和模拟信号处理单元826。CCD传感器824将经由透镜822在CCD传感器824上形成的原稿800的图像转换为R(红色)、G(绿色)和B(蓝色)模拟信号。模拟信号处理单元826接收转换的图像信息,对R、G和B各颜色执行校正等,然后执行模数转换(A/D转换)。数字全色信号(以下将被称为多级数字图像信号)被输入到图像处理单元830。图像处理单元830对数字图像信号执行输入校正处理、空间滤波处理、颜色空间转换、浓度校正处理和半色调处理,并将经处理的数字图像信号输出到图像输出单元840。图像输出单元840包括,例如,使用喷墨头、热敏头等的打印输出单元(未示出)。图像输出单元840根据输入的数字图像信号在纸张上打印图像。
***控制单元810包括算术控制CPU812、存储永久数据和程序的ROM814以及用于临时保存数据和加载程序的RAM816。***控制单元810控制图像读取单元820、图像处理单元830、图像输出单元840等,并执行装置中的序列的集中控制。外部存储设备818是存储所述装置中所使用的参数和程序的介质(闪存或可移除存储介质)。RAM816允许从ROM814和外部存储设备818加载数据、程序等。
注意,***控制单元810与图像处理单元830之间的数据传送由例如DMAC(直接存储器存取控制器)(未示出)执行。
图9示出关于图像处理单元830与***控制单元810之间的数据传送的示意性布置。
当没有停顿信号从输入/输出单元101的输出端子354(稍后将详细描述)被断言(asserted)时,DMAC903通过直接存储器存取将保存在数据***控制单元810的RAM816中的数据传送到图像处理单元830。当停顿信号被断言时,DMAC903保存数据。当没有停顿信号从输入/输出单元101的输入端子353(稍后将详细描述)被被断言时,被图像处理单元830处理的数据被输出到DMAC903。当停顿信号被断言时,输入/输出单元101暂停数据输出,并将数据作为停顿分组供给环形总线104(稍后将详细描述)。然后,DMAC904通过直接存储器存取将该数据传送到数据***控制单元810的RAM816和外部存储设备818、图像输出单元840等。
(数据处理***)
图1详细示出了图8的图像处理单元830。图1是举例说明数据处理***的示意性布置的框图,在该数据处理***中,各个处理模块通过环形总线连接,以传递数据并依次对它进行处理。该数据处理***包括用于输入/输出数据的输入/输出单元101、用于将数据传递给彼此的多个通信单元102-1至102-n、以及对应于相应的通信单元102-1至102-n并且对数据进行处理的多个处理单元103-1至103-n。
输入/输出单元101执行例如数据处理***与外部之间的数据的输入/输出控制。在以下描述中,“数据处理***的外部”意指包括数据处理***的装置中的其余功能单元。在图8中,这些功能单元是***控制单元810、图像读取单元820和图像输出单元840。本发明甚至可应用于与包括数据处理***的装置分开存在的外部装置。在输入/输出单元101中,DMAC可分别布置在输入端子105和输出端子106处。在这种情况下,DMAC对保存在RAM816中的图像数据或参数进行分包(packetize),并将分组输入到图像处理单元830。此外,DMAC对从图像处理单元830输出的分组进行解包(depacketize),并将数据传送到RAM816或CPU812。
通信单元102-1至102-n与相邻的通信单元102连接,并用作环形总线104的一部分以将从特定方向(第一方向)接收的数据在另一方向(第二方向)上发送。注意,通信单元102-1和102-n与相邻的通信单元102连接,并且还与输入/输出单元101连接。通信单元102-1至102-n分别与处理单元103-1至103-n连接。也就是说,通信单元102-1至102-n与输入/输出单元101共同形成环形总线104,“将数据发送到相邻的通信单元102和输入/输出单元101”/“从相邻的通信单元102和输入/输出单元101接收数据”,并且还将数据发送到处理单元103/从处理单元103接收数据。
经由输入端子105输入的数据经由输入/输出单元101被输入到通信单元102-1。注意,数据被分包,并且分组在环形总线104上(在环上)沿一个方向流动。通信单元102从环形总线104接收分组,并根据预先设置的信息来分离分组以提取必要的数据。当直接与通信单元102连接的处理单元103(以下将被称为“对应的处理单元”)可对提取的数据进行处理时,通信单元102将该数据输出到对应的处理单元103。
处理单元103对接收的数据执行预先确定的数据处理(例如,颜色空间转换和分辨率转换),并将处理的数据输出到对应的通信单元102。通信单元102确定数据是否可被输出到环形总线104,如果数据可被输出,则对从对应的处理单元103输入的数据进行分包,并将分组发送到环形总线104。与对发送的分组中所包含的数据执行下一处理的处理单元103对应的通信单元102分离该分组以提取数据。然后,通信单元102以上述方式使对应的处理单元103执行处理。通过预先设置对数据进行处理的处理单元103的顺序,处理单元103-1至103-n依次对数据进行处理。在设置的数据处理结束之后,处理的数据经由输入/输出单元101从输出端子106输出。
(数据结构)
图2是举例说明流过环形总线104的分组的数据结构的视图。所述分组包含有效标志201、停顿标志202、计数值203、节点ID204和数据205。有效标志201是存储指示分组是否有效的值的数据区。停顿标志202是存储指示处理对于分组中所包含的数据被暂停的值的数据区。计数值203是指示数据发送顺序的值。节点ID204是存储指示用于识别数据的逻辑连接的ID的值的数据区。数据205是存储从通信单元输入的数据或者要被输出到通信单元的数据的数据区。
在以下描述中,在其中分组的有效标志201“无效”的分组将被称为“空分组”。通信单元102可用有效分组取代环形总线上的空分组。“有效”的停顿标志202意味着给定的处理单元103不能对数据进行处理,并且对应的通信单元102将包含未被处理的数据的分组供给到环形总线上。在以下描述中,在其中停顿标志202有效的分组将被称为“停顿分组”。
当例如处理应该按输入顺序执行时,使用计数值203。当通信单元102内部管理的值与计数值203彼此匹配时,通信单元102可从分组提取数据,并将它输出到处理单元103。节点ID204包含应该对分组中所包含的数据进行处理的处理单元103或者对应的通信单元102的ID。当节点ID204与通信单元102的ID或者对应的处理单元103的ID匹配时,通信单元102确定分组中所包含的数据应该被对应的处理单元103处理。
当从环形总线104接收到分组时,通信单元102对内容进行分析,并根据这些内容来决定随后的处理。更具体地讲,通信单元102从分组提取有效标志201、计数值203和节点ID204,并基于这些内容来决定如何处理分组。
例如,当分组的有效标志201有效,计数值203和节点ID204与通信单元102内部管理的值匹配,并且对应的处理单元103可对数据进行处理时,通信单元102将分组中所包含的数据输出到对应的处理单元103。在这种情况下,与该处理同时地,通信单元102使接收的分组的有效标志201和停顿标志202无效,并将空分组输出到环形总线104上。
相反,当有效标志201有效,计数值203和节点ID204与通信单元102内部管理的值匹配,并且对应的处理单元103不能对数据进行处理时,通信单元102将停顿分组输出到环形总线104上。也就是说,通信单元102使从环形总线104接收的分组中的停顿标志202有效,并将该分组发送到环形总线104上。此外,当有效标志201有效,节点ID204与通信单元102内部管理的值匹配,并且计数值203与通信单元102内部管理的值不匹配时,通信单元102将分组变为停顿分组,并将它发送到环形总线104上。
当有效标志201有效,并且节点ID204与通信单元102内部管理的值不匹配时,通信单元102直接将接收的分组发送到环形总线104上,而不改变其内容。
类似地,输入/输出单元101对从环形总线104接收的分组执行与通信单元102中的分析相同的分析,并且当数据可从输出端子106输出时,输出数据。输入/输出单元101和通信单元102的上述操作可按所希望的顺序执行数据传递和处理。
(输入/输出单元的布置)
图3是举例说明输入/输出单元101的示意性布置的框图。如图3所示,输入/输出单元101包括接收单元301、缓冲器302、选择器303和发送单元304。输入/输出单元101的输出端子359(在数据传送方向上的下游:第二方向)与相邻的通信单元102连接。输入端子357在另一侧(在数据传送方向上的上游)与相邻的通信单元102-n连接。
输出端子351、输出端子352和输入端子353更详细地表示图1中所示的输出端子106。输出端子351是输出指示要被输出的信号是否有效的有效信号的端子。输出端子352是当数据可被输出时输出数据的端子。输入端子353是输入指示数据是否可被输出的停顿信号的端子。当停顿信号有效(停顿)时,接收单元301不能从输出端子352输出数据。
输出端子354、输入端子355和输入端子356更详细地表示图1中所示的输入端子105。输出端子354是输出指示来自发送单元304的输出数据是否可经由选择器303输出的停顿信号的端子。当停顿信号有效(停顿)时,对发送单元304的数据输入停止。输入端子355是从外部接收数据的端子。输入端子356接收指示从外部输入的数据是否有效的有效信号。
接收单元301监视经由输入端子357从相邻的通信单元102-n(在数据传送方向上的上游)输入的分组。同时,分组被输入到缓冲器302,被临时保存在缓冲器中,并在下一时钟周期内被输出到选择器303。
接收单元301确定有效标志201是否有效以及计数值203和节点ID204是否分别与接收单元301中所保存的值匹配。此外,当数据可被输出时(当从输入端子353输入的停顿信号不处于停顿状态时),接收单元301接收满足这些条件的分组。接收单元301然后在输出端子351处使有效信号有效,并经由输出端子352将数据输出到外部。在接收到分组的数据之后,接收单元301中管理的并且附加到数据的计数值增大。与该操作同时地,接收单元301控制经由信号线360使存储在缓冲器302中的分组的有效标志201清除(无效)。同样,接收单元301经由信号线361使存储在缓冲器302中的分组的停顿标志202的值清除。此外,接收单元301经由信号线365将停顿计数器405(稍后将描述)的值输出到发送单元304。
发送单元304经由信号线363监视缓冲器302中的输出分组(信号线358)的有效标志201。当分组的有效标志201有效时,发送单元304使选择器303优先将缓冲器302中的输出分组输出到输出端子359。在这种情况下,发送单元304不能输出包含来自输入端子355的输入数据的分组。为了暂停数据输入,发送单元304使要从输出端子354输出的停顿信号有效(暂停)。当缓冲器302中的输出分组的有效标志201无效时,要从输出端子354输出的停顿信号由来自信号线365的停顿计数值和来自输入端子353的停顿信号控制,稍后将对此进行描述。
当外部输入数据有效(从输入端子356输入的有效信号有效),并且发送单元304中的计时器601(稍后将描述)为“0”时,发送单元304生成在其中输入数据被包含并且有效标志201有效的分组。发送单元304将发送单元304内部管理的计数值和寄存器中设置的节点ID添加到分组,并经由信号线362将所得到的分组输出到选择器303。当来自发送单元304的分组的有效标志201有效并且来自缓冲器302的分组的有效标志201无效时,选择器303经由输出端子359将从发送单元304输出的分组发送到环形总线104。注意,生成分组在概念上意指将数据存储在流过环形总线的空分组中。在分组被输出之后,发送单元304内部管理的计数值增大。
(接收单元的布置和操作)
将参照图4来详细描述接收单元301。图4是举例说明接收单元301的示意性布置的框图。如图4所示,接收单元301包括寄存器401(存储单元)、计数器402、比较器403、确定单元404和停顿计数器405。
在接收单元301中,比较器403监视并分析从输入端子357输入的、环形总线上的分组的有效标志201、计数值203和节点ID204。首先,比较器403确定输入的分组的有效标志201是否有效。如果输入的分组的有效标志201无效,则没有数据要被输出,并且不执行稍后将描述的处理。相反,如果有效标志201有效,则比较器403将分组的节点ID204与存储在寄存器401中的输入节点ID进行比较,并确定这些值是否彼此匹配。同时,比较器403将分组的计数值203与计数器402的值进行比较,并确定这些值是否彼此匹配。当比较结果是节点ID彼此匹配时,比较器403将输入节点ID匹配信号设置为指示“有效”的值,并且当计数值与计数器402的值匹配时,将计数值匹配信号设置为指示“有效”的值。然后,比较器403将分组输出到确定单元404。当节点ID或计数值彼此不匹配时,比较器403将输入节点ID匹配信号或计数值匹配信号设置为指示“无效”的值,并将分组输出到确定单元404。
通过使用确定结果,确定单元404执行(1)当数据可被输出到外部时将数据205发送到外部的接收操作,或者(2)当没有数据可被输出时将停顿分组输出到缓冲器302的停顿操作。将详细解释这些操作。
(1)接收操作(将数据输出到输出端子352的操作)
当输入节点ID匹配信号和计数值匹配信号“有效”并且经由输入端子353接收的停顿信号“无效”时,确定单元404确定数据可从输出端子352输出。在这种情况下,确定单元404经由输出端子351输出指示“有效”的有效信号,并经由输出端子352输出分组的数据205。
此时,确定单元404经由信号线360将用于清除分组的有效标志201的控制信号发送到缓冲器302。缓冲器302根据该控制信号使临时保存的分组的有效标志201无效(清除)。同时,确定单元404经由信号线361将用于清除停顿标志202的控制信号发送到缓冲器302。根据该控制信号,缓冲器302使临时保存的分组的停顿标志202无效。为了获取下一数据,确定单元404将指示“有效”的计数有效信号输出到计数器402,并使计数器402在下一时钟周期内将计数值增大(增大1)。当停顿计数器405的值大于“0”时,将停顿计数器405的值减小(减小1)。
(2)停顿操作(不将数据输出到输出端子352的操作)
如果当输入节点ID匹配信号和计数值匹配信号有效时,确定单元404经由输入端子353接收指示“有效(停顿)”的停顿信号,则尽管有数据要被输出,但是它确定没有数据可被输出到输出端子352。在这种情况下,确定单元404经由信号线361将用于使分组的停顿标志202有效的控制信号发送到缓冲器302。缓冲器302使临时保存的分组的停顿标志202有效(暂停)。另外,确定单元404将指示数据输出将被暂停的控制信号发送到停顿计数器405,并使停顿计数器405将其值增大(增大1)。同样,当输入节点ID匹配信号有效并且计数值匹配信号无效时,确定单元404经由信号线361使临时保存在缓冲器302中的分组的停顿标志202有效,并使停顿计数器405增大。停顿计数器405对应该被输出到外部、被暂停输出并且停留在环形总线104上的分组的数量进行计数。
在停顿操作中,除了使停顿标志202有效之外,不改变临时保存在缓冲器302中的分组的内容。
(发送单元的布置和操作)
将参照图5来详细描述发送单元304。图5是举例说明发送单元304的示意性布置的框图。如图5所示,发送单元304包括寄存器501(存储单元)、计数器502、分组生成单元503和发送间隔控制单元504。
缓冲器302中的输出分组的有效标志201经由信号线363被输入到分组生成单元503和发送间隔控制单元504。数据和数据有效信号分别经由输入端子355和356被输入到分组生成单元503。分组生成单元503经由信号线362将生成的分组输出到选择器303。发送间隔控制单元504分别从信号线365和输入端子353获取接收单元301的停顿计数器的值和指示数据是否可被输出的停顿信号。发送间隔控制单元504通过从输出端子354输出停顿信号来控制从外部的数据输入,并控制分组到环形总线104的输出间隔。
分组生成单元503参照经由输入端子356传送的有效信号,并且当有效信号有效时,确定数据可经由输入端子355从外部输入。当经由输出端子354输出的停顿信号无效(也就是说,它不指示输入停顿状态)时,来自外部的数据被输入到分组生成单元503。当接收到数据时,分组生成单元503生成在其中数据被包含为数据205的分组,并且计数器502的计数值和寄存器501中设置的输出节点ID被设置为计数值203和节点ID204。此时,分组生成单元503将要被生成的分组的有效标志设置为有效,并将停顿标志设置为无效。然后,分组生成单元503将分组输出到选择器303。分组生成单元503将控制信号发送到计数器502,以使得计数器502在下一时钟周期内将计数值增大(增大1)。
接下来,将参照图6来解释发送间隔控制单元504的布置的示例。发送间隔控制单元504包括计时器601、比较器602、发送间隔信号生成单元603、第一寄存器604和计时器寄存器605。
计时器601是控制发送间隔的功能单元。计时器601由例如具有从加载值朝向0递减计数的加载功能的递减计数器形成。当分组生成单元503生成的分组从选择器303输出到环形总线时,在下一周期内加载存储在计时器寄存器605中的发送间隔。计时器寄存器605是用于设置计时器601中的发送间隔的寄存器。这里要被设置的发送间隔是输入/输出单元101对来自外部的数据进行分包并将分组发送到环形总线上的间隔。通信单元102-1至102-n可具有该功能。例如,对于n=12,发送间隔被设置为4。基于从通信单元102输出并被暂停处理的分组来应用输出抑制控制。因此,从通信单元102输出到环形总线上的分组的数量可被抑制为3。
例如,如图6所示,表示分组生成单元503生成的分组已从选择器303输出到环形总线的信息可从被发送到计数器502的控制信号获取。可替换地,可使用另一种机制来向计时器601通知该信息。在递减计数到“0”之后,计时器601保存值“0”,直到值下次被加载为止。
比较器602将经由信号线365获取的停顿计数器值与存储在第一寄存器604中的预先确定的值(阈值)进行比较。如果停顿计数器值等于或大于所述预先确定的值,则比较器602输出“1”;否则,输出“0”。第一寄存器604是存储用于评估停顿计数器405的值的预先确定的值的寄存器。所述预先确定的值小于可存储在环形总线的一圈中的分组的数量。这是因为,当出现死锁时,停顿计数器405的值变为等于或大于可存储在环形总线的一圈中的分组的数量。如果第一寄存器的值被设置为这个值,则不能够防止死锁。
发送间隔信号生成单元603生成被输出到输出端子354的并且指示数据是否可被输入的停顿信号。从以上描述显然可见,当停顿信号有效(停顿)时,它表示数据不能从外部输入。当停顿信号无效时,它表示数据可从外部输入。
将解释图6中的发送间隔控制单元504的操作。首先,CPU(未示出)等将第一寄存器604和计时器寄存器605的值设置为初始设置。然后,比较器602将从信号线365获取的停顿计数值与第一寄存器604中设置的值进行比较。同时,如果计时器601的值不为“0”,则对计时器601进行递减计数。发送间隔信号生成单元603根据经由信号线363输入的有效标志201和从比较器602输出的值来执行以下三个不同的操作。
(1)从信号线363输入的有效标志201有效的情况
因为分组生成单元503不能输出分组,所以指示“有效”的停顿信号经由输出端子354输出,并且从外部的数据输入被暂停。当有效标志201无效时,执行以下操作(2)或(3)。
(2)比较器602的输出为“0”的情况
因为停顿计数器405的值小于第一寄存器604的预先确定的值,所以基于计时器601的值将停顿信号设置为有效或无效,并经由输出端子354输出该停顿信号。也就是说,当计时器601的值为“0”时,使停顿信号无效,以从外部接受数据输入。在其他情况下,使停顿信号有效,以暂停从外部输入。
(3)比较器602的输出为“1”的情况
在这种情况下,停顿计数器405的值等于或大于第一寄存器604的预先确定的值。这意味着输入/输出单元101的接收单元301中被暂停输出的分组的出现频率高。此时,如果经由输入端子353接收的停顿信号有效,则没有数据可从输出端子253输出到外部。为了不进一步增大停顿分组的数量,发送间隔信号生成单元603经由输出端子354输出指示“有效”的停顿信号,以暂停从外部输入数据。相反,如果经由输入端子353接收的停顿信号无效,则数据可经由输出端子352输出到外部。因此,类似于(1),基于计时器601的值来控制要从输出端子354输出的停顿信号。
如上所述,在第一实施例中,通过控制要从输出端子354输出的停顿信号来控制从发送单元304到环形总线104的分组的输出间隔(也就是说,从外部到环形总线104的数据输入)。在以上描述中,发送间隔控制单元504基于来自输入端子353的停顿信号来控制要从输出端子354输出的停顿信号的有效和无效,但是可仅基于停顿计数器405的值来控制它。也就是说,可仅基于暂停输出的分组的数量是否变得等于或大于预先确定的值来暂停输入。在这种情况下,可更简单地控制要从输出端子354输出的停顿信号。
虽然在以上描述中,一个输入/输出单元101执行输入和输出,但是本发明不限于此。还可分别准备输入单元和输出单元,控制通过输入单元将数据输入到环形总线104上,以及控制通过输出单元从环形总线104输出数据。在这种情况下,输出单元通过使用单独准备的信息通知机制等来向输入单元通知停顿计数器405的值和来自输入端子353的停顿信号。输入单元基于通知的/获取的信息来执行输入控制。所述信息可被包含在分组中,并被通知。当分组包含所述信息时,例如,输入单元被布置在环形总线104上与输出单元的下游相邻。如果输出单元被布置为与输入单元的下游相邻,则来自输出单元的信息通过环形总线的一圈到达输入单元。这使得难以适当地执行输入控制和暂停数据输入。
如上所述,在输入/输出单元101中,发送单元304从输入端子353获取停顿计数器405的值和停顿信号。数据处理***的输入侧因此可掌握数据输出在输出侧中止的状态。当数据输出中止并且还未被输出的许多有效分组存在于环形总线上时,可通过减少要输入到环形总线的数据量来有效地防止死锁。换句话讲,可在环形总线104被停顿分组堵塞之前提早停止从输入侧输入数据。在取消许多停顿分组存在于环形总线104上的状态之后,可立即取消数据输入的停止,并且可实现适合于环形总线的堵塞程度的最佳数据输入。通过考虑环形总线上的分组的堵塞程度,可适当地保持数据输入的频率,而不极其大地减小它。
《第二实施例》
将参照图7来描述根据本发明的第二实施例的发送间隔控制单元504。注意,分组的数据结构、以及数据处理***、输入/输出单元101、通信单元102以及输入/输出单元101中的接收单元301和发送单元304的布置和操作与第一实施例中的相同,将不重复其描述。
在图7中,与第一实施例中的图6中的标号相同的标号表示具有相同功能的功能单元,将不重复其描述。第二实施例与第一实施例的不同之处在于比较器701取代了比较器602,并添加了第二寄存器702。此外,发送间隔信号生成单元703取代了发送间隔信号生成单元603。因为在第二实施例中不使用输入端子353,所以省略了输入端子353。
比较器701将来自信号线365的停顿计数器值与存储在第一寄存器604中的第一预先确定的值和存储在第二寄存器702中的第二预先确定的值进行比较。更具体地讲,比较器701保持输出值“1”,直到在停顿计数器值增大并变为等于或大于第一寄存器604中的第一预先确定的值之后,它减小并变为等于或小于第二寄存器702中的第二预先确定的值为止。
在这种情况下,当第二预先确定的值大于第一预先确定的值时,停顿计数器值在超过第一预先确定的值之后可减小而不超过第二预先确定的值。在这种情况下,当停顿计数器值变为小于第一预先确定的值时,比较器701可输出“0”,而不管第二预先确定的值如何。因此,即使当停顿计数器值随环形总线104上的停顿分组的数量增大而极大地增大时,数据输入也可在数据被输出到外部之后立即重新开始,并且停顿分组的数量趋向于减少。通过将第一预先确定的值设置为小到一定程度,当增大停顿分组的数量的迹象出现时,立即暂停接受从外部输入的数据。这可极大地降低环形总线104上的死锁的出现概率。
第一寄存器604的第一预先确定的值可大于第二寄存器702的第二预先确定的值。在这种情况下,比较器701保持输出“1”,直到停顿计数器值在变为等于或大于第一预先确定的值之后变为等于或小于第二预先确定的值为止。在这种情况下,在停顿计数器405的值超过第一寄存器的值以暂停输入之后,在输出停顿分组时,不在该值变为低于第一寄存器的值之后立即重新开始数据输入。在停顿分组被输出预先确定的数量或更多数量并且停顿计数器405的值变为小于第二寄存器的值之后,输入开始。
在任何情况下,第一寄存器604是存储第一预先确定的值的寄存器,所述第一预先确定的值用于决定比较器701的比较结果变为“1”的起始点。第二寄存器702是存储第二预先确定的值的寄存器,所述第二预先确定的值用于决定比较器701的比较结果变为“0”的起始点。然而,当第一预先确定的值小于第二预先确定的值时,类似于第一实施例,第一预先确定的值还用作用于决定比较器701的比较结果变为“0”的起始点的阈值。第一寄存器604和第二寄存器702的预先确定的值需要小于可存储在环形总线的一圈中的分组的数量。这是因为,当出现死锁时,停顿计数器405的值变为等于或大于可存储在环形总线的一圈中的分组的数量。如果所述预先确定的值被设置为这个值,则不可防止死锁。
基于比较器701的输出、计时器601的输出和信号线363的输出,发送间隔信号生成单元703生成要输出到输出端子354的停顿信号。
将解释图7中的发送间隔控制单元504的操作。首先,CPU(未示出)等将第一寄存器604、计时器寄存器605和第二寄存器702的值设置为初始设置。然后,比较器701将来自信号线365的停顿计数值与第一预先确定的值和第二预先确定的值进行比较。同时,如果计时器601的值不为“0”,则对计时器601进行递减计数。发送间隔信号生成单元703根据来自信号线363的有效标志和比较器701的输出值来执行以下三个不同操作之一。
(1)来自信号线363的有效标志有效的情况
在这种情况下,分组生成单元503生成的分组不能被输出。因此,发送间隔信号生成单元703使来自输出端子354的停顿信号有效,然后暂停从外部输入数据。在其他情况下,执行以下操作(2)或(3)。
(2)比较器701的输出为“0”的情况
在这种情况下,停顿计数器405的值小于第一预先确定的值和第二预先确定的值中的较小值。可替换地,停顿计数器405的值变为等于或大于第一预先确定的值和第二预先确定的值中的较大值,然后减小,并且变为等于或小于第二预先确定的值。此外,当第一预先确定的值小于第二预先确定的值时,停顿计数器405的值变为等于或大于第一预先确定的值,然后减小,并且变为小于第一预先确定的值,而不变为等于或大于第二预先确定的值。
在这些情况下,发送间隔信号生成单元703根据计时器601的值来控制来自输出端子354的停顿信号。更具体地讲,当计时器601的值为0时,发送间隔信号生成单元703从输出端子354输出指示“无效”的停顿信号,在其他情况下,发送间隔信号生成单元703输出指示“有效”的停顿信号。
(3)比较器701的输出为“1”的情况
在这种情况下,在停顿计数器405的值变为等于或大于第一寄存器的值之后,它增大或减小,但是不变为等于或小于第二寄存器702的值。此外,当第一预先确定的值小于第二预先确定的值时,停顿计数器405的值变为等于或大于第一预先确定的值,然后既不变为等于或大于第二预先确定的值,也不变为小于第一预先确定的值。在这些情况下,输入/输出单元101中的停顿分组的出现频率高。在这些情况下,发送间隔信号生成单元703从输出端子354输出指示“有效”的停顿信号,并暂停从外部输入数据。
如上所述,在第二实施例中,使用基于两个预先确定的值的比较器701的输出结果来控制来自输出端子354的停顿信号。例如,第一预先确定的值被设置为小于第二预先确定的值。在这种情况下,即使当环形总线104上的停顿分组的数量极大地增大时,数据输入也可在数据被输出到外部之后立即重新开始,并且停顿分组的数量趋向于减少。通过将第一预先确定的值设置为小到一定程度,当增大停顿分组的数量的迹象出现时,立即暂停接受从外部输入的数据。这可极大地降低环形总线104上的死锁的出现概率。将第一预先确定的值设置为大于第二预先确定的值可防止输入的停顿与输入的取消之间的频繁切换。
尽管以上描述了单个数据路径,但是本发明还可应用于多数据路径。当本发明应用于多数据路径时,数据路径ID可被设置在分组的格式中,以识别用于对分组进行处理的数据路径。当多数据路径被处理时,可对每个数据路径设置停顿计数器的阈值。例如,对于优先对分组进行处理的数据路径,用作输入停止的触发器的计数器值可被设置为大于对另一条数据路径用作输入停止的触发器的计数器值。
在以上描述中,DMAC执行分包和解包。然而,CPU可准备数据分组和命令分组,并直接将它们输入到DRAM。
实施例的描述中所使用的数据处理装置的各个单元的示意性布置视图旨在解释功能单元与电路之间的连接,而非意图限制每种布置中的组件的位置关系和数量。例如,为了实施本发明,布置三个或更多个通信单元(包括输入和输出)是足够的。此外,布置两个或更多个处理单元是足够的。
在以上实施例中,为了描述方便,图像数据是处理目标。然而,本发明还可应用于对除了图像之外的数据(诸如运动图像数据、音频数据或数值数据)进行处理的处理装置。
(其他实施例)
本发明的方面还可通过***或装置的计算机(或者诸如CPU或MPU的器件)以及通过方法来实现,所述计算机读出并执行记录在存储器器件上的执行上述实施例的功能的程序,所述方法的步骤通过***或装置的计算机通过例如读出并执行记录在存储器器件上的执行上述实施例的功能的程序来执行。由于这个原因,所述程序例如通过网络或者从用作存储器器件(例如,计算机可读存储介质)的各种类型的记录介质被提供给所述计算机。
虽然已参照示例性实施例描述了本发明,但是要理解本发明不限于所公开的示例性实施例。所附权利要求的范围应被赋予最宽泛的解释,以包含所有这样的修改以及等同的结构和功能。
Claims (8)
1.一种数据处理装置,包括:
多个通信单元,所述多个通信单元被配置为通过环形总线连接;和
多个处理单元,所述多个处理单元对应于相应的所述通信单元,所述多个处理单元被配置为对从所述多个通信单元供给的数据进行处理,
其中,当与所述多个通信单元中的第一通信单元对应的处理单元处于不可接受数据的状态时,所述第一通信单元将表示该处理单元不能接受数据的停顿信息添加到不能被该处理单元接受的数据,并使所述数据绕所述环形总线行进,并且
所述多个通信单元中的第二通信单元基于添加了所述停顿信息的数据来抑制对所述环形总线的数据输入。
2.一种输入控制装置,所述输入控制装置从外部接受数据输入,并将所述数据输入到数据处理***中的总线,在所述数据处理***中,多个通信单元以环形通过总线连接,并且经处理单元处理的数据通过所述总线传递,所述输入控制装置包括:
获取单元,所述获取单元被配置为获取要被输出到外部、被暂停输出并停留在所述总线上的数据项的数量;和
控制单元,所述控制单元被配置为基于所述数据项的数量来控制数据的接受。
3.根据权利要求2所述的装置,其中,当所述数据项的数量大于或等于第一预先确定的值时,所述控制单元暂停数据的接受。
4.根据权利要求2所述的装置,其中,所述控制单元从当所述数据项的数量变为大于或等于第一预先确定的值时的时刻起、直到所述数据项的数量在超过第二预先确定的值之后通过减小而变为小于或等于第二预先确定的值为止暂停数据的接受,所述第二预先确定的值大于所述第一预先确定的值。
5.根据权利要求2所述的装置,其中,所述控制单元从当所述数据项的数量变为大于或等于第一预先确定的值时的时刻起、直到所述数据项的数量变为小于或等于第二预先确定的值为止暂停数据的接受,所述第二预先确定的值小于所述第一预先确定的值。
6.根据权利要求2所述的装置,其中,所述控制单元基于表示向外部的数据输出是否被暂停的信息来进一步控制数据的接受。
7.一种用于数据处理装置的控制方法,所述数据处理装置包括多个通信单元和对应于相应的通信单元的多个处理单元,所述多个通信单元被配置为通过环形总线连接,所述多个处理单元被配置为对从所述多个通信单元供给的数据进行处理,所述控制方法包括:
当与所述多个通信单元中的第一通信单元对应的处理单元处于不可接受数据的状态时,使第一通信单元将表示该处理单元不能接受数据的停顿信息添加到不能被该处理单元接受的数据,并使所述数据绕所述环形总线行进;并且
使所述多个通信单元中的第二通信单元基于添加了所述停顿信息的数据来抑制对所述环形总线的数据输入。
8.一种用于输入控制装置的控制方法,所述输入控制装置从外部接受数据输入,并将所述数据输入到数据处理***中的总线,在所述数据处理***中,多个通信单元以环形通过总线连接,并且经处理单元处理的数据通过所述总线传递,所述控制方法包括:
使获取单元获取要被输出到外部、被暂停输出并停留在所述总线上的数据项的数量;和
使控制单元基于所述数据项的数量来控制数据的接受。
Applications Claiming Priority (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2012014576 | 2012-01-26 | ||
JP2012-014576 | 2012-06-19 | ||
JP2012238359A JP6139857B2 (ja) | 2012-01-26 | 2012-10-29 | データ処理装置、入力制御装置、及び制御方法 |
JP2012-238359 | 2012-10-29 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN103227741A true CN103227741A (zh) | 2013-07-31 |
CN103227741B CN103227741B (zh) | 2016-09-28 |
Family
ID=48838010
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201310022120.7A Active CN103227741B (zh) | 2012-01-26 | 2013-01-22 | 数据处理装置、输入控制装置和控制方法 |
Country Status (3)
Country | Link |
---|---|
US (1) | US9690740B2 (zh) |
JP (1) | JP6139857B2 (zh) |
CN (1) | CN103227741B (zh) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP6882681B2 (ja) * | 2017-07-12 | 2021-06-02 | 富士通株式会社 | 情報処理システム、情報処理装置、及び情報処理システムの制御方法 |
US20190020586A1 (en) * | 2017-07-14 | 2019-01-17 | Qualcomm Incorporated | Selective insertion of a deadlock recovery buffer in a bus interconnect for deadlock recovery |
CN113590356B (zh) * | 2021-07-29 | 2023-08-11 | 网易(杭州)网络有限公司 | 数据通信方法、装置和电子设备 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20100235609A1 (en) * | 2009-03-13 | 2010-09-16 | Canon Kabushiki Kaisha | Ring-pattern bus connected information processing apparatus, information processing method, and storage medium |
US20100241826A1 (en) * | 2009-03-17 | 2010-09-23 | Canon Kabushiki Kaisha | Data processing apparatus, data processing method and program |
US20100303090A1 (en) * | 2009-05-29 | 2010-12-02 | Canon Kabushiki Kaisha | Data processing apparatus using ring bus, data processing method andcomputer-readable storage medium |
US20110016242A1 (en) * | 2009-07-14 | 2011-01-20 | Canon Kabushiki Kaisha | Data processing apparatus and data processing method |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5613069A (en) * | 1994-12-16 | 1997-03-18 | Tony Walker | Non-blocking packet switching network with dynamic routing codes having incoming packets diverted and temporarily stored in processor inputs when network ouput is not available |
JP2006245790A (ja) * | 2005-03-01 | 2006-09-14 | Fujitsu Ltd | リング型伝送システム |
JP5932242B2 (ja) | 2011-05-20 | 2016-06-08 | キヤノン株式会社 | 情報処理装置、通信方法、及びプログラム |
-
2012
- 2012-10-29 JP JP2012238359A patent/JP6139857B2/ja active Active
-
2013
- 2013-01-15 US US13/742,092 patent/US9690740B2/en active Active
- 2013-01-22 CN CN201310022120.7A patent/CN103227741B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20100235609A1 (en) * | 2009-03-13 | 2010-09-16 | Canon Kabushiki Kaisha | Ring-pattern bus connected information processing apparatus, information processing method, and storage medium |
US20100241826A1 (en) * | 2009-03-17 | 2010-09-23 | Canon Kabushiki Kaisha | Data processing apparatus, data processing method and program |
US20100303090A1 (en) * | 2009-05-29 | 2010-12-02 | Canon Kabushiki Kaisha | Data processing apparatus using ring bus, data processing method andcomputer-readable storage medium |
US20110016242A1 (en) * | 2009-07-14 | 2011-01-20 | Canon Kabushiki Kaisha | Data processing apparatus and data processing method |
Also Published As
Publication number | Publication date |
---|---|
US9690740B2 (en) | 2017-06-27 |
US20130198431A1 (en) | 2013-08-01 |
JP6139857B2 (ja) | 2017-05-31 |
JP2013175156A (ja) | 2013-09-05 |
CN103227741B (zh) | 2016-09-28 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US9462091B2 (en) | Information processing apparatus, communication method and storage medium | |
CN104503728B (zh) | 一种硬件加速器及芯片 | |
CN101180838B (zh) | 通信装置及交换处理装置 | |
EP2312457B1 (en) | Data processing apparatus, data processing method and computer-readable medium | |
CN103064807B (zh) | 多通道直接存储器存取控制器 | |
WO2012080170A1 (en) | Network processor and method for accelerating data packet parsing | |
US9239811B2 (en) | Data processing apparatus and data processing method | |
CN103227741A (zh) | 数据处理装置、输入控制装置和控制方法 | |
US9544258B2 (en) | Network, head subscriber and data transmission method | |
CN109815176A (zh) | 特定dma数据发送方法、接收方法、***及介质 | |
CN104462420B (zh) | 数据库的查询任务的执行方法和装置 | |
US20150117795A1 (en) | Image processing apparatus | |
US20150293796A1 (en) | Programmable logic controller and event-driven programming method thereof | |
CN112000446A (zh) | 一种数据传输的方法及机器人 | |
US20100303090A1 (en) | Data processing apparatus using ring bus, data processing method andcomputer-readable storage medium | |
US8930604B2 (en) | Reliable notification of interrupts in a network processor by prioritization and policing of interrupts | |
CN110399977A (zh) | 池化运算装置 | |
EP3264716B1 (en) | State transition compression mechanism to efficiently compress dfa based regular expression signatures | |
US20180006907A1 (en) | Hardware acceleration architecture for signature matching applications for deep packet inspection | |
US20150193292A1 (en) | Microcontroller device and controlling method performed therein | |
KR101749850B1 (ko) | 데이터 전송 장치 및 데이터 전송 방법 | |
CN109862023B (zh) | 一种嵌入式设备实现加速计算和高速网络数据传输方法 | |
CN111937353B (zh) | 操作网络参与者方法及网络参与者 | |
US10353846B2 (en) | Communication system with train bus architecture | |
CN109617881A (zh) | 一种pos终端报文的处理方法及终端 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant |