CN101689141B - 高速缓存装置、运算处理装置及其控制方法 - Google Patents
高速缓存装置、运算处理装置及其控制方法 Download PDFInfo
- Publication number
- CN101689141B CN101689141B CN200780053356XA CN200780053356A CN101689141B CN 101689141 B CN101689141 B CN 101689141B CN 200780053356X A CN200780053356X A CN 200780053356XA CN 200780053356 A CN200780053356 A CN 200780053356A CN 101689141 B CN101689141 B CN 101689141B
- Authority
- CN
- China
- Prior art keywords
- data
- register
- cache
- address
- maintaining part
- 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.)
- Expired - Fee Related
Links
- 238000012545 processing Methods 0.000 title claims abstract description 79
- 238000000034 method Methods 0.000 title claims abstract description 62
- 230000000052 comparative effect Effects 0.000 claims description 7
- 238000012423 maintenance Methods 0.000 claims description 3
- 238000007689 inspection Methods 0.000 claims 3
- 230000002950 deficient Effects 0.000 abstract 2
- 230000008569 process Effects 0.000 description 42
- 230000004087 circulation Effects 0.000 description 30
- 238000010586 diagram Methods 0.000 description 14
- 230000002085 persistent effect Effects 0.000 description 10
- 230000009467 reduction Effects 0.000 description 7
- 230000008859 change Effects 0.000 description 6
- 230000006870 function Effects 0.000 description 6
- 238000012360 testing method Methods 0.000 description 4
- 238000013500 data storage Methods 0.000 description 3
- 230000007850 degeneration Effects 0.000 description 3
- 238000002407 reforming Methods 0.000 description 3
- 230000011664 signaling Effects 0.000 description 3
- 238000013024 troubleshooting Methods 0.000 description 3
- 230000006399 behavior Effects 0.000 description 2
- 230000015572 biosynthetic process Effects 0.000 description 2
- 238000006243 chemical reaction Methods 0.000 description 2
- 238000010276 construction Methods 0.000 description 2
- 230000000694 effects Effects 0.000 description 2
- 238000005755 formation reaction Methods 0.000 description 2
- 241001269238 Data Species 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 230000015556 catabolic process Effects 0.000 description 1
- 238000012937 correction Methods 0.000 description 1
- 238000006731 degradation reaction Methods 0.000 description 1
- 238000012217 deletion Methods 0.000 description 1
- 230000037430 deletion Effects 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000001514 detection method Methods 0.000 description 1
- 230000008030 elimination Effects 0.000 description 1
- 238000003379 elimination reaction Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000000977 initiatory effect Effects 0.000 description 1
- 238000007726 management method Methods 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 238000011084 recovery Methods 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
Images
Classifications
-
- 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
- G06F12/0893—Caches characterised by their organisation or structure
- G06F12/0895—Caches characterised by their organisation or structure of parts of caches, e.g. directory or tag array
-
- 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/14—Protection against unauthorised use of memory or access to memory
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C29/00—Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
- G11C29/70—Masking faults in memories by using spares or by reconfiguring
- G11C29/78—Masking faults in memories by using spares or by reconfiguring using programmable devices
- G11C29/80—Masking faults in memories by using spares or by reconfiguring using programmable devices with improved layout
- G11C29/808—Masking faults in memories by using spares or by reconfiguring using programmable devices with improved layout using a flexible replacement scheme
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Quality & Reliability (AREA)
- Computer Security & Cryptography (AREA)
- Memory System Of A Hierarchy Structure (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
Abstract
本发明提供高速缓存装置、运算处理装置及其控制方法。高速缓存装置构成为具有:数据保持部,其具备多个具有多个高速缓存行的路径;交替数据寄存器,其保持数据保持部所具有的高速缓存行的1行数据或高速缓存行的一部分数据;交替地址寄存器,其保持指示在数据保持部中产生了故障的故障高速缓存行和故障高速缓存行内的故障产生部的索引地址;交替路径寄存器,其保持包含故障产生部的路径信息;地址匹配电路,其在对数据保持部进行访问的情况下,对在访问中使用的索引地址和交替地址寄存器所保持的索引地址进行比较;以及路径匹配电路,其在对数据保持部进行访问的情况下,对在访问中使用的路径信息和交替路径寄存器所保持的路径信息进行比较。
Description
技术领域
本发明涉及具有救济在高速缓存行中产生的故障的高速缓存行交替寄存器的高速缓存装置、运算处理装置及其控制方法。
背景技术
作为现有的针对高速缓存的固定故障的救济装置,使用了块退化和WAY(路径)退化这样的方法。在块退化和WAY退化中,以高速缓存的WAY单位来观测高速缓存故障次数,如果在单位时间内产生的故障次数超过了规定阈值,则进行块或WAY的切断。将首次超过阈值时对故障的高速缓存行和其WAY进行切断的功能称为块退化。在块退化中,切断1行数据。当在块退化的高速缓存行以外的数据中也产生故障时,将块退化对象切换为最后产生故障的高速缓存行和WAY。即,基于块退化的故障救济以保护高速缓存的1行数据为目的,在多个高速缓存行产生故障时,在块退化发生后,高速缓存的故障次数也仍增加,当其达到规定值时,对故障的WAY进行切断。在引起WAY退化时,虽然说处理器能够继续进行工作,但是引起性能大幅降低。因此,通过在WAY退化前引起仅对1个高速缓存行进行切断的块退化,由此,能够降低性能降低的程度。
但是,在高速缓存的存储容量小的情况下,由1个高速缓存行的损失引起的性能劣化也无法忽略,所以,在引起块退化的情况下,也需要将故障芯片作为更换对象。在具有多个核的CPU的情况下,无法仅更换由于1位固定故障进行块退化的核,所以,以包含全部正常工作的其他核的芯片单位进行更换。在迄今为止的CPU开发中,存在增加搭载于芯片的核数量、同时缩小一次高速缓存的容量的倾向,所以,在现有的基于块退化的高速缓存的故障保护机构中,将没有故障的核无端地作为更换对象的可能性很高。其结果,在现有的基于块退化的救济处置中,CPU芯片单位的故障耐性不充分。
因此,考虑了如下方法:在引起1位固定故障时,通过设置用于登记故障行的高速缓存数据的高速缓存行交替寄存器,由此,交替1位固定故障行的数据,救济1位固定故障而不损失高速缓存行(专利文献1)。
在装配高速缓存行交替寄存器时,在以往采用的方式中,在交替对象地址的比较中使用物理地址,该物理地址一致时,读出高速缓存行交替寄存器的数据。物理地址的位数多,所以地址处理需要花费时间。并且,为了得到作为比较对象的物理地址,需要参照TLB(TranslationLook-aside Buffer)或高速缓存标签。因此,在高速缓存的读出中,能够使用高速缓存行交替寄存器,但是,在高速缓存的写入中,TLB、高速缓存标签的参照比较和写入的流程与通常的高速缓存控制流程相差甚远,所以,放弃使用高速缓存行交替寄存器。即,每次将高速缓存交替寄存器作为存储对象时,使高速缓存行交替寄存器无效化,从主存储参照起重做等,在存储工作时产生性能降低。
并且,现有的高速缓存行交替寄存器构成为能够交替高速缓存行的1行的全部位。但是,实际上,在1个高速缓存行中,在多处产生1位错误的概率很低,电路资源的使用效率不太好。
因此,在本发明中,提出了解决现有的高速缓存行交替寄存器的问题的新结构的高速缓存行交替寄存器。
因此,首先,下面说明没有搭载本发明的高速缓存行交替寄存器的现有的高速缓存的结构。通过追加对没有搭载高速缓存行交替寄存器的现有的高速缓存的工作进行局部替换的功能,来实现本发明的结构,所以,需要预先清楚现有的高速缓存的结构。
图1示出现有的CPU的结构。
图1所示的CPU 101具有4个核CORE-0(102-0)、CORE-1(102-1)、CORE-2(102-2)、CORE-3(102-3)(以下设CORE为102)。
各核CORE 102具有:IU(Instruction Unit:命令处理装置)(104-0、104-1、104-2、104-3:以下设IU为104)、EU(Execution Unit:运算装置)(105-0、105-1、105-2、105-3:以下设EU为105)、以及SU(StorageUnit:存储控制装置)(103-0、103-1、103-2、103-3:以下设SU为103)。
进而,SU(103)分别具有:命令高速缓存即IF-LBS(Instruction FetchLocal Buffer Storage)(106-0、106-1、106-2、106-3:以下设IF-LBS为106)、以及操作数高速缓存即OP-LBS(Operand Local Buffer Storage)(107-0、107-1、107-2、107-3:以下设OP-LBS为107)。
并且,CPU 101具有二次高速缓存即SX(Second Cache)108,进行与各个核CORE 102的数据交换,进而,SX 108经由SYSTEM BUS 109与主存储器即Memory 110进行数据交换。
接着,图2示出搭载于CPU 101的一次高速缓存即IF-LBS 106和OP-LBS 107的结构。
高速缓存由WAY 0(201)和WAY 1(202)这两个WAY构成。对各个WAY赋予地址信号时,读出各个地址的数据,输出到数据信号线。对数据线205输出WAY 0的高速缓存RAM输出数据,对数据线206输出WAY 1的高速缓存RAM输出数据。并且,对WAY选择电路203赋予WAY信息时,选择数据线205和数据线206的任一方,对IU104(或EU105)输出数据(207)。
另外,本发明将构成命令高速缓存IF-LBS 106和操作数高速缓存OP-LBS 107的一次高速缓存作为对象。
下面,使用流程图详细说明上述这种结构中的高速缓存的工作。
首先,图3示出高速缓存的读出工作的流程。
在高速缓存的读出中,对高速缓存数据部和高速缓存标签部以及TLB部进行访问。
从虚拟地址中取出位14~5并送出到高速缓存数据部(S301),在所参照的下一循环中,在RAM内部进行数据的取出(S302),在下一循环中,从全部高速缓存RAM中合计取出64字节的数据(S303)。所取出的数据由32字节的与2个WAY相当的数据构成。
从虚拟地址中取出位14~6并送出到高速缓存标签部(S304),在所参照的下一循环中,在RAM内部进行标签地址的取出(S305),在下一循环中,取出与2个WAY相当的物理地址(S306)。
从虚拟地址中取出位63~13并送出到TLB部,并且,作为表示进行高速缓存的参照的访问空间的信息,送出访问空间编号或访问空间的上下文ID、段表起点等表示访问空间的信息(S307),在所参照的下一循环中,对在TLB中登记的虚拟地址和表示访问空间的信息进行比较,取出与一致的登记信息对应的物理地址(S308),在下一循环中,读出1个物理地址,完成从虚拟地址到物理地址的转换(S309)。
在S310中,对从标签部读出的与2个WAY相当的物理地址和从TLB部读出的物理地址进行比较,如果一致,则判断为在高速缓存中存在取出对象数据,使用一致的高速缓存WAY的数据。在S311中,向高速缓存数据部送出表示在高速缓存标签中一致的WAY的信息,在S312中,选择从高速缓存数据部读出的个WAY的数据的一方,完成高速缓存的读出。
此后,在命令高速缓存IF-LBS 106中,直接向命令处理装置送出所读出的32字节的数据,在命令处理装置侧,作为8个4字节长的命令来受理。在操作数高速缓存OP-LBS 107中,所读出的数据根据读出对象的数据宽度1字节、2字节、4字节、8字节进行读出数据的对齐,同时,根据需要进行符号扩展,转换为对1字节、2字节、4字节的数据的正负的符号部分进行扩展后的数据形式,对运算器送出完成了对齐和符号扩展后的数据。在运算器侧,将所受理的数据写入作为受理对象的寄存器,并且,使用所受理的数据开始运算。
在高速缓存的读出控制中,在访问开始2个循环后,在读出了高速缓存数据、高速缓存标签、TLB的时点,通过分别具有的故障检测电路确认有无故障。如果没有故障,则根据图3所示的处理顺序直接完成处理。在检测出故障的情况下,在该故障是TLB的故障的情况下,全部删除TLB,从TLB的登记处理起重做,但是,这里省略其详细说明。关于故障存在于高速缓存数据或高速缓存标签中的情况下的现有的处理方式,在专利文献2中进行了公开。下面说明该现有的处理方式。
图4、图5示出故障存在于高速缓存数据或高速缓存标签中的情况下的处理工作的流程。图4示出在操作数高速缓存OP-LBS 107中的数据或标签中存在故障时的故障处理,图5示出在命令高速缓存IF-LBS 106中的数据或标签中存在故障时的故障处理。
首先,在图4中,在高速缓存数据或高速缓存标签中检测出故障后,SU103内的操作数高速缓存OP-LBS 107临时中断数据处理,导通高速缓存控制部的ERROR-STATE标志(S401)。在ERAR(Error Address Register)中登记错误的高速缓存行地址和高速缓存WAY(S402)。ERAR存在两种,操作数高速缓存用的OP-ERAR和命令高速缓存用的IF-ERAR。任意一种都保持高速缓存行地址位14~5和WAY信息。在ERROR-STATE中,相应的有:中断全部后续处理,并且,此前执行中的处理、例如针对主存储器或其他高速缓存请求具有高速缓存行的处理,但是,该情况下高速缓存行到达,等待完成针对高速缓存的登记。
然后,针对下位级的高速缓存(SX 108)请求实施故障救济处理,并且,向操作数高速缓存OP-LBS 107通知产生了故障的情况,根据OP-ERAR的信息,通知故障的高速缓存的高速缓存行地址和高速缓存WAY(S403)。
接收到故障救济处理请求的下位级的高速缓存具有通知方高速缓存标签的副本,为了进行故障救济处理而参照该副本(S404)。在高速缓存标签的副本中,存储表示该高速缓存行有效还是无效的Valid位和与该高速缓存行对应的物理地址作为信息。判断请求故障处理的高速缓存行是否有效(S405),在请求故障处理的高速缓存行为无效状态的情况下(“否”),对所通知的高速缓存行指示将故障作为原因的无效化,并且,明示其是针对操作数高速缓存或命令高速缓存的哪一个高速缓存的处理,直接向故障通知方回送故障高速缓存行和故障WAY信息(S406)。在故障方的高速缓存中,受理将故障作为原因的无效化的指示后,针对接收到操作数高速缓存行的无效化通知的高速缓存行和高速缓存WAY,以操作数高速缓存流水线来执行将操作数高速缓存标签的有效位改写为无效状态的处理流程(S407)。在进行改写处理的操作数高速缓存流水线的被称为B循环(Buffer Read Cycle)的流程中,通过将ERROR-STATE标志设置为关闭,由此,完成错误处理,并且再次开始执行后续命令,同时,向下位级的高速缓存通知完成了高速缓存标签的无效化的情况,并且通知无效化的高速缓存行和高速缓存WAY(S408)。接收该通知,在下位级的高速缓存中,将高速缓存标签副本的相应行改写为无效状态(S409)。
如果检索高速缓存标签副本的结果为故障处理对象高速缓存行为有效状态(S405中为“是”的情况),则对故障方高速缓存指示将故障作为原因的高速缓存行排除,并且,明示其是针对操作数高速缓存的处理,直接向故障通知方回送故障高速缓存行和故障WAY信息(S410)。在故障方的高速缓存中,受理将故障作为原因的高速缓存行排除的指示后,针对接收到操作数高速缓存行的无效化通知的高速缓存行和高速缓存WAY,执行参照操作数高速缓存标签并进行操作数高速缓存数据的读出的处理流程、以及将操作数高速缓存标签的有效位改写为无效状态并进行操作数高速缓存数据的读出的处理流程(S411)。在进行改写高速缓存标签的处理的操作数流水线的被称为B循环的流程中,通过将ERROR-STATE标志设置为关闭,由此,完成错误处理,并且再次开始执行后续命令,同时,向下位级的高速缓存通知使高速缓存标签无效化的情况,并且通知无效化的高速缓存行和高速缓存WAY(S414)。关于操作数高速缓存OP-LBS 107,此时,有时伴有数据传送。操作数高速缓存数据的读出实施2次,为了在1次的读出中读出32字节,在上述流程中,读出与高速缓存1行相当的64字节的高速缓存数据,在处理被称为MOB(Move-out Buffer)的从下位级指示的请求时,存储于在伴有数据传送的处理时所使用的数据缓存中。关于高速缓存标签的参照,进行读出参照和写入参照。在S412、S413中,在读出参照中检索到高速缓存标签时,确认高速缓存行是变更型还是除此以外的类型。如果是变更型,则向下位级传送高速缓存行(S415、S416),如果是无效型或共享型,则不向下位级传送高速缓存行(S408、S409)。不传送高速缓存行时的处理顺序(S408、S409)进行与命令高速缓存侧的故障救济处理相同的处理,完成高速缓存行的无效化。在传送高速缓存行时(S415、S416),通知伴随数据传送完成了高速缓存的故障处理的情况,并且,通知作为处理对象的高速缓存行和高速缓存WAY(S415)。接收该通知,在下位级的高速缓存中,将高速缓存标签副本的相应行改写为无效状态,并且,将受理的高速缓存数据写入自身的高速缓存级的高速缓存的数据部中(S416)。
并且,图5示出在命令高速缓存IF-LBS 106中的数据或标签中存在故障时的故障处理,但是,在图5中,在IF-LBS 106的高速缓存数据或高速缓存标签中检测出故障时,进行S501~S503的处理。这些处理与图4的处理S401~S403相同。然后,与高速缓存标签副本的参照结果无关地,对所通知的高速缓存行指示将故障作为原因的无效化,并且,明示其是针对命令高速缓存的处理,直接向故障通知方回送故障高速缓存行和故障WAY信息(S504)。在故障方的高速缓存中,受理将故障作为原因的无效化的指示后,针对接收到命令高速缓存行的无效化通知的高速缓存行和高速缓存WAY,以命令高速缓存流水线来执行将命令高速缓存标签的有效位改写为无效状态的处理流程(S505)。在进行改写处理的命令高速缓存流水线的被称为B循环的流程中,通过将ERROR-STATE标志设置为关闭,由此,完成错误处理,并且再次开始执行后续命令。同时,向下位级的高速缓存通知完成了高速缓存标签的无效化的情况,并且通知无效化的高速缓存行和高速缓存WAY(S506)。接收该通知,在下位级的高速缓存中,将高速缓存标签副本的相应行改写为无效状态(S507)。
并且,图6是示出现有的高速缓存中的存储工作的流程的图。
在针对存储命令的对高速缓存的写入中,对高速缓存标签部和TLB部进行1次参照,对高速缓存数据部进行2次参照,作为操作数高速缓存流水线,执行2次处理流程。
在存储命令的第1次的处理流程中,对高速缓存数据部和高速缓存标签部以及TLB部进行访问。从虚拟地址中取出位14~5并送出到高速缓存数据部,在所参照的下一循环中,在RAM内部进行数据的取出,在下一循环中,从全部高速缓存RAM中合计取出64字节的数据。所取出的数据由32字节的与2个WAY相当的数据构成。从虚拟地址中取出位14~6并送出到高速缓存标签部,在所参照的下一循环中,在RAM内部进行标签地址的取出,在下一循环中,取出与2个WAY相当的物理地址。从虚拟地址中取出位63~13并送出到TLB部,并且,作为表示进行高速缓存的参照的访问空间的信息,送出访问空间编号或访问空间的上下文ID、段表起点等表示访问空间的信息,并进行参照(S601)。
在所参照的下一循环中,对在TLB中登记的虚拟地址和表示访问空间的信息进行比较,取出与一致的登记信息对应的物理地址,在下一循环中,读出1个物理地址,完成从虚拟地址到物理地址的转换。对从标签部读出的与2个WAY相当的物理地址和从TLB部读出的物理地址进行比较,如果一致,则判断为在高速缓存中存在存储对象的数据(S602)。
并且,从高速缓存标签中读出变更型位,如果其表示是变更型,则未共享高速缓存,判断为能够执行存储。并且,为了在以后针对高速缓存的写入中进行使用,将一致的高速缓存信息记录在存储命令处理部中。与此同时,向高速缓存数据部送出表示在高速缓存标签中一致的WAY的信息,选择从高速缓存数据部读出的2WAY的数据的一方。在对高速缓存执行存储时,为了将ECC(Error Correction Code)信息改写为与更新后的数据对应的ECC,将所选择的数据存储在8字节数据边界内的存储对象外的数据保持部或部分ECC保持部中(S603)。另外,关于存储对象外的ECC的处理,在专利文献3和专利文献4中进行了详细叙述。
然后,在S603的处理后,与高速缓存侧的处理流程独立地,操作数高速缓存从运算器受理将存储命令作为存储对象的存储数据,将其存储在存储数据寄存器中(S604)。
然后,完成高速缓存侧的处理流程,并且,如果存储数据针对高速缓存的传送完成,则命令处理装置判断是否能够执行存储命令(S605、S606)。即,确认如下情况:在存储命令之前进行的命令中没有产生命令处理列的分支、是否不需要转移到陷阱处理等其他处理。通过在命令处理装置中的提交堆栈入口(Commit Stack Entry)中,确认存储命令之前进行的命令的处理全部完成的情况,来执行。于是,命令处理装置针对能够执行的存储命令,导通提交信号,指示执行存储(S607)。
在高速缓存侧,为了将受理提交信号的存储命令的数据写入高速缓存,执行存储处理的第2次的流程(S608)。在存储命令的第2次的流程中,仅对高速缓存数据部进行访问。首先,在P循环(Priority循环:决定根据所决定的优选顺序对各请求进行处理的请求)中,从虚拟地址中取出位14~5并送出到高速缓存数据部,并且,通知存储对象WAY和存储对象字节位置(S609)。通过该信息,在高速缓存数据部中,确认作为存储对象的高速缓存RAM和该RAM上的存储对象字节位置,针对对象RAM的对象字节位置,导通WE(Write Enable)信号。与其并行地,取出存储在存储数据寄存器中的存储数据,送出到高速缓存数据部(S610)。
在下一T循环(TLB/TAG循环:对TAG/LBS/TLB进行访问的循环)中,将存储数据存储在存储对象高速缓存RAM的存储对象字节位置(S611)。
然后,在T循环的3循环后的R循环(Result循环:完成流水线处理的循环)中,根据存储数据和存储对象外数据信息生成ECC,向ECC-ARRAY-RAM写入与存储后的数据对应的ECC信息,由此,完成存储命令的处理(S612)。
如上所述,说明了针对存储命令的对高速缓存的写入工作,但是,在伴随存储处理的第1次的处理流程中,在检测出故障的情况下,执行与在图3所示的高速缓存的读出工作中检测出故障时相同的处理,解除故障。
接着,参照图7,说明使现有的高速缓存中包含故障的高速缓存行无效化后、再次开始使用了故障高速缓存行的命令的处理的工作。
当完成故障高速缓存行的无效化、再次开始执行命令时,再次开始的命令所使用的高速缓存行无效化,所以,从高速缓存错误起再次开始命令处理(S701)。再次开始的命令检索高速缓存标签后的结果,检测出高速缓存错误(S702),向下位级的高速缓存送出用于向本高速缓访问入高速缓存错误的高速缓存行的迁入请求,并且,在MIB(Move In Buffer)中保持迁入请求中的物理地址以及登记迁入(MI:Move-In)的高速缓存行的高速缓存上的高速缓存行地址和高速缓存WAY信息(S703)。关于作为迁入对象的高速缓存WAY,如果不存在无效的WAY,则根据LRU(Least Recently Used)进行选择,如果存在无效的WAY,则选择该WAY。错误处理后的再次开始执行命令时,高速缓存行无效化,所以,选择无效的高速缓存WAY。此时,选择在之前的错误处理中无效化的WAY。
在受理了迁入请求的下位级的高速缓存中,检索该高速缓存级的高速缓存标签(S704)。如果高速缓存被命中,则向请求方高速缓存传送从该高速缓存级的高速缓存数据部取出的高速缓存数据(S705)。与其并行地,将请求方的高速缓存标签副本改写为迁入请求地址,并且,对请求方的高速缓存送出针对替换块的指示(S706)。在错误处理后的命令再次开始的情况下,替换块、即在迁入请求前在迁入请求对象的高速缓存行中登记的高速缓存WAY被无效化,所以,对请求方的高速缓存指示不需要替换处理。
在迁入请求方的高速缓存中,受理高速缓存行后,继续进行使用所受理的高速缓存行再次开始的工作,并且,在高速缓存中写入所受理的高速缓存行。在1次的写入中写入32字节,所以,在64字节的1高速缓存行的登记处理中,执行2次处理流程。
首先,在第1次的处理流程中,向高速缓存数据部送出存储在MIB中的高速缓存行和高速缓存WAY信息、以及所受理的高速缓存行的32字节,将其写入高速缓存数据部的RAM(S707)。接着,在第2次的流程中,在高速缓存数据部的RAM中写入剩余的32字节,同时,在高速缓存标签部中写入保持在MIB中的物理地址(S708),并且,导通高速缓存标签的Valid位(S709)。关于引起高速缓存错误并请求了迁入的命令以外的命令,在针对高速缓存进行登记之前,从MIB中取出数据,在登记后,对高速缓存标签部、高速缓存数据部进行访问,取出高速缓存的内容。如果此时再次检测出故障,则再次执行故障处理的一连串的处理流程,消除故障。
如果反复进行规定次数的故障消除处理流程也没有消除故障,则利用称为块删除的手段对故障高速缓存行进行切断。关于块删除处理,在专利文献5中进行了详细叙述。但是,执行块删除处理时,无法避免由于对高速缓存行进行1行切断而引起的性能降低。因此,寻求救济高速缓存的1位固定故障而不丧失高速缓存行的方法。
如上所述,参照图1~图7,说明了没有搭载高速缓存行交替寄存器的现有的高速缓存。
总结上述内容,在现有的高速缓存行交替寄存器的装配方式中,在交替对象地址的比较中使用物理地址,物理地址一致时,读出交替寄存器的数据,但是,物理地址的比较对象位数多,所以,存在地址处理需要花费时间这样的问题。并且,为了得到作为比较对象的物理地址,需要参照TLB或高速缓存标签,所以,在高速缓存的读出中,能够使用高速缓存行交替寄存器,但是,在高速缓存的写入中,TLB、高速缓存标签的参照比较和写入的流程与通常的高速缓存控制流程相差甚远,所以,不得不放弃使用高速缓存行交替寄存器,每次将高速缓存行交替寄存器作为存储对象时,使高速缓存行交替寄存器无效化,从主存储参照起重做等,在存储工作时产生性能降低。
并且,以往,交替寄存器以能够交替的与1行相当的全部位的方式构成。实际上,在1个高速缓存行中的多处产生1位错误的概率很低,寻求以更少数量的寄存器实现交替寄存器的功能,节约电路资源。
因此,在现有的高速缓存中搭载新的高速缓存行交替寄存器,来解决问题。
专利文献1:日本特开昭52-15236号公报
专利文献2:日本特许第3483296号公报
专利文献3:日本特愿2006-999902号
专利文献4:日本特愿2006-353505号
专利文献5:日本特愿2006-999821号
发明内容
本发明解决现有的高速缓存交替寄存器的问题。详细地讲,其目的在于,改善在高速缓存行中产生故障等而进行交替时的处理时间;解决每次将高速缓存行交替寄存器作为存储对象时,使高速缓存行交替寄存器无效化而从主存储器参照起重做等,在存储工作时产生性能降低的情况;以及不像现有的高速缓存行交替寄存器那样以能够交替与1行相当的全部位的方式构成寄存器,而以更少数量的寄存器构成,节约必要的电路资源。
为了解决上述课题,在本发明中,高速缓存装置构成为具有:数据保持部,其具备多个路径,各路径具有多个高速缓存行,在所述高速缓存行中保持数据;交替数据寄存器,其保持所述数据保持部所具有的高速缓存行的1行数据或所述高速缓存行的一部分数据;交替地址寄存器,其保持用于高速缓存访问的索引地址,该索引地址指示在所述数据保持部中产生了故障的故障高速缓存行和所述故障高速缓存行内的故障产生部;交替路径寄存器,其保持所述数据保持部中的、包含所述数据保持部的故障位的路径的路径信息;地址匹配电路,其在对所述数据保持部进行访问的情况下,对在访问中使用的索引地址和所述交替地址寄存器所保持的所述索引地址进行比较;以及路径匹配电路,其在对所述数据保持部进行访问的情况下,对在访问中使用的路径信息和所述交替路径寄存器所保持的路径信息进行比较。
根据本发明,在交替对象地址的比较中,使用指示高速缓存上的故障高速缓存行和包含所述高速缓存行内的故障位的数据块的索引地址,所以,与使用物理地址的情况相比,比较对象的位宽度变小,所以,能够缩短在地址比较中花费的时间,并且,能够在判明TLB和高速缓存标签的参照结果之前,完成交替地址的比较。并且,通过使用索引地址,保持交替数据的交替数据寄存器只要能够保持比与产生了故障的故障高速缓存行的1行相当的长度短的数据即可。这样,交替数据寄存器只要保持数据块的长度的数据即可,所以,能够抑制在高速缓存行交替寄存器中使用的电路尺寸,能够期待电路装配面积的削减和电力消耗量降低的效果。
并且,在现有的高速缓存控制流程中,同时实施TLB和高速缓存标签的参照以及数据的写入,但是,根据本发明的高速缓存行交替寄存器,在存储命令的处理流程与现有的高速缓存控制流程相同的情况下,能够与存储数据对应地,始终将高速缓存行交替寄存器的内容更新为最新的状态,在存储命令中也能够使用交替寄存器,所以,能够避免在存储对象存在于交替寄存器中的情况下产生的性能降低。
附图说明
图1是示出现有的CPU的整体结构的图。
图2是示出现有的高速缓存的结构的图。
图3是说明现有的高速缓存的读出工作的流程图。
图4是说明在现有的OP-LBS中存在故障时的故障处理的流程图。
图5是说明在现有的IF-LBS中存在故障时的故障处理的流程图。
图6是说明现有的高速缓存的存储工作的流程图。
图7是说明在现有的高速缓存中使高速缓存行无效化后、再次开始使用了故障高速缓存行的命令的处理的工作的流程图。
图8是示出本实施方式的CPU的整体结构的图。
图9是示出本实施方式的高速缓存的结构的图。
图10是说明本实施方式的交替地址寄存器的结构的图。
图11是说明本实施方式的高速缓存的读出工作的流程图。
图12是说明在本实施方式的OP-LBS中存在故障时的故障处理的流程图。
图13是说明在本实施方式的IF-LBS中存在故障时的故障处理的流程图。
图14是说明在本实施方式的高速缓存中使高速缓存行无效化后、再次开始使用了故障高速缓存行的命令的处理的工作的流程图。
图15是说明本实施方式的存储工作的流程图。
图16是说明在本实施方式中使交替地址寄存器的位数增加1位的情况的图。
图17是示出本实施方式的交替地址寄存器和交替数据寄存器的物量关系的图。
图18是说明本实施方式的交替地址寄存器更新模式打开时的处理的图。
图19是说明本实施方式的交替地址寄存器更新模式关闭时的处理的图。
具体实施方式
下面,参照附图说明高速缓存行交替寄存器的实施方式的一例。
图8示出本实施方式的CPU的整体结构。
图8的CPU 1的结构与图1所示的CPU 101的结构大致相同。CORE2对应于图1的CORE 102,SU 3对应于图1的SU 103,IU4对应于图1的IU 104,EU 5对应于图1的EU 105,IF-LBS 6对应于图1的IF-LBS 106,OP-LBS 7对应于图1的OP-LBS 107,SX 10对应于图1的SX 108,SYSTEM BUS 11、Memory 12分别对应于图1的SYSTEM BUS 109、Memory 110。
在本实施方式中,新追加IF-CLAR(Cache Line Alternation Register:高速缓存行交替寄存器)8、OP-CLAR 9。
图9示出本实施方式的高速缓存行交替寄存器CLAR的结构,与图2进行比较可知在本实施方式中追加的部分。
利用64字节单位来管理高速缓存RAM 21、22中的高速缓存行,高速缓存RAM利用2个WAY来构成64千字节的容量。每1个WAY的高速缓存行的数量为512行,针对高速缓存行的访问地址由9位构成。在高速缓存数据RAM中,采用8个读出数据宽度为8字节、行数为1024的RAM。
本实施方式的高速缓存行交替寄存器由3种寄存器和2种匹配电路构成。第1寄存器是交替地址寄存器26(CLAAR:Cache Line AlternationAddress Register),其登记并保持用于指示1位固定故障高速缓存行及其错误位处存在于高速缓存上的何处的索引地址。第2寄存器是交替WAY寄存器27,其登记并保持1位固定故障高速缓存行的WAY信息。第3寄存器是交替数据寄存器25(CLADR:Cache Line Alternation DataRegister),其登记并保持RAM固定故障高速缓存行的半行数据。并且,第1匹配电路是对索引地址进行比较的地址匹配电路28。第2匹配电路是对WAY进行比较的WAY匹配电路29。
对数据信号线30输出WAY 0(21)的输出数据,对数据信号线31输出WAY 1(22)的输出数据,对信号线32输出由地址匹配电路28比较后的结果即CLAAR-MCH信号,对信号线33输出由WAY匹配电路29比较后的结果即WAY-MCH信号,对数据线34输出交替数据寄存器25的输出数据,对信号线35输出WAY 0CLAAR-MCH信号,对信号线36输出WAY 1CLAAR-MCH信号。37是WAY 0侧的高速缓存RAM(21)和交替数据寄存器25的选择电路,38是WAY 1侧的高速缓存RAM(22)和交替数据寄存器25的选择电路。对数据线39输出向命令处理装置或运算装置送出的数据。
图10示出交替地址寄存器26的说明。在本实施方式中,为了指示产生故障的错误位处存在于高速缓存上的何处,将高速缓存分割为由块0和块1构成的两个块。即,索引地址由高速缓存行地址(访问地址)用的9位和用于表示故障块的1位的合计10位构成。因此,交替地址寄存器26保持表示产生故障的高速缓存行的访问地址用的9位(从虚拟地址中取出位14~6)和表示在哪个块产生了故障的1位(从虚拟地址中取出位5)。而且,交替数据寄存器25只要能够保持各块的尺寸即32字节的数据即可。
下面,使用流程图详细说明图9、图10所示的结构的高速缓存的工作。
首先,图11示出说明本实施方式的高速缓存的读出工作的流程图。在高速缓存的读出中,如以往那样,参照高速缓存数据部、高速缓存标签部和TLB部,同时对交替地址寄存器进行访问。图11中的S1101~S1112的处理进行与示出现有的高速缓存读出工作的图3的S301~S312相同的处理。
在本实施方式中,在高速缓存行交替寄存器中进行S1120~S1125所示的处理。
首先,在参照高速缓存数据部的循环中,分别将存储在交替地址寄存器26中的索引地址和在高速缓存数据部的参照中使用的高速缓存的索引地址、以及高速缓存WAY与交替地址寄存器26所保持的内容和交替WAY寄存器27所保持的内容进行比较(S1120)。然后,取出CLAAR-WAY信号和CLADR数据(S1121)。向全部高速缓存数据RAM送出表示比较结果的CLAAR-MCH信号、表示存储在交替WAY寄存器27中的交替对象WAY的CLAAR-WAY信号、以及交替数据寄存器25的内容(S1122)。在下一循环中,在S1123中,如果CLAAR-MCH信号和WAY-MCH信号导通,则针对从全部高速缓存RAM读出的64字节的数据,将CLARR-WAY信号所示的WAY的32字节数据替换为交替数据寄存器25的内容,作为高速缓存读出数据(S1124)。在S1123中,如果CLAAR-MCH信号截止,则不对从全部高速缓存RAM读出的64字节数据实施操作(S1125),直接使用从高速缓存读出的数据。
此后,进行与现有的高速缓存装置相同的工作,即,根据标签匹配结果选择高速缓存WAY的数据的一方,完成高速缓存的读出。这样,高速缓存行交替寄存器的功能在没有产生故障时也是有效的。
接着,图12、图13分别示出说明在本实施方式的OP-LBS和IF-LBS中存在故障时的故障处理的流程图。在存在故障时的故障处理中,进行与以往的处理相同的处理,但是,在图12中追加S1217、S1218、S1219、S1220的处理,在图13中追加S1308、S1309的处理,除此之外的处理相同。图12的S1201~S1216的处理对应于图4的S401~S416的处理,图13的S1301~S1307的处理对应于图5的S501~S507的处理。
在高速缓存数据的RAM中检测出故障时,即,CLAAR-MCH信号没有导通而检测出高速缓存数据部的故障时,表示在从高速缓存数据RAM读出的数据中检测出故障。此时,为了使以往的故障处理流程中的故障高速缓存行无效化,在将高速缓存标签的有效位改写为无效状态的流水线处理的R循环的2循环后的定时,在交替地址寄存器26和交替WAY寄存器27中写入无效化对象高速缓存索引和高速缓存WAY(S1218、S1220、S1309)。
通过以上的工作,在高速缓存行交替寄存器中登记故障高速缓存行及其WAY,所以,在参照故障的高速缓存行时,参照高速缓存行交替数据寄存器的内容,无法使用故障的高速缓存RAM的内容,所以,能够隐蔽高速缓存RAM的故障,实现对故障的恢复。
另外,S1217、S1219、S1308的与模式有关的说明在后面叙述。
接着,图14示出使高速缓存行无效化后、再次开始使用了故障高速缓存行的命令的处理的工作。关于再次开始高速缓存行的无效化后的故障高速缓存行的工作,也仍进行与以往的处理相同的处理。即,图14的S1401~S1409的处理对应于图7的S701~S709。而且,追加了图14的S1410~S1419所示的由高速缓存行交替寄存器进行的处理。
在完成故障高速缓存行的无效化、并在交替地址寄存器26中登记了故障高速缓存索引后,再次开始执行命令时,将再次开始的命令所使用的高速缓存行登记在交替地址寄存器26中。该高速缓存行处于引起高速缓存错误的状态,所以,如以往那样请求高速缓存行的迁入。然后,高速缓存行到达时,对高速缓存数据部指示高速缓存索引和高速缓存WAY,并向高速缓存数据部送出所迁入的高速缓存行,指示高速缓存行的登记。
在高速缓存数据部中,在受理了高速缓存行的登记指示的下一循环中,在与所受理的高速缓存索引和高速缓存WAY对应的高速缓存数据RAM中写入迁入数据,并且,分别将写入对象的高速缓存索引和高速缓存WAY与交替地址寄存器26所保持的内容和交替WAY寄存器27所保持的内容进行比较(S1410、S1411)。在S1412中,如果高速缓存索引地址和高速缓存WAY双方一致,则在交替数据寄存器25中也写入迁入数据(S1413)。在S1412中不一致的情况下,不写入任何数据(S1414)。这样,即使写入高速缓存的数据故障,也能够在交替数据寄存器25中预先准备该数据。因此,在存在读出故障高速缓存行等的参照的情况下,参照存储在高速缓存行交替寄存器中的数据,所以,能够取出该数据的没有故障的状态的数据。
另外,S1415~S1419的处理与S1410~S1414的处理相同。
接着,参照图15说明本实施方式的针对存储命令的对高速缓存的写入。在针对存储命令的对高速缓存的写入处理中,如以往那样对高速缓存标签部和TLB部进行1次参照,对高速缓存数据部进行2次参照。并且,图15的S1501~S1512的处理进行与图6所示的现有的针对存储命令的对高速缓存的写入处理的S601~S612相同的处理。
在图15中,首先,在存储命令的第1次的处理流程中,通过交替地址寄存器26和交替数据寄存器25,救济高速缓存数据的故障(S1501~S1507)。
在存储命令的第2次的处理流程中,在P循环中,对高速缓存数据部指示高速缓存索引地址、存储对象WAY以及存储对象字节位置(S1509),并且,针对存储对象RAM的存储对象字节位置导通WE(WriteEnable)信号(S1513)。与其并行地,取出存储在存储数据寄存器中的存储数据,送出到高速缓存数据部(S1510)。在下一循环的T循环中,将存储数据存储在存储对象高速缓存RAM的存储对象字节位置,并且,将索引地址和存储对象WAY与交替地址寄存器26和交替WAY寄存器27的内容进行比较(S1514)。在S1515中比较的结果为与交替地址寄存器26和交替WAY寄存器27的内容一致的情况下,根据表示存储对象字节位置的信息,在交替数据寄存器25的存储对象位置写入存储数据(S1516)。如果在S1515中比较的结果不一致,则不在交替数据寄存器25中写入任何数据(S1517),结束处理。在此后的R循环中,如以往那样执行ECC处理(S1518)。这样,在存储命令的执行中,也能够将交替数据寄存器25的内容更新为高速缓存的最新状态,所以,在后续命令参照作为高速缓存行交替寄存器的交替对象的高速缓存行时,也能够从高速缓存行交替数据寄存器中取出与最新状态的高速缓存数据对应的数据,所以,从高速缓存的故障解脱出来。
因此,不仅是加载命令,在存储命令中也能够使用高速缓存行交替寄存器,所以,能够避免在存储对象存在于高速缓存行交替寄存器中的情况下产生的性能降低。
如上所述说明了本实施方式,但是,在上述说明中,如图10所示构成交替地址寄存器26所保持的位数。
即,保持索引地址的交替地址寄存器26构成为,由表示故障高速缓存行的访问地址的9位和表示故障块的1位的合计10位构成。
这里,使索引地址增加1位,用于表示高速缓存的故障块。由此,能够使对高速缓存进行分割的块数增加2倍,进而,使进行高速缓存数据的替换的数据尺寸为二分之一,所以,能够使交替数据寄存器25的尺寸也成为二分之一。
同样,1位1位地增加索引地址时,交替数据寄存器25的尺寸能够减半。图16图示了该情况。
首先,在图16(a)中,示出交替地址寄存器26所保持的位数为11位的情况。保持用于表示故障高速缓存行的行地址即访问地址的9位和用于表示故障块的2位的合计11位。由此,高速缓存块数为4块,进行高速缓存数据的替换的数据尺寸为图10所示的32字节的一半即16字节。
同样,在图16(b)中,示出交替地址寄存器26所保持的位数为12位、即用于表示访问地址的9位和用于表示故障块的3位的合计12位的情况。由此,高速缓存块数为8块,能够使进行高速缓存数据的替换的数据尺寸为图16(a)的一半即8字节。
在图16(c)中,同样地,交替地址寄存器26所保持的位数增加1位时,进行高速缓存数据的替换的数据尺寸从图16(b)所示的尺寸能够减半。
图17总结该情况示出交替地址寄存器26的位数和交替数据寄存器的物量关系。可知,交替地址寄存器26的位数增加1位时,交替数据的尺寸减半。
并且,在本实施方式中,能够在高速缓存行的无效化时进行交替地址寄存器26的更新。因此,设置在高速缓存替换(交替)产生时进行交替地址寄存器26的更新的模式。该模式打开时,在使交替对象块无效化的替换处理的第2次的流程中,利用交替对象的高速缓存索引来更新交替地址寄存器26。这样,在通常工作中,也能够频繁地更新交替地址寄存器26。与仅在固定故障产生时更新交替地址寄存器26的方式相比,交替地址寄存器26的更新频度和更新定时的产生模式增加,所以,能够容易地进行与交替地址寄存器26的控制有关的设计错误的检测。另外,在上述图12的S1217、S1219、图13的S1308中,判断是否是交替地址寄存器26更新模式。
并且,高速缓存数据部在CPU芯片出厂时,需要进行全部高速缓冲存储单元的测试。进行高速缓冲存储单元的测试时,在替换中进行交替地址寄存器26的更新,由此,能够避免产生由交替地址寄存器功能所保护的从基于测试的故障检查中遗漏的高速缓冲存储单元。
例如,在测试的开始状态下,交替地址寄存器26成为地址“0WAY0”时,在未由高速缓存行交替寄存器引起故障的情况下,地址0、WAY 0成为交替对象。由此,利用高速缓存行交替寄存器的内容替换地址0、块0、WAY 0的高速缓存RAM的数据并进行读出(参照图18的交替地址寄存器更新模式关闭的情况)。这里,当交替地址寄存器更新模式打开时,每次进行替换(交替)时,利用交替对象的高速缓存索引和高速缓存WAY来更新交替地址寄存器26,所以,能够避免地址0、WAY 0的高速缓存行从故障检查中遗漏的情况(参照图19的交替地址寄存器更新模式打开的情况)。
如上所述,详细说明了本实施方式,但是,本发明不限于上述实施方式,只要能够实现与上述各结构等同的功能,则当然可以是任意结构。
根据本发明,在交替对象地址的比较中,使用指示高速缓存上的故障高速缓存行和包含所述高速缓存行内的故障位在内的数据块的索引地址,所以,与使用物理地址的情况相比,比较对象的位宽度变小,所以,能够缩短在地址比较中花费的时间,并且,能够在判明TLB和高速缓存标签的参照结果之前,完成交替地址的比较。并且,通过使用索引地址,保持交替数据的交替数据寄存器只要能够保持比产生了故障的故障高速缓存行的1行长度短的数据即可。这样,交替数据寄存器只要保持数据块的长度的数据即可,所以,能够抑制在高速缓存行交替寄存器中使用的电路尺寸,能够期待电路装配面积的削减和电力消耗量降低的效果。
并且,在现有的高速缓存控制流程中,同时实施TLB和高速缓存标签的参照以及数据的写入,但是,根据本发明的高速缓存行交替寄存器,存储命令的处理流程与现有的高速缓存控制流程相同,能够与存储数据对应地,始终将高速缓存行交替寄存器的内容更新为最新的状态,在存储命令中也能够使用交替寄存器,所以,能够避免在存储对象存在于交替寄存器中的情况下产生的性能降低。
Claims (20)
1.一种高速缓存装置,其特征在于,
该高速缓存装置具有:
数据保持部,其具备多个路径,各路径具有多个高速缓存行,在所述高速缓存行中保持数据;
交替数据寄存器,其保持所述数据保持部所具有的高速缓存行的1行数据或所述高速缓存行的一部分数据;
交替地址寄存器,其保持用于高速缓存访问的索引地址,该索引地址指示在所述数据保持部中产生了故障的故障高速缓存行和所述故障高速缓存行内的故障产生部;
交替路径寄存器,其保持所述数据保持部中的、包含所述数据保持部的故障位的路径的路径信息;
地址匹配电路,其在对所述数据保持部进行访问的情况下,对在访问中使用的索引地址和所述交替地址寄存器所保持的所述索引地址进行比较;以及
路径匹配电路,其在对所述数据保持部进行访问的情况下,对在访问中使用的路径信息和所述交替路径寄存器所保持的路径信息进行比较。
2.根据权利要求1所述的高速缓存装置,其特征在于,
在对所述数据保持部进行读出参照访问时,在所述地址匹配电路的比较结果是一致的情况下,将从与所述交替路径寄存器所保持的路径信息对应的路径中读出的数据替换为所述交替数据寄存器的内容,作为从所述数据保持部读出的读出数据。
3.根据权利要求1所述的高速缓存装置,其特征在于,
在对所述数据保持部进行写入参照访问时,在所述地址匹配电路和所述路径匹配电路的比较结果都是一致的情况下,在所述数据保持部的写入对象路径中写入数据,并且在所述交替数据寄存器中写入数据,使该交替数据寄存器的内容符合数据保持部的最新状态。
4.根据权利要求1~3中的任一项所述的高速缓存装置,其特征在于,
在所述数据保持部上检测出故障位的情况下,根据需要对下级的高速缓存或主存储器回写包含该故障位的高速缓存行中所保持的数据,并且,使该高速缓存行无效化,在无效化完成时,将作为无效化对象的高速缓存行的地址保持在所述交替地址寄存器中,将作为无效化对象的高速缓存路径保持在所述交替路径寄存器中。
5.根据权利要求1所述的高速缓存装置,其特征在于,
在高速缓存装置的工作模式是在产生高速缓存替换时进行所述交替地址寄存器的更新的高速缓存替换模式的情况下,利用高速缓存替换对象的高速缓存索引地址和高速缓存路径,更新所述交替地址寄存器和所述交替路径寄存器。
6.根据权利要求5所述的高速缓存装置,其特征在于,
不在所述数据保持部中产生了故障位时,而在通常工作中,将所述工作模式切换为所述高速缓存替换模式,进行所述交替地址寄存器的工作检查和高速缓存位的检查。
7.根据权利要求1~3、5、6中的任一项所述的高速缓存装置,其特征在于,
所述索引地址中的表示所述高速缓存行内的包含故障位的数据块的位数每增加1位,所述交替数据寄存器的尺寸能够减半。
8.一种运算处理装置,该运算处理装置具有高速缓存装置和对保持在所述高速缓存装置中的数据进行运算的运算处理部,该运算处理装置的特征在于,
该运算处理装置具有:
数据保持部,其具备多个路径,各路径具有多个高速缓存行,在所述高速缓存行中保持数据;
交替数据寄存器,其保持所述数据保持部所具有的高速缓存行的1行数据或所述高速缓存行的一部分数据;
交替地址寄存器,其保持用于高速缓存访问的索引地址,该索引地址指示在所述数据保持部中产生了故障的故障高速缓存行和所述故障高速缓存行内的故障产生部;
交替路径寄存器,其保持所述数据保持部中的、包含所述数据保持部的故障位的路径的路径信息;
地址匹配电路,其在对所述数据保持部进行访问的情况下,对在访问中使用的索引地址和所述交替地址寄存器所保持的所述索引地址进行比较;以及
路径匹配电路,其在对所述数据保持部进行访问的情况下,对在访问中使用的路径信息和所述交替路径寄存器所保持的路径信息进行比较。
9.根据权利要求8所述的运算处理装置,其特征在于,
在对所述数据保持部进行读出参照访问时,在所述地址匹配电路的比较结果是一致的情况下,将从与所述交替路径寄存器所保持的路径信息对应的路径中读出的数据替换为所述交替数据寄存器的内容,作为从所述数据保持部读出的读出数据。
10.根据权利要求8所述的运算处理装置,其特征在于,
在对所述数据保持部进行写入参照访问时,在所述地址匹配电路和所述路径匹配电路的比较结果都是一致的情况下,在所述数据保持部的写入对象路径中写入数据,并且在所述交替数据寄存器中写入数据,使该交替数据寄存器的内容符合数据保持部的最新状态。
11.根据权利要求8~10中的任一项所述的运算处理装置,其特征在于,
在所述数据保持部上检测出故障位的情况下,根据需要对下级的高速缓存或主存储器回写包含该故障位的高速缓存行中所保持的数据,并且,使该高速缓存行无效化,在无效化完成时,将作为无效化对象的高速缓存行的地址保持在所述交替地址寄存器中,将作为无效化对象的高速缓存路径保持在所述交替路径寄存器中。
12.根据权利要求8所述的运算处理装置,其特征在于,
在所述高速缓存装置的工作模式是在产生高速缓存替换时进行所述交替地址寄存器的更新的高速缓存替换模式的情况下,利用高速缓存替换对象的高速缓存索引地址和高速缓存路径,更新所述交替地址寄存器和所述交替路径寄存器。
13.根据权利要求12所述的运算处理装置,其特征在于,
不在所述数据保持部中产生了故障位时,而在通常工作中,将所述工作模式切换为所述高速缓存替换模式,进行所述交替地址寄存器的工作检查和高速缓存位的检查。
14.根据权利要求8~10、12、13中的任一项所述的运算处理装置,其特征在于,
所述索引地址中的表示所述高速缓存行内的包含故障位的数据块的位数每增加1位,所述交替数据寄存器的尺寸能够减半。
15.一种高速缓存的控制方法,该高速缓存具有:数据保持部,其具备多个路径,各路径具有多个高速缓存行;进行地址比较的地址匹配电路;进行所述路径的比较的路径匹配电路;以及控制高速缓存行的交替的第1~第3寄存器,该控制方法的特征在于,
该控制方法包括如下步骤:
在所述数据保持部的所述高速缓存行中保持数据;
在所述第1寄存器中保持所述数据保持部所具有的高速缓存行的1行数据或所述高速缓存行的一部分数据;
在所述第2寄存器中保持用于高速缓存访问的索引地址,该索引地址指示在所述数据保持部中产生了故障的故障高速缓存行和所述故障高速缓存行内的故障产生部;
在所述第3寄存器中保持所述数据保持部中的、包含所述数据保持部的故障位的路径的路径信息;
在对所述数据保持部进行访问的情况下,通过所述地址匹配电路,对在访问中使用的索引地址和所述第2寄存器所保持的所述索引地址进行比较;以及
在对所述数据保持部进行访问的情况下,通过所述路径匹配电路,对在访问中使用的路径信息和所述第3寄存器所保持的信息进行比较。
16.根据权利要求15所述的控制方法,其特征在于,
所述控制方法包括如下步骤:在对所述数据保持部进行读出参照访问时,在所述地址匹配电路的比较结果是一致的情况下,将从与所述第3寄存器所保持的路径信息对应的路径中读出的数据替换为所述第1寄存器的内容,作为从所述数据保持部读出的读出数据。
17.根据权利要求15所述的控制方法,其特征在于,
所述控制方法包括如下步骤:在对所述数据保持部进行写入参照访问时,在所述地址匹配电路和所述路径匹配电路的比较结果都是一致的情况下,在所述数据保持部的写入对象路径中写入数据,并且在所述第1寄存器中写入数据,使所述第1寄存器的内容符合数据保持部的最新状态。
18.根据权利要求15~17中的任一项所述的控制方法,其特征在于,
所述控制方法包括如下步骤:在所述数据保持部上检测出故障位的情况下,根据需要对下级的高速缓存或主存储器回写包含该故障位的高速缓存行中所保持的数据,并且,使该高速缓存行无效化,在无效化完成时,将作为无效化对象的高速缓存行的地址保持在所述第2寄存器中,将作为无效化对象的高速缓存路径保持在所述第3寄存器中。
19.根据权利要求15所述的控制方法,其特征在于,
所述控制方法包括如下步骤:在所述高速缓存的工作模式是在产生高速缓存替换时进行所述第2寄存器的更新的高速缓存替换模式的情况下,利用高速缓存替换对象的高速缓存索引地址和高速缓存路径,更新所述第2寄存器和所述第3寄存器。
20.根据权利要求19所述的控制方法,其特征在于,
所述控制方法包括如下步骤:不在所述数据保持部中产生了故障位时,而在通常工作中,将所述工作模式切换为所述高速缓存替换模式,进行所述第2寄存器的工作检查和高速缓存位的检查。
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
PCT/JP2007/000663 WO2008155805A1 (ja) | 2007-06-20 | 2007-06-20 | キャッシュメモリ装置、演算処理装置及びその制御方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN101689141A CN101689141A (zh) | 2010-03-31 |
CN101689141B true CN101689141B (zh) | 2012-10-17 |
Family
ID=40155970
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN200780053356XA Expired - Fee Related CN101689141B (zh) | 2007-06-20 | 2007-06-20 | 高速缓存装置、运算处理装置及其控制方法 |
Country Status (6)
Country | Link |
---|---|
US (1) | US8700947B2 (zh) |
EP (1) | EP2159705B1 (zh) |
JP (1) | JP4595029B2 (zh) |
KR (1) | KR101077513B1 (zh) |
CN (1) | CN101689141B (zh) |
WO (1) | WO2008155805A1 (zh) |
Families Citing this family (21)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2011065503A (ja) * | 2009-09-18 | 2011-03-31 | Renesas Electronics Corp | キャッシュメモリシステム及びキャッシュメモリのway予測の制御方法 |
JP5650441B2 (ja) * | 2010-06-07 | 2015-01-07 | キヤノン株式会社 | 演算装置、キャッシュ装置、その制御方法及びコンピュータプログラム |
WO2012137339A1 (ja) * | 2011-04-07 | 2012-10-11 | 富士通株式会社 | 情報処理装置、並列計算機システムおよび演算処理装置の制御方法 |
JP2013061887A (ja) | 2011-09-14 | 2013-04-04 | Fujitsu Ltd | 故障位置判定回路、記憶装置、および情報処理装置 |
US8839025B2 (en) | 2011-09-30 | 2014-09-16 | Oracle International Corporation | Systems and methods for retiring and unretiring cache lines |
JP5565425B2 (ja) * | 2012-02-29 | 2014-08-06 | 富士通株式会社 | 演算装置、情報処理装置および演算方法 |
US9075727B2 (en) * | 2012-06-14 | 2015-07-07 | International Business Machines Corporation | Reducing penalties for cache accessing operations |
US9135126B2 (en) | 2013-02-07 | 2015-09-15 | International Business Machines Corporation | Multi-core re-initialization failure control system |
US9043668B2 (en) | 2013-02-08 | 2015-05-26 | Seagate Technology Llc | Using ECC data for write deduplication processing |
US9262263B2 (en) * | 2013-11-25 | 2016-02-16 | Qualcomm Incorporated | Bit recovery system |
JP2016081169A (ja) * | 2014-10-14 | 2016-05-16 | 富士通株式会社 | 情報処理装置、データ処理システム、データ処理管理プログラム、及び、データ処理管理方法 |
US9703661B2 (en) | 2015-02-05 | 2017-07-11 | International Business Machines Corporation | Eliminate corrupted portions of cache during runtime |
US10185619B2 (en) * | 2016-03-31 | 2019-01-22 | Intel Corporation | Handling of error prone cache line slots of memory side cache of multi-level system memory |
JP6770230B2 (ja) * | 2016-09-30 | 2020-10-14 | 富士通株式会社 | 演算処理装置、情報処理装置及び演算処理装置の制御方法 |
US10437729B2 (en) | 2017-04-19 | 2019-10-08 | International Business Machines Corporation | Non-disruptive clearing of varying address ranges from cache |
JP6947974B2 (ja) | 2017-09-13 | 2021-10-13 | 富士通株式会社 | 演算処理装置及び演算処理装置の制御方法 |
JP7139719B2 (ja) * | 2018-06-26 | 2022-09-21 | 富士通株式会社 | 情報処理装置、演算処理装置及び情報処理装置の制御方法 |
KR20200081045A (ko) * | 2018-12-27 | 2020-07-07 | 삼성전자주식회사 | 3차원 적층 메모리 장치 및 그 동작 방법 |
US11042483B2 (en) | 2019-04-26 | 2021-06-22 | International Business Machines Corporation | Efficient eviction of whole set associated cache or selected range of addresses |
CN112289353B (zh) * | 2019-07-25 | 2024-03-12 | 上海磁宇信息科技有限公司 | 一种优化的具有ecc功能的mram系统及其操作方法 |
US11966328B2 (en) | 2020-12-18 | 2024-04-23 | Advanced Micro Devices, Inc. | Near-memory determination of registers |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5751989A (en) * | 1993-09-30 | 1998-05-12 | Apple Computer, Inc. | System for decentralizing backing store control of virtual memory in a computer |
CN1221150A (zh) * | 1997-10-08 | 1999-06-30 | 戴尔美国公司 | 模拟计算机存储装置的方法 |
Family Cites Families (29)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS5215236A (en) * | 1975-07-25 | 1977-02-04 | Nec Corp | Error block unit |
JPS60123949A (ja) * | 1983-12-09 | 1985-07-02 | Hitachi Ltd | 記憶装置制御方式 |
JPH01292454A (ja) * | 1988-05-19 | 1989-11-24 | Mitsubishi Electric Corp | キャッシュ制御方式 |
JPH0719228B2 (ja) * | 1988-09-30 | 1995-03-06 | 株式会社日立製作所 | バッファメモリ装置 |
JPH04239936A (ja) * | 1991-01-24 | 1992-08-27 | Nec Corp | キャッシュ制御装置 |
JP2997370B2 (ja) * | 1992-10-14 | 2000-01-11 | 三菱電機株式会社 | キャッシュメモリ |
JP3483296B2 (ja) * | 1994-04-28 | 2004-01-06 | 富士通株式会社 | 情報処理装置 |
US6006311A (en) * | 1997-04-14 | 1999-12-21 | Internatinal Business Machines Corporation | Dynamic updating of repair mask used for cache defect avoidance |
US6223248B1 (en) * | 1997-04-29 | 2001-04-24 | Texas Instruments Incorporated | Circuits systems and methods for re-mapping memory row redundancy during two cycle cache access |
JPH11282764A (ja) * | 1998-03-30 | 1999-10-15 | Oki Electric Ind Co Ltd | メモリエラー箇所切り離し回路 |
US6289438B1 (en) * | 1998-07-29 | 2001-09-11 | Kabushiki Kaisha Toshiba | Microprocessor cache redundancy scheme using store buffer |
JP2001147859A (ja) * | 1999-09-08 | 2001-05-29 | Fujitsu Ltd | キャッシュメモリ装置およびキャッシュメモリ制御プログラムを記録したコンピュータ読み取り可能な記録媒体 |
US6708294B1 (en) * | 1999-09-08 | 2004-03-16 | Fujitsu Limited | Cache memory apparatus and computer readable recording medium on which a program for controlling a cache memory is recorded |
US6339813B1 (en) * | 2000-01-07 | 2002-01-15 | International Business Machines Corporation | Memory system for permitting simultaneous processor access to a cache line and sub-cache line sectors fill and writeback to a system memory |
US6904552B2 (en) * | 2001-03-15 | 2005-06-07 | Micron Technolgy, Inc. | Circuit and method for test and repair |
US6918071B2 (en) * | 2001-04-20 | 2005-07-12 | Sun Microsystems, Inc. | Yield improvement through probe-based cache size reduction |
JP2003203010A (ja) * | 2002-01-07 | 2003-07-18 | Nec Computertechno Ltd | L2キャッシュメモリ |
US20030191885A1 (en) * | 2002-04-09 | 2003-10-09 | Chandra Thimmanagari | On-chip cache redundancy technique |
US6922798B2 (en) * | 2002-07-31 | 2005-07-26 | Intel Corporation | Apparatus and methods for providing enhanced redundancy for an on-die cache |
US7240277B2 (en) * | 2003-09-26 | 2007-07-03 | Texas Instruments Incorporated | Memory error detection reporting |
JP4239936B2 (ja) | 2004-09-16 | 2009-03-18 | 富士電機リテイルシステムズ株式会社 | 硬貨処理装置および金銭処理装置 |
JP4186223B2 (ja) | 2004-09-28 | 2008-11-26 | 三菱マテリアル株式会社 | 光記録媒体用反射膜および半透明反射膜並びにこれら反射膜を形成するためのAg合金スパッタリングターゲット |
US20060080572A1 (en) * | 2004-09-30 | 2006-04-13 | Fong John Y | Set associative repair cache systems and methods |
JP2006099902A (ja) | 2004-09-30 | 2006-04-13 | Konica Minolta Opto Inc | 光記録/再生用光学装置 |
JP2006343851A (ja) * | 2005-06-07 | 2006-12-21 | Toshiba Corp | キャッシュメモリおよびマイクロプロセッサ |
WO2007094045A1 (ja) * | 2006-02-14 | 2007-08-23 | Fujitsu Limited | 読み出し処理装置および読み出し方法 |
WO2007097026A1 (ja) * | 2006-02-27 | 2007-08-30 | Fujitsu Limited | キャッシュ制御装置およびキャッシュ制御プログラム |
JP5010271B2 (ja) | 2006-12-27 | 2012-08-29 | 富士通株式会社 | エラー訂正コード生成方法、およびメモリ制御装置 |
JP5215236B2 (ja) | 2009-05-21 | 2013-06-19 | 株式会社デンソー | 車線境界線種別推定装置及び車線境界線種別推定方法 |
-
2007
- 2007-06-20 CN CN200780053356XA patent/CN101689141B/zh not_active Expired - Fee Related
- 2007-06-20 EP EP07790189.0A patent/EP2159705B1/en not_active Not-in-force
- 2007-06-20 JP JP2009520146A patent/JP4595029B2/ja active Active
- 2007-06-20 KR KR1020097025901A patent/KR101077513B1/ko not_active IP Right Cessation
- 2007-06-20 WO PCT/JP2007/000663 patent/WO2008155805A1/ja active Application Filing
-
2009
- 2009-12-11 US US12/636,619 patent/US8700947B2/en active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5751989A (en) * | 1993-09-30 | 1998-05-12 | Apple Computer, Inc. | System for decentralizing backing store control of virtual memory in a computer |
CN1221150A (zh) * | 1997-10-08 | 1999-06-30 | 戴尔美国公司 | 模拟计算机存储装置的方法 |
Also Published As
Publication number | Publication date |
---|---|
US20100088550A1 (en) | 2010-04-08 |
EP2159705A4 (en) | 2012-07-25 |
US8700947B2 (en) | 2014-04-15 |
KR101077513B1 (ko) | 2011-10-28 |
WO2008155805A1 (ja) | 2008-12-24 |
CN101689141A (zh) | 2010-03-31 |
JPWO2008155805A1 (ja) | 2010-08-26 |
KR20100006588A (ko) | 2010-01-19 |
EP2159705B1 (en) | 2016-03-02 |
JP4595029B2 (ja) | 2010-12-08 |
EP2159705A1 (en) | 2010-03-03 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN101689141B (zh) | 高速缓存装置、运算处理装置及其控制方法 | |
US5832250A (en) | Multi set cache structure having parity RAMs holding parity bits for tag data and for status data utilizing prediction circuitry that predicts and generates the needed parity bits | |
CA1151293A (en) | Cache memory organization | |
EP0036110B1 (en) | Cache addressing mechanism | |
US6470437B1 (en) | Updating and invalidating store data and removing stale cache lines in a prevalidated tag cache design | |
CN101714106B (zh) | 在低电压操作期间禁用高速缓存部分 | |
US5091851A (en) | Fast multiple-word accesses from a multi-way set-associative cache memory | |
CN100390756C (zh) | 一种将储存数据重新导向的虚拟集合高速缓存 | |
EP0709770A2 (en) | Apparatus to control load/store instructions | |
US5617347A (en) | Cache memory system and method thereof for storing a staged memory item and a cache tag within a single cache array structure | |
KR19990077432A (ko) | 연관성을이용한가변캐시크기에대한고성능캐시디렉토리어드레싱스킴 | |
CN103365627A (zh) | 执行单元内的数据转发系统和方法 | |
JPH09288578A (ja) | 命令取り出し方法および装置 | |
US9720847B2 (en) | Least recently used (LRU) cache replacement implementation using a FIFO storing indications of whether a way of the cache was most recently accessed | |
US6463514B1 (en) | Method to arbitrate for a cache block | |
EP2866148B1 (en) | Storage system having tag storage device with multiple tag entries associated with same data storage line for data recycling and related tag storage device | |
US5802565A (en) | Speed optimal bit ordering in a cache memory | |
US6993638B2 (en) | Memory access device and method using address translation history table | |
KR19990006485A (ko) | 캐쉬 어드레스 발생 방법 | |
US6675266B2 (en) | Circuit and method for protecting 1-hot and 2-hot vector tags in high performance microprocessors | |
US6212616B1 (en) | Even/odd cache directory mechanism | |
KR19990006478A (ko) | 멀티 사이클 데이터 캐쉬 판독을 위한 데이터 레지스터 | |
US6574698B1 (en) | Method and system for accessing a cache memory within a data processing system | |
US8595465B1 (en) | Virtual address to physical address translation using prediction logic | |
US6134699A (en) | Method and apparatus for detecting virtual address parity error for a translation lookaside buffer |
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 |
Granted publication date: 20121017 Termination date: 20170620 |
|
CF01 | Termination of patent right due to non-payment of annual fee |