CN108027776B - 在多个主要装置间使用有条件干预维持高速缓存同调性 - Google Patents
在多个主要装置间使用有条件干预维持高速缓存同调性 Download PDFInfo
- Publication number
- CN108027776B CN108027776B CN201680054085.9A CN201680054085A CN108027776B CN 108027776 B CN108027776 B CN 108027776B CN 201680054085 A CN201680054085 A CN 201680054085A CN 108027776 B CN108027776 B CN 108027776B
- Authority
- CN
- China
- Prior art keywords
- snooping
- snooping master
- intervention
- master device
- devices
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Images
Classifications
-
- 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
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/10—Providing a specific technical effect
- G06F2212/1016—Performance improvement
- G06F2212/1024—Latency reduction
-
- 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/10—Providing a specific technical effect
- G06F2212/1028—Power efficiency
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/62—Details of cache specific to multiprocessor cache arrangements
- G06F2212/621—Coherency control relating to peripheral accessing, e.g. from DMA or I/O device
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Memory System Of A Hierarchy Structure (AREA)
- Radar Systems Or Details Thereof (AREA)
Abstract
本发明公开在多个主要装置间使用有条件干预维持高速缓存同调性。在一个方面中,一种有条件干预电路配置成从多个窥探主要装置接收干预响应。为了选择窥探主要装置以提供干预数据,所述有条件干预电路确定多少窥探主要装置相较于请求主要装置具有相同或较大高速缓存线粒度大小。如果一个窥探主要装置具有相同或较大高速缓存线粒度大小,那么选择那个窥探主要装置。如果多于一个窥探主要装置具有相同或较大高速缓存线粒度大小,那么基于替代准则来选择窥探主要装置。由所述有条件干预电路消除由所述未经选择窥探主要装置提供的所述干预响应,且将来自所述经选择窥探主要装置的干预数据提供到所述请求主要装置。
Description
优先权申请
本申请案要求2015年9月24日提交的且标题为“在多个主要装置间使用有条件干预维持高速缓存同调性(MAINTAINING CACHE COHERENCY USING CONDITIONALINTERVENTION AMONG MULTIPLE MASTER DEVICES)”的美国专利申请案第14/863,535号的优先权,所述申请以其全文引用的方式并入本文中。
技术领域
本发明的技术大体上涉及基于处理器的系统中的基于窥探的高速缓存同调性,且尤其涉及在存在多个主要装置的情况下维持高速缓存同调性。
背景技术
现代的基于处理器的系统可包含多个互连主要装置(例如,中央处理单元(CPU)、图形处理单元(GPU)、处理器丛集和/或硬件加速器,这些是作为非限制性实例),所述多个互连主要装置中的每一个可存取共享数据且维持其自己对共享数据的高速缓存。为了确保基于处理器的系统内的每一主要装置的高速缓存存储器含有共享数据的最新版本,所述主要装置可实施总线同调性协议以用于在所述高速缓存存储器间维持高速缓存同调性。一种类别的总线同调性协议是基于被称为“窥探(snooping)”的机制。在使用窥探的情况下,每一主要装置监视一总线以检测起源于其它主要装置且涉及在所述主要装置间共享的数据的所有读取及写入请求。如果主要装置检测(或“窥探”)到其具有最新数据所针对的读取请求,那么主要装置可将被请求数据提供到请求主要装置(被称作“干预(intervening)”的程序)。如果主要装置窥探到总线上的写入异动,那么主要装置可使其高速缓存存储器内的经写入数据的其本机副本失效。以这种方式,可将共享数据的一致视图提供到基于处理器的系统内的所有主要装置。
在一些情形下,多个窥探主要装置可提供对读取请求的干预响应,即使最终仅一个窥探主要装置可响应于读取请求而提供干预数据也如此。因此,可有必要从多个窥探主要装置当中选择一个适当窥探主要装置以提供干预数据。然而,这项任务可在基于处理器的系统中是复杂的,在基于处理器的系统中,主要装置使用基于不同高速缓存线粒度大小(cache line granule size)的高速缓存存储器,和/或使用在不同情形下允许干预(例如,对SharedClean高速缓存状态的干预)的不同总线同调性协议。因此,需要提供一种用于有条件地从多个窥探主要装置当中选择一个主要装置以维持高速缓存同调性、提供较短干预潜时且缩减处理器功率消耗的机制。
发明内容
[实施方式]中所公开的方面包含在多个主要装置间使用有条件干预维持高速缓存同调性。就这一点而言,提供一种在基于处理器的系统中的有条件干预电路。所述有条件干预电路根据一或多个基于窥探的高速缓存同调性协议通过总线而以通信方式耦合到多个主要装置(例如中央处理单元(CPU)、图形处理单元(GPU)、处理器丛集和/或硬件加速器,这些是作为非限制性实例)。所述主要装置中的每一个包含一高速缓存存储器,且因此是与所述高速缓存存储器的一高速缓存线粒度大小相关联。所述有条件干预电路包含一窥探请求管理电路且经配置成从多个窥探主要装置接收干预响应(例如,响应于窥探式读取请求)。为了选择窥探主要装置以提供干预数据,所述有条件干预电路首先确定多少所述窥探主要装置的一高速缓存线粒度大小相同于或大于请求主要装置的高速缓存线粒度大小。如果仅一个窥探主要装置的一高速缓存线粒度大小相同于或大于所述请求主要装置的所述高速缓存线粒度大小,那么选择那个窥探主要装置以提供干预数据。如果多于一个窥探主要装置的高速缓存线粒度大小相同于或大于所述请求主要装置的所述高速缓存线粒度大小,那么使用一替代选择准则从所述多于一个窥探主要装置当中选择一窥探主要装置。作为非限制性实例,所述替代选择准则可包含选择具有到所述请求主要装置的最短路径或高速缓存线粒度大小最接近于所述请求主要装置的所述高速缓存线粒度大小的窥探主要装置。在一些方面中,如果任何窥探主要装置相较于所述请求主要装置皆不具有所述相同或较大高速缓存线粒度大小,那么可基于所述替代选择准则来选择窥探主要装置。如果所述经选择窥探主要装置不能够提供所有干预数据,那么所述有条件干预电路可从系统存储器检索遗漏数据。接着由所述有条件干预电路的所述窥探管理请求电路消除由所述未经选择窥探主要装置提供的所述干预响应,且将来自所述经选择窥探主要装置的干预数据提供到所述请求主要装置。
在另一方面中,提供一种用于使用有条件干预维持高速缓存同调性的有条件干预电路。所述有条件干预电路包括窥探请求管理电路。所述有条件干预电路配置成使用所述窥探请求管理电路而根据一或多个基于窥探的高速缓存同调性协议从多个主要装置中的对应多个窥探主要装置接收多个干预响应,所述多个主要装置中的每一个主要装置是与所述主要装置的高速缓存存储器的高速缓存线粒度大小相关联。所述有条件干预电路进一步配置成确定相较于所述多个主要装置中的请求主要装置具有相同或较大高速缓存线粒度大小的所述多个窥探主要装置的计数。所述有条件干预电路也配置成响应于确定一个窥探主要装置具有所述相同或较大高速缓存线粒度大小而选择具有所述相同或较大高速缓存线粒度大小的所述一个窥探主要装置。所述有条件干预电路另外配置成响应于确定所述多个窥探主要装置中的多于一个窥探主要装置具有所述相同或较大高速缓存线粒度大小而基于替代选择准则从具有所述相同或较大高速缓存线粒度大小的所述多于一个窥探主要装置当中选择一窥探主要装置。所述有条件干预电路进一步配置成使用所述窥探请求管理电路而从所述多个窥探主要装置中的对应一或多个未经选择窥探主要装置消除所述多个干预响应中的一或多个干预响应。所述有条件干预电路也配置成使用所述窥探请求管理电路而将来自所述经选择窥探主要装置的干预数据提供到所述请求主要装置。
在另一方面中,提供一种用于使用有条件干预维持高速缓存同调性的有条件干预电路。所述有条件干预电路包括用于根据一或多个基于窥探的高速缓存同调性协议从多个主要装置中的对应多个窥探主要装置接收多个干预响应的装置,每一主要装置是与所述主要装置的高速缓存存储器的高速缓存线粒度大小相关联。所述有条件干预电路进一步包括用于确定相较于所述多个主要装置中的请求主要装置具有相同或较大高速缓存线粒度大小的所述多个窥探主要装置的计数的装置。所述有条件干预电路还包括用于响应于确定一个窥探主要装置具有所述相同或较大高速缓存线粒度大小而选择具有所述相同或较大高速缓存线粒度大小的所述多个窥探主要装置中的所述一个窥探主要装置的装置。所述有条件干预电路另外包括用于响应于确定所述多个窥探主要装置中的多于一个窥探主要装置具有所述相同或较大高速缓存线粒度大小而基于替代选择准则从具有所述相同或较大高速缓存线粒度大小的所述多个窥探主要装置中的所述多于一个窥探主要装置当中选择一窥探主要装置的装置。所述有条件干预电路进一步包括用于从所述多个窥探主要装置中的对应一或多个未经选择窥探主要装置消除所述多个干预响应中的一或多个干预响应的装置。所述有条件干预电路还包括用于将来自所述经选择窥探主要装置的干预数据提供到所述请求主要装置的装置。
在另一方面中,提供一种使用有条件干预维持高速缓存同调性的方法。所述方法包括由有条件干预电路根据一或多个基于窥探的高速缓存同调性协议从多个主要装置中的对应多个窥探主要装置接收多个干预响应,所述多个主要装置中的每一个主要装置是与高速缓存存储器的高速缓存线粒度大小相关联。所述方法进一步包括确定相较于所述多个主要装置中的请求主要装置具有相同或较大高速缓存线粒度大小的所述多个窥探主要装置的计数。所述方法还包括响应于确定所述多个窥探主要装置中的一个窥探主要装置具有所述相同或较大高速缓存线粒度大小而选择具有所述相同或较大高速缓存线粒度大小的所述一个窥探主要装置。所述方法另外包括响应于确定所述多个窥探主要装置中的多于一个窥探主要装置具有所述相同或较大高速缓存线粒度大小而基于替代选择准则从具有所述相同或较大高速缓存线粒度大小的所述多于一个窥探主要装置当中选择一窥探主要装置。所述方法进一步包括从所述多个窥探主要装置中的对应一或多个未经选择窥探主要装置消除所述多个干预响应中的一或多个干预响应。所述方法还包括将来自所述经选择窥探主要装置的干预数据提供到所述请求主要装置。
附图说明
图1为提供用于在多个主要装置间使用有条件干预维持高速缓存同调性的有条件干预电路的示范性基于处理器的系统的框图;
图2A到2D为说明在图1的有条件干预电路和主要装置间进行示范性通信流程以用于基于高速缓存线粒度大小来选择窥探主要装置以提供干预数据的框图;
图3A到3D为说明在图1的有条件干预电路和主要装置间进行示范性通信流程以用于基于最短路径来选择窥探主要装置以提供干预数据的框图;
图4A到4D为说明在图1的有条件干预电路和主要装置间进行示范性通信流程以用于处理从窥探主要装置接收的重试请求的框图;
图5A到5C为说明用于在多个主要装置间使用有条件干预维持高速缓存同调性的示范性程序的流程图;且
图6为可包含图1的有条件干预电路的示范性基于处理器的系统的框图。
具体实施方式
现在参考图式来描述本发明的若干示范性方面。词语“示范性”在本文中用以意味“充当实例、例子或说明”。在本文中被描述为“示范性”的任何方面未必应被认作比其它方面优选或有利。
[实施方式]中所公开的方面包含在多个主要装置间使用有条件干预维持高速缓存同调性。就此而言,图1说明提供用于在多个主要装置104(0)到104(X)间使用有条件干预维持高速缓存同调性的有条件干预电路102的示范性基于处理器的系统100。在图1的实例中,有条件干预电路102被定位为序列化点电路105的部分。然而,应理解,在一些方面中,有条件干预电路102可定位在基于处理器的系统100内的任何地方,从所述任何地方,有条件干预电路102可监视主要装置104(0)到104(X)间的通信。在一些方面中,基于处理器的系统100的多个主要装置104(0)到104(X)可包括异质装置,例如中央处理单元(CPU)、图形处理单元(GPU)、处理器丛集和/或硬件加速器,这些是作为非限制性实例。基于处理器的系统100可涵盖已知数字逻辑元件、半导体电路、处理核心和/或存储器结构以及其它元件或其组合中的任一种。本文中所描述的方面并不限于任何特定布置的元件,且所公开的技艺可容易地延伸到半导体裸片或封装上的各种结构及布局。应理解,在一些方面中,基于处理器的系统100可含有多于或少于图1所说明的主要装置的主要装置104(0)到104(X)。
基于处理器的系统100的主要装置104(0)到104(X)包含对应高速缓存存储器106(0)到106(X),其使能够在本机存储共享数据(未图示)以供主要装置104(0)到104(X)进行较快存取。这可允许主要装置104(0)到104(X)最小化对系统存储器107进行相对较慢存取的需要,借此改进基于处理器的系统100的性能且缩减基于处理器的系统100的功率消耗。高速缓存存储器106(0)到106(X)的特征各自为高速缓存线粒度大小108(0)到108(X)。高速缓存存储器106(0)到106(X)的高速缓存线粒度大小108(0)到108(X)表示数据可被传送到高速缓存存储器106(0)到106(X)中和传送到高速缓存存储器106(0)到106(X)外的固定块大小。在一些方面中,高速缓存线粒度大小108(0)到108(X)可在同一基于处理器的系统100内包括不同大小(例如,64个字节和128个字节,这些是作为非限制性实例)。
图1的主要装置104(0)到104(X)以通信方式彼此连接且通过总线110而连接到有条件干预电路102。在图1的实例中,主要装置104(0)、104(1)通过桥接器114而连接到有条件干预电路102的桥接器112,而主要装置104(X)通过桥接器116而连接到桥接器112。以这种方式,有条件干预电路102配置成使主要装置104(0)到104(X)中的每一个能够窥探由其它主要装置104(0)到104(X)发送的读取请求(未图示)且提供干预响应(未图示)。在一些方面中,主要装置104(0)到104(X)与有条件干预电路102之间的互连可不同于图1所说明的互连。
图1的高速缓存存储器106(0)到106(X)中的每一个可存储共享数据的本机副本,其可由主要装置104(0)到104(X)中的任一个读取和/或修改。因此,为了确保由主要装置104(0)到104(X)以一致方式检视存储在高速缓存存储器106(0)到106(X)中的共享数据,主要装置104(0)到104(X)中的每一个实施一或多个基于窥探的总线同调性协议中的一种。作为一非限制性实例,主要装置104(0)到104(X)可实施高级可延伸接口(AXI)同调性延伸(ACE)协议。一些方面可规定主要装置104(0)到104(X)可在同一基于处理器的系统100内实施不同总线同调性协议。
由主要装置104(0)到104(X)实施的基于窥探的总线同调性协议使主要装置104(0)到104(X)中的每一个能够监视总线110,以窥探起源于其它主要装置104(0)到104(X)且涉及在主要装置104(0)到104(X)间共享的数据的读取请求。如果主要装置104(0)到104(X)中的一个(即,“窥探主要装置104(0)到104(X)”)窥探到其具有最新数据所针对的读取请求,那么窥探主要装置104(0)到104(X)可将干预响应(未图示)提供到有条件干预电路102,且可将包括最新数据的干预数据(未图示)提供到发出读取请求的主要装置104(0)到104(X)(即,“请求主要装置104(0)到104(X)”。然而,在一些情形下,可由多个窥探主要装置104(0)到104(X)响应于读取请求而提供干预响应,即使最终仅一个窥探主要装置104(0)到104(X)可响应于读取请求而提供干预数据也如此。因此,可有必要从多个窥探主要装置104(0)到104(X)当中选择适当的窥探主要装置104(0)到104(X)以提供干预数据。如果主要装置104(0)到104(X)使用具有不同高速缓存线粒度大小108(0)到108(X)的高速缓存存储器106(0)到106(X),和/或如果主要装置104(0)到104(X)使用在不同情形下允许干预的不同总线同调性协议,那么这项任务可为复杂的。
就这一点而言,有条件干预电路102配置成使能够在多个主要装置104(0)到104(X)间进行有条件干预,从而设法供应用于窥探式读取请求的干预数据。有条件干预电路102配置成从多个窥探主要装置104(0)到104(X)接收干预响应(例如,响应于窥探式读取请求)。为了选择窥探主要装置104(0)到104(X)中的一个以提供干预数据,有条件干预电路102首先确定多少窥探主要装置104(0)到104(X)的高速缓存线粒度大小108(0)到108(X)相同于或大于请求主要装置104(0)到104(X)的高速缓存线粒度大小108(0)到108(X)。如果仅一个窥探主要装置104(0)到104(X)的高速缓存线粒度大小108(0)到108(X)相同于或大于请求主要装置104(0)到104(X)的高速缓存线粒度大小108(0)到108(X),那么有条件干预电路102选择那个窥探主要装置104(0)到104(X)以提供干预数据。如果多于一个窥探主要装置104(0)到104(X)的高速缓存线粒度大小108(0)到108(X)相同于或大于请求主要装置104(0)到104(X)的高速缓存线粒度大小108(0)到108(X),那么有条件干预电路102使用替代选择准则来选择窥探主要装置104(0)到104(X)。作为非限制性实例,替代选择准则可指定选择具有到请求主要装置104(0)到104(X)的最短路径的窥探主要装置104(0)到104(X),和/或高速缓存线粒度大小108(0)到108(X)最接近于请求主要装置104(0)到104(X)的高速缓存线粒度大小108(0)到108(X)的窥探主要装置104(0)到104(X)。根据一些方面,选择具有到请求主要装置104(0)到104(X)的最短路径的窥探主要装置104(0)到104(X)可由有条件干预电路102使用由有条件干预电路102维持的拓扑映射118而进行。在一些方面中,拓扑映射118可提供主要装置104(0)到104(X)之间的互连的表示,且可由有条件干预电路102使用以确定及比较主要装置104(0)到104(X)中的任何两(2)个主要装置之间的路径长度。在一些方面中,替代选择准则可由有条件干预电路102的选择寄存器120指示。有条件干预电路102可进一步包括窥探请求管理电路122以用于发送、接收和/或消除窥探请求和/或干预响应。
在选择窥探主要装置104(0)到104(X)中的一个以提供干预数据之后,有条件干预电路102消除由未经选择窥探主要装置104(0)到104(X)提供的干预响应。在一些方面中,消除未经选择窥探主要装置104(0)到104(X)的干预响应可通过在消除向量(未图示)内设定对应于未经选择窥探主要装置104(0)到104(X)的一或多个消除向量位(未图示)而实现。可接着提供消除向量作为传输到主要装置104(0)到104(X)的最终结果(未图示)的部分。接着将来自被选择窥探主要装置104(0)到104(X)的干预数据提供到请求主要装置104(0)到104(X)。
一些方面可规定窥探主要装置104(0)到104(X)中的一或多个配置成将早期干预数据传送提供到请求主要装置104(0)到104(X)(例如,通过使用强制执行严格干预策略的总线同调性协议)。在这些方面中,一或多个窥探主要装置104(0)到104(X)可在产生最终结果之前发送数据。为了提供增加的响应时间,在这些方面中,有条件干预电路102可维持来自这些窥探主要装置104(0)到104(X)的干预响应,而非消除干预响应。
在一些情况下,主要装置104(0)到104(X)中的一或多个可提供重试响应(未图示),而非干预响应。举例来说,如果窥探式读取请求呈现与当前正由主要装置104(0)到104(X)(即,“重试主要装置104(0)到104(X)”)处理的另一待决请求的冲突,那么可提供重试响应。在一些情况下,重试响应可由同调性要求(例如,高速缓存状态是未定的,或数据当前正被释放在高速缓存存储器外)引起,或可由于结构原因(例如伫列到达容量)而发生。在这些情况下,重试主要装置104(0)到104(X)可实际上拥有最新共享数据,但重试响应可向有条件干预电路102隐藏共享数据的存在。因此,在一些方面中,在接收到重试响应后,有条件干预电路102就可从高速缓存线粒度大小108(0)到108(X)小于重试主要装置104(0)到104(X)的高速缓存线粒度大小108(0)到108(X)的每一个窥探主要装置104(0)到104(X)消除干预响应。
这可确保有条件干预电路102不会选择可仅提供窥探式读取请求所需要的干预数据的子集的窥探主要装置104(0)到104(X)。
为了说明在图1的有条件干预电路102和主要装置104(0)到104(X)间进行示范性通信流程以用于基于高速缓存线粒度大小108(0)到108(X)来选择窥探主要装置104(0)到104(X),提供图2A到2D。在图2A到2D中,展示图1的基于处理器的系统100。图2A到2D的主要装置104(0)和104(X)的高速缓存线粒度大小108(0)和108(X)分别为128个字节(“128B”)。图2A到2D的主要装置104(1)的高速缓存线粒度大小108(1)为64个字节(“64B”)。出于清晰起见,图2A到2D中未展示图1的总线110。
在图2A中,主要装置104(0)(即,“请求主要装置104(0)”将表示用以读取可存取的共享数据(未图示)的请求的读取请求200发送到主要装置104(0)到104(X)中的全部,且通过桥接器114和桥接器112而发送到有条件干预电路102。有条件干预电路102将窥探响应202发送到主要装置104(1)和104(X)(即,“窥探主要装置104(1)和104(X)”)。窥探响应202使窥探主要装置104(1)和104(X)能够监视读取请求200且潜在地干预最新共享数据。
如在图2B中所见,有条件干预电路102接着从窥探主要装置104(1)和104(X)分别接收干预响应204(0)和204(1)。干预响应204(0)和204(1)向有条件干预电路102指示窥探主要装置104(1)和104(X)为用于响应于读取请求200而将干预数据提供到请求主要装置104(0)的候选者。为了选择窥探主要装置104(1)和104(X)中的一个以提供干预数据,有条件干预电路102确定多少窥探主要装置104(1)、104(X)的高速缓存线粒度大小108(1)、108(X)相同于或大于请求主要装置104(0)的高速缓存线粒度大小108(0)。在这个实例中,窥探主要装置104(X)的高速缓存线粒度大小108(X)(即,128个字节)相同于请求主要装置104(0)的高速缓存线粒度大小108(0),而窥探主要装置104(1)的高速缓存线粒度大小108(1)(即,64个字节)小于请求主要装置104(0)的高速缓存线粒度大小108(0)。因此,在这个实例中,有条件干预电路102选择窥探主要装置104(X)以将干预数据提供到请求主要装置104(0)。
在选择窥探主要装置104(X)之后,有条件干预电路102从未经选择窥探主要装置104(1)消除干预响应204(0)。如图2C所展示,这是由有条件干预电路102将指示选择窥探主要装置104(X)且从未经选择窥探主要装置104(1)消除干预响应204(0)的数据206传达到主要装置104(0)到104(X)中的每一个而实现。在一些方面中,传达到主要装置104(0)到104(X)的数据206可包括包含消除向量210的最终结果208。消除向量210是由对应于主要装置104(0)到104(X)的多个消除向量位212(0)到212(X)构成。通过设定与未经选择窥探主要装置104(1)相关联的消除向量位212(1),有条件干预电路102可向未经选择窥探主要装置104(1)指示其干预响应204(0)被消除。
最后,如在图2D中所见,有条件干预电路102将来自经选择窥探主要装置104(X)的干预数据214提供到请求主要装置104(0)。在一些方面中,干预数据214表示由请求主要装置104(0)发送的读取请求200所请求的数据的最新副本。通过选择高速缓存线粒度大小108(X)相同于或大于请求主要装置104(0)的高速缓存线粒度大小108(0)的窥探主要装置104(X),有条件干预电路102确保将读取请求200所请求的所有共享数据提供到请求主要装置104(0)。
图3A到3D说明在图1的有条件干预电路102和主要装置104(0)到104(X)间进行示范性通信流程以用于进一步基于到请求主要装置104(0)的最短路径来选择窥探主要装置104(0)到104(X)以提供干预数据(未图示)。在图3A到3D中,展示图1的基于处理器的系统100,其中图3A到3D的主要装置104(0)和104(1)的高速缓存线粒度大小108(0)和108(1)分别为64个字节(“64B”)。图3A到3D的主要装置104(X)的高速缓存线粒度大小108(X)为128个字节(“128B”)。出于清晰起见,从图3A到3D省略图1的总线110。
如在图3A中所见,请求主要装置104(0)通过桥接器114和桥接器112而将读取请求300发送到有条件干预电路102。作为响应,有条件干预电路102将窥探响应302发送到窥探主要装置104(1)和104(X)。有条件干预电路102接着在图3B中从窥探主要装置104(1)和104(X)分别接收干预响应204(0)和204(1),干预响应204(0)和204(1)向有条件干预电路102指示窥探主要装置104(1)和104(X)为用于将干预数据提供到请求主要装置104(0)的候选者。
为了选择窥探主要装置104(1)和104(X)中的一个以提供干预数据,有条件干预电路102确定多少窥探主要装置104(1)、104(X)的高速缓存线粒度大小108(1)、108(X)相同于或大于请求主要装置104(0)的高速缓存线粒度大小108(0)。在图3A到3D的实例中,窥探主要装置104(X)的高速缓存线粒度大小108(X)(即,128B)大于请求主要装置104(0)的高速缓存线粒度大小108(0),而窥探主要装置104(1)的高速缓存线粒度大小108(1)(即,64B)相同于请求主要装置104(0)的高速缓存线粒度大小108(0)。因为存在至少两个窥探主要装置104(1)、104(X)的高速缓存线粒度大小108(1)、108(X)相同于或大于请求主要装置104(0)的高速缓存线粒度大小108(0),所以需要额外操作以选择窥探主要装置104(1)、104(X)中的一个以提供干预数据。因此,有条件干预电路102基于由选择寄存器120指示的替代选择准则来选择窥探主要装置104(1)、104(X)中的一个。在这个实例中,有条件干预电路102选择具有到请求主要装置104(0)的最短路径的窥探主要装置104(1)、104(X)中的一个。如在图3B中所见,窥探主要装置104(1)相较于窥探主要装置104(X)具有到请求主要装置104(0)的较短路径,有条件干预电路102可使用拓扑映射118来确定所述路径。因此,有条件干预电路102选择窥探主要装置104(1)以将干预数据提供到请求主要装置104(0)。
应注意,在具有不同性能要求的一些方面中,可由有条件干预电路102使用不同替代选择准则。举例来说,在一些环境中,吞吐量相较于响应时间可为较重要的考虑。因此,有条件干预电路102可选择高速缓存线粒度大小108(1)、108(X)最接近于请求主要装置104(0)的高速缓存线粒度大小108(0)的窥探主要装置104(1)、104(X)以最大化吞吐量。在图3B的实例中,窥探主要装置104(1)的高速缓存线粒度大小108(1)相同于请求主要装置104(0)的高速缓存线粒度大小108(0),且因此有条件干预电路102也将在此替代选择准则下选择窥探主要装置104(1)。
有条件干预电路102的一些方面还可在窥探主要装置104(1)、104(X)中的任一个的高速缓存线粒度大小108(1)、108(X)未被发现为相同于或大于请求主要装置104(0)的高速缓存线粒度大小108(0)的情形下使用替代选择准则。在这些情形下,有条件干预电路102可基于如上文所论述的替代选择准则来选择窥探主要装置104(1)、104(X)中的一个以将至少部分数据提供到请求主要装置104(0)。有条件干预电路102将接着从系统存储器107检索任何遗漏数据且将其提供到请求主要装置104(0)。
现在参看图3C,有条件干预电路102接下来通过将指示选择窥探主要装置104(1)且从未经选择窥探主要装置104(X)消除干预响应204(1)的数据206传达到主要装置104(0)到104(X)中的每一个而从未经选择窥探主要装置104(X)消除干预响应204(1)。最后,如在图3D中所见,有条件干预电路102将来自经选择窥探主要装置104(1)的干预数据214提供到请求主要装置104(0)。通过选择具有到请求主要装置104(0)的最短路径的窥探主要装置104(1),有条件干预电路102可缩减基于处理器的系统100的存储器存取潜时和功率消耗。
如上文所提及,在一些情况下,主要装置104(0)到104(X)中的一或多个(即,“重试主要装置104(0)到104(X)”)可提供重试响应(未图示),而非干预响应204(例如,如果窥探式读取请求呈现与当前正由重试主要装置104(0)到104(X)处理的另一待决请求的冲突)。为了说明在图1的有条件干预电路102和主要装置104(0)到104(X)间进行示范性通信流程以用于处理重试请求,提供图4A到4D。图4A到4D展示包含四(4)个主要装置104(0)、104(1)、104(2)、104(X)的基于处理器的系统100。图4A到4D的主要装置104(0)和104(1)的高速缓存线粒度大小108(0)和108(1)分别为64个字节(“64B”)。主要装置104(2)和104(X)的高速缓存线粒度大小108(2)和108(X)分别为128个字节(“128B”)。出于清晰起见,图4A到4D中未展示图1的总线110。
参看图4A,请求主要装置104(0)通过桥接器114和桥接器112而将读取请求400发送到有条件干预电路102。有条件干预电路102接着将窥探响应402发送到窥探主要装置104(1)、104(2)和104(X)。如在图4B中所见,有条件干预电路102接着从窥探主要装置104(1)和104(2)分别接收干预响应204(0)和204(1)。然而,有条件干预电路102还从主要装置104(X)(即,“重试主要装置104(X)”)接收重试响应404。因为来自重试主要装置104(X)的重试响应404可能会无意地掩模“已变更(dirty)”数据,所以在一些方面中,有条件干预电路102可从高速缓存线粒度大小108(1)、108(2)小于重试主要装置104(X)的高速缓存线粒度大小108(X)的每一个窥探主要装置104(1)、104(2)消除每一干预响应204(0)、204(1)。在图4B的实例中,窥探主要装置104(1)的高速缓存线粒度大小108(1)为64个字节,其小于重试主要装置104(X)的128个字节的高速缓存线粒度大小108(X)。与此对比,窥探主要装置104(2)的高速缓存线粒度大小108(2)在大小上相同于重试主要装置104(X)的高速缓存线粒度大小108(X)。因此,有条件干预电路102消除窥探主要装置104(1)的干预响应204(0),同时维持窥探主要装置104(2)的干预响应204(1)。有条件干预电路102接着选择窥探主要装置104(2)作为提供干预响应204(1)的唯一剩余窥探主要装置104(2),以将干预数据214提供到请求主要装置104(0)。
在选择窥探主要装置104(2)之后,有条件干预电路102将指示选择窥探主要装置104(2)且从窥探主要装置104(1)消除干预响应204(0)的数据206传达到主要装置104(0)到104(X)中的每一个,如图4C所展示。最后,如在图4D中所见,有条件干预电路102将来自经选择窥探主要装置104(2)的干预数据214提供到请求主要装置104(0)。
图5A到5C为说明用于在多个主要装置间使用有条件干预维持高速缓存同调性的示范性程序的流程图。出于清晰起见,在描述图5A到5C时参考图1、图2A到2D、图3A到3D和图4A到4D的元件。在图5A中,操作始于有条件干预电路102的窥探请求管理电路122从多个主要装置104(0)到104(X)中的对应多个窥探主要装置104(1)到104(X)接收多个干预响应204(0)到204(X),多个主要装置104(0)到104(X)中的每一个是与主要装置104(0)到104(X)的高速缓存存储器106(0)到106(X)的高速缓存线粒度大小108(0)到108(X)相关联(块500)。就这一点而言,窥探请求管理电路122可在本文中被称作“用于根据基于窥探的高速缓存同调性协议从多个主要装置中的对应多个窥探主要装置接收多个干预响应的装置,每一主要装置是与主要装置的高速缓存存储器的高速缓存线粒度大小相关联”。
在一些方面中,有条件干预电路102可从多个主要装置104(0)到104(X)中的重试主要装置104(X)接收重试响应404(块502)。因此,有条件干预电路102可在本文中被称作“用于从多个主要装置中的重试主要装置接收重试响应的装置”。作为响应,有条件干预电路102可从高速缓存线粒度大小108(1)小于重试主要装置104(X)的高速缓存线粒度大小108(X)的多个窥探主要装置104(1)到104(X)中的每一窥探主要装置104(1)消除每一干预响应204(0)(块504)。有条件干预电路102可因此在本文中被称作“用于从高速缓存线粒度大小小于重试主要装置的高速缓存线粒度大小的多个窥探主要装置中的每一窥探主要装置消除多个干预响应中的每一干预响应的装置”。处理接着在图5B的块506处继续。
现在转到5B,有条件干预电路102接下来确定相较于多个主要装置104(0)到104(X)中的请求主要装置104(0)具有相同或较大高速缓存线粒度大小108(1)到108(X)的多个窥探主要装置104(1)到104(X)的计数(块506)。就这一点而言,有条件干预电路102可在本文中被称作“用于确定相较于多个主要装置中的请求主要装置具有相同或较大高速缓存线粒度大小的多个窥探主要装置的计数的装置”。如果有条件干预电路102在块506处确定一个窥探主要装置104(X)相较于请求主要装置104(0)具有相同或较大高速缓存线粒度大小108(X)(即,“计数=1”),那么有条件干预电路102选择具有相同或较大高速缓存线粒度大小108(X)的窥探主要装置104(X)(块508)。因此,有条件干预电路102可在本文中被称作“用于响应于确定一个窥探主要装置具有相同或较大高速缓存线粒度大小而选择具有相同或较大高速缓存线粒度大小的多个窥探主要装置中的一个窥探主要装置的装置”。处理接着在图5C的块510处恢复执行。
然而,如果有条件干预电路102在块506处确定多于一个窥探主要装置104(1)到104(X)相较于请求主要装置104(0)具有相同或较大高速缓存线粒度大小108(1)到108(X)(即,“计数>1”),那么有条件干预电路102基于替代选择准则从具有相同或较大高速缓存线粒度大小108(1)到108(X)的多于一个窥探主要装置104(1)到104(X)当中选择窥探主要装置104(1)(块512)。有条件干预电路102可因此在本文中被称作“用于响应于确定多个窥探主要装置中的多于一个窥探主要装置具有相同或较大高速缓存线粒度大小而基于替代选择准则从具有相同或较大高速缓存线粒度大小的多个窥探主要装置中的多于一个窥探主要装置当中选择窥探主要装置的装置”。根据一些方面,用于选择窥探主要装置104(1)的块512的操作可包含从具有相同或较大高速缓存线粒度大小108(1)到108(X)的多于一个窥探主要装置104(1)到104(X)当中选择具有到请求主要装置104(0)的最短路径的窥探主要装置104(1)(块514)。因此,有条件干预电路102可在本文中被称作“用于选择具有到请求主要装置的最短路径的窥探主要装置的装置”。在一些方面中,块514的操作可基于拓扑映射118(块516)。一些方面可规定用于选择窥探主要装置104(1)的块512的操作可包含选择高速缓存线粒度大小108(1)最接近于请求主要装置104(0)的高速缓存线粒度大小108(0)的窥探主要装置104(1)(块518)。就这一点而言,有条件干预电路102可在本文中被称作“用于选择高速缓存线粒度大小最接近于请求主要装置的高速缓存线粒度大小的窥探主要装置的装置”。处理接着在图5C的块510处恢复执行。
返回到图5B的块506,如果有条件干预电路102确定窥探主要装置104(1)到104(X)中的任一个相较于请求主要装置104(0)皆不具有相同或较大高速缓存线粒度大小108(1)到108(X)(即,“计数=0”),那么有条件干预电路102基于替代选择准则从多个窥探主要装置104(1)到104(X)当中选择窥探主要装置104(1)(块520)。有条件干预电路102因此可在本文中被称作“用于响应于确定多个窥探主要装置中的任何窥探主要装置皆不具有相同或较大高速缓存线粒度大小而基于替代选择准则从多个窥探主要装置当中选择窥探主要装置的装置”。因为经选择窥探主要装置104(1)可能不能够提供请求主要装置104(0)所请求的所有数据,所以在一些方面中,有条件干预电路102可从系统存储器107检索遗漏数据(块522)。因此,有条件干预电路102可在本文中被称作“用于从系统存储器检索遗漏数据的装置”。处理接着在图5C的块510处继续。
在图5C中,有条件干预电路102接下来从多个窥探主要装置104(1)到104(X)中的对应一或多个未经选择窥探主要装置104(1)、104(X)消除一或多个干预响应204(0)、204(1)(块510)。因此,有条件干预电路102可在本文中被称作“用于从多个窥探主要装置中的对应一或多个未经选择窥探主要装置消除多个干预响应中的一或多个干预响应的装置”。在一些方面中,用于消除一或多个干预响应204(0)、204(1)的块510的操作可包括在最终结果208的消除向量210内设定对应于一或多个未经选择窥探主要装置104(1)、104(X)的一或多个消除向量位212(0)到212(X)(块524)。有条件干预电路102可因此在本文中被称作“用于在最终结果的消除向量内设定对应于一或多个未经选择窥探主要装置的一或多个消除向量位的装置”。
有条件干预电路102接着将来自经选择窥探主要装置104(1)、104(X)的干预数据214提供到请求主要装置104(0)(块526)。就这一点而言,有条件干预电路102可在本文中被称作“用于将来自经选择窥探主要装置的干预数据提供到请求主要装置的装置”。在一些方面中,有条件干预电路102可维持来自配置成提供早期干预数据传送的未经选择窥探主要装置104(1)、104(X)的干预响应204(0)、204(1)(块528)。因此,有条件干预电路102可在本文中被称作“用于维持来自配置成提供早期干预数据传送的多个窥探主要装置中的对应一或多个未经选择窥探主要装置的一或多个干预响应的装置”。
根据本文中所公开的方面的在多个主要装置间使用有条件干预维持高速缓存同调性可提供于或集成到任何基于处理器的装置中。在无限制的情况下,实例包含机顶盒、娱乐单元、导航装置、通信装置、固定位置数据单元、移动位置数据单元、移动电话、蜂窝式电话、智能型电话、平板计算机、平板手机、计算机、便携式计算机、台式计算机、个人数字助理(PDA)、监视器、计算机监视器、电视、调谐器、无线电、卫星无线电、音乐播放器、数字音乐播放器、便携式音乐播放器、数字视频播放器、视频播放器、数字视频光盘(DVD)播放器、便携式数字视频播放器和汽车。
就这一点而言,图6说明可使用图1所说明的有条件干预电路102的基于处理器的系统600的实例。在这个实例中,基于处理器的系统600可对应于图1的基于处理器的系统100。基于处理器的系统600包含一或多个中央处理单元(CPU)602,每一个中央处理单元(CPU)602包含一或多个处理器604。CPU 602可为主要装置104(0)到104(X)。CPU 602可具有耦合到处理器604以用于对经暂时存储的数据进行快速存取的高速缓存存储器606。CPU602耦合到系统总线608,且可相互耦合包含于基于处理器的系统600中的主要装置和从属装置。众所周知,CPU 602通过经由系统总线608交换地址、控制及数据信息而与这些其它装置通信。举例来说,CPU 602可将总线异动请求传达到作为从属装置的实例的存储器控制器610。
其它主要装置和从属装置可连接到系统总线608。如图6所说明,作为实例,这些装置可包含存储器系统612、一或多个输入装置614、一或多个输出装置616、一或多个网络接口装置618和一或多个显示控制器620。输入装置614可包含任何类型的输入装置,包含但不限于输入按键、开关、语音处理器等等。输出装置616可包含任何类型的输出装置,包含但不限于音频、视频、其它视觉指示器等等。网络接口装置618可为配置成允许数据到网络622和来自网络622的交换的任何装置。网络622可为任何类型的网络,包含但不限于有线或无线网络、私用或公用网络、局域网(LAN)、无线局域网(WLAN)、广域网(WAN)、BLUETOOTHTM网络和因特网。网络接口装置618可配置成支持任何类型的所需通信协议。存储器系统612可包含一或多个存储器单元624(0到N)。
CPU 602也可配置成经由系统总线608而存取显示控制器620以控制发送到一或多个显示器626的信息。显示控制器620通过一或多个视频处理器628将信息发送到显示器626以供显示,视频处理器628将待显示信息处理成适合于显示器626的格式。显示器626可包含任何类型的显示器,包含但不限于阴极射线管(CRT)、液晶显示器(LCD)、等离子体显示器等等。
所属领域的技术人员将进一步了解,结合本文中所公开的方面而描述的各种说明性逻辑块、模块、电路和算法可被实施为电子硬件、存储在存储器或另一计算机可读媒体中且由处理器或其它处理装置执行的指令,或这两种的组合。作为实例,本文中所描述的主要装置和从属装置可用于任何电路、硬件组件、集成电路(IC)或IC芯片中。本文中所公开的存储器可为任何类型和大小的存储器,且可配置成存储任何类型的所需信息。为了清楚地说明此互换性,上文已大体上在功能性方面描述各种说明性组件、块、模块、电路和步骤。如何实施此类功能性取决于特定应用、设计选择和/或强加于整个系统的设计约束。所属领域的技术人员可针对每一特定应用而以变化的方式实施所描述的功能性,但不应将这些实施决策解译为致使脱离本发明的范围。
可运用经设计以执行本文中所描述的功能的处理器、数字信号处理器(DSP)、专用集成电路(ASIC)、现场可编程门阵列(FPGA)或其它可编程逻辑装置、离散栅极或晶体管逻辑、离散硬件组件或其任何组合来实施或执行结合本文中所公开的方面而描述的各种说明性逻辑块、模块和电路。处理器可为微处理器,但在替代例中,处理器可为任何常规处理器、控制器、微控制器或状态机。处理器也可被实施为计算装置的组合(例如,DSP与微处理器的组合、多个微处理器、一或多个微处理器结合DSP核心,或任何其它此类配置)。
本文中所公开的方面可以硬件和指令予以体现,所述指令存储在硬件中,且可驻留在(例如)随机存取存储器(RAM)、快闪存储器、只读存储器(ROM)、电可编程ROM(EPROM)、电可擦除可编程ROM(EEPROM)、寄存器、硬盘、可移动磁盘、CD-ROM或此项技术中所已知的任何其它形式的计算机可读媒体中。示范性存储媒体耦合到处理器,使得处理器可从存储媒体读取信息且将信息写入到存储媒体。在替代例中,存储媒体可与处理器成一体。处理器和存储媒体可驻留在ASIC中。ASIC可驻留在远程台中。在替代例中,处理器和存储媒体可作为离散组件而驻留在远程台、基站或服务器中。
还应注意,描述本文中在示范性方面中的任一个中所描述的操作步骤以提供实例和论述。可以除了所说明的序列以外的众多不同序列来执行所描述的操作。此外,可实际上在数个不同步骤中执行单一操作步骤中所描述的操作。另外,可组合示范性方面中所论述的一或多个操作步骤。应理解,对于所属领域的技术人员而言将容易地显而易见,流程图中所说明的操作步骤可经受众多不同修改。所属领域的技术人员也将理解,可使用多种不同技术和技艺中的任一种来表示信息和信号。举例来说,可由电压、电流、电磁波、磁场或磁性粒子、光场或光学粒子或其任何组合表示可贯穿以上描述而参考的数据、指令、命令、信息、信号、位、符号和芯片。
提供本发明的先前描述以使任何所属领域的技术人员能够进行或使用本发明。在不脱离本发明的精神或范围的情况下,对本发明的各种修改对于所属领域的技术人员而言将容易地显而易见,且本文中所定义的一般原理可应用于其它变化。因此,本发明并不打算限于本文中所描述的实例和设计,而应符合与本文中所公开的原理和新颖特征相一致的最广泛范围。
Claims (32)
1.一种用于使用有条件干预维持高速缓存同调性的有条件干预电路,所述有条件干预电路包括窥探请求管理电路且配置成:
使用所述窥探请求管理电路而根据一或多个基于窥探的高速缓存同调性协议从多个主要装置中的对应多个窥探主要装置接收多个干预响应,所述多个主要装置中的每一主要装置是与所述主要装置的高速缓存存储器的高速缓存线粒度大小相关联,其中所述多个主要装置中的至少两个主要装置与不同高速缓存线粒度大小相关联;
确定相较于所述多个主要装置中的请求主要装置具有相同或较大高速缓存线粒度大小的所述多个窥探主要装置的计数;
响应于确定一个窥探主要装置具有所述相同或较大高速缓存线粒度大小而选择具有所述相同或较大高速缓存线粒度大小的所述一个窥探主要装置;
响应于确定所述多个窥探主要装置中的多于一个窥探主要装置具有所述相同或较大高速缓存线粒度大小而基于替代选择准则从具有所述相同或较大高速缓存线粒度大小的所述多于一个窥探主要装置当中选择一个窥探主要装置;
使用所述窥探请求管理电路而从所述多个窥探主要装置中的对应一或多个未经选择窥探主要装置消除所述多个干预响应中的一或多个干预响应;及
使用所述窥探请求管理电路而将来自所述经选择窥探主要装置的干预数据提供到所述请求主要装置。
2.根据权利要求1所述的有条件干预电路,其包括配置成指示所述替代选择准则的选择寄存器,其中所述有条件干预电路进一步配置成基于由所述选择寄存器指示的所述替代选择准则来选择所述窥探主要装置。
3.根据权利要求1所述的有条件干预电路,其配置成通过选择具有到所述请求主要装置的最短路径的所述窥探主要装置而基于所述替代选择准则来选择所述窥探主要装置。
4.根据权利要求3所述的有条件干预电路,其配置成基于拓扑映射来选择具有到所述请求主要装置的所述最短路径的所述窥探主要装置。
5.根据权利要求1所述的有条件干预电路,其配置成通过选择高速缓存线粒度大小最接近于所述请求主要装置的所述高速缓存线粒度大小的所述窥探主要装置而基于所述替代选择准则来选择所述窥探主要装置。
6.根据权利要求1所述的有条件干预电路,其进一步配置成响应于确定所述多个窥探主要装置中的任何窥探主要装置皆不具有所述相同或较大高速缓存线粒度大小而进行以下操作:
基于所述替代选择准则从所述多个窥探主要装置当中选择所述窥探主要装置;及从系统存储器检索遗漏数据。
7.根据权利要求1所述的有条件干预电路,其中所述窥探请求管理电路配置成通过在最终结果的消除向量内设定对应于所述一或多个未经选择窥探主要装置的一或多个消除向量位而从所述多个窥探主要装置中的所述对应一或多个未经选择窥探主要装置消除所述一或多个干预响应。
8.根据权利要求1所述的有条件干预电路,其进一步配置成维持来自配置成提供早期干预数据传送的所述多个窥探主要装置中的所述对应一或多个未经选择窥探主要装置的所述一或多个干预响应。
9.根据权利要求1所述的有条件干预电路,其中所述窥探请求管理电路进一步配置成:
从所述多个主要装置中的重试主要装置接收重试响应;及
从高速缓存线粒度大小小于所述重试主要装置的高速缓存线粒度大小的所述多个窥探主要装置中的每一窥探主要装置消除所述多个干预响应中的每一干预响应。
10.根据权利要求1所述的有条件干预电路,其中所述一或多个基于窥探的高速缓存同调性协议包括高级可延伸接口AXI同调性延伸ACE协议。
11.根据权利要求1所述的有条件干预电路,其集成到集成电路IC中。
12.根据权利要求1所述的有条件干预电路,其集成到选自由以下组成的群组的装置中:机顶盒;娱乐单元;导航装置;通信装置;固定位置数据单元;移动位置数据单元;移动电话;蜂窝式电话;智能型电话;平板计算机;平板手机;计算机;便携式计算机;台式计算机;个人数字助理PDA;监视器;计算机监视器;电视;调谐器;无线电;卫星无线电;音乐播放器;数字音乐播放器;便携式音乐播放器;数字视频播放器;视频播放器;数字视频光盘DVD播放器;便携式数字视频播放器;和汽车。
13.一种用于使用有条件干预维持高速缓存同调性的有条件干预电路,其包括:
配置成根据一或多个基于窥探的高速缓存同调性协议从多个主要装置中的对应多个窥探主要装置接收多个干预响应的装置,每一主要装置是与所述主要装置的高速缓存存储器的高速缓存线粒度大小相关联,其中所述多个主要装置中的至少两个主要装置与不同高速缓存线粒度大小相关联;
配置成确定相较于所述多个主要装置中的请求主要装置具有相同或较大高速缓存线粒度大小的所述多个窥探主要装置的计数的装置;
配置成响应于确定一个窥探主要装置具有所述相同或较大高速缓存线粒度大小而选择具有所述相同或较大高速缓存线粒度大小的所述多个窥探主要装置中的所述一个窥探主要装置的装置;
配置成响应于确定所述多个窥探主要装置中的多于一个窥探主要装置具有所述相同或较大高速缓存线粒度大小而基于替代选择准则从具有所述相同或较大高速缓存线粒度大小的所述多个窥探主要装置中的所述多于一个窥探主要装置当中选择一个窥探主要装置的装置;
配置成从所述多个窥探主要装置中的对应一或多个未经选择窥探主要装置消除所述多个干预响应中的一或多个干预响应的装置;及
配置成将来自所述经选择窥探主要装置的干预数据提供到所述请求主要装置的装置。
14.根据权利要求13所述的有条件干预电路,其进一步包括配置成指示所述替代选择准则的装置,其中所述配置成基于所述替代选择准则来选择所述窥探主要装置的装置是基于所述配置成指示所述替代选择准则的装置。
15.根据权利要求13所述的有条件干预电路,其中所述配置成基于所述替代选择准则来选择所述窥探主要装置的装置包括配置成选择具有到所述请求主要装置的最短路径的所述窥探主要装置的装置。
16.根据权利要求15所述的有条件干预电路,其中所述配置成选择具有到所述请求主要装置的所述最短路径的所述窥探主要装置的装置包括拓扑映射。
17.根据权利要求13所述的有条件干预电路,其中所述配置成基于所述替代选择准则来选择所述窥探主要装置的装置包括配置成选择高速缓存线粒度大小最接近于所述请求主要装置的所述高速缓存线粒度大小的所述窥探主要装置的装置。
18.根据权利要求13所述的有条件干预电路,其进一步包括:
配置成响应于确定所述多个窥探主要装置中的任何窥探主要装置皆不具有所述相同或较大高速缓存线粒度大小而基于所述替代选择准则从所述多个窥探主要装置当中选择所述窥探主要装置的装置;及
配置成从系统存储器检索遗漏数据的装置。
19.根据权利要求13所述的有条件干预电路,其中所述配置成从所述多个窥探主要装置中的所述对应一或多个未经选择窥探主要装置消除所述一或多个干预响应的装置包括配置成在最终结果的消除向量内设定对应于所述一或多个未经选择窥探主要装置的一或多个消除向量位的装置。
20.根据权利要求13所述的有条件干预电路,其进一步包括配置成维持来自配置成提供早期干预数据传送的所述多个窥探主要装置中的所述对应一或多个未经选择窥探主要装置的所述一或多个干预响应的装置。
21.根据权利要求13所述的有条件干预电路,其进一步包括:
配置成从所述多个主要装置中的重试主要装置接收重试响应的装置;及
配置成从高速缓存线粒度大小小于所述重试主要装置的高速缓存线粒度大小的所述多个窥探主要装置中的每一窥探主要装置消除所述多个干预响应中的每一干预响应的装置。
22.根据权利要求13所述的有条件干预电路,其中所述一或多个基于窥探的高速缓存同调性协议包括高级可延伸接口AXI同调性延伸ACE协议。
23.一种使用有条件干预维持高速缓存同调性的方法,其包括:
由有条件干预电路根据一或多个基于窥探的高速缓存同调性协议从多个主要装置中的对应多个窥探主要装置接收多个干预响应,所述多个主要装置中的每一主要装置是与高速缓存存储器的高速缓存线粒度大小相关联,其中所述多个主要装置中的至少两个主要装置与不同高速缓存线粒度大小相关联;
确定相较于所述多个主要装置中的请求主要装置具有相同或较大高速缓存线粒度大小的所述多个窥探主要装置的计数;
响应于确定所述多个窥探主要装置中的一个窥探主要装置具有所述相同或较大高速缓存线粒度大小而选择具有所述相同或较大高速缓存线粒度大小的所述一个窥探主要装置;
响应于确定所述多个窥探主要装置中的多于一个窥探主要装置具有所述相同或较大高速缓存线粒度大小而基于替代选择准则从具有所述相同或较大高速缓存线粒度大小的所述多于一个窥探主要装置当中选择一个窥探主要装置;
从所述多个窥探主要装置中的对应一或多个未经选择窥探主要装置消除所述多个干预响应中的一或多个干预响应;及
将来自所述经选择窥探主要装置的干预数据提供到所述请求主要装置。
24.根据权利要求23所述的方法,其中基于所述替代选择准则来选择所述窥探主要装置是由选择寄存器指示。
25.根据权利要求23所述的方法,其中基于所述替代选择准则来选择所述窥探主要装置包括选择具有到所述请求主要装置的最短路径的所述窥探主要装置。
26.根据权利要求25所述的方法,其中从具有所述相同或较大高速缓存线粒度大小的所述多于一个窥探主要装置当中选择具有到所述请求主要装置的所述最短路径的所述窥探主要装置是基于拓扑映射。
27.根据权利要求23所述的方法,其中基于所述替代选择准则来选择所述窥探主要装置包括选择高速缓存线粒度大小最接近于所述请求主要装置的所述高速缓存线粒度大小的所述窥探主要装置。
28.根据权利要求23所述的方法,其进一步包括响应于确定所述多个窥探主要装置中的任何窥探主要装置皆不具有所述相同或较大高速缓存线粒度大小而进行以下操作:
基于所述替代选择准则从所述多个窥探主要装置当中选择所述窥探主要装置;及从系统存储器检索遗漏数据。
29.根据权利要求23所述的方法,其中从所述多个窥探主要装置中的所述对应一或多个未经选择窥探主要装置消除所述一或多个干预响应包括在最终结果的消除向量内设定对应于所述一或多个未经选择窥探主要装置的一或多个消除向量位。
30.根据权利要求23所述的方法,其进一步包括维持来自配置成提供早期干预数据传送的所述多个窥探主要装置中的所述对应一或多个未经选择窥探主要装置的所述一或多个干预响应。
31.根据权利要求23所述的方法,其进一步包括:
从所述多个主要装置中的重试主要装置接收重试响应;及
从高速缓存线粒度大小小于所述重试主要装置的高速缓存线粒度大小的所述多个窥探主要装置中的每一窥探主要装置消除所述多个窥探主要装置中的每一干预响应。
32.根据权利要求23所述的方法,其中所述一或多个基于窥探的高速缓存同调性协议包括高级可延伸接口AXI同调性延伸ACE协议。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US14/863,535 US9921962B2 (en) | 2015-09-24 | 2015-09-24 | Maintaining cache coherency using conditional intervention among multiple master devices |
US14/863,535 | 2015-09-24 | ||
PCT/US2016/050987 WO2017053087A1 (en) | 2015-09-24 | 2016-09-09 | Maintaining cache coherency using conditional intervention among multiple master devices |
Publications (2)
Publication Number | Publication Date |
---|---|
CN108027776A CN108027776A (zh) | 2018-05-11 |
CN108027776B true CN108027776B (zh) | 2021-08-24 |
Family
ID=56940457
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201680054085.9A Active CN108027776B (zh) | 2015-09-24 | 2016-09-09 | 在多个主要装置间使用有条件干预维持高速缓存同调性 |
Country Status (9)
Country | Link |
---|---|
US (1) | US9921962B2 (zh) |
EP (1) | EP3353661A1 (zh) |
JP (1) | JP6396625B1 (zh) |
KR (1) | KR101930387B1 (zh) |
CN (1) | CN108027776B (zh) |
BR (1) | BR112018005950A2 (zh) |
CA (1) | CA2996891A1 (zh) |
TW (1) | TW201714096A (zh) |
WO (1) | WO2017053087A1 (zh) |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20050240735A1 (en) * | 2004-04-27 | 2005-10-27 | International Business Machines Corporation | Location-aware cache-to-cache transfers |
CN101044464A (zh) * | 2004-10-28 | 2007-09-26 | 英特尔公司 | 用于将数据推送到处理器高速缓存中的方法和设备 |
CN101504628A (zh) * | 2007-11-28 | 2009-08-12 | 国际商业机器公司 | 用于干预共享高速缓存线的方法和系统 |
CN101802796A (zh) * | 2007-06-22 | 2010-08-11 | 密普斯技术股份有限公司 | 防止多核处理器中的写回竞争 |
US20110320718A1 (en) * | 2010-06-29 | 2011-12-29 | Tuxera Inc. | Reading or writing to memory |
US20130318308A1 (en) * | 2012-05-24 | 2013-11-28 | Sonics, Inc. | Scalable cache coherence for a network on a chip |
Family Cites Families (21)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5751995A (en) * | 1994-01-04 | 1998-05-12 | Intel Corporation | Apparatus and method of maintaining processor ordering in a multiprocessor system which includes one or more processors that execute instructions speculatively |
US5897656A (en) * | 1996-09-16 | 1999-04-27 | Corollary, Inc. | System and method for maintaining memory coherency in a computer system having multiple system buses |
US6115795A (en) * | 1997-08-06 | 2000-09-05 | International Business Machines Corporation | Method and apparatus for configurable multiple level cache with coherency in a multiprocessor system |
US6341336B1 (en) * | 1998-02-17 | 2002-01-22 | International Business Machines Corporation | Cache coherency protocol having tagged state used with cross-bars |
US6701416B1 (en) * | 1998-02-17 | 2004-03-02 | International Business Machines Corporation | Cache coherency protocol with tagged intervention of modified values |
US6141733A (en) * | 1998-02-17 | 2000-10-31 | International Business Machines Corporation | Cache coherency protocol with independent implementation of optimized cache operations |
AUPP638698A0 (en) * | 1998-10-06 | 1998-10-29 | Canon Kabushiki Kaisha | Efficient memory allocator utilising a dual free-list structure |
US6272601B1 (en) * | 1999-05-20 | 2001-08-07 | International Business Machines Corporation | Critical word forwarding in a multiprocessor system |
US6571322B2 (en) * | 2000-12-28 | 2003-05-27 | International Business Machines Corporation | Multiprocessor computer system with sectored cache line mechanism for cache intervention |
US6807608B2 (en) | 2002-02-15 | 2004-10-19 | International Business Machines Corporation | Multiprocessor environment supporting variable-sized coherency transactions |
ATE504446T1 (de) | 2002-12-02 | 2011-04-15 | Silverbrook Res Pty Ltd | Totdüsenausgleich |
US7085898B2 (en) * | 2003-05-12 | 2006-08-01 | International Business Machines Corporation | Coherency management for a “switchless” distributed shared memory computer system |
US7305522B2 (en) | 2005-02-12 | 2007-12-04 | International Business Machines Corporation | Victim cache using direct intervention |
JP2008310414A (ja) * | 2007-06-12 | 2008-12-25 | Hitachi Ltd | コンピュータシステム |
US7870337B2 (en) * | 2007-11-28 | 2011-01-11 | International Business Machines Corporation | Power-aware line intervention for a multiprocessor snoop coherency protocol |
US8250308B2 (en) * | 2008-02-15 | 2012-08-21 | International Business Machines Corporation | Cache coherency protocol with built in avoidance for conflicting responses |
US8347037B2 (en) | 2008-10-22 | 2013-01-01 | International Business Machines Corporation | Victim cache replacement |
US20100185816A1 (en) * | 2009-01-21 | 2010-07-22 | Sauber William F | Multiple Cache Line Size |
US8812786B2 (en) * | 2011-10-18 | 2014-08-19 | Advanced Micro Devices, Inc. | Dual-granularity state tracking for directory-based cache coherence |
US20150074357A1 (en) * | 2013-09-09 | 2015-03-12 | Qualcomm Incorporated | Direct snoop intervention |
US9483403B2 (en) * | 2014-06-17 | 2016-11-01 | International Business Machines Corporation | Techniques for preserving an invalid global domain indication when installing a shared cache line in a cache |
-
2015
- 2015-09-24 US US14/863,535 patent/US9921962B2/en active Active
-
2016
- 2016-08-24 TW TW105127038A patent/TW201714096A/zh unknown
- 2016-09-09 BR BR112018005950A patent/BR112018005950A2/pt not_active Application Discontinuation
- 2016-09-09 CA CA2996891A patent/CA2996891A1/en not_active Abandoned
- 2016-09-09 EP EP16766805.2A patent/EP3353661A1/en not_active Withdrawn
- 2016-09-09 CN CN201680054085.9A patent/CN108027776B/zh active Active
- 2016-09-09 WO PCT/US2016/050987 patent/WO2017053087A1/en active Application Filing
- 2016-09-09 KR KR1020187011508A patent/KR101930387B1/ko active IP Right Grant
- 2016-09-09 JP JP2018515038A patent/JP6396625B1/ja active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20050240735A1 (en) * | 2004-04-27 | 2005-10-27 | International Business Machines Corporation | Location-aware cache-to-cache transfers |
CN101044464A (zh) * | 2004-10-28 | 2007-09-26 | 英特尔公司 | 用于将数据推送到处理器高速缓存中的方法和设备 |
CN101802796A (zh) * | 2007-06-22 | 2010-08-11 | 密普斯技术股份有限公司 | 防止多核处理器中的写回竞争 |
CN101504628A (zh) * | 2007-11-28 | 2009-08-12 | 国际商业机器公司 | 用于干预共享高速缓存线的方法和系统 |
US20110320718A1 (en) * | 2010-06-29 | 2011-12-29 | Tuxera Inc. | Reading or writing to memory |
US20130318308A1 (en) * | 2012-05-24 | 2013-11-28 | Sonics, Inc. | Scalable cache coherence for a network on a chip |
Also Published As
Publication number | Publication date |
---|---|
EP3353661A1 (en) | 2018-08-01 |
JP6396625B1 (ja) | 2018-09-26 |
JP2018530828A (ja) | 2018-10-18 |
KR20180049141A (ko) | 2018-05-10 |
BR112018005950A2 (pt) | 2019-03-19 |
US9921962B2 (en) | 2018-03-20 |
KR101930387B1 (ko) | 2018-12-18 |
CA2996891A1 (en) | 2017-03-30 |
US20170091095A1 (en) | 2017-03-30 |
WO2017053087A1 (en) | 2017-03-30 |
TW201714096A (zh) | 2017-04-16 |
CN108027776A (zh) | 2018-05-11 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR20180103907A (ko) | 태그 디렉터리 캐시들을 이용한 확장 가능 동적 랜덤 액세스 메모리(dram) 캐시 관리의 제공 | |
EP3304321B1 (en) | Providing memory management unit (mmu) partitioned translation caches, and related apparatuses, methods, and computer-readable media | |
US20160371222A1 (en) | COHERENCY DRIVEN ENHANCEMENTS TO A PERIPHERAL COMPONENT INTERCONNECT (PCI) EXPRESS (PCIe) TRANSACTION LAYER | |
US20170371783A1 (en) | Self-aware, peer-to-peer cache transfers between local, shared cache memories in a multi-processor system | |
EP3420460B1 (en) | Providing scalable dynamic random access memory (dram) cache management using dram cache indicator caches | |
CN108027776B (zh) | 在多个主要装置间使用有条件干预维持高速缓存同调性 | |
US20180285269A1 (en) | Aggregating cache maintenance instructions in processor-based devices | |
US10482016B2 (en) | Providing private cache allocation for power-collapsed processor cores in processor-based systems | |
KR101904239B1 (ko) | 재시도 버스 코히어런시 프로토콜 및 인-오더-응답 비-재시도 버스 코히어런시 프로토콜을 사용하는 프로세서-기반 시스템들에서의 데드록들의 방지 |
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 |