CN103124962B - 优化环协议和技术 - Google Patents

优化环协议和技术 Download PDF

Info

Publication number
CN103124962B
CN103124962B CN201180045835.3A CN201180045835A CN103124962B CN 103124962 B CN103124962 B CN 103124962B CN 201180045835 A CN201180045835 A CN 201180045835A CN 103124962 B CN103124962 B CN 103124962B
Authority
CN
China
Prior art keywords
message
ring
computing platform
agent
write
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.)
Active
Application number
CN201180045835.3A
Other languages
English (en)
Other versions
CN103124962A (zh
Inventor
M·R·钦萨玛尼
R·G·普拉萨德
H·K·纳格帕尔
P·K·曼纳瓦
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.)
Intel Corp
Original Assignee
Intel Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Intel Corp filed Critical Intel Corp
Publication of CN103124962A publication Critical patent/CN103124962A/zh
Application granted granted Critical
Publication of CN103124962B publication Critical patent/CN103124962B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1097Protocols in which an application is distributed across nodes in the network for distributed storage of data in networks, e.g. transport arrangements for network file system [NFS], storage area networks [SAN] or network attached storage [NAS]
    • 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0806Multiuser, multiprocessor or multiprocessing cache systems
    • G06F12/0811Multiuser, multiprocessor or multiprocessing cache systems with multilevel cache hierarchies
    • 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/0813Multiuser, multiprocessor or multiprocessing cache systems with a network or matrix configuration
    • 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
    • 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
    • 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
    • G06F12/0835Cache consistency protocols using a bus scheme, e.g. with bus monitoring or watching means for main memory peripheral accesses (e.g. I/O or DMA)
    • 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/0837Cache consistency protocols with software control, e.g. non-cacheable data
    • 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/084Multiuser, multiprocessor or multiprocessing cache systems with a shared cache

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Mathematical Physics (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Memory System Of A Hierarchy Structure (AREA)
  • Multi Processors (AREA)
  • Information Transfer Systems (AREA)

Abstract

描述了涉及优化环协议和技术的方法和装置。在一个实施例中,第一代理生成对通过计算平台的第一环写入高速缓存的高速缓存线的请求。接收写入请求的第二代理通过计算平台的第一环将其转发给第三代理。第三代理进而(例如,归属代理)通过计算平台的不同的第二环接收与写入请求相对应的数据,并将数据写入高速缓存。还公开了其它实施例。

Description

优化环协议和技术
领域
本发明一般涉及电子学领域。一些实施例尤其涉及优化环协议和技术。
背景
例如由于需要容纳较大数目的内核以及例如相等数目的VPU(向量处理单元)来满足固定功率预算内的性能需求,因此高性能计算(HPC)平台可能是频率受约束的。由于较大数目的内核,一些平台内的一些处理器被设计成在低于2GHz下操作。与当前以及下一代服务器处理器内核(例如,在3.2+GHz下的)相比,这是显著较低的频率。较低频率对(由内核和处理单元执行的)环施加了更大的压力,因为环吞吐量通常与频率成比例。
因而,HPC平台可能每套接口(socket)需要大量存储器带宽,以便字节/触发(byte/flop)比率保持在高水平。
附图简述
参照附图提供详细描述。在附图中,附图标记最左边的数字标识该附图标记首次出现的附图。在不同附图中使用相同附图标记来指示相似或相同的项目。
图1-4和7-8示出可用于实现本文中所讨论的各个实施例的计算系统或平台的实施例的框图。
图5-6例示了根据一些实施例的流程图。
详细描述
在以下描述中,阐述众多具体细节以提供对各实施例的透彻理解。然而,在没有这些具体细节的情况下也可实践某些实施例。在其它实例中,并未对公知方法、程序、组件以及电路进行详细描述以免模糊具体实施例。
一些实施例提供了减少在环的不同部分上传播的消息的数目和/或减少每个消息传播的跳跃的数目的若干技术。这些机制进而有助于减少环上的话务,以使得可维持较高的整体存储器带宽。
各种计算系统可用于实现本文讨论的实施例,诸如参考图1以及图7-8讨论的系统。更具体地,图1示出根据本发明的实施例的计算系统100的框图。系统100可包括一个或多个代理102-1至102-M(在本文中统称为“代理102”)。在实施例中,一个或多个代理102可以是诸如参照图7-8讨论的计算系统之类的计算系统的任何部件。
如图1所示,代理102可经由网络结构104通信。
在一个实施例中,网络结构104可包括允许各代理(诸如计算设备)通信数据的计算机网络。在实施例中,网络结构104可包括经由串行(例如,点对点)链路和/或共享的通信网络通信的一个或多个互连(或互连网络)。例如,某些实施例可便于部件在允许与完全缓冲双列直插式存储器模块(FBD)通信的链路上调试或验证,例如,其中FBD链路是用于将存储器模块耦合到主机控制器设备(诸如处理器或存储器中枢)的串行链路。调试信息可从FBD通道主机传输,以使得调试信息可沿着通道由通道通信量跟踪捕获工具(诸如一个或多个逻辑分析器)观测。
在一个实施例中,系统100可支持分层协议方案,该分层协议方案可包括物理层、链路层、路由层、传输层和/或协议层。对于点对点或共享网络,结构104还可便于数据(例如以分组形式)从一个协议(例如,高速缓存处理器或高速缓存知晓存储器控制器)传输到另一协议。而且,在某些实施例中,网络结构104可提供遵守一个或多个高速缓存一致协议的通信。
此外,如图1中的箭头方向所示,代理102可经由网络结构104传输和/或接收数据。因此,某些代理可利用单向链路通信,而其它代理可利用双向链路通信。例如,一个或多个代理(诸如代理102-M)可(例如,经由单向链路106)传输数据,其它代理(诸如代理102-2)可(例如,经由单向链路108)接收数据,而某些代理(诸如代理102-1)可(例如,经由双向链路110)传输和接收数据。而且,代理102中的至少一个(例如,如图1中所例示的102-1)可访问存储器120(诸如本文中参照图2-8讨论的存储器)。
图2是根据一实施例的计算系统的框图。系统200可包括多个套接口202-208(示出四个,但是一些实施例可具有更多或更少套接口)。在一实施例中,每个套接口可包括处理器。而且,每个套接口可经由诸如参照图8讨论的点对点(PtP)链路耦合至其他套接口。如参照图1的网络结构104所讨论的,每个套接口可被耦合至系统存储器的本地部分,例如,由可包括动态随机存取存储器(DRAM)的多个双列直插式存储器模块(DIMM)构成。
如图2中所示出的,每个套接口可被耦合至存储器控制器(MC)/归属代理(HA)(诸如MC0/HA0至MC3/HA3)。存储器控制器可被耦合至相应的本地存储器(标示为MEM0至MEM3),其可以是系统存储器(诸如图8的存储器812)的一部分。在一些实施例中,存储器控制器(MC)/归属代理(HA)(诸如MC0/HA0至MC3/HA3)可与图1的代理102-1相同或类似,而标示为MEM0至MEM3的存储器可与图1的存储器120相同或类似。通常,处理/高速缓存代理可向归属节点发送请求以访问与相应的“归属代理”相关联的存储器地址。而且,在一个实施例中,MEM0至MEM3可被配置成镜像数据,例如,作为主机和从属。而且,在一些实施例中,系统200的一个或多个组件可被包括在同一集成电路管芯上。
诸如图2中所示的实现由此可用于带有镜像的套接口无粘合(glueless)配置。例如,指派给存储器控制器(诸如MCO/HA0)的数据可通过PtP链路被镜像至另一存储器控制器(诸如MC3/HA3)。而且,与存储器控制器MC3/HA3相关联的目录可在至镜像的拷贝之际以未知(U)状态被初始化。一旦此控制器(例如,由于对此存储器控制器的在线服务调用)发生故障,可从U状态重构该目录。
如以上所讨论的,HPC平台可能要求每个套接口有相对较大量的存储器带宽,以便将字节/触发比率保持在高水平。例如,与同一时间帧中的一些可用服务器处理器的60-100GB/s峰值带宽相比,一些HPC处理器可能相应地以250-500GB/s的存储器带宽为目标。与一些当前以及下一代服务器处理器中的每个套接口可用的带宽相比,这几乎是4倍-8倍的更多的存储器带宽。维持此存储器带宽水平对环施加了许多压力。
此外,一些服务器处理器可包括比第二级高速缓存(L2)大10倍-12倍的第三级高速缓存(L3)。在较大的L3下,L2的~85%-95%的未命中(miss)在L3中得以满足。在对L3访问进行散列化的情况下,L2未命中话务均等地分布在所有L3排(bank)中,并且对于此类话务模式,环表现良好且所有链路差不多被均等地利用。然而,在一些平台中,由于区域约束,可能没有L3高速缓存,而是仅有可被用来过滤对其他内核的不必要探听的物理分布且逻辑共享的标签目录(TD)(其可被包括在图1-4和7-8中所示的计算平台的一个或多个组件中)。此外,在HPC应用中,与服务器应用相比,存在相对少的共享。因此,大部分话务通过TD从L2转到存储器。这在从TD至归属的链路上造成了大量的话务拥塞。
图3示出了根据一些实施例的24内核环配置,而图4示出了根据一些实施例的32内核环。在一些实施例中,图3和4中所示的组件可以是参照图1、2、7和/或8讨论的组件中的一个或多个。例如,图3和4的CPU(中央处理单元)、TD(标签目录)等可以是图1的代理102。而且,存储器DDR或FDRAM(快速DRAM接口具有比DDR接口多3倍-4倍的带宽,并且具有比DDR低10-15ns的访问时间)可以与存储器120(或本文中参照图2、7和/或8讨论的存储器)相同或类似。此外,图3-4每对相邻组件可经由(诸如参照图8所讨论的)串行点对点链路来耦合。在一些实施例中,图3或4的组件中的一个或多个可被设置在同一集成电路管芯上。
图3-4中的处理内核被标示为CPU。在一些实施例中,存在4个双向环。AD环承载内核与TD之间以及TD与包含地址的归属代理(HA)之间的请求消息。ACK环承载用于流控制的确认、探听响应消息和信用返回消息。BL(块数据)环在内核与归属代理之间承载数据消息并传递高速缓存线。IV(无效)环承载从TD至内核的探听查询消息。如图所示,图3包括4个归属代理以及34个环站点(RS,其功能是从CPU或TD向相邻环站点/从相邻环站点向CPU或TD转发请求/数据),而图4包括8个归属代理以及46个环站点。如图所示,一些环站点(耦合至CPU的那些)被耦合至标签目录(TD)。而且,RS中的至少一个可被耦合至UB(工具箱),而DMY(伪环站点)指示这样的环站点:该环站点没有至诸如CPU或TD之类的功能单元的任何连接。
为了维持较高的存储器带宽512GB/s,BL环宽度可被增至64字节(与服务器处理器中的32字节形成对比),并且归属代理的数目可被增至4和8(在服务器处理器中的1至2形成对比)。可修改散列算法以将地址分发至所有归属代理。虽然这有助于降低对BL环的压力,但是AD和ACK环仍会被高度利用。如图5和6中所示的,大量消息在AD环和ACK环上传播,以在两个代理(例如,内核和存储器)之间传递数据。因此,对于许多有趣的话务模式,AD和ACK环在BL环之前首先成为瓶颈。可利用大量优化(如以下进一步讨论的)来减轻对AD和ACK环的压力。这些优化可或者减少消息传播的跳跃的数目或者减少交换的消息的数据,从而便于数据的传递。
优化1:当内核(例如,图3-4的CPU)向非内核(即,除处理内核(图3-4的CPU)之外的组件)发送读取请求或显式回写(writeback)消息时,它们需要GO确认消息来确定请求已被系统(诸如图1-4的系统)中的所有代理全局观测到。在服务器/图形处理器中,可由高速缓存代理向内核发送显式GO消息。在一些其他系统(例如,HPC平台)中,针对读取请求,可由归属和QPI(快速路径互连)代理组合GO消息和数据消息。类似地,在ACK环上进行传输之前,针对来自L2的显式回写,可由TD组合GO消息和WrPull(指示代理应当针对未决写入请求发送数据的写入拉取)消息。这进而削减了ACK环上的消息的数目。
优化2:可修改用于将地址指派给TD和HA的散列算法以创建TD与归属代理之间的关联性。表1示出了一个实施例中的散列方案的使用。
表1
参照图3,通过此散列方案,被散列化至特定归属代理的地址被指派给仅6个TD(CW(顺时针)方向上的3个TD以及CCW(逆时针)方向上的3个TD)。类似地,就图4而言,被散列化至特定归属代理的地址被指派给仅4个TD(CW方向上的2个TD以及CCW上的2个TD)。这将消息在TD和归属之间传播所需的平均跳跃数目削减至2(对于图3)和1.5(对于图4)。在不具备此关联性的情况下,平均跳跃数目会是7.5(对于图3)和11.5(对于图4)。通过削减平均跳跃数目,缩减了AD和ACK环上的话务,由此改进可用带宽。
优化3:为了向归属代理发送回写话务,高速缓存代理(例如,TD)需要向归属代理发送DRS消息和HOM消息。尽管实际数据来自内核,但是TD向归属代理生成数据头部(代表数据响应的DRS)消息和WbMtoI/E/S标志符(HOM)消息(其中WbMtoI/E/S是指回写数据以及将高速缓存状态从已修改改变为无效/独占/共享)。在QPI中,HOM消息通常被有序化,但是NOTDRS消息(DRS消息不被有序化),因此它们不能被组合。然而,给定环协议,从TD至HA的AD消息不反弹,并且它们采取从TD至HA的特定方向(CW或CCW)。因此,为了削减AD消息的数目,在AD环上进行传输之前,实施例组合标志符和数据头部消息。这不违背QPI协议要求,但是削减了AD环话务。
优化4:非时间(NT)存储(也称为“流送存储”)在HPC应用中是流行的。IDI(其代表内部管芯互连)消息协议使用称为WcIL(其代表写入组合无效线)的操作(op)代码来标示这些事务。当内核需要将数据写入整个高速缓存线时,它们仅需要所有权,而无需读取线的先前值。与将数据从寄存器转移到存储器的标准存储指令相比,NT存储不需要针对所有权的在前高速缓存线读取(RFO),而是“直接”写入存储器。流拷贝(stream-copy)(A[i]=B[i])以及流三元组(A[i]=B[i]+k*C[i])基准的优化版本使用流送存储。
在图5-6中,由所用的环对消息进行前同步码处理(preamble)(例如,AK:WrPull指示在AK/Ack环上发送WrPull)。为了例示所有公开的优化,在各个环上显示用于流拷贝基准的消息流。更具体地,图5和6分别示出了用于具有优化或没有优化的流拷贝基准的环协议。流拷贝基准是存储器带宽压力测试中用作HPC应用中的代理(用于表示不同进程之间的消息的移动)的一种。流拷贝循环的每次迭代涉及:a)读取数据元素A[i];以及b)执行对数据元素B[i]的流送存储。由于高速缓存是被大数据阵列填充的,因此发生对未经修改的元素A[i]的清理驱逐,这也在图5-6中示出。
参看图6(其例示了用于流拷贝的未经优化的环协议),用于WcIL的环协议的一个实现按如下来操作:(1)内核将WcIL请求发送到TD;(2)如有需要,则TD使所有内核无效,并将InvItoE请求发送到归属;以及(3)如果有需要,则归属使其他套接口无效,并将Cmp(完整)消息发送到TD。此时,TD具有线的所有权。TD现在对来自L2的数据执行WrPull_GO_I(其代表通过GO和无效高速缓存线写入拉取)并将其发送到归属。从TD至归属的InvItoE(使所有其他高速缓存中的线无效,并以独占状态安置线)以及从归属至TD的Cmp对Ad和Ack环添加了附加消息,并对环施加了压力。
在一个实施例中,提供了其中令归属而非TD成为排序点的优化技术(例如参看图5,其例示了用于流拷贝的优化环协议)。通过归属作为排序点,用于WcIL的环协议改变如下:(1)内核向TD发送WcIL请求;(2)若有需要,则TD使所有内核无效,并将WcIL请求转发给归属(TD还可(在没有GO的情况下)向内核执行WrPull并要求内核将数据写入归属);(3)如有需要,则归属可使其他套接口无效,并将Cmp(完整)消息发送到TD;以及(4)TD在随后将GO消息发送给内核。注意,在此优化中,至内核的GO消息与至内核的WrPull消息是分开的。这不减少等待时间(对内核中的L2-缓冲器或写入组合缓冲器条目的占用),但是削减AD环话务。
如图5和6的流程图所示的,所公开的优化不仅减少AD和ACK环上的消息的数目,还削减消息在归属与TD之间传播的距离。此外,由于相对于服务器的内核中的3+GH,一些HPC平台的规划环频率可以仅为2GHz(以满足功率约束),因此在图3-4的系统中,AD和ACK环的数目可翻倍。存在若干种用于将两个环与所有代理连接的方式。在一实施例中,(向/从内核发起的)所有IDI消息是在AD/ACK环中的一个上发送的,而(向/从TD发起的)所有QPI消息是在其他AD/ACK环上发送的。此方案平衡两个AD/ACK环之间的话务,并减轻对转向归属代理的热点链路的压力。
图7示出计算系统700的实施例的框图。图1的代理102中的一个或多个可包括计算系统700中的一个或多个组件。而且,系统700的各个组件可包括如图7中例示的TD(诸如图1-6的TD)。然而,可在系统700中的各个位置设置TD,包括或排除所例示的那些位置。计算系统700可包括耦合到互连网络(或总线)704的一个或多个中央处理单元(CPU)702(在本文中可将其统称为“处理器702”)。处理器702可以是任何类型的处理器,诸如通用处理器、网络处理器(它可处理在计算机网络705上传达的数据)等(包括精简指令集计算机(RISC)处理器或复杂指令集计算机(CISC))。此外,处理器702可具有单核或多核设计。具有多核设计的处理器702可将不同类型的处理器核集成在同一集成电路(IC)管芯上。同样,具有多核设计的处理器702可被实现为对称或不对称多处理器。
处理器702可包括一个或多个高速缓存,在各实施例中该一个或多个高速缓存可以是专用的和/或共享的。一般而言,高速缓存存储与其它位置存储的原始数据相对应的数据或先前计算出的数据。为了减少存储器访问等待时间,一旦将数据存储在高速缓存中,就可通过访问经高速缓存的副本而非重新取出或重新计算原始数据来进行将来的使用。该高速缓存可以是用于存储由系统700的一个或多个组件使用的电子数据(例如,包括指令)的任何类型的高速缓存,诸如一级(L1)高速缓存、二级(L2)高速缓存、三级(L3)高速缓存、中级高速缓存、末级高速缓存(LLC)等。另外,这种高速缓存可位于各种位置(例如,本文讨论的包括图1-6或8的系统在内的计算系统的其它组件内)。
芯片组706可附加地耦合到互连网络704。此外,芯片组706可包括图形存储器控制中枢(GMCH)708。GMCH708可包括耦合到存储器710的存储器控制器712。存储器712可存储数据,例如包括由处理器702或与计算系统700的组件通信的任意其它设备执行的指令序列。同样,在本发明的一个实施例中,存储器712可包括一个或多个易失性存储(或存储器)设备,诸如随机存取存储器(RAM)、动态RAM(DRAM)、同步DRAM(SDRAM)、静态RAM(SRAM)等。还可使用诸如硬盘之类的非易失性存储器。可将诸如多个处理器和/或多个系统存储器之类的另外的设备耦合到互连网络704。
GMCH708还可包括(例如,在实施例中经由图形加速器)耦合到显示设备716的图形接口714。在一个实施例中,图形接口714可经由加速图形端口(AGP)耦合到显示设备716。在本发明的实施例中,显示设备716(诸如平板显示器)可通过例如信号转换器耦合到图形接口714,该信号转换器将诸如视频存储器或系统存储器(例如,存储器712)之类的存储设备中存储的图像的数字表示转换成由显示器716解释和显示的显示信号。
如图7所示,中枢接口718可将GMCH708耦合到输入/输出控制中枢(ICH)720。ICH720可向耦合到计算系统700的输入/输出(I/O)设备提供接口。ICH720可通过诸如可遵守PCIe规范的外围组件互连(PCI)桥、通用串行总线(USB)控制器等等外围桥(或控制器)724耦合到总线722。桥724可在处理器702和外围设备之间提供数据路径。可使用其它类型的布局。同样,多个总线可例如通过多个桥或控制器耦合到ICH720。此外,总线722可包括总线系统的其它类型和配置。另外,在本发明的各实施例中,耦合到ICH720的其它外围组件可包括集成的驱动电子(IDE)或小型计算机系统接口(SCSI)硬盘驱动器、USB端口、键盘、鼠标、并行端口、串行端口、软盘驱动器、数字输出支持(例如,数字视频接口(DVI))等。
总线722可耦合到音频设备726、一个或多个盘驱动器728以及网络适配器730(在实施例中可以是NIC)。在一个实施例中,耦合到总线722的网络适配器730或其它设备可与芯片组706通信。同样,在本发明的一些实施例中,各组件(诸如网络适配器730)可耦合到GMCH708。此外,可组合处理器702和GMCH708,以形成单个芯片。在实施例中,可在CPU702的一个或多个中设置存储器控制器710。此外,在实施例中,GMCH708和ICH720可组合成外围控制中枢(PCH)。
另外,计算系统700可包括易失性和/或非易失性存储器(或存储)。例如,非易失性存储器可包括以下的一个或多个:只读存储器(ROM)、可编程ROM(PROM)、可擦除PROM(EPROM)、电RPROM(EEPROM)、盘驱动器(例如,728)、软盘、紧致盘ROM(CD-ROM)、数字多功能盘(DVD)、闪存、磁光盘或能够储存电子数据(例如,包括指令)的其它类型的非易失性机器可读介质。
在一实施例中,存储器712可包括以下中的一个或多个:操作系统(O/S)732、应用程序734、TD和/或设备驱动程序736。存储器712还可包括专用于存储器映射I/O(MMIO)操作的区域。作为存储器管理操作的一部分,可将存储在存储器712中的程序和/或数据交换到盘驱动器728中。应用程序734可(例如在处理器702上)执行以便与耦合到网络705的一个或多个计算设备通信一个或多个分组。在实施例中,分组可以是可由从至少一个发送器发送到至少一个接收器(例如,通过诸如网络705之类的网络)的一个或多个电信号编码的一个或多个码元和/或值的序列。例如,每个分组可具有包括可用于路由和/或处理该分组的各种信息(诸如源地址、目的地地址、分组类型等)的头部。每个分组还可具有包括该分组正通过计算机网络(诸如网络705)在各计算设备之间传送的原始数据(或内容)的有效载荷。
在实施例中,应用程序734可利用O/S732来例如通过设备驱动程序736与系统700的各部件通信。因此,设备驱动器736可包括网络适配器730专用命令,以便例如经由芯片组706在O/S732和网络适配器730或耦合到系统700的其它I/O设备之间提供通信接口。
在实施例中,O/S732可包括网络协议栈。协议栈一般指的是一组过程或程序,可执行该组过程或程序以处理通过网络705发送的分组,其中分组可适应特定协议。例如,可利用TCP/IP(传输控制协议/网际协议)栈来处理TCP/IP分组。设备驱动器736可例如经由协议栈指示要处理的存储器712中的缓冲器。
网络705可包括任何类型的计算机网络。网络适配器730还可包括直接存储器访问(DMA)引擎,它将分组写入分配给可用描述符(例如,存储在存储器712中)的缓冲器(例如,存储在存储器712中),以便通过网络705发送和/或接收数据。另外,网络适配器730可包括网络适配器控制器,该网络适配器控制器可包括用于执行适配器相关操作的逻辑(诸如一个或多个可编程处理器)。在实施例中,适配器控制器可以是MAC(媒体访问控制)组件。网络适配器730还可包括存储器,诸如任意类型的易失性/非易失性存储器(例如,包括一个或多个高速缓存和/或参考存储器712讨论的其它存储器类型)。
图8示出根据本发明的实施例的安排成点对点(PtP)配置的计算系统800。具体地,图8示出其中处理器、存储器和输入/输出设备通过多个点对点接口互连的系统。参照图1-7讨论的操作可由系统800的一个或多个部件执行。
如图8所示,系统800可包括若干处理器,但为了清楚起见仅示出了其中两个处理器802、804。处理器802和804可各自包括本地存储器控制器中枢(GMCH)806和808以实现与存储器810和812的通信。存储器810和/或812可存储诸如参考图8的存储器812讨论的数据之类的各种数据。如图8所示,处理器802和804(或系统800的其它组件,诸如芯片组820、I/O设备843等)还可包括诸如参考图1-7讨论的一个或多个高速缓存。
在实施例中,处理器802和804可以是参考图8讨论的处理器802之一。处理器802和804可分别使用点对点(PtP)接口电路814和816经由点对点(PtP)接口818来交换数据。同样,处理器802和804可各自使用点对点接口电路826、828、830和832经由各PtP接口822和824与芯片组820交换数据。芯片组820还可例如利用PtP接口电路837经由高性能图形接口836与高性能图形电路834交换数据。
在至少一个实施例中,可在处理器802、804和/或芯片组820的一个或多个中设置TD。然而,本发明的其它实施例可存在于图8的系统800内的其它电路、逻辑单元或设备中。而且,本发明的其它实施例可分布在图8中所示若干电路、逻辑单元或设备中。例如,系统800的各个组件可包括TD。然而,可在系统800中的各个位置设置TD,包括或排除所例示的那些位置。
芯片组820可利用PtP接口电路841与总线840通信。总线840可具有与其通信的一个或多个设备,诸如总线桥842和I/O设备843。经由总线844,总线桥842可与诸如键盘/鼠标845、通信设备846(诸如可与计算机网络705通信的调制解调器、网络接口设备或其它通信设备)、音频I/O设备、和/或数据存储设备848之类的其它设备通信。数据存储设备848可存储由处理器802和/或804执行的代码849。
在本发明的各实施例中,本文中例如参考图1-8讨论的操作可被实现为硬件(例如,电路)、软件、固件、微代码或其组合,它们可作为计算机程序产品来提供,该计算机程序产品例如包括其上存储有指令(或软件程序)的机器可读或计算机可读介质,这些指令用于对计算机进行编程以执行本文所讨论的过程。同样,术语“逻辑”可包括作为示例的软件、硬件和/或软件和硬件的组合。机器可读介质可包括诸如参考图1-8所讨论的存储设备之类的存储设备。此外,这种计算机可读介质可作为计算机程序产品来下载,其中该程序可经由通信链路(例如,总线、调制解调器或网络连接)通过设置在载波或其它传播介质中的数据信号从远程计算机(例如,服务器)传输到作出请求的计算机(例如,客户机)。
在本说明书中对“一个实施例”或“实施例”的参考表示结合实施例描述的特定特征、结构或特性包括在至少一个实现中。在说明书的各位置出现的短语“在一个实施例中”不一定全指同一实施例。
同样,在说明书和权利要求书中,可使用术语“耦合”和“连接“及其衍生词。在本发明的一些实施例中,“连接”可用于指示两个或多个元件相互直接物理或电接触。“耦合”可表示两个或更多个要素直接物理或电接触。然而,“耦合”还可表示两个或多个元件没有彼此直接接触,但彼此仍协作或相互作用。
因此,虽然用结构特征和/或方法动作专属语言描述了本发明的实施例,但是应当理解所保护的主题可不限于所描述的具体特征或动作。相反,这些具体特征和动作是作为实现所要求保护的主题的样本形式而公开的。

Claims (24)

1.一种用于优化环协议和技术的装置,包括:
第一代理,用于生成对通过计算平台的第一环写入高速缓存的高速缓存线的请求;
耦合至所述第一代理的第二代理,用于接收所述写入请求并通过所述计算平台的所述第一环将所述写入请求转发给第三代理;以及
耦合至所述高速缓存和所述第二代理的第三代理,用于响应于所述写入请求将所述高速缓存线写入所述高速缓存,其中所述第三代理用于通过所述计算平台的第二环接收与所述写入请求相对应的数据,
其中所述第二代理包括用于过滤不必要探听的标签目录,并且其中将被指派给所述标签目录和第三代理的地址是经由散列来生成的,并且其中所述散列用于创建所述标签目录与所述第三代理之间的关联性。
2.如权利要求1所述的装置,其特征在于,所述第三代理是与所述高速缓存线的地址相对应的归属代理。
3.如权利要求1所述的装置,其特征在于,所述第三代理用于响应于所述写入请求且在不用发出在先所有权读取(RFO)操作的情况下将所述高速缓存线的整体写入所述高速缓存。
4.如权利要求1所述的装置,其特征在于,为了减少所述计算平台的所述第一环上的消息数目,在通过所述计算平台的所述第一环进行传输之前,标志符消息和数据头部消息将被组合。
5.如权利要求1所述的装置,其特征在于,为了减少所述计算平台的第三环上的消息数目,其中在通过所述计算平台的所述第三环进行传输之前,针对来自存储器的读取事务,将由所述第二代理组合全局观测的消息和数据消息,或者针对来自级2(L2)高速缓存的显式回写,将由所述第二代理组合写入拉取消息和全局观测的消息。
6.如权利要求1所述的装置,其特征在于,还包括用于耦合所述第一代理和第二代理或者所述第二代理和第三代理的串行链路。
7.如权利要求1所述的装置,其特征在于,所述第一代理、所述第二、第三代理在同一集成电路管芯上。
8.如权利要求1所述的装置,其特征在于,所述写入请求对应于流存储操作,并且其中所述流存储操作用于在没有针对所有权的对所述高速缓存线的在前读取的情况下传递数据,以减少用于通过所述计算平台的地址环完成流送存储的消息的数目。
9.一种用于优化环协议和技术的方法,包括:
从第一代理生成对通过计算平台的第一环写入高速缓存的高速缓存线的请求;
在第二代理处接收所述写入请求,其中所述第二代理存储用于过滤不必要探听的标签目录;
通过所述计算平台的所述第一环将所述写入请求转发给第三代理;
把将经由散列生成的地址指派给所述标签目录和第三代理,其中所述散列用于创建所述标签目录与所述第三代理之间的关联性;以及
响应于所述写入请求将所述高速缓存线写入所述高速缓存,其中所述第三代理用于通过所述计算平台的第二环接收与所述写入请求相对应的数据。
10.如权利要求9所述的方法,其特征在于,所述第三代理是与所述高速缓存线的地址相对应的归属代理。
11.如权利要求9所述的方法,其特征在于,还包括所述第三代理响应于所述写入请求且在不用发出针对所有权的在先读取(RFO)的操作的情况下将所述高速缓存线的整体写入所述高速缓存。
12.如权利要求9所述的方法,其特征在于,还包括在通过所述计算平台的所述第一环进行传输之前组合标志符消息和数据头部消息。
13.如权利要求9所述的方法,其特征在于,还包括在通过所述计算平台的第三环进行传输之前,针对来自存储器的读取事务组合全局观测的消息和数据消息,或者针对来自级2(L2)高速缓存的显式回写组合写入拉取消息和全局观测的消息。
14.如权利要求9所述的方法,其特征在于,串行链路用于耦合所述第一代理和第二代理或者所述第二代理和第三代理。
15.如权利要求9所述的方法,其特征在于,所述写入请求对应于流存储操作,并且其中所述流存储操作用于在没有针对所有权的对所述高速缓存线的在前读取的情况下传递数据,以减少用于通过所述计算平台的地址环完成流送存储操作的消息的数目。
16.一种用于优化环协议和技术的系统,包括:
存储器,用于存储与高速缓存线相对应的数据;
第一代理,用于生成对通过计算平台的第一环写入高速缓存的所述高速缓存线的请求;
经由串行链路耦合至所述第一代理的第二代理,用于接收所述写入请求并通过所述计算平台的所述第一环将所述写入请求转发给第三代理;以及
耦合至所述高速缓存和所述第二代理的第三代理,用于响应于所述写入请求将所述高速缓存线写入所述高速缓存,其中所述第三代理用于通过所述计算平台的第二环接收与所述写入请求相对应的数据,
其中所述第二代理包括用于过滤不必要探听的标签目录,并且其中将被指派给所述标签目录和第三代理的地址是经由散列来生成的,且其中所述散列用于创建所述标签目录与所述第三代理之间的关联性。
17.如权利要求16所述的系统,其特征在于,所述第三代理用于响应于所述写入请求且在不用发出在先所有权读取(RFO)操作的情况下将所述高速缓存线的整体写入所述高速缓存。
18.如权利要求16所述的系统,其特征在于,为了减少所述计算平台的所述第一环上的消息数目,在通过所述计算平台的所述第一环进行传输之前,标志符消息和数据头部消息将被组合。
19.如权利要求16所述的系统,其特征在于,为了减少所述计算平台的第三环上的消息数目,其中在通过所述计算平台的所述第三环进行传输之前,针对来自存储器的读取事务,将由所述第二代理组合全局观测的消息和数据消息,或者针对来自级2(L2)高速缓存的显式回写,将由所述第二代理组合写入拉取消息和全局观测的消息。
20.如权利要求16所述的系统,其特征在于,所述写入请求对应于流存储操作,并且其中所述流存储操作用于在没有针对所有权的对所述高速缓存线的在前读取的情况下传递数据,以减少用于通过所述计算平台的地址环完成流送存储的消息的数目。
21.一种用于优化环协议和技术的设备,包括:
用于从第一代理生成对通过计算平台的第一环写入高速缓存的高速缓存线的请求的装置;
用于在第二代理处接收所述写入请求的装置,其中所述第二代理存储用于过滤不必要探听的标签目录;
用于通过所述计算平台的所述第一环将所述写入请求转发给第三代理的装置;
用于将经由散列生成的地址指派给所述标签目录和第三代理的装置,其中所述散列用于创建所述标签目录与所述第三代理之间的关联性;以及
用于响应于所述写入请求将所述高速缓存线写入所述高速缓存的装置,其中所述第三代理用于通过所述计算平台的第二环接收与所述写入请求相对应的数据。
22.如权利要求21所述的设备,其特征在于,包括用于在通过所述计算平台的所述第一环进行传输之前组合标志符消息和数据头部消息的装置。
23.如权利要求21所述的设备,其特征在于,包括用于在通过所述计算平台的第三环进行传输之前针对来自存储器的读取事务组合全局观测的消息和数据消息或者针对来自级2(L2)高速缓存的显式回写组合写入拉取消息和全局观测的消息的装置。
24.如权利要求21所述的设备,其特征在于,所述写入请求对应于流存储操作,并且其中所述流存储操作用于在没有针对所有权的对所述高速缓存线的在前读取的情况下传递数据,以减少用于通过所述计算平台的地址环完成流送存储的消息的数目。
CN201180045835.3A 2010-09-25 2011-09-26 优化环协议和技术 Active CN103124962B (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US12/890,650 US8468309B2 (en) 2010-09-25 2010-09-25 Optimized ring protocols and techniques
US12/890,650 2010-09-25
PCT/US2011/053336 WO2012040741A2 (en) 2010-09-25 2011-09-26 Optimized ring protocols and techniques

Publications (2)

Publication Number Publication Date
CN103124962A CN103124962A (zh) 2013-05-29
CN103124962B true CN103124962B (zh) 2016-06-15

Family

ID=45871850

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201180045835.3A Active CN103124962B (zh) 2010-09-25 2011-09-26 优化环协议和技术

Country Status (4)

Country Link
US (3) US8468309B2 (zh)
CN (1) CN103124962B (zh)
DE (1) DE112011103223B4 (zh)
WO (1) WO2012040741A2 (zh)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8468309B2 (en) 2010-09-25 2013-06-18 Intel Corporation Optimized ring protocols and techniques
WO2013081580A1 (en) * 2011-11-29 2013-06-06 Intel Corporation Raw memory transaction support
US10372638B2 (en) 2017-10-20 2019-08-06 Hewlett Packard Enterprise Development Lp Interconnect agent

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1226035A (zh) * 1998-02-13 1999-08-18 国际商业机器公司 只有超高速缓存的分层总线简单存储器体系结构

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6009488A (en) 1997-11-07 1999-12-28 Microlinc, Llc Computer having packet-based interconnect channel
US6499085B2 (en) * 2000-12-29 2002-12-24 Intel Corporation Method and system for servicing cache line in response to partial cache line request
US6985914B2 (en) * 2002-02-20 2006-01-10 Emc Corporation Cluster meta file system of file system cells managed by respective data movers of a network file server
US7296121B2 (en) 2002-11-04 2007-11-13 Newisys, Inc. Reducing probe traffic in multiprocessor systems
US20040088682A1 (en) * 2002-11-05 2004-05-06 Thompson Ryan C. Method, program product, and apparatus for cache entry tracking, collision detection, and address reasignment in processor testcases
US20060236011A1 (en) 2005-04-15 2006-10-19 Charles Narad Ring management
US7406566B2 (en) 2005-06-03 2008-07-29 Intel Corporation Ring interconnect with multiple coherence networks
US7437518B2 (en) * 2005-09-07 2008-10-14 Intel Corporation Hiding conflict, coherence completion and transaction ID elements of a coherence protocol
US7606981B2 (en) 2005-12-19 2009-10-20 Intel Corporation System and method for reducing store latency
US8190820B2 (en) 2008-06-13 2012-05-29 Intel Corporation Optimizing concurrent accesses in a directory-based coherency protocol
US8468309B2 (en) 2010-09-25 2013-06-18 Intel Corporation Optimized ring protocols and techniques

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1226035A (zh) * 1998-02-13 1999-08-18 国际商业机器公司 只有超高速缓存的分层总线简单存储器体系结构

Also Published As

Publication number Publication date
US8898393B2 (en) 2014-11-25
WO2012040741A3 (en) 2012-06-14
DE112011103223T5 (de) 2013-07-11
US9392062B2 (en) 2016-07-12
US20130262781A1 (en) 2013-10-03
US20120079210A1 (en) 2012-03-29
US8468309B2 (en) 2013-06-18
WO2012040741A2 (en) 2012-03-29
CN103124962A (zh) 2013-05-29
DE112011103223B4 (de) 2023-07-27
US20150207882A1 (en) 2015-07-23

Similar Documents

Publication Publication Date Title
TWI570563B (zh) 後置中斷架構
US8473567B2 (en) Generating a packet including multiple operation codes
KR101642086B1 (ko) 고성능 인터커넥트 링크 계층
DE102018004327A1 (de) Systeme und Verfahren zum Zugreifen auf Massenspeicher als Arbeitsspeicher
CN103119571B (zh) 用于目录高速缓存的分配和写策略的装置和方法
US9740654B2 (en) Control messaging in multislot link layer flit
US20120102003A1 (en) Parallel data redundancy removal
TWI506444B (zh) 改良mmio請求處置之處理器及方法
CN110442532A (zh) 用于与主机相链接的设备的全球可存储存储器
CN101398787A (zh) 虚拟化环境中地址转换缓存操作和i/o高速缓存性能的改善
CN101937401B (zh) 基于监听响应信息的目录高速缓存分配的装置、方法和系统
CN111880925A (zh) 用于提供带外处理器遥测的技术
EP4235441A1 (en) System, method and apparatus for peer-to-peer communication
WO2023124304A1 (zh) 芯片的缓存系统、数据处理方法、设备、存储介质及芯片
CN113900965A (zh) 净荷高速缓存
US8495091B2 (en) Dynamically routing data responses directly to requesting processor core
CN103124962B (zh) 优化环协议和技术
US8909862B2 (en) Processing out of order transactions for mirrored subsystems using a cache to track write operations
EP3835959A1 (en) Data pre-fetching method and device
US11487695B1 (en) Scalable peer to peer data routing for servers

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