CN102065073B - 向协议层直接提供数据消息 - Google Patents

向协议层直接提供数据消息 Download PDF

Info

Publication number
CN102065073B
CN102065073B CN201010293356.0A CN201010293356A CN102065073B CN 102065073 B CN102065073 B CN 102065073B CN 201010293356 A CN201010293356 A CN 201010293356A CN 102065073 B CN102065073 B CN 102065073B
Authority
CN
China
Prior art keywords
message
data
tracker
link layer
protocol layer
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.)
Expired - Fee Related
Application number
CN201010293356.0A
Other languages
English (en)
Other versions
CN102065073A (zh
Inventor
D·J·施密特
B·R·怀特
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 CN102065073A publication Critical patent/CN102065073A/zh
Application granted granted Critical
Publication of CN102065073B publication Critical patent/CN102065073B/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • H04L47/39Credit based
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/38Information transfer, e.g. on bus
    • G06F13/382Information transfer, e.g. on bus using universal interface adapter
    • G06F13/385Information transfer, e.g. on bus using universal interface adapter for adaptation of a particular data processing system to different peripheral devices
    • 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
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/38Information transfer, e.g. on bus
    • G06F13/40Bus structure
    • G06F13/4063Device-to-bus coupling
    • G06F13/4068Electrical coupling
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/38Information transfer, e.g. on bus
    • G06F13/42Bus transfer protocol, e.g. handshake; Synchronisation
    • G06F13/4204Bus transfer protocol, e.g. handshake; Synchronisation on a parallel bus
    • G06F13/4221Bus transfer protocol, e.g. handshake; Synchronisation on a parallel bus being an input/output bus, e.g. ISA bus, EISA bus, PCI bus, SCSI bus
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2213/00Indexing scheme relating to interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F2213/38Universal adapter
    • G06F2213/3808Network interface controller
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • H04L47/30Flow control; Congestion control in combination with information about buffer occupancy at either end or at transit nodes

Abstract

在一个实施例中,本发明提供了串行链路的分层通信协议,其中,链路层用于以最少的缓冲量来接收消息并向耦合到所述链路层的协议层转发消息,而不用维持用于自适应信用池的单个资源缓冲器,其中所有的消息类别能够消耗信用。通过执行消息解码,所述链路层能够将非数据消息和数据消息导引到所述协议层内的分离结构。可以独立地处理每一个消息类型的信用记账,其中所述链路层能够立即返回非数据消息的信用。而所述协议层包括共享缓冲器,用于存储从所述链路层接收的所有数据消息,并且当从所述共享缓冲器移除数据时向所述链路层返回这些消息的信用。描述了并要求保护其他实施例。

Description

向协议层直接提供数据消息
背景技术
一般由耦合在一起的多个半导体和其他部件形成计算机系统。例如,除了可能包括可以耦合到母板的一个或多个其他处理器之外,典型的系统还包括中央处理单元(CPU)。这些处理器又可以例如通过在母板上配置的互连或通过其他这样的连接,来耦合到诸如存储器控制器、输入/输出集线器、其他半导体器件的其他部件和诸如大容量存储设备的其他系统部件。
为了在不同部件之间进行通信,可以使用通信协议。许多这样的协议提供了不同层来处理通信任务。在一些协议中,物理层是实际沿着互连传输消息并且接收和处理来自一个或多个其他设备的对应物理层的消息的层。继而,该物理层可以耦合到链路层,链路层执行各种功能,诸如检错和纠错。继而,链路层可以耦合到协议层,协议层从链路层接收消息分组,并且进一步处理它们以由此将它们路由到其在半导体部件内的目的地位置。通常,链路层将包括大缓冲器,用于临时存储所有进入的消息。然而,该缓冲器造成管芯消耗大幅增加,并且增加了处理进入的消息的复杂性。
附图说明
图1是根据本发明的一个实施例的通信协议的一部分的框图。
图2是根据本发明的一个实施例的方法的流程图。
图3是根据本发明的一个实施例的系统的框图。
具体实施方式
在各个实施例中,通信协议可以具有不包括任何实质缓冲电路的链路层。以这种方式,进入的消息可以在链路层中被最低程度地处理,并且被直接地提供到协议层,以进一步的处理。结果,与大链路层缓冲器相比较,在协议层内的任何缓冲器的大小可以被减小和简化。
现在参见图1,示出根据本发明的一个实施例的分层通信协议的一部分的框图。具体上,图1示出通信协议100的用于处理进入的消息和离开的消息二者的部分。在图1中所示的部分包括链路层部分和协议层部分。应当明白,对于不同的协议,也可以提供另外的层,包括物理层和路由层等。此外,注意,为了容易说明,在图1中所示的层的部分主要处理输入的通信,而未示出这些层的主发射机电路以免模糊所描述的实施例。作为一个示例,图1的通信协议可以对应于与被配置来根据
Figure BSA00000285386800021
QuickPath互连(QPI)协议来工作的链路一起使用的协议,
Figure BSA00000285386800022
QuickPath互连(QPI)协议用于点到点互连,并且提供了在诸如处理器和芯片组等的各种半导体器件之间的多层通信协议。
如图1中所示,进入的消息可以被接收并提供到消息类别解码器/累积器110。这个链路层电路可以具有最低的复杂性,并且可以仅仅包括对诸如几个微片(flit)的小消息部分的支持,其中,微片可以对应于给定通信协议的最小大小的流控制单元。作为一个示例,微片宽度可以是80比特,但是本发明的范围不限于此。解码器/累积器110用于确定所接收的消息的类型,并且将它引导到其在协议层中的适合位置。在一个实施例中,解码器/累积器110可以分析进入的消息的头部或其他初始数据,以确定其消息类别。
对于不包括数据的接收消息(即,非数据消息),可以直接地向同样在链路层的信用(credit)返回计数器115提供信用返回,以使得信用能够被返回到消息的发起者,而没有与协议层相关联的延迟。一般而言,计数器115可以表示用于每一个消息类型和虚拟网络(VN)的计数器,使得可以独立地维持不同信用类型的信用。在一个实施例中,可以有三个虚拟网络VN0、VN1和VNA。VN0/VN1虚拟网络本质上是一束虚拟信道,其中,在虚拟网络内的每一个消息类别具有其本身的独立缓冲和流控制信用。在这些虚拟网络中,在逐消息的基础上返回给定消息类别的信用。VNA是作为所有消息类别上的共享资源缓冲器的自适应虚拟网络,这表示这个虚拟网络的流控制信用池也在所有的消息类别上被共享。在这个网络中传输的消息被分解为流控制单元(即,微片),并且针对这个网络返回的信用为微片粒度。
各种消息类别可用于不同的实施例。在一个特定实施例中,可以存在多个消息类别,其中每一个可以在一个或多个虚拟网络上传播。因此,这些虚拟网络向协议层提供独立的传输信道(即,虚拟信道),以允许共享物理信道。在这个实施例中,消息类别可以包括归属(HOM)消息类别、非一致标准(non-coherent standard)(NCS)消息类别、非数据响应(NDR)消息类别、数据响应标准(DRS)消息和非一致旁路(non-coherent bypass)(NCB)消息类别。
在解码后,解码器/累积器110将向协议层内的适当位置提供消息内容。例如,对于数据消息,可以向协议层的共享数据缓冲器120提供数据有效载荷,并且向跟踪器(即远程代理跟踪器130或本地代理跟踪器140)之一提供数据命令信息(例如,头部)。对于其他非数据承载消息,向一个或多个该跟踪器提供该消息信息。远程代理和本地代理跟踪结构跟踪从归属(home)代理(HA)的组织(fabric)(例如,互连)接收的未处理请求。具体地说,跟踪器130跟踪由远程代理作出的请求,并且跟踪器140跟踪由本地代理发出的请求。作为一个示例,如下面将讨论的,远程代理可以是处理器的缓存代理,同样如下面将讨论的,本地代理可以是芯片组的缓存代理,其中芯片组还包括归属代理。因此,在一个示例实现中,在图1中所示的通信协议和层可以与芯片组部件的互连结构的视图有关。
在一个实施例中,远程代理跟踪器130针对远程代理在任何给定时间被允许具有的对HA的未处理请求的最大数量(MaxRequest[ra])而被设定大小。对于组织上可以向HA作出请求的每一个远程代理,HA可以具有与其相关联的跟踪结构(在图1的说明中,远程代理跟踪器130可以被实现为多维阵列)。相应地,本地代理跟踪器140的深度表示本地代理在任何给定时间被允许具有的对HA的未处理请求的最大数量(MaxRequest[la])。该结构也可以被实现为多维阵列。因此,在任何给定时间在组织上以该HA为目标的未处理消息的总数可以是MaxRequest[ra]+MaxRequest[la]。这些跟踪结构可以存储命令信息(例如,地址、请求类型、操作码、事务ID等)和芯片内事务的状态(例如,其已经被分派、数据已经被接收、可以发回完成信息等)。相反,来自远程代理的与命令相关联的任何数据被存储在共享数据缓冲器120中。数据消息存储跟踪器内的相同命令信息,所述命令信息与非数据消息以及与该命令相关联的数据有效载荷所位于的共享数据缓冲器地址一起被存储。通过分开数据有效载荷与非数据消息的目的地,可以大大地简化自适应虚拟网络的维护。
除了跟踪器之外,一个或多个协议功能队列150可以存储关于消息的信息,其细节将在下面进一步讨论。可以进一步看出,可以从共享数据缓冲器120向信用返回计数器115发送数据消息的信用返回。在各种实现中,当从共享数据缓冲器移除数据时,可以提供这样的信用返回。虽然在图1的实施例中示出了这种具体实现,但是本发明的范围不限于此。
注意,链路层具有被实现为解码器/累积器110的一部分的很小的缓冲。在一个实施例中,这种缓冲可能仅足够累积最大大小的头部(例如,3个微片)和一半缓存线的数据(例如,4个微片)以用于数据消息传送。由于没有从协议层向链路层的反向压力,因此,一旦已经在链路层内累积了全部消息头部和/或数据,则将其直接地发送到协议层。因此,协议层要保证将有可用于所有接收的消息和数据的资源。
为了将缓冲保持为最小,从远程代理写回的数据(例如,DRS和NCB消息类别)被保持在单独的数据结构内,即协议层的共享数据缓冲器120内。这个数据结构的最小深度的大小可以被设定为考虑了:自适应虚拟网络(VNA)信用池,外加每一个非自适应虚拟网络(即,VN0和VN1)的每一个数据消息类别(例如,DRS和NCB)的一个缓存线。以这种方式来设定大小,尽管这个数据结构物理地表示虚拟网络信用池,但是仅用于数据消息类别。仅当已经从该数据结构移出数据时,才返回这些消息类别的信用。在一个实施例中,在该数据结构内连续存储与请求相关联的数据的缓存线。以这种方式,协议层仅需要该结构内数据的起始地址就能卸载它。此外,相对于在每一个跟踪器必须存储归属代理可能接收的每一个请求/响应(即,MaxRequest[ra]+MaxRequest[la])的数据的缓存线的情况相比,该结构内需要的缓冲量要少得多。替代的是,跟踪器存储与请求/响应消息相关联的最少信息。
协议功能队列150表示协议层负责的每一个特定功能的专用排序队列(例如,先入先出(FIFO))。这样的操作的示例包括:向存储器分派一致的请求,向IO代理分派非一致的请求,等等。这样的队列可以是精简的,因为它们仅需要存储用于访问在消息的相关联跟踪器内的全部请求信息的请求标识符(ID),以及具体功能所必需的任何其他各种各样的信息(例如,写回事务的数据的位置、写回的类型(隐式/显式)、目标信息等)。在一个实施例中,可以设定每一个队列深度的大小,以处理针对给定功能可以接收的最大数量的消息。作为示例,可以设定排序队列的大小以接受MaxRequest[ra]或MaxRequest[ra]+MaxRequest[la],并且可以在排序队列中维持条目的接收顺序。在一个实施例中,可以有6个排序队列,即分派排序队列(至动态随机存取存储器(DRAM))、非分派排序队列(用于维持一致性,并且对进入的业务进行串行化)、CPU重新分派排序队列(用于解决冲突并第二次向DRAM分派CPU请求)、确认冲突(AckCnflt)排序队列(用于处理来自CPU的冲突握手)、NCS排序队列(所有NCS消息传送通过这个队列被分派到IO代理)和NCB排序队列(所有NCB消息传送通过这个队列被分派到IO代理)。注意,在一些实施例中,协议层可以以比链路层更低的时钟速度运行,因此可以并行地在多个消息上操作。
在工作中,当本地链路层从该代理的组织接收到消息时,在将整个消息传送到协议层之前,其基于消息类别和操作码在累积器110中对该消息执行最小累积。在将消息提供到协议层之前,链路层成功地接收消息的所有累积微片(例如,证实没有循环冗余循环(CRC)错误)。当进入的消息被传送到协议层时,基于解码的消息类别和操作码信息,由请求跟踪器130和140之一或两者来消耗它们。以这种方式,消息将经由消息的唯一请求ID来更新在目标数据结构内的唯一条目,在一个实施例中,所述消息的唯一请求ID可以对应于原始请求方的节点ID和事务ID。因为在协议层内的跟踪器的大小针对每一个代理可以具有的对HA的未处理请求的最大数量而被设定,所以协议层可以保证用于所有进入的消息(例如,MaxRequest[ra]+MaxRequest[la])的资源。如果需要对进入的消息采取特定动作(例如,需要向存储器分派请求),则协议层将还要向协议功能队列150的专用于该功能的排序队列装载该请求的ID。
当协议层保证将实时地消耗所有接收的消息时,只要链路层在解码器/累积器110中成功地解码整个消息,链路层就可以向远程代理返回虚拟网络信用。这个规则仅有的例外是对于来自远程代理的缓存线写回(例如,DRS和NCB消息类别),其中,仅在从共享数据缓冲器120移出数据之后才返回信用。因此,在简单的消息累积器之外,在链路层内不需要复杂的缓冲要求。
因此,在成功地接收非数据(例如,HOM、NCS和NDR)消息内的所有微片后,该消息的信用被累积和调度来经由计数器115从链路层返回。而数据消息(例如,DRS和NCB)(头部和数据有效载荷二者)的信用仅当已经从共享数据缓冲器120移出全部数据有效载荷时才被累积和调度以返回。
现在参见图2,示出了根据本发明的一个实施例的方法的流程图。如图2中所示,方法200可以用于处理从通信协议的互连接收的进入的消息。如图2中所示,方法200可以从接收代理(诸如归属代理)的链路层内的消息开始,该代理可以是与作为该消息的主体的具体存储器位置的拥有者或管理者对应的代理(框210)。然后,可以确定消息的类型(框220)。例如,消息类别解码器可以用于基于消息的头部来确定消息类型。因此,解码器可以确定消息类型是否是非数据消息类型(菱形框225)。如果消息是非数据类型,例如命令或其他这样的消息,则控制转到框260。在框260,可以从链路层直接地向发送方发送信用返回,而不需要涉及在协议层中的任何操作。此外,可以将接收的消息转发到协议层(框265)。注意,在各个实现中,可以并行或串行地执行框260和265的操作,其中任一操作都能被首先执行。
仍然参见图2,当所述消息被发送到协议层时,与所述消息相关联的信息可以被存储在协议层的对应跟踪器中(框270)。存储的信息可以包括请求ID和关于消息的某些元数据,诸如目的地地址、请求类型(例如,读或写)、操作码、一致类型和冲突信息等,但是本发明的范围不限于此。作为示例,协议层可以包括两种类型的跟踪器,一个与本地代理相关联,一个与远程代理相关联。取决于消息类型,消息的信息可以存储在两个跟踪器中。此外,可以确定消息类型是否与要执行的动作相关联(菱形框275)。如果不关联,则可以结束这个消息的处理。否则,控制转到框280,在此,可以将该消息的最少信息存储在排序队列中。更具体地,可以在排序队列内存储诸如请求ID的标识符,使得当访问这个队列的条目以对相应消息执行操作时,可以根据对应的跟踪器条目来获得另外的信息。
仍然参见图2,如果链路层确定消息类型是数据类型,则可以将消息转发到协议层(框230)。在协议层中,这个数据消息的数据可以被存储在共享数据缓冲器中(框235),并且所有的命令信息(例如,目的地地址、请求类型、数据返回等)与数据有效状态一起被存储在适当的跟踪器内。然后,在以后的时间,例如当执行与该消息相关联的操作(诸如用于从缓冲器向对应位置写入数据的写入数据操作)时,可以输出数据,即从共享数据缓冲器移除数据(框240)。在从缓冲器进行了这样地数据移除后,该消息的信用返回可以从协议层被发送,并通过链路层回到发送方(框250)。虽然在图2的实施例中示出了该特定实现,但是本发明的范围不限于此。
使用本发明的实施例,可以大大地简化链路层,因为可以避免对于共享资源缓冲器的需要,所述共享资源缓冲器负责接纳在自适应虚拟网络内传输的所有消息,替代的是,链路层简单地专用于保证数据完整性并且维持组织上的流控制。结果,可以显著地降低关于流控制的门数和复杂性。取代在链路层内需要资源分配逻辑和仲裁方案来释放分配消息和返回信用的大链表数据结构的是,链路层简单地累积头部和/或数据,然后将其发出到协议层。链路层在其和协议层之间没有“第二次猜测”由远程代理选择的消息传输的排序的非自然仲裁点。替代的是,使用本发明的实施例的代理以从组织接收进入的消息的顺序来处理这些进入的消息。采用比微片时钟速度更慢运行的协议层,链路层可以自然地发出命令,并且在单个时钟内并发地移动数据,这是因为没有单个串行化点,这使得有更好的吞吐量和较低的时延。
此外,在链路层内维持流控制的负担显著地减小。这样是因为进入的消息一被成功地解码,就返回流控制信用。这种迅速的链路层信用释放能够发生的原因是:进入的消息被直接地路由到协议层数据结构,并且对于非数据消息类别,可以公告任意的信用计数(MaxRequest[*]参数则是限制因素)。协议层也可以并行地处理进入的消息(采用以比微片时钟速度更慢的速度工作的协议层),并且还以从远程代理接收进入的消息的顺序来处理进入的消息。
现在参见图3,示出了根据本发明的一个实施例的系统的框图。如图3中所示,系统300可以是计算机系统,其可以采用各种形式,作为一些示例例如有:服务器计算机、台式计算机、笔记本计算机、上网本计算机或移动计算设备。如图3中所示,系统300包括处理器310,即CPU,在一个实施例中其可以是多核处理器。处理器310可以包括一个或多个高速缓冲存储器,以便它可以作为缓存代理(CA)。一般而言,缓存代理可以是向一致存储器内发起事务并且可以例如在其高速缓冲存储器中存储存储器位置的拷贝的实体。
如图3中进一步所示,处理器310可以经由互连315耦合到芯片组320,在一个实施例中芯片组320可以是集成图形和存储器控制设备(GMCH),在一个实施例中互连315可以是点到点的互连,诸如QPI互连。除了内部图形电路325之外,芯片组320可以提供归属代理和缓存代理功能。一般而言,归属代理可以是处理一致事务的实体,因此,归属代理用于控制一致存储器的至少一部分。在图3中所示的实施例中,这个一致存储器可以是经由存储器总线335耦合到芯片组320的系统存储器340,在一个实施例中系统存储器340可以是动态随机存取存储器(DRAM)。
如所示的,其他部件可以耦合到芯片组320,包括图形设备330,图形设备330可以是可经由诸如图形总线的互连325耦合的外部图形卡。另外,外围控制器中心(PCH)350可以例如经由互连345而耦合到芯片组320。继而,PCH 350可以与各种外围设备进行通信,该各种外围设备诸如是大容量存储设备、网络部件、快速外围部件互连(PCIe)卡和输入/输出设备等。虽然在图3的实施例中示出了该具体实现,但是应当明白,本发明的范围不限于此。在各个实施例中,处理器310和芯片组320二者可以包括诸如上面关于图1描述的链路层和协议层,以由此减少对于链路层的片上缓冲器的需要。此外,可以在具有多个处理器和芯片组等的系统中植入这些实施例,并且其中,处理器或芯片组可以包括归属代理。例如,在一些实现中,处理器可以包括归属代理,并且可以在没有介入芯片组的情况下直接地耦合到存储器。
实施例可以用代码来实现,并且可以被存储在其上存储有指令的存储介质上,所述指令可以用于对系统进行编程以执行这些指令。存储介质可以包括但是不限于:任何类型的盘,包括软盘、光学盘、固态驱动器(SSD)、光盘只读存储器(CD-ROM)、可重写光盘(CD-RW)和磁光盘;半导体器件,诸如只读存储器(ROM)、诸如动态随机存取存储器(DRAM)和静态随机存取存储器(SRAM)的随机存取存储器(RAM)、可擦可编程只读存储器(EPROM)、快闪存储器、电可擦可编程只读存储器(EEPROM)、磁卡或光学卡;或适于存储电子指令的任何其他类型的介质。
虽然已经针对有限数量的实施例对本发明进行了描述,但本领域技术人员可以从中意识到许多修改和变型。所附权利要求应被视为覆盖了所有这些落入本发明真正的精神和范围内的修改和变型。

Claims (19)

1.一种用于消息处理的装置,包括:
链路层,用于接收消息并向耦合到所述链路层的协议层转发消息,并且所述链路层包括用于确定所述消息的消息类型的解码器,其中,如果所述消息是非数据消息,则所述链路层直接地向所述消息的发送方提供信用返回;以及
所述协议层,其包括用于存储从所述链路层接收的数据消息的共享缓冲器,其中,当从所述共享缓冲器移除数据消息时,所述协议层要发送所述数据消息的信用返回,所述信用返回要经由所述链路层被发送到所述消息的发送方。
2.根据权利要求1所述的装置,其中,所述协议层还包括与耦合到所述链路层的至少一个远程代理相关联的第一跟踪器,用于存储与来自所述至少一个远程代理的请求消息相关联的信息,其中,所述第一跟踪器不单独存储在所述共享缓冲器中存储的数据消息的数据。
3.根据权利要求2所述的装置,其中,所述协议层还包括与耦合到所述链路层的至少一个本地代理相关联的第二跟踪器,用于存储与来自所述至少一个本地代理的请求消息相关联的信息,其中,所述第二跟踪器不单独存储在所述共享缓冲器中存储的数据消息的数据。
4.根据权利要求2所述的装置,其中,所述第一跟踪器包括每一个代理的多个条目,其中每一个条目存储与消息相关联的请求标识符,其中,所述请求标识符是与所述消息的发送方的标识符和所述消息的事务标识符对应的唯一标识符。
5.根据权利要求4所述的装置,还包括耦合到所述第一跟踪器的至少一个排序队列,其中,所述排序队列用于存储与所述第一跟踪器中的条目对应的请求标识符,并且维持所述排序队列的条目的接收顺序。
6.根据权利要求5所述的装置,其中,当从所述排序队列输出所述第一跟踪器的条目的请求标识符时,所述装置访问所述条目中存储的信息。
7.一种用于消息处理的方法,包括:
在耦合到互连的链路层中接收消息;
在所述链路层中确定的所述消息的消息类型,并且如果所述消息类型是非数据消息,则直接地从所述链路层向发送方发送信用返回;
如果所述消息类型被确定为数据类型,则将所述消息转发到协议层,并且将数据存储在所述协议层的共享数据缓冲器中;以及
从所述共享数据缓冲器输出所述数据,并且经由所述链路层向所述发送方发送所述数据的信用返回。
8.根据权利要求7所述的方法,还包括:向所述协议层转发所述数据消息,而不在所述链路层中缓冲所述数据消息。
9.根据权利要求7所述的方法,还包括:
在所述协议层的第一跟踪器中存储与所述消息相关联的第一信息,所述信息包括所述消息的请求标识符;以及
在排序队列的条目中存储所述请求标识符。
10.根据权利要求9所述的方法,还包括:当所述排序队列的所述条目在所述排序队列的首部时,使用所述请求标识符来访问所述第一跟踪器中的所述第一信息。
11.根据权利要求10所述的方法,还包括:使用所述第一信息来执行操作。
12.一种用于消息处理的系统,包括:
处理器,用于执行指令,所述处理器包括用于存储在系统存储器中存储的信息的拷贝的至少一个缓存代理;
归属代理,其耦合到所述处理器,用于保护所述系统存储器的至少一部分;
链路层,其从所述处理器接收消息并向耦合到所述链路层的协议层转发消息,并且所述链路层包括用于确定所述消息的消息类型的解码器,其中,如果所述消息是非数据消息,则所述链路层直接地向所述处理器提供信用返回;
所述协议层,其包括用于存储从所述链路层接收的数据消息的共享缓冲器,其中,当从所述共享缓冲器移除数据消息时,所述协议层要发送所述数据消息的信用返回,所述信用返回要经由所述链路层被发送到所述处理器;以及
所述系统存储器,其耦合到所述归属代理,其中,所述系统存储器包括动态随机存取存储器(DRAM)。
13.根据权利要求12所述的系统,其中,所述协议层还包括与所述处理器相关联的第一跟踪器,用于存储与来自所述处理器的请求消息相关联的信息,其中,所述第一跟踪器不单独存储在所述共享缓冲器中存储的数据消息的数据。
14.根据权利要求13所述的系统,其中,所述协议层还包括与本地代理相关联的第二跟踪器,用于存储与来自所述本地代理的请求消息相关联的信息,其中,所述第二跟踪器不单独存储在所述共享缓冲器中存储的数据消息的数据。
15.根据权利要求13所述的系统,其中,所述第一跟踪器包括多个条目,其中每一个条目存储与消息相关联的请求标识符,其中,所述请求标识符是与所述处理器的标识符和所述消息的事务标识符对应的唯一标识符。
16.根据权利要求15所述的系统,还包括耦合到所述第一跟踪器的至少一个排序队列,其中,所述排序队列用于存储与所述第一跟踪器中的条目对应的请求标识符,并且所述系统还包括经由点到点互连而耦合到所述处理器的芯片组,当从所述排序队列输出所述第一跟踪器的条目的请求标识符时,所述芯片组访问在所述条目中存储的信息。
17.根据权利要求12所述的系统,其中,所述协议层在第一跟踪器中存储与所述消息相关联的第一信息,所述信息包括所述消息的请求标识符,并且所述协议层在排序队列的条目中存储所述请求标识符,并且所述协议层使用所述请求标识符来访问所述第一跟踪器中的所述第一信息。
18.根据权利要求12所述的系统,其中,所述处理器包括归属代理,并且所述系统还包括耦合到所述处理器的至少一个其他处理器,以及耦合到这多个处理器的芯片组。
19.根据权利要求12所述的系统,还包括耦合到所述处理器的芯片组,其中,所述芯片组包括所述归属代理。
CN201010293356.0A 2009-11-16 2010-09-26 向协议层直接提供数据消息 Expired - Fee Related CN102065073B (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US12/618,867 US8819305B2 (en) 2009-11-16 2009-11-16 Directly providing data messages to a protocol layer
US12/618,867 2009-11-16

Publications (2)

Publication Number Publication Date
CN102065073A CN102065073A (zh) 2011-05-18
CN102065073B true CN102065073B (zh) 2014-03-12

Family

ID=43992290

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201010293356.0A Expired - Fee Related CN102065073B (zh) 2009-11-16 2010-09-26 向协议层直接提供数据消息

Country Status (4)

Country Link
US (1) US8819305B2 (zh)
CN (1) CN102065073B (zh)
TW (1) TWI536772B (zh)
WO (1) WO2011059574A2 (zh)

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8352648B1 (en) * 2010-11-22 2013-01-08 Xilinx, Inc. Credit-based flow control
CN102394732B (zh) * 2011-09-06 2013-09-18 中国人民解放军国防科学技术大学 一种多微包并行处理结构
US9507746B2 (en) * 2012-10-22 2016-11-29 Intel Corporation Control messaging in multislot link layer flit
KR101598746B1 (ko) * 2012-10-22 2016-02-29 인텔 코포레이션 고성능 상호연결 물리 계층
CN104461997B (zh) * 2014-11-26 2017-12-05 上海斐讯数据通信技术有限公司 一种pos‑phy接口设备及设计方法
CN113660344B (zh) * 2021-08-20 2024-03-15 上海肇观电子科技有限公司 通信方法、装置、电子设备和计算机可读存储介质

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1620063A (zh) * 2003-10-28 2005-05-25 英特尔公司 计算机系统中的基于信用的流动控制的方法、系统和设备

Family Cites Families (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB9606834D0 (en) * 1996-03-30 1996-06-05 Int Computers Ltd Inter-processor communication
US6658480B2 (en) * 1997-10-14 2003-12-02 Alacritech, Inc. Intelligent network interface system and method for accelerated protocol processing
US6009488A (en) 1997-11-07 1999-12-28 Microlinc, Llc Computer having packet-based interconnect channel
US7330479B2 (en) 2003-09-25 2008-02-12 International Business Machines Corporation Shared transmit buffer for network processor and methods for using same
US20050144341A1 (en) 2003-12-31 2005-06-30 Schmidt Daren J. Buffer management via non-data symbol processing for a point to point link
US20050262250A1 (en) 2004-04-27 2005-11-24 Batson Brannon J Messaging protocol
JP2005332250A (ja) * 2004-05-20 2005-12-02 Toshiba Corp データ処理装置およびフロー制御方法
US7493426B2 (en) * 2005-01-31 2009-02-17 International Business Machines Corporation Data communication method and apparatus utilizing programmable channels for allocation of buffer space and transaction control
US7643477B2 (en) * 2005-08-24 2010-01-05 Intel Corporation Buffering data packets according to multiple flow control schemes
US8131940B2 (en) * 2007-03-31 2012-03-06 Intel Corporation Methods and apparatuses to support memory transactions using partial physical addresses
US7971074B2 (en) * 2007-06-28 2011-06-28 Intel Corporation Method, system, and apparatus for a core activity detector to facilitate dynamic power management in a distributed system
US8174977B2 (en) 2007-07-06 2012-05-08 Hewlett-Packard Development Company, L.P. End-to-end flow control in a network
US8635380B2 (en) * 2007-12-20 2014-01-21 Intel Corporation Method, system and apparatus for handling events for partitions in a socket with sub-socket partitioning
US8085801B2 (en) * 2009-08-08 2011-12-27 Hewlett-Packard Development Company, L.P. Resource arbitration

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1620063A (zh) * 2003-10-28 2005-05-25 英特尔公司 计算机系统中的基于信用的流动控制的方法、系统和设备

Also Published As

Publication number Publication date
TW201138379A (en) 2011-11-01
WO2011059574A2 (en) 2011-05-19
US20110116511A1 (en) 2011-05-19
CN102065073A (zh) 2011-05-18
WO2011059574A3 (en) 2011-07-21
TWI536772B (zh) 2016-06-01
US8819305B2 (en) 2014-08-26

Similar Documents

Publication Publication Date Title
US10114558B2 (en) Integrated main memory and coprocessor with low latency
CN102065073B (zh) 向协议层直接提供数据消息
US6038646A (en) Method and apparatus for enforcing ordered execution of reads and writes across a memory interface
US8296522B2 (en) Method, apparatus, and system for shared cache usage to different partitions in a socket with sub-socket partitioning
JP2005522773A (ja) 非均等型キャッシュ装置、システム及び方法
KR102064764B1 (ko) 메시지 시그널 인터럽트의 통신
US8560803B2 (en) Dynamic cache queue allocation based on destination availability
CN101566976B (zh) 信息处理装置和信息处理方法
US10810146B2 (en) Regulation for atomic data access requests
US11243714B2 (en) Efficient data movement method for in storage computation
US6539439B1 (en) Method and apparatus for interfacing a bus at an independent rate with input/output devices
CN103294611A (zh) 一种基于有限数据一致性状态的服务器节点数据缓存方法
US20110320722A1 (en) Management of multipurpose command queues in a multilevel cache hierarchy
US20190129857A1 (en) I/o driven data routing and cache allocation
WO2024036985A1 (zh) 存储系统及其计算存储处理器、固体硬盘和数据读写方法
CN102822808A (zh) 用于多通道缓存的通道控制器
CN1426560A (zh) 具有不同资源访问方案的系统集成代理程序
CN100520748C (zh) 数据处理系统
CN110035021B (zh) 针对原子数据访问请求进行的资源分配
KR20180109675A (ko) 저장된 교체 정보를 갖는 스누프 필터, 이에 대한 방법 및 희생자 전용 캐시와 스누프 필터 공유 교체 정책을 포함하는 시스템
JP5307796B2 (ja) 処理装置、処理システム、データ共有処理方法、及びデータ共有処理用集積回路
US9804959B2 (en) In-flight packet processing
US10642760B2 (en) Techniques for command arbitation in symmetric multiprocessor systems
CN109324982B (zh) 一种数据处理方法以及数据处理装置
CN109308167B (zh) 用于跟踪写入请求的设备和系统、以及控制器的方法

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20140312

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