CN1192315C - 高速缓存清理装置以及具备该装置的计算机系统 - Google Patents
高速缓存清理装置以及具备该装置的计算机系统 Download PDFInfo
- Publication number
- CN1192315C CN1192315C CNB971131686A CN97113168A CN1192315C CN 1192315 C CN1192315 C CN 1192315C CN B971131686 A CNB971131686 A CN B971131686A CN 97113168 A CN97113168 A CN 97113168A CN 1192315 C CN1192315 C CN 1192315C
- Authority
- CN
- China
- Prior art keywords
- scheduler
- data
- zones
- write
- main memory
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Fee Related
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/16—Error detection or correction of the data by redundancy in hardware
- G06F11/20—Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements
- G06F11/202—Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where processing functionality is redundant
- G06F11/2041—Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where processing functionality is redundant with more than one idle spare processing component
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/16—Error detection or correction of the data by redundancy in hardware
- G06F11/20—Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements
- G06F11/202—Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where processing functionality is redundant
- G06F11/2043—Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where processing functionality is redundant where the redundant components share a common memory address space
-
- 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
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/14—Error detection or correction of the data by redundancy in operation
- G06F11/1402—Saving, restoring, recovering or retrying
- G06F11/1405—Saving, restoring, recovering or retrying at machine instruction level
- G06F11/1407—Checkpointing the instruction stream
-
- 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
Abstract
高速缓存(20)中的所有脏数据块的地址通过更新地址登录装置(33)存储在更新地址储存装置具备的多个区域(A0~An-1)中某一个区域。在某个高速缓存一旦变成了脏状态后,当已变为非脏状态时,更新地址删除单元(34)从区域中删除那个地址。在进行高速缓存清洗时,清理执行单元(35)从各区域顺序取出脏块的地址时,通过向系统总线(40)发行请求将那个地址所表示的数据向主存回写的命令,将所有脏块的内容写回到主存。
Description
技术领域
本发明涉及具有保证数据一致性的窥探(snoop)机构的高速缓冲存储器的高速缓存清理装置,以及具备该装置的容错(faulttolerance)计算机系统。
背景技术
通常,在计算机中,为使处理器对主存储器的访问高速化,使用暂时存储处理器所必需的数据的高速缓存存储器。通常,高速缓存以叫做超高速缓存信息块的指定大小的数据单位保持数据。高速缓存具有叫做高速缓存标记的管理信息,以管理存储在高速缓存中的高速缓存信息块的数据是主存中的什么数据,以及处理器在对数据进行修改而不同于主存内容时的状态(脏状态)等。
另一方面,在设置了多个处理器的计算机(多处理器的计算机)中,高速缓存也有多个,但为了保证在这些高速缓存中间数据的一致性(data coherency),在各高速缓存中设置了窥探机构在这种机构中处理器监视在总线上发布的总线命令是否对存储在本身的高速缓存中的数据没有影响,或者是否必须将存储在本身的高速缓存中的数据返回作为应答等,如有必要应进行适当数据的无效化(invalidate)等。
在高速缓存中有回写(copy back)型、贯穿写(write through)型,但回写型不将处理器的数据更新立刻反映到主存、在某一期间将其修改数据继续保持在回写型的高速缓存情况下,处理器必须具有将在高速缓存上变更过的不同于主存内容的数据积极地回写(writeback)到主存的操作。例如,对于不具有窥探机构(snoop mechanism)的输入/出装置,在传送高速缓存所存储的数据等情况时必须回写。在高速缓存存储的数据里面,将把变更的数据回写到主存的操作叫做高速缓存清理操作(cache flush procedure)。另外,将高速缓存的数据变更状态叫做脏状态。而且将处于脏状态的高速缓存数据块叫做脏数据块。
该高速缓存清理操作除了传送对于不具有窥探机构的输入/出装置的数据以外,也对检查点方式的计算机有用。即,当在计算机中,发生某些故障时,对于从预先取得(acquire)的检查点开始重新进行处理的检查点方式的计算机,在检查点时刻,必须将仅存在于高速缓存中的变更了的数据回写在主存中。
高速缓存清理操作通常在包含高速缓存清理指令(instruction)的软件基础上执行。通过运行软件,处理器将参照高速缓存标记的内容,判断每个高速缓存数据块是否是脏数据块,若是脏,就执行将对应的高速缓存信息块的数据回写在主存中的高速缓存清理动作。
这样,处理器根据所给定的程序,一个一个地判断所有高速缓存信息块的状态,若是脏状态时,必须向主存执行回写(高速缓存清理操作)。在进行所有高速缓存信息块的处理中,需要花费非常多的时间。
参照下面的程序例子具体说明该状况。本程序是在美国SGR公司R4000处理器中进行高速缓存清理操作的一个程序例。
cflush:
li$4,0 #开始块地址
li$5,CACHE-SIZE #块的数目
100p:cache Ox17,0($4) #第2缓存无效
addu$5,$5,01 #减小缓存大小
bne$5,0,100p #
addiu$4,$4,64 #增加块地址
J $31 #返回
nop
在该程序中,若执行“CAche Ox17,0($4)指令,则对应于保存在第4寄存器($4)中的地址的第2高速缓存的高速缓存信息块被选择,如果该高速缓存信息块的状态是脏状态,则其内容被回写到主存,同时变成无效状态。另外,若状态不是脏,则只变成无效状态。该循环(100p)需要执行的次数等于第2高速缓存的高速缓存信息块数。
若计算处理该循环(100p)的时间,因为指令数为4,所以需要4个处理器周期,若将它换算成总线周期,则为2个总线周期(在1个总线周期内执行2条指令)。因此,即使清理所有的高速缓存信息块的时间不包含将数据回写到主存的时间,也会变成高速缓存清理时间=高速缓存信息块数×2个总线周期,成为非常费时的处理。
另一方面,为了使高速缓存清理操作高速化,也可以对高速缓存本身进行改造。但是,使用该方法就不能使原有的高速缓存高速化。
这样,在以往的计算机中,为了使用软件对所有的高速缓存信息块逐次进行整个高速缓存的清理操作(关于所有的脏数据块,将其内容回写到主存),花费了很多处理时间。
另外,在进行整个高速缓存的清理操作期间,由于该处理器不能执行其它的程序,就会存在使原来的数据处理停止、招致整个系统性能降低的问题。特别是在采用了必须在检查点进行高速缓存清理操作方式的计算机中,检查点处理时间的加长是个大问题。
发明内容
本发明的目的就是对上述的事情作相应的处理,提供缩短高速缓存清理操作所需要的时间并提高系统性能的高速缓存清理装置以及具备该装置的计算机系统。
根据本发明的第1形态,高速缓存清理装置是适用于配置了包含具有总线窥探机构的回写型的高速缓存的至少一个以上的处理器、主存、以及连接上述处理器和上述主存的系统总线的计算机的高速缓存清理装置,其特征是,它具备这些装置,它们是:更新地址存储装置,它具备多个用于存储脏数据块的数据地址的区域,该脏数据块是指在上述高速缓存内的高速缓存信息块中,应将其数据回写到上述主存的高速缓存信息块;更新地址登录单元,其作用是,通过上述系统总线的监视来检测上述高速缓存中的数据更新、根据该更新地址和进行了数据更新的处理器标识号在上述更新地址存储装置所具备的多个区域中选择某一个区域、并将上述更新地址存储在所选择的区域中;更新地址删除单元,其作用是,通过上述系统总线的监视检测将上述脏数据块保持的数据向上述主存中回写、根据该回写地址和进行了回写的处理器标识号在上述更新地址存储装置所具备的多个区域中选择某一个区域,并删除与存储在该选择区域中的上述回写地址一致的更新地址;以及清理执行装置,其作用是,当从上述处理器发出指示时,逐次读出存储在上述更新地址存储装置中的所有更新地址,将要求由该读出的更新地址所表示的将上述脏数据块保持的数据向上述主存回写的命令发布到上述系统总线。
在对应于本发明第1形态的高速缓存清理装置中,高速缓存中的所有脏数据块的地址通过更新地址登录单元存储在更新地址存储装置所具备的多个区域中的某一个区域中。另外,某个处于脏状态的高速缓存信息块(以下简称“块”),在已不是脏状态时,通过更新地址删除单元使该地址将从区域中被删除。
然后,在进行高速缓存清理时,清理执行装置从各区域顺次取出脏数据块地址,并通过要求将该地址所表示的数据向主存回写的命令发布到系统总线中,将所有脏数据块的内容回写到主存。
因此,不像由以往的软件进行高速缓存清理那样,由于对于所有高速缓存块没有必要进行所谓是否顺次地判定脏数据块的处理,因而使得迅速而有效率地进行高速缓存操作成为可能。
根据本发明的第2形态,高速缓存清理装置是具有总线窥探机构的回写型、并且是适用于具备至少一个以上包含直接映像方式的高速缓存的处理器、主存、以及连接上述处理器和上述主存的系统总线的计算机的高速缓存清理装置,其特征是,它具备这些装置,它们是:更新地址存储装置,该装置配备多个分别具有一个入口的区域,该区域是对应于上述高速缓存内的高速缓存块而设置的,并用于存储应回写到上述主存的高速缓存块的脏数据块所保持的数据地址的区域;更新地址登录单元,它通过上述系统总线的监视检测上述高速缓存中的数据更新根据该更新地址和进行了数据更新的处理器的标识号选择上述更新地址存储装置所具备的多个区域中的某一个区域,并将上述更新地址登录在那个被选区域;更新地址删除单元,该装置通过上述系统总线的监视将上述脏数据块保持的数据向上述主存回写、根据该回写地址和进行了回写的处理器的标识号选择上述更新地址存储装置所具备的多个区域中的某一个区域,当登录在所选择的区域的更新地址和上述回写地址一致时,将删除登录在该区域的更新地址;以及清理执行装置,当从上述处理器发出指示时,该装置逐次读取存储在上述更新地址存储装置中的所有更新地址,将要求把那个已读出的更新地址所表示的上述脏数据块所保持的数据向上述主存回写的命令发布到上述系统总线上。
例如,当处理器具有暂时存储向主存的写入要求的写入缓冲区时,若从连接在系统总线上的所述高速缓存清理装置一方看,就会产生一个高速缓存块暂时存储多个脏数据块那样可看见的状况。本发明的高速缓存清理装置就是对应于这种状况的装置,各区域假定是只具有一个入口的结构,在该入口只存储不是写入缓冲区而是在高速缓存块中所存储的数据地址(最新的更新地址),只有当通过该更新地址登录单元所存储的最新的更新地址和发布在系统总线上的回写地址相一致时,更新地址删除单元才进行该更新地址的删除。这样,各区域只有一个入口,并通过忽视从写入缓冲区发布到系统总线的比最新更前面的更新地址的回写要求,从而确保适当的高速缓存清理动作。
根据本发明的第3形态,高速缓存清理装置是适用于计算机的高速缓存清理装置,该计算机具备至少一个以上的具有总线窥探机构的回写型并配备了直接映像方式的高速缓存的处理器、主存以及连接上述处理器和上述主存的系统总线,该高速缓存清理装置的特征是,它具备这些装置,它们是:更新地址存储装置,其功能是,它具备多个各自具有一个入口的区域以及对应于该区域而设置的计数器,该区域是对应于上述高速缓存内的高速缓存块而设置的,并用于存储应回写在上述主存的高速缓存块的脏数据块所保持的地址的区域;更新地址登录单元,它通过上述系统总线的监视来检测上述高速缓存中的数据更新,根据该更新地址和进行了数据更新的处理器的识别号码选择上述更新地址存储装置所具备的多个区域中的某一个区域,在存储该更新地址的同时,将对应于该区域的上述计数器进行增量;更新地址删除单元,该装置通过上述系统总线的监视检测将上述脏数据块保持的数据向上述主存回写,根据该回写地址和进行了回写的处理器的识别号码选择上述更新地址存储装置所具备的多个区域中的一个区域,并对对应于该区域的上述计数器实行减量;清理执行装置,该装置在从上述处理器发出指示时,在上述更新地址存储装置所具备的区域中,逐次读出存储在对应于该领域的计数值不是初始值的区域的更新地址,并将要求把该读出的更新地址所表示的上述脏数据块所保持的数据向主存回写的命令发布到系统总线上。
本发明的第3形态的高速缓存清理装置也是考虑了处理器具有写入缓冲区的情况的装置,在假定各区域只具有一个入口的同时,对应于各自区域设置了计数器。并且,在将更新地址存储在某个区域的同时,更新地址登录单元将对应于该区域的计数器进行增量。另一方面,在检测了回写时,更新地址删除单元将对应于该区域的计数器实行减量。并且整个高速缓存清理执行装置只对登录在该计数器不是初始值的区域的更新地址要求回写。即,通过管理每个高速缓存块的更新块数和回写块数之差,即使在应用写入缓冲区的情况下也能确保适当的高速缓存清理动作。
另外,通过该系统,在向系统总线发布命令中,也有不能将脏数据块的内容回写到主存的情况。在这种情况下,最好具备逐次读出存储在更新地址存储装置中所有更新地址,并将该读出的更新地址通知处理器的更新地址读出装置,以代替所述的清理执行装置。即使在这种情况下,通过具备这样地只将脏数据块地址通知处理器的装置,与对于以往的高速缓存块进行所谓顺次判定是否是脏数据块的处理这一事实相比较,就能进行快速而有效的高速缓存清理操作。
本发明的第4形态的高速缓存清理装置是适用于计算机的高速缓存清理装置,该计算机具备至少一个以上配备了具有总线窥探机构的回写型的高速缓存的处理器、主存、以及连接上述处理器和上述主存的系统总线,该高速缓存清理装置的特征是,它具备这些装置,它们是:更新地址存储装置,它具备多个用于存储脏数据块保持的数据地址的区域,该脏数据块是在上述高速缓存内的高速缓存块内处于保持了应回写到上述这主存中的数据的状态的高速缓存块;更新地址登录单元,它通过上述系统总线的监视检测上述高速缓存中的数据更新、根据该更新地址和进行了数据更新的处理器的识别号码选择上述更新地址存储装置所具备的多个区域中某一个区域,并将上述更新地址存储在那个被选择的区域;入口释放装置(entry reclaim),该装置在上述更新地址登录单元所选择的区域中的空闲入口数低于预先设定值时,选择已存储在该区域中的更新地址中的某一个地址,在将要求把这个被选择的更新地址所表示的上述脏数据块保持的数据向上述主存回写的命令发布到系统总线的同时,将存储该更新地址的入口置为空闲入口;清理执行装置,该装置在上述处理器发出指示时,逐次读出在上述更新地址存储装置中所存储的所有更新地址,把要求将该读出的更新地址所表示的上述脏数据块保持的数据向上述主存回写的命令发布到上述系统总线上。
在本发明的第4形态的高速缓存清理装置中,使预先设定的个数(也可以与区域所具备的入口数相一致,也可以是其范围内任意的数)的更新地址存储在更新地址存储装置所具备的多个区域的各自区域中。即在想要重新存储更新地址之际,当该区域的空闲入口低于预先设定数时,入口释放装置就选择已经存储的更新地址中的某一个地址,并在发布该被选择了的更新地址的回写要求的同时,将该入口置为空闲状态。这样,若根据各自区域的使用状况配备发布更新地址的回写要求的机构,则对不是采用直接映像方式的高速缓存的适用变得容易了,同时使大幅度地扩大更新地址存储装置所具备的区域的入口数的设定以及区域和地址相对应等的自由度成为可能。
还有,在高速缓存采秀n路组相联映像的情况下,最好将更新地址存储装置具备的多个区域的各个区域与n个高速缓存块所形成的组一一对应地设置以实现软件的简单化和处理的高速化。
本发明的第5形态的高速缓存清理装置是适用计算机的高速缓存清理装置,该计算机具有至少一个以上的配备了具有总线窥探的回写型的高速缓存的处理器、主存、以及连接上述处理器和上述主存的系统总线,该高速缓存清理装置的特征是,它具有这些装置,它们是:更新地址存储装置,它具备多个用于存储脏数据块所保持的数据的地址,该脏数据块是在上述高速缓存内的高速缓存块中,处于保持了应回写到上述主存的数据的状态的高速缓存块;更新地址登录单元,它通过上述系统总线检测上述高速缓存中的数据更新,根据该更新地址和进行了数据更新的处理器的识别号码选择上述更新地址存储装置所具备的多个区域中某一个区域,并将更新地址登录在所选择的区域;更新地址删除单元,该装置通过上述系统总线的监视检测把上述脏数据块保持的数据向上述主存回写,根据那个回写地址和进行了回写的处理器的识别号码选择上述更新地址存储装置所具备的多个区域中的某一个区域,当在预定的期间以内在那个选择了的区域内进行检索并检测到与上述回写地址相一致的更新地址时,就删除那个更新地址;入口释放装置,该装置在上述更新地址登录单元选择了的区域的空闲入口数低于预先设定值时,就选择已登录的更新地址中的某一个地址,并把要求这个选择了的更新地址所表示的上述脏数据块所保持的数据向上述主存回写的命令发布到上述系统总线上,同时将存储那个更新地址的入口置为空闲入口;以及清理执行装置,在由上述处理器发出指示时,该装置逐次读出在上述更新地址存储装置中所存储的所有更新地址,并把要求将那个读出的更新地址所表示的上述脏数据块所保持的数据向上述主存回写的命令发布到上述系统总线上。
在本发明的第5形态的高速缓存清理装置中,当更新地址删除单元检测到要求回写的命令时,在预定的期间内在对应于回写地址的区域内进行检索,当检测出与那个回写地址相一致的更新地址时,就删除(remove)那个更新地址(当没有检测出时就什么也不做)。这时,虽然有包含也混杂并继续存储在区域内已不是脏数据块的更新地址的可能性,但是入口释放装置能管理空闲入口数并在主动地确保空闲入口处理中删除该更新地址,另外,清理执行装置即使发布回写这个已不是脏数据块地址的命令,由于哪个高速缓存也没有响应该命令,因此一点问题也没有。另一方面,由于将这个更新地址删除单元的删除处理中所花费的时间,抑制在指定的范围内,因此在对主存访问频率非常高时也不会对其它处理产生不利的影响。
还有,这个更新地址删除单元不是在预定期间内执行删除处理,而是在检测到该高速缓存装置应处理别的命令之前继续执行该删除处理。这样看来,在防止对其它的处理产生不利影响的同时,能更恰当地进行继续/中断不需要存储的更新地址的删除处理。
另外,在检测要求所述的回写命令之外,更新地址删除单元也检测例如,在发生了高速缓存出错时所发布的读出命令等,此时检测作为那个命令对象的地址有无在该区域内登录,并当检测出来时,最好进行所说的删除等操作。在这个高速缓存出错发生时,作为被发布的读出命令的对象的地址所表示的数据由于能判断出是清除状态,若以这样的命令为条件就能提高执行不需要更新地址的删除处理的频率,使减轻释放入口的处理和高速缓存的清理动作成为可能。
另外,例如根据预想的高速缓存的脏率,由于即使各区域具有的入口数比对应的高速缓存块数更小,在性能方面也不存在问题,因此这时,如果各区域具有的入口数比对应的高速缓存块数更小,则可以减少应具备的硬件数量。
另外,根据情况,只用更新地址也可以选择构成更新地址所具备的多个区域,这种情况也是有效的。例如也有这种情况即根据系统总线规格,只使用系统总线的监视,不能得到处理器的识别号码。就是说,即使在这种情况下,该高速缓存清理装置也能够适用。
本发明的第6形态的高速缓存清理装置的特征是,上述更新地址存储装置具备用于保持对应于各个区域的上述脏数据块数的脏数据块计数器,这些区域用于存储上述脏数据块所保持的数据地址,上述更新地址登录单元具备使对应于上述选择了的区域的上述脏数据块计数器执行增量的装置,还具备减量装置,它通过上述系统总线的监视检测把上述脏数据块所保持的数据向上述主存回写,根据那个回写地址和进行了回写的处理器的号码选择上述更新地址存储装置所具备的多个区域中的某一个区域,并使对应于那个选择了的区域的上述脏数据块计数器减量,上述更新地址登录单元还具备成批入口释放装置,该装置在通过上述减量装置的减量使上述脏数据块计数器主为初始值时,则将那个脏数据块计数器所对应的区域中的存储更新地址的入口全部置为空闲入口。
根据本发明的第6形态的高速缓存清理装置,通过管理脏数据块计数器,就能检测到登录在某个区域的所有不必回写到主存的更新地址,这时入口成批释放装置将所有入口置为空闲状态,从而减少入口释放装置的执行次数,提高整个计算机的性能。
根据本发明第7形态,高速缓存清理装置的特征是,上述更新地址存储装置具备用于保持对应于各个区域的上述脏数据块数的脏数据块计数器,这些区域用于存储上述脏数据块保持的数据的地址,上述更新地址登录单元具备使对应于上述被选区域的上述脏数据块计数器增量的装置,上述更新地址删除单元具备使对应于上述被选区域的上述脏数据块计数器减量的装置,并通过上述减量装置的减量,使上述脏数据块计数器变为初始值时,还具备将存储在对应于那个脏数据块计数器的区域的更新地址全部删除的成批删除单元。
本发明的第7形态的高速缓存清理装置也能通过管理脏数据块计数器检测登录在某个区域的所有不用回写到主存的更新地址,这时入口成批释放装置置所有入口为空闲状态,从而减少入口释放装置的执行次数,提高整个计算机的性能。
另外,不是当存储在某个区域的所有更新地址不用回写时,而是在所存储的更新地址数超过预定的脏数据块计数器的值时,使入口释放装置释放某种程度数量的更新地址也是有效的。这时,就有可能避免不用回写的更新地址超过指定数量而被存储,并减少在高速缓存清理操作时不需要发布的命令数。
根据本发明的第8形态,计算机系统的特征是,它具备至少一个以上配备具有总线窥探机构的回写型的高速缓存的处理器、主存、以及连接上述处理器和上述主存的系统总线,是定期采集用于重新开始中断了的处理的检查点的计算机系统,该系统具备这些装置,它们是:本发明的一种高速缓存清理装置;在上述高速缓存清理装置中一边捕获更新地址一边执行数据处理的数据处理装置;包含向上述所有处理器同步并执行的数据处理中相关的主存存储以及把上述高速缓存清理装置的清理执行装置所执行的脏数据块所保持的数据向上述主存回写的检查点生成装置;在发生故障时,在即将采集的检查点时刻之前恢复上述主存,使用保持在这个被恢复的上述主存中的信息,重新开始数据处理的转后复原装置。
在定期采集用于重新开始中断了的处理的检查点的计算机系统中,重要的是如何缩短在该检查点的采集中所费的时间。而且,高速缓存清理操作占了该检查点采集处理的大部分。即若在这样的计算机系统中,应用所述的高速缓存清理装置,就能提高整个计算机的性能。
还有,在采用定期采集检查点方式及具备所谓主从结构的多个计算机的计算机系统的情况下也最好应用所述的高速缓存清理装置。由于能缩短检查点采集时所需要的时间,故提高整体系统的性能。再者,在通常时间执行的数据处理中,这些计算机若起动高速缓存清理装置的清理执行装置,就有可能进一步缩短检查点采集时所需要的时间。
附图说明
图1是表示涉及本发明第1实施例的计算机系统的系统结构图。
图2A,图2B是表示第1实施例的更新地址存储部分的区域Ai的结构的概念图。
图3是表示第1实施例的更新地址登录部分的动作顺序图。
图4是表示第1实施例的更新地址删除单元的动作顺序图。
图5是第1实施例的清理执行部分的动作顺序图。
图6是表示当第1实施例的更新地址登录部分检测表示数据更新的命令时的高速缓存清理装置的动作顺序图。
图7是表示在第1实施例的更新地址删除单元检测表示将脏数据块向主存(回写)的高速缓存清理装置的动作顺序图。
图8是说明第1实施例的处理器将数据D0、D1、D2分别连续地写入0地址、B×M地址、2B×M地址时的动作图。
图9是表示第1实施例的变形例中的区域Ai结构的概念图。
图10是表示在该变形例的更新地址登录部分检测表示数据更新的命令时的高速缓存清理装置的动作顺序图。
图11是表示在该变形例的更新地址删除单元检测了表示将脏数据块向主存回写的命令时的高速缓存清理装置的动作顺序图。
图12是表示该变形例的清理执行部分的动作顺序图。
图13是说明该变形例的处理器分别将数据D0、D1、D2连续写入0地址、B×M地址、2B×M地址时的动作图。
图14是表示涉及第1实施例的其它变形例的计算机系统的系统结构图。
图15是表示图14的变形例的清理执行部分的动作顺序图。
图16是表示涉及本发明的第2实施例的计算机系统的系统结构图。
图17是表示第2实施例的更新地址存储部分的区域结构图。
图18是当更新地址登录部分检测到表示在第2实施例的高速缓存中发生了数据更新时的更新地址登录部分和入口释放部分的处理流程。
图19是第2实施例的清理执行部分的处理流程。
图20是说明当第2实施例的处理器分别将数据D0,D1,D2连续写入0地址、B×M地址、2B×M地址时的动作图。
图21是表示涉及本发明第3实施例的计算机系统的系统结构图。
图22是表示第3实施例的更新地址删除单元定时地寻找回写地址和存储该地址的入口的定时探测例图。
图23是表示涉及本发明的第4实施例的计算机系统的系统结构图。
图24是表示第4实施例的更新地址存储部分的区域结构图。
图25是当更新地址登录部分检测到表示在第4实施例的高速缓存中发生了数据更新的命令时的更新地址登录部分和入口释放部分的处理流程。
图26是第4实施例的更新地址删除单元的处理流程。
图27是第4实施例的清理执行部分的处理流程。
图28是表示涉及本发明第5实施例的耐故障性计算机的结构图。
图29是表示在第5实施例的计算机中随着时间的经过三个步骤变化情况图。
图30是表示涉及本发明第6实施例的容错计算机的结构图。
图31是表示在第6实施例的计算机中,第1计算机100a和第2计算机100b的随时间的状态变化情况图。
具体实施方式
以下参照附图来说明备置了本发明的高速缓存清理装置的计算机系统的实施例。图1是表示第1实施例的结构的方框图。具有备置了高速缓存一致性的回写型的高速缓存20的多个(此处是3个)处理器10连接在系统总线40中。在这里,高速缓存是由一级高速缓存和二级高速缓存2个层次或二个以上层次构成,所谓在本实施例中的高速缓冲存储器是指最靠近系统总线40的高速缓冲存储器。另外,随着高速缓冲存储器的不同,有时也可分为存储命令的高速缓存和存储数据的高速缓存,但本实施例的高速缓存是指用于存储数据的高速缓存。另外,在本系统中的系统总线40上的地址是以32位为对象来说明。
高速缓存清理装置30以及连接主存51的存储(器)控制器50都连接到系统总线40。高速缓存清理装置30由总线接口31、更新地址存储部分32(由区域A0~An-1组成)、更新地址登录(register)部分33、更新地址删除(remove)部分34以及清理执行部分(单元)35构成。
更新地址登录部33和更新地址删除单元34作为具有以上二个功能的一个硬件模块将被执行。总线接口31掌管与系统总线的接口。
更新地址存储单元32由用于保持所有脏数据块的地址的几个区域(region)0-An-1构成。所有脏数据块的地址都存储在更新地址存储单元32,而不是脏的地址不存储在更新地址存储单元32。
此处,就区域的结构进行说明。区域Ai如图2A,图2B所示,具有一个以上存储更新地址的入口。有必要表示存储在各入口的值是否为有效,但作为这种方法以下述2种方法中任何一种为依据是适宜的。
(1)在没有存储更新地址的入口处,存储通常决不能采用的值(例如,OXFFFFFFFF) (图2A)。
(2)与存储地址不同,在各入口加上表示入口的内容是否有效(valid or invalid)的标志(图2B)。
再者,关于构成更新地址存储单元32的区域设置方法以及与地址的区域对应将在后面详细说明。
图3表示更新地址登录单元33的动作顺序。检测到由于处理器的数据写入操作,在高速缓存20中发生了数据更新的命令后(步骤A1),根据更新发生了的地址(更新地址),以及进行了更新的处理器的识别号码,选择构成更新地址存储单元32的n个区域(A0~An-1)中某一个区域(A2),从属于选择了的区域的入口中寻找空闲入口(emptyentry),将该更新的地址写入空闲入口中(步骤A3)。进行了更新的处理器10的识别号码的获取(Capture),根据系统总线的规格有下述2种情况。
(1)包含上述命令的情况
(2)通过监视总线判优信号所得到的情况
图4表示更新地址删除单元34的动作顺序。若检测到用于将脏数据块的内容回写(write back)到主存的命令(步骤B1),根据回写发生的地址(回写地址),以及进行了回写的处理器的识别号码,选择构成更新地址存储单元32的n个区域(A0-An-1)中某一个区域(步骤B2)、从包含在该区域的入口中选择包含该地址的入口,并删除更新地址(步骤B3)。
还有,更新地址登录单元33和更新地址删除单元34在根据处理器的识别号码和地址选择构成更新地址存储单元32的n个区域(A0~An-1)中某一个区域的方法中,必须采用同一方法。另外,用n个区域构成更新地址存储单元32的原因是由于与高速缓存一样更新地址删除单元34寻找回写地址及进行删除动作高速化。
图5表示清理执行单元35的动作顺序。
清理执行单元35根据来自处理器的指示,逐次取出存储在更新地址存储单元32中的所有地址,把要求将该地址的脏数据块的内容回写到主存的命令发布到系统总线。为此,将在步骤C1中表示区域的变量i置为0,确定在步骤C2的区域Ai中是否有更新地址。在有更新地址时,在步骤C3取出包含在区域Ai的更新地址,发布要求将该地址的脏数据块内容回写到主存的命令,然后返回到步骤C2。在步骤C2没有更新地址时,在步骤C4使变量i增量,确定i是否等于n,用来判定在步骤C5是否全部区域处理已结束。在NO时,返回步骤C2,在YES时,结束。
从更新地址存储单元32删除被取出的地址的处理也可以由清理执行单元35执行,但也有可能通过更新地址删除单元34来检测清理执行单元35所发布了的要求回写到主存的命令。
下面,根据本实施例的高速缓存清理装置30的控制方法,说明其动作。
(初始化)
处理器10在使高速缓存清理装置动作之前,进行初始化以便使高速缓存清理装置30的更新地址存储单元32的内容与高速缓冲存储器20的状态一致。在初始化中,将所有的高速缓存块变成无效状态(invalidateall the cacht blocks)。将区域A0~An-1初始化使其不含有更新地址。
(高速缓存清理装置30的平时的动作)
处理器10在进行了初始化之后,通过使构成高速缓存清理装置30的各单元运行指定的动作,在更新地址存储单元32中保持所有脏数据块的地址。换句话说更新地址存储单元32中有更新地址必然存在着脏数据块。下面将对此进行说明,在这里,考虑到某个处理器更新高速缓存20中的数据的情况。
(1)该高速缓存20在没有保持应更新的数据时,在要求它的地址的数据的同时,将要求该地址的数据无效化的命令对系统总线发布以通知其它的高速缓存20。并且,如果在该高速缓存20中供给了数据,则该高速缓存块变化为脏状态。更新地址登录单元33通过总线接口31获取上述命令,根据更新地址和处理器识别号码,选择区域A0~An-1中的某一个区域,把上述地址写入该区域的空闲入口中。
(2)当该高速缓存20以共享状态保持应更新的数据时,把要求该地址的数据无效化的命令对系统总线40发布以通知其它的高速缓存20。来自其它高速缓存20响应后,将该高速缓存块的状态变为脏状态。更新地址登录单元33通过总线接口捕获上述命令,根据更新地址和处理器识别号码选择区域A0~An-1中某一个区域,并将上述地址写入该区域。
(3)当该高速缓存20以脏状态已保存应更新的数据时,在系统总线40上没有发出表示数据更新的命令,因此,高速缓存装置30不执行任何动作。但是,当该高速缓存块的地址从非脏状态变成了脏状态时,由于该地址存储在区域A0~An-1中某一个区域,因此不会出现问题。
根据不同的高速缓存,除了所述的(1)-(3)的状态之外,有时还能获得清除互斥(Clean Exclusive)的状态。所谓清除互斥(Cleanexclusive)状态是表示高速缓存的内容与主存相同,而且保持该地址数据的高速缓存仅仅是该高速缓存。高速缓存块变成清除互斥状态是指这样的情况,即当处理器想要读入数据而发生了高速缓存出错,把要求该数据的命令发送到系统总线时,任何高速缓存都不返回如“具有该数据”的应答。
当高速缓存块是清除互斥状态时,若对于该高速缓存块能进行数据写入时,由于在其它的高速缓存中不存在对应于该地址的高速缓存块,因此不向系统总线发送表示数据更新的命令,此高速缓存块就变化成脏状态。
因此,在本实施例中,当使用能获取清除互斥状态的高速缓存时,必须使高速缓存块不变为清除互斥状态。它能使用下述方法实现,即在高速缓存清理装置中,对由于某个高速缓存从处理器中读入数据而引起高速缓存出错,并在向系统总线发出要求数据的命令中追加返回像“具有该数据”的应答的功能。
另外,当某个脏数据块的内容回写到主存51时,更新地址删除单元34将检测该命令,根据回写地址和处理器号码,按照与更新地址登录单元33选择区域A0~An-1的相同方法选择区域A0~An-1中某一个区域,删除其中所包含的该地址。
(高速缓存清理装置30的高速缓存清理动作)
处理器10在高速缓存清理装置30中命令高速缓存清理后清理执行单元35根据来自处理器10的指示,逐次取出存储在更新地址存储单元32中的所有地址,并把要求将具有该地址的脏数据块内容回写到主存51的命令发布到系统总线40中。
结果,返回到脏数据块不存在,另外在更新地址存储单元32也没有存储更新地址的初始状态。
在本实施例中,希望将构成更新地址存储单元32的区域A0~An-1的设定方法、以及地址与区域的对应与高速缓存20的结构一致。下面就此进行说明。
(区域的设计方法之一)
首先,说明关于高速缓存20是直接映像方式。处理器个数为1的最简单的情况。现在,假定一个高速缓存块的大小为B字节、高速缓存个数为M。这时,在通常的高速缓存中,地址为a地址的数据存储在第(a/BmodM)个高速缓存块中。
这时,区域A0~An-1与高速缓存块一一对应地设置。即,使区域的个数n与高速缓存块个数M相同,并且地址为a地址的数据存储在第(a/B mod M)个区域中。再者,由于处理器个数是1,更新地址登录单元33和更新地址删除单元34没有必要使用处理器识别号码。
在这里,由于必须适应新型处理器所备置的具有写入缓冲区机构的高速缓存,故对此进行说明。
所谓写入缓冲区是暂时存储从处理器和高速缓存到主存的数据写入要求的缓冲区。由于配备了写入缓冲区,当处理器要根据脏数据块更新其它地址的数据而发生了写入出错时,首先从主存读出新近应更新的数据,之后,将原来的脏数据块的内容回写到主存中。即是说,从处理器角度来说,当然新的应更新的数据可以尽快地使用,仅这一点就能提高性能。
在新型处理器中,由于备置2个以上的写入缓冲区,若在对应于相同的高速缓存块的各个地址中接连不断地发生数据更新,则有可能从主存中接连不断地发生应更新的数据的读出,之后,将连续发生脏数据块的回写。
为此,在观测系统总线40的高速缓存清理装置30中,因为宛如暂时发生这样的事情,即对于一个区域的更新地址,看起来似乎只存在写入缓冲区的个数+1,因此对其采取相应措施是必要的。
最简单的对策是增加各区域的入口数目,但存在下述问题。
(1)由于入口数目增多,因而硬件数量就变大。
(2)很难使从多个入口中发现已存在回写到主存的地址(这一动作)高速化。
如果高速缓存被限制在直接映像方式时,对于具有写入缓冲区功能的高速缓存来说,下述所示的2个具体例子是有效的。
(具体例子1)
在这里,假定各区域的入口数目为1。下面参照图6,图7说明其动作顺序。图6表示更新地址登录单元33检测到表示数据更新的命令时的高速缓存清理装置30的动作顺序,图7表示更新地址删除单元34检测到表示向脏数据块的主存51的回写的命令时的高速缓存清理装置30的动作顺序。
(1)更新地址登录单元33若检测到表示数据更新的命令,就把更新地址写入对应区域的入口(图6)。
(2)更新地址删除单元34若检测到把脏数据块的内容向主存51回写的命令,就将回写地址与对应区域的入口的内容相比较。若一致,就将该入口的内容变更为空闲入口的状态(图7)。
(3)对于各区域,当该区域的入口不是空闲入口时,清理执行单元35就把要求将该地址的脏数据块内容向主存51回写的命令发布到系统总线40。
在这里,参照图8,对处理器10将数据D0、D1、D2分别连续写入到0地址、B×M地址、2B×M地址时的动作说明。其中, B是高速缓存块的大小、M是处理器的高速缓存块的个数。
(1)处理器10要把数据写入0地址,但因为0地址的数据没有存储在高速缓存块0中,因此通过系统总线40向主存51或者其它的处理器10的高速缓存20(这时,因为处理器个数是1,因此所谓来自其它的处理器,实际上没有发生)中要求从0地址起到(B-1)地址的数据同时,把将更新数据(的信息)传给其它处理器10这样的命令发布(issue)到系统总线40上。
(2)结果,在高速缓存块0中,从0地址到(B-1)地址的数据以脏状态被存储,不久,0地址的数被D0更新。另外,在区域A0中,与0地址被更新相对应,更新地址0被存储。
(3)处理器10要把数据D1写入B×M地址,但由于在高速缓存块0中没有存储B×M地址的数据,所以将当前以脏状态保持的0地址的数据回写主存51,为此向主存51的写请求(Write request)被存储在写入缓冲区中。另外,在通过系统总线40向主存51或者其它的处理器10的高速缓存20中(这时,因为处理器的个数为1,所谓来自其它的处理器10实际上没有发生),请求从B×M地址到(B×M+B-1)地址的数据同时,把将更新数据(这一信息)传给其它处理器10这一命令发布到系统总线40。
(4)其结果,在高速缓存块0中,从B×M地址到(B×M+B-1)地址的数据以脏状态被存储,不久,B×M地址的数据被D1更新。另外,在区域A0中,与B×M地址被更新相对应,B×M被存储。
(5)处理器10要把数据D2与入2B×M地址,但由于在高速缓存块0中2B×M地址的数据没有被存储,则将当前以脏状态保持的B×M地址的数据回写到主存中,为此向主存51的写访问请求被存储在写入缓冲区中。结果,在写入缓冲区中,存储2个向主存51的回写命令。另外,在通过系统总线40向主存51或者其它的处理器10的高速缓存20中(这时,由于处理器个数为1,所谓来自其它的处理器10实际上没有发生)请求从2B×M地址到(2B×M+B-1)地址的数据同时,将更新数据(这一信息)传给其它处理器10,把这一命令发布到系统总线40。
(6)其结果,在高速缓存块0中,以脏状态存储了从2B×M地址到(2B×M+B-1)地址的数据,不久,2B×M地址的数据被D2更新。另外,在区域A0中,与2B×M地址被更新相对应,2B×M被存储。
(7)把被存储在写入缓冲区(区)的从0地址到(B-1)地址的数据向主存回写的命令(write request lommad)被发布到系统总线40。由于回写地址(the address ofthe write request Commad)0与区域A0的内容2B×M不一致,所以更新地址删除单元34什么也不做。
(8)把存储在写入缓冲区的从B×M地址到(B×M+B-1)地址的数据向主存51回写的命令被发布到系统总线40。由于回写地址B×M与区域A0的内容2B×M不一致,所以更新地址删除单元34什么也不做。
以上说明具体例子1。
(具体例子2)
在这里,假定各区域的入口数目为1,设置表示对应于该区域的更新地址有几个的计数器。入口和计数器像下述那样被使用。
(1)计数器0表示在该区域中没有包含更新地址(Counter valuezero means…)。
(2)若更新地址登录单元33检测到数据更新,就将更新地址写入对应的区域的入口,同时将该区域的计数器加1。
(3)更新地址删除单元34若检测到将脏数据块内容向主存51回写,则将对应的区域计数器减1。
(4)对于各区域,当该区域的计数器不为0时,清理执行单元35将请求向主存51回写该地址的脏数据块内容的命令发布到系统总线40。
图9表示区域Ai的结构。设置了32位入口和4位计数器。
图10表示更新地址登录单元33检测到表示数据更新的命令时的高速缓存清理装置30的动作顺序,图11表示更新地址删除单元34在检测到表示向主存51回写脏数据块的命令时的高速缓存清理装置30的动作顺序,以及图12表示清理执行单元35的动作顺序。
接下来,参照图13说明处理器10将D0,D1,D2分别连续地写入0地址,B×M地址,2B×M地址时的动作。但是,B是高速缓存块的大小,M是处理器的高速缓存块的个数。
(1)处理器10要把D0写入0地址,但由于在高速缓存块0中没有存储0地址的数据,所以在通过系统总线40发出向主存51或者其它的处理器10的高速缓存20(这时,由于处理器个数为1,所谓来自其它的处理器10实际上没有发生),请求从0地址到(B-1)地址的数据,同时,把将更新数据(这一信息)传给其它的处理器10这样的命令发布到系统总线40。
(2)结果,在高速缓存块中,以脏状态存储从0地址到(B-1)地址的数据,不久,0地址的数据被D0更新。另外,在区域A0中,与0地址被更新(这一事实)相对应,0被存储,并将计数器的值增量使其为1。
(3)处理器10要把数据D1写入B×M地址,但由于在高速缓存块0中没有存储B×M地址的数据,所以对用于将当前以脏状态所保持的0地址的数据写入主存51的主存51的写访问要求被存储在写缓冲区中。另外,在通过系统总线40向主存51或者其它的处理器10的高速缓存20(这时,由于处理器个数为1,所谓来自其它的处理器10实际上没有发生)请求(要求)从B×M地址到(B×M+B-1)地址的数据的同时,将更新数据(这一事实)传给其它的处理器10,将这一命令发布到系统总线40。
(4)结果,在高速缓存块中,以脏状态存储从B×M地址到(B×M+B-1)地址的数据,不久,B×M地址的数据被D1更新。另外,在区域A0中,与B×M地址被更新相对应,B×M被存储。另外,将计数器的值加1变为2。
(5)处理器10要把数据D2写入2B×M地址中,但由于在高速缓存块0中没有存储2B×M地址的数据,所以向主存51的写访问请求被存入写入缓冲区,该请求用于将当前以脏状态保持的B×M地址的数据回写到主存51中。结果,在写入缓冲区存储2个向主存51回写的命令。另外,通过系统总线40向主存51或者其它的处理器10的高速缓存20(这时,由于处理器个数为1,所谓来自其它的处理器10实际上没有发生)请求从2B×M地址到(2B×M+B-1)地址的数据,同时将更新数据(这一事实)传给其它的处理器10,并将这一命令发布到系统总线40。
(6)结果,在高速缓存块0中,以脏状态存储从2B×M地址到(2B×M+B-1)地址的数据,然后2B×M地址的数据被D2更新。另外,在区域A0中,与2B×M地址被更新相对应,2B×M被存储。并将计数器的值加1变成3。
(7)将存储在写入缓冲区的、从0地址到(B-1)地址的数据回写到主存51的命令发布到系统总线40。将对应于区域A0的计数器的值减1变为2。
(8)将存储在写入缓冲区的从B×M地址到(B×M+B-1)地址的数据回写到主存51的命令发布到系统总线40再将对应于区域A0的计数器的值减1使其变为1。
以上说明了具体例子2。
(区域的设计方法之2)
接着,对高速缓存20是直接映像方式、处理器个数为P的情况进行说明。这时,假定,1个高速缓存块的大小为B字节,高速缓存块的个数为M。
这种情况,有2个具体例子。
(具体例子3)
假定区域的个数n为P×M,各区域的入口个数为1。而且与这样的情况相对应,即,使最初M个区域与第1处理器10的高速缓存20对应,使其次M个区域与第2处理器10的高速缓存20对应。
更新地址登录单元33和更新地址删除单元34如所述那样根据处理器识别号码和地址,选择区域就行了。由于各区域常常与一个处理器10的一个高速缓存块对应,所以在对处理器具有的写入缓冲区的处理中,前面已说明的具体例子1和具体例子2是有效的。
(具体例子4)
该例子假定区域个数n为M,各区域的入口个数为P。区域Ai对应于各处理器10的第I个高速缓存块。
通过进行这样的对应,由于不管在哪个处理器10中发生了数据更新,都能求出由发生了更新的地址对应的区域,与第1具体例不同,不需要处理器识别号码。因此,根据系统总线的命令情况。在不能得到进行了数据更新的处理器的识别号码时也有效。
但是,在对于处理器具有的写入缓冲区(write buffer)的处理中,存在前面说明了的具体例子1和具体例子2不能适用的问题。因此,关于具有写入缓冲区的处理器,根据具体例子3,或者,后述的第2至第4的实施例的方法是所希望的。
(区域的设计方法之3)
下面,将说明高速缓存是采用N路组相联映像方式时、高速缓存块数为M、处理器个数为1的情况。假定1个高速缓存块的大小为B字节。这时,N个高速缓存块形成组,地址为a地址的数据存储在第((a/B)mod(M/N))组的高速缓存块中。
(具体例子5)
这时,假定区域的个数n为M/N,各区域的入口数为N。另外,地址为a地址的数据存储在第((a/B)mod(M/N))的区域中。这个方法的缺点是,在处理器10具有写入缓冲区时,就没有直接映像的高速缓存20时那样的改进方案。对于这个问题,按照在相继示出的第2至第4实施例中所示的方式是所希望的。
(具体例子6)
高速缓存20即使是组相联,更新地址存储在哪个组,当采用通过观测(observe)系统总线40的控制信号线等手段确认时,与直接映像的情况一样,可以分别对每个高速缓存块设定区域。这时,在对处理器10具有的写入缓冲区的处理中,前面说明的具体例子1和具体例子2是有效的。
若将以上说明的本实施例的高速缓存清理装置30的高速缓存清理处理和由以往的软件所控制的高速缓存清理处理进行比较,当高速缓存块是脏的比率非常高时,例如超过50%,由于将脏数据块的内容回写到主存51的处理很多,所花费的时间没有大的差别。
另一方面,高速缓存块是脏比率例如为10%时,在由软件控制的高速缓存清理中,为发现下一次出现的脏数据块,需花费平均要求2总线周期X10=20周期时间,而本实施例的高速缓存清理装置30的清理执行单元35,由于例如通过使用并行检查多个区域的硬件使逐次取出存储在各区域A0~An-1中的地址(标记搜索)这一动作高速化,所以能缩短高速缓存清理处理时间。
另外,通过使区域A0~An-1中具有地址以外的附加信息,也能使标记搜索高速化。关于这个例子将在第2实施例中说明。
本高速缓存清理装置的再一个效果是在这一方面,即,由于设置了专用硬件,因此在高速缓存清理装置中处理器在进行高速缓存清理处理的同时,还能执行通常的处理。这在把本实施例的高速缓存清理装置应用于采用了检测点方式的容错性强的计算机系统的情况中特别有效。关于这一点将在第5和第6实施例中说明。
还有,在此以前说明了的高速缓存清理装置30是以这一情况为前提,即,通过把命令发布到系统总线40,清理执行单元35就能执行高速缓存清理,该命令要求把脏数据块保持的数据回写到主存51。
在通常的系统中,在保持高速缓存之间数据的一致性方面时,叫做请求数据读出的读线路(Read-line)命令适用于该条件。作为对读线路(Read-line)的应答有2种。一种是,该脏数据块在系统总线上被应答,并且该主存对应部分根据该应答被更新。第2种是,重试(Retry)稍后重新执行(Read-line命令)被发布到系统总线。接着,脏数据块属于的高速缓存自动地把写线路(write-line)命令发布到系统总线,并将脏数据块的内容回写到主存。并且,若收到了重试一方再次将读线路发布到系统总线,则这一次主存将应答最新的数据。
但是,根据计算机系统的不同,亦有即使将Read-line命令发布到系统总线,脏数据块的内容也不回写到主存,而继续保持在脏数据块中的情况。因此,在这里将说明能适用于这样的计算机系统的高速缓存清理装置的2个具体例子。
(具体例子7)
该例是这样的方法,当高速缓存清理装置进行高速缓存清理之际,首先,读出脏数据块的数据的同时发布读无效之类的使脏数据块的内容无效化的命令,接着,通过发布Write-Line命令把前面读出的数据回写到主存51中。该方法由于维持了数据一致性,因此高速缓存清理装置30本身必须像保持脏数据块的高速缓存20一样执行动作。
(具体例子8)
第2构成法是要首先使处理器10能够取得,存储在更新地址存储单元32中的所有更新地址。它是通过这种方法实现的,该方法如图14所示,在高速缓存清理装置30中设置具有逐次读出存储在更新地址存储单元32中所有更新地址的功能的更新地址读出单元37来代替清理执行单元35,并且处理器要读出该更新地址读出单元37保持的更新地址。每当处理器读出更新地址时,更新地址读出单元37就准备新的更新地址。这样,当由处理器进行更新地址读出时,一次能读出多个更新地址,从而实现更高速化。然后,处理器10经由该更新地址读出单元37使用已取得的地址,将脏数据块的内容回写到主存。这时,处理器10通过使用高速缓存操作命令或从主存读出存储在与更新地址相同的高速缓存块中的别的地址的数据,使产生高速缓存的置换。在没有更新地址以前,若对其反复操作,就能将所有的脏数据块回写到主存中。与更新地址一样,处理器从更新地址读出单元37读出没有更新地址的信息。该方法的优点是,由于高速缓存清理装置30没有必要进行数据一致性的管理,因而硬件变得简单。另外,由于与处理器10用软件实行所有处理的以往方法比较,能有效地寻找脏数据块,因此,高速缓存清理处理是高速的。
图15示出表示该之具体例子8的动作的流程图。在步骤Ha1中表示区域的变量i为0,在步骤Ha2中判定在区域Ai中是否有更新地址。在有更新地址时,在步骤Ha3中取出并保持包含在区域Ai中的更新地址。在步骤Ha4判断更新地址是否被处理器读出。若读出(Yes)时,返回到步骤Ha2,若没有读出(No)时,在步骤Ha5将i仅增加1,在步骤Ha6判定i是否达到n。若没有达到(No)时,返回步骤Ha2,若达到(Yes)时,在步骤Ha7保持表示已没有更新地址的信息,之后动作结束。
在具体例子7(Read-line-with-lnvalidate-write-line)中所示的方法中,高速缓存清理装置为了保持数据一致性,有必要进行高速缓存那样的动作。
但是,在具体例子8(Read-Line-Write-Line(Write-Line是无条件的也包含Invalidate))所示的方法中,高速缓存清理装置为了保持数据一致性没有必要执行高速缓存那样的动作。具体例子8用UitraSPARC版的MBT进行设计。在该方法中,在高速缓存清理装置具有块数据期间,有可能使用者(Owner)改写数据,这时就丢弃该数据,令清理失败就行了。在总线不是一元化的系统(分层总线系统和DSM系统)中,由于数据一致被破坏,因此存在不适应的可能性。即使在这种情况,有可能在总线为两层结构中应用。
下面,将说明本发明的其它实施例。在下面的说明中,对应于第1实施例的部分,由于具有同样的参考数字,故详细说明省略。
(第2实施例)
接着,说明本发明的第2实施例。图16表示本发明的第2实施例的计算机系统的系统结构。高速缓存清理装置30所应用的计算机结构与第1实施例相同。
高速缓存清理装置30由总线接口31、更新地址存储单元32(区域A0~An-1)、更新地址登录单元33、清理执行单元35以及入口释放单元36构成。
更新地址存储单元32由用于保持所有的脏数据块的地址的n个区域(区域A0~An-1)构成。在本实施例中,所有脏数据块的地址存储在更新地址存储单元32中,除此以外,有时候曾经是脏数据块而现在不是那样的地址也存储在更新地址存储单元32中。这是因为在本实施例中不具有第1实施例中所示的更新地址删除单元34,这是与第1实施例的基本差别。
在这里,将说明有关区域Ai的结构。为表示存储在区域Ai的各入口的值是否有效,也可采用第1实施例所示的方法,但基于下述方法的一方更是所希望的。
即,构成区域的多个入口作为循环(cyclic)缓冲区使用。设置读出指针(R指针)和写入指针(W指针),更新地址存储在从R指针指示的入口到W指针指示的入口中一个的入口。其中,当W指针和R指针一致时,就弄不清是(it is ambiguous whether…or…)表示所有入口是空闲状态,还是表示所有入口都不是空闲状态,为对此进行判别,还设置了叫做全标志的1位标志(equipped with fullness flag,a onebitflag)。该方法的长处是容易使更新地址登录单元33和清理执行单元35的动作高速化。
图17是表示本实施例的区域结构的概念图。R指针表示在有效更新地址中,最新登录的地址(registered least recentlg)。另外,W指针表示应登录新的更新地址的位置。而且,使用全标志用来判别当W指针和R指针一致时,该全标志是表示所有的入口是空闲状态(全标志=OFF)还是表示所有的入口不是空闲状态(全标志=ON)。
更新地登录单元33与第1实施例相同。
在所述的更新地址登录单元33想要把更新地址写入某一区域时,当检测出没有属于该区域的空闲(empty)入口时,入口释放单元36从所存储的更新地址中选择一个地址,并将这样的命令发送到系统总线40,该命令要求把具有该地址的脏数据块的内容回写到主存51。这时,使保持该地址的入口为空闲。还有,入口释放单元36在上述时间点释放入口效率最好,不过也可以在空闲入口有少量剩余,更早一点的时间点来进行。
图18表示当更新地址登录单元33检测出表示在高速缓存20中发生了数据更新的命令时的更新地址登录单元33和入口释放单元36的处理流程(process flow)。若在步骤11检测出表示数据更新的命令,则在步骤12根据处理器识别符(identifier)和更新地址(update address)求出对应的区域Ai。在步骤13判定区域Ai的全标志是否是ON。在NO时,跳过步骤18,Yes时,在步骤14入口释放单元36发布要求(请求)向主存回写区域Ai中的R指针所指向的入口中的地址所对应的脏数据块的命令。在步骤15R指针判定是否是指向最后的入口。NO时,在步骤16将R指针只增量1,Yes时,在步骤17在R指针指向最初的入口以后,就执行步骤18。在步骤18,在W指针表示的位置登录更新地址。
在步骤19,判定W指针是否指向最后的入口。NO时,在步骤110将W指针只加1,Yes时,在步骤111,W指针指向最初的入口之后,执行步骤112。在步骤112,判定W指针和R指针所指向的位置是否相等。相等时,在步骤113使全标志为ON之后结束,不等时立即结束。
图19表示清理执行单元35的处理流程。清理执行单元35根据来自处理器10的指示,逐次取出存储在更新地址存储单元32中的所有地址(结果,所读出的地址从更新地址存储单元32中去掉)(步骤J2-J10),把请求向主存51回写该地址的脏数据块的内容的命令发布到系统总线40(步骤J5)。
在本实施例中,对于各区域Ai,由于只是在从R指针到W指针所表示的范围的入口中存储有效的更新地址,因此,即使脏数据块存在的比例小时,也能有效地取出脏数据块的地址,使高速缓存清理高速化。
下面,将根据本实施例的高速缓存清理装置30的控制方法来说明它的动作。
(初始化)
处理器10在使高速缓存清理装置30动作之前,进行初始化,以便使高速缓存20的状态和高速缓存清理装置30的更新地址存储单元32的内容一致。在初始化过程中,使所有的高速缓存块变为无效状态(invalidate all the cuche blocks)。区域A0~An-1即使不进行初始化,也能正确地动作,但使对应于各区域的R指针和W指针一致这一点在性能上是所希望的(is recommended in term of performance)。
(高速缓存清理装置30的平时的动作)
处理器10进行了初始化之后,通过构成高速缓存清理装置30各单元进行指定的动作,在更新地址存储单元32保持所有脏数据块的地址。但是,在将某个脏数据块的内容回写到主存51时,没有删除保持在与其对应的区域A0~An-1中的地址,因此,也有包含在区域A0~An-1中的地址的脏数据块不存在的情况。下面就此进行说明。
更新地址登录单元33若检测到在高速缓存20中的数据被更新,则根据该更新地址和进行了数据更新的处理器10的识别符,选择区域A0~An-1中某一个区域,并将地址写入该区域。在这里,在该区域如果没有空闲入口,即,如果全标志为ON,则入口释放单元36将向系统总线40发布请求将具有存储在R指针指示的入口的地址的脏数据块的内容回写到主存51的命令。结果,如果有具有上述地址的脏数据块,则将其内容写入主存51,变为没有脏状态。另外,没有具有上述地址的脏数据块时什么也不发生。总之,由于通过该操作能保证对于上述地址没有脏数据块,因而更新地址登录单元33能够将空闲入口用于更新地址的写入。
另外,在处理器10进行数据处理的过程中,脏数据块的内容被回写到主存51时,构成高速缓存清理装置30的各单元什么动作也不进行。
(由高速缓存清理装置30所进行的高速缓存清理时的动作)
处理器10向高速缓存清理装置30中下达进行高速缓存清理命令后,清理执行单元35根据来自处理器10的指示,逐次取出存储在更新地址存储单元32中所有地址,并向系统总线40发布要求(请求)将具有该地址的脏数据块的内容回写到主存51的命令。
结果,不存在脏数据块,另外,回到在更新地址存储单元32也没有存储更新地址的初始状态。
本实施例与第1实施例比较,构成更新地址存储单元32的区域设定方法以及地址和区域的对应的自由度特别大。即,在第1实施例中,更新地址存储单元32的区域必须与高速缓存20的结构一致。这是由于,各区域要正确地保持脏数据块的地址,而且在区域中不能保持时,不能采取行动将脏数据块的内容回写到主存51。与此相反,在本实施例中,当区域中不能保持更新地址时,入口释放单元36取出一个保存在该区域的更新地址,通过向系统总线40发布要求(请求)将具有该地址的脏数据块的内容回写到主存51的命令,就能够将高速缓存20的状态与更新地址存储单元32的状态一致。
下面将说明构成更新地址存储单元32的区域的设定方法以及地址和区域的对应关系的具体例子。
(具体例子1)
考虑高速缓存20是直接映像方式,处理器个数为P的情况。这时,例如,可以对应于所有处理器10的第i个高速缓存块、设置1个区域。假定一个高速缓存20的高速缓存块个数为M,则区域个数n为M。
构成一个区域的入口数目,在第1实施例中,至少必须为P,但在本实施例中可以比它少。这时,对应于一个区域的高速缓存块的个数为P,但通常由于某个高速缓存块的脏率(probability)为20-50%左右,因此,入口数目也可以设为p/2左右。另外,对于处理器10的写入缓冲区的对策尤其没有必要。关于这个问题将在后面叙述。
(具体例子2)
虽然是最极端的例子,但区域的个数也可以为1个。由于高速缓存块的个数为P×M,所以入口数目例如为P×M/4-P×M/2左右。这时,高速缓存20的结构无论是直接映像方式还是组相联方式、或者是全相联都能正确的动作。
在本实施例的情况下,在有空闲入口期间,高速缓存清理装置30对系统总线40不发布任何命令。若没有空闲入口,每当在高速缓存20中发生写入出错时,将产生1个请求向主存51回写脏数据块的内容的命令。
这样,若设区域的个数为1,则本实施例有这样的长处,即不需要根据处理器识别符和更新地址选择对应的区域的硬件,相反地,缺点是若对于同一地址发生了几次高速缓存出错,则容易发生该更新地址被存储到多个入口的情况,从而性能将恶化。
因此,在决定更新地址存储单元32的结构时,必须照顾到硬件设计和性能的平衡,使之在某种程度与高速缓存20的结构相一致(cachblock configuration of the cache memory 20)中。
(具体例子3)
下面就高速缓存20是N路组相联方式,高速缓存块数为M,处理器数为P的情况进行说明。这时,N个高速缓存块形成一组,地址为a地址的数据存储在第((a/B)mod(M/N))组的高速缓存块中。
这时,假定区域为P×M个,各区域的入口数为1。则,使由处理器识别符为K的处理器所产生的a地址的数据更新存储在第(M×K+(a/Bmod M))的区域。
用这种方法,在高速缓存20中,使用N个路径的组相联方式进行管理,但在高速缓存清理装置30中,是作为直接映像的高速缓存来管理。结果,例如识别符为0的处理器10在以脏状态保持高速缓存20中的0地址的数据时,假定要更新主存B×M地址的数据,则高速缓存清理装置30将发布请求向主存51回写0地址的数据。
本来,虽然对于采用组相联方式的处于脏状态的高速缓存20用直接映像方式来管理,将使高速缓存命中率恶化,而对于高速缓存清理装置30的设计,通过直接映像方式那样进行管理,只要参照包含在一个入口中的更新地址就行,而且能实现硬件的简单化和处理的高速化。
在本实施例中,如上述具体例子1和具体例子2中所示,也有可能将一个区域与所有处理器10的某个高速缓存块相对应。由此,更新地址登录单元33等在求区域A0~An-1时,由于不需要处理器10的识别符,所以即使在系统总线40命令中没有包含处理器识别符的情况下也适用。
接下来,参照图20说明处理器10将D0,D1,D2分别连续写入0地址、B×M地址、2B×M地址时的动作。其中,B是高速缓存块的大小、M是处理器的高速缓存块数。另外,假定区域A0的入口数为2。
(1)处理器10要将数据D0写入0地址,但由于在高速缓存块0中没有存储0地址的数据,所以在通过系统总线40向主存51或者其它处理器10的高速缓存20中请求从0地址到(B-1)地址的数据的同时向系统总线40发布将更新数据这一信息传给其它处理器10的命令。
(2)结果,在高速缓存块中,以脏状态存储从0地址到(B-1)地址的数据,不久,0地址的数据被D0更新。另外,在区域A0中,对应于0地址被更新,0被存储。
(3)处理器10要把数据D1写入B×M地址,但由于在高速缓存块0中没有存储B×M地址的数据,因此,将对主存51的写访问请求存储在写入缓冲区中,该写入访问请求用于将以当前脏状态保持的0地址的数据写入主存51。另外,在通过系统总线40向主存51或其它处理器10的高速缓存20请求从B×M地址到(B×M+B-1)地址的数据的同时,向系统总线40发出将更新数据这一信息传给其它处理器10的命令。
(4)结果,在高速缓存块0中,以脏状态存储从B×M地址到(B×M+B-1)地址的数据,不久,B×M地址的数据被D1更新。另外,在区域A0中,对应于B×M地址被更新。0和B×M被存储。
(5)处理器10要将数据D2写入2B×M地址,但由于在高速缓存块0中没有存储2B×M地址的数据,所以把向主存51的写访问请求存储在写入缓冲区中,该写访问请求用于将当前以脏状态保持的B×M地址的数据回写到主存51中。结果,在写入缓冲区中,存储了2个向主存51回写的命令。另外,在通过系统总线40向主存51或者其它的处理器10的高速缓存20请求从2B×M地址到(2B×M+B-1)地址的数据的同时向系统总线40发送把更新数据这一信息传给其它处理器10的命令。
(6)结果,在高速缓存块0中,以脏状态存储从2B×M地址到(2B×M+B-1)地址的数据,不久,2B×M地址的数据被D2更新。另外,在区域A0中,对应于2B×M地址被更新,要将2B×M存储起来,由于没有空闲入口(全标志=ON),因此向系统总线40发布请求将具有最初被存储的地址为0地址的脏数据块的内容向主存51回写的命令。
(7)与从高速缓存清理装置30向系统总线40发送的上述命令相呼应,进行将存储在处理器10的写入缓冲区的0地址-(B-1)地址的数据向主存51的写入动作。
(8)将把存储在写入缓冲区的、从B×M地址到(B×M+B-1)地址的数据向主存51回写的命令发送到系统总线40。
(9)高速缓存清理装置30由于丝毫没有对(8)中的命令进行处理,所以在区域A0的入口,与继续保持2B×M同时也继续保持B×M。
(第3实施例)
接着,说明本发明的第3实施例。在图21中,表示本发明的第3实施例的计算机系统的系统结构。高速缓存清理装置30所适用的计算机的结构与第1和第2实施例相同。
高速缓存清理装置30由总线接口31、更新地址存储单元32(区域A0~An-1)、更新地址登录单元33、更新地址删除单元34、清理执行单元35以及入口释放单元36构成。
更新地址存储单元32、更新地址登录单元33、清理执行单元35以及入口释放单元36与第2实施例相同。
更新地址存储单元32与第1实施例类似,但在第1实施例中,通常从对应于回写地址的区域中搜查保持该地址的入口,将其变为空闲入口,但在本实施例中,只在一定时间试试该处理,如果在这期间寻找出保持该地址的入口,就将入口变为空闲入口,如果没有找到,就关闭该入口(不删除地址)。结果,在更新地址存储单元32中,因为有可能也保持已经不是脏数据块的地址,所以,像第2实施例那样,由入口释放单元36主动地产生空闲入口。
根据图22所示的流程图来说明更新地址删除单元34仅仅在一定时间搜查存储与回写地址相同的地址的入口的最典型的例子。如图22所示,更新地址删除单元34将回写地址与R指针指示的入口的内容相比较(步骤K3),若一致,通过使R指针增量(步骤K5-K6),删除更新地址。结果,适当地减少了由入口释放单元36通过清理命令发布装置释放脏数据块的操作,从而能够提高局部性能。
另外,也有可能,更新地址删除单元34在直到检测到表示在高速缓存20中的数据更新的命令之后,或者在检测到用于向主存51回写脏数据块的内容的命令之后才执行该搜查处理,以代替仅仅在一定时间执行搜查存储与回写地址相同的地址的入口的处理。这方面,由于使更新地址删除单元34实际上从更新地址存储单元32中删除更新地址的频率提高,因而性能更好。
而且,在本实施例中的更新地址删除单元34,以检测用于将脏数据块的内容回写到主存51的命令为条件,若在更新地址存储单元32中发现相同的地址就将它删除。但是,例如,处理器10想从高速缓存20读数据并发生了高速缓存出错时,根据检测到从高速缓存20向系统总线40发布的命令为条件,若在更新地址存储单元32中发现相同的地址,也将删除它。通常,删除动作也在下面情况下进行即当是向系统总线40发布了命令,将作为对象的地址所在的高速缓存20变成不是脏的状态(清除的状态)以检测到该命令为前提。由此,更新地址删除单元34动作的频率增加,把入口释放单元36作为必要的次数减少,并且可以期待提高性能。
(第4实施例)
接着,说明本发明的第4实施例。图23中表示本发明的第4实施例的计算机系统的系统结构。高速缓存清理装置30所适用的计算机的结构与第1和第2实施例相同。
高速缓存清理装置30由总线接口31、更新地址存储单元32(区域A0~An-1)、更新地址登录单元33、更新地址删除单元34、清理执行单元35以及入口释放单元36构成。
更新地址存储单元32由在第2实施例中已说明的部分加上如图24所示的对应于各区域而设置保持对应该区域的脏数据块的个数的脏数据块计数器构成。
更新地址登录单元33是由在第2实施例中已说明的部分,加上使对应于该区域的脏数据块计数器加1的功能的单元构成。
入口释放单元36,与第2实施例中已说明的部分相同。
图25中表示更新地址登录单元33检测到表示在高速缓存20中发生了数据更新的命令时的更新地址登录单元33和入口释放单元36的处理流程。若在步骤L1检测出表示数据更新的命令,则在步骤L2根据处理器识别符和更新地址求出对应的区域Ai。在步骤L3将脏数据块计数器加1。在步骤L4判定区域Ai的全标志是否为ON。NO时,跳到步骤L19,Yes时,在步骤L5入口释放单元36使用区域Ai的R指针表示的入口中的地址发布请求向主存回写脏数据块的命令。在步骤L6判定R指针是否指向最后的入口。No时,在步骤L7将R指针仅仅加1,Yes时,在步骤L8在R指针指向最初的入口之后,执行步骤L9。在步骤L9,将更新地址登录在W指针所指示的位置。
在步骤L10判定W指针是否指向最后的入口。No时,在步骤L11将W指针仅仅加1,YES时,在步骤12,在W指针指向最初的入口以后,执行步骤L13。在步骤L13,判定R指针和W指针表示的位置是否相等。在相等时,在步骤L14将全标志置为ON之后结束,不等时立即结束。
图26表示更新地址删除单元34的处理流程。更新地址删除单元34若检测到用于将脏数据块的内容回写到主存51的命令(步骤M1),则根据回写所产生的地址(回写地址)、以及进行了回写的处理器10的识别符,选择构成上述更新地址存储单元32的n个区域(A0~An-1)中某一个区域(步骤M2),并将该脏数据块计数器减1(步骤M3)。如果脏数据块计数器的值为0,则通过将R指针的值与W指针的值相一致,并将全标志置为OFF(步骤M5),将该区域保持的所有更新地址删除。
图27表示清理执行单元35的处理流程。清理执行单元35根据来自处理器10的指示,就各区域的脏数据块计数器的值不为0的区域而言,向系统总线40发布请求将具有存储在该入口的地址的脏数据块的内容向主存51回写的命令(步骤N3)。若脏数据块计数器为0(步骤N2)结束对该区域的处理。
本实施例中,在第2实施例的结构的基础上,更新地址存储单元32各区域设置了脏数据块计数器,更新地址登录单元33和更新地址删除单元34通过使上述计数器与脏数据块的增减一致起来而加以维护。而且,在对应于某个区域的所有脏数据块都没有时,更新地址删除单元34将使该区域的所有入口为空闲。
其结果,与第2实施例比较,能够减少启动入口释放单元36的频率,提高具备该高速缓存清理装置30的计算机性能。
另外,在本实施例中,作为给第2实施例的手段的追加被说明,对第3实施例也能实行相同手段的追加。
另外,在本实施例中,更新地址删除单元34对脏数据块计数器减量的结果为0时,使对应区域Ai的所有入口为空闲,但也可以考虑下述所示的脏数据块计数器的第2种利用方法。
现在,假定将区域Ai的脏数据块计数器减量的结果设为1。这时,存储在区域Ai的更新地址的个数(它可以从R指针和W指针之类求得)大时,对于保持在区域Ai中的大部分更新地址,意味着脏数据块实际不存在。
因此,对于区域Ai的所有入口如果应用入口释放单元36,则对于脏数据块实际不存在的地址来说,清理执行单元35就能够减少请求向主存51回写的命令的发布次数,可望提高该系统的性能。
以上,从第1实施例到第4实施例,说明了关于高速缓存清理装置。接下来,说明使用了上述4个实施例中某一个(容错性)计算机(faulttolerant lomputer)的实施例。
(第5实施例)
图28表示本发明的第5实施例。第1至第4实施例中某一个高速缓存清理装置30与系统总线40相连接。各处理器10具有备配高速缓存一致性的回写型的高速缓存20。
本实施例的计算机,经常,通过执行下述步骤中的任何一个,提供容错性好的数据处理功能。
(1)数据处理步骤(normal data processing step)
一边在高速缓存清理装置30中搜索更新地址一边执行通常的数据处理。
(2)检查点生成步骤(checkpoint acquisition step)
该步骤是以暂时中断数据处理步骤的形式定期地执行的步骤。处理器10有多个时,所有处理器10同步地执行。在该步骤中进行的处理有下述2个。
(2a)将数据处理中的处理器10的上下文信息(处理器10的程序计数器和通用寄存器等的内容)。存储到主存51。
(2b)通过启动上述高速缓存清理装置30的清理执行单元35,将所有脏数据块的内容回写到主存51。
(3)回滚及恢复步骤
该步骤是在数据处理步骤或检查点生成步骤的执行中在计算机内发生了某些故障时所执行的步骤。在该步骤中进行的处理有下述2种。
(3a)在前一次的生成了检查点的状态之中,恢复主存51。
(3b)使用存储在被恢复的主存51中的信息,重新开始数据处理(若重新开始,就转移到数据处理步骤)。
图29表示在本实施例的计算机中,3个步骤随时间变化的情况。
若开始数据处理步骤并经过一定时间,则各处理器10开始检查点生成步骤。在该检查点生成步骤中进行的第1处理是在前一次的数据处理步骤中已处理到哪了,即,意思是从前一次的数据处理步骤将转换成检查点生成步骤时的处理器的上下文(程序计数器、状态寄存器、以及通用寄存器等的内容)写到主存51。但是,实际上,也许只仅仅存储在高速缓存20中。
在检查点生成步骤中进行的第2处理,就是将脏数据块的内容回写到主存51。该第2处理对于即使在发生了高速缓存20中的数据被破坏的故障时,通过回滚和恢复步骤,从故障发生前的状态重新开始数据处理是必要的。
若检查点生成步骤结束,重新开始数据处理步骤。这时,使用在检查点生成步骤中写入主存51的处理器10的上下文信息。
图29表示在第3个数据处理步骤途中发生某些故障并开始了回滚和恢复步骤的意思。在回滚和恢复步骤中进行的第1处理就是将主存51的状态恢复成执行了之前的检查点生成步骤的状态,换句话说,恢复到开始第3个数据处理步骤的之前的状态。
通常,在数据处理步骤中,由于随时会发生将脏数据块的内容回写到主存51,所以主存51的状态从数据处理步骤开始时的状态起稍有变化。因此,作为回滚和恢复步骤的第1处理,将主存51的状态恢复为之前的检查点的状态。该恢复方法可以是,例如每当发生将脏数据块的内容回写到主存51时,预先将主存51的回写前的内容存储在记录(日志)存储器中,使用它恢复主存51的状态。
例如,当发生向a地址中回写D1的数据时,主存控制器50保存用于该回写的命令、读出主存51的a地址的内容(D0)之后,将D1写入主存51的a地址。并预先存储a地址和D0的值。而且,作为回滚和恢复步骤的第1处理,就是将D0写入a地址的主存51,因而能恢复前一次的检查点时的主存51的状态。
另外,作为其它的方法,将主存51预先复写(duplicated)在存储器A和存储器B中,在将数据处理步骤中的脏数据块的内容回写到主存51中,只进行回写到存储器A,在检查点生成步骤中,将存储器A的变化部分也应用在存储器B中来实现。
回滚和恢复步骤的第2处理,就是从恢复了的主存的状态重新开始数据处理步骤。该处理与从检查点生成步骤向数据处理步骤转移是相同的。在上图的情况下,从与第3个数据处理步骤相同的状态开始第4个数据处理步骤。
还有,在回滚和恢复步骤中有一些其它处理如,检查其它发生了故障的原因,并将有故障的装置分离,在故障严重时,有必要关闭数据处理步骤的重新开始,使计算机停止工作等处理。但是,由于这部分不是本发明的本意,故省略说明。
在这样的计算机中,有定期地执行检查点生成步骤部分,使数据处理性能恶化,因而缩短检查点生成步骤所需要的时间是重要的。由于检查点生成步骤的大部分是将脏数据块的内容回写到主存51中,因而通过使用本发明的高速缓存清理装置,能缩短回写时间,可望大幅度地缩短检查点生成步骤所需要的时间。
再者,若在数据处理步骤的后半部分起动高速缓存清理装置30的清理执行单元35,能进一步缩短检查点生成步骤所需要的时间。这是因为通过起动高速缓存清理装置的清理执行单元35,在检查点生成步骤开始时刻,脏数据块的个数与没有进行上述处理时比较减少相当多。没有进行上述处理时的脏数据块的比率例如是30%进行上述处理的则变成为15%左右。由于第1到第4实施例的高速缓存清理装置30的清理执行单元35,在脏数据块的比率小时也能有效地取出存储在更新地址存储单元的更新地址,如果脏数据块的比率为15%,则检查点生成步骤所需要的时间大约减少到一半。
(第6实施例)
接着,说明本发明的第6实施例。图30中表示具备第1至第4实施例中所示的某一种高速缓存清理装置30的本实施例的容错计算机的结构。如图30所示,在本实施例中,采用使用存储器更新观察单元60(第1计算机内)和存储器更新单元70(第2计算机内)连接独立的第1计算机100a和第2计算机100b的结构。第1计算机100a和第2计算机100b必须至少包含相同种类的处理器10和相同种类的主存51。
第1计算机100a经常执行数据处理步骤和检查点生成步骤。另一方面,第2计算机100b通常执行等待步骤,并且若在第1计算机100a中发生故障,则接着第1计算机100a所进行的以前的数据处理继续执行。
存储器更新观察单元60通过观察第1计算机100a的系统总线40,观察存储在第1计算机100a中发生的更新主存51的命令。并且通过第1计算机100a的指示,将存储的命令送到连接第2计算机100b的存储器更新单元70。
存储器更新单元70通过将从存储器更新观察单元60接收的命令发布到第2计算机100b的系统总线40,使第2计算机100b的主存51的状态与第1计算机100a一致。
下面将说明关于第1计算机100a的数据处理步骤和检查点生成步骤。
(1)数据处理步骤
该步骤一边在高速缓存清理装置30中进行更新地址的捕捉,一边执行通常的数据处理。
(2)检查点生成步骤
该步骤是以暂时中断数据处理步骤定期地执行的步骤。当处理器有多个时,将同步地执行所有的处理器10。在该步骤中所进行的处理,是下述3种。
(2a)将数据处理中的处理器10的上下文(处理器10的程序计数器和通用寄存器等的内容)存储到主存51。
(2b)通过起动上述高速缓存清理装置30的清理执行单元35,将所有的脏数据块的内容回写到主存51。
(2c)指示将对于存储器更新观察单元60来说所存储的命令送到存储器更新单元70。
在第2计算机100b的等待步骤中,各处理器10不进行数据处理,而是由存储器更新单元70检查是否定期地接收来自第1计算机100a的主存的更新命令。并且,在一定时间以上,如果没有接收上述命令,假定第1计算机陷入不能工作的状态则从该时刻的第2计算机100b主存51的状态开始进行数据处理。
图31表示在本实施例的计算机中,随着时间推移的第1计算机100a和第2计算机100b的状态变化情况。
在第1计算机中,开始数据处理步骤后经过一定时间,各处理器10开始检查点生成步骤。在这里第1计算机100a进行的第1处理,在目前的数据处理步骤中,处理进行到哪儿了,即,意思是将从目前的数据处理步骤转换成检查点生成步骤时的处理器的上下文(程序计数器、状态寄存器、以及通用寄存器等的内容)写入主存51。但是,实际上也许只存储在高速缓存20中。
在检查点生成步骤中进行的第2处理,就是将脏数据块的内容回写到主存51。该第2处理必须将第1计算机100a中的主存51的更新全部送到第2计算机100b。
在检查点生成步骤中进行的第3处理,就是指示将存储在存储器更新观察单元60中的命令送到存储器更新单元70。该指示希望在检查点生成步骤即将结束之前进行。这是为了在第2计算机100b中经常使之保持健全的主存映像。
若检查点生成步骤结束,就重新开始数据处理步骤。这时,使用在检查点生成步骤中写出到主存51的处理器10的上下文。
图31中,表示在第3个数据处理步骤的途中发生了某些故障的情况。这时,只停止第1计算机100a就行了。或者,接着在第2计算机100b中发生了故障时,预先有准备,也能进行启动。
在第1计算机100a中发生故障之前,第2计算机100b执行等待步骤。并且,在时刻T,存储器更新单元70经过一定时间没有收到来自存储器更新观察单元60的命令,就执行数据处理步骤。在图31的情况下,在第2计算机100b中,从与第1计算机100a中的第3个数据处理步骤相同的状态开始数据处理步骤。
在这样的计算机中,由于定期地执行检查点生成步骤这一部分使数据处理性能恶化,因此,缩短检查点生成步骤所需要的时间是重要的。由于检查点生成步骤的大部分处理是将脏数据块的内容写入主存51,所以通过使用高速缓存清理装置30可望大幅度地缩短所需要的时间。
还有,在数据处理步骤的后半部分,如果起动高速缓存清理装置30的清理执行单元35,就能进一步缩短检查点生成步骤所需要的时间,这一点与第5实施例的情况相同。
如以上所详述的那样,若根据本发明的高速缓存清理装置,高速缓存中的所有脏数据块的地址都存储在高速缓存清理装置内的某一个区域中。另外,某个高速缓存块一旦变为脏状态以后,在已不是脏状态时,从区域中删除该地址。并且,清理执行单元从各区域依次取出脏数据块的地址,通过向系统总线发布请求将该地址的脏数据块的内容回写到主存的命令,将所有脏数据块的内容回写到主存。
因此,不必如由以往的软件所控制的高速缓存清理那样,对所有的高速缓存块顺序地进行所谓判定是否是脏数据块的处理,因而能快速且有效地进行高速缓存清理操作。
另外,处理器即使是具有写入缓冲区的情况,例如,假定各区域为只具有一个入口的结构,在该入口由于存储的不是写入缓冲器地址,而是通过做到只存储在高速缓存块中所存储的数据的地址(最新的更新地址)等,也能确保恰当的高速缓存清理动作。
而且,由于对应于各自区域的使用情况,具备了发布更新地址的回写请求的机构,因而有可能大幅地扩大更新地址存储单元所具备的区域的入口数的设定、以及区域和地址的对应关系等的自由度。
另外,根据本发明的计算机系统,由于快速且有效地进行占检查点采集处理的大部分的高速缓存清理操作,因而能提高整个系统的性能。
Claims (67)
1.在具备至少一个备置了具有总线窥探机构的回写型的高速缓存的处理器、主存、以及连接上述至少一个处理器和上述主存的系统总线的计算机中所使用的高速缓存清理装置,包括:
更新地址存储装置,它具有多个在所述高速缓存内所确保的高速缓存块中,用于存储在保持应回写到所述主存的数据的状态中作为高速缓存块的脏数据块所保持的数据的地址的区域;
更新地址登录装置,用于通过监视所述系统总线检测到在所述高速缓存中的数据更新,根据具有数据更新的更新地址和进行了数据更新的处理器的识别符选择所述更新地址存储装置所具备的多个区域中某一个区域,并将所述更新地址存储在所选的区域;
更新地址删除装置,它通过监视所述系统总线,检测到将所述脏数据块保持的数据向所述主存回写,根据数据回写的回写地址和进行了回写的处理器的识别符选择所述更新地址存储装置所具备的多个区域中的某一个区域,并删除与存储在该选择了的区域的所述回写地址一致的更新地址;以及
清理执行装置,它响应来自所述处理器的指示,逐次读出存储在所述更新地址存储装置中的所有更新地址,并向所述系统总线发布请求将用所读出的更新地址表示的所述脏数据块保持的数据回写到所述主存的命令。
2.权利要求1所述的计算机中所使用的高速缓存清理装置,其特征在于:上述高速缓存是直接映像方式的高速缓存,上述更新地址存储装置所具备的多个区域各自具有一个入口。
3.权利要求2中所述的计算机中所使用的高速缓存清理装置,其特征在于:上述更新地址存储装置还具备对应于所述区域设置的计数器,上述更新地址登录装置具备将对应于选择的区域的所述计数器进行增量的装置,所述更新地址删除装置具备将对应于选择了的区域的所述计数器进行减量的装置。
4.根据权利要求1的高速缓存清理装置,其中,所述更新地址存储装置具备的多个区域,可以只用所述更新地址来选择。
5.在具备至少一个备置了具有总线窥探机构的回写型的高速缓存的处理器、主存、以及连接所述至少一个处理器和所述主存的系统总线的计算机中所使用的高速缓存清理装置包括:
更新地址存储装置,该装置具备多个用来存储脏数据块保持的数据的地址的区域,该脏数据块是在所述高速缓存内所确保的高速缓存块中保持了应回写到所述主存的数据的某个高速缓存块;
更新地址登录装置,该装置通过监视所述系统总线检测出所述高速缓存中的数据更新,根据已有更新数据的更新地址和进行了数据更新的处理器的识别符选择所述更新地址存储装置具备的多个区域中某一个区域,并将所述更新地址存储在那个选择了的区域;
更新地址删除装置,该装置通过监视所述系统总线检测到将所述脏数据块保持的数据向所述主存回写,根据已有数据回写的回写地址和进行了回写的处理器的识别符选择所述更新地址存储装置具备了的多个区域中某一个区域,并删除与存储在那个选择了的区域的所述回写地址相一致的更新地址;
更新地址读出装置,该装置准备用于逐次读出存储在所述更新地址存储装置中的所有的更新地址,使所述处理器顺序地读出那个读出了的更新地址。
6.权利要求5所述的计算机中所适用的高速缓存清理装置,其特征在于:上述高速缓存是直接映像方式的高速缓存,上述更新地址存储装置所具备的多个区域各自具有一个入口。
7.权利要求6所述的计算机中所适用的高速缓存清理装置,其特征在于:上述更新地址存储装置还具备对应于所述区域设置的计数器,上述更新地址登录装置具备将对应于选择的区域的所述计数器进行增量的装置,所述更新地址删除装置具备将对应于选择了的区域的所述计数器进行减量的装置。
8.在由具备至少一个备置了具有总线窥探机构的回写型的高速缓存的处理器、主存、以及连接所述至少一个处理器和所述主存的系统总线所构成的计算机中所适用的高速缓存清理装置包括:
更新地址存储装置,该装置在所述高速缓存中所确保的高速缓存块内,具备多个用于存储脏数据块保持的数据的地址的区域,该脏数据块是在保持了应回写所述主存的数据的状态中某个高速缓存块;
更新地址登录装置,该装置通过监视所述系统总线检测到所述高速缓存中的数据更新,根据已有数据更新的更新地址和进行了数据更新的处理器的识别符选择所述更新地址存储装置所具备的多个区域中某一个区域,并将所述更新地址存储在那个选择了的区域中;
入口释放装置,所述更新地址登录装置将选择了的区域的空闲入口数与指定值比较,在空闲入口数低于所述指定值时,选择已存储在那个区域的更新地址中某一个地址,在向所述系统总线发布请求将这个选择了的更新地址所示的所述脏数据块保持的数据向所述主存回写的命令的同时,将那个更新地址所存储的入口置为空闲入口;
清理执行装置,该装置响应来自所述处理器的指示,逐次读出存储在所述更新地址存储装置中所有更新地址,并向所述系统总线发布请求将那个已读出的更新地址所表示的所述脏数据块保持的数据向所述主存回写的命令。
9.根据权利要求8的高速缓存清理装置,其中,所述更新地址存储装置具备的多个区域分别具有的入口数比对应的高速缓存块的个数少。
10.根据权利要求8的高速缓存清理装置,其中,所述更新地址存储装置具备的多个区域,可以只用所述更新地址选择。
11.根据权利要求8的高速缓存清理装置,其中,所述更新地址存储装置用于保持对应于各个区域的所述脏数据块的数据的脏数据块计数器,这些区域用于存储所述脏数据块保持的数据的地址,
所述更新地址登录装置具备将对应于所述已选择的区域的所述脏数据块计数器进行增量的装置,并进一步包括:
减量装置,该装置通过监视所述系统总线检测到将所述脏数据块保持的数据向所述主存回写,根据那个回写地址和进行了回写的处理器的识别符选择所述更新地址存储装置具备的多个区域中某一个区域,并将对应于那个已选择的区域的所述脏数据块计数器进行减量;以及
入口成批释放装置,该装置通过所述减量装置的减量,当所述脏数据块计数器已成为初始值时,将被存储的对应于那个脏数据块计数器区域中的更新地址的入口全部设置为空闲入口。
12.根据权利要求11的高速缓存清理装置,其中,所述入口释放装置是这样的装置,当存储在所述更新地址存储装置具备的多个区域中某一个区域的更新地址的个数超过对应于那个区域所述脏数据块计数器值所预定的值而变多时,就选择已存储在那个区域的更新地址中某一个地址,在向所述系统总线发布请求将这个已选择的更新地址所表示的所述脏数据块保持的数据向所述主存回写的命令的同时,将那个存储更新地址的入口置为空闲入口。
13.根据权利要求8的高速缓存清理装置,其中所述高速缓存是n路组相联型,所述更新地址存储装置备置的多个区域是分别与由n个高速缓存块形成的组一一对应而设置的。
14.在由具备至少一个备置了包含总线窥探机构的回写型的高速缓存的处理器、主存,以及连接所述至少一个处理器和所述主存的系统总线而构成的计算机中所适用的高速缓存清理装置包括:
更新地址存储装置,该装置具备多个用于存储脏数据块保持的数据的地址的区域,该脏数据块是在所述高速缓存内所确保的高速缓存块中,保持了应回写所述主存的数据的某个高速缓存块;
更新地址登录装置,该装置通过监视所述系统总线检测出所述高速缓存中的数据更新,根据已有数据更新的更新地址和进行了数据更新的处理器的识别符选择所述更新地址存储装置具备的多个区域中某一个区域,并将所述更新地址存储在那个已选区域;
更新地址删除装置,该装置通过监视所述系统总线检测将所述脏数据块保持的数据向主存回写,根据已有回写的回写地址和进行了回写的处理器的识别符选择所述更新地址存储装置具备的多个区域中某一个区域,只在一定时间检索在那个已选区域内是否有与所述回写地址一致的更新地址,在检测出与所述回写地址一致的更新地址时,将删除那个更新地址;
入口释放装置,该装置将所述更新地址登录装置已选区域的空闲入口数与指定值比较,在空闲入口数低于所述指定值时,选择已存储在那个区域的更新地址中某一个地址,并向所述系统总线发布请求将这个已选的更新地址所表示的所述脏数据块保持的数据向所述主存回写的命令,同时,将那个更新地址所存储的空闲入口置为空闲入口;
清理执行装置,该装置响应来自所述处理器的指示,逐次读出在所述更新地址存储装置所存储的更新地址,并向系统总线发布请求将那个已读出的更新地址所表示的所述脏数据块保持的数据向所述主存回写的命令。
15.根据权利要求14的高速缓存清理装置,其中,所述更新地址存储装置具备的多个区域分别具有的入口数比对应的高速缓存块的个数少。
16.根据权利要求14的高速缓存清理装置,其中,所述更新地址存储装置具备的多个区域可以只用所述更新地址选择。
17.根据权利要求14的高速缓存清理装置,其中,所述更新地址存储装置具备用于保持对应于各个区域的所述脏数据块数的脏数据块计数器,这些区域用于存储所述脏数据块保持的数据的地址,所述更新地址登录装置具备将对应于所述已选择的区域的所述脏数据块计数器进行增量的装置,所述更新地址删除装置具备将对应于所述已选择的区域的所述脏数据块计数器进行减量的装置,并且进一步包括:
成批删除装置,该装置通过所述减量装置的减量,当所述脏数据块计数器已变成初始值时,将全部删除存储在对应于那个脏数据块计数器的区域的更新地址。
18.根据权利要求14的高速缓存清理装置,其中所述更新地址删除装置是这样的装置,该装置当检测出表示保持某个地址所表示的数据的所有高速缓存块不是脏数据块的命令时,根据那个地址选择所述更新地址存储装置所具备的多个区域中某一个区域,在那个已选区域内进行检索,当与所述回写地址一致的更新地址被检测时,就删除那个更新地址。
19.在具备至少一个备置了包含总线窥探机构的回写型的高速缓存的处理器、主存、以及连接所述至少一个处理器和所述主存的系统总线所构成的计算机中所适用的高速缓存清理装置包括:
更新地址存储装置,该装置具备多个用于存储脏数据块保持的数据的地址的区域,该脏数据块是在所述高速缓存内所确保的高速缓存块中,在保持了应向所述主存回写的数据的状态中的某个高速缓存块;
更新地址登录装置,该装置通过监视所述系统总线检测到所述高速缓存中的数据更新,根据已有数据更新的更新地址和进行了数据更新的处理器的识别符选择所述更新地址存储装置具备的多个区域中某一个区域,并将所述更新地址存储在那个已选的区域;
更新地址删除装置,该装置通过监视所述系统总线检测出将所述脏数据块保持的数据向主存回写,根据已有的回写的回写地址和进行了回写的处理器的识别符选择所述更新地址存储装置具备的多个区域中某一个区域,在那个已选的区域内检索是否有与所述回写地址一致的更新地址直到该高速缓存清理装置检测到接着应处理的命令,在检测出了与所述回写地址一致的更新地址时,将删除那个更新地址;
入口释放装置,该装置将所述更新地址登录装置已选区域的空闲入口数与指定值比较,当空闲入口数低于所述指定值时,就选择已存储在那个区域的更新地址中某一个地址,在向系统总线发布请求将这个已选的更新地址所表示的所述脏数据块保持的数据向所述主存回写的命令的同时,将那个更新地址所存储的入口置为空闲入口;
清理执行装置,该装置响应来自所述处理器的指示,逐次读出存储在所述更新地址存储装置中所有更新地址,并向所述系统总线发布请求将那个已读出的更新地址所表示的所述脏数据块保持的数据向主存回写的命令。
20.根据权利要求19的高速缓存清理装置,其中,所述更新地址存储装置具备的多个区域分别具有的入口数比对应的高速缓存块的个数少。
21.根据权利要求19的高速缓存清理装置,其中,所述更新地址存储装置具备的多个区域,可以只用所述更新地址选择。
22.根据权利要求19的高速缓存清理装置,其中,所述更新地址存储装置,具备用于保持对应于各区域的所述脏数据块数的脏数据块计数器,这些区域用于存储所述脏数据块保持的数据的地址,所述更新地址登录装置具备将对应于所述已选择的区域的所述脏数据块计数器进行增量的装置,所述更新地址删除装置具备将对应于所述已选择的区域的所述脏数据块计数器进行减量的装置,并且它进一步包括:
成批删除装置,该装置通过所述减量装置的减量,当所述脏数据块计数器已变成初始值时,将全部删除存储在对应于那个脏数据块计数器区域的更新地址。
23.根据权利要求19的高速缓存清理装置,其中,所述更新地址删除装置是这样的装置,该装置在检测到存储与由某个地址所存储的数据相对应的高速缓存块不是脏数据块的命令时,由那个地址选择所述更新地址存储装置具备的多个区域中某一个区域,并在那个已选的区域内检索,当检测出与所述回写地址一致的更新地址时,就删除那个更新地址。
24.具备至少一个备置包含总线窥探机构的回写型的高速缓存的处理器、主存、以及连接所述至少一个处理器和所述主存的系统总线、并定期地采集用于重新开始中断的处理的检查点的计算机系统的高速缓存清理装置包括:
更新地址存储装置,该装置具备多个用于存储脏数据块保持的数据的地址的区域,该脏数据块是在所述高速缓存内的高速缓存块中,在保持应向主存回写的数据的状态中的某个高速缓存块;
更新地址登录装置,该装置通过监视所述系统总线检测到所述高速缓存中的数据更新,根据已有数据更新的更新地址和进行了数据更新的处理器的识别符选择所述更新地址存储装置所具备的多个区域中某一个区域,并将所述更新地址存储在那个已选择的区域;
更新地址删除装置,该装置通过监视所述系统总线检测到将所述脏数据块保持的数据向所述主存回写,根据已有数据回写的回写地址和进行了回写的处理器的识别符选择所述更新地址存储装置所具备的多个区域中某一个区域,然后删除与存储在那个已选择的区域的所述回写地址一致的更新地址;
清理执行装置,这个装置响应来自所述处理器的指示,逐次读出存储在所述更新地址存储装置中所有更新地址,并向所述系统总线发布请求将那个已读出的更新地址所表示的所述脏数据块保持的数据向所述主存回写的命令;
数据处理装置,该装置在所述高速缓存清理装置中一边捕捉更新地址,一边执行通常的数据处理;
检查点生成装置,该装置包含将所述所有处理器同步执行的数据处理中的上下文向主存存储、以及将所述高速缓存清理装置的清理执行装置所执行的所有脏数据块保持的数据向所述主存回写;
回滚恢复装置,当发生了故障时,该装置恢复在此之前采集的检查点时刻的所述主存信息,并使用保持在这个被恢复的所述主存中的信息,重新开始数据处理。
25.权利要求24所述的计算机系统中的高速缓存清理装置,其特征在于:所述更新地址存储装置所具备的多个区域各自具有一个入口。
26.权利要求24所述的计算机系统中的高速缓存清理装置,其特征在于:上述更新地址存储装置还具备对应于所述区域设置的计数器,上述更新地址登录装置具备将对应于选择的区域的所述计数器进行增量的装置,所述更新地址删除装置具备将对应于选择了的区域的所述计数器进行减量的装置。
27.根据权利要求24的计算机系统,其中,所述更新地址存储装置具备的区域,可以只用所述更新地址选择。
28.权利要求24所述的计算机系统中的高速缓存清理装置,其特征在于:所述更新地址删除装置只在一定时间内检索在所述已选择的区域内是否有与所述回写地址一致的更新地址,并在已检测出与所述回写地址一致的更新地址时,删除那个更新地址。
29.根据权利要求28的计算机系统,其中所述更新地址删除装置是这样的装置,该装置在检测到存储与某个地址所存储的数据相对应的、高速缓存块不是脏数据块的命令时,根据那个地址选择所述更新地址存储装置具备的多个区域中某一个区域,并且在那个区域内检索,当检测出与所述回写地址一致的更新地址时,删除那个更新地址。
30.根据权利要求28的计算机系统,其中所述更新地址存储装置具备的多个区域分别具有的入口数小于对应的高速缓存块的个数。
31.根据权利要求28的计算机系统,其中,所述更新地址存储装置具备的多个区域,可以只用所述更新地址选择。
32.根据权利要求28的计算机系统,其中,所用更新地址存储装置具备用于保持对应于各个区域的所述脏数据块数的脏数据块计数器,这些区域用于存储所述脏数据块保持的数据的地址,所述更新地址登录装置具备将对应于所述已选区域的所述脏数据块计数器进行增量的装置,所述更新地址删除装置具备将对应于所述已选区域的所述脏数据块计数器进行减量的装置,并且还包括:
根据所述减量装置的减量,当所述脏数据块计数器已变为初始值时,将全部删除存储在对应于那个脏数据块计数器区域的更新地址的成批删除装置。
33.具备至少一个备置了具有总线窥探机构的回写型的高速缓存的处理器、主存、以及连接所述至少一个处理器和所述主存的系统总线、并定期地采集用于重新开始中断了的处理的检查点的计算机系统中的高速缓存清理装置包括:
更新地址存储装置,该装置具备多个用于存储脏数据块保持的数据的地址的区域,该脏数据块是在所述高速缓存内所确保的高速缓存块中,在保持了应回写到所述主存的数据的状态中的高速缓存块;
更新地址登录装置,该装置通过监视所述系统总线检测所述高速缓存中的数据更新,根据已有数据更新的更新地址和进行了数据更新的处理器的识别符选择所述更新地址存储装置具备的多个区域中某一个区域,并将所述更新地址存储在那个已选择的区域;
入口释放装置,该装置将所述更新地址登录装置所选择的区域的空闲入口数与指定值比较,当空闲入口数低于指定值时,选择已存储在那个区域的更新地址中某一个地址,在向系统总线发布请求将这个选择了的更新地址所表示的所述脏数据块保持的数据向所述主存回写的命令同时,将那个更新地址所存储的入口设置为空闲入口;
清理执行装置,该装置响应来自所述处理器的指示,逐次读出存储在所述更新地址存储装置中的所有更新地址,并向所述系统总线发布请求将那个已读出的更新地址所表示的所述脏数据块保持的数据向所述主存回写的命令;
数据处理装置,该装置在所述高速缓存清理装置中一边捕捉更新地址,一边执行通常的数据处理;
检查点生成装置,该装置包含将所述所有处理器同步执行的数据处理中的上下文向主存的存储,以及将所述高速缓存清理装置的清理执行装置执行的所有脏数据块保持的数据向所述主存的回写;
回滚恢复装置,在发生了故障时,该装置将恢复在此之前采集的检查点时刻的所述主存,并使用保持在这个被恢复的所述主存中的信息,重新开始数据处理。
34.根据权利要求33的计算机系统,其中所述高速缓存是n路组相联型,所述更新地址存储装置具备的多个区域分别与由n个高速缓存块形成的组一一对应而设置。
35.根据权利要求33的计算机系统,其中所述更新地址存储装置具备的多个区域分别具有的入口数小于对应的高速缓存块的个数。
36.根据权利要求33的计算机系统,其中,所述更新地址存储装置具备的多个区域可以只用所述更新地址选择。
37.根据权利要求33的计算机系统,其中,所述更新地址存储装置具备用于保持对应于各个区域的所述脏数据块数的脏数据块计数器,这些区域用于存储所述脏数据块保持的数据的地址,所述更新地址登录装置具备将对应于所述已选区域的所述脏数据块计数器进行增量的装置,并且,进一步包括:
减量装置,该装置通过监视所述系统总线检测将所述脏数据块保持的数据向所述主存回写,根据那个回写地址和进行了回写的处理器的识别符选择所述更新地址存储装置具备了的多个区域中某一个区域,并将对应于那个已选区域的所述脏数据块计数器进行减量;以及
入口成批释放装置,该装置通过所述减量装置的减量,当所述脏数据块计数器已变成初始值时,将对应于那个脏数据块计数器的区域中的更新地址所存储的入口全部置为空闲入口。
38.根据权利要求37的计算机系统,其中,所述入口释放装置是这样的装置,即当存储在所述更新地址存储装置备置的多个区域中某一个区域中的更新地址的个数超过对应于那个区域的所述脏数据块计数器值所预定的值而变多时,就选择已存储在那个区域的更新地址中某一个地址,在向所述系统总线发布请求将这个已选的更新地址所表示的所述脏数据块保持的数据向所述主存回写的命令同时,将那个更新地址所存储的入口设置为空闲入口。
39.具备至少一个备置了具有总线窥探机构的回写型的高速缓存的处理器、主存、以及连接所述至少一个处理器和所述主存的系统总线,并定期地采集用于重新开始中断了的处理的检查点的计算机系统的高速缓存清理装置包括:
更新地址存储装置,该装置具备多个用于存储脏数据块保持的数据的地址的区域,该脏数据块是在所述高速缓存内所确保的高速缓存块中处于保持了应向所述主存回写的数据的状态的高速缓存块;
更新地址登录装置,该装置通过监视所述系统总线检测所述高速缓存中的数据更新,根据已有数据更新的更新地址和进行了数据更新的处理器的识别符选择所述更新地址存储装置具备的多个区域中某一个区域,并将所述更新地址存储在那个已选择的区域;
更新地址删除装置,该装置通过监视所述系统总线检测将所述脏数据块保持的数据向所述主存回写,根据已有回写的回写地址和进行了回写的处理器的识别符选择所述更新地址存储装置具备的多个区域中某一个区域,在那个已选的区域内检查是否有与所述回写地址一致的更新地址直到检测到该高速缓存清理装置接着应处理的命令,在检测出与所述回写地址一致的更新地址时,就删除那个更新地址;
入口释放装置,该装置将所述更新地址登录装置已选的区域的空闲入口数与指定值比较,当空闲入口数低于所述指定值时,就选择已存储在那个区域的更新地址中某一个地址,并在向所述系统总线发布请求将这个已选的更新地址所表示的所述脏数据块保持的数据向所述主存回写的命令同时,将那个更新地址所存储的入口设置为空闲入口;
清理执行装置,该装置响应来自所述处理器的指示,逐次读出在所述更新地址存储装置中所存储的所有更新地址,并向系统总线发布请求将那个已读出的更新地址所表示的所述脏数据块保持的数据向所述主存回写的命令;
数据处理装置,该装置在所述高速缓存清理装置中一边捕捉更新地址,一边执行通常的数据处理;
检查点生成装置,该装置包括将所述所有处理器同步执行的数据处理中的上下文向主存的存储,以及将所述高速缓存清理装置的清理执行装置执行的所有脏数据块保持的数据向所述主存的回写;
回滚恢复装置,当发生了故障时,该装置将恢复在此之前采集的检查点时刻的所述主存,并使用保持在这个被恢复的所述主存中的信息,重新开始数据处理。
40.根据权利要求39的计算机系统,其中所述更新地址删除装置是,当检测到存储与由某个地址所存储的数据相对应的高速缓存块不是脏数据块的命令时,根据那个地址选择所述更新地址存储装置具备的多个区域中某一个区域,并在那个已选择的区域内检索,当检测出与所述回写地址一致的更新地址时,就删除那个更新地址的装置。
41.根据权利要求39的计算机系统,其中,所述更新地址存储装置具备的多个区域分别具有的入口数,小于对应的高速缓存块的个数。
42.根据权利要求39的计算机系统,其中,所述更新地址存储装置具备的多个区域可以只用所述更新地址选择。
43.根据权利要求39的计算机系统,其中,所述更新地址存储装置具备用于保持对应于各个区域的所述脏数据块数的脏数据块计数器,这些区域用于存储所述脏数据块保持的数据的地址,所述更新地址登录装置具备将对应于所述已选区域的所述脏数据块计数器进行增量的装置,所述更新地址删除装置具备将对应于所述已选区域的所述脏数据块计数器进行减量的装置,并且进一步包括:根据所述减量装置的减量,当所述脏数据块计数器已变为初始值时,将全部删除存储在对应于那个脏数据块计数器区域的更新地址的成批删除装置。
44.具备至少一个备置了具有总线窥控机构的回写型的高速缓存的处理器、主存、以及连接所述至少一个处理器和所述主存的系统总线、并定期地采集用于重新开始中断了处理的检查点的计算机系统中的高速缓存清理装置包括:
更新地址存储装置,该装置具备多个用于存储脏数据块保持的数据的地址的区域,该脏数据块是在所述高速缓存内确保的高速缓存块中,处于保持了应向所述主存回写的数据的状态中的高速缓存;
更新地址登录装置,该装置通过监视所述系统总线检测所述高速缓存中的数据更新,根据已有数据更新的更新地址和进行了数据更新的处理器的识别符选择所述更新地址存储装置具备的多个区域中的某一个区域,并将所述更新地址存储在那个已选区域;
更新地址删除装置,该装置通过监视所述系统总线检测将所述脏数据块保持的数据向所述主存的回写,根据已有数据的回写的回写地址和进行了回写的处理器的识别符选择所述更新地址存储装置具备的多个区域中某一个区域,并删除存储在那个已选区域的与所述回写地址一致的更新地址;
更新地址读出装置,该装置用来逐次读出存储在所述更新地址存储装置中所有的更新地址,使所述处理器顺序读出那个已读出的更新地址;
数据处理装置,该装置在所述高速缓存清理装置中一边捕捉更新地址,一边执行通常的数据处理;
检查点生成装置,该装置包括将所述所有处理器同步执行的数据处理中的上下文向所述主存的存储,以及通过所述高速缓存清理装置的更新地址读出装置取得所述更新地址、通过执行用于从所述高速缓存将那个已取得的更新地址所存储的数据回写到所述主存的命令序列,将所有脏数据块保持的数据向所述主存的回写;
回滚恢复装置,当发生了故障时,该装置将恢复在此之前已采集的检查点时刻所述主存状态,并使用已保持在这个被恢复的所述主存中的信息,重新开始数据处理。
45.权利要求44所述的高速缓存清理装置,其特征在于:所述更新地址存储装置所具备的多个区域各自具有一个入口。
46.具备至少一个配置了具有总线窥控机构的回写型的高速缓存的处理器、主存、以及连接所述至少一个处理器和所述主存的系统总线、并定期地采集用于重新开始中断了的处理的计算机系统中的高速缓存清理装置包括:
更新地址存储装置,该装置具备各区域有一个入口以及对应该区域而设置的计数器,这些区域是这样的区域,即对应于在所述高速缓存内的各个高速缓存块而被设置,并用于存储脏数据块保持的数据的地址,该脏数据块是处于保持了应回写到所述主存的数据的状态的高速缓存块;
更新地址登录装置,该装置通过监视所述系统总线检测所述高速缓存中的数据更新,根据已有数据更新的更新地址和进行了数据更新的处理器的识别符选择所述更新地址存储装置具备的多个区域中某一个区域,在将那个更新地址存储在那个已选区域的同时,将对应于那个区域的所述计数器进行增量;
更新地址删除装置,该装置通过监视所述系统总线检测将所述脏数据块保持的数据向所述主存的回写,根据已有那个回写的回写地址和进行了回写的处理器的识别符选择所述更新地址存储装置具备的多个区域中某一个区域,并将对应于那个已选区域的所述计数器进行减量;以及,
更新地址读出装置,该装置用于在所述更新地址存储装置具备的区域中,逐次读出存储在对应于那个区域的计数器值不是初始值的区域的更新地址,使所述处理器顺序读出那个已读出的更新地址;
数据处理装置,该装置在所述高速缓存清理装置中一边捕捉更新地址,一边执行通常的数据处理;
检查点生成装置,该装置包含将所述所有处理器同步执行的数据处理中的上下文向所述主存的存储,以及通过所述高速缓存清理装置的更新地址读出装置取得所述更新地址,并通过执行用于将那个取得的更新地址所存储的数据从所述高速缓存向所述主存回写的命令序列将所有脏数据块保持的数据向所述主存的回写;
回滚恢复装置,当发生了故障时,在眼前采集的检查点时刻该装置将恢复所述主存,并使用保持在这个被恢复的所述主存中的信息,重新开始数据处理。
47.一种计算机系统,其特征在于,它是由具备以下装置构成的,即:具备至少第1和第2计算机、并定期地采集用于重新开始中断了的处理的检查点的计算机系统包括:
存储器更新观察装置,该装置捕捉并存储在所述第1计算机中产生的向主存回写的命令,当由所述第1计算机发出指示时,将所述已存储的命令发送到所述第2计算机;
存储器更新装置,该装置接收所述存储器更新观察装置发送的命令,并将与所述第1计算机相同的回写命令发送给所述第2计算机的主存;其中,所述第1计算机的高速缓存清理装置包括:
更新地址存储装置,该装置具备多个用于存储脏数据块保持的数据的地址的区域,该脏数据块是在所述高速缓存内确保的高速缓存块中,处于保持了应向所述主存回写的数据的状态中的高速缓存块;
更新地址登录装置,该装置通过监视所述系统总线检测所述高速缓存中的数据更新,根据已有数据更新的更新地址和进行了数据更新的处理器的识别符选择所述更新地址存储装置具备的多个区域中某一个区域,并将所述更新地址存储在那个已选区域中;
更新地址删除装置,该装置通过监视所述系统总线检测将所述脏数据块保持的数据向所述主存的回写,根据已有数据回写的回写地址和进行了回写的处理器的识别符选择所述更新地址存储装置具备的多个区域中某一个区域,并删除与存储在那个已选区域的所述回写地址一致的更新地址;以及
清理执行装置,该装置响应来自所述处理器的指示,逐次读出存储在所述更新地址存储装置中所有更新地址,并向所述系统总线发布请求将那个已读出的更新地址所表示的所述脏数据块保持的数据向所述主存回写的命令;
数据处理装置,该装置在所述高速缓存清理装置中一边捕捉更新地址,一边执行通常的数据处理;
检查点采集装置,该装置包含将所述所有处理器同步执行的数据处理中的上下文向主存的存储,将所述高速缓存清理装置的清理执行装置执行的所有脏数据块保持的数据向所述主存的回写,以及对于所述存储器更新观察装置的所述存储了的命令向所述第2计算机的发送指示;以及
第2计算机包括:
等待装置,当所述存储器更新装置超过指定的时间并且没有接收到来自所述存储器更新观察装置的命令时,开始数据处理。
48.权利要求47所述的计算机系统,其特征在于:所述第1计算机所包含的所述更新地址存储装置所具备的多个区域各自具有一个入口。
49.权利要求48所述的计算机系统,其特征在于:所述第1计算机所包含的所述更新地址存储装置还具备对应于所述区域设置的计数器,所述第1计算机所包含的所述更新地址登录装置具备将对应于所述选择了的区域的所述计数器进行增量的装置,所述第1计算机所包含的所述更新地址删除装置具备将对应于所述选择了的区域的所述计数器进行减量的装置。
50.权利要求47所述的计算机系统,其特征在于:所述第1计算机所包含的更新地址删除装置只在一定时间在所述选择了的区域内检索是否有与所述回写地址一致的更新地址,当检测出与所述回写地址一致的更新地址时,就删除那个更新地址。
51.根据权利要求50的计算机系统,其中,所述更新地址删除装置是这样的装置,该装置当检测出存储与由某个地址所存储的数据相对应的高速缓存块不是脏数据块时,根据那个地址选择所述更新地址存储装置具备的多个区域中某一个区域,并在那个已选择的区域内检索后检测出与所述回写地址一致的更新地址时,就将那个更新地址删除。
52.根据权利要求50的计算机系统,其中,所述更新地址存储装置具备的多个区域分别具有的入口数小于对应的高速缓存的个数。
53.根据权利要求50的计算机系统,其中,所述更新地址存储装置具备的多个区域可以只由所述更新地址选择。
54.根据权利要求50的计算机系统,所述更新地址存储装置具备用于保持对应于各区域的所述脏数据块数的脏数据块计数器,这些区域用于存储所述脏数据块保持的数据的地址,所述更新地址登录装置具备将对应于所述选择了的区域的所述脏数据块计数器进行增量的装置,所述更新地址删除装置具备将对应于所述选择了的区域的所述脏数据块计数器进行减量的装置,并且进一步包括:
成批释放装置,该装置通过所述减量装置的增量,当所述脏数据块计数器已变为初始值时,将全部删除存储在对应于那个脏数据块计数器的区域的更新地址。
55.权利要求47所述的计算机系统,其特征在于,所述第1计算机所包含的高速缓存清理装置还包括:
入口释放装置,该装置将所述更新地址登录装置选择的区域的空闲入口数与指定值比较,当空闲入口数低于所述指定值时,选择已存储在那个区域中的更新地址中的任意一个地址,并在向所述系统总线发布请求将这个已选的更新地址所表示的所述脏数据块保持的数据向所述主存回写的命令同时,将那个更新地址所存储的入口设置为空闲入口。
56.根据权利要求55的计算机系统,其中,所述更新地址删除装置是这样的装置,即,当检测到存储与由某地址所存储的数据相对应的高速缓存块不是脏数据块的命令时,根据那个地址选择所述更新地址存储装置具备的多个区域中某一个区域,并在那个已选区域内检索,当检测到与所述回写地址一致的更新地址时,删除那个更新地址。
57.根据权利要求55的计算机系统,其中所述更新地址存储装置具备的多个区域分别具有的入口数小于对应的高速缓存块的个数。
58.根据权利要求55的计算机系统,其中所述更新地址存储装置具备的多个区域可以只由所述更新地址选择。
59.根据权利要求55的计算机系统,其中,所述更新地址存储装置具备用于保持对应于各个区域的脏数据块数的脏数据块计数器,所述更新地址登录装置具备将对应于所述选择了的所述脏数据块计数器进行增量的装置,所述更新地址删除装置具备将对应于所述选择了的区域的所述脏数据块计数器进行减量的装置,并且进一步包括:
成批删除装置,该装置通过所述减量装置的减量,当所述脏数据块已变为初始值时,将全部删除存储在对应于那个脏数据块计数器的区域的更新地址。
60.根据权利要求47的计算机系统,其中所述更新地址存储装置具备的多个区域可以只由所述更新地址选择。
61.一种计算机系统,其特征在于,它由具备以下的装置所构成:具备至少第1和第2计算机、并定时地采集用于重新开始中断了的处理的检查点的计算机系统包括:
存储器更新观察装置,该装置捕获并存储在所述第1计算机中产生的、向主存回写的命令,当从所述第1计算机发出指示时,将所述存储了的命令发送到所述第2计算机;
存储器更新装置,该装置接收所述存储器更新观察装置发送的命令,并将与所述第1计算机相同的回写命令发布到所述第2计算机的主存;其中,
所述第1计算机包括:
高速缓存清理装置,包括:
更新地址存储装置,该装置具备多个用于存储脏数据块保持的数据的地址的区域,该脏数据块是在所述高速缓存内确保的高速缓存块中,处于保持了应回写到所述主存的数据的状态的高速缓存块;
更新地址登录装置,该装置通过监视所述系统总线检测所述高速缓存中的数据更新,根据已有数据更新的更新地址和进行了数据更新的处理器的识别符选择所述更新地址存储装置具备的多个区域中某一个区域,并将所述更新地址存储在那个已选区域中;
入口释放装置,该装置将所述更新地址登录装置选择的区域的空闲入口数与指定值比值,当空闲入口数低于所述指定值时,选择已存储在那个区域的更新地址中某一个地址,在向所述系统总线发布请求将这个已选的更新地址所表示的所述脏数据块保持的数据向所述主存回写的命令同时,将那个更新地址所存储的入口设置为空闲入口;
清理执行装置,该装置响应来自所述处理器的指示,逐次读出存储在所述更新地址存储装置中所有的更新地址,并向所述系统总线发布请求将那个已读出的更新地址所表示的所述脏数据块保持的数据向所述主存回写的命令;
数据处理装置,该装置在所述高速缓存清理装置中一边捕捉更新地址,一边执行通常的数据处理;
检查点采集装置,该装置包含将所述所有处理器同步执行的数据处理中的上下文向主存的存储,将所述高速缓存清理装置的清理执行装置执行的所有脏数据块保持的数据向所述主存的回写,以及将对于所述存储器更新观察装置的所述存储的命令向所述第2计算机的发送指示;以及
第2计算机包括:
等待装置,当所述存储器更新装置超过指定的时间并从所述存储器更新观察装置没有接收到命令时,开始数据处理。
62.根据权利要求61的计算机系统,其中所述高速缓存是几路组相联型,所述更新地址存储装置具备的各个区域与由n个高速缓存块形成的组一一对应被设置。
63.根据权利要求61的计算机系统,其中,所述更新地址存储装置具备的多个区域分别具有的入口数小于对应的高速缓存块的个数。
64.根据权利要求61的计算机系统,其中,所述更新地址存储装置具备的区域,可以只由所述更新地址选择。
65.根据权利要求61的计算机系统,其中,所述更新地址存储装置具备用于保持对应于各个区域的所述脏数据块数的脏数据块计数器,这些区域用于存储所述脏数据块保持的数据的地址,所述更新登录装置具备将对应于所述已选区域的所述脏数据块计数器进行增量的装置,并且进一步包括:
减量装置,该装置通过所述系统总线的监视,检测将所述脏数据块保持的数据向所述主存的回写,根据那个回写地址和进行了回写的处理器的识别符选择所述更新地址存储装置具备的多个区域中某一个区域,并将对应于那个已选区域的所述脏数据块计数器进行减量;以及
入口成批释放装置,该装置通过所述减量装置的减量,当所述脏数据块计数器已变为初始值时,将对应于那个脏数据块计数器的区域中的更新地址所存储的入口设置为空闲入口。
66.根据权利要求63的计算机系统,其中,所述入口释放装置,是这样的装置,当存储在所述更新地址存储装置具备的多个区域中某一个区域的更新地址的个数超过对应于那个区域的所述脏数据块计数器值的预定值而变多时,就选择已存储在那个区域的更新地址中某一个地址,并在向所述系统总线发布请求将这个已选的更新地址所表示的所述脏数据块保持的数据向所述主存回写的命令的同时,将那个更新地址所存储的入口设置为空闲地址。
67.根据权利要求24到45以及47到66任何之一的计算机系统,其特征在于,其中所述数据处理装置包含起动所述高速缓存清理装置的清理执行装置的处理。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP238157/96 | 1996-09-09 | ||
JP8238157A JP2916421B2 (ja) | 1996-09-09 | 1996-09-09 | キャッシュフラッシュ装置およびデータ処理方法 |
JP238157/1996 | 1996-09-09 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN1176433A CN1176433A (zh) | 1998-03-18 |
CN1192315C true CN1192315C (zh) | 2005-03-09 |
Family
ID=17026043
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CNB971131686A Expired - Fee Related CN1192315C (zh) | 1996-09-09 | 1997-05-30 | 高速缓存清理装置以及具备该装置的计算机系统 |
Country Status (7)
Country | Link |
---|---|
US (1) | US6490657B1 (zh) |
EP (1) | EP0828217B1 (zh) |
JP (1) | JP2916421B2 (zh) |
KR (1) | KR100233207B1 (zh) |
CN (1) | CN1192315C (zh) |
DE (1) | DE69729917T2 (zh) |
TW (1) | TW343303B (zh) |
Families Citing this family (56)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH10320274A (ja) * | 1997-03-19 | 1998-12-04 | Toshiba Corp | キャッシュフラッシュ装置及び同装置を備えた計算機システム、記録媒体 |
JP3935276B2 (ja) * | 1998-10-21 | 2007-06-20 | キヤノン株式会社 | ネットワークデバイス管理方法、装置、記憶媒体、及び送出装置 |
JP3718599B2 (ja) * | 1998-12-28 | 2005-11-24 | 富士通株式会社 | キャッシュ装置、メモリ制御システムおよび方法、記録媒体 |
US6868481B1 (en) * | 2000-10-31 | 2005-03-15 | Hewlett-Packard Development Company, L.P. | Cache coherence protocol for a multiple bus multiprocessor system |
US6622208B2 (en) * | 2001-03-30 | 2003-09-16 | Cirrus Logic, Inc. | System and methods using a system-on-a-chip with soft cache |
US6779087B2 (en) * | 2001-04-06 | 2004-08-17 | Sun Microsystems, Inc. | Method and apparatus for checkpointing to facilitate reliable execution |
US6675262B1 (en) * | 2001-06-08 | 2004-01-06 | Hewlett-Packard Company, L.P. | Multi-processor computer system with cache-flushing system using memory recall |
JP3804823B2 (ja) * | 2001-07-03 | 2006-08-02 | 日本電気株式会社 | 障害回復機能を備えたキャッシュシステムとそのキャッシュ制御方法 |
US7472230B2 (en) * | 2001-09-14 | 2008-12-30 | Hewlett-Packard Development Company, L.P. | Preemptive write back controller |
US6965970B2 (en) * | 2001-09-27 | 2005-11-15 | Intel Corporation | List based method and apparatus for selective and rapid cache flushes |
US20030120869A1 (en) * | 2001-12-26 | 2003-06-26 | Lee Edward K. | Write-back disk cache management |
US7080211B2 (en) | 2002-02-12 | 2006-07-18 | Ip-First, Llc | Microprocessor apparatus and method for prefetch, allocation, and initialization of a cache line from memory |
US6981104B2 (en) * | 2002-07-12 | 2005-12-27 | Hewlett-Packard Development Company, L.P. | Method for conducting checkpointing within a writeback cache |
US6986002B2 (en) * | 2002-12-17 | 2006-01-10 | International Business Machines Corporation | Adaptive shared data interventions in coupled broadcast engines |
KR100856626B1 (ko) * | 2002-12-24 | 2008-09-03 | 엘지노텔 주식회사 | 캐시 플러시 시스템 및 방법 |
US7296127B2 (en) | 2003-03-31 | 2007-11-13 | Intel Corporation | NoDMA cache |
US7069389B2 (en) * | 2003-11-26 | 2006-06-27 | Microsoft Corporation | Lazy flushing of translation lookaside buffers |
US7257679B2 (en) * | 2004-10-01 | 2007-08-14 | Advanced Micro Devices, Inc. | Sharing monitored cache lines across multiple cores |
US20060190678A1 (en) * | 2005-02-22 | 2006-08-24 | Butler Douglas B | Static random access memory (SRAM) compatible, high availability memory array and method employing synchronous dynamic random access memory (DRAM) in conjunction with a single DRAM cache and tag |
US7506100B2 (en) * | 2005-02-23 | 2009-03-17 | United Memories, Inc. | Static random access memory (SRAM) compatible, high availability memory array and method employing synchronous dynamic random access memory (DRAM) in conjunction with a data cache and separate read and write registers and tag blocks |
CN1328670C (zh) * | 2005-03-30 | 2007-07-25 | 中国人民解放军国防科学技术大学 | 目录协议对多处理器结点内脏数据共享的支持方法 |
US7475195B2 (en) * | 2005-05-24 | 2009-01-06 | International Business Machines Corporation | Data processing system, cache system and method for actively scrubbing a domain indication |
US7467262B2 (en) * | 2005-05-24 | 2008-12-16 | International Business Machines Corporation | Data processing system, cache system and method for scrubbing a domain indication in response to execution of program code |
US7478201B2 (en) * | 2005-05-24 | 2009-01-13 | International Business Machines Corporation | Data processing system, cache system and method for passively scrubbing a domain indication |
US7418544B2 (en) * | 2005-10-05 | 2008-08-26 | Oracle International Corporation | Method and system for log structured relational database objects |
JP4572169B2 (ja) * | 2006-01-26 | 2010-10-27 | エヌイーシーコンピュータテクノ株式会社 | マルチプロセッサシステム及びその動作方法 |
US8195890B1 (en) * | 2006-08-22 | 2012-06-05 | Sawyer Law Group, P.C. | Method for maintaining cache coherence using a distributed directory with event driven updates |
US20080148399A1 (en) * | 2006-10-18 | 2008-06-19 | Microsoft Corporation | Protection against stack buffer overrun exploitation |
US7739547B2 (en) * | 2007-06-07 | 2010-06-15 | International Business Machines Corporation | Failure recovery and error correction techniques for data loading in information warehouses |
CN101359326B (zh) * | 2007-07-31 | 2010-11-10 | 英业达股份有限公司 | 一种刷新指定裸设备脏数据的系统及方法 |
JP4474570B2 (ja) * | 2008-01-28 | 2010-06-09 | エヌイーシーコンピュータテクノ株式会社 | キャッシュコヒーレンシ制御方法 |
JP5224038B2 (ja) * | 2008-02-27 | 2013-07-03 | 日本電気株式会社 | コンピュータ装置、コンピュータ装置の運用継続方法及びプログラム |
JP5092897B2 (ja) * | 2008-05-26 | 2012-12-05 | 富士通株式会社 | データ移行処理プログラム、データ移行処理装置およびデータ移行処理方法 |
JP2010033480A (ja) * | 2008-07-31 | 2010-02-12 | Sony Corp | キャッシュメモリおよびキャッシュメモリ制御装置 |
US8135911B2 (en) * | 2008-10-21 | 2012-03-13 | International Business Machines Corporation | Managing a region cache |
CN101667158B (zh) * | 2009-09-15 | 2015-07-01 | 威盛电子股份有限公司 | 串流上下文的高速缓存系统 |
US20130091331A1 (en) * | 2011-10-11 | 2013-04-11 | Iulian Moraru | Methods, apparatus, and articles of manufacture to manage memory |
JP5565425B2 (ja) * | 2012-02-29 | 2014-08-06 | 富士通株式会社 | 演算装置、情報処理装置および演算方法 |
US9218289B2 (en) * | 2012-08-06 | 2015-12-22 | Qualcomm Incorporated | Multi-core compute cache coherency with a release consistency memory ordering model |
US20150019822A1 (en) * | 2013-07-11 | 2015-01-15 | Lsi Corporation | System for Maintaining Dirty Cache Coherency Across Reboot of a Node |
CN103577349B (zh) * | 2013-11-06 | 2016-11-23 | 华为技术有限公司 | 在高速缓存中选择数据进行刷盘的方法和装置 |
CN103714014B (zh) * | 2013-11-18 | 2016-12-07 | 华为技术有限公司 | 处理缓存数据的方法及装置 |
CN105138481B (zh) * | 2014-05-30 | 2018-03-27 | 华为技术有限公司 | 存储数据的处理方法、装置和系统 |
KR101996266B1 (ko) | 2014-09-18 | 2019-10-01 | 삼성전자주식회사 | 호스트 및 이를 포함하는 컴퓨터 시스템 |
US9971686B2 (en) | 2015-02-23 | 2018-05-15 | Intel Corporation | Vector cache line write back processors, methods, systems, and instructions |
US10209891B2 (en) * | 2015-08-24 | 2019-02-19 | Western Digital Technologies, Inc. | Methods and systems for improving flash memory flushing |
US10482033B2 (en) * | 2016-03-24 | 2019-11-19 | Samsung Electronics Co., Ltd | Method and device for controlling memory |
US10289479B2 (en) * | 2017-05-01 | 2019-05-14 | International Business Machines Corporation | Hardware accelerator address translation fault resolution |
US10545816B2 (en) * | 2017-05-01 | 2020-01-28 | International Business Machines Corporation | Managed hardware accelerator address translation fault resolution utilizing a credit |
US10572337B2 (en) * | 2017-05-01 | 2020-02-25 | International Business Machines Corporation | Live partition mobility enabled hardware accelerator address translation fault resolution |
CN108509354B (zh) * | 2018-03-22 | 2020-06-23 | 雷科防务(西安)控制技术研究院有限公司 | 存储芯片硬件空间回收和管理方法 |
WO2019193620A1 (ja) * | 2018-04-02 | 2019-10-10 | 三菱電機株式会社 | 履歴記憶装置、履歴記憶方法及び履歴記憶プログラム |
US11550725B2 (en) | 2020-05-18 | 2023-01-10 | Micron Technology, Inc. | Dynamically sized redundant write buffer with sector-based tracking |
US11301380B2 (en) * | 2020-05-18 | 2022-04-12 | Micron Technology, Inc. | Sector-based tracking for a page cache |
KR20220138760A (ko) * | 2021-04-06 | 2022-10-13 | 에스케이하이닉스 주식회사 | 컨트롤러 및 이를 포함하는 메모리 시스템 |
CN113590520A (zh) * | 2021-06-15 | 2021-11-02 | 珠海一微半导体股份有限公司 | Spi系统自动写入数据的控制方法及spi系统 |
Family Cites Families (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS59160899A (ja) | 1982-12-09 | 1984-09-11 | セコイア・システムス・インコ−ポレ−テツド | メモリ−・バツク・アツプ・システム |
JP2514208B2 (ja) | 1987-07-15 | 1996-07-10 | 富士通株式会社 | ホットスタンドバイメモリ−コピ−方式 |
NL8800158A (nl) | 1988-01-25 | 1989-08-16 | Philips Nv | Computersysteem voorzien van een hierarchisch georganiseerd geheugen. |
DE4136729C2 (de) | 1990-11-05 | 1995-07-20 | Mitsubishi Electric Corp | Cache-Steuereinrichtung |
JP2902976B2 (ja) | 1995-06-19 | 1999-06-07 | 株式会社東芝 | キャッシュフラッシュ装置 |
JP3020833B2 (ja) * | 1995-06-19 | 2000-03-15 | 株式会社東芝 | チェックポイント取得システム |
JP3085899B2 (ja) * | 1995-06-19 | 2000-09-11 | 株式会社東芝 | マルチプロセッサシステム |
JP2916420B2 (ja) * | 1996-09-04 | 1999-07-05 | 株式会社東芝 | チェックポイント処理加速装置およびデータ処理方法 |
-
1996
- 1996-09-09 JP JP8238157A patent/JP2916421B2/ja not_active Expired - Fee Related
-
1997
- 1997-03-03 TW TW086102502A patent/TW343303B/zh not_active IP Right Cessation
- 1997-04-22 KR KR1019970014817A patent/KR100233207B1/ko not_active IP Right Cessation
- 1997-05-30 CN CNB971131686A patent/CN1192315C/zh not_active Expired - Fee Related
- 1997-08-26 US US08/917,530 patent/US6490657B1/en not_active Expired - Lifetime
- 1997-08-29 DE DE69729917T patent/DE69729917T2/de not_active Expired - Fee Related
- 1997-08-29 EP EP97115044A patent/EP0828217B1/en not_active Expired - Lifetime
Also Published As
Publication number | Publication date |
---|---|
DE69729917D1 (de) | 2004-08-26 |
TW343303B (en) | 1998-10-21 |
EP0828217B1 (en) | 2004-07-21 |
CN1176433A (zh) | 1998-03-18 |
JP2916421B2 (ja) | 1999-07-05 |
US6490657B1 (en) | 2002-12-03 |
EP0828217A1 (en) | 1998-03-11 |
KR100233207B1 (ko) | 1999-12-01 |
JPH1083351A (ja) | 1998-03-31 |
DE69729917T2 (de) | 2005-07-21 |
KR19980024009A (ko) | 1998-07-06 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN1192315C (zh) | 高速缓存清理装置以及具备该装置的计算机系统 | |
CN1111790C (zh) | 检查点处理加速装置及具有该装置的计算机 | |
CN1130644C (zh) | 一种在具有多系统总线的计算机系统中保持存储器相关性的系统和方法 | |
CN1195276C (zh) | 用于维护链接表的方法和装置 | |
CN1632877A (zh) | 可变延滞时间堆栈快取存储器及提供资料的方法 | |
CN1280714C (zh) | 独立处理多个指令流、软式控制各指令流的处理功能的多线程处理器 | |
CN1619511A (zh) | 执行快速推测式加载运算的微处理器及装置 | |
CN1114859C (zh) | 数据共享方法和计算机体系结构 | |
CN1279449C (zh) | 微处理器 | |
CN1236380C (zh) | 具随机数产生器及用于存储随机数数据的指令的微处理器 | |
CN1270270C (zh) | 接近通信系统、接近通信方法、数据管理装置、数据管理方法、记录介质和计算机程序 | |
CN1934543A (zh) | 高速缓冲存储器及其控制方法 | |
CN1498367A (zh) | 信息处理装置、存储器管理装置、存储器管理方法及信息处理方法 | |
CN101052949A (zh) | 操作系统 | |
CN1916961A (zh) | 可中断图形处理单元及其控制方法 | |
CN1240005C (zh) | 将生产测试接口接至全局串行总线的方法和装置 | |
CN1916962A (zh) | 存储和回存状态上下文在图形处理单元的方法和装置 | |
CN1779660A (zh) | 三者间的异步复制 | |
CN1190741C (zh) | 用于支持数据事务的设备和方法 | |
CN1164710A (zh) | 分散存储型多处理机系统及故障恢复方法 | |
CN101034381A (zh) | 多主机系统和数据传送系统 | |
CN1916877A (zh) | 在处理器与存储器流控制器间传送命令参数的系统和方法 | |
CN1240522A (zh) | 用于计算机应用程序开发和执行的方法、系统和数据结构 | |
CN1866399A (zh) | 存储器控制器、非易失性存储器、非易失性存储系统和数据写入方法 | |
CN1581091A (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 | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20050309 Termination date: 20150530 |
|
EXPY | Termination of patent right or utility model |