CN1534486A - 高速缓存刷新系统及其方法 - Google Patents

高速缓存刷新系统及其方法 Download PDF

Info

Publication number
CN1534486A
CN1534486A CNA2003101244081A CN200310124408A CN1534486A CN 1534486 A CN1534486 A CN 1534486A CN A2003101244081 A CNA2003101244081 A CN A2003101244081A CN 200310124408 A CN200310124408 A CN 200310124408A CN 1534486 A CN1534486 A CN 1534486A
Authority
CN
China
Prior art keywords
processor
cache
cacheline
affairs
status
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
CNA2003101244081A
Other languages
English (en)
Other versions
CN1278240C (zh
Inventor
֣����
郑商益
尹锡镇
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Novera Optics Korea Co Ltd
Original Assignee
LG Electronics Inc
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 LG Electronics Inc filed Critical LG Electronics Inc
Publication of CN1534486A publication Critical patent/CN1534486A/zh
Application granted granted Critical
Publication of CN1278240C publication Critical patent/CN1278240C/zh
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • 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/0804Addressing 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0806Multiuser, multiprocessor or multiprocessing cache systems
    • G06F12/0815Cache consistency protocols
    • G06F12/0831Cache consistency protocols using a bus scheme, e.g. with bus monitoring or watching means
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/10Providing a specific technical effect
    • G06F2212/1016Performance improvement
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10TECHNICAL SUBJECTS COVERED BY FORMER USPC
    • Y10STECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10S707/00Data processing: database and file management or data structures
    • Y10S707/99931Database or file accessing
    • Y10S707/99933Query processing, i.e. searching

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Memory System Of A Hierarchy Structure (AREA)

Abstract

本发明涉及一种用于高速缓存刷新的高速缓存刷新系统和方法,高速缓存刷新根据在多处理器系统内的至少一个相应的指定事件而在高速缓存存储器内执行。本发明的实施例能够通过执行至多指定大小的存储器读而减少或最小化处理器总线的负载,并且能够通过执行由指定事件直接触发的高速缓存刷新而增加高速缓存刷新与相应指定事件的同时执行,从而实现了高速和自动的高速缓存刷新算法。

Description

高速缓存刷新系统及其方法
技术领域
本发明涉及一种高速缓存刷新系统及其方法。
背景技术
在一般处理器系统中,为了加快处理器访问主存储器的速度,高速缓存存储器暂时存储处理器所需的数据。通常,高速缓存存储器保留称为“高速缓存标记”的管理信息,以管理存储在高速缓存存储器的高速缓存块内的数据是否是主存储器内的数据之中的数据,存储在高速缓存存储器的高速缓存块内的数据是否被改变并且是否处于带有与主存储器内的数据内容不同的内容的状态(即修改状态或“脏”状态)。
在包括多个处理器的多处理器系统中,存在多个高速缓存存储器且每个高速缓存存储器都带有探测装置,以确保存储一致性或数据一致性。探测装置检验处理器总线指令是否对存储在每个高速缓存存储器中的数据生成影响,存储在每个高速缓存存储器中的数据是否应当被返回等,以及使对应的数据无效。
高速缓存存储器包括回录式和直写式。对于回录式高速缓存存储器(它在某个时期期间保留数据而没有立即反映在主存储器内由处理器进行的数据更新),需要主动在主存储器内写回由处理器改变的数据,其内容与主存储器的内容不同。例如,当存储在高速缓存存储器内的数据被发送至不带有探测装置的输入/输出设备时,需要写回。高速缓存刷新算法用于再次在主存储器内写入数据,其内容在存储在主存储器内的数据当中被改变。进而,“脏”状态下的高速缓存块被称为“脏”块。
高速缓存刷新算法对于容错或复制系统以及到不带有探测装置的输入/输出设备的数据传输很有用处。换言之,在校验点系统的情况中,需要再次在主存储器内写入只在高速缓存存储器内改变和存储的数据,其中,当发生指定系统故障中的一种时,校验点系统从先前获得的校验点重新开始进程。
一般而言,高速缓存刷新算法根据包含高速缓存刷新指令的软件来执行。参考高速缓存标记的内容,处理器利用软件来判断高速缓存块是否是“脏”块。如果高速缓存块是“脏”块,则再次执行用于在主存储器内写入对应高速缓存块的数据的高速缓存刷新算法。
如上所述,当检验所有高速缓存块的状态之后检验出高速缓存块的状态是“脏”的时候,处理器应当执行高速缓存刷新算法,即,在主存储器内重新记录数据。检验所有高速缓存块的状态需要一定的规定时间量。
将参考图1对相关技术的多处理器系统进行描述。如图1所示,相关技术的多处理器系统包括:连接至处理器总线的多个处理器(CPU,中央处理器)5、连接至每个处理器的的多个高速缓存存储器1、连接至处理器总线的存储器控制器2、在存储器控制器2控制之下的主存储器3和连接至处理器总线的其它系统资源4。每个处理器均包括位于内部处理器和外部处理器的一个背侧或两个背侧的高速缓存存储器1。内部处理器的高速缓存存储器称为1级高速缓存存储器而外部处理器的高速缓存存储器称为2级高速缓存存储器。
每个处理器5通过公用处理器总线互相连接且能够通过该处理器总线访问主存储器3,以取指令和加载/存储数据。对主存储器3的访问通常通过存储器控制单元2而获得。
相关技术的多处理器系统连接至诸如输入/输出设备的其它系统资源4以及上述基础资源,以执行特别分配的功能。如果提供有32位地址和64位数据,诸如处理器5的所有设备、存储器控制器2和其它系统资源4应当具有与处理器总线的标准接口相同的标准接口。进而,每个处理器5的高速缓存存储器1带有基于标准接口的结构。
每个处理器5在内部拥有32千字节(KB)1级指令高速缓存存储器和32KB1级高速缓存存储器,且在背侧外部拥有1兆字节(MB)2级高速缓存存储器。
将参考图2对1级数据高速缓存存储器的示例性结构进行描述。1级数据高速缓存存储器包括标记RAM(随机存取存储器)和数据RAM。1级数据高速缓存存储器实现8路成组相联映射。8个高速缓存块中的每一个均包括4个字(W0~W3,分别是64位)和与这4个字对应的地址标记(20位)。进而,每个高速缓存块均带有用于表示每个高速缓存块的状态的3个状态信息位,即:有效状态位、修改状态位和共享状态位。
进而,1级指令高速缓存存储器具有与1级数据高速缓存存储器相同的结构。但是,1级指令高速缓存存储器只带有作为状态信息位的有效状态位。进而,2级高速缓存存储器在数据RAM中存储数据和指令并采用直接映射。
在相关技术中,为了提高高速缓存的效率,1级高速缓存存储器和2级高速缓存存储器采用回写式作为写策略。但是,由于这种写策略,可能造成与处理器之间以及处理器和输入/输出设备之间的存储一致性相关的问题。为了克服这个问题,每个处理器5的高速缓存控制器单元使用修改/独享/共享/无效(MESI)协议。图3示出了MESI协议。
如图3所示,MESI协议的状态包括修改状态、独享状态、共享状态和无效状态,且该状态可以通过组合每个高速缓存块的状态信息位的方式来表达。修改状态、独享状态和共享状态是有效状态的示例。高速缓存刷新算法尤其在有效状态中的修改状态和独享状态下执行。
例如,无效状态的状态信息位如下所示:有效状态位(V)是0;修改状态位(M)是0;以及共享状态位(S)是0。修改状态的状态信息位如下所示:有效状态位(V)是1;修改状态位(M)是1;以及共享状态位(S)是0。共享状态的状态信息位如下所示:有效状态位(V)是1;修改状态位(M)是0;以及共享状态位(S)是1。独享状态的状态信息位如下所示:有效状态位(V)是1;修改状态位(M)是0;以及共享状态位(S)是0。
已由每个处理器根据MESI协议分开管理的高速缓存存储器1通过执行高速缓存刷新算法来保留存储一致性,其中,当发生多处理器系统的确定事件时,高速缓存刷新算法再次在主存储器内写入修改状态(即“脏”状态)下的高速缓存块。该过程是:如果确定事件发生,则每个处理器5执行与该确定事件相关联的异常程序。高速缓存刷新算法在异常程序期间的适当时刻执行。通过加载等于2级高速缓存存储器大小的两倍的连续存储区域,为1级数据高速缓存存储器和2级高速缓存存储器的已修改的高速缓存块执行高速缓存刷新算法。
需要高速缓存刷新的事件通常是紧急的,因此事件的进程需要即时的关注。但是,因为连接至处理器总线的所有处理器同时执行与2级高速缓存存储器的大小一样大的存储器读,因此处理器总线的负载不必要地增加了。进而,因为高速缓存刷新算法由每个处理器的异常程序执行,所以在确定事件发生之后的时间周期之内执行合理的高速缓存刷新算法。因此,可能存在高速缓存刷新算法不能被即时执行的问题。
本发明的其它优点、目标和特性将在随后的说明中部分地描述,经过以下检验或从本发明的实践中学习,上述优点、目标和特性对于本领域的普通技术人员来说是显而易见的。本发明的目标和优点可以如所附权利要求书中所特别指出的来实现和获得。
发明内容
本发明的一个目标是至少解决上述问题和/或缺点并至少提供下面所述的优点。
本发明的另一目标是提供一种多处理器系统及其方法,它可以减少或最小化处理器总线的负载。
本发明的另一目标是提供一种多处理器系统及其方法,它响应于多处理器系统内的事件,提供高速和自动的高速缓存刷新操作。
本发明的另一目标是提供一种多处理器系统及其方法,它可以通过执行每个处理器的有界存储器读(例如至多2级高速缓存存储器的大小)的方式来减小或最小化处理器总线的负载。
本发明的另一目标是提供高速缓存刷新与确定事件的同时执行,它通过使用该确定事件直接触发高速缓存刷新进程来实现。
为了实现至少上述目标的全部或部分,提供了一种高速缓存刷新系统,包括:有效阵列单元,用来提供指定状态下的至少一个高速缓存块的用于更新算法的高速缓存块信息和用于高速缓存刷新算法的索引信息;存储单元,用来存储标记和为更新算法提供匹配地址信息以及为高速缓存刷新算法提供标记信息;总线探测器,用来通过监测处理器总线和跟踪每个高速缓存存储器的状态来执行用于标记存储单元和有效阵列单元的更新算法;以及高速缓存刷新单元,用来检测系统事件,以执行用于指定状态下的相应高速缓存块的高速缓存刷新算法。
为了进一步实现至少上述目标的全部或部分,提供了一种高速缓存刷新方法,包括:通过监测处理器总线的事务和跟踪与每个处理器对应的高速缓存存储器的状态的方式来更新状态信息;以及通过检测指定事件、使用状态信息生成读事务以及输出生成的读事务的方式,来刷新高速缓存块中处于指定状态下的至少一个高速缓存块。
为了实现至少上述目标的全部或部分,提供了一种多处理器系统,其包括:耦合至处理器总线的多个处理器;耦合至每个处理器的至少一个高速缓存存储器;耦合至处理器总线的存储器控制器;以及耦合至处理器总线的高速缓存刷新系统,其中,高速缓存刷新系统包括:用于提供高速缓存状态信息的第一单元;耦合至第一单元并用于更新高速缓存状态信息的第二单元,以及耦合至第一单元的第三单元,用于检测系统事件,以响应检测到的事件,为处于指定状态下的相应高速缓存块执行高速缓存刷新以。
本发明的其它优点、目标和特性将在随后的说明中部分地描述,经过以下检验或从本发明的实践中学习,上述优点、目标和特性对于本领域的普通技术人员来说是显而易见的。本发明的目标和优点可以如所附权利要求中所特别指出的来实现和获得。
附图说明
现在,结合下面附图对本发明进行详细的描述,其中相同的参考数字指相同的元件。在附图中:
图1示出了相关技术的多处理器系统;
图2示出了示例性1级数据高速缓存存储器结构;
图3示出了MESI协议;
图4示出了根据本发明的优选实施例的多处理器系统的示例性实施例;
图5示出了根据本发明的优选实施例的图4中的高速缓存刷新系统的示例性实施例;
图6a示出了图5中的有效阵列单元的示例性3维结构;
图6b示出了图5中的有效阵列单元的示例性2维结构;
图7示出了图6a中的示例性DCAND;
图8示出了图6a中的示例性DCOR;
图9示出了图5中的示例性标记存储单元;
图10示出了图9中的示例性地址映射;
图11示出了根据本发明的另一优选实施例的高速缓存刷新方法的示例性实施例;
图12示出了图11中的示例性更新过程;
图13示出了示例性置放操作;
图14示出了图11中的示例性高速缓存刷新过程;以及
图15示出了示例性地址排列操作。
具体实施方式
图4是示出根据本发明的一个示例性实施例的多处理器系统的框图。如图4所示,根据本发明的多处理器系统可以包括带有总线探测机制的回录式高速缓存存储器6且包括:耦合至处理器总线12的多个处理器7、耦合至处理器总线12的存储器控制器8、在存储器控制器8控制之下的主存储器9、耦合至处理器总线12的其它系统资源11以及耦合至处理器总线12的高速缓存刷新系统100。图4示出了4个处理器7(例如处理器0~处理器3)和对应于处理器数目的4个高速缓存存储器6(例如高速缓存存储器0~高速缓存存储器3)。但是,本发明并不限于此。
图5是示出高速缓存刷新系统100的示例性实施例的框图。如图5所示,高速缓存刷新系统100能够根据确定或指定事件执行高速缓存刷新算法,并通过跟踪每个高速缓存存储器6的状态来管理其状态。高速缓存刷新系统100可以包括有效阵列单元30、总线探测器10、标记存储单元20以及高速缓存刷新单元40。
现在对有效阵列单元30进行描述。图6a是示出图5中的有效阵列单元的3维结构的框图,而图6b是示出图5中的有效阵列单元的2维结构的框图。
有效阵列单元30可以包括分治“与”决策树(DCAND)31和分治“或”决策树(DCOR)32。优选地,有效阵列单元30提供带有用于有效状态(即独享状态或修改状态)下的高速缓存块中的更新方法或算法所需的高速缓存块信息的总线探测器10,并且提供带有高速缓存刷新方法或算法所需的索引信息的高速缓存刷新单元40。
更确切地说,当确定事件(即指定事件)发生时,高速缓存刷新系统100能够对高速缓存存储器6内处于独享状态或修改状态下的高速缓存块执行高速缓存刷新。有效阵列单元30可以用于有效管理高速缓存刷新进程的执行。
有效阵列单元30可以包括有效阵列。有效阵列是3维阵列,其组件可以是表示对应高速缓存块是否处于独享状态或修改状态的有效位,它处于有效状态且有效阵列的一个轴是处理器7。因此,如图6b所示,对于每个处理器存在一个2维的有效阵列。图6a示出了用于一个处理器7的有效阵列的3维结构的示例。如图6a所示,由横轴(例如索引0~索引7)和纵轴(例如0x0000~0x7FFF)构成且作为一个有效阵列的一个矩形对象表示一个处理器7。如果处理器的个数是4,作为有效阵列的相应矩形对象的个数应当也是4。进而,图6b示出了对于4个处理器7的有效阵列的2维结构的示例。每个处理器7包括8个高速缓存块且每个高速缓存块包括多个有效位。但是,本发明并不限于此。
如果有效位是第一预设值(例如‘1’),那么该高速缓存块处于有效状态,因此高速缓存块应当被清除。因此,执行高速缓存刷新进程。相反,如果有效位是第二预设值(例如‘0’),那么它表示该高速缓存块处于无效状态,因此无需清除该高速缓存块。因此,没有执行高速缓存刷新进程。
进而,为了有效执行更新进程和高速缓存刷新进程,有效阵列单元30可以实施逻辑树,例如DCAND 31和DCOR 32。图7和8分别示出图6a中的确定高速缓存块的示例性DCAND 31和简化DCOR 32。图7所示的DCAND 31涉及或关于用于一个高速缓存设置索引的所有有效位,且能够将高速缓存块信息提供给总线探测器10。图8所示的DCOR 32是在指示一个高速缓存块的15位中带有5位索引的有效位的示例,且能够为高速缓存刷新器41提供索引信息。
图9是示出图5中的示例性标记存储单元的框图。图10是示出图9中的示例性地址映射的框图。
标记存储单元20可以包括标记RAM单元21和匹配逻辑单元22,且优选地,标记存储单元20存储标记并为总线探测器10提供用于更新进程的匹配地址信息和为高速缓存刷新单元40提供用于高速缓存刷新进程的标记信息。标记RAM单元21能够存储用于确定索引的确定个数的标记,且匹配逻辑单元22能够通过与标记RAM单元21接口连接来输出匹配地址信息,并为总线探测器10提供处理器总线地址是否与相应地址索引的标记相匹配的信息。匹配逻辑单元22输出标记信息并为高速缓存刷新单元40提供构成‘读’事务地址的标记。
包含在标记存储单元20内的标记RAM单元21能够为索引存储标记的确定个数,且该索引的大小与如图10所示的标记的个数成反比。对于32KB 8路成组相联1级数据高速缓存存储器和1MB直接2级高速缓存存储器的示例性结构,索引是15位而标记是12位。
图9示出了标记存储单元20的示例性结构。标记RAM单元21可以包括用于每个处理器7的8个标记RAM(例如标记RAM 0~标记RAM 7)。匹配逻辑单元22可以直接耦合至标记RAM单元21,且包括分别与每个标记RAM连接的匹配逻辑(例如匹配逻辑0~匹配逻辑7)。因此,匹配逻辑单元22能够更新相应标记RAM的内容并提取用于高速缓存刷新进程的地址。进而,优选地,匹配逻辑单元22从事务正在处理器总线12上进行的地址当中判断出是否存在匹配每个高速缓存存储器6的地址,并通知总线探测器10是否存在该地址。因此,可以正常地执行对标记RAM的更新。
换言之,在图9中,事务地址中的地址A(12:26)被输入到标记RAM单元21的标记RAM中,且地址A(0:11)被输入到匹配逻辑单元22的匹配逻辑中。例如,匹配逻辑0将是否与标记RAM 0匹配输出至匹配(0,0),匹配逻辑1将是否与标记RAM 1匹配输出至匹配(0,1),……,以及匹配逻辑7将是否与标记RAM 7匹配输出至匹配(0,7)。优选地,如果将“1”作为匹配输出的“或”运算结果而输出,则匹配逻辑单元22通知总线探测器10该地址相匹配。进而,标记RAM单元21接收来自高速缓存刷新单元40的索引,且匹配逻辑单元22为高速缓存刷新单元40提供与该索引对应的标记信息。
现在对总线探测器10进行说明。总线探测器10能够通过监测对应的处理器总线(例如:优选地,当被直接耦合至处理器总线12时)和通过利用更新算法或方法来跟踪每个高速缓存存储器6的状态的方式,来执行用于标记存储单元20和有效阵列单元30的更新算法或方法。因此,总线探测器10能够对于标记存储单元20和有效阵列单元30执行更新进程。当执行用于标记RAM单元21的更新进程时,总线探测器10通过使用DCAND 31的高速缓存块信息来执行置放算法或进程,帮助实现精确的更新。
现在对高速缓存刷新单40进行描述。高速缓存刷新单元40能够检测系统的确定事件,通过使用其自身的高速缓存刷新进程来生成‘读’事务并输出‘读’事务,其中‘读’事务使每个处理器7都对于有效状态下的高速缓存块执行高速缓存刷新进程。
高速缓存刷新单元40可以包括事件检测器42、高速缓存刷新器41和高速缓存总线主控器43。优选地,事件检测器42检测系统的确定事件是否发生,且高速缓存刷新器41通过执行高速缓存刷新进程根据索引信息和标记信息(相应地址被映射到其上面)生成‘读’事务。高速缓存总线主控器43能够输出已生成的‘读’事务至处理器总线12,并把‘读’事务转发至每个处理器7。因此,可以执行用于高速缓存存储器6的高速缓存刷新进程。
高速缓存刷新器41能够通过使用DCOR 32的索引信息执行地址管理算法或进程(例如地址管理算法)而提取该索引,通过为标记RAM单元21提供该索引而获得来自匹配逻辑单元22的标记信息,以及通过结合索引和标记而映射该地址。
图11示出根据本发明的高速缓存刷新方法的实施例。如图11所示的高速缓存刷新方法的实施例可以应用于如图5所示的系统并结合该系统来描述。但是,本发明并不限于此。
如图11所示,在进程开始后,首先,总线探测器10通过监测相应处理器总线12(当被直接连接至处理器总线12时)的事务和通过跟踪对应于每个处理器的每个高速缓存存储器6的状态,执行用于标记存储单元20的标记RAM和有效阵列单元30的有效阵列的更新算法(步骤S10)。优选地,总线探测器10是单独运行的。
进而,高速缓存刷新单元40通过检测确定事件、利用标记RAM和有效阵列生成‘读’事务并输出‘读’事务,对高速缓存存储器6内处于有效状态下的高速缓存块执行高速缓存刷新进程(步骤S20)。该进程可以在步骤S20结束。
图12示出图11中的示例性更新过程。如图12所示,在进程开始后,总线探测器10实时监测在处理器总线12上是否有新事务开始(步骤S101)。
在监测步骤确定有新事务开始的情况中,总线探测器10能够通过提取事务的属性而判断事务的属性是否是‘读’(步骤S102)。
在判断步骤之后确定属性是‘读’的情况中,总线探测器10可以判断是否从除了当前事务主处理器7(例如处理器0)之外的处理器(例如处理器1、处理器2和处理器3)中推断出共享(步骤S103)。
在判断步骤确定从除了当前事务主处理器之外的处理器中推断出共享的情况中,可以判断是否存在其地址匹配共享推断的处理器(步骤S104)。在不存在这种处理器的情况中,优选地,总线探测器10停止其自己的运行。相反,在存在这种处理器的情况中,总线探测器10没有把事务主处理器7的有效位从无效状态(例如有效位=0)设置成有效状态(例如有效位=1),且清除其地址匹配共享推断的处理器的有效位,把有效状态改变成无效状态(步骤S105)。换言之,高速缓存存储器6内的高速缓存块处于共享状态,因此,即使发生系统事件也无需执行高速缓存刷新算法。
另一方面,作为判断步骤(步骤S103)的结果,在没有推断出共享的情况中,换言之,在没有处理器高速缓存该地址的情况中,有效阵列单元30通过优选使用DCAND 31根据置放算法来选择高速缓存块,并为总线探测器10提供高速缓存块信息。优选地,总线探测器10根据置放算法来接收高速缓存块信息(步骤S106),根据与所选择的高速缓存块内的地址对应的索引而在位于指定位置内的标记存储单元20的标记RAM单元内存储标记,以及把有效阵列单元30的相应有效位从无效状态设置成有效状态(步骤S108)。换言之,当前事务主处理器7保持对相应数据的独享,因此,当发生系统事件时,需要执行高速缓存刷新进程。
优选地,用于存储标记的位置的指定由与该地址对应的索引自动执行。相反,优选地,对将被使用的高速缓存块的选择根据DCAND 31而定。使用DCAND 31选择高速缓存块可以是置放进程。
现在参考图13对示例性置放算法进行描述。如图13所示,示例性置放算法可以使用图7中的DCAND。
在本说明书中假定朝向高速缓存块0的方向是低方向而朝向高速缓存块7的方向是高方向。在每个判断步骤中,在选择低方向的情况中,它指的是‘0’。相反,在选择高方向的情况中,它指的是‘1’。但是,本发明并不限于此。置放算法是跟踪处于下面状况的低方向高速缓存块:DCAND 31的每步输出是‘0’,示出在对应分支上存在空高速缓存块。因此,如图13所示,在从右端算起的第一“与”判断步骤上,低方向是‘0’,因此根据低方向选择它指的是‘0’。在从右端算起的第二“与”判断步骤上,高方向是‘0’,因此根据高方向选择它指的是‘1’。在从右端算起的第三“与”判断步骤上,高方向是‘0’,因此根据高方向选择它指的是‘1’。最后,选择对应于‘011’的高速缓存块3。
另一方面,在判断步骤(步骤S102)确定属性不是‘读’的情况中,总线探测器10可以判断属性是否是‘有目的的读以进行修改’(步骤S109)。在判断步骤(步骤S109)确定属性是‘有目的的读以进行修改’的情况中,可以判断是否存在其地址匹配‘有目的的读以进行修改’的处理器(步骤S110)。在存在这种处理器的情况中,总线探测器10清除带有用于该地址的标记的匹配处理器的有效位,把其从有效状态改变成无效状态(步骤S111)。换言之,在高速缓存该数据后,当前事务主处理器7具有改变的意向,因此它进入改变状态。然后,其它处理器使用于该数据的高速缓存状态变成无效,且总线探测器10执行更新算法,从而清除了其地址匹配的每个处理器的有效位。
优选地,总线探测器10还能够为事务主处理器7执行接收高速缓存块信息的步骤S106、存储标记的步骤S107和设置有效位的步骤S108。换言之,总线探测器10使用置放算法为处理器更新标记存储单元20的标记RAM和有效阵列单元30的有效阵列。进而,作为判断步骤(步骤S110)的结果,甚至在不存在匹配处理器的情况中,总线探测器10也为事务主处理器7执行接收高速缓存块信息的步骤S106、存储标记的步骤S107和设置有效位的步骤S108。
另一方面,在判断步骤(步骤S109)确定属性不是‘有目的的读以进行修改’的情况中,总线探测器10可以判断属性是否是‘取消’事务(步骤S112)。此时,在判断步骤(步骤S112)确定属性是‘取消’事务的情况中,总线探测器10判断是否存在其地址匹配‘有目的的读以进行修改’的处理器(步骤S110)并执行清除有效位的步骤(步骤S111)、接收高速缓存块的步骤(步骤106)、所述存储标记的步骤(步骤S107)和如在属性是‘有目的的读以进行修改’的情况中执行的设置有效位的步骤。换言之,‘取消’事务指能够成为事务主处理器的当前总线主处理器7将要改变共享状态下的高速缓存数据,且总线主处理器7的高速缓存存储器6的状态从共享状态变成修改状态。因此,在属性是‘取消’事务的情况下的总线探测器能够执行与属性是‘有目的的读以进行修改’的情况下相同的操作。
相反,在判断步骤(步骤S112)确定属性不是‘取消’事务的情况中,总线探测器10判断探测推(snoop push)是否是通过由高速缓存控制器的替换操作调出的方式而执行的(步骤S113)。在判断步骤(步骤S113)确定探测推不是通过被调出的方式而执行的情况中,总线探测器可以结束其运行。相反,在判断步骤(步骤S113)确定探测推是通过被调出的方式而执行的情况中,优选地,总线探测器10清除带有用于该地址的标记的匹配处理器的有效位,把其从有效状态改变成无效状态(步骤S114)。
换言之,优选地,探测推在三种情况下执行。第一种情况是探测击中(snoop hit)由其它总线主处理器7的‘读’执行的情况,高速缓存存储器6的状态被切换为共享状态。第二种情况是探测击中由其它总线主处理器7的‘写’或‘有目的的读以进行修改’执行的情况,高速缓存存储器6的状态被切换为无效状态。第三种情况是调出由高速缓存控制器的替换操作执行的情况,高速缓存存储器6的状态被切换为无效状态。因此,对于执行探测推的所有情况,当发生系统事件时,无需为相应地址执行高速缓存刷新算法,因此,总线探测器10清除相应的有效位。
根据总线探测器10的更新算法或进程的上述实施例,可以精确地管理每个处理器的高速缓存存储器状态,使得发生系统事件时高速缓存刷新单元40能够正确执行高速缓存刷新算法。
现在对高速缓存刷新(步骤S20)进行描述。图14是示出图11中的示例性高速缓存刷新过程的流程图。图14示出发生事件时处理器7的处于有效状态下的高速缓存块。例如,通过在图6b示出的处理器0~处理器3中查找处于有效状态下的处理器和查找已确认或所选择的处理器的有效状态下的高速缓存块,可以提取相应地址且生成/输出事务,以执行高速缓存刷新进程。
如图14所示,在进程开始之后,高速缓存刷新单元40的事件检测器42实时通知高速缓存刷新器41是否发生被预指定用于执行高速缓存刷新算法的系统事件。高速缓存刷新器41从事件检测器42接收有关是否发生这种事件的通知(步骤S201)。
高速缓存刷新器41能够对于所有处理器7,通过对有效阵列的所有有效位进行“或”运算而检验所有处理器的有效阵列状态是否有效(例如整个有效阵列状态=1)(步骤S202)。在检验步骤确定所有处理器的有效阵列状态是有效的情况中,高速缓存刷新器41对于从处理器0到处理器3的每个处理器7的高速缓存存储器6执行高速缓存刷新算法。所有处理器的有效阵列状态通过对于所有处理器的有效阵列,对所有有效位进行“或”运算的方式而获得。换言之,如果至少一个有效位是‘1’,即如果至少一个有效位处于有效状态,则所有处理器的有效阵列状态是有效的。
特别地,高速缓存刷新器41可以判断第一处理器N(N=0)的有效阵列状态是否是有效的(例如有效阵列状态(N)=1)(步骤S204)。有效阵列状态(N)能够通过对根据每个高速缓存块而集合的DCOR 32的最后输出进行“或”运算而获得。
在判断步骤确定处理器的有效阵列状态不是有效的情况中,即,处理器的有效阵列状态是无效(例如有效阵列状态(N)=0)的情况中,高速缓存刷新器41为下一个处理器N(N=N+1)执行处理器有效阵列状态的判断(步骤205)。相反,在判断步骤(步骤S204)确定有效阵列状态是有效(例如有效阵列状态(N)=1)的情况中,高速缓存刷新器41可以判断处理器的第一高速缓存块n(n=0)的有效阵列状态是否为有效(例如有效阵列状态(N,n)=1)(步骤S207)。处理器的第一高速缓存块的有效阵列状态是否为有效可以通过检验根据每个高速缓存块而集合的DCOR 32的最终输出而确定。
在判断步骤(步骤S207)确定高速缓存块的有效阵列状态不是有效的情况中,即,有效阵列状态是无效(例如有效阵列状态(N,n)=0)的情况中,高速缓存刷新器41为下一个高速缓存块n(n=n+1)(步骤S208)执行判断高速缓存块有效阵列状态的步骤(步骤S207)。相反,在判断步骤(步骤S207)确定高速缓存块的有效阵列状态是有效(例如有效阵列状态(N,n)=1)的情况中,高速缓存刷新器41把从地址管理算法中提取的值作为索引、通过为标记存储单元20的标记RAM单元21提供该索引而接收来自相应标记存储单元20的匹配逻辑单元22且与该索引对应的标记信息、以及通过映射相应索引和标记而提取指定的对应高速缓存块地址(步骤S209)。提取高速缓存块地址的步骤通过从相应高速缓存块的有效阵列当中提取与有效状态下的有效位对应的地址来执行。
高速缓存刷新器41能够为与提取的高速缓存块地址对应的高速缓存块生成‘读’事务,并通过高速缓存总线主控器43输出‘读’事务至处理器总线12。因此,与对应高速缓存块所属的高速缓存存储器对应的处理器7为对应高速缓存存储器6的高速缓存块执行高速缓存刷新进程(步骤S210)。特别地,用于高速缓存块的‘读’事务的生成通过生成与从高速缓存块的有效阵列当中所提取的用于有效状态下的有效位的地址对应的‘读’事务来执行。
可以使用DCOR 32来实施地址管理算法。现在将对示例性地址管理算法进行描述。图15示出使用图8中所示的DCOR的示例性地址管理算法。
在本说明书中假定朝向索引‘0b00000’的方向是低方向而朝向索引‘0b11111’的方向的高方向。在每个判断中,在选择低方向的情况中,它指的是‘0’。相反,在选择高方向的情况中,它指的是‘1’。地址管理算法能够跟踪在下面状况下的低方向索引:DCAND 32的每个判断输出是‘1’,示出在对应分支上存在被占用的高速缓存块。因此,如图15所示,在从右端算起的第一“或”判断上,低方向是‘1’,因此根据低方向选择它指的是‘0’。在从右端算起的第二“或”判断上,低方向是‘1’,因此根据低方向选择它指的是‘0’。在从右端算起的第三、第四和第五“或”判断上,高方向是‘1’,因此根据高方向选择它指的是‘1’。最后,它指的是‘00111’,因此选择索引‘0b00111’。
然后,高速缓存刷新器41可以判断被高速缓存刷新的高速缓存块在属于与处理器7(作为‘读’事务的对象)对应的高速缓存存储器6的高速缓存块当中是否是最后的高速缓存块(步骤S211)。当作为‘读’事务的对象的处理器7的个数是4且属于与每个处理器对应的高速缓存存储器6的高速缓存块的个数是8时,这种情况中的最后高速缓存块指的是第8个高速缓存块((M,N)=(M,7),此时,0≤M≤3)。但是,本发明并不限于此。
在判断步骤(步骤S211)确定高速缓存块不是最后高速缓存块的情况中,高速缓存刷新器41执行下一个(步骤S208)高速缓存块的判断有效阵列状态的步骤(步骤S207)。相反,在判断步骤(步骤S211)确定高速缓存块是最后高速缓存块的情况中,高速缓存刷新器41可以判断作为‘读’事务的对象的处理器是否是所有处理器之中的最后处理器(步骤S212)。最后处理器可以指第4个处理器(例如(M,N)=(3,N),同时,N是7)。在判断步骤(步骤S212)确定该处理器不是最后处理器的情况中,高速缓存刷新器41可以执行下一个处理器(步骤S205)的所述判断有效状态的步骤。相反,在判断步骤(步骤S212)确定该处理器是最后处理器的情况中,高速缓存刷新器41可以结束高速缓存刷新进程。
如上所述,如果每个处理器7的所有高速缓存块内的高速缓存刷新进程结束,那么高速缓存刷新器41可以从头开始重复进程或相同算法。优选地,重复继续进行到每个处理器7禁止对应的高速缓存存储器6。每个处理器7可以根据每个处理器7的有效位来禁止对应的高速缓存存储器6。
如上所述,根据本发明的高速缓存刷新系统及其方法具有多种优点。本分明的实施例能够减小或最小化处理器总线的负载,例如通过执行至多与每个处理器的2级高速缓存存储器一样大小的存储器读来实现。进而,实施例能够增加或确保确定事件与高速缓存刷新的同时进行,它通过执行由该确定事件直接触发的高速缓存来实现。这样,可以执行高速的高速缓存刷新进程。进而,高速缓存刷新进程能够自动生成。
在本说明书中对的“一个实施例”、“实施例”、“示例实施例”等的任何参考指根据实施例而描述的特定特性、结构或特征被包含在本发明的至少一个实施例中。出现在本说明书中各个地方的这些词组不必都指同一实施例。进而,当特定特性、结构或特征根据任一实施例而描述时,认为它处于本领域的普通技术人员的理解范围之内,以影响根据其它实施例的特性、结构或特征。进而,为了易于理解,一些方法过程可能已作为分开的过程被描述;但是这些分开描述的过程在其执行中不应当被认为具有必要的所属顺序。即,一些过程在执行时可以采用另一顺序或同时执行等。
上述实施例和优点仅仅是示例性的,且不能视作本发明的限制。本发明的讲解可以很容易地应用于其它类型的装置。本发明的描述用于说明,但不用来对权利要求书的范围进行限制。许多改变、修改和变化对于本领域的普通技术人员来说是显而易见的。在权利要求书中,设置加功能的条款用于覆盖实现所述功能的结构,不仅包括结构上的等效,还包括等效的结构。

Claims (23)

1.一种高速缓存刷新系统,包括:
有效阵列单元,用来提供指定状态下的至少一个高速缓存块的用于更新算法的高速缓存块信息和用于高速缓存刷新算法的索引信息;
存储单元,用来存储标记和提供用于更新算法的匹配地址信息和用于高速缓存刷新算法的标记信息;
总线探测器,用来通过监测处理器总线和跟踪每个高速缓存存储器的状态来执行用于标记存储单元和有效阵列单元的更新算法;以及
高速缓存刷新单元,用来检测系统事件,以为指定状态下的相应高速缓存块执行高速缓存刷新算法。
2.如权利要求1所述的系统,其中该存储单元包括:
标记RAM单元,用来存储用于指定索引的多个标记;以及
耦合至标记RAM单元的匹配逻辑单元,用来通过输出匹配地址信息而提供处理器总线地址是否匹配相应地址索引的标记的信息,且其中该匹配逻辑单元通过输出标记信息而提供构成用于读事务的地址的标记。
3.如权利要求1所述的系统,其中该总线探测器通过使用使用来自指定逻辑操作的高速缓存块信息运行置放算法而执行更新算法。
4.如权利要求3所述的系统,其中该指定操作是分治“与”树,其中该置放算法跟踪处于下面状况的低方向高速缓存块:分治“与”树的每个输出是‘0’,示出在相应分支上存在空高速缓存块。
5.如权利要求1所述的系统,其中该高速缓存刷新单元包括:
事件检测器,用来检测是否发生系统事件;
高速缓存刷新器,用来通过执行高速缓存刷新算法,根据索引信息和标记信息生成对相应高速缓存块的读事务,其中相应地址被映射到索引信息和标记信息上;以及
高速缓存总线主控器,用来通过输出已生成的读事务至处理器总线以把读事务转发至每个处理器,而执行用于高速缓存存储器的高速缓存刷新算法。
6.如权利要求5所述的系统,其中该高速缓存刷新器通过使用来自指定逻辑操作的索引信息执行地址排列而提取相应索引,从提供该索引的存储单元的匹配逻辑单元获得标记信息,以及通过结合索引和标记映射该地址。
7.如权利要求6所述的系统,其中该指定逻辑操作是分治“或”树,其中该地址排列跟踪处于下面状况的低方向索引:分治“或”树的每个输出是‘1’,示出在相应分支上存在被占用的高速缓存块。
8.如权利要求1所述的系统,其中该指定操作是包括修改状态和独享状态的有效状态,且其中该高速缓存刷新单元生成读事务以对于有效状态下的高速缓存块执行高速缓存刷新算法,并输出读事务至处理器总线。
9.一种高速缓存刷新方法,包括:
通过监测处理器总线的事务和跟踪与每个处理器对应的高速缓存存储器的状态,更新状态信息;以及
通过检测指定事件、使用状态信息生成读事务以及输出生成的读事务,刷新高速缓存块中处于指定状态下的至少一个高速缓存块。
10.如权利要求9所述的方法,其中所述更新状态信息包括:
通过在处理器总线上监测事务的开始和通过提取事务的属性,判断事务的属性是否是‘读’;
对于事务的读属性,判断从除了事务主处理器之外的处理器中是否推断出共享属性,其中,当存在其地址匹配共享推断的处理器时从该处理器推断出共享属性时,清除地址匹配的处理器的相应有效位,以设置无效状态,且没有把事务主处理器的相应有效位设置为有效状态。
11.如权利要求10所述的方法,其中所述更新状态信息包括:
在没有推断出共享属性的情况中,使用置放进程来接收高速缓存块信息;以及
根据高速缓存块信息在由与确定高速缓存块内的地址对应的索引指定的位置上存储标记,以及把相应高速缓存块的有效位设置成有效状态。
12.如权利要求10所述的方法,其中,当属性不是读事务时,所述更新状态信息包括:
判断属性是否是有目的的读以进行修改;
在事务的属性是有目的的读以进行修改的情况时,判断是否存在其地址匹配的处理器并清除地址匹配的处理器的有效位,变成无效,而在不存在其地址匹配的处理器的情况时不清除有效位;
使用置放进程接收高速缓存块信息;以及
根据高速缓存块信息,在由与确定高速缓存块内的地址对应的索引指定的位置上存储标记,以及把相应高速缓存块的有效位设置成有效状态。
13.如权利要求12所述的方法,其中,当属性不是有目的的发送以进行修改时,所述更新状态信息包括:
判断属性是否是取消事务;
在属性是取消事务的情况时,判断是否存在其地址匹配的处理器,并清除地址匹配的处理器的有效位,变成无效状态,而在不存在其地址匹配的处理器的情况时不清除有效位;
接收高速缓存块信息;以及
根据高速缓存块信息,在由与确定高速缓存块内的地址对应的索引指定的位置上存储标记,以及把相应高速缓存块的有效位设置成有效状态。
14.如权利要求13所述的方法,其中,当属性不是‘取消’事务时,所述更新状态信息包括:
判断探测推是否是通过由高速缓存控制器的替换操作调出的方式而执行;以及
当探测推是通过被调出的方式而执行的情况时,清除地址匹配的处理器的相应有效位。
15.如权利要求9所述的方法,其中所述刷新包括:
通过接收有关是否发生指定事件的通知,对于所有处理器判断有效阵列状态是否是有效状态;
在判断第一处理器的有效阵列状态是否是有效状态的步骤中确定第一处理器的有效阵列状态是有效状态的情况时,判断第一处理器的第一高速缓存块的有效阵列状态是否是有效状态;
在第一处理器的第一高速缓存块的有效阵列状态是有效状态的情况时,把从地址排列中提取的值设置为索引,接收与该索引对应的标记信息以及提取高速缓存块的地址;
通过为与提取的高速缓存块地址对应的高速缓存块生成读事务并通过输出已生成的读事务至处理器总线,对高速缓存块执行高速缓存刷新;以及
当执行高速缓存刷新的高速缓存块在与作为‘读’事务的对象的处理器对应的高速缓存块中是最后高速缓存块,且该处理器是所述所有处理器中的最后处理器的情况时,结束高速缓存刷新。
16.如权利要求15所述的方法,其中所述执行高速缓存刷新的步骤包括:当处理器的有效阵列状态不是有效状态的情况时,判断下一个处理器的有效阵列状态是否是有效状态。
17.如权利要求15所述的方法,其中所述执行高速缓存刷新的步骤包括:当处理器不是最后处理器的情况时,判断下一个处理器的有效阵列状态是否是有效状态。
18.如权利要求15所述的方法,其中所述执行高速缓存刷新的方法包括:当高速缓存块的有效阵列状态不是有效状态的情况时,判断下一个高速缓存块的有效阵列状态是否是有效状态。
19.如权利要求15所述的方法,其中所述执行高速缓存刷新的步骤包括:当高速缓存块不是最后高速缓存块的情况时,判断下一个高速缓存块的有效阵列状态是否是有效状态。
20.如权利要求9所述的方法,其中该指定状态是有效状态,且其中该状态信息包括标记信息和有效状态信息。
21.一种多处理器系统,包括:
耦合至处理器总线的多个处理器;
耦合至每个处理器的至少一个高速缓存存储器;
耦合至处理器总线的存储器控制器;以及
耦合至处理器总线的高速缓存刷新系统,其中高速缓存刷新系统包括:
第一单元,用于提供高速缓存状态信息;
第二单元,耦合至第一单元并用于更新高速缓存状态信息;以及
第三单元,耦合至第一单元,用于检测系统事件,以响应检测到的事件,为处于指定状态下的相应高速缓存块执行高速缓存刷新。
22.如权利要求21所述的系统,其中第二单元用于通过监测处理器总线和通过跟踪每个高速缓存存储器的状态来更新高速缓存状态信息。
23.如权利要求21所述的系统,其中第一单元包括:
有效阵列单元,用来提供指定状态下的至少一个高速缓存块的用于更新算法的高速缓存块信息和用于高速缓存刷新算法的索引信息;
标记存储单元,用来存储标记和提供用于更新算法的匹配地址信息和用于高速缓存刷新算法的标记信息。
CNB2003101244081A 2002-12-24 2003-12-24 高速缓存刷新系统及其方法 Expired - Fee Related CN1278240C (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
KR83582/2002 2002-12-24
KR1020020083582A KR100856626B1 (ko) 2002-12-24 2002-12-24 캐시 플러시 시스템 및 방법

Publications (2)

Publication Number Publication Date
CN1534486A true CN1534486A (zh) 2004-10-06
CN1278240C CN1278240C (zh) 2006-10-04

Family

ID=32588918

Family Applications (1)

Application Number Title Priority Date Filing Date
CNB2003101244081A Expired - Fee Related CN1278240C (zh) 2002-12-24 2003-12-24 高速缓存刷新系统及其方法

Country Status (3)

Country Link
US (1) US7171520B2 (zh)
KR (1) KR100856626B1 (zh)
CN (1) CN1278240C (zh)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103370696A (zh) * 2010-12-09 2013-10-23 国际商业机器公司 多核系统以及核数据读取方法
CN104166608A (zh) * 2013-05-19 2014-11-26 擎泰科技股份有限公司 存取芯片内建只读存储器的方法及计算机系统
WO2015018350A1 (zh) * 2013-08-09 2015-02-12 华为技术有限公司 一种缓存刷新方法和装置

Families Citing this family (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7412569B2 (en) * 2003-04-10 2008-08-12 Intel Corporation System and method to track changes in memory
US7620476B2 (en) * 2005-02-18 2009-11-17 Irobot Corporation Autonomous surface cleaning robot for dry cleaning
US8930635B2 (en) 2009-12-14 2015-01-06 International Business Machines Corporation Page invalidation processing with setting of storage key to predefined value
US8510511B2 (en) * 2009-12-14 2013-08-13 International Business Machines Corporation Reducing interprocessor communications pursuant to updating of a storage key
US9069674B2 (en) * 2012-11-27 2015-06-30 International Business Machines Corporation Coherent proxy for attached processor
US9442852B2 (en) 2012-11-27 2016-09-13 International Business Machines Corporation Programmable coherent proxy for attached processor
US9135174B2 (en) 2012-11-27 2015-09-15 International Business Machines Corporation Coherent attached processor proxy supporting master parking
US8938587B2 (en) 2013-01-11 2015-01-20 International Business Machines Corporation Data recovery for coherent attached processor proxy
US8990513B2 (en) 2013-01-11 2015-03-24 International Business Machines Corporation Accelerated recovery for snooped addresses in a coherent attached processor proxy
US9021211B2 (en) 2013-01-11 2015-04-28 International Business Machines Corporation Epoch-based recovery for coherent attached processor proxy
US9606922B2 (en) 2013-03-01 2017-03-28 International Business Machines Corporation Selection of post-request action based on combined response and input from the request source
CN105190569A (zh) * 2013-06-25 2015-12-23 惠普发展公司,有限责任合伙企业 从缓存存储器清除脏数据
GB2538985B (en) * 2015-06-02 2017-09-06 Advanced Risc Mach Ltd Flushing control within a multi-threaded processor
US10482033B2 (en) 2016-03-24 2019-11-19 Samsung Electronics Co., Ltd Method and device for controlling memory
US10255103B2 (en) * 2017-04-04 2019-04-09 Arm Limited Transaction handling
US20200409844A1 (en) * 2019-06-26 2020-12-31 Intel Corporation Asynchronous cache flush engine to manage platform coherent and memory side caches
FR3102868B1 (fr) 2019-11-04 2021-11-12 Idemia Identity & Security France Procédé pour exécuter une transaction
US11494303B1 (en) * 2021-09-29 2022-11-08 EMC IP Holding Company LLC Data storage system with adaptive, memory-efficient cache flushing structure

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2641819B2 (ja) * 1990-11-05 1997-08-20 三菱電機株式会社 キャッシュ・コントローラ並びにフォールト・トレラント・コンピュータ及びそのデータ転送方式
JPH05108481A (ja) * 1991-10-14 1993-04-30 Nec Ic Microcomput Syst Ltd マルチプロセツサ制御装置
US5835949A (en) * 1994-12-27 1998-11-10 National Semiconductor Corporation Method of identifying and self-modifying code
JP2916420B2 (ja) * 1996-09-04 1999-07-05 株式会社東芝 チェックポイント処理加速装置およびデータ処理方法
JP2916421B2 (ja) * 1996-09-09 1999-07-05 株式会社東芝 キャッシュフラッシュ装置およびデータ処理方法
US6230151B1 (en) * 1998-04-16 2001-05-08 International Business Machines Corporation Parallel classification for data mining in a shared-memory multiprocessor system
JP4303803B2 (ja) * 1998-04-22 2009-07-29 株式会社東芝 キャッシュフラッシュ装置
US20090077020A9 (en) * 1998-12-04 2009-03-19 Toong Hoo-Min Systems and methods of searching databases
US6901485B2 (en) * 2001-06-21 2005-05-31 International Business Machines Corporation Memory directory management in a multi-node computer system
US6976128B1 (en) * 2002-09-26 2005-12-13 Unisys Corporation Cache flush system and method

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103370696A (zh) * 2010-12-09 2013-10-23 国际商业机器公司 多核系统以及核数据读取方法
CN103370696B (zh) * 2010-12-09 2016-01-20 国际商业机器公司 多核系统以及核数据读取方法
CN104166608A (zh) * 2013-05-19 2014-11-26 擎泰科技股份有限公司 存取芯片内建只读存储器的方法及计算机系统
WO2015018350A1 (zh) * 2013-08-09 2015-02-12 华为技术有限公司 一种缓存刷新方法和装置

Also Published As

Publication number Publication date
KR100856626B1 (ko) 2008-09-03
CN1278240C (zh) 2006-10-04
US7171520B2 (en) 2007-01-30
US20040123040A1 (en) 2004-06-24
KR20040057129A (ko) 2004-07-02

Similar Documents

Publication Publication Date Title
CN1278240C (zh) 高速缓存刷新系统及其方法
US8825718B2 (en) Methods and apparatus for marking objects for garbage collection in an object-based memory system
US8015365B2 (en) Reducing back invalidation transactions from a snoop filter
US6950838B2 (en) Locating references and roots for in-cache garbage collection
Archibald et al. Cache coherence protocols: Evaluation using a multiprocessor simulation model
US7596662B2 (en) Selective storage of data in levels of a cache memory
CN1991793B (zh) 用于在多核系统中进行邻近高速缓存的方法及系统
CN100476760C (zh) 用于分级高速缓存行替换的方法、系统及装置
US8327109B2 (en) GPU support for garbage collection
US20120297161A1 (en) Providing Metadata In A Translation Lookaside Buffer (TLB)
US10592430B2 (en) Memory structure comprising scratchpad memory
JP2007257631A (ja) 動作のスヌーピングに応答して無効コヒーレンシー状態を更新するデータ処理システム、キャッシュ・システム、および方法
US7698512B2 (en) Compressing address communications between processors
CN1804816A (zh) 用于程序员控制的超高速缓冲存储器线回收策略的方法
US9323675B2 (en) Filtering snoop traffic in a multiprocessor computing system
CN101916231A (zh) 使用存储属性的技术
JP2006277762A (ja) 分散共有メモリマルチプロセッサシステムのための分割疎ディレクトリ
CN101063957A (zh) 管理锁定的高速缓冲存储器中的组替换的系统和方法
JPH10254772A (ja) キャッシュ・メモリ階層内で利用するキャッシュ・コヒーレンシ機構を実施するための方法およびシステム
DE102020117350A1 (de) Speichersystem einschliesslich heterogener speicher, computersystem mit dem speichersystem und datenverwaltungsverfahren dafür
CN100514311C (zh) 用于实现组合式数据/相关性高速缓存的方法和装置
US20040117558A1 (en) System for and method of operating a cache
US9639467B2 (en) Environment-aware cache flushing mechanism
US6928522B2 (en) Unbalanced inclusive tags
US7107410B2 (en) Exclusive status tags

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: LG- NORTEL CO., LTD.

Free format text: FORMER OWNER: LG ELECTRONIC CO., LTD.

Effective date: 20061110

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

Effective date of registration: 20061110

Address after: Seoul, South Kerean

Patentee after: LG Nortel Co., Ltd.

Address before: Seoul, South Kerean

Patentee before: LG Electronics Inc.

C56 Change in the name or address of the patentee

Owner name: LG-ERICSSON CO., LTD.

Free format text: FORMER NAME: LG-NORTEL CO., LTD.

CP01 Change in the name or title of a patent holder

Address after: Seoul, Korea

Patentee after: Novera Optics Korea Co., Ltd.

Address before: Seoul, Korea

Patentee before: LG Nortel Co., Ltd.

CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20061004

Termination date: 20141224

EXPY Termination of patent right or utility model