CN101593161B - 确保微处理器的快取存储器层级数据一致性的装置与方法 - Google Patents
确保微处理器的快取存储器层级数据一致性的装置与方法 Download PDFInfo
- Publication number
- CN101593161B CN101593161B CN 200910147348 CN200910147348A CN101593161B CN 101593161 B CN101593161 B CN 101593161B CN 200910147348 CN200910147348 CN 200910147348 CN 200910147348 A CN200910147348 A CN 200910147348A CN 101593161 B CN101593161 B CN 101593161B
- Authority
- CN
- China
- Prior art keywords
- line taking
- fast line
- removes
- memory cache
- engine
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- 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/0806—Multiuser, multiprocessor or multiprocessing cache systems
- G06F12/0811—Multiuser, multiprocessor or multiprocessing cache systems with multilevel cache hierarchies
-
- 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/0855—Overlapped cache accessing, e.g. pipeline
- G06F12/0859—Overlapped cache accessing, e.g. pipeline with reload from main memory
-
- 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/0804—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches with main memory updating
-
- 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/0806—Multiuser, multiprocessor or multiprocessing cache systems
- G06F12/0815—Cache consistency protocols
- G06F12/0831—Cache consistency protocols using a bus scheme, e.g. with bus monitoring or watching means
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/10—Providing a specific technical effect
- G06F2212/1056—Simplification
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
一种确保微处理器的快取存储器层级数据一致性的装置与方法,该装置包括一移除引擎及一包括多个储存元件的移除阵列。该移除引擎用以将一快取线自一低阶存储器移至一高阶存储器。该包括多个储存元件的移除阵列中的每一储存元件用以储存在该低阶存储器的一对应快取线的一指示状态,其中该指示状态表示该移除引擎目前是否正将该快取线自该低阶存储器移至该高阶存储器。本发明可明显减少储存被移除快取线的地址的需求,且可减少自低阶快取存储器移至高阶快取存储器的快取线的地址的比较操作。
Description
技术领域
本发明是有关于一种微处理器,特别是有关于在快取存储器层级中快取线由低阶存储器移至高阶存储器期间内,确保微处理器的快取存储器层级的数据一致性。
背景技术
现有的微处理器具有一或多个内部快取存储器以减少对微处理器存储器的平均存取时间。快取存储器具有多种不同的架构及尺寸,但是一般都具有一个数据储存区域和一个地址储存区域。数据储存区域一般被规划作为一些字节的快取线(cacheline)。在现有技术中,快取线可为64字节(bytes)。快取存储器一般存储指令或数据,也可以被规划作为混合式快取存储器,其中,混合式快取存储器储存指令及数据。快取存储器以层级(hierarchically)的方式配置。在具有层级1(Level1,L1)快取存储器与层级2(Level,L2)快取存储器的微处理器中,L1快取存储器的存取最为快速,且当在微处理器的存储器次***中寻找指令或数据时,L1快取存储器是被查阅的第一个快取存储器。一般而言,L2快取存储器的尺寸比L1快取存储器大,其存取速度比L1快取存储器慢。
数据由***存储器或高阶快取存储器(例如在具有L1快取存储器及L2快取存储器的微处理器中的L2快取存储器)转而储存在低阶快取存储器(例如L1快取存储器)的快取线时,通常是因应于一快取失败(cache miss)。当读取(载入)或写入(储存)企图存取此快取存储器时,若其正读取的地址或所写入的地址不在此快取存储器时,则发生快取失败。对于一载入指令而言,微处理器将通常把来自L2快取存储器或***存储器的数据(不论此数据是否为最快速可存取格式)载入至L1快取存储器中的有效快取线。对于一储存指令而言,假使存在有效的快取线时,微处理器通常把数据直接储存在L1快取存储器中。假使L1快取存储器不存在有效快取线时,根据快取存储器所使用的快取线替代策略(cache line replacement policy),微处理器可将数据移至高阶快取存储器L2的快取线。在现有技术中,快取线替代策略可为最久未使用(least recently memory,LRU)策略,即是优先清除在快取存储器中最久未被使用的数据,并释放其空间(亦即快取线)。
假使快取线替代策略是随意地选择快取存储器中的任何快取线以指派给主要存储器中配置的任一存储区块,则称为全相联映射(fully associative)。假使在主要存储器中的每一存储区块只可指派给快取存储器的固定快取线,则称为直接映射(directmapped)。许多微处理器的快取存储器采取“组相联映射(setassociative mapping)”,其融合了直接映射与全相联映射的优点,并改良其缺点。举例而言,在两组相联快取存储器(2-wayset associative cache memory)中,主要存储器内的任何特定地址可被快取(cache)在此快取存储器中两条快取线的任一者。同样的,在四组相联快取存储器(4-way set associative cachememory)中,主要存储器内的任何特定地址可被快取在此快取存储器中四条快取线的任一者。
微处理器电路自L1快取存储器中选择欲移除(evict)的一快取线,接着读取被选择的快取线,将该快取线写入至L2快取存储器中的有效(available)快取线并无效(invalidate)L1快取存储器的该快取线状态。快取线状态协定之一为MESI协定,其是广泛使用的快取存储器与存储器数据一致性的协定。MESI协定指定四个可能状态给快取存储器内的每一快取线:已修改(Modified)状态、独占(Exclusive)状态、共用(Shared)状态或无效(Invalid)状态。已修改MESI状态的快取线只出现在当前快取存储器,且其已被主要存储器内的一数值修改。在允许(不再有效的)主要存储器状态的任何其他读取之前,快取存储器被要求在某一时间上把数据写回至主要存储器。独占MESI状态的快取线只出现在当前快取存储器,但它是最新的(up to date)且匹配(match)主要存储器。共用MESI状态的快取线可与其它快取存储器共用,其可储存于多个快取存储器中。无效MESI状态的快取线为不可使用的快取线,其不含有效数据数值。被移除快取线(于移除之后)具有一无效MESI状态。
自低阶快取存储器移到高阶快取存储器的快取线通常花费多个微处理器时脉周期。多个快取存储器通常被设置在微处理器中相对远的位置,且单一移动的数据承载量(data payload)有时少于一快取线的大小。通常而言,当快取线自快取存储器移除时,在此快取线内的完全或部分数据会被储存或窥察(snoop)。对于储存或窥察操作而言,必须得知相关的快取线的移除处理状态。假使持续进行储存或窥察操作而无法得知相关的快取线移除处理状态,则可能发生尚未被移除的快取线数据将通过储存操作而重复写入,或者发生快取线为无效状态。任一者将导致数据错误,使得微处理器的快取存储器层级的数据无法一致。
为了解决上述在快取线移除期间微处理器的快取存储器层级的数据一致性(data coherency)的问题,微处理器通常通过比较在指令管线中指向快取存储器的储存或窥察指令的地址与移除快取线的地址,来判断快取线是否处于自低阶快取存储器移至高阶快取存储器的程序中。移除快取线的地址必须暂时地储存在微处理器中,直到储存指令的地址已被比较。一般而言,可以串行方式(serially)或以并行方式(parallel)来比较地址。以并行方式来比较多个地址则需要许多比较电路及其他逻辑电路,以将比较结果由所有的比较电路提供至微处理器。以串行方式来比较多个地址则需要为多个储存指令提供足够时间,降低了快取线移除操作的速度与快取存储器效能。因此,微处理器需要一个方法来快速地确认正处于自低阶快取存储器移至高阶快取存储器的程序中的快取线,而不需要大量额外硬件电路来比较上述地址。
发明内容
基于上述目的,本发明揭露了一种在快取线移除期间确保微处理器的快取存储器层级内的数据一致性的装置,该装置包括一移除引擎及一包括多个储存元件的移除阵列。该移除引擎用以将一快取线自一低阶存储器移至一高阶存储器。该包括多个储存元件的移除阵列中的每一储存元件用以储存在该低阶存储器的一对应快取线的一指示状态,其中该指示状态表示该移除引擎目前是否正将该快取线自该低阶存储器移至该高阶存储器。
本发明更揭露了一种在快取线移除期间确保微处理器的快取存储器层级内的数据一致性的方法,该方法包括下列步骤:将一快取线自一低阶存储器移至一高阶存储器,其中该移除操作由一移除引擎所执行。在进行该移除操作前,先将该低阶存储器中的一对应快取线的一指示状态储存至一移除阵列中的多个储存元件之一,其中该指示状态表示该移除引擎目前是否正将该快取线自该低阶存储器移至该高阶存储器。
本发明的优点为相较于传统微处理器而言需要较少的硬件电路,以判断一微处理器的快取存储器层级中的快取线是否正从该低阶存储器移至该高阶存储器。已知微处理器储存与比较该低阶快取存储器的移除快取线的地址与指向该低阶快取存储器的储存或窥察操作的地址。上述操作需要多个地址比较器与控制逻辑电路以及可能的足够时间(possibly significant time)以实现多个所需地址的比较操作。本发明仅需要检查在一移除阵列中的单一位,以判断是否正在移除该快取线。由于该移除阵列判断哪一条(set/way)的快取线正在移除,故明显的减少储存被移除快取线的地址的需求。
本发明的另一优点为减少储存或窥察地址与自低阶快取存储器移至高阶快取存储器的快取线的地址的比较操作。快取线移除的过程中并不需要确认,直到开始执行一储存或窥察操作。低阶快取存储器的移除阵列所需的为单一查询操作(singlelookup),且该查询操作在存取该低阶快取存储器时完成。
本发明的另一优点为在电路上大大减少了判断是否正移除快取线所需的时间。由于储存操作会重写(overwrite),可能损坏正在移除的快取线,故微处理器判断出储存操作指向的快取线正在移除时,需延迟储存操作。自一移除阵列读取单一位的速度相较于比较多个储存操作的地址的速度以判断快取线是否正在移除要快。由于本发明的快取线的移除较已知方法快速,故微处理器的储存或窥察操作相对较快。
本发明的另一优点为减少标签阵列(或包括多个标签阵列)的存取,其是因为移除引擎仅存取移除阵列以判断是否对特定快取线执行移除操作,因此自低阶存储器至高阶存储器的快取线完全移除之前,移除引擎不需存取标签阵列。
附图说明
图1是显示本发明实施例的微处理器的架构示意图。
图2是显示本发明实施例的快取线移除操作的步骤流程图。
图3a是显示本发明实施例的在快取线移除期间执行微处理器的储存操作的步骤流程图。
图3b是显示本发明实施例的在快取线移除期间执行微处理器的载入操作的步骤流程图。
图4是显示本发明实施例的在快取线移除期间执行微处理器的窥察操作的步骤流程图。
图5是显示本发明另一实施例的在快取线移除期间执行微处理器的窥察操作的步骤流程图。
图6是显示本发明实施例的移除阵列、标签阵列与数据阵列的架构示意图。
附图中符号的简单说明如下:
102:储存指令
104:载入/储存/窥察单元
106:载入指令
108:移除阵列
112:更新标签
114:窥察指令
116:更新移除位线
118:移除位
122:移除引擎
124:L1快取数据阵列与标签阵列
126:L2快取数据阵列与标签阵列
128、132:快取线
134:移除完成线
136:更新线
138:读取线
152:重试线
602:标签阵列
604:数据阵列
606:载入/储存/窥察地址索引。
具体实施方式
为了让本发明的目的、特征及优点能更明显易懂,下文特举较佳实施例,并配合所附图式图1至图6,做详细的说明。本发明说明书提供不同的实施例来说明本发明不同实施方式的技术特征。其中,实施例中的各元件的配置是为说明之用,并非用以限制本发明。且实施例中图式标号的部分重复,是为了简化说明,并非意指不同实施例之间的关联性。
本发明实施例揭露了一种在快取线移除期间确保微处理器的快取存储器层级内的数据一致性的装置与方法。
图1是显示本发明实施例的微处理器的架构示意图。
微处理器100包括一移除引擎(Eviction Engine)122,其用以将微处理器100中的快取存储器层级中的一快取线自低阶快取存储器移至高阶快取存储器。该高阶快取存储器与该低阶快取存储器为专用(exclusive)存储器。也就是每一高阶快取与低阶快取包括不同的快取线,而该高阶快取存储器与该低阶快取存储器的快取线间没有重叠。在一实施例中,低阶快取存储器为L1快取数据阵列与标签(tag)阵列124,而高阶快取存储器为L2快取数据阵列与标签阵列126。简言之,L1快取数据阵列与标签阵列124标示为L1快取存储器124,而L2快取数据阵列与标签阵列126标示为L2快取存储器126。
微处理器100亦包括一移除阵列108,其中移除引擎122更新移除阵列108以表示一快取线是否正自L1快取存储器124移至L2快取存储器126。移除阵列108具有与被移除的快取线的低阶快取存储器相同的架构,如图1所示的L1快取存储器124。移除阵列108与L1快取存储器124的数据阵列与标签阵列间的架构描述于图6中。
如图6所示,其是显示本发明实施例的图1的移除阵列108、L1快取存储器124的标签阵列602与数据阵列604的架构示意图。移除阵列108包括多个储存元件,每一储存元件包括一移除位,用以储存在L1快取存储器124中一对应快取线的一指示状态(Indication),其中该指示状态表示该移除引擎目前是否正将该快取线自该低阶存储器移至该高阶存储器。移除引擎122在自L 1快取存储器124移除一快取线至L2快取存储器126之前,通过图1所示的更新移除位线116更新对应该快取线的该移除位为一真值(true value),以及在移除引擎122完成该移除程序后更新该移除位为一假值(false value),即此时L2快取存储器126已取得该快取线的所有权。上述真值为逻辑值为真的位值,上述假值为一逻辑值为假的位值。举例来说,真值为1,假值为0。在图6中,每一标签阵列602、数据阵列604与移除阵列108分别为多个对应阵列组。每一标签阵列602、数据阵列604或移除阵列108由一载入/储存/窥察地址606的索引(index)存取,用以选择每一标签阵列602、数据阵列604或移除阵列108的其中一阵列组。在一实施例中,数据阵列604、标签阵列602与移除阵列108各自的多个对应阵列组皆包括四组(way)的储存元件,其中数据阵列604用以储存快取线,标签阵列602用以储存地址标签与MESI状态,移除阵列108用以储存移除位。因此,在每一次存取中,数据阵列604输出四条快取线,标签阵列602输出四个标签,以及移除阵列108输出四个移除位。在每一标签阵列602、数据阵列604或移除阵列108的输出的对应多工器(未显示)根据一选择信号选择四个输出的其中一个输出以表示其具有匹配该载入/储存/窥察地址606的索引选择的一标签阵列组的一标签(若有的话)。在一实施例中,移除阵列108为一直接写通过(write-through)阵列,也就是把数据同时写入移除阵列108的一位置与主要存储器两者。在另一实施例中,移除阵列108侦测读取与写入移除阵列108中相同位置的冲突,当发生上述冲突时,移除阵列108令该读取操作重新执行(replay)。
参考图1,移除引擎122包括一或多个缓冲器以提供暂存数据。所述缓冲器储存可快取的数据以及有关该数据的位置与状态信息。除了暂存数据外,移除引擎122亦包括状态机(statemachines),其用以管理自L1快取存储器124至L2快取存储器126的快取线的移除操作。微处理器100亦包括一配置(allocation)引擎(未显示),其用以配置自L2快取存储器126至L1快取存储器124的快取线。移除引擎122耦接L1快取存储器124、L2快取存储器126、载入/储存/窥察单元104以及移除阵列108。L1快取存储器124与L2快取存储器126包括快取线的储存空间以及每一快取线的标签。上述标签包括对应快取线的地址标签与MESI状态。
虽然图1的快取存储器层级显示了二个快取存储器,其中以一移除阵列108表示自L1快取存储器124至L2快取存储器126的快取线移除操作是否正在执行,但并不限于此,例如包括二个以上的快取存储器的其它实施例,可利用多个移除阵列来表示该快取存储器层级中的每一低阶快取存储器至其各自对应的高阶快取存储器的移除操作。在上述实施例中,每一移除阵列的架构与每一对应的低阶快取存储器相同。因此,在一实施例中,微处理器100亦包括一层级3(Level,L3)快取存储器,其是位于L2快取存储器126之上。在此实施例中,微处理器100包括一第二移除阵列,其具有与L2快取存储器126相同的架构,且表示自L2快取存储器126移至L3快取存储器的快取线移除操作是否正在执行。
微处理器100包括载入/储存/窥察单元104。载入/储存/窥察单元104中的载入单元将主要存储器或快取存储器的数据载入微处理器100的暂存器。载入/储存/窥察单元104中的储存单元将微处理器100的暂存器的数据储存至主要存储器或快取存储器。载入/储存/窥察单元104中的窥察单元用以窥察微处理器总线侦测到之上的数据传输(transactions),以维护***中不同快取存储器的快取一致性(cache coherency)。载入/储存/窥察单元104通过读取线138读取L1快取存储器124的快取线与标签,并且通过更新线136更新L1快取存储器124的快取线与标签。此外,载入/储存/窥察单元104读取移除阵列108的移除位118。此外,载入/储存/窥察单元104中的窥察单元产生一真值于重试线152上以令微处理器100的总线接口单元(未显示)重试微处理器100的总线的窥察操作,其详述于下文。在一实施例中,载入/储存/窥察单元104可以是一单一整合电路(single monolithicgroup of circuits),其管理所有微处理器100的载入指令106、储存指令102与窥察指令114,而在其它实施例中,载入/储存/窥察单元104表示为三个单元。
微处理器100中的替代策略演算法(Replacement policyalgorithms)为侦测到另一快取线比当前的快取线更可能被微处理器100引用时,移除引擎122将当前快取线自L 1快取存储器124移至L2快取存储器126。载入/储存/窥察单元104自移除阵列108读取移除位118,以判断移除引擎122目前是否正移除包括有储存指令102或窥察指令114指定的数据的快取线。
在开始将一快取线自L1快取存储器124移至L2快取存储器126之前,移除引擎122通过更新移除位线116设定对应于正在被移除的快取线的移除阵列108中的移除位的指示状态以表示目前正将该快取线自该低阶存储器移至该高阶存储器。在移除引擎122设定对应于正在被移除的快取线的移除阵列108中的移除位后,移除引擎122读取L1快取存储器124的快取线128。在读取L1快取存储器124的快取线128后,移除引擎122对L2快取存储器126的快取线132进行写入。当完成L2快取存储器126快取线132的写入时,L2快取存储器126产生一真值通过移除完成线134给移除引擎122。移除引擎122通过更新移除位线116来清除移除阵列108的对应移除位,以指示完成快取线移除的操作。此外,移除引擎122通过更新标签线112更新L1快取存储器124内的标签。举例来说,在一实施例中,移除引擎122在将快取线由L1快取存储器124移至L2快取存储器126后,将快取线的标签更新为无效MESI状态。
在一实施例中,载入/储存/窥察单元104包括载入管线与储存管线。在此实施例中,执行图1与下文流程图所示的不同操作,移除引擎122仲裁上述二种管线的存取操作。载入管线接收载入指令106,并相应地读取L1快取存储器124的指定数据。储存管线接收储存指令102与窥察指令114,并相应地读取L1快取存储器124的标签,以及在需要时更新L1快取存储器124的标签与快取线。移除阵列108具有一读取端口与一写入端口。在一实施例中,移除阵列108的读取端口耦接于储存管线,而移除阵列108的写入端口耦接于载入管线。储存操作与窥察操作读取移除阵列108以判断当前储存与窥察的快取线是否正从L1快取存储器124移除。由于移除阵列108的写入端口耦接于载入管线,移除引擎122产生一移除阵列108更新至该载入管线,其仲裁载入管线与载入指令106的存取。载入管线相应的设定或清除由L 1快取存储器124移至L2快取存储器126的快取线对应的移除位。
当处理载入指令106时,微处理器100不需存取移除阵列108。相对的,微处理器100读取L1快取存储器124的标签阵列602以判断L1快取存储器124是否取得包括载入指令106指定的数据的快取线的所有权,其将说明于图3b中。
图2是显示本发明实施例的快取线移除操作的步骤流程图。本流程起始于步骤202。
在步骤S202中,移除引擎122判断L1快取存储器124的一快取线需要移除。举例来说,当载入/储存/窥察单元104具有比目前快取线会更常被存取的储存数据,微处理器100可选择一快取线以进行移除。接着执行步骤S204。
在步骤S204中,移除引擎122通过更新移除位线116来设定移除阵列108中与上述移除快取线相关的移除位。移除阵列108具有与L1快取存储器124相同的架构,包括与L1快取存储器124的每一快取线相关的移除位。接着执行步骤S206。
在步骤S206中,移除引擎122读取L1快取存储器124的移除快取线128。接着执行步骤S208。
在步骤S208中,移除引擎122将L1快取存储器124的移除快取线128写入L2快取存储器126的一快取线132。在一实施例中,快取线的大小大于移除引擎122与L1快取存储器124与/或L2快取存储器126之间的总线大小,因此,在步骤206中,移除引擎122通过多工读取操作读取L1快取存储器124的快取线128,以及在步骤208中,移除引擎122通过多工写入操作写入L2快取存储器126的快取线132。在一实施例中,移除引擎122串行地(serially)执行多工操作(multiple operations)。在另一实施例中,移除引擎122以一管线方法(pipelined manner)执行多工操作。接着执行步骤S212。
在步骤S212中,当完成L2快取存储器126快取线132的写入时,L2快取存储器126通知移除引擎122已准备好通过产生移除完成线(eviction completed line)134的真值来取得完成写入的快取线的所有权。当在步骤208完成写入操作后,L2快取存储器126产生一真值于移除完成线134给移除引擎122。接着执行步骤S214。
在步骤S214中,移除引擎122使L1快取存储器124的移除快取线无效并且清除移除阵列108中与移除快取线相关的移除位。移除引擎122通过更新标签线112更新L1快取存储器124内的标签,并且通过更新移除位线116来清除移除阵列108中与移除快取线相关的移除位。移除引擎122写入对应L1快取存储器124的移除快取线的标签至一无效MESI状态,使L1快取存储器124的移除快取线无效。接着结束本流程。
图3a是显示本发明实施例的在快取线移除期间执行微处理器100的储存操作的步骤流程图。本流程起始于步骤302。
在步骤S302中,载入/储存/窥察单元104中的储存单元接收储存指令102并且相应的产生一储存操作。储存指令102指定一存储器的储存地址,其中微处理器100将微处理器100的暂存器中的储存数据写入该存储器的储存地址。该储存地址可能存在于L1快取存储器124的快取线。接着执行步骤S304。
在步骤S304中,储存单元用储存指令102指定的储存地址来存取L1快取存储器124。若该储存地址的标签与通过该储存地址的索引选择的标签阵列中其中一标签阵列组相匹配,且该标签的MESI状态不是无效状态下时,L1快取存储器124表示命中(hit),其表示储存指令102指向存在于L1快取存储器124数据阵列中的快取线。该储存单元亦通过储存指令102的储存地址存取移除阵列108,以读取对应储存指令102的快取线的移除位118。接着执行步骤S306。
在步骤S306中,该储存单元评估移除位118是否设定。若移除位118已被设定,则表示移除引擎122目前正移除该对应的快取线,接着执行步骤S312。若移除位118未被设定,则表示移除引擎122没有正在执行该对应的快取线的移除操作。接着执行步骤S308。
在步骤S308中,由于没有对应快取线移除操作在执行,储存单元执行储存指令102。特别的是,若储存指令102指向L1快取存储器124中的快取线,该储存单元将储存数据写入至L1快取存储器124数据阵列中的快取线,将储存地址的标签写入至标签阵列,并且适当更新标签阵列中的MESI状态。然而,若储存指令102指向未存在L1快取存储器124中的快取线,配置引擎(未显示)配置一快取线128于L1快取存储器124中,自L2快取存储器126(或***存储器)读取一快取线132后,再写入L1快取存储器124的快取线128。亦即,配置引擎在该储存操作执行之前将一快取线自该高阶存储器移至该低阶存储器以更新该快取线。此外,若储存指令102指向具有共用MESI状态的快取线,该配置引擎将该快取线更新至已修改MESI状态。接着结束本流程。
在步骤S312中,储存单元重新执行该储存操作,直到移除位118被清除。该储存操作通过使该储存指令被重新执行以存取储存单元管线,其可有效的执行步骤304与306中的相同操作,直到移除位118被清除。接着执行步骤S314。
在步骤S314中,载入/储存/窥察单元104中的储存单元要求重新配置L2快取存储器126中的快取线至L1快取存储器124。配置引擎在储存单元提出要求时执行重新配置操作。由于在允许储存该快取线前,L1快取存储器124必须取得该快取线的所有权,故L2快取存储器126至L1快取存储器124的快取线的重新载入操作是必要的。此外,储存操作所需的存储器大小比整个快取线要小,且不是储存操作的一部分的快取线数据必须是在已知的状态。接着执行步骤S316。
在步骤S316中,在快取线重新配置至L1快取存储器124后,载入/储存/窥察单元104中的储存单元执行储存指令102,接着结束本流程。
在上述流程中说明了,该移除引擎122禁止储存单元进行一储存操作以更新一快取线,直到该移除位118的指示状态表示该移除引擎122已完成将该快取线自一低阶存储器移至一高阶存储器。
图3b是显示本发明实施例的在快取线移除期间执行微处理器的载入操作的步骤流程图。本流程起始于步骤322。
在步骤S322中,载入/储存/窥察单元104中的载入单元接收一载入指令106。接着执行步骤S324。
在步骤S324中,该载入单元在载入指令106指定的地址读取L1快取存储器124的标签阵列与数据阵列。载入指令106指定微处理器100会读取载入数据的一存储器位置的地址给微处理器100的暂存器。该载入地址可能存在于L1快取存储器124的快取线。接着执行步骤S326。
在步骤S326中,该载入单元完成执行载入指令106。由于该载入单元正由L1快取存储器124读取快取线,故不需理会载入指令106定址的快取线的移除位值。只要该快取线存在于L1快取存储器124中且该快取线的MESI值为有效,则载入指令将完成执行,接着结束本流程。
在上述流程中说明了,当该移除阵列108的移除位118的指示状态表示该移除引擎122目前正将一快取线自一低阶存储器移至一高阶存储器时,该移除引擎122允许一载入操作以读取该快取线。
图4是显示本发明实施例的在快取线移除期间执行微处理器100的窥察操作的步骤流程图。若快取存储器中具有窥察指令114指定的地址,则窥察指令114令该快取存储器使得由窥察指令114指定的地址的快取线无效。本流程起始于步骤402。
在步骤S402中,载入/储存/窥察单元104中的窥察单元接收窥察指令114,并且相应的产生一窥察操作(snoop queryoperation)。当微处理器100的总线接口单元(未显示)接收微处理器100的总线的窥察指令114时,该窥察单元从微处理器100的总线接口单元接收窥察指令114。窥察指令114指定可能出现在L1快取存储器124中的快取线的地址为无效。接着执行步骤S404。
在步骤S404中,该窥察单元读取L1快取存储器124标签阵列,以判断窥察指令114是否指向L1快取存储器124中的有效快取线。该窥察单元亦通过窥察指令114的窥察地址存取移除阵列108以读取对应窥察指令114的快取线的移除位118。接着执行步骤S406。
在步骤S406中,该窥察单元评估在步骤404读取的移除位118是否设定。若移除位118已被设定,则表示移除引擎122目前正移除对应移除位118的快取线,接着执行步骤S412。若移除位118未被设定,则表示移除引擎122没有正在执行对应该移除位118的快取线的移除操作。接着执行步骤S408。
在步骤S408中,由于该窥察地址指定的快取线未正被移除,故该窥察单元正常回应该窥察指令114。特别的是,该窥察单元通过更新线136将窥察指令114定址的L1快取存储器124的快取线的MESI状态更新为无效。此外,若该快取线为已修改的MESI状态,则该窥察单元在使该快取线无效前将该快取线写回存储器总线上的主要存储器,然后结束本流程。
在步骤S412中,该窥察单元产生重试(Retry)152给微处理器100的总线接口单元,使得该总线接口单元在微处理器100的总线上重新执行窥察指令114。该总线接口单元相应的在微处理器100的总线上转送窥察指令114的重试。接着执行步骤S414。
在步骤S414中,当在步骤412中该总线接口单元产生该重试后,原先产生窥察指令114的微处理器100的总线上的代理装置(agent)重新发送窥察指令114给***中的所有快取存储器。接着回到步骤402以执行重试的窥察指令114,直到移除阵列108表示移除操作已完成。
在上述流程中说明了,该移除引擎122阻止该微处理器回应一快取线的一窥察操作,直到对应该快取线的移除位118的指示状态表示该移除引擎122已完成将该快取线自该低阶存储器移至该高阶存储器。
图5是显示本发明另一实施例的在快取线移除期间执行微处理器100的窥察操作的步骤流程图。本流程起始于步骤502。
在步骤S502中,载入/储存/窥察单元104中的窥察单元接收窥察指令114,并且相应的产生窥察操作,其与图4的步骤402相同。接着执行步骤S504。
在步骤S504中,该窥察单元读取L1快取存储器124标签阵列,以判断窥察指令114是否指向L1快取存储器124中的有效快取线。该窥察单元亦通过窥察指令114的窥察地址存取移除阵列108以读取对应窥察指令114的快取线的移除位118。其与图4的步骤404相同。接着执行步骤S506。
在步骤S506中,该窥察单元评估在步骤504读取的移除位118是否设定,其与图4的步骤406相同。若移除位118已被设定,则表示移除引擎122目前正移除对应移除位118的快取线,接着执行步骤S512。若移除位118未被设定,则表示移除引擎122没有正在执行对应该移除位118的快取线的移除操作,接着执行步骤S508。
在步骤S508中,由于该窥察地址指定的快取线未正被移除,故该窥察单元正常回应该窥察指令114,其与图4的步骤408相同,接着结束本流程。
在步骤S512中,窥察单元回应HIT信号或HITM信号给总线接口单元,且该总线接口单元转送HIT信号或HITM信号给微处理器100的总线。若快取线的MESI状态为独占状态或共用状态,则窥察单元产生HIT信号。若快取线的MESI状态为已修改状态,则窥察单元产生HITM信号。若窥察单元产生HITM信号,微处理器100需要将L1快取存储器124的已修改状态的快取线写回至主要存储器。接着执行步骤S514。
在步骤S514中,微处理器100的窥察单元轮询(poll)移除阵列108,直到移除位被清除。当快取线移除完成时,移除引擎122清除移除阵列108中的移除位118,如图2所示。由于移除操作已经完成,通常是在下次重试窥察指令114时来清除移除位118。然而,若未清除,则再次执行重试窥察指令114。接着执行步骤S516。
在步骤S516中,若快取线的MESI状态为已修改状态,则窥察单元指示移至L2快取存储器126的快取线写回至主要存储器,以及使L2快取存储器126的快取线无效。本实施例中的L2快取存储器126负责使快取线无效,并且将已修改状态的快取线写回至主要存储器,接着结束本流程。本发明是实作于一微处理器装置内,其可使用于一般用途的计算机。
本发明的方法,或特定型态或其部分,可以以程序码(如C、C++、硬件描述语言(Hardware Description Languages,HDL)(包括Verilog HDL、VHDL...等等)或任何其它程序)的型态存在。程序码可以包括于实体介质,如软盘、光盘片、硬盘、或是任何其他机器可读取(如计算机可读取)储存介质,其中,当程序码被机器,如计算机载入且执行时,此机器变成用以参与本发明的装置。程序码也可以通过一些传送介质,如电线或电缆、光纤、或是任何传输型态进行传送,其中,当程序码被机器,如计算机接收、载入且执行时,此机器变成用以参与本发明的装置,如中央处理器(CPU)、微处理器、微控制器、数字信号处理器、处理器核心、***单芯片(SOC)或任何其它装置。当在一般用途处理单元操作时,程序码结合处理单元提供一操作类似于应用特定逻辑电路的独特装置。
以上所述仅为本发明较佳实施例,然其并非用以限定本发明的范围,任何熟悉本项技术的人员,在不脱离本发明的精神和范围内,可在此基础上做进一步的改进和变化,因此本发明的保护范围当以本申请的权利要求书所界定的范围为准。
Claims (18)
1.一种在快取线移除期间确保微处理器的快取存储器层级内的数据一致性的装置,其特征在于,该装置包括:
一移除引擎,用以将一快取线自一低阶存储器移至一高阶存储器;以及
一移除阵列,耦接于该移除引擎,该移除阵列包括多个储存元件,每一储存元件用以储存在该低阶存储器中一对应快取线的一指示状态,其中该指示状态表示该移除引擎目前是否正将该快取线自该低阶存储器移至该高阶存储器;
其中,该移除引擎禁止一储存操作更新该快取线,直到该指示状态表示该移除引擎已完成将该快取线自该低阶存储器移至该高阶存储器。
2.根据权利要求1所述的在快取线移除期间确保微处理器的快取存储器层级内的数据一致性的装置,其特征在于,更包括一配置引擎用以在该储存操作执行之前将该快取线自该高阶存储器移至该低阶存储器以更新该快取线。
3.根据权利要求1所述的在快取线移除期间确保微处理器的快取存储器层级内的数据一致性的装置,其特征在于,当该指示状态表示该移除引擎目前正将该快取线自该低阶存储器移至该高阶存储器时,该移除引擎允许一载入操作以读取该快取线。
4.根据权利要求1所述的在快取线移除期间确保微处理器的快取存储器层级内的数据一致性的装置,其特征在于,该移除引擎阻止该微处理器回应该快取线的一窥察操作,直到该指示状态表示该移除引擎已完成将该快取线自该低阶存储器移至该高阶存储器。
5.根据权利要求1所述的在快取线移除期间确保微处理器的快取存储器层级内的数据一致性的装置,其特征在于,若该指示状态表示该移除引擎已将该快取线自该低阶存储器移至该高阶存储器,且该快取线的状态为一已修改状态,则该高阶存储器使该快取线无效以及将已修改状态的该快取线写回至一主要存储器来回应该快取线的一窥察操作。
6.根据权利要求1所述的在快取线移除期间确保微处理器的快取存储器层级内的数据一致性的装置,其特征在于,在开始将该快取线自该低阶存储器移至该高阶存储器之前,该移除引擎设定该指示状态以表示目前正将该快取线自该低阶存储器移至该高阶存储器。
7.根据权利要求1所述的在快取线移除期间确保微处理器的快取存储器层级内的数据一致性的装置,其特征在于,当完成将该快取线自该低阶存储器移至该高阶存储器时,该移除引擎清除该指示状态以表示目前已将该快取线自该低阶存储器移至该高阶存储器。
8.根据权利要求7所述的在快取线移除期间确保微处理器的快取存储器层级内的数据一致性的装置,其特征在于,在该移除引擎清除该指示状态之前,该高阶存储器通知该移除引擎已准备好取得该快取线的所有权。
9.根据权利要求7所述的在快取线移除期间确保微处理器的快取存储器层级内的数据一致性的装置,其特征在于,该移除引擎在清除该指示状态之前,使在该低阶存储器中的该快取线无效。
10.一种在快取线移除期间确保微处理器的快取存储器层级内的数据一致性的方法,其特征在于,该方法包括下列步骤:
将一快取线自一低阶存储器移至一高阶存储器,其中该移除操作由一移除引擎所执行;以及
在进行该移除操作前,先将该低阶存储器中的该快取线的一指示状态储存至一对应的储存元件,该储存元件为一移除阵列中的多个储存元件之一,其中该指示状态表示该移除引擎目前是否正将该快取线自该低阶存储器移至该高阶存储器;
该移除引擎禁止一储存操作更新该快取线,直到该指示状态表示该移除引擎已完成将该快取线自该低阶存储器移至该高阶存储器。
11.根据权利要求10所述的在快取线移除期间确保微处理器的快取存储器层级内的数据一致性的方法,其特征在于,更包括在该储存操作执行之前将该快取线自该高阶存储器移至该低阶存储器以更新该快取线。
12.根据权利要求10所述的在快取线移除期间确保微处理器的快取存储器层级内的数据一致性的方法,其特征在于,更包括当该指示状态表示该移除引擎目前正将该快取线自该低阶存储器移至该高阶存储器时,该移除引擎允许一载入操作以读取该快取线。
13.根据权利要求10所述的在快取线移除期间确保微处理器的快取存储器层级内的数据一致性的方法,其特征在于,更包括阻止该微处理器回应该快取线的一窥察操作,直到该指示状态表示该移除引擎已完成将该快取线自该低阶存储器移至该高阶存储器。
14.根据权利要求10所述的在快取线移除期间确保微处理器的快取存储器层级内的数据一致性的方法,其特征在于,若该指示状态表示该移除引擎已将该快取线自该低阶存储器移至该高阶存储器,且该快取线的状态为一已修改状态,则使该快取线无效以及将已修改状态的该快取线写回至一主要存储器来回应该快取线的一窥察操作。
15.根据权利要求10所述的在快取线移除期间确保微处理器的快取存储器层级内的数据一致性的方法,其特征在于,更包括在该移除引擎开始将该快取线自该低阶存储器移至该高阶存储器之前,设定该指示状态以表示目前正将该快取线自该低阶存储器移至该高阶存储器。
16.根据权利要求10所述的在快取线移除期间确保微处理器的快取存储器层级内的数据一致性的方法,其特征在于,更包括当该移除引擎完成将该快取线自该低阶存储器移至该高阶存储器时,清除该指示状态以表示目前未将该快取线自该低阶存储器移至该高阶存储器。
17.根据权利要求16所述的在快取线移除期间确保微处理器的快取存储器层级内的数据一致性的方法,其特征在于,在清除该指示状态之前,该高阶存储器通知该移除引擎已准备好取得该快取线的所有权。
18.根据权利要求16所述的在快取线移除期间确保微处理器的快取存储器层级内的数据一致性的方法,其特征在于,更包括在清除该指示状态前,使在该低阶存储器中的该快取线无效。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US12/207,261 | 2008-09-09 | ||
US12/207,261 US8782348B2 (en) | 2008-09-09 | 2008-09-09 | Microprocessor cache line evict array |
Publications (2)
Publication Number | Publication Date |
---|---|
CN101593161A CN101593161A (zh) | 2009-12-02 |
CN101593161B true CN101593161B (zh) | 2011-02-16 |
Family
ID=41407822
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN 200910147348 Active CN101593161B (zh) | 2008-09-09 | 2009-06-15 | 确保微处理器的快取存储器层级数据一致性的装置与方法 |
Country Status (3)
Country | Link |
---|---|
US (1) | US8782348B2 (zh) |
CN (1) | CN101593161B (zh) |
TW (1) | TWI522802B (zh) |
Families Citing this family (23)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8904115B2 (en) * | 2010-09-28 | 2014-12-02 | Texas Instruments Incorporated | Cache with multiple access pipelines |
WO2013101060A2 (en) * | 2011-12-29 | 2013-07-04 | Intel Corporation | Efficient support of sparse data structure access |
US9201810B2 (en) * | 2012-01-26 | 2015-12-01 | Microsoft Technology Licensing, Llc | Memory page eviction priority in mobile computing devices |
CN103514107B (zh) * | 2012-06-27 | 2018-04-06 | 上海芯豪微电子有限公司 | 高性能数据缓存***和方法 |
CN103513957B (zh) * | 2012-06-27 | 2017-07-11 | 上海芯豪微电子有限公司 | 高性能缓存方法 |
US9361103B2 (en) * | 2012-11-02 | 2016-06-07 | Advanced Micro Devices, Inc. | Store replay policy |
US9336143B1 (en) | 2013-09-26 | 2016-05-10 | Emc Corporation | Indexing a deduplicated cache system by integrating fingerprints of underlying deduplicated storage system |
US9189402B1 (en) * | 2013-09-26 | 2015-11-17 | Emc Corporation | Method for packing and storing cached data in deduplicated cache system of a storage system |
US9189414B1 (en) | 2013-09-26 | 2015-11-17 | Emc Corporation | File indexing using an exclusion list of a deduplicated cache system of a storage system |
US9390116B1 (en) | 2013-09-26 | 2016-07-12 | Emc Corporation | Insertion and eviction schemes for deduplicated cache system of a storage system |
US9304914B1 (en) | 2013-09-26 | 2016-04-05 | Emc Corporation | Deduplicated cache system of a storage system |
US9606938B1 (en) * | 2014-06-30 | 2017-03-28 | EMC IP Holding Company LLC | Managing caches in storage systems |
US11620220B2 (en) * | 2014-07-14 | 2023-04-04 | Via Alliance Semiconductor Co., Ltd. | Cache system with a primary cache and an overflow cache that use different indexing schemes |
US9990289B2 (en) * | 2014-09-19 | 2018-06-05 | Advanced Micro Devices, Inc. | System and method for repurposing dead cache blocks |
US10152425B2 (en) * | 2016-06-13 | 2018-12-11 | Advanced Micro Devices, Inc. | Cache entry replacement based on availability of entries at another cache |
US10346307B2 (en) | 2016-09-28 | 2019-07-09 | Samsung Electronics Co., Ltd. | Power efficient snoop filter design for mobile platform |
US10417134B2 (en) * | 2016-11-10 | 2019-09-17 | Oracle International Corporation | Cache memory architecture and policies for accelerating graph algorithms |
US10628166B2 (en) * | 2017-09-20 | 2020-04-21 | International Business Machines Corporation | Allocating and deallocating reorder queue entries for an out-of-order processor |
US11403229B2 (en) * | 2019-05-24 | 2022-08-02 | Texas Instruments Incorporated | Methods and apparatus to facilitate atomic operations in victim cache |
US11327909B1 (en) * | 2020-10-26 | 2022-05-10 | Mellanox Technologies, Ltd. | System for improving input / output performance |
US20220358048A1 (en) * | 2021-05-07 | 2022-11-10 | Ventana Micro Systems Inc. | Virtually-indexed cache coherency using physical address proxies |
US11609700B2 (en) | 2021-08-11 | 2023-03-21 | Mellanox Technologies, Ltd. | Pacing in a storage sub-system |
US20240202131A1 (en) * | 2022-12-15 | 2024-06-20 | Qualcomm Incorporated | Processor-based system for allocating cache lines to a higher-level cache memory |
Family Cites Families (19)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5293603A (en) * | 1991-06-04 | 1994-03-08 | Intel Corporation | Cache subsystem for microprocessor based computer system with synchronous and asynchronous data path |
US5680576A (en) * | 1995-05-05 | 1997-10-21 | Silicon Graphics, Inc. | Directory-based coherence protocol allowing efficient dropping of clean-exclusive data |
US5751993A (en) * | 1995-09-05 | 1998-05-12 | Emc Corporation | Cache management system |
US5829038A (en) * | 1996-06-20 | 1998-10-27 | Intel Corporation | Backward inquiry to lower level caches prior to the eviction of a modified line from a higher level cache in a microprocessor hierarchical cache structure |
US6378048B1 (en) * | 1998-11-12 | 2002-04-23 | Intel Corporation | “SLIME” cache coherency system for agents with multi-layer caches |
US6266743B1 (en) * | 1999-02-26 | 2001-07-24 | International Business Machines Corporation | Method and system for providing an eviction protocol within a non-uniform memory access system |
US6622267B1 (en) * | 1999-12-08 | 2003-09-16 | Intel Corporation | Method and apparatus for detecting multi-hit errors in cache |
US6591393B1 (en) * | 2000-02-18 | 2003-07-08 | Hewlett-Packard Development Company, L.P. | Masking error detection/correction latency in multilevel cache transfers |
US6636949B2 (en) * | 2000-06-10 | 2003-10-21 | Hewlett-Packard Development Company, L.P. | System for handling coherence protocol races in a scalable shared memory system based on chip multiprocessing |
US6725343B2 (en) * | 2000-10-05 | 2004-04-20 | Hewlett-Packard Development Company, L.P. | System and method for generating cache coherence directory entries and error correction codes in a multiprocessor system |
US7389387B2 (en) * | 2001-12-31 | 2008-06-17 | Intel Corporation | Distributed memory module cache writeback |
US6934814B2 (en) * | 2002-11-05 | 2005-08-23 | Newisys, Inc. | Cache coherence directory eviction mechanisms in multiprocessor systems which maintain transaction ordering |
US6920532B2 (en) * | 2002-11-05 | 2005-07-19 | Newisys, Inc. | Cache coherence directory eviction mechanisms for modified copies of memory lines in multiprocessor systems |
US20070005899A1 (en) * | 2005-06-30 | 2007-01-04 | Sistla Krishnakanth V | Processing multicore evictions in a CMP multiprocessor |
US7590805B2 (en) * | 2005-12-29 | 2009-09-15 | Intel Corporation | Monitor implementation in a multicore processor with inclusive LLC |
US7856532B2 (en) * | 2006-11-03 | 2010-12-21 | Arm Limited | Cache logic, data processing apparatus including cache logic, and a method of operating cache logic |
US20080120469A1 (en) * | 2006-11-22 | 2008-05-22 | International Business Machines Corporation | Systems and Arrangements for Cache Management |
JP5012016B2 (ja) * | 2006-12-28 | 2012-08-29 | 富士通株式会社 | キャッシュメモリ装置、演算処理装置及びキャッシュメモリ装置の制御方法 |
US7640401B2 (en) * | 2007-03-26 | 2009-12-29 | Advanced Micro Devices, Inc. | Remote hit predictor |
-
2008
- 2008-09-09 US US12/207,261 patent/US8782348B2/en active Active
-
2009
- 2009-06-12 TW TW098119678A patent/TWI522802B/zh active
- 2009-06-15 CN CN 200910147348 patent/CN101593161B/zh active Active
Also Published As
Publication number | Publication date |
---|---|
US8782348B2 (en) | 2014-07-15 |
US20100064107A1 (en) | 2010-03-11 |
TWI522802B (zh) | 2016-02-21 |
CN101593161A (zh) | 2009-12-02 |
TW201011537A (en) | 2010-03-16 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN101593161B (zh) | 确保微处理器的快取存储器层级数据一致性的装置与方法 | |
CN101097544B (zh) | 虚拟化事务存储器的全局溢出方法 | |
US7827354B2 (en) | Victim cache using direct intervention | |
CN101446923B (zh) | 一种响应于指令而清洗高速缓冲存储器线的装置和方法 | |
CN101425042B (zh) | 解决高速缓存冲突 | |
US6023747A (en) | Method and system for handling conflicts between cache operation requests in a data processing system | |
US20030126365A1 (en) | Transfer of cache lines on-chip between processing cores in a multi-core system | |
KR100273039B1 (ko) | 멀티프로세서 데이터 처리 시스템의 캐쉬 일관성을 유지하기위한 캐쉬 일관성 프로토콜 제공 방법 및시스템 | |
US20060184743A1 (en) | Cache memory direct intervention | |
US20110173393A1 (en) | Cache memory, memory system, and control method therefor | |
JP2000250813A (ja) | I/oキャッシュ・メモリにおけるデータ管理方法 | |
EP1021768A1 (en) | System and method for maintaining memory coherency in a computer system having multiple system buses | |
US20070005899A1 (en) | Processing multicore evictions in a CMP multiprocessor | |
KR19980079433A (ko) | 비포함 캐쉬 메모리 계층 구조에서 사용하기 위한 캐쉬 일관성 메카니즘 구현 방법 및 시스템 | |
US8621152B1 (en) | Transparent level 2 cache that uses independent tag and valid random access memory arrays for cache access | |
JPH0950400A (ja) | マルチプロセッサシステム | |
US7464227B2 (en) | Method and apparatus for supporting opportunistic sharing in coherent multiprocessors | |
KR100322223B1 (ko) | 대기행렬및스누프테이블을갖는메모리제어기 | |
US7779205B2 (en) | Coherent caching of local memory data | |
JPWO2005050454A1 (ja) | キャッシュメモリおよびその制御方法 | |
US7949833B1 (en) | Transparent level 2 cache controller | |
US7356647B1 (en) | Cache with integrated capability to write out entire cache | |
JPH09128346A (ja) | 階層バスシステム | |
CN100451994C (zh) | 维持高速缓存协调性的微处理器、装置与方法 | |
US20060015689A1 (en) | Implementation and management of moveable buffers in cache system |
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 |