CN100407172C - 选择替换用高速缓冲存储器路的方法与装置 - Google Patents
选择替换用高速缓冲存储器路的方法与装置 Download PDFInfo
- Publication number
- CN100407172C CN100407172C CN200480017397XA CN200480017397A CN100407172C CN 100407172 C CN100407172 C CN 100407172C CN 200480017397X A CN200480017397X A CN 200480017397XA CN 200480017397 A CN200480017397 A CN 200480017397A CN 100407172 C CN100407172 C CN 100407172C
- Authority
- CN
- China
- Prior art keywords
- rule
- address
- cache memory
- rule set
- reference address
- 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
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
-
- 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
-
- 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
- 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
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Memory System Of A Hierarchy Structure (AREA)
Abstract
在多路高速缓冲存储器中,用于选择可用于替换的N路的方法包括提供多个规则集(102,108),其中多个规则集中的每个都指定高速缓冲存储器中可用于替换的N路(其中N大于等于0)。该方法还包括接收访问地址,并利用访问地址的至少一部分选择多个规则集中的一个。然后,多个规则集(110)中选定的一个可用于选择高速缓冲存储器中可用于替换的N路。一种实施方式利用访问地址(40)的高位选择规则集。可选实施方式利用访问地址的至少一部分和规则集选择器控制寄存器选择规则集。另一种实施方式利用访问地址和地址范围比较器选择规则集。
Description
技术领域
本发明涉及数据处理系统,更具体而言,涉及数据处理系统中的选择性高速缓冲存储器替换策略。
背景技术
由于例如便携式和手持式应用的广泛使用,低功耗在数据处理系统中的重要性增加了。今天,有许多数据处理系统都使用位于集成电路上的更小更快更有效的存储器,有时称为高速缓冲存储器,来减少访问存储器(如主存储器或其它内部或外部存储器)的次数。与访问其它内部或外部存储器相比,访问高速缓冲存储器通常消耗较少的功率,从而导致减少的等待时间。因此,为了降低功率和提高性能,期望将那些随后会被再次请求的项存储在更快更有效的高速缓冲存储器中。
如果具有较高重用度的信息仍存在于高速缓冲存储器中,那么当具有较低重用度的信息替换它时,会发生高速缓冲存储器污染。即,通常具有较高重用度的项应当保留在高速缓冲存储器中,因为它们更有可能被再次请求(例如,再被请求多次)。例如,与其它信息相比,有些信息具有较短的生命周期,由于有可能在被较短生命周期信息替换后,较长生命周期信息必须从又慢又低效的内部或外部存储器中重取,因此由这种较短生命周期信息造成的高速缓冲存储器污染会增加高速缓冲存储器的功耗并降低其性能。但还是期望允许具有较短生命周期的信息受益于高速缓冲存储器中的重用。因此,存在对改进的高速缓冲存储器的需求,其中可以降低高速缓冲存储器污染,以便实现高速缓冲存储器改进的功耗和性能。
附图说明
本发明是通过例子说明的,但不受附图的限制,其中相同的标号指示相似的元件,其中:
图1以方框图的形式说明了根据本发明一种实施方式的数据处理系统;
图2以方框图的形式说明了根据本发明一种实施方式的图1高速缓冲存储器的一部分;
图3以方框图的形式说明了根据本发明一种实施方式的图2高速缓冲存储器控制电路的一部分;
图4以方框图的形式说明了根据本发明一种实施方式的高速缓冲存储器路控制寄存器的一部分;
图5以方框图的形式说明了根据本发明可选实施方式的图2高速缓冲存储器控制电路的一部分;及
图6以方框图的形式说明了根据本发明可选实施方式的图2高速缓冲存储器控制电路的一部分。
本领域技术人员应当理解图中的元件是为了简单和清晰而说明的,不必按比例绘制。例如,图中有些元件的尺寸相对于其它元件有可能夸大了,以帮助提高对本发明实施方式的理解。
具体实施方式
如在此所使用的,术语“总线”用来指多个可用于传输如数据、地址、控制或状态的一种或多种不同类型信息的信号或导体。如在此所讨论的,导体可以参考单个导体、多个导体、单向导体或双向导体来说明或描述。但是,不同的实施方式可以改变导体的实现。例如,可以使用单独的单向导体,而不使用双向导体,反之亦然。而且,多个导体可以用串行或以时间多路复用方式传输多信号的单个导体代替。同样,携带多信号的单个导体可以被隔离成携带这些信号子集的各种不同导体。因此,对于传输信号存在许多选择。
通常,高速缓冲存储器的性能和功耗可以通过降低高速缓冲存储器污染来改进。如上所述,如果具有较高重用度的信息仍存在于高速缓冲存储器中,那么当具有较低重用度的信息替换它时,会发生高速缓冲存储器污染。本发明的一种实施方式通过控制各种类型信息在高速缓冲存储器中的放置来降低高速缓冲存储器污染。例如,不同类型的信息可以具有不同的生命周期。例如,与如多媒体、图形或流数据的瞬变数据相比,指令和堆栈或堆数据通常具有较长的生命周期。其它类型的信息还可以具有可变的生命周期。具有较长生命周期的信息通常具有较高的重用概率,因为相同的信息更有可能被再次请求。因此,如果当请求时这些信息已经在高速缓冲存储器中了,那么效率就可以提高。但是,如果具有较短生命周期的信息不断地替换具有较长生命周期的信息,那么在随后对具有较长生命周期的信息进行请求的时候,很有可能它已经不在高速缓冲存储器中了,因而必须从又慢又低效的存储器中重取。注意,尽管如此,但还是期望允许具有较短生命周期的信息也受益于重用。因此,如下面将更加具体描述的,本发明的不同实施方式允许以可编程和灵活的方式控制信息在高速缓冲存储器中的放置,以允许改进的高速缓冲存储器性能,并由此降低系统的功耗。
参考图1,说明了数据处理系统10的一种实施方式。数据处理系统10包括集成电路12和外部存储器14。集成电路12包括处理器16、高速缓冲存储器18、总线接口22及其它模块20。集成电路12还包括总线24和总线26。总线24耦合处理器16、高速缓冲存储器18、总线接口22及其它模块20。总线26将总线接口22耦合到外部存储器14。尽管公开了数据处理系统10的特定的示例实施方式,但应当理解这种处理系统的各种配置和可选实施方式都可以实现。
例如,尽管高速缓冲存储器18示为集成电路12的一部分,但高速缓冲存储器18可选地可以位于集成电路12的外面,例如,位于外部存储器14中。而且,注意集成电路12可以包括任意个数的处理器,如在多处理器数据处理系统中,而其它模块20可以包括任何其它的外围设备,如其它主机、从机或存储器。而且,集成电路12可以包括任意个数的集成电路,使得集成电路12的不同部分可以位于不同的集成电路中,或者可选地,集成电路12可以是单个集成电路。而且,外部存储器14可以位于和集成电路12相同的集成电路中,或者可以位于单独的集成电路中。如以下参考图2至5将要描述的,对数据处理系统10的讨论只进行到理解本发明实施方式所必需的程度。其余的功能在本领域中是已知的,因而可以本领域中已知的多种不同方式实现。
参考图2,公开了高速缓冲存储器18一部分的一种特定实施方式。高速缓冲存储器18的这部分包括寄存器62、用于多路的标记存储器阵列42-48、用于多路的数据存储器阵列50-56及高速缓冲存储器控制电路58。访问地址40是从总线24的地址部分接收的,具有标记值部分64、索引部分66和字选择部分68。例如,对于读访问,访问地址40对应于所请求信息(例如,数据或指令)的地址。在所说明的实施方式中,访问地址40在接收到后存储在寄存器62中。访问地址40的标记部分64包括提供给多路标记阵列42-48的标记值数据。来自索引部分66的数据既提供给多路标记阵列42-48,又提供给多路数据阵列50-56,并用于提供对标记和数据阵列的索引。例如,在一种实施方式中,索引部分66包括一组指示符来选择每一路标记和数据中预定个数组中的一个。来自字选择部分68的数据提供给多路数据阵列50-56,使得一个数据阵列,如数据阵列(第0路)50,中的数据由索引部分66和字选择部分68指示。即,索引部分66可以识别数据阵列(第0路)50的一个输入项,然后字选择68识别该输入项的一部分。多路数据阵列还耦合到总线24的双向数据部分,以便从总线24接收数据或向其提供数据。
基于标记值64与标记阵列(第0路)42中位置与索引值66相关的数据之间的比较,每个标记阵列,如标记阵列(第0路)42,向对应的数据阵列,如数据阵列(第0路)50,提供命中信号。例如,在运行中,标记部分64与通过索引部分66从标记阵列(第0路)42检索到的值进行比较,以便提供命中信号72。如果被比较值导致匹配,则可以断言命中信号72指示命中。数据阵列(第0路)50包括多个数据块,由索引值66和字选择值68寻址,响应命中,寻址数据项从数据阵列(第0路)50输出到总线24的数据部分。但是,如果被比较值没有导致匹配,则不能断言命中信号72,指示高速缓冲存储器18这一路的失效。如果标记值64与标记阵列42-48中任一标记都不匹配,则不断言命中信号72-78中的任何一个,指示访问地址40导致高速缓冲存储器18中的失效。
注意,图2仅仅说明了高速缓冲存储器18一部分的一种例子。但是,注意在可选实施方式中,寄存器62、标记阵列42-48及数据阵列50-56可以本领域中已知的多种不同方式实现,以实现期望的功能。
如以下更具体描述的,高速缓冲存储器控制电路58接收至少一部分访问地址40,并确定对应于当前访问的选定规则集。选定的规则集指示如果有的话,第0至第N路中哪一路可用于替换。在本发明的一种实施方式中,每个规则集为高速缓冲存储器中的每一路提供单个控制位,指示当选定规则集时特定一路是否是替换的候选。其它实施方式可以使用指示给定一路关于给定规则集是否被看做替换候选的可选方法。
对于运行的一个例子,响应来自请求设备的读访问请求,被请求信息的地址作为访问地址40提供给高速缓冲存储器18。如上所述,如果访问地址40的标记值64没有导致标记阵列42、44、46和48中的任何匹配,则发生失效。在失效的情况下,响应读请求,被请求信息从如外部存储器14或任何其它(内部或外部)存储器的存储器提取,存储在高速缓冲存储器中并提供给请求设备。在一种实施方式中,高速缓冲存储器控制电路58基于访问地址40的至少一部分选择选定规则集、应用选定的规则集来确定哪些路可用于接收和存储取出的信息、选择由选定规则集指示的要存储所取出信息可用的路并确定当前选定的路中什么信息可以用取出的信息代替。因此,高速缓冲存储器控制电路通过通信通路70向数据阵列50-56提供写启用89,以便使选定的路可以被更新。高速缓冲存储器控制电路58还通过通信通路61与标记阵列42-48通信,当选定的对应数据阵列被写时根据需要控制标记阵列的更新。由于这种功能在本领域是众所周知的,因此进一步的描述将集中在对数据阵列50-56的更新,对标记阵列42-48适当的对应更新将不再进一步描述。高速缓冲存储器控制电路58还双向耦合到总线24的数据、地址和控制部分。注意,高速缓冲存储器控制电路58还可用执行本领域已知的多种其它功能,因此只有可用于图3-5实施方式的高速缓冲存储器控制电路58的那些部分将在此具体描述。
图3说明了图2高速缓冲存储器控制电路58一部分的一种实施方式。图3的实施方式包括可以包括高速缓冲存储器路控制寄存器100的规则集选择电路113和替换控制电路112。规则集选择电路113从总线24的地址部分接收访问地址40的高位,并使用这些高位选择规则集102、104、106和108中的一个作为选定规则集110。然后,选定规则集110提供给输出写启用89的替换控制电路。在所说明的实施方式中,访问地址40的两个最高位用于选择四个可能规则集(102-108)中的一个。但是,注意在可选实施方式中,任意个数的高位可用于使得能够在更少或更多个可能规则集中进行选择。例如,访问地址40的三个最高位可用于在8个(或更少)的可能规则集中进行选择。在一种实施方式中,用于选择规则集的访问地址40的高位是高速缓冲存储器18与数据处理系统10之间未使用的地址位。因此,由于它们是未使用的,因此它们可以设置成对特定访问地址(由访问地址40的其余位定义的)选择哪个规则集是期望的。例如,对应于统治占优势的瞬变数据的那些地址可以分配给高速缓冲存储器18特定的路,使得只有高速缓冲存储器18该特定的路可以存储瞬变数据。在这个例子中,用于瞬变数据的地址高位可以设置成一个值,例如10,以便选择识别哪些路以用于该特定类型瞬变数据的规则集106。类似地,对应于指令或其它较长生命周期信息的那些地址高位可以设置成一个值,例如00,以便选择识别哪些路可用于该特定类型较长生命周期数据的规则集102。
注意,在可选实施方式中,除最高位以外,访问地址中可能有其它位(如其它未使用的位)可以用于选择合适的规则集。即,在可选实施方式中,规则集选择电路113可以接收访问地址40的其它部分来选择规则集。而且,注意对于图3的实施方式,具有未使用地址位或线的现有数据处理系统设计可以容易地改进,以便以最小的附加电路实现高速缓冲存储器控制电路58的上述部分。
尽管在图3中没有示出,但注意,解码器可用于解码访问地址40的高位,以便向高速缓冲存储器路控制寄存器100提供选择合适规则集的选择信号。因此,本领域普通技术人员应当理解规则集选择电路113可以允许多个地址位用于选择N个输入项中一个的多种不同方式实现。
图4说明了根据本发明一种实施方式的规则集102的例子。在所说明的实施方式中,规则集102对高速缓冲存储器18的每一路(0至N)包括一个替换启用域。例如,规则集102包括第0路替换启用114、第1路替换启用116及第N路替换启用118。在一种实施方式中,每个规则集,如规则集102,存储在用户可编程的寄存器中,使得规则集中的每一位都是用户可编程的。规则集102的每个替换启用域指示对应的路是否可用于替换。即,每个替换启用域指示对应的路是否可用于存储响应导致失效的访问请求从存储器取出的信息。例如,如前一段的例子中所描述的,规则集102可用于对应那些存储较长生命周期信息的地址。在这个例子中,用户可能希望留出第0和5路,用于这种类型的较长生命周期信息,因此可以在规则集102中断言用于第0和5路的替换启用域。在另一例子中,规则集102可用于对应于那些存储系统中最短生命周期信息的地址,意味着用户可能想只分配第0至N路中的一个用于这种类型的信息。以这种方式,通过对最可能增加高速缓冲存储器污染的信息类型只分配特定数量的路,规则集(如规则集102)可用于降低高速缓冲存储器污染。注意,在一种实施方式中,规则集102的每个替换启用域都是单个指示一路是否启用的位。在可选实施方式中,断言位可以指示特定路不能用于替换。可选地,可以使用更多或更少的位,而且用于特定路的域可以不同地组合或编码。
回过头来参考图3,在一种实施方式中,高速缓冲存储器位控制寄存器100包括多个寄存器,每个寄存器存储规则集102-108中的一个,其中每个规则集可以象规则集102那样实现(如上面参考图4所描述的)。可选地,根据例如用于期望实现的期望规则集的数量和大小,高速缓冲存储器位控制寄存器100可以根据需要包括更多或更少寄存器。而且,在可选实施方式中,它们可以不实现为寄存器,而是可以位于其它内部或外部存储器中。在一种实施方式中,寄存器是用户可编程的,以便为用户提供灵活性,使得用户可以决定如何使用可用规则集及如何为不同类型的信息分配高速缓冲存储器18的不同路。一旦由访问地址40的高位选择了特定的规则集,它就作为选定的规则集110提供给替换控制电路112。
基于选定的规则集110,替换控制电路112确定哪一路被选择用于响应高速缓冲存储器失效而存储取出的信息。例如,选定的规则集110(对应于规则集102-108中的一个)可以指示多于一路可用于替换,因此基于选定的规则集110,替换控制电路112可以确定哪些路是可用的,然后确定可用路中的哪路可用于当前替换。在一种实施方式中,替换控制电路112可以使用循环法来选择路,或者可选地,可以使用最近使用法。许多本领域已知的其它方法可用于选择可用于替换的路中的一路。此外,一旦选定了替换用的路,替换控制电路112就能使用本领域已知的多种方式(如循环法或最近使用法)来修改替换状态信息。一旦选择了路,替换控制电路112就可以提供写启用89来启用数据阵列50-56中选定的路。在一种实施方式中,写启用89向高速缓冲存储器18中的每一路提供一个写启用信号。例如,如果高速缓冲存储器18包括8路(例如,0至7),则写启用89将包括8个启用信号,每一路一个。可选地,替换控制电路112(或其它控制电路)可以编码写启用信号来提供写启用89。例如,如果高速缓冲存储器18包括8路,则3位的写启用89可用于选择8路中的一路。如果需要,高速缓冲存储器控制电路58还可以访问标记阵列42-48,以执行替换。还要注意,在可选实施方式中,选定的规则集可能不会启用任一路进行替换,或者替换控制电路112可能根本不会从可用路中选择任一路。
图5说明了高速缓冲存储器控制电路58一部分的可选实施方式。图5的实施方式允许用户基于访问地址40(相邻或不相邻的)的任一子集选择可编程的规则集。高速缓冲存储器控制电路58的这部分包括规则集选择电路136、它包括地址线选择器120、地址线选择寄存器124、规则集选择器控制寄存器126、高速缓冲存储器路控制寄存器100和替换控制电路112。地址线选择器120基于地址线选择寄存器124选择访问地址40的一部分并将来自所选定地址线的数据作为索引提供给规则集选择器控制寄存器126。在一种实施方式中是用户可编程寄存器的规则集选择器控制寄存器126向高速缓冲存储器路控制寄存器100提供指示规则集102-108中一个的规则集指示符134。然后,选定的规则集作为选定规则集110提供给替换控制电路112,然后替换控制电路112提供写启用89。因此,注意规则集选择电路136接收访问地址40(或至少访问地址40的一部分)并提供选定规则集110。注意,包括规则集102-108、选定规则集110、替换控制电路112和写启用89的高速缓冲存储器路控制寄存器100如上面参考图3和4所描述的运行,因此不再参考图5的实施方式具体讨论。
在一种实施方式中,地址线选择寄存器124是用户可编程寄存器,它允许用户指示访问地址40的哪些线(或位)用于选择规则集。然后,基于地址线选择寄存器124,地址线选择器120将(从访问地址40选定位或线)所指示的地址值作为索引122提供给规则集选择器控制寄存器126。例如,在一种实施方式中,地址线选择寄存器124可以对访问地址40的每个地址位有一位,其中如果断言寄存器124的一位,则访问地址40的对应地址位用作索引122的一部分。可选实施方式可以使用允许用户选择访问地址40的子集(或全部)作为索引122的地址线选择寄存器124的其它格式。在一种实施方式中,索引122包括区分规则集选择器控制寄存器126每个输入项所必需的最少位数。例如,如果规则集选择器控制寄存器126只包括4个或更少的输入项,则只需要访问地址40(相邻或不相邻)的两位(从而导致两位索引122)用于寻址每个输入项。但是,如果规则集选择器控制寄存器126包括8个输入项,则至少需要访问导致40的3条线(从而导致至少三位索引122)。还要注意,索引122可以不同方式从访问导致40的选定位得到。在一种实施方式中,索引122可以简单地是访问地址40选定位或线的串联。在可选实施方式中,可以使用解码器或其它电路基于选定位产生索引122。
规则集选择器控制寄存器126中的每个输入项(如输入项128、130和132)提供选择哪个规则集的指示符。例如,在所说明的实施方式中,如果索引122选择输入项130,则值“11”作为选择规则集108的规则集指示符134提供。因此,在所说明的实施方式中,值“00”指示规则集102、值“01”指示规则集104、值“10”指示规则集106、值“11”指示规则集108。在所说明的实施方式中,规则集选择器控制寄存器126包括指示规则集102的输入项128,指示规则集108的输入项130和指示规则集106的输入项132。在图5所说明的实施方式中,由于高速缓冲存储器位控制寄存器100包括4个可能的规则集,因此规则集选择器控制寄存器126的每个输入项包括两位来从4个规则集中选择。注意,如果有更多规则集,则规则集选择器控制寄存器126的每个输入项将包括更多位。而且,注意规则集选择器控制寄存器126的多个输入项可以指示相同的规则集。而且,注意可选实施方式可以对规则集选择器控制寄存器126的输入项使用不同格式来指示规则集。
在可选实施方式中,高速缓冲存储器位控制寄存器100可以包括缺省规则集(它可以是规则集102-108中的任何一个,或单独的规则集),使得如果索引122不对应于寄存器126的索引,则缺省规则集可以作为选定规则集110提供。例如,如果索引122是两位值,但规则集选择器控制寄存器126只有3个输入项,则索引122中有一个值可以对应于缺省规则集。类似地,在另一例子中,如果索引122是3位值,但规则集选择器控制寄存器126中只有6个输入项,则索引122的一个或两个值可以对应于缺省规则集。
因此,注意在图5的实施方式中,访问地址40的全部或任何部分都可以用于选择规则集,其中通过对规则集选择器控制寄存器126的值进行编程,用户能够灵活地对所请求地址的给定地址范围使用哪个规则集进行编程。而且,注意访问地址40的选定位可以是相邻位不不相邻位。注意图5只是提供了一种实现,但本领域普通技术人员应当理解有多种可用于选择规则集的选择访问地址40一部分来选择规则集指示符的方式,如规则集指示符134。
图6说明了高速缓冲存储器控制电路58一部分的另一可选实施方式。图6的实施方式允许用户基于访问地址40的全部或一部分选择规则集。例如,在所说明的实施方式中,如果有的话,则规则集选择电路138基于访问地址40(或至少访问地址40的一部分)属于什么地址范围来选择规则集。图6高速缓冲存储器控制电路58的这部分包括规则集选择电路138和替换控制电路112,规则集选择电路138包括地址范围比较器140、缺省选择器150和高速缓冲存储器位控制寄存器100。地址范围比较器140和缺省选择器150用于选择规则集102-108或缺省规则集152中的一个。如果访问地址40属于由地址比较器142-148中任何一个定义的地址范围,则选择规则集102-108中的一个。但是,如果访问地址40不属于由地址比较器142-148中任何一个定义的地址范围,则选择缺省规则集152。(注意,在一种实施方式中,缺省规则集152是除规则集102-108之外的附加规则集,但在可选实施方式中,缺省规则集152可以是规则集102-108中的一个)。然后,选定的规则集作为选定规则集110提供给替换控制电路112,然后替换控制电路112提供写启用89。注意,高速缓冲存储器位控制寄存器100(除缺省规则集152之外)、选定规则集110、替换电路112和写启用89如什么参考图3和4所描述的那样运行,因此将不再参考图6的实施方式具体讨论。
如果有的话,地址范围比较器140确定访问地址40属于哪个地址范围。例如,地址比较器142-148中每个都可用于定义一地址范围。在一种实施方式中,地址比较器142-148中每个都包括存储对应范围起始地址和结束地址的电路及比较访问地址40和起始结束地址以确定它是否属于该范围的比较电路。可选地,地址比较器142-148中每个都可以包括存储基地址(定义地址范围的起始地址)和掩码值(定义从基地址开始的范围)的电路及比较由掩码值掩码的访问地址和由掩码值掩码的基地址以确定它是否属于该范围的比较电路。因此,每个范围都指示对应的规则集。例如,在图6所说明的实施方式中,如果访问地址40属于由地址比较器142定义的地址范围,则指示规则集102。如果访问地址40属于由地址比较器144定义的地址范围,则指示规则集104。如果访问地址40属于由地址比较器146定义的地址范围,则指示规则集106。如果访问地址40属于由地址比较器148定义的地址范围,则指示规则集108。
如果访问地址40不属于由地址范围比较器140定义的任一范围,则缺省选择器150选择缺省规则集152。例如,在一种实施方式中,缺省选择器150可以监控,看是否在地址范围比较器140和高速缓冲存储器位控制寄存器100之间耦合的指示符没有一个被断言,然后作为响应,断言它自己的输出指示符来选择缺省规则集152。缺省规则集152在形式和功能上可以和其它规则集,如图4的规则集102,类似。还要注意缺省规则集152是可选的。例如,所有范围都可以定义,使得访问地址40总会属于一个范围。注意可选实施方式可以根据需要包括任意个数的地址范围。此外,注意多个地址范围可以对应于相同的规则集。在一种实施方式中,每个范围是不重叠的。但是,在可选实施方式中,它们可以重叠。
因此,地址范围可以由地址范围比较器140设置来指示不同类型的信息,使得根据地址范围内的信息类型,规则集可用于启用高速缓冲存储器18不同的路。例如,对于流数据,存储流数据的地址的地址范围可以由地址比较器146指示,使得如果访问地址40属于该范围,则指示流数据,因而选择具有被启用(即,可用于)存储流数据的那些路的规则集106。因此,用户在定义哪个地址范围对应于高速缓冲存储器18哪些路上具有灵活性,因而可以使用这种灵活性提高高速缓冲存储器性能并降低高速缓冲存储器污染。
注意以上实施方式是参考响应导致失效的读访问而选择指示高速缓冲存储器18中可用于进行替换的路的规则集描述的。但是,注意在可选实施方式中,上述方法可用于为其它操作,如本领域中已知的响应命中或失效或二者兼有的预取,选择指示高速缓冲存储器18中可用于进行替换的路的规则集。
因此,可以理解规则集选择电路(如规则集选择电路113、136和138)多么不同的实现可用于基于访问地址的至少一部分选择规则集。在每种实施方式中,通过例如为不同类型的信息分配不同的高速缓冲存储器路,规则集都可以设计成为了提高高速缓冲存储器性能并降低高速缓冲存储器污染。例如,在一种应用中,用户可以根据信息的生命周期分配不同的高速缓冲存储器路,使得较短生命周期信息不替换(或过度替换)较长生命周期信息。可选地,信息(除生命周期以外)的不同属性可用于分配不同的高速缓冲存储器路。此外,如高速缓冲存储器位控制寄存器100、规则集选择器控制寄存器126、地址范围比较器140等的规则集选择电路部分的可编程性允许用户对不同类型的应用优化高速缓冲存储器(如高速缓冲存储器18)。而且,图5和6的实施方式允许根据需要以最小的开销定义任意个数的规则集和地址范围。规则集还可以根据需要在任何时候重新编程,包括在任务或线程的执行过程中。此外,优化的执行可以不需要分配特定的软件指令也不需要附加的软件执行开销。而且,存储器管理单元不需要知道关于存储在不同存储器范围中信息的类型。
在前面的说明中,参考特定实施方式对本发明进行了描述。但是,本领域普通技术人员应当理解在不背离如下权利要求所述本发明范围的前提下可以进行各种修改和变化。因此,说明书和附图应当看作是说明性而不是限制性的,而且所有这些修改都要包括在本发明范围之内。
好处、其它优点及对问题的解决方案都关于特定实施方式在上面进行了描述。但是,好处、优点、对问题的解决方案及导致任何好处、优点或解决方案发生或变得更加显著的任何元件都不应当看作是任何或全部权利要求关键的、必需的或必要的特征或元件。如在此所使用的,术语一或一个定义为一个或多于一个。如在此所使用的,术语包括和/或具有定义为包括(即,开放式语言)。如在此所使用的,术语“包括”、“包括”或其任何其它变体都是要覆盖不排他的包括,使得包括一系列元件的处理、方法、产品或装置不仅仅包括那些元件,而是可以包括没有明显列出的或这种处理、方法、产品或装置固有的其它元件。
Claims (10)
1.一种用于在具有多路并且包括高速缓冲存储器控制电路的高速缓冲存储器中选择可用于替换的N路的方法,包括:
高速缓冲存储器控制电路提供多个规则集,其中多个规则集中的每个都指定高速缓冲存储器中可用于替换的N路,其中N是大于等于0的整数;
高速缓冲存储器接收访问地址;
规则集选择电路利用访问地址的至少一部分选择多个规则集中选定的一个;及
替换控制电路利用多个规则集中选定的一个,选择高速缓冲存储器中可用于替换的N路。
2.如权利要求1所述的方法,其中访问地址的至少一部分包括多个相邻的访问地址位。
3.如权利要求1所述的方法,还包括:
在所述多个规则集中的第一规则集内提供第一可编程位来启用多路中第一路的替换;
在所述多个规则集中的所述第一规则集内提供第二可编程位来启用多路中第二路的替换。
4.如权利要求1所述的方法,其中访问地址的至少一部分包括多位,而且其中多位包括访问地址的最高位。
5.如权利要求1所述的方法,其中访问地址的至少一部分在高速缓冲存储器中没有进一步的使用。
6.如权利要求1所述的方法,还包括:
规则集选择电路提供规则集选择控制寄存器,该规则集选择控制寄存器接收访问地址的至少一部分并提供用于选择多个规则集中至少一个的规则集指示符。
7.如权利要求1所述的方法,还包括:
提供对应于多个规则集中第一个的第一地址范围;及
在利用访问地址的至少一部分选择多个规则集中选定的一个时,确定访问地址是否在该第一地址范围内。
8.如权利要求7所述的方法,还包括:
提供对应于多个规则集中第二个的第二地址范围;
在利用访问地址的至少一部分选择多个规则集中选定的一个时,确定访问地址是否在该第二地址范围内;并且
如果访问地址不在第一地址范围内,也不在第二地址范围内,则使用多个规则集中的缺省规则集作为多个规则集中选定的规则集。
9.一种集成电路,包括具有多路的高速缓冲存储器,该高速缓冲存储器包括:
规则集选择电路,包括用于存储多个规则集的规则集存储电路,其中多个规则集中的每个都指定高速缓冲存储器中可用于替换的N路,其中N是大于等于0的整数,规则集选择电路使用访问地址的至少一部分提供至少一个选定规则集信号;及
替换控制电路,耦合到规则集选择电路,以接收至少一个选定规则集信号,替换控制电路使用该至少一个选定规则集信号选择高速缓冲存储器中可用于替换的N路。
10.一种高速缓冲存储器控制电路,包括:
存储电路,用于存储多个规则集;
耦合到所述存储电路的电路,其中所述电路使用访问地址的一部分产生规则集指示符,所述规则集指示符用于选择多个规则集中的至少一个,及
其中多个规则集中的所述一个用于选择高速缓冲存储器中可用于替换的至少0路或更多路。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US10/627,559 US6973540B2 (en) | 2003-07-25 | 2003-07-25 | Method and apparatus for selecting cache ways available for replacement |
US10/627,559 | 2003-07-25 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN1809819A CN1809819A (zh) | 2006-07-26 |
CN100407172C true CN100407172C (zh) | 2008-07-30 |
Family
ID=34080672
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN200480017397XA Expired - Fee Related CN100407172C (zh) | 2003-07-25 | 2004-07-13 | 选择替换用高速缓冲存储器路的方法与装置 |
Country Status (7)
Country | Link |
---|---|
US (1) | US6973540B2 (zh) |
EP (1) | EP1652095A2 (zh) |
JP (1) | JP4210698B2 (zh) |
KR (1) | KR101098689B1 (zh) |
CN (1) | CN100407172C (zh) |
TW (1) | TW200532450A (zh) |
WO (1) | WO2005013040A2 (zh) |
Families Citing this family (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20070204107A1 (en) * | 2004-02-24 | 2007-08-30 | Analog Devices, Inc. | Cache memory background preprocessing |
US20060101208A1 (en) * | 2004-11-09 | 2006-05-11 | Intel Corporation | Method and apparatus for handling non-temporal memory accesses in a cache |
US7650466B2 (en) * | 2005-09-21 | 2010-01-19 | Qualcomm Incorporated | Method and apparatus for managing cache partitioning using a dynamic boundary |
US20080052467A1 (en) * | 2006-08-25 | 2008-02-28 | Advanced Micro Devices, Inc. | System for restricted cache access during information transfers and method thereof |
JP2010191754A (ja) * | 2009-02-19 | 2010-09-02 | Mitsubishi Electric Corp | キャッシュ記憶装置 |
US9086977B2 (en) | 2011-04-19 | 2015-07-21 | Freescale Semiconductor, Inc. | Cache memory with dynamic lockstep support |
US9208036B2 (en) | 2011-04-19 | 2015-12-08 | Freescale Semiconductor, Inc. | Dynamic lockstep cache memory replacement logic |
GB2505220A (en) * | 2012-08-23 | 2014-02-26 | Ibm | Efficient rule execution in decision services |
US9811468B2 (en) * | 2014-12-14 | 2017-11-07 | Via Alliance Semiconductor Co., Ltd. | Set associative cache memory with heterogeneous replacement policy |
US10783083B2 (en) * | 2018-02-12 | 2020-09-22 | Stmicroelectronics (Beijing) Research & Development Co. Ltd | Cache management device, system and method |
Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5568632A (en) * | 1993-12-17 | 1996-10-22 | Lsi Logic Corporation | Method and apparatus for cache memory |
CN1206150A (zh) * | 1996-12-24 | 1999-01-27 | 国际商业机器公司 | 改良的高速缓存系统 |
CN1233020A (zh) * | 1998-04-20 | 1999-10-27 | 摩托罗拉公司 | 多路超高速缓冲存储器装置和方法 |
CN1282025A (zh) * | 2000-08-31 | 2001-01-31 | 后健慈 | 动态随机存取内存的记忆页运作方法及其架构 |
US6393525B1 (en) * | 1999-05-18 | 2002-05-21 | Intel Corporation | Least recently used replacement method with protection |
CN1391167A (zh) * | 2002-01-14 | 2003-01-15 | 智慧第一公司 | 将置换路信息整合于目录的关联高速缓存 |
US20030084247A1 (en) * | 2001-10-26 | 2003-05-01 | Song Seungyoon Peter | Method and system for programmable replacement mechanism for caching devices |
CN1427341A (zh) * | 2001-12-20 | 2003-07-02 | 中国科学院计算技术研究所 | 动态索引的微处理器高速缓存方法 |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6434671B2 (en) | 1997-09-30 | 2002-08-13 | Intel Corporation | Software-controlled cache memory compartmentalization |
US6205519B1 (en) | 1998-05-27 | 2001-03-20 | Hewlett Packard Company | Cache management for a multi-threaded processor |
GB9901933D0 (en) | 1999-01-28 | 1999-03-17 | Univ Bristol | Cache memory |
JP2002140234A (ja) * | 2000-11-02 | 2002-05-17 | Hitachi Ltd | キャッシュ装置 |
US20030159003A1 (en) * | 2001-10-23 | 2003-08-21 | Ip-First, Llc | Associative cache memory with replacement way information integrated into directory |
-
2003
- 2003-07-25 US US10/627,559 patent/US6973540B2/en not_active Expired - Lifetime
-
2004
- 2004-07-13 JP JP2006521113A patent/JP4210698B2/ja not_active Expired - Fee Related
- 2004-07-13 EP EP04778112A patent/EP1652095A2/en not_active Withdrawn
- 2004-07-13 CN CN200480017397XA patent/CN100407172C/zh not_active Expired - Fee Related
- 2004-07-13 WO PCT/US2004/022439 patent/WO2005013040A2/en active Application Filing
- 2004-07-13 KR KR1020067001662A patent/KR101098689B1/ko active IP Right Grant
- 2004-07-23 TW TW093122204A patent/TW200532450A/zh unknown
Patent Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5568632A (en) * | 1993-12-17 | 1996-10-22 | Lsi Logic Corporation | Method and apparatus for cache memory |
CN1206150A (zh) * | 1996-12-24 | 1999-01-27 | 国际商业机器公司 | 改良的高速缓存系统 |
CN1233020A (zh) * | 1998-04-20 | 1999-10-27 | 摩托罗拉公司 | 多路超高速缓冲存储器装置和方法 |
US6393525B1 (en) * | 1999-05-18 | 2002-05-21 | Intel Corporation | Least recently used replacement method with protection |
CN1282025A (zh) * | 2000-08-31 | 2001-01-31 | 后健慈 | 动态随机存取内存的记忆页运作方法及其架构 |
US20030084247A1 (en) * | 2001-10-26 | 2003-05-01 | Song Seungyoon Peter | Method and system for programmable replacement mechanism for caching devices |
CN1427341A (zh) * | 2001-12-20 | 2003-07-02 | 中国科学院计算技术研究所 | 动态索引的微处理器高速缓存方法 |
CN1391167A (zh) * | 2002-01-14 | 2003-01-15 | 智慧第一公司 | 将置换路信息整合于目录的关联高速缓存 |
Also Published As
Publication number | Publication date |
---|---|
JP4210698B2 (ja) | 2009-01-21 |
JP2006529034A (ja) | 2006-12-28 |
US6973540B2 (en) | 2005-12-06 |
KR101098689B1 (ko) | 2011-12-23 |
CN1809819A (zh) | 2006-07-26 |
WO2005013040A3 (en) | 2005-08-04 |
US20050021911A1 (en) | 2005-01-27 |
KR20060055522A (ko) | 2006-05-23 |
EP1652095A2 (en) | 2006-05-03 |
TW200532450A (en) | 2005-10-01 |
WO2005013040A2 (en) | 2005-02-10 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN102138129B (zh) | 用于数据处理系统中的统一高速缓存的错误检测方案 | |
KR100989215B1 (ko) | 다중 레지스터 컨텍스트를 갖는 데이터 프로세싱 시스템및 이를 위한 방법 | |
CN101097547B (zh) | 用智能最近最少使用方案在高速缓存中进行功率性能调整 | |
CN100568187C (zh) | 一种用于对调试消息进行掩码的方法和装置 | |
CN101595462B (zh) | 用以减少多级高速缓冲存储器层级中的掷出的设备和方法 | |
CN102279818B (zh) | 支持有限共享的向量数据访存控制方法及向量存储器 | |
CN100407172C (zh) | 选择替换用高速缓冲存储器路的方法与装置 | |
CN102968294B (zh) | 用于低复杂性指令预取系统的方法和设备 | |
US8356239B2 (en) | Selective cache way mirroring | |
CN102141905A (zh) | 一种处理器体系结构 | |
CN102306093A (zh) | 实现现代处理器间接转移预测的装置及方法 | |
EP3734455A1 (en) | Technology for providing out-of-band processor telemetry | |
CN100437518C (zh) | 低功率组关联缓存 | |
CN111666330A (zh) | 数据的读写方法和装置 | |
CN101211256A (zh) | 一种专用双流水线risc指令系统及其操作方法 | |
CN103238134A (zh) | 编码于分支指令中的双模态分支预测器 | |
US7032102B2 (en) | Signal processing device and method for supplying a signal processing result to a plurality of registers | |
CN101299207A (zh) | 微处理器系统总线与微处理器接口总线转换装置及方法 | |
US20220121576A1 (en) | Reduce Data Traffic between Cache and Memory via Data Access of Variable Sizes | |
US8572147B2 (en) | Method for implementing a bit-reversed increment in a data processing system | |
US20210042111A1 (en) | Efficient encoding of high fanout communications | |
CN100440193C (zh) | 数据处理系统的引擎装置以及相应的数据处理系统和方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
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. |
|
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: 20080730 Termination date: 20190713 |