CN1685321A - 在具有高速缓存的数据处理系统内减少耗用时间的方法与装置 - Google Patents

在具有高速缓存的数据处理系统内减少耗用时间的方法与装置 Download PDF

Info

Publication number
CN1685321A
CN1685321A CNA038232529A CN03823252A CN1685321A CN 1685321 A CN1685321 A CN 1685321A CN A038232529 A CNA038232529 A CN A038232529A CN 03823252 A CN03823252 A CN 03823252A CN 1685321 A CN1685321 A CN 1685321A
Authority
CN
China
Prior art keywords
data
cache
data element
cache line
speed cache
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
CNA038232529A
Other languages
English (en)
Other versions
CN100357915C (zh
Inventor
P·康威
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.)
GlobalFoundries 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 CN1685321A publication Critical patent/CN1685321A/zh
Application granted granted Critical
Publication of CN100357915C publication Critical patent/CN100357915C/zh
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • 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/12Replacement control
    • G06F12/121Replacement control using replacement algorithms
    • G06F12/126Replacement control using replacement algorithms with special data handling, e.g. priority of data or instructions, handling errors or pinning

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

数据处理器(120)确认特定的数据处理操作,其中处理器中数据将被储存在高速缓存(124)中仅供使用一次。数据处理器(120)分配存储器位置至高速缓存(124)的至少一条高速缓存线。然后在中央处理单元(122)上运行的譬如数据通信驱动程序的数据发生器将数据元素写入到分配的存储器位置。数据耗用器(160)通过送出“读取一次(READ ONCE)”请求至主桥接器(130)而读取数据元素。主桥接器(130)提供“读取一次”请求至存储器控制器(126),该存储器控制器(126)读取来自高速缓存(124)的数据并解除分配该至少一条高速缓存线而不执行从高速缓存至主存储器(170)的回写。在一种形式的存储器控制器(126)中,通过发出标记该相关的高速缓存线的下一个状态无效的探测信号,而解除分配该至少一条高速缓存线。

Description

在具有高速缓存的数据处理系统内减少耗用时间的方法与装置
技术领域
本发明大体上涉及数据处理系统,而更具体地涉及具有高速缓存的数据处理系统。
背景技术
一种增加计算机系统性能的已知方法是包含有本地的、高速的存储器,如已知的高速缓存。高速缓存增加系统的性能,因为一旦中央处理单元(CPU)在特定的地址存取数据元素,则其下一个存取将是邻接的地址的可能性很高。高速缓存取得并储存数据,该数据邻接位于从较慢的主存储器或较低层级的高速缓存来的该请求的数据段(piece)。在非常高性能的计算机系统中,能以层级的方式设置几个高速缓存。最靠近CPU的已知为上层或“L1”的高速缓存,为高速缓存层级划分中最高层级者,而通常也是最快速的。其它的一般较慢的高速缓存则以降低层级的次序设置,开始是“L2”高速缓存,依此往下类推,直到连接到主存储器的最低层级的高速缓存为止。
当要储存和抛弃数据时,高速缓存遵循着某些指导原则。例如,许多处理器遵循着“分配于写入(allocate-on-write)”策略,该策略规定对应于由CPU写入的存储器位置的高速缓存线将被储存在高速缓存中。通常高速缓存遵循着已知为“最近最少使用(least-recently-used;LRU)”的策略,以决定一旦所有的位置已经占满后,将抛弃而空出哪个位置以让新的数据元素使用。
高速缓存一般包含多个状态位以指示高速缓存线在遍及整个系统中维持数据相干的状态。一种共同使用的相干协议已知为“MOEDI”协议。依照此协议各高速缓存线包括状态位以指示该线是在哪一个MOEDI状态,包括指示高速缓存线已经被修正(M)的位、高速缓存线已经独占(E)或共享(S)的位、或者高速缓存线为无效(I)的位。自有(O)状态指示在一个高速缓存中该线被修正,在其它的高速缓存中可以存在共享副本,并且存储器中的数据是陈旧的。
在一典型的构造中,所有的高速缓存结合着中央处理单元(CPU)设在同一集成电路中,而主存储器位于芯片之外。主存储器是系统中最慢和最廉价的存储器,其可以用较低成本但相对较慢的动态随机存取存储器(DRAM)芯片构成。此特性造成芯片外的动态随机存取存储器的主存储器的存取具有瓶颈,因而希望尽一切可能来避免这些瓶颈。而且在最近几年,微处理器的速度增加要快于DRAM的存取速度,如此更加重了此瓶颈问题。
发明内容
依照本发明,提供一种用于减少数据处理系统中耗用时间的方法,该系统包括高速缓存和较低层级存储器系统。首先将存储器位置分配给高速缓存的至少一条高速缓存线。数据发生器将数据元素写入到至少一条高速缓存线。接收从数据耗用器来的读取一次请求。响应于此请求,通过直接从高速缓存读取数据元素而将数据元素提供至数据耗用器。高速缓存线接着解除分配而不存取较低层级的存储器系统。
在一种形式中本发明包括数据处理器,该数据处理器具有包括高速缓存、主桥接器、和存储器控制器的中央处理单元。主桥接器连接到中央处理单元,并配合用于接收从数据耗用器来的对于数据元素的读取一次请求。存储器控制器具有连接到主桥接器的输入,并具有连接到中央处理单元的输出。存储器控制器响应接收读取一次请求,而将用于数据元素的探测信号发出至中央处理单元。该探测信号指示至少一条含有请求的数据元素的高速缓存线的下一个状态将是无效的。若高速缓存含有该数据元素,则中央处理单元提供该数据元素至主桥接器,高速缓存标记该至少一条无效的高速缓存线。
附图说明
以下将结合附图说明本发明,其中相同的参考标记表示相同的元件,其中:
图1显示了在现有技术已知的数据处理系统中与数据流和控制信号相关的时序图;
图2显示了依照本发明的与数据流和控制信号相关的时序图;
图3显示了依照本发明的数据处理系统的方块图;
图4显示了能够用来形成读取一次(READ ONCE)请求包的“超传输(HyperTransport)”包的编码表。
具体实施方式
图1显示了在现有技术已知的数据处理系统中与数据流和控制信号相关的时序图10。如图1所示,垂直轴代表时间,时间是从上向下流逝。图1将三个装置(节点)描绘为沿着水平方向分布的垂直线。标示“节点A(NODE A)”的第一节点为数据耗用器。例如,节点A可对应于譬如数据通信信道的发射器的输入/输出装置。对于此例节点A可以有相关的直接存储器存取(DMA)控制器以支持数据流。第二节点,标示“节点B(NODE B)”,为较低层级存储器系统,并包括了主存储器和可能的一个或多个较低层级高速缓存。第三节点,标示“节点C(NODE C)”,为具有高速缓存的数据发生器,譬如运行应用程序的中央处理单元。在数据通信关系上,节点C将使用在存储器中的循环缓冲器系统来产生数据帧形式的数据,而由连接到节点A的数据通信装置用于最终传输。
现在将说明数据流和控制信号。首先运行在节点C的应用程序,譬如通信协议驱动程序,建立数据帧。节点C通过执行储存操作,而将用于数据帧的数据写到存储器位置。因为没有给其本地的高速缓存分配地址,因此节点C启动一储存请求至由箭头12所表示的主存储器。存储器控制器在节点B于时间14期间启动一存储器存取,并发送无效探测信号16至所有的高速缓存,包括节点C。无效探测信号通知在系统中的所有高速缓存,该存储器控制器为了相干(coherency)的目的,而企图分配在独占状态(exclusive state)的高速缓存线至节点C。当数据从较低层级存储器系统送回时,存储器控制器将该数据前传至在节点C上的数据处理器的高速缓存,如箭头18所示。然后处理器在时间周期20期间将数据写入高速缓存线。此种类型的操作为传统的分配于写入(allocate-on-write)的操作。
高速缓存写入完成后,在节点C的应用程序经通过通知信息22将建立的数据帧信号从节点C发送至节点A。节点A响应DMA读取请求24回到节点B。节点B在时间26期间启动存储器存取,并发送探测信号28至节点C。因为此数据表示促在于节点C的高速缓存中,因此数据处理器返回该数据以满足此请求,如箭头30所示。然后在节点A的数据耗用器于时间周期32期间将数据写入至通信信道的先入先出(first-in,first-out;简称FIFO)存储器、传输缓冲器、或类似的装置。
在根据系统中其它事件的未决定时间量过去之后更迟些,储存在节点C的高速缓存中的修正的高速缓存线变成最近最少使用(LRU)的高速缓存线,而将被舍弃。因此节点C通过发送修正的数据至节点B的较低层级存储器系统而执行回写,如箭头36所示。在节点B的存储器控制器于时间周期38期间将数据写入至较低层级存储器系统。
值得注意的是此种传统的操作于时间周期14和38期间需要针对主存储器的一个读取和一个写入,因此占据着主存储器总线。对于施行高带宽通信协议的系统,将频繁地重复此操作,而耗用了相当的有效带宽部分。在最近几年主存储器的速度已经增快,但是并没有如处理器速度般的快速,因此对于此项操作希望能减少所需的主存储器总线的带宽。
为了减少主存储器带宽,本发明人认识到通信操作是一特殊情况,其中可仅依据在处理器的高速缓存内的数据而操作,而全然避免了对主存储器所需的任何存取。而且因为数据将仅可使用一次,因此并不须作后续的回写。为了避免回写,本发明人已设计了一种方法和相对应的数据处理系统,来发出如此状况的信号并防止发生回写。也可用一般目的的高速缓存来施行,该高速缓存响应无效探测信号而不会增加高速缓存线状态的数目。能参照图2而了解此种方法,图中显示了依照本发明的与数据流和控制信号相关的时序图50。相关于图1,垂直轴表示时间而时间是从上往下流逝,水平轴描绘如上述的相同的三个节点。
用CPU和存储器控制器之间已知的如“预取分配(PREFETCHALLOCATE)”请求52而开始操作。此特定的高速缓存控制指令使得高速缓存线被分配至节点C内的高速缓存,而不会首先从DRAM读取的存储器位置的内容。线的内容全部设为0,并且线建立在M状态。存储器控制器更新其目录,并响应于目标已完成信号54。然后数据处理器的驱动程序于时间周期56期间将数据直接写入到高速缓存以构造数据帧。一旦应用程序已构成数据帧后,其将发送通知信息58至节点A的输入/输出(I/O)装置中的DMA控制器。I/O装置响应DMA读取请求60至节点B。节点B启动存储器存取并发送探测信号62至节点C。节点C通过提供由箭头64所指示的数据而满足读取请求。然后节点A于时间周期66期间将数据写入其内部FIFO或发送缓冲器,用于后续传输用。当节点A读取数据时,在节点C的高速缓存解除分配高速缓存线而不进行正常时所需的回写。此操作使得数据处理系统可以通过使用预取分配(PREFETCH ALLOCATE)指令和移除(解除分配)来自高速缓存来与读取同时的数据,而避免至较低层级存储器系统的所有的存取。
至少有三种方法可用来解除分配高速缓存线而无须将其内容回写到主存储器。第一,在节点A的I/O控制器能够加上读取一次(READONCE)属性信号以指示高速缓存线即将是无效的而不用回写。第二,在节点C的CPU能够译码用于DMA读取请求的I/O地址,假如该读取落于预先定义的地址范围内的话,则使该线无效。第三,可修正数据处理器的指令组以加上“CFLUSH DEALLOCATE”命令以解除分配单条高速缓存线。将在下文中作更完整的说明,发明人宁愿使用第一种技术来获得片上I/O控制器的一些可获得的特性优点。现将参照图3和4而在下文中完全说明此技术和施行此技术的装置。
图3显示了依照本发明的数据处理系统100的方块图。数据处理系统100包括一般以单芯片微处理器形式出现的数据处理器120、输入/输出(I/O)装置160、和动态随机存取存储器(DRAM)170。微处理器120大致上包括中央处理单元(CPU)122、存储器控制器126、标示为“XBAR”的纵横式交换器(crossbar switch)128、和用于超传输(HyperTransport)标示为“HT”的三个主桥接器130、140、和150,此将在下文中作更详细的说明。CPU 122为处理器用于执行称之为x86指令组的指令。x86指令组是根据首先由美国加州Santa Clara地方的英特尔公司(Intel Corporation)制造的8086微处理器的指令组。然而,CPU 122包括许多用于x86程序包含流水线技术(pipelining)和超标量(superscalar)设计的高性能执行的复杂功能。CPU 122包括至少一个高速缓存124用来储存很频繁使用的数据。在一较佳构造的CPU中实际上包括二个上层(L1)高速缓存,和一个由指令和数据流所共享的L2高速缓存,其中一个L1高速缓存用于存指令而另一个用于存数据。在此种形式的共享L2高速缓存储存读取一次(READ ONCE)数据。然而本发明可应用于任何具有至少一个高速缓存的CPU。
存储器控制器126是用于微处理器120和DRAM 170之间数据传输的机构。存储器控制器126卸载存储器从CPU 122启动和终止存取的任务。存储器控制器126包括内部队列以使得可以有效地使用至DRAM 170的外部总线。在其它实施例中,DRAM 170能够由较低层级存储器系统所取代,该较低层级存储器系统包括静态RAM、非易失性存储器、等等的一个或多个额外的高速缓存和主存储器。
XBAR 128设计成将内部总线与微处理器120连接在一起的交换/多任务电路。
主桥接器130、140、和150分别经由输出信道132、142、152和分别经由输入信道134、144、154而连接至微处理器120的外部设备。各主桥接器130、140、和150遵从超传输技术协会(HyperTransportTechnology Consortium)于2001年第1.03修订版的HyperTransportTM输入/输出链路规格,而当使用1600MHz数据率时能够达到3.2GB/秒的总处理能力(throughput)。超传输技术是用导线实施的二个独立单一方向组的以包为基础的链路。因此例如主桥接器130经由输出连接132和输入连接134而与I/O装置160通信。超传输链路一般为点对点通信,并连接二个装置。也可使用超传输链路的各链部作为一个I/O信道、连接的I/O装置、和连至主系统的桥接器。
设计超传输链路来输送CPU、存储器、和I/O装置之间高性能和可测量的互连接数据。超传输链路使用具有晶粒上差动终止(on-diedifferential termination)的低摆动差动信号(low swing differentialsignaling)来获得非常高的数据率。超传输链路使用可测量的频率和数据宽度来获得可测量的带宽。
I/O装置160是一种输入/输出装置,用作数据耗用器。在此所示实施例中I/O装置160是一个控制器,执行由电气及电子工程师协会IEEE802.3委员会所主持制定的标准,通称为“以太网(Ethernet)”的局域网通信协议。但是本发明也可用于其它的数据耗用器。
操作运行在CPU 122的应用程序须制备用于传输的数据帧,并将该数据帧储存在高速缓存124中。如上所述关于图2,CPU 122首先施行预取分配(PREFETCH ALLOCATE)命令,使得高速缓存线分配给高速缓存124而不须存取DRAM 170。在将数据送出至外部以太网络总线之前,I/O装置160存取此数据。依照超传输标准,I/O装置160可通过发送区块读取请求包经由超传输链路而请求此数据元素。HT区块130接收此区块读取请求,并将此请求经由XBAR 128而传送至存储器控制器126。然后存储器控制器126探测此片上装置以判定它们是否包含所请求的数据元素的有效复本。在此高速缓存124的示例中,具有该数据的有效复本。高速缓存124通过经由HT区块130传送数据至I/O装置160而完成此存取。
在现有的数据处理器高速缓存124将遵循着已知的策略譬如最近最少使用(LRU)取代策略。在适当的时间,当此数据元素变成最近最少使用数据元素时以及高速缓存124需要分配新的高速缓存线时,高速缓存124将数据经由存储器控制器126而送至DRAM 170。然而在一些环境情况下,譬如生产器-耗用器数据通信的例子,此数据将由系统仅使用一次,并且向DRAM 170的写入将是多余的。因此依照本发明I/O装置160经由超传输输入信道134发送已知为READ ONCE包的新的包类型。READ ONCE包最好使用现在并未定义于超传输标准中的读取请求包的命令(Cmd)字段的保留编码,以通知其使用的请求数据为读取一次(READ ONCE)目的。READ ONCE请求使得微处理器120可以抑制通常需要回写的DRAM存取,并因此节省主存储器总线上的带宽。
现在将详细说明抑制此未来DRAM存取的机制。响应于接收此新的READ ONCE请求,存储器控制器126发出具有指示的探测信号,该指示内容为含有请求的数据元素的任何装置的高速缓存线的下一个状态将为无效(I)。因此,若其储存了该数据元素,则高速缓存124将传送此请求的数据至存储器控制器126,并将数据元素已定位于其中的高速缓存线标记为无效。通过将含有READ ONCE数据的高速缓存线标记为无效,微处理器122可避免当有效的高速缓存线从高速缓存124选出时,回写数据到DRAM 170的需要。
图4显示了能够用来形成读取一次(READ ONCE)请求包的超传输(HyperTransport)包200的图式。此包结构已知为具有地址的请求包。包为4字节长,而具有额外的4字节地址。依照本发明,I/O装置160通过将新的READ ONCE编码插入命令字段,而发出READ ONCE请求信号,此将在下文中作进一步的说明。
现将说明与此包相关的各种字段。SeqID[3:0](由位时间(Bit-time)0的连接位7和6,与Bit-time 1的连接位6和5所形成)用来标志请求组,这些请求为由装置发出作为依次的序列的一部分,并且在垂直信道内必须严格地依次排列。在相同I/O数据流内的所有请求和具有匹配的非0 SeqID字段的垂直信道必须有其所维持的次序。保留了SeqID的0x0值,即意味着事项(transaction)不是序列的部分。具有此值的事项并不受序列次序的限制,虽然它们可以用如超传输标准第6章中所说明的其它的理由而予以排序。
使用Cmd[5:0]字段来以超传输通信协议发出各种的命令。2001年超传输标准定义了Cmd[5:0]字段的各种的编码,并保留了其它的编码。表1显示该定义和保留的编码:
                            表1
V信道 命令 评注/选项 包类型
000000 - NOP 无包。包含流控制信息。 信息
000001 保留-主机
000010 NPC 闪存 闪存已投送的写入 请求
0000110001xx 保留-主机
x01xxxx01xxx NPC或PC(5位) 写入(大小) 写入请求[5]定义请求是否投送:0:未投送1:已投送[2]定义数据长度:0:字节1:双字 请求/地址/数据
[1]定义频带宽/等待时间请求:0:正常1:等时性的[0]指示是否存取请求主高速缓存相干(若存取不是针对主存储器,则予忽略):0:不相干1:相干
01xxxx01xxxx NPC 读取(大小) 读取请求[3]定义用于响应的编次的请求:0:响应不可通过已投送的请求1:响应可通过已投送的请求[2]定义数据长度:0:字节1:双字[1]定义频带宽/等待时间请求:0:正常1:等时性的[0]指示是否存取请求主高速缓存相干(若存取没有针对主存储器,则予忽略):0:不相干1:相干 请求/地址
100xxx 保留-I/O
110000 R 读取响应 读取响应 响应/数
110001110010 保留-主机
110011 R 目标完成 告诉请求的来源目标已完成 响应
11010x 保留-主机
11010x 保留-主机
11011x 保留-I/O
11100x 保留-主机
11100x 保留-主机
11100x 保留-主机
111010 PC 广播 广播信息 请求/地址
111011 保留-主机
111100 PC 防拦 防拦已投送的请求 请求
111101 NPC 极微的RMW 极微的读取修正写入(RMW) 请求/地址/数据
111110 保留-I/O
111111 同步/错误 链接同步和错误包 信息
PassPW指示此包已允许通过在同一I/O数据流的已投送的请求信道中的各包。否则,此包必须停留编次在它们之后。将清除此位以维持超传输技术的标准个人计算机接口(PCI-)状次序模式。不需要PCI-状次序的系统可设定PassPW更高的性能。
UnitID[4:0]字段用来确认在事项中的参与者。因为所有的包被转移至建于端末的主桥接器或来自该主桥接器,因此意味着是来源或目的地节点。保留0值用于主桥接器的UnitID。参看2001年超传输标准的4.2节对于使用UnitID的更详细说明。具有多个逻辑I/O数据流的节点可以拥有多个UnitID值。
超传输通信协议保留二个专用于命令的字节,在第二和第三位时间期间发送。
Addr[39:2]表示由请求所存取的双字地址。并非所有的地址位都包含于所有的请求类型中。需要较精细状态粒度(granularity)之处,则使用字节标记。
I/O装置160最好通过使用任何其中一个标记了“保留-输入/输出(Reserved-I/O)”的Cmd[5:0]字段定义,而发信号READ ONCE请求。此外,然而,因为有非常少的用于I/O装置的保留命令编码,则新的READ ONCE包最好与其它新的仅使用一个Reserved-I/O命令编码的包格式相结合。此目标可通过使用4位SeqID字段以编码额外的不同于其它的新包类型之间的状况而完成。
应当清楚,上述讨论的发出READ ONCE信号专用于超传输通信协议。然而在本发明的其它实施例中,可以使用发出READ ONCE信号状况的其它方法。例如,可以使用位字段、存在的或额外的输入/输出引脚和类似方面的特殊编码,来发信号通知READ ONCE状况。发出的READ ONCE信号可以通过使用在I/O DMA读取请求包中保留的或贩卖的特定字段,而在其它的I/O总线,譬如PCI、PCI-X、PCIE上完成。
虽然已经以最佳实施例的内容详细说明了本发明,但是对于本领域普通技术人员而言,将了解到本发明将可作各种的修饰。例如使用所揭示方法的数据处理系统可应用于直接介接到主存储器以及较低层级高速缓存的系统。再者,本发明可应用于具有一个或多个较高层级的高速缓存的系统。主存储器可以使用DRAM、SRAM、非易失性存储器、或任何其它类型的存储器而构造成。而且可以有好几种在读取高速缓存线一次后解除分配高速缓存线的方法。因此,权利要求书将包含所有落于本发明真正范围内的所有本发明的修饰。

Claims (10)

1.一种在具有分级存储器的数据处理系统(100)中的存储器存取方法,存储器包括高速缓存(124)和较低层级存储器系统(170),该方法包括下列步骤:
为高速缓存(124)的至少一条高速缓存线分配存储器位置;
通过数据发生器(122)将数据元素写入该至少一条高速缓存线;以及
接收从数据耗用器(160)来的用于该数据元素的读取一次请求,响应该读取一次请求通过直接从该高速缓存(124)读取该数据元素而提供该数据元素至该数据耗用器(160),随后解除分配该至少一条高速缓存线而不须存取该较低层级存储器系统(170)。
2.如权利要求1所述的方法,其中该解除分配的步骤包括响应该读取步骤标记该至少一条高速缓存线无效的步骤。
3.如权利要求1所述的方法,其中该分配步骤包括分配该存储器位置至该高速缓存(124)的至少一条高速缓存线,而不存取该较低层级存储器系统(170)的步骤。
4.如权利要求1所述的方法,其中写入该数据元素的步骤包括写入数据通信数据帧的至少一部分的步骤。
5.一种用于减少数据处理系统中耗用时间的方法,该数据处理系统具有包括高速缓存和较低层级存储器系统的分级存储器,该方法包括下列步骤:
接收对于数据元素的读取一次请求;
探测在该高速缓存的至少一条高速缓存线中该数据元素的出现;
关联于该探测步骤而指示该至少一条高速缓存线的下一个状态将是无效的;以及
若该数据元素是储存在该高速缓存中,则通过提供来自该高速缓存的该至少一条高速缓存线的数据并接着无效该至少一条高速缓存线,或者若该数据元素不是储存在该高速缓存中,则从该较低层级存储器系统中取得该数据元素,而满足该读取一次请求。
6.如权利要求5所述的方法,其中提供来自该至少一条高速缓存线的数据的步骤包括下列各步骤:
启动至该较低层级存储器系统的存取;以及
当发现该数据元素将储存在该高速缓存中时,则随后放弃该存取。
7.如权利要求1或5所述的方法,其中接收该读取一次请求的步骤进一步包括使用实质地与HyperTransportTM输入/输出链路规格第1.03修订版兼容的链路,来接收该该读取一次请求的步骤。
8.一种数据处理器(120),包括:
包含有高速缓存(124)的中央处理单元(122);
连接该中央处理单元(122)的主桥接器(130),该主桥接器(130)用于接收来自数据耗用器(160)的用于数据元素的读取一次请求;以及
存储器控制器(126),该存储器控制器的输入连接至该主桥接器(130),而其输出连接至该中央处理单元(122),其中该存储器控制器(126)响应接收的该读取一次请求而发出针对该数据元素的探测信号至该中央处理单元(122),该探测信号指示包含该数据元素的至少一条高速缓存线的下一个状态将是无效的;
其中若该高速缓存(124)包含该数据元素,则该中央处理单元(122)提供该数据元素至该主桥接器(130),该高速缓存(124)标记该至少一个高速缓存线无效。
9.如权利要求8所述的数据处理器(120),其中该主桥接器(130)使用实质地与HyperTransportTM输入/输出链路规格第1.03修订版兼容的链路,连接至输入/输出装置(160)。
10.如权利要求8所述的数据处理器(120),其中该中央处理单元(122)、该主桥接器(130)、和该存储器控制器(126)结合成单一的集成电路。
CNB038232529A 2002-09-30 2003-09-18 在具有高速缓存的数据处理系统内减少耗用时间的方法与装置 Expired - Fee Related CN100357915C (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US10/261,642 US7062610B2 (en) 2002-09-30 2002-09-30 Method and apparatus for reducing overhead in a data processing system with a cache
US10/261,642 2002-09-30

Publications (2)

Publication Number Publication Date
CN1685321A true CN1685321A (zh) 2005-10-19
CN100357915C CN100357915C (zh) 2007-12-26

Family

ID=32030034

Family Applications (1)

Application Number Title Priority Date Filing Date
CNB038232529A Expired - Fee Related CN100357915C (zh) 2002-09-30 2003-09-18 在具有高速缓存的数据处理系统内减少耗用时间的方法与装置

Country Status (8)

Country Link
US (1) US7062610B2 (zh)
EP (1) EP1546887A2 (zh)
JP (1) JP4559861B2 (zh)
KR (1) KR101069931B1 (zh)
CN (1) CN100357915C (zh)
AU (1) AU2003267204A1 (zh)
TW (1) TWI322944B (zh)
WO (1) WO2004031964A2 (zh)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN100504816C (zh) * 2006-08-24 2009-06-24 国际商业机器公司 使高速缓存线暂时无效和重新有效的方法和数据处理系统
CN108228484A (zh) * 2016-12-12 2018-06-29 英特尔公司 针对处理器中的高速缓存利用的无效读取
CN110235113A (zh) * 2017-02-08 2019-09-13 Arm有限公司 数据处理

Families Citing this family (22)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20040019704A1 (en) * 2002-05-15 2004-01-29 Barton Sano Multiple processor integrated circuit having configurable packet-based interfaces
US7155572B2 (en) * 2003-01-27 2006-12-26 Advanced Micro Devices, Inc. Method and apparatus for injecting write data into a cache
US7334102B1 (en) 2003-05-09 2008-02-19 Advanced Micro Devices, Inc. Apparatus and method for balanced spinlock support in NUMA systems
US20050132089A1 (en) * 2003-12-12 2005-06-16 Octigabay Systems Corporation Directly connected low latency network and interface
US20060143402A1 (en) * 2004-12-23 2006-06-29 Srinivas Chennupaty Mechanism for processing uncacheable streaming data
US7437510B2 (en) * 2005-09-30 2008-10-14 Intel Corporation Instruction-assisted cache management for efficient use of cache and memory
US20090037661A1 (en) * 2007-08-04 2009-02-05 Applied Micro Circuits Corporation Cache mechanism for managing transient data
US7861041B2 (en) * 2007-09-04 2010-12-28 Advanced Micro Devices, Inc. Second chance replacement mechanism for a highly associative cache memory of a processor
US7873791B1 (en) * 2007-09-28 2011-01-18 Emc Corporation Methods and systems for incorporating improved tail cutting in a prefetch stream in TBC mode for data storage having a cache memory
JP2009157608A (ja) * 2007-12-26 2009-07-16 Nec Corp キャッシュメモリシステムおよびキャッシュメモリ制御方法
GB2456924B (en) * 2008-04-28 2012-03-07 Ibm Method, apparatus, computer program product and data processing program of controlling cache usage in a computer system
US8185695B2 (en) * 2008-06-30 2012-05-22 Advanced Micro Devices, Inc. Snoop filtering mechanism
US9785462B2 (en) 2008-12-30 2017-10-10 Intel Corporation Registering a user-handler in hardware for transactional memory event handling
US8627017B2 (en) * 2008-12-30 2014-01-07 Intel Corporation Read and write monitoring attributes in transactional memory (TM) systems
DE102009026961A1 (de) * 2009-06-16 2010-12-23 Robert Bosch Gmbh Verfahren zum Übertragen von Daten zwischen Teilnehmerstationen eines Bussystems
US8751714B2 (en) * 2010-09-24 2014-06-10 Intel Corporation Implementing quickpath interconnect protocol over a PCIe interface
US8683135B2 (en) * 2010-10-31 2014-03-25 Apple Inc. Prefetch instruction that ignores a cache hit
KR102118309B1 (ko) 2012-09-19 2020-06-03 돌비 레버러토리즈 라이쎈싱 코오포레이션 양자점/리모트 인광 디스플레이 시스템 개선
TWI526966B (zh) 2013-11-25 2016-03-21 財團法人資訊工業策進會 資料處理裝置及資料處理方法
US9792210B2 (en) 2015-12-22 2017-10-17 Advanced Micro Devices, Inc. Region probe filter for distributed memory system
US10042762B2 (en) 2016-09-14 2018-08-07 Advanced Micro Devices, Inc. Light-weight cache coherence for data processors with limited data sharing
US11036658B2 (en) 2019-01-16 2021-06-15 Advanced Micro Devices, Inc. Light-weight memory expansion in a coherent memory system

Family Cites Families (33)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4197580A (en) 1978-06-08 1980-04-08 Bell Telephone Laboratories, Incorporated Data processing system including a cache memory
JPH0354649A (ja) * 1989-07-24 1991-03-08 Oki Electric Ind Co Ltd バッファ記憶制御方式
JP2695017B2 (ja) * 1989-11-08 1997-12-24 富士通株式会社 データ転送方式
JPH0448358A (ja) * 1990-06-18 1992-02-18 Nec Corp キャッシュ・メモリ制御方式
JPH04233642A (ja) 1990-07-27 1992-08-21 Dell Usa Corp キャッシュアクセスと並列的にメモリアクセスを行なうプロセッサ及びそれに用いられる方法
JPH04195576A (ja) * 1990-11-28 1992-07-15 Nec Corp キャッシュメモリ方式
US5375216A (en) 1992-02-28 1994-12-20 Motorola, Inc. Apparatus and method for optimizing performance of a cache memory in a data processing system
US5535116A (en) 1993-05-18 1996-07-09 Stanford University Flat cache-only multi-processor architectures
US5553265A (en) 1994-10-21 1996-09-03 International Business Machines Corporation Methods and system for merging data during cache checking and write-back cycles for memory reads and writes
US6101574A (en) 1995-02-16 2000-08-08 Fujitsu Limited Disk control unit for holding track data in non-volatile cache memory
JPH08272687A (ja) * 1995-04-03 1996-10-18 Nec Corp 入出力キャッシュメモリ
US5680576A (en) 1995-05-05 1997-10-21 Silicon Graphics, Inc. Directory-based coherence protocol allowing efficient dropping of clean-exclusive data
JP3889044B2 (ja) 1995-05-05 2007-03-07 シリコン、グラフィクス、インコーポレイテッド 不均一メモリ・アクセス(numa)システムにおけるページ移動
JP2976867B2 (ja) * 1995-12-07 1999-11-10 日本電気株式会社 入出力バッファ装置及びその管理方法
US5829028A (en) 1996-05-06 1998-10-27 Advanced Micro Devices, Inc. Data cache configured to store data in a use-once manner
US6044438A (en) 1997-07-10 2000-03-28 International Business Machiness Corporation Memory controller for controlling memory accesses across networks in distributed shared memory processing systems
US6223258B1 (en) * 1998-03-31 2001-04-24 Intel Corporation Method and apparatus for implementing non-temporal loads
US6212568B1 (en) * 1998-05-06 2001-04-03 Creare Inc. Ring buffered network bus data management system
US6490654B2 (en) * 1998-07-31 2002-12-03 Hewlett-Packard Company Method and apparatus for replacing cache lines in a cache memory
US6457105B1 (en) * 1999-01-15 2002-09-24 Hewlett-Packard Company System and method for managing data in an asynchronous I/O cache memory
US6442666B1 (en) * 1999-01-28 2002-08-27 Infineon Technologies Ag Techniques for improving memory access in a virtual memory system
US6502171B1 (en) * 1999-08-04 2002-12-31 International Business Machines Corporation Multiprocessor system bus with combined snoop responses explicitly informing snoopers to scarf data
JP3897218B2 (ja) * 1999-10-08 2007-03-22 富士通株式会社 キャッシュ装置及び制御方法
US6549961B1 (en) * 1999-10-27 2003-04-15 Infineon Technologies North America Corporation Semaphore access in a multiprocessor system
US6751684B2 (en) * 2000-12-21 2004-06-15 Jonathan M. Owen System and method of allocating bandwidth to a plurality of devices interconnected by a plurality of point-to-point communication links
US7017008B2 (en) * 2000-12-29 2006-03-21 Intel Corporation Method and apparatus for optimizing data streaming in a computer system utilizing random access memory in a system logic device
US7100001B2 (en) 2002-01-24 2006-08-29 Intel Corporation Methods and apparatus for cache intervention
US6912612B2 (en) 2002-02-25 2005-06-28 Intel Corporation Shared bypass bus structure
US6839816B2 (en) 2002-02-26 2005-01-04 International Business Machines Corporation Shared cache line update mechanism
JP2003296189A (ja) * 2002-04-02 2003-10-17 Kyocera Corp キャッシュシステムにおけるデータ書き込み方法
US20040019704A1 (en) 2002-05-15 2004-01-29 Barton Sano Multiple processor integrated circuit having configurable packet-based interfaces
US6944719B2 (en) 2002-05-15 2005-09-13 Broadcom Corp. Scalable cache coherent distributed shared memory processing system
US8533401B2 (en) 2002-12-30 2013-09-10 Intel Corporation Implementing direct access caches in coherent multiprocessors

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN100504816C (zh) * 2006-08-24 2009-06-24 国际商业机器公司 使高速缓存线暂时无效和重新有效的方法和数据处理系统
CN108228484A (zh) * 2016-12-12 2018-06-29 英特尔公司 针对处理器中的高速缓存利用的无效读取
CN110235113A (zh) * 2017-02-08 2019-09-13 Arm有限公司 数据处理
CN110235113B (zh) * 2017-02-08 2023-11-14 Arm有限公司 存储器控制器和用于数据处理的系统和方法

Also Published As

Publication number Publication date
US7062610B2 (en) 2006-06-13
TWI322944B (en) 2010-04-01
WO2004031964A3 (en) 2004-10-28
KR20050046814A (ko) 2005-05-18
JP2006501568A (ja) 2006-01-12
JP4559861B2 (ja) 2010-10-13
WO2004031964A2 (en) 2004-04-15
TW200407709A (en) 2004-05-16
EP1546887A2 (en) 2005-06-29
CN100357915C (zh) 2007-12-26
US20040064651A1 (en) 2004-04-01
AU2003267204A8 (en) 2004-04-23
AU2003267204A1 (en) 2004-04-23
KR101069931B1 (ko) 2011-10-05

Similar Documents

Publication Publication Date Title
CN100357915C (zh) 在具有高速缓存的数据处理系统内减少耗用时间的方法与装置
US7366865B2 (en) Enqueueing entries in a packet queue referencing packets
US7155572B2 (en) Method and apparatus for injecting write data into a cache
JP3641675B2 (ja) 分割バッファアーキテクチュア
US9280290B2 (en) Method for steering DMA write requests to cache memory
US6704831B1 (en) Method and apparatus for converting address information between PCI bus protocol and a message-passing queue-oriented bus protocol
CN1307570C (zh) 控制数据处理系统间经由存储器的数据流的方法和装置
US6557048B1 (en) Computer system implementing a system and method for ordering input/output (IO) memory operations within a coherent portion thereof
US8489794B2 (en) Processor bus bridge for network processors or the like
TWI590060B (zh) PCI Express增強及延伸
US20070147426A1 (en) PCI-Express™ transaction layer packet compression
WO2002041155A2 (en) Method and apparatus for implementing pci dma speculative prefetching in a message passing queue oriented bus system
CN102132262A (zh) 窥探滤波机构
US20130173837A1 (en) Methods and apparatus for implementing pci express lightweight notification protocols in a cpu/memory complex
US10474575B2 (en) Cache-based communication between execution threads of a data processing system
US6754751B1 (en) Method and apparatus for handling ordered transactions
US6714994B1 (en) Host bridge translating non-coherent packets from non-coherent link to coherent packets on conherent link and vice versa
US7277990B2 (en) Method and apparatus providing efficient queue descriptor memory access
US20050033922A1 (en) Embedded DRAM cache
US6985974B1 (en) Memory interface controller for a network device
US7752355B2 (en) Asynchronous packet based dual port link list header and data credit management structure
US7107381B2 (en) Flexible data transfer to and from external device of system-on-chip
US6757793B1 (en) Reducing probe traffic in multiprocessor systems using a victim record table
DATA 432 E434 I

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: 20100721

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: 20100721

Address after: Grand Cayman, Cayman Islands

Patentee after: Globalfoundries Semiconductor Inc.

Address before: American California

Patentee before: Advanced Micro Devices Inc.

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

Granted publication date: 20071226

Termination date: 20190918