CN1117767A - 分级数据超高速缓冲存储器系统中同步化的系统和方法 - Google Patents

分级数据超高速缓冲存储器系统中同步化的系统和方法 Download PDF

Info

Publication number
CN1117767A
CN1117767A CN94191177A CN94191177A CN1117767A CN 1117767 A CN1117767 A CN 1117767A CN 94191177 A CN94191177 A CN 94191177A CN 94191177 A CN94191177 A CN 94191177A CN 1117767 A CN1117767 A CN 1117767A
Authority
CN
China
Prior art keywords
cache
grade
instruction
streamline
data
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.)
Granted
Application number
CN94191177A
Other languages
English (en)
Other versions
CN1054223C (zh
Inventor
约瑟夫·P·布拉特
约翰·布伦南
彼得·苏颜特
威廉姆·A·赫夫曼
约瑟夫·T·斯坎伦
史蒂夫·查瓦格利
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.)
Arm Overseas Finance Co ltd
Overpass Bridge Co ltd
Toshiba Corp
Original Assignee
Toshiba 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 Toshiba Corp filed Critical Toshiba Corp
Publication of CN1117767A publication Critical patent/CN1117767A/zh
Application granted granted Critical
Publication of CN1054223C publication Critical patent/CN1054223C/zh
Anticipated expiration legal-status Critical
Expired - Lifetime 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
    • 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

Abstract

控制系统控制执行超高速缓冲存储器存取指令使得不发生关于超高速缓冲存储器同步化的问题。
计算机系统包含至少具有1个超高速缓冲存储器的多个处理装置(102)。多处理器超高速存储器的同步在计算机系统中维持。至少1个处理装置包含由被连接到第2级超高速缓冲存储器(112)的第1级超高速缓冲存储器(108)构成的超高速缓冲存储器排列,在这里,整数存储指令能把数据存入第1级超高速缓冲存储器和第2级超高速缓冲存储器二者之中。第1级超高速缓冲存储器能够字节写入,第2级超高速缓冲存储器能够字写入。在整数存储指令的执行过程中,按照FA指令的写入数据如下述那样写入到第2级超高速缓冲存储器中;1个或1个以上的字节从第1级超高速缓冲存储器读入并且字长数据被写入到第2级超高速缓冲存储器中。

Description

分级数据超高速缓冲存储器系统 中同步化的系统和方法
本发明涉及包含分级超高速缓冲存储装置的计算机系统中数据超高速缓冲存储器的同步化问题。
现代计算机中包含着由不同容量及速度的种种存储装置构成的存储层次。这样的存储装置中,例如有高速小容量的超高速缓冲存储器和低速大容量的主存储装置。
在超高速缓冲存储器或主存储装置中查找数据。进而,(中央处理装置及输入输出装置等)多个装置存取、更新包含在超高速缓冲存储器及主存储装置中的数据。这样,数据也许任何时候在超高速缓冲存储器及/或主存储装置中都不一致或已经变为陈旧。
这就是超高速缓冲存储器中的相关化(coherency)问题。超高速缓冲存储器的同步化问题特别是在多个处理器各含有1个或1个以上超高速缓冲存储器并且要求所有的超高速缓冲存储器之间同步化的多处理器计算机系统中尤为突出。
维持超高速缓冲存储器同步化的系统及其方法是众所周知的,如刊登在一般可利用的文献上的,为参考而在这里引用的John L.Hennessy and David A.Patterson的Computer Architecture——AQuantitative Approach(计算机体系结构:定量的方法)(MorganKaufmann Publishers,Inc. San Mateo,California,U.S.A.,1990年)等等。这些源于现有技术的系统及方法在解除存在于几乎所有的计算机中的超高速缓冲存储器同步化问题方面是充分的。
然而,新的计算机体系结构往往产生新型的超高速缓冲存储器同步化的问题。这些超高速缓冲存储器同步化的问题,检测自不必说,其分析及解决都很困难。现有的超高速缓冲存储器的同步化技术在消除这些新型超高速缓冲存储器同步化的问题方面也是不适宜的。
这样就要探求用于解决有关存在于具有分级超高速缓冲存储器配置的计算机系统中超高速缓冲存储器同步化问题的系统及方法。
所以,本发明的目的在于提供用于在由分别至少具有1个超高速缓冲存储器的多个处理装置构成的计算机系统中控制执行超高速缓冲存储器存取指令的控制系统及方法。
若采用本发明,则在计算机系统中能够维持多处理器的超高速缓冲存储器的同步化。计算机系统的至少1个处理装置是包含由被连接到第2级超高速缓冲存储器的第1级超高速缓冲存储器所构成的分级超高速缓冲存储器排列的处理装置,整数存储指令能把数据存入第1级超高速缓冲存储器和第2级超高速缓冲存储器。第1级超高速缓冲存储器能字节写入,第2级超高速缓冲存储器能字写入。
本发明的控制系统监视第2级超高速缓冲存储器的流水线,并判断强制最小单位(FA,forced atomic)指令是否存在于第2级超高速缓冲存储器流水线中。FA指令是要求第1级超高速缓冲存储器中存储分配的整数存储指令,该指令能把字的整数倍之外的长度的数据存入第1级超高速缓冲存储器。在FA指令执行过程中,遵照FA指令的写入数据向第2级超高速缓冲存储器中这样地写入:1个或1个以上的字节从第1级超高速缓冲存储器中读出并把字长数据被写入到第2级超高速缓冲存储器中。
在判定FA指令存在于第2级超高速缓冲存储器流水线中时,控制系统使对于第2级超高速缓冲存储器的插入延迟,直到FA指令退出第2级超高速缓冲存储器。从结果上看,延迟了对这种插入的产生负有责任的超高速缓冲存储器存取指令的执行,使得用超高速缓冲存储器存取指令的操作而写入的数据不因FA指令的操作而被破坏。
控制系统还要监视第2级超高速缓冲存储器,并判断潜在出错(PM)指令是否存在于第2级超高速缓冲存储器流水线中。PM指令是在第2级超高速缓冲存储器中不要求存储分配的超高速缓冲存储器存取指令。
在判定PM指令存在于第2级超高速缓冲存储器流水线中时,控制系统使FA指令不进入第2超高速缓冲存储器流水线中。用该方法,虽然不能防止执行对于第2级超高速缓冲存储器的干预,但在处理对第2级超高速缓冲存储器的干预期间,有可能保留第2级超高速缓冲存储器中的指令而能防止计算机系统处理装置间的死锁。
此外,控制系统还要判断整数存储操作的写入数据所包含的、排列成行的字节整数倍的字是否仅为第1级超高速缓冲存储器所独占。在判定排列成行的字不是仅为第1级超高速缓冲存储器所独占时,控制系统便开始进行超高速缓冲存储器出错,填充操作,使整数存储操作不进入第2级超高速缓冲存储器流水线,使排列成行的字为第1级超高速缓冲存储器所独占。
图1是本发明的计算机系统的框图。
图2是示出了在具有分级超高速缓冲存储器阵列的计算机系统中如何执行整数存储操作的示意图。
图3是描述由于具有分级超高速缓冲存储器的计算机系统的构造及操作上的特征而丢失数据情况的说明图。
图4是描述本发明的适宜的实施例的控制系统操作的流程图。
图5是描述本发明的适宜的实施例的控制系统操作的流程图。
以下参照附图详细地说明本发明的理想实施例。另外,图中相同的参考符号表示相同或功能相似的元件。
1.0.硬件环境
图1是使本发明能够良好地动作的计算机系统101的部分框图。另外,如计算机专业人员能看出那样,计算机系统101包含图1所示内容之外的构成部件。
计算机系统101具有连接于总线126上的处理装置102。处理装置102虽然最好是RISC(Reduced Instruction Set Computer)(简化指令系统计算机)处理器,但也可以是具有其它类型计算机结构的处理器。有关RISC计算处理器,记载在为参考而引用的以下文献中。即,记载于G.Kane and J.Heinrich,MIPS RISC Architec-ture(Pren“Hall“,Englewood Cliffs,New Jersey,U.S.A.,1992);Mike Johnson,Superscalar Microprocessor Design(Pren-tice Hall,Englewood Cliffs,New Jersey,U.S.A.,1991)以及Stephen B.Furber,VLSI RISC Architecture and Organization(Marcol Dekker,Inc.,New York,New York,U.S.A.,1989)中。
处理装置102包含用于执行整数操作的整数功能单元(IU:为清楚明了而在图1中未画出)及用于执行浮点操作的浮点功能单元(FPU:为清楚明了起见在图1中未画出)等多个功能单元。
处理装置102包含由数据超高速缓冲存储器108那样的第1级超高速缓冲存储器和综合超高速缓冲存储器112那样的第2级超高速缓冲存储器构成的分级超高速缓中存储器排列。一般说数据超高速缓冲存储器108比综合超高速缓冲存储器112小(数据超高速缓冲存储器108的理想大小是16K字节,综合超高速缓冲存储器112的理想大小是16M字节)。存储在综合超高速缓冲存储器112中数据的部分子集进入到数据超高速缓冲存储器108中。通常数据超高速缓冲存储器108的操作比综合超高速缓冲存储器112操作速度快。
数据超高速缓冲存储器108在处理装置102中最好和IU形成在同一个计算机芯片上(因而,数据超高速缓冲存储器108也被称为“片内超高速缓冲存储器”)。综合超高速缓冲存储器112在处理装置102中最好位于功能单元104的外部(因而,综合超高速缓冲存储器112也被称为“片外超高速缓冲存储器”)。
整数数据处于数据超高速缓冲存储器108中。浮点数据处于综合超高速缓冲存储器112中。此外综合超高速缓冲存储器112也是整数数据用的第2级存储单元。整数存储操作是把整数数据存在数据超高速缓冲存储器108和综合超高速缓冲存储器112二者之中。浮点存储操作是绕过数据超高速缓冲存储器108,把浮点数据存储到综合超高速缓冲存储器112中。
理想的是数据超高速缓冲存储器108支持非字写入。数据超高速缓冲存储器108虽然也可以支持不同非字写入长度的写入,但理想的是数据超高速缓冲存储器108支持字节写入。即,数据能够以1个字节组写入数据超高速缓冲存储器108。换言之,数据超高速缓冲存储器108理想的是能够字节写入。综合超高速缓冲存储器112不支持字节写入。但综合超高速缓冲存储器112支持字写入,这时,字最好是4字节。换言之,综合超高速缓冲存储器112能够进行字写入。
通过支持字写入而不是字节写入,使得能够用更少的RAM(随机存取存储器)执行综合超高速缓冲存储器112写入,因此可削减处理装置102的费用。由于支持字节写入时比支持字写入时的奇偶检验程度加大,所以实际上也是如此。例如,在字为32位并且用具有4位写入宽度的RAM执行综合超高速缓冲存储器112写入的情况下,支持字节写入时,每2个数据RAM就需要1个奇偶检验的RAM。
如上所述,通过整数存储操作整数数据被存入到数据超高速缓冲存储器108和综合超高速缓冲存储器112二者之中。如上所述,数据超高速缓冲存储器108支持字节写入,综合超高速缓冲存储器112支持字写入。
图2图示出了对于综合超高速缓冲存储器112执行1字节的整数存储操作的情况。图2中概念性地描画出了数据超高速缓冲存储器108由多列构成的状况,各列包含着排列为4字节的数据字。
在1字节的整数存储操作的操作过程中,1字节(表示整数存储操作的“写入数据”)被写入到数据超高速缓冲存储器108的1列中。而本列其它3个字节从数据高速缓冲存储器108读出,并将此三个字节与整数存储操作的字节(即写入数据)适当地结合,形成数据字。其后该字被存入综合超高速缓冲存储器112中。
向数据超高速缓冲存储器108及综合超高速缓冲存储器112的数据存储被流水线化。与数据超高速缓冲存储器108及综合超高速缓冲存储器112相关连的数据存储流水线(数据超高速缓冲存储器流水线在图1中示为106,综合超高速缓冲存储器流水线在图1中示为110)在实现对于综合超高速缓冲存储器112的浮点错误之前,执行对于数据超高速缓冲存储器108的整数存储。这样一来,在执行了对于数据高速缓冲存储器108的存储后并在结束对于综合超高速缓冲存储器112(包含浮点错误的实现)的浮点存储之前,不能取消整数存储指令。
分级超高速缓冲存储器的排列进一步地在题为“分级超高速缓冲存储器”的美国专利申请中进行了论述。
另外,在图1中,计算机系统101包含处理装置114那样的与总线126连接的附加处理装置。这些与总线126连接的附加处理装置(处理装置114等)既可以具有分级超高速缓冲存储器排列,也可以是其它类型的超高速缓冲存储器排列(这样的超高速缓冲存储器排列必须能存储整数数据和浮点数据)。为了说明起见,也把处理装置102称为第1处理装置102,把处理装置114称为第2处理装置114。
计算机系统101维持多处理器数据的同步性。即,用计算机系统101维持被分配和存储在连接到总线126的处理装置之间的整数及浮点数据的同步。计算机系统101为维持这些数据的同步具备有超高速缓冲存储器同步化机构(未画出)。
用于超高速缓冲存储器同步化的系统及方法是众所周知的,上述中所引用的Compute Architecture A Quantitative Approach(计算机体系结构,定量分析)等刊载在很多一般可利用的文献之中。这些众所周知的超高速缓冲存储器同步化技术可用于执行计算机系统101中众多超高速缓冲存储器同步化机构的情况。
本发明者特别指定了起因于计算机系统101的特别构造上及操作上的特征、特别是上述分级超高速缓冲存储器排列而与计算机系统101中超高速缓冲存储器同步化相关联的问题。本发明者还发展了对于这些与超高速缓冲存储器同步化相关联问题的解决方案。这些与超高速缓冲存储器同步化相关联的问题从前没有被特别指出过,因而至今也还未被解决。
以下,详细地论述由本发明者特别指定的与超高速缓冲存储器相关联的问题以及本发明者所发展了的对于这些问题的解决办法。
2.0.数据损失问题
作为计算机系统101特别构造上及操作上的特征之结果,通过1个处理器而被存入超高速缓冲存储器的数据有可能因其它处理器的操作而被破坏。特别是,该数据损失问题是由计算机系统101的以下特征所引起的。即,(1)分级超高速缓冲存储器排列;(2)数据超高速缓冲存储器108和综合超高速缓冲存储器112的写入情况不同(即,数据超高速缓冲存储器108支持字节写入而综合超高速缓冲存储器112支持字写入);(3)计算机系统101的多处理器同步化必要条件;(4)对于数据超高速缓冲存储器108的整数存储要在实现对于综合超高速缓冲存储器112的浮点出错之前执行。
图3描述了发生该数据损失问题的情况,用4个不同的时间t0、t1、t2、t3(这些时间也可以不一定相互之间为等间隔)表示第1处理装置102中综合超高速缓冲存储器112所选择的内容和连接到总线126上(图中未显示)的别的处理装置的超高速缓冲存储器。设该别的处理装置的超高速缓冲存储器支持字节写入。
在时间t0,第1处理装置102中的综合超高速缓冲存储器112存储具有字节值A、B、C、D的排列成行的4字节字302。假设该字的独占拷贝(即,计算机系统101中唯一有效的拷贝)容纳在第1处理装置102的综合超高速缓冲存储器112中。因而,该字302不能在图3所示的别的处理装置的超高速缓冲存储器中利用。
在时间t0和t1之间的任意时刻,第1处理装置102的功能单元104对于第1处理装置102的数据超高速缓冲存储器108及综合超高速缓冲存储器112中所存储的数据字302发出写入字节“Y”的整数存储指令。该整数存储指令的处理使字节A、B、C、D从第1处理器102的数据超高速缓冲存储器108中读进来,并与整数存储指令相关连,与字节“Y”进行适当地结合。
在时间t0和t1之间,别的处理装置内的功能单元发出把字节“X”写入数据字节302的存储指令。然而,由于数据字302在别的处理装置的超高速缓冲存储器中无效,未被独占,因此,由别的处理装置发出超高速缓冲存储器出错信息。即,在计算机系统101中只有在数据被独占时才能够进行超高速缓冲存储器的数据写入。
作为超高速缓冲存储器出错信息的结果,数据字302的独占拷贝从第1处理装置102传送到其它处理装置。于是,结束别的处理装置中的存储指令,字节“X”被存入数据字302的字节之一。这些动作如图3所示直到时间t1结束。
在时间t1和t2之间的任意时刻,做好被结合的字节A、Y、C、D写入第1处理装置102中数据超高速缓冲存储器108的准备。然而,由于数据字302在第1处理装置102的数据超高速缓冲存储器108中无效,未被独占,因此,由第1处理装置102发出超高速缓冲存储器出错信息。超高速缓冲存储器出错信息的结果,数据字302的独占拷贝从其它处理装置传送到第1处理装置102。如图3所示,这些动作直到时间t2结束。
在时间t2和t3之间的任意时刻,在第1处理装置102中结束悬而未决的整数存储指令,字节A、Y、C、D被存入数据字302中。应注意的是,用其它处理装置写入到数据字302中的字节“X”由于第1处理装置102的操作而被破坏。这样,计算机系统101的特殊构造上及操作上的特征之结果,使得用1个处理器所存储的数据将被其它处理器的操作破坏。
对于计算机系统101的详细且总括性的分析结果,使得由本发明者特别指出并理解了数据损失的问题。特定出数据损失的问题比较困难,若再考虑到将它们组合起来产生问题的上述要素的多重性及复杂性,则理解并解决这一问题就更为困难了。
3.0.由本发明所提出的数据损失问题的解决方法
以下论述为解决数据损失问题本发明开发的解决方法。
通过确实地最小单位地执行可能引起数据损失问题的超高速缓冲存储器存取指令而解决数据损失问题。特别是从数据超高速缓冲存储器108内的(3字节的)读出开始到综合超高速缓冲存储器112内的(4字节的)写入结束为止最小单位地执行可能引起数据损失问题的超高速缓冲存储器存取指令。换言之,从可能引起数据损失问题的超高速缓冲存储器存取指令进入综合超高速缓冲存储器112的流水线110之点开始到指令退出综合超高速缓冲存储器112的流水线之点为止,最小单位地执行该指令。在这样指令的最小单位地执行过程中不允许插入。
如计算机专业人员所周知,插入是为处理器X而执行的,包括从处理器Y读出数据,这样的数据被用于更新处理器X的超高速缓冲存储器。插入在为维持计算机系统中超高速缓冲存储器之间的同步方面是不可缺少的。
例如,考虑图3所示的情况。如上述,在时间t0,第1处理装置102内的综合超高速缓冲存储器112将存储具有字节值A、B、C、D的排列成行的4字节字302的独点拷贝(exdusive copy)。在第1处理装置102中,用功能单元104之一在时间t0和t1之间所发出的整数存储指令,开始从数据超高速缓冲存储器108进行字节A、C、D的存储器的读取。
若应用本发明,则在该时刻,整数存储指令将进入到阻止对于综合超高速缓冲存储器112插入的最小单位地执行部分。因而,其它处理装置直到第1处理装置102中未决的整数存储指令结束之前(即,字节A、Y、C、D被存储到综合超高速缓冲存储器112之前)没有修正数据字302的机会。
在该第1处理装置102内未决的整数存储指令结束之后,数据字302的独点拷贝被传送到其它处理装置。即,在未决的存储指令结束并退出综合超高速缓冲存储器112的流水线之后,允许对于综合超高速缓冲存储器112的插入。随后,字节“X”被写入到数据字302中,使数据字302包含字节A、Y、X、D。
因而,通过本发明的操作,用1个处理器(即图3例中的其它处理器)存储到超高速缓冲存储器中的数据不会因其它处理器(即图3例中的第1处理装置102)的操作而被破坏。
如上述,本发明通过确实地最小单位地执行可能引起数据损失问题的超高速缓冲存储器存取指令,解决数据损失的问题。由于这些指令如上述那样被强制地最小单位地执行,所以被称为强制最小单位指令(FA:forced atomic)。
作为数据损失问题解决对策的一部分,发明者把FA指令特定为包含整数存储指令(即,要求把数据存储在存储排列成行的字块以外数据的数据超高速缓冲存储器108和综合超高速缓冲存储器112二者之中的超高速缓冲存储器存取指令)。在理想状态下,综合超高速缓冲存储器112的数据存储宽度是4字节,FA指令是存储排列成行的4字节的字块以外的数据或是存储排列成行的4字节整倍数以外数据的整数存储指令。这样的指令要求数据超高速缓冲存储器108中的存储分配,要求数据超高速缓冲存储器108为检索字节而存取,并把4字节的存储内容写入综合超高速缓冲存储器112中。
以下详细地论述数据损失问题的本解决方法。
4.0.死锁问题
如上述,数据损失问题通过特定FA指令并最小单位地执行FA指令而得到解决。然而,如下所述,FA指令的最小单位执行将产生出新的问题,这就是存在着计算机系统101中处理装置死锁的可能性。
死锁问题有2种情况,那就是基于潜在出错指令的死锁和在执行强制最小单位指令时对于数据独占性的要求而引进的死锁。对于这些死锁问题的情况,以下进行说明。
4.1.由潜在出错指令引起的死锁
联系图1,说明包含产生死锁的FA指令执行过程的情况。
在时间t0,假设在第1处理装置102中开始浮点写入指令。同样,假定在第2处理装置114中也开始浮点写入指令。如上述,浮点写入指令绕过数据超高速缓冲存储器108、120,直接进入综合超高速缓冲存储器112、124中。
在时间t1,假定在第1处理装置102中未决的浮点写入指令尚未结束,FA整数写入指令在第1处理装置102中已开始。在第1处理装置102中FA整数写入指令的处理过程中,开始从数据超高速缓冲存储器108的读取操作,检索适当的3字节,对综合超高速缓冲存储器112进行应传送来的4字节的写入。这样,就阻止了综合超高速缓冲存储器112中对于包含这些3字节(还包含FA整数写入指令的写入数据)的排列成行的4字节的插入。
另外,假定在时间t1,第2处理装置114中未决的浮点写入指令尚未结束,在第2处理装置114内FA整数写入指令。在第2处理装置114中开始FA整数写入指令的处理过程中,开始从数据超高速缓冲存储器120的读取操作,检索适当的3字节,对综合超高速缓冲存储器124进行应传送来的4字节的写入。这样,阻止了综合超高速缓冲存储器124中对于包含这些3字节(还包含FA整数写入指令的写入数据)的排列整齐的4字节字。
假设在时间t2,由于第1处理装置102中未决的浮点写入指令而实现超高速缓冲存储器出错。即,应该用浮点写入指令修正的数据在第1处理装置102的综合超高速缓冲存储器112中无效,未被独占。进而,假设该数据在第2处理装置114的综合超高速缓冲存储器124中有效,被独占。这样,为了结束第1处理装置102中为未决状态的浮点写入指令,就要请求第2处理装置114的综合超高速缓冲存储器124中的插入。然而,该插入由于第2处理装置114中未决状态中的FA整数写入指令的最小单位执行而被阻止。
再有,假设在时间t2,第2处理装置114内由于未决的浮点写入指令而实现超高速缓冲存储器出错。即,应该用浮点写入指令修正的数据在第2处理装置114的综合超高速缓冲存储器124中无效,未被独占。再假设该数据在第1处理装置102的综合超高速缓冲存储器112中有效,被独占。这样,为了结束在第2处理装置114中为未决状态的浮点写入指令,就请求第1处理装置102的综合超高速缓冲存储器112中的插入。然而,该插入由于第1处理装置102中未决状态中的FA整数写入指令的最小单位执行而被阻止。
这样一来,第1处理装置102被封锁,依赖来自第2处理装置114的数据,第2处理装置114被封锁,依赖来自第1处理装置102的数据。然而,来自第1处理装置102的数据在第1处理装置102的封锁被解除之前不能利用。同样,来自第2处理装置114的数据在第2处理装置114的封锁被解除之前也不能利用,因而,在第1处理装置102和第2处理装置114之间存在死锁状态。
4.2.本发明提出的死锁问题(潜在出错指令)的解决方法
说明发明者们为解决这个死锁问题而开发的解决方法。
如由发明者特定那样,对于该死锁问题有关的超高速缓冲存储器存取指令中有2个范畴。第1指令范畴包含可能产生数据损失问题的超高速缓冲存储器存取指令。这些指令被称为强制最小单位(FA)指令,在前述中进行了限定及说明。
第2指令范畴包含不要求在数据超高速缓冲存储器108、120中的存储分配(即,不在数据超高速缓冲存储器108、120中存储数据),而直接在综合超高速缓冲存储器112、124中存取的超高速缓冲存储器存取指令。这些指令和在数据超高速缓冲存储器108、120中要求存储分配的FA指令不同。
在综合超高速缓冲存储器112、124的流水线中FA指令不能发生综合超高速缓冲存储器出错(但请参照下节中关于该话题的议论)。由于FA指令在数据超高速缓冲存储器108、120中要求存储分配,又由于数据超高速缓冲存储器108、120存储了在各个综合超高速缓冲存储器112、124中被存数据的适当子集,因而实际情况确实如此。
与此形成对照的是,第2指令范畴的指令由于不要求在数据超高速缓冲存储器108、120中存储分配,所以能够发生综合超高速缓冲存储器出错。因而,第2指令范畴的指令被称为潜在出错(PM)指令。
实际上还有包含不属于第1指令范畴或第2指令范畴的超高速缓冲存储器存取指令的第3指令范畴。第3指令范畴的指令能够与第1指令范畴的指令或第2指令范畴的指令放在同一组中。这样的指令分组法,例如是为提高性能而进行的。第3指令范畴的指令由于与解决死锁问题无关所以不做更深入的论述。
一旦特定出FA及PM指令范畴,发明者就能够发明用于完全分析死锁问题并解决死锁问题的顺序。特别是,发明者断定死锁问题仅在潜在出错指令之后接续强制最小单位指令时潜在地发生。若更详细地对于处理装置102进行说明,则发明者断定死错问题仅在PM指令已经存在于综合超高速缓冲存储器112的流水线中的情况下允许FA指令进入综合超高速缓冲存储器112的流水线时潜在地发生。
在上述的情况中,例如,于时间t0开始的浮点写入指令表示PM指令。在时间t1开始的指令表示FA指令。
这样一来,若应用本发明,则通过采用仅当PM指令已经不存在于综合超高速缓冲存储器112的流水线时才允许FA指令进入综合超高速缓冲存储器112的流水线的方法,能够避免死锁问题。PM指令仍存在于综合超高速缓冲存储器112的流水线时使FA指令延迟。
以上进一步详细地说明了对于死锁问题(即,部分地由潜在出错指令引起的死锁问题)的该解决方法。
4.3.在执行强制最小单位指令时因对于数据独占性的要求而引起的死锁
上述中说明了由于执行潜在出错指令而引进的死锁问题,以下说明在执行强制最小单位指令时因要求数据的独占性而引起的死锁问题。该死锁问题与潜在出错死锁问题类似。
如上述那样,当对于处理装置102进行说明时,则只在综合超高速缓冲存储器112存储着数据的独占拷贝时(即,仅在综合超高速缓冲存储器112存储着数据的有效拷贝时)才能够把数据写入综合超高速缓冲存储器112。浮点写入对于综合超高速缓冲存储器112进行,与问题有关的数据独占拷贝没有存储在综合超高速缓冲存储器112时,必须执行超高速缓冲存储器出错·填充操作(即插入)。
在计算机系统101中,第1处理装置102内所进行的1字节FA整数写入操作是进行对于数据超高速缓冲存储器108和综合超高速缓冲存储器112的写入。若应用本发明,与对于数据超高速缓冲存储器108的写入相关联,与人们所关心的数据字节(即,用整数写入操作修正的数据超高速缓冲存储器108中的字节)被要求存在于数据超高速缓冲存储器108中被独占的超高速缓冲存储器块中。否则,不允许进行整数写入操作处理。超高速缓冲存储器块的宽度理想的是128字节,但只要不脱离本发明的范围和精神,也可以是其它的值。
发明者断定,只有与人们所关心的有关的数据和排列成行的4字节数据(包含人们所关心的数据字节)中其它3字节一起位于数据超高速缓冲存储器108中被独占的超高速缓冲存储器块中时,才应该允许整数写入操作进入综合超高速缓冲存储器的流水线中。否则,也许会发生死锁。
考虑在这些4字节在数据超高速缓冲存储器108中未被独占时也允许整数写入操作进入综合超高速缓冲存储器112的流水线中的情况。在这种情况下,再进一步假设这些4字节在综合超高速缓冲存储器112中也未被独占。整数读取操作到达综合超高速缓冲存储器112的流水线的端部时,将发生超高速缓冲存储器出错·填充操作(即插入)。
因而,在这种情况下,由于FA指令在综合超高速缓冲存储器112中将发生错误,因此具有潜在出错指令的性质。作为其结果,由于FA指令可以阻止对于综合超高速缓冲存储器112的插入,并依赖于来自其它处理装置的独占性,因而存在着死锁的可能性。
4.4.本发明对于死锁问题(数据独占性必要条件)的解决方法
若应用本发明,则通过对于数据超高速缓冲存储器108中的存储要求独占的配置能解决该死锁问题。特别是,只有在包含与所关心的排列成行的4字节字的超高速缓冲存储器块在数据超高速缓冲存储器108中被独占时,才在数据超高速缓冲存储器108中执行FA整数写入操作。否则,将发生超高速缓冲存储器出错·填充操作。在发生该超高速缓冲存储器出错。填充操作时,应注意的是FA整数写入指令不在对于综合超高速缓冲存储器112的流水线中,而且,该超高速缓冲存储器出错。填充操作不能以最小单位的形式进行。这样,能够回避死锁的危险。
以下详细地说明对于死锁问题(即起因于独占性必要条件)的该解决方法。
5.0.解决方法及执行解决方法的总结
如上所述,计算机系统101的特殊构造上和操作上的特征引起了许多与超高速缓冲存储器同步化相关联的问题。发明者以这些问题为特定目标,开发了用于消除这些问题的系统及方法。实质上,本发明的系统及方法是通过执行以下3条规则来控制超高速缓冲存储器存取指令的执行(为使说明简洁起见,就处理装置102来说明这些规则)。
(1)(为修正数据字而动作的)FA指令在综合超高速缓冲存储器112的流水线中时,延迟对于与数据字有关(即参考数据字)的综合超高速缓冲存储器112的插入,直到FA指令结束并退出综合超高速缓冲存储器112的流水线。或者,FA指令在综合超高速缓冲存储器112的流水线中时,延迟对所有综合超高速缓冲存储器112的插入,直到FA指令结束并退出综合超高速缓冲存储器112的流水线。
(2)PM指令在综合超高速缓冲存储器112的流水线中时,不允许FA指令进入综合超高速缓冲存储器112的流水线。这样的FA指令被延迟(即,这些指令先被阻止,在其后的时间里再次开始)。
(3)与FA指令相关联的排列成行的字在数据超高速缓冲存储器108中未被独占时,不允许FA指令进入对于综合超高速缓冲存储器112的流水线,将发生非最小单位式的超高速缓冲存储器出错·填充。
规则(1)解决数据损失的问题。规则(2)解决死锁的问题(潜在出错)。规则(3)解决死锁问题(数据独占性的必要条件)。
本发明还包括下面的第4个规则。即,在综合超高速缓冲存储器112中插入未决时,不允许FA指令进入综合超高速缓冲存储器112的流水线。代之以把FA指令延迟,直到成为未决状态的全部插入结束。
该第4个规则以提高性能为目的,而不是为解决上述问题使用的。第4个规则不是用FA指令永久地阻止插入,而是保证给与处理的机会。
理想的是通过在进入到综合超高速缓冲存储器112的流水线中的各个指令上追加FA位和PM位的办法执行规则(1)、(2)、(4)。如果指令是强制最小单位指令,则最好把FA位设定为1,否则设定为0。同样,如果指令是潜在出错指令,则最好把其PM位设定为1,否则设定为0。
控制系统150最好在指令进入综合超高速缓冲存储器112的流水线时监视这些指令(为了简明起见,控制系统150和处理装置102的部件之间的控制线未画出来)。参照图4的流程图,说明控制系统150的操作。
如果控制系统150检测出了伴随在综合超高速缓冲存储器流水线中被设定为1的FA位的指令(步骤404所示),则控制系统150将阻止对于综合超高速缓冲存储器112中适当数据(即,被注意的排列好的4位字)的插入(步骤406所示)。以此来执行第1规则。
同样,如果判断出控制系统150对于综合超高速缓冲存储器112插入为未决状态(步骤412所示),则控制系统150阻止FA指令进入综合超高速缓冲存储器112的流水线(步骤410所示)。假设控制系统150与具有关于插入未决知识的计算机系统101的其它构成部件相接触。以此执行第4规则。
规则(3)理想的是通过在数据超高速缓冲存储器108中对各个超高速缓冲存储器块(理想的是128字节)追加W(能写入)位的办法来执行。超高速缓冲存储器块如果在数据超高速缓冲存储器108中未被独占,则最好把与数据超高速缓冲存储器108中的超高速缓冲存储器块相关联的W位设定为1,否则设定为0。参照图5所示的流程图,说明控制系统150进一步的动作。
控制系统150监视在数据超高速缓冲存储器108中被处理的整数存储指令(即,在数据超高速缓冲存储器108的流水线中被处理的整数存储指令)。和FA指令相关联的排列成行的4字节字处于在数据超高速缓冲存储器108中被独占的超高速缓冲存储器块中时(如用和超高速缓冲存储器块相关联的W位所示那样,这个测试在步骤504表示),允许FA指令进入综合超高速缓冲存储器112的流水线,并在这里被赋予即将说明的控制系统150的其它处理(这一点在步骤510表示)。
如果和FA指令相关联的排列成行的4字节处于数据超高速缓冲存储器108中未被独占的超高速缓冲存储器块中(这个测试在步骤504表示),则不允许FA指令进入综合超高速缓冲存储器112的流水线(步骤506所示),并把超高速缓冲存储器出错·填充信息送到综合超高速缓冲存储器112(步骤508所示)。
控制系统150最好被装配成如上述那样操作的硬件状态机器,特别是最好遵从上述的4个规则进行装配,或者,控制系统150被装配成依据软件动作的处理器。
控制系统150最好作为包含数据超高速缓冲存储器108的整数功能单元(JU)的一部分,装配在(具有分级超高速缓冲存储器排列的)各个处理装置中。或者,控制系统150作为在功能单元104外部的构成部件,装配在(具有分级超高速缓冲存储器排列的)各个处理装置中。或者,控制系统150被装配为分散在包含分级超高速缓冲存储器的计算机系统101内各个处理装置的多重状态机器。
控制系统150最好使用硬件开发者能够进行开发的适当的编译系统和软件中的原型硬件电路进行开发。在这样的编译系统中,可以使用编译程序语言表述硬件构成部件的功能。这样的编译系统能够用于证明逻辑,有助于限定控制信号及相关随机逻辑的定时和世代。这种编译系统之一是加利福尼亚州圣何塞的Cadence DesignSystems,Inc.开发的Verilog编译器。
根据本说明书中的说明,有关本发明实施例的详细内容对于计算机的专业人员来说应是明确的。
上述中说明了本发明的各种形态,应该理解为那些不过是作为例子而列举的并不受限于这些形式。
这样一来,若应用本发明,则能够不引起数据损失和死锁就能解决与存在于具有分级超高速缓冲存储器排列的计算机系统内的超高速缓冲存储器的同步化有关的问题。

Claims (17)

1.一种在计算机系统中防止数据损失的方法,特征在于:
在由每个都至少具有1个超高速缓冲存储器的多个处理装置所构成的计算机系统内防止数据损失的方法中,这是一种这样的方法:在计算机系统中维持多处理器超高速缓冲存储器的同步;至少1个处理装置具有由被连接到第2级超高速缓冲存储器的第1级超高速缓冲存储器构成的分级超高速缓冲存储器排列;整数存储指令能够把数据存入第1级超高速缓冲存储器和第2级超高速缓冲存储器;第1级超高速缓冲存储器能够字节写入;第2级超高速缓冲存储器能够字写入,该方法具有下述步骤:
(a)具有监视第2级超高速缓冲存储器的流水线,以判断强制最小单位(FA)指令是否在第2级超高速缓冲存储器流水线的步骤,其中,FA指令是要求第1级超高速缓冲存储器中存储分配的整数存储指令,该指令能把字的整倍数以外长度的数据存入第1级超高速缓冲存储器,在FA指令的执行过程中,按照FA指令的写入数据向第2级超高速缓冲存储器中这样写入:从第1级超高速缓冲存储器中读入一个或一个以上的字节并把字长数据写入到第2级超高速缓冲存储器中,
(b)具有延迟步骤,在判定FA指令存在于第2级超高速缓冲存储器流水线中时,延迟对于第2级超高速缓冲存储器的插入直到FA指令退出第2级超高速缓冲存储器流水线,延迟成为这种插入原因的超高速缓冲存储器存取指令的执行:使得用这种延迟来防止因FA指令的操作而破坏由超高速缓冲存储器存取指令的操作所写入的数据。
2.如权利要求1中所述的方法,特征在于:
该方法还包含:
(c)判断对于第2级超高速缓冲存储器的插入是否为未决状态的步骤;
(d)在对于第2级超高速缓冲存储器的插入为未决状态时防止FA指令进入第2级超高速缓冲存储器流水线的步骤,使得不会由于第2级超高速缓冲存储器流水线中FA指令的存在而始终延迟对于第2级超高速缓冲存储器的插入执行。
3.如权利要求1中记述的方法,特征在于:
前述步骤(a)中包括:
使与进入到识别指令是否为FA指令的第2级超高速缓冲存储器流水线标识中去的指令相关联的步骤;以及分析处于第2级超高速缓冲存储器中的指令的上述标识并判断FA指令是否在第2级超高速缓冲存储器流水线中的步骤。
4.如权利要求3中记述的方法,特征在于:
前述标识由与进入到第2级超高速缓冲存储器流水线中的各个指令相关联的强制最小单位(FA)位构成,FA位被设定为FA指令用的第1值及非FA指令用的第2值。
5.如权利要求1中记述的方法,特征在于:
在前述步骤(b)中,延迟对多字节字的存取插入直到FA指令退出第2级超高速缓冲存储器流水线,该多字节字在于第2级超高速缓冲存储器中,被加入了FA指令的写入数据并且排列成行。
6.一种防止计算机系统中处理装置之间死锁的方法,特征在于:
在防止由每个都至少具有1个超高速缓冲存储器这样的多个处理装置构成的计算机系统内处理装置之间死锁的方法中这是这样一种方法:在计算机系统中维持多处理器超高速缓冲存储器的同步;至少1个处理装置包含由连接第2级超高速缓冲存储器的第1级超高速缓冲存储器构成的分级超高速缓冲存储器排列;第1级超高速缓冲存储器能够字节写入;第2级超高速缓冲存储器能够字写入,该方法具有下述步骤:
(a)具有监视第2级超高速缓冲存储器的流水线以判断潜在出错(PM)指令是否在第2级超高速缓冲流水线中的步骤。该PM指令是在第2级超高速缓冲存储器中要求存储分配而在第1级超高速缓冲存储器中不要求存储分配的超高速缓冲存储存取指令,
(b)具有在判断PM指令存在于第2级超高速缓冲存储器流水线中时,使强制最小单位(FA)指令不进入第2级超高速缓冲存储器的流水线中,(该FA指令是能把数据存入第1级超高速缓冲存储器和第2级超高速缓冲存储器二者之中的超高速缓冲存储器存取指令,被存入第1级超高速缓冲存储器的数据是字的整数倍以外长度的数据),在FA指令存在于第2级超高速缓冲存储器流水线中期间不允许对于第2级超高速缓冲存储器进行插入的步骤,该步骤能够:
防止计算机系统的处理装置之间的死锁;
在为第2级超高速缓冲存储器而处理插入期间及第2级超高速缓冲存储器中的指令有可能被保留期间不妨碍对于第2级超高速缓冲存储器插入的执行。
7.如权利要求6中记述的方法,特征在于:
前述步骤(a)中包括:
使与进入到识别指令是否为PM指令的第2级超高速缓冲存储器流水线标识中去的指令相关联的步骤和,分析第2级超高速缓冲存储器中指令的前述标识并判断PM指令是否在第2级超高速缓冲存储器流水线中的步骤。
8.如权利要求7中记述的方法,特征在于:
前述标识由与进入到第2级超高速缓冲存储器流水线中的各个指令相关联的潜在出错(PM)位构成,PM位被设定为PM指令用的第1值及非PM指令用的第2值。
9.一种在计算机系统中控制执行超高速缓冲存储器存取指令的方法,特征在于:
在由每个都至少具有1个超高速缓冲存储器这样的多个处理装置构成的计算机系统内控制执行超高速缓冲存储器存取指令的方法中,这是这样一种方法:多处理器超高速缓冲存储器的同步在计算机系统中维持;至少1个处理装置包含由连接到第2级超高速缓冲存储器上去的第1级超高速缓冲存储器构成的分级超高速缓冲存储器排列;第1级超高速缓冲存储器能够字节写入;第2级超高速缓冲存储器能够字写入;分级超高速缓冲存储器排列支持整数存储操作使数据存入第1级超高速缓冲存储器和第2级超高速缓冲存储器二者之中;在整数存储操作过程中,按照FA指令的写入数据下述那样地写入到第2级超高速缓冲存储器中:使得1个或1个以上的字节从第1级超高速缓冲存储器中读进来并且字长数据作为整数存储操作的结果被写入第2级超高速缓冲存储器中,使这样的整数存储操作的执行是以最小单位地进行,该方法包括:
(a)判断已放进了整数存储操作的写入数据并排列成行的多字节字是否仅存在于第1级超高速缓冲存储器的步骤;
(b)在判定排列成行的字不是仅在第1级超高速缓冲存储器中被独占时,防止整数存储操作进入第2级超高速缓冲存储器的流水线,开始超高速缓冲存储器出错,填充操作并使排列成行的字仅存在于第1级超高速缓冲存储器中的步骤。
10.如权利要求9中记述的方法,特征在于:
前述步骤(a)中包括:
使存在于识别排列成行的字是否仅存在于第1级超高速缓冲存储器的第1级超高速缓冲存储器标识中的排列成行的多字节字与标识相关联,并且把标识存储在第1级超高速缓冲存储器中的步骤;分析存储在第1级超高速缓冲存储器的前述标识并判断已加进了整数存储操作的写入数据的排列成行的多字节字是否仅存在于第1级超高速缓冲存储器中的步骤。
11.如权利要求10中记述的方法,特征在于:
前述标识由与各个第1级超高速缓冲存储器内排列成行的多字节字相关联的可写入(W)位构成,W位被设定为在第1级超高速缓冲存储中被独占的排列成行的字用的第1值和在第1级超高速缓冲存储器中未被独占的排列成行的字用的第2值。
12.一种在计算机系统中控制执行超高速缓冲存储器存取指令的方法,特征在于:
在由每个都至少具有1个超高速缓冲存储器这样的多个处理装置构成的计算机系统内控制执行超高速缓冲存储器存取指令的方法中,这是这样一种方法:多处理器超高速缓冲存储器的同步在计算机系统中维持;至少1个处理装置包含由被连接到第2级超高速缓冲存储器的第1级超高速缓冲存储器构成的分级超高速缓冲存储器排列;整数存储指令能够把数据存入第1级超高速缓冲存储器和第2级超高速缓冲存储器;第1级超高速缓冲存储器能够字节写入;第2级超高速缓冲存储器能够字写入;该方法具有下述步骤:
(a)具有监视第2级超高速缓冲存储器流水线并判断强制最小单位(FA)指令是否存在于第2级超高速缓冲存储器流水线中的步骤,该FA指令是要求第1级超高速缓冲存储器中存储分配的整数存储指令,该指令能够把字的整数倍以外长度的数据存入第1级超高速缓冲存储器,在FA指令执行过程中,按照FA指令的写入数据如下述那样写入到第2级超高速缓冲存储器中:1个或1个以上的字节从第1级超高速缓冲存储器中读入并且字长数据被写入到第2级超高速缓冲存储器中;
(b)具有监视第2级超高速缓冲存储器的流水线并判断潜在出错(PM)指令是否存在于第2级超高速缓冲存储器流水线中的步骤,该PM指令是要求第2级超高速缓冲存储器中存储分配而不要求第1级超高速缓冲存储器中存储分配的超高速缓冲存储器存取指令;
(c)具有在判断PM指令存在于第2级超高速缓冲存储器流水线中时防止FA指令进入到第2级超高速缓冲存储器流水线中的步骤;
(d)具有在判断FA指令存在于第2级超高速缓冲存储器流水线中时,延迟对于第2级超高速缓冲存储器的插入直到FA指令退出第2级超高速缓冲存储器流水线的步骤。
13.如权利要求12中记述的方法,特征在于:
该方法还包括:
(e)判断对于第2级超高速缓冲存储器的插入是否为未决状态的步骤;
(f)在对于第2级超高速缓冲存储器的插入为未决状态时,防止FA指令进入第2级超高速缓冲存储器流水线中的步骤,使得不会由于第1级超高速缓冲存储器流水线中FA指令的存在而总是延迟对于第2级超高速缓冲存储器的插入执行。
14.如权利要求12中记述的方法,特征在于:
该方法还包括:
(g)判断加入了整数存储操作写入数据的排列成行的多字节字是否仅存在于第1级超高速缓冲存储器中的步骤;
(h)在判断排列成行的字不是仅为第1级超高速缓冲存储器独占时,防止整数存储动作进入第2级超高速缓冲存储器,开始超高速缓冲存储器出错,填充操作使排列成行的字仅存在于第1级超高速缓冲存储器中的步骤。
15.一种控制系统,特征在于:
在由每个都至少具有1个超高速缓冲存储器的多个处理装置构成的计算机系统内用于控制超高速缓冲存储器存取指令的执行的控制系统中,多处理器超高速缓冲存储器的同步在计算机系统中维持;至少1个处理装置具有由被连接到第2级超高速缓冲存储器的第1级超高速缓冲存储器构成的分级超高速缓冲存储器排列;整数存储指令能够把数据存入第1级超高速缓冲存储器和第2级超高速缓冲存储器二者之中;第1级超高速缓冲存储器能够字节写入;第2级超高速缓冲存储器能够字写入;该控制系统具有下述装置:
具有监视第2级超高速缓冲存储器的流水线并判断强迫最小单位(FA)指令是否存在于第2级超高速缓冲存储器流水线中的装置,该FA指令是要求第1级超高速缓冲存储器中存储分配的整数存储指令,该指令使得能够把字的整数倍以外长度的数据存入第1级超高速缓冲存储器;在FA指令的执行过程中,按照FA指令的写入数据如下述那样写入到第2级超高速缓冲存储器中:1个或1个以上的字节从第1级超高速缓冲存储器中读入并且字长数据被写入到第2级超高速缓冲存储器中;
具有监视第2级超高速缓冲存储器的流水线并判断潜在出错(PM)指令是否存在于第2级超高速缓冲存储器流水线中的装置,该PM指令是要求第2级超高速缓冲存储器中存储分配而不要求第1级超高速缓冲存储器中存储分配的超高速缓冲存储器存取指令;
具有在判定PM指令存在于第2级超高速缓冲存储器流水线中时防止FA指令进入第2级超高速缓冲存储器流水线的装置;
具有在判定FA指令存在于第2级超高速缓冲存储器流水线中时延迟对于第2级超高速缓冲存储器的插入直到FA指令退出第2级超高速缓冲存储器流水线的装置。
16.如权利要求15中记述的控制系统,特征在于:
该系统还包括:
判断对于第2级超高速缓冲存储器的插入是否为未决状态的装置;
在判定对于第2级超高速缓冲存储器的插入为未决状态时防止FA指令进入第2级超高速缓冲存储器流水线的装置,使得不会由于第2级超高速缓冲存储器流水线中FA指令的存在而总是延迟对于第2级超高速缓冲存储器的插入执行。
17.如权利要求15中记述的控制系统,特征在于:
该系统还包括:
判断加入了整数存储操作的写入数据并排列成行的多字节字是否仅存在于第1级超高速缓冲存储器中的装置;
在判定排列成行的字不是仅为第1级超高速缓冲存储器独占时防止整数存储操作进入第2级超高速缓冲存储器的流水线,开始超高速缓冲存储器出错,填充操作使排列成行的字仅存在于第1级超高速缓冲存储器中的装置。
CN94191177A 1993-12-15 1994-12-15 用于分级数据超高速缓冲存储器系统中同步化的系统和方法 Expired - Lifetime CN1054223C (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US08/167,005 US5572704A (en) 1993-12-15 1993-12-15 System and method for controlling split-level caches in a multi-processor system including data loss and deadlock prevention schemes
US08/167,005 1993-12-15

Publications (2)

Publication Number Publication Date
CN1117767A true CN1117767A (zh) 1996-02-28
CN1054223C CN1054223C (zh) 2000-07-05

Family

ID=22605558

Family Applications (1)

Application Number Title Priority Date Filing Date
CN94191177A Expired - Lifetime CN1054223C (zh) 1993-12-15 1994-12-15 用于分级数据超高速缓冲存储器系统中同步化的系统和方法

Country Status (10)

Country Link
US (2) US5572704A (zh)
EP (1) EP0684561B1 (zh)
JP (1) JP2631037B2 (zh)
KR (1) KR0182344B1 (zh)
CN (1) CN1054223C (zh)
DE (1) DE69434728T2 (zh)
HK (1) HK1018166A1 (zh)
SG (1) SG75776A1 (zh)
TW (1) TW367441B (zh)
WO (1) WO1995016959A1 (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN100367193C (zh) * 2002-09-04 2008-02-06 Arm有限公司 数据处理设备和数据处理设备中流水线之间的同步化方法
CN100461142C (zh) * 2005-07-05 2009-02-11 威盛电子股份有限公司 微处理器、处理器总线系统、及执行稀疏写入处理的方法

Families Citing this family (49)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5628021A (en) * 1992-12-31 1997-05-06 Seiko Epson Corporation System and method for assigning tags to control instruction processing in a superscalar processor
US5751995A (en) * 1994-01-04 1998-05-12 Intel Corporation Apparatus and method of maintaining processor ordering in a multiprocessor system which includes one or more processors that execute instructions speculatively
EP1278125A2 (en) 1994-10-14 2003-01-22 MIPS Technologies, Inc. Indexing and multiplexing of interleaved cache memory arrays
WO1996012231A1 (en) 1994-10-14 1996-04-25 Silicon Graphics, Inc. A translation buffer for detecting and preventing conflicting virtual addresses from being stored therein
US5737749A (en) * 1996-05-20 1998-04-07 International Business Machines Corporation Method and system for dynamically sharing cache capacity in a microprocessor
US5872976A (en) * 1997-04-01 1999-02-16 Landmark Systems Corporation Client-based system for monitoring the performance of application programs
US6175899B1 (en) * 1997-05-19 2001-01-16 International Business Machines Corporation Method for providing virtual atomicity in multi processor environment having access to multilevel caches
US6092156A (en) * 1997-11-05 2000-07-18 Unisys Corporation System and method for avoiding deadlocks utilizing split lock operations to provide exclusive access to memory during non-atomic operations
US7529907B2 (en) 1998-12-16 2009-05-05 Mips Technologies, Inc. Method and apparatus for improved computer load and store operations
US7020879B1 (en) * 1998-12-16 2006-03-28 Mips Technologies, Inc. Interrupt and exception handling for multi-streaming digital processors
US7257814B1 (en) 1998-12-16 2007-08-14 Mips Technologies, Inc. Method and apparatus for implementing atomicity of memory operations in dynamic multi-streaming processors
US6389449B1 (en) * 1998-12-16 2002-05-14 Clearwater Networks, Inc. Interstream control and communications for multi-streaming digital processors
US7237093B1 (en) 1998-12-16 2007-06-26 Mips Technologies, Inc. Instruction fetching system in a multithreaded processor utilizing cache miss predictions to fetch instructions from multiple hardware streams
US6341331B1 (en) * 1999-10-01 2002-01-22 International Business Machines Corporation Method and system for managing a raid storage system with cache
US6591361B1 (en) 1999-12-28 2003-07-08 International Business Machines Corporation Method and apparatus for converting data into different ordinal types
US6857061B1 (en) 2000-04-07 2005-02-15 Nintendo Co., Ltd. Method and apparatus for obtaining a scalar value directly from a vector register
US6859862B1 (en) 2000-04-07 2005-02-22 Nintendo Co., Ltd. Method and apparatus for software management of on-chip cache
US6701424B1 (en) 2000-04-07 2004-03-02 Nintendo Co., Ltd. Method and apparatus for efficient loading and storing of vectors
EP1311947B1 (en) 2000-07-14 2011-01-19 MIPS Technologies, Inc. Instruction fetch and dispatch in multithreaded system
US7406554B1 (en) * 2000-07-20 2008-07-29 Silicon Graphics, Inc. Queue circuit and method for memory arbitration employing same
US7181600B1 (en) 2001-08-02 2007-02-20 Mips Technologies, Inc. Read-only access to CPO registers
US7185183B1 (en) 2001-08-02 2007-02-27 Mips Technologies, Inc. Atomic update of CPO state
US7634638B1 (en) 2002-10-22 2009-12-15 Mips Technologies, Inc. Instruction encoding for system register bit set and clear
US6836833B1 (en) * 2002-10-22 2004-12-28 Mips Technologies, Inc. Apparatus and method for discovering a scratch pad memory configuration
JP3855270B2 (ja) * 2003-05-29 2006-12-06 ソニー株式会社 アンテナ実装方法
US7454492B2 (en) * 2005-08-26 2008-11-18 International Business Machines Corporation Method and apparatus for configuring and modeling server information in an enterprise tooling environment
US7596661B2 (en) * 2005-09-01 2009-09-29 Mediatek Inc. Processing modules with multilevel cache architecture
US7734901B2 (en) * 2005-10-31 2010-06-08 Mips Technologies, Inc. Processor core and method for managing program counter redirection in an out-of-order processor pipeline
US7711934B2 (en) * 2005-10-31 2010-05-04 Mips Technologies, Inc. Processor core and method for managing branch misprediction in an out-of-order processor pipeline
US20070204139A1 (en) 2006-02-28 2007-08-30 Mips Technologies, Inc. Compact linked-list-based multi-threaded instruction graduation buffer
US7721071B2 (en) * 2006-02-28 2010-05-18 Mips Technologies, Inc. System and method for propagating operand availability prediction bits with instructions through a pipeline in an out-of-order processor
US20080016326A1 (en) 2006-07-14 2008-01-17 Mips Technologies, Inc. Latest producer tracking in an out-of-order processor, and applications thereof
US7370178B1 (en) * 2006-07-14 2008-05-06 Mips Technologies, Inc. Method for latest producer tracking in an out-of-order processor, and applications thereof
US7657708B2 (en) * 2006-08-18 2010-02-02 Mips Technologies, Inc. Methods for reducing data cache access power in a processor using way selection bits
US7650465B2 (en) 2006-08-18 2010-01-19 Mips Technologies, Inc. Micro tag array having way selection bits for reducing data cache access power
US7647475B2 (en) * 2006-09-06 2010-01-12 Mips Technologies, Inc. System for synchronizing an in-order co-processor with an out-of-order processor using a co-processor interface store data queue
US8032734B2 (en) * 2006-09-06 2011-10-04 Mips Technologies, Inc. Coprocessor load data queue for interfacing an out-of-order execution unit with an in-order coprocessor
US7594079B2 (en) 2006-09-29 2009-09-22 Mips Technologies, Inc. Data cache virtual hint way prediction, and applications thereof
US9946547B2 (en) 2006-09-29 2018-04-17 Arm Finance Overseas Limited Load/store unit for a processor, and applications thereof
US8078846B2 (en) 2006-09-29 2011-12-13 Mips Technologies, Inc. Conditional move instruction formed into one decoded instruction to be graduated and another decoded instruction to be invalidated
US20080082793A1 (en) * 2006-09-29 2008-04-03 Mips Technologies, Inc. Detection and prevention of write-after-write hazards, and applications thereof
US7996632B1 (en) * 2006-12-22 2011-08-09 Oracle America, Inc. Device for misaligned atomics for a highly-threaded x86 processor
US7769957B2 (en) * 2007-06-22 2010-08-03 Mips Technologies, Inc. Preventing writeback race in multiple core processors
US7769958B2 (en) * 2007-06-22 2010-08-03 Mips Technologies, Inc. Avoiding livelock using intervention messages in multiple core processors
US7953932B2 (en) * 2008-02-13 2011-05-31 International Business Machines Corporation System and method for avoiding deadlocks when performing storage updates in a multi-processor environment
US8672411B2 (en) * 2010-03-22 2014-03-18 Faurecia Automotive Seating, Llc Vehicle seat cushion with integrated ventilation
CN103473095A (zh) * 2013-09-10 2013-12-25 江苏中科梦兰电子科技有限公司 Cpu二级缓存的加速初始化方法
JP6093322B2 (ja) * 2014-03-18 2017-03-08 株式会社東芝 キャッシュメモリおよびプロセッサシステム
GB2551529B (en) 2016-06-21 2018-09-12 Advanced Risc Mach Ltd Switching between private cache and shared memory to handle atomic operations

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5058006A (en) * 1988-06-27 1991-10-15 Digital Equipment Corporation Method and apparatus for filtering invalidate requests
JPH02253356A (ja) * 1989-03-28 1990-10-12 Toshiba Corp 階層キャッシュメモリ装置とその制御方式
US5287484A (en) * 1989-06-21 1994-02-15 Hitachi, Ltd. Multi-processor system for invalidating hierarchical cache
JPH077358B2 (ja) * 1989-09-18 1995-01-30 工業技術院長 階層キャッシュメモリ装置
EP0432075B1 (en) * 1989-11-09 1997-02-26 International Business Machines Corporation Multiprocessor with relatively atomic instructions
US5136700A (en) * 1989-12-22 1992-08-04 Digital Equipment Corporation Apparatus and method for reducing interference in two-level cache memories
US5490261A (en) * 1991-04-03 1996-02-06 International Business Machines Corporation Interlock for controlling processor ownership of pipelined data for a store in cache
US5406504A (en) * 1993-06-30 1995-04-11 Digital Equipment Multiprocessor cache examiner and coherency checker

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN100367193C (zh) * 2002-09-04 2008-02-06 Arm有限公司 数据处理设备和数据处理设备中流水线之间的同步化方法
CN100461142C (zh) * 2005-07-05 2009-02-11 威盛电子股份有限公司 微处理器、处理器总线系统、及执行稀疏写入处理的方法

Also Published As

Publication number Publication date
US5572704A (en) 1996-11-05
KR0182344B1 (ko) 1999-05-15
KR960701403A (ko) 1996-02-24
DE69434728T2 (de) 2007-04-26
DE69434728D1 (de) 2006-06-14
JP2631037B2 (ja) 1997-07-16
CN1054223C (zh) 2000-07-05
HK1018166A1 (en) 1999-12-10
SG75776A1 (en) 2000-10-24
US5632025A (en) 1997-05-20
WO1995016959A1 (fr) 1995-06-22
EP0684561B1 (en) 2006-05-10
TW367441B (en) 1999-08-21
EP0684561A1 (en) 1995-11-29
EP0684561A4 (en) 1999-11-17

Similar Documents

Publication Publication Date Title
CN1054223C (zh) 用于分级数据超高速缓冲存储器系统中同步化的系统和方法
EP2542973B1 (en) Gpu support for garbage collection
CN1324459C (zh) 利用提示缓冲器隐藏存储器访问等待时间的方法和装置
CN1269042C (zh) 具有预取指令的微处理器及预取至其高速缓存的方法
CN1084896C (zh) 清空高速缓冲存储器内容的装置
US7844802B2 (en) Instructions for ordering execution in pipelined processes
US8825718B2 (en) Methods and apparatus for marking objects for garbage collection in an object-based memory system
KR100204741B1 (ko) 제1및 제2캐시 메모리 사용방법
CN105765525A (zh) 加载和存储单元以及数据高速缓存的排序和带宽改进
CN101059783A (zh) 事务型存储器的虚拟化
CN1690952A (zh) 根据多组高速缓存组预测来选择执行的指令的装置和方法
CN101067781A (zh) 执行存储器消歧的技术
CN1864131A (zh) 处置在基于跟踪缓存的处理器中的异常指令的系统及方法
CN1266589C (zh) 多重高速缓冲存储器线写回和作废技术
JP2006107497A (ja) 制御方法、処理方法、またはそれらを利用した処理システム、コンピュータ処理システム、コンピュータのネットワーク
US20210157593A1 (en) Methods and systems for fetching data for an accelerator
CN1746867A (zh) 使用核心指示符的高速缓存过滤
US20100275208A1 (en) Reduction Of Memory Latencies Using Fine Grained Parallelism And Fifo Data Structures
CN1851677A (zh) 嵌入式处理器系统及其数据操作方法
JP2002123424A (ja) コンピュータ・システムにおいてメモリを動的に再割当てするシステムおよび方法
US20010011330A1 (en) Dma driven processor cache
US6810472B2 (en) Page handling efficiency in a multithreaded processor
US11372768B2 (en) Methods and systems for fetching data for an accelerator
US9983874B2 (en) Structure for a circuit function that implements a load when reservation lost instruction to perform cacheline polling
Onodera et al. Lock reservation for Java reconsidered

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant
ASS Succession or assignment of patent right

Owner name: MIPS TECHNOLOGY CO.,LTD.; TOSHIBA K.K.

Free format text: FORMER OWNER: SILICON IMAGE CO., LTD.; TOSHIBA K.K.

Effective date: 20020927

C41 Transfer of patent application or patent right or utility model
TR01 Transfer of patent right

Effective date of registration: 20020927

Patentee after: MIPS Technologies, Inc.

Patentee after: Kabushiki Kaisha TOSHIBA

Patentee before: Silicon Graphics, Inc.

Patentee before: Kabushiki Kaisha TOSHIBA

ASS Succession or assignment of patent right

Owner name: BRIDGE DECK LLC

Free format text: FORMER OWNER: MIPS TECHNOLOGIES INC.

Effective date: 20150121

Owner name: ARM FINANCE OVERSEAS LTD.

Free format text: FORMER OWNER: BRIDGE DECK LLC

Effective date: 20150121

C41 Transfer of patent application or patent right or utility model
TR01 Transfer of patent right

Effective date of registration: 20150121

Address after: cambridge

Patentee after: ARM Overseas Finance Co.,Ltd.

Patentee after: Kabushiki Kaisha TOSHIBA

Address before: American New Jersey

Patentee before: Overpass Bridge Co.,Ltd.

Patentee before: Kabushiki Kaisha TOSHIBA

Effective date of registration: 20150121

Address after: American New Jersey

Patentee after: Overpass Bridge Co.,Ltd.

Patentee after: Kabushiki Kaisha TOSHIBA

Address before: American California

Patentee before: MIPS Technologies, Inc.

Patentee before: Kabushiki Kaisha TOSHIBA

C17 Cessation of patent right
CX01 Expiry of patent term

Expiration termination date: 20141215

Granted publication date: 20000705