CN1168008C - 高速缓存污染免除指令 - Google Patents
高速缓存污染免除指令 Download PDFInfo
- Publication number
- CN1168008C CN1168008C CNB991055349A CN99105534A CN1168008C CN 1168008 C CN1168008 C CN 1168008C CN B991055349 A CNB991055349 A CN B991055349A CN 99105534 A CN99105534 A CN 99105534A CN 1168008 C CN1168008 C CN 1168008C
- Authority
- CN
- China
- Prior art keywords
- instruction
- cache
- data
- nonvolatile
- register
- 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
- 230000015654 memory Effects 0.000 claims abstract description 131
- 238000000034 method Methods 0.000 claims abstract description 31
- 238000003860 storage Methods 0.000 claims description 84
- 230000000295 complement effect Effects 0.000 claims description 13
- 230000006835 compression Effects 0.000 claims description 13
- 238000007906 compression Methods 0.000 claims description 13
- 238000007667 floating Methods 0.000 claims description 12
- 230000004044 response Effects 0.000 claims description 9
- 230000008569 process Effects 0.000 claims description 8
- 230000000873 masking effect Effects 0.000 claims description 7
- 238000012856 packing Methods 0.000 claims description 5
- 230000008878 coupling Effects 0.000 claims description 3
- 238000010168 coupling process Methods 0.000 claims description 3
- 238000005859 coupling reaction Methods 0.000 claims description 3
- 238000000151 deposition Methods 0.000 claims description 3
- 230000014759 maintenance of location Effects 0.000 claims 5
- 230000033228 biological regulation Effects 0.000 claims 3
- 238000013500 data storage Methods 0.000 claims 2
- 238000013479 data entry Methods 0.000 abstract 2
- 230000005055 memory storage Effects 0.000 description 18
- 230000014509 gene expression Effects 0.000 description 13
- 230000001052 transient effect Effects 0.000 description 7
- 238000005516 engineering process Methods 0.000 description 5
- 230000007246 mechanism Effects 0.000 description 4
- 238000012545 processing Methods 0.000 description 4
- 238000010586 diagram Methods 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 241001269238 Data Species 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 238000011109 contamination Methods 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000009826 distribution Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000008520 organization Effects 0.000 description 1
- 230000002123 temporal effect Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0877—Cache access modes
- G06F12/0886—Variable-length word access
-
- 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/0888—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches using selective caching, e.g. bypass
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30003—Arrangements for executing specific machine instructions
- G06F9/30007—Arrangements for executing specific machine instructions to perform operations on data operands
- G06F9/30018—Bit or string instructions
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30003—Arrangements for executing specific machine instructions
- G06F9/30007—Arrangements for executing specific machine instructions to perform operations on data operands
- G06F9/30036—Instructions to perform operations on packed data, e.g. vector, tile or matrix operations
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30003—Arrangements for executing specific machine instructions
- G06F9/30007—Arrangements for executing specific machine instructions to perform operations on data operands
- G06F9/30036—Instructions to perform operations on packed data, e.g. vector, tile or matrix operations
- G06F9/30038—Instructions to perform operations on packed data, e.g. vector, tile or matrix operations using a mask
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30003—Arrangements for executing specific machine instructions
- G06F9/3004—Arrangements for executing specific machine instructions to perform operations on memory
- G06F9/30047—Prefetch instructions; cache control instructions
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Mathematical Physics (AREA)
- Memory System Of A Hierarchy Structure (AREA)
Abstract
一种配备有高速缓冲存储器管理的计算机系统和方法。该系统包括:一个具有许多主存储器地址的主存储器,每一个主存储器地址有对应的数据入口;和一个与主存储器连接的处理器。至少有一个高速缓冲存储器与处理器连接。至少一个高速缓冲存储器具有一个高速缓存目录和一个高速缓存控制器,高速缓存目录有许多地址,高速缓存控制器有与许多地址相对应的许多数据入口,处理器接收具有操作数地址的指令,并确定操作数地址是否与高速缓存目录中的许多地址中的一个地址相匹配。
Description
技术领域
本发明总的涉及计算机系统领域,尤其涉及提供指令的装置和方法,这些指令在将高速缓存污染减至最小的同时还使得对高速缓存访问的控制易于执行。
背景技术
与处理器一起使用的高速缓冲存储器使得内存的访问时间减少。构造高速缓存的基本思想是把最频繁被访问的指令和数据放置在快速的高速缓冲存储器中,使得平均的内存访问时间接近高速缓存的访问时间。为了获得在高速缓存的尺寸和性能之间的最佳的折衷,通常的处理器采用分级的高速缓存,即:高速缓存具有不同的级。高速缓存的不同的级与处理器内核的不同的距离相对应。高速缓冲存储器愈靠近处理器,数据访问的速度愈快。然而,高速缓存愈靠近处理器,制造的成本愈高。结果,高速缓存愈靠近处理器,高速缓存就愈快并且(容量)愈小。
依据高速缓存的命中率,频繁地测量高速缓冲存储器的性能。当处理器访问内存并找到在它的高速缓存中的数据时,就叫做产生一次命中(hit)。如果数据没有在高速缓存中找到,而数据是在主存储器中,那么就被认为是未命中(miss)。如果一次未命中发生,就在按照访问地址索引的入口处进行分配。访问可以是将数据装入处理器或者是将数据从处理器存放到内存中。高速缓存的信息被高速缓冲存储器一直保持着,直到它不再需要、失效、或者被其他的数据替换时为止,在这些情况时,高速缓存入口被重新分配。
计算机系统可以使用一级或多级的高速缓冲存储器。各种已知的计算机系统的高速缓存运用的分配和重新分配的方式通常在实际中是相似的。通常的做法是在高速缓存中为处理器需要的所有访问分配一个入口。于是系统结构指明重复使用访问过的数据,不指明有关的高速缓存的分层次的级。即:所有的访问被分配在高速缓存中。这种处理的缺点是在某些情况下,某些数据被访问一次,并且,在不久的将来不被重复使用。对于这样的数据,通常称之为非暂时数据,当高速缓冲存储器满了时,用这些数据覆盖频繁使用的数据(即:暂时数据),例如高速缓存应用的代码和数据是不希望的。
发明内容
根据本发明的一个方面,提供一种计算机系统,该系统包括包括:
一个主存储器,该主存储器具有多个主存储器地址,每个地址具有一个对应的数据入口;
一条总线;
一个通过该总线与所述主存储器连接的处理器,该处理器包括:
至少一个高速缓冲存储器,所述至少一个高速缓冲存储器具有一个高速缓存目录和一个高速缓存控制器,该高速缓存目录有多个地址,该高速缓存控制器具有多个与所述多个地址相对应的数据入口;
一个寄存器;
一个执行一条具有一个操作码和一个操作数地址的指令的执行装置,该操作数地址指定一个内存单元,其中所述处理器以屏蔽为基础进行选择性复制,将部分数据从该寄存器复制到由该操作数地址指定的内存单元,并且为响应所述操作码,所述处理器防止通过执行该指令复制的数据被存储在所述至少一个高速缓冲存储器中。
根据本发明的另一方面,提供一种方法,其包括:
接收具有一个操作数地址的指令;
响应所述指令,以屏蔽值为基础,将寄存器中的部分数据选择性地移动到由该操作数地址指明的内存单元;
响应该指令,防止所述内存单元被写到高速缓冲存储器。
根据本发明的第三方面,提供一种设备,其包括:
一个用于存储多个入口和多个有关的地址的高速缓冲存储器;
一个寄存器;
一个使用屏蔽模式执行第一指令以进行移动操作的执行装置,所述屏蔽模式指明所述寄存器数据的哪些部分将被存入内存单元,所述第一指令防止通过执行所述第一指令而被移动的数据被高速缓存到所述高速缓冲存储器中。
根据本发明的第四方面,提供一种设备,其包括:
一个用于存储多个入口和多个有关的地址的高速缓冲存储器;
一个寄存器;
一个接收第一指令的执行装置,该第一指令具有指明该第一指令是一个非暂时指令的操作码,所述第一指令指明数据项从该寄存器到内存单元的存储,响应所述操作码,所述执行装置防止该数据项存入该高速缓冲存储器,其中,响应包括该第一指令的多个指令是多个非暂时存储指令,将该多个指令组合成将被送到总线的一个写事务。
根据本发明的第五方面,提供一种方法,其包括:
接收具有一个操作码和一个操作数地址的指令,该操作码指明一个非暂时指令,该操作数地址是响应该指令,寄存器的操作数数据在该地址将被存储的地址;
响应该操作码,防止所述操作数数据被写到高速缓冲存储器;
在将一个存储送到总线之前,将包括该指令的多个非暂时存储组合。
根据本发明的第六方面,提供一个系统,包括:
一个具有多个主存储器地址的主存储器,每个主存储器地址具有相应的数据入口;
一个包括总线接口并连接到所述主存储器的处理器;
一个存储多个入口和多个有关地址的高速缓冲存储器;
一个寄存器;
用于接收指令的控制逻辑,该指令是具有操作码和操作数地址的非暂时存储指令,响应该操作码,所述控制逻辑防止根据所述指令高速缓存从该寄存器写到内存单元的数据,所述控制逻辑将包括所述指令的多个非暂时存储组合成在该总线接口上送出的一个写事务。
附图说明
通过实施例和附图(但不受其限制)说明本发明。相同的标号表示相同的部件。
附图1说明按照本发明的一个实施例的例示性计算机系统。
附图2说明按照本发明的一个实施例的高速缓冲存储器(例如:L0、L1、和/或L2)的组织结构的一个实施例
附图3说明按照本发明的一个实施例提供的高速缓存污染免除指令165的格式的一个实施例。
附图4A和4B说明按照本发明的一个实施例的高速缓存污染免除指令的操作。
附图5A和5B说明按照本发明的另一个实施例的高速缓存污染免除指令的操作。
附图6是说明本发明的操作步骤的一个实施例的流程图。
具体实施方式
在下面的说明中,多处特定的详细说明是为了对本发明的彻底的理解。然而,应该明白:没有这些特定的详细说明可以实践本发明。在其他情况下,为了容易理解本发明,公知的电路、结构和技术不在这里详细说明。
附图1说明按照本发明的原理实现的计算机系统100的一个实施例。计算机系统100包括处理器105、存储装置110和总线115。通过总线115,处理器105与存储器110连接。存储装置110表示一个或者多个存储数据的机构。例如,存储装置110可以包括只读存储器(ROM)、随机访问存储器(RAM)、磁盘存储介质、光存储介质、闪速存储设备、和/或其他的机器可读的介质。另外,多个用户输入/输出设备,例如:键盘120和显示器125,也与总线115连接。处理器105表示任何结构类型的中央处理器,例如:多线程的CISC、RISC、VLIW、或者混合体系结构计算机。另外,处理器105能够用一个或者多个芯片实现。存储装置110表示一个或者多个存储数据的机构。例如:存储装置110可以包括只读存储器(ROM)、随机访问存储器(RAM)、磁盘存储介质、光存储介质、闪速存储设备、和/或其它的机器可读的存储介质。总线115表示一个或者多个总线(例如:AGP、PCI、ISA、X-Bus、VESA、等等)和桥(也叫做总线控制器)。这里是以单处理器的计算机系统来说明本实施例的,本发明能够在多处理器的计算机系统中实现。
除了其它设备以外,一个或者多个网络130、TV广播信号接收器131、传真机/调制解调器132、数字化装置133、声音装置134、图形装置135,可以任选地与总线115连接。网络130和传真机/调制解调器132表示一个或者多个网络连接,用来通过机器可读的介质(例如:载波)传递数据。数字化装置133表示一个或者多个数字化图象的设备(即:扫描器、摄象机等等)。声音装置134表示一个或者多个输入和/或输出声音的装置(例如:麦克风、扬声器、磁主存储器等等)、图形装置135表示一个或者多个生成3-D图象的设备(例如:图形卡)。附图1也说明:存储装置110已经在里面存放了数据136和软件137。数据136表示以这里说明的一个或多个格式存放的数据。软件137表示必需的程序代码,这些程序代码用于执行由参照附图2和附图4-6说明的任何一种或者全部的技术。当然,存储装置110最好包括另外的软件(这里没有表示),这些软件对理解本发明不是必需的。
附图1还说明:处理器105包括译码器140、一组寄存器141、执行装置142、和用于执行指令的内部总线143。处理器105还包括二个内部的高速缓冲存储器,0级(L0)高速缓冲存储器与执行装置142连接,而1级(L1)高速缓冲存储器与L0高速缓冲存储器相连接。外部的高速缓冲存储器(即:2级(L2)高速缓冲存储器172)通过高速缓冲存储器的控制器170与总线115连接。各种高速缓冲存储器的实际布局是由设计选择的,或者可以由处理器的结构确定。因此,可以明白:L1高速缓冲存储器可以被放置在处理器105的外部。在另一个实施例中,较多或者较少级的高速缓冲存储器(不只是L1和L2)可以被实现。
当然,处理器105还包括其它的电路,这些电路对理解本发明不是必需的。译码器140、寄存器141和执行装置142用内部总线143连接在一起。译码器140被用于把由处理器105接收的指令译码成控制信号,和/或微代码入口点(MICROCODE ENTRY POINTS)。作为对这些控制信号和/或微代码入口点的回应,执行装置142执行适当的操作。使用任何数量的不同的机构(例如:查找表、硬件实现、PLA、等等)可以制成译码器140。这里,尽管通过一系列的if/then语句来表示各种指令的译码,但要明白:一条指令的执行不需要一系列的这些if/then语句处理。相反地,逻辑地执行这个if/then语句处理的任何机构被考虑在实现本发明的范围之内。
译码器140包括取指装置150和指令集160,取指装置150用于取出指令,指令集160用于执行对数据的操作。在一个实施例中,指令集160包括按照本发明配备的高速缓存污染免除指令165。高速缓存污染免除指令165的实施例包括下列指令:字节屏蔽写指令(例如:MASKMOVQ)、移动64位的非暂时指令(例如:MOVNTQ)、和移动对齐的四压缩单浮点(FP)非暂时指令(例如:MOVNTPS)。字节屏蔽指令通常执行使用屏蔽模式的写。屏蔽模式指明写能够被执行的字位的位置。在一个实施例中,‘0’对应于不写(屏蔽),而’1’对应于写(不屏蔽)。因此,00100100的屏蔽模式允许写入位位置2和5,而其它位位置被屏蔽掉。MASKMOVQ和MOVNTQ指令可运用于整型数据。尤其是,MASKMOVQ指令把表示整型数据的64位从寄存器移动到指定的内存位置,而MOVNTQ指令把表示整型操作数的64位从寄存器移动到内存。MOVNTPS指令可运用于压缩的浮点数据,其中,在具有预先确定位数的两组数之间的操作结果,被存放在具有相同的预先确定位数的一个寄存器中,即:操作数的尺寸或配置是与结果寄存器相同的。某些高速缓存污染免除指令被说明用于特定类型和特定总量的数据,另一个实施例能够支持对不同的类型和不同量的数据操作的指令。
除了高速缓存污染免除指令165以外,处理器105能够包括新指令和/或相似于或者相同于那些在现有的通常处理器中能够找到的指令。例如,在一个实施例中,处理器105支持由现有的处理器使用的与Intel结构指令集兼容的指令集(例如:奔腾II处理器)。本发明的另外的实施例可以包含较多或者较少以及不同的指令,而仍然使用本发明的学说。
寄存器141表示在处理器105上的用来存储信息的存储装置,这些信息有控制/状态信息、标量的和/或压缩的整型数据、浮点数据、等等。应该明白:本发明的一个方面是所描述的指令集,按照本发明的这一方面,用于存放数据的存储区域不是关键的。这里术语数据处理系统被应用于指处理数据的任何机器,包括参考附图1说明的计算机系统。
附图2说明高速缓冲存储器的组织结构(例如:L0、L1和/或L2)的一个实施例。为了现在讨论的目的,高速缓冲存储器L0、L1和/或L2将被称作高速缓冲存储器200。高速缓冲存储器200包括高速缓存目录210和多个高速缓存入口2201-220n(总称为高速缓存入口220)。高速缓存目录210存放许多在存储装置110中的存储器单元的地址2121-212n,并对应于高速缓存入口2201-220n。在存储装置110中的存储器单元具有地址2301-230n。
附图3说明按照本发明配备的高速缓存污染免除指令165的格式的一个实施例。高速缓存污染免除指令165包括:操作码(OP CODE)310和操作数312,操作码310指明高速缓存污染免除指令165的操作,操作数312指明指令165将进行操作的目标数据的地址。为了理解本发明,必须懂得涉及到高速缓存污染免除技术的某些术语。本发明运行在主机中,其中,被访问的特定数据将具有(或者不具有)暂时位置。暂时位置是一个与数据有关的属性,并且,由在将来多久程序将访问该数据来确定。因此,对每一种数据模式,数据可以具有暂时位置(T)或者不具有暂时位置(NT),这与高速缓冲存储器或者在分层次的高速缓存中的高速缓存的级有关。
在附图1中,说明了分层次的高速缓存的三级(表示为:级L0、L1和L2),其中,在每一级处,对于分类被访问的数据模式,都有两种可能性。类型被表示为1)暂时(T);和2)非暂时(NT)。类型是以与计算机系统的访问数据相关的属性为基础的。会理解到:分层次的高速缓存的三级被表示在附图1中,但是,可以有较多或者较少的级。例如,本发明可以仅有一个高速缓存的级(仅有L0)或者仅有二个高速缓存的级(仅有L0和L1),或者有四个或更多的高速缓存的级。
在本发明的实施例中,暂时性质是与存放或保留的数据与处理器105有多么接近相联系在一起的。于是,暂时性质是与在给定级处的数据的使用或重复使用相联系在一起的。例如,如果在程序中的特定数据模式,相对于L1,被标识为T,而相对于L2,被标识为NT,那么,这个数据不久将在L1高速缓存中被使用,但是在不久的将来不在L2高速缓存中被使用。数据将被使用或者重复使用的有多少快的暂时时间间隔(TEMPORAL DISTANCE),依赖特定的计算机系统和软件的应用。当在给定的高速缓存的级处的数据访问被认为是T时,在不久的将来的某一时间片内(例如:在X条指令内),它可能将被重复使用(假定没有转移发生,等等)。而在给定级处的数据访问被认为是NT时,在指定的时间片内,它可能将不被重复使用。
因此,按照数据需要的活动为基础,能够设置指明的暂时标准。于是本发明提供一种模式,其中,高速缓存污染免除能够在高速缓冲存储器被实现,或者根据与在特定的级处的数据相关的属性在每一高速缓存的分层次的级处被实现。尤其是,通过使用高速缓存污染免除指令165处理数据,程序员指出:有关的数据不具有暂时位置,即:有关的数据是非暂时的。然后,根据使用的高速缓存污染免除指令165处理有关的数据。因此,高速缓存污染免除可以基于在高速缓存的每一级的分类,即没有、一个、或者多于一个。
在附图1中,只表示L0、L1、和L2级,但是,很清楚:较多的或者较少的级(例如:一级)能够被容易地实现。在附图4-6中说明的实施例参照一个高速缓存的级描述本发明。
本发明的高速缓存污染免除技术现在将被说明。在接收到高速缓存污染免除指令165时,高速缓冲存储器200的高速缓存目录210首先被查询,确定在操作数312中指明的地址是否与存放在高速缓存目录210中的地址之一相匹配。如果匹配,那么,就有一次高速缓存命中,并且对应的数据对象(即:对应于在操作数中指明的地址的高速缓冲存储器的内容)被修改。在高速缓冲存储器的不同的级被使用(例如:L0、L1和L2)的一个实施例中,任何一个高速缓存的级或者任何高速缓冲存储器的组合都被修改。在另一个实施例中,在高速缓冲存储器中的和在主存储器中的对应的数据对象都被修改。
如果在操作数312中指明的地址不与存放在高速缓存目录210中的任何一个地址相匹配。那么,就有一次高速缓存的未命中。在这种情况下,就没有高速缓存行填入,即:在存储装置110中的对应的数据对象将不被传送到高速缓冲存储器210中。不执行高速缓存行的填入,处理器105避免了污染高速缓存。
附图4A和4B说明按照本发明的实施例的高速缓存污染免除指令的操作,其中,有一次高速缓存的命中。在接收到高速缓存污染免除指令165’时,高速缓冲存储器200的高速缓存目录210被查询,确定地址(例如:在操作数312’中指明的地址X)是否与存放在高速缓存目录210中的地址之一相匹配。如果高速缓冲存储器200是一个内部高速缓冲存储器(即:L0或者L1高速缓冲存储器),那么,处理器105进行查询(POLLING)。如果高速缓冲存储器200是一个外部高速缓冲存储器(例如:L2高速缓冲存储器),那么,查询由高速缓存控制器进行。在一个实施例中,比较装置410比较在操作数312’中指明的地址X,确定它是否与存放在高速缓存目录210中的地址2121-212n之一相匹配(附图4A)。在此情况下,有一个地址相匹配,指出:有一个高速缓存命中,并且,比较装置410送出第一个信号到高速缓存行填入逻辑电路420,确定信号是否应该被送到对应于在高速缓存目录210中的地址X的数据对象2124,或者,既送到数据对象2124又送到在存储装置110中的1104里对应的数据对象,修改数据对象2124和/或1104。然后,需要的信号被送出,并且对应的数据对象2124和/或1104的修改被执行(附图4B)。
附图5A和5B说明按照本发明的另一个实施例的高速缓存污染免除指令的操作,其中,有一次高速缓存的未命中。在接收到高速缓存污染免除指令165”时,高速缓冲存储器200的高速缓存目录210被查询,确定地址(例如:在操作数312”中指明的地址Y)是否与存放在高速缓存目录210中的地址之一相匹配。尤其是,比较装置410比较在操作数312”中指明的地址Y,确定它是否与存放在高速缓存目录210中的地址2121-212n之一相匹配(附图5A)。在此情况下,在操作数312”中指明的地址Y不与存放在高速缓存目录210中的地址2121-212n中的任何一个地址相匹配。结果,比较装置410送出第二个信号到高速缓存行填入逻辑电路420,指明有一次高速缓存的未命中。作为回应,高速缓存行填入逻辑电路仅仅送出一个信号到存储装置110,修改地址Y的内容。然而,不执行高速缓存行填入,即:对应的在存储装置110中的数据对象1105不被传送到高速缓冲存储器210。因此,高速缓冲存储器210保持原封不动,并且,不被非暂时数据污染。
在一个实施例中,高速缓存污染免除指令165是一条弱排序指令。即:当处理许多条高速缓存污染免除指令165时,许多条高速缓存污染免除指令的执行不是按照与它们被译码器中的取指部件取出的相同顺序执行的。在另一个实施例中,高速缓存污染免除指令165具有写折叠(WRITE COLLAPSING)性质,即,当对同一地址执行连续的存储时,只有最后一次存储在总线115上是可见的。在又一个实施例中,高速缓存污染免除指令165具有写结合(WRITE COMBINING)性质,即,在写操作被送到存储装置110以前,对同一高速缓存行的可高速缓存的存储的未命中被结合在一起。
附图6是说明本发明的操作步骤的一个实施例的流程图。从开始状态开始,过程600继续到判断框610,在那里,它确定高速缓存污染免除指令165中的地址是否与高速缓存目录210中的地址之一相匹配。如果匹配,那么,过程600前进到判断框612,在那里,它确定:是否仅仅是对应的高速缓存入口将要被修改,或者确定:是否对应的高速缓存入口和存储装置110中的对应的入口都必需被修改。如果仅仅是对应的高速缓存入口将要被修改,那么,过程600前进到处理框614,在那里,它修改高速缓冲存储器中的对应的入口(框614)。否则,它修改对应的高速缓存入口和存储装置110中的对应的入口。两种情况中不论发生那一种情况,过程600都结束。在判断框610处如果它确定:在高速缓存污染免除指令165中的地址不与高速缓存目录210中的地址之一相匹配,那么,过程600不执行高速缓存行填入,代之以,仅修改在存储装置110中的对应的入口(处理框620)。
因此,通过在非暂时访问期间不执行高速缓存行填入,本发明的使用提高了系统性能。尤其是,因为在非暂时访问期间没有高速缓存行填入被执行,那么,通过减少对高速缓存的竞争,改善了系统的性能,因为频繁使用的数据(即:暂时数据)不会被非暂时数据从高速缓存中驱逐出去。结果,在非暂时访问期间的高速缓存的污染或者干扰被减至最小。
尽管本发明的一个优选的实施例已经被说明,但应该会明白:本发明不被限制于这样的使用。另外,尽管参照几个实施例已经说明本发明,本领域的熟练技术人员将会认识到:本发明不被限制于前面说明的实施例。在所附的权利要求的精神和范围内进行修改和替换,能够实现本发明的方法和装置。因此,前面的描述被认为是有关本发明的说明,而不是限制本发明。
Claims (72)
1.一种计算机系统,包括:
一个主存储器,该主存储器具有多个主存储器地址,每个地址具有一个对应的数据入口;
一条总线;
一个通过该总线与所述主存储器连接的处理器,该处理器包括:
至少一个高速缓冲存储器,所述至少一个高速缓冲存储器具有一个高速缓存目录和一个高速缓存控制器,该高速缓存目录有多个地址,该高速缓存控制器具有多个与所述多个地址相对应的数据入口;
一个寄存器;
一个执行一条具有一个操作码和一个操作数地址的指令的执行装置,该操作数地址指定一个内存单元,其中所述处理器以屏蔽为基础进行选择性复制,将部分数据从该寄存器复制到由该操作数地址指定的内存单元,并且为响应所述操作码,所述处理器防止通过执行该指令复制的数据被存储在所述至少一个高速缓冲存储器中。
2.按照权利要求1所述的计算机系统,其中,所述处理器将多个非暂时存储组合成总线上的一个写事务。
3.按照权利要求2所述的计算机系统,其中,响应所述多个非暂时存储中每个存储均是一个非暂时指令,所述处理器组合该多个非暂时存储。
4.按照权利要求1所述的计算机系统,其中,所述处理器确定所述操作数地址是否与所述高速缓存目录中的所述多个地址中的一个地址相匹配,如果匹配,那么,所述处理器更新在所述高速缓存控制器中的与所述匹配地址对应的数据入口,否则,更新在所述主存储器中的与所述操作数地址相对应的数据入口。
5.按照权利要求1所述的计算机系统,其中,所述指令是一个MASKMOVQ指令,该指令是将由屏蔽指明的字节复制到内存单元的字节屏蔽指令,其中,所述屏蔽包括多个位,并且其中,每个一位指明该寄存器的相应的字节是否将被复制到该内存单元。
6.按照权利要求1所述的计算机系统,还包括一个取指装置,其中,为响应为非暂时指令的多个非暂时指令,所述处理器按照不同于它们由取指装置取出的顺序执行多个非暂时指令。
7.按照权利要求6所述的计算机系统,还包括:
与该总线连接的一个键盘;
与该总线连接的一个显示器;
与该总线连接的一个声音装置;
与该总线连接的一个调制解调器。
8.按照权利要求5所述的计算机系统,其中,在所述处理器内的高速缓存层次中不同的级处非暂时数据被不同地处理,所述高速缓存层次包括至少两个高速缓冲存储器。
9.按照权利要求5所述的计算机系统,还包括多个寄存器,其中,所述执行装置执行MOVNTPS移动指令,将四压缩浮点数从所述多个寄存器中的第一寄存器复制到第一内存单元,并防止将所述四压缩浮点数存入至少一个高速缓冲存储器中,并且其中,所述执行装置执行MOVNTQ指令,将整数型数据从所述多个寄存器中的第二寄存器复制到第二内存单元,并防止将所述整数型数据存到所述至少一个高速缓冲存储器。
10.一种方法,包括:
接收具有一个操作数地址的指令;
响应所述指令,以屏蔽值为基础,将寄存器中的部分数据选择性地移动到由该操作数地址指明的内存单元;
响应该指令,防止所述内存单元被写到高速缓冲存储器。
11.按照权利要求10所述的方法,还包括:
确定所述操作数地址是否与高速缓存目录中的多个地址中的一个地址匹配;
如果所述操作数地址与所述高速缓存目录中的所述多个地址中的一个地址相匹配,则更新在高速缓存控制器中的与所述操作数地址相对应的数据入口,否则,更新在主存储器中的与所述操作数地址相对应的数据入口。
12.按照权利要求10所述的方法,还包括:
将多个非暂时指令组合成单个写事务。
13.按照权利要求12所述的方法,其中,响应多个非暂时指令中的每个指令均是非暂时指令,实现将多个非暂时指令组合成该单个写事务。
14.按照权利要求13所述的方法,还包括:
按照不同于被取出的顺序完成第二多个的非暂时指令。
15.按照权利要求10所述的方法,其中所述指令是一个MASKMOVQ指令,该指令是将由屏蔽值指明的字节从该寄存器复制到该内存单元的字节屏蔽指令,其中,所述屏蔽值包括多个位,并且其中,每个一位指明该寄存器的相应字节是否将被复制到该内存单元。
16.按照权利要求15所述的方法,还包括:
如果该操作数地址与在高速缓存目录中的多个地址中的一个地址相匹配,那么,生成一个输出信号到高速缓存控制器和主存储器中之一,以更新所述高速缓存控制器和所述主存储器之一中的对应的数据入口。
17.按照权利要求15所述的方法,还包括:
执行MOVNTPS移动指令,将四压缩浮点数从第一寄存器复制到第一内存单元;
防止将所述四压缩浮点数存到所述高速缓冲存储器;
执行MOVNTQ指令,将整数型数据从第二寄存器复制到第二内存单元;
防止将所述整数型数据存到所述高速缓冲存储器。
18.按照权利要求17所述的方法,还包括:
在高速缓存层次中不同的级处不同地处理非暂时数据。
19.一种设备,包括:
一个用于存储多个入口和多个有关的地址的高速缓冲存储器;
一个寄存器;
一个使用屏蔽模式执行第一指令以进行移动操作的执行装置,所述屏蔽模式指明所述寄存器数据的哪些部分将被存入内存单元,所述第一指令防止通过执行所述第一指令而被移动的数据被高速缓存到所述高速缓冲存储器中。
20.按照权利要求19所述的设备,其中至少如果在执行第一指令之前所述内存单元没有被高速缓存的情况下,防止所述寄存器的数据被高速缓存到所述高速缓冲存储器中。
21.按照权利要求19所述的设备,其中所述第一指令是MASKMOVQ指令,并且其中,该寄存器是64位整数型寄存器,并且其中,所述MASKMOVQ指令是一个字节屏蔽指令,该指令在不将由屏蔽模式指明的字节高速缓存到该高速缓冲存储器中的情况下,将由屏蔽模式指明的字节复制到内存单元,并且进一步,其中一位指明该寄存器的相应字节是否将被复制到存储器,并且进一步,其中该屏蔽模式中的逻辑0对应于不写,而该屏蔽模式中的逻辑1对应于写。
22.按照权利要求19所述的设备,其中,所述被屏蔽的移动指令是字节屏蔽指令,该指令在不将由屏蔽模式指明的字节高速缓存到该高速缓冲存储器中的情况下,将由屏蔽模式指明的该字节复制到内存单元。
23.按照权利要求22所述的设备,其中,所述屏蔽模式包括多个位,其中,一位指明该寄存器的相应字节是否将被复制到存储器。
24.按照权利要求23所述的设备,其中,该屏蔽模式中的逻辑0对应于不写,而该屏蔽模式中的逻辑1对应于写。
25.按照权利要求24所述的设备,其中,响应该第一指令,如果该内存单元已被高速缓存到高速缓冲存储器中,所述设备将该寄存器的数据存储到高速缓冲存储器中,否则不将该寄存器的数据存入高速缓冲存储器并且不执行高速缓存填入。
26.按照权利要求21所述的设备,还包括第二高速缓冲存储器,其中,仅该高速缓冲存储器和该第二高速缓冲存储器中之一被更新。
27.按照权利要求24所述的设备,其中,所述设备由计算机可读介质上的数据限定。
28.按照权利要求19所述的设备,其中,如果所述内存单元没有被高速缓存到所述高速缓冲存储器中,响应该第一指令是非暂时指令,与该内存单元相对应的该高速缓冲存储器中高速缓存行的高速缓存行填入被禁止。
29.按照权利要求24所述的设备,其中,所述设备是一个处理器,该处理器支持与Intel体系结构指令集相兼容的指令集。
30.按照权利要求24所述的设备,其中,所述执行装置也执行第一非暂时移动指令和第二非暂时移动指令,它们分别存储不同的数据类型,其中,为响应所述第一非暂时移动指令或者所述第二非暂时移动指令,该设备防止到由该第一非暂时移动指令或该第二非暂时移动指令规定的内存单元的高速缓存行填入。
31.按照权利要求21所述的设备,其中,所述执行装置还执行第一非暂时移动指令,该指令是MOVNTPS移动指令,用于将四非暂时压缩浮点数据元素从该寄存器复制到第一内存单元,并且其中,所述执行装置还执行第二非暂时移动指令,该指令是一个MOVNTQ移动指令,用于将非暂时整数型数据从该寄存器复制到第二位置,并且进一步,其中所述MOVNTPS和所述MOVNTQ移动指令都防止所复制的数据被高速缓存。
32.按照权利要求30所述的设备,其中,所述第一非暂时移动指令是MOVNTPS移动指令,用于将四非暂时压缩单精度浮点数据元素从该寄存器复制到第一规定的内存单元,并且其中,所述第二非暂时移动指令是MOVNTQ移动指令,用于将非暂时整数型数据从该寄存器复制到第二规定的内存单元,并且其中,响应该MOVNTPS或该MOVNTQ移动指令是非暂时指令,所述高速缓存行填入被禁止。
33.按照权利要求32所述的设备,其中,响应多个指令中的每个指令均是非暂时存储指令,所述设备将多个指令组合成一个用于送到总线上的写事务。
34.按照权利要求19所述的设备,其中,所述设备将多个非暂时存储组合成一个用于送到总线上的写事务。
35.按照权利要求34所述的设备,其中,响应该多个非暂时存储中的每个存储均具有写组合性质,所述设备组合该多个非暂时存储。
36.按照权利要求35所述的设备,其中,被组合成该写事务的所述多个非暂时存储被存储到单个高速缓存行。
37.按照权利要求31所述的设备,还包括一个取指装置,其中,响应第二多个非暂时指令是非暂时指令并因此是弱排序指令,所述设备按照不同于由该取指装置接收的顺序执行所述第二多个非暂时指令。
38.按照权利要求19所述的设备,其中,该第一指令具有写组合性质,其中,在一个写被送出之前,到同一高速缓存行的可高速缓存存储被组合。
39.按照权利要求38所述的设备,其中,在高速缓存层次中不同级处非暂时数据被不同地处理,该高速缓存层次包括该高速缓冲存储器和至少一个其它高速缓冲存储器。
40.一种设备,包括:
一个用于存储多个入口和多个有关的地址的高速缓冲存储器;
一个寄存器;
一个接收第一指令的执行装置,该第一指令具有指明该第一指令是一个非暂时指令的操作码,所述第一指令指明数据项从该寄存器到内存单元的存储,响应所述操作码,所述执行装置防止该数据项存入该高速缓冲存储器,其中,响应包括该第一指令的多个指令是多个非暂时存储指令,将该多个指令组合成将被送到总线的一个写事务。
41.按照权利要求40所述的设备,其中,所述第一指令具有一个操作数地址,并且其中,如果该第一指令的所述操作数地址是由所述多个有关的地址中的一个地址指明的,所述高速缓冲存储器更新通过该第一指令写的数据,并且其中,响应所述操作码指明非暂时存储,如果该第一指令的该操作数地址不是由所述多个有关的地址中的一个地址指明的,所述高速缓冲存储器不更新通过该第一指令写的数据。
42.按照权利要求40所述的设备,其中,被组合成该写事务的所述多个非暂时存储指令是单个高速缓存行。
43.按照权利要求40所述的设备,还包括一个取指装置,其中,按照不同于由该取指装置接收的顺序执行由该取指装置接收的多个非暂时指令。
44.按照权利要求40所述的设备,其中,在多个连续的非暂时存储写到单个地址后,在外部总线上仅可看到一个单个存储。
45.按照权利要求43所述的设备,其中,该多个指令中的每个指令均具有写折叠性质,在多个连续的非暂时存储写到单个地址后,仅允许在外部总线上看到一个单个存储。
46.按照权利要求40所述的设备,其中,该高速缓冲存储器确定除更新所述高速缓冲存储器外是否还更新主存储器。
47.按照权利要求45所述的设备,其中,该高速缓冲存储器确定除更新所述高速缓冲存储器外是否还更新主存储器。
48.按照权利要求40所述的设备,其中,在高速缓存层次中不同的级处非暂时数据被不同地处理,该高速缓存层次包括该高速缓冲存储器和至少一个其它高速缓冲存储器。
49.按照权利要求47所述的设备,其中,在高速缓存层次中不同的级处非暂时数据被不同地处理,该高速缓存层次包括该高速缓冲存储器和至少一个其它高速缓冲存储器。
50.按照权利要求40所述的设备,其中,所述执行装置执行从这样的指令集中选择的任何非暂时指令,该指令集包括:
一个移动64位非暂时指令;
一个移动四压缩浮点指令;以及
一个字节屏蔽移动指令。
51.按照权利要求49所述的设备,其中,所述设备作为非暂时指令处理一个指令集,该指令集包括:
一个移动64位非暂时指令;
一个移动四压缩浮点指令;以及
一个字节屏蔽移动指令。
52.按照权利要求50所述的设备,其中,所述字节屏蔽移动指令使用屏蔽模式允许将该寄存器的部分选择性写到该内存单元。
53.按照权利要求52所述的设备,其中,由该屏蔽模式中逻辑‘1’指明的该寄存器的部分被写入,而由该屏蔽模式中逻辑‘0’指明的该寄存器的部分被屏蔽。
54.按照权利要求40所述的设备,其中,所述设备由机器可读介质上的机器可读数据限定。
55.按照权利要求53所述的设备,其中,所述设备由机器可读介质上的机器可读数据限定。
56.一种方法,包括:
接收具有一个操作码和一个操作数地址的指令,该操作码指明一个非暂时指令,该操作数地址是响应该指令,寄存器的操作数数据在该地址将被存储的地址;
响应该操作码,防止所述操作数数据被写到高速缓冲存储器;
在将一个存储送到总线之前,将包括该指令的多个非暂时存储组合。
57.按照权利要求56所述的方法,还包括:
如果与所述操作数地址有关的数据已被高速缓存,则:
高速缓存该操作数数据;
确定是否该操作数数据也将被写到第二存储器,并且如果是,那么写该数据;
如果与操作数地址有关的数据还没有被高速缓存,则将该操作数数据写到第二存储器;
58.按照权利要求57所述的方法,还包括:
按照不同于多个非暂时存储指令被取出的顺序执行该多个非暂时存储指令。
59.按照权利要求56所述的方法,其中,多个非暂时写的组合包括将到单个高速缓存行的多个写组合成单个写事务。
60.按照权利要求56所述的方法,其中,多个非暂时写的组合包括将到单个地址的多个写折叠成单个写事务。
61.按照权利要求59所述的方法,其中,响应多个非暂时写中的每个写是一个非暂时指令并因此具有写组合性质,多个非暂时写的组合包括将到单个高速缓存行的多个写组合成单个写事务。
62.按照权利要求56所述的方法,其中,所述指令是一个屏蔽移动指令,并且其中,该方法还包括通过以屏蔽值为基础选择性地移动数据执行所述屏蔽移动指令。
63.按照权利要求62所述的方法,其中,所述指令是一个MASKMOVQ指令,该指令是将由该屏蔽值指明的寄存器的字节复制到内存单元的字节屏蔽指令,其中,所述屏蔽值包括多个位,并且其中,每一单个位指明该寄存器的相应的字节是否将被复制到该内存单元。
64.一个系统,包括:
一个具有多个主存储器地址的主存储器,每个主存储器地址具有相应的数据入口;
一个包括总线接口并连接到所述主存储器的处理器;
一个存储多个入口和多个有关地址的高速缓冲存储器;
一个寄存器;
用于接收指令的控制逻辑,该指令是具有操作码和操作数地址的非暂时存储指令,响应该操作码,所述控制逻辑防止根据所述指令高速缓存从该寄存器写到内存单元的数据,所述控制逻辑将包括所述指令的多个非暂时存储组合成在该总线接口上送出的一个写事务。
65.按照权利要求64所述的系统,其中,响应所述操作码指明非暂时存储,如果所述操作数地址是由所述多个有关地址中之一指明的,那么所述控制逻辑将高速缓存所述寄存器的数据,如果该操作数地址不是由所述多个有关地址之一指明的,所述控制逻辑不高速缓存所述寄存器的数据。
66.按照权利要求64所述的系统,其中,该系统是一个单一处理器系统。
67.按照权利要求64所述的系统,其中,该指令是被屏蔽的移动指令,以屏蔽为基础进行选择性复制该寄存器的部分数据。
68.按照权利要求64所述的系统,其中,该指令是MOVNTPS指令,以移动该寄存器的压缩浮点数据。
69.按照权利要求6 4所述的系统,其中,该指令是一个MOVNTQ指令,以移动该寄存器的整数型数据。
70.按照权利要求64所述的系统,还包括多个寄存器,其中,所述控制逻辑能够执行该主存储器中软件例程中的多个程序指令,所述多个程序指令包括:
一个MOVNTPS移动指令,该指令将四压缩浮点数从所述多个寄存器中的第一寄存器复制到第一内存单元,并防止将所述四压缩浮点数存储到该高速缓冲存储器中;
一个MOVNTQ指令,该指令将整数型数据从所述多个寄存器中的第二寄存器复制到第二内存单元,并防止将所述整数型数据存储到所述高速缓冲存储器;以及
一个MASKMOVQ指令,该指令复制64位整数型寄存器的整数型数据,其中,所述MASKMOVQ指令是一个字节屏蔽指令,该指令将由屏蔽模式指明的字节从所述多个寄存器中的第三寄存器复制到第三内存单元,而不将该规定的数据高速缓存到该高速缓冲存储器中,并且进一步,其中多个单个位中的每一位指明该64位整数型寄存器的相应字节是否将被复制到存储器,并且进一步,其中该屏蔽模式中的逻辑0对应于不写,而该屏蔽模式中的逻辑1对应于写。
71.按照权利要求70所述的系统,其中,所述多个程序指令中的每个指令均具有写结合的性质。
72.按照权利要求71所述的系统,其中所述多个程序指令的每个指令均是弱排序指令。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US09/053385 | 1998-03-31 | ||
US09/053,385 US6275904B1 (en) | 1998-03-31 | 1998-03-31 | Cache pollution avoidance instructions |
US09/053,385 | 1998-03-31 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN1236130A CN1236130A (zh) | 1999-11-24 |
CN1168008C true CN1168008C (zh) | 2004-09-22 |
Family
ID=21983857
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CNB991055349A Expired - Lifetime CN1168008C (zh) | 1998-03-31 | 1999-03-31 | 高速缓存污染免除指令 |
Country Status (6)
Country | Link |
---|---|
US (1) | US6275904B1 (zh) |
EP (2) | EP1416390B1 (zh) |
CN (1) | CN1168008C (zh) |
BR (1) | BR9901209A (zh) |
SG (1) | SG93196A1 (zh) |
TW (1) | TW434480B (zh) |
Families Citing this family (17)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7096323B1 (en) * | 2002-09-27 | 2006-08-22 | Advanced Micro Devices, Inc. | Computer system with processor cache that stores remote cache presence information |
US6868485B1 (en) * | 2002-09-27 | 2005-03-15 | Advanced Micro Devices, Inc. | Computer system with integrated directory and processor cache |
US7457940B2 (en) * | 2004-11-16 | 2008-11-25 | International Business Machines Corporation | System and method for managing data |
US7457901B2 (en) * | 2005-07-05 | 2008-11-25 | Via Technologies, Inc. | Microprocessor apparatus and method for enabling variable width data transfers |
CN100461142C (zh) * | 2005-07-05 | 2009-02-11 | 威盛电子股份有限公司 | 微处理器、处理器总线系统、及执行稀疏写入处理的方法 |
US7441064B2 (en) | 2005-07-11 | 2008-10-21 | Via Technologies, Inc. | Flexible width data protocol |
US7502880B2 (en) | 2005-07-11 | 2009-03-10 | Via Technologies, Inc. | Apparatus and method for quad-pumped address bus |
CN100435123C (zh) * | 2005-07-19 | 2008-11-19 | 威盛电子股份有限公司 | 用于稀疏线写操作的装置和方法 |
US7444472B2 (en) | 2005-07-19 | 2008-10-28 | Via Technologies, Inc. | Apparatus and method for writing a sparsely populated cache line to memory |
US7590787B2 (en) | 2005-07-19 | 2009-09-15 | Via Technologies, Inc. | Apparatus and method for ordering transaction beats in a data transfer |
CN100399299C (zh) * | 2005-10-28 | 2008-07-02 | 中国科学院计算技术研究所 | 一种高速缓存失效的处理器访存指令处理方法 |
WO2008047180A1 (en) * | 2006-10-20 | 2008-04-24 | Freescale Semiconductor, Inc. | System and method for fetching an information unit |
US9389794B2 (en) | 2012-08-03 | 2016-07-12 | Intel Corporation | Managing consistent data objects |
US9600442B2 (en) | 2014-07-18 | 2017-03-21 | Intel Corporation | No-locality hint vector memory access processors, methods, systems, and instructions |
KR20170060739A (ko) | 2015-11-25 | 2017-06-02 | 삼성전자주식회사 | 반도체 메모리 장치 및 이를 포함하는 메모리 시스템 |
US10379855B2 (en) * | 2016-09-30 | 2019-08-13 | Intel Corporation | Processors, methods, systems, and instructions to load multiple data elements to destination storage locations other than packed data registers |
US9996478B1 (en) | 2016-12-09 | 2018-06-12 | Advanced Micro Devices, Inc. | No allocate cache policy |
Family Cites Families (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH0298754A (ja) * | 1988-10-06 | 1990-04-11 | Nec Corp | 主記憶制御方式 |
GB2228116B (en) | 1989-02-10 | 1993-05-26 | Intel Corp | Pipelined floating-point load instruction for microprocessor |
DE4323929A1 (de) | 1992-10-13 | 1994-04-14 | Hewlett Packard Co | Software-geführtes Mehrebenen-Cache-Speichersystem |
GB2273181A (en) * | 1992-12-02 | 1994-06-08 | Ibm | Cache/non-cache access control. |
US5689679A (en) * | 1993-04-28 | 1997-11-18 | Digital Equipment Corporation | Memory system and method for selective multi-level caching using a cache level code |
US5630075A (en) * | 1993-12-30 | 1997-05-13 | Intel Corporation | Write combining buffer for sequentially addressed partial line operations originating from a single instruction |
US5890216A (en) * | 1995-04-21 | 1999-03-30 | International Business Machines Corporation | Apparatus and method for decreasing the access time to non-cacheable address space in a computer system |
US5745728A (en) | 1995-12-13 | 1998-04-28 | International Business Machines Corporation | Process or renders repeat operation instructions non-cacheable |
US6021470A (en) * | 1997-03-17 | 2000-02-01 | Oracle Corporation | Method and apparatus for selective data caching implemented with noncacheable and cacheable data for improved cache performance in a computer networking system |
-
1998
- 1998-03-31 US US09/053,385 patent/US6275904B1/en not_active Expired - Lifetime
-
1999
- 1999-03-22 SG SG9901217A patent/SG93196A1/en unknown
- 1999-03-25 EP EP04000650.4A patent/EP1416390B1/en not_active Expired - Lifetime
- 1999-03-25 EP EP99302335A patent/EP0949569A3/en not_active Ceased
- 1999-03-30 BR BR9901209-0A patent/BR9901209A/pt not_active Application Discontinuation
- 1999-03-31 CN CNB991055349A patent/CN1168008C/zh not_active Expired - Lifetime
- 1999-05-14 TW TW088105139A patent/TW434480B/zh active
Also Published As
Publication number | Publication date |
---|---|
SG93196A1 (en) | 2002-12-17 |
BR9901209A (pt) | 2000-01-11 |
EP0949569A3 (en) | 1999-11-24 |
EP1416390B1 (en) | 2013-05-22 |
TW434480B (en) | 2001-05-16 |
EP1416390A2 (en) | 2004-05-06 |
US6275904B1 (en) | 2001-08-14 |
EP0949569A2 (en) | 1999-10-13 |
EP1416390A3 (en) | 2006-01-18 |
CN1236130A (zh) | 1999-11-24 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN1168008C (zh) | 高速缓存污染免除指令 | |
CN1262942C (zh) | 利用无数据事务获得全局促进工具的方法、设备和系统 | |
CN1272714C (zh) | 数据处理系统内分配和访问存储映像工具的方法、设备和系统 | |
CN1248118C (zh) | 以推测方式使高速缓存中的缓存行失效的方法及系统 | |
US6003123A (en) | Memory system with global address translation | |
US5875462A (en) | Multi-processor data processing system with multiple second level caches mapable to all of addressable memory | |
JP3218317B2 (ja) | 集積キャッシュユニットおよびその構成方法 | |
CN1304962C (zh) | 转译后备缓冲器清除滤波器 | |
US7398484B2 (en) | Memory efficient array transposition via multi pass tiling | |
CN1129078C (zh) | 一种集成的数字信号处理器 | |
CN1227593C (zh) | 存储控制器和处理器中管理虚拟化物理存储器方法和系统 | |
US6078992A (en) | Dirty line cache | |
CN1235148C (zh) | 管理数据处理器系统中虚拟化的物理存储器的方法和系统 | |
EP0390538A2 (en) | Hierarchical cache memory apparatus | |
CN1685320A (zh) | 具有储存远程快取存在信息的处理器高速缓存的计算机系统 | |
CN1685319A (zh) | 具有集成目录与处理器高速缓存的计算机系统 | |
CN107102955A (zh) | 用于存储子系统的关联和原子回写高速缓冲存储系统和方法 | |
CN1227594C (zh) | 管理多处理器系统中虚拟化的物理存储器的方法和系统 | |
CN1156771C (zh) | 用于在非均匀存储器存取计算机系统内提供逐出协议的方法和系统 | |
CN1263312A (zh) | 具有共享干预支持的非均匀存储器访问数据处理系统 | |
CN1534487A (zh) | 高速缓存分配 | |
CN1786927A (zh) | 应用层高速缓存映像知晓和再分配的系统和方法 | |
CN1196997C (zh) | 不按序执行指令的装置和检测不按序指令的方法 | |
CN1834942A (zh) | 信息处理设备和信息处理设备的数据控制方法 | |
US20180293169A1 (en) | Cache-based communication between execution threads of a data processing system |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C06 | Publication | ||
PB01 | Publication | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
CX01 | Expiry of patent term |
Granted publication date: 20040922 |
|
CX01 | Expiry of patent term |