CN106250347A - 数据处理设备与互连器之间的基于硬件的一致性 - Google Patents
数据处理设备与互连器之间的基于硬件的一致性 Download PDFInfo
- Publication number
- CN106250347A CN106250347A CN201610391254.XA CN201610391254A CN106250347A CN 106250347 A CN106250347 A CN 106250347A CN 201610391254 A CN201610391254 A CN 201610391254A CN 106250347 A CN106250347 A CN 106250347A
- Authority
- CN
- China
- Prior art keywords
- request
- value
- handling equipment
- data handling
- connectors
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/14—Handling requests for interconnection or transfer
- G06F13/16—Handling requests for interconnection or transfer for access to memory bus
- G06F13/1605—Handling requests for interconnection or transfer for access to memory bus based on arbitration
- G06F13/1652—Handling requests for interconnection or transfer for access to memory bus based on arbitration in a multiprocessor architecture
- G06F13/1663—Access to shared memory
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F15/00—Digital computers in general; Data processing equipment in general
- G06F15/16—Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
- G06F15/163—Interprocessor communication
- G06F15/167—Interprocessor communication using a common memory, e.g. mailbox
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0806—Multiuser, multiprocessor or multiprocessing cache systems
- G06F12/0815—Cache consistency protocols
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0806—Multiuser, multiprocessor or multiprocessing cache systems
- G06F12/0815—Cache consistency protocols
- G06F12/0831—Cache consistency protocols using a bus scheme, e.g. with bus monitoring or watching means
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0804—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches with main memory updating
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0806—Multiuser, multiprocessor or multiprocessing cache systems
- G06F12/084—Multiuser, multiprocessor or multiprocessing cache systems with a shared cache
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0877—Cache access modes
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/14—Handling requests for interconnection or transfer
- G06F13/20—Handling requests for interconnection or transfer for access to input/output bus
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/62—Details of cache specific to multiprocessor cache arrangements
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computer Hardware Design (AREA)
- Software Systems (AREA)
- Memory System Of A Hierarchy Structure (AREA)
Abstract
本文公开了数据处理设备与互连器之间的基于硬件的一致性。提供了一种数据处理设备,包括输出端口,该输出端口向被布置为执行一致性协议的互连器发送指示将服从于一致性协议的请求的请求值。输入端口从互连器接收响应于请求值的确认值,一致性管理电路依据请求值和确认值,根据一致性协议来定义数据处理设备的行为规则。存储电路根据行为规则管理数据。还提供了一种互连器,包括输入端口,该输入端口接收由具有存储电路的数据处理设备发布的、指示数据处理设备将服从一致性协议的请求的请求值。输出端口向数据处理设备发送响应于请求值的确认值,一致性管理电路依据请求值和确认值,根据一致性协议来定义互连器的行为规则。
Description
技术领域
本技术涉及数据处理设备和互连器。特别地,其涉及这样的系统中的基于硬件的一致性。
背景技术
多个主设备可以经由互连器访问诸如存储器之类的共享资源(也称为从设备)。如果一些主设备具有本地高速缓存,则在对从存储器取得的数据进行修改后,该数据的修改后的版本有可能可以被存储在本地高速缓存中而不被存回存储器。然而,如果另一主设备需要访问该数据,则会出现问题。特别地,如果主设备访问存储在存储器中的数据版本,则该主设备将对过期数据进行操作,从而导致主设备对于存储器系统的视角缺乏一致性。为了减少这些问题,可实现一致性协议以支配系统中的特定设备的行为,使得所有主设备对数据具有一致的视角(view)。
位于系统中某个位置的软件控制器可以负责以系统保持一致的方式将主设备连接到系统或者将主设备从系统断开的处理。这样的软件控制器可能需要使用硬件组件和软件组件之间的昂贵的通信,来完成连接或者断开处理。
发明内容
从第一示例配置看,提供了一种数据处理设备,包括:输出端口,该输出端口向被布置为执行一致性协议的互连器发送指示将服从于一致性协议的请求的请求值;输入端口,该输入端口从互连器接收响应于该请求值的确认值;一致性管理电路,该一致性管理电路依据请求值和确认值,根据一致性协议来定义数据处理设备的行为规则;以及存储电路,该存储电路根据行为规则管理数据。
从第二示例配置看,提供了一种互连器,包括:输入端口,该输入端口接收由数据处理设备发布的、指示该数据处理设备将服从于一致性协议的请求的请求值;输出端口,该输出端口向数据处理设备发送响应于该请求值的确认值;一致性管理电路,该一致性管理电路依据请求值和确认值,根据一致性协议来定义互连器的行为规则。
从第三示例配置看,提供了一种数据处理设备,包括:输出装置,用于向被布置为执行一致性协议的互连器发送指示将服从于一致性协议的请求的请求值;输入装置,用于从互连器接收响应于该请求值的确认值;一致性管理装置,用于依据请求值和确认值,根据一致性协议来定义数据处理设备的行为规则;以及存储装置,用于根据行为规则管理数据。
从第四示例配置看,提供了一种互连器,包括:输入装置,用于接收由数据处理设备发布的、指示该数据处理设备将服从于一致性协议的请求的请求值;输出装置,用于向数据处理设备发送响应于该请求值的确认值;一致性管理装置,用于依据请求值和确认值,根据一致性协议来定义互连器的行为规则。
从第五示例配置看,提供了一种操作数据处理装置的方法,包括:向被布置为执行一致性协议的互连器发送指示将服从于一致性协议的请求的请求值;从互连器接收响应于该请求值的确认值;依据请求值和确认值,根据一致性协议来定义数据处理设备的行为规则;以及根据行为规则管理数据。
从第六示例配置看,提供了一种操作互连器的方法,包括:接收由数据处理设备发布的、指示该数据处理设备将服从于一致性协议的请求的请求值;向数据处理设备发送响应于该请求值的确认值;依据请求值和确认值,根据一致性协议来定义互连器的行为规则。
附图说明
参考附图中示出的本发明的实施例,仅通过示例进一步描述本发明,其中:
图1示意性地示出了根据一个实施例的主设备和根据一个实施例的互连器;
图2示意性地示出了根据一个实施例的主设备和互连器之间的请求信号和确认信号的交换;
图3示出了根据一个实施例的描述在主设备和互连器的连接与断开期间请求值和确认值如何改变的时间轴;
图4示出了根据一个实施例的描述作为请求值和确认值的交换结果的主设备处的一致性状态的改变的状态图;
图5是示出根据一个实施例的在连接与断开处理期间每个一致性状态处的互连器和主设备的操作行为的图表;
图6示意性地示出了根据一个实施例的使用共享高速缓存的主设备的群组;以及
图7示出了根据一个实施例的一致主设备中的功率控制器与中央处理单元(CPU)之间的通信。
具体实施方式
在参考附图讨论实施例之前,提供了对于实施例的以下描述。注意,在下面的描述中,术语“第一值”被用来指代区别于相应的“第二值”的值。所使用的实际值并不重要。但是,第一值的示例是“1”,第二值的示例是“0”。
根据一个示例配置,提供了一种数据处理设备,包括:输出端口,该输出端口向被布置为执行一致性协议的互连器发送指示将服从于一致性协议的请求的请求值;输入端口,该输入端口从互连器接收响应于请求值的确认值;一致性管理电路,该一致性管理电路依据请求值和确认值且根据一致性协议来定义数据处理设备的行为规则;以及存储电路,该存储电路根据行为规则管理数据。
根据以上所述,数据处理设备被耦合至互连器,而互连器又可以与一个或多个其他数据处理设备和/或从设备耦合。互连器执行一致性协议,从而使得主设备(例如,数据处理设备)可以通过可以保持一致性的方式访问从设备上存储的数据。换言之,如果主设备请求来自从设备的数据,则互连器将促使该数据的最新版本被取回,即使该数据的最新版本被存储在从设备以外的某个位置。一致性管理电路根据一致性协议来定义数据处理设备的行为规则,并且数据处理设备执行这些行为规则。
数据处理设备到一致性系统的连接和断开是使用“握手”协议进行的。先前已经提出使用一致性系统中的某个位置的软件,来管理到该一致性系统的连接与断开期间的握手处理。该软件可以作为例如,主设备的主操作系统的部分运行。这样的软件可以替代地在单独的控制处理器上执行。但是,这种软件通常需要一致性系统的知识,并且一般需要在硬件组件和软件元件之间执行的进行握手的通信。这种通信可能是效率低下的。相反,以上描述的数据处理设备在所连接的设备之间使用硬件来执行握手处理,从而使得请求值和确认值在数据处理设备和互连器之间交换。由一致性管理电路定义并且由数据处理设备执行的行为规则从而可以独立于在该系统中的处理电路(处理器)上执行的软件而被执行。例如,用于连接和断开的握手处理可以完全在硬件上执行,而不需要软件。在一些情况中,行为规则可以在不涉及该系统中的处理电路上执行的软件的情况下被执行。
通过使用硬件来执行用于连接和断开的握手机制,可以高效地执行数据处理设备到一致性系统的连接与断开。另外,由于从一致性系统断开必须在设备可以被下电之前进行,所以可以提供对于数据处理设备的更高效、快速、并且简单的功率管理控制。
在一些实施例中,存储电路包括高速缓存。高速缓存存储数据的本地副本,从而使得数据处理设备无需在数据值每次被访问时都经由互连器与共享存储器设备进行通信而高效地访问数据值。与本技术尤其相关的是,由数据处理设备修改后的数据可以被存储在该数据处理设备的本地高速缓存中的构思。
在一些实施例中,一致性管理电路包括高速缓存刷新电路,该高速缓存刷新电路通过依据请求值和确认值使能高速缓存保存一致数据,来根据一致性协议控制数据处理设备的行为。例如,在一些实施例中,高速缓存刷新电路响应于请求值具有第一请求值并且确认值具有第一确认值,来使能高速缓存保存一致数据,否则阻止高速缓存保存一致数据。结果,如果请求值不具有第一请求值或者确认值不具有第一确认值,则一致数据没有被存储在高速缓存中。该行为继续到请求值具有第一请求值并且确认值具有第一确认值为止。在发生这种情况时,高速缓存不应该包含任何脏的、有效的高速缓存行,因为这样的数据将不会已经被存储。但是,从这点开始,高速缓存保存一致数据(例如,由数据处理设备修改后的数据)。当请求值应该再次改变时,高速缓存刷新将发生。高速缓存刷新是高速缓存的脏的(已经被本地编辑)并且有效的(数据处理设备仍在使用)行被存储回诸如共享存储器之类的从设备的处理。因此,共享存储器随后将包含数据的最新版本。请求值随后改变,这意味着高速缓存将不再被允许存储一致数据。
在一些实施例中,一致性管理电路包括探听控制电路,该探听控制电路通过依据请求值和确认值要求高速缓存对互连器发送的主动访问请求进行响应,来根据一致性协议控制数据处理设备的行为。一般,当数据处理设备希望访问数据值时,其向互连器发布访问请求然后等待来自互连器的包含被请求的数据值的响应。但是,在一些情况中,主动访问请求被发布给数据处理设备。存在很多这种情况可能发生的情景,例如,主动访问请求可以是探听请求和分布式虚拟存储器访问请求中的至少一者。相应地,高速缓存被要求依据请求值和确认值对诸如探听请求和分布式虚拟存储器访问请求之类的主动访问请求进行响应。在一些实施例中,在其他情况下,互连器避免发送主动请求,从而使能数据处理设备进入低功率模式。
在一些实施例中,探听控制电路响应于请求值具有第二请求值并且确认值具有第二确认值,使能高速缓存对互连器发送的主动访问请求进行响应,否则要求高速缓存对互连器发送的主动访问请求进行响应。因此,如果请求值不具有第二请求值并且确认值不具有第二确认值,则高速缓存可被要求对互连器发送的主动访问请求进行响应。在其他情况中,高速缓存没有被要求进行响应,而仍然可能被允许对这些主动访问请求进行响应。
在一些实施例中,一致性管理电路通过依据第一请求值和第一确认值准许对于要保持一致的数据的数据访问请求,来根据一致性协议控制互连器的行为。因此,依据第一请求值和第一确认值,一致性管理电路可以准许或者阻止对于要保持一致的数据的数据访问请求。例如,在一些实施例中,一致性管理电路响应于请求值具有第一请求值并且确认值具有第一确认值而准许数据访问请求,否则不准许数据访问请求。可以通过阻止数据访问请求的生成或者阻止数据访问请求到互连器的传输,而不准许数据访问请求。
在一些实施例中,请求值取决于分量请求值,并且确认值取决于分量确认值。例如,请求值和确认值可以从或者基于各个分量值得出。这些分量值甚至可以被独立发送。
分量请求值可以包括连接请求值和断开请求值;分量确认值可以包括连接确认值和断开确认值。分量值可以是互斥的,从而使得请求值在连接请求值被断言时被断言,并且请求值在断开请求值被断言时被取消断言。这样,一对分量请求值被用于产生综合请求值。类似地,在确认值的情况中,确认值在连接确认值被断言时被断言,并且在断开确认值被断言时被取消断言。
根据第二示例配置,提供了一种互连器,包括:输入端口,该输入端口接收由具有存储电路的数据处理设备发布的、指示数据处理设备将服从于一致性协议的请求的请求值;输出端口,该输出端口向数据处理设备发送响应于请求值的确认值;一致性管理电路,该一致性管理电路依据请求值和确认值,根据一致性协议定义互连器的行为规则。
一般,数据处理设备是连接到互连器或者可连接到互连器的多个数据处理设备之一。
类似于以上描述的数据处理设备,互连器使用硬件执行握手的“另一侧”。因此,数据处理设备经由互连器到一致性系统的连接与断开可以被高效地执行。例如,根据一致性协议为互连器定义、并且由互连器执行的行为规则可以独立于该系统中的处理电路上执行的软件而被执行。这些行为规则可以在无需涉及系统中的处理电路上执行的软件的情况下被执行。
在一些实施例中,一致性管理电路通过对来自数据处理设备的对于要横跨多个数据处理设备保持一致的数据的数据访问请求进行响应来根据一致性协议控制互连器的行为,其中互连器的行为是依据请求值和确认值进行控制的。数据处理设备可以发布对于要横跨多个数据处理设备保持一致的数据的数据访问请求。但是,互连器可以依据请求值和确认值对这样的数据访问请求进行响应,从而使得互连器根据一致性协议进行动作。
例如,在一些实施例中,一致性管理电路响应于请求值具有第一请求值并且确认值具有第一确认值而准许数据访问请求,否则拒绝数据访问请求。如果请求值不具有第一请求值并且确认值不具有第一确认值,则数据访问请求被拒绝。这可以通过简单地忽略数据处理设备发布的数据访问请求实现。在请求值具有第一请求值并且确认值具有第一确认值的情况下,数据访问请求被准许。在这种情况下,数据访问请求被根据一致性协议进行响应。这可以包括向多个数据处理设备中的其他数据处理设备发布例如,探听请求,以确定所请求的数据的更新版本是否存在于其他数据处理设备之一的存储电路中。如果经由探听请求或者经由互连器处的内部记录确定其他数据处理设备中没有一个包含该数据的更新版本,则请求可以被转发给诸如共享存储器之类的从设备。在每种情况中,数据的最新版本可以被互连器获取,并且随后被转发给请求的数据处理设备。
在一些实施例中,一致性管理电路包括探听电路,该探听电路响应于由多个数据处理设备中除该数据处理设备之外的一个数据处理设备发送的数据访问请求,通过依据请求值和确认值生成探听请求并将探听请求发送给该数据处理设备来根据一致性协议控制互连器的行为。如前面已经说明的,在数据处理设备发布对于数据块的数据访问请求到互连器时,探听请求可以被生成并且可以被发送到数据处理设备,互连器可以生成一个或多个探听请求,以确定连接到互连器的其他数据处理设备是否具有存储在从设备(例如,共享存储器)中的数据的更新版本。但是,在一些实施例中,探听电路依据请求值和确认值来生成并发送探听请求。例如,在一些实施例中,探听电路响应于请求值具有第一请求值而准许探听请求被生成并被发送给数据处理设备,探听电路响应于请求值具有第二请求值并且确认值具有第二确认值而禁止探听请求被发送到数据处理设备,否则在探听请求已经被生成的条件下准许探听请求被发送到数据处理设备。所以,在请求值具有第一请求值的情况下,探听请求被允许生成并被发送到数据处理设备。如果请求值具有第二请求值并且确认值具有第二确认值,则探听请求被禁止发送到数据处理设备。该禁止也可以延伸到探听请求本身的生成。在请求值和确认值为不同于所讨论的值的情况下,在探听请求已经被生成的条件下,探听请求被准许发送。换言之,未完成的探听请求被完成,但是新探听请求不被生成。
与数据处理设备的情况一样,在一些实施例中,请求值取决于分量请求值;并且确认值取决于分量确认值。例如,在一些实施例中,分量请求值包括连接请求值和断开请求值;并且分量确认值包括连接确认值和断开确认值。
多个数据处理设备的子集可以具有对于单个高速缓存的、独立于互连器的访问。其可以是组成每个数据处理设备的存储电路,也可以是组成每个数据处理设备的存储电路以外的额外组件。每个数据处理设备的连接与断开、以及前述的硬件握手可以减少多个处理设备共享单个高速缓存时可能出现的问题。这些问题在不清楚哪个数据处理设备负责管理共享高速缓存时出现。特别地,如果访问共享高速缓存的数据处理设备之一将从一致性系统断开,则会导致共享高速缓存被断开或者导致负责高速缓存的数据处理设备脱机从而使得共享高速缓存变得不被管理。
在一些实施例中,输入端口还接收来自多个数据处理设备中的每一个的相关请求值;输出端口还向多个数据处理设备中的每一个发送相关确认值;并且一致性管理电路依据多个数据处理设备中的每个数据处理设备的相关请求值和相关确认值,根据一致性协议定义互连器相对于该数据处理设备的行为规则。互连器因而可以支持多个数据处理设备,这些数据处理设备分别处在到该系统的连接/或断开的不同阶段。
在一些实施例中,提供了包括上述互连器之一、以及包括上述数据处理设备之一在内的多个数据处理设备的系统。
现在,参考附图描述特定实施例。
图1示意性地示出了包括主设备(其是数据处理设备的示例)200和互连器300的一致性系统100。其他主设备或从设备也可以被连接到互连器300,但是图1中没有示出这些设备。主设备200包括CPU 205和高速缓存210。在该实施例中,高速缓存210作为主设备200的部分被提供。但是,在其他实施例中,高速缓存可以与主设备200分离,并且可以在多个主设备中间被共享。高速缓存210由控制器215控制,控制器215准许进行去往以及来自高速缓存210的访问。高速缓存210是存储电路的示例。主设备200还包括一致性管理电路220。一致性管理电路220包括高速缓存刷新电路225和探听控制电路230,这两个电路进一步控制高速缓存210的行为。主设备200还包括输入端口235和输出端口240,主设备200通过输入端口235和输出端口240耦合到互连器300并与互连器300通信。可以提供单个端口来代替单独的输入端口235和输出端口240二者。输入端口235和输出端口240被用来对去往以及来自互连器300的请求信号和确认信号进行断言(assert)以及取消断言(deassert)(从而导致取决于该信号被断言还是未被断言,而进行请求值以及确认值和传输)。
互连器300包括一致性管理电路305。这不同于主设备200中的一致性管理电路220。互连器300中的一致性管理电路305根据一致性协议控制互连器300应对主设备200的行为。一致性管理电路305包括探听电路310。
探听电路310负责探听由请求主设备200经由互连器300发布给从设备的数据访问请求。响应于这些数据访问请求,探听电路310拦截数据访问请求到从设备的发送,并且发布一个或多个被发送到不同于该请求主设备200的一些主设备的探听请求。这些主设备随后向探听请求回应以所请求的数据(如果这些主设备有这些数据的话)。互连器300随后将所获取的数据转发给请求主设备200,或者如果没有主设备返回所请求的数据,则互连器300从从设备获取数据并且将该数据转发给请求主设备200。该处理被执行,从而使得请求主设备200接收到已经被请求过的数据值的最新版本,而不是简单地接收从设备中存储的数据版本(该数据版本有可能是过时的)。
互连器300还包括输出端口315和输入端口320。这些端口被用来将互连器300与主设备200耦合,从而对互连器300和主设备200之间的确认信号进行断言/取消断言。在图1中所示的实施例中,单独的输入端口320和输出端口315被提供,用于将请求信号和确认信号传输到单个主设备200。但是,在其他实施例中,可以提供一个端口,用于多个功能和/或多个不同设备。
互连器300执行一致性协议。一致性协议支配互连器300和主设备200如何进行操作以确保在一致性系统100内部保持一致性。一致性管理电路220、305根据一致性协议,分别定义主设备200和互连器300的一组行为规则。这些行为规则是依据在主设备200和互连器300之间交换的确认信号和请求信号定义的,如图5中所示,并且这些行为规则被主设备200和互连器300执行。这样,依据请求信号和确认信号,主设备200和互连器300的行为可以被控制,从而在一致性系统100中维持一致性。特别地,这些行为规则支配主设备中的高速缓存刷新电路225和探听控制电路230的行为,并且还支配互连器300中的探听电路310的行为,如下面将讨论的。
图2示意性地示出了在主设备200尝试连接到互连器300或者从互连器300断开时的握手处理期间发生的主设备200和互连器300之间的信号交换。特别地,主设备200发送请求信号(SYSCOREQ),该请求信号被互连器300接收。另外,互连器300发送确认信号(SYSCOACK),该确认信号被主设备200接收。
图3是示出请求信号和确认信号的断言和取消断言如何使得主设备200连接到互连器300或者从互连器300断开的时间轴。在时间t0,SYSCOREQ和SYSCOACK二者都为0,主设备200不是一致性系统100的部分。在时间t1,SYSCOREQ被断言(在该示例中,SYSCOREQ的断言意味着SYSCOREQ为“1”)。这指示主设备200希望成为一致性系统100的部分(即,其希望加入该系统)。该信号被互连器300接收,并且使得互连器300通过断言SYSCOACK进行响应(例如,SYSCOACK的值被设置为1)。此时,主设备200是一致性系统100的部分。该过程继续进行,直到主设备200希望离开一致性系统100的时间段t3为止。这是通过一致性主设备取消断言SYSCOREQ(设置值为0)来实现的。当互连器300接收到取消断言的信号时,其通过在时间段t4取消断言SYSCOACK来进行响应,该响应又被主设备200接收。
图4示出了描述主设备200的一个示例实施例的有限状态机。在一致性禁用状态400中,SYSCOREQ和SYSCOACK被取消断言。作为互连器/主设备中的一致性管理电路220、305接收到取消断言的nRESET信号的结果,在任意点进入一致性禁用状态400。在主设备的情况下,这样的信号可以来自例如,CPU 205。从一致性禁用状态400开始,如果SYSCOREQ被断言,则主设备200进入一致性连接状态405。这表示主设备200正在加入一致性系统100的状态。在这种状态中,如果互连器300通过断言SYSCOACK进行响应,则主设备200进入一致性使能状态410。这表示主设备200通过连接到互连器300形成一致性系统100的部分的状态。主设备200保持在一致性使能状态410持续一定的时间段,直到主设备200希望离开一致性系统100为止。此时,主设备200将取消断言SYSCOREQ。所以,主设备200将进入一致性断开状态415。互连器300随后通过取消断言SYSCOACK进行响应,此时主设备200重新进入一致性禁用状态400。
在每个不同状态处,主设备200和互连器300的行为受到图5中所示的不同行为规则的影响。这些行为规则规定,主设备200和互连器300以使得可以保持系统的整体一致性的方式进行动作,尤其是在主设备200加入或者离开一致性系统100时主设备200连接到互连器300以及从互连器300断开期间发生的握手处理期间。
图5示出了指示根据一个实施例的主设备200和互连器300二者的不同行为规则的示例的图表。在一致性禁用状态400中,主设备200的高速缓存210不能包含一致数据(coherent data)。换言之,主设备200不被允许在它的高速缓存210中存储脏数据或者有效数据。另外,在一致性禁用状态400中,主设备200被要求不对互连器300发布的主动访问请求(例如,探听请求)进行响应。另外,主设备200不被允许访问保存在一致性系统100中的数据(该数据是一致的)。这是由主设备200中的一致性管理电路220实施的,该一致性管理电路220阻止当主设备200处于一致性禁用状态400时对于要在一致性系统100间保持一致的数据的任何数据访问请求。在其他实施例中,这在互连器300处可以通过例如,在主设备200处于一致性禁用状态400时,一致性管理电路305忽略、丢弃、或者忽视由主设备200发布的、针对要横跨一致性系统100保持一致的数据的数据访问请求。另外在该状态中,互连器300不能向主设备200发送主动访问请求。这是由例如,互连器300中的探听电路310控制的。因此,如果另一主设备发布数据访问请求,则探听请求将不被生成或者发送给处于一致性禁用状态400的主设备200。这不会影响一致性系统,因为处于一致性禁用状态的主设备不被允许存储一致数据。
在一致性连接状态405中,属于主设备200的任何高速缓存210不能包含任何一致数据(作为自从主设备200上一次被重置以后没有做出任何一致性访问请求的结果,或者作为刷新处理在上一次离开一致性使能状态410之前已经被执行的结果(如下所述))。另外,如前所述,主设备200不能访问一致数据。但是,在这种状态中,互连器300被允许向主设备200发送主动访问请求,并且主设备200必须对该主动访问请求进行响应。该行为由例如,主设备200的一致性通信电路220中的探听控制电路230、以及互连器300的一致性管理电路305中的探听电路310控制。
在一致性使能状态410中,主设备200被连接到一致性系统100,并且是一致性系统100的部分。因此,主设备200的高速缓存210被允许包含一致数据。主设备200还被允许访问一致数据。换言之,响应于由主设备200发布的数据访问请求,互连器300中的一致性管理电路205准许返回要保持一致的数据。这可以通过由互连器300的一致性管理电路305中的探听电路310发布针对其他主设备的主动访问请求(例如,探听请求)以获取主设备200所请求的数据的最新版本来实现。另外,主设备200必须对互连器300发布的主动访问请求进行响应。换言之,探听控制电路230使能主设备经由高速缓存控制器215对探听请求进行响应。另外,互连器300被允许针对处于一致性使能状态410的主设备200发布探听请求。从而,探听电路310被控制,以准许这些探听请求的生成。如已经说明的,在这种状态中,主设备200的高速缓存210被允许存储一致数据。然而,在其他状态中,高速缓存210不被允许存储一致数据。因此,在离开一致性使能状态410之前,高速缓存210必须在进入一致性断开状态之前,在被称为刷新的处理中将任何脏数据和有效数据写出存储器。该处理由一致性管理电路220中的高速缓存刷新电路225控制。
在一致性断开状态415中,主设备200的高速缓存210必须在进入该状态之前被刷新。主设备200必须继续对互连器300发布的主动访问请求进行响应。因此,探听控制电路230将高速缓存控制器215配置为对这些请求进行响应。另外,主设备200不能访问要在一致性系统100中保持一致的数据。这由主设备200中的一致性管理电路220控制,其中该一致性管理电路220不准许针对要保持一致的数据的数据访问请求被发布给互连器300。如上面所说明的,在其他实施例中,这可以由互连器300中的一致性管理电路305本身实施。互连器300必须完成任何未完成的主动访问请求,但是不能生成针对主设备200的任何主动访问请求。这由构成互连器300中的一致性管理电路305的探听电路310控制。
尽管以上的行为规则涉及到探听请求,但是关于互连器300发送的任何主动访问请求需要相同的行为。例如,这些请求包括由互连器300发布给主设备200的分布式虚拟存储器访问请求。
到此为止,已经描述了使用两个不同信号(SYSCOREQ和SYSCOACK)。但是,这些信号中的每一个可以替代地由多个分量信号形成。例如,SYSCOREQ可以由分量请求信号和分量断开请求信号形成,从而使得SYSCOREQ在断开请求信号被断言时被取消断言,并且在连接请求信号被断言时被断言。在这样的示例中,分量信号很可能是互斥的,从而使得没有两个分量信号可以被同时断言。类似地,信号或值SYSCOACK也可以由连接确认信号和断开确认信号组成,从而使得SYSCOACK在断开确认信号被断言时被取消断言,并且在连接确认信号被断言时被断言。表示不同信号的其他方式对于本领域技术人员来说是显而易见的。例如,为了使用用于每种状态的单个值来表示所有四种状态,单个信号可以被提供。
图6示出了一致性系统100包括互连器300和多个主设备200a、200b、200c的实施例。主设备200a、200b、200c与图1中所示的主设备200相同,除了主设备200a、200b的子集包括共享高速缓存500,该共享高速缓存代替形成另一主设备200c的部分的内部高速缓存210。在该实施例中,共享高速缓存可以继续被用于存储一致数据,直到主设备200a和200b二者都从一致性系统断开为止。在其他实施例中,主设备可以具有层级关系。
用于主设备200到一致性系统100的连接与断开的上述握手机制的使用使得即使存在共享高速缓存500也可以高效地操控连接与断开。
图7示意性地示出了根据一个实施例的主设备200的示例。在该实施例中,功率控制器245与CPU 205通信,从而管理CPU 205的断电,例如,以在CPU 205向功率控制器指示其处于空闲状态时减少主设备200的能量消耗。此时,功率控制器245向CPU 205指示其想要对CPU 245断电。CPU 205随后可以促成主设备200从一致性系统100的一致性断开。一旦这项工作完成,CPU 205通知功率控制器245断电准备完成。功率控制器245能够对CPU 205断电。
这样,CPU 205或者功率控制器245不需要知晓对方的准确配置。相反,仅需要在每一方提供简单的接口,从而使得查询和响应的交换可以进行。
可以看出,前述实施例使得通过使用硬件来执行用于将主设备200连接到一致性系统100以及从一致性系统100断开的机制成为可能。该机制如下:一致性可以被保持,并且连接和断开可以在不需要涉及软件、并且独立于在一致性系统100中的任意位置的处理电路上执行的软件的条件下被高效进行。在所描述的实施例中,连接和断开完全在硬件中进行。结果,不需要软件通信,因而连接和断开处理可以被适当且高效地进行。另外,硬件可以处理好其自身从系统一致性的添加和移除,因而简单的处理可以被用来协商对于一致性系统100中的CPU 205的断电。该方案是可扩展的。例如,特定的方案不需要为了将要执行的握手机制而知道整个一致性系统100。
在本申请中,词语“被配置为”被用来表示装置的元件具有能够实现所定义的操作的配置。在该上下文中,“配置”代表硬件或软件的互连方式或布置。例如,该装置可以具有提供所定义的操作的专用硬件,或者处理器或者其他数据处理设备可以被编程为执行该功能。“被配置为”并不意味着装置元件需要被改变以提供所定义的操作。
尽管已经参考附图详细描述了本发明的说明性实施例,但是将理解的是,本发明不限于这些精确实施例,并且在不脱离所附权利要求所定义的本发明的范围和精神的条件下本领域技术人员可以进行各种改变、添加、以及修改。例如,从属权利要求的特征可以与独立权利要求的特征进行各种组合,而不脱离本发明的范围。
Claims (21)
1.一种数据处理设备,包括:
输出端口,该输出端口向被布置为执行一致性协议的互连器发送指示将服从于所述一致性协议的请求的请求值;
输入端口,该输入端口从所述互连器接收响应于所述请求值的确认值;
一致性管理电路,该一致性管理电路依据所述请求值和所述确认值,根据所述一致性协议来定义所述数据处理设备的行为规则;以及
存储电路,该存储电路根据所述行为规则管理数据。
2.根据权利要求1所述的数据处理设备,
其中所述存储电路包括高速缓存。
3.根据权利要求2所述的数据处理设备,
其中所述一致性管理电路包括高速缓存刷新电路,该高速缓存刷新电路通过依据所述请求值和所述确认值使能所述高速缓存保存一致数据,来根据所述一致性协议控制所述数据处理设备的行为。
4.根据权利要求3所述的数据处理设备,
其中所述高速缓存刷新电路响应于所述请求值具有第一请求值并且所述确认值具有第一确认值,来使能所述高速缓存保存一致数据,
否则阻止所述高速缓存保存一致数据。
5.根据权利要求2中所述的数据处理设备,
其中所述一致性管理电路包括探听控制电路,该探听控制电路通过依据所述请求值和所述确认值要求所述高速缓存对所述互连器发送的主动访问请求进行响应,来根据所述一致性协议控制所述数据处理设备的行为。
6.根据权利要求5所述的数据处理设备,
其中所述主动访问请求是探听请求和分布式虚拟存储器访问请求中的至少一者。
7.根据权利要求5所述的数据处理设备,
其中所述探听控制电路响应于所述请求值具有第二请求值并且所述确认值具有第二确认值,来使能所述高速缓存不对所述互连器发送的所述主动访问请求进行响应,
否则要求所述高速缓存对所述互连器发送的所述主动访问请求进行响应。
8.根据权利要求1所述的数据处理设备,其中
所述一致性管理电路通过依据所述第一请求值和所述第一确认值准许对于要保持一致的数据的数据访问请求,来根据所述一致性协议控制所述互连器的行为。
9.根据权利要求8所述的数据处理设备,其中
所述一致性管理电路响应于所述请求值具有第一请求值并且所述确认值具有第一确认值,来准许所述数据访问请求,
否则不准许所述数据访问请求。
10.根据权利要求1所述的数据处理设备,其中
所述请求值取决于分量请求值;并且
所述确认值决于分量确认值。
11.根据权利要求10的数据处理设备,其中
所述分量请求值包括连接请求值和断开请求值;并且
所述分量确认值包括连接确认值和断开确认值。
12.一种互连器,包括:
输入端口,该输入端口接收由数据处理设备发布的、指示所述数据处理设备将服从于一致性协议的请求的请求值;
输出端口,该输出端口向所述数据处理设备发送响应于所述请求值的确认值;以及
一致性管理电路,该一致性管理电路依据所述请求值和所述确认值且根据所述一致性协议定义所述互连器的行为规则。
13.根据权利要求12所述的互连器,其中
所述一致性管理电路通过对来自所述数据处理设备的、对于要横跨多个数据处理设备保持一致的数据的数据访问请求进行响应,来根据所述一致性协议控制所述互连器的行为,并且
所述互连器的行为是依据所述请求值和所述确认值进行控制的。
14.根据权利要求13所述的互连器,其中
所述一致性管理电路响应于所述请求值具有第一请求值并且所述确认值具有第一确认值,来准许所述数据访问请求,
否则拒绝所述数据访问请求。
15.根据权利要求11所述的互连器,其中
所述一致性管理电路包括探听电路,该探听电路响应于由所述多个数据处理设备中不同于所述数据处理设备的一个数据处理设备发送的数据访问请求,通过依据所述请求值和所述确认值而生成探听请求并发送所述探听请求到所述数据处理设备,来根据所述一致性协议控制所述互连器的行为。
16.根据权利要求15所述的互连器,其中
所述探听电路响应于所述请求值具有第一请求值,而准许所述探听请求被生成并且被发送到所述数据处理设备;并且
所述探听电路响应于所述请求值具有第二请求值并且所述确认值具有第二确认值,而禁止所述探听请求被发送到所述数据处理设备,
否则在所述探听请求已经被生成的条件下准许所述探听请求被发送到所述数据处理设备。
17.根据权利要求12所述的互连器,其中
所述多个数据处理设备中的子集具有独立于所述互连器的对于共享高速缓存的访问权。
18.根据权利要求12所述的互连器,其中
所述输入端口还从多个数据处理设备中的每一个接收相关请求值;
所述输出端口还向所述多个数据处理设备中的每一个发送相关确认值;并且
所述一致性管理电路依据所述多个数据处理设备中的每个数据处理设备的相关请求值和相关确认值,根据所述一致性协议来为所述互连器定义相对于每个数据处理设备的行为规则。
19.一种系统,包括:
根据权利要求12所述的互连器;以及
包括根据权利要求1所述的数据处理设备在内的多个数据处理设备。
20.一种操作数据处理装置的方法,包括:
向被布置为执行一致性协议的互连器发送指示将服从于所述一致性协议的请求的请求值;
从所述互连器接收响应于所述请求值的确认值;
依据所述请求值和所述确认值,根据所述一致性协议定义所述数据处理设备的行为规则;以及
根据所述行为规则管理数据。
21.一种操作互连器的方法,包括:
接收由数据处理设备发布的、指示所述数据处理设备将服从于一致性协议的请求的请求值;
向所述数据处理设备发送响应于所述请求值的确认值;
依据所述请求值和所述确认值,根据所述一致性协议定义所述互连器的行为规则。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
GB1510185.0 | 2015-06-11 | ||
GB1510185.0A GB2539641B (en) | 2015-06-11 | 2015-06-11 | Coherency between a data processing device and interconnect |
Publications (2)
Publication Number | Publication Date |
---|---|
CN106250347A true CN106250347A (zh) | 2016-12-21 |
CN106250347B CN106250347B (zh) | 2022-04-19 |
Family
ID=53784505
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201610391254.XA Active CN106250347B (zh) | 2015-06-11 | 2016-06-03 | 数据处理设备与互连器之间的基于硬件的一致性 |
Country Status (4)
Country | Link |
---|---|
US (1) | US10216633B2 (zh) |
KR (1) | KR102654513B1 (zh) |
CN (1) | CN106250347B (zh) |
GB (1) | GB2539641B (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108491351A (zh) * | 2017-02-08 | 2018-09-04 | Arm 有限公司 | 响应探听请求 |
CN112463687A (zh) * | 2020-11-24 | 2021-03-09 | 海光信息技术股份有限公司 | 片上一致性互联结构、缓存一致性互联方法及系统 |
Families Citing this family (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2018183553A1 (en) | 2017-03-29 | 2018-10-04 | Fungible, Inc. | Non-blocking any-to-any data center network having multiplexed packet spraying within access node groups |
CN110731070A (zh) | 2017-03-29 | 2020-01-24 | 芬基波尔有限责任公司 | 通过多个交替数据路径进行分组喷射的无阻塞的任意到任意数据中心网络 |
US10425707B2 (en) | 2017-03-29 | 2019-09-24 | Fungible, Inc. | Non-blocking, full-mesh data center network having optical permutors |
US10565112B2 (en) | 2017-04-10 | 2020-02-18 | Fungible, Inc. | Relay consistent memory management in a multiple processor system |
CN117348976A (zh) | 2017-07-10 | 2024-01-05 | 微软技术许可有限责任公司 | 用于流处理的数据处理单元 |
CN110915173B (zh) | 2017-07-10 | 2022-04-29 | 芬基波尔有限责任公司 | 用于计算节点和存储节点的数据处理单元 |
CN111149329A (zh) | 2017-09-29 | 2020-05-12 | 芬基波尔有限责任公司 | 通过多个备用数据路径进行分组喷射的数据中心网络的结构控制协议 |
WO2019068017A1 (en) | 2017-09-29 | 2019-04-04 | Fungible, Inc. | RESILIENT NETWORK COMMUNICATION USING SELECTIVE PULVER FLOW SPRAY BY MULTIPATH PATH |
WO2019104090A1 (en) | 2017-11-21 | 2019-05-31 | Fungible, Inc. | Work unit stack data structures in multiple core processor system for stream data processing |
WO2019152063A1 (en) | 2018-02-02 | 2019-08-08 | Fungible, Inc. | Efficient work unit processing in a multicore system |
US10942904B2 (en) * | 2018-10-09 | 2021-03-09 | Arm Limited | Mapping first identifier to second identifier |
US10929175B2 (en) | 2018-11-21 | 2021-02-23 | Fungible, Inc. | Service chaining hardware accelerators within a data stream processing integrated circuit |
US12072805B2 (en) * | 2022-04-11 | 2024-08-27 | Arteris, Inc. | System and method to enter and exit a cache coherent interconnect |
Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20030046495A1 (en) * | 2001-08-28 | 2003-03-06 | Venkitakrishnan Padmanabha I. | Streamlined cache coherency protocol system and method for a multiple processor single chip device |
CN101042678A (zh) * | 2006-03-23 | 2007-09-26 | 国际商业机器公司 | 数据处理的单元、系统和方法 |
US20080005483A1 (en) * | 2006-06-30 | 2008-01-03 | Aaron Spink | Repeated conflict acknowledgements in a cache coherency protocol |
CN101146340A (zh) * | 2006-09-12 | 2008-03-19 | 华为技术有限公司 | 一种媒体无关切换中优化事务操作的方法及系统 |
CN101523361A (zh) * | 2006-10-17 | 2009-09-02 | Arm有限公司 | 数据处理设备中对共享存储器的写访问请求的处理 |
US20100064108A1 (en) * | 2008-09-05 | 2010-03-11 | Antony John Harris | Data processing apparatus and method for managing snoop operations |
CN101770397A (zh) * | 2008-12-30 | 2010-07-07 | 英特尔公司 | 扩展高速缓存一致性协议以支持本地缓冲的数据 |
US20130268735A1 (en) * | 2011-12-29 | 2013-10-10 | Enric Gibert Codina | Support for speculative ownership without data |
Family Cites Families (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5897657A (en) * | 1996-07-01 | 1999-04-27 | Sun Microsystems, Inc. | Multiprocessing system employing a coherency protocol including a reply count |
US6928520B2 (en) * | 2000-04-30 | 2005-08-09 | Hewlett-Packard Development Company, L.P. | Memory controller that provides memory line caching and memory transaction coherency by using at least one memory controller agent |
US7769956B2 (en) * | 2005-09-07 | 2010-08-03 | Intel Corporation | Pre-coherence channel |
US8510512B2 (en) * | 2009-08-21 | 2013-08-13 | International Business Machines Corporation | Memory coherence directory supporting remotely sourced requests of nodal scope |
US8930635B2 (en) * | 2009-12-14 | 2015-01-06 | International Business Machines Corporation | Page invalidation processing with setting of storage key to predefined value |
US20130111149A1 (en) * | 2011-10-26 | 2013-05-02 | Arteris SAS | Integrated circuits with cache-coherency |
US9372798B2 (en) * | 2012-03-02 | 2016-06-21 | Arm Limited | Data processing apparatus having first and second protocol domains, and method for the data processing apparatus |
KR101695845B1 (ko) * | 2012-09-20 | 2017-01-12 | 한국전자통신연구원 | 캐시 일관성 유지 장치 및 방법, 이를 이용하는 멀티프로세서 장치 |
US8930638B2 (en) * | 2012-11-27 | 2015-01-06 | Qualcomm Technologies, Inc. | Method and apparatus for supporting target-side security in a cache coherent system |
US9575890B2 (en) * | 2014-02-27 | 2017-02-21 | International Business Machines Corporation | Supporting atomic accumulation with an addressable accumulator |
US9817693B2 (en) * | 2014-03-14 | 2017-11-14 | International Business Machines Corporation | Coherence protocol augmentation to indicate transaction status |
-
2015
- 2015-06-11 GB GB1510185.0A patent/GB2539641B/en active Active
-
2016
- 2016-04-29 US US15/141,954 patent/US10216633B2/en active Active
- 2016-05-30 KR KR1020160066250A patent/KR102654513B1/ko active IP Right Grant
- 2016-06-03 CN CN201610391254.XA patent/CN106250347B/zh active Active
Patent Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20030046495A1 (en) * | 2001-08-28 | 2003-03-06 | Venkitakrishnan Padmanabha I. | Streamlined cache coherency protocol system and method for a multiple processor single chip device |
CN101042678A (zh) * | 2006-03-23 | 2007-09-26 | 国际商业机器公司 | 数据处理的单元、系统和方法 |
US20080005483A1 (en) * | 2006-06-30 | 2008-01-03 | Aaron Spink | Repeated conflict acknowledgements in a cache coherency protocol |
CN101146340A (zh) * | 2006-09-12 | 2008-03-19 | 华为技术有限公司 | 一种媒体无关切换中优化事务操作的方法及系统 |
CN101523361A (zh) * | 2006-10-17 | 2009-09-02 | Arm有限公司 | 数据处理设备中对共享存储器的写访问请求的处理 |
US20100064108A1 (en) * | 2008-09-05 | 2010-03-11 | Antony John Harris | Data processing apparatus and method for managing snoop operations |
CN101770397A (zh) * | 2008-12-30 | 2010-07-07 | 英特尔公司 | 扩展高速缓存一致性协议以支持本地缓冲的数据 |
US20130268735A1 (en) * | 2011-12-29 | 2013-10-10 | Enric Gibert Codina | Support for speculative ownership without data |
Non-Patent Citations (3)
Title |
---|
DANIEL HACKENBERG等: "Comparing cache architectures and coherency protocols on x86-64 multicore SMP systems", 《2009 42ND ANNUAL IEEE/ACM INTERNATIONAL SYMPOSIUM ON MICROARCHITECTURE(MICRO)》 * |
郭广浩等: "多核微处理器核间高速互连技术", 《计算机技术与发展》 * |
韩立敏等: "众核处理器cache一致性研究综述", 《计算机应用研究》 * |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108491351A (zh) * | 2017-02-08 | 2018-09-04 | Arm 有限公司 | 响应探听请求 |
CN108491351B (zh) * | 2017-02-08 | 2024-03-22 | Arm 有限公司 | 响应探听请求 |
CN112463687A (zh) * | 2020-11-24 | 2021-03-09 | 海光信息技术股份有限公司 | 片上一致性互联结构、缓存一致性互联方法及系统 |
CN112463687B (zh) * | 2020-11-24 | 2024-04-12 | 成都海光微电子技术有限公司 | 片上一致性互联结构、缓存一致性互联方法及系统 |
Also Published As
Publication number | Publication date |
---|---|
KR20160146532A (ko) | 2016-12-21 |
GB2539641A (en) | 2016-12-28 |
KR102654513B1 (ko) | 2024-04-05 |
GB2539641B (en) | 2019-04-03 |
GB201510185D0 (en) | 2015-07-29 |
US10216633B2 (en) | 2019-02-26 |
CN106250347B (zh) | 2022-04-19 |
US20160364333A1 (en) | 2016-12-15 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN106250347A (zh) | 数据处理设备与互连器之间的基于硬件的一致性 | |
US10824565B2 (en) | Configuration based cache coherency protocol selection | |
CN103294612B (zh) | 在多级缓存一致性域系统局部域构造Share-F状态的方法 | |
TWI463318B (zh) | 快取一致性處理系統、快取記憶體,及其方法 | |
US6976131B2 (en) | Method and apparatus for shared cache coherency for a chip multiprocessor or multiprocessor system | |
CN103744799B (zh) | 一种内存数据访问方法、装置和系统 | |
US7395379B2 (en) | Methods and apparatus for responding to a request cluster | |
US7818509B2 (en) | Combined response cancellation for load command | |
CN103440223B (zh) | 一种实现高速缓存一致性协议的分层系统及其方法 | |
CN108446239A (zh) | 具有覆写无效性的读取事务 | |
CN104615576A (zh) | 面向cpu+gpu处理器的混合粒度一致性维护方法 | |
CN105718242B (zh) | 多核dsp中支持软硬件数据一致性的处理方法及系统 | |
CN103500108B (zh) | 系统内存访问方法、节点控制器和多处理器系统 | |
KR20160099722A (ko) | 캐시-코히어런시를 갖춘 집적 회로들 | |
CN105049530A (zh) | 多种分布式缓存系统的自适配装置和方法 | |
US10592465B2 (en) | Node controller direct socket group memory access | |
CN103999063A (zh) | 处理器的存储器共享 | |
EP2568379B1 (en) | Method for preventing node controller deadlock and node controller | |
CN117971720B (zh) | 多级缓存系统的访问方法、装置、电子设备及存储介质 | |
US7653790B2 (en) | Methods and apparatus for responding to a request cluster | |
TW202111541A (zh) | 裝置內標記資料移動系統 | |
CN117033330B (zh) | 一种多核文件共享系统及其控制方法 | |
KR101695845B1 (ko) | 캐시 일관성 유지 장치 및 방법, 이를 이용하는 멀티프로세서 장치 | |
US20040186963A1 (en) | Targeted snooping | |
CN108491351A (zh) | 响应探听请求 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | 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 |