CN1127693C - 保持指令、数据高速缓存之间相关性的方法和设备 - Google Patents

保持指令、数据高速缓存之间相关性的方法和设备 Download PDF

Info

Publication number
CN1127693C
CN1127693C CN98125949A CN98125949A CN1127693C CN 1127693 C CN1127693 C CN 1127693C CN 98125949 A CN98125949 A CN 98125949A CN 98125949 A CN98125949 A CN 98125949A CN 1127693 C CN1127693 C CN 1127693C
Authority
CN
China
Prior art keywords
data
cache
instruction
parts
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 - Fee Related
Application number
CN98125949A
Other languages
English (en)
Other versions
CN1229950A (zh
Inventor
拉维·库玛·阿里米利
约翰·斯蒂芬·唐森
杰里·唐·勒维斯
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
International Business Machines Corp
Original Assignee
International Business Machines Corp
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by International Business Machines Corp filed Critical International Business Machines Corp
Publication of CN1229950A publication Critical patent/CN1229950A/zh
Application granted granted Critical
Publication of CN1127693C publication Critical patent/CN1127693C/zh
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0806Multiuser, multiprocessor or multiprocessing cache systems
    • G06F12/0815Cache consistency protocols
    • G06F12/0831Cache consistency protocols using a bus scheme, e.g. with bus monitoring or watching means
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0806Multiuser, multiprocessor or multiprocessing cache systems
    • G06F12/0811Multiuser, multiprocessor or multiprocessing cache systems with multilevel cache hierarchies

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

根据处理机或指令模式,不同地对待数据高速缓存块存储(dcbst)指令或等效指令。通过设定处理机寄存器中的位组或者设定该指令的提示位组可以进入该指令的相关性保持模式,在该模式下利用该指令保持分为二支的数据高速缓存和指令高速缓存之间的相关性。在该相关性保持模式下,该指令既把修改过的数据推入系统存储器又使指令高速缓存中的高速缓存项无效。

Description

保持指令、数据高速缓存之间相关性的方法和设备
本发明一般地涉及分为二支的数据高速缓冲存储器与指令高速缓冲存储器的相关性,并且具体地涉及保持数据高速缓冲存储器及指令高速缓冲存储器二支间相关性的各种指令。更具体地,本发明涉及带有源(subject)高速缓冲存储器项的多个拷贝的多处理机系统中用于保持数据高速缓冲存储器和指令高速缓冲存储器之间的相关性的各种指令以及系统总线事务处理。
超标量精简指令系统(RISC)处理机典型地在存储分级结构中的至少层1(L1)级内包括分为二支的数据高速缓冲存储器和指令高速缓冲存储器。由于现代超标量处理机所需的带宽,必须把数据的和指令的高速缓(冲)存(储器)分开,这样和单高速缓存访问相比在每个处理机周期中这种方式下的取指令和数据引用更为优越。典型地嵌入在处理机硬件内的并且其执行时间设计成为一个处理机周期或更短的L1高速缓冲存储器从而通常是分为二支的,因此在相同的处理机周期期间可以向分离的高速缓冲存储器发出指令和数据引用。
二支的数据和指令的高速缓冲存储器在保持相关的存储器分级结构的问题上增添了附加的情况,即要对所有的处理机提供单一的存储器内容图。例如,处理机会周期性地修改数据高速缓冲存储器的数据,而该数据实际上是以后要执行的指令。比如当装入程序在把代码装入到存储器后解出代码的连接时会出现这种情况。另一个例子是,拷贝存储器内容页的处理机不区分指令和数据,而且可能把相同的页内容拷贝到指令高速缓冲存储器以及数据高速缓冲存储器二者中去。为了释放包含着一部分被拷贝页面的高速缓存单元,需要相继地进行指令高速缓冲存储器块失效以及清除操作。
大部分当前可使用的超标量处理机不包括任何保持分为二支的层1的高速缓冲存储器的相关性的机制;也就是说,不论是在不同的处理机中或相同的处理机中,一个L1高速缓存的改变不会自动地反映到其它L1高速缓存中。大多数超标量处理机中,保持分为二支的数据及指令的高速缓存的相关性是委托给软件的。软件典型地通过清洗原始包含着指令的被修改过的数据高速缓存项并且若相同的高速缓存项驻留在指令高速缓存中还使这些项无效来解决保持分支的高速缓存之间的相关性问题。对于程序源码内的所有修改过的行采取这些动作,一次一张页面。
所有的超标量处理机支持把修改过的数据从层1超高速缓存写入到系统存储器中的指令。程序页可以使用这种指令使某被修改高速缓存行立即是从处理机外部可视的。这在图形应用程序中是有用的,它用于把显示信息写入到存储器变换图形适配程序或显示缓冲器中,然而这种指令的最普遍使用是用于对分成二支的数据/指令高速缓存相关性的软件管理上。当用于这种目的时,在把修改的数据写入到存储器的指令的后面可以跟着一条使指令高速缓存中的相同单元失效的指令。例如在PowerPCTM族设备中,把修改的数据写入到系统存储器的指令是数据高速缓冲存储器块存储(dcbst)指令,而使指令高速缓冲存储器中的缓存单元的失效的指令是指令高速缓冲存储器块失效(icbi)指令。
在执行dcbst指令时,有效地址被计算、被翻译并且进行保护违背检查。若该地址关联的高速缓存单元不含有修改的数据,该高速缓存块不被改变(把该指令对待为空操作),并在系统总线上启动清除操作。若该高速缓存块包含修改过的(弄脏的)数据,则把该数据从数据高速缓存推入到系统总线中。该高速缓存块中的所有字节被写到系统存储器,并把该高速缓存块的相关状态置为排它的(E),该状态表示该高速缓存块包含和系统存储器中对应单元相容的有效数据,但该数据只能在存储器分级结构该层中的所有高速缓存内的源高速缓存中找到。然后,在系统总线上启动写操作。
在执行icbi指令时,有效地址重新被计算、被翻译并进行保护违背检查。若定址的高速缓存块位于指令高速缓存中,该指令高速缓存块标记为无效的,这表示该高速缓存项--在地址标记上以及内容上--是无效的,并表示不和系统存储器或存储器分级结构的同层中的任何其它高速缓存是相关的。在所有处理机的数据高速缓存内保持高速缓存块的内容及状态都不改变。在系统总线上无条件地启动icbi或ikill操作,以使存储器分级结构中的所有其它指令高速缓存的适当高速缓存行变为无效。
在执行典型的程序源码期间不规律地出现上述的指令对。然而,当应用于清洗最初包含着指令的被修改过的数据高速缓存项和使指令高速缓存内的高速缓存块无效时,一次清洗掉一个高速缓存块的各完整存储器页。这样在相对短的周期内会执行一个大组的dcbst/icbi指令对。
多处理机系统中周期性地出现的另一个需要是,对于要写入到先前包含着指令的替代高速缓存单元处的高速缓存项,要使新近修改过的高速缓存项是和系统存储器相关的,并且使所有指令超高速缓存中的新高速缓存单元是无效的。也就是说,需要把高速缓存项x的内容写入到高速缓存项y,并更新和高速缓存项y对应的系统存储器,以及使系统中所有指令高速缓存中的高速缓存项y无效。在现有技术中为达到这个结果需要执行若干指令:把高速缓存项x的内容写入到超高速缓存内的高速缓存项y中,然后在高速缓存项y上执行dcbst指令,接着再在高速缓存项y上执行icbi指令,并且最后执行同步(sync)指令以保证所有指令已完成。
从而需要为清洗最初包含着对系统存储器的指令的高速缓存块中的修改过的数据以及为使指令高速缓存中的高速缓存块无效提供一种改进的机制。在单个指令和系统总线操作下实现该机制是更有好处的。
从而本发明的一个目的是为保持分为二支的数据高速缓冲存储器和指令高速缓冲存储器的相关性提供一种改进的机制。
本发明的另一个目的是为保持分为二支的数据高速缓存和指令高速缓存的相关性提供改进的指令。
本发明的再一个目的是,为在具有多个源高速缓存项的拷贝的多处理机系统中保持数据高速缓存和指令高速缓存之间的相关性提供改进的指令及改进的系统总线事务处理。
如现在说明的那样达到上述目的。根据处理机模式或指令模式,不同地对待数据高速缓冲存储器块存储(dcbst)指令或等效指令。通过在某处理机寄存器里设置位组或者通过在该指令内设置提示位置,可以进入该指令的相关性保持模式,在该模式下该指令用于保持分为二支的数据高速缓存和指令高速缓存之间的相关性。在相关性保持模式下,该指令既把修改的数据推到系统存储器又使指令高速缓存中的高速缓存项无效。当在相关性保持模式执行数据高速缓存块存储指令或等同指令后处理机接着相继地发出目标为相同高速缓冲单元的指令高速缓冲存储器块无效(icbi)指令或等同指令时,这些指令空操作。执行相关性保持模式下的数据高速缓存块存储指令导致一种新颖的在系统总线上启动的系统总线操作。该总线操作引导其它具有分为二支的数据高速缓存和指令高速缓存的部件把它们数据高速缓存中的规定高速缓存项至少消除到指令/数据高速缓存相关并且使它们指令高速缓存中的规定高速缓存项无效。当逐一反复地在把数据的一页或多页写入系统存储器中采用本保持相关性的机制时,该机制节约处理机周期并且减少地址总线以及数据总线的业务量。
在下述详细的书面说明中本发明的这些以及其它的目的、特性以及优点将变为清晰。
在附属权利要求书中叙述确信为表征本发明的新颖特性。然而,通过在参照下述示范实施方式的详细说明时连带阅读各附图将最好地理解本发明本身、使用的最佳方式以及它的其它目的和优点,附图是:
图1表示根据本发明的一种最佳实施方式的多处理机数据处理系统;
图2是根据本发明的一种最佳实施方式的在分为二支的数据高速缓存和指令高速缓存之间保持相关性的机制的逻辑框图;以及
图3表示用于实现根据本发明的一种最佳实施方式的在分为二支的数据高速缓存和指令高速缓存之间保持相关性的机制而执行的指令及操作的流程图
现参考各附图并特别参考图1,图1中表示根据本发明的一种最佳实施方式的多处理机数据处理系统。数据处理系统100是一个包括多个处理机102-116的对称多处理机(SMP)系统,处理机最好是可从纽约州Armonk镇和国际商用机器公司购到的PowerPCTM处理机族中的一种处理机。虽然在该示范性的实施方式中示出八的处理机,熟练的技术人员明白,在根据本发明的多处理机数据处理系统中可采用较少的或更多的处理机。
每个处理机102-116包括层1(L1)数据高速缓存118-132以及L1指令高速缓存134-148。虽然在示范性实施方式中示出分为二支的指令高速缓存和数据高速缓存,熟练的技术人员可认识到可以在任何处理机102-116中采用单个合二为一的L1高速缓存。但是,在把指令高速缓存和数据高速缓存分成二支(至少在存储分级结构的一层中)的系统中,本发明是特别有用的。
为了使数据存取执行时间为最短,可以在数据处理系统100中实施多层的高速缓冲存储器,例如层2(L2),层3(L3)或更多的高速缓存层。在本示范性实施方式中,从完整地解释本发明的优点和特性的角度进行选择,表示出带有分为二支的L2数据高速缓存156-164及指令高速缓存166-172的L2高速缓存控制器150-156。L3高速缓存控制器174和176分别操作一元化的指令/数据(I/D)高速缓存178和180。在所示的实施方式中,系统存储器182最终完整了存储分级结构。
采用较低的高速缓存层--L2及L3--以使L1高速缓存的数据分级,较低的高速缓存层典型地具有逐渐增大的存储容量以及逐渐增长的存取执行时间。作为例子,L1数据高速缓存118-132和L1指令高速缓存134-148可能各具有32KB的存储容量以及大约1-2个处理机周期的存取执行时间。L2数据高速缓存158-164和L2指令高速缓存166-172可能各具有512KB的存储容量以及5个处理机周期的执行时间,而L3高速缓存178和180可能具有4MB的存储容量但是存取执行时间大于15个处理机周期。这样,L2高速缓存158-164以及166-172和L3高速缓存178和180充当处理机102-116和系统存储器182之间的中间存储器,系统存储器182具有大得多的存储器容量但是可能具有大于50个处理机周期的存取执行时间。
数据处理系统100中采用的高速缓存分级结构的层数以及高速缓存分级结构的配置都是可变的。本示例中示出的L2高速缓存158-164以及166-174和L3高速缓存178、180是连接在它们各自的处理机102-116和系统存储器之间(通过系统总线184)的专用高速缓存。但是,和本发明一起还可以采用共享高速缓存和采用和较高高速缓存层并行运行的后备高速缓存。熟练的技术人员可意识到,可以采用与所述的层数及配置不同的排列。此外,仅描述了为了理解本发明所需的完整数据处理系统。熟练的技术人员可意识到,根据已知的技术可对数据处理系统100添加其它部件。这样的修改和变更是在本发明的精神和范围之内的。
参考图2,图中示出根据本发明的一种最佳实施方式的用于保持分为二支的数据高速缓存和指令高速缓存之间的相关性的机制的逻辑框图。出于描述和解释本发明的数据/指令高速缓存相关性机制的目的,利用图1中示出的处理机102和104、它们各自的数据高速缓存118和120及指令高速缓存134和136、系统存储器182和总流总线184。然而,熟练的技术人员可意识到,本发明的机制也可以作用到其它的设备,例如图1中所示的L2高速缓存158-164及166-172和L3高速缓存178和180。
图2中所示的每个L1高速缓存包括高速缓冲存储器202和高速缓存目录204,图2中示出后二者是和处理机102的L1数据高速缓存118有关的。每个L1高速缓存可以是一个n路成组相联高速缓存,例如采用32位的地址。从而,高速缓冲存储器或数据阵列202包括一些相同的组(class)或列,每个组或列含有存储几个高速缓存行的足够存储器。也称作为高速缓存块的高速缓存行是用来描述相关性状态的高速缓存单元。在当代的数据处理系统中高速缓存行典型地为32、64或128字节(B)长。
高速缓存目录204也含有一些各包含n个目录项的列,每个目录项和高速缓冲存储器的相同列中的某对应高速缓存行相关。每个目录项至少包括一个标记字段206、一个相关性状态字段208以及一个最近使用(LRV)字段210。标记字段206用于存储在相关的高速缓存行中所存储的数据的系统存储器地址的标记字段(例如,位[0-19])。通过预定义的位组合,相关性状态字段208定义在相关的高速缓存行中存储的数据的相关性状态。LRU字段210表示相对于相同组中的其它高速缓存行该相关的高速缓存行多近被访问过,从而指示若出现需要替换某高速缓存行应该同相同的组中舍出那个行。
每个处理机102和104各包括一个模式位212和214,模式位可用于控制处理机应如何对待dcbst指令(在本发明的说明中引用了PowerPCTM体系结构中专用的dcbst、icbi和其它指令名,其意图是包括用于其它处理机的类似指令,与具体的指令名无关)。可以在一个专用寄存器(SPR)中容纳模式位212和214,通过技术上周知的传进/传出SPR指令(mtspr,mfspr)用户层软件访问该寄存器。若某具体处理机的模式位214处于第一状态(例如未设置),dcbst指令具有当代处理机使用该指令下的相同作用:若目标高速缓存块的相关性状态字段208处于修改过状态,目标高速缓存块216中的数据被推到(218)系统存储器182中的对应单元220中。但是,若模式位214处于第二状态(例如,设定),则把dcbst指令对待为是dcbst和icbi指令的组合。在该“相关性保持”模式下,该指令完成多个结果:若相关性状态字段208被修改过,把目标高速缓存块216中的数据推到系统存储器120中的相应单元,并且与相关性状态字段208无关,启动一种新颖的系统总线操作222。取决于处理机104和系统总线184之间是否存在较低层的高速缓存(例如L2或L3高速缓存),系统总线操作222为“清除w/ikill”或“写w/消除w/ikill”中的一种。操作222的“写”部分逻辑上引导各行高速缓存把目标高速缓存单元里的修改过数据写入到系统存储器120。操作222的“清除w/ikill”部分引导处理机102清除其L1数据高速缓存118中的源高速缓存单元(把修改过的数据推到系统存储器同时保持数据高速缓存项有效)并且使其L1指令高速缓存134中的源高速缓存单元无效。
上面叙述通过在某处理机寄存器中设置模式位实现dcbst指令的双重特性,但也可以通过其它机制实现该双重特性。例如,可以根据已知的技术设置和dcbst指令相关的“提示”位组。类似于其它指令,dcbst指令包括一个操作码字段和二个操作数字段,其中一个操作数字段未被使用。在称之为“提示”位组中的该未使用操作数字段中的位组里可设置能由处理机检测的目的是支持使用这些hint位组的执行码。以这种方式,新一代的处理机可以支持双重特性的dcbst指令,并且在老一代的不提供这种支持的处理机中仍运行原有的可执行码。还可以在相继的指令高速缓存块失效指令或等效指令中设置hint位置,以用于下面更详细说明的目的中。
相关性保持模式下的dcbst指令可以不是把修改过的数据从头到尾的写入到系统存储器120,而代之以仅把修改过的数据写入到I/D相关的层。把修改过的数据从头到尾地写入到系统存储器要付出相当大的性能代价。从而,最好把修改过的数据只写到某个指令/数据高速缓存相关的层--即,存储分级结构中所采用的合二而一的高速缓存的最高层。在图中示出的例子中这在L3高速缓存178及180上发生。
在本发明的用于保持分为二支的数据高速缓存和指令缓存之间的相关性的机制中,可以以不同的方式利用由设定模式位214或提示位组而产生的dcbst/icbi组合指令。可以在存储器的一个整页224中或者在存储器的几个页中顺序地反复执行该组合指令,以更新图形部件或显示器缓冲器。不再需要单独的icbi指令,并且当设定模式位214时来自本地处理机的各icbi是空操作的。在多机种系统下,当设定模式位214时仍可以把窥探出的icbi处理为icbi。备择地,在把高速缓存单元x的内容已被复制到同一高速缓存内的不同单元y并且对单元y写入修改的数据(y′)的情况下,可以利有组合的dcbst/icbi指令以使横向高速缓存中的对应高速缓存单元失效。
现参照图3A-3C,其中示出为实施根据本发明的一种最佳实施方式的用于保持分为二支的数据高速缓存和指令高速缓存之间的相关性的机构的指令及操作执行的进程的高层流程图。图3A表示用于处理由某本地处理机发出的dcbst指令的进程。该进程开始于步骤302,其表述为接收某dcbst指令或等效指令。接着该进程通过步骤304,其判定是否在相关性保持模式下接收该指令。例如可以通过判定是否设定模式位或提示位组做出该判定。若未在相关性保持模式下接收该指令,进程进入步骤306,该步骤表述判定是否修改过该指令的目标高速缓存项。若没有,进程进入步骤308,其表示在更低层的总线上启动清除操作,然后进入后面说明的步骤312。
再参照步骤306,若dcbst指令或等效指令的目标高速缓存项含有修改过的数据,该进程进入步骤310,其表示利用写w/清除总线操作把该修改的数据推入更低层的总线。接着进程通过步骤312,该步骤判定是否已确定在发出该dcbst指令或等效指令的处理机和系统存储器之间的存储分级结构中的最低层高速缓存。若没有,进程进入步骤314,其表示前进到存储分级结构中下一个更低层的高速缓存,并且然后返回到步骤306以便为下一个更低层的高速缓存重复步骤306-314中所示的处理。从而对该处理迭代以通过存储分级结构中的所有高速缓冲层。再参照步骤312,一旦达到并处理最低层的高速缓存,该进程转而进入步骤316,其表示在接收到下个dcbst指令或等效指令前该进程变为是空闲的。
再参照步骤304,若在相关性保持模式下接收dcbst指令或等效指令,进程转而进入到步骤318,其判定所检查的高速缓存层是否是I/D相关的。例如可以通过确定该高速缓存是用合二为一的高速缓存还是用分为二支的I/D高速缓存实现做出判定。若被检查的高速缓存位于存储分级结构的I/D相关点,进程进入步骤320,其表示对最低层总线启动ikill总线操作。然后进程通过上面说明过的步骤316。
再参照步骤318,若被检查的高速缓存层不位于存储分级结构的I/D相关点,则进程转而进入步骤322,其判定该dcbst指令或等效指令的目标高速缓存项是否修改过。若未修改过,进程进入步骤324,其启动更低层总线上的消除操作,然后进入上面说明过的步骤316。
再参照步骤322,若dcbst指令或等效指令的目标高速缓存项包含修改过的数据,进程转而进入步骤326,其中利用写w/消除总线操作把修改过的数据推向更低层总线。接着进程通过步骤330,其判定是否确定过存储分级结构中的最低层高速缓存。若没有,进程进入步骤332,其中表示进入存储分级结构中的下个更低层的高速缓存,然后返回到步骤318以便对下个更低高速缓存层重复步骤318-322中所示的处理。从而迭代该处理以通过存储分级结构中的所有高速缓冲层。再参照步骤322,一旦达到并处理最低层的高速缓存,进程转而进入步骤316,其表示在接收下一个dcbst指令或等效指令前该进程变为是空闲的。
图3B表示处理本地处理机发出的icbi指令的进程。该进程开始于步骤334,其表示接收某icbi指令。接着进程通过步骤336,以判定是否设置了控制着组合的dcbst/icbi指令的处置的位(例如,dcbst指令和icbi指令中的处理机模式位或提示位)。若设置了,进程进入步骤338,其中对该icbi指令进行空操作。但若未设置该位(不在相关性保持模式下接收该指令),进程转而进入步骤340,其表示使指令高速缓存中的目标高速缓存项失效,然后进入步骤342,以启动系统总线上的ikill操作。从步骤338或342,进程进入步骤344,其表示在接收相继的icbi指令之前该进程变成是空闲的。
图3C表示处理从系统总线窥探到的清除w/ikill总线操作的进程。该进程开始于步骤346,它检测系统总线上的清除w/ikill操作。进程接着通过步骤348,其表示窥探该操作的高速缓冲层是否位于I/D相关点(例如,高速缓存是否是一个合二为一的高速缓存。若是,进程则进入后面说明的步骤354。若不是,进程则转而进入步骤350,以判定用于该窥探出的清除w/ikill操作的目标高速缓存项是否修改过。若未修改,进程转入后面说明的步骤358。但是,若修改过,进程转而进入步骤352,以判定窥探到的操作的目标高速缓存项是否在更高层的高速缓存中被修改过。
若在更高层的高速缓存中修改过被窥探的操作的目标高速缓存项,进程进入步骤354,以便对更高层的高速缓存启动清除w/ikill操作。但是,若未修改过,进程转而进入步骤356,以启动对下一更低层高速缓存的w/清除操作,并接着通过步骤358,以启动对更高层高速缓存的ikill操作。从步骤354或358进入步骤360,其表示在窥探出另一个清除w/ikill操作之前进程变成是空闲的。
本发明能把dcbst指令有效地用于保持分为二支的数据高速缓存和指令高速缓存之间的相关性。当采用本发明的机制时,由于仅发出一条而不是二条指令,节省了处理机周期。由于并行地而不是从串行方式出现指令高速缓存块失效指令和清除操作,系统性能得到提高。执行本发明的组合dcbst/icbi机制的结果是启动一种新颖的系统总线操作。由于仅启动一个总线操作以替代二个总线操作,该系统总线操作下的地址总线业务量得到减少,相似地数据总线业务量得到减少,尤其当把本发明的机制实施于仅把修改的数据写到I/D相关点的情况时。虽然说明并示范在一种存储分级结构中实现本发明,其中从存储分级结构的较高层中接收及处理所有指令,本发明的机制也可应用于这样的体系结构,在其中从系统总线传送并且自窥探结构式操作以进行并发处理。这种体系结构例如公开在美国专利申请09/839,445、09/839,443、09/839,441、09/839,442、09/834,115、09/834,114中,它们作为本文的参考文献。
重要的是请注意,虽然本发明是在完整功能下的数据处理系统的环境下说明的,熟练的技术人员理解,本发明的机制在各种形式的计算机可读指令的介质下是能分配的,并且本发明可以同等的应用,而与实现这种分配的具体类型的信号载运介质无关。具体地,一组程序指令可以包括一条设置着模式位的指令,该模式位改变对待dcbst指令的方式,在该指令后面跟着一条或多条dcbst指令。计算机可读介质的例子包括:例如软盘和CD-ROM的可记录型媒介以及诸如数字和模拟通信链路的传输式媒介。
虽然参照最佳实施方式具体地示出并说明本发明,熟练的技术人员理解,在不违背本发明的精神及范围下在形式上以及细节上可对它做出各种改变。

Claims (19)

1.一种保持分为二支的指令高速缓存和数据高速缓存之间的相关性的方法,包括:
检测远程部件启动的总线上的操作,其中该操作包括一个目标高速缓存地址以及信号组,以便:
若在和该目标高速缓存地址对应的数据高速缓存单元中有修改过的数据,把该修改的数据写入到包含该数据高速缓存单元的存储分级结构中的指令/数据高速缓存相关点;以及
使和该目标高速缓存地址对应的指令高速缓存单元失效;以及
响应对该操作的检测,判定检测该操作的部件是否包括一个在和该目标高速缓存地址对应的数据高速缓存单元上含有修改的数据的数据高速缓存;以及
响应判定出该数据高速缓存在和该目标高速缓存地址对应的数据高速缓存单元上含有修改过的数据,把该修改的数据写入到指令/数据高速缓存相关点。
2.权利要求1的方法,其特征在于,判定检测该操作的部件是否包括一个在和该目标高速缓存地址对应的数据高速缓存单元上含有修改的数据高速缓存的步骤还包括:
判定该部件是否包括合二为一的指令/数据高速缓存。
3.权利要求1的方法,其特征在于,判定检测该操作的部件是否包括一个在和该目标高速缓存地址对应的数据高速缓存单元上含有修改的数据高速缓存的步骤还包括:
判定和该部件内的某指令高速缓存分支的数据高速缓存是否含有修改的数据;以及
判定在该存储分级结构内该检测该操作的部件和某本地处理机之间的更高层部件是否在和该目标高速缓存地址对应的数据高速缓存单元上含有修改过的数据。
4.权利要求3的方法,特征在于还包括:
响应判定出该更高层部件在和该目标高速缓存地址对应的数据高速缓存单元上含有修改过的数据,把该部件和该更高层部件相连接的总线上启动操作。
5.权利要求3的方法,特征在于还包括:
响应判定出该更高层部件不在和该目标高速缓存地址对应的数据高速缓存单元上含有修改过的数据,把修改过的数据写入到指令/数据高速缓存相关点。
6.权利要求5的方法特征在于还包括:
在该存储分级结构内的把该设备和该更高层部件连接起来的总线上启动指令高速缓存块失效操作。
7.权利要求1的方法特征在于还包括:
响应判定出该数据高速缓存不在和该目标高速缓存地址对应的数据高速缓存单元上含有修改过的数据,在该存储分级结构内的连接该部件和该较高层部件的总线上启动指令高速缓存块失效操作。
8.一种用于保持分为二支的指令高速缓存和数据缓存之间的相关性的设备,包括:
一个包含着分为二支的指令高速缓存及数据缓存的存储部件;
一条连接高速缓存和某远程设备的总线;
窥探逻辑电路,用于监视该远程设备在该总线上启动的操作;
用于该存储部件的控制器逻辑电路,以支持包括着一个目标高速缓存地址以及信号组的操作,从而:
若在和该目标高速缓存地址对应的数据高速缓存单元中有修改过的数据,把该修改的数据写入到包含该数据高速缓存单元的存储分级结构中的指令/数据高速缓存相关点;以及
使和该目标高速缓存地址对应的指令高速缓存单元失效;以及
装置,其响应对总线上的该操作的检测,判定在和该目标高速缓存地址对应的数据高速缓存单元是否含有修改过的数据;
装置,其响应判定出和该目标高速缓存地址对应的数据高速缓存单元含有修改过的数据,把该修改的数据写入到指令/数据高速缓存相关点。
9.权利要求8的设备特征在于还包括:
用于判定在该存储分级结构内处于该存储部件和某本地处理机之间的某更高层存储部件是否包括一个在和该目标高速缓存地址对应的数据高速缓存单元上包含着修改过的数据的数据高速缓存。
10.权利要求9的设备特征在于还包括:
用于响应判定出更高层设备在和该目标高速缓存地址对应的数据高速缓存单元上含有修改的数据在把该部件与更高层设备连接起来的总线上启动操作的装置。
11.权利要求9的设备特征在于还包括:
用于响应判定出更高层设备在和该目标高速缓存地址对应的数据高速缓存单元上不含有修改的数据,把修改的数据写入到指令/数据高速缓存相关点的装置。
12.权利要求11的设备特征在于还包括:
用于在连接该部件和该存储分级结构内的某更高层设备的总线上启动指令高速缓存块无效操作的设备。
13.权利要求8的设备特征在于还包括:
用于响应判定出该数据高速缓存在和目标高速缓存地址对应的数据高速缓存单元上不含有修改的数据,在连接该设备和该存储分级结构内的更高层设备的某总线上启动指令高速缓存块无效操作的设备。
14.一种数据处理系统,包括:
一个向第一部件发出组合的数据高速缓存块存储以及指令高速缓存块无效的指令的处理机;
一条连接该第一部件的总线,其中该第一部件响应接收从该处理机接收的该指令在该总线上启动和该指令对应的总线操作;以及
和该第一部件连接并包括一个数据高速缓存和一个指令高速缓存的第二部件,它响应由该第一部件启动的总线操作把来自某数据高速缓存单元的具有某地址的数据写入到第三部件并且使具有该地址的指令高速缓存单元无效。
15.权利要求14的数据处理系统,其特征在于,第二部件是一个高速缓冲存储器。
16.权利要求14的数据处理系统,其特征在于,第二部件是一个处理机。
17.权利要求14的数据处理系统,其特征在于,第三部件是一个更低层的高速缓存。
18.权利要求14的数据处理系统,其特征在于,第三部件是系统存储器。
19.权利要求14的数据处理系统,其特征在于,所述第二部件响应判定出某包括一个数据高速缓存和一个指令高速缓存的更高层部件在具有所述地址的数据高速缓存单元上含有修改过的数据,启动和连接第二部件和更高层部件的总线上的指令对应的总线操作。
CN98125949A 1998-02-17 1998-12-30 保持指令、数据高速缓存之间相关性的方法和设备 Expired - Fee Related CN1127693C (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US09/024,585 US6178484B1 (en) 1998-02-17 1998-02-17 DCBST with ICBI mechanism to maintain coherency of bifurcated data and instruction caches
US024585 1998-02-17

Publications (2)

Publication Number Publication Date
CN1229950A CN1229950A (zh) 1999-09-29
CN1127693C true CN1127693C (zh) 2003-11-12

Family

ID=21821360

Family Applications (1)

Application Number Title Priority Date Filing Date
CN98125949A Expired - Fee Related CN1127693C (zh) 1998-02-17 1998-12-30 保持指令、数据高速缓存之间相关性的方法和设备

Country Status (3)

Country Link
US (1) US6178484B1 (zh)
JP (1) JP3195303B2 (zh)
CN (1) CN1127693C (zh)

Families Citing this family (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6393523B1 (en) * 1999-10-01 2002-05-21 Hitachi Ltd. Mechanism for invalidating instruction cache blocks in a pipeline processor
US6345344B1 (en) 1999-11-09 2002-02-05 International Business Machines Corporation Cache allocation mechanism for modified-unsolicited cache state that modifies victimization priority bits
US6374333B1 (en) * 1999-11-09 2002-04-16 International Business Machines Corporation Cache coherency protocol in which a load instruction hint bit is employed to indicate deallocation of a modified cache line supplied by intervention
US6345342B1 (en) * 1999-11-09 2002-02-05 International Business Machines Corporation Cache coherency protocol employing a read operation including a programmable flag to indicate deallocation of an intervened cache line
US6349369B1 (en) * 1999-11-09 2002-02-19 International Business Machines Corporation Protocol for transferring modified-unsolicited state during data intervention
US6345343B1 (en) 1999-11-09 2002-02-05 International Business Machines Corporation Multiprocessor system bus protocol with command and snoop responses for modified-unsolicited cache state
US6701417B2 (en) * 2001-04-11 2004-03-02 Sun Microsystems, Inc. Method and apparatus for supporting multiple cache line invalidations per cycle
US6986002B2 (en) * 2002-12-17 2006-01-10 International Business Machines Corporation Adaptive shared data interventions in coupled broadcast engines
US7356647B1 (en) * 2005-08-23 2008-04-08 Unisys Corporation Cache with integrated capability to write out entire cache
JP4873546B2 (ja) * 2006-06-20 2012-02-08 ルネサスエレクトロニクス株式会社 データ処理装置、データ処理方法
US8055847B2 (en) * 2008-07-07 2011-11-08 International Business Machines Corporation Efficient processing of data requests with the aid of a region cache
US8281075B2 (en) * 2009-04-14 2012-10-02 International Business Machines Corporation Processor system and methods of triggering a block move using a system bus write command initiated by user code
US10970215B1 (en) 2019-12-03 2021-04-06 International Business Machines Corporation Cache snooping mode extending coherence protection for certain requests
US11157409B2 (en) 2019-12-17 2021-10-26 International Business Machines Corporation Cache snooping mode extending coherence protection for certain requests
US11157408B2 (en) 2019-12-17 2021-10-26 International Business Machines Corporation Cache snooping mode extending coherence protection for certain requests

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH02197940A (ja) 1989-02-22 1990-08-06 Internatl Business Mach Corp <Ibm> データ及び命令を記憶するために別個のキヤツシユ記憶を含む階層記憶システム
US5822765A (en) * 1995-12-14 1998-10-13 International Business Machines Corporation System and method for resolving contention arising from execution of cache coherency operations in a multiple cache computer system
US5909698A (en) * 1997-03-17 1999-06-01 International Business Machines Corporation Cache block store instruction operations where cache coherency is achieved without writing all the way back to main memory

Also Published As

Publication number Publication date
JP3195303B2 (ja) 2001-08-06
CN1229950A (zh) 1999-09-29
JPH11328016A (ja) 1999-11-30
US6178484B1 (en) 2001-01-23

Similar Documents

Publication Publication Date Title
CN1127693C (zh) 保持指令、数据高速缓存之间相关性的方法和设备
JP2780032B2 (ja) マルチプロセッサディジタルデータ処理システム
US6460114B1 (en) Storing a flushed cache line in a memory buffer of a controller
KR100318789B1 (ko) 멀티프로세서 데이타 처리 시스템에서의 캐쉬를 관리하는시스템과 방법
EP0667580B1 (en) Cache System for a memory
US5829038A (en) 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
US5740400A (en) Reducing cache snooping overhead in a multilevel cache system with multiple bus masters and a shared level two cache by using an inclusion field
KR100320978B1 (ko) 캐시 갱신 프로토콜을 이용한 캐시 할당 해제 방법 및 데이터 처리 시스템
JP4298800B2 (ja) キャッシュメモリにおけるプリフェッチ管理
US20080244185A1 (en) Reduction of cache flush time using a dirty line limiter
US6502171B1 (en) Multiprocessor system bus with combined snoop responses explicitly informing snoopers to scarf data
EP1035476A1 (en) Multiprocessing system employing pending tags to maintain cache coherence
JPH0575134B2 (zh)
CN1279456C (zh) 局部化高速缓存块刷新指令的方法、编译器和系统
CN1509436A (zh) 以推测方式使高速缓存中的缓存行失效的方法及系统
JPH10254772A (ja) キャッシュ・メモリ階層内で利用するキャッシュ・コヒーレンシ機構を実施するための方法およびシステム
CN1425154A (zh) 高速缓冲存储器线清洗微结构执行方法和系统
JP2006277762A (ja) 分散共有メモリマルチプロセッサシステムのための分割疎ディレクトリ
US5850534A (en) Method and apparatus for reducing cache snooping overhead in a multilevel cache system
US7330940B2 (en) Method and system for cache utilization by limiting prefetch requests
CN1470019A (zh) 用于在一个分布式存储器、高速缓存相干的多处理器系统中把有序的输入/输出事务流水线处理到相干存储器的方法和装置
JPH10283261A (ja) キャッシュ・エントリの予約処理方法及び装置
JPH0619786A (ja) キャッシュコヒーレンスを維持する方法及び装置
CN1231449A (zh) 基于请求的同步总线操作
CN1606734A (zh) 用于组合写事务的高速缓冲存储器的逐出策略

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
C17 Cessation of patent right
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20031112

Termination date: 20100201