CN102331922A - 运算装置、高速缓存装置及其控制方法 - Google Patents
运算装置、高速缓存装置及其控制方法 Download PDFInfo
- Publication number
- CN102331922A CN102331922A CN2011101458795A CN201110145879A CN102331922A CN 102331922 A CN102331922 A CN 102331922A CN 2011101458795 A CN2011101458795 A CN 2011101458795A CN 201110145879 A CN201110145879 A CN 201110145879A CN 102331922 A CN102331922 A CN 102331922A
- Authority
- CN
- China
- Prior art keywords
- data
- node
- cache
- unit
- data processing
- 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
- 238000000034 method Methods 0.000 title claims description 31
- 238000012545 processing Methods 0.000 claims description 192
- 238000003860 storage Methods 0.000 claims description 42
- 230000000052 comparative effect Effects 0.000 claims description 11
- 230000008878 coupling Effects 0.000 claims description 5
- 238000010168 coupling process Methods 0.000 claims description 5
- 238000005859 coupling reaction Methods 0.000 claims description 5
- 230000008859 change Effects 0.000 claims description 3
- 238000010586 diagram Methods 0.000 description 13
- 238000005192 partition Methods 0.000 description 12
- 230000008569 process Effects 0.000 description 11
- 238000011144 upstream manufacturing Methods 0.000 description 11
- 230000002411 adverse Effects 0.000 description 9
- 230000001360 synchronised effect Effects 0.000 description 7
- 230000015572 biosynthetic process Effects 0.000 description 5
- 238000009826 distribution Methods 0.000 description 5
- 238000005755 formation reaction Methods 0.000 description 5
- 230000006870 function Effects 0.000 description 4
- 230000007246 mechanism Effects 0.000 description 4
- 230000005611 electricity Effects 0.000 description 3
- 238000005516 engineering process Methods 0.000 description 3
- 230000005055 memory storage Effects 0.000 description 3
- 230000008901 benefit Effects 0.000 description 2
- 230000000295 complement effect Effects 0.000 description 2
- 238000011161 development Methods 0.000 description 2
- 238000007689 inspection Methods 0.000 description 2
- 230000008520 organization Effects 0.000 description 2
- 230000001052 transient effect Effects 0.000 description 2
- 241001269238 Data Species 0.000 description 1
- 235000012364 Peperomia pellucida Nutrition 0.000 description 1
- 240000007711 Peperomia pellucida Species 0.000 description 1
- 230000001174 ascending effect Effects 0.000 description 1
- 230000015556 catabolic process Effects 0.000 description 1
- 238000005520 cutting process Methods 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 230000003247 decreasing effect Effects 0.000 description 1
- 238000006731 degradation reaction Methods 0.000 description 1
- 238000001514 detection method Methods 0.000 description 1
- 230000002349 favourable effect Effects 0.000 description 1
- 230000008676 import Effects 0.000 description 1
- 230000014759 maintenance of location Effects 0.000 description 1
- 238000007726 management method Methods 0.000 description 1
- 238000013507 mapping Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000011079 streamline operation Methods 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Computational Mathematics (AREA)
- Mathematical Analysis (AREA)
- Mathematical Optimization (AREA)
- Pure & Applied Mathematics (AREA)
- Memory System Of A Hierarchy Structure (AREA)
- Advance Control (AREA)
Abstract
本发明涉及运算装置、高速缓存装置及其控制方法。提供一种装置,该装置包括:第一保持单元,该第一保持单元中的每一个包含串行连接的第一节点,并且在第一方向上移动各第一节点中的第一数据;第二保持单元,该第二保持单元中的每一个包含串行连接的第二节点,并且在第二方向上移动各第二节点中的第二数据。各第一节点与第二节点中的至少一个对应。该装置还包括:运算单元,该运算单元对于作为第一节点的关注节点,使用关注节点中的第一数据和关注节点所对应的第二节点中的至少一个中的第二数据执行运算;以及输入单元,该输入单元将第一数据并行输入到第一保持单元之中的至少两个,并且将第二数据串行输入到第二保持单元之中的至少两个。
Description
技术领域
本发明涉及运算装置、高速缓存(cache)装置及其控制方法。
背景技术
存在要求确定包含于第一数据组中的各单个数据是否与第二数据组中的至少一些数据匹配的许多应用。日本专利No.3588487提出了逆流流水线(counterflow pipeline)技术以获得这种确定。以下将参照图11描述逆流流水线技术。逆流流水线技术使用作为两个流水线的第一流水线1110和第二流水线1120。第一流水线1110具有多个第一节点1111,并且这些第一节点1111在一定的定时存储第一数据组的数据A[0]至A[3]。第一流水线1110沿右方向移动(shift)数据。作为数据移动的结果,例如,存储数据A[2]的第一节点1111存储数据A[3]。第二流水线1120具有多个第二节点1121,并且这些第二节点1121在一定的定时存储第二数据组的数据B[0]至B[3]。第二流水线1120沿左方向移动数据。确定单元1130与第一节点1111和第二节点1121连接,并且确定存储于这些节点中的数据是否匹配。对于逆流流水线技术,由于两个流水线中的数据沿相反的方向移动,因此,通过循环(round-robin)方法比较第一组和第二组的数据。
为了获得较快的逆流流水线运算,两个流水线独立地移动。但是,当第一流水线1110和第二流水线1120同时移动时,一些数据不能被比较。例如,在图11所示的定时,比较数据A[2]和B[1]。当第一和第二流水线同时移动时,在下一定时比较数据A[2]和数据B[3]。因此,数据A[2]从不与数据B[2]比较。为了抑制这样的数据比较差错,在日本专利No.3588487中,监视第一流水线1110和第二流水线1120的节点的状态。在将出现数据比较差错的状态中,两个流水线被停止,并且在完成比较之后被允许移动数据。并且,在日本专利No.3588487中描述的逆流流水线技术中,数据仅经受一对一的比较处理,但一个数据不能同时与多个数据比较,或者,不能动态地改变要与一个数据同时比较的数据的数量。
发明内容
如上所述,日本专利No.3588487中描述的逆流流水线技术难以确实地(surely)且灵活地比较数据。由此,本发明的一个方面提供一种用于使用逆流流水线确实地且灵活地比较数据的技术。
本发明的一个方面提供一种运算装置,该运算装置包括:多个第一保持单元,所述多个第一保持单元中的每一个包含串行连接的多个第一节点,并且将保持在各第一节点中的第一数据移动到位于第一方向上的相邻节点;多个第二保持单元,所述多个第二保持单元中的每一个包含串行连接的多个第二节点,并且将保持在各第二节点中的第二数据移动到位于第二方向上的相邻节点,其中,各第一节点与所述多个第二节点中的至少一个对应;运算单元,所述运算单元对于作为第一保持单元的所述多个第一节点之一的关注节点,使用保持在关注节点中的第一数据和保持在关注节点所对应的所述多个第二节点中的至少一个中的第二数据来执行运算;以及输入单元,所述输入单元将第一数据并行输入到所述多个第一保持单元之中的至少两个,并且将第二数据串行输入到所述多个第二保持单元之中的至少两个。
本发明的另一方面提供一种高速缓存装置,所述高速缓存装置包括多个数据处理装置,所述多个数据处理装置中的每一个包括:第一流水线,所述第一流水线包含多个第一节点,并且将保持在一个第一节点中的地址移动到相对于所述一个第一节点位于第一方向上的另一第一节点;第二流水线,所述第二流水线包含多个第二节点,并且将保持在一个第二节点中的高速缓存标记移动到相对于所述一个第二节点位于与第一方向相反的第二方向上的另一第二节点,其中,各第一节点与所述多个第二节点中的至少一个对应;以及比较单元,所述比较单元对于作为第一流水线的所述多个第一节点之一的关注节点,比较保持在关注节点中的地址与保持在关注节点所对应的第二节点中的至少一个中的高速缓存标记,以确定地址是否与高速缓存标记匹配;所述高速缓存装置还包括:高速缓存存储器,所述高速缓存存储器对存储在外部存储器件中的数据中的一些进行存储;获取单元,所述获取单元从处理装置获取数据的请求;第一输入单元,所述第一输入单元复制获取的数据的地址,并且将复制的地址输入到所述多个数据处理装置的第一流水线;第二输入单元,所述第二输入单元将存储于高速缓存存储器中的数据的高速缓存标记输入到所述多个数据处理装置之一的第二流水线;以及确定单元,所述确定单元当确定比较单元的比较结果指示匹配时,确定获取的数据的高速缓存命中(hit),其中,所述多个数据处理装置的第二流水线被串行连接。
本发明的又一方面提供一种运算装置的控制方法,所述运算装置包括:多个第一保持单元,所述多个第一保持单元中的每一个包含串行连接的多个第一节点,并且将保持在各第一节点中的第一数据移动到位于第一方向上的相邻节点;多个第二保持单元,所述多个第二保持单元中的每一个包含串行连接的多个第二节点,并且将保持在各第二节点中的第二数据移动到位于第二方向上的相邻节点,其中,各第一节点与所述多个第二节点中的至少一个对应;以及运算单元,所述运算单元对于作为第一保持单元的所述多个第一节点之一的关注节点,使用保持在关注节点中的第一数据和保持在关注节点所对应的所述多个第二节点中的至少一个中的第二数据来执行运算,所述方法包括:将第一数据并行输入到所述多个第一保持单元之中的至少两个,并且将第二数据串行输入到所述多个第二保持单元之中的至少两个。
本发明的再一方面提供一种高速缓存装置的控制方法,所述高速缓存装置包括多个数据处理装置,所述多个数据处理装置中的每一个包括:第一流水线,所述第一流水线包含多个第一节点,并且将保持在一个第一节点中的地址移动到相对于所述一个第一节点位于第一方向上的另一第一节点;第二流水线,所述第二流水线包含多个第二节点,并且将保持在一个第二节点中的高速缓存标记移动到相对于所述一个第二节点位于与第一方向相反的第二方向上的另一第二节点,其中,各第一节点与所述多个第二节点中的至少一个对应;以及比较单元,所述比较单元对于作为第一流水线的所述多个第一节点之一的关注节点,比较保持在关注节点中的地址与保持在关注节点所对应的第二节点中的至少一个中的高速缓存标记,以确定地址是否与高速缓存标记匹配,所述方法包括:在高速缓存存储器中存储被存储在外部存储器件中的数据中的一些;控制获取单元以从处理装置获取数据的请求;控制第一输入单元以复制获取的数据的地址并且将复制的地址输入到所述多个数据处理装置的第一流水线;控制第二输入单元以将存储于高速缓存存储器中的数据的高速缓存标记输入到所述多个数据处理装置之一的第二流水线;以及控制确定单元以在确定比较单元的比较结果指示匹配时确定获取的数据的高速缓存命中,其中,所述多个数据处理装置的第二流水线被串行连接。
从(参照附图)对示例性实施例的以下描述,本发明的进一步的特征将变得明显。
附图说明
图1是示出图像处理装置100的基本布置的示例性总体框图;
图2是示出高速缓存确定单元120的基本布置的示例性电路图;
图3是示出数据处理装置200的基本布置的示例性电路图;
图4是高速缓存确定单元400的示例性电路图;
图5是高速缓存确定单元500的示例性电路图;
图6是用于详细解释解码器552的示例性电路图;
图7示出分割(partition)信息表的示例性格式;
图8是示出分割信息表的实际例子的示例性示图;
图9是用于解释高速缓存存储器900的示例性示图;
图10是使用纵横开关(crossbar switch)时的示例性电路图;以及
图11是用于解释常规的逆流流水线技术的框图。
具体实施方式
以下将参照附图描述本发明的实施例。
[图像处理装置100]
图1是示出包含高速缓存装置110的图像处理装置100的总体布置的例子的示例性框图。在高速缓存装置110中,数据处理装置(后面将描述)被应用作为完全相联的(fully-associative)高速缓存确定单元120。
图像处理装置100包含CPU 160、作为外部存储器件的DRAM165、DRAM控制器166和系统总线164。图像处理装置100还包含作为用于读出数据的DMAC(Direct Memory Access Controller,直接存储器访问控制器)的RDMAC 162和用于写入数据的WDMAC 163,以从/向DRAM 165读/写数据。图像处理装置100进一步包含执行诸如图像处理的处理的处理装置(P.A.)A 101至D 104、以及高速缓存装置110。多个处理装置共享高速缓存装置110。即,高速缓存装置110是共享的高速缓存装置。图像处理装置100可包含任意数量的处理装置,每个处理装置可通过执行快速固定(permanent)处理的流水线电路、或者通过虽然处理速度低但可灵活改变处理内容的处理器和程序来配置。
CPU 160经由控制总线161控制RDMAC 162、WDMAC 163和处理装置A 101至D 104,由此系统性地控制整个图像处理装置100。依据来自CPU 160的指令,RDMAC 162经由系统总线164和DRAM控制器166读出存储于DRAM 165中的图像数据,并且将读出的图像数据输入到处理装置A 101。处理装置A 101执行希望的图像处理,并且将作为处理结果的图像数据输出到处理装置B 102。处理装置B102、C 103和D 104如处理装置A 101中那样类似地执行各种类型的图像处理,并且将作为处理结果的图像数据输出到随后的处理装置。处理装置D 104将作为处理结果的图像数据输出到WDMAC 163。WDMAC 163依据来自CPU 160的指令经由系统总线164和DRAM控制器166将从处理装置D 104接收的图像数据存储在DRAM 165中。图像处理装置100通过执行上述的系列的操作来实施图像处理。
在上述的图像处理期间,处理装置A 101至D 104可经由共享的高速缓存装置110从DRAM 165读出各种需要的数据(设置、表、属性信息等),并且可在图像处理中使用读出的数据。当通过处理器和程序来配置处理装置中的任一个时,可经由高速缓存装置110依次读出程序以实施处理。
[高速缓存装置110]
以下将详细描述高速缓存装置110的布置和操作。上述的处理装置A 101至D 104在它们经由高速缓存装置110从DRAM 165读出数据时将DRAM 165上的数据的存储地址输出到I/F 112。高速缓存装置110包含用于访问请求的环形总线111,以传送DRAM 165上的数据的存储地址。与各自的处理装置对应的I/F 112经由该环形总线111相互连接。从各自的处理装置输出的存储地址113经由I/F 112和环形总线111被输入到高速缓存确定单元120。高速缓存确定单元120基于输入的存储地址113确定高速缓存命中或遗漏(miss)。
[高速缓存确定单元120]
以下将参照图2详细描述高速缓存确定单元120的电路布置的例子。高速缓存确定单元120包含数据处理装置200和高速缓存确定装置280。
要输入到高速缓存确定单元120(第一输入)的存储地址113包含:
●地址有效(validity)信号“valid”;
●地址信号“data”;和
●处理装置101至104中的每一个的识别信号“ID”。
这些信号被输入到数据处理装置200。
[数据处理装置200]
以下将参照图3详细描述数据处理装置200的电路布置的例子。图3是关注于数据处理装置200的一部分的示图。第一流水线300具有多个节点(第一节点)。如果选择这些节点中的一个作为关注节点(例如,节点310),那么数据元素(data element)(第一数据)从关注节点沿第一方向(图1中的右方向)移动到下游侧的下一第一节点(例如,节点330)。如图2所示,第一流水线300从数据处理装置200外面接收:
●地址有效信号“valid”;
●地址信号“data”;
●作为地址信号的处理结果的处理结果信号“tag_id”;和
●处理装置的识别信号“ID”。
信号“valid”、“data”和“ID”包含于存储地址113中,并且,信号“tag_id”例如为缺省值。
回过来参照图3,例如,节点310接收:
●地址有效信号“valid[l-1]”312;
●地址信号“data[l-1]”314;和
●各处理装置的识别信号“ID[l-1]”。
在图3中,为了简化,信号“valid”和“ID”由一条信号线表示。并且,数据处理电路320接收:
●地址信号“data[l-1]”314;和
●作为地址信号的处理结果的处理结果信号“tag_id[l-1]”316。
数据处理电路320对这些输入信号施加后面将描述的处理,并且将处理结果输出到节点310。
当作为驱动信号的信号“enable”121有效(被断言(asserted))时,包含流水线寄存器的节点310使用从上游侧的节点和数据处理电路320输入的数据元素来更新目前为止存储的数据元素。另一方面,当信号“enable”121无效(被去断言(deasserted))时,节点310忽略从上游侧输入的数据元素,使存储的数据元素保持原样,并且不更新数据元素。为了便于描述,在第一流水线300之中,包含一个节点和向该节点输入处理结果信号的数据处理电路的区段(section)将被称为级(stage)。特别地,在图3中,包含节点310和数据处理电路320的区段将被称为第一级。
节点310向下游侧的节点330和数据处理电路340输出存储的数据,即:
●地址有效信号“valid[l]”332;
●地址信号“data[l]”334;
●处理结果信号“tag_id[l]”336;和
●识别信号“ID[l]”。
在图3中,在第一流水线300之中,包含节点330和数据处理电路340的区段将被称为第二级。如第一级中那样,在第二级中执行各种类型的数据处理。处理之后的数据元素被暂时存储在节点330中。该存储操作与第一级中的存储操作相同。
并且,节点330输出:
●地址有效信号“valid[l+1]”352;
●地址信号“data[l+1]”354;
●处理结果信号“tag_id[l+1]”356;和
●识别信号“ID[l+1]”。
通过该操作,在第一流水线300中,数据元素(有效信号“valid”、地址信号“data”、处理结果信号“tag_id”和识别信号“ID”)从作为“上游侧”的图面上的左侧向作为“下游侧”的图面上的右侧移动。
除了第一流水线300以外,数据处理装置200还包含第二流水线360。该第二流水线360具有多个节点(第二节点),并且将保持在这些第二节点中的流水线寄存器中的数据元素移动到沿与第一流水线相反的方向(第二方向)定位的相邻节点。更具体而言,第二流水线360从作为“上游侧”的图面上的右侧向作为“下游侧”的图面上的左侧移动数据元素。如图2所示,第二流水线360从数据处理装置200外面接收地址有效信号“tag_valid”和地址信号“tag_data”(第二输入)。
回过来参照图3,节点370从上游侧接收地址有效信号“tag_valid[i+2]”372和地址信号“tag_data[i+2]”374。在上述的数据处理电路340中使用这些输入信号。
当驱动信号“shift”362有效(被断言)时,节点370使用从上游侧的节点输入的数据元素来更新目前为止存储的数据元素。另一方面,当驱动信号“shift”362无效(被去断言)时,节点370忽略从上游侧输入的数据元素,使存储的数据元素保持原样,并且不更新数据元素。在第二流水线360之中,包含一个节点的区段将被称为级。特别地,在图3中,包含节点370的区段将被称为第一级。
节点370将存储于流水线寄存器中的地址有效信号“tag_valid[i+1]”382和地址信号“tag_data[i+1]”384输出到节点380与数据处理电路320和340。并且,节点380将有效信号“tag_valid[i]”392和地址信号“tag_data[i]”394输出到下游侧。通过该操作,在第二流水线360之中,作为数据元素的有效信号“tag_valid”和地址信号“tag_data”从作为“上游侧”的图面上的右侧移动到作为“下游侧”的图面上的左侧。
[数据处理电路]
以下将详细描述数据处理电路320和340。数据处理电路比较两个方向上的地址信号“data”和“tag_data”(第一比较)。当这些信号彼此相等时,数据处理电路将信号“tag_data”的存储标号(index)(上述的“[i]”、“[i+1]”或“[i+2]”)存储作为信号“tag_id”。然后,同步于“data”,信号“tag_id”作为第一流水线300的数据处理结果从作为“上游侧”的图面上的左侧移动到作为“下游侧”的图面上的右侧。以此方式,在信号“tag_id[l]”336中,设定第二流水线360的数据元素的存储标号,其具有与第一流水线300的第l个数据元素“data[l]”334的值相等的值。
更具体而言,当有效信号“tag_valid[i]”392有效时,数据处理电路320控制比较电路322以比较地址信号“data[l-1]”314和“tag_data[i]”394。当作为比较结果这些信号彼此相等时,选择器326选择信号“tag_data[i]”394的存储标号“Node=i”。该选择值在信号“tag_id[l-1]”316中被设定作为第二流水线360的数据元素的存储标号,其具有与第一流水线300的信号“data[l-1]”314的值相等的值。
如上所述,当第一流水线300和第二流水线360同时操作时,在一些情况下可能出现比较差错。为了避免这种差错,当有效信号“tag_valid[i+1]”382有效时,数据处理电路320控制比较电路324以比较地址信号“data[l-1]”314和“tag_data[i+1]”384(第二比较)。当作为比较结果这些信号彼此相等时,选择器326优先选择信号“tag_data[i+1]”384的存储标号“Node=i+1”。
当作为两个比较结果两对比较信号不彼此相等时,选择器326选择输入的处理结果信号“tag_id[l-1]”316。当驱动信号“shift”362有效(被断言)并且第二流水线360操作时,第二流水线360的数据元素向作为“下游侧”的图面上的左侧移动。因此,在这种情况下,各信号“tag_data”的存储标号指示左相邻的存储标号。由此,通过使用减量器(减法器)328将选择器326的选择结果减“1”,调整存储标号。
以下将补充存储标号选择方法。选择存储标号“Node=i”、“Node=i+1”和“tag_id[l-1]”316中的一个。选择存储标号的准则可以是简单的准则,例如,“优先选择具有较大值的存储标号”。例如,以下将检查其中数据信号“data[l-1]”314和“tag_data[i+1]”384彼此相等并且驱动信号“shift”362有效的情况。在这种情况下,为了避免上述的比较差错,选择“Node=i+1”是重要的,并且,该操作与方法“优先选择具有较大值的存储标号”匹配。另一方面,当驱动信号“shift”362无效时,不需要避免上述的比较差错,并且,不需要选择“Node=i+1”。但是,不管“Node=i+1”的选择/不选择,作为第一流水线300的下游级的第二级都再次评价地址信号“data[l]”334和“tag_data[i+1]”384之间的比较。出于该原因,当驱动信号“shift”362无效时,可以进行或者可以不进行第一级中的与信号“tag_data[i+1]”384的比较。相反,可以通过方法“优先选择具有较大值的存储标号”进行选择。在信号“tag_id[l-1]”316中设定以此方式选择的值,所述值指示第二流水线360的数据元素的存储标号,其具有与信号“data[l-1]”314的值相等的值。
仅出于示例性的目的给出已参照图3解释的例子。例如,可以在选择器326中代入驱动信号“shift”362,以控制在驱动信号“shift”362无效时不选择“Node=i+1”。当两个比较电路322和324的比较结果为<伪(false)>时,选择输入数据信号“tag_id[l-1]”316。在任何情况下,当驱动信号“shift”362有效时,执行将存储标号减“1”的调整以应对存储位置向“下游侧”的移动。出于该原因,不执行不选择“Node=i+1”的控制,并且,在选择“Node=i+1”之后再次执行将存储标号减“1”的调整。
这同样适用于数据处理电路340。当有效信号“tag_valid[i+1]”382有效时,比较电路342比较地址信号“data[l]”334和“tag_data[i+1]”384。当作为比较结果两个信号彼此相等时,选择器346选择信号“tag_data[i+1]”384的存储标号“Node=i+1”。为了准备第二流水线360的操作,当有效信号“tag_valid[i+2]”372有效时,数据处理电路340控制比较电路344以比较数据信号“data[l]”334和“tag_data[i+2]”374。当作为比较结果这些信号彼此相等时,选择器346优先选择信号“tag_data[i+2]”374的存储标号“Node=i+2”。当作为两个比较结果两对比较信号不彼此相等时,选择器346选择处理结果信号“tag_id[l]”336。当驱动信号“shift”362有效并且第二流水线360因此操作时,信号“tag_data”的存储标号向作为“下游侧”的图面上的左侧移动“1”。出于该原因,从选择器346的选择结果使用减量器(减法器)348将存储标号减“1”。以此方式,可以调整匹配检测结果,并且,可以通过简单的处理来实现更精确并且更快速的数据处理。如上所述,数据处理装置200可在流水线的各自的级中确实地且快速地比较沿相反方向移动的数据元素。
上述的数据处理电路320和340中的每一个具有第二流水线360中要比较的数据元素针对第一流水线300的每一个数据元素的比较电路。并且,数据处理电路320和340中的每一个在第二流水线360操作的假定下具有第二流水线360的“上游”数据元素对于第二流水线360的要比较的数据元素的新的比较电路。由于这些电路可避免可能在日本专利No.3588487的布置中出现的对于各特定级的联锁(interlocking)(内部停止)的问题,因此,可以总是获得高的处理性能而不停止数据处理。
在数据处理装置200中,为了计算两个数据元素彼此相等时的存储位置,数据处理电路320和340中的每一个在第二流水线360操作的假定下包含用于将处理结果减“1”的减量器。然后,第二流水线的数据元素的存储标号被事先分配,以从第二流水线的“下游侧”向“上游侧”如“0、1、2、...、i、i+1、i+2、...、N-1(i和N是正值,i<N)”那样增加。将在后面描述这种分配的优点。当以相反的次序分配存储标号时,减量器自然用作被用于将存储标号加“1”的增量器。
以下将再次参照图2描述数据处理装置200的布置。在数据处理装置200中,第一流水线300和第二流水线360均包含八个级。图2中的Data Slot[0]至Data Slot[7]与图3所示的第一流水线300的节点310和330对应。图2中的Tag Slot[0]至Tag Slot[7]与图3所示的第二流水线360的节点370和380对应。Judge[0]至Judge[7]与图3所示的数据处理电路320和340对应。如上所述,通过设置多个级,数据处理装置200可通过流水线操作来对许多数据元素进行并行分布和比较。
存储地址113通过数据处理装置200的第一流水线300的DataSlot移动。数据处理装置200可同时存储八个信号“tag_data”,并且高速缓存标记(tag)信息被存储于这八个信号“tag_data”中的每一个中。使用数据处理装置200的例子的高速缓存装置与8节点、完全相联的高速缓存装置对应。并且,从第二流水线360的“下游侧”依次串行设定第0个到第7个存储位置,并且,第二流水线360具有当驱动信号“shift”362有效(被断言)时向“下游侧”移动数据元素的移动结构。通过该移动结构,最旧的高速缓存标记被存储于第0个存储位置处的信号“tag_data”中,最新的高速缓存标记被存储于第7个存储位置处的信号“tag_data”中。每次出现高速缓存遗漏时,高速缓存标记从第7个存储位置处的信号“tag_data”依次移动到第0个存储位置处的信号“tag_data”,并然后从第二流水线360被扫出(sweep out)。尽管高速缓存确定单元120具有非常简单的结构,但其总是从最旧的高速缓存标记和高速缓存数据依次舍弃高速缓存标记和高速缓存数据。结果,不需要执行一般的高速缓存机构的复杂替换(replace)控制。
[高速缓存命中确定]
以下将描述高速缓存命中确定序列。“高速缓存命中确定”是要确定由存储地址113指定的数据是否被存储于高速缓存存储器190中。当指定的数据被存储于高速缓存存储器190中时,确定高速缓存命中;否则,确定高速缓存遗漏。通过高速缓存确定装置280进行高速缓存命中确定。高速缓存确定装置280通过检查从数据处理装置200输出的处理结果信号“tag_id”(2的补码表示(complement representation))的具有1位长度的符号位,确定高速缓存命中或遗漏。当作为来自数据处理装置200的输出的有效信号“valid”有效(被断言)并且其符号位是“1”时,信号“tag_id”取负值,并且,高速缓存确定装置280确定高速缓存遗漏。当有效信号“valid”有效(被断言)并且其符号位是“0”时,信号“tag_id”取非负值,并且,高速缓存确定装置280确定高速缓存命中。当有效信号“valid”无效(被去断言)时,高速缓存确定装置280跳过(skip)确定。并且,当来自访问仲裁(arbitration)单元130的信号“enable”无效(被去断言)时,高速缓存确定装置280跳过确定。
作为数据处理装置200的输出的地址信号“data”、有效信号“valid”和识别信号“ID”同步于信号“tag_id”被输入到高速缓存确定装置280。当通过以上的处理确定高速缓存遗漏时,作为高速缓存遗漏时的地址“cache_miss_address”从高速缓存确定装置280输出该地址信号“data”。在高速缓存遗漏的情况下,高速缓存确定装置280使驱动信号“shift”362有效(断言),并且作为高速缓存标记“tag_data”输出高速缓存遗漏时的地址“cache_miss_address”。每次高速缓存遗漏被确定,都使驱动信号“shift”362有效,并且,如上所述处理结果“tag_id”被递减(decrement)。
即使当处理结果“tag_id”初始保持正值时,如果高速缓存遗漏被重复,那么第二流水线360移动,并且,常常从第二流水线360扫出高速缓存标记“tag_data”。如从以上的描述可以看出的那样,由于最旧的高速缓存标记的存储标号为零,因此扫出的处理结果“tag_id”取负值。这是仅需要在上述的高速缓存确定中检查信号“tag_id”的符号的原因。即,分配存储位置的序号(number)的方法被设计,使得最旧的高速缓存标记与第0个对应并且最新的高速缓存标记与第(N-1)个对应。结果,可通过确定第一流水线300的最后级中的数据处理结果的符号,获得高速缓存命中确定。因此,可以非常简单地完成高速缓存确定。当从第二流水线360的“上游侧”向“下游侧”从第0个到第(N-1)个分配存储标号时,可通过检查信号“tag_id”的值是否比作为第二流水线的元素的数量的N小,获得高速缓存命中确定。
对于如上所述总是从最旧的高速缓存数据依次舍弃高速缓存数据的机构,高速缓存存储器190可使用环形FIFO。在这种情况下,高速缓存确定单元120和高速缓存存储器190可容易地被同步化。注意,当高速缓存确定指示高速缓存命中时,希望的高速缓存数据被存储于由“tag_id”指示的位置处的高速缓存存储器中。
通过上述的处理,高速缓存确定单元120向访问仲裁单元130输出以下的内容作为基于输入存储地址113的确定结果125:
●地址有效信号“valid”,
●作为高速缓存遗漏时的DRAM 165的数据存储地址的地址信号“cache_miss_address”,
●处理装置的识别信号“ID”;
●作为高速缓存数据的存储地址的信号“tag_id”,和
●高速缓存确定结果“cache_miss_flag”。
[访问仲裁单元]130
以下将参照图1描述访问仲裁单元130的操作。当确定结果125中的有效信号“valid”有效(被断言)时,访问仲裁单元130操作;否则,它等待。访问仲裁单元130根据确定结果125中的高速缓存确定结果“cache_miss_flag”的有效(被断言)/无效(被去断言)状态,执行以下的处理。
●当高速缓存确定结果“cache_miss_flag”有效时,访问仲裁单元130评价发送队列150、接收队列170和等待队列140的各自存储区域的空状态。当三个队列均具有空区域时,访问仲裁单元130使信号“ID、tag_id、chche_miss_flag”135在等待队列140中入列(enqueue)。同时,访问仲裁单元130使地址信号“cache_miss_address”132在发送队列150中入列。如果不存在空区域,那么访问仲裁单元130使驱动信号“enable”121无效(去断言)以停止高速缓存确定单元120,并且进行等待直到存储区域变为空。
●当高速缓存确定结果“cache_miss_flag”无效时,访问仲裁单元130评价等待队列140的空状态。如果存在空区域,那么访问仲裁单元130使信号“ID、tag_id、cache_miss_flag”135在等待队列140中入列。如果不存在空区域,那么访问仲裁单元130使驱动信号“enable”121无效(去断言)以停止高速缓存确定单元120,并且进行等待直到存储区域变为空。
[高速缓存存储器仲裁单元180]
以下将描述高速缓存存储器仲裁单元180的操作。高速缓存存储器仲裁单元180评价是否在接收队列170和等待队列140的存储区域中保持数据。高速缓存存储器仲裁单元180使要被处理的高速缓存确定结果“ID、tag_id、cache_miss_flag”从等待队列140出列(dequeue)。当等待队列140为空时,由于不存在要被处理的高速缓存确定结果,因此高速缓存存储器仲裁单元180进行等待而没有任何处理。接下来,高速缓存存储器仲裁单元180取决于高速缓存确定结果“cache_miss_flag”是无效(被去断言)还是有效(被断言)而执行以下的处理。
●当高速缓存确定结果“cache_miss_flag”无效(被去断言)时,这意味着高速缓存命中。由此,高速缓存存储器仲裁单元180基于从等待队列140出列的数据元素中的“tag_id”和FIFO高速缓存存储器190的写入指针,计算高速缓存存储器190中的存储地址。高速缓存存储器仲裁单元180从高速缓存存储器190基于该存储地址读出高速缓存的数据作为数据“read_data”192。然后,高速缓存存储器仲裁单元180将高速缓存数据“valid、ID、cache_data”185输出到I/F 116。
●当高速缓存确定结果“cache_miss_flag”有效(被断言)时,这意味着高速缓存遗漏。高速缓存存储器仲裁单元180确认是否在接收队列170中从DRAM 165接收到未存储于高速缓存存储器190中的数据。如果没有接收到数据,那么高速缓存存储器仲裁单元180进行等待,直到接收到数据。如果接收到数据,那么高速缓存存储器仲裁单元180使要被更新的高速缓存数据从接收队列170出列。然后,高速缓存存储器仲裁单元180在由写入指针所指示的高速缓存存储器190的存储区域中写入出列的数据作为数据“write_data”182。同时,高速缓存存储器仲裁单元180将高速缓存数据“valid、ID、cache_data”185输出到I/F 116。接下来,高速缓存存储器仲裁单元180使高速缓存存储器190的写入指针递增(increment)。当超过FIFO容量时,高速缓存存储器仲裁单元180将写入指针复位为零。
高速缓存装置110将通过上述的处理所获得的高速缓存数据分发给处理装置101至104。高速缓存装置110包含用于分发高速缓存数据的环形总线115。与这些处理装置对应的I/F 116经由该环形总线115相互连接。与各自的处理装置连接的I/F 116中的每一个接收作为来自高速缓存存储器仲裁单元180的输出的高速缓存数据“valid、ID、cache_data”185。然后,当接收的高速缓存数据的识别信号“ID”与连接的处理装置的识别信号“ID”匹配时,相应的I/F 116将高速缓存数据输出到处理装置。如果两个识别信号不匹配,那么各I/F 116经由环形总线115向位于随后的位置处的另一I/F 116发送接收的高速缓存数据。
高速缓存装置110采用非阻挡高速缓存机构,以隐藏作为高速缓存遗漏时的处罚的重填等待时间(refill latency)。即使当确定结果125指示高速缓存遗漏时,该机构也在等待队列140中保存后面需要的信息“ID、tag_id、cache_miss_flag”135。然后,高速缓存装置110在完成从DRAM 165读出高速缓存遗漏数据并且将其存储于高速缓存存储器190中的处理之前,执行下一像素的高速缓存确定处理。通过该处理,即使在从DRAM 165向高速缓存存储器190重填高速缓存遗漏数据时,高速缓存装置110也可对于随后的像素执行高速缓存确定。因此,可以抑制高速缓存遗漏时的性能劣化。
高速缓存装置110可使用非常简单的机构来实现可被多个处理装置共享的完全相联的高速缓存装置。当多个处理装置共享一个高速缓存装置110时,具有低的相关性的地址被接连输入到高速缓存确定单元120。由于采用一般直接映射方法的高速缓存确定单元从各地址的低位(lower bits)计算用于管理高速缓存标记的标记存储器的存储地址,因此,具有低的相关性的这种地址容易导致高速缓存冲突。与处理装置的数量对应地增加组相联(set-associative)节点的数量是减少高速缓存冲突可能性的一种解决方案。但是,当处理装置的数量变得非常大时,必须应对非常大量的节点。由此,由于高速缓存确定单元中的选择器的逻辑级的数量大,因此一般的高速缓存装置实现方法变得难以使定时收敛(converge),并且不能以高的操作频率来操作高速缓存确定单元。作为对比,由于高速缓存确定单元120通过流水线配置来获得确定,因此它可以以非常高的操作频率操作。并且,由于从较旧的数据依次自动删除数据,因此高速缓存确定单元120不需要现有技术中所需要的高速缓存冲突时的任何复杂的替换控制。出于该原因,高速缓存确定单元120和高速缓存存储器仲裁单元180可通过非常简单的机构被同步化,并且,可以使用FIFO作为高速缓存存储器。由此,这种布置对于提高高速缓存装置110的操作频率是有利的。更重要的是,高速缓存装置110采用完全相联方法,并且,决不导致由于地址的低位相同所造成的高速缓存冲突。
将描述使用图4所示的高速缓存确定单元400的高速缓存装置。图4是用于解释高速缓存确定单元400的电路布置的例子的电路图。代替图1所示的高速缓存装置110的高速缓存确定单元120,使用高速缓存确定单元400。与上述的高速缓存装置110的基本布置中相同的部分的描述将不被重复。高速缓存确定单元400包含复制装置410、运算装置430和高速缓存确定装置480。运算装置430包含多个数据处理装置(D.P.A.)200_1至200_N,这些数据处理装置中的每一个具有与使用图2描述的数据处理装置200相同的布置。以此方式,由于高速缓存确定单元400包含多个上述的数据处理装置,因此增加了可同时比较的数据元素的数量。由于图4所示的高速缓存确定单元400包含多个基本的数据处理装置,因此可以再利用已设计和验证的数据处理装置,由此提高开发效率。
包含于高速缓存确定单元400中的各自的Data Slot与图3所示的节点310和330相同,并且当信号“enable”121有效(被断言)时使用新的数据元素更新目前为止存储的数据元素。节点411从I/F 112接收存储地址113。如上所述,存储地址113包含有效信号“valid”、地址信号“data”和识别信号“ID”。复制装置410如420指示的那样复制存储地址113,以在节点412_1至412_N中将其重定时(retime)。节点412_1至412_N分别将存储的数据元素输出到相应的数据处理装置200_1至200_N的第一流水线300。以此方式,同一存储地址113的复制品在相同的定时被并行输入到各自的数据处理装置的第一流水线300。
运算装置430接收从高速缓存确定装置480的解码器452输出的信号“cache_miss_flag”444作为输入到各自的数据处理装置200_1至200_N的驱动信号“shift”。然后,所有的数据处理装置200_1至200_N的第二流水线360的数据元素同步移动。从高速缓存确定装置480输出的信号“cache_miss_flag”和“cache_miss_address”作为信号“tag_valid”和“tag_data”被输入到数据处理装置(1)200_1的第二流水线360。从数据处理装置(1)的第二流水线360输出的信号“tag_valid”和“tag_data”作为信号“tag_valid”和“tag_data”被输入到数据处理装置(2)200_2的第二流水线360(440_1)。这同样适用于随后的数据处理装置(440_2、440_N)。从数据处理装置(i)的第二流水线360输出的信号“tag_valid”和“tag_data”作为信号“tag_valid”和“tag_data”被输入到数据处理装置(i+1)的第二流水线360。以此方式,在运算装置430中,数据处理装置被顺次连接,使得某数据处理装置的第二流水线的输出“tag_valid、tag_data”与随后的数据处理装置的第二流水线的输入串行连接。
高速缓存确定装置480从所有的数据处理装置200_1至200_N接收处理结果“tag_id(1)、tag_id(2)、...、tag_id(N)”450。高速缓存确定装置480进一步接收从数据处理装置200_1至200_N中的任一个的第一流水线300输出的信号“valid、data”。解码器452确认有效信号“valid”453是否有效(被断言)以及信号“enable”121是否有效。如果两个信号均有效,那么高速缓存确定装置480控制解码器452以确认N个处理结果“tag_id(1)、tag_id(2)、...、tag_id(N)”450的符号位451。如果符号位451包含至少一个“0”,那么作为高速缓存确定结果解码器452确定高速缓存命中,并且输出“0”作为信号“cache_miss_flag”444。如果所有的符号位451为“1”,那么作为高速缓存确定结果解码器452确定高速缓存遗漏,并且输出“1”作为信号“cache_miss_flag”444。在高速缓存命中的情况下,解码器452将与符号位的“0”对应的数据处理装置的序号456输出到选择器454。选择器454从处理结果“tag_id(1)、tag_id(2)、...、tag_id(N)”450选择由序号456指示的数据处理装置的“tag_id”,并且作为信号“tag_id”458将其输出。当信号“enable”121有效(被断言)时,节点460使用输入的数据元素更新目前为止存储的数据元素。然后,节点460将由自身存储的数据元素作为确定结果125输出到访问仲裁单元130。
如上所述,在使用图4所示的高速缓存确定单元400的高速缓存装置中,单个地址信号“data”在各自的数据处理装置中同时与多个不同的地址信号“tag_valid”比较。于是,可以容易地实现具有更大量的节点的完全相联的高速缓存装置。使用高速缓存确定单元400的高速缓存装置包含各具有基本布置的多个数据处理装置,并且可通过仅连接各自的数据处理装置的第一流水线300和第二流水线360而实现。出于该原因,可以再利用已设计并验证的数据处理装置。结果,例如,在需要增加/减少完全相联的高速缓存装置的节点的数量的开发中,可以提高开发效率。并且,高速缓存确定单元400使用流水线配置执行数据处理,并且可通过仅计算所有符号位的逻辑积来确定高速缓存遗漏。以此方式,高速缓存装置可以以与常规的高速缓存装置相比非常高的操作频率操作。
注意,在高速缓存遗漏的情况下,可作为位于最后的位置处的数据处理装置(N)200_N的第二流水线360的输出来扫出数据元素“tag_data、tag_valid”。这些扫出的数据元素被输出到节点460,节点460可将作为“sweep_address、sweep_address_valid”包含这些数据元素的确定结果125输出到访问仲裁单元130。使用这些数据元素,可以实现回写(write-back)高速缓存装置。
在回写高速缓存装置中,暂时存储于高速缓存存储器190中的高速缓存数据被通过处理装置A 101至D 104写出的写入数据替换。出于该原因,暂时存储于高速缓存存储器190中的数据必须被保存于作为外部存储器的DRAM 165中。为了应对回写高速缓存装置并允许处理装置A 101至D 104执行写入操作,要输出的存储地址113包含:
●写入标记“write_enable”;和
●写入数据“write_data”。
当写入标记“write_enable”有效(被断言)时,写入数据“write_data”在高速缓存存储器190的存储地址处被写入。当写入标记“write_enable”无效(被去断言)时,执行上述的读取高速缓存装置的操作。然后,在高速缓存确定单元400中的各自的数据处理装置200_1至200_N的第一流水线300中同步于包含于存储地址113中的其它的数据元素而移动数据元素“write_enable”和“write_data”。数据处理装置(N)200_N将数据元素“write_enable”和“write_data”同步于其它的数据元素而输出到节点460。节点460将包含这些数据的确定结果125输出到访问仲裁单元130。即,该确定结果125包含:
●作为高速缓存遗漏时的DRAM的数据存储地址的地址信号“cache_miss_address”;
●处理装置的识别信号“ID”;
●高速缓存数据的存储地址“tag_id”;
●高速缓存确定结果“cache_miss_flag”;
●写入标记“write_enable”;
●写入数据“write_data”;
●扫出的地址信号“sweep_address”;和
●扫出的地址有效信号“sweep_address_valid”。
确定结果125经由等待队列140到达高速缓存存储器仲裁单元180。高速缓存存储器仲裁单元180以与如上所述相同的方式使用“ID、tag_id”计算高速缓存存储器190的存储地址。当高速缓存确定结果“cache_miss_flag”无效(被去断言)时,由于这意味着高速缓存命中,因此高速缓存存储器仲裁单元180将写入数据“write_data”写入在高速缓存存储器190的存储地址处。另一方面,当高速缓存确定结果“cache_miss_flag”有效(被断言)时,由于这意味着高速缓存遗漏,因此高速缓存存储器仲裁单元180不能立即将写入数据“write_data”写入在高速缓存存储器190中。当扫出的地址有效信号“sweep_address_valid”有效(被断言)时,暂时存储于高速缓存存储器190的存储地址处的数据被重写(overwrite)。由此,高速缓存存储器仲裁单元180从高速缓存存储器190读出存储地址处的高速缓存数据,并且在由扫出的地址信号“sweep_address”指示的DRAM165的区域中保存该高速缓存数据。之后,高速缓存存储器仲裁单元180在高速缓存存储器190中重填由地址信号“cache_miss_address”指示的作为外部存储器的DRAM 165的区域中的数据。此时,高速缓存存储器仲裁单元180通过写入数据“write_data”重写从DRAM 165读出的数据,并且在高速缓存存储器190的存储地址处暂时存储重写的数据。当读出的数据和“write_data”具有相同的大小(相同的字节数)时,高速缓存存储器仲裁单元180可跳过该重填操作。当扫出的地址有效信号“sweep_address_valid”无效(被去断言)时,不在高速缓存存储器190的存储地址处暂时存储有效的高速缓存数据。因此,高速缓存存储器仲裁单元180不需要在高速缓存存储器190的存储地址处保存暂时存储的高速缓存数据。在这种情况下,如果必要的话,高速缓存存储器仲裁单元180可在执行上述的重填操作的同时在高速缓存存储器190的存储地址处暂时存储数据“write_data”作为高速缓存数据。
通过上述的布置,可以容易地实现回写高速缓存装置。用作回写高速缓存装置的高速缓存装置的高速缓存确定单元400也具有与读取高速缓存装置相同的优点。特别地,从较旧的数据依次自动删除数据,并且,不需要执行高速缓存冲突时的复杂替换控制。于是,仅需要在作为外部存储器的DRAM 165中从较旧的数据依次保存暂时存储于高速缓存存储器中的高速缓存数据。如上所述,可通过非常简单的方法来实现回写高速缓存装置所特有的回写控制。
以下将描述使用图5所示的高速缓存确定单元500的高速缓存装置。图5是用于解释包含分割信息表的高速缓存确定单元500的电路布置的示例性电路图。替代图1所示的高速缓存装置110的高速缓存确定单元120,使用高速缓存确定单元500。
高速缓存确定单元500包含复制装置510、运算装置530和高速缓存确定装置580。运算装置530包含多个数据处理装置200_1至200_N,这些数据处理装置中的每一个具有与使用图2描述的数据处理装置200相同的布置。以此方式,如高速缓存确定单元400中那样,高速缓存确定单元500包含多个上述的数据处理装置,由此增加了可同时比较的数据元素的数量。并且,当多个处理装置A 101至D 104共享高速缓存装置110时,高速缓存确定单元500可对于各自的处理装置切换要被各处理装置专用的高速缓存容量(节点的数量)。通过切换各处理装置的专用分配,可以给具有高的优先级的图像处理分配较大的高速缓存容量(节点的数量)。即,在执行图像处理时,根据图像处理的目的来适应性地切换高速缓存容量(节点的数量)的专用分配,由此以希望的效率执行图像处理。
与复制装置410中不同,图5所示的复制装置510包含分割信息表515。因此,将不给出与复制装置410中的部分共同的部分的描述,并且,以下将描述分割信息表515。在分割信息表515中,CPU 160事先设定分割信息,以切换要被各自的处理装置专用的高速缓存容量(节点的数量)的分配。分割信息表示要被各自的处理装置专用的数据处理装置200_1至200_N的分配(组)。以下将参照图7和图8详细描述分割信息表515。分割信息表515如以图7所示的格式700那样允许对于处理装置的各识别信号ID 702设定分割信息704。当存在M个处理装置并且在运算装置530中存在N个数据处理装置200时,对应于识别信号ID 702=1至M中的每一个存储N位分割信息704。N位分割信息704从最高有效位(the most significant bit)依次用作标记,该标记的每个位指示是否要使用由该位指示的数据处理装置200。当各位为“1”时,它指示所指示的数据处理装置的<使用>;当它是“0”时,它指示<不使用>。
以下将参照图8描述分割信息表515的实际例子800。在实际例子800中,对应于四个识别信号ID 702=1至4存储四条8位分割信息704。这四个识别信号ID 702分别与图1所示的四个处理装置A 101至D 104相关联。然后,8位分割信息704的各单个位从最高有效位依次与图5所示的数据处理装置(1)200_1至(N)200_N中的每一个相关联。例如,处理装置A 101的分割信息为“10000000”,并且具有指示处理装置A 101使用数据处理装置(1)(在820处示出)、但它不使用剩余的数据处理装置(2)至(8)的设置。处理装置B 102的分割信息为“01110000”,并且具有指示处理装置B 102使用数据处理装置(2)至(4)(在822处示出)、但它不使用剩余的数据处理装置(1)和(5)至(8)的设置。同样地,处理装置C 103的设置指示:它使用数据处理装置(5)和(7),但它不使用剩余的数据处理装置。处理装置D 104的设置指示:它使用数据处理装置(6)和(8),但它不使用剩余的数据处理装置。在该实际例子800中,处理装置A101专用数据处理装置(1),处理装置B 102专用数据处理装置(2)至(4),处理装置C 103专用数据处理装置(5)和(7),并且,处理装置D 104专用数据处理装置(6)和(8)。各条分割信息704的设置仅需要在多个处理装置之间是排他的,并且,可以像处理装置C103和D 104的设置中那样不连续地分配数据处理装置(在824处示出)。
回过来参照图5,复制装置510使用输入的识别信号“ID”从分割信息表515读出与该识别信号“ID”对应的分割信息“partition”518,并且将读出的信息输入到节点511。节点511复制输入有效信号“valid”和输入数据信号“data、ID、partition”,并且将它们输出到节点512_1至512_N。节点512_1至512_N分别将由它们自身存储的数据元素输出到相应的数据处理装置200_1至200_N的第一流水线300。以此方式,复制装置510复制如数据处理装置200的数量那样多的数据元素以将它们重定时。
[第二流水线360的连接切换]
在运算装置530中,如虚线部分540所示,连接各自的数据处理装置的第二流水线360。根据从数据处理装置(N)200_N输出的分割信息“partition”535自动切换第二流水线360的连接。运算装置530分别计算从解码器552输出的信号“cache_miss_flag”559和从数据处理装置(N)输出的分割信息“partition”535的与数据处理装置(1)至(N)对应的各自位的逻辑积。然后,运算装置530输入计算的逻辑积作为相应的数据处理装置的驱动信号“shift”(544_1、544_2、...、544_N)。结果,所有数据处理装置之中的仅仅与分割信息中的<使用>对应的数据处理装置的第二流水线360的数据元素被同步移动。
接下来,运算装置530对切换第二流水线360的连接所需要的数据元素进行汇编(compile)。从各自的数据处理装置(1)至(N)的第二流水线360输出的数据元素532_1至532_N、“cache_miss_flag”559和“cache_miss_address(data)”555被汇聚(bundle)于总线542上。然后,数据从总线542被输入到用于选择对于数据处理装置(1)至(N)的第二流水线360的输入的选择器545_1、545_2、...、545_N。选择器545_1、545_2、...、545_N基于分割信息“partition”535选择相应的数据元素,并且将选择的数据元素输入到数据处理装置(1)至(N)的第二流水线360。并且,可以添加用于输出在高速缓存遗漏时被扫出的数据元素的选择器548。扫出的数据元素基于分割信息“partition”535从总线542被选择,并且作为数据元素“sweep_address、sweep_address_valid”被输出。如上所述,当高速缓存装置110被用作回写高速缓存装置时,使用这些数据元素。
例如,实际例子800中对于第二流水线的输入选择方法如下。如从实际例子800可以看出的那样,当从数据处理装置(N)的第一流水线300输出的识别序号“ID”是“1”时,分割信息包含设置“10000000”。当与“ID”=“1”的数据元素相关联的高速缓存确定结果是高速缓存遗漏时,数据处理装置(1)的第二流水线360被移动。由此,作为对于数据处理装置(1)的第二流水线的输入,从总线542上的那些数据选择数据“cache_miss_flag”559和“cache_miss_address(data)”555。作为扫出的数据元素“sweep_address、sweep_address_valid”,选择来自数据处理装置(1)的第二流水线360的数据元素532_1。另一方面,如从实际例子800可以看出的那样,当从数据处理装置(N)的第一流水线300输出的识别序号“ID”是“2”时,分割信息包含设置“01110000”。当与“ID”=“2”的数据元素相关联的高速缓存确定结果是高速缓存遗漏时,数据处理装置(2)至(4)的第二流水线被移动。由此,作为对于数据处理装置(2)的第二流水线360的输入,从总线542上的那些数据选择数据“cache_miss_flag”559和“cache_miss_address(data)”555。作为对于数据处理装置(3)的第二流水线的输入,来自数据处理装置(2)的第二流水线的输出5322被选择。作为对于数据处理装置(4)的第二流水线的输入,来自数据处理装置(3)的第二流水线的输出被选择。并且,作为扫出的数据元素“sweep_address、sweep_address_valid”,来自数据处理装置(4)的第二流水线的输出被选择。这同样适用于与“ID”=“3”和“4”的数据元素相关联的第二流水线的连接的切换。即使当分割信息像实际例子800的部分824中那样包含不连续的设置时,也以数据处理装置的装置序号的升序依次连接第二流水线。即,来自要使用的数据处理装置的第二流水线的输出仅需要根据分割信息“partition”535的设置与要使用的下一数据处理装置的第二流水线的输入串行连接。
高速缓存确定装置580接收所有数据处理装置200_1至200_N的处理结果“tag_id(1)、tag_id(2)、...、tag_id(N)”550。高速缓存确定装置580从数据处理装置200_1至200_N中的任一个接收信号“valid、data、ID、partition”。在图5中,从数据处理装置(N)200_N输入这些信号,但是可从另一数据处理装置输入它们。与解码器452不同,解码器552接收分割信息“partition”535。以下将参照图6详细描述解码器552。解码器552计算以下的四个信号(1位信号)的逻辑积:
●有效信号“valid”553;
●通过反转(invert)数据处理装置(1)至(N)中的一个的处理结果“tag_id”的符号位(反转符号位551的任意的1位)获得的信号;
●分割信息“partition”535的与数据处理装置(1)至(N)中的一个对应的1位信号;和
●驱动信号“enable”121。
当逻辑积中的至少一个是“1”时,解码器552将高速缓存命中确定为高速缓存确定结果;当所有的逻辑积为“0”时,它将高速缓存遗漏确定为高速缓存确定结果。当所有的逻辑积为“0”时,解码器552使信号“cache_miss_flag”559有效(断言)并且输出该信号。在高速缓存命中的情况下,解码器552将与逻辑积=“1”对应的数据处理装置的装置序号(1至N中的任一个)556输出到选择器554。高速缓存确定装置580使用选择器554基于高速缓存命中装置序号556从多个处理结果“tag_id(1)至tag_id(N)”550选择高速缓存命中时的处理结果“tag_id”558,并且将其输出到节点560。
以下将描述使用高速缓存确定单元500的高速缓存装置的高速缓存存储器仲裁单元180的操作和高速缓存存储器900的布置。首先将描述图9所示的高速缓存存储器900。替代图1所示的高速缓存存储器190,使用高速缓存存储器900。高速缓存存储器900也由FIFO配置。高速缓存存储器900被分成与数据处理装置(1)至(N)对应的区域。根据分割信息的设置,对于各ID确定作为FIFO的基准的基本指针和各区域的行数(number of lines)。即使当区域像实际例子800的部分824中那样是不连续的时,也通过上述的第二流水线连接切换器件的功能来确保要使用的区域是连续的。这意味着,如附图标记901所示,与数据处理装置(6)和(7)对应的区域在被替换的同时在高速缓存存储器900上被确保。于是,即使当“ID”=“3”和“4”时,也可如“ID”=“1”和“2”的情况中那样通过简单的FIFO控制来获得对于高速缓存存储器900的数据访问。高速缓存存储器仲裁单元180获取根据读出“ID”的上述的基本指针和行数以及各ID的写入指针。当确定高速缓存命中时,高速缓存存储器仲裁单元180基于同时读出的结果“tag_id”以及高速缓存存储器900的基本指针和写入指针来计算地址。然后,高速缓存存储器仲裁单元180将读出的高速缓存数据作为数据“write_data”182写入在由高速缓存存储器900的基本指针和写入指针的总值所指示的存储区域中。
如上所述,高速缓存确定单元500使用流水线配置执行数据处理。通过计算与各自数据处理装置对应的输出的反转符号位和分割信息的至多1位逻辑积,可以确定高速缓存命中。结果,与常规的高速缓存装置相比,该高速缓存装置可以以非常高的操作频率来操作。由于从较旧的数据依次自动删除数据,因此不需要高速缓存冲突时的复杂替换控制。并且,高速缓存存储器对于预定的区域仅需要环形FIFO操作。为了实现高速缓存存储器900,仅需要使用具有多个写入指针的多储蓄库(multi-bank)FIFO。并且,可使用多个FIFO来实现高速缓存存储器900。在以上描述的例子中,准备分割信息表,并且,对于各处理装置切换分割信息。但是,当各处理装置对于处理装置的各自处理内容(操作状态)指定分割信息时,可以实现以上的处理。
图5中描述的多个数据处理装置(1)至(N)的第一流水线300和第二流水线360的各自节点基于一个系统的时钟信号(未示出)而操作。但是,可通过将不同系统的同相时钟信号分别输入到数据处理装置(1)至(N),操作多个数据处理装置(1)至(N)。在优先节电时,对于数据处理装置(1)至(N)中的一个的时钟信号被停止,以停止该数据处理装置。例如,在上述的实际例子800中,当只有处理装置A 101操作并且处理装置B 102至D 104停止时,在分割信息表515中的与“ID”=“2”至“4”对应的各条分割信息中设置信息“00000000”。然后,数据处理装置(1)以外的数据处理装置被停止。另一方面,为了在优先节电的同时操作处理装置A 101至D 104(尽管是以低速),在与“ID”=“1”至“4”对应的各条分割信息中设置信息“10000000”。通过该设置,数据处理装置(1)被所有的处理装置A 101至D 104共享。由于不使用剩余的数据处理装置,因此可以停止它们。并且,通过对于数据处理装置(1)至(N)的各自区域使用不同SRAM来实现高速缓存存储器900。对应于停止的数据处理装置,停止对于不使用的SRAM的时钟信号(或电源电压)的供给。以此方式,可以获得进一步的节电。
图10是用于解释替代环形总线使用纵横开关的布置的示例性电路图。图10示出M个处理装置(1)至(M)和N个数据处理装置(1)至(N)之间的连接的例子,替代上述的经由环形总线的连接,经由纵横开关1020和1060获得所述连接。为了允许所述多个处理装置专用数据处理装置中的每一个,在数据处理装置之前和之后插入基于分割信息“partition”切换的纵横开关1020和1060。通过该布置,多个处理装置可并行使用多个数据处理装置。通过这样的并行处理,多个处理装置可被加速。
也可通过读出并执行记录在存储器件上的程序以执行上述实施例的功能的系统或装置的计算机(或诸如CPU或MPU的器件)、以及通过由系统或装置的计算机通过例如读出并执行记录在存储器件上的程序以执行上述实施例的功能来执行其步骤的方法,实现本发明的各方面。出于该目的,例如经由网络或从用作存储器件的各种类型的记录介质(例如,计算机可读介质)给计算机提供程序。
虽然已参照示例性实施例描述了本发明,但要理解,本发明不限于公开的示例性实施例。所附的权利要求的范围要被赋予最宽的解释,以包含所有这样的修改以及等同的结构和功能。
Claims (14)
1.一种运算装置,包括:
多个第一保持单元,所述多个第一保持单元中的每一个包含串行连接的多个第一节点,并且将保持在各第一节点中的第一数据移动到位于第一方向上的相邻节点;
多个第二保持单元,所述多个第二保持单元中的每一个包含串行连接的多个第二节点,并且将保持在各第二节点中的第二数据移动到位于第二方向上的相邻节点,其中,各第一节点与所述多个第二节点中的至少一个对应;
运算单元,所述运算单元对于作为第一保持单元的所述多个第一节点之一的关注节点,使用保持在关注节点中的第一数据和保持在关注节点所对应的所述多个第二节点中的至少一个中的第二数据来执行运算;以及
输入单元,所述输入单元将第一数据并行输入到所述多个第一保持单元之中的至少两个,并且将第二数据串行输入到所述多个第二保持单元之中的至少两个。
2.根据权利要求1的运算装置,还包括:
获取单元,所述获取单元从外部装置获取第一数据和第二数据;
第一输入单元,所述第一输入单元复制获取的第一数据,并且将复制的第一数据输入到所述多个第一保持单元中的每一个;以及
第二输入单元,所述第二输入单元将获取的第二数据输入到所述多个第二保持单元之一。
3.根据权利要求1的运算装置,还包括:
多个运算电路,所述多个运算电路中的每一个包含一个第一保持单元和一个第二保持单元,
其中,所述多个运算电路被分组成多个组,以及
输入单元对于各组将第二数据输入到组中的一个运算电路的第二保持单元,并且第二保持单元对于各组被串行连接。
4.根据权利要求3的运算装置,还包括:
动态改变所述组的单元。
5.一种确定装置,包括根据权利要求1的运算装置,其中:
各第一保持单元是第一流水线,所述第一流水线包含多个第一节点,并且将保持在一个第一节点中的第一数据移动到相对于所述一个第一节点位于第一方向上的另一第一节点;
各第二保持单元是第二流水线,所述第二流水线包含多个第二节点,并且将保持在一个第二节点中的第二数据移动到相对于所述一个第二节点位于与第一方向相反的第二方向上的另一第二节点;以及
运算单元是比较单元,所述比较单元对于作为第一流水线的所述多个第一节点之一的关注节点,比较保持在关注节点中的第一数据是否与保持在关注节点所对应的所述多个第二节点中的至少一个中的第二数据匹配。
6.一种高速缓存装置,所述高速缓存装置包括多个数据处理装置,所述多个数据处理装置中的每一个包括:
第一流水线,所述第一流水线包含多个第一节点,并且将保持在一个第一节点中的地址移动到相对于所述一个第一节点位于第一方向上的另一第一节点;
第二流水线,所述第二流水线包含多个第二节点,并且将保持在一个第二节点中的高速缓存标记移动到相对于所述一个第二节点位于与第一方向相反的第二方向上的另一第二节点,其中,各第一节点与所述多个第二节点中的至少一个对应;以及
比较单元,所述比较单元对于作为第一流水线的所述多个第一节点之一的关注节点,比较保持在关注节点中的地址与保持在关注节点所对应的第二节点中的至少一个中的高速缓存标记,以确定地址是否与高速缓存标记匹配;所述高速缓存装置还包括:
高速缓存存储器,所述高速缓存存储器对存储在外部存储器件中的数据中的一些进行存储;
获取单元,所述获取单元从处理装置获取数据的请求;
第一输入单元,所述第一输入单元复制获取的数据的地址,并且将复制的地址输入到所述多个数据处理装置的第一流水线;
第二输入单元,所述第二输入单元将存储于高速缓存存储器中的数据的高速缓存标记输入到所述多个数据处理装置之一的第二流水线;以及
确定单元,所述确定单元当确定比较单元的比较结果指示匹配时,确定获取的数据的高速缓存命中,
其中,所述多个数据处理装置的第二流水线被串行连接。
7.根据权利要求6的高速缓存装置,其中,所述多个数据处理装置被分组成多个组,
第二输入单元对于各组将高速缓存标记输入到组中的一个数据处理装置的第二流水线,以及
所述多个数据处理装置的第二流水线对于各组被串行连接。
8.根据权利要求7的高速缓存装置,还包括动态改变所述组的单元。
9.根据权利要求7的高速缓存装置,其中,高速缓存存储器被分成与所述多个数据处理装置分别对应的区域,以及
与不包含于所述多个组中的任一个中的数据处理装置对应的高速缓存存储器的区域被暂停。
10.根据权利要求6的高速缓存装置,其中,当驱动信号有效时,第一流水线将保持在所述多个第一节点中的每一个中的地址移动到第一方向上位于下游侧的相邻的第一节点,以及
当驱动信号有效并且确定单元确定高速缓存遗漏时,第二流水线将保持在所述多个第二节点中的每一个中的高速缓存标记移动到第二方向上位于下游侧的相邻的第二节点。
11.根据权利要求6的高速缓存装置,其中,当确定单元确定高速缓存遗漏时,第二输入单元将从第一流水线输出的地址输入到第二流水线作为高速缓存标记。
12.根据权利要求6的高速缓存装置,其中,来自处理装置的数据的请求是对于外部存储器件的数据的写入请求,以及
高速缓存装置还包括使用从第二流水线输出的高速缓存标记在高速缓存存储器中写入与写入请求对应的数据的单元。
13.一种运算装置的控制方法,所述运算装置包括:
多个第一保持单元,所述多个第一保持单元中的每一个包含串行连接的多个第一节点,并且将保持在各第一节点中的第一数据移动到位于第一方向上的相邻节点,
多个第二保持单元,所述多个第二保持单元中的每一个包含串行连接的多个第二节点,并且将保持在各第二节点中的第二数据移动到位于第二方向上的相邻节点,其中,各第一节点与所述多个第二节点中的至少一个对应,以及
运算单元,所述运算单元对于作为第一保持单元的所述多个第一节点之一的关注节点,使用保持在关注节点中的第一数据和保持在关注节点所对应的所述多个第二节点中的至少一个中的第二数据来执行运算,所述控制方法包括:
将第一数据并行输入到所述多个第一保持单元之中的至少两个,并且将第二数据串行输入到所述多个第二保持单元之中的至少两个。
14.一种高速缓存装置的控制方法,所述高速缓存装置包括多个数据处理装置,所述多个数据处理装置中的每一个包括:
第一流水线,所述第一流水线包含多个第一节点,并且将保持在一个第一节点中的地址移动到相对于所述一个第一节点位于第一方向上的另一第一节点,
第二流水线,所述第二流水线包含多个第二节点,并且将保持在一个第二节点中的高速缓存标记移动到相对于所述一个第二节点位于与第一方向相反的第二方向上的另一第二节点,其中,各第一节点与所述多个第二节点中的至少一个对应,以及
比较单元,所述比较单元对于作为第一流水线的所述多个第一节点之一的关注节点,比较保持在关注节点中的地址与保持在关注节点所对应的第二节点中的至少一个中的高速缓存标记,以确定地址是否与高速缓存标记匹配,所述控制方法包括:
在高速缓存存储器中存储被存储在外部存储器件中的数据中的一些;
控制获取单元以从处理装置获取数据的请求;
控制第一输入单元以复制获取的数据的地址并且将复制的地址输入到所述多个数据处理装置的第一流水线;
控制第二输入单元以将存储于高速缓存存储器中的数据的高速缓存标记输入到所述多个数据处理装置之一的第二流水线;以及
控制确定单元以在确定比较单元的比较结果指示匹配时确定获取的数据的高速缓存命中,
其中,所述多个数据处理装置的第二流水线被串行连接。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2010130447A JP5650441B2 (ja) | 2010-06-07 | 2010-06-07 | 演算装置、キャッシュ装置、その制御方法及びコンピュータプログラム |
JP2010-130447 | 2010-06-07 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN102331922A true CN102331922A (zh) | 2012-01-25 |
CN102331922B CN102331922B (zh) | 2015-07-15 |
Family
ID=44352182
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201110145879.5A Expired - Fee Related CN102331922B (zh) | 2010-06-07 | 2011-06-01 | 运算装置、高速缓存装置及其控制方法 |
Country Status (4)
Country | Link |
---|---|
US (1) | US8812783B2 (zh) |
EP (2) | EP2393004B1 (zh) |
JP (1) | JP5650441B2 (zh) |
CN (1) | CN102331922B (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104281531A (zh) * | 2013-07-05 | 2015-01-14 | 佳能株式会社 | 图像处理装置及其控制方法 |
CN113672286A (zh) * | 2021-07-30 | 2021-11-19 | 科络克电子科技(上海)有限公司 | 一种流水线求值器、移动轨迹分析处理装置、方法及设备 |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8862702B2 (en) * | 2012-07-18 | 2014-10-14 | Accedian Networks Inc. | Systems and methods of installing and operating devices without explicit network addresses |
CN107016008B (zh) * | 2016-06-06 | 2020-06-09 | 阿里巴巴集团控股有限公司 | 信息处理方法和装置及动态信息的显示方法和装置 |
JP7278067B2 (ja) | 2018-12-20 | 2023-05-19 | キヤノン株式会社 | データ処理装置及びその制御方法及びプログラム |
Citations (6)
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 |
US5710905A (en) * | 1995-12-21 | 1998-01-20 | Cypress Semiconductor Corp. | Cache controller for a non-symetric cache system |
US5748539A (en) * | 1997-03-05 | 1998-05-05 | Sun Microsystems, Inc. | Recursive multi-channel interface |
CN1431599A (zh) * | 2002-08-22 | 2003-07-23 | 智慧第一公司 | 标记位址堆叠及使用其的微处理器 |
US7546405B2 (en) * | 2006-09-26 | 2009-06-09 | Sony Computer Entertainment Inc. | Methods and apparatus for dynamic grouping of requestors of resources in a multi-processor system |
US20100106910A1 (en) * | 2008-10-27 | 2010-04-29 | Nec Electronics Corporation | Cache memory and method of controlling the same |
Family Cites Families (21)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5163142A (en) * | 1988-10-28 | 1992-11-10 | Hewlett-Packard Company | Efficient cache write technique through deferred tag modification |
JPH04178755A (ja) * | 1990-11-13 | 1992-06-25 | Toshiba Corp | データ統合装置 |
US5353424A (en) * | 1991-11-19 | 1994-10-04 | Digital Equipment Corporation | Fast tag compare and bank select in set associative cache |
US5386527A (en) * | 1991-12-27 | 1995-01-31 | Texas Instruments Incorporated | Method and system for high-speed virtual-to-physical address translation and cache tag matching |
JPH05324468A (ja) * | 1992-05-21 | 1993-12-07 | Fujitsu Ltd | 階層化キャッシュメモリ |
JPH08263370A (ja) * | 1995-03-27 | 1996-10-11 | Toshiba Microelectron Corp | キャッシュメモリシステム |
US5905680A (en) * | 1996-04-30 | 1999-05-18 | Texas Instruments Incorporated | Self-timed comparison circuits and systems |
JPH10190744A (ja) * | 1996-12-26 | 1998-07-21 | Toshiba Corp | 情報記憶装置 |
JP3623082B2 (ja) * | 1997-09-26 | 2005-02-23 | 日本電信電話株式会社 | 連想メモリモジュール |
US6825848B1 (en) * | 1999-09-17 | 2004-11-30 | S3 Graphics Co., Ltd. | Synchronized two-level graphics processing cache |
US6754772B2 (en) * | 2001-11-15 | 2004-06-22 | Micron Technology, Inc. | Distributed cache |
JP4044585B2 (ja) * | 2003-11-12 | 2008-02-06 | 松下電器産業株式会社 | キャッシュメモリおよびその制御方法 |
US7689772B2 (en) * | 2006-05-04 | 2010-03-30 | Intel Corporation | Power-performance modulation in caches using a smart least recently used scheme |
US7991960B2 (en) * | 2006-10-11 | 2011-08-02 | Arm Limited | Adaptive comparison control in a data store |
CN101689141B (zh) * | 2007-06-20 | 2012-10-17 | 富士通株式会社 | 高速缓存装置、运算处理装置及其控制方法 |
US7913007B2 (en) * | 2007-09-27 | 2011-03-22 | The University Of North Carolina | Systems, methods, and computer readable media for preemption in asynchronous systems using anti-tokens |
US8539185B2 (en) * | 2008-11-13 | 2013-09-17 | International Business Machines Corporation | Systolic networks for a spiral cache |
US8271728B2 (en) * | 2008-11-13 | 2012-09-18 | International Business Machines Corporation | Spiral cache power management, adaptive sizing and interface operations |
US8051337B2 (en) * | 2009-01-22 | 2011-11-01 | Taiwan Semiconductor Manufacturing Company, Ltd. | System and method for fast cache-hit detection |
US8452944B2 (en) * | 2009-05-22 | 2013-05-28 | Canon Kabushiki Kaisha | Information processing apparatus and information processing method |
JP5627330B2 (ja) * | 2010-08-02 | 2014-11-19 | キヤノン株式会社 | 情報処理装置、キャッシュ装置およびデータ処理方法 |
-
2010
- 2010-06-07 JP JP2010130447A patent/JP5650441B2/ja active Active
-
2011
- 2011-05-05 EP EP11164892.9A patent/EP2393004B1/en not_active Not-in-force
- 2011-05-05 EP EP11195127.3A patent/EP2437159B1/en active Active
- 2011-05-11 US US13/105,062 patent/US8812783B2/en active Active
- 2011-06-01 CN CN201110145879.5A patent/CN102331922B/zh not_active Expired - Fee Related
Patent Citations (6)
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 |
US5710905A (en) * | 1995-12-21 | 1998-01-20 | Cypress Semiconductor Corp. | Cache controller for a non-symetric cache system |
US5748539A (en) * | 1997-03-05 | 1998-05-05 | Sun Microsystems, Inc. | Recursive multi-channel interface |
CN1431599A (zh) * | 2002-08-22 | 2003-07-23 | 智慧第一公司 | 标记位址堆叠及使用其的微处理器 |
US7546405B2 (en) * | 2006-09-26 | 2009-06-09 | Sony Computer Entertainment Inc. | Methods and apparatus for dynamic grouping of requestors of resources in a multi-processor system |
US20100106910A1 (en) * | 2008-10-27 | 2010-04-29 | Nec Electronics Corporation | Cache memory and method of controlling the same |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104281531A (zh) * | 2013-07-05 | 2015-01-14 | 佳能株式会社 | 图像处理装置及其控制方法 |
CN104281531B (zh) * | 2013-07-05 | 2017-11-21 | 佳能株式会社 | 图像处理装置及其控制方法 |
CN113672286A (zh) * | 2021-07-30 | 2021-11-19 | 科络克电子科技(上海)有限公司 | 一种流水线求值器、移动轨迹分析处理装置、方法及设备 |
Also Published As
Publication number | Publication date |
---|---|
EP2437159A1 (en) | 2012-04-04 |
EP2393004B1 (en) | 2018-10-31 |
JP2011257880A (ja) | 2011-12-22 |
CN102331922B (zh) | 2015-07-15 |
EP2437159B1 (en) | 2018-10-31 |
EP2393004A1 (en) | 2011-12-07 |
US8812783B2 (en) | 2014-08-19 |
US20110302373A1 (en) | 2011-12-08 |
JP5650441B2 (ja) | 2015-01-07 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN102934076B (zh) | 指令发行控制装置以及方法 | |
US20090282226A1 (en) | Context Switching On A Network On Chip | |
CN102654827B (zh) | 一种先进先出缓冲器及缓存数据的方法 | |
US11831565B2 (en) | Method for maintaining cache consistency during reordering | |
CN104471555A (zh) | 用于高速缓存系统的多级互联系统及多级互联方法 | |
CN102331922B (zh) | 运算装置、高速缓存装置及其控制方法 | |
US10282343B2 (en) | Semiconductor device | |
US8886741B2 (en) | Receive queue models to reduce I/O cache consumption | |
US7603544B2 (en) | Dynamic allocation of a buffer across multiple clients in multi-threaded processor without performing a complete flush of data associated with allocation | |
CN102968386B (zh) | 数据供给设备、缓存设备及数据供给方法 | |
US20030056073A1 (en) | Queue management method and system for a shared memory switch | |
CN110520851A (zh) | 数据处理系统的执行线程之间的基于缓存的通信 | |
US10275392B2 (en) | Data processing device | |
CN101894012B (zh) | 信息处理装置及信息处理方法 | |
US20080101374A1 (en) | Packet fifo | |
CN101930408B (zh) | 高速缓存控制器、控制高速缓存控制器的方法以及计算机系统 | |
US10374981B1 (en) | Data transfer circuitry given multiple source elements | |
US11119924B2 (en) | Interface device including ports and a cache memory, and control method thereof | |
US20180375801A1 (en) | Apparatus and method for distribution of congestion information in a switch | |
US20150127865A1 (en) | Method and apparatus use with interrupts | |
CN105190579B (zh) | 一种用于实现线路速度互连结构的方法 | |
US20080162831A1 (en) | Management/circuit arrangement and memory management system | |
JP2017111484A (ja) | ストアマージ装置、情報処理装置、およびストア制御方法、並びにコンピュータ・プログラム | |
US6366993B1 (en) | Dependency controller and method for overlapping memory access operations | |
JP2001154913A (ja) | 主記憶制御装置 |
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 | ||
CF01 | Termination of patent right due to non-payment of annual fee | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20150715 Termination date: 20210601 |