CN106815151A - 高性能互连相干协议 - Google Patents

高性能互连相干协议 Download PDF

Info

Publication number
CN106815151A
CN106815151A CN201710038234.9A CN201710038234A CN106815151A CN 106815151 A CN106815151 A CN 106815151A CN 201710038234 A CN201710038234 A CN 201710038234A CN 106815151 A CN106815151 A CN 106815151A
Authority
CN
China
Prior art keywords
request
state
data
cache
monitoring
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
CN201710038234.9A
Other languages
English (en)
Other versions
CN106815151B (zh
Inventor
R·G·布朗肯希普
B·法西姆
R·比尔斯
Y-C·刘
V·基塔
H·H·胡姆
J·维利
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 CN106815151A publication Critical patent/CN106815151A/zh
Application granted granted Critical
Publication of CN106815151B publication Critical patent/CN106815151B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • 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
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/26Power supply means, e.g. regulation thereof
    • G06F1/32Means for saving power
    • G06F1/3203Power management, i.e. event-based initiation of a power-saving mode
    • G06F1/3234Power saving characterised by the action undertaken
    • G06F1/3287Power saving characterised by the action undertaken by switching off individual functional units in the computer system
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1004Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's to protect a block of data words, e.g. CRC or checksum
    • 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/0808Multiuser, multiprocessor or multiprocessing cache systems with cache invalidating 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/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
    • 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/0833Cache 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)
    • 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/14Handling requests for interconnection or transfer
    • G06F13/16Handling requests for interconnection or transfer for access to memory bus
    • G06F13/1605Handling requests for interconnection or transfer for access to memory bus based on arbitration
    • G06F13/1652Handling requests for interconnection or transfer for access to memory bus based on arbitration in a multiprocessor architecture
    • G06F13/1657Access to multiple memories
    • 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/14Handling requests for interconnection or transfer
    • G06F13/16Handling requests for interconnection or transfer for access to memory bus
    • G06F13/1668Details of memory controller
    • G06F13/1689Synchronisation and timing concerns
    • 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/14Handling requests for interconnection or transfer
    • G06F13/20Handling requests for interconnection or transfer for access to input/output bus
    • G06F13/22Handling requests for interconnection or transfer for access to input/output bus using successive scanning, e.g. polling
    • 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/4004Coupling between buses
    • G06F13/4022Coupling between buses using switching circuits, e.g. switching matrix, connection or expansion network
    • 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/4282Bus transfer protocol, e.g. handshake; Synchronisation on a serial bus, e.g. I2C bus, SPI bus
    • 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/4282Bus transfer protocol, e.g. handshake; Synchronisation on a serial bus, e.g. I2C bus, SPI bus
    • G06F13/4286Bus transfer protocol, e.g. handshake; Synchronisation on a serial bus, e.g. I2C bus, SPI bus using a handshaking protocol, e.g. RS232C link
    • 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/4282Bus transfer protocol, e.g. handshake; Synchronisation on a serial bus, e.g. I2C bus, SPI bus
    • G06F13/4291Bus transfer protocol, e.g. handshake; Synchronisation on a serial bus, e.g. I2C bus, SPI bus using a clocked protocol
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/70Software maintenance or management
    • G06F8/71Version control; Configuration management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/70Software maintenance or management
    • G06F8/77Software metrics
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30145Instruction analysis, e.g. decoding, instruction word fields
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/445Program loading or initiating
    • G06F9/44505Configuring for program initiating, e.g. using registry, configuration files
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/466Transaction processing
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/54Store-and-forward switching systems 
    • H04L12/56Packet switching systems
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/15Interconnection of switching modules
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/06Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols the encryption apparatus using shift registers or memories for block-wise or stream coding, e.g. DES systems or RC4; Hash functions; Pseudorandom sequence generators
    • H04L9/065Encryption by serially and continuously modifying data stream elements, e.g. stream cipher systems, RC4, SEAL or A5/3
    • H04L9/0656Pseudorandom key sequence combined element-for-element with data sequence, e.g. one-time-pad [OTP] or Vernam's cipher
    • H04L9/0662Pseudorandom key sequence combined element-for-element with data sequence, e.g. one-time-pad [OTP] or Vernam's cipher with particular pseudorandom sequence generator
    • 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/4265Bus transfer protocol, e.g. handshake; Synchronisation on a point to point bus
    • G06F13/4273Bus transfer protocol, e.g. handshake; Synchronisation on a point to point bus using a clocked protocol
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/10Providing a specific technical effect
    • G06F2212/1016Performance improvement
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/25Using a specific main memory architecture
    • G06F2212/254Distributed memory
    • G06F2212/2542Non-uniform memory access [NUMA] architecture
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/62Details of cache specific to multiprocessor cache arrangements
    • G06F2212/622State-only directory, i.e. not recording identity of sharing or owning nodes
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/70Software maintenance or management
    • G06F8/73Program documentation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/28Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
    • H04L12/46Interconnection of networks
    • H04L12/4641Virtual LANs, VLANs, e.g. virtual private networks [VPN]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/74Address processing for routing
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D30/00Reducing energy consumption in communication networks

Abstract

本发明涉及高性能互连相干协议。接收一请求,该请求引用第一代理且请求特定存储器行在独占状态中被高速缓存。监听请求被发送指向一个或多个其他代理。接收到引用第二代理的监听响应,监听响应包括将对应于特定存储器行的已修改高速缓存行写回至存储器。发送完成以定址至第一代理,其中完成包括基于写回的特定存储器行的数据。

Description

高性能互连相干协议
本申请是申请日为2013年3月15日申请号为第201380016955.X号发明名称为“高性能互连相干协议”的中国专利申请的分案申请。
技术
本公开案一般涉及计算机开发领域,尤其涉及包括协调相互依赖的受约束系统的软件开发。
背景
半导体处理和逻辑设计中的进展允许增加集成电路器件上存在的逻辑的数量。计算机系统配置必然已经从系统中的单个或多个集成电路演进为个别集成电路上存在的多核、多硬件线程及多逻辑处理器,以及这种处理器内集成的其他接口。处理器或集成电路一般包括单个物理处理器模,其中处理器模可包括任何数量的核、硬件线程、逻辑处理器、接口、存储器、控制器中枢等。
作为在较小的封装包内适配更多处理能力的较高能力的结果,较小的计算设备越来越流行。智能电话、平板电脑、超薄笔记本电脑及其他用户设备呈指数型增长。然而,这些较小设备依赖于服务器来进行数据存储以及超出规格的复杂处理。因而,也增加了对高性能计算市场(即,服务器空间)的需求。例如,在现代服务器中,一般不仅存在具有多个核的单个处理器,也存在多个物理处理器(也称为多个插槽(socket))来提高计算能力。但随着处理能力随着计算系统中设备数量而增长,插槽及其他设备间的通信变得更为关键。
实际上,互连已经从主要处理电子通信的较传统的多点总线增长为便于快速通信的全面互连基础结构。不幸的是,由于存在对将来处理器以甚至更高速率进行消耗的需求,对现有互连基础结构的能力也存在相应的需求。
附图简述
图1示出按照一实施例的系统的简化框图,该系统包括一系列点对点互连以连接计算机系统中的多个I/O设备;
图2示出按照一实施例的分层协议栈的简化框图;
图3示出事务描述符的实施例。
图4示出串行点对点链路的实施例。
图5示出潜在的高性能互连(HPI)系统配置的多个实施例。
图6示出与HPI相关联的分层协议栈的实施例。
图7示出示例相干协议冲突管理的流程图。
图8示出另一示例相干协议冲突管理的流程图。
图9示出另一示例相干协议冲突管理的流程图。
图10示出具有到存储器的写回的示例监听响应的流程图。
图11示出具有到存储器的写回的监听响应的另一示例的流程图。
图12示出示例写回冲刷操作的流程图。
图13示出到存储器的示例写回的流程图。
图14示出示例存储器控制器冲刷操作的流程图。
图15-17示出示例协议状态表的表示。
图18示出协议状态表的示例嵌套的表示。
图19示出由示例测试引擎使用一组协议状态表的表示。
图20示出由示例测试引擎使用一组协议状态表的表示。
图21示出包括多核处理器的计算系统的框图的实施例。
各附图中的相同附图标记和名称表示相同的元件。
详细描述
在以下描述中,提出了许多具体细节以便更透彻地理解本发明,诸如具体处理器和系统配置类型、具体硬件结构、具体结构和微结构细节、具体寄存器配置、具体指令类型、具体系统组件、具体处理器流水线阶段、具体互连层、具体分组/事务配置、具体事务名称、具体协议交换、具体链路宽度、具体实现方式以及操作等等的多个示例。然而,对于本领域技术人员显而易见的是,不需要必须采用这些具体细节来实现本公开案的主题。在其他情况下,为避免不必要地混淆本公开案,已经避免了已知组件或方法的非常详细的描述,所述组件或方法诸如具体的和替代的处理器体系结构、所述算法的具体逻辑电路/代码、具体固件代码、低级互连操作、具体逻辑配置、具体制造技术和材料、具体编译器实现、算法用代码的具体表达、具体掉电和门控技术/逻辑以及计算机系统的其他具体操作细节。
尽管可以参照具体集成电路(诸如计算平台或微处理器)中的能量保存、能量效率、处理效率等来描述以下实施例,然而其他实施例可应用于其他类型的集成电路和逻辑器件。这里所述的实施例的类似技术和原理可应用于也受益于这些特征的其他类型的电路或半导体器件。例如,所公开的实施例不限于服务器计算机系统、台式计算机系统、膝上型计算机、超级本(Ultrabooks)TM,而可以用于其他设备中,诸如手持设备、智能电话、平板电脑、其他薄型笔记本电脑、芯片上系统(SOC)设备及嵌入式应用。手持设备的一些示例包括蜂窝电话、网际协议设备、数码相机、个人数字助理(PDA)及手持式PC。这里,用于高性能互连的类似技术可应用于增加低功率互连中的性能(或甚至节省功率)。嵌入式应用一般包括微控制器、数字信号处理器(DSP)、芯片上系统、网络计算机(NetPC)、机顶盒、网络中枢、广域网(WAN)交换机或者可执行以下教导的功能和操作的任何其他系统。此外,这里所描述的装置、方法和系统不限于物理计算设备,而是也关于用于能量节省和效率的软件优化。从以下描述中可显而易见,这里所描述的方法、装置和系统的实施例(无论是参照硬件、固件、软件或其组合)可被视为对于以性能考虑因素平衡的“绿色技术”将来是关键的。
随着计算系统的进步,其中的组件变得更为复杂。用于在多个组件间耦合和通信的互连体系结构的复杂度也增加,以确保对于最佳组件操作满足带宽需求。而且,不同的细分市场要求互连体系结构的不同方面来适合于相应的市场。例如,服务器要求较高性能,而移动生态系统有时能为节省功率而牺牲总性能。大多数构造的单一目的仍然是以最大的功率节省来提供最高的可能性能。而且,各种不同的互连可能潜在地受益于这里描述的主题。例如,在其他示例中,外围组件互连(PCI)Express(快速)(PCIe)互连构造体系结构和快速路径互连(QPI)构造体系结构可以根据这里描述的一个或多个原理得到潜在的改进。
图1示出由互连一组组件的多个点对点链路组成的构造的一个实施例。系统100包括与控制器中枢115耦合的处理器105和系统存储器110。处理器105可以包括任何处理元件,诸如微处理器、主机处理器、嵌入式处理器、协处理器或其他处理器。处理器105通过前端总线(FSB)106耦合至控制器中枢115。在一实施例中,FSB 106是如下所述的串行点对点互连。在另一实施例中,链路106包括与不同的互连标准相兼容的串行差分互连体系结构。
系统存储器110包括任何存储器设备,诸如随机存取存储器(RAM)、非易失性(NV)存储器、或可由系统100内的设备访问的其他存储器。系统存储器110通过存储器接口116耦合至控制器中枢115。存储器接口的示例包括双数据速率(DDR)存储器接口、双通道DDR存储器接口以及动态RAM(DRAM)存储器接口。
在一实施例中,控制器中枢115可包括诸如PCIe互连层次结构中的根中枢(roothub)、根复合体(root complex)或根控制器。控制器中枢115的示例包括芯片集、存储器控制器中枢(MCH)、北桥、互连控制器中枢(ICH)、南桥以及根控制器/中枢。通常术语芯片集是指两个物理上分开的控制器中枢,例如与互连控制器中枢(ICH)耦合的存储器控制器中枢(MCH)。注意到,当前的系统通常包括与处理器105集成的MCH,而控制器115要以以下描述的类似方式与I/O设备通信。在一些实施例中,通过根复合体115任选地支持对等路由。
这里,控制器中枢115通过串行链路119耦合至交换机/桥120。输入/输出模块117和121也可称为接口/端口117和121,输入/输出模块117和121可包括/实现分层的协议栈以便在控制器中枢115和交换机120之间提供通信。在一实施例中,多个设备能够耦合至交换机120。
交换机/桥120将分组/消息自设备125向上游(即,自分层结构向上朝向根复合体)路由至控制器中枢115,并且自处理器105或系统存储器110向下游(即,自分层结构向下远离根控制器)路由至设备125。在一实施例中,交换机120被称为多个虚拟PCI对PCT桥设备的逻辑装配。设备125包括要耦合至电子系统的任何内部或外部设备或组件,诸如I/O设备、网络接口控制器(NIC)、附加卡、音频处理器、网络处理器、硬盘驱动器、存储设备、CD/DVDROM、监视器、打印机、鼠标、键盘、路由器、便携式存储设备、火线(Firewire)设备、通用串行总线(USB)设备、扫描仪以及其他输入/输出设备。通常在PCIe语言中,诸如设备被称为端点。尽管未特别示出,但设备125可以包括桥(例如PCIe对PCI/PCI-X桥)以支持设备或这些设备所支持的互连构造的传统或其他版本。
图形加速器130也可以通过串行链路132耦合至控制器中枢115。在一实施例中,图形加速器130耦合至MCH,MCH耦合至ICH。于是,交换机120及相应的I/O设备125耦合至ICH。I/O模块131和118也用于实现分层的协议栈和相关联的逻辑以便在图形加速器130和控制器中枢115之间通信。类似于以上的MCH讨论,图形控制器或图形加速器130本身可集成在处理器105内。
转至图2,示出分层协议栈的实施例。分层协议栈200可包括任何形式的分层通信栈,诸如QPI栈、PCIe栈、下一代高性能计算互连(HPI)栈或其他分层栈。在一实施例中,协议栈200可包括事务层205、链路层210和物理层220。接口(接口诸如图1中的接口117、118、121、122、126和131)可以被表示为通信协议栈200。通信协议栈的表示也可以被称为实现/包括协议栈的模块或接口。
分组可用于在多个组件间传送信息。分组可形成于事务层205和数据链路层210中以将信息自发射组件携带至接收组件。随着所发送的分组流经其他层,使用用于在那些层处理分组的附加信息来扩展这些所发送的分组。在接收侧发生相反过程,分组从它们的物理层220表示变换成数据链路层210表示,最终(对于事务层分组)变换成可由接收设备的事务层205处理的形式。
在一实施例中,事务层205可以在设备的处理核和互连体系结构之间提供接口,诸如数据链路层210和物理层220。在这点上,事务层205的主要责任可包括分组(即,事务层分组,即TLP)的装配和分解。事务层205也可以管理TLP的基于信用的流控制。在一些实现中,在其他示例中,可以利用分割事务,即关于请求的事务和关于响应的事务按时间分开,允许链路携带其他业务而同时目标设备为响应收集数据。
基于信用的流控制可用于实现利用互连构造的虚拟信道和网络。在一示例中,设备可以为事务层205中的每个接收缓冲器广告初始量的信用。在链路相对端的外部设备(诸如图1中的控制器中枢115)可以对每个TLP所消耗的信用数量计数。如果事务不超过信用界限,则发送事务。在接收到响应时,恢复信用的数量。这一信用方案的优点的一个示例在于,在其他潜在优点中,假如不遇到信用界限,信用返回的延迟就不影响性能。
在一实施例中,四个事务地址空间可包括配置地址空间、存储器地址空间、输入/输出地址空间以及消息地址空间。存储器空间事务包括读请求和写请求中的一个或多个,用以将数据传递至存储器映射的位置/自存储器映射的位置传递数据。在一实施例中,存储器空间事务能够使用两个不同的地址格式,例如短地址格式(诸如32位地址)或长地址格式(诸如64位地址)。配置空间事务可用于访问与互连相连接的各个设备的配置空间。到配置空间的事务可包括读请求和写请求。也可以定义消息空间事务(或简称为消息)来支持互连代理之间的带内通信。因此,在一示例实施例中,事务层205可以装配分组头部/有效载荷206。
快速参照图3,示出事务层分组描述符的示例实施例。在一实施例中,事务描述符300可以是用于携带事务信息的机制。在这点上,事务描述符300支持系统中事务的标识。其他潜在用途包括跟踪缺省事务次序的修改以及事务与信道的关联。例如,事务描述符300可包括全局标识符字段302、属性字段304和信道标识符字段306。在所示示例中,全局标识符字段302被描述为包括局部事务标识符字段308和源标识符字段310。在一实施例中,全局事务标识符302对于所有未完成的请求是唯一的。
根据一种实现方式,局部事务标识符字段308是由请求方代理(requestingagent)产生的字段,并且可以是对于对该请求方代理要求完成的所有未完成的请求唯一的。而且,在该示例中,源标识符310唯一地标识互连分层结构内的请求者代理(requestoragent)。因而,局部事务标识符308字段与源ID 310一起提供分层结构域内事务的全局标识。
属性字段304指定事务的特征和关系。在这点上,属性字段304可能用于提供允许修改事务的缺省处理方式的附加信息。在一实施例中,属性字段304包括优先级字段312、保留字段314、排序字段316和无监听(no-snoop)字段318。这里,优先级子字段312可由发起者修改以将优先级分配给事务。保留属性字段314预留给将来的用途或是厂商定义的用途。可以使用保留属性字段来实现使用优先级或安全属性的可能的用途模型。
在该示例中,排序属性字段316用于提供任选的信息,该任选的信息传递可以修改缺省排序规则的排序类型。根据一种示例实现方式,为“0”的排序属性表示要应用缺省的排序规则,其中为“1”的排序属性表示不受拘束的排序,其中写操作可以在相同方向上通过写操作,而读操作完成可以在相同方向上通过写操作。监听属性字段318用于确定事务是否被监听。如图所示,信道ID字段306标识事务与之相关联的信道。
返回图2的讨论,链路层210(也称为数据链路层210)可以充当事务层205和物理层220之间的中间阶段。在一实施例中,数据链路层210的责任是提供用于在链路上的两个组件之间交换事务层分组(TLP)的可靠机制。数据链路层210的一侧接受事务层205所装配的TLP,应用分组序列标识符211(即,标识号或分组号),计算和应用差错检测码(即CRC 212),并且将经修改的TLP提交给物理层220,用于跨过物理组件传输至外部设备。
在一示例中,物理层220包括逻辑子块221和电气子块222以便将分组物理地发送至外部设备。这里,逻辑子块221负责物理层221的“数字”功能。在这点上,逻辑子块可以包括发射部分和接收部分,发射部分用于准备传出信息供物理子块222发送,接收部分用于在将接收到的信息传递至链路层210之前标识和准备该接收到的信息。
物理块222包括发射机和接收机。发射机由具有符号的逻辑子块221提供,发射机将符号串行化并且向外发射至外部设备。接收机被提供有来自外部设备的经串行化符号并且将接收信号变换成位流。位流被解串行化并被提供给逻辑子块221。在一示例实施例中,采用8b/10b传输码,其中发射/接收10位的符号。这里,使用特殊的符号来用多个帧223对分组进行组帧。此外,在一示例中,接收机还提供从传入串行流恢复的符号时钟。
如上所述,尽管参照协议栈(诸如PCIe协议栈)的具体实施例讨论了事务层205、链路层210和物理层220,但是分层的协议栈不限于此。实际上,可以包括/实现任何分层的协议,分层的协议可以采用这里讨论的特征。作为一示例,被表示为分层协议的端口/接口可包括:(1)用于装配分组的第一层,即事务层;用于序列化分组的第二层,即链路层;以及用于发射分组的第三层,即物理层。作为一具体示例,使用如此处描述的高性能互连分层协议。
接下来参照图4,示出串行点对点构造的示例实施例。串行点对点链路可包括用于发射串行数据的任何发射路径。在所示实施例中,链路可以包括两个、低压、差分驱动的信号对:发射对406/411和接收对412/407。因而,设备405包括用于将数据发射至设备410的发射逻辑406和用于从设备410接收数据的接收逻辑407。换言之,在链路的一些实现中包括两个发射路径(即路径416和417)和两个接收路径(即路径418和419)。
发射路径是指用于发射数据的任何路径,诸如传输线、铜线、光学线路、无线通信信道、红外通信链路或其他通信路径。两个设备(诸如设备405和设备410)之间的连接被称为链路,诸如链路415。链路可以支持一条巷道,每条巷道表示一组差分信号对(一对用于发射,一对用于接收)。为缩放带宽,链路可以聚集由xN标记的多个巷道,其中N是任何所支持的链路宽度,诸如1、2、4、8、12、16、32、64或更宽。
差分对可以指用于发射差分信号的两条发射路径,诸如线路416和417。作为一示例,当线路416从低电压级别切换至高电压级别时(即,上升沿),线路417自高逻辑电平驱动至低逻辑电平(即,下降沿)。差分信号潜在地说明较佳的电子特性,诸如较佳的信号完整性,即交叉耦合、电压过冲/下冲、振荡等其他示例优点。这允许较佳的定时窗口,从而允许较快的传输频率。
在一实施例中,提供了新的高性能互连(HPI)。HPI可以包括下一代高速缓存相干的基于链路的互连。作为一示例,HPI可用于诸如工作站或服务器等高性能计算平台中,包括在其中PCIe或另一互连协议一般用来连接处理器、加速器、I/O设备等的系统中。然而,HPI不限于此。相反,HPI可用在这里描述的任一系统或平台中。而且,所开发的个别理念可应用于其他互连和平台,诸如PCIe、MIPI、QPI等。
为了支持多个设备,在一示例实现中,HPI可包括指令集架构(ISA)不可知的(即,HPI能够实现于多个不同的设备中)。在另一情况下,HPI也可用于连接高性能I/O设备,而不仅仅是处理器或加速器。例如,高性能PCIe设备可通过适当的转换桥(即,HPI至PCIe)耦合至HPI。此外,HPI连接可由许多基于HPI的设备(诸如处理器)以各种方式(例如,星形、环形、网状等)来使用。图5示出多个潜在的多插槽配置的示例实现。如图所示,双插槽配置505可包括两个HPI链路;然而,在其他实现中,可以使用一个HPI链路。对于较大的拓扑结构,只要可分配标识符(ID)并且存在某一形式的虚拟路径以及其他附加或替代特征,就可以使用任何配置。如图所示,在一示例中,四插槽配置510具有从每个处理器到每个其他处理器的HPI链路。但在配置515所示的八插槽实现中,不是每一个插槽都通过HPI链路彼此直接连接。然而,如果在多个处理器之间存在虚拟路径或信道,则支持该配置。所支持的处理器的范围包括本地域中的2-32个处理器。在其他示例中,可以通过使用多个域或节点控制器之间的其他互连来达到较高数量的处理器。
HPI架构包括分层协议架构的定义,在一些示例中,分层协议架构包括协议层(相干的、非相干的、及任选的其他基于存储器的协议)、路由层、链路层以及包括相关联的I/O逻辑的物理层。而且,在其他示例中,HPI还可包括与功率管理器(诸如功率控制单元(PCU))、测试和调试的设计(DFT)、错误处理、寄存器、安全性有关的增强。图6示出示例HPI分层协议栈的实施例。在一些实现中,图6所示的至少一些层可以是任选的。每一层处理其自身级别的信息粒度或信息量(协议层605a、b处理分组630,链路层610a、b处理飞片(flit)635,物理层605a、b处理相数位(phit)640)。注意到在一些实现中,基于实现方式,分组可以包括多个部分飞片、单个飞片或是多个飞片。
作为第一示例,相数位640的宽度包括链路宽度到位的1对1映射(例如,20位链路宽度包括20位的相数位,等等)。飞片可以具有更大的尺寸,诸如184、192或200个位。注意到,如果相数位640为20位宽而飞片635的尺寸为184位,则需要一部分数目的相数位640来发射一个飞片635(例如,在其他示例中,20位下的9.2个相数位来发射184位的飞片635,或者20位下的9.6个相数位来发射192位的飞片)。注意到物理层处的基本链路宽度可以变化。例如,每个方向的道数目可以包括2、4、6、8、10、12、14、16、18、20、22、24等。在一实施例中,链路层610a、b能够将多片不同的事务嵌入在单个飞片中,并且一个或多个头部(例如1、2、3、4)可以被嵌入在飞片内。在一示例中,HPI将头部分割成相应的槽以便使飞片内的多个消息去往不同的节点。
在一实施例中,物理层605a、b可以负责在物理介质(电的或光的等等)上快速传递信息。物理链路可以是两个链路层实体(诸如层605a和605b)之间的点对点。链路层610a、b可以从较上层抽象出物理层605a、b,并且提供可靠地传递数据(以及请求)以及管理两个直连实体间的流控制的能力。链路层还可以负责将物理信道虚拟化为多个虚拟信道和消息类。协议层620a、b依赖于链路层610a、b来在将协议消息转交至物理层605a、b以便跨物理链路传递之前,将协议消息映射至适当的消息类和虚拟信道。在其他示例中,链路层610a、b可以支持多个消息,诸如请求、监听、响应、写回、非相干数据。
如图6所示,HPI的物理层605a、b(或PHY)可以在电气层(electrical layer)(即,连接两个组件的电导体)上方并且在链路层610a、b下方实现。物理层和相应的逻辑可以驻留在每个代理上,并且连接彼此隔开的两个代理(A和B)上的链路层(例如,在链路的任一侧上的设备上)。本地和远程的电层通过物理媒介(例如,电线、导体、光学媒介等)来连接。在一实施例中,物理层605a、b具有两个主要的相位、初始化和操作。在初始化期间,连接对链路层不透明,信令可以包括定时的状态和握手事件的组合。在操作期间,连接对链路层透明,信令具有一定速度,其中所有巷道在一起操作作为单个链路。在操作阶段期间,物理层将飞片从代理A传输至代理B,且从代理B传输至代理A。该连接也称为链路,并且从链路层抽象出包括媒介、宽度和速度在内的某些物理方面,而同时与链路层交换当前配置的飞片和控制/状态(例如,宽度)。初始化阶段包括次要阶段,例如轮询、配置。操作阶段也包括次要阶段(例如,链路功率管理状态)。
在一实施例中,可以实现链路层610a、b以便在两个协议或路由实体间提供可靠的数据传输。链路层可以从协议层620a、b抽象出物理层605a、b,并且可以负责两个协议代理(A、B)之间的流控制,并且将虚拟信道服务提供给协议层(消息类)和路由层(虚拟网络)。协议层620a、b和链路层610a、b之间的接口一般可以处在分组级别。在一实施例中,链路层处的最小传输单位被称为飞片,飞片是指定数量的位,诸如192个位或某一其他数额。链路层610a、b依赖于物理层605a、b来将物理层605a、b的传输单位(相数位)组帧成链路层610a、b的传输单位(飞片)。此外,链路层610a、b可以在逻辑上被分成两部分,发送者和接收者。一个实体上的发送者/接收者对可以连接至另一实体上的接收者/发送者对。通常在飞片和分组两者的基础上进行流控制。也可能在飞片级基础上执行差错检测和校正。
在一实施例中,路由层615a、b可以提供灵活的且分布式的方法以将HPI事务自源路由至目的地。由于可以通过每个路由器处的可编程路由表来指定多个拓扑结构的路由算法(一个实施例中的编程由固件、软件或其组合来执行),因此该方案是灵活的。路由功能可以是分布式的;路由可以通过一系列路由步骤来完成,且每个路由步骤通过源路由器、中间路由器或目的地路由器的任一个处的表格的查找来定义。源处的查找可用于将HPI分组注入HPI构造中。中间路由器处的查找可用于将HPI分组自输入端口路由至输出端口。目的地端口处的查找可用于瞄准目的地HPI协议代理。注意到,在一些实现中,路由层可以是薄的,因为路由表以及由此的路由算法未由说明书具体定义。这允许灵活性以及各种用途模型,包括要由系统实现定义的灵活的平台结构拓扑逻辑。路由层615a、b依赖于链路层610a、b来提供多达三个(或更多个)虚拟网络(VN)的使用――在一示例中,使用两个无死锁VN:VN0和VN1,且每个虚拟网络中定义了几个消息类。在其他特征和示例中,共享自适应虚拟网络(VNA)可定义于链路层中,但该自适应网络可能不直接暴露于路由概念,因为每个消息类和虚拟网络可以有专用的资源和有保证的进步。
在一实施例中,HPI可以包括相干协议层620a、b,用以支持代理高速缓存来自存储器的数据行。希望高速缓存存储器数据的代理可以使用相干协议来读取数据行以加载到其高速缓存中。希望修改其高速缓存中的数据行的代理可以使用相干协议以便在修改数据之前获取该行的所有权。在修改行之后,代理可以遵循协议要求将其保持在其高速缓存中,直到它或者将该行写回存储器或者将该行包括在对外部请求的响应中。最后,代理可以实现外部请求以便使其高速缓存中的行无效。协议通过指示所有正在高速缓存的代理可遵循的规则,确保了数据的相干性。它也为没有高速缓存的代理提供了相干地读取和写入存储器数据的手段。
可以实施两个条件以支持使用HPI相干协议的事务。首先,作为一示例,协议可以按每地址在代理的高速缓存中的数据之间、以及在那些数据和存储器中的数据之间维持数据一致性。通俗地说,数据一致性可以指:代理的高速缓存中表示数据的最新值的每个有效数据行以及在相干协议分组中传送的数据可以表示该数据被发送时的最新值。当没有有效的数据副本存在于高速缓存中或在传输中时,协议可以确保数据的最新值驻留于存储器中。其次,协议可以为请求提供明确的承诺点(commitment point)。读取的承诺点可以表示数据何时可用;写入的承诺点可以表示写入的数据何时全局可观察并且将被后续读取加载。协议可以为相干存储器空间中的可高速缓存的请求和不可高速缓存的(UC)请求支持这些承诺点。
HPI相干协议也可以确保代理作出的相干请求前进至相干存储器空间中的地址。当然,事务可以最终针对适当的系统操作而被满足和隐退。在一些实施例中,HPI相干协议可能不打算重试以解决资源分配冲突。由此,协议自身可以被定义为不包含循环的资源依赖性,实现可能注意其设计不引入会导致死锁的依赖性。此外,协议可以指示设计何时能够提供对协议资源的公平访问。
逻辑上,在一实施例中,HPI相干协议可以包括三个项:相干(或高速缓存)代理、归属代理以及连接这些代理的HPI互连构造。相干代理和归属代理可以一起工作以通过在互连上交换消息而实现数据一致性。链路层610a、b及其相关的描述可以提供互连构造的细节,包括它如何遵循相干协议的要求,如此处讨论的。(可以注意到,划分成相干代理和归属代理是为清楚目的。在其他示例中,设计可以在一个插槽内包含两种类型的多个代理,或甚至将代理行为组合至单个设计单元。)
在一实施例中,归属代理可以被配置成保护物理存储器。每个归属代理可以负责相干存储器空间的区域。区域可以是非重叠的,因为单个地址被一个归属代理所保护,系统中的归属代理区域在一起覆盖了相干存储器空间。例如,每个地址可以由至少一个归属代理保护。因此,在一实施例中,HPI系统的相干存储器空间中的每个地址可以映射到正好一个归属代理。
在一实施例中,HPI相干协议中的归属代理可负责服务于对相干存储器空间的请求。对于读取(Rd)请求,归属代理可以生成监听(snoop)(Snp)、处理它们的响应、发送数据响应、以及发送完成响应。对于无效(Inv)请求,归属代理可以生成必要的监听、处理它们的响应、以及发送完成响应。对于写入请求,归属代理可以将数据送交存储器并且发送完成响应。
归属代理可以在HPI相干协议中提供监听并且处理来自相干代理的监听响应。归属代理也可以处理来自相干代理的用于冲突解决的转发请求,转发请求是特殊的监听响应。当归属代理接收到转发请求时,它可以向生成该转发请求的相干代理(即,检测到冲突的监听请求的代理)发送转发响应。相干代理可以使用来自归属代理的这些转发响应和完成响应的排序来解决冲突。
相干代理可以发出所支持的相干协议请求。请求可以被发出至相干存储器空间中的地址。针对除RdCur以外的读取请求(Rd)接收到的数据可以是一致的。针对RdCur请求的数据在生成数据分组时可能是一致的(尽管它在传递时变得过时)。表1示出潜在的所支持请求的示例性的、非穷尽性的列表:
表1
HPI可以支持相干协议,相干协议利用MESI协议的原理。每个高速缓存行可以用一个或多个所支持的状态(例如,在高速缓存行中被编码)来标记。“M”或“已修改”状态可以表明高速缓存行的值已经从在主存储器中的值被修改。M状态中的行仅存在于特定的和相应的高速缓存代理中,该代理被要求在将来的某一时间将已修改的数据写回至存储器,例如,在允许主存储器状态的任何其他读取(不再有效)之前。写回可以将行自M状态转换成E状态。“E”或“独占”状态可以指示高速缓存行仅存在于当前的高速缓存中,但其值与主存储器中的值相匹配。E状态中的高速缓存行可以响应于读取请求在任一时间转换为S状态,或者可以通过写至该行而被改变为M状态。“S”或“共享”状态可以指示高速缓存行可以被存储于机器的其他高速缓存中,并且具有与主存储器中的值相匹配的值。行可以在任一时间被丢弃(被改变为I状态)。“I”或“无效”状态可以指示高速缓存行是无效的或未使用的。HPI中也可以支持其他状态,在其他示例中,诸如“F”或“转发”状态,“F”或“转发”状态指示特定的共享行值要被转发至也共享该行的其他高速缓存。
表2包括可包括于一些相干协议消息中的示例性信息,在其他示例中,包括监听、读取和写入请求:
表2
监听消息可由归属代理生成并且被定向至相干代理。监听(SNP)虚拟信道可用于监听,且在一实施例中,监听(SNP)虚拟信道消息是使用SNP虚拟信道的仅有的消息。监听可以包括请求方代理的NID以及万一监听导致数据被直接发送至作出请求的代理时它为请求分配的RTID。在一实施例中,监听还可以包括由归属代理分配以处理该请求的HTID。处理监听的相干代理可以将HTID包括于它发回归属代理的监听响应中。在一些实例中,监听可能不包括归属代理的NID,因为它可以自所包括的地址而得到,这是目标相干代理在发送其响应时所做的。扇出(fanout)监听(有“SnpF”前缀的那些监听)可能不包括目的地NID,因为路由层负责将适当的监听消息生成至扇出区域中的所有对等体。表3中列出监听信道消息的示例性列表:
表3
HPI也可以支持它们可以发出至地址的非监听请求,诸如那些实现为非相干请求的非监听请求。在其他可能示例中,这些请求的示例可包括:自存储器请求只读行的非监听读取、将行写至存储器的非监听写入、以及根据掩码将行写至存储器。
在一示例中,在HPI相干协议中可以定义四种基本类型的响应消息:数据、完成、监听和转发。特定的数据消息可携带附加的完成指示,并且特定的监听响应可以携带数据。响应消息可以使用RSP虚拟信道,并且通信构造可以在有序的完成响应和转发响应之间维持适当的消息传递。
表4包括示例HPI相干协议所支持的至少一些潜在响应消息的列表:
表4
在一示例中,数据响应可以瞄准请求方相干代理。归属代理可以发送数据响应的任一个。相干代理可以仅发送不包含有序完成指示的数据响应。此外,相干代理可以被限制为仅作为处理监听请求的结果而发送数据响应。组合的数据和完成响应可以总是具有有序完成类型,并且可以通过通信构造与转发响应保持排序。
HPI相干协议可以使用通用的无序完成消息和相干专用的有序完成消息。归属代理可将完成响应发送至相干代理,完成响应一般去往相干代理。有序完成响应可以通过通信构造来保持与转发响应排序。
监听响应可由相干代理发送,特别是响应于处理监听请求而发送,并瞄准处理监听请求的归属代理。destNID通常是归属代理(自监听请求中的地址确定),并且所包括的TID用于归属代理的为处理请求而分配的资源。命令中有“Wb”的监听命令用于已修改的高速缓存行的隐式写回,它们携带高速缓存行数据。(隐式写回可以包括相干代理由于另一代理的请求而作出的写回,而其他请求由相干代理使用其请求资源显式地作出。)
当监听请求与未完成的请求冲突时,相干代理可以生成转发请求。转发请求瞄准生成监听的归属代理,自监听请求的地址确定。由此,destNID是归属代理。转发请求还可以包括归属代理的为处理原始请求而分配的资源的TID、以及生成转发请求的相干代理的NID。
HPI相干协议可以支持单个转发响应FwdCnfltO。归属代理可以为每个接收到的转发请求发送一转发响应,并且发送到转发请求的peerNID字段中的相干代理。转发请求携带高速缓存行地址,使得相干代理可以将消息与它所分配的转发资源相匹配。转发响应消息可以携带请求方代理的NID,但在一些情况下,不是请求方代理的TID。如果相干代理想要支持转发响应的高速缓存到高速缓存传输,它可以在处理监听时保存请求方代理的TID并且发送转发请求。为了支持冲突解决,通信构造可以在转发响应以及在它之前被发送到同一目的地相干代理的所有有序完成之间保持排序。
在一些系统中,归属代理资源被预分配,因为“RTID”表示归属代理中的资源,并且高速缓存的代理在生成新的相干请求时自系统配置的池分配RTID。这种方案可以将任何特定高速缓存代理可以对归属代理作出的活动请求的数量限制为它被系统给予的RTID数量,从而高效地在高速缓存代理之间静态地切片归属代理。除了其他潜在问题以外,这种方案可导致资源的低效分配,并且适当调整归属代理的尺寸以支持请求吞吐量对于大型系统来说变得不切实际。例如,这种方案可以强制对高速缓存的代理实施RTID池管理。此外,在一些系统中,高速缓存代理可能不再用该RTID,直到归属代理已经完全处理了该事务为止。然而,等到归属代理完成所有处理会不必要地抑制高速缓存代理。此外,在其他问题中,协议中的特定流可包括高速缓存代理在归属代理释放通知之外紧紧抓住RTID,从而进一步扼制它们的性能。
在一实现中,归属代理可被允许在请求自高速缓存代理到来时分配它们的资源。在这种实例中,归属代理资源管理可被保持与相干代理逻辑分开。在一些实现中,归属资源管理和相干代理逻辑可以至少部分地混合在一起。在一些实例中,与归属代理能同时处理的请求数量相比,相干代理有更多的未完成的请求给归属代理。例如,HPI可以允许请求在通信构造中排队。而且,为避免归属代理阻止到来的请求直到资源变得可用所造成的死锁,HPI相干协议可以被配置成确保其他消息可以在被阻止的请求周围取得进步,从而确保活动的事务得以完成。
在一示例中,可以通过允许代理接收分配资源的请求以处理它来支持资源管理,该代理发送为到该请求的所有响应分配相应资源的请求。HTID可以表示归属代理为某些协议消息中包括的给定请求分配的资源。在其他示例中,监听请求和转发响应中的HTID(连同RNID/RTID)可用于支持对归属代理的响应以及被转发给请求方代理的数据。而且,HPI可以支持代理早期发送有序完成(CmpO)的能力,即当确定请求方代理重新使用其RTID资源是安全的时,在归属代理完成处理请求之前发送。协议也可以定义对具有类似RNID/RTID的监听的一般处理。
在一个说明性示例中,当特定请求的跟踪状态为繁忙时,目录状态可用于确定归属代理何时发送响应。例如,无效目录状态可允许发送响应,除了指示不存在未完成的监听响应的RdCur请求。未知的目录状态可以表明所有对等体代理均已被监听且在发送一响应之前收集所有它们的响应。专用目录状态可以表明所有者被监听且在发送一响应前收集所有响应,或者如果请求方代理是所有者则可立即发送响应。共享目录状态可以指定无效请求(例如,RdInv*或Inv*)已经监听了所有对等体代理并且收集了所有监听响应。当给定请求的跟踪者状态是已写回缓冲(WbBuffered)时,归属代理可以发送数据响应。当请求的跟踪状态是DataSent(指示归属代理已发送数据响应)或DataXfrd(指示对等体传输行的副本)时,归属代理可以发送完成响应。
在诸如以上那些示例中,归属代理可以在已收集所有监听响应之前发送数据和完成响应。HPI接口允许这些“早期”响应。当发送早期数据和完成时,归属代理可以在释放它为请求分配的资源之前,收集所有未完成的监听响应。归属代理也可以继续阻止到同一低至的标准请求,指导已收集所有监听响应为止,然后释放资源。自Busy(繁忙)或WbBuffered状态发送响应消息的归属代理可以使用消息要发送至的子动作表格(例如,被包括在体现HPI相干协议的正式规范一组协议表格中)并且为如何更新目录状态使用子动作表格。在一些情况下,早期完成可以没有归属节点的预分配而执行。
在一实施例中,HPI相干协议可以省略预分配归属资源和有序请求信道之一或之两者的使用。在这样的实现中,HPI RSP通信信道上的特定消息可以被排序。例如,可以特别提供“有序完成”和“转发响应”消息,这些消息可以自归属代理被发送至相干代理。归属代理可以对所有的相干读取和无效请求(以及其他请求,诸如高速缓存相干冲突中所包括的NonSnpRd请求)发送有序完成(CmpO或Data_*_CmpO)。
归属代理可以将转发响应(FwdCnfltO)发送至相干代理,相干代理发送转发请求(RspCnflt)以指示冲突。每当相干代理具有未完成的读取或无效请求并且检测到与该请求到达同一高速缓存行传入监听请求,相干代理可以生成转发请求。当相干代理接收到转发响应时,它检验未完成请求的当前状态以确定如何处理原始监听。归属代理可以发送转发响应来与完成(例如,CmpO或Data_*_CmpO)排序。相干代理可以使用监听中所包括的信息来帮助相干代理处理转发响应。例如,转发响应可能不包括任何“类型”信息且无RTID。转发响应的性质可以从自以前的监听获得的信息中得出。而且,当相干代理的所有“转发资源”都在等待转发响应时,相干代理可以阻止未完成的监听请求。在一些实现中,每个相干代理可以被设计成具有至少一个转发资源。
在一些实现中,通信构造需求是在路由层上。在一实施例中,HPI相关协议具有为路由层所特有的一个通信构造需求。相干协议可以取决于路由层来将扇出监听(SnpF*操作码-监听(SNP)信道消息)转换成针对相干代理的扇出集中请求的所有对等体的适当的监听。扇出集是路由层的由协议层所共享的配置参数。在该相干协议规范中,它被描述为归属代理配置参数。
在以上一些实现中,HPI相干协议可以使用虚拟信道中的四个:REQ、WB、SNP和RSP。虚拟信道可用于解开依赖性周期并避免死锁。在一实施例中,可以在所有虚拟信道上没有复制且RSP虚拟信道上没有排序要求的情况下,传递每个消息。
在一些实现中,通信构造可以被配置成在特定的完成消息和FwdCnfltO消息之间保留排序。完成消息是CmpO消息以及CmpO附着有(Data_*_CmpO)的任何数据消息。所有这些消息一起成为“有序完成响应”。有序完成响应和FwdCnfltO消息之间的概念要求在于FwdCnfltO不“通过”有序完成。更具体而言,如果归属代理发送有序完成响应其后是FwdCnfltO消息,且两个消息都去往同一个相干代理,则通信构造在FwdCfltO之前传递有序完成响应,还有其他可能示例。
应当理解,尽管这里公开了协议流的一些示例,但是所述的示例仅意图给出该协议的直觉,而不需要覆盖协议可能显示的所有可能的场景和行为。
当来自多于一个相干代理的到同一高速缓存行地址的请求出现在差不多相同时间,可能出现冲突。作为一具体示例,当一个相干代理的标准请求的监听到达一个对等体相干代理且具有到同一地址的未完成请求时,可能出现冲突。由于每个监听会在冲突中结束,因此单个请求可具有多个冲突。解决冲突可以是归属代理、相干代理和通信构造间的协调努力。然而,主要责任在于相干代理检测冲突的监听。
在一实施例中,归属代理、相干代理和通信构造可以被配置成帮助成功地解决冲突。例如,归属代理一次可仅对每地址一个请求具有未完成的监听,使得对于给定的地址,归属代理可仅对一个请求具有未完成的监听。这可用于排除包括两个请求彼此竞争的竞争条件的能力。它也可以确保在相干代理检测到冲突但尚未解决它之前,该相干代理不会看到另一个监听到达该同一地址。
在另一示例中,当相干代理以地址与活动标准请求相匹配来处理监听时,它可以分配转发资源并且将转发请求发送至归属代理。具有接收到同一地址的监听的未完成标准请求的相干代理可以以RspCnflt监听响应进行应答。该响应可以是到归属代理的转发请求。由于消息是请求,在发送它之前,相干代理可以分配资源以处理归属代理将发送的请求。(在一些实例中,当相干代理用尽转发资源时,相干协议允许阻止冲突的监听。)相干代理可以存储有关冲突监听的信息以便在处理转发请求时使用。在检测到冲突且直到处理转发请求之前,可以保证相干代理不看到另一监听到达同一地址。
在一些示例中,当归属代理接收到转发请求时,它不记录监听响应。相反,归属代理可以向冲突的相干代理发送转发响应。在一示例中,转发请求(RspCnflt)看上去像监听响应,但归属代理不将其视为监听响应。它不将该消息记录为监听响应,而是发送转发响应。具体而言,对于归属代理接收到的每一个转发请求(RspCnflt),它向作出请求的相干代理发送一个转发响应(FwdCftO)。
HPI通信构造对转发响应以及归属代理和目标相干代理之间的有序完成进行排序。因此,构造可用于将早期冲突与冲突的相干代理处的晚到冲突区分开来。从系统级的角度,早期冲突出现于对当前活动的请求的监听遇到归属代理尚未接收到或未开始处理的请求时,而晚到冲突出现于监听遇到它已处理的请求时。换言之,晚到冲突是与归属代理已向其发送完成响应的请求的冲突。由此,当归属代理接收到对晚到冲突的转发请求时,它会已将完成响应发送至冲突代理的未完成请求。通过对自归属代理到相干代理的转发响应和有序完成响应进行排序,相干代理可以通过处理其冲突请求的状态,来确定冲突是早期还是晚到。
当相干代理接收到转发响应时,它使用其冲突请求的状态来确定冲突是早期还是晚到,以及何时处理原始监听。由于通信构造的排序要求,因此冲突请求的状态指示冲突是早期还是晚到。如果请求状态指示已经接收到完成,则它是晚到冲突,否则,它是早期冲突。或者,如果请求状态表示该请求正在等待其(多个)响应,则它是早期冲突,否则,它是晚到冲突。冲突的类型确定何时处理监听:从相干代理的角度,早期冲突意指监听是针对在代理的冲突请求之前被处理的请求,晚到冲突意指监听是针对在代理的冲突请求之后被处理的请求。假定该排序后,对于早期冲突,相干代理立即处理原始监听;对于晚到冲突,相干代理等待直到冲突请求已接收到其数据(用于读取)且其处理器已经有机会在处理监听之前作用于已完成的请求。当处理冲突监听时,相干代理会生成监听响应供归属代理最终记录。
与写回请求的所有冲突可以是晚到冲突。自相干代理角度的晚到冲突是当代理的请求在监听的请求之前被处理时。根据该定义,与写回请求的所有冲突可以被视为晚到冲突,因为写回最先被处理。否则,如果归属代理打算在写回送交到存储器之前处理请求,则会违反数据一致性和相干性。由于与写回的所有冲突都被视为晚到冲突,因此相干代理可以被配置成阻止冲突的监听,直到未完成的写回请求完成为止。而且,写回也可以阻止转发的处理。在其他示例中,由活动写回来阻止转发可以被实现为用于支持不可高速缓存的存储器的协议要求。
当相干代理接收到监听其高速缓冲的请求时,它可以首先检验相干协议是否会允许它,然后它可以处理该监听并生成响应。可以在定义协议规范的一组状态表格中定义一个或多个状态表格。一个或多个状态表格可以指定相干代理何时可以处理监听以及它是否会监听高速缓存或替代地生成冲突转发请求。在一示例中,有两个条件,相干代理在这两个条件下处理监听。第一条件是当相干代理具有到监听地址的REQ请求(Rd*或Inv*)且它具有可用转发资源时。在该情况下,相干代理必须生成转发请求(RspCnflt)。第二条件是当相干代理不具有到监听地址的REQ、Wb*或EvctCln请求时。状态表格可以定义相干代理如何根据这两个相应的条件来处理监听。在一示例中,在其他条件下,相干代理可以阻止监听,直到或者转发资源变得可用(第一条件)、或者阻止Wb*或EvctCln接收到其CmpU响应(第二条件)为止。注意到,NonSnp*请求可能不影响监听处理,并且相干代理在确定如何处理或阻止监听时可以忽略NonSnp*条目。
当生成转发请求时,相干代理可以为转发请求保留资源。在一示例中,HPI相干协议可能不要求最小数量的转发响应资源(具有至少一个以上)并且可允许相干代理在没有转发响应资源可用时阻止监听。
相干代理如何处理其高速缓存中的监听可取决于监听类型和当前的高速缓存状态。然而,对于给定的监听类型和高速缓存状态,可能有许多所允许的响应。例如,具有接收非冲突SnpMigr(或在SnpMigr之后正在处理转发响应)的完全修改行的相干代理可以做以下之一:降级为S,发送隐式写回至归属代理以及发送Data_F至请求者;降级为S,发送隐式写回至归属代理;降级为I,发送Data_M至请求者;降级为I,发送隐式写回至归属代理以及发送Data_E至请求者;降级为I,发送隐式写回至归属代理;可能有其他示例。
HPI相干协议允许相干代理将带有部分掩码的已修改行存储于其高速缓存中。然而,对于M个副本的所有行可能要求完全(Full)或空(Empty)掩码。在一示例中,HPI相干协议可以限制部分行的隐式写回。由于监听请求(或转发响应)而希望驱逐部分M行的相干代理可以先发起显式写回并阻止监听(或转发),直到显式写回完成为止。
保存转发响应的信息:在一实施例中,HPI相干协议允许相干代理存储与外出请求缓冲器(ORB)分开的转发响应信息。分开信息允许ORB在所有响应都被收集时释放ORB资源和RTID,而不管冲突中所涉及的条目。状态表格可用于指定为转发响应存储什么信息以及在什么条件下存储。
HPI相干协议中的转发响应可包含地址、请求方代理的NID以及归属TID。它不包含原始监听类型或RTID。如果相干代理希望将转发类型和RTID用于转发响应,则相干代理可以存储转发类型和RTID,而且它可以使用地址来将传入转发响应与适当的转发条目相匹配(且用于生成归属NID)。存储转发类型可以是任选的。如果没有类型被存储,则相干代理可以将转发请求视为具有FwdInv类型。同样,存储RTID可以是任选的,并且可以在相干代理要在处理转发响应时支持高速缓存到高速缓存的传输时发生。
如上所述,相干代理可以在监听请求与未完成请求冲突时生成转发请求。转发请求瞄准生成监听的归属代理,监听可以从监听请求的地址确定。由此,destNID可以标识归属代理。转发请求也可以包括归属代理的为处理原始请求而分配的资源的TID、以及生成转发代理的相干代理的NID。
在一实施例中,相干代理可以阻止对写回请求的转发以维持数据一致性。相干代理也可以使用写回请求以在处理转发之前送交不可高速缓存的(UC)数据,并且可以允许相干代理写回部分高速缓存行而不是支持对转发的部分隐式写回的协议。实际上,在一实施例中,相干代理可被允许将带有部分掩码的修改行存储在其高速缓存中(尽管M个副本要包括完全或空掩码)。
在一示例中,在早期冲突被任何响应接收到之前,它可以通过转发响应遇到未完成的标准请求来解决。在一示例中,相应的协议状态表格可以指定,只要标准请求条目仍处于ReqSent状态,就可以处理转发响应。晚到冲突可以通过在未完成的请求已接收到其完成响应之后到达的转发响应来解决。当这发生时,或者该请求会已完成(已接收到其数据或是Inv*请求),或者该条目处于其RcvdCmp状态。如果请求仍在等待其数据,则相干代理必须阻止转发,直到数据被接收(并被使用)为止。如果冲突的Rd*或Inv*已完成,则只要相干代理未发起高速缓存行的显式写回,转发响应就可以被处理。可允许相干代理在具有到同一地址的转发响应(或监听请求)的同时发起显式写回,由此允许部分行(例如,对部分修改的行的监听请求)或不可高速缓存的存储器被适当地送交至存储器。
转至图7,示出了示例冲突管理方案的第一示例。第一高速缓存(或相干)代理705可以将对特定数据行的读取请求发送至归属代理710,导致对存储器715的读取。在高速缓存代理705的读取请求之后不久,另一高速缓存代理720作出对同一行的所有权(RFO)的请求。然而,在从高速缓存代理720接收RFO之前,归属代理710已将Data_S_CmpO(数据_S_CmpO)发送至第一高速缓存代理705。RFO可以导致监听(SnpFO)被发送至高速缓存代理705(以及其他高速缓存代理),在接收完整的Data_S_CmpO之前,监听被第一高速缓存代理705所接收。高速缓存代理705在接收到监听SnpO之后可以标识潜在冲突,潜在冲突涉及在其原始读取请求中所请求的存储器的行,并且可以通过用转发响应冲突消息(RspCnflt)响应于SnpO而向归属代理710通知该冲突。归属代理710可以通过发送转发响应(FwdCnfltO)来响应于转发响应RspCnflt。然后,高速缓存代理705可以接收共享数据完成Data_S_CmpO并且从I状态转换成S状态。转发响应FwdCnfltO然后可以被高速缓存代理705所接收,且高速缓存代理705可以基于触发了转发响应RspCnflt的发送的监听SnpFO来确定如何响应于转发响应消息FwdClfltO。在该示例中,高速缓存代理705可以查询例如协议状态表格,以确定对转发响应消息FwdClfltO的响应。在图7的特定示例中,高速缓存代理705可以转换至F状态并且将它在Data_S_CmpO消息中从归属代理710接收到的数据的S副本、在Data_F消息中发送至第二高速缓存代理720。第一高速缓存代理705还可以将响应消息RspFwdS发送至归属代理710,通知归属代理710第一高速缓存代理与第二高速缓存代理共享其数据副本。
在另一说明性示例中,在图8的简化流程图中所示,第一高速缓存代理705可以将对特定存储器行的所有权(RFO)的请求发送至归属代理710。不久后,第二高速缓存代理可以将RdInvOwn发送至归属代理710,作为对M状态中的同一存储器行的请求。连同来自第一高速缓存705的RFO消息,归属代理710可以将监听(SnpFO)发送至第二高速缓存代理720,第二高速缓存代理720将监听标识为潜在冲突,潜在冲突涉及该存储器行服从于RFO和RdInvOwn请求两者。因而,第二高速缓存代理720可以将转发请求RspCnflt发送至归属代理720。归属代理720用转发响应来响应于第二高速缓存代理720的转发请求。第二高速缓存代理720基于原始监听SnpFO中所包含的信息确定对该转发响应的响应。在该示例中,第二高速缓存代理720用监听响应RspI进行应答,监听响应RspI指示第二高速缓存代理720处于I状态。归属代理710接收监听响应RspI并且确定将数据完成独占(Data_E_CmpO)发送至第一高速缓存代理705是合适的,这使第一高速缓存代理转换成E状态。发送了完成之后,归属代理710于是可以开始响应于第二高速缓存代理的RdInvOwn请求,以第一高速缓存代理705的监听请求SnpInvO开始。第一高速缓存代理705可以标识该监听导致第二高速缓存代理720为获得行的独占M状态副本而作出的请求。因而,第一高速缓存代理705转换成M状态以将其行副本作为M状态副本(随着Data_M消息)发送至第二高速缓存代理720。此外,第一高速缓存代理705也发送响应消息RspFwdI以指示该行的副本已被发送至第二高速缓存代理720且第一高速缓存代理已被转换成I状态(将副本的所有权放弃给第二高速缓存代理720)。
接下来转至图9的示例,示出另一简化流程图。在该示例中,高速缓存代理720尝试在不接收数据(例如通过InvItoE消息)的情况下请求不可高速缓存的(UC)行的独占所有权。第一高速缓存代理705为E状态中的高速缓存行发送竞争消息(RdInv)。HPI相干协议可以指示如果所请求的行之前被高速缓存在M状态中,则在响应于第一高速缓存代理705的RdInv传递E数据之前,该行将被写入至存储器。归属代理710可以基于RdInv请求,将完成(CmpO)发送至InvItoE请求且将监听(SnpInv)发送至高速缓存代理720。如果高速缓存代理720在完成前接收到监听,则高速缓存代理720就可以标识该监听与其独占所有权请求关于同一个高速缓存行,并且通过转发请求RspCnflt来指示冲突。如在以前的示例中,归属代理710可以被配置成用转发响应(FwdCnfltO)响应于转发请求。可以对该转发响应允许多个可允许的响应。例如,高速缓存代理720可以发起显式写回(例如,WbMtoI)并且阻止监听(或转发)直到显式写回已完成(例如,CmpU),如图9的示例中所示。然后,高速缓存代理可以完成监听响应(RspI)。然后,在其他示例中,归属代理710可以处理第一高速缓存代理705的RdInv请求并且返回完成Data_E_CmpO。
在多个示例中,诸如图9的示例,其中,在高速缓存代理具有到同一地址的未完成的读取或无效请求且它已高速缓存了部分修改行(通常称为“埋葬(bury)的M”)时接收到监听的情况下,在一实现中,HPI相干协议允许代理或1)在阻止监听的同时执行行的显式写回(部分)、或2)发送转发请求(RspCnflt)至归属代理。如果选择了(1),则代理就在接收到写回完成之后处理监听。如果选择了(2),则代理可能会在其未完成的读取或无效请求仍在等待响应的同时接收到转发响应(FwdCnfltO),且代理仍具有部分修改行。如果是该情况,则协议允许代理在执行行的显式写回(部分)的同时阻止转发。在写回期间,协议保证代理不会接收到对未完成的读取或无效请求的响应。上述机制(即使在代理具有未完成的读取或无效请求时,允许相干代理发出显式的写回并阻止监听和转发)也用于确保部分或UC写入在写入者获得全局可观察性之前被送至存储器。
相干代理针对部分/UC请求使用两步骤过程。首先,它们检验它们是否具有高速缓存行的所有权,并且如果没有则在协议中发出所有权(无效)请求。其次,它们执行写入。在第一步骤中,如果它们执行了所有权请求,则请求可能与其他代理对该行的请求冲突,意味着代理可能在所有权请求未完成的同时接收到监听。按相关协议要求,代理将发出冲突监听的转发请求。在等待转发响应时,代理可能接收到所有权请求的完成,这将该行的所有权许可给该代理并且允许代理发起对部分/UC写入的写回。在此发生时,代理可能接收到转发响应,它被强制处理该转发响应。相干代理可能不组合这两个活动。相干代理替代地将写回部分/UC写入数据与转发的处理分开,并且首先执行写回。例如,高速缓存代理可以在处理转发和写回部分高速缓存行之前,使用写回请求来送交UC数据,还有其他示例和特征。
在一实施例中,HPI相干协议可以支持接受独占状态数据的读取无效(RdInv)请求。不可高速缓存的(UC)读取的语义包括将已修改的数据冲刷至存储器。然而,一些体系结构允许将M数据转发至无效的读取,无效的读取强制请求方代理在其接收到M数据的情况下清除该行。RdInv简化了流程且不允许转发E数据。例如,如图的10的示例所示,归属代理710的目录状态可以表示没有代理(例如705、710)具有该行的副本。在这种实例中,归属代理710可以立即发送数据和完成响应。如果有效的目录状态指示没有对等体具有该行的副本,HPI也允许同样地立即发送数据和完成响应。
如图10的示例所示,在一些实现中,代理可以用RspIWb消息响应于监听,表示高速缓存代理(例如705)在请求对存储器的写入的同时处于(或被转换至)I状态。RspIWb可以将有效的目录状态设置为无效(Invalid),并且允许归属代理710在不监听所有对等体的情况下发送响应。在图10的示例中,第二高速缓存代理720在归属代理目录处于未知(Unknown)状态时发送RdInv请求。作为响应,归属代理710最初仅监听第一高速缓存代理705。在该示例中,高速缓存代理705具有行的已修改副本,并且用隐式写回(例如RspIWb)进行响应。当归属代理(Home)接收到RspIWb消息时,可以确定没有其他代理会具有该行的副本,并且可以进一步标识高速缓存代理705已经通过RspIWb无效了其高速缓存。作为响应,归属代理710可以将目录状态设为无效(Invalid)。由于目录状态为无效,因此归属代理710等待直到至存储器715的写入完成,然后发送数据和完成响应(例如Data_E_CmpO)并释放它为来自高速缓存代理720的请求分配的资源。在该示例中,归属代理可以跳过系统中其他高速缓存代理的监听。实际上,在这种示例中,如图11所示的示例中所示(用高速缓存代理1105),归属代理(例如710)可以在接收到所有监听响应(例如,由于代理705处M副本的标识)之前,发送数据和完成响应。
在图10和11的示例中,当第二高速缓存代理720自归属代理710接收到Data_E_CmpO响应时,高速缓存代理720可以将数据加载至其高速缓存中、将其高速缓存状态设置为E、并且释放它为请求分配的资源RTID。在释放RTID之后,高速缓存代理720可以为新请求重新使用它。与此同时,归属代理710可以等待针对对到原始使用RTID的请求的监听的监听响应。监听消息可以包含请求的RTID和请求方代理的NID。由此,由于高速缓存代理720会为了到相同或不同归属代理的新请求重新使用该RTID,且该归属代理会在对原始请求的监听未完成的同时为新请求生成监听,因此同一个“唯一”事务ID会存在于到相同相干代理的多个监听中。从相干性的角度,事务ID(TID)的该复制仍是可接受的,因为对原始请求的监听仅找到ID状态。
归属代理可以在请求的跟踪状态是等待(Wait)、繁忙(Busy)或DataXfrd时生成监听,意味着或者归属代理尚未发送数据响应、或者监听响应表示一些对等体将数据转发至请求方代理。归属代理也可以检验请求的监听(Snoop)字段以确保它尚未发送监听之对等体。当发送监听时,归属代理可以将对等体(或所有扇出对等体)添加至监听(以防止发送第二监听)并且跟踪未完成的监听响应。
如上所述,HPI的一些实现可以支持扇出监听。此外,在一些示例中,HPI可以对于路由层所生成的扇出监听支持显式的扇出监听操作SnpF。HPI归属代理(例如710)可以使用SnpF来生成单个扇出监听请求(例如,用单个命令和消息),并且作为响应,路由层可以基于SnpF请求生成对相应的扇出锥形中的所有对等体代理的监听。归属代理可以相应地预期来自每一个代理扇区的监听响应。尽管其他监听消息可包括目的地节点ID,但是扇出监听可以省略目的地NID,因为路由层负责生成到扇出区域中的所有对等体的适当监听消息。
在一些实现中,由于路由层就在协议层下面,通信构造要求作用于路由层。在一实施例中,HPI相干协议可以具有对于路由层专用的一个通信构造要求。例如,相干协议可以依赖于路由层来将一扇出监听(SnpF*操作码-监听(SNP)信道消息)转换成对于高速缓存代理的扇出集合中所有请求的对等体的适当监听。扇出集合是路由层的由协议层所共享的配置参数,或是归属代理配置参数。
在一些实现中,归属代理可以发送对活动标准请求的扇出监听。HPI路由层可以将归属代理的扇出监听请求转换成路由层所定义的扇出锥形中的每一个对等体。HPI相干协议归属代理经由HAFanoutAgent配置参数知道哪些相干代理被路由层扇出所覆盖,HAFanoutAgent配置参数按地址标识了扇出锥形中所包括的相应的高速缓存代理。路由层可以接受扇出监听SnpF并且将其转换成扇出锥形中所包括的每一个高速缓存代理(除请求方代理以外)的监听。在一实现中,在其他示例中,路由层可以将扇出监听转换成相应的非扇出监听(具有适当的非扇出操作码,诸如表3所示的那些)。
类似于规则监听,归属代理可以被限制为仅在它发送对高速缓存代理作出的相干协议请求的完成响应之前发送扇出监听。而且,附加条件可以置于扇出监听上。例如,如果归属代理未个别地监听扇出锥形中的任一对等体,则归属代理可以发送扇出监听。换言之,在其他示例中,在一些实现中,如果扇出锥形为空或如果请求方高速缓存代理是扇出锥形中仅有的代理,则归属代理可能不发起扇出监听。
在一实施例中,HPI可以支持具有高速缓存推提示(WbPushMtoI)的显式写回。通常,在一些示例中,已修改的数据可以通过或者将数据显式地写回存储器、或者响应于监听请求而传输已修改的数据来传输。连同监听响应来传输已修改的数据可以被视为“拉”传输。在一些实现中,也可以支持“推”机制,借此,具有修改数据的高速缓存代理将该修改数据直接发送至另一高速缓存代理,用于存储于目标代理的高速缓存中(与修改的(Modified)高速缓存状态一起)。
在一实施例中,高速缓存代理可以将已修改数据连同一提示写回归属代理,且暗示它可以将已修改数据推至“本地”高速缓存,将数据存储于本地高速缓存中的M状态中,而不将数据写至存储器。在一实现中,归属代理710可以自高速缓存代理705接收WbPushMtoI消息,并且标识另一高速缓存代理(例如720)可能在不久的将来使用或期望特定行的所有权的暗示,如图12的示例所示。归属代理710可以处理WbPushMtoI消息并且有效地接受该暗示并把写回数据推至其他高速缓存代理720,而不将数据写至存储器715,从而使该另一高速缓存代理720转换至M状态。在一些实现中,归属代理710可以交替地处理WbPushMtoI消息和操作数以将数据写回存储器,如在WbMtoI请求(如图13所示)中,并且不将写回数据直接推至该另一高速缓存代理720。
在一示例实现中,归属代理(例如710)可以通过检验跟踪状态为WbBuffered来处理WbPushMtoI消息,跟踪状态为WbBuffered可以表示归属代理尚未处理数据。在一些实例中,数据“推”的条件可以是归属代理确定归属代理还未处理到同一地址的标准请求。在一些实现中,推的条件还可以是归属代理确定目标高速缓存代理(例如,在图12的示例中是720)是“本地”。如果目标高速缓存代理不被归属代理目录所覆盖,则归属代理可以将数据传输至目标高速缓存代理的高速缓存并且将目录更新为无效(Invalid)。如果目标高速缓存代理被目录所覆盖,则只有在目标高速缓存不具有活动InvXtoI时允许到高速缓存代理的高速缓存的数据传输,且在被传输时,归属代理可以将目录更新为独占(Exclusive),以目标高速缓存代理作为所有者。在其他可能的示例中,对于归属代理确定是否要接受WbPushMtoI消息的暗示并将数据推至目标高速缓存代理,还是取而代之通过将数据写至存储器来处理WbPushMtoI消息作为WbMtoI请求,可以定义其他条件(例如,在相应的协议状态表格中)。
在一些实现中,HPI可以支持InvItoM消息以预分配至归属代理的目录高速缓存,诸如I/O目录高速缓存(IODC)。InvItoM可以在不接收数据的情况下请求高速缓存行的独占所有权,而同时指示马上要执行写回的意图。所要求的高速缓存状态可以是M状态和E状态,或是任一个。归属代理可以处理InvItoM消息以便为通过InvItoM消息暗示的写回分配资源(包括InvItoM操作码)。
在一些实现中,操作码可以通过HPI相干协议被提供以触发存储器控制器的存储器冲刷,一个或多个归属代理与该存储器控制器交互。例如,可以为永久存储器冲刷定义操作码WbFlush。如图14的示例中所示,主机(例如1405)可以发送定向至特定存储器控制器1410的WbFlush消息。在一些实例中,WbFlush可以指示特定地址,WbFlush命令可以被发送至按地址瞄准的具体存储器控制器。在另一示例中,WbFlush消息可以被广播至多个存储器控制器。在一示例中,可以作为CPU中永久送交的结果而发送t。接收WbFlush命令的每个相应的存储器控制器(例如,1410)可以处理该消息,以使存储器控制器处的所有未决的写入至该存储器控制器所管理的永久存储器设备(或存储器位置)。命令的目的可以是将所有以前的写送交至永久存储器。例如,可以连同电力故障管理控制器或过程来触发WbFlush命令,以确保未决写入被冲刷至非易失性存储器并且在系统的电力故障时被保存。而且,如图14的示例所示,在将所有未决写入冲刷(或发起它们的冲刷)至存储器(例如,1415)后,存储器控制器1410可以用指示该冲刷的完成来响应于请求方主机(或代理)(例如,1405)。该完成不应被发送至主机,直到存储器控制器已确保数据将使其发送至永久存储器。在其他用途和示例中,WbFlush消息或相应的完成可以充当其他过程和控制器的检验点,这取决于或驱动未决写入到存储器的冲刷。
一些传统的体系结构可以要求分开地发送Data_M和相应的完成。HPI可以被扩展为具有接受组合的Data_M_CmpO的相干代理支持。而且,归属代理可以被配置成经由缓冲隐式写回数据而生成组合的Data_M_CmpO消息。实际上,在一些实现中,可以向代理提供将高速缓存和归属代理行为相组合的逻辑,使得当代理接收请求并在其高速缓冲中找到M数据时,代理可以直接生成Data_M_CmpO。在这些实例中,在其他示例中,可以在不生成RspIWb或缓冲写回数据的情况下,生成Data_M_CmpO响应。
在另一示例中,如图15所示的示例协议状态表格1500所示,状态机(由机器可读状态表格(例如1500)体现)可以定义归属代理可以在标准请求的跟踪条目被标识为处在Busy或WbBuffered状态时发送的各种可能的响应消息。在一示例中,如表格1500所示,归属代理可能不被允许发送CmpO完成消息到来自任一状态的读取Rd*请求,这有效地意指归属代理要在完成响应之前或随完成响应一起发送数据响应。在Data_X响应可以在归属代理响应消息中被发送的情况下,归属代理可以将数据响应与完成组合,并且替代地发送它。
数据响应的状态可以对于无效请求和RdCur是固定的。对于RdMigr和RdData,非共享目录状态可以允许发送E数据。对于RdMigr、RdData和RdCode,共享的(Shared)目录状态可以涉及检验可能具有F状态的所有对等体是否已被监听。如果是,则数据可以在F状态中被发送;否则,在其他可能的示例,在未监听的对等体具有F副本的情形中,数据可以在S状态中被发送。而且,在一些实现中,只有在归属代理缓冲了来自RspIWb监听响应的数据时,归属代理才可以发送Data_M或Data_M_CmpO响应。当归属代理缓冲RspIWb数据时,它可以将数据存储在跟踪条目中,并将该条目的状态改变为WbBuffered。注意,在该示例中,如果归属代理缓冲RspIWb数据而不是将其写入至存储器,它就发送Data_M或Data_M_CmpO响应。
在一实施例中,如上所述,HPI相干协议可以支持F状态,F状态允许高速缓存代理在转发共享数据时保持F状态。在一些系统或实例中,F(转发)高速缓存状态可以是自身可转发的。当高速缓存将行保持在F状态中且接收允许传输共享数据的监听时,高速缓存可以转发该数据,当它这么做时,它可以发送F状态与数据,并将其高速缓存状态转换成S(或I)。在一些情况下,可能期望高速缓存在转发数据时反而保持F状态,在该情况下,它会连同所转发的数据一起发送S状态。
在一个示例中,高速缓存代理在共享传输上保持或传递F状态的能力可以是可控的。在一示例中,按相干代理的配置参数可以指示相干代理是否将传输或保持为F状态。不考虑参数设置,相干代理可以使用相同的监听响应(例如,RspFwdS)。在当监听到达时代理具有行在F状态中的附加情况下,高速缓存代理可以在转发S数据和发送RspFwdS响应时(当参数被设为保持F状态时),将其高速缓存状态转换成F。在监听到达时代理具有行在M(完全)状态中的附加情况下,高速缓存代理可以在转发S数据、将数据写回至存储器以及发送RspFwdSWb响应时(当参数被设为保持F状态时),将其高速缓存状态降级为F。而且,具有F状态的接收“共享”监听或在这一监听之后转发的相干代理可以在将S状态发送至请求方代理的同时,保持F状态。在其他实例中,配置参数可以被套牢(toggle),以允许F专题在共享数据的传输中被传输并且转换至S(或I)状态,还有其他示例。实际上,如图16的示例状态表格所示,F状态中的高速缓存代理可以以各种方式响应,包括SnpMigr/FwdMigr、F、F、RspFwdS、Data_S等等其他示例。
如上所述,在一些实现中,高速缓存行和代理的状态转换可以使用状态机来管理。在一实现中,状态机还可体现为状态表格的集合或库,状态表格已被定义为详细说明可影响状态转换如何发生的命令、属性、以前状态及其他条件的所有各种组合、以及可以与状态转换相关联的消息类型、数据操作、掩码等(诸如图15和16的特定示例中所示)。每个状态表格可对应于动作或状态的一个特定的动作或类别。表格集合可以包括多个表格,每个表格对应于一个特定的动作或子动作。表格集合可以体现协议的正式规范,诸如HPI的相干协议或另一协议(处于栈层的任一层)。
状态表格可以是人类可读的文件,诸如可以通过人类用户使用端点计算机设备与状态表格结构而容易地解释和修改和开发的表格结构。其他用户可以使用状态表格以容易地解释相干协议(或HPI的任何其他协议)内的状态转换。而且,状态表格可以是机器可读的和可解析结构,该结构可由接收机读取和解释以标识状态如何根据特定的协议规范而转换。
图17示出动作“动作A”的概括状态表格的简化表示。在一示例中,协议表格1700可包括关于当前状态(即,要自其作出转换的状态)的多个列(例如1705)以及关于下一状态(即,要转换至的状态)的其他列(例如1710)。当前状态列中的列可以对应于状态的各个特征,诸如自响应消息、监听消息或其他消息中接收到的命令、高速缓存行状态、外出请求缓冲器(ROB)条件、要应用/保留的信用或资源、高速缓存行是否被部分修改、转发条件等等。表格1700中的每一行可对应于特定状态下高速缓存行的一组已检测条件。而且,下一状态列(例如,1710)内的行的单元可以基于当前状态列(例如,1705)中的行单元中指定的当前状态条件,来指示要进入的下一状态以及该下一状态的条件。下一状态列(例如,1710)可以对应于下一状态中的条件,诸如要发送(例如,发送至相应的归属节点(HNID)、作出请求的节点(RNID)、对等体节点等)的消息、下一高速缓存行状态、转发状态等等。
在一实施例中,协议状态表格可以使用行跨度来指示多个行为或状态(行)等效地可允许当前状态条件的特定集合。例如,在图17的示例中,当命令为Cmd1、第一条件为错误、高速缓存行在第二状态、且第二条件也错误时(如行1715所指示),多个可能的下一状态条件是可能的并且可能同等可允许,每个由一个相应的行来指示。换言之,这种同等可允许转换的任一个可以基于相应的当前状态条件被触发。在一些实现中,附加代理逻辑可以选择要选择多个下一状态中的哪一个,还有其他示例实现。在一个说明性示例中,对应于归属代理发送请求响应的状态表的当前状态部分可以包括多个条件(或输入和状态保护),多个条件包括相干代理在代理将完全M行保持在其高速缓存中且正在处理到同一高速缓存行的SnpMigr时要执行的所有有效行为。表格行可以对应于五个不同的且同等可允许的下一状态行为,这些下一状态行为是相干代理可以响应于当前状态条件而采取的,还有其他示例。
在其他系统中,偏移位可以被包括在协议状态表格中,在那里多个可能的下一状态或条件对于特定的当前状态是可能的。例如,在QPI中,“偏移”位被包括在表格中作为在多个行为之间进行选择的机制。这种偏移位可主要地用于协议的状态机的确认期间,但这种偏移位引入了附加的复杂度,且在一些情况下,引入不熟悉偏移位效用的混淆。在某些方面,偏移位可以仅仅是确认工作的伪像。在HPI的一个示例中,通过使用可能跨多个行的多行的协议表格,可以排除偏移位和其他特征。在这种实例中,HPI协议表格可以强调显式的非确定。
转至图18的示例,在一实施例中,协议表格可能通过使一个表格在“下一状态”列中指向另一子表格来嵌套,所嵌套的表格可具有附加的或更细的保护来指明哪些行(行为)被允许。如图18所示,示例协议状态表格1700可包括到另一表格1800的嵌套引用1805,另一表格1800被包括于体现协议规范的表格集合中,诸如关于子动作的状态表格,子动作与为表格1700的特定行指明的下一状态中所包括的动作或行为。多个表格(例如,1700、1800)可以引用嵌套表格(例如,1800)。作为示例,处理对协议响应的传入响应的代理可以遵循动作表格(例如,1700、1810)和子动作表格1800。这里,动作表格1700可包括下一状态,其中子动作表格嵌套于一个或多个其他协议表格之下。这类嵌套可以应用超出相干协议和协议层状态表格,但也可应用于任何已知的或将来的协议响应/表格。
在一示例中,代理可以利用协议表格(或自协议表格构造的另一可解析结构)并且可以标识与特定动作或事件相对应的特定状态表格。而且,代理可以标识应用于由该代理处理或瞄准的高速缓存行的行,并且自表格标识该高速缓存行的下一状态信息。该确定可以包括标识到子动作的嵌套表格的引用。因而,代理可以标识连接的嵌套表格的相应结构,并且进一步引用嵌套表格以确定状态转换。
在一个特定示例中,协议表格的共同集合可被定义,并且表示协议中的所有的可能的、已定义的状态转换。而且,每个表格可以指定覆盖协议内的一组相关行为的一组转换(例如,一个表格覆盖了监听和高速缓存状态中所涉及的所有行为,一个表格覆盖了生成新请求的所有行为,等等)。当代理要执行行为、处理事件或检验是否应采取某一其他动作时,代理可以在状态表格集合内标识覆盖该特定行为的特定状态表格。然后,代理可以标识系统的当前状态并且引用所选择的状态表格以标识与当前状态相匹配的行或一组行(如果有的话)。如果没有行是匹配的,则在一些实例中,代理可以避免为给定的当前状态采取任何动作,并且等待某一其他事件/行为在重试前改变状态。而且,在一些实例中,如以上介绍的,如果多于一个行与所标识的系统状态相匹配,则代理可以选择它们中的任一个来执行,因为它们全部都可以被视为同等可允许的。而且,在嵌套的情况下,如果行是指嵌套表格,则代理可以访问该嵌套表格并且使用所标识的系统的当前状态来搜索嵌套表格中的所允许行。
在一些示例中,在遍历任何主要和嵌套表格以确定对特定已标识系统(或协议)状态的响应之后,代理可以根据响应状态表格中指定的“下一状态”来执行相应动作和更新系统状态。
在一些实例中,可能有多于一个状态表格关于或覆盖一组行为。例如,作为说明性的示例,为处理监听可以提供两个表格,第一个表格用在存在冲突的活动请求时,第二个表格用于没有冲突的活动请求时。因而,在一些实现中,代理可以调查多个表格以确定哪个表格包括与代理所标识的特定条件和状态有关的行。而且,在一些情况下,代理可以处理同时出现的两个不相关或不同的事件,诸如归属代理同时接收监听响应和新请求的示例。在多个事件被处理的情况下,代理可以同时标识和使用多个相应的表格以确定如何处理事件。
现在转至图19和20,示出用于确认协议的至少一部分的测试或确认环境的示例的简化框图1900、2000。例如,在图19的示例中,提供适于确认协议的状态机的测试引擎1900。例如,在一示例中,测试引擎1900可以包括或基于Murphi工具或另一枚举(明确状态)模型检验器的原理,还有其他示例。例如,可以代替上述Murphi示例而使用其他规范语言,作为另一示例,规范语言包括TLA+或另一适当的语言或格式。在传统的系统中,状态模型检验器已由开发人员所构造,该开发人员尝试将状态机(例如,来自随附的状态表格等)转换成一组要求,该组要求然后用于生成能检验状态机的检验器。这不仅仅是一般的人力和资源密集的过程,而因为状态表格的状态和状态转换由人类用户转录和解释而引入人类误差。
在一实现中,测试引擎1900可以使用一组状态表格(例如,1905)来从该组状态表格中自动生成资源以在一测试环境中建模代理的行为。例如,在图19的示例中,测试引擎1900可以使用状态表格1905作为用于建模高速缓存代理或其他代理(例如,1910)的功能引擎,该高速缓存代理或其他代理可用于通过对其他实时或被仿真代理(包括归属代理1915)仿真请求和响应(例如,1912)来确认各个状态转换。类似地,如图20的示例中所示,测试引擎1900可以使用状态表格1905来仿真归属代理(例如,1920)的请求和响应(例如,1918),并且与其他实时或被仿真代理(例如,1925)相接口以进一步确认和枚举协议的状态。例如,测试引擎1900可以建模一代理,并且接收实时或建模的协议消息,诸如HPI相干协议消息,并且引用状态表格1905(或自状态表格1905生成的另一可解析结构)以基于状态表格1905自动生成适当的响应、执行相应的状态转换等等。
在一个特定实现中,测试引擎或者其他基于软件或基于硬件的工具可用于使用状态表格(例如,1905)来生成代码以驱动或反应于采用特定协议的设计,特定协议诸如HPI相干协议。在该特定示例中,通过将状态表格或所包括的伪代码连同表格值和伪代码元素的Murphi映射转换成适当的Murphi规则和过程格式,状态表格可以被用作测试引擎的输入。测试引擎可用于进一步生成用于类型定义和支持功能的Murphi代码。Murphi规则、过程、类型和支持代码可用于生成Murphi模型。例如,Murphi模型可以使用转换器来转换成C++或其他类定义。实际上,可以使用任何适当的编程语言。可以生成该模型类的多个子类,这些模块可用于充当采用了状态表格中体现的协议规范且对齐于该协议规范的代理的被仿真或测试平台版本。而且,可以生成或以其他方式提供内部API,内部API对齐于协议状态表格中所定义的消息生成和消息接收。例如,协议消息生成API可被捆绑于链路分组类型,消息接收可以在单个接口点下统一。在该示例中,整个正式协议规范可以被转换成C++(或其他面向对象的编程语言)类。继承可用于拦截所生成的消息,继承类的实例可以被创建作为(多个)功能测试平台代理。通常,正式规范表格可用作用于确认或测试环境工具的功能引擎,而不是使多个开发者基于它们对规范的解释而分开地创建其自身的工具。
HPI可以被结合于任何种类的计算设备和系统中,包括大型机、服务器系统、个人计算机、移动计算机(诸如平板电脑、智能电话、个人数字系统等)、智能设备、游戏或娱乐控制台和机顶盒等其他示例。例如,参照图21,描述了用于包括多核处理器的计算系统的框图的实施例。处理器2100包括任何处理器或处理设备或用于执行代码的其他设备,处理器或处理设备诸如微处理器、嵌入式处理器、数字信号处理器(DSP)、网络处理器、手持处理器、应用处理器、协处理器、芯片上系统(SOC)。在一实施例中,处理器2100包括至少两个核――核2101和2102,核可以包括不对称的核或对称的核(所示实施例)。然而,处理器2100可以包括可以对称或非对称的任何数量的处理元件。
在一实施例中,处理元件是指支持软件线程的硬件或逻辑。硬件处理元件的示例包括:线程单元、线程槽、线程、处理单元、上下文、上下文单元、逻辑处理器、硬件线程、核和/或任何其他能够保持处理器的状态的元件,处理器的状态诸如执行状态或架构状态。换言之,在一实施例中,处理元件是指能够与代码独立相关联的任何硬件,代码诸如软件线程、操作系统、应用或其他代码。物理处理器(或处理器插槽)一般是指集成电路,集成电路可能包括任何数量的其他处理元件,诸如核或硬件线程。
核通常是指位于能够维持独立架构状态的集成电路上的逻辑,其中每个独立维持的架构状态与至少一些专用执行资源相关联。与核相反,硬件线程一般是指位于能够维持独立架构状态上的任何逻辑,其中独立维持的架构状态共享对执行资源的访问。如图所示,当特定的资源被共享而其他资源专用于架构状态时,硬件线程的命名和核之间的线重叠。但往往,核和硬件线程被操作系统视为个别的逻辑处理器,其中操作系统能够个别地调度每个逻辑处理器上的操作。
如图21所示,物理处理器2100包括两个核――核2101和2102。这里,核2101和2102被视为对称核,即具有相同配置、功能单元和/或逻辑的核。在另一实施例中,核2101包括无序处理器核,而核2102包括有序处理器核。然而,核2101和2102可以从任何类型的核中个别地选择,诸如本机核、软件管理的核、适用于执行本机指令集架构(ISA)的核、适用于执行经转换指令集架构(ISA)的核、共同设计的核或其他已知核。在异构核环境(即,非对称核)中,可以使用一些形式的转换(例如二进制转换)来在一个或两个核上调度或执行代码。为了进一步讨论,下面进一步详细描述了核2101中所示的功能单元,核2102中的单元在所述实施例中以类似方式操作。
如图所述,核2101包括两个硬件线程2101a和2101b,它们也可以被称为硬件线程槽2101a和2101b。因此,在一实施例中,诸如操作系统的软件实体可能将处理器2100视为四个分开的处理器,即能够同时执行四个软件线程的四个逻辑处理器或处理元件。如以上所提到的,第一线程与架构状态寄存器2101a相关联,第二线程与架构状态寄存器2101b相关联,第三线程可与架构状态寄存器2102a相关联,第四线程可与架构状态寄存器2102b相关联。这里,架构状态寄存器(2101a、2101b、2102a和2102b)的每一个可以被称为处理元件、线程槽或线程单元,如下所述。如图所示,架构状态寄存器2101a在架构状态寄存器2101b中被复制,因此个别的架构状态/上下文能够针对逻辑处理器2101a和逻辑处理器2101b被存储。在核2101中,也可以为线程2101a和2101b复制其他较小的资源,诸如分配器和重命名器块2130中的指令指针和重命名逻辑。可以通过分区来共享一些资源,诸如重排序/隐退单元2135中的重排序缓冲器、ILTB 2120、负载/存储缓冲器以及队列。其他资源可能被完全共享,其他资源诸如通用内部寄存器、页表基础寄存器、低级数据高速缓存和数据TLB 2151、执行单元2140以及无序单元2135的部分。
处理器2100通常包括其他资源,其他资源可以被完全共享、通过分区被共享、或者由/对处理器元件专用。在图21中,示出具有处理器的示意性逻辑单元/资源的纯示例性处理器的实施例。注意到,处理器可包括或省略这些功能单元的任何,以及包括任何其他未图示的已知功能单元、逻辑或固件。如图所示,核2101包括简化的代表性的无序(OOO)处理器核。但在不同的实施例中可以使用有序处理器。OOO核包括用于预测要被执行/采取的分支的分支目标缓冲器2120和用于存储指令的地址转换条目的指令转换缓冲器(I-TLB)2120。
核2101还包括耦合至取回单元2120以便对取回的元素进行解码的解码模块2125。在一实施例中,取回逻辑包括分别与线程槽2101a、2101b相关联的个别定序器。通常,核2101与第一ISA相关联,第一ISA定义/指定处理器2100上可执行的指令。通常,作为第一ISA一部分的机器码指令包括一部分指令(称为操作码),该部分指令引用/指定要被执行的指令或操作。解码逻辑2125包括用于从它们的操作码中认出这些指令并且在管线上传递经解码的指令用于如第一ISA所定义那样处理的电路。例如,如以下更详细讨论的,在一实施例中,解码器2125包括被设计或适配成认出特定指令(诸如事务指令)的逻辑。作为解码器2125的辨认结果,架构或核2101采取特定的、预定义的动作来执行与适当指令相关联的任务。注意以下是重要的:这里描述的任何任务、块、操作和方法可以响应于单个或多个指令而执行;一些指令可以是新指令或旧指令。注意到,在一实施例中,解码器2126认出相同的ISA(或其子集)。或者,在异构核环境中,解码器2126认出第二ISA(或是第一ISA的子集,或是不同的ISA)。
在一示例中,分配器和重命名器块2130包括分配器以保留资源(诸如寄存器文件)以存储指令处理结果。然而,线程2101a和2101b可能能进行无序执行,其中分配器和重命名器块2130也保留其他资源,诸如用于跟踪指令结果的记录器缓冲器。单元2130也可以包括寄存器重命名器以便将程序/指令引用寄存器重命名为处理器2100内部的其他寄存器。记录器/隐退单元2135包括组件以支持无序执行以及无序执行的指令的稍候有序隐退,组件诸如上述记录器缓冲器、负载缓冲器以及存储缓冲器。
在一实施例中,调度器和执行单元块2140包括调度器单元以便在执行单元上调度指令/操作。例如,浮点指令在执行单元的一部分上被调度,该部分具有可用的浮点执行单元。也包括与执行单元相关联的寄存器文件以存储信息指令处理结果。示例性的执行单元包括浮点执行单元、整数执行单元、跳跃执行单元、负载执行单元、存储执行单元以及其他已知的执行单元。
较低级的数据高速缓存和数据转换缓冲器(D-TLB)2150被耦合至(多个)执行单元2140。数据高速缓存用于存储元件上最近使用/操作的诸如数据操作数,数据操作数可能被保持在存储器相干性状态中。D-TLB用于存储最近的虚拟/线性到物理的地址转换。作为一具体示例,处理器可以包括页表结构以将物理存储器分成多个虚拟页。
这里,核2101和2102共享对较高级或更高级高速缓存的访问,诸如与芯片上接口2110相关联的第二级高速缓存。注意到,较高级或更高级是指自(多个)执行单元提升或进一步提升的高速缓存级别。在一实施例中,较高级的高速缓存是最后级数据高速缓存-处理器2100上存储器分层结构中的最后高速缓存,诸如第二或第三级数据高速缓存。然而,较高级高速缓存不限于此,因为它可以与指令高速缓存相关联或者包括指令高速缓存。取而代之,痕迹高速缓存(一类指令高速缓存)可以耦合在解码器2125之后以存储最近解码的痕迹。这里,指令可能是指宏指令(即,解码器所认出的通用指令),宏指令可以解码为许多微指令(微操作)。
在所述配置中,处理器2100还包括芯片上接口模块2110。历史上,处理器2100外部的计算机系统中已经包括了存储器控制器,以下更详细地描述存储器控制器。在该场景下,芯片上接口2110用于与处理器2100外部的设备通信,诸如系统存储器2175、芯片集(通常包括用于连接至存储器2175的存储器控制器中枢以及用于连接外围设备的I/O控制器中枢)、存储器控制器中枢、北桥或其他集成电路。在此场景中,总线2105可以包括任何已知的互连,诸如多点总线、点对点互连、串行互连、并行总线、相干(例如,高速缓存相干)总线、分层协议架构、差分总线以及GTL总线。
存储器2175可以对处理器2100专用,或者与系统中的其他设备共享。存储器2175的常用类型示例包括DRAM、SRAM、非易失性存储器(NV存储器)以及其他已知存储设备。注意到,设备2180可以包括图形加速器、耦合至存储器控制器中枢的处理器或卡、耦合至I/O控制器中枢的数据存储器、无线收发机、快闪设备、音频控制器、网络控制器或其他已知设备。
然而最近,随着更多的逻辑和设备被集成于单个芯片(诸如SOC)上,这些设备的每一个可以被结合于处理器2100上。例如,在一实施例中,存储器控制器中枢与处理器2100在相同的包和/或芯片上。这里,核的一部分(核上部分)2110包括一个或多个控制器,用于与诸如存储器2175或图形设备2180等其他设备相接口。包括互连以及用于与这些设备相接口的控制器在内的配置通常被称为核上(即,非核(un-core)配置)。作为一示例,芯片上接口2110包括用于芯片上通信的环形互连以及用于芯片外通信的高速串行点对点链路2105。在SOC环境中,可以在单个芯片或集成电路上集成甚至更多的设备(诸如网络接口、协处理器、存储器2175、图形处理器2180以及任何其他已知的计算机设备/接口)以便以高功能和低功耗来提供小的形状因子。
在一实施例中,处理器2100能够执行编译器、优化和/或转换器代码2177以编译、转换和/或优化应用码2176,以支持这里所述的装置和方法或者与这里所述的装置和方法相接口。编译器通常包括将源文本/代码转换成目标文本/代码的程序或程序集。通常,用编译器对程序/应用码所作的编译在多个阶段中被完成,并且多次通过以将高级编程语言代码转换成低级机器或汇编语言代码。然而,对于简单编译仍可利用单通编译器。编译器可以使用任何已知的编译技术并且执行任何已知的编译器操作,诸如词法分析、预处理、解析、语义分析、代码生成、代码转换以及代码优化。
较大的编译器通常包括多个阶段,但通常这些阶段被包括于两个通用阶段:(1)前端,即,一般是词法处理、语义处理及一些转换/优化所发生的阶段;以及(2)后端,即,一般是分析、转换、优化和代码生成所发生的阶段。一些编译器适用于中间,说明编译器的前端和后端之间的划分是模糊的。结果,编译器的插入引用、关联、生成或其他操作可以发生于任一上述阶段或通过中、以及编译器的任何其他已知阶段或通过中。作为说明性的示例,编译器可能在编译的一个或多个阶段中插入操作、调用、函数等,诸如在编译的前端阶段插入调用/操作、然后在转换阶段将调用/操作转换成较低级代码。注意到在动态编译期间,编译器代码或动态优化代码可以插入这样的操作/调用,以及优化代码供运行时间执行。作为一具体的说明性示例,二进制代码(已编译的代码)可以在运行时间被动态地优化。这里,程序代码可以包括动态优化代码、二进制代码或者它们的组合。
类似于编译器,诸如二进制转换器这样的转换器或静态地或动态地转换代码,以优化和/或转换代码。因此,对代码执行、应用代码、程序代码或其他软件环境的引用可以是指:(1)或动态地或静态地执行编译器程序、优化代码优化器、或转换器,以编译程序代码、维持软件结构、执行其他操作、优化代码、或者转换代码;(2)执行包括操作/调用的主程序代码,主程序代码诸如已被优化/编译的应用代码;(3)执行与主程序代码相关联的其他程序代码(诸如库),以维持软件结构、执行其他软件相关的操作、或者优化代码;或(4)以上的组合。
尽管已经相对于有限数量的实施例描述了本发明,但是本领域的技术人员会理解从中得出的许多修改和变化。所附权利要求书意图覆盖所有这些修改和变化,它们落在本发明的实际精神和范围内。
设计可以经历各种阶段,从创建到仿真到制造。表示设计的数据可以以许多方式来表示该设计。首先,如仿真中有用的,硬件可以用硬件描述语言或另一功能描述语言来表示。此外,可以在设计过程的某些阶段产生具有逻辑和/或晶体管门的电路级模型。而且,许多设计在某一阶段达到了表示各个设备在硬件模型中的物理位置的数据级别。在使用常规半导体制造技术的情况下,表示硬件模型的数据可以是指定各个特征在用于生产集成电路的掩膜的不同掩膜层上存在或不存在的数据。在设计的任何表示中,数据可以被存储于任何形式的机器可读介质中。存储器或者诸如磁盘的磁性或光学存储器可以是机器可读介质,机器可读介质用于存储经由光波或电波发射的信息,光波或电波被调制或以其他方式生成以发射这样的信息。当发射指示或携带代码或设计的电载波时,就电信号的复制、缓冲或重传的方面来说,制作新的副本。由此,通信提供商或网络提供商可以至少暂时地在有形的机器可读介质上存储体现本发明实施例的技术的项目,所述项目诸如被编码为载波的信息。
这里使用的模块是指硬件、软件和/或固件的任何组合。作为一示例,模块包括与非暂时性介质相关联的硬件(诸如微控制器),用于存储适合由微控制器执行的代码。因此,在一实施例中,对模块的引用是引用硬件,硬件被专门配置为认出和/或执行要被保持于非暂时性介质上的代码。而且,在另一实施例中,模块的使用是指包括代码的非暂时性介质,代码专门适用于由微处理器执行以便执行预定的操作。在还有另一实施例中,如可推断的,术语模块(在该示例中)是指微处理器和非暂时性介质的组合。通常,图示为分开的模块边界通常会变化并且可能重叠。例如,第一和第二模块可以共享硬件、软件、固件或它们的组合,而可能保留某些独立的硬件、软件或固件。在一实施例中,术语逻辑的使用包括诸如晶体管、寄存器等硬件,或者诸如可编程逻辑器件等其他硬件。
在一实施例中,短语“被配置为”的使用是指对装置、硬件、逻辑或元件进行排列、置于一起、制造、承诺销售、进口和/或设计以执行指定的或确定的任务。在该示例中,如果装置或其元件被设计、耦合和/或互连以执行指定的任务,则装置或元件即使未在运行也仍然“被配置成”执行所述指定的任务。作为纯说明性的示例,逻辑门可以在运算期间提供0或1。但是逻辑门“被配置成”向时钟提供使能信号不包括可能提供1或0的每个可能的逻辑门。相反,逻辑门是以在操作期间1或0输出用于启用时钟的方式耦合的门。再次注意到,术语“被配置成”的使用不要求操作,而是聚焦于装置、硬件和/或元件的潜伏状态,其中在潜伏状态中,装置、硬件和/或元件被设计成在装置、硬件和/或元件正在操作时执行特定的任务。
而且,在一实施例中,短语“用于”、“能够/以”以及或者“可操作用于”的使用是指装置、硬件和/或元件以能以指定方式使用装置、硬件和/或元件的方式被设计。注意到以上,在一实施例中,“用于”、“能够”或“可操作用于”的使用是指装置、逻辑、硬件和/或元件的潜伏状态,其中装置、逻辑、硬件和/或元件不在操作,但是以能以指定方式使用装置的方式被设计。
如此处使用的,值包括数字、状态、逻辑状态或二进制逻辑状态的任何已知表示。通常,逻辑电平、逻辑值或逻辑的值的使用也被称为1和0,仅表示二进制逻辑状态。例如,1是指高逻辑电平,0是指低逻辑电平。在一实施例中,存储单元(诸如晶体管或闪存单元)可能能够保持单个逻辑值或多个逻辑值。然而,已经使用了计算机系统中值的其他表示。例如,十进制数10也可以被表示为二进制值2110和十六进制字母A。因此,值包括能被保持在计算机系统中的信息的任何表示。
此外,状态可由值或值的部分表示。作为一示例,第一值(诸如逻辑1)可以表示缺省或初始状态,而第二值(诸如逻辑0)可以表示非缺省状态。此外,在一实施例中,术语重置和设置分别指缺省的和更新的值或状态。例如,缺省的值可能包括高逻辑值,即重置,而更新的值可能包括低逻辑值,即设置。注意到,可以使用值的任何组合来表示任何数量的状态。
以上提出的方法、硬件、软件、固件或代码的实施例可以经由机器可存取、机器可读、计算机可存取或计算机可读介质上存储的指令或代码来实现,指令或代码可由处理元件执行。非暂时性的机器可存取/可读介质包括以可由机器(诸如计算机或电子系统)读取的形式提供(即,存储和/或发射)信息的任何机制。例如,非暂时性的机器可存取介质包括随机存取存储器(RAM)(诸如静态RAM(SRAM)或动态RAM(DRAM));ROM;磁性或光学存储介质;闪存设备;电子存储设备;光学存储设备;声学存储设备;其他形式的用于保持从瞬时(传播的)信号接收到的信息的存储设备等等,这些其他存储设备区别于可以接收信息的非暂时性介质。
用于对逻辑编程以执行本发明多个实施例的指令可以被存储在系统中的存储器内,诸如DRAM、高速缓存、闪存或其他存储器。而且,指令可以经由网络或通过其他计算机可读媒介来分布。由此,机器可读介质可以包括用于以机器(例如计算机)可读的形式存储或发射信息的任何机制,包括但不限于:软盘、光盘、压缩盘、只读存储器(CD-ROM)和磁光盘、只读存储器(ROM)、随机存取存储器(RAM)、可擦除可编程只读存储器(EPROM)、电可擦除可编程只读存储器(EEPROM)、磁或光卡、闪存或者有形的、机器可读存储器,这些存储器用于经由电学、光学、声学或其他形式的传播信号(例如,载波、红外信号、数字信号等)在互联网上传输信息。因而,计算机可读介质包括适用于以机器(例如,计算机)可读形式存储或发射电子指令或信息的任何类型的有形机器可读介质。
以下示例关于按照本说明书的实施例。一个或多个实施例提供了装置、系统、机器可读存储器、机器可读介质和方法以:接收引用第一代理以及请求特定存储器行在独占状态中被高速缓存的请求;发送旨在给一个或多个其他代理的监听请求;接收要引用第二代理的监听响应,监听响应包括到存储器的写回,写回与该特定存储器行对应的已修改的高速缓存行;以及发送完成以被定址到第一代理,其中完成包括基于写回的特定存储器行的数据。
在至少一个示例中,已修改的高速缓存行被写至特定存储器行。
在至少一个示例中,确定第二代理的高速缓存行是已修改的高速缓存行。基于确定第二代理的高速缓存行是已修改的高速缓存行,完成可以在接收到对与来自第一代理的请求相对应的所有监听请求的响应之前被发送。
在至少一个示例中,监听请求包括监听无效请求。监听无效请求可以使对应于特定存储器行的接收另一代理的高速缓存无效。监听无效请求可以标识特定存储器行以及来自第一代理的请求中所包括的命令。
在至少一个示例中,可以转换目录状态以表示特定存储器行与独占状态相关联。
一个或多个实施例提供了装置、系统、机器可读存储器、机器可读介质和方法以:接收要发送对独占状态下的特定高速缓存行的请求的请求;以及从存储器接收对应于该特定高速缓存行的数据,其中特定数据包括由另一代理在请求之后写回存储器的数据。
在至少一个示例中,特定高速缓存行在请求之前处于无效状态。
在至少一个示例中,独占状态是E状态,表示特定高速缓存行中的数据的副本与存储器相匹配并且是独占副本。
在至少一个示例中,特定数据被复制到特定高速缓存行。特定高速缓存行可以基于接收到特定数据而被转换至独占状态。
在至少一个示例中,由另一代理写回存储器的数据包括响应于和对独占状态中的特定高速缓存行的请求相对应的监听而返回的数据。
在至少一个示例中,监听是多个监听之一,特定数据要在为每一个监听请求返回响应之前被接收。
一个或多个实施例提供了装置、系统、机器可读存储器、机器可读介质和方法以:接收要接收显式写回请求的请求,其中显式写回请求对应于和特定存储器行相对应的已修改高速缓存行,显式写回请求包括提示以指示另一高速缓存要请求特定存储器行;确定是否在将已修改高速缓存行的数据写至特定存储器行之前,将已修改高速缓存行的数据推至其他高速缓存;以及发送完成以对应于显式写回请求。
在至少一个示例中,确定是否推送数据使已修改高速缓存行的数据被写至特定存储器行。
在至少一个示例中,已修改高速缓存行的数据不被推至该另一高速缓存。
在至少一个示例中,对应于特定存储器行的目录状态可以自独占状态转换成无效状态。
在至少一个示例中,确定推送数据使已修改高速缓存行的数据被发送至对应于该另一高速缓存的第一高速缓存代理,以使已修改高速缓存行的数据被写至该另一高速缓存的相应的高速缓存行。
在至少一个示例中,对应于特定存储器行的目录状态是转换为表示该另一高速缓存具有特定存储器行的独占副本的状态。
在至少一个示例中,显式写回请求包括来自对应于已修改高速缓存行的不同的、第二高速缓存代理的单个相干协议请求。
在至少一个示例中,确定推送数据包括确定该另一高速缓存是否是本地高速缓存。
在至少一个示例中,确定推送数据包括确定是否有针对特定存储器行的其他未完成的请求。
一个或多个实施例提供了装置、系统、机器可读存储器、机器可读介质和方法以:接收要将显式写回请求发送至归属代理的请求,其中显式写回请求对应于和特定存储器行相对应的已修改高速缓存行,显式写回请求包括暗示,用以指示另一高速缓存要请求该特定存储器行;以及自归属代理接收对该显式写回请求的完成。
在至少一个示例中,在发送显式写回请求之后,已修改高速缓存行要从已修改状态转换成无效状态。
在至少一个示例中,显式写回请求使已修改高速缓存行的数据被写至该另一高速缓存而不被写至特定存储器行。
在至少一个示例中,显式写回请求包括单个相干协议请求。
在至少一个示例中,显式写回请求标识该另一高速缓存。
一个或多个实施例提供了装置、系统、机器可读存储器、机器可读介质和方法以:接收要接收写回冲刷消息的请求;标识存储器控制器到一特定永久存储器的一组未决的写入;以及基于写回冲刷消息将所有该组未决的写入写至特定存储器。
在至少一个示例中,写回冲刷消息包括相干协议消息。
在至少一个示例中,写回冲刷消息由高速缓存代理生成。
在至少一个示例中,该组未决写入包括存储器控制器的所有未决写入。
如权利要求40所述的装置,其中写回冲刷消息标识存储器控制器。
在至少一个示例中,写回冲刷消息标识对应于特定存储器的存储器地址。
在至少一个示例中,写回冲刷消息对应于电力故障管理活动。
一个或多个实施例提供了装置、系统、机器可读存储器、机器可读介质和方法以:接收标识高速缓存的特定行处于转发状态的请求;接收对应于高速缓存的特定行的请求;在对请求的响应之后,确定是否保持转发状态;以及响应于请求。
在至少一个示例中,确定是否要保持转发状态包括确定代理的配置参数的值,其中配置参数的值标识转发状态是否要被保持。
在至少一个示例中,配置参数的值可以改变。确定是否要保持转发状态可以包括在响应之后确定保持转发状态。确定是否要保持转发状态可以包括在响应之后确定自转发状态转换。在至少一个示例中,转发状态自转发状态转换成无效状态。
在至少一个示例中,请求包括监听。响应于请求可以包括将数据自特定高速缓存行转发至另一代理。
一个或多个实施例提供了装置、系统、机器可读存储器、机器可读介质和方法以:接收提供包括协议层逻辑和路由层逻辑的代理的请求,协议层逻辑用于生成扇出监听请求,路由层逻辑用于标识多个代理以根据扇出监听请求接收监听;以及将监听请求发送至多个代理的每一个。
在至少一个示例中,多个代理从标识响应扇出锥形中的每个代理的配置参数而标识。
在至少一个示例中,配置参数按地址标识每个代理。
在至少一个示例中,可以确定是否使用扇出监听来监听一个或多个代理。
在至少一个示例中,代理是归属代理,监听请求的每一个可以包括一监听以获得转发或共享状态的任一个状态中的高速缓存数据。
在至少一个示例中,监听请求的每一个包括监听,用以获得已修改、独占、转发或共享状态的任一个中的高速缓存数据。
在至少一个示例中,监听请求的每一个包括监听,用以获得已修改或独占状态的任一个中的高速缓存数据。
在至少一个示例中,监听请求的每一个包括对相应代理的高速缓存的监听,其中已修改状态中的数据要被冲刷至存储器。
在至少一个示例中,可以为监听请求的一个或多个接收监听响应。
一个或多个示例还可以提供包括分层协议栈的代理,该分层协议栈包括协议层,其中,协议层发起要接受独占的相干性状态数据的读取无效请求。
一个或多个示例还可以提供包括分层协议栈的代理,该分层协议栈包括协议层,其中,协议层在不接收数据和指示到高速缓存行的写回的情况下发起请求高速缓存行的独占所有权的无效。
在至少一个示例中,写回高速缓存行是在接近时间帧内。
一个或多个示例还可以提供包括分层协议栈的代理,该分层协议栈包括协议层,其中,协议层发起使数据冲刷至永久存储器的写回冲刷请求。
一个或多个示例还可以提供包括分层协议栈的代理,该分层协议栈包括协议层,其中,协议层发起使监听请求生成至扇出锥形内的对等体代理的单个扇出请求。
一个或多个示例还可以提供包括分层协议栈的代理,该分层协议栈包括协议层,其中,协议层发起显式写回请求,显式写回请求具有到归属代理的高速缓存推送暗示,暗示被引用的高速缓存行被推送至本地高速缓存而无须将数据写至存储器。
在至少一个示例中,高速缓存行可以是存储于M状态中。
一个或多个示例还可以提供包括分层协议栈的代理,该分层协议栈包括协议层,其中,协议层发起共享数据的转发,而同时维持与共享数据相关联的转发状态。
本说明书中通篇引用“一个实施例”或“一实施例”意指结合本发明至少一个实施例中所包括的实施例所描述的特定的特征、结构或特性。因此,本说明书中各处出现的短语“在一个实施例中”或“在一实施例中”不必要全部指同一个实施例。而且,特定的特征、结构或特性可以以任何适当的方式被组合在一个或多个实施例中。
在以上说明书中,已经参照具体的示例性实施例给出了详细描述。然而显而易见的是,可以对其作出各种修改和变化,而不背离所附权利要求书中所提出的本发明的更宽的精神和范围。因此,说明书和附图被视为是示意性的,而不是限制性的。而且,实施例及其他示例性语言的以上使用不必要是指相同的实施例或相同的示例,而可以指不同的和相异的实施例,以及可能相同的实施例。

Claims (23)

1.一种用于传送数据的装置,所述装置包括:
节点,所述节点包括至少一个处理器、高速缓存和第一相干代理,所述节点用于:
接收监听请求,其中所述监听请求要从归属代理被接收,所述监听请求包括监听无效请求,所述监听请求要对应于由第二相干代理发送至所述归属代理的请求,且所述监听请求包括用所述归属代理的节点标识符(NID)编码的地址字段;
生成监听响应,其中所述监听响应包括命令字段、目的地NID字段、归属事务标识符(TID)字段以及数据,其中所述命令字段要被编码以指示所述监听响应包括隐式写回,所述目的地NID字段用所述归属代理的NID来编码,所述归属TID字段被编码以标识由所述归属代理分配来处理所述监听请求的资源,且所述数据要被写回至存储器;
将所述监听响应发送至所述归属代理;以及
基于所述监听响应改变所述高速缓存的状态。
2.如权利要求1所述的装置,其特征在于,所述高速缓存的状态是一组已定义状态之一。
3.如权利要求2所述的装置,其特征在于,所述一组已定义状态包括已修改状态、独占状态、共享状态和无效状态。
4.如权利要求1所述的装置,其特征在于,所述高速缓存的状态被改变为无效状态。
5.如权利要求4所述的装置,其特征在于,所述高速缓存的状态从已修改状态被改变为所述无效状态。
6.如权利要求5所述的装置,其特征在于,所述监听响应基于所述已修改状态包括所述隐式写回。
7.如权利要求1所述的装置,其特征在于,所述监听无效请求是基于与所述归属代理相关联的独占目录状态。
8.如权利要求1所述的装置,其特征在于,所述数据基于所述隐式写回被写回至存储器。
9.如权利要求8所述的装置,其特征在于,所述数据与所述数据到存储器的写回同时地从所述高速缓存被冲刷。
10.一种用于传送数据的方法,所述方法包括:
在存储器的归属代理处接收来自第一高速缓存代理的读请求,其中所述读请求对应于特定存储器行;
响应于所述读请求向第二高速缓存代理发送监听请求,其中所述监听请求包括命令字段、地址字段、目的地节点标识符(NID)字段、请求(NID)字段、请求事务标识符(TID)字段以及归属TID字段,其中所述监听请求的所述命令字段被编码以指示所述监听请求包括监听无效、且所述监听请求的所述归属TID字段标识由所述归属代理分配来处理所述监听请求的资源;
响应于所述监听请求从所述第二高速缓存代理接收监听响应,其中所述监听响应包括命令字段、目的地NID字段、归属TID字段以及来自对应于所述第二高速缓存代理的高速缓存的数据,其中所述监听响应的所述命令字段被编码以指示所述监听响应包括隐式写回;
将所述数据写回所述特定存储器行;
基于将所述数据写至所述特定存储器行而将所述特定存储器行的状态改变为无效状态;
响应于所述读请求向所述第一高速缓存代理发送完成;以及
基于所述完成将所述特定存储器行的状态改变为独占状态。
11.如权利要求10所述的方法,其特征在于,所述特定存储器行的状态从独占状态被改变为所述无效状态。
12.如权利要求10所述的方法,其特征在于,所述读请求包括使所述第一高速缓存代理在独占状态下获得所述特定存储器行的所有权的请求。
13.如权利要求12所述的方法,其特征在于,所述完成包括无数据。
14.如权利要求10所述的方法,其特征在于,所述完成包括所述数据。
15.如权利要求10所述的方法,其特征在于,所述读请求包括读无效(RdInv)请求。
16.如权利要求15所述的方法,其特征在于,所述读无效请求对应于与所述特定存储器行对应的未知目录状态。
17.如权利要求15所述的方法,其特征在于,所述读无效请求指示所述特定存储器行的独占副本被请求。
18.一种包括用于执行如权利要求10-17的任一项所述的方法的装置的系统。
19.如权利要求18所述的系统,其特征在于,所述装置包括存储指令的存储介质,所述指令在由机器执行时、使所述机器执行如权利要求10-17的任一项所述的方法的至少一部分。
20.一种用于传送数据的系统,所述系统包括:
第一节点,所述第一节点包括第一处理器、第一高速缓存和第一高速缓存代理;
第二节点,所述第二节点包括第二处理器、第二高速缓存和第二高速缓存代理;以及
第三节点,所述第三节点包括第三处理器、存储器和第三高速缓存代理,其中所述第三高速缓存代理包括协议逻辑以用于:
从所述第一高速缓存代理接收对来自特定存储器行的数据的读请求;
响应于所述读请求向所述第二高速缓存代理发送监听请求,其中所述监听请求包括命令字段,所述命令字段被编码以指示所述监听请求包括监听无效;
响应于所述监听请求从所述第二高速缓存代理接收监听响应,其中所述监听响应包括来自所述第二高速缓存的数据以及命令字段,所述命令字段被编码以指示所述监听响应包括隐式写回;
响应于所述监听响应将所述数据写至所述特定存储器行;
基于所述隐式写回将所述特定存储器行的目录状态改变为无效状态;
响应于所述读请求向所述第一高速缓存代理发送完成,其中所述完成包括所述数据;以及
基于发送所述完成将所述特定存储器行的目录状态改变为独占状态。
21.如权利要求20所述的系统,其特征在于,所述第三高速缓存代理包括归属代理。
22.如权利要求20所述的系统,其特征在于,所述第一节点、所述第二节点和所述第三节点通过所述系统中的多个链路互连。
23.如权利要求22所述的系统,其特征在于,所述多个链路符合高速缓存相干多层互连协议。
CN201710038234.9A 2012-10-22 2013-03-15 高性能互连相干协议 Active CN106815151B (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US201261717091P 2012-10-22 2012-10-22
US61/717,091 2012-10-22
CN201380016955.XA CN104380269B (zh) 2012-10-22 2013-03-15 高性能互连相干协议

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
CN201380016955.XA Division CN104380269B (zh) 2012-10-22 2013-03-15 高性能互连相干协议

Publications (2)

Publication Number Publication Date
CN106815151A true CN106815151A (zh) 2017-06-09
CN106815151B CN106815151B (zh) 2021-04-20

Family

ID=50485278

Family Applications (26)

Application Number Title Priority Date Filing Date
CN202010633738.7A Pending CN111737167A (zh) 2012-10-22 2013-03-15 用于高性能互连物理层的装置、方法和系统
CN201380049199.0A Pending CN104969207A (zh) 2012-10-22 2013-03-15 高性能互连一致性协议
CN201710093224.5A Active CN107015924B (zh) 2012-10-22 2013-03-15 高性能互连物理层
CN201380049066.3A Active CN104737147B (zh) 2012-10-22 2013-03-15 高性能互连物理层
CN201380016998.8A Active CN104335196B (zh) 2012-10-22 2013-03-15 用于传送数据的方法、装置和系统
CN201711159546.1A Active CN108228495B (zh) 2012-10-22 2013-03-15 高性能互连物理层
CN201380049212.2A Active CN104769570B (zh) 2012-10-22 2013-03-15 控制多时隙链路层微片中的消息收发
CN201710038141.6A Active CN106776364B (zh) 2012-10-22 2013-03-15 用于高性能互连物理层的装置、方法和系统
CN201710038234.9A Active CN106815151B (zh) 2012-10-22 2013-03-15 高性能互连相干协议
CN201380016955.XA Active CN104380269B (zh) 2012-10-22 2013-03-15 高性能互连相干协议
CN201810011011.8A Active CN108055214B (zh) 2012-10-22 2013-03-15 用于对数据进行通信的装置和系统
CN201710043551.XA Active CN106681938B (zh) 2012-10-22 2013-03-15 用于控制多时隙链路层微片中的消息收发的装置和系统
CN201710043763.8A Active CN107045479B (zh) 2012-10-22 2013-03-15 高性能互连物理层
CN201380049062.5A Active CN104756097B (zh) 2012-10-22 2013-03-15 一致性协议表
CN201410582176.2A Active CN104391816B (zh) 2012-10-22 2013-03-15 高性能互连物理层
CN201380049203.3A Active CN104969206B (zh) 2012-10-22 2013-03-15 高性能互连物理层
CN201810337297.9A Active CN108614783B (zh) 2012-10-22 2013-03-15 一致性协议表
CN201380055335.7A Active CN104737142B (zh) 2012-10-22 2013-03-16 多时隙链路层流控制单元
CN201380049075.2A Active CN104995614B (zh) 2012-10-22 2013-03-27 高性能互连物理层
CN201810095156.0A Active CN108132892B (zh) 2012-10-22 2013-03-27 高性能互连物理层
CN201380017285.3A Active CN104487958B (zh) 2012-10-22 2013-03-27 高性能互连物理层
CN201410751146.XA Active CN104536933B (zh) 2012-10-22 2013-03-27 高性能互连物理层
CN201710067578.2A Active CN107102960B (zh) 2012-10-22 2013-03-27 高性能互连物理层
CN201710243776.XA Active CN107092565B (zh) 2012-10-22 2013-03-27 高性能互连物理层
CN201711267378.8A Active CN107968756B (zh) 2012-10-22 2013-03-28 高性能互连链路层
CN201380016778.5A Active CN104303166B (zh) 2012-10-22 2013-03-28 高性能互连链路层

Family Applications Before (8)

Application Number Title Priority Date Filing Date
CN202010633738.7A Pending CN111737167A (zh) 2012-10-22 2013-03-15 用于高性能互连物理层的装置、方法和系统
CN201380049199.0A Pending CN104969207A (zh) 2012-10-22 2013-03-15 高性能互连一致性协议
CN201710093224.5A Active CN107015924B (zh) 2012-10-22 2013-03-15 高性能互连物理层
CN201380049066.3A Active CN104737147B (zh) 2012-10-22 2013-03-15 高性能互连物理层
CN201380016998.8A Active CN104335196B (zh) 2012-10-22 2013-03-15 用于传送数据的方法、装置和系统
CN201711159546.1A Active CN108228495B (zh) 2012-10-22 2013-03-15 高性能互连物理层
CN201380049212.2A Active CN104769570B (zh) 2012-10-22 2013-03-15 控制多时隙链路层微片中的消息收发
CN201710038141.6A Active CN106776364B (zh) 2012-10-22 2013-03-15 用于高性能互连物理层的装置、方法和系统

Family Applications After (17)

Application Number Title Priority Date Filing Date
CN201380016955.XA Active CN104380269B (zh) 2012-10-22 2013-03-15 高性能互连相干协议
CN201810011011.8A Active CN108055214B (zh) 2012-10-22 2013-03-15 用于对数据进行通信的装置和系统
CN201710043551.XA Active CN106681938B (zh) 2012-10-22 2013-03-15 用于控制多时隙链路层微片中的消息收发的装置和系统
CN201710043763.8A Active CN107045479B (zh) 2012-10-22 2013-03-15 高性能互连物理层
CN201380049062.5A Active CN104756097B (zh) 2012-10-22 2013-03-15 一致性协议表
CN201410582176.2A Active CN104391816B (zh) 2012-10-22 2013-03-15 高性能互连物理层
CN201380049203.3A Active CN104969206B (zh) 2012-10-22 2013-03-15 高性能互连物理层
CN201810337297.9A Active CN108614783B (zh) 2012-10-22 2013-03-15 一致性协议表
CN201380055335.7A Active CN104737142B (zh) 2012-10-22 2013-03-16 多时隙链路层流控制单元
CN201380049075.2A Active CN104995614B (zh) 2012-10-22 2013-03-27 高性能互连物理层
CN201810095156.0A Active CN108132892B (zh) 2012-10-22 2013-03-27 高性能互连物理层
CN201380017285.3A Active CN104487958B (zh) 2012-10-22 2013-03-27 高性能互连物理层
CN201410751146.XA Active CN104536933B (zh) 2012-10-22 2013-03-27 高性能互连物理层
CN201710067578.2A Active CN107102960B (zh) 2012-10-22 2013-03-27 高性能互连物理层
CN201710243776.XA Active CN107092565B (zh) 2012-10-22 2013-03-27 高性能互连物理层
CN201711267378.8A Active CN107968756B (zh) 2012-10-22 2013-03-28 高性能互连链路层
CN201380016778.5A Active CN104303166B (zh) 2012-10-22 2013-03-28 高性能互连链路层

Country Status (9)

Country Link
US (20) US9378171B2 (zh)
EP (2) EP2909728A4 (zh)
JP (2) JP6139689B2 (zh)
KR (27) KR101696124B1 (zh)
CN (26) CN111737167A (zh)
BR (1) BR112015006432A2 (zh)
DE (14) DE112013004094B4 (zh)
RU (2) RU2599971C2 (zh)
WO (11) WO2014065876A1 (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113678422A (zh) * 2019-04-10 2021-11-19 Abb瑞士股份有限公司 用于转发节点数据的方法和聚合服务器

Families Citing this family (196)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2013105967A1 (en) * 2012-01-13 2013-07-18 Intel Corporation Efficient peer-to-peer communication support in soc fabrics
US8943255B2 (en) * 2012-05-29 2015-01-27 Lsi Corporation Methods and structure for accounting for connection resets between peripheral component interconnect express bridges and host devices
DE112013004094B4 (de) * 2012-10-22 2018-03-29 Intel Corporation Hochleistungs-Zusammenschaltungs-Bitübertragungsschicht
US9280507B2 (en) 2012-10-22 2016-03-08 Intel Corporation High performance interconnect physical layer
US9355058B2 (en) * 2012-10-22 2016-05-31 Intel Corporation High performance interconnect physical layer
US9479196B2 (en) 2012-10-22 2016-10-25 Intel Corporation High performance interconnect link layer
US9367474B2 (en) * 2013-06-12 2016-06-14 Apple Inc. Translating cache hints
US20150006962A1 (en) * 2013-06-27 2015-01-01 Robert C. Swanson Memory dump without error containment loss
CN104579605B (zh) * 2013-10-23 2018-04-10 华为技术有限公司 一种数据传输方法及装置
US9397792B2 (en) 2013-12-06 2016-07-19 Intel Corporation Efficient link layer retry protocol utilizing implicit acknowledgements
US9306863B2 (en) * 2013-12-06 2016-04-05 Intel Corporation Link transfer, bit error detection and link retry using flit bundles asynchronous to link fabric packets
US9325449B2 (en) 2013-12-06 2016-04-26 Intel Corporation Lane error detection and lane removal mechanism to reduce the probability of data corruption
JP6221717B2 (ja) * 2013-12-12 2017-11-01 富士通株式会社 ストレージ装置、ストレージシステム及びデータ管理プログラム
KR101985157B1 (ko) * 2013-12-26 2019-05-31 인텔 코포레이션 멀티칩 패키지 링크
KR102041743B1 (ko) 2013-12-26 2019-11-06 인텔 코포레이션 Pci 익스프레스 강화
US9594719B2 (en) 2014-02-03 2017-03-14 Valens Semiconductor Ltd. Seamless addition of high bandwidth lanes
US9628382B2 (en) 2014-02-05 2017-04-18 Intel Corporation Reliable transport of ethernet packet data with wire-speed and packet data rate match
CN105095147B (zh) * 2014-05-21 2018-03-13 华为技术有限公司 片上网络的Flit传输方法及装置
RU2608881C2 (ru) * 2014-05-28 2017-01-25 Общество С Ограниченной Ответственностью "Яндекс" Способ и система для управления турборежимом
US9823864B2 (en) 2014-06-02 2017-11-21 Micron Technology, Inc. Systems and methods for throttling packet transmission in a scalable memory system protocol
US9619214B2 (en) 2014-08-13 2017-04-11 International Business Machines Corporation Compiler optimizations for vector instructions
US9571465B1 (en) 2014-09-18 2017-02-14 Amazon Technologies, Inc. Security verification by message interception and modification
US9904645B2 (en) * 2014-10-31 2018-02-27 Texas Instruments Incorporated Multicore bus architecture with non-blocking high performance transaction credit system
US9778315B2 (en) * 2014-11-14 2017-10-03 Cavium, Inc. Testbench builder, system, device and method having agent loopback functionality
US9870328B2 (en) * 2014-11-14 2018-01-16 Cavium, Inc. Managing buffered communication between cores
US9665505B2 (en) 2014-11-14 2017-05-30 Cavium, Inc. Managing buffered communication between sockets
US20160173398A1 (en) 2014-12-12 2016-06-16 Intel Corporation Method, Apparatus And System For Encoding Command Information In a Packet-Based Network
US9921768B2 (en) * 2014-12-18 2018-03-20 Intel Corporation Low power entry in a shared memory link
US9444551B2 (en) * 2014-12-19 2016-09-13 Intel Corporation High performance optical repeater
US10025746B2 (en) * 2014-12-20 2018-07-17 Intel Corporation High performance interconnect
US9632862B2 (en) 2014-12-20 2017-04-25 Intel Corporation Error handling in transactional buffered memory
US9740646B2 (en) 2014-12-20 2017-08-22 Intel Corporation Early identification in transactional buffered memory
US9785556B2 (en) * 2014-12-23 2017-10-10 Intel Corporation Cross-die interface snoop or global observation message ordering
US20160188519A1 (en) * 2014-12-27 2016-06-30 Intel Corporation Method, apparatus, system for embedded stream lanes in a high-performance interconnect
CN104536929A (zh) * 2015-01-14 2015-04-22 浪潮(北京)电子信息产业有限公司 一种物理层初始化方法及客户端
US9998434B2 (en) * 2015-01-26 2018-06-12 Listat Ltd. Secure dynamic communication network and protocol
US9946676B2 (en) * 2015-03-26 2018-04-17 Intel Corporation Multichip package link
US20160285624A1 (en) * 2015-03-26 2016-09-29 Intel Corporation Pseudorandom bit sequences in an interconnect
US9619396B2 (en) * 2015-03-27 2017-04-11 Intel Corporation Two level memory full line writes
US10282315B2 (en) 2015-03-27 2019-05-07 Cavium, Llc Software assisted hardware configuration for software defined network system-on-chip
US9639276B2 (en) * 2015-03-27 2017-05-02 Intel Corporation Implied directory state updates
US9720838B2 (en) * 2015-03-27 2017-08-01 Intel Corporation Shared buffered memory routing
US9760515B2 (en) 2015-04-06 2017-09-12 Qualcomm Incorporated Shared control of a phase locked loop (PLL) for a multi-port physical layer (PHY)
US10417128B2 (en) 2015-05-06 2019-09-17 Oracle International Corporation Memory coherence in a multi-core, multi-level, heterogeneous computer architecture implementing hardware-managed and software managed caches
US20160353357A1 (en) * 2015-05-27 2016-12-01 Qualcomm Incorporated Methods and systems for multiplexed communication in dense wireless environments
CN106664236B (zh) * 2015-06-10 2019-11-12 华为技术有限公司 一种信号传输方法、控制器和信号传输系统
US9697145B2 (en) * 2015-06-12 2017-07-04 Apple Inc. Memory interface system
US10089275B2 (en) 2015-06-22 2018-10-02 Qualcomm Incorporated Communicating transaction-specific attributes in a peripheral component interconnect express (PCIe) system
US20160371222A1 (en) * 2015-06-22 2016-12-22 Qualcomm Incorporated COHERENCY DRIVEN ENHANCEMENTS TO A PERIPHERAL COMPONENT INTERCONNECT (PCI) EXPRESS (PCIe) TRANSACTION LAYER
KR102485999B1 (ko) * 2015-07-01 2023-01-06 삼성전자주식회사 마스터-사이드 필터를 포함하는 캐시 코히런트 시스템과 이를 포함하는 데이터 처리 시스템
US9692589B2 (en) 2015-07-17 2017-06-27 Intel Corporation Redriver link testing
JP6665380B2 (ja) * 2015-07-30 2020-03-13 ヴァレンス セミコンダクター リミテッド 高帯域幅レーンのシームレスな追加
JP6674085B2 (ja) * 2015-08-12 2020-04-01 富士通株式会社 演算処理装置及び演算処理装置の制御方法
US9990291B2 (en) * 2015-09-24 2018-06-05 Qualcomm Incorporated Avoiding deadlocks in processor-based systems employing retry and in-order-response non-retry bus coherency protocols
WO2017052662A1 (en) * 2015-09-26 2017-03-30 Intel Corporation Stream identifier lane protection
US10461805B2 (en) 2015-09-26 2019-10-29 Intel Corporation Valid lane training
US9720439B2 (en) 2015-09-26 2017-08-01 Intel Corporation Methods, apparatuses, and systems for deskewing link splits
CN112612730A (zh) * 2015-09-26 2021-04-06 英特尔公司 多芯片封装链路错误检测
WO2017052665A1 (en) * 2015-09-26 2017-03-30 Intel Corporation In-band margin probing on an operational interconnect
GB2543745B (en) * 2015-10-15 2018-07-04 Advanced Risc Mach Ltd An apparatus and method for operating a virtually indexed physically tagged cache
US10198384B2 (en) 2016-03-01 2019-02-05 Qorvo Us, Inc. One wire bus to RFFE translation system
US10128964B2 (en) 2016-03-10 2018-11-13 Qualcomm Incorporated Multiphase preamble data sequences for receiver calibration and mode data signaling
US9779028B1 (en) 2016-04-01 2017-10-03 Cavium, Inc. Managing translation invalidation
CN105933286B (zh) * 2016-04-05 2019-08-02 浪潮电子信息产业股份有限公司 一种验证协议的方法及装置
RU2643620C2 (ru) * 2016-05-11 2018-02-02 федеральное государственное автономное образовательное учреждение высшего образования "Санкт-Петербургский политехнический университет Петра Великого" (ФГАОУ ВО "СПбПУ") Способ планирования задач предобработки данных Интернета Вещей для систем анализа
US10713202B2 (en) * 2016-05-25 2020-07-14 Samsung Electronics Co., Ltd. Quality of service (QOS)-aware input/output (IO) management for peripheral component interconnect express (PCIE) storage system with reconfigurable multi-ports
US10503641B2 (en) * 2016-05-31 2019-12-10 Advanced Micro Devices, Inc. Cache coherence for processing in memory
US11144691B2 (en) * 2016-06-02 2021-10-12 Siemens Industry Software Inc. Virtual Ethernet mutable port group transactor
TWI613547B (zh) * 2016-06-16 2018-02-01 新漢股份有限公司 具有pci-e增強器的電腦系統,及其pci-e增強器的設定方法
US10103837B2 (en) * 2016-06-23 2018-10-16 Advanced Micro Devices, Inc. Asynchronous feedback training
US10484361B2 (en) * 2016-06-30 2019-11-19 Intel Corporation Systems, methods, and apparatuses for implementing a virtual device observation and debug network for high speed serial IOS
US10303605B2 (en) * 2016-07-20 2019-05-28 Intel Corporation Increasing invalid to modified protocol occurrences in a computing system
US10929059B2 (en) 2016-07-26 2021-02-23 MemRay Corporation Resistance switching memory-based accelerator
US10379904B2 (en) * 2016-08-31 2019-08-13 Intel Corporation Controlling a performance state of a processor using a combination of package and thread hint information
RU2016137176A (ru) * 2016-09-16 2018-03-19 Оракл Интернэйшнл Корпорейшн Связывание преобразованного исходного кода с первоначальным исходным кодом с помощью метаданных
US10255181B2 (en) * 2016-09-19 2019-04-09 Qualcomm Incorporated Dynamic input/output coherency
US10936045B2 (en) 2016-09-26 2021-03-02 Hewlett-Packard Development Company, L.P. Update memory management information to boot an electronic device from a reduced power mode
US10846258B2 (en) * 2016-09-30 2020-11-24 Intel Corporation Voltage modulated control lane
US10152446B2 (en) * 2016-10-01 2018-12-11 Intel Corporation Link-physical layer interface adapter
CN108121842B (zh) * 2016-11-30 2021-04-27 深圳市中兴微电子技术有限公司 多处理器系统芯片的低功耗工作方式的验证方法和装置
CN106527576A (zh) * 2016-12-01 2017-03-22 郑州云海信息技术有限公司 一种pcie设备的时钟分离设计方法和系统
CN108170370B (zh) 2016-12-07 2021-01-26 慧荣科技股份有限公司 数据储存装置与数据传输速率控制方法
TWI610179B (zh) * 2016-12-07 2018-01-01 慧榮科技股份有限公司 主機裝置與資料傳輸速率控制方法
TWI633777B (zh) * 2016-12-13 2018-08-21 威盛電子股份有限公司 傳輸介面晶片以及其測試方法
KR20180071598A (ko) 2016-12-20 2018-06-28 주식회사 포스코 중장비 위치 추적 시스템
KR101946135B1 (ko) * 2017-01-11 2019-02-08 울산과학기술원 비휘발성 메모리를 이용하는 데이터베이스 관리 시스템 및 방법
US11159636B2 (en) * 2017-02-08 2021-10-26 Arm Limited Forwarding responses to snoop requests
US11182315B2 (en) * 2017-02-10 2021-11-23 Intel Corporation Apparatuses, methods, and systems for hardware control of processor performance levels
US10572434B2 (en) 2017-02-27 2020-02-25 International Business Machines Corporation Intelligent certificate discovery in physical and virtualized networks
US10784986B2 (en) 2017-02-28 2020-09-22 Intel Corporation Forward error correction mechanism for peripheral component interconnect-express (PCI-e)
CN107491407B (zh) * 2017-07-03 2019-07-12 西安空间无线电技术研究所 基于fpga内serdes的自适应高速传输系统
US11030126B2 (en) * 2017-07-14 2021-06-08 Intel Corporation Techniques for managing access to hardware accelerator memory
US11249808B2 (en) * 2017-08-22 2022-02-15 Intel Corporation Connecting accelerator resources using a switch
CN107678854A (zh) * 2017-08-31 2018-02-09 郑州云海信息技术有限公司 一种解决计算机缓存一致性冲突的方法
US10474611B2 (en) 2017-09-19 2019-11-12 International Business Machines Corporation Aligning received bad data indicators (BDIS) with received data on a cross-chip link
CN107589698B (zh) * 2017-09-20 2021-05-25 友达光电股份有限公司 应用于物联网中的感测装置及控制方法
US20190095273A1 (en) * 2017-09-27 2019-03-28 Qualcomm Incorporated Parity bits location on i3c multilane bus
US10963035B2 (en) * 2017-10-11 2021-03-30 Qualcomm Incorporated Low power PCIe
WO2019100238A1 (zh) * 2017-11-22 2019-05-31 深圳市大疆创新科技有限公司 一种断链恢复的方法及飞行器
CN107894963B (zh) * 2017-11-27 2021-07-27 上海兆芯集成电路有限公司 用于系统单芯片的通信控制器与通信方法
US10466911B2 (en) * 2017-12-18 2019-11-05 Western Digital Technologies, Inc. Method using logical based addressing for latency reduction
US10853212B2 (en) * 2018-01-08 2020-12-01 Intel Corporation Cross-talk generation in a multi-lane link during lane testing
EP3721565A4 (en) 2018-01-10 2021-01-27 Lumeova, Inc METHOD, DEVICE AND SYSTEM FOR WIRELESS COMMUNICATION CHANNEL FSO
US20190227971A1 (en) * 2018-01-23 2019-07-25 Qualcomm Incorporated Architecture for consolidating multiple sources of low-bandwidth data over a serial bus
US20190294777A1 (en) * 2018-03-26 2019-09-26 Lenovo Enterprise Solutions (Singapore) Pte. Ltd. Systems and methods for managing access to host computing devices by external devices
US10534881B2 (en) * 2018-04-10 2020-01-14 Advanced Micro Devices, Inc. Method of debugging a processor
CN108563510B (zh) * 2018-05-04 2021-07-13 湖南大学 面向e级计算的体系结构感知优化方法
US20190042455A1 (en) * 2018-05-04 2019-02-07 Intel Corporation Globally addressable memory for devices linked to hosts
US20190356412A1 (en) * 2018-05-16 2019-11-21 Qualcomm Incorporated Fast termination of multilane double data rate transactions
CN108762747B (zh) * 2018-05-30 2022-02-18 郑州云海信息技术有限公司 数据处理方法以及计算机设备
WO2019237130A1 (en) * 2018-06-04 2019-12-12 Lightfleet Corporation Routing and control protocol for high-performance interconnect fabrics
CN110609866B (zh) * 2018-06-15 2023-08-11 伊姆西Ip控股有限责任公司 用于协商事务的方法、设备和计算机程序产品
US10693589B2 (en) * 2018-06-18 2020-06-23 Huawei Technologies Co., Ltd. Serdes with jitter injection self stress mechanism
US11301160B2 (en) * 2018-06-20 2022-04-12 Genesys Telecommunications Laboratories, Inc. System and method for a replication protocol in a real-time statistical engine
CN109144943A (zh) * 2018-06-26 2019-01-04 深圳市安信智控科技有限公司 基于高速串行通道互连的计算芯片与存储器芯片组合系统
GB2575294B8 (en) * 2018-07-04 2022-07-20 Graphcore Ltd Host Proxy On Gateway
US10841355B2 (en) * 2018-07-13 2020-11-17 Apple Inc. Methods and apparatus for streaming media conversion with reduced buffering memories
US10541841B1 (en) * 2018-09-13 2020-01-21 Advanced Micro Devices, Inc. Hardware transmit equalization for high speed
CN109558122B (zh) * 2018-11-29 2022-08-19 湖南国科微电子股份有限公司 一种提升物理层兼容性的系统与方法
TWI706257B (zh) 2018-12-13 2020-10-01 新唐科技股份有限公司 匯流排系統
US10761939B1 (en) * 2018-12-13 2020-09-01 Amazon Technologies, Inc. Powering-down or rebooting a device in a system fabric
US10771189B2 (en) * 2018-12-18 2020-09-08 Intel Corporation Forward error correction mechanism for data transmission across multi-lane links
KR102165860B1 (ko) * 2018-12-31 2020-10-14 성균관대학교산학협력단 슬로티드 페이지의 더블 헤더 로깅 방법 및 데이터베이스 장치
US10599601B1 (en) 2019-01-16 2020-03-24 Qorvo Us, Inc. Single-wire bus (SuBUS) slave circuit and related apparatus
US11068400B2 (en) * 2019-01-24 2021-07-20 Vmware, Inc. Failure-atomic logging for persistent memory systems with cache-coherent FPGAs
US11099991B2 (en) 2019-01-24 2021-08-24 Vmware, Inc. Programming interfaces for accurate dirty data tracking
US11940483B2 (en) 2019-01-31 2024-03-26 Tektronix, Inc. Systems, methods and devices for high-speed input/output margin testing
JP2022524715A (ja) 2019-01-31 2022-05-10 テクトロニクス・インコーポレイテッド 高速入出力マージン試験のためのシステム、方法及び装置
US10713209B2 (en) 2019-02-08 2020-07-14 Intel Corporation Recalibration of PHY circuitry for the PCI Express (PIPE) interface based on using a message bus interface
US10802966B2 (en) * 2019-02-14 2020-10-13 International Business Machines Corporation Simultaneous, non-atomic request processing within an SMP environment broadcast scope for multiply-requested data elements using real-time parallelization
US11637657B2 (en) 2019-02-15 2023-04-25 Intel Corporation Low-latency forward error correction for high-speed serial links
US11099905B2 (en) 2019-02-26 2021-08-24 International Business Machines Corporation Efficient remote resource allocation within an SMP broadcast scope maintaining fairness between operation types
US11249837B2 (en) 2019-03-01 2022-02-15 Intel Corporation Flit-based parallel-forward error correction and parity
CN109947551B (zh) * 2019-03-19 2021-04-23 中南大学 一种多轮次任务分配方法、边缘计算系统及其存储介质
US10698842B1 (en) * 2019-04-10 2020-06-30 Xilinx, Inc. Domain assist processor-peer for coherent acceleration
IT201900005822A1 (it) * 2019-04-15 2020-10-15 Phoenix Ict S R L S Adattore di periferiche general purpose per computer
US11119958B2 (en) 2019-04-18 2021-09-14 Qorvo Us, Inc. Hybrid bus apparatus
US11226924B2 (en) 2019-04-24 2022-01-18 Qorvo Us, Inc. Single-wire bus apparatus supporting slave-initiated operation in a master circuit
CN110138761B (zh) * 2019-05-09 2021-10-15 豪威触控与显示科技(深圳)有限公司 基于mipi协议的设备间通信方法及设备拓扑结构
US11296994B2 (en) 2019-05-13 2022-04-05 Intel Corporation Ordered sets for high-speed interconnects
JP7259537B2 (ja) * 2019-05-16 2023-04-18 オムロン株式会社 情報処理装置
US10802967B1 (en) * 2019-06-28 2020-10-13 Intel Corporation Partial write management in a multi-tiled compute engine
US11144469B2 (en) * 2019-07-02 2021-10-12 Microsoft Technology Licensing, Llc Per-tenant incremental outward distributed proactive caching
US11444829B2 (en) * 2019-09-09 2022-09-13 Intel Corporation Link layer communication by multiple link layer encodings for computer buses
US11271860B1 (en) * 2019-11-15 2022-03-08 Xilinx, Inc. Compressed tag coherency messaging
RU2738955C1 (ru) * 2019-11-27 2020-12-21 Федеральное государственное бюджетное образовательное учреждение высшего образования "Томский государственный университет систем управления и радиоэлектроники" (ТУСУР) Способ трёхкратного резервирования межсоединений
US11740958B2 (en) 2019-11-27 2023-08-29 Intel Corporation Multi-protocol support on common physical layer
US10983942B1 (en) 2019-12-11 2021-04-20 Qorvo Us, Inc. Multi-master hybrid bus apparatus
US11132321B2 (en) * 2020-02-26 2021-09-28 Quanta Computer Inc. Method and system for automatic bifurcation of PCIe in BIOS
WO2021174225A1 (en) * 2020-02-28 2021-09-02 Riera Michael F A software-defined board support package (sw-bsp) for stand-alone reconfigurable accelerators
US11115176B1 (en) * 2020-03-04 2021-09-07 Qualcomm Incorporated System and method for adjusting clock-data timing in a multi-lane data communication link
US11126585B1 (en) 2020-03-09 2021-09-21 Western Digital Technologies, Inc. Data storage device with improved interface transmitter training
US11886312B2 (en) 2020-04-07 2024-01-30 Intel Corporation Characterizing error correlation based on error logging for computer buses
CN111400232B (zh) * 2020-04-10 2024-01-16 芯启源(上海)半导体科技有限公司 一种基于数据位宽展开的scramble与descramble硬件实现方法
US11288225B2 (en) 2020-04-14 2022-03-29 Western Digital Technologies, Inc. Adapting transmitter training behavior based upon assumed identity of training partner
US11513981B2 (en) * 2020-04-29 2022-11-29 Dell Products L.P. PCIe link management without sideband signals
US11309013B2 (en) 2020-04-29 2022-04-19 Samsung Electronics Co., Ltd. Memory device for reducing resources used for training
US11586446B1 (en) * 2020-05-20 2023-02-21 Marvell Asia Pte Ltd System and methods for hardware-based PCIe link up based on post silicon characterization
US11263137B2 (en) * 2020-05-27 2022-03-01 Arm Limited Core-to-core cache stashing and target discovery
CN116134475A (zh) * 2020-05-29 2023-05-16 奈特力斯股份有限公司 计算机存储器扩展设备及其操作方法
US20210013999A1 (en) * 2020-06-04 2021-01-14 Intel Corporation Latency-Optimized Mechanisms for Handling Errors or Mis-Routed Packets for Computer Buses
KR102254337B1 (ko) * 2020-06-22 2021-05-21 한양대학교 산학협력단 Dc-밸런싱을 고려한 pam4 5b3q 코딩 방법 및 장치
US11360906B2 (en) * 2020-08-14 2022-06-14 Alibaba Group Holding Limited Inter-device processing system with cache coherency
US11362939B2 (en) 2020-08-31 2022-06-14 Micron Technology, Inc. Flow control for a multiple flow control unit interface
US11580044B2 (en) * 2020-08-31 2023-02-14 Micron Technology, Inc. Network credit return mechanisms
US11588745B2 (en) 2020-08-31 2023-02-21 Micron Technology, Inc. Early credit return for credit-based flow control
CN112134859B (zh) * 2020-09-09 2021-07-06 上海沈德医疗器械科技有限公司 一种基于arm架构的聚焦超声治疗设备控制方法
DE102021121105A1 (de) * 2020-09-28 2022-03-31 Samsung Electronics Co., Ltd. Intelligente ablagespeichervorrichtung
TWI783293B (zh) * 2020-11-09 2022-11-11 瑞昱半導體股份有限公司 訊號傳輸裝置識別方法與訊號處理系統
US11409677B2 (en) 2020-11-11 2022-08-09 Qorvo Us, Inc. Bus slave circuit and related single-wire bus apparatus
KR20230108337A (ko) 2020-11-24 2023-07-18 텍트로닉스 인코포레이티드 고속 입력/출력 마진 테스팅을 위한 시스템, 방법 및 디바이스
US11489695B2 (en) 2020-11-24 2022-11-01 Qorvo Us, Inc. Full-duplex communications over a single-wire bus
CN112579479B (zh) * 2020-12-07 2022-07-08 成都海光微电子技术有限公司 在维护缓存一致性时维护事务次序的处理器及其方法
US11636037B2 (en) 2020-12-21 2023-04-25 Nxp Usa, Inc. Methods and apparatuses involving radar system data paths
CN112953556A (zh) * 2021-02-05 2021-06-11 南京大学 基于斐波那契数列的抗串扰互联的编解码器及编码方法
CN112631989A (zh) * 2021-03-08 2021-04-09 南京蓝洋智能科技有限公司 一种小芯片间、芯片间、小芯片与芯片间的数据传输方法
US11431649B1 (en) * 2021-03-26 2022-08-30 Arm Limited Interconnect resource allocation
CN113019479A (zh) * 2021-03-31 2021-06-25 中国人民解放军空军军医大学 一种用于模拟井下工作环境的试验箱
IT202100008723A1 (it) 2021-04-08 2022-10-08 Phoenix ICT Sistema per la gestione in sicurezza dei documenti digitali
KR102518317B1 (ko) 2021-04-13 2023-04-06 에스케이하이닉스 주식회사 PCIe 인터페이스 장치 및 그 동작 방법
US11789658B2 (en) 2021-04-13 2023-10-17 SK Hynix Inc. Peripheral component interconnect express (PCIe) interface system and method of operating the same
KR20220162345A (ko) 2021-06-01 2022-12-08 에스케이하이닉스 주식회사 PCIe 인터페이스 장치 및 그 동작 방법
TWI773395B (zh) * 2021-06-22 2022-08-01 慧榮科技股份有限公司 記憶體控制器與連結識別方法
CN113971143B (zh) * 2021-10-22 2023-12-05 展讯半导体(成都)有限公司 一种内存控制器、物联网芯片及电子设备
US11755494B2 (en) * 2021-10-29 2023-09-12 Advanced Micro Devices, Inc. Cache line coherence state downgrade
US11706048B1 (en) 2021-12-16 2023-07-18 Qorvo Us, Inc. Multi-protocol bus circuit
CN114510268B (zh) * 2021-12-24 2022-09-20 中国人民解放军战略支援部队航天工程大学 一种基于gpu实现下变频中单精度浮点数累积误差控制方法
US20220342840A1 (en) * 2021-12-30 2022-10-27 Intel Corporation Die-to-die interconnect
US20220327084A1 (en) * 2021-12-30 2022-10-13 Intel Corporation Die-to-die interconnect protocol layer
US11907132B2 (en) 2022-03-23 2024-02-20 International Business Machines Corporation Final cache directory state indication
US11726660B1 (en) * 2022-04-15 2023-08-15 Dell Products L.P. Techniques for flexible physical drive expansion using a loop back connection
US20230342308A1 (en) * 2022-04-22 2023-10-26 Western Digital Technologies, Inc. Reducing Link Up Time In PCIe Systems
CN114942814B (zh) * 2022-06-01 2023-07-11 咪咕视讯科技有限公司 页面组件的聚焦方法、系统、终端设备及介质
US11880686B2 (en) * 2022-06-16 2024-01-23 Ampere Computing Llc Devices transferring cache lines, including metadata on external links
CN115238619B (zh) * 2022-09-20 2023-06-27 北京数字光芯集成电路设计有限公司 数字芯片的子模块后仿真方法和系统
US11914473B1 (en) * 2022-10-20 2024-02-27 Micron Technology, Inc. Data recovery using ordered data requests

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5551005A (en) * 1994-02-25 1996-08-27 Intel Corporation Apparatus and method of handling race conditions in mesi-based multiprocessor system with private caches
CN1231443A (zh) * 1998-02-17 1999-10-13 国际商业机器公司 垂直高速缓冲的伪精确i-高速缓存的包括性
US20030131202A1 (en) * 2000-12-29 2003-07-10 Manoj Khare Mechanism for initiating an implicit write-back in response to a read or snoop of a modified cache line
US20050262250A1 (en) * 2004-04-27 2005-11-24 Batson Brannon J Messaging protocol
CN101359310A (zh) * 2007-07-31 2009-02-04 英特尔公司 在多个核-高速缓存簇中提供内含共享高速缓存
US7716409B2 (en) * 2004-04-27 2010-05-11 Intel Corporation Globally unique transaction identifiers
US20100332767A1 (en) * 2009-06-26 2010-12-30 Ganesh Kumar Controllably Exiting An Unknown State Of A Cache Coherency Directory

Family Cites Families (264)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4228496A (en) 1976-09-07 1980-10-14 Tandem Computers Incorporated Multiprocessor system
US4191941A (en) 1978-04-03 1980-03-04 Rca Corporation Switch matrix for data transfers
US4716523A (en) 1985-06-14 1987-12-29 International Business Machines Corporation Multiple port integrated DMA and interrupt controller and arbitrator
US5537640A (en) * 1988-12-30 1996-07-16 Intel Corporation Asynchronous modular bus architecture with cache consistency
NZ232222A (en) * 1989-01-27 1993-03-26 British Telecomm Alternate burst communication for cordless phones: burst formats
US4959833A (en) * 1989-03-08 1990-09-25 Ics Electronics Corporation Data transmission method and bus extender
CA2045756C (en) * 1990-06-29 1996-08-20 Gregg Bouchard Combined queue for invalidates and return data in multiprocessor system
AU665521B2 (en) * 1990-10-03 1996-01-11 Thinking Machines Corporation Parallel computer system
US5222062A (en) 1991-10-03 1993-06-22 Compaq Computer Corporation Expandable communication system with automatic data concentrator detection
US5434993A (en) * 1992-11-09 1995-07-18 Sun Microsystems, Inc. Methods and apparatus for creating a pending write-back controller for a cache controller on a packet switched memory bus employing dual directories
EP0600626A1 (en) * 1992-11-13 1994-06-08 Cyrix Corporation Coherency for write-back cache in a system designed for write-through cache
US5325360A (en) * 1992-12-09 1994-06-28 National Semiconductor Corporation Controllable PCM state machine user interface
US5394555A (en) * 1992-12-23 1995-02-28 Bull Hn Information Systems Inc. Multi-node cluster computer system incorporating an external coherency unit at each node to insure integrity of information stored in a shared, distributed memory
US5432775A (en) 1993-12-03 1995-07-11 Advanced Micro Devices, Inc. Auto negotiation system for a communications network
US5572703A (en) * 1994-03-01 1996-11-05 Intel Corporation Method and apparatus for snoop stretching using signals that convey snoop results
US5383143A (en) 1994-03-30 1995-01-17 Motorola, Inc. Self re-seeding linear feedback shift register (LFSR) data processing system for generating a pseudo-random test bit stream and method of operation
EP0706138A1 (en) * 1994-10-03 1996-04-10 International Business Machines Corporation Alternating data valid control signals for high performance data transfer
EP0707269A1 (en) * 1994-10-11 1996-04-17 International Business Machines Corporation Cache coherence network for a multiprocessor data processing system
DE69616402T2 (de) * 1995-03-31 2002-07-18 Sun Microsystems Inc Schnelle Zweitor-Cachesteuerungsschaltung für Datenprozessoren in einem paketvermittelten cachekohärenten Multiprozessorsystem
DE69628493T2 (de) * 1995-03-31 2004-05-19 Sun Microsystems, Inc., Santa Clara Cache-kohärentes Computersystem, das Entwertungs- und Rückschreiboperationen minimiert
US5898826A (en) * 1995-11-22 1999-04-27 Intel Corporation Method and apparatus for deadlock-free routing around an unusable routing component in an N-dimensional network
US5983326A (en) * 1996-07-01 1999-11-09 Sun Microsystems, Inc. Multiprocessing system including an enhanced blocking mechanism for read-to-share-transactions in a NUMA mode
CN1179043A (zh) * 1996-09-20 1998-04-15 摩托罗拉公司 Tdm/tdma系统中离散可变的时隙宽度
US5991819A (en) * 1996-12-03 1999-11-23 Intel Corporation Dual-ported memory controller which maintains cache coherency using a memory line status table
US6249520B1 (en) * 1997-10-24 2001-06-19 Compaq Computer Corporation High-performance non-blocking switch with multiple channel ordering constraints
US6052760A (en) * 1997-11-05 2000-04-18 Unisys Corporation Computer system including plural caches and utilizing access history or patterns to determine data ownership for efficient handling of software locks
US5987056A (en) * 1997-11-13 1999-11-16 Lsi Logic Corporation PN sequence hopping method and system
US6163608A (en) * 1998-01-09 2000-12-19 Ericsson Inc. Methods and apparatus for providing comfort noise in communications systems
US6334172B1 (en) * 1998-02-17 2001-12-25 International Business Machines Corporation Cache coherency protocol with tagged state for modified values
US6141733A (en) * 1998-02-17 2000-10-31 International Business Machines Corporation Cache coherency protocol with independent implementation of optimized cache operations
US6631448B2 (en) * 1998-03-12 2003-10-07 Fujitsu Limited Cache coherence unit for interconnecting multiprocessor nodes having pipelined snoopy protocol
US7471075B2 (en) 1998-04-17 2008-12-30 Unique Technologies, Llc Multi-test Arc fault circuit interrupter tester
EP0991222B1 (en) * 1998-09-30 2003-04-16 Alcatel Method and arrangements for transition between a low power state and a full power state in a communication system
GB2342823B (en) * 1998-10-16 2000-11-29 Marconi Comm Ltd Communication system
US6526481B1 (en) * 1998-12-17 2003-02-25 Massachusetts Institute Of Technology Adaptive cache coherence protocols
US6393529B1 (en) * 1998-12-21 2002-05-21 Advanced Micro Devices, Inc. Conversation of distributed memory bandwidth in multiprocessor system with cache coherency by transmitting cancel subsequent to victim write
US6556634B1 (en) * 1999-02-10 2003-04-29 Ericsson, Inc. Maximum likelihood rake receiver for use in a code division, multiple access wireless communication system
US6185250B1 (en) * 1999-03-10 2001-02-06 Lucent Technologies Inc. Training of level learning modems
CN100387030C (zh) * 1999-05-28 2008-05-07 基础能源公司 开-关键控及具有动态路由和配置的节点到节点信息传递的无线收发器网络
US6487621B1 (en) * 1999-08-17 2002-11-26 Compaq Information Technologies Group, L.P. Architecture, system and method for ensuring an ordered transaction on at least one of a plurality of multi-processor buses that experience a hit-to-modified snoop cycle
KR100566289B1 (ko) * 1999-09-03 2006-03-30 삼성전자주식회사 데이타 링크 맵을 이용한 브이5.2 계층 2의 비활성화 제어 방법 및 장치
US7010607B1 (en) * 1999-09-15 2006-03-07 Hewlett-Packard Development Company, L.P. Method for training a communication link between ports to correct for errors
US6754185B1 (en) * 1999-09-27 2004-06-22 Koninklijke Philips Electronics N.V. Multi link layer to single physical layer interface in a node of a data communication system
US6751698B1 (en) * 1999-09-29 2004-06-15 Silicon Graphics, Inc. Multiprocessor node controller circuit and method
US6674720B1 (en) * 1999-09-29 2004-01-06 Silicon Graphics, Inc. Age-based network arbitration system and method
US6763034B1 (en) * 1999-10-01 2004-07-13 Stmicroelectronics, Ltd. Connection ports for interconnecting modules in an integrated circuit
US6320406B1 (en) 1999-10-04 2001-11-20 Texas Instruments Incorporated Methods and apparatus for a terminated fail-safe circuit
US6665832B1 (en) * 2000-03-31 2003-12-16 Qualcomm, Incorporated Slotted mode decoder state metric initialization
US6865231B1 (en) * 2000-06-20 2005-03-08 Hewlett-Packard Development Company, L.P. High-speed interconnection adapter having automated crossed differential pair correction
US6961347B1 (en) * 2000-06-20 2005-11-01 Hewlett-Packard Development Company, L.P. High-speed interconnection link having automated lane reordering
US7124252B1 (en) * 2000-08-21 2006-10-17 Intel Corporation Method and apparatus for pipelining ordered input/output transactions to coherent memory in a distributed memory, cache coherent, multi-processor system
US6668335B1 (en) 2000-08-31 2003-12-23 Hewlett-Packard Company, L.P. System for recovering data in a multiprocessor system comprising a conduction path for each bit between processors where the paths are grouped into separate bundles and routed along different paths
US6892319B2 (en) * 2000-09-08 2005-05-10 Hewlett-Packard Development Company, L.P. Method for verifying abstract memory models of shared memory multiprocessors
US7327754B2 (en) 2000-09-28 2008-02-05 Teridian Semiconductor, Corp. Apparatus and method for freezing the states of a receiver during silent line state operation of a network device
US7236490B2 (en) * 2000-11-17 2007-06-26 Foundry Networks, Inc. Backplane interface adapter
US7596139B2 (en) * 2000-11-17 2009-09-29 Foundry Networks, Inc. Backplane interface adapter with error control and redundant fabric
EP1211837A1 (en) * 2000-12-04 2002-06-05 Telefonaktiebolaget Lm Ericsson Unequal error protection in a packet transmission system
EP1217613A1 (fr) * 2000-12-19 2002-06-26 Koninklijke Philips Electronics N.V. Reconstitution de trames manquantes ou mauvaises en téléphonie cellulaire
US20020161975A1 (en) * 2001-02-23 2002-10-31 Zilavy Daniel V. Cache to cache copying of clean data
US7231500B2 (en) * 2001-03-22 2007-06-12 Sony Computer Entertainment Inc. External data interface in a computer architecture for broadband networks
US6987947B2 (en) 2001-10-30 2006-01-17 Unwired Technology Llc Multiple channel wireless communication system
US20030093632A1 (en) * 2001-11-12 2003-05-15 Intel Corporation Method and apparatus for sideband read return header in memory interconnect
US6941425B2 (en) * 2001-11-12 2005-09-06 Intel Corporation Method and apparatus for read launch optimizations in memory interconnect
US7227845B2 (en) * 2001-12-11 2007-06-05 Motorola, Inc. Method and apparatus for enabling a communication resource reset
US7117311B1 (en) * 2001-12-19 2006-10-03 Intel Corporation Hot plug cache coherent interface method and apparatus
US7030737B2 (en) 2002-03-01 2006-04-18 Hewlett-Packard Development Company, L.P. Apparatus, system, and method for indicating a level of network activity
US7200186B2 (en) 2002-03-14 2007-04-03 Intel Corporation Methods and apparatus for reducing power usage of a transmitter and receiver coupled via a differential serial data link
US7334047B1 (en) * 2002-03-18 2008-02-19 Cisco Technology, Inc. Method and system for selective link state advertisement blocking over a data network area
US7653790B2 (en) * 2002-05-13 2010-01-26 Glasco David B Methods and apparatus for responding to a request cluster
US7020729B2 (en) * 2002-05-16 2006-03-28 Intel Corporation Protocol independent data transmission interface
US6973545B2 (en) * 2002-06-28 2005-12-06 Sun Microsystems, Inc. System with a directory based coherency protocol and split ownership and access right coherence mechanism
US20040028074A1 (en) * 2002-07-26 2004-02-12 Gary Huff Physical layer device with line state encoding
US7093172B2 (en) * 2002-08-07 2006-08-15 Broadcom Corporation System and method for determining on-chip bit error rate (BER) in a communication system
US8037224B2 (en) * 2002-10-08 2011-10-11 Netlogic Microsystems, Inc. Delegating network processor operations to star topology serial bus interfaces
US7720135B2 (en) * 2002-11-07 2010-05-18 Intel Corporation System, method and device for autonegotiation
US7505486B2 (en) * 2002-11-19 2009-03-17 Hewlett-Packard Development Company, L.P. Degradable network data path transmission scheme
US7203853B2 (en) * 2002-11-22 2007-04-10 Intel Corporation Apparatus and method for low latency power management on a serial data link
US20040174570A1 (en) 2002-12-02 2004-09-09 Plunkett Richard Thomas Variable size dither matrix usage
US6892283B2 (en) * 2002-12-05 2005-05-10 International Business Machines Corporation High speed memory cloner with extended cache coherency protocols and responses
US7525989B2 (en) * 2002-12-16 2009-04-28 Intel Corporation System, method and device for time slot status messaging among SONET nodes
US6922756B2 (en) * 2002-12-19 2005-07-26 Intel Corporation Forward state for use in cache coherency in a multiprocessor system
US7047475B2 (en) * 2003-02-04 2006-05-16 Hewlett-Packard Development Company, L.P. CRC encoding scheme for conveying status information
US7535836B2 (en) * 2003-02-12 2009-05-19 Broadcom Corporation Method and system to provide word-level flow control using spare link bandwidth
GB2399722A (en) * 2003-03-21 2004-09-22 Sony Uk Ltd Data communication synchronisation
US7464307B2 (en) * 2003-03-25 2008-12-09 Intel Corporation High performance serial bus testing methodology
US7426597B1 (en) * 2003-05-07 2008-09-16 Nvidia Corporation Apparatus, system, and method for bus link width optimization of a graphics system
US7136953B1 (en) 2003-05-07 2006-11-14 Nvidia Corporation Apparatus, system, and method for bus link width optimization
US7792118B2 (en) * 2003-06-19 2010-09-07 Polytechnic University Switch module memory structure and per-destination queue flow control for use in a switch
US7577727B2 (en) * 2003-06-27 2009-08-18 Newisys, Inc. Dynamic multiple cluster system reconfiguration
US20050027876A1 (en) * 2003-07-29 2005-02-03 Toshitomo Umei Data transmission method, data transmission system, and data transmission apparatus
CN1320464C (zh) * 2003-10-23 2007-06-06 英特尔公司 用于维持共享高速缓存一致性的方法和设备
US7146284B2 (en) * 2003-11-07 2006-12-05 Texas Instruments Incorporated Method of testing phase lock loop status during a Serializer/Deserializer internal loopback built-in self-test
EP2242231A1 (en) * 2003-11-12 2010-10-20 Qualcomm Incorporated High data rate interface with improved link control
US8090857B2 (en) * 2003-11-24 2012-01-03 Qualcomm Atheros, Inc. Medium access control layer that encapsulates data from a plurality of received data units into a plurality of independently transmittable blocks
US7440468B2 (en) * 2003-12-11 2008-10-21 International Business Machines Corporation Queue management of a global link control byte in an input/output subsystem
US8009563B2 (en) * 2003-12-19 2011-08-30 Broadcom Corporation Method and system for transmit scheduling for multi-layer network interface controller (NIC) operation
US7631118B2 (en) 2003-12-31 2009-12-08 Intel Corporation Lane to lane deskewing via non-data symbol processing for a serial point to point link
JP4005974B2 (ja) * 2004-01-09 2007-11-14 株式会社東芝 通信装置、通信方法、および通信システム
US7856534B2 (en) * 2004-01-15 2010-12-21 Hewlett-Packard Development Company, L.P. Transaction references for requests in a multi-processor network
US8176259B2 (en) * 2004-01-20 2012-05-08 Hewlett-Packard Development Company, L.P. System and method for resolving transactions in a cache coherency protocol
US7620696B2 (en) * 2004-01-20 2009-11-17 Hewlett-Packard Development Company, L.P. System and method for conflict responses in a cache coherency protocol
US7177987B2 (en) * 2004-01-20 2007-02-13 Hewlett-Packard Development Company, L.P. System and method for responses between different cache coherency protocols
US20050172091A1 (en) * 2004-01-29 2005-08-04 Rotithor Hemant G. Method and an apparatus for interleaving read data return in a packetized interconnect to memory
US20050240734A1 (en) * 2004-04-27 2005-10-27 Batson Brannon J Cache coherence protocol
US7210000B2 (en) * 2004-04-27 2007-04-24 Intel Corporation Transmitting peer-to-peer transactions through a coherent interface
WO2005107119A1 (ja) * 2004-04-30 2005-11-10 Sharp Kabushiki Kaisha 無線通信システム
US7219220B2 (en) 2004-05-21 2007-05-15 Intel Corporation Methods and apparatuses for resetting the physical layers of two agents interconnected through a link-based interconnection
CN1700639A (zh) * 2004-05-21 2005-11-23 华为技术有限公司 导出和导入无线局域网鉴别与保密基础结构证书信息方法
US8046488B2 (en) * 2004-05-21 2011-10-25 Intel Corporation Dynamically modulating link width
US7957428B2 (en) 2004-05-21 2011-06-07 Intel Corporation Methods and apparatuses to effect a variable-width link
US7313712B2 (en) 2004-05-21 2007-12-25 Intel Corporation Link power saving state
US20060041696A1 (en) * 2004-05-21 2006-02-23 Naveen Cherukuri Methods and apparatuses for the physical layer initialization of a link-based system interconnect
US20060041715A1 (en) 2004-05-28 2006-02-23 Chrysos George Z Multiprocessor chip having bidirectional ring interconnect
US7467358B2 (en) * 2004-06-03 2008-12-16 Gwangju Institute Of Science And Technology Asynchronous switch based on butterfly fat-tree for network on chip application
US7295618B2 (en) * 2004-06-16 2007-11-13 International Business Machines Corporation Automatic adaptive equalization method and system for high-speed serial transmission link
US7436836B2 (en) * 2004-06-30 2008-10-14 Cisco Technology, Inc. Method and apparatus for detecting support for a protocol defining supplemental headers
US8161429B1 (en) * 2004-08-20 2012-04-17 Altera Corporation Methods and apparatus for initializing serial links
KR100579053B1 (ko) 2004-08-26 2006-05-12 삼성전자주식회사 스마트 카드와 메모리 카드간의 멀티 인터페이스 방법 및멀티 인터페이스 카드
US20060047862A1 (en) * 2004-09-02 2006-03-02 International Business Machines Corporation Automatic hardware data link initialization
US9727468B2 (en) * 2004-09-09 2017-08-08 Intel Corporation Resolving multi-core shared cache access conflicts
US7191255B2 (en) * 2004-10-27 2007-03-13 Intel Corporation Transaction layer link down handling for PCI express
CN100384118C (zh) * 2004-11-03 2008-04-23 上海贝尔阿尔卡特股份有限公司 处理通用成帧规程帧的方法和装置
US7738484B2 (en) * 2004-12-13 2010-06-15 Intel Corporation Method, system, and apparatus for system level initialization
US7761719B2 (en) * 2005-03-28 2010-07-20 Akros Silicon Inc. Ethernet module
WO2006109207A1 (en) * 2005-04-13 2006-10-19 Koninklijke Philips Electronics N.V. Electronic device and method for flow control
US7613864B2 (en) * 2005-04-22 2009-11-03 Sun Microsystems, Inc. Device sharing
US7564904B2 (en) 2005-05-03 2009-07-21 Texas Instruments Incorporated Apparatus for and method of detection of powered devices over a network
US7539801B2 (en) * 2005-05-27 2009-05-26 Ati Technologies Ulc Computing device with flexibly configurable expansion slots, and method of operation
US7694060B2 (en) * 2005-06-17 2010-04-06 Intel Corporation Systems with variable link widths based on estimated activity levels
US7620694B2 (en) * 2005-09-27 2009-11-17 Intel Corporation Early issue of transaction ID
US7633877B2 (en) 2005-11-18 2009-12-15 Intel Corporation Method and apparatus for meeting compliance for debugging and testing a multi-speed, point-to-point link
US20070239922A1 (en) * 2005-12-09 2007-10-11 Horigan John W Technique for link reconfiguration
US7924708B2 (en) * 2005-12-13 2011-04-12 Intel Corporation Method and apparatus for flow control initialization
US7606981B2 (en) * 2005-12-19 2009-10-20 Intel Corporation System and method for reducing store latency
CN1996782B (zh) * 2005-12-26 2010-05-05 中兴通讯股份有限公司 一种空域自适应链路的天线选择指示方法
US7430628B2 (en) * 2006-01-10 2008-09-30 Kabushiki Kaisha Toshiba System and method for optimized allocation of shared processing resources
US7512741B1 (en) * 2006-01-11 2009-03-31 Intel Corporation Two-hop source snoop based messaging protocol
US7543115B1 (en) * 2006-01-11 2009-06-02 Intel Corporation Two-hop source snoop based cache coherence protocol
JP4572169B2 (ja) * 2006-01-26 2010-10-27 エヌイーシーコンピュータテクノ株式会社 マルチプロセッサシステム及びその動作方法
US9390015B2 (en) * 2006-03-16 2016-07-12 International Business Machines Corporation Method for performing cacheline polling utilizing a store and reserve instruction
US7783959B2 (en) * 2006-03-23 2010-08-24 Intel Corporation Apparatus and method for reduced power consumption communications over a physical interconnect
US7681093B2 (en) * 2006-03-31 2010-03-16 Intel Corporation Redundant acknowledgment in loopback entry
US7743129B2 (en) 2006-05-01 2010-06-22 International Business Machines Corporation Methods and arrangements to detect a failure in a communication network
US20070260615A1 (en) * 2006-05-08 2007-11-08 Eran Shen Media with Pluggable Codec
US7536515B2 (en) * 2006-06-30 2009-05-19 Intel Corporation Repeated conflict acknowledgements in a cache coherency protocol
US7506108B2 (en) * 2006-06-30 2009-03-17 Intel Corporation Requester-generated forward for late conflicts in a cache coherency protocol
US7721050B2 (en) * 2006-06-30 2010-05-18 Intel Corporation Re-snoop for conflict resolution in a cache coherency protocol
WO2008018004A2 (en) * 2006-08-08 2008-02-14 Koninklijke Philips Electronics N.V. Electronic device and method for synchronizing a communication
US8059009B2 (en) * 2006-09-15 2011-11-15 Itron, Inc. Uplink routing without routing table
US7600080B1 (en) * 2006-09-22 2009-10-06 Intel Corporation Avoiding deadlocks in a multiprocessor system
GB2443465A (en) * 2006-11-06 2008-05-07 Fujitsu Ltd Communication systems
US20080140724A1 (en) * 2006-12-06 2008-06-12 David Flynn Apparatus, system, and method for servicing object requests within a storage controller
EP2122954A2 (en) 2007-01-15 2009-11-25 Koninklijke Philips Electronics N.V. Method of generating low peak-to-average power ratio ( papr) binary preamble sequences for ofdm systems
DE102007007136B3 (de) 2007-02-09 2008-08-28 Siemens Ag Radelektronik und Verfahren zum Betreiben einer Radelektronik
US8428175B2 (en) * 2007-03-09 2013-04-23 Qualcomm Incorporated Quadrature modulation rotating training sequence
US7978635B2 (en) 2007-03-21 2011-07-12 Qualcomm Incorporated H-ARQ acknowledgment detection validation by re-decoding
EP1973254B1 (en) * 2007-03-22 2009-07-15 Research In Motion Limited Device and method for improved lost frame concealment
CA2687064C (en) * 2007-05-08 2012-12-04 Interdigital Technology Corporation Method and apparatus for providing piggybacked positive acknowledgement/negative acknowledgement field indicator and a polling indicator
US7899111B2 (en) * 2007-08-07 2011-03-01 Intel Corporation Link interface technique including data indicator symbols
CA2632031A1 (en) * 2007-09-05 2009-03-05 Faisal Dada Aligning data on parallel transmission lines
US20090125363A1 (en) * 2007-10-22 2009-05-14 Nokia Siemens Networks Oy Method, apparatus and computer program for employing a frame structure in wireless communication
EP2063581A1 (en) * 2007-11-20 2009-05-27 STMicroelectronics (Grenoble) SAS Transferring a stream of data between first and second electronic devices via a network on-chip
US8392663B2 (en) * 2007-12-12 2013-03-05 Mips Technologies, Inc. Coherent instruction cache utilizing cache-op execution resources
US8179901B2 (en) * 2008-02-11 2012-05-15 Vitesse Semiconductor Corporation System and method for squelching a recovered clock in an ethernet network
EP2248230B1 (en) 2008-02-29 2014-04-16 Hewlett-Packard Development Company, L.P. Modular system and retractable assembly for electronic devices
DE102008012979A1 (de) * 2008-03-06 2009-09-10 Gip Ag Verfahren und Programm zum Bereitstellen von Datenkohärenz in Netzwerken
US7492807B1 (en) 2008-04-07 2009-02-17 International Business Machines Corporation Pseudo-random bit sequence (PRBS) synchronization for interconnects with dual-tap scrambling devices and methods
CN102016812B (zh) * 2008-04-28 2014-06-11 惠普开发有限公司 虚拟中断模式接口和用于虚拟化中断模式的方法
US8762652B2 (en) * 2008-04-30 2014-06-24 Freescale Semiconductor, Inc. Cache coherency protocol in a data processing system
CN101599811B (zh) * 2008-06-02 2011-04-06 华为技术有限公司 一种数据处理装置,通信设备以及数据处理方法
US7769048B2 (en) 2008-06-25 2010-08-03 Intel Corporation Link and lane level packetization scheme of encoding in serial links
US8201069B2 (en) * 2008-07-01 2012-06-12 International Business Machines Corporation Cyclical redundancy code for use in a high-speed serial link
US8250311B2 (en) * 2008-07-07 2012-08-21 Intel Corporation Satisfying memory ordering requirements between partial reads and non-snoop accesses
US8205045B2 (en) * 2008-07-07 2012-06-19 Intel Corporation Satisfying memory ordering requirements between partial writes and non-snoop accesses
CN101325461B (zh) * 2008-07-25 2011-04-27 浙江大学 基于无速率码的认知无线电通信链路的建立和维护方法
KR101493921B1 (ko) * 2008-09-08 2015-02-16 삼성전자주식회사 이동/핸드헬드 신호 수신을 위해 설계된 디지탈 텔레비전 수신기의 서브-채널 획득
CN104122564B (zh) * 2008-09-10 2018-08-31 耐克斯特纳威公司 广域定位系统
US9119165B2 (en) * 2009-09-10 2015-08-25 Nextnav, Llc Coding in a wide area positioning system (WAPS)
US8265071B2 (en) * 2008-09-11 2012-09-11 Juniper Networks, Inc. Methods and apparatus related to a flexible data center security architecture
CN101430664B (zh) * 2008-09-12 2010-07-28 中国科学院计算技术研究所 一种多处理器系统及Cache一致性消息传输方法
EP2173066B1 (en) 2008-10-01 2012-05-16 STMicroelectronics Srl Method of exchanging information in a Network-on-Chip communication network, corresponding Network-on-Chip communication network and computer program product
US8531943B2 (en) * 2008-10-29 2013-09-10 Adapteva Incorporated Mesh network
KR100988809B1 (ko) * 2008-11-06 2010-10-20 주식회사 하이닉스반도체 반도체 메모리 장치 및 출력인에이블 신호 생성 방법
US8706479B2 (en) * 2008-11-14 2014-04-22 Broadcom Corporation Packet loss concealment for sub-band codecs
CN101437033B (zh) * 2008-12-16 2012-07-11 杭州华三通信技术有限公司 一种支持可变速率的方法和网络设备
US8401038B2 (en) * 2008-12-17 2013-03-19 Viasat, Inc. False lock detection for physical layer frame synchronization
US8799582B2 (en) * 2008-12-30 2014-08-05 Intel Corporation Extending cache coherency protocols to support locally buffered data
US8026726B2 (en) * 2009-01-23 2011-09-27 Silicon Image, Inc. Fault testing for interconnections
KR101598093B1 (ko) * 2009-02-02 2016-02-26 엘지전자 주식회사 송/수신 시스템 및 데이터 처리 방법
KR20100092353A (ko) * 2009-02-12 2010-08-20 엘지전자 주식회사 트래픽 암호화 키 관리방법 및 장치
KR101133256B1 (ko) * 2009-02-27 2012-04-09 한국과학기술원 시그니처 정보를 이용한 물리계층에서의 타임스탬프 처리장치 및 그 방법
WO2010096969A1 (zh) * 2009-02-27 2010-09-02 华为技术有限公司 无源光网络中发送上行传送帧的方法及设备
US20100228922A1 (en) 2009-03-09 2010-09-09 Deepak Limaye Method and system to perform background evictions of cache memory lines
US8401400B2 (en) * 2009-03-10 2013-03-19 Tyco Electronics Subsea Communications Llc Detection of data in signals with data pattern dependent signal distortion
CN101854331A (zh) * 2009-04-02 2010-10-06 天际微芯(北京)科技有限公司 训练序列结构及训练方法
US9690625B2 (en) * 2009-06-16 2017-06-27 Oracle America, Inc. System and method for out-of-order resource allocation and deallocation in a threaded machine
US8335911B2 (en) * 2009-05-21 2012-12-18 Oracle America, Inc. Dynamic allocation of resources in a threaded, heterogeneous processor
US8199759B2 (en) 2009-05-29 2012-06-12 Intel Corporation Method and apparatus for enabling ID based streams over PCI express
CN101561794B (zh) * 2009-06-05 2012-07-04 威盛电子股份有限公司 通用串行总线装置
US8239704B2 (en) * 2009-06-12 2012-08-07 Cray Inc. Global clock via embedded spanning tree
WO2010147264A1 (en) * 2009-06-16 2010-12-23 Lg Electronics Inc. Method of exchanging messages and transmitting and receiving devices
US20100332877A1 (en) 2009-06-30 2010-12-30 Yarch Mark A Method and apparatus for reducing power consumption
US8831666B2 (en) * 2009-06-30 2014-09-09 Intel Corporation Link power savings with state retention
CN101695193A (zh) * 2009-09-27 2010-04-14 上海华为技术有限公司 一种下行数据发送和下行数据接收的方法和装置
US8799586B2 (en) 2009-09-30 2014-08-05 Intel Corporation Memory mirroring and migration at home agent
US8327228B2 (en) * 2009-09-30 2012-12-04 Intel Corporation Home agent data and memory management
US8819305B2 (en) * 2009-11-16 2014-08-26 Intel Corporation Directly providing data messages to a protocol layer
US8621128B2 (en) * 2009-12-04 2013-12-31 St-Ericsson Sa Methods and systems for reliable link startup
US9100809B2 (en) * 2009-12-21 2015-08-04 Julia Olincy Olincy Automatic response option mobile system for responding to incoming texts or calls or both
US8301813B2 (en) * 2009-12-24 2012-10-30 Ati Technologies Ulc Method and device for disabling a higher version of a computer bus and interconnection protocol for interoperability with a device compliant to a lower version of the computer bus and interconnection protocol
US20120227045A1 (en) 2009-12-26 2012-09-06 Knauth Laura A Method, apparatus, and system for speculative execution event counter checkpointing and restoring
US8804960B2 (en) * 2010-02-22 2014-08-12 International Business Machines Corporation Implementing known scrambling relationship among multiple serial links
US8868846B2 (en) * 2010-03-19 2014-10-21 Netapp, Inc. Method and system for maintaining data coherency across a network
US8473567B2 (en) 2010-03-29 2013-06-25 Intel Corporation Generating a packet including multiple operation codes
US8514885B2 (en) * 2010-03-30 2013-08-20 International Business Machines Corporation Using variable length packets to embed extra network control information
US8539260B2 (en) * 2010-04-05 2013-09-17 Intel Corporation Method, apparatus, and system for enabling platform power states
CN101867401B (zh) * 2010-05-04 2013-11-20 西安交通大学 一种遮挡躲避的60GHz多天线系统及其信号处理方法
CN102238623B (zh) * 2010-05-06 2014-04-09 中兴通讯股份有限公司 加快无线链路控制窗口状态应答的方法及基站子系统
JP2011248814A (ja) * 2010-05-31 2011-12-08 Nec Corp PCIExpressリンクエラー検出及び自動復旧機能を備えたデバイス
US9448938B2 (en) * 2010-06-09 2016-09-20 Micron Technology, Inc. Cache coherence protocol for persistent memories
CN101867452B (zh) 2010-06-10 2013-07-17 国网电力科学研究院 一种电力专用串行实时总线的通信方法
KR101323055B1 (ko) * 2010-06-17 2013-10-29 엘지디스플레이 주식회사 내부 디스플레이 포트 인터페이스 테스트 방법 및 장치
CN102315917B (zh) * 2010-07-06 2014-12-17 瑞昱半导体股份有限公司 一种用于信号传输的省电方法及装置
CN102377608B (zh) * 2010-08-12 2014-07-09 盛科网络(苏州)有限公司 物理层故障模拟系统及方法
US8656115B2 (en) * 2010-08-20 2014-02-18 Intel Corporation Extending a cache coherency snoop broadcast protocol with directory information
WO2012038546A1 (en) * 2010-09-23 2012-03-29 St-Ericsson Sa Multi-lane data transmission de-skew
US9104793B2 (en) * 2010-09-24 2015-08-11 Intel Corporation Method and system of adapting communication links to link conditions on a platform
US8751714B2 (en) * 2010-09-24 2014-06-10 Intel Corporation Implementing quickpath interconnect protocol over a PCIe interface
US9146610B2 (en) 2010-09-25 2015-09-29 Intel Corporation Throttling integrated link
US8805196B2 (en) * 2010-09-30 2014-08-12 Teradyne, Inc. Electro-optical communications link
JP5597104B2 (ja) * 2010-11-16 2014-10-01 キヤノン株式会社 データ転送装置及びその制御方法
CN102142987B (zh) * 2010-12-09 2014-01-08 浪潮(北京)电子信息产业有限公司 一种高速串行总线设备及其传输数据的方法
JP2012146041A (ja) * 2011-01-11 2012-08-02 Hitachi Ltd 計算機装置及び信号伝送方法
JP2012155650A (ja) * 2011-01-28 2012-08-16 Toshiba Corp ルータ及びメニーコアシステム
EP2482196B1 (en) * 2011-01-31 2016-06-29 Canon Kabushiki Kaisha Image processing apparatus, printing apparatus and controlling method in image processing apparatus
US8924672B2 (en) * 2011-02-08 2014-12-30 Infineon Technologies Ag Device with processing unit and information storage
US8756378B2 (en) * 2011-02-17 2014-06-17 Oracle International Corporation Broadcast protocol for a network of caches
US8824489B1 (en) * 2011-04-26 2014-09-02 Marvell International Ltd. Physical layer (PHY) devices for use in automotive and industrial applications
US9189424B2 (en) 2011-05-31 2015-11-17 Hewlett-Packard Development Company, L.P. External cache operation based on clean castout messages
US8868955B2 (en) 2011-07-01 2014-10-21 Intel Corporation Enhanced interconnect link width modulation for power savings
US8788890B2 (en) * 2011-08-05 2014-07-22 Apple Inc. Devices and methods for bit error rate monitoring of intra-panel data link
US8514889B2 (en) * 2011-08-26 2013-08-20 Sonics, Inc. Use of common data format to facilitate link width conversion in a router with flexible link widths
US9208110B2 (en) * 2011-11-29 2015-12-08 Intel Corporation Raw memory transaction support
WO2013085501A1 (en) * 2011-12-07 2013-06-13 Intel Corporation Multiple transaction data flow control unit for high-speed interconnect
CN102571571A (zh) * 2011-12-28 2012-07-11 南京邮电大学 一种应用于时延容忍网络的多层次有效路由方法
CN103188059A (zh) 2011-12-28 2013-07-03 华为技术有限公司 快速通道互联系统中数据包重传方法、装置和系统
CN102594745B (zh) * 2011-12-29 2015-02-04 东南大学 单载波频域均衡系统中的同步方法及其实现电路
US8892269B2 (en) 2012-03-30 2014-11-18 Intel Corporation Power down and quick start of thermal sensor
CN102685128B (zh) * 2012-05-09 2015-09-30 东南大学 一种基于状态机的协议构造方法
US9442876B2 (en) 2012-05-18 2016-09-13 Dell Products, Lp System and method for providing network access for a processing node
US8856573B2 (en) * 2012-06-27 2014-10-07 Intel Corporation Setting a number (N) of fast training sequences (FTS) automatically to an optimal value
US9280504B2 (en) 2012-08-24 2016-03-08 Intel Corporation Methods and apparatus for sharing a network interface controller
US8984313B2 (en) 2012-08-31 2015-03-17 Intel Corporation Configuring power management functionality in a processor including a plurality of cores by utilizing a register to store a power domain indicator
US8996757B2 (en) * 2012-09-29 2015-03-31 Intel Corporation Method and apparatus to generate platform correctable TX-RX
US8935578B2 (en) 2012-09-29 2015-01-13 Intel Corporation Method and apparatus for optimizing power and latency on a link
US9003091B2 (en) 2012-10-18 2015-04-07 Hewlett-Packard Development Company, L.P. Flow control for a Serial Peripheral Interface bus
US9479196B2 (en) * 2012-10-22 2016-10-25 Intel Corporation High performance interconnect link layer
US9600431B2 (en) * 2012-10-22 2017-03-21 Intel Corporation High performance interconnect physical layer
US9280507B2 (en) * 2012-10-22 2016-03-08 Intel Corporation High performance interconnect physical layer
DE112013004094B4 (de) 2012-10-22 2018-03-29 Intel Corporation Hochleistungs-Zusammenschaltungs-Bitübertragungsschicht
RU2633126C2 (ru) 2013-02-28 2017-10-11 Интел Корпорейшн Усиление механизма перечисления и/или конфигурации одного протокола межсоединений для другого протокола межсоединений
US9436244B2 (en) * 2013-03-15 2016-09-06 Intel Corporation Adaptive control loop protection for fast and robust recovery from low-power states in high speed serial I/O applications
KR101985157B1 (ko) * 2013-12-26 2019-05-31 인텔 코포레이션 멀티칩 패키지 링크
US9946676B2 (en) * 2015-03-26 2018-04-17 Intel Corporation Multichip package link

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5551005A (en) * 1994-02-25 1996-08-27 Intel Corporation Apparatus and method of handling race conditions in mesi-based multiprocessor system with private caches
CN1231443A (zh) * 1998-02-17 1999-10-13 国际商业机器公司 垂直高速缓冲的伪精确i-高速缓存的包括性
US20030131202A1 (en) * 2000-12-29 2003-07-10 Manoj Khare Mechanism for initiating an implicit write-back in response to a read or snoop of a modified cache line
US20050262250A1 (en) * 2004-04-27 2005-11-24 Batson Brannon J Messaging protocol
US7716409B2 (en) * 2004-04-27 2010-05-11 Intel Corporation Globally unique transaction identifiers
CN101359310A (zh) * 2007-07-31 2009-02-04 英特尔公司 在多个核-高速缓存簇中提供内含共享高速缓存
US20100332767A1 (en) * 2009-06-26 2010-12-30 Ganesh Kumar Controllably Exiting An Unknown State Of A Cache Coherency Directory

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113678422A (zh) * 2019-04-10 2021-11-19 Abb瑞士股份有限公司 用于转发节点数据的方法和聚合服务器

Also Published As

Publication number Publication date
KR20150047551A (ko) 2015-05-04
KR20170012581A (ko) 2017-02-02
US20210117350A1 (en) 2021-04-22
DE112013005093T5 (de) 2015-10-22
KR20180049192A (ko) 2018-05-10
CN104737147A (zh) 2015-06-24
CN104737147B (zh) 2018-11-06
US20150067207A1 (en) 2015-03-05
CN108132892B (zh) 2022-02-11
KR101642086B1 (ko) 2016-07-22
KR101700545B1 (ko) 2017-01-26
KR101815178B1 (ko) 2018-01-04
KR101912074B1 (ko) 2018-10-25
KR20160145197A (ko) 2016-12-19
WO2014065882A1 (en) 2014-05-01
US20240012772A1 (en) 2024-01-11
CN107092565B (zh) 2021-03-12
CN108055214B (zh) 2021-04-13
KR101700261B1 (ko) 2017-01-26
KR101681509B1 (ko) 2016-12-01
US20180095927A1 (en) 2018-04-05
CN108614783A (zh) 2018-10-02
EP2909728A1 (en) 2015-08-26
CN104995614B (zh) 2018-04-06
JP6139689B2 (ja) 2017-05-31
KR20150059721A (ko) 2015-06-02
KR20150077398A (ko) 2015-07-07
KR101815180B1 (ko) 2018-01-04
JP6423040B2 (ja) 2018-11-14
CN104737142A (zh) 2015-06-24
WO2014065878A1 (en) 2014-05-01
KR101686359B1 (ko) 2016-12-13
JP2017188909A (ja) 2017-10-12
RU2014145179A (ru) 2016-05-27
CN107045479A (zh) 2017-08-15
WO2014065877A1 (en) 2014-05-01
CN107102960A (zh) 2017-08-29
KR20170007865A (ko) 2017-01-20
EP3410304B1 (en) 2021-09-22
US10909055B2 (en) 2021-02-02
DE112013007751B3 (de) 2023-01-12
US9626321B2 (en) 2017-04-18
CN104737142B (zh) 2018-03-23
KR20150052102A (ko) 2015-05-13
KR101686360B1 (ko) 2016-12-13
CN107968756B (zh) 2021-10-01
KR20160150653A (ko) 2016-12-30
CN104969206A (zh) 2015-10-07
DE112013004094B4 (de) 2018-03-29
US10204064B2 (en) 2019-02-12
CN108132892A (zh) 2018-06-08
EP3410304A1 (en) 2018-12-05
US9892086B2 (en) 2018-02-13
DE112013004105T5 (de) 2015-04-30
WO2014065879A1 (en) 2014-05-01
KR101861452B1 (ko) 2018-05-25
CN104536933B (zh) 2018-02-13
US9916266B2 (en) 2018-03-13
WO2014065873A1 (en) 2014-05-01
CN107015924B (zh) 2020-10-30
CN104756097B (zh) 2018-05-15
JP2016506548A (ja) 2016-03-03
CN106681938A (zh) 2017-05-17
BR112015006432A2 (pt) 2017-07-04
DE112013002069B4 (de) 2022-12-01
CN106776364A (zh) 2017-05-31
US20140112339A1 (en) 2014-04-24
KR101861312B1 (ko) 2018-05-28
KR101696124B1 (ko) 2017-01-12
CN104303166B (zh) 2018-01-09
US20200356502A1 (en) 2020-11-12
DE112013001360T5 (de) 2014-11-27
CN111737167A (zh) 2020-10-02
KR101691756B1 (ko) 2016-12-30
DE112013001360B4 (de) 2023-03-23
CN104769570A (zh) 2015-07-08
WO2014065875A1 (en) 2014-05-01
CN104487958A (zh) 2015-04-01
DE112013003723B4 (de) 2018-09-13
DE112013002090T5 (de) 2015-01-15
CN108228495A (zh) 2018-06-29
DE112013007752B3 (de) 2023-04-27
US20150261711A1 (en) 2015-09-17
DE112013004094T5 (de) 2015-07-23
DE112013005104T5 (de) 2015-07-02
US20190347226A1 (en) 2019-11-14
CN107045479B (zh) 2020-09-01
KR101815173B1 (ko) 2018-01-30
CN104969206B (zh) 2017-12-26
US9418035B2 (en) 2016-08-16
KR20150063044A (ko) 2015-06-08
WO2014065876A1 (en) 2014-05-01
KR20150070107A (ko) 2015-06-24
CN106776364B (zh) 2020-07-17
KR20170007523A (ko) 2017-01-18
KR101831550B1 (ko) 2018-02-22
CN104995614A (zh) 2015-10-21
KR101847943B1 (ko) 2018-04-11
DE112013002880T5 (de) 2015-03-05
KR20170081728A (ko) 2017-07-12
US11269793B2 (en) 2022-03-08
WO2014065883A1 (en) 2014-05-01
US20170109315A1 (en) 2017-04-20
KR20140137398A (ko) 2014-12-02
KR20170005897A (ko) 2017-01-16
US10248591B2 (en) 2019-04-02
US20140201463A1 (en) 2014-07-17
WO2014065876A9 (en) 2015-02-26
KR101772037B1 (ko) 2017-08-28
CN104391816B (zh) 2018-11-09
US20140215437A1 (en) 2014-07-31
CN104391816A (zh) 2015-03-04
CN104380269A (zh) 2015-02-25
CN107015924A (zh) 2017-08-04
KR101695340B1 (ko) 2017-01-11
US20190391939A1 (en) 2019-12-26
US10380046B2 (en) 2019-08-13
CN104769570B (zh) 2018-05-15
WO2014065880A1 (en) 2014-05-01
US11741030B2 (en) 2023-08-29
US9378171B2 (en) 2016-06-28
US10216661B2 (en) 2019-02-26
US20180143937A1 (en) 2018-05-24
KR20160144510A (ko) 2016-12-16
KR20150003363A (ko) 2015-01-08
KR20160046928A (ko) 2016-04-29
EP2909728A4 (en) 2016-06-22
KR20180018853A (ko) 2018-02-21
CN108228495B (zh) 2021-05-25
CN106815151B (zh) 2021-04-20
KR20160089541A (ko) 2016-07-27
US20180203811A1 (en) 2018-07-19
CN104969207A (zh) 2015-10-07
WO2014065884A1 (en) 2014-05-01
RU2599971C2 (ru) 2016-10-20
US20170083476A1 (en) 2017-03-23
KR101598746B1 (ko) 2016-02-29
KR20140141616A (ko) 2014-12-10
WO2014065873A8 (en) 2014-07-10
CN107968756A (zh) 2018-04-27
DE112013002069T5 (de) 2015-01-08
KR101754890B1 (ko) 2017-07-06
CN104335196B (zh) 2017-10-13
KR20150059775A (ko) 2015-06-02
KR101599852B1 (ko) 2016-03-07
CN104303166A (zh) 2015-01-21
CN107092565A (zh) 2017-08-25
CN108614783B (zh) 2022-11-18
DE112013005086T5 (de) 2015-09-03
KR101905055B1 (ko) 2018-10-08
KR101828756B1 (ko) 2018-02-12
KR20170042379A (ko) 2017-04-18
KR101689998B1 (ko) 2016-12-26
CN106681938B (zh) 2020-08-18
CN104756097A (zh) 2015-07-01
CN104536933A (zh) 2015-04-22
WO2014065881A1 (en) 2014-05-01
KR101755005B1 (ko) 2017-07-06
DE112013007767B3 (de) 2023-04-20
KR20170081730A (ko) 2017-07-12
US20170097907A1 (en) 2017-04-06
US20220114122A1 (en) 2022-04-14
CN108055214A (zh) 2018-05-18
KR20150047550A (ko) 2015-05-04
US20140215112A1 (en) 2014-07-31
RU2579140C1 (ru) 2016-03-27
US20170109286A1 (en) 2017-04-20
CN104335196A (zh) 2015-02-04
CN107102960B (zh) 2021-07-09
KR20150047552A (ko) 2015-05-04
CN104380269B (zh) 2018-01-30
DE112013003723T5 (de) 2015-04-16
KR101615908B1 (ko) 2016-04-27
KR101985120B1 (ko) 2019-05-31
DE112013005090T5 (de) 2015-07-02
US9753885B2 (en) 2017-09-05
US20150081984A1 (en) 2015-03-19
CN104487958B (zh) 2018-05-22
KR20150077397A (ko) 2015-07-07

Similar Documents

Publication Publication Date Title
CN104380269B (zh) 高性能互连相干协议
CN109154924B (zh) 多个上行链路端口设备
CN105718390B (zh) 共享存储器链路中的低功率进入
US10268583B2 (en) High performance interconnect coherence protocol resolving conflict based on home transaction identifier different from requester transaction identifier
CN110366842A (zh) 可调节的重定时器缓冲器
CN107430567A (zh) 共享缓冲存储器路由
CN107111576A (zh) 发布的中断架构
CN108701023A (zh) 带内重定时器寄存器访问
CN104932996B (zh) 用于控制链路接口的未使用硬件的功率消耗的方法、装置和系统
CN116472523A (zh) 器件互连中的源排序
US10120774B2 (en) Coherence protocol tables
CN107005492B (zh) 用于芯片上网络上的多播和缩减通信的系统
CN107003944B (zh) 跨分布式存储器的指针追踪

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant