信息处理装置及信息处理方法

文档序号:6603047阅读:108来源:国知局
专利名称:信息处理装置及信息处理方法
技术领域
本发明涉及一种信息处理装置及信息处理方法,尤其涉及、但不限于用于处理/ 管理在包括互联节点的双向管线(pipeline)中在彼此相反的方向上移动的数据元素的技 术。
背景技术
存在比较在具有多个节点的两个数据流的各节点中保持的各数据元素的应用。一 个示例涉及当确定具有多个数据的第一数据流的元素是否与第二数据流的元素中的至少 一个匹配时、循环比较第一数据流的元素的处理。使用这种应用,在一个方向上移动数据元 素的第一数据流和在另一个方向上移动数据元素的第二数据流分别比较它们各自的数据 元素。然而,如后面将要描述的,在彼此相反的方向上移动数据元素的数据流中,存在各节 点中的数据元素的比较没有正确进行的情况。日本特许第3588487号公报公开了一种双向管线技术(逆流(coimterflow)管线 技术),利用该技术,在彼此相反的方向上移动数据元素的两种管线数据流中,在管线的各 级(stage)比较各数据元素。该技术包括通过沿着规则的路径提供相反方向上的不规则数 据流来对称地处理两个数据集,以形成简单的规则结构。结果,使得典型的RISC(精简指令 集计算机,reduced instruction set computer)处理器特有的复杂旁路电路变得冗余。使 用该技术,管线中的各级仅与该级前面和后面的级进行通信,而不经由前述旁路电路直接 通信,并且数据元素在使用之前通过多个级。因此,该技术的特征在于使数据发送延迟最小 化。此外,典型的同步管线使用级间握手(handshake)协议进行工作。使用这种握手 协议,在接收方向发送侧表明具有保存新的数据元素的空间,并且具有可使用的数据元素 的情况下,发送侧在向接收侧表明要获取该数据元素之后发送数据元素。因此,使用这种典 型的同步管线的握手协议,发送侧确定何时传送数据,从而引起了 “气泡(bubble)(相当于 数据流中的缺口)”出现的可能性以及随之产生的效率的降低。使用该技术,邻近级(在 相同的管线中)相互并对称地(与另一管线)决定给定级的数据元素何时可以向下一级移 动,从而实现了(与其它管线的)点对称通信。此外,该传统技术具有如下配置根据要对数据元素执行的预定操作、以及在发送 数据元素时数据元素通过的特定级,不定期地移动数据元素。该配置抑制了如下问题在彼 此相反的方向上移动数据元素的数据流中,各节点中的数据元素的比较没有正确进行。鉴于此,首先,将使用图9详细描述该应用的数据元素比较没有正确进行的情况。 在图9中,示出了在彼此相反的方向上移动数据元素的两个管线电路的一部分。位于下侧 的第一管线将数据元素从图的左侧(“上游侧”)移向图的右侧(“下游侧”)。另一方面, 位于上侧的第二管线将数据元素从图的右侧(“上游侧”)移向图的左侧(“下游侧”)。图 9中的(a)示出了第一管线正在工作(数据元素移动)、第二管线没有工作(数据元素没有 移动)的情况,作为前述没有问题发生的情况。图9中的(a-Ι)示出了时刻[T]的状态,图9中的(a_2)示出了时刻[T]之后给定固定时间段的时刻[T+1]的状态,图9中的(a_3) 示出了时刻[T+1]之后又一固定时间段的时刻[T+2]的状态。结果,第一管线正在工作,并 且,保持在管线级中的数据元素W、A(O)、A(I)、A (2)、B以及C从图的左侧(“上游侧”)向 图的右侧(“下游侧”)移动。此处,为了便于描述,Α(0)、Α⑴以及A(2)仅由括号内数字 来区分,实际上,它们是等效的数据。通过确定(比较)电路来将第一管线和第二管线中相 对应的各级彼此连接。从第一管线的“下游侧”开始,在图9中的(a-Ι)中的时刻[T],各级的确定结果如 下。首先,在第一管线的下游侧的初始级,确定(比较)电路返回确定结果“假”,因为相比 较的数据元素W和A不匹配。针对后面的各级,确定(比较)电路对于各数据元素A(O)和 Z、A(1)和Y、以及A(2)和X的比较,也返回确定结果“假”。接下来,经过一段时间之后,第一管线的数据元素在图9中的(a-2)中的时刻 [T+1]向“下游侧”移动一级。按照从第一管线的“下游侧”开始的顺序,各级的确定结果如 下。首先,比较数据元素A(O)和A,确定(比较)电路返回确定结果“真”。在后面的各级 中,确定(比较)电路对于各数据元素A(I)和Ζ、A(2)和Y、以及B和X的比较,返回确定 结果“假”。再经过一段时间之后,第一管线的数据元素在图9中的(a-3)中的时刻[T+2]向 “下游侧”又移动了一级。按照从第一管线的“下游侧”开始的顺序,各级的确定结果如下。 首先,比较数据元素A(I)和A,确定(比较)电路返回确定结果“真”。在后面的各级中,确 定(比较)电路对于各数据元素A(2)和Z、B和Y、以及C和X的比较,返回确定结果“假”。如上所述,第一管线的数据元素随着时间的推移而移动通过各级,同时第二管线 的“上游侧”的数据元素A与第一管线的数据元素A(O)和A(I) 二者被正确比较。因此,在 第一管线和第二管线中的任何一者正在工作、而另一管线没有正在工作的情况下,数据元 素的比较正确进行。接下来,在图9中的(b)中,示出了第一管线和第二管线都在工作的情况。图9中 的(b-Ι)至(b-3)示出了与图9中的(a-Ι)至(a-3)相同时刻的状态。由于第一管线以类 似于图9中的(a)的方式进行工作,因此省略对其的描述。另一方面,与图9中的(a)不同, 第二管线还将保持在管线级中的数据元素X、Y、Z、A、B以及C从图的右侧(或“上游侧”) 向图的左侧(或“下游侧”)移动。下文中,将以类似于图9中的(a)的方式来描述在第一管线和第二管线的各对应 级中确定(比较)电路的确定结果。从第一管线的“下游侧”开始,在图9中的(b-Ι)中的 时刻[T]各级的确定结果如下。首先,在第一管线的下游侧的初始确定(比较)电路返回 确定结果“假”,因为相比较的数据元素W和A不匹配。在后面的各级中,确定(比较)电路 对于各数据元素A(O)和Z、A(I)和Y、以及A(2)和X的比较,也返回确定结果“假”。接下来,经过一段时间之后,第一管线和第二管线的数据元素在图9中的(b_2)中 的时刻[T+1]分别向“下游侧”移动一级。按照从第一管线的“下游侧”开始的顺序,各级 的确定结果如下。首先,确定(比较)电路比较数据元素A(O)和B,并返回确定结果“假”。 在下一级中,确定(比较)电路比较数据元素A(I)和A,并返回确定结果“真”。在后面的 各级中,确定(比较)电路对于各数据元素A(2)和Z、以及B和Y的比较,也返回确定结果 “假”。
再经过一段时间之后,第一管线的数据元素和第二管线的数据元素在图9中的 (b-3)中的时刻[T+2]分别向“下游侧”移动一级。按照从第一管线的“下游侧”开始的顺 序,各级的确定结果如下。首先,确定(比较)电路返回确定结果“假”,因为相比较的数据元 素A(I)和C不匹配(然而,在图9中的(b-2)中,A⑴被确定(比较)电路确定为“真”)。 在后面的各级中,确定(比较)电路对于各数据元素A(2)和B、B和A、以及C和Z的比较, 也返回确定结果“假”。如上所述,比较了第二管线的“上游侧”的数据元素A和第一管线的数据元素 A(1),但是没有将数据元素A(O)和A(2)与第二管线的数据元素A进行比较。例如,当第一 管线的各数据元素与第二管线的各数据元素中的至少一个匹配时,在确定第一管线的该匹 配数据元素匹配的情况下,在图9中的(b-Ι)至(b-3)的处理中不能获得正确的确定。这 是由于第一管线和第二管线同时在相反的方向上移动而使得两管线的相对移动速度加倍。实际上,在图9中的(a)的情况下,在时刻[T]与[T+2]之间,仅仅完成了第一管 线的数据元素W、A(0)以及A(I)的比较。相比之下,在图9中的(b)的情况下,完成了第一 管线的数据元素W、A(O)、A(I)、A⑵以及B的比较。因此,虽然与图9中的(a)的情况相 比、图9中的(b)的情况缩短了确定时间,但是在数据元素的比较中发生了遗漏。如前所述,日本特许第3588487号公报公开的技术通过根据要对数据元素执行的 预定操作、以及在移动数据元素时数据元素通过的特定级,来不定期地移动数据元素,进而 解决了以上问题。具体地说,在第一管线和第二管线的各级中监视级状态。在发生以上问 题的情况下,在特定级中,使双向管线的级都停止工作,并在完成比较之后允许这些特定级 的数据元素的移动。这就防止了双向管线中的相关数据元素在比较完成之前通过。然而,使用日本特许第3588487号公报的技术,由于在特定级中执行停止、完成比 较以及移动数据元素的操作,因此即使关注一个级,数据元素也被不规则地重复移动和停 止。本来,在使用多个处理模块构成管线处理的系统中,各节点中的处理越规律,越能够实 现吞吐率(throughput efficiency)的提高。因此,使用日本特许第3588487号公报的技 术,抑制了因采用管线配置而引起的吞吐量的提高。此外,当在两个管线中的各个中移动数 据时,在执行控制、使得参照相同时钟(时钟信号)同步化各管线的情况下,数据最终彼此 错过。

发明内容
因此,本发明提供一种在双向管线的各级中可靠并快速地比较在彼此相反的方向 上移动的数据元素的技术。根据本发明的一方面,提供了一种信息处理装置,该信息处理装置包括第一管线 单元,其具有多个第一节点,并被配置为将第一方向上的各第一节点中保持的第一数据向 所述多个第一节点中的另一个移动;第二管线单元,其具有与所述第一管线单元的所述第 一节点相对应的多个第二节点,并被配置为将第二方向上的各第二节点中保持的第二数据 向所述多个第二节点中的另一个移动,其中,所述第二方向与所述第一方向相反;第一比较 单元,其被配置为将关注节点中保持的第一数据和与所述关注节点相对应的第二节点中保 持的第二数据相比较,其中,所述关注节点是所述第一管线单元的所述第一节点中的一个; 以及第二比较单元,其被配置为将所述关注节点中保持的所述第一数据,与位于相对于所述第二方向的上游侧或者下游侧、作为与所述关注节点相对应的所述第二节点的下一个节 点的第二节点中保持的第二数据相比较。根据本发明的另一方面,提供了一种用于确定由处理装置请求的数据的缓存命中 的信息处理装置,该信息处理装置包括第一管线单元,其具有多个第一节点,并被配置为 将第一方向上的各第一节点中保持的请求数据的地址向所述第一节点中的另一个移动;第 二管线单元,其具有与所述第一管线单元的所述第一节点相对应的多个第二节点,并被配 置为将第二方向上的各第二节点中保持的缓存标签向所述多个第二节点中的另一个移动, 其中,所述第二方向与所述第一方向相反;第一比较单元,其被配置为将关注节点中保持的 第一数据和与所述关注节点相对应的第二节点中保持的第二数据相比较,其中,所述关注 节点是所述第一管线单元的所述第一节点中的一个;第二比较单元,其被配置为将所述关 注节点中保持的所述第一数据,与位于相对于所述第二方向的上游侧、作为与所述关注节 点相对应的所述第二节点的下一个节点的第二节点中保持的第二数据相比较;以及确定单 元,其被配置为基于所述第一比较单元和所述第二比较单元的结果,确定对于所述请求数 据是否存在缓存命中。根据本发明的又一方面,提供了一种信息处理装置,该信息处理装置包括具有用 于处理依次流过多个第一节点的第一数据、以及按照与所述第一数据相反的顺序流过多个 第二节点的第二数据的逆流管线配置的电路,该电路包括参照单元,其被配置为参照各第 一节点中保持的数据、与所述第一节点相对应的第二节点中保持的数据、以及至少在位于 与所述第一节点相对应的所述第二节点之前或之后的第二节点中保持的数据。根据本发明的又一方面,提供了一种信息处理装置,该信息处理装置包括第一管 线单元,其具有数据在第一方向上流动而通过的多个触发器;第二管线单元,其具有数据在 第二方向上流动而通过的多个触发器;以及参照单元,其被配置为对于所述第一管线单元 的所述触发器中的至少一个,参照输入到所述第一管线单元的所述触发器的数据、以及输 入到与所述第一管线单元的所述触发器相对应的所述第二管线单元的触发器的数据或者 从所述第一管线单元的所述触发器输出的数据。根据本发明的又一方面,提供了一种信息处理方法,该信息处理方法包括第一移 动步骤,对于第一管线单元的多个第一节点,将第一方向上的各第一节点中保持的第一数 据向所述多个第一节点中的另一个移动;第二移动步骤,对于与所述第一管线单元的所述 第一节点相对应的第二管线单元的多个第二节点,将第二方向上的各第二节点中保持的第 二数据向所述多个第二节点中的另一个移动,其中,所述第二方向与所述第一方向相反;第 一比较步骤,将关注节点中保持的第一数据和与所述关注节点相对应的第二节点中保持的 第二数据相比较,其中,所述关注节点是所述第一管线单元的所述第一节点中的一个;以及 第二比较步骤,将所述关注节点中保持的所述第一数据,与位于相对于所述第二方向的上 游侧或者下游侧、作为与所述关注节点相对应的所述第二节点的下一个节点的第二节点中 保持的第二数据相比较。根据本发明的又一方面,提供了一种信息处理方法,该信息处理方法使用用于处 理依次流过多个第一节点的第一数据、以及按照与所述第一数据相反的顺序流过多个第二 节点的第二数据的逆流管线配置,该信息处理方法包括如下步骤参照各第一节点中保持 的数据、与所述第一节点相对应的第二节点中保持的数据、以及至少在位于与所述第一节点相对应的所述第二节点之前或之后的第二节点中保持的数据。根据本发明的又一方面,提供了一种使用信息处理装置的信息处理方法,该信息 处理装置包括第一管线单元,其具有数据在第一方向上流动而通过的多个触发器;以及 第二管线单元,其具有数据在第二方向上流动而通过的多个触发器,所述信息处理方法包 括如下步骤对于所述第一管线单元的所述触发器中的至少一个,参照输入到所述第一管 线单元的所述触发器的数据、以及输入到与所述第一管线单元的所述触发器相对应的所述 第二管线单元的触发器的数据或者从所述第一管线单元的所述触发器输出的数据。通过以下对示例性实施例的描述(参照附图),本发明的其他特征将变得明显。


图1是示出数据处理装置的基本配置的示例的框图。图2是示出数据处理装置的电路的示例的框图。图3是示出数据处理装置的基本配置的示例的框图。图4是示出数据处理装置的电路的示例的框图。图5是示出应用数据处理装置的图像处理装置的示例的框图。图6是示出应用数据处理装置的缓存确定装置的示例的框图。图7是示出应用数据处理装置的缓存设备中的存取仲裁单元的处理流程的示例 的流程图。图8是示出应用数据处理装置的缓存设备中的缓冲存储器仲裁单元的处理流程 的示例的流程图。图9例示了传统技术的示例操作。图10是示出数据处理装置的基本配置的示例的框图。
具体实施例方式下文中,将参照附图描述本发明的实施例。基本配置图1是示出根据本实施例的信息处理装置(下文中,称为“数据处理装置”)的基 本配置的示例的框图。第一管线100具有多个节点(第一节点),当它们中的一个被设置 为关注节点时,数据元素(第一数据)在第一方向上从关注节点向下游的下一个第一节点 移动。在图1的配置中,第一节点和第二节点是一一对应关系。此外,数据元素的有效信号 “^11(1[1-1]”112、数据信号“叔切[1-1]”114以及作为数据信号处理结果的处理结果信号 “tag_id[l-l]”116从外部输入到第一管线100。这一系列输入信号在由执行各种数据处理 的数据处理电路120处理之后,临时存储在管线寄存器110中。当驱动信号“enable” 102有效(断言状态)时,该管线寄存器110临时存储经过 数据处理的数据元素,并更新先前存储的数据元素。然而,当“enable”102无效(解除断言 状态)时,该管线寄存器110继续保持先前存储的数据元素,而不存储经过数据处理的数据 元素,并且不更新数据元素。从输入到临时存储在管线寄存器110中的区间被称为“级”(第 一级)。接下来,从管线寄存器110输出数据元素的有效信号“valid[l] ” 132、数据信号"data[l],,134以及处理结果信号‘‘tag_id[l],,136,并与第一级类似,由数据处理电路140 执行各种数据处理。经过数据处理的数据元素被临时存储在第二管线寄存器130中,该存 储操作与第一级类似。一直到将来自管线寄存器110的数据元素临时存储到管线寄存器 130中的区间被称为第二级。此外,从管线寄存器130输出数据元素的有效信号“valid[l+l]” 152、数据信号 “data[l+l]”154以及处理结果信号“tag_id[l+l] ” 156。作为这些操作的结果,在第一管 线100中,数据元素(有效信号“valid”、数据信号“data”以及处理结果信号“tag_id”) 从图的左侧(“上游侧”)向图的右侧(“下游侧”)移动。另一方面,在本实施例中,除了具有第一管线之外,还具有第二管线。该第二管线 具有多个节点(第二节点),这些第二节点中保持的数据元素(第二数据)在与第一管线相 反的方向(第二方向)上向第二节点移动。具体地说,该第二管线160将数据元素从图的右 侧(“上游侧”)向图的左侧(“下游侧”)移动。数据元素的有效信号“tag_Valid[i+2]”172 和数据信号“tag_data[i+2]”174从外部输入到第二管线160。这些输入信号被前述数据 处理电路140使用。随后,这些输入信号被临时存储在管线寄存器170中。请注意,向图1 所示的各触发器提供同样的操作时钟。当驱动信号“shift”162有效(断言状态)时,该管线寄存器170临时存储由有效 信号“tag_Valid[i+2],,172和数据信号“tag_data[i+2],,174构成的一系列输入信号,并 更新先前存储的数据元素。另一方面,当驱动信号“shift” 162无效(解除断言状态)时, 管线寄存器170继续保持先前存储的数据元素,而不存储该系列输入信号,并且不更新数 据元素。从输入到临时存储在管线寄存器170中的区间被称为“级”(第一级)。接下来,从管线寄存器170输出数据元素的有效信号“tag_Valid[i+l],,182和数 据信号“tag_data[i+l]”184,并与第一级类似,将这些信号输入到数据处理电路120。进行 数据处理之后,这些信号被临时存储在第二管线寄存器180中,该存储操作与第一级类似。 一直到将来自管线寄存器170的数据元素临时存储到管线寄存器180中的区间被称为第二 级。此外,从管线寄存器180输出数据元素的有效信号“tag_Valid[i],,192和数据信 号“tag_data[i]”194。作为这些操作的结果,在第二管线160中,构成数据元素的有效信 号“tag_Valid”和数据信号“tag_data”从图的右侧(“上游侧”)向图的左侧(“下游侧”)移动。数据处理电路接下来,将详细描述数据处理电路120和140。在本实施例的数据处理中,比较双 向数据元素“data”和“tag_data”,如果相等,则存储此时的“tag_data”的存储编号(前述 的“ [i] ”、“ [i+Ι] ”、“ [i+2] ”),作为“tag_id”。然后,作为第一管线的数据处理结果,"tag_ id”与‘‘data”同步地从图的左侧(“上游侧”)向图的右侧(“下游侧”)移动。由此,将在 数值上与第一管线100中的第1个数据元素“data[l],,134相等的第二管线160中的数据 元素的存储编号设置在“tag_id[l]”136中。具体地说,当有效信号“tag_Valid[i],,192有效时,数据处理电路120首先使用 用作参照单元的比较电路122(第一比较电路)比较数据信号“data[l-l]”114和“tag_ data[i] ” 194。如果比较结果为相等,则选择器126选择"tag_data[i] ” 194的存储编号"Node = i”。将该选择的值作为在数值上与第一管线100中的数据元素“data[l-l]”114 相等的第二管线160中的数据元素的存储编号设置在“tag_id[l-l]”116中。如前所述,在第一管线100和第二管线160同时工作的情况下,比较可能失败。为 了应对该问题,当有效信号“tag_Valid[i+l] ” 182有效时,数据处理电路120还使用比较 电路124 (第二比较电路)比较数据信号“data[l-l],,114 ^P "tag_data[i+l],,184。如果 比较结果为相等,则选择器126优先选择作为“tag_data[i+l]”184的存储编号“Node = i+1”。此外,当以上两个比较结果均为不相等时,选择器选择输入的处理结果信号“tag_ id[l-l]”116。如果来自外部的驱动信号“shift” 162有效(断言状态)、且第二管线160 正在工作,则数据元素向图的左侧(“下游侧”)移动。因此,在这种情况下,“tag_data”的 存储编号也正确地指示了一个靠左的存储编号。鉴于此,基于选择器126的选择结果、通过 递减器128将存储编号减1来调整存储编号。此处,将给出关于存储编号的选择方法的补充说明。当选择“Node = i”、“Node =i+1”以及“tag_id[l-l]”116中的一个作为存储编号时,选择准则可以简单一些,例 如“优先选择较高的存储编号”。例如,当数据信号“data[l-l]”114和数据信号“tag_ data[i+l] ” 184相等时,考虑来自外部的驱动信号“shift” 162有效的情况。在这种情况 下,选择“Node = i+1”以避免前述比较失败的情况的问题是很重要的,该操作与“优先选择 较高的存储编号”的方法一致。另一方面,如果来自外部的驱动信号“shift” 162无效,则 由于没有产生避免前述比较失败的情况的问题的需求,因此不需要选择“Node = i+1”。然 而,不管此处是否选择“Node = i+1”,在作为第一管线的下游级的第二级,都会再次重新评 估数据信号“data[l] ” 134和“tag_data[i+l] ” 184的比较。因此,在来自外部的驱动信号 “shift”162无效的情况下,与第一级的“tag_data[i+l] ” 184的比较是不相关的。相反地, 在使用“优先选择较高的存储编号”的方法选择存储编号中绝对不存在任何不利之处。由 此选择的值被设置在指示在数值上与数据信号“data[l-l]” 114相等的第二管线160中的 数据元素的存储编号的“tag_id[l-l]”116中。图1仅作为示例,当然,可以用驱动信号“shift”162替换选择器126,并且可以在 来自外部的驱动信号“shift” 162无效的情况下执行控制、使得不选择“Node = i+1”。在 前述示例中,当比较电路122和比较电路124都返回确定结果“假”时,选择输入的处理结 果信号“tag_id[l-l]”116。此处,如果来自外部的驱动信号“shift”162有效,则在任何情 况下对存储编号减1的调整都是必要的,以便应对存储位置向“下游”的移动。因此,在选 择“Node = i+1”之后再次执行对存储编号减1的调整,而不执行使得不选择“Node = i+1” 的控制。数据处理电路140执行类似的处理。首先,当有效信号“tag_Valid[i+l],,182有 效时,数据处理电路140使用比较电路142比较数据信号“data[l],,134和数据信号“tag_ data[i+l] ” 184。如果比较结果为相等,则选择器146选择“tag_data[i+l] ” 184的存储编 号“Node = i+1”。根据第二管线160的操作,当有效信号“tag_Valid[i+2]”172有效时,数 据处理电路140还使用比较电路144比较数据信号“data[l] ” 134和“tag_data[i+2] ” 174。 如果比较结果为相等,则选择器146优先选择“tag_data[i+2]”174的存储编号“Node =i+2”。此外,当以上两个比较结果均为不相等时,选择器146选择处理结果信号“tag_id[l],,136。如果来自外部的驱动信号“shift” 162有效、且第二管线160正在工作,则 “tag_data”的存储编号向图的右侧(“下游侧”)移动一个。由此,基于选择器146的选择 结果、通过递减器148将存储编号减1。由此调整匹配检测结果,使得能够通过简单的处理 实现精确、快速的数据处理。如上所述,在本实施例中,可以在管线的各级可靠、快速地比较在彼此相反的方向 上移动的数据元素。本实施例的数据处理电路120和140各自具有比较电路,该比较电路对第一管线 100的每个数据元素执行与第二管线160的作为比较目标的数据元素的比较。此外,假设第 二管线160正在工作,数据处理电路120和140各自新配备有比较电路,该比较电路在第二 管线160的数据元素的“上游侧”执行与第二管线160的作为比较目标的数据元素的比较。 由于由此可以避免在各特定级中产生的、使用日本特许第3588487号公报的配置发生的互 锁(内部停止)的问题,因此可以实现高的处理性能,而不经常地停止数据处理。此外,在本实施例中,为了计算当两个数据元素相等时的存储位置,假设第二管线 160正在工作,第二数据处理电路120和140各自配备有用于使处理结果减1的递减器。预 先分配第二管线中的数据元素的存储编号,使得所述存储编号从第二管线的“下游侧”向 “上游侧”增加“0,1,2,…,i,i+l,i+2,…,N-l”(i、N是正数,i <N)。稍后将描述这种 分配方法的优点。此外,在倒序分配存储编号的情况下,递减器自然变成使处理结果加1的 递增器。此外,在本实施例中,将在执行在两个方向上移动的数据元素的比较、并且当比较 结果为相等时执行存储位置的计算的情况下的示例描述为数据处理,但是数据处理的内容 不限于此。例如,可以将比较在两个方向上移动的数据元素的结果、以及当比较结果为相等 时对在两个方向上移动的数据元素执行基本的算术运算的结果配置为数据处理结果。图10 示出了执行这种处理的电路的示例。稍后将讨论图10的配置的详情。此外,可以将在两个 方向上移动的数据元素的大小关系配置为数据处理结果。毋庸置疑,使用这种数据处理电 路的配置可以执行诸如删除、大小比较和交换的各种计算。此外,图2示出了包括图1中的基本结构的、总共具有8个区间(8个级)的数 据处理装置的配置的示例。在图2的示例中,比较第一管线和第二管线的8个数据元素。 TagSlot
至TagSlot[7]各自对应于图1所示的第二管线的管线寄存器170或180。 DataSlot
至DataSlot[7]各自对应于图1所示的第一管线的管线寄存器110或130。 Judge
至Judge [7]各自对应于图1所示的数据处理电路120或140。由此,作为将基本 配置一起链接的结果、可以通过管线操作对大量数据元素并行地执行分散比较。在图2所 示的数据处理装置的配置的示例中,通过八级管线实现与8个数据元素的比较。此处,即使 来自外部的驱动信号“shift” 162有效、并且第二管线将数据元素向“下游”移动,也可以在 不降低处理性能的情况下进一步实现稳定的比较处理。另一方面,在使用诸如上述技术的情况下,例如,可以考虑将诸如使用管线配置的 大量数据元素的高速数据处理的应用作为示例应用。执行这种数据处理的领域包括图像处 理领域和图形处理领域。为了提高这些领域中的产品的图像质量并增强产品的功能而执 行多种图像处理,包括通过时分复用对多种内容(图像、视频)进行的同步并行图像处理、 以及叠加并显示多个半透明纹理数据。在这种图像处理的情况下,从诸如DRAM的外部存储
12器中适当地提取并处理需要的图像和视频,通常通过缓存设备执行从外部存储器的数据获 取。然而,当执行时分复用的图像处理、或多个半透明纹理数据的叠加时,在以分段的 方式从外部存储器中获取各图像或视频的情况下,执行各种图像或视频的同步并行处理。 当通过实现典型的缓存技术来以分段的方式从外部存储器中获取各种图像或视频时,经常 发生缓存冲突,明显地降低了缓存性能。另一方面,为了避免缓存冲突,可以增加缓存标签 的路数,但是通过实现典型的缓存技术,当处理非常多的路数时,确定电路中的选择器的逻 辑段的数量增加,从而使得难以实现时序收敛。由此不再能够以高操作频率执行操作。同 时,路数的增加使得在发生缓存冲突时的替换控制变得复杂,从而使得难以实现缓存技术。例如,在日本特许第3588487号公报公开的技术中,随着作为处理目标的数据元 素的数量的增加,管线中的级数增加,从而增大了整个装置的延迟。这意味着当将在一个方 向上移动的管线中的一个数据元素与在另一个方向上移动的管线中的所有数据元素循环 比较时,确定时间增加。鉴于此,将本实施例的数据处理装置作为缓存技术来实现,使得能够实现用于 管理在高速图像处理应用中可使用的缓存数据的快速全关联缓存(fully associative cache)设备。图3是示出根据另一实施例的数据处理装置的基本配置的示例的框图。在图3中, 第一管线300中的数据从图的左侧(“上游侧”)移向图的右侧(“下游侧”)。此外,第二 管线360中的数据从图的右侧(“上游侧”)移向图的左侧(“下游侧”),数据元素移动的 方向与第一管线300相反。请注意,图3中的各种信号的名称和含义与图1相同,因此这里 省略对其的描述。请注意,在图3中,图1中的数据处理电路以及在其中包括的电路元素, 在比较电路321至329与选择和递减电路320 (包括选择器346和递减器348)之间分割。在本实施例中,将作为在两个方向中的一个方向(第一管线)上移动的数据元素 的单个数据信号“data”同时与作为在另一个方向(第二管线)上移动数据元素的多个数 据信号“tag_data”相比较。也就是说,第一节点对应于多个第二节点。如果即使有一个相 等的“tag_data”,则也将此时的“tag_data”的存储编号存储为“tag_id”。如果有多于一 个相等的“tag_data”,则可以优先选择最高的存储编号。首先,将“data[l]”334输入到9个比较电路321至329中的每一个。此时,需要 提供比要与“data[l]”334相比较的“tag_data”的数量(等于第二节点的数量)多一个的
比较电路。连接以下作为处理目标的对
·有效信号‘tag_Valid[i] ”与数据信号 “tag_data[i],,
·有效信号‘tag_valid[i+l]”与!数据信号‘<tag_data[i+l],,
·有效信号‘tag_valid[i+2]”与!数据信号‘<tag_data[i+2],,
·有效信号‘tag_Valid[i+3]”与!数据信号‘<tag_data[i+3],,
·有效信号‘tag_valid[i+4]”与!数据信号‘<tag_data[i+4] ”
·有效信号‘tag_valid[i+5]”与!数据信号‘<tag_data[i+5],,
·有效信号‘tag_valid[i+6]”与!数据信号‘<tag_data[i+6],,
·有效信号‘tag_Valid[i+7]”与!数据信号‘<tag_data[i+7],,
·有效信号‘tag_valid[i+8]”与!数据信号‘<tag_data[i+8],,
比较电路321至329中的各个的操作与前述示例类似,并将其9个比较结果输入 到选择器346。选择器346选择作为其比较结果为相等的“tag_data”的存储编号的“Node =i”至“Node = i+8”中的一个。此外,当上述9个比较结果均为不相等时,选择器346选 择输入的处理结果信号“tag_id[l-l]”316。与前述示例类似,使用“优先选择较高的存储编号”的方法选择存储编号。如果来 自外部的驱动信号“shift” 362有效,则基于选择器346的选择结果、通过使用递减器348 将存储编号减1来调整存储编号。在本实施例中,使用1个区间(1级)来实现图2所示的8区间(8级)管线,并且 完成对单个的输入数据的比较之前的延迟从8削减到1。此外,尽管在图2中需要总共2X8 个比较电路,但是在本实施例中仅有9个比较电路,比较电路的数量从16削减到9。将装置 作为一个整体来看,由于递减器和管线寄存器的数量也被削减,因此通过在不降低处理性 能的情况下缩短延迟加强了响应性,从而使得整个电路规模也被削减。此外,在本实施例中,可以执行第一管线中的单个数据元素与第二管线中的多个 数据元素的高速比较,而不会有逆流管线中的遗漏。此外,通过组合图1和图3的基本电路,可以将管线寄存器导入接触点338_1至 338_9,可以分别设置图1中的选择器和递减器。在这种情况下,还可以实现进一步提高操 作频率的电路,同时分散选择器346的逻辑段并削减整个电路的延迟。此外,在图4中示出了包含图3中的基本配置的、总共具有8个区间(8个级)的 数据处理装置的配置的示例。使用图4中的示例,比较第一管线和第二管线的64个数据元 素。图4中的TagSlot
至TagSlot[63]各自对应于图3所示的第二管线中的管线寄存 器380、381等。DataSlOt
至[7]各自对应于图3所示的第一管线中的管线寄存器310、 330等,SelIDcr
至Sel&Dcr[7]各自对应于图3所示的选择和递减电路320等。将基本 配置链接到一起使得能够通过管线操作对大量数据元素并行地执行分散比较。使用图4中 的示例配置,通过八级管线实现与64个数据元素的比较,此外,即使来自外部的驱动信号 “shift”有效、并且第二管线将数据元素向“下游”移动,也可以在不降低处理性能的情况下 实现稳定的比较处理。以上电路当然可以通过计算机虚拟实现。由此,在参照同一操作时钟来移动数据 的双向管线中,即使在硬件的意义上数据元素在彼此相反的方向上移动,也可以抑制比较遗漏。图像处理装置图5是示出根据另一实施例的图像处理装置的整体配置的示例的框图。本实施例 的图像处理装置应用图2或图4所示的数据处理装置,作为全关联缓存确定装置。存在涉及在对存储在存储器中的图像进行旋转、缩放或扭曲之后、将该图像绘制 在诸如显示器的显示设备上的图像(视频)处理。此外,使用纹理映射(texture mapping) 处理,在图形领域中实现类似的处理。本实施例的图像处理装置的示例包括使用该纹理映 射处理来管理合适的缓存数据的缓存设备。用作缓存目标数据的图像数据568预先存储在图5所示的外部存储器DRAM 565 中。最后,诸如光栅化结果502的图像被绘制在显示设备的帧缓冲器中。由光栅化结果502 上示出的虚线围绕的正方形表示显示设备的单个像素。图像处理装置从光栅化结果502的左上角的像素开始、在水平方向上按顺序逐个像素地执行图像处理,并在处理到右上角的 像素之后,从下一行的左边像素开始、在水平方向上按顺序逐个像素地执行图像处理(光 栅扫描图像处理)。将与存取目标像素504 (请求作为处理目标的数据)相对应的纹理坐标505从光 栅化装置(未示出)输入到地址计算单元510。接下来,在地址计算单元510中,将纹理坐 标505转换为地址515。接下来,通过全关联缓存确定单元520确定地址515是缓存命中(cache hit)还 是缓存未命中。通过应用图2或图4所示的数据处理装置作为全关联缓存确定装置,而产 生全关联缓存确定单元520。使用全关联缓存确定单元520,基于输入地址515生成缓存确 定结果525。在本实施例的图像处理装置中,采用无阻塞(non-blocking)缓存机构以隐藏作 为当发生缓存未命中时引发的不利结果的再充填延迟。由此,即使缓存确定结果525被确 定为例如缓存未命中,稍后需要的信息“tag_id,miss_hit_flag"528也被保存到Tag_id FIFO 540。然后,在完成从DRAM565中读出导致缓存未命中的缓存数据、并将数据存储在缓 冲存储器(FIFO) 590中的处理之前,执行下一个像素的缓存确定处理。即使正在将导致缓 存未命中的缓存数据从DRAM 565再充填到缓冲存储器590 (FIFO),执行这种处理也使得能 够执行对后面的像素的缓存确定。因此,可以抑制当发生缓存未命中时的性能降低。请注意,如稍后所述,通过存取仲裁单元530将导致缓存未命中的数据的地址依 次存储在地址发送FIFO 550中。DRAM控制器560参照该地址发送FIFO 550,并在导致缓 存未命中的数据的地址被写入其中的情况下,从DRAM 565中读出该数据,并将读取的数据 写入纹理数据接收FIFO 570。由此将从DRAM 565中读出导致缓存未命中的数据、将读取的 数据写入纹理数据接收FIFO 570的一系列处理称为再充填。如稍后所述,缓冲存储器仲裁 单元580参照Tag_id FIFO 540,并指定miss_hit_flag有效的数据,即导致缓存未命中的 数据。从纹理数据接收FIFO 570中读出该数据,并将其写入缓冲存储器590。对于导致缓 存命中的数据,缓冲存储器仲裁单元580直接从缓冲存储器590中读出数据并输出读取的 数据;对于导致缓存未命中的数据,缓冲存储器仲裁单元580将再充填的数据输出到外部 (585)。存取仲裁单元存取仲裁单元530判断在所有3个连接的FIFO (即地址发送FIF0550、纹理数据接 收FIFO 570以及Tag_id FIFO 540)中是否存在空闲的存储区域。基于从这些FIFO输入 的信号"full ” 552、"full ” 542以及“ ful 1 ” 572执行该判断。存取仲裁单元530在缓存确定结果525的“valid”为有效的条件下确定发生缓存 命中,并执行向Tag_id FIFO 540和地址发送FIFO 550的写入。具体地说,响应于来自全关 联缓存确定单元520的缓存确定结果525的接收,tag_id以及指示缓存确定结果的miss_ hit_flag等被写入TagjdFIFO 540。此外,在接收到指示缓存未命中的结果的情况下,导 致缓存未命中的数据的地址(miss_hit_address)被写入地址发送FIFO 550。下文中,使用图7中的处理流程图700来描述存取仲裁单元530的处理。首先,存 取仲裁单元530确定输入的缓存确定结果525的输入有效信号“valid”是否为有效(断言 状态)(S710)。如果有效(S710 是),则处理进行到S720,如果无效(S710 否),则处理结束。在S720中,存取仲裁单元530确定与要存取的数据相关的缓存确定结果是否为缓 存未命中,即“miSS_hit_flag”525是否有效(断言状态)。如果有效(S720:是),则处理 进行到S750,如果无效(S720 否),则处理进行到S730。在S750中,存取仲裁单元530确定在所有以上三个FIFO的存储区域中是否存在 可用的空间。如果存在空间(S750 是),则处理进行到S760,如果不存在空间(S750 否), 则处理进行到S755。在S760中,存取仲裁单元530将来自缓存确定结果525的“tag_id,miss_hit_ flag”528写入Tag_id FIFO 540。此外,存取仲裁单元530将来自缓存确定结果525的 “miss_hit_address” 525写入地址发送FIFO 550。然后,该处理结束。另一方面,如果在以上三个FIFO中任何一个FIFO的存储区域中都不存在可用的 空间,则在S755中,存取仲裁单元530通过将驱动信号“enable”设置为无效(解除断言状 态)来暂停(停止)先前级,并等待直到存储区域变得可用为止。当在所有三个FIFO的存 储区域中,空间变得可用(S750:是)时,处理进行到S760。此外,如果缓存确定结果指示缓存命中(S720 否),则存取仲裁单元530在S730 中确定在Tag_id FIFO 540的存储区域中是否存在可用空间。如果存在空间(S730:是), 则处理进行到S740,如果不存在空间(S730 否),则处理进行到S735。在S740中,存取仲裁单元530将来自缓存确定结果525的“tag_id,miss_hit_ flag”528写入Tag_id FIFO 540。然后,处理结束。另一方面,如果在S730中,在Tag_id FIFO 540的存储区域中不存在可用空间 (S730 否),则在步骤S735中,存取仲裁单元530通过将驱动信号“enable”设置为无效 (解除断言状态)来暂停(停止)先前级,并等待直到空间在存储区域中变得可用为止。如 果空间在存储区域中变得可用(S730:是),则处理进行到S740。缓冲存储器仲裁单元缓冲存储器仲裁单元580参照Tag_id FIFO 540中存储的miSS_hit_flag、根据是 发生缓存命中还是未命中,执行以下处理·从缓冲存储器(FIFO) 590中读出缓存的数据,并输出读取的数据(585)·从纹理数据接收FIFO 570中读出未缓存的数据,并将读取的数据写入缓冲存储 器590,而且将读取的数据作为纹理数据输出(585)下文中,使用图8中的处理流程图800来描述缓冲存储器仲裁单元580的处理。首 先,缓冲存储器仲裁单元580从Tag_id FIFO 540中提取要处理的缓存确定结果“tag_id, miss_hit_flag" (S810)。如果tag_id FIF0540为空,则由于没有要处理的缓存确定结果, 因此缓冲存储器仲裁单元580自然等待而不执行任何处理。接下来,在S820中,缓冲存储器仲裁单元580确定缓存确定结果“miss_hit_f lag” 是否有效(断言状态)。如果有效(S820 是),则处理进行到步骤S840,如果无效(S820 否),则处理进行到步骤S830。由于在S820中“miSS_hit_flag”无效(解除断言状态)时发生缓存命中,因此在 S830中,缓冲存储器仲裁单元580由同时提取出的“tag_id”以及缓冲存储器(FIFO) 590 的写指针来计算地址。此外,缓冲存储器仲裁单元580从缓冲存储器590中读出“reacLdata” 592,并将该数据设置为纹理数据。然后,该处理进行到S890。在S890中,缓冲存储器仲裁单元580添加有效信号“valid”,并输出“teXture_ data,Valid”585。然后,处理结束。使用图像处理装置,基于该纹理数据执行滤波处理(未 示出),并将滤波处理结果写入显示设备的帧缓冲器(未示出)。此外,在S820中缓存确定结果“miss_hit_flag”有效(断言状态)时发生缓存未 命中。因此在S840中,缓冲存储器仲裁单元580检查来自DRAM 565的要更新的纹理数据 是否已经被再充填到纹理数据接收FIF0570中。如果没有再充填,则缓冲存储器仲裁单元 580等待直到数据被再充填为止(S850)。在数据被再充填之后,缓冲存储器仲裁单元580从纹理数据接收FIFO 570中提取 再充填的数据作为要更新的纹理数据(S860)。接下来,缓冲存储器仲裁单元580将提取的 纹理数据作为“Write_data”582写入由缓冲存储器(FIFO) 590的写指针指示的存储区域 (S870)。然后,缓冲存储器仲裁单元580增大缓冲存储器590的写指针(S880)。然后,缓冲 存储器仲裁单元580添加有效信号“valid”,并输出“texture_data,valid” 585 (S890)。全关联缓存确定单元此外,使用图6详细描述图5所示的图像处理装置的全关联缓存确定单元520的 电路的示例。全关联缓存确定单元520通过检查比较结果与缓存标签的数量之间的大小关 系来确定是否发生缓存命中。全关联缓存确定单元520被配置为具有图2所示的数据处理 装置200以及缓存确定装置600。此外,可以使用图4所示的数据处理装置来替代数据处理 装置200。数据处理装置200如前所述具有8个“tag_data”,缓存标签信息存储在这8个 “tag_data”中。数据处理装置200由此形成8路组关联缓存设备。此外,数据处理装置200 具有移位结构(shift structure),在该移位结构中,按照从第二管线的“上游侧”开始的顺 序、在连续的设置路线中预定从0到7的存储位置,并且当驱动信号“shift”有效(断言状 态)时,数据元素向“下游”移动。作为该移位结构的结果,最早的缓存标签存储在存储位 置0的“tag_data”中,最新的缓存标签存储在存储位置7的“tag_data”中。每当发生缓 存未命中时,缓存标签就按照从存储位置7的“tag_data”到存储位置0的“tag_data”的 顺序移动(移位),并最终从第二管线被清出。由于不断地顺次丢弃最早的缓存标签和缓存 数据,因此本实施例的缓存确定装置是不需要执行典型的缓存机构的复杂的替换控制的非 常简单的机构。缓存命中确定接下来,将描述缓存命中/未命中确定过程。通过缓存确定装置600执行缓存命 中/未命中确定。通过检查从数据处理装置200输出的处理结果信号“tag_id” ( 二进制 补码记数法)的1位符号位来确定是否发生缓存未命中。当从数据处理装置200输出的有 效信号“valid”有效(断言状态)、且符号位为1时,“tag_id”为负,确定发生了缓存未命 中。当符号位为0时,“tag_id”为正,确定发生了缓存命中。从数据处理装置200输出的数据信号“data”被与“tag_id”同步地输入到缓存确 定装置600。在如上所述确定发生了缓存未命中的情况下,该数据信号“ data,,是存在缓存 未命中时的地址“miSS_hit_addreSS”。然后,当存在缓存未命中时,缓存确定装置600将 驱动信号“shift”设置为有效(断言状态),并输入存在缓存未命中时的地址“miss_hit_address”作为数据处理装置200的数据信号“tag_data”。每当发生缓存未命中时使驱动 信号“shift”有效,并减小处理结果“tag_id”。还存在如下情况即使在处理结果“tag_id”中最初保持正值,也在重复发生缓存 未命中时将第二管线移位,并从第二管线清出表示缓存标签的“tag_data”。假定最早的缓 存标签的存储编号为0,则清出(swe印out) “tag_id”时的处理结果“tag_id”的值明显为 负。这就是在前述缓存确定中仅仅需要检查“tag_id”的符号的原因。也就是说,设计存储 位置编号的分配使得最早的缓存标签的存储编号为0,最新的缓存标签的存储编号为N-1。 由此,缓存确定仅仅需要区分最后级的数据处理结果的符号。因此,根据本实施例的缓存确 定非常简单。毋庸置疑,在从第二管线的“上游侧”向“下游侧”分配从0到N-I的存储编号的 情况下,可以通过确定“tag_id”的值是否小于第二管线中元素的数量N来执行缓存确定。此外,如前所述,由于不断依次丢弃最早的缓存数据的机构,因此本实施例的示例 中的缓冲存储器仅仅需要使用环状FIFO。在这种情况下,便于全关联缓存确定单元520和 缓冲存储器(FIFO) 590的同步化。请注意,如果确定为缓存命中,则将把期望的纹理数据存 储在由“tag_id”指示的位置处的缓冲存储器中。该缓存设备使得能够实现具有非常多路数的全关联缓存设备。由此,即使在通过 时分复用对多种内容执行图像处理、或通过叠加多个半透明纹理数据执行图像处理的情况 下,也可以降低缓存冲突的概率。此外,使用缓存设备的典型实现方法,由于当处理非常多 的路时确定电路的选择器具有大量的逻辑段而难以实现时序收敛,并且不能以高操作频率 执行操作。相比之下,由于使用管线配置执行确定,因此以上缓存设备的确定电路以非常高 的操作频率执行操作。使用以上全关联缓存确定电路,由于顺次自动删除最早的数据,因此 不需要在发生缓存冲突时的复杂的替换控制。因此,缓冲存储器还可以仅使用FIFO执行良 好的命中确定。其他实施例此外,图10示出了在示出使用ALU (算术逻辑单元,Arithmetic LogicUnit)执行 算术处理(而非比较运算)的过程,作为由参照单元在参照数据之后执行的算术处理时的 基本电路的示例。在图10中,不同于图1示出的示例,“data2”被添加到第一管线,“tag data2”被添加到第二管线。类似于前述说明,当“data[l-l] ”和“tag_data[i] ”相等时选择 "tag_data2[i] ”,并将使用“data2 [1-1] ”执行算术处理的结果存储在“tag_id[l] ”中。当 “data[1-1] ”和"tag_data[i+l] ”相等时选择 “tag_data2 [i+1] ”,并将使用 “data2[l_l],, 执行算术处理的结果存储在“tag_id[l] ”中。此外,如果“tag_data[i]或“tag_data[i+l] ” 都不相等,则选择输入的“tag_id[l-l],,而不执行算术处理,并将“tag_id[l-l],,存储在 “tag_id[l]”中。由此,作为第一管线和第二管线的数据以及数据处理电路1100的配置的 结果,可以实现各种算术处理(基本算术运算、大小比较等)。此外,可以根据各种算术处理结果、将第一管线和第二管线的有效信号“valid” 和“tag_Valid”从有效切换到无效。在这种情况下,可以消除特定的数据元素“data”和 "tag_data"0此外,可以根据各种算术处理结果、交换第一管线和第二管线的特定的数据元 素“data”和“tag_data”。毋庸置疑,由此可以根据以上配置的模式实现使用各种运算的数 据处理。
18
此外,可以作为各个处理器中的软件,来实现图3和图4所示的各区间(级)的 数据处理,并且可以在使各处理器与驱动信号“shift”同步的同时,交换“data”和“tag_ data”。在这种情况下,可以使用软件通过并行分布处理来执行数据处理。此外,在这种情 况下,各处理器处理的数据元素的数量不限于8 (与图3中的示例中一样),仅需要是在处理 器可访问的存储器中展开的大数。此时,可以通过移动存储器中指针的原点来实现“tag_ data"的移动。毋庸置疑,由此通过使用以上配置的模式、可以将本发明应用于软件处理。根据本发明,对于在彼此相反的方向上移动数据元素的两个管线,可以在对应的 各级可靠、快速地比较数据元素。本发明的各方面还可以通过读出并执行记录在存储装置上的用于执行上述实施 例的功能的程序的系统或设备的计算机(或诸如CPU或MPU的装置)、以及由系统或设备 的计算机例如读出并执行记录在存储装置上的用于执行上述实施例的功能的程序来执行 各步骤的方法来实现。鉴于此,例如经由网络或者从用作存储装置的各种类型的记录介质 (例如计算机可读介质)向计算机提供程序。虽然参照示例性实施例对本发明进行了说明,但是应当理解,本发明不限于所公 开的示例性实施例。应当对所附权利要求的范围给予最宽的解释,以使其涵盖所有这种变 型、等同结构及功能。
权利要求
一种信息处理装置,该信息处理装置包括第一管线单元,其具有多个第一节点,并被配置为将第一方向上的各第一节点中保持的第一数据向所述多个第一节点中的另一个移动;第二管线单元,其具有与所述第一管线单元的所述第一节点相对应的多个第二节点,并被配置为将第二方向上的各第二节点中保持的第二数据向所述多个第二节点中的另一个移动,其中,所述第二方向与所述第一方向相反;第一比较单元,其被配置为将关注节点中保持的第一数据和与所述关注节点相对应的第二节点中保持的第二数据相比较,其中,所述关注节点是所述第一管线单元的所述第一节点中的一个;以及第二比较单元,其被配置为将所述关注节点中保持的所述第一数据,与位于相对于所述第二方向的上游侧或者下游侧、作为与所述关注节点相对应的所述第二节点的下一个节点的第二节点中保持的第二数据相比较。
2.根据权利要求1所述的信息处理装置,其中如果驱动信号有效,则所述第二管线单元将各第二节点中保持的第二数据向位于所述 第二方向的下游侧、作为所述各第二节点的下一个节点的第二节点移动,并且在所述驱动信号有效的情况下,所述第二比较单元执行比较处理;而在所述驱动信号 无效的情况下,所述第二比较单元不执行所述比较处理。
3.根据权利要求1所述的信息处理装置,其中所述第一比较单元和所述第二比较单元确定所述第一管线单元的数据与所述第二管 线单元的数据是否匹配。
4.根据权利要求1所述的信息处理装置,其中 所述信息处理装置对缓存数据进行管理,所述第一管线单元移动作为所述第一数据的地址,所述第二管线单元移动作为所述第 二数据的所述缓存数据的缓存标签,并且所述第一比较单元和所述第二比较单元确定所述第一管线单元中的地址与所述第二 管线单元中的缓存标签是否匹配。
5.根据权利要求1所述的信息处理装置,其中所述第一管线单元和所述第二管线单元是逆流管线。
6.根据权利要求1所述的信息处理装置,其中所述第一管线单元和所述第二管线单元各自具有多个触发器,并且对各触发器提供同 一时钟信号。
7.一种信息处理装置,其用于确定由处理装置请求的数据的缓存命中,该信息处理装 置包括第一管线单元,其具有多个第一节点,并被配置为将第一方向上的各第一节点中保持 的请求数据的地址向所述第一节点中的另一个移动;第二管线单元,其具有与所述第一管线单元的所述第一节点相对应的多个第二节点, 并被配置为将第二方向上的各第二节点中保持的缓存标签向所述多个第二节点中的另一 个移动,其中,所述第二方向与所述第一方向相反;第一比较单元,其被配置为将关注节点中保持的第一数据和与所述关注节点相对应的第二节点中保持的第二数据相比较,其中,所述关注节点是所述第一管线单元的所述第一 节点中的一个;第二比较单元,其被配置为将所述关注节点中保持的所述第一数据,与位于相对于所 述第二方向的上游侧、作为与所述关注节点相对应的所述第二节点的下一个节点的第二节 点中保持的第二数据相比较;以及确定单元,其被配置为基于所述第一比较单元和所述第二比较单元的结果,确定对于 所述请求数据是否存在缓存命中。
8.根据权利要求7所述的信息处理装置,该信息处理装置还包括接收单元,其被配置为在所述确定单元确定对于所述请求数据不存在缓存命中的情况 下,接收作为所述缓存标签的所述第一数据的地址的输入。
9.一种信息处理装置,该信息处理装置包括具有用于处理依次流过多个第一节点的第一数据、以及按照与所述第一数据相反的顺 序流过多个第二节点的第二数据的逆流管线配置的电路,该电路包括参照单元,其被配置为参照各第一节点中保持的数据、与所述第一节点相对应的第二 节点中保持的数据、以及至少在位于与所述第一节点相对应的所述第二节点之前或之后的 第二节点中保持的数据。
10.一种信息处理装置,该信息处理装置包括第一管线单元,其具有数据在第一方向上流动而通过的多个触发器;第二管线单元,其具有数据在第二方向上流动而通过的多个触发器;以及参照单元,其被配置为对于所述第一管线单元的所述触发器中的至少一个,参照输入 到所述第一管线单元的所述触发器的数据、以及输入到与所述第一管线单元的所述触发器 相对应的所述第二管线单元的触发器的数据或者从所述第一管线单元的所述触发器输出 的数据。
11.一种信息处理方法,该信息处理方法包括第一移动步骤,对于第一管线单元的多个第一节点,将第一方向上的各第一节点中保 持的第一数据向所述多个第一节点中的另一个移动;第二移动步骤,对于与所述第一管线单元的所述第一节点相对应的第二管线单元的多 个第二节点,将第二方向上的各第二节点中保持的第二数据向所述多个第二节点中的另一 个移动,其中,所述第二方向与所述第一方向相反;第一比较步骤,将关注节点中保持的第一数据和与所述关注节点相对应的第二节点中 保持的第二数据相比较,其中,所述关注节点是所述第一管线单元的所述第一节点中的一 个;以及第二比较步骤,将所述关注节点中保持的所述第一数据,与位于相对于所述第二方向 的上游侧或者下游侧、作为与所述关注节点相对应的所述第二节点的下一个节点的第二节 点中保持的第二数据相比较。
12.一种信息处理方法,该信息处理方法使用用于处理依次流过多个第一节点的第一 数据、以及按照与所述第一数据相反的顺序流过多个第二节点的第二数据的逆流管线配 置,该信息处理方法包括如下步骤参照各第一节点中保持的数据、与所述第一节点相对应的第二节点中保持的数据、以及至少在位于与所述第一节点相对应的所述第二节点之前或之后的第二节点中保持的数 据。
13. 一种使用信息处理装置的信息处理方法,该信息处理装置包括第一管线单元,其 具有数据在第一方向上流动而通过的多个触发器;以及第二管线单元,其具有数据在第二 方向上流动而通过的多个触发器,所述信息处理方法包括如下步骤对于所述第一管线单元的所述触发器中的至少一个,参照输入到所述第一管线单元的 所述触发器的数据、以及输入到与所述第一管线单元的所述触发器相对应的所述第二管线 单元的触发器的数据或者从所述第一管线单元的所述触发器输出的数据。
全文摘要
本发明提供信息处理装置及信息处理方法。该信息处理装置包括第一管线,其具有第一节点,并将各第一节点中保持的数据向位于第一方向上的第一节点移动;第二管线,其具有与所述第一节点相对应的第二节点,并将各第二节点中保持的第二数据向位于与所述第一方向相反的第二方向上的第二节点移动;第一比较单元,其被配置为将保持在关注节点中的数据与保持在与所述关注节点相对应的第二节点中的数据相比较,其中,所述关注节点是所述第一节点中的一个;以及第二比较单元,其被配置为将保持在所述关注节点中的数据,与保持在位于与所述关注节点相对应的所述第二节点的上游或下游侧一个节点处的第二节点中的数据相比较。
文档编号G06F9/38GK101894012SQ20101018289
公开日2010年11月24日 申请日期2010年5月21日 优先权日2009年5月22日
发明者伊藤忠幸 申请人:佳能株式会社
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1