CN102567255A - 具有监听请求选择性无效的数据处理系统和用于其的方法 - Google Patents
具有监听请求选择性无效的数据处理系统和用于其的方法 Download PDFInfo
- Publication number
- CN102567255A CN102567255A CN2011103084433A CN201110308443A CN102567255A CN 102567255 A CN102567255 A CN 102567255A CN 2011103084433 A CN2011103084433 A CN 2011103084433A CN 201110308443 A CN201110308443 A CN 201110308443A CN 102567255 A CN102567255 A CN 102567255A
- Authority
- CN
- China
- Prior art keywords
- processor
- speed cache
- invalid
- cache
- designator
- 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
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
- G06F12/0831—Cache consistency protocols using a bus scheme, e.g. with bus monitoring or watching means
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)
Abstract
公开了一种具有监听请求选择性无效的数据处理系统和用于其的方法。数据处理系统包括系统互连(12)、耦合到系统互连的处理器(14)以及耦合到系统互连的高速缓存一致性管理器(CCM)(18)。处理器包括高速缓存(28)。一种方法包括:由CCM生成对处理器的高速缓存的一个或多个监听请求;将对处理器的高速缓存的一个或多个监听请求存储在监听队列中;设置高速缓存启用指示符来指示处理器的高速缓存将被禁用;响应于设置高速缓存启用指示符来指示处理器的高速缓存将被禁用,而选择性地使对处理器的高速缓存的一个或多个监听请求无效,其中基于处理器的无效监听队列指示符来执行选择性无效;和禁用高速缓存。
Description
技术领域
本公开一般地涉及数据处理,并且更具体地涉及具有监听请求选择性无效的数据处理系统和用于其的方法。
背景技术
在具有多个高速缓存的多处理器数据处理系统中,高速缓存一致性管理器(CCM)有时被用于确保在高速缓存和主存储器之间保持一致性。CCM可使用被称为监听的方法来保持一致性并且可包括用于系统中每一个处理器的监听事务条目的队列。在某些系统中,监听请求不需要立即的响应,所以队列可保持用于处理的许多条目。在系统可进入低功率模式,或者在高速缓存离线时执行另一个操作之前,全部挂起的监听请求被首先处理。这可能花费大量的时间,使数据处理系统的后续操作延迟。
因此,所需要的是解决上面问题的数据处理系统。
附图说明
通过示例的方式说明本发明并且其不受附图的限制,在附图中相同的附图标记表示相似的元件。出于简单和清楚的目的示出附图中的元件并且其不一定按比例绘制。
图1是根据一个实施例的数据处理系统的框图。
图2是图1的数据处理系统的处理器的一部分的一个实施例的框图。
图3是根据一个实施例的高速缓存一致性管理器的一部分的一个实施例的框图。
图4是数据处理系统的各种信号的时序图。
具体实施方式
一般地,提供了一种具有高速缓存一致性管理器(CCM)的多处理器数据处理系统。每一个处理器具有需要与系统中的一个或多个其它存储器保持一致性的高速缓存。监听操作被用于保持一致性。CCM控制监听操作并且包含挂起的监听操作的一个或多个队列。在所公开的实施例中提供了“握手”操作,其中处理器基于处理器的寄存器中存储的监听队列无效比特的状态来提供控制信号以向CCM指示在禁用高速缓存之前完成挂起的监听请求,或者在禁用高速缓存之前使监听队列中挂起的监听条目无效。该选择性控制允许正常禁用,或者通过无效禁用。在正常禁用中,在禁用高速缓存之前完成挂起的监听请求。在“通过无效禁用”中,在禁用高速缓存之前使挂起的并且未被完成的监听请求无效。在所公开实施例中提供正常禁用和通过无效禁用,因为不是每一次禁用都会导致高速缓存无效。即,例如某些类型的高速缓存禁用请求必须完成对挂起的监听请求的处理,以便进入低功率模式,其中高速缓存内容将保持有效。在一个实施例中,监听队列无效比特可由处理器上运行的软件控制。
在一个方面,在具有系统互连(interconnect)、耦合到系统互连的处理器以及耦合到系统互连的高速缓存一致性管理器(CCM)的数据处理系统中,其中处理器包括高速缓存,提供了一种方法,该方法包括:由CCM生成对处理器的高速缓存的一个或多个监听请求;将对处理器的高速缓存的一个或多个监听请求存储在监听队列中;设置高速缓存启用指示符来指示处理器的高速缓存将被禁用;响应于设置高速缓存启用指示符来指示处理器的高速缓存将被禁用,选择性地使对处理器的高速缓存的一个或多个监听请求无效,其中基于处理器的无效监听队列指示符来执行选择性无效;和禁用高速缓存。该方法还可包括:由处理器向CCM提供高速缓存启用信号,其中响应于指示高速缓存将被禁用的高速缓存启用指示符,处理器设置高速缓存启用信号以向CCM指示高速缓存将被禁用。CCM可包括监听队列,并且其中该方法还可包括:由处理器向CCM提供无效监听队列信号,其指示是否使对处理器的高速缓存的一个或多个监听请求无效。当高速缓存启用信号从指示启用高速缓存转变为指示将禁用高速缓存时,如果无效监听队列信号具有第一状态则可使监听队列中对处理器的高速缓存的一个或多个监听请求无效,并且如果无效监听队列信号具有第二状态则可不使对处理器的高速缓存的一个或多个监听请求无效。当高速缓存启用信号从指示启用高速缓存转变为指示将禁用高速缓存时,如果无效监听队列信号具有第二状态则可在禁用高速缓存的步骤之前完成对处理器的高速缓存的一个或多个监听请求。高速缓存启用指示符和无效监听队列指示符中的每一个可以是用户可编程的。在处理器进入低功率模式或测试模式时可执行禁用高速缓存的步骤。数据处理系统可包括耦合到系统互连的第二处理器,其中第二处理器包括高速缓存,其中该方法还可包括:由CCM生成对第二处理器的高速缓存的一个或多个监听请求;将对第二处理器的高速缓存的一个或多个监听请求存储在第二监听队列中;设置第二处理器的第二高速缓存启用指示符来指示第二处理器的高速缓存将被禁用;响应于设置第二高速缓存启用指示符来指示第二处理器的高速缓存将被禁用,选择性地使对第二处理器的高速缓存的一个或多个监听请求无效,其中基于第二处理器的第二无效监听队列指示符来执行选择性无效;和禁用第二处理器的高速缓存。该方法还可包括:由第二处理器向CCM提供第二高速缓存启用信号和第二无效监听队列信号。响应于设置高速缓存启用指示符来指示将禁用处理器的高速缓存,处理器的无效监听队列指示符可指示使对处理器的高速缓存的一个或多个监听队列请求无效,并且响应于设置第二高速缓存启用指示符来指示将禁用第二处理器的高速缓存,第二处理器的第二无效监听队列指示符可指示不使对第二处理器的高速缓存的一个或多个监听请求无效。
在另一个方面,提供了一种数据处理系统,其包括:系统互连;耦合到系统互连的处理器,其中处理器包括:高速缓存;存储无效监听队列指示符的第一存储电路;和存储高速缓存启用指示符的第二存储电路;以及耦合到系统互连的高速缓存一致性管理器(CCM),高速缓存一致性管理器具有对应于处理器的第一监听队列,其中高速缓存一致性管理器生成被存储在第一监听队列中的用于处理器的监听请求,其中响应于高速缓存启用指示符被设置为指示处理器的高速缓存将被禁用,基于无效监听队列指示符来选择性地使第一监听队列中用于处理器的监听请求无效。处理器可提供高速缓存启用信号,其中高速缓存启用信号向CCM指示何时要禁用高速缓存。处理器可向CCM提供无效监听队列信号,其中当高速缓存启用信号从指示启用高速缓存转变为指示要禁用高速缓存时,无效监听队列信号可向CCM指示是否使对处理器的高速缓存的一个或多个监听请求无效。处理器可包括处理器监听队列,其中响应于指示将禁用高速缓存的高速缓存启用指示符,基于无效监听队列指示符来选择性地使处理器监听队列无效。数据处理系统还可包括:耦合到系统互连的第二处理器,其中第二处理器包括:第二高速缓存;存储第二无效监听队列指示符的第三存储电路;和存储第二高速缓存启用指示符的第四存储电路;其中高速缓存一致性管理器具有对应于第二处理器的第二监听队列,其中高速缓存一致性管理器生成存储在第二监听队列中的用于第二处理器的监听请求,其中响应于第二高速缓存启用指示符被设置为指示第二处理器的第二高速缓存将被禁用,基于第二无效监听队列指示符来选择性地使第二监听队列中用于第二处理器的监听请求无效。第二处理器可提供第二高速缓存启用信号,其中第二高速缓存启用信号向CCM指示何时将禁用第二高速缓存;并且第二处理器可向CCM提供第二无效监听队列信号,其中当第二高速缓存启用信号从指示启用第二高速缓存转变为指示将禁用第二高速缓存时,第二无效监听队列信号可向CCM指示是否使第二监听队列中用于第二处理器的监听请求无效。
在又一个实施例中,数据处理系统包括:系统互连;耦合到系统互连的处理器,其中处理器包括:高速缓存;存储无效监听队列指示符的第一存储电路;和存储高速缓存启用指示符的第二存储电路;以及耦合到系统互连的高速缓存一致性管理器(CCM),高速缓存一致性管理器具有对应于处理器的第一监听队列,其中高速缓存一致性管理器生成被存储在第一监听队列中的用于处理器的监听请求;基于高速缓存启用指示符从处理器向CCM提供的高速缓存启用信号,其中高速缓存启用信号向CCM指示何时将禁用高速缓存;基于无效监听队列指示符从处理器向CCM提供的无效监听队列信号,其中当高速缓存启用信号从指示启用高速缓存转变为指示将禁用高速缓存时,无效监听队列信号向CCM指示是否使用于处理器的监听请求无效,其中响应于高速缓存启用信号从指示启用高速缓存转变为指示将禁用高速缓存,CCM基于无效监听队列信号选择性地使第一监听队列中用于处理器的监听请求无效。处理器可包括处理器监听队列,其中响应于高速缓存启用指示符指示将禁用高速缓存,基于无效监听队列指示符来选择性地使处理器监听队列无效。数据处理系统还可包括:耦合到系统互连的第二处理器,其中处理器包括:第二高速缓存;存储第二无效监听队列指示符的第三存储电路;和存储第二高速缓存启用指示符的第四存储电路;基于第二高速缓存启用指示符从处理器向CCM提供的第二高速缓存启用信号,其中第二高速缓存启用信号向CCM指示何时将禁用第二高速缓存;和基于第二无效监听队列指示符从第二处理器向CCM提供的第二无效监听队列信号,其中当第二高速缓存启用信号从指示启用第二高速缓存转变为指示将禁用第二高速缓存时,第二无效监听队列信号向CCM指示是否使用于第二处理器的监听请求无效,其中CCM具有对应于第二处理器的第二监听队列并且CCM生成被存储在第二监听队列中的用于第二处理器的监听请求,并且其中响应于第二高速缓存启用信号从指示启用第二高速缓存转变为指示要禁用第二高速缓存,CCM基于第二无效监听队列信号选择性地使第二监听队列中用于第二处理器的监听请求无效。
如这里所使用的,术语“总线”被用于指代可用于传送一种或多种不同类型的信息,诸如数据、地址、控制或状态的多个信号或导体。如这里所述的导体可关于单个导体、多个导体、单向导体或双向导体而被说明或描述。然而,不同的实施例可改变导体的实施方式。例如,可使用分离的单向导体而不是双向导体,并且反之亦然。此外,可用串行或以时分复用方式传送多个信号的单个导体来代替多个导体。同样,承载多个信号的单个导体可被分为承载这些信号的子集的各种不同导体。因此,存在用于传送信号的许多选择。
术语“确立”或“设置”和“否定”(或“取消确立”或“清除”)在这里被用于指代将信号、状态比特或类似装置分别呈现为它的逻辑真或逻辑假状态。如果逻辑真状态为逻辑电平1,则逻辑假状态为逻辑电平0。并且如果逻辑真状态为逻辑电平0,则逻辑假状态为逻辑电平1。
这里描述的每一个信号可被设计为正逻辑或负逻辑,其中负逻辑可由信号名称上的杠或名称后面的星号(*)来表示。在负逻辑信号的情况下,信号低有效,其中逻辑真状态对应于逻辑电平0。在正逻辑信号的情况下,信号是高有效,其中逻辑真状态对应于逻辑电平1。注意,这里描述的任何信号可被设计为负逻辑或正逻辑信号。因此,在替代实施例中,被描述为正逻辑信号的那些信号可被实现为负逻辑信号,并且被描述为负逻辑信号的那些信号可被实现为正逻辑信号。
图1以框图形式示出了根据实施例的数据处理系统10。数据处理系统10包括处理器14、处理器16、高速缓存一致性管理器(CCM)18、系统事务仲裁器32、系统存储器20、其它主设备22、其它从设备24、和输入/输出(I/O)设备26。图1中所示的设备以通信的方式耦合到系统互连12,但是在其它实施例中可通过其它类型的系统互连来耦合。例如,所示的设备可通过包括纵横开关或其它类型开关的系统互连,或者包括总线、多条总线和/或开关的系统互连来以通信的方式耦合。在一个实施例中,系统互连可包括用于地址、数据和控制信息的多条信号线。
系统事务仲裁器32针对系统互连12上的事务在系统10的各种主设备之间进行仲裁。输入/输出设备26可以是任何数量的I/O设备,诸如键盘控制器和通信端口。其它从设备24可包括存储器设备,诸如系统高速缓存(例如L2高速缓存),或者任何类型的从设备或外围设备。设备24和26可被系统的主设备(例如处理器14、处理器16或其它主设备22)生成的系统互连12上的事务来访问。在一个实施例中,其它主设备22包括其它类型的处理器(例如数字信号处理器)或可生成系统互连12上的事务的直接存储器存取(DMA)设备。在一个实施例中,每一个主设备也可包括高速缓存(未示出)。
在所示的实施例中,系统10包括高速缓存一致性管理器18与处理器14和16中的每一个之间的监听控制接口,用于交换关于监听操作的信息。例如,系统10包括处理器14和CCM 18之间的监听控制接口1以及处理器16和CCM 18之间的监听控制接口2。在所示的实施例中,两个监听控制接口都包括监听请求线(监听请求)和监听状态线(监听状态)。替代实施例可在监听控制接口内包括更多或不同的线或信号。
系统10包括处理器14所提供并且被传递到CCM 18的数据高速缓存启用信号DCACHE_EN1,和从处理器14传递到CCM 18的无效监听队列信号INV_SNOOPQ1。此外,系统包括处理器16所提供并且被传递到CCM 18的数据高速缓存启用信号DCACHE_EN2,和从处理器16传递到CCM 18的无效监听队列信号INV_SNOOPQ2。
在其它实施例中,其它类型的数据系统可包括不同的配置和/或具有另外的电路。此外,其它实施例可能没有图1中所示的全部电路。在一个实施例中,图1中所示的某些或全部电路可被实现在一个集成电路上。然而,在其它实施例中,系统10可用多个集成电路来实现。
在一个实施例中,系统10可被实现为信息系统的一部分,该信息系统例如为计算机、蜂窝电话、PDA、汽车的电子控制电路、或实现数据处理系统的其它类型的系统。
高速缓存一致性管理器18(其也可被称为高速缓存一致性逻辑)针对事务来监听系统互连12并且发起对系统10的各高速缓存(例如高速缓存28、高速缓存30)的监听请求。在一个实施例中,CCM 18可发送无效类型监听请求以确定系统10的高速缓存是否包括事务的数据操作对象(例如访问地址),使得可保持高速缓存一致性。在一个实施例中,如果高速缓存包含数据操作对象,那么该高速缓存将响应于无效类型监听请求来使该数据操作对象无效。可监听事务的一个示例是由处理器16对系统存储器20的写事务,用于将数据写入到存储器20中的位置。响应于该事务,CCM 18可生成对其它高速缓存(例如高速缓存28)的无效类型监听请求,以搜索相同存储器地址的数据。如果高速缓存具有对应于相同存储器地址的条目,那么高速缓存将使该数据无效,因为在系统互连12上被更新的版本正被提供到存储器20。在替代实施例中,响应于可监听写事务,高速缓存一致性管理器18可生成对其它高速缓存的刷新(flush)类型监听请求,其中如果高速缓存具有对应于相同地址的条目,那么高速缓存可通过从高速缓存找写入数据的源并且如果找到了匹配条目则用新数据更新存储器20,来对刷新类型监听请求进行响应。基于系统10的各个组件所使用的一种或多种特定高速缓存一致性协议,也可由CCM 18生成对系统10内的高速缓存的其它类型的监听请求。这些一致性协议是本领域技术人员众所周知的,并且可包括MESI、MOESI或其它协议及其变体。还要注意,在替代实施例中,CCM 18的电路和功能可分布于系统10的某些或全部主设备,或者可位于系统10中的别处。
在一个实施例中,高速缓存一致性管理器18与处理器14和16中的每一个之间的监听请求信号接口包括用于指示正在做出监听请求的请求信号线,指示响应于生成监听的事务类型而将被执行的命令类型的监听命令线,作为正被监听的事务的地址的监听地址线,以及监听请求ID线(未示出),其为由识别监听请求的高速缓存一致性管理器18生成的值。这些信号线可以是多个比特(在某些实施例中并行或者串行),或者在某些实施例中为单个比特。
在某些系统中,在正常系统操作的专用时隙中的操作期间,高速缓存28和30可定期离线。在该时隙期间,检查高速缓存以发现硬错误和软错误。该维护操作通常由BIST(内置自测)算法来执行。当完成时,使高速缓存28和30无效并且然后针对正常操作将其重新启用。在其它时间,诸如在低功率模式中的操作期间,禁用高速缓存28和30,旨在在低功率模式结束时以相同的状态使它们恢复。在任何禁用高速缓存的情况下,不论是否要以相同的状态重新激活高速缓存,在禁用高速缓存之前都完成对于对应处理器的全部挂起的监听请求。在禁用高速缓存之前完成监听请求可能花费大量的时间,因为在对应于该特定高速缓存的监听队列中可能存在多个挂起的监听请求。如果例如因为高速缓存上的维护操作而禁用高速缓存,那么在时隙中可能没有足够的时间来在该时隙期满前完成队列中挂起的监听请求并且检查高速缓存。
所公开的实施例提供了下述机制:该机制基于例如存储在处理器的寄存器中的监听队列无效指示符比特的状态在禁用高速缓存之前完成挂起的监听请求或者在禁用高速缓存之前使监听队列中的挂起条目无效。在一个实施例中,监听队列无效比特可由处理器上运行的软件控制。
图2是数据处理系统10的处理器14的一部分的框图。在图2中,处理器14包括高速缓存28、处理电路40、仲裁器42、总线接口单元(BIU)48、监听控制54和监听队列电路44。
处理电路40可包括通常在处理器中存在的电路,诸如,例如指令通道单元、执行单元、指令获取单元、控制电路、通用寄存器、加载存储单元和预获取单元。其它实施例的处理器可包括其它类型的电路。
在一个实施例中,在处理器操作期间,处理电路40执行生成对要从系统存储器20(或者其它从设备或I/O设备)读取的数据和要写入到系统存储器20(或者其它从设备或I/O设备)的数据的请求的指令。响应于对具有系统存储器地址的数据(例如由电路40的加载/存储单元或预获取单元生成的)的请求,处理电路40将检查高速缓存28(经由仲裁器42)以查看它是否具有对应于该系统存储器地址的任何数据。如果没有,处理电路40的加载存储单元将经由BIU 48在系统互连总线12上生成事务,以从存储器20请求该系统地址处的数据。响应于读取事务,系统存储器20将向处理器14提供在系统互连总线12上的所请求数据,其中BIU 48接收数据并且将数据提供到处理电路40并且在某些实施例中提供到高速缓存28。在由处理器14接收数据之后,事务完成。对存储器20的写入事务可由处理器14发起,其中写入地址和数据在互连总线12上被提供以便被写入到存储器20的该地址。此外,在其它实施例中,数据可被写入到数据处理系统10的其它从设备24和I/O设备26或从其被读取。
高速缓存28可以是指令高速缓存、数据高速缓存、或两者的组合。这里关于事务的术语“数据”的使用可指代在指令高速缓存或数据高速缓存中存储的信息。
处理器14还包括用于监听请求管理的电路。监听请求电路进行操作以保持高速缓存28中的数据与存储器20和数据处理系统10的其它高速缓存中存储的数据的其它副本的一致性。监听控制54经由监听控制接口从高速缓存一致性管理器18接收监听请求。处理器14包括监听队列电路44,监听队列电路44包括用于存储从监听控制接口接收的监听请求的监听队列46。在一个实施例中,监听请求队列46可被实现为FIFO。在一个实施例中,FIFO可被实现为环形缓冲器。
在监听请求队列46内有多个,(N+1)个条目,其中N为整数。监听请求队列46中的每一个条目具有地址字段和包括状态信息的状态字段。地址字段存储针对其生成了监听请求的事务的地址。在所示的实施例中,状态字段中的比特是指示监听请求队列46中的条目是否有效的有效(V)比特。在其它实施例中,可包括其它类型的状态比特。此外,每一个条目可包括存储用于由高速缓存一致性管理器生成的监听请求的监听请求ID的监听请求ID字段(未示出)。
在操作中,监听控制54和监听队列电路44进行操作以保持高速缓存28与系统10中信息的其它副本的一致性。监听通过高有效信号DCACHE_EN1来启用。监听控制54经由监听控制接口从高速缓存一致性管理器18接收监听请求并且提供监听请求的地址,以被存储在队列46中。仲裁器42以有效的方式来仲裁对处理电路40和监听队列电路44之间的高速缓存28的访问,以最小化处理电路40不访问高速缓存28的时间。通过选择性地将两个或更多的监听地址查找合并或压缩为单个监听地址查找,可在一个实施例中完成监听控制电路对高速缓存28的访问的最小化。
处理电路40具有包括寄存器比特字段41和寄存器比特字段43的存储电路。在另一个实施例中,存储电路可以是随机存取存储器或其它存储单元,并且可位于处理电路40外部。寄存器比特字段41包括用于指示数据高速缓存28被启用或禁用的至少一个控制比特。当比特字段41存储逻辑1时,由监听控制54提供数据高速缓存启用信号DCACHE_EN1,以向CCM 18指示数据高速缓存28被启用。当比特字段41存储逻辑0时,由处理器14的监听控制54提供数据高速缓存启用信号DCACHE_EN1,以向CCM 18指示数据高速缓存28被禁用。比特字段43包括用于指示是否选择性地刷新或取消(使无效)挂起的监听请求,或者当高速缓存已被禁用时通过注释(noting)来管理目录所有权或监听过滤器的至少一个控制比特。当比特字段43被设置为逻辑1时,无效监听队列控制信号INV_SNOOPQ1指示在高速缓存禁用时将使监听队列46无效。当比特字段43被设置为逻辑0时,控制信号INV_SNOOPQ1指示不使监听队列46无效,而是应当对其刷新。在DCACHE_EN1转变为指示监听控制54应当刷新监听队列46或使监听队列46无效的时候,对控制信号INV_SNOOPQ1进行采样(参见图4)。在一个实施例中,监听队列无效比特可由处理器上运行的软件控制。此外,数据高速缓存启用指示符和无效监听队列指示符可以是用户可编程的。另外,当处理器进入低功率模式或测试模式时,可禁用高速缓存。
当监听控制54接收到监听请求时,监听控制54将监听地址路由到监听队列电路44。可实现监听队列电路44的功能的各种实施例。在一个实施例中,来自监听控制54的全部接收的监听地址被存储在监听请求队列46中。当仲裁器42向监听队列电路44提供对高速缓存28的访问时,不允许经由仲裁器42的来自处理电路40的对高速缓存28的访问地址。在该模式的操作中,仲裁器42向高速缓存28提供来自监听请求队列46的监听地址以用于搜索。基于先进先出(FIFO)从监听请求队列46移除监听地址。
当监听地址存在于监听请求队列46中时,监听队列电路44向仲裁器42发信号以请求仲裁器42仲裁对高速缓存28的访问。在一个实施例中,高速缓存28具有单个集合的地址标记并且因此必须专用于处理器用于寻址或者专用于监听队列电路用于寻址。当仲裁器42阻止处理电路40访问高速缓存28时,来自电路44的监听地址通过仲裁器42被路由到高速缓存28。高速缓存28内的电路比较监听地址与当前在高速缓存28中存储的全部地址。如果存在匹配,则高速缓存28中的匹配条目被标记为无效,因为它潜在地不同于系统互连总线12上的事务条目。如果不存在匹配,则在高速缓存28内部采取进一步动作。在某些实施例中,监听控制54可向仲裁器42发信号以仲裁对高速缓存28的访问。
在一个实施例中,可由电路44执行监听地址压缩以减少电路44访问高速缓存28的时间。在监听地址压缩的一种形式中,在监听地址从监听队列的头部输出之前,由比较逻辑(未示出)执行接下来的两个或更多的监听地址的比较。被同时比较的监听地址的数目是设计的选择。当由电路44比较两个监听地址时,如果地址具有相同的标记和索引部分,则不提供第二地址用于监听,并且创建计数值来指示一对监听地址被组合或压缩为一个监听地址。用于两个地址的相同标记和索引部分指示两个地址位于存储器的相同线内。通过不将两个监听地址发送到高速缓存28,显著减少了将高速缓存28从处理电路40转移用于监听的时间。例如参见标题为“Snoop Request Management in a DataProcessing System”的申请号为11/969,112的2008年1月3日提交的具有共同受让人的美国专利申请,其全部内容通过引用合并于此。
在所示出的实施例中,监听控制接口包括监听请求信号接口、监听状态信号接口、监听确认信号接口和监听错误信号接口。
在一个实施例中,监听请求信号接口包括用于指示正在进行请求的请求信号线,指示生成监听的总线事务的类型的监听命令线,作为正被监听的事务的地址的监听地址线,以及监听请求ID线(未示出),其为识别监听请求的高速缓存一致性管理器所生成的数。这些信号线可以是多个比特(在某些实施例中并行或者串行),或者在某些实施例中为单个比特。
监听确认信号接口被用于向高速缓存一致性管理器18指示监听请求已由高速缓存处理。监听状态接口提供高速缓存监听的结果(例如,在高速缓存中是否找到关于数据地址的条目,或者在该条目的数据中是否找到错误(奇偶校验比特))。在另一个实施例中,监听确认接口可包括监听响应线和指示监听请求的ID号的监听请求ID线(未示出)。这些线也可以是多个比特。
监听控制接口包括监听错误信号线。监听错误信号线由高速缓存一致性管理器18使用用来向处理器指示当被监听时由处理器生成的事务导致了来自另一个高速缓存的错误。错误的示例包括另一个高速缓存是否发现关联于被监听地址的数据具有奇偶校验错误或ECC错误。
在其它实施例中,系统10可包括其它配置的和/或以不同方式执行事务和监听操作的处理器。例如,处理器可具有图2中未示出的其它电路,或者可不包括图2中示出的全部电路。此外,处理器还可包括以另一种方式处理监听请求的其它电路。另外,上面关于处理器14的操作的论述也适用于处理器16的操作。
图3是根据一个实施例的图1的CCM 18的一部分的一个实施例的框图。高速缓存一致性管理器18包括控制逻辑60、用于处理器14的监听队列62、和用于处理器16的监听队列64。在一个实施例中,处理器14和16都可以是中央处理单元(CPU)。高速缓存一致性管理器18从处理器14接收无效监听队列信号INV_SNOOPQ1和数据高速缓存启用信号DCACHE_EN1。高速缓存一致性管理器18从处理器16接收无效监听队列信号INV_SNOOPQ2和数据高速缓存启用信号DCACHE_EN2。此外,CCM 18接收如图1中所示的监听控制接口1和监听控制接口2。
监听队列62保持用于处理器14的挂起的监听请求。监听队列62将随后在监听队列46具有可用的队列存储时将这些挂起的请求传送到监听队列电路44的监听队列46。将被处理器14处理的监听队列条目因此存在于两个队列中,即处理器14中的监听队列46和CCM 18中的监听队列62。类似地,监听队列64保持用于处理器16的挂起的监听请求,处理器16随后在处理器16内的监听队列电路44的相应监听队列46具有可用队列存储时将接受这些挂起的请求。将被处理器16处理的监听队列条目因此存在于两个队列中,即处理器16中的监听队列46和CCM 18中的监听队列64。
如上所述,控制信号DCACHE_EN1和/或DCACHE_EN2分别由处理器14或处理器16确立为逻辑高信号,以向CCM 18指示对应的数据高速缓存被启用或禁用。当控制信号之一,例如DCACHE_EN1,被启用时,在禁用控制信号DCACHE_EN1时,对控制信号INV_SNOOPQ1进行采样。如果在DCACHE_EN1被禁用时INV_SNOOPQ1是逻辑高(1),那么使监听队列62无效(连同图2中的处理器14的监听队列46)。如果INV_SNOOPQ1是逻辑低(0),那么在禁用处理器14中的高速缓存28之前,不使任何监听队列无效并且完成挂起的监听请求。类似地,当DCACHE_EN2被启用时,在禁用控制DCACHE_EN2时,对控制信号INV_SNOOPQ2进行采样。如果在DCACHE_EN2被禁用时控制信号INV_SNOOPQ2是逻辑高(1),那么使监听队列64无效(连同处理器16的监听队列46)。如果控制信号INV_SNOOPQ2被采样为逻辑低(0),那么在禁用处理器16中的高速缓存30之前,不使任何监听队列无效并且完成挂起的监听请求。
图4是数据处理系统10的时钟信号M_CLK、数据高速缓存启用信号DCACHE_EN1和监听队列无效信号INV_SNOOPQ1的时序图。图4的示例针对处理器14,但是也可被直接应用于处理器16。时钟信号M_CLK被用于提供数据处理系统10的各种操作的时序。时钟信号M_CLK未在图1到3中示出,但是本领域技术人员将会理解时钟信号M_CLK的功能。作为示例,数据高速缓存启用信号DCACHE_EN1在时间t0被确立为逻辑高。在时间t1,监听队列无效信号INV_SNOOPQ1被确立为逻辑高以指示当禁用数据高速缓存28时,CCM 18使对应于数据高速缓存28的监听队列62无效。在时间t2,信号DCACHE_EN1被禁用为逻辑低,并且对信号INV_SNOOPQ1进行采样。当使数据高速缓存28无效时,使监听队列62无效,如信号INV_SNOOPQ1所指示的。此外,作为处理器14内部的操作,使监听队列46无效。
在控制信号INV_SNOOPQ1为逻辑低(0)的情况下,当DCACHE_EN1被禁用为逻辑低时,逻辑低信号INV_SNOOPQ1向CCM18指示在禁用数据高速缓存28之前,将完成监听队列62中全部挂起的监听请求。此外,处理器14将处理监听队列46中全部挂起的监听队列条目。
数据高速缓存启用指示符和无效监听队列指示符提供一种握手机制用于允许高速缓存一致性管理器选择性地丢弃用于系统特定处理器的全部挂起的监听请求。这与要求在禁用高速缓存之前挂起要被处理的监听队列条目的其它系统相反。提供该握手使得能够通过去除处理不必要的监听操作所浪费的时间来改善系统性能。这还导致显著的能量节约,因为连同去除了高速缓存访问周期一起,还去除了对加载的监听端口的不必要的监听操作。对于在禁用高速缓存时不需要保持高速缓存的内容的那些高速缓存禁用情况,由此最小化了禁用高速缓存的开销。在要保留高速缓存内容的其它情况下,必须在实际禁用高速缓存之前完成全部挂起的监听操作。所公开的实施例通过无效监听队列指示符提供了支持这两种模式的操作的灵活性。
因为实现本发明的装置多半由本领域技术人员已知的电子元件和电路组成,所以为了理解和明白本发明的潜在原理并且为了不模糊或分散本发明的教导,将不再以比如上所述被认为必要的任何更深的程度来说明电路细节。
根据情况,上面实施例中的某些可使用各种不同的信息处理系统来实现。例如,尽管图1和其论述描述了示例的信息处理架构,该示例架构被给出仅仅为了在论述本发明的各个方面时提供有用的参考。当然,为了论述,已简化了对该架构的描述,并且它仅仅是根据本发明可被使用的许多不同类型的适当架构中的一种。本领域技术人员将会认识到,逻辑框之间的边界仅仅是说明性的并且替代实施例可合并逻辑框或电路元件,或者对各种逻辑框或电路元件施加替代的功能分解。
因此,应当理解,这里描述的架构仅仅是示例性的,并且实际上可实现完成相同功能的许多其它架构。在抽象但是仍然明确的含意上,完成相同功能的任何组件的布置被有效地“关联”,以使得完成期望的功能。因此,这里的任何两个组件被组合以完成特定功能可被视为相互“关联”以便完成期望的功能,而与架构或中间组件无关。同样,如此关联的任何两个组件也可被视为相互“以可操作的方式连接”,或者“以可操作的方式耦合”以完成期望的功能。
本领域技术人员将会认识到,上述操作的功能之间的边界仅仅是说明性的。多个操作的功能可被组合为单个操作,并且/或者单个操作的功能可被分布在另外的操作中。此外,替代实施例可包括特定操作的多个实例,并且在各种其它实施例中可变更操作的顺序。
尽管这里参考特定实施例描述了本发明,但是可在不偏离如所附权利要求中所阐述的本发明范围的情况下做出各种修改和变化。因此,说明书和附图应当被视为是说明性而非限制性的含意,并且所有这些修改旨在被包括在本发明的范围内。关于特定实施例的任何益处、优点和对这里描述的问题的解决方案不旨在被解释为任何或全部权利要求的关键的、必需的或本质的特征或元素。
如这里使用的术语“耦合”不旨在限于直接耦合或机械耦合。
此外,如这里使用的术语“一”被定义为一个或多于一个。此外,权利要求中引导性短语,例如“至少一个”和“一个或多个”的使用不应当被解释为暗示通过不定冠词“一”对另一个权利要求元素的引导将包含该被引导的权利要求元素的任何特定权利要求限制为仅包含一个这种元素的发明,即使在相同的权利要求包括引导性短语“一个或多个”或“至少一个”和不定冠词,例如“一”时也是如此。对于定冠词的使用,这同样成立。
除非明确声明,例如“第一”和“第二”这样的术语被用于任意地在元素,例如术语描述间进行区分。因此,这些术语不一定旨在指示这些元素的时间上或其它优先级。
Claims (20)
1.在具有系统互连、耦合到所述系统互连的处理器以及耦合到所述系统互连的高速缓存一致性管理器CCM的数据处理系统中,其中所述处理器包括高速缓存,一种方法包括:
由所述CCM生成对所述处理器的所述高速缓存的一个或多个监听请求;
将对所述处理器的所述高速缓存的所述一个或多个监听请求存储在监听队列中;
设置高速缓存启用指示符来指示所述处理器的所述高速缓存将被禁用;
响应于设置所述高速缓存启用指示符来指示所述处理器的所述高速缓存将被禁用而选择性地使对所述处理器的所述高速缓存的所述一个或多个监听请求无效,其中基于所述处理器的无效监听队列指示符来执行选择性地无效;以及
禁用所述高速缓存。
2.根据权利要求1所述的方法,还包括:
由所述处理器向所述CCM提供高速缓存启用信号,其中,响应于用于指示所述高速缓存将被禁用的所述高速缓存启用指示符,所述处理器设置所述高速缓存启用信号,以向所述CCM指示所述高速缓存将被禁用。
3.根据权利要求2所述的方法,其中所述CCM包括所述监听队列,并且其中所述方法还包括:
由所述处理器向所述CCM提供无效监听队列信号,所述无效监听队列信号指示是否使对所述处理器的所述高速缓存的所述一个或多个监听请求无效。
4.根据权利要求3所述的方法,其中:
当所述高速缓存启用信号从指示所述高速缓存被启用转变为指示所述高速缓存将被禁用时,如果所述无效监听队列信号具有第一状态,则使所述监听队列中的对所述处理器的所述高速缓存的所述一个或多个监听请求无效,并且如果所述无效监听队列信号具有第二状态,则不使对所述处理器的所述高速缓存的所述一个或多个监听请求无效。
5.根据权利要求4所述的方法,其中当所述高速缓存启用信号从指示所述高速缓存被启用转变为指示所述高速缓存将被禁用时,如果所述无效监听队列信号具有所述第二状态,则在禁用所述高速缓存的步骤之前完成对所述处理器的所述高速缓存的所述一个或多个监听请求。
6.根据权利要求1所述的方法,其中所述高速缓存启用指示符和所述无效监听队列指示符中的每一个是用户可编程的。
7.根据权利要求1所述的方法,其中当所述处理器进入低功率模式时,执行禁用所述高速缓存的步骤。
8.根据权利要求1所述的方法,其中当所述处理器进入测试模式时,执行禁用所述高速缓存的步骤。
9.根据权利要求1所述的方法,其中所述数据处理系统包括耦合到所述系统互连的第二处理器,其中所述第二处理器包括高速缓存,其中所述方法还包括:
由所述CCM生成对所述第二处理器的所述高速缓存的一个或多个监听请求;
将对所述第二处理器的所述高速缓存的所述一个或多个监听请求存储在第二监听队列中;
设置所述第二处理器的第二高速缓存启用指示符来指示所述第二处理器的所述高速缓存将被禁用;
响应于设置所述第二高速缓存启用指示符来指示所述第二处理器的所述高速缓存将被禁用,而选择性地使对所述第二处理器的所述高速缓存的所述一个或多个监听请求无效,其中基于所述第二处理器的第二无效监听队列指示符来执行选择性地无效;以及
禁用所述第二处理器的所述高速缓存。
10.根据权利要求9所述的方法,还包括:
由所述第二处理器向所述CCM提供第二高速缓存启用信号和第二无效监听队列信号。
11.根据权利要求10所述的方法,其中:
响应于设置所述高速缓存启用指示符来指示所述处理器的所述高速缓存将被禁用,所述处理器的所述无效监听队列指示符指示对所述处理器的所述高速缓存的所述一个或多个监听队列请求是无效的,并且
响应于设置所述第二高速缓存启用指示符来指示所述第二处理器的所述高速缓存将被禁用,所述第二处理器的所述第二无效监听队列指示符指示对所述第二处理器的所述高速缓存的所述一个或多个监听请求不是无效的。
12.一种数据处理系统,包括:
系统互连;
耦合到所述系统互连的处理器,其中所述处理器包括:
高速缓存;
用于存储无效监听队列指示符的第一存储电路;和
用于存储高速缓存启用指示符的第二存储电路;以及
耦合到所述系统互连的高速缓存一致性管理器CCM,所述高速缓存一致性管理器具有对应于所述处理器的第一监听队列,其中所述高速缓存一致性管理器生成存储在所述第一监听队列中的用于所述处理器的监听请求,其中,响应于所述高速缓存启用指示符被设置为指示所述处理器的所述高速缓存将被禁用,而基于所述无效监听队列指示符来选择性地使所述第一监听队列中的用于所述处理器的监听请求无效。
13.根据权利要求13所述的数据处理系统,其中所述处理器提供高速缓存启用信号,其中所述高速缓存启用信号向所述CCM指示何时所述高速缓存将被禁用。
14.根据权利要求13所述的数据处理系统,其中所述处理器向所述CCM提供所述无效监听队列信号,其中当所述高速缓存启用信号从指示所述高速缓存被启用转变为指示所述高速缓存将被禁用时,所述无效监听队列信号向所述CCM指示是否使对所述处理器的所述高速缓存的所述一个或多个监听请求无效。
15.根据权利要求12所述的数据处理系统,其中所述处理器包括处理器监听队列,其中响应于指示所述高速缓存将被禁用的所述高速缓存启用指示符,而基于所述无效监听队列指示符来选择性地使所述处理器监听队列无效。
16.根据权利要求12所述的数据处理系统,还包括:
耦合到所述系统互连的第二处理器,其中所述第二处理器包括:
第二高速缓存;
用于存储第二无效监听队列指示符的第三存储电路;和
用于存储第二高速缓存启用指示符的第四存储电路;
其中所述高速缓存一致性管理器具有对应于所述第二处理器的第二监听队列,其中所述高速缓存一致性管理器生成存储在所述第二监听队列中的用于所述第二处理器的监听请求,其中响应于所述第二高速缓存启用指示符被设置为指示所述第二处理器的所述第二高速缓存将被禁用,而基于所述第二无效监听队列指示符来选择性地使所述第二监听队列中的用于所述第二处理器的监听请求无效。
17.根据权利要求16所述的数据处理系统,其中:
所述第二处理器提供第二高速缓存启用信号,其中所述第二高速缓存启用信号向所述CCM指示何时所述第二高速缓存将被禁用;并且
所述第二处理器向所述CCM提供第二无效监听队列信号,其中当所述第二高速缓存启用信号从指示所述第二高速缓存被启用转变为指示所述第二高速缓存将被禁用时,所述第二无效监听队列信号向所述CCM指示是否使所述第二监听队列中的用于所述第二处理器的监听请求无效。
18.一种数据处理系统,包括:
系统互连;
耦合到所述系统互连的处理器,其中所述处理器包括:
高速缓存;
用于存储无效监听队列指示符的第一存储电路;和
用于存储高速缓存启用指示符的第二存储电路;以及
耦合到所述系统互连的高速缓存一致性管理器CCM,所述高速缓存一致性管理器具有对应于所述处理器的第一监听队列,其中所述高速缓存一致性管理器生成存储在所述第一监听队列中的用于所述处理器的监听请求;
基于所述高速缓存启用指示符从所述处理器向所述CCM提供的高速缓存启用信号,其中所述高速缓存启用信号向所述CCM指示何时所述高速缓存将被禁用;
基于所述无效监听队列指示符从所述处理器向所述CCM提供的无效监听队列信号,其中当所述高速缓存启用信号从指示所述高速缓存被启用转变为指示所述高速缓存将被禁用时,所述无效监听队列信号向所述CCM指示是否使用于所述处理器的监听请求无效,其中响应于所述高速缓存启用信号从指示所述高速缓存被启用转变为指示所述高速缓存将被禁用,所述CCM基于所述无效监听队列信号而选择性地使所述第一监听队列中的用于所述处理器的监听请求无效。
19.根据权利要求18所述的数据处理系统,其中所述处理器包括处理器监听队列,其中响应于指示所述高速缓存将被禁用的所述高速缓存启用指示符,基于所述无效监听队列指示符来选择性地使所述处理器监听队列无效。
20.根据权利要求18所述的数据处理系统,还包括:
耦合到所述系统互连的第二处理器,其中所述处理器包括:
第二高速缓存;
用于存储第二无效监听队列指示符的第三存储电路;和
用于存储第二高速缓存启用指示符的第四存储电路;
基于所述第二高速缓存启用指示符从所述处理器向所述CCM提供的第二高速缓存启用信号,其中所述第二高速缓存启用信号向所述CCM指示何时所述第二高速缓存将被禁用;和
基于所述第二无效监听队列指示符从所述第二处理器向所述CCM提供的第二无效监听队列信号,其中当所述第二高速缓存启用信号从指示所述第二高速缓存被启用转变为指示所述第二高速缓存将被禁用时,所述第二无效监听队列信号向所述CCM指示是否使用于所述第二处理器的监听请求无效,
其中所述CCM具有对应于所述第二处理器的第二监听队列并且所述CCM生成存储在所述第二监听队列中的用于所述第二处理器的监听请求,并且其中响应于所述第二高速缓存启用信号从指示所述第二高速缓存被启用转变为指示所述第二高速缓存将被禁用,所述CCM基于所述第二无效监听队列信号而选择性地使所述第二监听队列中的用于所述第二处理器的监听请求无效。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US12/915,198 US8918591B2 (en) | 2010-10-29 | 2010-10-29 | Data processing system having selective invalidation of snoop requests and method therefor |
US12/915,198 | 2010-10-29 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN102567255A true CN102567255A (zh) | 2012-07-11 |
CN102567255B CN102567255B (zh) | 2017-03-01 |
Family
ID=45997952
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201110308443.3A Active CN102567255B (zh) | 2010-10-29 | 2011-10-12 | 具有监听请求选择性无效的数据处理系统和用于其的方法 |
Country Status (2)
Country | Link |
---|---|
US (1) | US8918591B2 (zh) |
CN (1) | CN102567255B (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106096460A (zh) * | 2015-04-30 | 2016-11-09 | Arm 有限公司 | 在互连中实施数据保护 |
CN106250341A (zh) * | 2016-07-29 | 2016-12-21 | 福州瑞芯微电子股份有限公司 | 一种多簇处理器及其脚本设计和连接方法 |
CN109690502A (zh) * | 2016-09-08 | 2019-04-26 | 高通股份有限公司 | 使用硬件控制的分离监听目录的相干互连功率降低 |
Families Citing this family (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8700864B2 (en) * | 2011-11-11 | 2014-04-15 | Microsoft Corporation | Self-disabling working set cache |
US9304954B2 (en) * | 2012-10-24 | 2016-04-05 | Texas Instruments Incorporated | Multi processor bridge with mixed Endian mode support |
US9317433B1 (en) * | 2013-01-14 | 2016-04-19 | Marvell Israel (M.I.S.L.) Ltd. | Multi-core processing system having cache coherency in dormant mode |
US9213643B2 (en) * | 2013-03-13 | 2015-12-15 | Applied Micro Circuits Corporation | Broadcast messaging and acknowledgment messaging for power management in a multiprocessor system |
US9372797B2 (en) * | 2014-02-10 | 2016-06-21 | International Business Machines Corporation | Adaptively enabling and disabling snooping fastpath commands |
US9311244B2 (en) * | 2014-08-25 | 2016-04-12 | Arm Limited | Enforcing ordering of snoop transactions in an interconnect for an integrated circuit |
US20190087333A1 (en) * | 2017-09-15 | 2019-03-21 | Qualcomm Incorporated | Converting a stale cache memory unique request to a read unique snoop response in a multiple (multi-) central processing unit (cpu) processor to reduce latency associated with reissuing the stale unique request |
GB2571538B (en) * | 2018-02-28 | 2020-08-19 | Imagination Tech Ltd | Memory interface |
GB2571536B (en) * | 2018-02-28 | 2020-03-11 | Imagination Tech Ltd | Coherency manager |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20020026569A1 (en) * | 2000-04-07 | 2002-02-28 | Nintendo Co., Ltd. | Method and apparatus for efficient loading and storing of vectors |
CN1506845A (zh) * | 2002-12-10 | 2004-06-23 | 英特尔公司 | 异构代理高速缓存一致性和限制数据传输的方法和装置 |
US20060224835A1 (en) * | 2005-03-29 | 2006-10-05 | International Business Machines Corporation | Snoop filtering system in a multiprocessor system |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4740889A (en) | 1984-06-26 | 1988-04-26 | Motorola, Inc. | Cache disable for a data processor |
US5644788A (en) | 1994-10-28 | 1997-07-01 | Cyrix Corporation | Burst transfers using an ascending or descending only burst ordering |
US6981112B2 (en) | 2002-08-26 | 2005-12-27 | International Business Machines Corporation | Dynamic cache disable |
US20090006756A1 (en) | 2007-06-29 | 2009-01-01 | Donley Greggory D | Cache memory having configurable associativity |
-
2010
- 2010-10-29 US US12/915,198 patent/US8918591B2/en active Active
-
2011
- 2011-10-12 CN CN201110308443.3A patent/CN102567255B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20020026569A1 (en) * | 2000-04-07 | 2002-02-28 | Nintendo Co., Ltd. | Method and apparatus for efficient loading and storing of vectors |
CN1506845A (zh) * | 2002-12-10 | 2004-06-23 | 英特尔公司 | 异构代理高速缓存一致性和限制数据传输的方法和装置 |
US20060224835A1 (en) * | 2005-03-29 | 2006-10-05 | International Business Machines Corporation | Snoop filtering system in a multiprocessor system |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106096460A (zh) * | 2015-04-30 | 2016-11-09 | Arm 有限公司 | 在互连中实施数据保护 |
CN106096460B (zh) * | 2015-04-30 | 2021-10-15 | Arm 有限公司 | 在互连中实施数据保护 |
CN106250341A (zh) * | 2016-07-29 | 2016-12-21 | 福州瑞芯微电子股份有限公司 | 一种多簇处理器及其脚本设计和连接方法 |
CN106250341B (zh) * | 2016-07-29 | 2018-12-18 | 福州瑞芯微电子股份有限公司 | 一种多簇处理器及其脚本设计和连接方法 |
CN109690502A (zh) * | 2016-09-08 | 2019-04-26 | 高通股份有限公司 | 使用硬件控制的分离监听目录的相干互连功率降低 |
Also Published As
Publication number | Publication date |
---|---|
US8918591B2 (en) | 2014-12-23 |
US20120110270A1 (en) | 2012-05-03 |
CN102567255B (zh) | 2017-03-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN102567255A (zh) | 具有监听请求选择性无效的数据处理系统和用于其的方法 | |
US7941584B2 (en) | Data processing apparatus and method for performing hazard detection | |
US7814279B2 (en) | Low-cost cache coherency for accelerators | |
US9372808B2 (en) | Deadlock-avoiding coherent system on chip interconnect | |
US6775748B2 (en) | Methods and apparatus for transferring cache block ownership | |
US6341337B1 (en) | Apparatus and method for implementing a snoop bus protocol without snoop-in and snoop-out logic | |
US20030177316A1 (en) | Read exclusive for fast, simple invalidate | |
US20030046495A1 (en) | Streamlined cache coherency protocol system and method for a multiple processor single chip device | |
US8904073B2 (en) | Coherence processing with error checking | |
JPH04501027A (ja) | キャッシュメモリー付マルチ処理システム | |
JPH07281955A (ja) | マルチプロセッサーシステムのスヌープ回路 | |
US6662216B1 (en) | Fixed bus tags for SMP buses | |
KR19980079662A (ko) | Smp 버스의 공유 상태에서의 캐시 라인들의 공유 개입 방법 | |
WO2010117528A2 (en) | Opportunistic improvement of mmio request handling based on target reporting of space requirements | |
CN105095254A (zh) | 一种实现数据一致性的方法及装置 | |
US7383398B2 (en) | Preselecting E/M line replacement technique for a snoop filter | |
KR20000011516A (ko) | 프로세서인터페이스버스를통해데이터를전달하기위한방법및장치 | |
US7464227B2 (en) | Method and apparatus for supporting opportunistic sharing in coherent multiprocessors | |
KR100322223B1 (ko) | 대기행렬및스누프테이블을갖는메모리제어기 | |
CN106201939A (zh) | 面向gpdsp架构的多核目录一致性装置 | |
US20040193809A1 (en) | Reducing latency of a snoop tenure | |
US20060143333A1 (en) | I/O hub resident cache line monitor and device register update | |
US5978886A (en) | Method and apparatus for duplicating tag systems to maintain addresses of CPU data stored in write buffers external to a cache | |
US20020042860A1 (en) | Cache system | |
JP2008204101A (ja) | バスインタフェースアダプタ、データ転送方法、データ転送システム及び情報処理装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant | ||
CP01 | Change in the name or title of a patent holder |
Address after: Texas in the United States Patentee after: NXP America Co Ltd Address before: Texas in the United States Patentee before: Fisical Semiconductor Inc. |
|
CP01 | Change in the name or title of a patent holder |