CN1685320A - 具有储存远程快取存在信息的处理器高速缓存的计算机系统 - Google Patents

具有储存远程快取存在信息的处理器高速缓存的计算机系统 Download PDF

Info

Publication number
CN1685320A
CN1685320A CNA038231441A CN03823144A CN1685320A CN 1685320 A CN1685320 A CN 1685320A CN A038231441 A CNA038231441 A CN A038231441A CN 03823144 A CN03823144 A CN 03823144A CN 1685320 A CN1685320 A CN 1685320A
Authority
CN
China
Prior art keywords
cache
data
computer system
speed buffer
buffer subsystem
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
CNA038231441A
Other languages
English (en)
Other versions
CN100373353C (zh
Inventor
P·康韦
F·D·韦伯
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.)
MediaTek Inc
Original Assignee
Advanced Micro Devices 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 Advanced Micro Devices Inc filed Critical Advanced Micro Devices Inc
Publication of CN1685320A publication Critical patent/CN1685320A/zh
Application granted granted Critical
Publication of CN100373353C publication Critical patent/CN100373353C/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
    • 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/0817Cache consistency protocols using directory methods
    • G06F12/082Associative directories
    • 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
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/25Using a specific main memory architecture
    • G06F2212/251Local memory within processor subsystem
    • G06F2212/2515Local memory within processor subsystem being configurable for different purposes, e.g. as cache or non-cache memory
    • 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
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Abstract

一种具有储存远程快取存在信息的处理器高速缓存的计算机系统。在一个实施例中,储存多个存在向量以指示映射到另一节点的特定数据区段是否正被远程快取。该远程快取存在向量可储存在结合处理器核心(50)的高速缓存子系统(52)的指定位置,例如第二级高速缓存,而不是将存在向量储存在专用的储存器内。例如,高速缓存子系统的指定路径可被分配来储存远程快取存在向量,而高速缓存的其余路径则用于储存一般的处理器数据。新的数据区段可被远程快取以响应来自高速缓存子系统的驱逐。在另一实施例中,也可利用高速缓存子系统的另外项目来储存目录项以过滤探测命令及响应流量。

Description

具有储存远程快取存在信息的处理器高速缓存的计算机系统
技术领域
本发明主要涉及一种计算机系统,特别是涉及一种在计算机系统内的远程快取(remote caching)。
背景技术
一般计算机系统包括一个或多个高速缓存以减少处理器存取内存的延迟时间。一般来说,高速缓存可储存一个或多个区段,而这些区段的每一个分别为储存在计算机系统的内存系统中的对应地址的数据复本。
由于已知区段可储存于一个或多个高速缓存内,更因为快取复本之一可根据内存系统内的复本加以修改,因此可使计算机系统的高速缓存和内存系统之间维持其同步。如果根据预设的同步协议(coherency protocol)以区段的其它快取复本反映一个区段的更新时,则可维持其同步。各种特定的同步协议已为人所公知。如此处所述,“区段”为储存在连续内存地址内的字节的集合,这些地址在同步的目的上被视为单元。在某些实施例中,区段也可为高速缓存内分配与解除分配的单位。区段内的字节数目可根据设计选择而不同,并且可为任何大小。例如,通常使用32字节及64字节的区段。
许多同步协议利用探测消息(probe)在计算机系统内各种高速缓存之间通信。一般而言,“探测消息”是一种从计算机系统内协调点(coherency point)传送到计算机系统内的一个或多个高速缓存的消息,用以测定高速缓存是否具有区段的复本以及视需要时指示高速缓存应将该区段置入的状态。协调点可传送探测消息以响应来自组件(例如,处理器)的读取或写入该区段的命令。各探测消息接收器可对探测消息产生响应,并且一旦接收探测响应之后即完成该命令。协调点是负责维持同步的组件,例如内存系统的内存控制器。
计算机系统通常采用广播高速缓存同步协议(broadcast cachecoherency protocol)或基于目录的高速缓存同步协议(directorybased cache coherency protocol)的其中之一。在采用广播协议的系统中,探测消息被广播到全部处理器(或高速缓存子系统)。当具有数据共享复本的子系统观察到来自专用存取该区段的命令的探测消息时,则其复本为无效。同理,当目前拥有数据区段的子系统观察到对应该区段的探测消息时,则拥有的子系统一般以提供数据给请求者以及需要时使其复本无效作为响应。
比较之下,采用基于目录的协议的系统则维持包含指示现存数据快取复本的信息的目录。目录信息用于确定为了产生特定的同步作用而必需被传送探测消息的特定子系统(其可包含数据的快取复本),而并非无条件地广播该探测消息。例如,目录可包含指示具有区段数据共享复本的各种子系统的信息。为响应专用存取该区段的命令,无效探测数据可被传送至共享子系统。目录也可含指示目前拥有特定数据区段的子系统的信息。因此,命令的响应可另外包括使拥有子系统向请求子系统传送数据的探测消息。许多不同的基于目录的高速缓存同步协议已为所属领域所公知。
由于在采用广播快取同步协议的系统中,探测消息必须广播至所有其它处理器,故与处理器互连的网络相关的频宽立即成为其性能的限制因素,特别是对采用大量处理器的系统而言或是当在短时间内必须传输大量探测消息时情况更为严重。在该环境之下,由于采用目录协议的系统的网络流量较低并且可避免网络频宽的瓶颈,故整体而言可产生较高的性能。
当基于目录的系统可使用更高效率的快取同步协议时,通常需要额外硬件的配合。目录机制通常包括可在专用集成电路(ASIC)或其它与处理器分离的半定制芯片上实现的目录高速缓存。当目录高速缓存在单独芯片上实现时,可能会增加整体系统的成本,以及增加所需板件面积、功耗和冷却要求。另一方面,将目录高速缓存纳入与处理器核心相同的芯片上的方法也无法满足需要,特别是意图在单处理器或多处理器系统皆可使用的商用微处理器尤其如此。当用于单处理器系统时,目录高速缓存可能不被使用,因而浪费宝贵的芯片区域并且由于降低产率而增加其成本。
另一种应用于共享内存计算机系统中以降低内存延迟时间的技术称之为远程快取(remote caching)。在采用远程快取的系统中,依附于一个节点的部分系统内存可被分配用于与映射到另一节点的内存位置相对应的快取数据。在远程内存的存取延迟时间远大于本地内存的延迟时间的系统中,远程快取的效果最为明显。
在执行远程快取的系统中,一般为利用储存器机制以确认远程高速缓存内的线路或区段。如上述,将此功能纳入意图配置于单处理器环境内的集成电路,将导致芯片面积的浪费以及制造成本增加。
发明内容
本发明揭示一种具有储存远程快取存在信息的处理器高速缓存的计算机系统。在一个实施例中,储存多个存在向量以指示映射到另一节点的特定数据区段是否正被远程快取。此远程快取存在向量可储存在结合处理器核心的高速缓存子系统的指定位置,而不是将存在向量储存于专用储存器内,该子系统例如第二级高速缓存(L2 cache)。例如,可利用高速缓存子系统的指定路径作为远程快取存在向量的储存位置,而高速缓存的其余路径则用于储存一般的处理器数据。在一个特定的实施例中,仅干净的(clean)、共享的数据区段被远程快取。新数据区段可远程快取以响应来自高速缓存子系统的驱逐(eviction)。在另一实施例中,也可利用高速缓存子系统的额外项目(entries)来储存目录项,以过滤探测命令及响应流量。
通过将高速缓存子系统用于远程快取存在信息的存储,可避免单独目录储存器的需求。其结果为,可降低整体的价格,以及所需板件面积、功耗和冷却的需求。此外,根据该子系统配置于单处理器环境或多处理器环境的不同而选择性地使能用于储存远程快取存在信息的高速缓存子系统的也可在一些具体实施例中采用。因此,当配置于单处理器环境时,高速缓存子系统的储存位置可专用地应用于处理器-快取操作,而可避免专用目录储存器的浪费(即,不利用)。
附图说明
通过阅读下列详细说明及参考附图之后可更加清楚本发明的其它目的和优点。
图1示出了计算机系统的一个实施例的方框图。
图2示出了数据包定义的一个实施例的图表。
图3示出了处理节点的一个实施例的方框图。
图4示出了内存控制器的一个实施例的方框图。
图5示出了高速缓存子系统的方框图。
图6示出了公知高速缓存配置的一个实施例。
图7示出了直接映射目录快取结构。
图8和图9示出了利用目录项来过滤探测命令及响应流量的方法。
图10示出了利用4路结构储存目录项的高速缓存配置方法。
图11和图12示出了另一种目录项的格式。
图13示出了含远程高速缓存的计算机系统的另一实施例。
图14示出了处理节点的另一实施例的方框图。
图15示出了其中利用指定路径来储存现有向量的高速缓存子系统的结构。
图16示出了检索给定存在位的另一种格式。
本发明可有各种改良和替换形式,因此下面将通过附图中的例子显示本发明的具体实施例并将对其详细说明。然而,应该了解这些附图及详细说明并非意在将本发明局限于所揭示的特定形式,相反地,本发明的全部的改良、等效和替换均涵盖于本发明所附权利要求的精神和范围内。
具体实施方式
现在参考图1,其显示计算机系统10的一个具体实施例。计算机系统10包含多个处理节点12A、12B、12C和12D。各处理节点经由各自的内存控制器16A至16D而连接到各自的内存14A至14D。此外,各处理节点12A至12D包含用于和其它处理节点12A至12D通信的接口逻辑18A至18D。例如,处理节点12A包含和处理节点12B及12C通信的接口逻辑18A。同理,处理节点12B包含和处理节点12A及12D通信的接口逻辑18B,依此类推。在图1的实施例中,处理节点12D经由接口逻辑18D而和其所连接的输出/输入(I/O)装置20A相通信,并且输出/输入装置20A进一步连接至第二输出/输入装置20B。其它处理节点可依类似方法和其它输出/输入装置相互通信。或者,处理节点可和连接至输出/输入总线的输出/输入桥接器相通信。
计算机系统10可实现一个基于数据包的链接以用于节点间通信。在所描述的实施例中,该链接以多组单向线路来实现(例如,利用线路24A从处理节点12A传输数据包至处理节点12B,以及利用线路24B从处理节点12B传输数据包至处理节点12A)。其它组线路24C至24H用于在图1中所示的其它处理节点之间传输数据包。处理节点间通信的链接可为快取同步的方式,或为输出/输入装置20A至20B(以及需要时其它的输出/输入装置)间的菊链构造(daisy-chain structure)的不同步方式。应注意,从处理节点传送至另一节点的数据包可通过一个或多个中间节点。例如,由处理节点12A传送至处理节点12D的数据包可经过如图1中所示的处理节点12B或处理节点12C的其中之一。可利用任何适合的路由算法。计算机系统10的其它实施例可包括较图1所示实施例更多或更少的处理节点。此外,在其它实施例中各个处理节点也可通过点对点网络而连接至其它所有处理节点。
如下面所述,除所述的内存控制器和接口逻辑之外,各处理节点12A至12D可包括一种或多种处理器及相关的高速缓存。大体而言,处理节点至少包含一个处理器,并且在需要时,可选择性地包含与内存和其它逻辑器通信的内存控制器。
内存14A至14D可包括任何适合的存储装置。例如,内存14A至14D可包含一个或多个随机存取内存总线动态随机存取内存(RAMBUSDRAMs;RDRAMs)、同步动态随机存取内存(SDRAMs)、动态随机存取内存(DRAM)、静态随机存取内存(static RAM)等。计算机系统10的地址空间在内存14A至14D中划分。各处理节点12A至12D可包括用于决定何内存14A至14D映射到何地址的内存配置图,以及因而决定特定地址的内存请求应路由到处理节点12A至12D的哪一个。在一个实施例中,在计算机系统10内地址的同步点为内存控制器16A至16D,这些内存控制器16A至16D连接到对应于该地址的内存储存字节。内存控制器16A至16D可包括用来与内存14A至14D接口的控制电路。此外,内存控制器16A至16D可包括排列内存请求的请求队列。
通常,接口逻辑18A至18D可包括从链接接收数据包并缓冲在链接上传送的数据包的缓冲器。计算机系统10可利用任何适合的流程控制机制以传送数据包。
输出/输入装置20A至20B可为任何需要的外围设备。例如,输出/输入装置20A至20B可包括网络适配卡、视频加速卡、音频卡、硬盘或软盘驱动器或驱动控制器、小型计算机系统接口(SCSI)适配器和电话卡、调制解调器、声卡以及各种数据捕获卡,例如,通用接口总线(GPIB)或现场总线接口卡。
计算机系统10的处理节点12A至12D间的通信需要时可利用各种特定基于数据包的消息而调节。图2的表38为根据计算机系统10内同步链接的一个实施例,显示所采用的一组基于数据包的消息。也可采用其它的实施例,包括采用其它适合的数据包定义的实施例、或采用基于总线的通信机制的实施例。
如图2所示,可利用ReadSized、RdBlk、RdBlkS或RdBlkMod命令中的一个来开始读取事务。ReadSized命令可用于非快取的读取或除区段大小之外数据的读取。所读取数据的数量编码到ReadSized命令数据包中。读取区段时可利用RdBlk命令,除非:(i)需要该区段的可写入复本,在此情况下可利用RdBlkMod命令;或(ii)需要该区段的复本,但已知无改变该区段的意图,在此情况下可利用RdBlkS命令。一般而言,适当的读取命令是从开始事务的来源传送至拥有对应于该区段的内存的目标节点。目标节点可传送Probe命令至系统内其它节点以维持其同步。在某些情况下,探测命令可导致该区段在某些节点中的状态的改变,且若存在该区段的已更新复本,将其传送至来源节点。接收到探测命令的各节点传送ProbeResp命令数据包至该来源节点。若探测节点具有读取数据(例如,污染(dirty)数据)的更新复本,则节点会传送RdResponse响应数据包及该污染数据。此外,目标节点内的内存控制器将利用后面跟着数据包内数据的RdResponse响应数据包而传送所请求读取的数据。若来源节点接收到来自探测节点的RdResponse响应数据包,则使用该读取数据。否则,使用该来自该目标节点的数据。一旦在来源节点内接收到各探测响应和读取数据,则来源节点传送SrcDone响应数据包至目标节点,以作为终止事务的正面应答。传送污染数据的节点也可传送MemCancel响应数据包至目标节点,以试图通过所请求读取数据的目标节点取消传送动作。
可利用后面跟随对应数据包的WrSized或VicBlk命令而开始写入事务。WrSized命令可用于非快取的写入或除区段大小外的数据的写入。为维持WrSized命令的同步,目标节点可向系统中其它每个节点传送Probe命令。为响应Probe命令,各探测节点传送ProbeResp响应数据包至该目标节点。若探测节点储存污染数据,则探测节点以RdResponse响应数据包及污染数据作为响应。依此方法,通过WrSized命令更新的区段送返至内存控制器,而和WrSized命令所提供的数据合并。内存控制器在接收来自各探测节点的探测响应之后,传送TgtDone响应数据包至来源节点以作为终止事务的正面应答。来源节点则以SrcDone响应数据包作为响应。
已由节点修改并正在节点的高速缓存内被取代的牺牲区段(victim block)利用VicBlk命令传送回内存。VicBlk命令不需要探测消息。因此,当目标内存控制器准备将牺牲区段数据交付给内存时,目标内存控制器传送TgtDone响应数据包至牺牲区段的来源节点。来源节点以SrcDone响应数据包或MemCancel响应数据包其中之一作为答复,其中,该ScrDone响应数据包表示数据必须提交,而该MemCancel响应数据包则表示VicBlk命令的传送及TgtDone响应数据包的接收之间的数据已无效(例如,响应一介入的探测消息)。
为了在不可写入状态中获得由来源节点储存的区段的写入许可,来源节点可传送ChangetoDirty命令数据包。以ChangetoDirty命令开始的事务除了目标节点不回传数据之外,其余和写入操作相类似。若来源节点企图更新整个区段,则可使用ValidateBlk命令以取得未由来源节点所储存的区段的写入许可。此类事务中没有数据被传送到来源节点,但除此之外其操作类似读取的事务。
目标可使用TgtStart响应来表示事务已激活(例如,要求进行其后的事务)。Nop信息数据包是可使用的无操作(no-operation)数据包,以例如在节点间传送缓冲空闲指示。广播命令可用于在节点间广播消息(例如,广播命令可用于分配中断)。最后,在需要结构同步的情况下(例如,错误检测、重置、初始化等),可使用同步信息数据包。应注意在其它实施例中,根据需要可使用其它类型的命令及相关的同步协议。
下面参考图3,其显示示例性处理节点12A的一个实施例的方框图。对应于图1的电路部分有相同的组件符号。处理节点12A包括内存控制器16A、接口逻辑18A、处理器核心50、高速缓存子系统52以及数据包处理逻辑58。需要时,处理节点12A也可包括一个或多个额外的处理器核心54及高速缓存子系统56。在一个实施例中,此处理节点12A的说明性功能可纳入单个集成电路。处理节点12B至12D可具有类似的构造。
一般而言,数据包处理逻辑58配置为响应在与处理节点12A连接的链接上所接收的控制数据包、产生控制数据包以响应处理器核心50及54和/或高速缓存子系统52及56、产生探测命令及响应数据包以响应内存控制器16A因服务而选择的事务、以及选择数据包路径以决定何节点12A为通过接口逻辑18A至其它节点的中间节点。接口逻辑18A可包括接收数据包的逻辑以及使数据包与数据包处理逻辑58所使用的内部时钟同步的逻辑。
高速缓存子系统52及56包括配置以储存数据区段的高速的高速缓存。高速缓存子系统52及56可集成在各自的处理器核心50及54内。或者,高速缓存子系统52及56需要时可以背侧(backside)高速缓存配置或直插(in-line)配置连接至处理器核心52及56。再者,高速缓存子系统52及56可实现为级联式高速缓存。较靠近处理器核心50及54的高速缓存(在层级内)需要时可集成到处理器核心50及54中。在一个实施例中,高速缓存子系统52及56每个代表第二级高速缓存(L2)结构。
处理器核心50及54包括根据预设命令集执行命令的电路。例如,可选择使用x86命令集的架构。或者,可选择Alpha、PowerPC或任何其它命令集的架构。一般而言,处理器核心50及54分别存取高速缓存子系统52及56的数据和命令。若侦测出高速缓存错误,则产生读取请求并且将该读取请求传送至该错误区段所映射的节点中的内存控制器。
在下面将要进一步详述的计算机系统10的一个实施例中,可维持目录项以某些事务的过滤探测命令及响应流量。目录项可储存在高速缓存子系统52(以及高速缓存子系统56,根据具体实施方式而定)的指定位置内,而不是将目录项储存在专用目录储存器内。在计算机系统10的另一个实施例中,也可使用高速缓存子系统52的其它位置来储存远程快取存在的信息。通过将高速缓存子系统52用于储存目录项和/或远程快取存在信息,可避免对单独储存器的需求。其结果为,可降低整体的成本、以及所需的板件面积、功耗、冷却要求。此外,在一些实施例中,储存目录项和/或远程快取存在信息的高速缓存子系统52的利用有可能根据该子系统是配置在单处理器环境还是多处理器环境而选择性地应用。因此,当配置于单处理器环境时,高速缓存子系统的储存位置可专用性地供处理器-快取操作使用,而可避免专用目录储存器的浪费(即,无利用)。有关此高速缓存子系统52的这些特性的具体细节将在下面做更详细说明。
下面参考图4,其显示内存控制器16A的一个具体实施例的方框图。内存控制器16B至16D可类似地配置。在图4的实施例中,内存控制器16A包括请求队列60、同步控制电路64以及内存存取控制电路66。
内存控制器16A从数据包处理逻辑58接收命令数据包至请求队列60中。若地址受对应于内存14A中内存位置的命令的影响,则命令数据包通过数据包处理逻辑58而选择到内存控制器16A路由。换言之,若命令数据包的地址寻址储存在内存14A内的区段,则命令数据包路由到内存控制器16A。内存控制器16A在请求队列60中排列命令信息,并随后处理该命令。同步控制电路64确认以同步方式执行该命令。若该命令需进行探测,则同步控制电路64将探测指示传送给数据包处理逻辑58。例如,此探测指示可包括来自对应命令的SrcNode、SrcUnit和SrcTag、地址、以及命令的类型。数据包处理逻辑58可传送探测命令以响应探测指示。同步控制电路64可进一步接收来自数据包处理逻辑58的SrcDone数据包,并且可接收WrSized命令的探测响应。内存存取控制电路66可与内存14A接口,以执行由同步控制电路64所交付的命令(例如,在同步操作已传送以及要从其它节点接收的任何响应已接收之后)。若命令是读取,则数据可从内存14A回传至数据包处理逻辑58,以转送至RdResponse数据包内的来源节点。
同步控制电路64可另外配置以维持特定数据区段的目录项。如上述的讨论,这些目录项储存在高速缓存子系统52和/或高速缓存子系统56的指定位置内。为此目的,同步控制电路64可包括连接至高速缓存子系统的接口。同步控制电路64可根据命令的类型以及根据命令指定的地址的目录项的存在决定是否需进行探测。目录项根据具体实施方式可含有各种同步信息。例如,目录项可指示给定区段的拥有者(无论该区段是否以给定模式进行修改)和/或具有该区段的共享复本的存在节点。下面将提供有关各种示例性目录项的格式的进一步细节。
图5示出了高速缓存子系统52的一个实施例的方框图。高速缓存子系统52包括连接至高速缓存控制器74的高速缓存72。在所描述的实施例中,高速缓存控制器74包括模式储存单元75,如下所述,该高速缓存控制器74能够可编程地设定而能在高速缓存72的位置内储存目录项。
一般高速缓存项目(亦即,高速缓存72内储存由处理器核心50操作的数据的项目)及目录项在需要时可用各种特定格式储存在高速缓存72内。图6说明以具有2L交错存取的K-路组合式(K-way setassociative)快取结构执行的一种可能的高速缓存配置。高速缓存72内的储存区段102显示具有数据项、标签字段以及状态字段。在一个实施例中,该数据项包含64字节的数据。该状态字段确认高速缓存区段的状态,例如,在MOESI协议中的修改(Modified)、拥有(Owned)、专用(Exclusive)、共享(Shared)或无效(Invalid)等状态。在传统的方法中,可通过比较用于存取高速缓存地址的标签字段与高速缓存区段中储存的标签信息来决定快取命中率。利用地址的索引部分存取给定高速缓存的区段集合。LRU字段表示在该集合中何项目最近被参照最少,并且可与高速缓存控制器74所采用的快取置换算法结合使用。图6中说明的高速缓存配置方法是公知的。应注意,在其它的实施例中,可利用其它特定高速缓存配置方法来实现高速缓存72。还应注意,当配置于单处理器环境中时,高速缓存72的所有储存位置可用以作为一般高速缓存的项目(例如,在单个处理器环境模式中通过设定高速缓存控制器74的模式储存单元75)。
如前所述,当配置于多处理器环境中时,高速缓存72的某些位置可用于储存目录项。可通过同步控制电路64维持及存取该目录项以控制同步操作。
目录项可利用多种方式储存在高速缓存72中。例如,图7示出了一种高速缓存配置方法,在该配置方法中可利用高速缓存72的指定路径(例如,此说明性实施例中的路径15)储存目录项。在一个实施例中,此配置在多处理器环境模式中可由高速缓存控制器74的编程模式储存单元75可编程地设定。
图7的实施例示出了直接映射的目录高速缓存结构,在该高速缓存结构中的给定高速缓存区段可储存多个目录项。例如,在一个实施例中,每个目录项包含16位,因此在高速缓存区段内的64字节数据字段可储存32个目录项。通过用于存取高速缓存的地址的目录索引部分可检索给定目录项。在一个实施例中,目录项可根据地址的选取位交错插入多个高速缓存子系统(例如,图3中的高速缓存子系统52和56)。当高速缓存区段所储存的区段标签(例如,TagL2)以及作为目录项一部分储存的目录标签(例如,Tagdir)匹配用于存取该高速缓存的地址的相应标签部分时,则发生目录命中。
在计算机系统10的一个实施例中,目录项用于追踪其状态为修改、拥有或专用的区段。目录项的存在意指该区段已快取。应注意,由于处理器可能悄悄地将区段从专用转变成修改状态,故从处理器核心和对应高速缓存子系统的外部可能无法分辨E状态和M状态。因此,在此类实施例中,其目录项可能包括状态O(拥有)、状态ME(修改/专用)或状态I(无效)其中一种。不存在目录项意味着区段在各种高速缓存子系统中为共享或无效。应注意,当发生高速缓存冲突错误(conflictmiss)时,所有受影响的高速缓存区段的目录项必须从M、O或E状态降级。修改或拥有区段被复制回内存,并且转变为S状态。
图8和图9示出了目录项在计算机系统10的一个实施例中被用来过滤(或控制)探测命令及响应流量的方法。在图8和图9中,显示了一组处理节点P0至P3,处理节点P0至P3的每一个代表图1中的分别的处理节点12。为了说明的目的,各处理节点P0至P3显示与其相关的内存(内存0至3)以及其第二级高速缓存。依照前面的描述,每个第二级高速缓存具有其各自的目录项组合。
图8举例性说明操作的集合,可以响应处理节点P3向映射到内存0的区段所发出的读取请求来执行这些操作。在此例子中,该读取请求导该区段以共享状态安装在处理节点P3中。如图所示,该内存请求通过处理节点P2路由到处理节点P0,并且处理节点P0执行目录查找(例如,通过图4对应的同步控制电路64),以确定高速缓存子系统内是否存在该高速缓存区段的目录项。在图8的实施例中,对应该目录查找,产生目录错误。因此,由于不存在该目录项,故该区段在任何处理节点的高速缓存中仅可能为共享或无效。因此,处理节点P0单纯从内存0取回数据,并且通过处理节点P2将该数据提供给处理节点P3。当处理节点P3接收该数据之后,来源完成消息可通过例如处理节点P1从处理节点P3传送到处理节点P0。此即完成该事务。在此例子中应注意,由于目录搜寻结果发现为目录错误,故处理节点P0不需向任何其它处理节点传送任何无效探测,这在采用广播同步协议的系统中是需要的。
图9为类似例子的说明,在该例子中的处理节点P3向映射到内存0的区段发出读取请求。然而,在此例子中,当处理节点P0进行目录查找时,在该高速缓存的对应项发生目录命中。目录项指示该区段在处理节点P1中处于ME状态。处理节点P0的同步控制电路因而产生要传送到处理节点1的探测命令,以使处理节点1将数据传送给处理节点3。在一个实施例中,由于数据在处理节点3以共享状态安装,故处理节点P1的高速缓存控制器将使其区段的快取复本从M状态降级至O状态。处理节点P0的同步控制电路也更新该区段的目录项,以表示该区段目前在处理节点P1中以O状态快取。应注意,在此例子中由于区段的目录命中发生在ME状态,故处理节点P0不须向任何处理节点传送(例如,广播)无效探测消息。
为响应其它由处理节点所激活的事务,可调用各种其它特定的同步操作。类似上述的例子,可根据被存取的区段存在的目录项、和/或根据目录项内所指示的区段状态过滤探测命令及响应流量。例如,回到图9,若处理节点P3激活读取命令以接收特定区段的专用复本(例如,通过激活RdBlkMod命令),处理节点P0可将探测命令传送到含区段的修改复本的处理节点P1。处理节点P1则对应地将数据传送给处理节点P3。而且处理节点P1可将其复本降级为无效,而且处理节点P0可更新该区段的目录项以指示该区段在处理节点P3中处于ME状态。适当时,根据事务的类型、存在的目录项、以及目录项内区段的状态,可适当地执行许多其它类似的特定同步操作。
在其它实施例中可具有许多其它的目录项格式。在其它因素中,目录项的特殊格式可根据其所保存状态信息的数量、系统的可扩展性以及目录储存的开销而定。
图10说明另一种不同的配置方法,在该配置方法中利用4路高速缓存结构来储存目录项。可维持LRU字段以决定在发生目录冲突错误时(即,当新项目覆盖现存项目时)取代最近最少使用的项目(集合中)。应注意,当发生目录冲突时,同步控制电路在需要时可调用特定同步行为。例如,在某些情况下,其高速缓存同步电路可导致具有区段的修改复本的节点执行写回操作。
维持在目录项内的数据数量视执行的状况也各有不同。图11说明在64字节高速缓存区段内具有512个目录项的实施例。1位状态字段表示该区段是否为修改、拥有或专用状态(MOE)。图12说明在64字节高速缓存区段内具有64个目录项的实施例。在所示的例子中,5位拥有者字段编码该拥有者为ME或O状态,而足够支持32个处理核心(例如,各具有4个核心的8个节点)。图12的目录格式适合用于使经修改区段呈现某些页面地方性(page locality)的工作负荷。
应注意,若存在的话,可根据所采用的特定同步方法以及对应目录项内所含的信息而调用特定同步行为以响应一给定的事务(例如,探测命令和响应)。可采用各种特定的基于目录的协议。
此外还应注意,上述实施例中虽然采用高速缓存72的特定方式储存目录项,但也可使用其它实施例。例如,也可采用高速缓存72的指定的集合来储存目录项或某一路中全部项目的一部分(例如,1/2)专用于目录项存储。
另外,实施例中也可不含模式储存单元75。以高速缓存区段保持的信息可包括一个或多个设定用于确认含目录信息的项目的位。
下面参考图13,计算机系统10的另一实施例可包括远程快取的功能,其中给定处理节点12的部分系统内存14(即,14A至14D)分配给映射到另一节点的系统内存的远程快取地址。这些远程快取区域即为图13中的远程高速缓存302A至302D。图13中相当于图1中以相同组件符号标示的电路部分,且这些电路部分具有上述相同的功能。
给定系统内存14的远程高速缓存302内所储存的远程数据可通过相应的远程高速缓存控制器402A来控制,其中该远程高速缓存控制器402A位于图14所示的内存控制器16A内。处理节点12B至12D可包括类似的远程高速缓存控制器。如下面将进一步描述的,在一个实施例中的远程高速缓存控制器402A可包括与高速缓存子系统52(和/或高速缓存子系统56)的接口。可利用在高速缓存子系统52内的储存位置来储存信息,该信息用来确认特定地址是否由对应节点的对应系统内存14A内的远程高速缓存控制器402A所远程快取。有关此功能的进一步细节将在下面提供。
在一个实施例中,远程高速缓存控制器402A所采用的远程快取策略是仅储存共享的远程数据。在此实施例中,修改、拥有或专用数据并不储存在该远程高速缓存302A内。该远程高速缓存302A对于高速缓存子系统52而言可为非必备的(non-inclusive),并且可作为从高速缓存子系统52(以及需要时从高速缓存子系统56)所驱逐的共享区段的牺牲高速缓存(victim cache)。这样,仅当未存在于远程高速缓存302A中的共享远程区段在高速缓存子系统52(和/或高速缓存子系统56)内被取代时,该远程高速缓存302A才会由远程高速缓存控制器402所写入。
图15示出了高速缓存子系统52的结构,在该高速缓存子系统52中利用指定路径(例如,已说明实施例的路径14)来储存含确认对应远程区段是否在远程高速缓存302内被快取的信息的存在向量。高速缓存区段可包括含多个项目的存在向量,这些项目的每一个分别表示远程高速缓存302A内是否有以共享(S)状态存在的对应区块。在图14的实施例中,每个项目包括单一存在位。可根据用于存取该高速缓存的地址而选取的检索位(IndexL2)来存取给定的存在向量。同理,可利用地址的其它位(例如,IndexPV)选取已知存在向量的存在位。当储存有高速缓存区段的区段标签(例如,TagL2)与用于存取该高速缓存的地址的对应标签位相匹配时,即发生存在向量命中。
可根据储存于结合远程快取控制器402A的配置寄存器(configuration register)内的RC基地址值来指定为远程高速缓存302A分配的系统内存14A的物理地址。因此可利用与形成所述存在向量检索及第二级高速缓存索引(L2 index)的位有关联的RC基地址来寻址内存14A的远程高速缓存302A内的远程快取区段。
应注意在图14的实施例中,将区段置于远程高速缓存302A并不需驱逐修改或拥有数据(或具有目录的系统内专用数据的置换通知)。此外,由于存在位足够表示区段为有效及处于共享状态,故远程快取区段可不需同步状态信息。当高速缓存子系统52(以及高速缓存子系统56,若需要时)内的共享区段被取代时,若该区段未出现在远程高速缓存内时,则该区段将置于远程高速缓存302A内。由于远程高速缓存302A内的数据从未污染,故远程高速缓存302A内的区段可被悄悄取代,并且不需驱逐远程高速缓存。当另一节点执行储存或请求目前处于共享(S)状态的区段的专用复本时,由处理节点12A接收(例如,来自母节点)所产生的无效探测命令将导致在高速缓存子系统52中执行查找动作,从而决定该区段是否出现在远程高速缓存302A或高速缓存子系统52的任一个中。若发生命中表示该区段为远程高速缓存302A或高速缓存子系统52所共享,则该区段无效。
在有些实施例中,高速缓存子系统52可用于储存前述的目录项以及远程高速缓存存在的指示。例如,在一个实施例中,高速缓存子系统52可指定一条路径(例如,路径15)储存目录项(例如,如图7或图10所示),同时,指定另一条路径(例如,路径14)储存存在向量。当合并使用时,可执行高速缓存子系统52的单次存取,以决定其数据是否被快取(例如,于路径0至13)以及其数据是否在远程高速缓存302A内被快取。此外,当存取的是映射到本地节点的数据时,则对高速缓存子系统的存取可另外决定该数据是否在其它处理器的高速缓存中以修改、拥有或专用状态快取,以及假如这样,何节点含有该数据。更进一步,在储存(或来自另一节点接收数据区段的专用复本的请求)的情况下,由处理节点所接收的对应无效探测可同时导致高速缓存74(例如,路径0至13)内及远程高速缓存302A内的区段的无效(即,通过改变与高速缓存子系统的路径14中区段对应的存在位)。
应注意在其它实施例中,可利用其它特定的结构储存高速缓存子系统54内所含的存在信息。例如,图16示出了另一种方法,在该方法中,高速缓存子系统可被检索以存取给定存在位。
此外,应注意可以选择性地启用根据操作环境使用高速缓存子系统52(和/或高速缓存子系统56)的项目(例如,选择的路径)作为储存远程高速缓存的存在信息。例如,储存在模式储存单元75中的值可控制是否激活远程高速缓存的指示特性。依此方法,当配置于单处理器环境时,模式储存单元75可设定成指定高速缓存子系统的所有项目为一般快取操作,从而避免储存资源的浪费。
一旦完全了解以上披露的内容之后,本领域技术人员将清楚地掌握各种变化和修改。应该理解的是,所有这种变化和修改均视为涵盖在权利要求书的保护范围之内。
产业利用性
本发明大致应用于计算机系统。

Claims (10)

1.一种计算机系统,其包括:
第一节点(12A),其包括处理器核心(50)、高速缓存子系统(52),以及第一系统内存(25A);
第二节点(12B),其包括第二系统内存(14B);
其中,至少该高速缓存子系统(52)的某些项目根据该高速缓存子系统的操作模式而配置成选择性地储存处理器数据或远程快取存在信息的其中之一。
2.如权利要求1所述的计算机系统,其中该第一系统内存(14A)配置为远程地快取映射到该第二系统内存(14B)的数据,以及其中该远程快取存在信息指示在该第一系统内存中该数据的存在。
3.如权利要求2所述的计算机系统,其中该第一节点包括用于控制在该第一系统内存中的该数据的远程快取的远程高速缓存控制器(302A)。
4.如权利要求3所述的计算机系统,其中该远程高速缓存控制器采用一种快取策略,在该快取策略中数据在该第一系统内存中以共享状态被远程快取,以及在快取策略中处于修改或拥有状态的数据在该第一系统内存中无法被远程快取。
5.如权利要求4所述的计算机系统,其中该远程高速缓存控制器配置为响应来自该高速缓存子系统的该区段的置换,在该第一系统内存中以共享状态储存数据区段。
6.如权利要求5所述的计算机系统,其中该远程高速缓存控制器配置为响应来自该高速缓存子系统的置换,仅远程快取在该第一系统内存中的数据。
7.如权利要求6所述的计算机系统,其中该远程高速缓存控制器配置为仅在该区段在该第一系统内存中未被远程快取时,才在该第一系统内存中储存该区段。
8.如前述权利要求中任一项所述的计算机系统,其中该高速缓存子系统的另外项目配置为根据该高速缓存子系统的操作模式而选择性地储存处理器数据或目录信息其中之一,以控制整体的同步行为。
9.如前述权利要求中任一项所述的计算机系统,其中该高速缓存子系统的给定储存线路包括远程快取存在向量。
10.如前述权利要求中任一项所述的计算机系统,其中该高速缓存子系统的指定路径被选择性地启用以储存远程快取存在信息。
CNB038231441A 2002-09-27 2003-09-18 具有储存远程快取存在信息的处理器高速缓存的计算机系统 Expired - Lifetime CN100373353C (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US10/256,970 US7096323B1 (en) 2002-09-27 2002-09-27 Computer system with processor cache that stores remote cache presence information
US10/256,970 2002-09-27

Publications (2)

Publication Number Publication Date
CN1685320A true CN1685320A (zh) 2005-10-19
CN100373353C CN100373353C (zh) 2008-03-05

Family

ID=32041784

Family Applications (1)

Application Number Title Priority Date Filing Date
CNB038231441A Expired - Lifetime CN100373353C (zh) 2002-09-27 2003-09-18 具有储存远程快取存在信息的处理器高速缓存的计算机系统

Country Status (8)

Country Link
US (1) US7096323B1 (zh)
EP (1) EP1543427A2 (zh)
JP (1) JP4230998B2 (zh)
KR (1) KR100970229B1 (zh)
CN (1) CN100373353C (zh)
AU (1) AU2003277175A1 (zh)
TW (1) TWI304930B (zh)
WO (1) WO2004029812A2 (zh)

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2009033419A1 (fr) * 2007-09-11 2009-03-19 Tencent Technology (Shenzhen) Company Limited Procédé de traitement de mise en antémémoire de données, système et dispositif de mise en antémémoire de données
CN102612684A (zh) * 2009-11-13 2012-07-25 马维尔国际贸易有限公司 闪存文件系统
WO2016097808A1 (en) * 2014-12-14 2016-06-23 Via Alliance Semiconductor Co., Ltd. Dynamic cache replacement way selection based on address tag bits
CN106649149A (zh) * 2015-10-28 2017-05-10 福州瑞芯微电子股份有限公司 实现地址映射的内存管理系统及方法
US9798668B2 (en) 2014-12-14 2017-10-24 Via Alliance Semiconductor Co., Ltd. Multi-mode set associative cache memory dynamically configurable to selectively select one or a plurality of its sets depending upon the mode
CN109923533A (zh) * 2016-11-10 2019-06-21 华为技术有限公司 在数据库中将计算与存储分离以改善弹性
US10719434B2 (en) 2014-12-14 2020-07-21 Via Alliance Semiconductors Co., Ltd. Multi-mode set associative cache memory dynamically configurable to selectively allocate into all or a subset of its ways depending on the mode

Families Citing this family (50)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TWI251337B (en) * 2003-12-29 2006-03-11 Powerchip Semiconductor Corp Non-volatile memory cell and manufacturing method thereof
US7373466B1 (en) 2004-04-07 2008-05-13 Advanced Micro Devices, Inc. Method and apparatus for filtering memory write snoop activity in a distributed shared memory computer
JP4214941B2 (ja) * 2004-04-09 2009-01-28 日本電気株式会社 プレゼンス情報提供システム、その方法およびサーバ
US7200718B2 (en) * 2004-04-26 2007-04-03 Broadband Royalty Corporation Cache memory for a scalable information distribution system
US20060143384A1 (en) * 2004-12-27 2006-06-29 Hughes Christopher J System and method for non-uniform cache in a multi-core processor
US7788240B2 (en) * 2004-12-29 2010-08-31 Sap Ag Hash mapping with secondary table having linear probing
US7366844B2 (en) * 2005-02-10 2008-04-29 International Business Machines Corporation Data processing system and method for handling castout collisions
US7415030B2 (en) * 2005-02-10 2008-08-19 International Business Machines Corporation Data processing system, method and interconnect fabric having an address-based launch governor
US7389388B2 (en) * 2005-02-10 2008-06-17 International Business Machines Corporation Data processing system and method for efficient communication utilizing an in coherency state
US8214600B2 (en) 2005-02-10 2012-07-03 International Business Machines Corporation Data processing system and method for efficient coherency communication utilizing coherency domains
US7467323B2 (en) * 2005-02-10 2008-12-16 International Business Machines Corporation Data processing system and method for efficient storage of metadata in a system memory
US7584329B2 (en) * 2005-02-10 2009-09-01 International Business Machines Corporation Data processing system and method for efficient communication utilizing an Ig coherency state
US8140770B2 (en) * 2005-02-10 2012-03-20 International Business Machines Corporation Data processing system and method for predictively selecting a scope of broadcast of an operation
US7474658B2 (en) * 2005-02-10 2009-01-06 International Business Machines Corporation Data processing system, method and interconnect fabric supporting concurrent operations of varying broadcast scope
US7454577B2 (en) * 2005-02-10 2008-11-18 International Business Machines Corporation Data processing system and method for efficient communication utilizing an Tn and Ten coherency states
US8230178B2 (en) * 2005-02-10 2012-07-24 International Business Machines Corporation Data processing system and method for efficient coherency communication utilizing coherency domain indicators
US7454578B2 (en) * 2005-02-10 2008-11-18 International Business Machines Corporation Data processing system and method for predictively selecting a scope of broadcast of an operation utilizing a location of a memory
US7536513B2 (en) 2005-03-31 2009-05-19 International Business Machines Corporation Data processing system, cache system and method for issuing a request on an interconnect fabric without reference to a lower level cache based upon a tagged cache state
US7237070B2 (en) * 2005-04-19 2007-06-26 International Business Machines Corporation Cache memory, processing unit, data processing system and method for assuming a selected invalid coherency state based upon a request source
US7444494B2 (en) * 2005-05-31 2008-10-28 International Business Machines Corporation Data processing system and method for predictively selecting a scope of broadcast of an operation utilizing a history-based prediction
US20070005899A1 (en) * 2005-06-30 2007-01-04 Sistla Krishnakanth V Processing multicore evictions in a CMP multiprocessor
US7380102B2 (en) * 2005-09-27 2008-05-27 International Business Machines Corporation Communication link control among inter-coupled multiple processing units in a node to respective units in another node for request broadcasting and combined response
US7818388B2 (en) * 2005-10-07 2010-10-19 International Business Machines Corporation Data processing system, method and interconnect fabric supporting multiple planes of processing nodes
US7386673B2 (en) * 2005-11-30 2008-06-10 Red Hat, Inc. Method for tracking of non-resident pages
US7526614B2 (en) * 2005-11-30 2009-04-28 Red Hat, Inc. Method for tuning a cache
US7606981B2 (en) * 2005-12-19 2009-10-20 Intel Corporation System and method for reducing store latency
US7404045B2 (en) * 2005-12-30 2008-07-22 International Business Machines Corporation Directory-based data transfer protocol for multiprocessor system
US7512742B2 (en) 2006-01-17 2009-03-31 International Business Machines Corporation Data processing system, cache system and method for precisely forming an invalid coherency state indicating a broadcast scope
US7882307B1 (en) * 2006-04-14 2011-02-01 Tilera Corporation Managing cache memory in a parallel processing environment
US8495308B2 (en) * 2006-10-09 2013-07-23 International Business Machines Corporation Processor, data processing system and method supporting a shared global coherency state
JP2008118184A (ja) 2006-10-31 2008-05-22 Fujitsu Ltd 処理装置及び処理モジュール
US8205024B2 (en) * 2006-11-16 2012-06-19 International Business Machines Corporation Protecting ownership transfer with non-uniform protection windows
US7890704B2 (en) * 2006-12-19 2011-02-15 International Business Machines Corporation Implementing an enhanced hover state with active prefetches
US7669011B2 (en) * 2006-12-21 2010-02-23 Advanced Micro Devices, Inc. Method and apparatus for detecting and tracking private pages in a shared memory multiprocessor
JP2009223759A (ja) * 2008-03-18 2009-10-01 Fujitsu Ltd 情報処理装置,メモリ制御方法およびメモリ制御装置
US8223650B2 (en) * 2008-04-02 2012-07-17 Intel Corporation Express virtual channels in a packet switched on-chip interconnection network
US8185695B2 (en) * 2008-06-30 2012-05-22 Advanced Micro Devices, Inc. Snoop filtering mechanism
US8364898B2 (en) * 2009-01-23 2013-01-29 International Business Machines Corporation Optimizing a cache back invalidation policy
US8868847B2 (en) * 2009-03-11 2014-10-21 Apple Inc. Multi-core processor snoop filtering
US20100332762A1 (en) * 2009-06-30 2010-12-30 Moga Adrian C Directory cache allocation based on snoop response information
KR101077370B1 (ko) 2010-07-09 2011-10-26 삼성전기주식회사 발광피드백을 제공하는 정전용량식 터치스크린
US8392665B2 (en) 2010-09-25 2013-03-05 Intel Corporation Allocation and write policy for a glueless area-efficient directory cache for hotly contested cache lines
US20120151232A1 (en) * 2010-12-12 2012-06-14 Fish Iii Russell Hamilton CPU in Memory Cache Architecture
US9785554B2 (en) 2014-05-30 2017-10-10 International Business Machines Corporation Synchronizing updates of page table status indicators in a multiprocessing environment
US9384133B2 (en) 2014-05-30 2016-07-05 International Business Machines Corporation Synchronizing updates of page table status indicators and performing bulk operations
CN107408071A (zh) * 2015-08-21 2017-11-28 华为技术有限公司 一种内存访问方法、装置和系统
US10073783B2 (en) 2016-11-23 2018-09-11 Advanced Micro Devices, Inc. Dual mode local data store
US10761986B2 (en) 2018-10-23 2020-09-01 Advanced Micro Devices, Inc. Redirecting data to improve page locality in a scalable data fabric
US11914517B2 (en) 2020-09-25 2024-02-27 Advanced Micro Devices, Inc. Method and apparatus for monitoring memory access traffic
US11928472B2 (en) 2020-09-26 2024-03-12 Intel Corporation Branch prefetch mechanisms for mitigating frontend branch resteers

Family Cites Families (30)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4905141A (en) 1988-10-25 1990-02-27 International Business Machines Corporation Partitioned cache memory with partition look-aside table (PLAT) for early partition assignment identification
US5197146A (en) * 1989-06-21 1993-03-23 Hewlett-Packard Company Method for maintaining cache coherence in a multiprocessor computer system
US5875464A (en) 1991-12-10 1999-02-23 International Business Machines Corporation Computer system with private and shared partitions in cache
US5410669A (en) 1993-04-05 1995-04-25 Motorola, Inc. Data processor having a cache memory capable of being used as a linear ram bank
IN188196B (zh) 1995-05-15 2002-08-31 Silicon Graphics Inc
US6279078B1 (en) 1996-06-28 2001-08-21 Compaq Computer Corporation Apparatus and method for synchronizing a cache mode in a dual controller, dual cache memory system operating in a plurality of cache modes
US5873117A (en) 1996-07-01 1999-02-16 Sun Microsystems, Inc. Method and apparatus for a directory-less memory access protocol in a distributed shared memory computer system
US5864671A (en) 1996-07-01 1999-01-26 Sun Microsystems, Inc. Hybrid memory access protocol for servicing memory access request by ascertaining whether the memory block is currently cached in determining which protocols to be used
US5802600A (en) * 1996-11-12 1998-09-01 International Business Machines Corporation Method and apparatus for determining a desirable directory/data block ratio in a cache memory
US6041376A (en) 1997-04-24 2000-03-21 Sequent Computer Systems, Inc. Distributed shared memory system having a first node that prevents other nodes from accessing requested data until a processor on the first node controls the requested data
FR2764097B1 (fr) * 1997-06-02 1999-07-02 Bull Sa Detection de points chauds dans une machine avec memoire a acces non uniforme
US6055610A (en) * 1997-08-25 2000-04-25 Hewlett-Packard Company Distributed memory multiprocessor computer system with directory based cache coherency with ambiguous mapping of cached data to main-memory locations
DE69715203T2 (de) 1997-10-10 2003-07-31 Bull Sa Ein Datenverarbeitungssystem mit cc-NUMA (cache coherent, non-uniform memory access) Architektur und im lokalen Speicher enthaltenem Cache-Speicher für Fernzugriff
US6073216A (en) * 1997-11-25 2000-06-06 Intel Corporation System and method for reliable system shutdown after coherency corruption
US6275904B1 (en) * 1998-03-31 2001-08-14 Intel Corporation Cache pollution avoidance instructions
US6295598B1 (en) 1998-06-30 2001-09-25 Src Computers, Inc. Split directory-based cache coherency technique for a multi-processor computer system
US6546429B1 (en) 1998-09-21 2003-04-08 International Business Machines Corporation Non-uniform memory access (NUMA) data processing system that holds and reissues requests at a target processing node in response to a retry
US6226718B1 (en) 1999-02-26 2001-05-01 International Business Machines Corporation Method and system for avoiding livelocks due to stale exclusive/modified directory entries within a non-uniform access system
US6269428B1 (en) * 1999-02-26 2001-07-31 International Business Machines Corporation Method and system for avoiding livelocks due to colliding invalidating transactions within a non-uniform memory access system
US6434668B1 (en) 1999-09-07 2002-08-13 International Business Machines Corporation Method of cache management to store information in particular regions of the cache according to information-type
US6763432B1 (en) * 2000-06-09 2004-07-13 International Business Machines Corporation Cache memory system for selectively storing directory information for a higher level cache in portions of a lower level cache
WO2002008910A1 (en) 2000-07-20 2002-01-31 Silicon Graphics, Inc. Memory device storing data and directory information thereon, and method for providing the directory information and the data in the memory device
US6615319B2 (en) * 2000-12-29 2003-09-02 Intel Corporation Distributed mechanism for resolving cache coherence conflicts in a multi-node computer architecture
US6662276B2 (en) 2000-12-29 2003-12-09 Intel Corporation Storing directory information for non uniform memory architecture systems using processor cache
US20020138698A1 (en) 2001-03-21 2002-09-26 International Business Machines Corporation System and method for caching directory information in a shared memory multiprocessor system
US6711652B2 (en) 2001-06-21 2004-03-23 International Business Machines Corporation Non-uniform memory access (NUMA) data processing system that provides precise notification of remote deallocation of modified data
US6760809B2 (en) 2001-06-21 2004-07-06 International Business Machines Corporation Non-uniform memory access (NUMA) data processing system having remote memory cache incorporated within system memory
US6959364B2 (en) * 2002-06-28 2005-10-25 Intel Corporation Partially inclusive snoop filter
US6792512B2 (en) * 2002-08-06 2004-09-14 International Business Machines Corporation Method and system for organizing coherence directories in shared memory systems
US6996676B2 (en) 2002-11-14 2006-02-07 International Business Machines Corporation System and method for implementing an adaptive replacement cache policy

Cited By (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2009033419A1 (fr) * 2007-09-11 2009-03-19 Tencent Technology (Shenzhen) Company Limited Procédé de traitement de mise en antémémoire de données, système et dispositif de mise en antémémoire de données
CN102612684A (zh) * 2009-11-13 2012-07-25 马维尔国际贸易有限公司 闪存文件系统
WO2016097808A1 (en) * 2014-12-14 2016-06-23 Via Alliance Semiconductor Co., Ltd. Dynamic cache replacement way selection based on address tag bits
US9798668B2 (en) 2014-12-14 2017-10-24 Via Alliance Semiconductor Co., Ltd. Multi-mode set associative cache memory dynamically configurable to selectively select one or a plurality of its sets depending upon the mode
US10698827B2 (en) 2014-12-14 2020-06-30 Via Alliance Semiconductor Co., Ltd. Dynamic cache replacement way selection based on address tag bits
US10719434B2 (en) 2014-12-14 2020-07-21 Via Alliance Semiconductors Co., Ltd. Multi-mode set associative cache memory dynamically configurable to selectively allocate into all or a subset of its ways depending on the mode
CN106649149A (zh) * 2015-10-28 2017-05-10 福州瑞芯微电子股份有限公司 实现地址映射的内存管理系统及方法
CN109923533A (zh) * 2016-11-10 2019-06-21 华为技术有限公司 在数据库中将计算与存储分离以改善弹性
US11138178B2 (en) 2016-11-10 2021-10-05 Futurewei Technologies, Inc. Separation of computation from storage in database for better elasticity

Also Published As

Publication number Publication date
KR20050070013A (ko) 2005-07-05
WO2004029812A3 (en) 2004-10-07
US7096323B1 (en) 2006-08-22
JP4230998B2 (ja) 2009-02-25
EP1543427A2 (en) 2005-06-22
TWI304930B (en) 2009-01-01
WO2004029812A2 (en) 2004-04-08
JP2006501548A (ja) 2006-01-12
CN100373353C (zh) 2008-03-05
TW200408952A (en) 2004-06-01
KR100970229B1 (ko) 2010-07-16
AU2003277175A1 (en) 2004-04-19

Similar Documents

Publication Publication Date Title
CN100373353C (zh) 具有储存远程快取存在信息的处理器高速缓存的计算机系统
CN100357914C (zh) 具有集成目录与处理器高速缓存的计算机系统
JP3900479B2 (ja) システム・メモリに組み込まれるリモート・メモリ・キャッシュを有する不均等メモリ・アクセス(numa)データ処理システム
JP3900481B2 (ja) 不均等メモリ・アクセス(numa)コンピュータ・システムを操作する方法、メモリ制御装置、メモリ・システム、該メモリ・システムを含むノード及びnumaコンピュータ・システム
JP3900478B2 (ja) 不均等メモリ・アクセス(numa)コンピュータ・システム及び該コンピュータ・システムを操作する方法
JP3924203B2 (ja) マルチノード・コンピュータ・システムにおける非集中グローバル・コヒーレンス管理
US5369753A (en) Method and apparatus for achieving multilevel inclusion in multilevel cache hierarchies
JP3898984B2 (ja) 不均等メモリ・アクセス(numa)コンピュータ・システム
US7711902B2 (en) Area effective cache with pseudo associative memory
CN1248118C (zh) 以推测方式使高速缓存中的缓存行失效的方法及系统
US7698508B2 (en) System and method for reducing unnecessary cache operations
JP3281893B2 (ja) キャッシュ・メモリ階層内で利用するキャッシュ・コヒーレンシ機構を実施するための方法およびシステム
US20060230237A1 (en) Method and system for maintaining cache coherence of distributed shared memory system
WO1995025306A2 (en) Distributed shared-cache for multi-processors
US20100146215A1 (en) Method and apparatus for filtering memory write snoop activity in a distributed shared memory computer
US20130173863A1 (en) Memory Management Among Levels Of Cache In A Memory Hierarchy
US20040034747A1 (en) Scalable cache coherent distributed shared memory processing system
CN1991792A (zh) 用于有效使用高速缓存及存储器的指令辅助高速缓存管理
CN1754158A (zh) 将写入数据注入到高速缓存的方法和设备
CN102804152A (zh) 对存储器层次结构中的闪存的高速缓存一致性支持
CN1263312A (zh) 具有共享干预支持的非均匀存储器访问数据处理系统
CN1156771C (zh) 用于在非均匀存储器存取计算机系统内提供逐出协议的方法和系统
CN1940892A (zh) 逐出高速缓存的行的电路布置、数据处理系统和方法
JP2003044455A (ja) 共用データのリモート割当て解除の通知を提供する不均等メモリ・アクセス(numa)データ処理システム
US8135910B2 (en) Bandwidth of a cache directory by slicing the cache directory into two smaller cache directories and replicating snooping logic for each sliced cache directory

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: GLOBALFOUNDRIES SEMICONDUCTORS CO., LTD

Free format text: FORMER OWNER: ADVANCED MICRO DEVICES CORPORATION

Effective date: 20100722

C41 Transfer of patent application or patent right or utility model
COR Change of bibliographic data

Free format text: CORRECT: ADDRESS; FROM: CALIFORNIA STATE, THE USA TO: GRAND CAYMAN ISLAND, BRITISH CAYMAN ISLANDS

TR01 Transfer of patent right

Effective date of registration: 20100722

Address after: Grand Cayman, Cayman Islands

Patentee after: GLOBALFOUNDRIES Inc.

Address before: California, USA

Patentee before: ADVANCED MICRO DEVICES, Inc.

TR01 Transfer of patent right
TR01 Transfer of patent right

Effective date of registration: 20201215

Address after: California, USA

Patentee after: Lattice chip (USA) integrated circuit technology Co.,Ltd.

Address before: Greater Cayman Islands, British Cayman Islands

Patentee before: GLOBALFOUNDRIES Inc.

TR01 Transfer of patent right
TR01 Transfer of patent right

Effective date of registration: 20210322

Address after: No.1, Duhang 1st Road, Hsinchu City, Hsinchu Science Park, Taiwan, China

Patentee after: MEDIATEK Inc.

Address before: California, USA

Patentee before: Lattice chip (USA) integrated circuit technology Co.,Ltd.

CX01 Expiry of patent term
CX01 Expiry of patent term

Granted publication date: 20080305