CN105718349A - 跨管芯接口监听或全局观察消息排序 - Google Patents
跨管芯接口监听或全局观察消息排序 Download PDFInfo
- Publication number
- CN105718349A CN105718349A CN201510819454.6A CN201510819454A CN105718349A CN 105718349 A CN105718349 A CN 105718349A CN 201510819454 A CN201510819454 A CN 201510819454A CN 105718349 A CN105718349 A CN 105718349A
- Authority
- CN
- China
- Prior art keywords
- interface
- equipment
- integrated circuit
- cdi
- epoch
- 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
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/3003—Monitoring arrangements specially adapted to the computing system or computing system component being monitored
- G06F11/3027—Monitoring arrangements specially adapted to the computing system or computing system component being monitored where the computing system component is a bus
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0806—Multiuser, multiprocessor or multiprocessing cache systems
- G06F12/0815—Cache consistency protocols
- G06F12/0831—Cache consistency protocols using a bus scheme, e.g. with bus monitoring or watching means
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0806—Multiuser, multiprocessor or multiprocessing cache systems
- G06F12/0815—Cache consistency protocols
- G06F12/0831—Cache consistency protocols using a bus scheme, e.g. with bus monitoring or watching means
- G06F12/0833—Cache consistency protocols using a bus scheme, e.g. with bus monitoring or watching means in combination with broadcast means (e.g. for invalidation or updating)
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/62—Details of cache specific to multiprocessor cache arrangements
- G06F2212/621—Coherency control relating to peripheral accessing, e.g. from DMA or I/O device
-
- Y—GENERAL 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
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE 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/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computing Systems (AREA)
- Mathematical Physics (AREA)
- Quality & Reliability (AREA)
- Memory System Of A Hierarchy Structure (AREA)
- Debugging And Monitoring (AREA)
Abstract
描述了涉及用于跨管芯接口(CDI)监测和/或go(或完成)消息排序的技术的方法和设备。在一个实施例中,至少基于两个位的状态来确定监听消息和完成消息的顺序。在第一集成电路管芯与第二集成电路管芯之间交换该监听和完成消息。第一集成电路管芯和第二集成电路管芯通过第一接口和第二接口耦合,并且在第一接口和第二接口中的至少一个接口上交换监听消息和完成消息。还公开了其他实施例。
Description
技术领域
本公开总体涉及电子学领域。更具体而言,实施例涉及用于跨管芯接口(CDI)监听和/或全局观察(GlobalObservation,GO)消息排序的技术。
附图说明
参考所附附图提供″具体实施方式″。在附图中,附图标记中最左边的数字标识该附图标记首次出现在其中的附图。在不同的附图中使用相同的附图标记来指示类似或完全相同的项。
图1示出可用于实现本文中所讨论的各实施例的计算系统的实施例的框图。
图2示出可用于实现本文中所讨论的一个或多个实施例的计算系统的实施例的框图。
图3示出根据实施例的多管芯互连配置的框图。
图4示出可用于实现本文中所讨论的一个或多个实施例的计算系统的实施例的框图。
图5示出可用于实现本文中所讨论的一个或多个实施例的计算系统的实施例的框图。
图6示出根据实施例的芯片上系统(SOC)封装的框图。
具体实施方式
在下面的描述中,阐述了很多特定细节以提供对各实施例的全面理解。然而,在没有这些特定细节的情况下,也可实践一些实施例。在其他实例中,未详细描述公知的方法、过程、组件和电路以便不使特定实施例变得模糊。诸实施例的各方面可以使用各种装置来执行,各种装置诸如,集成半导体电路(“硬件”)、组织成一个或多个程序的计算机可读指令(“软件”)或硬件和软件的某种组合。为本公开的目的,对“逻辑”的引用应当是指硬件、软件或者硬件和软件的某种组合。
如本文中所讨论,“监听”(“snoop”)或总线监听一般是指在共享存储器中用于实现高速缓存一致性的技术。例如,监听消息可用于确定跨共享的存储器设备的高速缓存行的状态,并用于确保存在于两个或更多个位置/高速缓存中的相同存储器位置与跨具有共享的存储器设备的计算系统的其他对应的存储器位置保持一致。此外,“GO”(或全局观察)消息一般是指指示一个或多个操作的完成的消息类型。“flit”(流控制数位(flowcontroldigit)的缩写)是指流控制的最小单元。消息一般由多个flit构成。另外,在实施例中,“flit”可包括80位,例如,用于错误检测的8位、用于链路层头部的8位以及用于数据的64位,但是也可以使用其他配置。
一些实施例提供一致的跨管芯接口(CDI)监听和/或GO或全局观察(也被称为“完成”)消息排序。更具体而言,一致的CDI包括对于监听和GO消息的排序的规则,并且该规则要求GO消息可以放行监听消息,但是监听消息不将GO消息放行到相同地址(否则,一致性和TSO(总存储顺序)存储器一致性模型会被破坏)。实现此规则可能是复杂的,因为监听消息包含地址,而GO消息不包含地址。因此,所有的GO/监听消息都需要被视为是潜在地冲突的。为此目的,实施例将时间窗分解为相对于GO或监听消息何时到达的“纪元”(“epoch”),它们与被称为“纪元位”的位相关联。实施例利用纪元位以及对flit的打包规则来高效地对一致的CDIflit打包,以便确保在flit中不存在任何冲突的消息。然后,可以使用拆包规则以在接收端重新创建纪元位以符合监听/GO排序规则。
此外,可以在各种计算系统(例如,包括非移动计算设备,诸如,台式机、工作站、服务器、机架系统等;或移动计算设备,诸如,智能电话、平板、UMPC(超移动个人计算机)、膝上型计算机、超极本TM计算设备、智能手表、智能眼镜等)(包括参考图1-6所讨论的那些计算系统)中提供本文中所讨论的技术。更具体而言,图1示出根据实施例的计算系统100的框图。系统100可包括一个或多个代理102-1到102-M(在本文中统称为“诸代理102”,或更一般地称为“代理102”)。在实施例中,代理102中的一个或多个可以是诸如参考图4-6所讨论的计算系统之类的计算系统的组件中的任何一个。
如图1所示,诸代理102可以经由诸如管芯上系统结构(OSF)之类的主结构(primaryfabric)104进行通信。因此,在实施例中,代理102和结构104可以存在于同一个集成电路管芯上。如本文中所讨论,“OSF”可以是指管芯上的可扩展、可配置和/或产品特定的系统结构。例如,代理102中的每一个都可以是经由结构104而耦合的桥(例如,用于耦合到另一个结构),IP(知识产权)块或电子设备的另一个组件。在一个实施例中,结构104可包括允许各种代理(诸如,计算设备)传递数据的计算机网络。在实施例中,结构104可包括一个或多个互连(或互连网络),这一个或多个互连(或互连网络)经由串行(例如,点对点)链路和/或共享通信网络(在实施例中,该网络可以配置为环形)进行通信。每一个链路都可包括一个或多个通道。例如,一些实施例可以促进对允许与完全缓冲的双列直插式存储器模块(FullyBufferedDualin-linememorymodule,FBD)进行的通信的链路(例如,在FBD链路是用于将存储器模块耦合到主机控制器设备(诸如,处理器或存储器中枢)的串行链路的情况下)的组件调试或验证。可以从FBD信道主机传送调试信息,使得可以通过信道通信量(traffic)跟踪捕捉工具(诸如,一个或多个逻辑分析器),沿通道观察到该调试信息。
在一个实施例中,系统100可以支持分层的协议方案,该方案可包括物理层、链路层、路由层、传输层和/或协议层。对于点对点或共享网络,结构104还可以促进从一个协议(例如,高速缓存处理器或高缓存感知的存储器控制器)到另一个协议的数据传送(例如,以数据分组的形式)。在一些实施例中,结构104还可以提供遵循一个或多个高速缓存一致协议的通信。
此外,如图1中由箭头的方向所示,代理102可以经由结构104来传送和/或接收数据。因此,一些代理可以利用单向链路,而其他代理可以利用双向链路来进行通信。例如,一个或多个代理(诸如,代理102-M)可以传送数据(例如,经由单向链路106),其他代理(诸如,代理102-2)可以接收数据(例如,经由单向链路108),而一些代理(诸如,代理102-1)可以既传送又接收数据(例如,经由双向链路110)。在一些实施例中,链路106-110是提供用于允许IP块跨多个设计进行交互操作的协议和/或信令的OSF接口。
在实施例中,耦合诸代理102的OSF接口(例如,链路106-110)可以提供被称为主信道和边带(sideband)信道的两个端口。主信道可以:(a)是用于在对等设备之间和/或向上游进行的数据转移的高性能接口;(b)支持存储器(例如,32位、44位)、输入/输出(IO或I/O)、配置以及消息事务;(c)支持外围组件互连(PCI)快速(“PCIe”,根据2008年8月的PCI快速基本规范3.0,修订版0.5)排序规则和/或枚举;(d)支持经拆分的事务协议;和/或(e)映射PCIe头部信息。边带信道可以:(i)提供用于传递边带(本文中也被可互换地称为“带外”)信息并消除专用线路的标准接口;(ii)提供点对点网络;(iii)用于状态、功率管理、配置遮蔽(shadowing)、测试模式,等等;和/或(iv)用于低性能(例如,不旨在用于主数据转移)。
另外,代理102中的至少一个可以是本地代理,并且代理102中的一个或多个可以是请求代理或高速缓存代理。一般而言,请求/高速缓存代理将用于向与对应的“本地代理”相关联的存储器地址的访问的请求发送给该本地代理/节点。此外,在实施例中,代理102中的一个或多个(仅示出一个,代理102-1)可以访问诸如存储器120之类的存储器(该存储器可以专用于该代理或可由其他代理共享)。在一些实施例中,代理102中的每一个(或者至少一个)可以耦合到存储器120,该存储器120要么在与该代理相同的管芯上,要么可由该代理以其他方式访问。如图1所示,代理102还用于促进监听和/或GO消息排序的一致性CDI逻辑,如本文中将进一步(例如,参照图2-6)所讨论。
图2是根据实施例的计算系统200的框图。系统200包括多个插槽202-208(示出四个,但是一些实施例可以具有更多或更少插槽)。每一个插槽都包括处理器。系统200中的各种代理还可以经由逻辑150进行通信。即便仅在项202和MC2/HA2中示出逻辑150,在系统200的其他代理中也可提供逻辑150。此外,取决于实现,更多或更少的逻辑可存在于系统中。另外,每一个插槽都经由点对点(PtP)链路或差分互连(诸如,快速路径互连(QPI),MIPI(移动行业处理器接口)等被耦合到其他插槽。如参考图1的结构104所讨论,每一个插槽都耦合到系统存储器的本地部分,例如,由包括动态随机存取存储器(DRAM)的多个双列直插存储器模块(DIMM)形成的本地部分。
在另一个实施例中,网络结构可以用于任何芯片上系统(SoC或SOC)应用,可使用自定义或标准接口,诸如,用于AMBA(高级微控制器总线架构)、OCP(开放核协议)、MIPI(移动行业处理器接口)、PCI(外围组件互连)或PCIe(外围组件互连快速)的兼容ARM的接口。
如图2所示,每一个插槽都耦合到存储器控制器(MC)/本地代理(HA)(诸如,MC0/HA0到MC3/HA3)。存储器控制器耦合到对应的本地存储器(被标记为MEM0到MEM3),这些本地存储器可以是系统存储器(诸如,图9的存储器912)的部分。在一些实施例中,存储器控制器(MC)/本地代理(HA)(诸如,MC0/HA0到MC3/HA3)可以与图1的代理102-1相同或类似,并且被标记为MEM0到MEM3的存储器可以与参考本文中的附图中的任何一个附图所讨论的存储器设备相同或类似。在一个实施例中,MEM0到MEM3也可以被配置成对数据进行镜像操作,例如,作为主设备和从设备。在一些实施例中,系统200中的一个或多个组件也可以被包括在同一个集成电路管芯中。
此外,一种实现(诸如,在图2中示出的实现)用于具有镜像操作的插槽无粘接配置。例如,分配给存储器控制器(诸如,MC0/HA0)的数据在PtP链路上被镜像到另一个存储器控制器(诸如,MC3/HA3)。
图3示出根据一个实施例的多管芯互连配置的框图。逻辑150还可包括图3所示的、用于促进本文中参照一些实施例所讨论的监听/GO消息排序的组件中的一个或多个。在实施例中,图3的跨管芯接口(CDI)308用于耦合多个集成电路管芯/器件。
在一些实施例中,提供在第一集成电路(IC)管芯302与第二IC管芯304之间的具有两个(例如,唯一的)接口的链路。这些接口中的一个是管芯上的系统结构(OSF)306(其可以与图1的OSF102相同或类似),其在所附接的设备与OSF306之间使用一致的协议和非一致的协议。在实施例中,OSF包括多个接口(并且在一些实现中,可以是多于2000条线路宽)。另一接口是跨管芯接口(CDI)308,其可以是50个通道宽。在一个实施例中,CDI将一致的协议接口305消息打包为400位flit。一个实施例高效地打包一致的CDI消息,而仍遵循监听和/或GO消息排序要求。一般而言,该排序要求为:GO可以放行监听,但是监听推入(push)GO。
一个先前的解决方案将是扩展OSF的所有消息接口(其是非常不切实际的)。例如,在50通道和8UI(或8单元间隔)接口(或按400位的flit),可对从OSF接收到的任何消息通信打包,并将其转发到次管芯(其可包括几千个有线接口)。对于OSF306上的一致的CDI,除了监听和GO之外,去往单个接收机的多数消息都没有顺序。另一个解决方案将是在一个flit上一次发送一个消息,这会非常低效。
如上文所提及,相对于监听和GO消息排序的一致的CDI规则在于,GO消息可以放行监听,但是监听消息不将GO消息放行到相同的地址(否则,可能破坏一致性和TSO存储器一致性模型)。使此情况复杂的一项在于,监听消息包含地址,而GO消息不包含地址。因此,需要将所有的GO/监听消息都视为潜在地冲突的。为此目的,实施例使用纪元位和对flit的打包规则来高效地对一致的CDIflit打包以确保在flit中不存在任何冲突的消息。随后,可以使用拆包规则以在接收端重新创建这些纪元位,从而维护监听/GO排序规则。
此外,一些实施例允许在单个flit中打包尽可能多的监听和/或GO消息,同时在不利用该flit消息中的任何附加的位的情况下保证一致的CDI排序。此外,此类技术还避免了TX/RX(传送/接收)电路为保持同步而燃耗或浪费flit中的任何附加的位,并且允许对flit的高效打包以将尽可能多的消息置于该flit中。
用于保证一致的CDI的排序要求的另一方法涉及在单个FIFO(先进先出)缓冲器中对消息排序,但是,此类解决方案消耗大得多的组合结构或多个位(CDI也比OSF互连窄得多,因此,由于与访问较大的结构和/或传递附加信息相关联的等待时间(latency),较大的结构或多个位将减慢链路速度)。相比之下,一些实施例仅在CDITX/RX逻辑中使用两个位来跟踪潜在的依赖关系。这两个位不在TX/RX逻辑之间发送,但是驻留在每一侧上的存储结构中。此方法提供更简单的解决方案,该解决方案涉及本地决策/访问而不是必须在链路上传送此信息,例如,导致更佳的可靠性、功耗降低、减少的等待时间和/或增加的速度。在RX逻辑处,当对GO和监听消息拆包时,当在一致的协议接口305上进行传输之前,重新生成这两个位(本文中有时也被称为“纪元位”)。
参考图3,在主IC302与次IC304之间,一般将一致的协议接口示出在左侧,而将非一致的协议接口示出在右侧。在图3中,“ARB/MUX”310是指仲裁逻辑/多路复用器,该仲裁逻辑/多路复用器用于在多个协议链路层之间以及在一个实施例中,在图3中所示的一致的协议链路层与非一致的协议链路层的输出之间进行仲裁。CDI物理(PHY)层307传输以flit粒度进行多路复用的协议。
在一些实施例中,下列配置/规则中的一条或多条(为主IC与次IC之间的CDI一致的管道开发的)确保监听/GO排序:
(1)在OSF302接口处,将用于跟踪监听/GO纪元的每条目的附加位以及用于跟踪当前纪元的又一个位提供给单独的监听/GOFIFO;
(a)对向队列的输入生成纪元位,并读取这些纪元位以确定打包/发送;
(b)注意,GO消息不携带地址,因此,逻辑(例如,逻辑150)不知晓监听消息是否与未完成的GO冲突。出于此原因,CDI一致的协议要求监听“不”放行先前发布的GO;
(2)CDI的隐式flit顺序——在构建一致的CDIflit时,根据定义,flit内的消息未经排序(即,单个flit中的所有消息都没有排序要求,并可以在接收器逻辑处完全经拆包,并以任何所期望的顺序发送到设备)。
该方案按如下方式起作用。凭借针对每个条目的纪元位的附加数组,Snoop(Req)和GO(Rsp)FIFO是分开的。对于在它们之间不需要被排序的GO或监听块(分别)而言,GO纪元(GO_epoch)或Snoop纪元(Snp_epoch)位被分配了二进制值。还具有用于记住我们当前/最后从GOFIFO中弹出什么纪元的附加位(R位或“记忆位”)。
在一个实施例中,根据这些规则来操纵这些位进入传送(Tx)/接收(Rx)FIFO:
InitiallySnp_epoch=1ifaGOneverreceivedinthepreviousorsamecycle,else0(最初,如果从未在先前或相同的循环中接收到GO,则Snp_epoch=1,否则,为0)
InitiallyGO_epoch=1(最初,GO_epoch=1)
ToggleSnp_epochifGOwaswrittenlasttimeaSnoopwaswrittenoriflasttimeaGOwaswrittentherewasnoSnoopwritten(如果监听最后一次被写入时GO被写入或如果GO最后一次被写入时没有被写入的监听,则切换Snp_epoch)
ToggleGO_epochifaSnoopisalsowrittenthiscycleorifthelasttimeaSnoopwaswrittentherewasnoGOwritten(如果本次循环监听也被写入或如果监听最后一次被写入时没有被写入的GO,则切换GO_epoch)
在一个实施例中,为了确定自从最后一个Snoop起GO最终是否到来或自从最后一个GO起监听是否到来,我们保存队列的每一个允许写入信号的状态。当请求写入允许(req_WrEn)和响应写入允许(rsp_WrEn)中的任一项被断言时,它们都被捕捉。否则,last_req_WrEn和last_rsp_WrEn失败(flop)保持它们的状态。在这种方式中,“last”意味着最后一次有一些内容被写入。要被写入到队列中的纪元位被命名为next_snp_epoch和next_GO_epoch。在一些实施例中,它们通过“表1:Snp_epoch生成”和“表2:GO_epoch生成”来确定。
表1:Snp_epoch生成
表2:GO_epoch生成
在一个实施例中,当读取Tx/RxFIFO时,用于排序的规则如下:
RbitissettoGO_epochlastsent;(R位被设置为最后发送的GO_epoch)
ifepochsamethenSnoopmaypassGO;(如果纪元相同,则监听可放行GO)
elseifRbit==Snp_epochthenSnoopmaypassGO(‘s);(否则,如果R位==Snp_epoch,则监听可放行(多个)GO)
elseSnoopisdelayeduntilafterGO(‘s)is(are)issued;and(否则,延迟监听,直到(多个)GO被发布为止;并且)
Beforechangingepochneedtosendallinthecurrentepoch.(在改变纪元之前,需要发送当前纪元中的全部内容)
在以下表3中提供了根据一些实施例的示例。此表示出出现在OSF上的监听(S0、S1、S2,等等)以及GO(G0、G1、G2,等等)的示例顺序,以及逻辑(例如,逻辑150和/或303)如何分配Snp_epoch和GO_epoch位。
对于初始值,根据定义,第一GO_epoch总是1。如果GO从未被接收到,则第一Snp_epoch=1,否则为0。在该示例中,在时刻t=0时的Snp_epoch被分配了1。在t=1时,GO(G0)到达,并且没有监听。此GO也被分配了1,因为它相对于Snoop没有排序要求并因此在相同的纪元中。在t=2时,监听(S1)和GO(G1)两者都到达。必须将新纪元分配给监听,使得它将被排序在前一个GO之后。GO也被给予了此纪元,使得它不阻止监听。在t=4时,必须切换监听(S2)的Snp_epoch,使得它被排序在t=3时到来的GO之后。可以使用以上规则来构建该示例的其余部分。
表3示出根据实施例的监听(S)和GO(G)消息到达以及在Snp和GOFIFO中的对应的跟踪的示例:
时刻 | Snp | GO |
0 | S0 | |
1 | G0 | |
2 | S1 | G1 |
3 | G2 | |
4 | S2 | |
5 | G3 | |
6 | S3 | |
7 | S4 | |
8 | S5 | |
9 | G4 | |
10 | S6 |
表3
在实施例中,基于下列规则,对一致的CDIflit打包:
根据以上规则,当顺序是要紧的时候,将监听放置在稍后的flit中;以及
为改善效率,将监听以及GO消息分组在不同的flit中
对于此示例,在接收到第一个GO消息时,记忆位(R位)被设置为1。监听S0和G0可以在同一个flit中发送,然而,S1、G1和G2不能在同一个flit中发送。由于那些全都是伴随纪元0的消息,因此,S1、G1和G2被允许在随后的flit中发送(注意,它们实际上是否将被发送取决于其他的flit打包规则)。R-位将变为0。同样,S2不能在该flit中发送,因为它具有不匹配R-位的Snp_epoch(1)。S2和G3被允许在随后的flit中发送。S3、S4、S5和G4被允许在随后的flit中发送,但是,S6不能,因为S6的纪元不匹配R-位(0),因为S6需要相对于G4进行排序。
在Rx数据路径中,对flit拆包,并且根据上面讨论的用于对RxFIFO写入的规则来生成纪元位并将这些纪元位与监听和GO消息一起存储在RxFIFO中。顺序基于flit,在该flit中对它们打包。flit内的监听/GO消息是未经排序的,但是,对于flit内的监听/GO消息,我们将为Snp_Epoch和GO_Epoch设置相同的值。排序发生在在诸个flit之间。当读取RxFIFO时,使用纪元位以使监听/GO消息按正确的顺序返回到接收机逻辑。
图4示出计算系统400的实施例的框图。图1的诸代理102中的一个或多个可以包括计算系统400的一个或多个组件。系统400的各种组件还可包括如图4所示的逻辑150。然而,可以在遍及系统400的位置中提供逻辑150,包括或排除所示的那些。计算系统400可包括耦合到互连网络(或总线)404的一个或多个中央处理单元(CPU)402(在本文中可以统称为“处理器402”,或更一般地称为“处理器402”)。可以由系统400的一个或多个组件来执行参考图1-3所讨论的操作。
处理器402可以是任何类型的处理器,诸如,通用处理器、网络处理器(其可以处理在计算机网络405上传递的数据)等(包括精简指令集计算机(RISC)处理器或复杂指令集计算机(CISC))。此外,处理器402还可以具有单核或多核设计。具有多核设计的处理器402可以将不同类型的处理器核集成在同一个集成电路(IC)管芯上。具有多核设计的处理器402还可实现为对称的或不对称的多处理器。
处理器402可包括一个或多个高速缓存,在各实施例中,这些高速缓存可以是私有的和/或被共享。一般而言,高速缓存存储对应于存储在别处或稍早计算出的原始数据的数据。为减小存储器访问等待时间,一旦数据被存储在高速缓存中,可以通过访问经高速缓存的副本而非预取或重新计算原始数据来进行未来使用(futureuse)。高速缓存可以是用于存储由系统400的一个或多个组件利用的电子数据(例如,包括指令)的任何类型的高速缓存,诸如,第1级(L1)高速缓存、第2级(L2)高速缓存、第3级(L3)、中级高速缓存、末级高速缓存(LLC),等等。另外,此类高速缓存可以位于各种位置中(例如,在本文中所讨论的计算系统(包括图1、2、3、或5的系统)的其他组件内)。
芯片组406可以另外耦合到互连网络404。此外,芯片组406可包括图形存储器控制中枢(GMCH)408。GMCH408可包括耦合到存储器412的存储器控制器410。存储器412可以存储数据,例如,包括由处理器402或与计算系统400的组件进行通信的任何其他设备执行的指令序列。在一个实施例中,存储器412还可包括一个或多个易失性存储(或存储器)设备,诸如,随机存取存储器(RAM)、动态RAM(DRAM)、同步DRAM(SDRAM)、静态RAM(SRAM),等等。也可以使用非易失性存储器,诸如,硬盘。附加的设备可以耦合到互连网络404,诸如,多个处理器和/或多个系统存储器。
GMCH408还可以包括耦合到显示设备416的图形接口414(例如,在实施例中,经由图形加速器)。在一个实施例中,图形接口414可以经由加速图形端口(AGP)或外围组件互连(PCI)(或PCI快速(PCIe)接口)而耦合到显示设备416。在实施例中,显示设备416(诸如,平板显示器)可通过例如信号转换器而耦合到图形接口414,该信号转换器将存储在诸如视频存储器或系统存储器之类的存储设备(例如,存储器412)中的图像的数字表示转换为由显示器416解释和显示的显示信号。
如图4所示,中枢接口418可以将GMCH408耦合到输入/输出控制中枢(ICH)420。ICH420可以提供到耦合到计算系统400的输入/输出(I/O)设备的接口。ICH420可以通过外围桥(或控制器)424耦合到总线422,外围桥(或控制器)424诸如,可以与PCIe规范兼容的外围组件互连(PCI)桥、通用串行总线(USB)控制器,等等。桥424可以在处理器402与外围设备之间提供数据路径。可以使用其他类型的拓扑。此外,多个总线还可例如通过多个桥或控制器而耦合到ICH420。此外,总线422可以包括其他类型和配置的总线系统。此外,在各实施例中,耦合到ICH420的其他外围设备可包括,集成驱动器电子(IDE)或小型计算机系统接口(SCSI)硬盘驱动器、USB端口、键盘、鼠标、并行端口、串行端口、软盘驱动器、数字输出支持(例如,数字视频接口(DVI)),等等。
总线422可以耦合到音频设备426、一个或多个盘驱动器428以及网络适配器/接口430(在实施例中,其可以是NIC)。在一个实施例中,网络适配器430或耦合到总线422的其他设备可以与芯片组406进行通信。网络适配器430可以经由有线或无线接口与各种组件进行通信。如图4所示,网络适配器430可以耦合到天线431,以便无线地(例如,经由电气与电子工程师学会(IEEE)802.11接口(包括IEEE802.11a/b/g/n/ac,等等)、蜂窝接口、3G、11G、LPE,等等)与网络403进行通信。其他设备可以经由总线422进行通信。此外,在一些实施例中,各种组件(诸如,网络适配器430)也可以耦合到GMCH408。另外,处理器402和GMCH408还可以被组合以形成单个芯片。在实施例中,可以在CPU402中的一个或多个中提供存储器控制器410。此外,在实施例中,GMCH408和ICH420可以被合并成外围控制中枢(PCH)。
另外,计算系统400可包括易失性和/或非易失性存储器(或存储设备)。例如,非易失性存储器可包括下列各项中的一项或多项:只读存储器(ROM)、可编程ROM(PROM)、可擦PROM(EPROM)、电EPROM(EEPROM)、盘驱动器(例如,428)、软盘、光盘ROM(CD-ROM)、数字多功能盘(DVD)、闪存、磁光盘,或能够存储电子数据(例如,包括指令)的其他类型的非易失性机器可读介质。
在实施例中,存储器412可包括下列各项中的一项或多项:操作系统(O/S)432、应用434和/或设备驱动器436。存储器412也可以包括专用于存储器映射的I/O(MMIO)操作的区域。存储在存储器412中的程序和/或数据可以作为存储器管理操作的部分而被交换到盘驱动器428中。应用434可以执行(例如,在处理器402上)以与耦合到网络405的一个或多个计算设备传递一个或多个分组。在实施例中,分组可以是可由从至少一个发送机传送到至少一个接收机(例如,在诸如网络405之类的网络上)的一个或多个电子信号进行编码的一个或多个符号和/或值的序列。例如,每一个分组都可以具有头部,该头部包括在路由和/或处理这些分组时可以使用的各种信息,诸如,源地址、目的地地址、分组类型,等等。每一个分组也可以具有有效载荷,该有效载荷包括分组在计算机网络(诸如,网络405)上,在各种计算设备之间转移的原始数据(或内容)。
在实施例中,应用434可利用O/S432来与系统400的各种组件进行通信,例如,通过设备驱动器436。因此,设备驱动器436可包括网络适配器430专用命令,该专用命令用于在O/S432与网络适配器430或(例如,经由芯片组406)耦合到系统400的其他I/O设备之间提供通信接口。
在实施例中,O/S432可包括网络协议栈。协议栈一般是指可以被执行以处理在网络405上发送的分组的过程或程序的集合,其中,分组可以符合指定的协议。例如,可以使用TCP/IP栈来处理TCP/IP(传输控制协议/网际协议)分组。设备驱动器436可以指示存储器412中要被处理(例如,经由协议栈)的缓冲器。
网络405可包括任何类型的计算机网络。网络适配器430还可以包括直接存储器访问(DMA)引擎,该引擎将分组写入到被分配给可用的描述符(例如,存储在存储器412中的描述符)的缓冲器(例如,存储在存储器412中的缓冲器),以便在网络405上传送和/或接收数据。另外,网络适配器430还可包括网络适配器控制器,该网络适配器控制器可包括用于执行适配器相关的操作的逻辑(诸如,一个或多个可编程处理器)。在实施例中,适配器控制器可以是MAC(介质访问控制)组件。网络适配器430还可以包括存储器,诸如,任何类型的易失性/非易失性存储器(例如,包括一个或多个高速缓存和/或参考存储器412所讨论的其他存储器类型)。
图5示出根据实施例的按点对点(PtP)配置安排的计算系统500。具体而言,图5示出其中处理器、存储器和输入/输出设备通过数个点对点接口来互连的系统。可由系统500的一个或多个组件来执行参考图1-4所讨论的操作。
如图5所示,系统500可包括多个处理器,为清楚起见,仅示出了其中两个,即处理器502和504。处理器502和504可以各自可包括用于实现与存储器510和512进行的的通信的本地存储器控制器中枢(MCH)506和508。存储器510和/或512可以存储各种数据,诸如,参考图5的存储器512所讨论的那些数据。如图5所示,处理器502和504(或系统500的其他组件,诸如,芯片组520,I/O设备543,等等)也可以包括一个或多个高速缓存,诸如,参考图1-4所讨论的那些高速缓存。
在实施例中,处理器502和504可以是参考图5所讨论的处理器502中的一个。处理器502和504可以经由分别使用PtP接口电路516和518的点对点(PtP)接口514来交换数据。处理器502和504还可以经由使用点对点接口电路526、528、530和532的单独的PtP接口522和524来与芯片组520交换数据。芯片组520还可以经由例如使用PtP接口电路537的高性能的图形接口536来与高性能图形电路534交换数据。
在至少一个实施例中,可以在处理器502、504和/或芯片组520中的一个或多个中提供逻辑150。然而,其他实施例可以存在于图5的系统500内的其他电路、逻辑单元、或设备中。此外,其他实施例可以遍及图5中所示的若干电路、逻辑单元或设备而分布。例如,系统500的各种组件可包括图1的逻辑150。然而,可以在遍及系统500的位置中提供逻辑150,包括或排除所示出的那些。
芯片组520可以使用PtP接口电路541来与总线540进行通信。总线540可以具有与它进行通信的一个或多个设备,诸如,总线桥542和I/O设备543。经由总线544,总线桥542可以与其他设备进行通信,其他设备诸如,键盘/鼠标545、通信设备546(诸如,调制解调器、网络接口设备,或可以与计算机网络505进行通信的其他通信设备)、音频I/O设备和/或数据存储设备548。数据存储设备548可以存储可由处理器502和/或504执行的代码549。
在一些实施例中,本文中所讨论的组件中的一个或多个可以具体化为芯片上系统(SOC)设备。图6示出根据实施例的SOC封装的框图。如图6所示,SOC602包括一个或多个中央处理单元(CPU)核620、一个或多个图形处理器单元(GPU)核630、输入/输出(I/O)接口640以及存储器控制器642。SOC封装602的各种组件可以耦合到诸如本文中参考其他附图所讨论的互连或总线。SOC封装602还可包括更多或更少的组件,诸如,本文中参考其他附图所讨论的那些组件。此外,SOC封装620的每一组件都可包括一个或多个其他组件,例如,如参考本文中的其他附图所讨论的组件。在一个实施例中,在一个或多个集成电路(IC)管芯上提供SOC封装602(以及其组件),例如,它们被封装到单个半导体器件中。
如图6所示,SOC封装602经由存储器控制器642而耦合到存储器660(可以与本文中参考其他附图所讨论的存储器类似或相同)。在实施例中,存储器660(或其部分)可以被集成在SOC封装602上。
I/O接口640可以例如经由诸如本文中参考其他附图所讨论的互连和/或总线而耦合到一个或多个I/O设备。I/O设备670可包括键盘、鼠标、触板、显示器、图像/视频捕捉设备(诸如,相机或摄录一体机/视频记录器)、触屏、扬声器等中的一个或多个。此外,在实施例中,SOC封装602可包括/集成逻辑150。或者,可以在SOC封装602的外部(即,作为分立逻辑)来提供逻辑150。
以下示例关于进一步的实施例。示例1包括一种设备,所述设备包括:逻辑,所述逻辑用于:至少基于两个位的状态来确定将在第一集成电路管芯与第二集成电路管芯之间交换的监听消息和完成消息的顺序,其中,所述第一集成电路管芯和所述第二集成电路管芯通过第一接口和第二接口耦合,其中,所述监听消息和所述完成消息在所述第一接口和所述第二接口中的至少一个接口上交换。示例2包括示例1的设备,其中,所述第一接口包括管芯上结构(OSF)接口,所述OSF接口使用一致的跨管芯接口(CDI)。示例3包括示例2的设备,其中,所述一致的CDI提供用于在所附接的设备和所述OSF接口之间进行的通信的一致性协议。示例4包括示例1的设备,其中,所述第二接口包括非一致的CDI。示例5包括示例1的设备,其中,所述两个位包括监听纪元位和完成纪元位。示例6包括示例1的设备,其中,所述监听消息包括地址,并且所述完成消息排除地址。示例7包括示例1的设备,其中,所述逻辑、具有一个或多个处理器核的处理器以及存储器位于同一个集成器件中。示例8包括示例1的设备,其中,所述第一接口和所述第二接口中的至少一个接口包括点对点链路。
示例9包括一种方法,所述方法包括:至少基于两个位的状态来确定将在第一集成电路管芯与第二集成电路管芯之间交换的监听消息和完成消息的顺序,其中,所述第一集成电路管芯和所述第二集成电路管芯通过第一接口和第二接口耦合,其中,所述监听消息和所述完成消息在所述第一接口和所述第二接口中的至少一个接口上交换。示例10包括示例9的方法,其中,所述第一接口包括管芯上结构(OSF)接口,所述OSF接口使用一致的跨管芯接口(CDI)。示例11包括示例10的方法,进一步包括,所述一致的CDI提供用于在所附接的设备与所述OSF接口之间进行的通信的一致性协议。示例12包括示例9的方法,其中,所述第二接口包括非一致的链路层。示例13包括示例9的方法,其中,所述两个位包括监听纪元位和完成纪元位。示例14包括示例9的方法,其中,所述监听消息包括地址,并且所述完成消息排除地址。
示例15包括一种系统,所述系统包括:处理器,所述处理器具有一个或多个处理器核;显示设备,所述显示设备耦合到所述处理器;以及逻辑,所述逻辑用于:至少基于两个位的状态来确定将在第一集成电路管芯与第二集成电路管芯之间交换的监听消息和完成消息的顺序,其中,所述第一集成电路管芯和所述第二集成电路管芯通过第一接口和第二接口耦合,其中,所述监听消息和所述完成消息在所述第一接口和所述第二接口中的至少一个接口上交换。示例16包括示例15的系统,其中,所述第一接口包括管芯上结构(OSF)接口,所述OSF接口使用一致的跨管芯接口(CDI)。示例17包括示例16的系统,其中,所述一致的CDI提供用于在所附接的设备与所述OSF接口之间进行的通信的一致性协议。示例18包括示例15的系统,其中,所述第二接口包括非一致的链路层。示例19包括示例15的系统,其中,所述两个位包括监听纪元位和完成纪元位。示例20包括示例15的系统,其中,所述监听消息包括地址,并且所述完成消息排除地址。示例21包括示例15的系统,其中,所述逻辑、具有一个或多个处理器核的处理器以及存储器位于同一个集成器件中。示例22包括示例15的系统,其中,所述第一接口和所述第二接口中的至少一个接口包括点对点链路。
示例23包括计算机可读介质,其包括一条或多条指令,当在处理器上执行所述一条或多条指令时,所述一条或多条指令使所述处理器执行一个或多个操作以:至少基于两个位的状态来确定将在第一集成电路管芯与第二集成电路管芯之间交换的监听消息和完成消息的顺序,其中,所述第一集成电路管芯和所述第二集成电路管芯通过第一接口和第二接口耦合,其中,所述监听消息和所述完成消息在所述第一接口和所述第二接口中的至少一个接口上交换。示例24包括示例23的计算机可读介质,其中,所述第一接口包括管芯上结构(OSF)接口,所述OSF接口使用一致的跨管芯接口(CDI)。示例25包括示例24的计算机可读介质,进一步包括一条或多条指令,当在处理器上执行所述一条或多条指令时,所述一条或多条指令使所述处理器执行一个或多个操作以使一致的CDI提供用于在所附接的设备与所述OSF接口之间进行的通信的一致性协议。
示例26包括设备,所述设备包括用于执行前述任何一个示例中阐述的方法的装置。
示例27包括机器可读存储设备,其包括机器可读指令,当执行所述机器可读指令时,所述机器可读指令实现前述任何一个示例中阐述的方法或设备。
在各实施例中,可将本文中(例如参考图1-6)所讨论的操作实现为硬件(例如,电路)、软件、固件、微代码,或它们的组合,它们可以作为计算机程序产品被提供,计算机程序产品例如,包括有形的(例如,非暂态)机器可读的或(例如,非暂态)计算机可读的介质,这些介质具有存储在其上的指令(或软件过程),这些软件(或软件过程)用于对计算机编程以执行此本文中所讨论的进程。作为示例,术语“逻辑”可包括软件、硬件,或软件和硬件的组合。机器可读介质可包括存储设备,诸如,参考图1-6所讨论的那些存储设备。另外,此类计算机可读介质还可以作为计算机程序产品被下载,其中,经由通信链路(例如,总线、调制解调器和/或网络连接),通过在载波或其他传播介质中的数据信号,可将程序从远程计算机(例如,服务器)转移到请求计算机(例如,客户机)。
说明书中对“一个实施例”、“实施例”的引用意味着结合该实施例所描述的特定特征、结构或特性可以被包括在至少一个实现中。在本说明书中的不同位置中短语“在一个实施例中”的出现可以全部指同一个实施例或可以不都是指同一个实施例。
此外,在说明书和权利要求书中,可使用术语“耦合的”和“连接的”及其衍生词。在一些实施例中,可以使用“连接的”来指示两个或更多个元件彼此直接物理和/或电接触。“耦合的”可表示两个或更多个元件直接物理或电接触。然而,“耦合的”也可表示两个或更多个元件彼此可以不直接接触,但是仍然彼此协作,彼此相互作用。
如此,尽管已经用对结构特征和/或方法动作专用的语言描述了各实施例,但可以理解,所要求保护的主题可以不受限于所描述的特定特征或动作。相反,特定特征和动作作为实现所要求保护的主题的样本形式被公开。
Claims (24)
1.一种用于提供用于跨管芯接口(CDI)消息排序的技术的设备,所述设备包括:
逻辑,所述逻辑用于:至少基于两个位的状态来确定将在第一集成电路管芯与第二集成电路管芯之间交换的监听消息和完成消息的顺序,
其中,所述第一集成电路管芯和所述第二集成电路管芯通过第一接口和第二接口耦合,
其中,所述监听消息和所述完成消息在所述第一接口和所述第二接口中的至少一个接口上交换。
2.如权利要求1所述的设备,其特征在于,所述第一接口包括管芯上结构(OSF)接口,所述OSF接口使用一致的跨管芯接口(CDI)。
3.如权利要求2所述的设备,其特征在于,所述一致的CDI提供用于在所附接的设备与所述OSF接口之间进行的通信的一致性协议。
4.如权利要求1所述的设备,其特征在于,所述第二接口包括非一致的CDI。
5.如权利要求1所述的设备,其特征在于,所述两个位包括监听纪元位和完成纪元位。
6.如权利要求1所述的设备,其特征在于,所述监听消息包括地址,并且所述完成消息排除地址。
7.如权利要求1所述的设备,其特征在于,所述逻辑、具有一个或多个处理器核的处理器以及存储器在同一个集成器件上。
8.如权利要求1所述的设备,其特征在于,所述第一接口和所述第二接口中的至少一个接口包括点对点链路。
9.一种用于提供用于跨管芯接口(CDI)消息排序的技术的方法,所述方法包括:
至少基于两个位的状态来确定将在第一集成电路管芯与第二集成电路管芯之间交换的监听消息和完成消息的顺序,
其中,所述第一集成电路管芯和所述第二集成电路管芯通过第一接口和第二接口耦合,
其中,所述监听消息和所述完成消息在所述第一接口和所述第二接口中的至少一个接口上交换。
10.如权利要求9所述的方法,其特征在于,所述第一接口包括管芯上结构(OSF)接口,所述OSF接口使用一致的跨管芯接口(CDI)。
11.如权利要求10所述的方法,进一步包括,所述一致的CDI提供用于在所附接的设备与所述OSF接口之间进行的通信的一致性协议。
12.如权利要求9所述的方法,其特征在于,所述第二接口包括非一致的链路层。
13.如权利要求9所述的方法,其特征在于,所述两个位包括监听纪元位和完成纪元位。
14.如权利要求9所述的方法,其特征在于,所述监听消息包括地址,并且所述完成消息排除地址。
15.一种用于提供用于跨管芯接口(CDI)消息排序的技术的系统,所述系统包括:
处理器,所述处理器具有一个或多个处理器核;
显示设备,所述显示设备耦合到所述处理器;以及
逻辑,所述逻辑用于:至少基于两个位的状态来确定将在第一集成电路管芯与第二集成电路管芯之间交换的监听消息和完成消息的顺序,
其中,所述第一集成电路管芯和所述第二集成电路管芯通过第一接口和第二接口耦合,
其中,所述监听消息和所述完成消息在所述第一接口和所述第二接口中的至少一个接口上交换。
16.如权利要求15所述的系统,其特征在于,所述第一接口包括管芯上结构(OSF)接口,所述OSF接口使用一致的跨管芯接口(CDI)。
17.如权利要求16所述的系统,其特征在于,所述一致的CDI提供用于在所附接的设备与所述OSF接口之间进行的通信的一致性协议。
18.如权利要求15所述的系统,其特征在于,所述第二接口包括非一致的链路层。
19.如权利要求15所述的系统,其特征在于,所述两个位包括监听纪元位和完成纪元位。
20.如权利要求15所述的系统,其特征在于,所述监听消息包括地址,并且所述完成消息排除地址。
21.如权利要求15所述的系统,其特征在于,所述逻辑、所述具有一个或多个处理器核的处理器以及存储器在同一个集成器件上。
22.如权利要求15所述的系统,其特征在于,所述第一接口和所述第二接口中的至少一个接口包括点对点链路。
23.一种机器可读介质,包括代码,所述代码在被执行时导致机器执行如权利要求9-14中的任一项所述的方法。
24.一种设备,包括用于执行如权利要求9-14中的任一项所述的方法的装置。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US14/582,148 | 2014-12-23 | ||
US14/582,148 US9785556B2 (en) | 2014-12-23 | 2014-12-23 | Cross-die interface snoop or global observation message ordering |
Publications (2)
Publication Number | Publication Date |
---|---|
CN105718349A true CN105718349A (zh) | 2016-06-29 |
CN105718349B CN105718349B (zh) | 2019-03-29 |
Family
ID=54703787
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201510819454.6A Active CN105718349B (zh) | 2014-12-23 | 2015-11-23 | 跨管芯接口监听或全局观察消息排序 |
Country Status (6)
Country | Link |
---|---|
US (1) | US9785556B2 (zh) |
EP (1) | EP3037972A1 (zh) |
JP (1) | JP6092351B2 (zh) |
KR (1) | KR101736460B1 (zh) |
CN (1) | CN105718349B (zh) |
TW (1) | TWI594125B (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9785556B2 (en) | 2014-12-23 | 2017-10-10 | Intel Corporation | Cross-die interface snoop or global observation message ordering |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20190004990A1 (en) | 2017-07-01 | 2019-01-03 | Stephen R. Van Doren | Techniques to support mulitple interconnect protocols for an interconnect |
US11593262B1 (en) * | 2018-04-25 | 2023-02-28 | Seagate Technology Llc | Garbage collection command scheduling |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20070043913A1 (en) * | 2005-08-17 | 2007-02-22 | Sun Microsystems, Inc. | Use of FBDIMM Channel as memory channel and coherence channel |
CN101625663A (zh) * | 2008-07-07 | 2010-01-13 | 英特尔公司 | 满足部分读取和非监听访问之间的访存顺序要求 |
US20120079032A1 (en) * | 2010-09-24 | 2012-03-29 | Vash James R | Apparatus, system, and methods for facilitating one-way ordering of messages |
CN102880558A (zh) * | 2011-06-09 | 2013-01-16 | 苹果公司 | 用于高速缓存块一致性的系统、方法和设备 |
CN104115128A (zh) * | 2011-10-26 | 2014-10-22 | 高通科技公司 | 具有高速缓存相干性的集成电路 |
Family Cites Families (24)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5339399A (en) * | 1991-04-12 | 1994-08-16 | Intel Corporation | Cache controller that alternately selects for presentation to a tag RAM a current address latch and a next address latch which hold addresses captured on an input bus |
US5751995A (en) * | 1994-01-04 | 1998-05-12 | Intel Corporation | Apparatus and method of maintaining processor ordering in a multiprocessor system which includes one or more processors that execute instructions speculatively |
US5623628A (en) * | 1994-03-02 | 1997-04-22 | Intel Corporation | Computer system and method for maintaining memory consistency in a pipelined, non-blocking caching bus request queue |
US5535345A (en) * | 1994-05-12 | 1996-07-09 | Intel Corporation | Method and apparatus for sequencing misaligned external bus transactions in which the order of completion of corresponding split transaction requests is guaranteed |
JP3872118B2 (ja) * | 1995-03-20 | 2007-01-24 | 富士通株式会社 | キャッシュコヒーレンス装置 |
US6023747A (en) * | 1997-12-17 | 2000-02-08 | International Business Machines Corporation | Method and system for handling conflicts between cache operation requests in a data processing system |
US7010740B1 (en) * | 2001-05-17 | 2006-03-07 | Emc Corporation | Data storage system having no-operation command |
US6985972B2 (en) * | 2002-10-03 | 2006-01-10 | International Business Machines Corporation | Dynamic cache coherency snooper presence with variable snoop latency |
US20050262250A1 (en) | 2004-04-27 | 2005-11-24 | Batson Brannon J | Messaging protocol |
US20070073977A1 (en) * | 2005-09-29 | 2007-03-29 | Safranek Robert J | Early global observation point for a uniprocessor system |
US20080005484A1 (en) * | 2006-06-30 | 2008-01-03 | Joshi Chandra P | Cache coherency controller management |
US8151059B2 (en) * | 2006-11-29 | 2012-04-03 | Intel Corporation | Conflict detection and resolution in a multi core-cache domain for a chip multi-processor employing scalability agent architecture |
US7975109B2 (en) * | 2007-05-30 | 2011-07-05 | Schooner Information Technology, Inc. | System including a fine-grained memory and a less-fine-grained memory |
JP4461170B2 (ja) | 2007-12-28 | 2010-05-12 | 株式会社東芝 | メモリシステム |
US8190820B2 (en) * | 2008-06-13 | 2012-05-29 | Intel Corporation | Optimizing concurrent accesses in a directory-based coherency protocol |
US8205111B2 (en) * | 2009-01-02 | 2012-06-19 | Intel Corporation | Communicating via an in-die interconnect |
US8074131B2 (en) * | 2009-06-30 | 2011-12-06 | Intel Corporation | Generic debug external connection (GDXC) for high integration integrated circuits |
US8751714B2 (en) * | 2010-09-24 | 2014-06-10 | Intel Corporation | Implementing quickpath interconnect protocol over a PCIe interface |
US8538922B2 (en) * | 2010-10-11 | 2013-09-17 | International Business Machines Corporation | Nondisruptive overflow avoidance of tuple validity timestamps in temporal database systems |
US8495091B2 (en) * | 2011-07-01 | 2013-07-23 | Intel Corporation | Dynamically routing data responses directly to requesting processor core |
US20140040561A1 (en) * | 2012-07-31 | 2014-02-06 | Futurewei Technologies, Inc. | Handling cache write-back and cache eviction for cache coherence |
KR101696124B1 (ko) | 2012-10-22 | 2017-01-12 | 인텔 코포레이션 | 고성능 인터커넥트 물리 계층 |
US20140114928A1 (en) | 2012-10-22 | 2014-04-24 | Robert Beers | Coherence protocol tables |
US9785556B2 (en) | 2014-12-23 | 2017-10-10 | Intel Corporation | Cross-die interface snoop or global observation message ordering |
-
2014
- 2014-12-23 US US14/582,148 patent/US9785556B2/en active Active
-
2015
- 2015-11-06 TW TW104136689A patent/TWI594125B/zh not_active IP Right Cessation
- 2015-11-16 JP JP2015223743A patent/JP6092351B2/ja active Active
- 2015-11-19 EP EP15195503.6A patent/EP3037972A1/en not_active Ceased
- 2015-11-20 KR KR1020150163072A patent/KR101736460B1/ko active IP Right Grant
- 2015-11-23 CN CN201510819454.6A patent/CN105718349B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20070043913A1 (en) * | 2005-08-17 | 2007-02-22 | Sun Microsystems, Inc. | Use of FBDIMM Channel as memory channel and coherence channel |
CN101625663A (zh) * | 2008-07-07 | 2010-01-13 | 英特尔公司 | 满足部分读取和非监听访问之间的访存顺序要求 |
US20120079032A1 (en) * | 2010-09-24 | 2012-03-29 | Vash James R | Apparatus, system, and methods for facilitating one-way ordering of messages |
CN102880558A (zh) * | 2011-06-09 | 2013-01-16 | 苹果公司 | 用于高速缓存块一致性的系统、方法和设备 |
CN104115128A (zh) * | 2011-10-26 | 2014-10-22 | 高通科技公司 | 具有高速缓存相干性的集成电路 |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9785556B2 (en) | 2014-12-23 | 2017-10-10 | Intel Corporation | Cross-die interface snoop or global observation message ordering |
Also Published As
Publication number | Publication date |
---|---|
US9785556B2 (en) | 2017-10-10 |
CN105718349B (zh) | 2019-03-29 |
TWI594125B (zh) | 2017-08-01 |
KR101736460B1 (ko) | 2017-05-16 |
TW201635149A (zh) | 2016-10-01 |
KR20160076970A (ko) | 2016-07-01 |
JP2016119066A (ja) | 2016-06-30 |
EP3037972A1 (en) | 2016-06-29 |
JP6092351B2 (ja) | 2017-03-08 |
US20160179673A1 (en) | 2016-06-23 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11385795B2 (en) | Method and apparatus to enable individual non volatile memory express (NVMe) input/output (IO) queues on differing network addresses of an NVMe controller | |
EP3140748B1 (en) | Interconnect systems and methods using hybrid memory cube links | |
KR101887126B1 (ko) | Or 체인 버스를 위한 향상된 데이터 버스 반전 인코딩 | |
US8904079B2 (en) | Tunneling platform management messages through inter-processor interconnects | |
US20140068134A1 (en) | Data transmission apparatus, system, and method | |
CN106648896B (zh) | 一种Zynq芯片在异构称多处理模式下双核共享输出外设的方法 | |
US20150341260A1 (en) | Managing sideband routers in on-die system fabric | |
WO2016082169A1 (zh) | 内存访问方法、交换机及多处理器系统 | |
US10459860B2 (en) | EMI mitigation on high-speed lanes using false stall | |
US11797311B2 (en) | Asynchronous pipeline merging using long vector arbitration | |
CN105718349A (zh) | 跨管芯接口监听或全局观察消息排序 | |
WO2012087894A2 (en) | Debugging complex multi-core and multi-socket systems | |
US20200192842A1 (en) | Memory request chaining on bus | |
US20150058524A1 (en) | Bimodal functionality between coherent link and memory expansion | |
KR20180023543A (ko) | 시리얼 통신으로 메모리를 제공하기 위한 장치 및 방법 | |
KR20050080704A (ko) | 프로세서간 데이터 전송 장치 및 방법 | |
US11880327B1 (en) | Non-coherent and coherent connections in a multi-chip system | |
TW201717042A (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 |