CN101894012B - 信息处理装置及信息处理方法 - Google Patents
信息处理装置及信息处理方法 Download PDFInfo
- Publication number
- CN101894012B CN101894012B CN201010182894.2A CN201010182894A CN101894012B CN 101894012 B CN101894012 B CN 101894012B CN 201010182894 A CN201010182894 A CN 201010182894A CN 101894012 B CN101894012 B CN 101894012B
- Authority
- CN
- China
- Prior art keywords
- data
- node
- pipeline
- pipeline unit
- unit
- 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.)
- Active
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F7/00—Methods or arrangements for processing data by operating upon the order or content of the data handled
- G06F7/02—Comparing digital values
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Physics & Mathematics (AREA)
- Mathematical Analysis (AREA)
- Pure & Applied Mathematics (AREA)
- Mathematical Optimization (AREA)
- General Engineering & Computer Science (AREA)
- Computational Mathematics (AREA)
- Image Processing (AREA)
- Advance Control (AREA)
- Memory System Of A Hierarchy Structure (AREA)
- Compression Or Coding Systems Of Tv Signals (AREA)
Abstract
本发明提供信息处理装置及信息处理方法。该信息处理装置包括:第一管线,其具有第一节点,并将各第一节点中保持的数据向位于第一方向上的第一节点移动;第二管线,其具有与所述第一节点相对应的第二节点,并将各第二节点中保持的第二数据向位于与所述第一方向相反的第二方向上的第二节点移动;第一比较单元,其被配置为将保持在关注节点中的数据与保持在与所述关注节点相对应的第二节点中的数据相比较,其中,所述关注节点是所述第一节点中的一个;以及第二比较单元,其被配置为将保持在所述关注节点中的数据,与保持在位于与所述关注节点相对应的所述第二节点的上游或下游侧一个节点处的第二节点中的数据相比较。
Description
技术领域
本发明涉及一种信息处理装置及信息处理方法,尤其涉及、但不限于用于处理/管理在包括互联节点的双向管线(pipeline)中在彼此相反的方向上移动的数据元素的技术。
背景技术
存在比较在具有多个节点的两个数据流的各节点中保持的各数据元素的应用。一个示例涉及当确定具有多个数据的第一数据流的元素是否与第二数据流的元素中的至少一个匹配时、循环比较第一数据流的元素的处理。使用这种应用,在一个方向上移动数据元素的第一数据流和在另一个方向上移动数据元素的第二数据流分别比较它们各自的数据元素。然而,如后面将要描述的,在彼此相反的方向上移动数据元素的数据流中,存在各节点中的数据元素的比较没有正确进行的情况。
日本特许第3588487号公报公开了一种双向管线技术(逆流(counterflow)管线技术),利用该技术,在彼此相反的方向上移动数据元素的两种管线数据流中,在管线的各级(stage)比较各数据元素。该技术包括通过沿着规则的路径提供相反方向上的不规则数据流来对称地处理两个数据集,以形成简单的规则结构。结果,使得典型的RISC(精简指令集计算机,reduced instruction set computer)处理器特有的复杂旁路电路变得冗余。使用该技术,管线中的各级仅与该级前面和后面的级进行通信,而不经由前述旁路电路直接通信,并且数据元素在使用之前通过多个级。因此,该技术的特征在于使数据发送延迟最小化。
此外,典型的同步管线使用级间握手(handshake)协议进行工作。使用这种握手协议,在接收方向发送侧表明具有保存新的数据元素的空间,并且具有可使用的数据元素的情况下,发送侧在向接收侧表明要获取该数据元素之后发送数据元素。因此,使用这种典型的同步管线的握手协议,发送侧确定何时传送数据,从而引起了“气泡(bubble)(相当于数据流中的缺口)”出现的可能性以及随之产生的效率的降低。使用该技术,邻近级(在相同的管线中)相互并对称地(与另一管线)决定给定级的数据元素何时可以向下一级移动,从而实现了(与其它管线的)点对称通信。
此外,该传统技术具有如下配置:根据要对数据元素执行的预定操作、以及在发送数据元素时数据元素通过的特定级,不定期地移动数据元素。该配置抑制了如下问题:在彼此相反的方向上移动数据元素的数据流中,各节点中的数据元素的比较没有正确进行。
鉴于此,首先,将使用图9详细描述该应用的数据元素比较没有正确进行的情况。在图9中,示出了在彼此相反的方向上移动数据元素的两个管线电路的一部分。位于下侧的第一管线将数据元素从图的左侧(“上游侧”)移向图的右侧(“下游侧”)。另一方面,位于上侧的第二管线将数据元素从图的右侧(“上游侧”)移向图的左侧(“下游侧”)。图9中的(a)示出了第一管线正在工作(数据元素移动)、第二管线没有工作(数据元素没有移动)的情况,作为前述没有问题发生的情况。图9中的(a-1)示出了时刻[T]的状态,图9中的(a-2)示出了时刻[T]之后给定固定时间段的时刻[T+1]的状态,图9中的(a-3)示出了时刻[T+1]之后又一固定时间段的时刻[T+2]的状态。结果,第一管线正在工作,并且,保持在管线级中的数据元素W、A(0)、A(1)、A(2)、B以及C从图的左侧(“上游侧”)向图的右侧(“下游侧”)移动。此处,为了便于描述,A(0)、A(1)以及A(2)仅由括号内数字来区分,实际上,它们是等效的数据。通过确定(比较)电路来将第一管线和第二管线中相对应的各级彼此连接。
从第一管线的“下游侧”开始,在图9中的(a-1)中的时刻[T],各级的确定结果如下。首先,在第一管线的下游侧的初始级,确定(比较)电路返回确定结果“假”,因为相比较的数据元素W和A不匹配。针对后面的各级,确定(比较)电路对于各数据元素A(0)和Z、A(l)和Y、以及A(2)和X的比较,也返回确定结果“假”。
接下来,经过一段时间之后,第一管线的数据元素在图9中的(a-2)中的时刻[T+1]向“下游侧”移动一级。按照从第一管线的“下游侧”开始的顺序,各级的确定结果如下。首先,比较数据元素A(0)和A,确定(比较)电路返回确定结果“真”。在后面的各级中,确定(比较)电路对于各数据元素A(1)和Z、A(2)和Y、以及B和X的比较,返回确定结果“假”。
再经过一段时间之后,第一管线的数据元素在图9中的(a-3)中的时刻[T+2]向“下游侧”又移动了一级。按照从第一管线的“下游侧”开始的顺序,各级的确定结果如下。首先,比较数据元素A(1)和A,确定(比较)电路返回确定结果“真”。在后面的各级中,确定(比较)电路对于各数据元素A(2)和Z、B和Y、以及C和X的比较,返回确定结果“假”。
如上所述,第一管线的数据元素随着时间的推移而移动通过各级,同时第二管线的“上游侧”的数据元素A与第一管线的数据元素A(0)和A(1)二者被正确比较。因此,在第一管线和第二管线中的任何一者正在工作、而另一管线没有正在工作的情况下,数据元素的比较正确进行。
接下来,在图9中的(b)中,示出了第一管线和第二管线都在工作的情况。图9中的(b-1)至(b-3)示出了与图9中的(a-1)至(a-3)相同时刻的状态。由于第一管线以类似于图9中的(a)的方式进行工作,因此省略对其的描述。另一方面,与图9中的(a)不同,第二管线还将保持在管线级中的数据元素X、Y、Z、A、B以及C从图的右侧(或“上游侧”)向图的左侧(或“下游侧”)移动。
下文中,将以类似于图9中的(a)的方式来描述在第一管线和第二管线的各对应级中确定(比较)电路的确定结果。从第一管线的“下游侧”开始,在图9中的(b-1)中的时刻[T]各级的确定结果如下。首先,在第一管线的下游侧的初始确定(比较)电路返回确定结果“假”,因为相比较的数据元素W和A不匹配。在后面的各级中,确定(比较)电路对于各数据元素A(0)和Z、A(1)和Y、以及A(2)和X的比较,也返回确定结果“假”。
接下来,经过一段时间之后,第一管线和第二管线的数据元素在图9中的(b-2)中的时刻[T+1]分别向“下游侧”移动一级。按照从第一管线的“下游侧”开始的顺序,各级的确定结果如下。首先,确定(比较)电路比较数据元素A(0)和B,并返回确定结果“假”。在下一级中,确定(比较)电路比较数据元素A(1)和A,并返回确定结果“真”。在后面的各级中,确定(比较)电路对于各数据元素A(2)和Z、以及B和Y的比较,也返回确定结果“假”。
再经过一段时间之后,第一管线的数据元素和第二管线的数据元素在图9中的(b-3)中的时刻[T+2]分别向“下游侧”移动一级。按照从第一管线的“下游侧”开始的顺序,各级的确定结果如下。首先,确定(比较)电路返回确定结果“假”,因为相比较的数据元素A(1)和C不匹配(然而,在图9中的(b-2)中,A(1)被确定(比较)电路确定为“真”)。在后面的各级中,确定(比较)电路对于各数据元素A(2)和B、B和A、以及C和Z的比较,也返回确定结果“假”。
如上所述,比较了第二管线的“上游侧”的数据元素A和第一管线的数据元素A(1),但是没有将数据元素A(0)和A(2)与第二管线的数据元素A进行比较。例如,当第一管线的各数据元素与第二管线的各数据元素中的至少一个匹配时,在确定第一管线的该匹配数据元素匹配的情况下,在图9中的(b-1)至(b-3)的处理中不能获得正确的确定。这是由于第一管线和第二管线同时在相反的方向上移动而使得两管线的相对移动速度加倍。
实际上,在图9中的(a)的情况下,在时刻[T]与[T+2]之间,仅仅完成了第一管线的数据元素W、A(0)以及A(1)的比较。相比之下,在图9中的(b)的情况下,完成了第一管线的数据元素W、A(0)、A(1)、A(2)以及B的比较。因此,虽然与图9中的(a)的情况相比、图9中的(b)的情况缩短了确定时间,但是在数据元素的比较中发生了遗漏。
如前所述,日本特许第3588487号公报公开的技术通过根据要对数据元素执行的预定操作、以及在移动数据元素时数据元素通过的特定级,来不定期地移动数据元素,进而解决了以上问题。具体地说,在第一管线和第二管线的各级中监视级状态。在发生以上问题的情况下,在特定级中,使双向管线的级都停止工作,并在完成比较之后允许这些特定级的数据元素的移动。这就防止了双向管线中的相关数据元素在比较完成之前通过。
然而,使用日本特许第3588487号公报的技术,由于在特定级中执行停止、完成比较以及移动数据元素的操作,因此即使关注一个级,数据元素也被不规则地重复移动和停止。本来,在使用多个处理模块构成管线处理的系统中,各节点中的处理越规律,越能够实现吞吐率(throughput efficiency)的提高。因此,使用日本特许第3588487号公报的技术,抑制了因采用管线配置而引起的吞吐量的提高。此外,当在两个管线中的各个中移动数据时,在执行控制、使得参照相同时钟(时钟信号)同步化各管线的情况下,数据最终彼此错过。
发明内容
因此,本发明提供一种在双向管线的各级中可靠并快速地比较在彼此相反的方向上移动的数据元素的技术。
根据本发明的一方面,提供了一种信息处理装置,该信息处理装置包括:第一管线单元,其具有多个第一节点,并被配置为将第一方向上的各第一节点中保持的第一数据向所述多个第一节点中的另一个移动;第二管线单元,其具有与所述第一管线单元的所述第一节点相对应的多个第二节点,并被配置为将第二方向上的各第二节点中保持的第二数据向所述多个第二节点中的另一个移动,其中,所述第二方向与所述第一方向相反;第一比较单元,其被配置为将关注节点中保持的第一数据和与所述关注节点相对应的第二节点中保持的第二数据相比较,其中,所述关注节点是所述第一管线单元的所述第一节点中的一个;以及第二比较单元,其被配置为将所述关注节点中保持的所述第一数据,与位于相对于所述第二方向的上游侧或者下游侧、作为与所述关注节点相对应的所述第二节点的下一个节点的第二节点中保持的第二数据相比较。
根据本发明的另一方面,提供了一种用于确定由处理装置请求的数据的缓存命中的信息处理装置,该信息处理装置包括:第一管线单元,其具有多个第一节点,并被配置为将第一方向上的各第一节点中保持的请求数据的地址向所述第一节点中的另一个移动;第二管线单元,其具有与所述第一管线单元的所述第一节点相对应的多个第二节点,并被配置为将第二方向上的各第二节点中保持的缓存标签向所述多个第二节点中的另一个移动,其中,所述第二方向与所述第一方向相反;第一比较单元,其被配置为将关注节点中保持的第一数据和与所述关注节点相对应的第二节点中保持的第二数据相比较,其中,所述关注节点是所述第一管线单元的所述第一节点中的一个;第二比较单元,其被配置为将所述关注节点中保持的所述第一数据,与位于相对于所述第二方向的上游侧、作为与所述关注节点相对应的所述第二节点的下一个节点的第二节点中保持的第二数据相比较;以及确定单元,其被配置为基于所述第一比较单元和所述第二比较单元的结果,确定对于所述请求数据是否存在缓存命中。
根据本发明的又一方面,提供了一种信息处理装置,该信息处理装置包括:具有用于处理依次流过多个第一节点的第一数据、以及按照与所述第一数据相反的顺序流过多个第二节点的第二数据的逆流管线配置的电路,该电路包括:参照单元,其被配置为参照各第一节点中保持的数据、与所述第一节点相对应的第二节点中保持的数据、以及至少在位于与所述第一节点相对应的所述第二节点之前或之后的第二节点中保持的数据。
根据本发明的又一方面,提供了一种信息处理装置,该信息处理装置包括:第一管线单元,其具有数据在第一方向上流动而通过的多个触发器;第二管线单元,其具有数据在第二方向上流动而通过的多个触发器;以及参照单元,其被配置为对于所述第一管线单元的所述触发器中的至少一个,参照输入到所述第一管线单元的所述触发器的数据、以及输入到与所述第一管线单元的所述触发器相对应的所述第二管线单元的触发器的数据或者从所述第一管线单元的所述触发器输出的数据。
根据本发明的又一方面,提供了一种信息处理方法,该信息处理方法包括:第一移动步骤,对于第一管线单元的多个第一节点,将第一方向上的各第一节点中保持的第一数据向所述多个第一节点中的另一个移动;第二移动步骤,对于与所述第一管线单元的所述第一节点相对应的第二管线单元的多个第二节点,将第二方向上的各第二节点中保持的第二数据向所述多个第二节点中的另一个移动,其中,所述第二方向与所述第一方向相反;第一比较步骤,将关注节点中保持的第一数据和与所述关注节点相对应的第二节点中保持的第二数据相比较,其中,所述关注节点是所述第一管线单元的所述第一节点中的一个;以及第二比较步骤,将所述关注节点中保持的所述第一数据,与位于相对于所述第二方向的上游侧或者下游侧、作为与所述关注节点相对应的所述第二节点的下一个节点的第二节点中保持的第二数据相比较。
根据本发明的又一方面,提供了一种信息处理方法,该信息处理方法使用用于处理依次流过多个第一节点的第一数据、以及按照与所述第一数据相反的顺序流过多个第二节点的第二数据的逆流管线配置,该信息处理方法包括如下步骤:参照各第一节点中保持的数据、与所述第一节点相对应的第二节点中保持的数据、以及至少在位于与所述第一节点相对应的所述第二节点之前或之后的第二节点中保持的数据。
根据本发明的又一方面,提供了一种使用信息处理装置的信息处理方法,该信息处理装置包括:第一管线单元,其具有数据在第一方向上流动而通过的多个触发器;以及第二管线单元,其具有数据在第二方向上流动而通过的多个触发器,所述信息处理方法包括如下步骤:对于所述第一管线单元的所述触发器中的至少一个,参照输入到所述第一管线单元的所述触发器的数据、以及输入到与所述第一管线单元的所述触发器相对应的所述第二管线单元的触发器的数据或者从所述第一管线单元的所述触发器输出的数据。
通过以下对示例性实施例的描述(参照附图),本发明的其他特征将变得明显。
附图说明
图1是示出数据处理装置的基本配置的示例的框图。
图2是示出数据处理装置的电路的示例的框图。
图3是示出数据处理装置的基本配置的示例的框图。
图4是示出数据处理装置的电路的示例的框图。
图5是示出应用数据处理装置的图像处理装置的示例的框图。
图6是示出应用数据处理装置的缓存确定装置的示例的框图。
图7是示出应用数据处理装置的缓存设备中的存取仲裁单元的处理流程的示例的流程图。
图8是示出应用数据处理装置的缓存设备中的缓冲存储器仲裁单元的处理流程的示例的流程图。
图9例示了传统技术的示例操作。
图10是示出数据处理装置的基本配置的示例的框图。
具体实施方式
下文中,将参照附图描述本发明的实施例。
基本配置
图1是示出根据本实施例的信息处理装置(下文中,称为“数据处理装置”)的基本配置的示例的框图。第一管线100具有多个节点(第一节点),当它们中的一个被设置为关注节点时,数据元素(第一数据)在第一方向上从关注节点向下游的下一个第一节点移动。在图1的配置中,第一节点和第二节点是一一对应关系。此外,数据元素的有效信号“valid[l-1]”112、数据信号“data[l-1]”114以及作为数据信号处理结果的处理结果信号“tag_id[l-1]”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+1]”152、数据信号“data[l+1]”154以及处理结果信号“tag_id[l+1]”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+1]”182和数据信号“tag_data[i+1]”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+1]”、“[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-1]”114和“tag_data[i]”194。如果比较结果为相等,则选择器126选择“tag_data[i]”194的存储编号“Node=i”。将该选择的值作为在数值上与第一管线100中的数据元素“data[l-1]”114相等的第二管线160中的数据元素的存储编号设置在“tag_id[l-1]”116中。
如前所述,在第一管线100和第二管线160同时工作的情况下,比较可能失败。为了应对该问题,当有效信号“tag_valid[i+1]”182有效时,数据处理电路120还使用比较电路124(第二比较电路)比较数据信号“data[l-1]”114和“tag_data[i+1]”184。如果比较结果为相等,则选择器126优先选择作为“tag_data[i+1]”184的存储编号“Node=i+1”。
此外,当以上两个比较结果均为不相等时,选择器选择输入的处理结果信号“tag_id[l-1]”116。如果来自外部的驱动信号“shift”162有效(断言状态)、且第二管线160正在工作,则数据元素向图的左侧(“下游侧”)移动。因此,在这种情况下,“tag_data”的存储编号也正确地指示了一个靠左的存储编号。鉴于此,基于选择器126的选择结果、通过递减器128将存储编号减1来调整存储编号。
此处,将给出关于存储编号的选择方法的补充说明。当选择“Node=i”、“Node=i+1”以及“tag_id[l-1]”116中的一个作为存储编号时,选择准则可以简单一些,例如“优先选择较高的存储编号”。例如,当数据信号“data[l-1]”114和数据信号“tag_data[i+1]”184相等时,考虑来自外部的驱动信号“shift”162有效的情况。在这种情况下,选择“Node=i+1”以避免前述比较失败的情况的问题是很重要的,该操作与“优先选择较高的存储编号”的方法一致。另一方面,如果来自外部的驱动信号“shift”162无效,则由于没有产生避免前述比较失败的情况的问题的需求,因此不需要选择“Node=i+1”。然而,不管此处是否选择“Node=i+1”,在作为第一管线的下游级的第二级,都会再次重新评估数据信号“data[l]”134和“tag_data[i+1]”184的比较。因此,在来自外部的驱动信号“shift”162无效的情况下,与第一级的“tag_data[i+1]”184的比较是不相关的。相反地,在使用“优先选择较高的存储编号”的方法选择存储编号中绝对不存在任何不利之处。由此选择的值被设置在指示在数值上与数据信号“data[l-1]”114相等的第二管线160中的数据元素的存储编号的“tag_id[l-1]”116中。
图1仅作为示例,当然,可以用驱动信号“shift”162替换选择器126,并且可以在来自外部的驱动信号“shift”162无效的情况下执行控制、使得不选择“Node=i+1”。在前述示例中,当比较电路122和比较电路124都返回确定结果“假”时,选择输入的处理结果信号“tag_id[l-1]”116。此处,如果来自外部的驱动信号“shift”162有效,则在任何情况下对存储编号减1的调整都是必要的,以便应对存储位置向“下游”的移动。因此,在选择“Node=i+1”之后再次执行对存储编号减1的调整,而不执行使得不选择“Node=i+1”的控制。
数据处理电路140执行类似的处理。首先,当有效信号“tag_valid[i+1]”182有效时,数据处理电路140使用比较电路142比较数据信号“data[l]”134和数据信号“tag_data[i+1]”184。如果比较结果为相等,则选择器146选择“tag_data[i+1]”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+1,i+2,…,N-1”(i、N是正数,i<N)。稍后将描述这种分配方法的优点。此外,在倒序分配存储编号的情况下,递减器自然变成使处理结果加1的递增器。
此外,在本实施例中,将在执行在两个方向上移动的数据元素的比较、并且当比较结果为相等时执行存储位置的计算的情况下的示例描述为数据处理,但是数据处理的内容不限于此。例如,可以将比较在两个方向上移动的数据元素的结果、以及当比较结果为相等时对在两个方向上移动的数据元素执行基本的算术运算的结果配置为数据处理结果。图10示出了执行这种处理的电路的示例。稍后将讨论图10的配置的详情。此外,可以将在两个方向上移动的数据元素的大小关系配置为数据处理结果。毋庸置疑,使用这种数据处理电路的配置可以执行诸如删除、大小比较和交换的各种计算。
此外,图2示出了包括图1中的基本结构的、总共具有8个区间(8个级)的数据处理装置的配置的示例。在图2的示例中,比较第一管线和第二管线的8个数据元素。TagSlot[0]至TagSlot[7]各自对应于图1所示的第二管线的管线寄存器170或180。DataSlot[0]至DataSlot[7]各自对应于图1所示的第一管线的管线寄存器110或130。Judge[0]至Judge[7]各自对应于图1所示的数据处理电路120或140。由此,作为将基本配置一起链接的结果、可以通过管线操作对大量数据元素并行地执行分散比较。在图2所示的数据处理装置的配置的示例中,通过八级管线实现与8个数据元素的比较。此处,即使来自外部的驱动信号“shift”162有效、并且第二管线将数据元素向“下游”移动,也可以在不降低处理性能的情况下进一步实现稳定的比较处理。
另一方面,在使用诸如上述技术的情况下,例如,可以考虑将诸如使用管线配置的大量数据元素的高速数据处理的应用作为示例应用。执行这种数据处理的领域包括图像处理领域和图形处理领域。为了提高这些领域中的产品的图像质量并增强产品的功能而执行多种图像处理,包括通过时分复用对多种内容(图像、视频)进行的同步并行图像处理、以及叠加并显示多个半透明纹理数据。在这种图像处理的情况下,从诸如DRAM的外部存储器中适当地提取并处理需要的图像和视频,通常通过缓存设备执行从外部存储器的数据获取。
然而,当执行时分复用的图像处理、或多个半透明纹理数据的叠加时,在以分段的方式从外部存储器中获取各图像或视频的情况下,执行各种图像或视频的同步并行处理。当通过实现典型的缓存技术来以分段的方式从外部存储器中获取各种图像或视频时,经常发生缓存冲突,明显地降低了缓存性能。另一方面,为了避免缓存冲突,可以增加缓存标签的路数,但是通过实现典型的缓存技术,当处理非常多的路数时,确定电路中的选择器的逻辑段的数量增加,从而使得难以实现时序收敛。由此不再能够以高操作频率执行操作。同时,路数的增加使得在发生缓存冲突时的替换控制变得复杂,从而使得难以实现缓存技术。
例如,在日本特许第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[1]”334输入到9个比较电路321至329中的每一个。此时,需要提供比要与“data[1]”334相比较的“tag_data”的数量(等于第二节点的数量)多一个的比较电路。连接以下作为处理目标的对:
·有效信号“tag_valid[i]”与数据信号“tag_data[i]”
·有效信号“tag_valid[i+1]”与数据信号“tag_data[i+1]”
·有效信号“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-1]”316。
与前述示例类似,使用“优先选择较高的存储编号”的方法选择存储编号。如果来自外部的驱动信号“shift”362有效,则基于选择器346的选择结果、通过使用递减器348将存储编号减1来调整存储编号。
在本实施例中,使用1个区间(1级)来实现图2所示的8区间(8级)管线,并且完成对单个的输入数据的比较之前的延迟从8削减到1。此外,尽管在图2中需要总共2×8个比较电路,但是在本实施例中仅有9个比较电路,比较电路的数量从16削减到9。将装置作为一个整体来看,由于递减器和管线寄存器的数量也被削减,因此通过在不降低处理性能的情况下缩短延迟加强了响应性,从而使得整个电路规模也被削减。
此外,在本实施例中,可以执行第一管线中的单个数据元素与第二管线中的多个数据元素的高速比较,而不会有逆流管线中的遗漏。
此外,通过组合图1和图3的基本电路,可以将管线寄存器导入接触点338_1至338_9,可以分别设置图1中的选择器和递减器。在这种情况下,还可以实现进一步提高操作频率的电路,同时分散选择器346的逻辑段并削减整个电路的延迟。
此外,在图4中示出了包含图3中的基本配置的、总共具有8个区间(8个级)的数据处理装置的配置的示例。使用图4中的示例,比较第一管线和第二管线的64个数据元素。图4中的TagSlot[0]至TagSlot[63]各自对应于图3所示的第二管线中的管线寄存器380、381等。DataSlot[0]至[7]各自对应于图3所示的第一管线中的管线寄存器310、330等,SelIDcr[0]至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(即地址发送FIFO550、纹理数据接收FIFO 570以及Tag_id FIFO 540)中是否存在空闲的存储区域。基于从这些FIFO输入的信号“full”552、“full”542以及“full”572执行该判断。
存取仲裁单元530在缓存确定结果525的“valid”为有效的条件下确定发生缓存命中,并执行向Tag_id FIFO 540和地址发送FIFO 550的写入。具体地说,响应于来自全关联缓存确定单元520的缓存确定结果525的接收,tag_id以及指示缓存确定结果的miss_hit_flag等被写入Tag_idFIFO 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 FIFO540为空,则由于没有要处理的缓存确定结果,因此缓冲存储器仲裁单元580自然等待而不执行任何处理。
接下来,在S820中,缓冲存储器仲裁单元580确定缓存确定结果“miss_hit_flag”是否有效(断言状态)。如果有效(S820:是),则处理进行到步骤S840,如果无效(S820:否),则处理进行到步骤S830。
由于在S820中“miss_hit_flag”无效(解除断言状态)时发生缓存命中,因此在S830中,缓冲存储器仲裁单元580由同时提取出的“tag_id”以及缓冲存储器(FIFO)590的写指针来计算地址。此外,缓冲存储器仲裁单元580从缓冲存储器590中读出“read_data”592,并将该数据设置为纹理数据。然后,该处理进行到S890。
在S890中,缓冲存储器仲裁单元580添加有效信号“valid”,并输出“texture_data,valid”585。然后,处理结束。使用图像处理装置,基于该纹理数据执行滤波处理(未示出),并将滤波处理结果写入显示设备的帧缓冲器(未示出)。
此外,在S820中缓存确定结果“miss_hit_flag”有效(断言状态)时发生缓存未命中。因此在S840中,缓冲存储器仲裁单元580检查来自DRAM 565的要更新的纹理数据是否已经被再充填到纹理数据接收FIFO570中。如果没有再充填,则缓冲存储器仲裁单元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,则清出(sweep out)“tag_id”时的处理结果“tag_id”的值明显为负。这就是在前述缓存确定中仅仅需要检查“tag_id”的符号的原因。也就是说,设计存储位置编号的分配使得最早的缓存标签的存储编号为0,最新的缓存标签的存储编号为N-1。由此,缓存确定仅仅需要区分最后级的数据处理结果的符号。因此,根据本实施例的缓存确定非常简单。
毋庸置疑,在从第二管线的“上游侧”向“下游侧”分配从0到N-1的存储编号的情况下,可以通过确定“tag_id”的值是否小于第二管线中元素的数量N来执行缓存确定。
此外,如前所述,由于不断依次丢弃最早的缓存数据的机构,因此本实施例的示例中的缓冲存储器仅仅需要使用环状FIFO。在这种情况下,便于全关联缓存确定单元520和缓冲存储器(FIFO)590的同步化。请注意,如果确定为缓存命中,则将把期望的纹理数据存储在由“tag_id”指示的位置处的缓冲存储器中。
该缓存设备使得能够实现具有非常多路数的全关联缓存设备。由此,即使在通过时分复用对多种内容执行图像处理、或通过叠加多个半透明纹理数据执行图像处理的情况下,也可以降低缓存冲突的概率。此外,使用缓存设备的典型实现方法,由于当处理非常多的路时确定电路的选择器具有大量的逻辑段而难以实现时序收敛,并且不能以高操作频率执行操作。相比之下,由于使用管线配置执行确定,因此以上缓存设备的确定电路以非常高的操作频率执行操作。使用以上全关联缓存确定电路,由于顺次自动删除最早的数据,因此不需要在发生缓存冲突时的复杂的替换控制。因此,缓冲存储器还可以仅使用FIFO执行良好的命中确定。
其他实施例
此外,图10示出了在示出使用ALU(算术逻辑单元,Arithmetic LogicUnit)执行算术处理(而非比较运算)的过程,作为由参照单元在参照数据之后执行的算术处理时的基本电路的示例。在图10中,不同于图1示出的示例,“data2”被添加到第一管线,“tag data2”被添加到第二管线。类似于前述说明,当“data[l-1]”和“tag_data[i]”相等时选择“tag_data2[i]”,并将使用“data2[l-1]”执行算术处理的结果存储在“tag_id[l]”中。当“data[l-1]”和“tag_data[i+1]”相等时选择“tag_data2[i+1]”,并将使用“data2[l-1]”执行算术处理的结果存储在“tag_id[l]”中。此外,如果“tag_data[i]或“tag_data[i+1]”都不相等,则选择输入的“tag_id[l-1]”而不执行算术处理,并将“tag_id[l-1]”存储在“tag_id[l]”中。由此,作为第一管线和第二管线的数据以及数据处理电路1100的配置的结果,可以实现各种算术处理(基本算术运算、大小比较等)。
此外,可以根据各种算术处理结果、将第一管线和第二管线的有效信号“valid”和“tag_valid”从有效切换到无效。在这种情况下,可以消除特定的数据元素“data”和“tag_data”。此外,可以根据各种算术处理结果、交换第一管线和第二管线的特定的数据元素“data”和“tag_data”。毋庸置疑,由此可以根据以上配置的模式实现使用各种运算的数据处理。
此外,可以作为各个处理器中的软件,来实现图3和图4所示的各区间(级)的数据处理,并且可以在使各处理器与驱动信号“shift”同步的同时,交换“data”和“tag_data”。在这种情况下,可以使用软件通过并行分布处理来执行数据处理。此外,在这种情况下,各处理器处理的数据元素的数量不限于8(与图3中的示例中一样),仅需要是在处理器可访问的存储器中展开的大数。此时,可以通过移动存储器中指针的原点来实现“tag_data”的移动。毋庸置疑,由此通过使用以上配置的模式、可以将本发明应用于软件处理。
根据本发明,对于在彼此相反的方向上移动数据元素的两个管线,可以在对应的各级可靠、快速地比较数据元素。
本发明的各方面还可以通过读出并执行记录在存储装置上的用于执行上述实施例的功能的程序的系统或设备的计算机(或诸如CPU或MPU的装置)、以及由系统或设备的计算机例如读出并执行记录在存储装置上的用于执行上述实施例的功能的程序来执行各步骤的方法来实现。鉴于此,例如经由网络或者从用作存储装置的各种类型的记录介质(例如计算机可读介质)向计算机提供程序。
虽然参照示例性实施例对本发明进行了说明,但是应当理解,本发明不限于所公开的示例性实施例。应当对所附权利要求的范围给予最宽的解释,以使其涵盖所有这种变型、等同结构及功能。
Claims (13)
1.一种信息处理装置,该信息处理装置包括:
第一管线单元,其具有多个第一节点,并被配置为将各第一节点中保持的第一数据沿第一方向向所述多个第一节点的下一个移动;
第二管线单元,其具有与所述第一管线单元的所述第一节点相对应的多个第二节点,并被配置为将各第二节点中保持的第二数据沿第二方向向所述多个第二节点的下一个移动,其中,所述第二方向与所述第一方向相反;
第一比较单元,其被配置为将第一关注节点中保持的第一数据和与所述第一关注节点相对应的第二关注节点中保持的第二数据相比较,其中,所述第一关注节点是所述第一管线单元的所述第一节点中的一个,所述第二关注节点是所述第二管线单元的所述第二节点中的一个;以及
第二比较单元,其被配置为将所述第一关注节点中保持的所述第一数据,和位于与所述第一关注节点相对应的所述第二关注节点的下一个的第二节点中保持的第二数据相比较。
2.根据权利要求1所述的信息处理装置,其中
如果驱动信号有效,则所述第二管线单元将各第二节点中保持的第二数据沿第二方向向所述多个第二节点的下一个移动,并且
在所述驱动信号有效的情况下,所述第二比较单元执行比较处理;而在所述驱动信号无效的情况下,所述第二比较单元不执行所述比较处理。
3.根据权利要求1所述的信息处理装置,其中
所述第一比较单元和所述第二比较单元确定所述第一管线单元的数据与所述第二管线单元的数据是否匹配。
4.根据权利要求1所述的信息处理装置,其中
所述信息处理装置对缓存数据进行管理,
所述第一管线单元移动作为所述第一数据的地址,所述第二管线单元移动作为所述第二数据的所述缓存数据的缓存标签,并且
所述第一比较单元和所述第二比较单元确定所述第一管线单元中的 地址与所述第二管线单元中的缓存标签是否匹配。
5.根据权利要求1所述的信息处理装置,其中
所述第一管线单元和所述第二管线单元是逆流管线。
6.根据权利要求1所述的信息处理装置,其中
所述第一管线单元和所述第二管线单元各自具有多个触发器,并且对各触发器提供同一时钟信号。
7.一种信息处理装置,其用于确定由处理装置请求的数据的缓存命中,该信息处理装置包括:
第一管线单元,其具有多个第一节点,并被配置为将各第一节点中保持的请求数据的地址沿第一方向向所述第一节点的下一个移动;
第二管线单元,其具有与所述第一管线单元的所述第一节点相对应的多个第二节点,并被配置为将各第二节点中保持的缓存标签沿第二方向向所述多个第二节点的下一个移动,其中,所述第二方向与所述第一方向相反;
第一比较单元,其被配置为将第一关注节点中保持的所述请求数据的地址和与所述第一关注节点相对应的第二关注节点中保持的所述缓存标签相比较,其中,所述第一关注节点是所述第一管线单元的所述第一节点中的一个,所述第二关注节点是所述第二管线单元的所述第二节点中的一个;
第二比较单元,其被配置为将所述第一关注节点中保持的所述请求数据的地址,和位于与所述第一关注节点相对应的所述第二关注节点的下一个的第二节点中保持的所述缓存标签相比较;以及
确定单元,其被配置为基于所述第一比较单元和所述第二比较单元的结果,确定对于所述请求数据是否存在缓存命中。
8.根据权利要求7所述的信息处理装置,该信息处理装置还包括:
接收单元,其被配置为在所述确定单元确定对于所述请求数据不存在缓存命中的情况下,接收作为所述缓存标签的所述请求数据的地址的输入。
9.一种信息处理装置,该信息处理装置包括:
具有用于处理依次流过多个第一节点的第一数据、以及按照与所述第一数据相反的顺序流过多个第二节点的第二数据的逆流管线配置的电路,该电路包括:
第一比较单元,其被配置为将第一关注节点中保持的所述第一数据和与所述第一关注节点相对应的第二关注节点中保持的所述第二数据相比较,
第二比较单元,其被配置为将所述第一关注节点中保持的所述第一数据和与所述第二关注节点邻近的第二节点中保持的所述第二数据相比较。
10.一种信息处理装置,该信息处理装置包括:
第一管线单元,其具有数据在第一方向上流动而通过的多个触发器;
第二管线单元,其具有数据在第二方向上流动而通过的多个触发器;以及
第一比较单元,其被配置为将输入到所述第一管线单元的所述触发器中的一个的第一数据与输入到所述第二管线单元的相应触发器的第二数据相比较;以及
第二比较单元,其被配置为将输入到所述第一管线单元的所述触发器的所述第一数据与从所述第二管线单元的所述触发器输出的第三数据相比较。
11.一种信息处理方法,该信息处理方法包括:
第一移动步骤,对于第一管线单元的多个第一节点,将各第一节点中保持的第一数据沿第一方向向所述多个第一节点的下一个移动;
第二移动步骤,对于与所述第一管线单元的所述第一节点相对应的第二管线单元的多个第二节点,将各第二节点中保持的第二数据沿第二方向向所述多个第二节点的下一个移动,其中,所述第二方向与所述第一方向相反;
第一比较步骤,将第一关注节点中保持的第一数据和与所述第一关 注节点相对应的第二关注节点中保持的第二数据相比较,其中,所述第一关注节点是所述第一管线单元的所述第一节点中的一个,所述第二关注节点是所述第二管线单元的所述第二节点中的一个;以及
第二比较步骤,将所述第一关注节点中保持的所述第一数据,和位于与所述第一关注节点相对应的所述第二关注节点的下一个的第二节点中保持的第二数据相比较。
12.一种信息处理方法,该信息处理方法使用用于处理依次流过多个第一节点的第一数据、以及按照相反的顺序流过多个第二节点的第二数据的逆流管线配置,该信息处理方法包括如下步骤:
将第一关注节点中保持的所述第一数据和与所述第一关注节点相对应的第二关注节点中保持的所述第二数据相比较;以及
将所述第一关注节点中保持的所述第一数据和与所述第二关注节点邻近的第二节点中保持的所述第二数据相比较。
13.一种使用信息处理装置的信息处理方法,该信息处理装置包括:第一管线单元,其具有数据在第一方向上流动而通过的多个触发器;以及第二管线单元,其具有数据在第二方向上流动而通过的多个触发器,所述信息处理方法包括如下步骤:
将输入到所述第一管线单元的所述触发器中的一个的第一数据与输入到所述第二管线单元的相应的触发器的第二数据相比较;以及
将输入到所述第一管线单元的所述触发器的所述第一数据与从所述第二管线单元的所述触发器输出的第三数据相比较。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2009124723 | 2009-05-22 | ||
JP2009-124723 | 2009-05-22 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN101894012A CN101894012A (zh) | 2010-11-24 |
CN101894012B true CN101894012B (zh) | 2014-02-19 |
Family
ID=42394991
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201010182894.2A Active CN101894012B (zh) | 2009-05-22 | 2010-05-21 | 信息处理装置及信息处理方法 |
Country Status (4)
Country | Link |
---|---|
US (1) | US8452944B2 (zh) |
EP (1) | EP2254040B1 (zh) |
JP (1) | JP5580660B2 (zh) |
CN (1) | CN101894012B (zh) |
Families Citing this family (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP5650441B2 (ja) * | 2010-06-07 | 2015-01-07 | キヤノン株式会社 | 演算装置、キャッシュ装置、その制御方法及びコンピュータプログラム |
JP5627330B2 (ja) | 2010-08-02 | 2014-11-19 | キヤノン株式会社 | 情報処理装置、キャッシュ装置およびデータ処理方法 |
KR102061069B1 (ko) | 2013-02-28 | 2020-01-02 | 삼성전자주식회사 | 텍스쳐 맵핑 파이프라인을 위한 논블로킹 방식의 텍스쳐 캐쉬 메모리 시스템 및 논블로킹 방식의 텍스쳐 캐쉬 메모리의 동작 방법 |
US9715461B2 (en) * | 2014-03-03 | 2017-07-25 | Kabushiki Kaisha Toshiba | Cache memory control circuit and processor |
JP6979777B2 (ja) | 2017-03-22 | 2021-12-15 | キヤノン株式会社 | インターフェース装置およびその制御方法 |
JP7278067B2 (ja) | 2018-12-20 | 2023-05-19 | キヤノン株式会社 | データ処理装置及びその制御方法及びプログラム |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5572690A (en) * | 1993-10-21 | 1996-11-05 | Sun Microsystems, Inc. | Cascaded multistage counterflow pipeline processor for carrying distinct data in two opposite directions |
CN1431599A (zh) * | 2002-08-22 | 2003-07-23 | 智慧第一公司 | 标记位址堆叠及使用其的微处理器 |
Family Cites Families (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH04178755A (ja) * | 1990-11-13 | 1992-06-25 | Toshiba Corp | データ統合装置 |
US5713025A (en) | 1993-10-21 | 1998-01-27 | Sun Microsystems, Inc. | Asynchronous arbiter using multiple arbiter elements to enhance speed |
DE69415126T2 (de) * | 1993-10-21 | 1999-07-08 | Sun Microsystems Inc | Gegenflusspipelineprozessor |
US6205538B1 (en) * | 1994-08-24 | 2001-03-20 | Sun Microsystems, Inc. | Instruction result labeling in a counterflow pipeline processor |
US6085316A (en) * | 1998-07-28 | 2000-07-04 | Sun Microsystems, Inc. | Layered counterflow pipeline processor with anticipatory control |
JP2010039625A (ja) * | 2008-08-01 | 2010-02-18 | Renesas Technology Corp | 並列演算装置 |
-
2010
- 2010-04-27 US US12/768,148 patent/US8452944B2/en active Active
- 2010-05-19 EP EP10163311.3A patent/EP2254040B1/en active Active
- 2010-05-20 JP JP2010116699A patent/JP5580660B2/ja active Active
- 2010-05-21 CN CN201010182894.2A patent/CN101894012B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5572690A (en) * | 1993-10-21 | 1996-11-05 | Sun Microsystems, Inc. | Cascaded multistage counterflow pipeline processor for carrying distinct data in two opposite directions |
CN1431599A (zh) * | 2002-08-22 | 2003-07-23 | 智慧第一公司 | 标记位址堆叠及使用其的微处理器 |
Non-Patent Citations (2)
Title |
---|
M.B.TOSIC ETC AL.PIPELINED SERIAL/PARALLEL MULTIPLIER WITH CONTRAFLOWING DATA STREAMS.《ELECTRONICS LETTERS》.1991,第27卷(第25期),第2361-2363页. |
PIPELINED SERIAL/PARALLEL MULTIPLIER WITH CONTRAFLOWING DATA STREAMS;M.B.TOSIC ETC AL;《ELECTRONICS LETTERS》;19911205;第27卷(第25期);第2361-2363页 * |
Also Published As
Publication number | Publication date |
---|---|
EP2254040A3 (en) | 2011-04-27 |
EP2254040B1 (en) | 2013-09-04 |
JP5580660B2 (ja) | 2014-08-27 |
EP2254040A2 (en) | 2010-11-24 |
US20100299498A1 (en) | 2010-11-25 |
JP2011008773A (ja) | 2011-01-13 |
US8452944B2 (en) | 2013-05-28 |
CN101894012A (zh) | 2010-11-24 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN101894012B (zh) | 信息处理装置及信息处理方法 | |
US6803916B2 (en) | Rasterization using two-dimensional tiles and alternating bins for improved rendering utilization | |
US9830197B2 (en) | Cooperative thread array reduction and scan operations | |
US6831653B2 (en) | Graphics pixel packing for improved fill rate performance | |
US9639367B2 (en) | Managing event count reports in a tile-based architecture | |
CN102047241B (zh) | 本地与全局数据共享 | |
KR20170103649A (ko) | 버퍼를 이용하여 텍스처 데이터에 액세스하는 방법 및 장치 | |
US8368713B2 (en) | Figure drawing device and method | |
CN105302524A (zh) | 通过标记cpu流量为特殊来避免死锁 | |
CN104778025B (zh) | 基于随机访问存储器的先入先出存储器的电路结构 | |
CN112380148B (zh) | 数据传输方法和数据传输装置 | |
CN101777031A (zh) | 直接存储器存取控制器以及数据传输方法 | |
CN104284079A (zh) | 星载遥感图像智能识别装置 | |
US6924820B2 (en) | Over-evaluating samples during rasterization for improved datapath utilization | |
CN106101712A (zh) | 一种视频流数据的处理方法及装置 | |
CN102331922B (zh) | 运算装置、高速缓存装置及其控制方法 | |
CN100573578C (zh) | 对处理图像的指令进行处理的方法、控制器和系统 | |
US20190235915A1 (en) | Techniques for ordering atomic operations | |
US8325194B1 (en) | Mitigating main crossbar load using dedicated connections for certain traffic types | |
US8065465B1 (en) | Mitigating main crossbar load using dedicated connections for certain traffic types | |
CN103984525A (zh) | 指令处理系统及方法 | |
WO2023184754A1 (zh) | 可配置实时视差点云计算装置及方法 | |
US9317474B2 (en) | Semiconductor device | |
US9367487B1 (en) | Mitigating main crossbar load using dedicated connections for certain traffic types | |
CN102200961B (zh) | 一种动态可重构处理器内子单元的扩展方法 |
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 |