CN102138129A - 用于数据处理***中的统一高速缓存的错误检测方案 - Google Patents
用于数据处理***中的统一高速缓存的错误检测方案 Download PDFInfo
- Publication number
- CN102138129A CN102138129A CN2009801337414A CN200980133741A CN102138129A CN 102138129 A CN102138129 A CN 102138129A CN 2009801337414 A CN2009801337414 A CN 2009801337414A CN 200980133741 A CN200980133741 A CN 200980133741A CN 102138129 A CN102138129 A CN 102138129A
- Authority
- CN
- China
- Prior art keywords
- information
- error
- detecting
- road
- type
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- 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/12—Replacement control
- G06F12/121—Replacement control using replacement algorithms
- G06F12/126—Replacement control using replacement algorithms with special data handling, e.g. priority of data or instructions, handling errors or pinning
-
- 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
- G06F11/08—Error detection or correction by redundancy in data representation, e.g. by using checking codes
-
- 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
- G06F11/08—Error detection or correction by redundancy in data representation, e.g. by using checking codes
- G06F11/10—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
- G06F11/1008—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices
- G06F11/1064—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices in cache or content addressable memories
-
- 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
- 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/0844—Multiple simultaneous or quasi-simultaneous cache accessing
- G06F12/0846—Cache with multiple tag or data arrays being simultaneously accessible
- G06F12/0848—Partitioned cache, e.g. separate instruction and operand caches
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/14—Handling requests for interconnection or transfer
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Quality & Reliability (AREA)
- Memory System Of A Hierarchy Structure (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
Abstract
在数据处理***(10)中,处理电路(30)执行多个数据处理指令。统一高速缓存存储器(21)存储由处理电路处理的数据和指令。统一高速缓存存储器包括多个集,每个集具有多路,每一路具有一个或更多个信息字段。高速缓存存储器控制电路(38)具有控制寄存器(48),用于控制将所述多路中的每一路分配用于下列中的一个:(1)第一类型的信息(数据)、(2)第二类型的信息(指令)、或者(3)第一类型的信息和第二类型的信息两者。高速缓存存储器控制电路(38)进一步基于控制寄存器指示的分配控制,单独地控制从多个错误检测类型选择用于统一高速缓存存储器的每一路的错误检测类型(奇偶校验,ECC)。
Description
技术领域
本公开总的来说涉及数据处理***,更具体地,涉及用于统一高速缓存(unified cache)的错误检测方案。
背景技术
典型地在数据处理***中使用统一高速缓存来存储多个类型的信息,诸如指令信息和数据信息(例如,操作数信息)。用于这些统一高速缓存的错误检测提高了可靠性。通常使用错误检测码(EDC)、错误校正码(ECC)和奇偶保护类型来为存储器提供错误检测和/或错误校正。然而,对统一高速缓存使用EDC/ECC是成问题的。尽管EDC或ECC典型地与使用奇偶校验相比支持更高级别的错误检测,但是极大地增加了统一高速缓存的复杂性并且降低了性能。尽管某些用户与其它相比更为注重错误检测并且希望牺牲某些性能来获得一定级别的安全认证。但是其他用户对于错误检测不是如此迫切的,并且因此不希望为额外的错误检测能力牺牲性能。这些冲突的需求进一步增加了在设计统一高速缓存时面对的困难。
附图说明
借助于示例说明了本发明,并且本发明不限于附图,在附图中相同的附图标记表示相似的元件。出于简单和清楚的目的示出了图中的元件,并且其并不必然依比例绘制。
图1以框图形式示出了根据本发明一个实施例的数据处理***;
图2以框图形式示出了根据本发明一个实施例的图1的数据处理***中的统一高速缓存的一部分;
图3以框图形式示出了根据本发明一个实施例的图2的统一高速缓存的一部分;
图4以示意图形式示出了根据本发明一个实施例的与图2和3的统一高速缓存一起使用的分配控制寄存器;
图5以表的形式示出了根据本发明一个实施例的图4的分配控制寄存器的各种字段的描述。
具体实施方式
在一个实施例中,统一高速缓存可以基于统一高速缓存的路划分(way-partitioning)使用不同的错误检测方案。例如,在路划分中,统一高速缓存的每一路可以被分配给不同的信息类型,诸如分配给指令信息或数据信息,或分配给指令和数据信息两者。在一个实施例中,该划分是经由路划分或者路分配控制寄存器设置来完成的。在一个实施例中,利用关于特定路的分配来确定要由该特定路使用的错误检测和/或校正方案。例如,那些被分配用于指令信息存储的路可以被配置为使用多位EDC,而被分配给数据信息或者被分配给数据和指令信息两者的其余的路可以被配置为使用单个位的奇偶校验(例如,字节奇偶校验)。
如这里使用的,术语“总线”用于表示可以用于传输一种或更多种不同类型的信息(诸如数据、地址、控制或状态)的多个信号或导体。如这里讨论的导体可以参考作为单个导体、多个导体、单向导体、或双向导体来说明或描述。然而,不同的实施例可以改变导体的实现方案。例如,可以使用分立的单向导体而非双向导体,反之亦然。此外,可以将多个导体替换为串行地或者按时间复用的方式传输多个信号的单个导体。同样地,承载多个信号的单个导体可以被分为承载这些信号的子集的多种不同的导体。因此,对于信号传输存在许多的选择。
这里,在提到使信号、状态位或者相似的装置进入其逻辑真或逻辑假状态时,分别使用了术语“断言(assert)”或“设置”和“求反”(或者“去断言”或“清除”)。如果逻辑真状态是逻辑电平1,则逻辑假状态是逻辑电平0。并且如果逻辑真状态是逻辑电平0,则逻辑假状态是逻辑电平1。
图1以框图形式示出了根据本发明一个实施例的数据处理***10。数据处理***10包括处理器12、***总线14、存储器16和多个***设备,所述***设备诸如***设备18、***设备20、以及在一些实施例中如图1中的将***设备18与***设备20隔开的点所指示的另外的***设备。存储器16是***存储器,其通过双向导体耦接到***总线14,在一个形式中,该双向导体具有多个导体。在图示的形式中,如同处理器12那样,每个***设备18和20通过双向的多个导体耦接到***总线14。处理器12包括总线接口单元22,其经由具有多个导体的双向总线耦接到***总线14。总线接口单元22经由双向导体耦接到内部总线24。内部总线24是多导体通信总线。高速缓存26、存储器28和中央处理单元(CPU)30经由相应的双向导体耦接到内部总线24。CPU 30实现数据处理操作。高速缓存26、存储器28和CPU 30中的每一个经由各自的双向导体耦接到内部总线。应当注意,存储器28和存储器16可以是任何类型的存储器,并且***设备18和20均可以是任何类型的***设备或装置。在一个实施例中,数据处理***10全部位于单个集成电路上。替代地,数据处理***10可以使用多于一个的集成电路实现。在一个实施例中,至少处理器12全部位于单个集成电路上。
在操作中,处理器12用于通过执行多个数据处理指令来实现多种数据处理功能。高速缓存26是CPU 30所需的频繁使用的信息的临时数据存储。高速缓存26是与集关联(set-associative)的统一高速缓存,其能够存储多种类型的信息,诸如指令信息和数据信息(例如,操作数信息)。CPU 30需要的不在高速缓存26中的信息被存储在存储器28或存储器16中。在一个实施例中,存储器28在其处于处理器12内部的情况下可以被称为内部存储器,而存储器16在其处于处理器12外部的情况下可以被称为外部存储器。总线接口单元22仅是处理器12和***总线14之间的若干个接口单元中的一个。总线接口单元22用于协调与CPU 30的指令执行相关的信息流。从指令执行得到的控制信息和数据经由总线接口单元22在CPU 30和***总线14之间交换。
图2示出了根据一个实施例的图1的高速缓存26的一部分。高速缓存26的替代实施例可以使用与图2中所示的不同的结构。图2中所示的高速缓存26的部分具有“N”个集(set)和8路(way),并且可以被称为多路的统一高速缓存或者多路的与集关联的统一高速缓存。因此,高速缓存26可以被描述为具有N个集,每个集具有8路。在替代实施例中,高速缓存26可以具有任何数目的集和任何数目的路。应当注意,如这里使用的,高速缓存行(line)指的是高速缓存路和集的交集。例如,路0包括N个高速缓存行,每个高速缓存行对应于集0到集N-1中的一个。因此,当选择用于替换(replacement)的路时,实际上替换了一个或更多个缓存行中的信息(如下文将描述的,其由索引部分29选择)。就是说,可以不替换整个路,而是仅替换一个或更多个特定行或条目(entry)。
在图示的实施例中,高速缓存电路21是将信息存储在多个高速缓存行或条目中的每一个中的存储电路。例如,高速缓存电路21包括用于高速缓存行或条目的标签、状态、高速缓存数据和保护字段。从CPU 30提供地址25。地址25包括标签部分27、索引部分29和偏移部分32。索引部分29被提供给高速缓存电路21,其指示特定的高速缓存行或条目(即,集0到集N-1中的一个)。比较电路23被耦接以接收标签部分27,并且被耦接到高速缓存电路21以接收标签和状态信息。基于所接收到的信息,比较电路23确定是否已存在高速缓存命中或高速缓存未命中。在图示的实施例中,标有HIT_WAY[0:7]34的多个命中/未命中信号被提供给高速缓存控制电路38。每个HIT_WAY[0:7]34信号指示对于高速缓存电路21中的其相应的路是否已存在高速缓存命中。除了高速缓存命中信号之外或者替代高速缓存命中信号,替代实施例还可以使用高速缓存未命中信号。
高速缓存控制电路38借助于导体或信号36和39耦接到高速缓存电路21。索引部分29也被提供给高速缓存控制电路38,以指示特定高速缓存行或条目(即,集0到集N-1中的一个)。高速缓存控制电路38包括分配控制寄存器48、替换逻辑49、输出选择逻辑37、和错误控制电路66。分配控制寄存器48耦接到替换逻辑49和错误控制电路66,并且错误控制电路耦接到输出选择逻辑37。错误控制电路66还可以向总线24提供一个或更多个错误指示符。输出选择逻辑向总线24提供信息。高速缓存控制电路38还被耦接以从总线24接收信息。
在图示的实施例中,高速缓存电路21是统一高速缓存,其能够存储多个类型的信息。就是说,每个高速缓存行的高速缓存数据字段可以存储指令信息或数据信息(例如,操作数信息)。此外,如下面将参照图4和5更详细描述的,高速缓存电路21的每一路可以被分配用于存储特定的信息类型。例如,每一路可以被独立配置用于存储指令信息、数据信息(例如,操作数信息)、或者指令和数据信息两者。在一个实施例中,高速缓存电路21的一路或更多路可以被配置用于存储只读数据信息或可修改的数据信息。
图4以示意图形式示出了分配控制寄存器48的一个实施例,其对于路0-7中的每一个包括2位的路分配控制字段。图5以表的形式示出了关于图4的路分配控制字段的描述。例如,路0分配控制字段是2位字段,其指示什么类型的信息可以存储在路0中的高速缓存数据字段中。例如,当路0分配控制字段具有值01时,路0可用于由指令未命中行填充的替换。就是说,对于值01,路0存储指令类型信息。当路0分配控制字段具有值10时,路0可用于由数据未命中行填充的替换。就是说,对于值10,路0存储数据类型信息。当路0分配控制字段具有值11时,路0可用于由数据或指令未命中行填充的替换。就是说,对于值11,路0存储指令类型和数据类型信息两者。因此,对于每一路,相应的路分配控制字段指示相应的路是存储第一类型的信息(例如,当相应的路分配控制字段具有值01时存储指令类型的信息),存储第二类型的信息(例如,当相应的路分配控制字段具有值10时存储数据类型的信息),还是存储第一和第二类型的信息两者(例如,当相应的路分配控制字段具有值11时存储指令类型和数据类型的信息两者)。在图示的实施例中,每一路分配控制字段的值00被保留以备可能的未来使用。替代实施例可以包括更多或更少的字段,并且每个字段可以按照需要包括更多或更少的位以指示将被分配给高速缓存26的特定的路的信息类型。
尽管图2中已经示出了高速缓存26的一种架构类型,但是高速缓存26的替代实施例可以使用任何期望的或适当的架构。图2中图示的架构仅是一个可能的代表性架构。可以使用允许期望的高速缓存替换的任何高速缓存架构。
回来参照图2,在操作中,利用索引部分29来选择高速缓存电路21中的集。将来自高速缓存电路21的标签信息与标签27比较,并且通过来自高速缓存电路21的状态信息(例如,有效位)进行检验(qualified)。比较和检验的结果(例如,匹配且有效)确定是否发生高速缓存命中。如上文所述,每个HIT_WAY[0:7]34信号指示对于高速缓存电路21中的其相应的路是否已经存在高速缓存命中。
在对高速缓存26的读访问的情况下,在高速缓存命中时,经由导体39向高速缓存控制电路38提供导致高速缓存命中的高速缓存行的保护字段和高速缓存数据。错误控制电路66中的用于导致高速缓存命中的路的相应的错误控制电路使用接收到的保护信息对接收到的高速缓存数据执行错误检测和/或校正。如下文将参照图3更详细描述的,使用分配控制寄存器48中的设置选择所使用的错误检测和/或校正方案。随后可以经由输出选择逻辑将高速缓存数据提供给总线24,该输出选择逻辑使用HIT_WAY[0:7]34选择错误控制电路66中的用于导致高速缓存命中的路的相应的错误控制电路的输出。此外,应当注意,错误指示符还可以经由输出选择逻辑37提供给总线24以指示是否发生了错误。应当注意,如果还正在执行错误校正,则将经由输出选择逻辑37输出经校正的高速缓存数据而非从高速缓存电路21提供的数据。此外,如果正在提供经校正的高速缓存数据,则可以对错误指示符求反以指示对于正在提供的高速缓存数据不存在错误(由于其已被校正)。
在对高速缓存26的写访问的情况下,在高速缓存命中时,高速缓存控制电路38可以从总线24接收信息(例如,用于存储到高速缓存电路21中的高速缓存数据)。高速缓存数据可以由高速缓存控制电路38经由导体39提供,以存储到高速缓存电路21的适当的高速缓存行中。此外,高速缓存控制电路38可以适当地更新高速缓存行的状态字段。(应当注意,用于接收高速缓存数据并且将其路由到高速缓存电路21中的导致命中的行并且用于更新状态信息的具体电路未被示出,这是因为其在本领域中是公知的。)如下文将参照图3更详细描述的,接收到的高速缓存数据还被提供给错误控制电路66,从而错误控制电路66中的相应的错误控制电路(如通过HIT_WAY[0:7] 34选择的)可以生成适当的保护信息。高速缓存控制电路38还可以将该相应的保护信息与接收到的高速缓存数据一起提供,以存储到高速缓存电路21的导致高速缓存行命中的适当的高速缓存行中。应当注意,如果还正在执行错误校正,则将提供经校正的接收到的高速缓存数据(如果检测到错误的话),以存储到高速缓存电路21中。
在高速缓存未命中的情况下,替换逻辑49使用来自分配控制寄存器48的信息识别用于替换的高速缓存行,并且更新该高速缓存行。可以使用任何已知的高速缓存分配方法来选择用于替换的高速缓存行,诸如例如,循环方法(round robin method)、伪最少最近使用(pseudo-least recently used,PLRU)方法等。替换逻辑49将替换方法与来自分配控制寄存器48的信息组合,以选择能够被分配用于特定类型的信息的用于替换的路。在高速缓存未命中时,通过总线24将用于存储到新分配的高速缓存行中的新的高速缓存数据提供给高速缓存控制电路38。随后可以经由导体39提供该新的高速缓存数据,以存储到高速缓存电路21的新分配的高速缓存行中。此外,高速缓存控制电路38可以适当地生成用于存储到新分配的高速缓存行的状态字段中的状态信息。(应当注意,用于接收高速缓存数据并且将其路由到电路21中的新分配的高速缓存行并且用于生成关于新分配的高速缓存行的状态信息的具体电路未被示出,这是因为其在本领域中是公知的。)如下文将参照图3更详细描述的,新的高速缓存数据还被提供给错误控制电路66,从而错误控制电路66中的相应的错误控制电路(对应于替换逻辑49选择的包括新分配的高速缓存行的路)可以生成适当的保护信息。高速缓存控制电路38还可以将该相应的保护信息与接收到的高速缓存数据一起提供,以存储到高速缓存电路21的新分配的高速缓存行中。应当注意,如果还正在执行错误校正,则将提供经校正的新的高速缓存数据(如果检测到错误的话),以存储到高速缓存电路21中。
在图示的实施例中,高速缓存控制电路38还向高速缓存电路21提供控制信号36(例如,用于读/写控制)。例如,高速缓存控制电路38可以在CPU 30的控制下更新高速缓存电路21。例如,CPU 30可以执行特殊的高速缓存指令以更新状态信息。此外,在一个实施例中,高速缓存控制电路38在CPU 30的控制下(诸如经由特殊的高速缓存指令)可以更新分配控制寄存器48以改变分配高速缓存电路21的路的方式。尽管图2示出了可以用于实现图1的高速缓存26的一部分的特定电路,但是替代实施例可以使用任何期望的电路。可以使用广泛的多种电路实现方案。图2中图示的电路仅用于说明一个可能的实施例。
图3示出了表示根据本发明一个实施例的高速缓存26的一部分的电路31。电路31包括表示高速缓存电路21的路0的一部分的存储器存储电路40。存储器存储电路40包括多个存储器库(memory bank)和保护存储装置45。在图示的实施例中,存储器存储电路40包括8个库:库0 42、库1 43,...库7 44。替代实施例可以包括任何数目的库。在图示的实施例中,库0-7表示路0的高速缓存数据部分,其中每个库的宽度是1字节,并且保护存储装置45表示路0的保护部分。库0-7每一个存储N个字节,对于集0至N-1中的每一个,一个字节与其对应。因此,在图示的实施例中,具有8个库,路0的每个高速缓存数据字段存储双字。如果路0的每个高速缓存数据字段存储双字以上,则电路40将按照需要包括更多的库以及按照需要包括更大的保护存储装置。还应当注意,这里图3的描述类似地应用到路0-7中的每路。
电路31包括路0错误控制电路,其是错误控制电路66的一部分。路0错误控制电路双向耦接到存储器存储电路40(耦接到高速缓存电路21路0的部分),并且包括路0选择逻辑60、模式逻辑50(其被耦接以接收来自分配控制寄存器48的信息)、共享的异或(XOR)树52、以及错误检测和校正逻辑54。模式逻辑50基于分配控制寄存器48的路0分配控制字段的值,将模式指示符62输出到路0选择逻辑60的控制输入。在一个实施例中,模式62指示电路31正在操作于什么错误检测模式。例如,在图示的实施例中,基于控制寄存器48中的路0分配控制字段的值,模式62指示电路31在操作于EDC/ECC模式(多位的错误检测/错误检测和校正)还是奇偶校验模式(单个位的错误检测)。在一个实施例中,当路0分配控制字段是01时,其指示路0可用于由指令未命中行填充的替换,模式62指示EDC/ECC模式。当路0分配控制字段是10或11时,其指示路0存储数据类型信息或者指令和数据类型信息两者,模式62指示奇偶校验模式。例如,在路0存储数据类型信息的情况下,可能不希望执行读-修改-写(RMW),如EDC/ECC模式中所进行的那样;因此,奇偶错误检测模式可能是足够的。此外,在一个实施例中,如果路0被分配用于只读数据类型信息,则模式逻辑50还可以设置模式62来指示EDC/ECC模式。
在EDC/ECC模式中,保护存储装置45的每个条目存储用于库0-7中的相应条目的相应校验位。例如,保护存储装置45的第一条目存储与库0-7每一个的第一条目中存储的数据对应的校验位。但是,在奇偶校验模式中,保护存储装置45的每个条目存储与库0-7每一个中的条目对应的奇偶校验位。例如,在奇偶校验模式中,保护存储装置45的第一条目存储用于库0-7每一个中的第一条目的奇偶校验位。因此,在其中存在8个库的图示的实施例中,保护存储装置45的每个条目存储8个奇偶校验位,对于库0-7每一个库一个校验位。
在EDC/ECC模式中,共享的XOR树52被耦接以接收来自库0至7中的每一个的和来自保护存储装置45的信息。在EDC/ECC模式中,共享的XOR树52基于从高速缓存控制电路38的其他部分接收的信息(其可能来自总线24),或者基于从库0-7每一个中的特定条目接收的信息,或者基于两者的组合,生成提供给保护存储装置45用于存储在相应的条目中的校验位56。此外,在EDC/ECC模式中,共享的XOR树52基于从库0-7每一个中的特定条目接收的信息和来自保护存储装置45的相应的校验位,生成提供给校正逻辑54的校正子位(syndromebit)58。在EDC/ECC模式中,校正逻辑54还从库0-7每一个中的特定条目接收信息,并且使用相应的校正子位58执行多位的错误检测,并且可选地(对于实现EDC的实施例)校正所接收的信息并将经校正的来自库0-7的特定条目的信息提供给路0选择逻辑60。因此,路0选择逻辑60基于模式62的值,将校正逻辑54的输出提供给输出选择逻辑37(如果处于ECC模式的话),或者将库0-7中的一个或更多个的输出直接提供给输出选择逻辑37(如果处于EDC或奇偶校验模式的话)。当在路0中发生高速缓存命中时,输出选择逻辑选择路0选择逻辑60的输出以提供给总线24。应当注意,在奇偶校验模式中,也可以将相应的奇偶校验位从保护存储装置45提供给输出选择逻辑37。此外,错误检测和校正逻辑54可以将错误指示符提供给总线24以指示是否发生了错误。
应当注意,在一个实施例中,在EDC模式中,仅执行错误检测。在该情况下,检测到多个位错误,但是在将其输出到输出选择逻辑37之前不对其进行校正。在该情况下,由于错误未被校正,因此可以断言错误指示符以指示错误。此外,在该情况下,错误检测和校正逻辑54可以被称为错误检测逻辑,并且错误检测逻辑的输出不需要提供给路0选择逻辑60。就是说,在该实施例中,由于可以从库0-7直接提供未经校正的位,因此可以不需要路0选择逻辑60。
因此,对于奇偶校验模式中的高速缓存命中读操作,或者当以EDC操作时,选择逻辑60将库0-7中的一个或更多个库中的被访问条目的输出以及相应的奇偶校验位提供给输出选择逻辑37。对于ECC模式中的高速缓存命中读操作,选择逻辑60将错误检测和校正逻辑54的输出提供给输出选择逻辑37。对于奇偶校验模式中的高速缓存命中写操作或者在奇偶校验模式中的高速缓存未命中时执行的高速缓存分配操作,写数据被直接提供给由写操作访问地址寻址的库0-7中的一个或更多个库中的条目。就是说,可以针对库0-7中的任意数目的库执行写入,并且保护存储装置45的相应条目中的相应奇偶校验位在共享的XOR树52中的生成之后也被逐位地更新。通过该方式,如果作为写操作的结果仅写入一个库,则仅更新保护存储装置45的相应条目中的一个位。奇偶校验模式中的奇偶校验位的更新可以由控制逻辑46中的逻辑(未示出)按已知的方式执行。
对于EDC/ECC模式中的全写操作(其中所有库0-7均被写入(即,其中全部高速缓存数据字段被写入)),不需要执行读-修改-写(RMW)操作。通过该方式,可以通过一次或单次访问(例如,在单个处理器周期或者单个时钟周期中)执行全写操作(对存储器存储电路40的所有库的写入)。在该情况下,写数据被提供给由全写操作访问地址寻址的库0-7的每个条目。写数据还被提供给共享的XOR树52,其生成相应的校验位,并且经由校验位56将它们提供给保护存储装置45以存储在相应的条目中。在一个实施例中,共享的XOR树52是组合逻辑,其中校验位的生成和回写可以在与将写数据写入库0-7相同的处理器或时钟周期中完成。
对于EDC/ECC模式中的部分写操作(其中少于所有库0-7的库被写入),需要读-修改-写(RMW)。因此,对少于所有库0-7的库(即,少于全部高速缓存数据字段)执行写操作需要多次访问(例如,多个处理器周期或时钟周期),并且不能象全写操作的情况那样通过单次访问来执行。由于实现读-修改-写操作的复杂性,在一些实施例中可能不支持对少于所有库0-7的库的写操作。因此,在这些实施例中,对于可写数据,可以选择奇偶性保护,而对于仅在高速缓存未命中时更新所有库0-7时写入的指令信息,可以选择多位EDC/ECC,该选择是基于路分配控制设置的。
至此应意识到,已经提供了一种高速缓存,该高速缓存的路能够基于关于每个特定的路的路分配控制字段在奇偶校验或EDC/ECC模式中操作。通过该方式,如果需要,高速缓存的每一路可以使用单个位的错误检测的奇偶校验进行操作或者使用允许多位的错误检测和校正的EDC/ECC进行操作。此外,通过动态地改变路分配控制寄存器的路分配控制字段的值,可以在操作期间动态地改变用于每一路的错误检测方案,导致了另外的灵活性。
由于实现本发明的装置大部分由本领域技术人员已知的电子部件和电路组成,因此为了理解和领会本发明的主要概念而不致使本发明的教导的模糊和分散,如上文所说明的,将不会在超出被认为是必要的程度上对电路细节进行解释。
一些上述实施例在适当的情况下可以使用多种不同的信息处理***来实现。例如,尽管图1及其讨论描述了示例性的信息处理架构,但是该示例性架构仅被呈现用于提供在讨论本发明的各种方面时有用的参考。当然,出于讨论的目的,该架构的描述已被简化,并且其仅是可以根据本发明使用的许多不同类型的适当架构中的一个。本领域技术人员将认识到,逻辑模块之间的边界仅是说明性的,并且替代实施例可以将逻辑模块或电路元件合并,或者对各种逻辑模块或电路元件加以替代的功能分解。
因此,应理解,这里描述的架构仅是示例性的,并且实际上可以实现获得相同功能的许多其他的架构。在抽象但仍是明确的意义上,用于实现相同功能的任何部件布置被有效地“关联”,以使得实现所期望的功能。因此,在这里被组合来实现特定功能的任何两个部件可以被视为彼此“关联”从而实现所期望的功能,而不管架构或中间部件如何。同样地,如此关联的任何两个部件也可以被视为彼此“操作连接”或者“操作耦接”以实现所期望的功能。
此外,例如,在一个实施例中,数据处理***10的所示元件是位于单个集成电路上的或者在同一装置中的电路。替代地,数据处理***10可以包括彼此互连的任意数目的分立的集成电路或者分立的装置。例如,存储器16可以位于与处理器12相同的集成电路上或者位于分立的集成电路上,或者位于离散地与数据处理***10的其他元件隔开的另一***设备或从设备中。***设备18和20也可以位于分立的集成电路或装置上。此外,例如,数据处理***10或者其部分可以是物理电路的或者可转换为物理电路的逻辑表示的软的表示或代码表示。因此,数据处理***10可以以任何适当类型的硬件描述语言实现。
此外,本领域技术人员将认识到,上述操作的功能之间的边界仅是说明性的。多个操作的功能可以被组合到单个操作中,和/或单个操作的功能可以分布在另外的操作中。此外,替代实施例可以包括特定操作的多个实例,并且在多种其他实施例中,操作的顺序可以改变。
这里描述的软件中的全部或一些可以是例如从计算机可读介质(诸如存储器16)或者其他计算机***上的其他介质接收的数据处理***10的元件。该计算机可读介质可以永久性地、可拆卸地或者远程地耦接到诸如数据处理***10的信息处理***。所述计算机可读介质可以包括,例如且非限制性的,任何数目的以下设备:磁存储介质,包括盘和带存储介质;光存储介质,诸如压缩盘介质(例如,CD-ROM、CD-R等)和数字视频盘存储介质;非易失性存储器存储介质,包括基于半导体的存储器单元,诸如FLASH存储器、EEPROM、EPROM、ROM;铁电数字存储器;MRAM;易失性存储介质,包括寄存器、缓存器或高速缓存、主存储器、RAM等;以及数据传输介质,包括计算机网络、点对点通讯设备和载波传送介质,等等。
在一个实施例中,数据处理***10是计算机***,诸如个人计算机***。其他的实施例可以包括不同类型的计算机***。计算机***是信息处理***,其能够被设计来向一个或更多个用户提供独立的计算能力。可以发现许多形式的计算机***,包括但不限于:大型主机、微型计算机、服务器、工作站、个人计算机、笔记型计算机、个人数字助理、电子游戏机、机动车用和其他嵌入***、蜂窝电话、和各种其他无线设备。典型的计算机***包括至少一个处理单元、关联的存储器和若干输入/输出(I/O)装置。
计算机***根据程序处理信息,并且经由I/O装置产生结果输出信息。程序是指令列表,诸如特定的应用程序和/或操作***。计算机程序典型地内部存储在计算机可读存储介质上,或者经由计算机可读传输介质传送到计算机***。计算机处理典型地包括:执行(运行)程序或者部分程序,当前程序值和状态信息,以及操作***所使用的用于管理处理过程的执行而使用的资源。父处理可以产生其他的子处理以帮助执行父处理的整体功能。由于父处理特别地产生子处理以执行父处理的整体功能的一部分,因此子处理(和孙处理等)执行的功能有时可以被描述为由父处理执行。
尽管这里参照特定实施例描述了本发明,但是可以进行多种修改和改变而不偏离如所附权利要求中阐述的本发明的范围。例如,可以基于***需要修改地址字段中使用的位的数目。因此,说明书和附图应被视为说明性的而非限制性的,并且意图将所有这些修改涵盖在本发明的范围内。这里就特定实施例描述的任何益处、优点或者对问题的解决方案不应被解释为任何或所有权利要求的关键的、必需的或者基本的特征或元素。
如这里使用的术语“耦接”不应限于直接耦接或机械耦接。
此外,如这里使用的术语“一”(“a”或“an”)被定义为一个或多于一个。此外,权利要求中的诸如“至少一个”和“一个或更多个”的引入性习语的使用不应被解释为暗示了由不定冠词“一”(“a”或“an”)引入另一权利要求元素将包含该引入的权利要求元素的任何特定权利要求限制为仅包含一个该元素的发明,即使在同一权利要求包括引入性习语“一个或更多个”或“至少一个”以及诸如“一”(“a”或“an”)的不定冠词时也是如此。对于定冠词的使用亦是如此。
除非另外说明,否则诸如“第一”和“第二”的术语用于任意区分这些术语描述的元素。因此,这些术语并不必然用于指示这些元素的时间或其他优先顺序。
下面是本发明的各种实施例。
项1包括一种数据处理***,其包括:处理电路,用于执行多个数据处理指令;统一高速缓存存储器,其耦接到所述处理电路,用于存储由所述处理电路处理的数据和指令,所述统一高速缓存存储器包括多个集,每个集包括多路,每一路包括一个或更多个信息字段;以及高速缓存存储器控制电路,其耦接到所述统一高速缓存存储器,并且包括用于分配控制的控制寄存器,用以控制将所述多路中的每一路分配用于下列中的一个:(1)第一类型的信息、(2)第二类型的信息、或者(3)第一类型的信息和第二类型的信息两者,所述高速缓存存储器控制电路进一步基于所述控制寄存器指示的分配控制,单独地控制从多个错误检测类型中选择用于所述统一高速缓存存储器的每一路的错误检测类型。项2包括项1的数据处理***,其中所述第一类型的信息是数据信息,并且所述第二类型的信息是指令信息。项3包括项2的数据处理***,其中所述第一类型的信息与选择单个位的错误检测相关,而所述第二类型的信息与选择多位的错误检测相关。项4包括项3的数据处理***,其中所述第二类型的信息进一步包括只读数据信息。项5包括项3的数据处理***,其中所述数据信息是可修改的数据信息。项6包括项3的数据处理***,其中所述第二类型的信息与选择多位的错误检测和校正相关。项7包括项3的数据处理***,其中所述控制寄存器是用户可访问的,用于单独地动态地修改用于所述统一高速缓存存储器的多个分立的路中的每一路的错误检测类型。项8包括项1的数据处理***,其中所述多个错误检测类型包括奇偶校验、错误检测码(EDC)、和错误校正码(ECC)。
项9包括一种方法,其包括:提供处理电路,所述处理电路用于执行多个数据处理指令;将统一高速缓存存储器耦接到所述处理电路,以存储由所述处理电路处理的数据和指令,所述统一高速缓存存储器包括多个集,每个集包括多路,每一路包括一个或更多个信息字段;将高速缓存存储器控制电路耦接到所述统一高速缓存存储器;以及提供控制电路,所述控制电路将所述统一高速缓存存储器的每一路分配用于下列中的一个:(1)第一类型的信息、(2)第二类型的信息、或者(3)第一类型的信息和第二类型的信息两者,所述控制电路进一步基于分配结果,单独地控制从多个错误检测类型中选择用于所述统一高速缓存存储器的每一路的错误检测类型。项10包括项9的方法,并且进一步包括将所述第一类型的信息选择为数据信息;以及将所述第二类型的信息选择为指令信息。项11包括项10的方法,并且进一步包括:使所述第一类型的信息与选择单个位的错误检测作为错误检测类型相关;以及使所述第二类型的信息与选择多位的错误检测作为错误检测类型相关。项12包括项11的方法,并且进一步包括:将第二类型的信息形成为只读数据信息。项13包括项11的方法,并且进一步包括:将所述数据信息形成为可修改的数据信息。项14包括项11的方法,并且进一步包括:使所述第二类型的信息与选择多位的错误检测和校正作为错误检测类型相关。项15包括项11的方法,并且进一步包括:通过对所述控制电路的用户访问,单独地动态地修改用于所述统一高速缓存存储器的每一路的错误检测类型。项16包括项11的方法,并且进一步包括:基于分配结果为所述统一高速缓存存储器的每一分立的路单独地选择奇偶校验、错误检测码(EDC)和错误校正码(ECC)中的一个。
项17包括一种数据处理***,其包括:处理单元,用于执行多个数据处理指令;统一高速缓存存储器,其耦接到所述处理单元,用于存储由所述处理电路处理的数据和指令,所述统一高速缓存存储器包括多路,每一路包括多个行,每个行包括信息字段;第一控制电路,其耦接到所述统一高速缓存存储器,并且包括分配控制寄存器,所述分配控制寄存器用于将所述多路中的每一路分配用于第一类型的信息或者第二类型的信息,或者用于第一类型的信息和第二类型的信息两者;以及第二控制电路,其耦接到所述第一控制电路,用于基于所述第一控制电路执行的分配,进一步单独地选择用于所述统一高速缓存存储器的每一路的错误检测模式。项18包括项17的数据处理***,其中所述第一类型的信息是与所述第二控制电路将单个位的错误检测选择作为错误检测模式相关的数据信息,而所述第二类型的信息是与所述第二控制电路将多位的错误检测选择作为错误检测模式相关的指令信息。项19包括项17的数据处理***,其中所述第一控制电路是用户可访问的,用于单独地动态地修改用于所述统一高速缓存存储器的所述多路中的每一路的错误检测类型。项20包括项17的数据处理***,其中所述第一控制电路进一步包括存储装置,所述存储装置包括多个控制字段,所述多个控制字段中的每一个与所述统一高速缓存存储器的所述多路中的预定路相关,用于存储控制用于所述预定路的信息类型分配的编码的二进制值。
Claims (20)
1.一种数据处理***,包括:
处理电路,用于执行多个数据处理指令;
统一高速缓存存储器,其耦接到所述处理电路,用于存储由所述处理电路处理的数据和指令,所述统一高速缓存存储器包括多个集,每个集包括多路,每一路包括一个或更多个信息字段;以及
高速缓存存储器控制电路,其耦接到所述统一高速缓存存储器,并且包括用于分配控制的控制寄存器,用以控制将所述多路中的每一路分配用于下列中的一个:(1)第一类型的信息、(2)第二类型的信息、或者(3)第一类型的信息和第二类型的信息两者,所述高速缓存存储器控制电路进一步基于所述控制寄存器指示的分配控制,单独地控制从多个错误检测类型中选择用于所述统一高速缓存存储器的每一路的错误检测类型。
2.根据权利要求1所述的数据处理***,其中所述第一类型的信息是数据信息,并且所述第二类型的信息是指令信息。
3.根据权利要求2所述的数据处理***,其中所述第一类型的信息与选择单个位的错误检测相关,而所述第二类型的信息与选择多位的错误检测相关。
4.根据权利要求3所述的数据处理***,其中所述第二类型的信息进一步包括只读数据信息。
5.根据权利要求3所述的数据处理***,其中所述数据信息是可修改的数据信息。
6.根据权利要求3所述的数据处理***,其中所述第二类型的信息与选择多位的错误检测和校正相关。
7.根据权利要求3所述的数据处理***,其中所述控制寄存器是用户可访问的,用于单独地动态地修改用于所述统一高速缓存存储器的多个分立的路中的每一路的错误检测类型。
8.根据权利要求1所述的数据处理***,其中所述多个错误检测类型包括奇偶校验、错误检测码(EDC)、和错误校正码(ECC)。
9.一种方法,包括:
提供处理电路,所述处理电路用于执行多个数据处理指令;
将统一高速缓存存储器耦接到所述处理电路,以存储由所述处理电路处理的数据和指令,所述统一高速缓存存储器包括多个集,每个集包括多路,每一路包括一个或更多个信息字段;
将高速缓存存储器控制电路耦接到所述统一高速缓存存储器;以及
提供控制电路,所述控制电路将所述统一高速缓存存储器的每一路分配用于下列中的一个:(1)第一类型的信息、(2)第二类型的信息、或者(3)第一类型的信息和第二类型的信息两者,所述控制电路进一步基于分配结果,单独地控制从多个错误检测类型中选择用于所述统一高速缓存存储器的每一路的错误检测类型。
10.根据权利要求9所述的方法,进一步包括:
将所述第一类型的信息选择为数据信息;以及
将所述第二类型的信息选择为指令信息。
11.根据权利要求10所述的方法,进一步包括:
使所述第一类型的信息与选择单个位的错误检测作为错误检测类型相关;以及
使所述第二类型的信息与选择多位的错误检测作为错误检测类型相关。
12.根据权利要求11所述的方法,进一步包括:
将第二类型的信息形成为只读数据信息。
13.根据权利要求11所述的方法,进一步包括:
将所述数据信息形成为可修改的数据信息。
14.根据权利要求11所述的方法,进一步包括:
使所述第二类型的信息与选择多位的错误检测和校正作为错误检测类型相关。
15.根据权利要求11所述的方法,进一步包括:
通过对所述控制电路的用户访问,单独地动态地修改用于所述统一高速缓存存储器的每一路的错误检测类型。
16.根据权利要求11所述的方法,进一步包括:
基于分配结果为所述统一高速缓存存储器的每一分立的路单独地选择奇偶校验、错误检测码(EDC)和错误校正码(ECC)中的一个。
17.一种数据处理***,包括:
处理单元,用于执行多个数据处理指令;
统一高速缓存存储器,其耦接到所述处理单元,用于存储由所述处理电路处理的数据和指令,所述统一高速缓存存储器包括多路,每一路包括多个行,每个行包括信息字段;
第一控制电路,其耦接到所述统一高速缓存存储器,并且包括分配控制寄存器,所述分配控制寄存器用于将所述多路中的每一路分配用于第一类型的信息或者第二类型的信息,或者用于第一类型的信息和第二类型的信息两者;以及
第二控制电路,其耦接到所述第一控制电路,用于基于所述第一控制电路执行的分配,进一步单独地选择用于所述统一高速缓存存储器的每一路的错误检测模式。
18.根据权利要求17所述的数据处理***,其中所述第一类型的信息是与所述第二控制电路将单个位的错误检测选择作为错误检测模式相关的数据信息,而所述第二类型的信息是与所述第二控制电路将多位的错误检测选择作为错误检测模式相关的指令信息。
19.根据权利要求17所述的数据处理***,其中所述第一控制电路是用户可访问的,用于单独地动态地修改用于所述统一高速缓存存储器的所述多路中的每一路的错误检测类型。
20.根据权利要求17所述的数据处理***,其中所述第一控制电路进一步包括存储装置,所述存储装置包括多个控制字段,所述多个控制字段中的每一个与所述统一高速缓存存储器的所述多路中的预定路相关,用于存储控制用于所述预定路的信息类型分配的编码的二进制值。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US12/205,210 US8145985B2 (en) | 2008-09-05 | 2008-09-05 | Error detection schemes for a unified cache in a data processing system |
US12/205,210 | 2008-09-05 | ||
PCT/US2009/048772 WO2010027549A1 (en) | 2008-09-05 | 2009-06-26 | Error detection schemes for a unified cache in a data processing system |
Publications (2)
Publication Number | Publication Date |
---|---|
CN102138129A true CN102138129A (zh) | 2011-07-27 |
CN102138129B CN102138129B (zh) | 2013-06-12 |
Family
ID=41797402
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN2009801337414A Active CN102138129B (zh) | 2008-09-05 | 2009-06-26 | 用于数据处理***中的统一高速缓存的错误检测方案 |
Country Status (4)
Country | Link |
---|---|
US (1) | US8145985B2 (zh) |
KR (1) | KR101531080B1 (zh) |
CN (1) | CN102138129B (zh) |
WO (1) | WO2010027549A1 (zh) |
Cited By (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103645964A (zh) * | 2013-11-22 | 2014-03-19 | 中国电子科技集团公司第三十二研究所 | 嵌入式处理器的高速缓存容错机制 |
CN105701034A (zh) * | 2014-12-14 | 2016-06-22 | 上海兆芯集成电路有限公司 | 基于内存访问类型以分路来分配的快取内存 |
CN105701022A (zh) * | 2014-12-14 | 2016-06-22 | 上海兆芯集成电路有限公司 | 基于内存访问类型以组块来分配的快取内存 |
CN105701032A (zh) * | 2014-12-14 | 2016-06-22 | 上海兆芯集成电路有限公司 | 具多样替换策略的集合关联快取内存 |
CN105760241A (zh) * | 2014-12-18 | 2016-07-13 | 联想(北京)有限公司 | 一种内存数据导出方法和*** |
CN108701070A (zh) * | 2016-03-31 | 2018-10-23 | 英特尔公司 | 对多级***存储器的存储器侧高速缓存的容易出错的高速缓存行槽的处理 |
CN108780424A (zh) * | 2016-03-30 | 2018-11-09 | 高通股份有限公司 | 提供用于动态随机存取存储器dram高速缓存标记的空间高效存储 |
CN113961483A (zh) * | 2020-09-02 | 2022-01-21 | 深圳市汇顶科技股份有限公司 | 高速缓存存储器和使用高速缓存存储器的方法 |
CN114008581A (zh) * | 2019-07-31 | 2022-02-01 | 美光科技公司 | 用以加速推测性执行的备用高速缓存集合 |
Families Citing this family (20)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8316186B2 (en) * | 2008-09-20 | 2012-11-20 | Freescale Semiconductor, Inc. | Method and apparatus for managing cache reliability based on an associated error rate |
US8364896B2 (en) * | 2008-09-20 | 2013-01-29 | Freescale Semiconductor, Inc. | Method and apparatus for configuring a unified cache based on an associated error rate |
US8245111B2 (en) * | 2008-12-09 | 2012-08-14 | Intel Corporation | Performing multi-bit error correction on a cache line |
JP4905510B2 (ja) * | 2009-06-29 | 2012-03-28 | 富士通株式会社 | ストレージ制御装置及びストレージ装置のデータ回復方法 |
US8539303B2 (en) * | 2010-12-20 | 2013-09-17 | Intel Corporation | Low overhead error correcting code protection for stored information |
US9495299B2 (en) * | 2011-12-26 | 2016-11-15 | Renesas Electronics Corporation | Data processing device utilizing way selection of set associative cache memory based on select data such as parity data |
KR101482014B1 (ko) * | 2012-05-11 | 2015-01-14 | 네이버 주식회사 | 할당 테이블을 이용한 파일 캐시 시스템 및 방법 그리고 파일 캐시 어플리케이션을 배포하는 배포 시스템 및 배포 방법 |
US8990641B2 (en) | 2012-11-16 | 2015-03-24 | International Business Machines Corporation | Selective posted data error detection based on history |
US8990640B2 (en) | 2012-11-16 | 2015-03-24 | International Business Machines Corporation | Selective posted data error detection based on request type |
US9384002B2 (en) | 2012-11-16 | 2016-07-05 | International Business Machines Corporation | Speculative finish of instruction execution in a processor core |
US9058260B2 (en) | 2013-04-04 | 2015-06-16 | International Business Machines Corporation | Transient condition management utilizing a posted error detection processing protocol |
US9348598B2 (en) * | 2013-04-23 | 2016-05-24 | Arm Limited | Data processing apparatus and method for pre-decoding instructions to be executed by processing circuitry |
EP3055775B1 (en) | 2014-12-14 | 2019-08-21 | VIA Alliance Semiconductor Co., Ltd. | Cache replacement policy that considers memory access type |
US9652400B2 (en) | 2014-12-14 | 2017-05-16 | Via Alliance Semiconductor Co., Ltd. | Fully associative cache memory budgeted by memory access type |
US10528410B2 (en) * | 2014-12-16 | 2020-01-07 | Intel Corporation | Apparatus, method and system to exchange error information in a unified protocol communication |
US10372531B2 (en) * | 2017-01-05 | 2019-08-06 | Texas Instruments Incorporated | Error-correcting code memory |
US10379944B2 (en) * | 2017-04-17 | 2019-08-13 | Advanced Micro Devices, Inc. | Bit error protection in cache memories |
US10360104B2 (en) | 2017-05-08 | 2019-07-23 | Silicon Laboratories Inc. | ECC memory controller to detect dangling pointers |
US10218387B2 (en) * | 2017-05-08 | 2019-02-26 | Silicon Laboratories Inc. | ECC memory controller supporting secure and non-secure regions |
KR20210105117A (ko) * | 2020-02-18 | 2021-08-26 | 에스케이하이닉스 주식회사 | 메모리 장치 및 그의 테스트 방법 |
Family Cites Families (27)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5058116A (en) | 1989-09-19 | 1991-10-15 | International Business Machines Corporation | Pipelined error checking and correction for cache memories |
US5479641A (en) | 1993-03-24 | 1995-12-26 | Intel Corporation | Method and apparatus for overlapped timing of cache operations including reading and writing with parity checking |
US5488691A (en) | 1993-11-17 | 1996-01-30 | International Business Machines Corporation | Memory card, computer system and method of operation for differentiating the use of read-modify-write cycles in operating and initializaiton modes |
US5630055A (en) | 1995-05-05 | 1997-05-13 | Digital Equipment Corporation | Autonomous pipeline reconfiguration for continuous error correction for fills from tertiary cache or memory |
US5875201A (en) | 1996-12-30 | 1999-02-23 | Unisys Corporation | Second level cache having instruction cache parity error control |
US5961660A (en) | 1997-03-03 | 1999-10-05 | International Business Machines Corporation | Method and apparatus for optimizing ECC memory performance |
US5958068A (en) | 1997-04-14 | 1999-09-28 | International Business Machines Corporation | Cache array defect functional bypassing using repair mask |
US6092182A (en) | 1998-06-24 | 2000-07-18 | Advanced Micro Devices, Inc. | Using ECC/parity bits to store predecode information |
US7124170B1 (en) | 1999-08-20 | 2006-10-17 | Intertrust Technologies Corp. | Secure processing unit systems and methods |
US6567952B1 (en) | 2000-04-18 | 2003-05-20 | Intel Corporation | Method and apparatus for set associative cache tag error detection |
US6654925B1 (en) | 2000-08-29 | 2003-11-25 | International Business Machines Corporation | Method to determine retries for parallel ECC correction in a pipeline |
US6804763B1 (en) | 2000-10-17 | 2004-10-12 | Igt | High performance battery backed ram interface |
US6571317B2 (en) | 2001-05-01 | 2003-05-27 | Broadcom Corporation | Replacement data error detector |
US6804799B2 (en) | 2001-06-26 | 2004-10-12 | Advanced Micro Devices, Inc. | Using type bits to track storage of ECC and predecode bits in a level two cache |
US6898738B2 (en) | 2001-07-17 | 2005-05-24 | Bull Hn Information Systems Inc. | High integrity cache directory |
US7032123B2 (en) | 2001-10-19 | 2006-04-18 | Sun Microsystems, Inc. | Error recovery |
CN1230830C (zh) * | 2001-12-20 | 2005-12-07 | 华为技术有限公司 | Ram高速测试控制电路及其测试方法 |
DE10335978B4 (de) * | 2003-08-06 | 2006-02-16 | Infineon Technologies Ag | Hub-Baustein zum Anschließen von einem oder mehreren Speicherbausteinen |
US7240277B2 (en) | 2003-09-26 | 2007-07-03 | Texas Instruments Incorporated | Memory error detection reporting |
US7254748B1 (en) | 2003-10-14 | 2007-08-07 | Netlogic Microsystems, Inc. | Error correcting content addressable memory |
US7461321B2 (en) | 2004-05-25 | 2008-12-02 | Hewlett-Packard Development Company, L.P. | Error detection |
JP2006285631A (ja) * | 2005-03-31 | 2006-10-19 | Yokogawa Electric Corp | 二重化システム |
JP4201783B2 (ja) | 2005-08-04 | 2008-12-24 | 富士通マイクロエレクトロニクス株式会社 | キャッシュメモリ装置、半導体集積回路およびキャッシュ制御方法 |
US7430145B2 (en) | 2005-09-16 | 2008-09-30 | Hewlett-Packard Development Company, L.P. | System and method for avoiding attempts to access a defective portion of memory |
US7949841B2 (en) | 2006-12-08 | 2011-05-24 | Microsoft Corporation | Protection of critical memory using replication |
JP4343945B2 (ja) * | 2006-12-28 | 2009-10-14 | 三菱電機株式会社 | 電子制御装置 |
KR100918707B1 (ko) * | 2007-03-12 | 2009-09-23 | 삼성전자주식회사 | 플래시 메모리를 기반으로 한 메모리 시스템 |
-
2008
- 2008-09-05 US US12/205,210 patent/US8145985B2/en active Active
-
2009
- 2009-06-26 KR KR1020117005244A patent/KR101531080B1/ko active IP Right Grant
- 2009-06-26 WO PCT/US2009/048772 patent/WO2010027549A1/en active Application Filing
- 2009-06-26 CN CN2009801337414A patent/CN102138129B/zh active Active
Cited By (18)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103645964A (zh) * | 2013-11-22 | 2014-03-19 | 中国电子科技集团公司第三十二研究所 | 嵌入式处理器的高速缓存容错机制 |
CN103645964B (zh) * | 2013-11-22 | 2017-05-10 | 中国电子科技集团公司第三十二研究所 | 嵌入式处理器的高速缓存容错机制 |
CN105701022B (zh) * | 2014-12-14 | 2019-06-11 | 上海兆芯集成电路有限公司 | 组相联高速缓存 |
CN105701034A (zh) * | 2014-12-14 | 2016-06-22 | 上海兆芯集成电路有限公司 | 基于内存访问类型以分路来分配的快取内存 |
CN105701022A (zh) * | 2014-12-14 | 2016-06-22 | 上海兆芯集成电路有限公司 | 基于内存访问类型以组块来分配的快取内存 |
CN105701032A (zh) * | 2014-12-14 | 2016-06-22 | 上海兆芯集成电路有限公司 | 具多样替换策略的集合关联快取内存 |
CN105701034B (zh) * | 2014-12-14 | 2019-06-11 | 上海兆芯集成电路有限公司 | 处理器以及用于操作处理器的方法 |
CN105701032B (zh) * | 2014-12-14 | 2019-06-11 | 上海兆芯集成电路有限公司 | 具备多种替换策略的组相联高速缓存存储器 |
CN105760241A (zh) * | 2014-12-18 | 2016-07-13 | 联想(北京)有限公司 | 一种内存数据导出方法和*** |
CN105760241B (zh) * | 2014-12-18 | 2019-07-26 | 联想(北京)有限公司 | 一种内存数据导出方法和*** |
CN108780424A (zh) * | 2016-03-30 | 2018-11-09 | 高通股份有限公司 | 提供用于动态随机存取存储器dram高速缓存标记的空间高效存储 |
CN108780424B (zh) * | 2016-03-30 | 2022-10-28 | 高通股份有限公司 | 提供用于动态随机存取存储器dram高速缓存标记的空间高效存储 |
CN108701070A (zh) * | 2016-03-31 | 2018-10-23 | 英特尔公司 | 对多级***存储器的存储器侧高速缓存的容易出错的高速缓存行槽的处理 |
CN108701070B (zh) * | 2016-03-31 | 2022-08-12 | 英特尔公司 | 对多级***存储器的存储器侧高速缓存的容易出错的高速缓存行槽的处理 |
CN114008581A (zh) * | 2019-07-31 | 2022-02-01 | 美光科技公司 | 用以加速推测性执行的备用高速缓存集合 |
CN114008581B (zh) * | 2019-07-31 | 2024-04-02 | 美光科技公司 | 用以加速推测性执行的备用高速缓存集合 |
CN113961483A (zh) * | 2020-09-02 | 2022-01-21 | 深圳市汇顶科技股份有限公司 | 高速缓存存储器和使用高速缓存存储器的方法 |
CN113961483B (zh) * | 2020-09-02 | 2023-10-10 | 深圳市汇顶科技股份有限公司 | 高速缓存存储器和使用高速缓存存储器的方法 |
Also Published As
Publication number | Publication date |
---|---|
US8145985B2 (en) | 2012-03-27 |
WO2010027549A1 (en) | 2010-03-11 |
KR101531080B1 (ko) | 2015-06-23 |
CN102138129B (zh) | 2013-06-12 |
KR20110065452A (ko) | 2011-06-15 |
US20100064181A1 (en) | 2010-03-11 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN102138129B (zh) | 用于数据处理***中的统一高速缓存的错误检测方案 | |
US8266498B2 (en) | Implementation of multiple error detection schemes for a cache | |
US8095831B2 (en) | Programmable error actions for a cache in a data processing system | |
US8291305B2 (en) | Error detection schemes for a cache in a data processing system | |
US7987322B2 (en) | Snoop request management in a data processing system | |
US8356239B2 (en) | Selective cache way mirroring | |
US9158725B2 (en) | Flexible control mechanism for store gathering in a write buffer | |
US8131951B2 (en) | Utilization of a store buffer for error recovery on a store allocation cache miss | |
US8291259B2 (en) | Delete of cache line with correctable error | |
US20070288694A1 (en) | Data processing system, processor and method of data processing having controllable store gather windows | |
US20120066567A1 (en) | Data processing system having end-to-end error correction and method therefor | |
EP2240856B1 (en) | Error detector in a cache memory using configurable way redundancy | |
US9009411B2 (en) | Flexible control mechanism for store gathering in a write buffer | |
CN107885611B (zh) | 可主动回写的分级指令存储器结构容错方法和装置 | |
EP3759606B1 (en) | An apparatus and method for accessing metadata when debugging a device | |
US20090249048A1 (en) | Branch target buffer addressing in a data processor | |
US20150039870A1 (en) | Systems and methods for locking branch target buffer entries | |
US20230315631A1 (en) | Using a shadow copy of a cache in a cache hierarchy | |
US7237082B1 (en) | Spatially distributed parity protection |
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 | ||
CP01 | Change in the name or title of a patent holder | ||
CP01 | Change in the name or title of a patent holder |
Address after: Texas in the United States Patentee after: NXP America Co Ltd Address before: Texas in the United States Patentee before: Fisical Semiconductor Inc. |