CN100416515C - 高速缓冲存储器线清洗指令和执行该指令的方法,装置以及*** - Google Patents
高速缓冲存储器线清洗指令和执行该指令的方法,装置以及*** Download PDFInfo
- Publication number
- CN100416515C CN100416515C CNB008180709A CN00818070A CN100416515C CN 100416515 C CN100416515 C CN 100416515C CN B008180709 A CNB008180709 A CN B008180709A CN 00818070 A CN00818070 A CN 00818070A CN 100416515 C CN100416515 C CN 100416515C
- Authority
- CN
- China
- Prior art keywords
- cache
- instruction
- cache line
- cache memory
- bus
- 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 - Lifetime
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/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
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
技术领域
本发明通常涉及一种计算机结构,并且具体涉及一种允许处理器清洗与来自连续域中所有高速缓冲存储器的线性存储器地址相关的高速缓冲存储器线的***和方法。
背景技术
高速缓冲存储器装置是一种小而快速的存储器,可用它存储来自更大的、较慢的存储器中最常被的数据(或“字”)。
动态随机存取存储器(DRAM)以较低的成本提供大容量的存储空间。不幸的是,动态随机存取存储器的存取相对于现代微处理器而言太慢。提供划算的解决方案的高速缓冲存储器提供一种静态随机存取存储器(SRAM)高速缓冲存储器,或者高速缓冲存储器被物理安装在处理器上的高速缓冲存储器。即使高速缓冲存储器的存储容量相对较小,它仍能实现对其中储存的数据的高速存取。
高速缓冲存储器的运行原理如下文所述。一条指令或数据单元被第一次选定时,必须从低速存储器中读取它。指令或数据然后被储存在高速缓冲存储器中。随后对相同指令或数据的存取是通过更快的高速缓冲存储器完成的,由此便减少了存取时间并提高了整体的***性能。但是,由于高速缓冲存储器的存储容量有限,并且通常比***存储器的存储容量小很多,因此高速缓冲存储器常常被充满,当新的指令或数据被存取时,高速缓冲存储器的一些内容必须改变。
高速缓冲存储器被各种方式管理,使得它储存的指令或数据是当时最有可能需要的。当对高速缓冲存储器进行存取,并且其中包含所需要的数据时,高速缓冲存储器“命中”(hit)便发生。否则,如果高速缓冲存储器没有包含所需的数据,高速缓冲存储器“遗漏”(miss)便发生。因此,通常总是试图对高速缓冲存储器的内容进行管理以使得高速缓冲存储器的命中-遗漏比最大。
利用当前的***,清洗高速缓冲存储器中的某条指定的存储器地址需要了解高速缓冲存储器的置换算法。
一个高速缓冲存储器可以周期性地或者当满足某些预定条件时被整体清洗。而且,单根的高速缓冲存储器线可以作为置换算法的一部分被清洗。在包含高速缓冲存储器的***中,高速缓冲存储器线是在高速缓冲存储器和主存储器之间交换的完整的数据部分。在所有情况下,废数据都被写入主存储器。废数据的定义为:高速缓冲存储器中或高速缓冲存储器线中要清洗的、尚未写入主存储器的数据。确定含有废数据的高速缓冲存储器线的数据块的页面重写标志位随后被清除。然后,经过清洗的高速缓冲存储器或高速缓冲存储器线就能储存新的数据块。
如果计划清洗高速缓冲存储器或如果满足高速缓冲存储器清洗的预定条件,高速缓冲存储器便被清洗。即,高速缓冲存储器中所有的废数据都被写入了主存储器。
例如,对于Intel家族中的P6微处理器(如PentiumII,Celeron),对于给定的高速缓冲存储器设置和方法,有一套微操作用来在指定的高速缓冲存储器水平清洗高速缓冲存储器线;但是对于给定的存储器地址,却没有这样的微操作来清洗高速缓冲存储器线。
要求高速数据存取的***在数据无效时会连续地清洗数据。对于需要处理器和***存储器之间的高速数据流的***,如3-D和视频表演的高端图形象素处理时的情况,这种情况变得更加突出。当前***存在的问题就是:需要高速缓冲存储器和***存储器之间的高带宽来容纳写联合存储器和反写存储器的拷贝。
这样,所需要的就是一种允许处理器清洗与来自连续域中所有高速缓冲存储器的线性存储器地址相关的高速缓冲存储器线的方法和***。
发明内容
高速缓冲存储器线清洗(CLFLUSH)微结构执行过程和***允许处理器清洗与来自连续域中所有高速缓冲存储器的线性存储器地址相关的高速缓冲存储器线。该处理器接收一个存储器地址。一旦该存储器地址被接收到,便确定该存储器地址是否储存在一个高速缓冲存储器中。如果该存储器地址是储存在高速缓冲存储器中,则该存储器地址被从高速缓冲存储器中清洗掉。
附图说明
将结合附图对本文所介绍的发明做详细的说明,其中附图标记全文对应,其中:
图1描述了微处理器的结构;以及
图2用流程图描述了高速缓冲存储器线清洗过程。
具体实施方式
根据定义,一条高速缓冲存储器线要么是完全有效,要么是完全无效。一条高速缓冲存储器线绝不会是部分有效的。例如,当处理器只想读一个字节时,一条可适用的高速缓冲存储器线的所有字节都必须被储存在高速缓冲存储器中;否则,高速缓冲存储器“遗漏”可能会发生。高速缓冲存储器线形成了实际的高速缓冲存储器。高速缓冲存储器目录只用于高速缓冲存储器管理。高速缓冲存储器线通常包含的数据比它在单个总线循环中可能要转换的数据更多。为此,绝大部分高速缓冲存储器控制器执行突发模式,其中预置的地址序列使得数据能够通过总线更快地被传送。这被用于高速缓冲存储器线填满,或被用于反写高速缓冲存储器线,因为这些高速缓冲存储器线代表一个连续且对齐的地址区域。
清洗高速缓冲存储器线的技术可以与线性存储器地址相关联。在执行时,该技术清洗与来自连续域中所有高速缓冲存储器的操作数相关的高速缓冲存储器线。例如,在多处理器环境下,根据处理器状态,指定的高速缓冲存储器线被从***的所有微处理器中的所有高速缓冲存储器等级水平(即连续域)中清洗。MESI(修改,专用,共享,无效)协议,一种写无效协议,赋予每条高速缓冲存储器线四种状态中的一种,这些状态由两个MESI位来管理。这四种状态还标识了一条高速缓冲存储器线可能的四种状态。如果发现处理器处于“专用”或“共享”状态,清洗等同于被无效掉的高速缓冲存储器线。当发现处理器处于“修改”状态时,另一个实例也成立。如果高速缓冲存储器控制器执行反写方案并且高速缓冲存储器“命中”,只从处理器把数据写入它的高速缓冲存储器,这条高速缓冲存储器线的内容必须被传送给主存储器,而这条高速缓冲存储器线变得无效。
当与其他的存储器宏指令进行比较时,高速缓冲存储器线清洗(CLFLUSH)方法不是强排序,并不考虑与高速缓冲存储器线清洗宏指令相关的存储器的类型。相反,处理器的存储器子***中的行为是弱排序。其它的宏指令可以用来在CLFLUSH之前或之后,立即对存储器存取的装入、储存、防护和其它的串行指令进行强排序并提供保证。
一种名为“clflush_micro_op”的微操作被用来执行CLFLUSH宏指令。
参看图1,结合数据的装入和储存的流程,展示了微处理器的存储器和总线子***。在图1中,假设在微处理器中有两个高速缓冲存储器水平:一个芯片上(“L1”)的高速缓冲存储器,其水平为离处理器最近的高速缓冲存储器水平;以及一个第二级(“L2”)高速缓冲存储器,其水平为离处理器最远的高速缓冲存储器水平。一个指令获取单元102为指令解码单元104取得宏指令。解码单元104将宏指令解码为微指令流,该指令流被发送给保留站106、记录缓冲器和寄存器堆108。当一条指令进入存储器子***时,它被分配给装入缓冲器112或存储缓冲器114,分别取决于它是读存储器宏指令还是写存储器宏指令。在这些缓冲器所在的存储器子***的单元内,指令经过存储器排序单元110的存储器排序检查。如果不存在存储器相关性,经过物理地址翻译,该指令被分配给存储器子***中的下一个单元。在L1高速缓冲存储器控制器120,确定是否命中或遗漏L1高速缓冲存储器。如果遗漏,该指令被分配给一组缓冲器,从这套缓冲器,该指令又被分配给微处理器的总线子***140。如果可高速缓冲存储的装入遗漏,该指令被发送给读缓冲器122,或者如果可高速缓冲存储的储存遗漏,该指令则被发送给写缓冲器130。写缓冲器130可以是弱排序的写联合缓冲器132或非写联合缓冲器134。在总线控制器单元140中,读或写微操作被分配给一个无序队列144。如果微操作是可高速缓冲存储的,则检查L2高速缓冲存储器146命中/遗漏。如果遗漏,指令通过一个有序队列142被发送给前侧总线150,以便从主存储器中获得或刷新所需的数据。
图2也对经过处理器存储器子***的“clflush_micro_op”的微操作流程进行了说明。开始时,指令获取单元102获得高速缓冲存储器线清洗指令,如方框202所示。在方框204中,高速缓冲存储器线清洗指令被指令解码单元104解码为“clflush_micro_op”微操作。该微操作随后被发送给一个保留站106、一个记录缓冲器和寄存器堆108,如方框206所示。“clflush_micro_op”微操作在一个装入端口被分配给存储器子***,如方框208所示。在存储器排序单元110内的装入缓冲器112内为其分配一个入口。为了在存储器排序单元110内将存取计算分离,为避免高速缓冲存储器线分离,微操作的数据大小被屏蔽成一个字节;但是,在执行时,整个高速缓冲存储器线将被清洗。
存储器排序单元110内的“clflush_micro_op”行为是虚拟的。简而言之,这意味着“clflush_micro_op”的执行可以不按照其它的CLFLUSH宏指令、装入和储存的顺序而无序地进行。除非存储器存取防护(简称为MFENCE)指令被适当地使用,(在CLFLUSH宏指令之前或之后即刻),只要没有地址相关性,“clflush_micro_op”的执行相对于其它的存储器装入和储存是不被保证为有序的。通过存储器子***的CLFLUSH行为为弱排序。下表列出了CLFLUSH的排序条件。表1比较了后期存储器存取命令与早期CLFLUSH的排序条件的影响。表2则列出了与表1相反的情况,比较了早期存储器存取命令与后期CLFLUSH指令的排序条件的影响。列出的存储器存取类型为:不可高速缓冲存储(UC)存储器存取、反写(WB)存储器存取以及不可高速缓冲存储虚拟写联合(USWC)存储器存取。
表1:关于从前CLFLUSH的指令存储器排序
表2关于后期CLFLUSH的指令存储器排序
“clflush_micro_op”微操作被从存储器排序单元110发送给L1高速缓冲存储器控制器单元120,如方框210所示。“clflush_micro_op”微操作在装入端口上被发送;但是,如果该操作是一个储存操作,则在写联合缓冲器132内被发送。从L1高速缓冲存储器控制器单元之后,“clflush_micro_op”被从装入线转到储存线。
决定方框212确定是否没有可用的写联合缓冲器132。如果没有可用的写联合缓冲器,流程返回方框210。否则,流程继续进行到方框214。不论存储器类型以及它是否命中或遗漏了L1高速缓冲存储器,写联合缓冲器132被分配给引入的“clflush_micro_op”如方框214所示。L1高速缓冲存储器控制器单元内的每个写联合缓冲器被增132加了一个控制字段来确定需要把哪个自查询属性发送给总线控制器140。这个名为”clflush_miss”的控制位是为遗漏了L1高速缓冲存储器的“clflush_micro_op”专门设定的。
在进入微处理器的存储器子***时,使高速缓冲存储器线存取“clflush_micro_op”的地址的一些位被清零,如方框216所示。在微处理器的Pentrium pro家族中,这些位应该是地址中的较低的5位(地址[4:0])。在执行清洗命令时,这些工作在L1和L2高速缓冲存储器控制器单元120内完成。清零帮助确定高速缓冲存储器线命中或遗漏。由于只有标记匹配能确定命中还是遗漏,不需要能进行比较的字节。注意,根据定义,没有可能出现部分命中。命中或遗漏总是全线命中或遗漏。清零地址位[4:0]还为存储器排序单元110提供了另外一种机理以屏蔽线分离存取。在分离存取中,数据的大小被屏蔽为1个字节。
L1高速缓冲存储器控制器单元120中的每个写联合缓冲器132增加的另一个控制位被用来区分分配给“clflush_micro_op”的写联合缓冲器132和分配给写联合储存的另一个写联合缓冲器,如方框218所示。这个名为”clflush_op”的控制位是为那些被分配给“clflush_micro_op”的写联合缓冲器专门设定的。该控制位被用来选择从L1高速缓冲存储器控制器120发送给总线控制器140的请求类型和清洗属性。
如果L1高速缓冲存储器命中,如方框222所确定的那样,一旦从L1高速缓冲存储器控制器单元120中发送出来,“清洗L1”和“清洗L2”属性被发送给总线控制器140,如方框224和226所示。总线控制器140既包含L2高速缓冲存储器146也包含外部总线控制器单元。
另外,如果L1高速缓冲存储器遗漏,如方框222所确定的那样,“clflush_miss”控制位被设定,并且只发送“清洗L2”属性,如方框228和232所示。这有助于通过省略内部对L1高速缓冲存储器的自查询而提高性能。
一旦从存储器排序单元110中被发送出来,如果没有可用的写联合缓冲器132,“clflush_micro_op”微操作被L1高速缓冲存储器控制器单元120阻断,如方框212所示。此时,它还清除写联合缓冲器132,如写联合循环分配指针所指的。这就保证不会出现由于缺乏空闲的写联合缓冲器132而导致死锁情况。如果被阻断,一旦阻断情况被消除,“clflush_micro_op”微操作被重新发送。可能引起“clflush_micro_op”指令发送的例子就是先前分配的写联合缓冲器132被完全清除。
一旦“clflush_micro_op”微操作被分配给L1高速缓冲存储器控制器120中的写联合缓冲器132,“clflush_micro_op”微操作即被存储器子***收回。这就允许流水线输送:在完成“clflush_micro_op”微操作之前即可执行的后续指令。流水线输送提高了***的整体性能。
有两种方法可以清除为“clflush_micro_op”微操作服务的写联合缓冲器。
通过与目前适用于Intel P6微处理器家族中的写联合缓冲器132的当前清除条件相同的条件来清除为“clflush_micro_op”微操作服务的写联合缓冲器132。而且,防护宏指令也清除为“clflusn_micro_op”微操作服务的写联合缓冲器。
另外,一些实施例专门清除“clflusn_micro_op”。这样做是要避免当程序员不想加强排序而没有使用防护指令时,使为“clflush_micro_op”微操作长时间服务的写联合缓冲器陷入进退两难(不知所措)的处境。名为“clflush_evict”的控制位与每个为“clflush_micro_op”微操作服务的写联合缓冲器相关。当写联合缓冲器被分配给“clflush_micro_op”时,该控制位被设定。一旦“clflush_evict”控制位被设定,相应的写联合缓冲器被标记为清除,而控制位被重新设定,如方框230所示。这种清除条件专门适用于为“clflush_micro_op”微操作服务的写联合缓冲器132。由于不允许“clflush_micro_op”微操作太长时间占据写联合缓冲器132的资源,并且由此将这些资源释放用于其它的写联合操作,用CLFLUSH提高了程序的性能。
表3用于CLFLUSH的存储器到总线的处理程序
Clflush_miss控制位 | clflush_op控制位 | 请求类型 | 清洗L1属性 | 清洗L2属性 | 新的处理程序 |
‘0 | ‘0 | 非CLFLUSH | - | - | 否 |
‘0 | ‘1 | CLFLUSH | ‘1 | ‘1 | 是 |
‘1 | ‘0 | N/A | N/A | N/A | 非法结合 |
‘1 | ‘1 | CLFLUSH | ‘0 | ‘1 | 是 |
注意,如果“clflush_miss”=“clflush_op”=’0’,请求类型为微处理器的P6家族中已有的处理程序中的任何一种(但不是CLFLUSH),并且清洗属性将由此而被设定/清除。
表4列出了三个写联合缓冲器132控制位被设定和重新设定的条件。“clflush_evict”控制位只能在“clflush_micro_op”控制位被设定以后才能设定。“clflush_micro_op”控制位将会设定在虚拟的写联合缓冲器132配置上,而“clflush_evict”则为“clflush_op”专门设定在真实的写联合缓冲器132配置上。如果“clflush_micro_op”遗漏了L1高速缓冲存储器,“clflush_miss”控制位也设定在虚拟的写联合缓冲器132配置上。而且,一旦写联合缓冲器132虚拟配置为除“clflush_micro_op”之外的任何一条指令服务,“clflush_miss”和“clflush_op”的控制位都被清除。从功能上看,这与一旦释放为“clflush_micro_op”服务的写联合缓冲器就清除这样的控制位相似。在处理器的运行中,同样的写缓冲器130被写联合微操作和非写联合微操作共享。根据任何写缓冲器130的虚拟配置,而不只是根据写联合缓冲器132的虚拟配置,“clflush_miss”和“clflush_op”位被清除。这种行为确保绝不会为不给“clflush_micro_op”服务的写缓冲器130设定这三种控制位。在处理器的运行中,其中所有的L1高速缓冲存储器控制器缓冲器被读和写共享,象P6微处理器家族中那样,只有在缓冲器配置为存储服务时才清除“clflush_miss”和“clflush_op”控制位,如方框234所示。被分配来为装入服务的缓冲器忽略这三种新控制位的值。
表4设定/清除L1高速缓冲存储器控制器中写联合缓冲器的新控制位的条件
控制位 | 设定 | 清除 |
“Clflush_op” | 一旦分配写联合缓冲器为“clflush_micro_op”服务 | 一旦分配写缓冲器用于除“clflush_micro_op”之外的业务 |
“Clflush_evict” | 在分配写联合缓冲器为“clflush_micro_op”服务之后即刻(即分配的WC缓冲器“in use”和“clflush_op”控制位被设定) | 一旦清除写联合缓冲器(即“WC模式”控制位被设定) |
“Clflush_miss” | 一旦把遗漏了L1高速缓冲存储器“clflush_miss”的“clflush_micro_op”在写联合缓冲器内分配 | 一旦分配写缓冲器用于除“clflush_micro_op”之外的业务 |
注意所有的三种新WC缓冲器控制位也都按照“重新设定”的顺序被清除。
实施例还可以利用总线控制器140来实施。当为“clflush_micro_op”服务的写联合缓冲器132被标记为清除时,它被发送给总线控制器140,如方框236所示。所发送的请求和请求一次全线可高速缓冲存储的写联合处理程序一样,只是子查询属性不同。查询是用来确认某个具体的地址出现在适用的高速缓冲存储器中。对于“clflush_micro_op”清除,总线控制器140根据“清洗L1”和“清洗L2”请求属性自查询L1和L2高速缓冲存储器,如方框150所示。而且,总线控制器140在外部总线上发出一条“总线读无效线”,如方框236所示。例如,如果L1高速缓冲存储器控制器单元120确定L1高速缓冲存储器遗漏,则不发出“清洗Ll”消息。“总线读无效线”处理程序清洗命中连续域中任何其它的高速缓冲存储器中的相同的线。在外部总线处理程序上,所有的字节赋值被重新给定,把该数据阶段从核心屏蔽。决定框238和252确定是否在连续域中的另一个高速缓冲存储器(即不是提出请求的微处理器中的L1或L2高速缓冲存储器)中是否命中经过修改的高速缓冲存储器线(HITM)。如果HITM出现,被命中的高速缓冲存储器对主存储器进行反写,并把数据返回提出请求的微处理器,如方框244和254所示。L1高速缓冲存储器控制器单元120中的写联合缓冲器132保持被分配,直到来自连续域中其它高速缓冲存储器的查询阶段和可能的数据回传完成,例如,外部总线上的HITM。作为查询过程或调查循环的结果,回到写联合缓冲器132的数据被忽略,如方框246和248所示。
然后所有的清洗完成,并且写联合缓冲器132也被重新分配,如方框260所示。
下面的表5列出了外部总线控制器140是如何处理所有的写联合清除的。来自L1高速缓冲存储器,到达总线控制器140的“clflush_micro_op”清除请求,如CLFLUSH宏指令,可能在与同样的请求全线可高速缓冲存储写联合清除的信号上超载;但是,自查询属性不同。
表5写联合清除的外部总线控制器处理程序
请求类型 | 外部总线处理程序 | 处理程序长度 | 字节赋值 | 清洗L1 | 清洗L2 | 新 |
部分可高速缓冲存储写联合 | 读无效 | 32字节 | 所有字节赋值被设定 | 否 | 否 | 否 |
全线可高速缓冲存储写联合 | 无效 | 32字节 | 所有字节赋值被解除设定 | 否 | 否 | 否 |
部分不可高速缓冲存储写联合 | 存储器写(写类型) | 《=8字节 | 字节赋值从L1高速缓冲存储器控制器单元发送 | 否 | 只有遗漏了L1高速缓冲存储器的非临时储存 | 否 |
全线不可高速缓冲存储写联合 | 存储器写(反写类型) | 32字节 | 所有字节赋值被设定 | 否 | 只有遗漏了L1高速缓冲存储器的非临时储存 | 否 |
CLFLUSH | 总线读无效 | 32字节 | 所有字节赋值被解除设定 | 只L1命由 | 是 | 否 |
注意:USWC储存并非微处理器的P6家族的别名,因此,它们不被自查询。
为了可测试以及调试,可以增加一个非用户的可视模式位,以赋给/解除CLFLUSH宏指令。如果被解除,L1高速缓冲存储器控制器单元120把引入的“clflush_micro_op”微操作当作无操作操作码(NOP)来处理,而且它绝不会分配一个写联合缓冲器132。这种NOP行为可以在非高速缓冲存储数据预取上实现。
提供前面对本实施例的描述是为了使本领域内的任何技术人员能够制作或使用该***和方法。本领域内的技术人员都了解,可以用硬件,固件,或在计算机可读的介质上编码的指令来实现上文所述的实施例。对于本领域内的技术人员而言,对这些实施例做不同的修改都是很显然的,并且此处所限定的普通原理在不使用发明性的才能条件下也能应用于其它实施例。因此,本发明并非仅限于本文所描述的实施例,它包含与本文所公开的原理和创新点相一致的最广泛的范围。
Claims (53)
1. 一种响应指令清洗至少一个高速缓冲存储器线的方法,它包括:
接收具有表示存储器地址的操作数的指令;
响应所述指令产生表明该存储器地址的第一类型的总线处理,不管对应于该存储器地址的高速缓冲存储器入口是处于经过修改的状态还是处于除经过修改的状态之外的另一状态;
执行自查询以引起包括所述存储器地址的高速缓冲存储器的清洗;以及
如果高速缓冲存储器线处于经过修改状态,响应自查询进行反写。
2. 如权利要求1所述的方法,其中所述相关的存储器地址为一线性地址,所述方法进一步包括:
转换所述线性地址以确定所述存储器地址。
3. 如权利要求1所述的方法,其中,第一类型的总线处理包括一个无效总线处理;以及所述无效总线处理由一个总线代理执行,不论所述存储器地址是否被总线代理高速缓冲存储。
4. 如权利要求3所述的方法,其中所述第一类型的总线处理包括零长度的存储器存取。
5. 如权利要求1所述的方法,其中所述指令为高速缓冲存储器线清洗指令,所述方法进一步包括:
由处理器执行多个相对于所述高速缓冲存储器线清洗指令无序的其它高速缓冲存储器线清洗操作,其中所述高速缓冲存储器线清洗指令也是由所述处理器执行。
6. 如权利要求5所述的方法,进一步包括:
相对于由所述处理器所执行的多个传送至不可高速缓冲存储型位置、反写型位置和不可高速缓冲存储型虚拟写联合存储器型位置的装入和储存指令,无序地执行高速缓冲存储器线清洗指令;和
保持高速缓冲存储器线清洗指令相对于所述处理器所执行的存储器防护指令的顺序。
7. 一种响应高速缓冲存储器线清洗指令清洗至少一个高速缓冲存储器线的方法,它包括:
接收具有相关存储器地址的高速缓冲存储器线清洗指令;以及
不管高速缓冲存储器线是处于何种状态或是否存在,响应所述高速缓冲存储器线清洗指令,通过产生单一类型的总线处理来清洗储存于连续域内高速缓冲存储器中的各种实例的存储器地址;
其中所述高速缓冲存储器线与执行所述高速缓冲存储器线清洗指令的总线代理相关的高速缓冲存储器中的所述存储器地址相对应。
8. 如权利要求7所述的方法,其中,清洗进一步包括:
执行自查询以从第一总线代理中清洗相关的存储器地址。
9. 如权利要求7所述的方法,其中,清洗包括产生零长度的存取以及无效请求。
10. 如权利要求7所述的方法,其中,对于由被执行的高速缓冲存储器线清洗指令的操作数所涉及的每条高速缓冲存储器线,产生至少一种请求无效的总线处理。
11. 一种响应指令清洗至少一个高速缓冲存储器线的装置,它包括:
高速缓冲存储器;
高速缓冲存储器控制器,所述高速缓冲存储器控制器可操作地接收由一条指令的操作数所表示的存储器地址,其中高速缓冲存储器控制器将清洗与存储在高速缓冲存储器中的存储器地址相关的高速缓冲存储器线;以及
第一总线控制器,它响应所述指令产生表明所述存储器地址的预定总线处理,不管所述存储器地址在高速缓冲存储器中是处于经过修改的状态还是处于另一种状态。
12. 如权利要求11所述的装置,其中预定总线处理将对对应于所述存储器地址的高速缓冲存储器位置请求无效,所述装置进一步包括:
至少一个外部高速缓存存储器;
第二总线控制器,它从所述第一总线控制器接收所述存储器地址并清洗所述至少一个外部高速缓冲存储器中储存的各种实例的所述存储器地址。
13. 如权利要求11所述的装置,所述高速缓冲存储器控制器还包括可操作地与所述总线控制器通信的写联合缓冲器,其中响应所述指令,所述写联合缓冲器之一被分配以储存表明所述高速缓冲存储器中不存在对应于所述存储器地址的数据的高速缓冲存储器清洗操作的入口,而不管与所述存储器地址相对应的数据以经过修改的状态出现在高速缓冲存储器中,更进一步,所述装置产生一个自查询,所述自查询向独立的总线处理提供数据以反写与所述存储器地址相关的所述高速缓冲存储器线。
14. 如权利要求11所述的装置,其中,所述总线处理包括零长度存取和执行无效的指示。
15. 如权利要求11所述的装置,其中,所述装置是处理器,所述指令是一高速缓冲存储器线清洗指令,该高速缓冲存储器线清洗指令是弱排序的,并且能够由所述处理器相对于在所述处理器执行的所述高速缓冲存储器线清洗指令的其他实例无序地执行。
16. 如权利要求11所述的装置,可以通过将一个或多个硬件、固件以及计算机可读介质上的指令任意组合得以实现。
17. 一种使用清洗指令清洗至少一个高速缓冲存储器线的计算机结构,它包括:
连续域内最近的高速缓冲存储器;
连续域内至少一个外部高速缓冲存储器;
具有写联合缓冲器的高速缓冲存储器控制器,所述高速缓冲存储器控制器可操作地接收存储器地址,确定所述存储器地址是否储存在连续域内最近的高速缓冲存储器中,清洗与连续域内最近的高速缓冲存储器中储存的存储器地址相关的高速缓冲存储器线,将写联合缓冲器分配给具有所述存储器地址的清洗指令;以及
总线控制器,所述总线控制器可操作地从所述写联合缓冲器接收所述存储器地址,并且清洗连续域内外部高速缓冲存储器中储存的存储器地址的实例。
18. 如权利要求17所述的计算机结构,其中,所述总线控制器接收表明写联合缓冲器是否被分配给具有所述存储器地址的所述清洗指令的第一控制位。
19. 如权利要求18所述的计算机结构,其中,所述总线控制器还接收表明所述存储器地址是否被储存在所述连续域内所述最近的高速缓冲存储器中的第二控制位。
20. 如权利要求19所述的计算机结构,其中,所述总线控制器还接收表明具有所述存储器地址的所述清洗指令是否应当从所述写联合缓冲器中清除的第三控制位。
21. 一种使用清洗指令清洗至少一个高速缓冲存储器线的方法,它包括:
由高速缓冲存储器控制器接收存储器地址;
确定所述存储器地址是否储存在连续域内最近的高速缓冲存储器中;
清洗与所述连续域内所述最近的高速缓冲存储器中储存的存储器地址相关的高速缓冲存储器线;
将具有所述存储器地址的清洗指令分配给写联合缓冲器;
通过所述写联合缓冲器将具有所述存储器地址的所述清洗指令发送给总线控制器;
定位存储在所述连续域内外部高速缓冲存储器中的所述存储器地址的实例;以及
清洗所述连续域内所述外部高速缓冲存储器中储存的所述存储器地址的实例。
22. 如权利要求21所述的方法,其中,第一控制位向总线控制器表明写联合缓冲器是否被分配给具有所述存储器地址的所述清洗指令。
23. 如权利要求22所述的方法,其中,第二控制位向总线控制器表明所述存储器地址是否储存在所述连续域内所述最近的高速缓冲存储器中。
24. 如权利要求23所述的方法,进一步包括:
从所述写联合缓冲器清除具有所述存储器地址的所述清洗指令。
25. 如权利要求24所述的方法,其中,第三控制位向总线控制器表明具有所述存储器地址的所述清洗指令是否应当从所述写联合缓冲器中清除。
26. 一种响应指令清洗至少一个高速缓冲存储器线的装置,它包括:
在连续域内的高速缓冲存储器;
控制逻辑单元,对应于具有表明存储器位置的相关地址的指令,产生第一类型处理以对在所述域内的其它高速缓冲存储器中的所述存储器位置请求无效,而不管所述高速缓冲存储器中的所述存储器位置的数据的状态或数据存在与否,并从所述高速缓冲存储器清洗所述存储器位置,其中,
所述指令为高速缓冲存储器线清洗指令,所述相关地址是对所述高速缓冲存储器线清洗指令的操作数的线性地址,所述第一类型处理是零长度的存储器存取,它使传递由线性地址转换来的物理地址的总线循环无效。
27. 如权利要求26所述的装置,其中,所述指令是一种弱排序指令,它由所述装置相对于所述装置执行的其他高速缓冲存储器线清洗指令无序地执行。
28. 如权利要求26所述的装置,其中,所述控制逻辑单元响应所述指令引起对所述高速缓冲存储器的查询,它使得与所述相关地址对应的高速缓冲存储器线无效。
29. 如权利要求26所述的装置,其中,所述控制逻辑单元包括:
获取所述指令的指令获取单元,其中所述指令为高速缓冲存储器线清洗指令;
指令解码单元,它对所述高速缓冲存储器线清洗指令进行解码以产生微操作;
保留站,它从所述指令解码单元接收所述微操作;
存储器排序单元,它使得微操作相对于其它的微操作而不是相对于防护微操作被重新排序,所述其它的微操作为:装入微操作,储存微操作以及高速缓冲存储器线清洗微操作;以及
总线控制器,它具有一个使总线处理排队的总线队列。
30. 如权利要求29所述的装置,进一步包括多个写联合缓冲器,其中,响应所述指令在所述多个写联合缓冲器内分配一入口,而且更进一步,所述入口表明了高速缓冲存储器线清洗操作,但无需与来自所述高速缓冲存储器的所述存储器位置相关的数据,该入口即被分配。
31. 如权利要求30所述的装置,其中,所述存储器排序单元将微操作的数据大小认为是用于分离存取计算的一个字节。
32. 如权利要求30所述的装置,其中,所述高速缓冲存储器线清洗指令的入口被分配给一个写联合缓冲器,并且更进一步,所述微操作从一个装入端口被发送。
33. 如权利要求32所述的装置,其中,响应由控制逻辑单元启动的自查询,所述存储器位置被从所述高速缓冲存储器中清洗掉,而且更进一步,只有当响应所述指令和相关地址在所述高速缓冲存储器中预先发生命中时,自查询才被启动。
34. 如权利要求26所述的装置,其中,所述第一类型处理包括存储器存取和请求无效的指示。
35. 如权利要求26所述的装置,其中,所述控制逻辑单元,响应所述指令,将产生至少一个总线处理以表明与结束执行的所述指令的任何实例相关的各个相关地址所涉及的高速缓冲存储器线。
36. 一种响应高速缓冲存储器清洗宏指令清洗至少一个高速缓冲存储器线的装置,它包括:
高速缓冲存储器;
指令取逻辑单元,用于获取高速缓冲存储器清洗宏指令,所述高速缓冲存储器清洗宏指令具有表明存储器地址的操作数;
译码逻辑单元,用于把所述高速缓冲存储器清洗宏指令译码为微操作;
执行逻辑单元;
存储器排序逻辑单元,使得所述微操作被重新排序,以便由所述执行逻辑单元相对于从也由所述执行逻辑单元执行的其他高速缓冲存储器清洗宏指令来的其它微操作无序地完成执行;以及
总线控制器,响应所述微操作,产生一个表明存储器地址的无效处理,并将与所述存储器地址相对应的存储器位置从高速缓冲存储器清洗掉。
37. 如权利要求36所述的装置,进一步包括:
多个写联合缓冲器,其中,无需来自所述高速缓冲存储器的所述存储器地址的数据,所述高速缓冲存储器清洗操作就被所述写联合缓冲器接收。
38. 如权利要求36所述的装置,其中,存储器排序逻辑单元使得所述微操作相关于由所述存储器排序逻辑单元所处理的任何给不可高速缓冲存储型位置,反写型位置和不可高速缓冲存储型虚拟写联合存储器型位置的装入和储存指令但不相关于防护指令重新排序。
39. 如权利要求36所述的装置,其中,所述无效处理是响应所述微操作而产生的一种单一类型的处理,而不管高速缓冲存储器线是处于何种状态或是否存在。
40. 如权利要求39所述的装置,其中,无效处理包括零长度存储器存取以及使高速缓冲存储器线无效的指示。
41. 一种处理高速缓冲存储器线清洗指令的***,它包括:
第一处理器,所述第一处理器具有在第一地址高速缓冲存储第一修改数据值的第一高速缓冲存储器;
第二处理器,所述第二处理器具有在第二地址高速缓冲存储第二修改数据值的第二高速缓冲存储器,并执行表明所述第一地址的第一高速缓冲存储器线清洗指令和表明所述第二地址的第二高速缓冲存储器线清洗指令,以及响应第一和第二高速缓冲存储器线清洗指令,产生给第一处理器的第一类型总线循环的第一实例和所述第一类型总线循环的第二实例;
其中,响应第二处理器产生的第一类型总线循环的第一实例,第一处理器反写所述第一修改数据值,以及第二处理器为所述第一类型总线循环的所述第二实例反写所述第二修改数据值。
42. 如权利要求41所述的***,其中,所述第一类型总线循环是响应所述第二处理器执行高速缓冲存储器线清洗指令而产生的,而不管所述第二处理器的高速缓冲存储器中与所述高速缓冲存储器线清洗指令表明的所述地址相对应的高速缓冲存储器线是否存在以及它的状态。
43. 如权利要求42所述的***,其中,所述高速缓冲存储器线清洗指令是一种弱排序指令,能够相对于由单独一个处理器执行的包括其他高速缓冲存储器线清洗指令的其它存储器操作无序地执行。
44. 如权利要求41所述的***,其中,所述循环包括零长度的存取和无效线的指示。
45. 一种处理高速缓冲存储器线清洗指令的装置,它包括:
高速缓冲存储器;
指令获取单元,用于接收具有线性地址作为操作数的高速缓冲存储器清洗指令;
排序逻辑单元,使得高速缓冲存储器清洗指令相对于包括其它装入和储存指令以及所述高速缓冲存储器清洗指令的其他实例的其他指令无序地执行;以及
控制逻辑单元,对应于高速缓冲存储器中存在的线性地址,使高速缓冲存储器中的高速缓冲存储器线无效,并指示其它高速缓冲存储器以使对应于所述线性地址的任何存在的高速缓冲存储器线无效。
46. 如权利要求45所述的装置,其中,所述控制逻辑单元指示其它高速缓冲存储器,而不管所述高速缓冲存储器中是否存在所述高速缓冲存储器线和它的状态。
47. 如权利要求46所述的装置,其中,所述控制逻辑单元响应所述高速缓冲存储器清洗指令产生单一类型的总线处理而不考虑所述高速缓冲存储器中是否存在所述高速缓冲存储器线和它的状态。
48. 如权利要求45所述的装置,其中,作为与查询其它高速缓冲存储器一起执行的自查询的一部分,控制逻辑单元使所述高速缓冲存储器线无效。
49. 一种执行高速缓冲存储器线清洗指令的***,它包括:
总线;
与总线耦接的主存储器;以及
多个与所述总线耦接且形成连续域的高速缓冲存储代理,其中,通过执行所述多个高速缓冲存储代理中的一个而执行涉及一高速缓冲存储器线的高速缓冲存储器线清洗指令,就是通过产生由所述多个高速缓冲存储代理接收的第一类型的总线处理而使得所述连续域中所有所述多个高速缓冲存储代理中的所述高速缓冲存储器线无效,而不管所述高速缓冲存储器线在所述多个高速缓冲存储代理中正被执行的高速缓冲存储代理中是否被修改。
50. 如权利要求49所述的***,其中所述多个高速缓冲存储代理中正被执行的高速缓冲存储代理就是要产生一个存储器存取和无效循环,以查询所述多个高速缓冲存储代理中每一个的高速缓冲存储器。
51. 如权利要求50所述的***,其中,所述存储器存取和无效循环包括一个零长度存储器处理和请求执行无效的指示。
52. 如权利要求51所述的***,其中,所述多个高速缓冲存储代理中任何一个以经过修改形式高速缓冲存储所述高速缓冲存储器线的代理,包括正被执行的高速缓冲存储代理,当第一类型的总线处理发生时,要给所述第一类型的总线处理提供所述高速缓冲存储器线。
53. 如权利要求52所述的***,进一步包括把所述高速缓存器线清洗指令在一个高速缓冲存储代理中进行缓冲的装置。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US09/475,759 | 1999-12-30 | ||
US09/475,759 US6546462B1 (en) | 1999-12-30 | 1999-12-30 | CLFLUSH micro-architectural implementation method and system |
Related Child Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN200810128069.7A Division CN101446923B (zh) | 1999-12-30 | 2000-12-28 | 一种响应于指令而清洗高速缓冲存储器线的装置和方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN1425154A CN1425154A (zh) | 2003-06-18 |
CN100416515C true CN100416515C (zh) | 2008-09-03 |
Family
ID=23889009
Family Applications (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CNB008180709A Expired - Lifetime CN100416515C (zh) | 1999-12-30 | 2000-12-28 | 高速缓冲存储器线清洗指令和执行该指令的方法,装置以及*** |
CN200810128069.7A Expired - Lifetime CN101446923B (zh) | 1999-12-30 | 2000-12-28 | 一种响应于指令而清洗高速缓冲存储器线的装置和方法 |
Family Applications After (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN200810128069.7A Expired - Lifetime CN101446923B (zh) | 1999-12-30 | 2000-12-28 | 一种响应于指令而清洗高速缓冲存储器线的装置和方法 |
Country Status (9)
Country | Link |
---|---|
US (1) | US6546462B1 (zh) |
CN (2) | CN100416515C (zh) |
AU (1) | AU5789201A (zh) |
DE (1) | DE10085373B4 (zh) |
GB (1) | GB2374962B (zh) |
HK (2) | HK1049217A1 (zh) |
TW (1) | TW508575B (zh) |
WO (1) | WO2001050274A1 (zh) |
ZA (1) | ZA200205198B (zh) |
Families Citing this family (32)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6678810B1 (en) | 1999-12-30 | 2004-01-13 | Intel Corporation | MFENCE and LFENCE micro-architectural implementation method and system |
DE10243446B4 (de) * | 2002-09-19 | 2005-12-15 | Celanese Chemicals Europe Gmbh | Verfahren zur Herstellung von Aldehyden |
US6976128B1 (en) * | 2002-09-26 | 2005-12-13 | Unisys Corporation | Cache flush system and method |
US6973541B1 (en) * | 2002-09-26 | 2005-12-06 | Unisys Corporation | System and method for initializing memory within a data processing system |
US7107405B2 (en) * | 2003-05-30 | 2006-09-12 | Intel Corporation | Writing cached data to system management memory |
US7143246B2 (en) * | 2004-01-16 | 2006-11-28 | International Business Machines Corporation | Method for supporting improved burst transfers on a coherent bus |
US7321954B2 (en) * | 2004-08-11 | 2008-01-22 | International Business Machines Corporation | Method for software controllable dynamically lockable cache line replacement system |
US20060090034A1 (en) * | 2004-10-22 | 2006-04-27 | Fujitsu Limited | System and method for providing a way memoization in a processing environment |
JP4819369B2 (ja) * | 2005-02-15 | 2011-11-24 | 株式会社日立製作所 | ストレージシステム |
JP2007193866A (ja) * | 2006-01-17 | 2007-08-02 | Toshiba Corp | 情報記録装置及びその制御方法 |
US7882325B2 (en) * | 2007-12-21 | 2011-02-01 | Intel Corporation | Method and apparatus for a double width load using a single width load port |
US8127085B2 (en) * | 2008-12-02 | 2012-02-28 | Intel Corporation | Method and apparatus for pipeline inclusion and instruction restarts in a micro-op cache of a processor |
US8214598B2 (en) * | 2009-12-22 | 2012-07-03 | Intel Corporation | System, method, and apparatus for a cache flush of a range of pages and TLB invalidation of a range of entries |
US8352685B2 (en) | 2010-08-20 | 2013-01-08 | Apple Inc. | Combining write buffer with dynamically adjustable flush metrics |
US8543766B2 (en) * | 2011-06-10 | 2013-09-24 | Freescale Semiconductor, Inc. | Writing data to system memory in a data processing system in which cache line states are tracked |
CN104025065B (zh) * | 2011-12-21 | 2018-04-06 | 英特尔公司 | 用于存储器层次察觉的生产者‑消费者指令的装置和方法 |
US10387331B2 (en) * | 2012-06-05 | 2019-08-20 | Vmware, Inc. | Process for maintaining data write ordering through a cache |
US9754648B2 (en) | 2012-10-26 | 2017-09-05 | Micron Technology, Inc. | Apparatuses and methods for memory operations having variable latencies |
US9734097B2 (en) | 2013-03-15 | 2017-08-15 | Micron Technology, Inc. | Apparatuses and methods for variable latency memory operations |
US9727493B2 (en) | 2013-08-14 | 2017-08-08 | Micron Technology, Inc. | Apparatuses and methods for providing data to a configurable storage area |
US9563565B2 (en) | 2013-08-14 | 2017-02-07 | Micron Technology, Inc. | Apparatuses and methods for providing data from a buffer |
US10216640B2 (en) | 2014-03-21 | 2019-02-26 | Samsung Electronics Co., Ltd. | Opportunistic cache injection of data into lower latency levels of the cache hierarchy |
CN104932989B (zh) * | 2014-03-21 | 2020-05-19 | 三星电子株式会社 | 数据到高速缓冲层次低延迟层级中的机会性高速缓冲注入 |
US20150317158A1 (en) * | 2014-04-03 | 2015-11-05 | Applied Micro Circuits Corporation | Implementation of load acquire/store release instructions using load/store operation with dmb operation |
US10489158B2 (en) | 2014-09-26 | 2019-11-26 | Intel Corporation | Processors, methods, systems, and instructions to selectively fence only persistent storage of given data relative to subsequent stores |
JP6489840B2 (ja) * | 2015-01-20 | 2019-03-27 | エイブリック株式会社 | ホール素子 |
US9971686B2 (en) * | 2015-02-23 | 2018-05-15 | Intel Corporation | Vector cache line write back processors, methods, systems, and instructions |
US11556477B2 (en) * | 2018-06-15 | 2023-01-17 | Arteris, Inc. | System and method for configurable cache IP with flushable address range |
US10691594B2 (en) * | 2018-06-29 | 2020-06-23 | Intel Corporation | Selective execution of cache line flush operations |
US20190042479A1 (en) * | 2018-06-29 | 2019-02-07 | Intel Corporation | Heuristic and machine-learning based methods to prevent fine-grained cache side-channel attacks |
US10802830B2 (en) * | 2019-03-05 | 2020-10-13 | International Business Machines Corporation | Imprecise register dependency tracking |
US11416397B2 (en) * | 2019-10-14 | 2022-08-16 | Intel Corporation | Global persistent flush |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
GB2178205A (en) * | 1985-06-27 | 1987-02-04 | Encore Computer Corp | Hierarchical cache memory system and method |
EP0210384A1 (en) * | 1985-06-28 | 1987-02-04 | Hewlett-Packard Company | Cache memory consistency control with explicit software instructions |
Family Cites Families (20)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4426682A (en) * | 1981-05-22 | 1984-01-17 | Harris Corporation | Fast cache flush mechanism |
CH672816A5 (zh) * | 1986-10-03 | 1989-12-29 | Pantex Stahl Ag | |
DE3740834A1 (de) * | 1987-01-22 | 1988-08-04 | Nat Semiconductor Corp | Aufrechterhaltung der kohaerenz zwischen einem mikroprozessorenintegrierten cache-speicher und einem externen speicher |
US5214770A (en) * | 1988-04-01 | 1993-05-25 | Digital Equipment Corporation | System for flushing instruction-cache only when instruction-cache address and data-cache address are matched and the execution of a return-from-exception-or-interrupt command |
US5408636A (en) * | 1991-06-24 | 1995-04-18 | Compaq Computer Corp. | System for flushing first and second caches upon detection of a write operation to write protected areas |
US5524233A (en) * | 1993-03-31 | 1996-06-04 | Intel Corporation | Method and apparatus for controlling an external cache memory wherein the cache controller is responsive to an interagent communication for performing cache control operations |
US5551006A (en) * | 1993-09-30 | 1996-08-27 | Intel Corporation | Low cost writethrough cache coherency apparatus and method for computer systems without a cache supporting bus |
US5606687A (en) * | 1993-10-07 | 1997-02-25 | Sun Microsystems, Inc. | Method and apparatus for optimizing supervisor mode store operations in a data cache |
US5630075A (en) * | 1993-12-30 | 1997-05-13 | Intel Corporation | Write combining buffer for sequentially addressed partial line operations originating from a single instruction |
US6000017A (en) * | 1995-01-20 | 1999-12-07 | Intel Corporation | Hybrid tag architecture for a cache memory |
JP2902976B2 (ja) * | 1995-06-19 | 1999-06-07 | 株式会社東芝 | キャッシュフラッシュ装置 |
US5860105A (en) * | 1995-11-13 | 1999-01-12 | National Semiconductor Corporation | NDIRTY cache line lookahead |
US6021473A (en) * | 1996-08-27 | 2000-02-01 | Vlsi Technology, Inc. | Method and apparatus for maintaining coherency for data transaction of CPU and bus device utilizing selective flushing mechanism |
US5926830A (en) * | 1996-10-07 | 1999-07-20 | International Business Machines Corporation | Data processing system and method for maintaining coherency between high and low level caches using inclusive states |
US5963978A (en) * | 1996-10-07 | 1999-10-05 | International Business Machines Corporation | High level (L2) cache and method for efficiently updating directory entries utilizing an n-position priority queue and priority indicators |
US6122711A (en) * | 1997-01-07 | 2000-09-19 | Unisys Corporation | Method of and apparatus for store-in second level cache flush |
US5895488A (en) * | 1997-02-24 | 1999-04-20 | Eccs, Inc. | Cache flushing methods and apparatus |
US6260117B1 (en) * | 1997-09-18 | 2001-07-10 | International Business Machines Corporation | Method for increasing efficiency in a multi-processor system and multi-processor system with increased efficiency |
US6205521B1 (en) * | 1997-11-03 | 2001-03-20 | Compaq Computer Corporation | Inclusion map for accelerated cache flush |
US6145062A (en) * | 1998-01-26 | 2000-11-07 | Intel Corporation | Selective conflict write flush |
-
1999
- 1999-12-30 US US09/475,759 patent/US6546462B1/en not_active Expired - Lifetime
-
2000
- 2000-12-28 AU AU57892/01A patent/AU5789201A/en not_active Abandoned
- 2000-12-28 CN CNB008180709A patent/CN100416515C/zh not_active Expired - Lifetime
- 2000-12-28 CN CN200810128069.7A patent/CN101446923B/zh not_active Expired - Lifetime
- 2000-12-28 GB GB0217123A patent/GB2374962B/en not_active Expired - Fee Related
- 2000-12-28 DE DE10085373T patent/DE10085373B4/de not_active Expired - Lifetime
- 2000-12-28 WO PCT/US2000/035481 patent/WO2001050274A1/en active Application Filing
-
2001
- 2001-03-20 TW TW089128324A patent/TW508575B/zh not_active IP Right Cessation
-
2002
- 2002-06-27 ZA ZA200205198A patent/ZA200205198B/en unknown
-
2003
- 2003-02-20 HK HK03101290A patent/HK1049217A1/xx not_active IP Right Cessation
-
2004
- 2004-12-21 HK HK04110079A patent/HK1066991A1/xx not_active IP Right Cessation
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
GB2178205A (en) * | 1985-06-27 | 1987-02-04 | Encore Computer Corp | Hierarchical cache memory system and method |
EP0210384A1 (en) * | 1985-06-28 | 1987-02-04 | Hewlett-Packard Company | Cache memory consistency control with explicit software instructions |
Also Published As
Publication number | Publication date |
---|---|
CN101446923A (zh) | 2009-06-03 |
HK1049217A1 (en) | 2003-05-02 |
AU5789201A (en) | 2001-07-16 |
TW508575B (en) | 2002-11-01 |
GB2374962A (en) | 2002-10-30 |
DE10085373T1 (de) | 2003-04-24 |
ZA200205198B (en) | 2004-02-03 |
CN101446923B (zh) | 2015-06-24 |
GB0217123D0 (en) | 2002-09-04 |
CN1425154A (zh) | 2003-06-18 |
GB2374962B (en) | 2004-12-15 |
US6546462B1 (en) | 2003-04-08 |
WO2001050274A1 (en) | 2001-07-12 |
DE10085373B4 (de) | 2007-11-22 |
HK1066991A1 (en) | 2005-03-18 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN100416515C (zh) | 高速缓冲存储器线清洗指令和执行该指令的方法,装置以及*** | |
US11803486B2 (en) | Write merging on stores with different privilege levels | |
US9513904B2 (en) | Computer processor employing cache memory with per-byte valid bits | |
US7277992B2 (en) | Cache eviction technique for reducing cache eviction traffic | |
US6748501B2 (en) | Microprocessor reservation mechanism for a hashed address system | |
US6370622B1 (en) | Method and apparatus for curious and column caching | |
US7305523B2 (en) | Cache memory direct intervention | |
US5715428A (en) | Apparatus for maintaining multilevel cache hierarchy coherency in a multiprocessor computer system | |
US7305522B2 (en) | Victim cache using direct intervention | |
US5787478A (en) | Method and system for implementing a cache coherency mechanism for utilization within a non-inclusive cache memory hierarchy | |
US6078992A (en) | Dirty line cache | |
US7434007B2 (en) | Management of cache memories in a data processing apparatus | |
US6574710B1 (en) | Computer cache system with deferred invalidation | |
JP3262519B2 (ja) | 第2レベルキャッシュの古いラインの除去によるプロセッサのメモリ性能の強化方法及びシステム | |
US7325102B1 (en) | Mechanism and method for cache snoop filtering | |
US6418514B1 (en) | Removal of posted operations from cache operations queue | |
JP3007870B2 (ja) | アーキテクチャ操作を管理する方法及び装置 | |
JP4812876B2 (ja) | 演算処理装置および演算処理装置の制御方法 | |
US6345340B1 (en) | Cache coherency protocol with ambiguous state for posted operations | |
US20040153610A1 (en) | Cache controller unit architecture and applied method | |
KR19980081314A (ko) | 프로세서 버스로의 캐쉬 연산의 요구-기반 발생 방법 및 장치 | |
US20230401156A1 (en) | Access optimized partial cache collapse |
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 | ||
CX01 | Expiry of patent term |
Granted publication date: 20080903 |
|
CX01 | Expiry of patent term |