CN102043739B - 避免存储器接入延时的系统和方法 - Google Patents
避免存储器接入延时的系统和方法 Download PDFInfo
- Publication number
- CN102043739B CN102043739B CN 201010545658 CN201010545658A CN102043739B CN 102043739 B CN102043739 B CN 102043739B CN 201010545658 CN201010545658 CN 201010545658 CN 201010545658 A CN201010545658 A CN 201010545658A CN 102043739 B CN102043739 B CN 102043739B
- Authority
- CN
- China
- Prior art keywords
- data
- agency
- system bus
- cache memory
- bus
- 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
Abstract
一种用于与系统总线上的其他代理进行通信的微处理器,其包括高速缓存存储器以及耦合到高速缓存存储器并耦合到系统总线的总线接口单元。总线接口单元从与系统总线相耦合的另一个代理接收交易,以便从存储器地址读取数据,判断高速缓存存储器是否以独占状态(或者在特定配置中以共享状态)将数据保持在存储器地址,以及,当高速缓存存储器以独占状态将数据保持在存储器地址时,在系统总线上声明选择修改的信号,并将数据在系统总线上提供给其他代理。从而,避免了由其他代理接入系统存储器的延时。
Description
技术领域
概括地说,本发明涉及高速缓存存储器领域,具体地说,本发明涉及保持一个系统中多个高速缓存存储器之间的相干性。
背景技术
相应于计算机系统中处理器要求接入其自身高速缓存存储器的时间的增长,该处理器接入系统存储器的时间已随之增长。因此,需要一种降低系统性能的这一差异影响的方法。
发明内容
在一个方面,本发明提供了一种用于与一个系统总线上的其他代理进行通信的微处理器。该微处理器包括高速缓存存储器和总线接口单元,该总线接口单元与高速缓存存储器相耦合,并与系统总线相耦合。总线接口单元用于从与系统总线相耦合的另一个代理接收交易(transaction),以便从存储器地址读取数据。总线接口单元也用于判断高速缓存存储器是否以独占状态将数据保持在存储器地址。总线接口单元还用于,当高速缓存存储器以独占状态将数据保持在存储器地址时,在系统总线上声明选择修改(hit-modified)的信号,并在系统总线上将数据提供给其他的代理。
在另一方面,本发明提供了一种系统。该系统包括:系统总线,以及耦合到该系统总线的多个代理。多个代理中的至少一个是微处理器。该微处理器包括高速缓存存储器和总线接口单元,总线接口单元耦合到高速缓存存储器,并耦合到系统总线。总线接口单元用于从耦合到系统总线的其他多个代理中的一个接收交易,以便从存储器地址读取数据。总线接口单元还用于判断高速缓存存储器是否以独占状态将数据保持在存储器地址。总线接口单元还用于,当高速缓存存储器以独占状态将数据保持在存储器地址时,在系统总线上声明选择修改的信号,并且,将数据在系统总线上提供给其他的代理。
在另一方面,本发明提供了一种避免系统中接入系统存储器的延时的方法,其中,该系统包括微处理器,微处理器具有高速缓存存储器,并且该微处理器用于与系统总线上的其他代理进行通信。该方法包括:微处理器在系统总线上从其他代理中的一个接收交易,以便从存储器地址读取数据。该方法还包括:微处理器判断高速缓存存储器是否以独占状态将数据保持在存储器地址。该方法还包括:当高速缓存存储器以独占状态将数据保持在存储器地址时,微处理器在系统总线上声明选择修改的信号,并且在系统总线上将数据提供给其他的代理。
从上文的描述中可以看出,使用本发明的方法和系统,当高速缓存存储器以独占状态将数据保持在存储器地址时,通过在系统总线上声明选择修改的信号,一个代理可以直接从总线读取由高速缓存提供的高速缓存行,从而,避免了由其他代理接入系统存储器造成的延时。
附图说明
图1是示出了根据本发明具有系统总线以及与该系统总线相耦合的多个总线中控器或者总线代理的计算系统的方框图。
图2是示出了图1中的系统的常规操作模式的流程图。
图3和图4是示出了本发明所述图1中系统的操作模式的流程图,即根据本发明一个实施例降低获得与常规操作模式有关的独有数据或在另一个实施例中为共享数据所需要的时间量。
具体实施方式
图1是示出了根据本发明的计算系统100的方框图,计算系统100具有系统总线108,以及与系统总线100相耦合的多个总线中控器102A-D或者总线代理102A-D。总线代理102包括一个或多个处理器102A-C以及芯片组102D,在图1所示的例子中有三个处理器。每一个总线代理102都具有总线接口单元106,用做处理器102A-C到总线108的接口。具体地说,总线接口单元106在总线108上生成交易,并在总线108上对交易做出响应。处理器102A-C共享经由存储器总线与芯片组102D相耦合的系统存储器112。总线控制的外围设备114也通过外围总线耦合到芯片组。外围设备114可以直接接入系统存储器112,并且,芯片组102D在系统总线108上反映这些接入。
每个处理器102都具有高速缓存存储器104,用于对来自系统存储器112的数据进行高速缓存。系统100的代理102使用侦听协议(snooping propocol)来保持高速缓存相干性。总线108包括对在总线108上发起交易的总线代理102进行标识的信号。总线108还包括HIT信号,如果处理器102A-C以共享或者独占状态将指定的高速缓存行保存在其高速缓存104中,则处理器102A-C为了响应总线108上的读取或者读取无效的交易将会声明该HIT信号。总线108还包括HITM信号,如果处理器102A-C以修改状态将指定的高速缓存行保存在其高速缓存104,则处理器102A-C为了响应总线108上的读取或者读取无效的交易将会声明该HITM信号。
现在参照图2,其中示出了图1中系统100的常规操作模式。流程开始于步骤202。
在步骤202,一个总线代理102(在图2的例子中为代理A)在总线108上生成读取或者读取无效的交易。另一个处理器102A-C侦听该交易。流程推进到步骤204。
在步骤204,高速缓存104中侦听该交易的高速缓存(在图2的例子中为高速缓存B)确定其具有独占状态或者共享状态的被监听高速缓存行。过程推进到步骤206。
在步骤206,高速缓存B在总线108上声明该HIT信号,实际上高速缓存B包括高速缓存B的处理器102总线接口单元106,以便指示出其具有由交易所指示的受侦听高速缓存行。此外,如果交易是读取无效交易,则高速缓存B使该高速缓存行无效。流程推进到步骤208。
在步骤208,代理A接入系统存储器112,以便读取由交易指定的数据,流程在方框208结束。
正如可以从上文的描述中理解到的那样,常规模式要求总线代理A接入到系统存储器112,以便读取数据,这样对于系统的运行速度是不利的,因为接入系统存储器112要求相对长的时间来完成,并且可能消耗系统存储器112本应该有益地由系统100中的其他代理102使用的带宽。
现在参照图3,其中示出了根据本发明所述的图1中系统100的操作模式的流程图,本发明可以降低获得与常规操作模式有关的独有数据或在另一个实施例中为共享数据需要的时间量。流程开始于步骤302,流程推进到步骤304。
在步骤304,确定高速缓存B具有独占状态的受侦听高速缓存行。在一个实施例中,如果系统100的配置使得在步骤306处不可能有多个处理器102声明HITM信号,例如仅有两个处理器102,并且代理A不会在其循环中声明HITM,或者仅在两个处理器102中的一个上启动了存储器接入延时回避特征,则高速缓存B还可确定其具有共享状态的受侦听高速缓存行。流程推进到步骤306。
在步骤306,高速缓存B在总线108上声明HITM信号,以便指示出高速缓存B已经通过修改状态的交易侦听到高速缓存行。本质上说,高速缓存B“谎称”高速缓存行处于修改状态。此外,高速缓存B在总线108上将受侦听的高速缓存行提供给代理A。在一个实施例中,芯片组102D中的存储控制器检测到由高速缓存B写入了受侦听的高速缓存行,并作出响应地将高速缓存行写入系统存储器112。最后,如果交易是读取无效交易,则高速缓存B使高速缓存行无效。流程推进到步骤308。
在步骤308,代理A直接从总线108读取由高速缓存B提供的高速缓存行,从而,避免了为读取由交易指定的数据而接入系统存储器112的延时。流程在步骤308结束。
正如可从图3以及下面的图4的描述中理解到的那样,新的操作模式可以有效地降低了代理A接入系统存储器的需要,因为其直接从高速缓存B接收高速缓存行。与从系统存储器112获得高速缓存行相比,由于新操作模式可以让高速缓存行能够更快地请求代理,所以,这样是更有益的。
现在参照图4,图4示出了根据本发明所述的图1中系统100的操作模式的流程图,本发明可以减少获得与常规操作模式有关的独有数据或者在一个实施例中为共享数据的时间量,所述共享数据的实施例为在不可能有多个处理器102声明HITM信号的配置中,例如,仅存在两个处理器102,并且代理A不会在其循环中声明HITM,或者仅对两个处理器102中的一个启动了存储器接入延时回避特征。流程开始于步骤402,其与图2的方框202类似。流程推进到步骤404,其与图3的方框304相似。流程推进到判断模块405。
在判断模块405,高速缓存B判断其是否对对称代理进行侦听,即对另一个处理器102,而不是对优先代理例如芯片组102D进行侦听,芯片组102D具有与其相耦合的系统存储器112或者总线控制的外围设备114。高速缓存B能够从对生成代理进行标识的总线108信号中确定生成交易的代理102。如果高速缓存B正在侦听另一个处理器102的交易,则流程推进到步骤406;否则,流程推进到步骤412。
图4的步骤406和408与图3的步骤306和308相类似。流程在步骤408结束。
在步骤412,高速缓存B在总线108上声明HIT信号,以便指示出其具有由交易指示的受侦听高速缓存行。此外,如果交易是读取无效交易,则高速缓存B使高速缓存行无效。流程推进到步骤414。
图4的步骤414与图2的步骤208相类似。流程在步骤414结束。
图4的另一个实施例的可能的优点是,尽管其造成芯片组102D接入到存储器,但是,其可以更高效地使用总线108,因为使用HIT响应读取交易比使用HITM响应读取交易完成得更快,其原因在于,在一些配置中,芯片组102D可以从存储器112读取数据,并且将其写入总线控制的外围设备114,而不需要在总线108上进行传输。
尽管文中描述了本发明的一些实施例,但是,应该理解,对它们的描写是为了举例的目的,而不是作为限制。有关计算机领域的技术人员可以理解,可以对它们的形式和细节做出多种改变,而不脱离本发明的范围。例如,软件可以启动本文所述的装置和方法的:函数、构造、建模、仿真、描述和/或测试。这可以通过使用常规程序语言(例如,C、C++)、硬件描述语言(HDL)或者其他可用的程序,其中,硬件描述语言(HDL)包括:Verilog HDL、VHDL等等。这类软件可以是任何已知的计算机可用介质,诸如:磁带、半导体、磁盘或光盘(例如,CD-ROM、DVD-ROM等等)、网络、电线、无线或者其他通信介质。本文描述的装置和方法的实施例可以包括在半导体知识产权核中,例如,微处理器核(例如,在HDL中实现)并在集成电路的产品中发送到硬件。此外,本文描述的装置和方法可以实现为硬件和软件的结合。因此,本发明不应受到本文描述的任何示例性实施例的限制,而是应该仅根据权利要求和其等同物来定义。尤其是,本发明可以实现在可用于通用计算机中的微处理器设备中。最后,本领域技术人员应该理解,他们可以容易地使用所述的概念和特定实施例作为基础,对实现与本发明相同目的的其他结构进行设计或者修改,而不脱离由权利要求书定义的本发明的范围。
Claims (16)
1.一种用于与系统总线上的其他代理进行通信的微处理器,所述微处理器是耦合到所述系统总线上的一个代理,所述微处理器包括:
高速缓存存储器;以及
总线接口单元,所述总线接口单元与所述高速缓存存储器相耦合,并与所述系统总线相耦合,所述总线接口单元用于:
从与所述系统总线相耦合的另一个代理接收事务,以便从存储器地址读取数据;
判断所述高速缓存存储器是否以独占状态将数据保持在存储器地址;以及
当所述高速缓存存储器以独占状态将所述数据保持在存储器地址时,在系统总线上声明选择修改hit-modified的信号,将所述系统总线上的数据提供给其他的代理。
2.根据权利要求1所述的微处理器,其中,当以共享状态保持数据时,所述微处理器是耦合到所述系统总线,在所述事务期间能够声明选择修改的信号的唯一代理,其中所述总线接口单元还用于:
判断所述高速缓存存储器是否以共享状态将数据保持在所述存储器地址;以及
当所述高速缓存存储器以共享状态将数据保持在所述存储器地址时,在所述系统总线上声明所述选择修改的信号,并将所述数据在所述系统总线上提供给所述其他的代理。
3.根据权利要求1所述的微处理器,其中,所述总线接口单元还用于:
从与所述系统总线相耦合的另一个代理接收事务,以便从第二存储器地址读取第二数据,以及使包括所述第二数据的高速缓存行无效;
判断所述高速缓存存储器是否以独占状态将所述第二数据保持在所述第二存储器地址;以及
当所述高速缓存存储器以独占状态将所述第二数据保持在所述第二存储器地址时,在所述系统总线上声明所述选择修改的信号,并将所述第二数据在所述系统总线上提供给所述其他的代理以及使所述高速缓存行无效。
4.根据权利要求1所述的微处理器,其中,所述总线接口单元还用于:
判断所述其他的代理是不是优先代理;以及
当所述高速缓存存储器以独占状态将所述数据保持在所述存储器地址并且所述其他的代理不是优先代理时,在所述系统总线上声明所述选择修改的信号,并将所述数据在所述系统总线上提供给所述其他的代理;以及
当所述高速缓存存储器以独占状态将所述数据保持在所述存储器地址并且所述其他的代理是优先代理时,在所述系统总线上声明命中信号,并且抑制将所述数据在所述系统总线上提供给所述其他的代理。
5.根据权利要求4所述的微处理器,其中,所述优先代理包括芯片组,所述芯片组更包括以下设备之一或其结合:
与所述优先代理相耦合的系统存储器;以及
与所述优先代理相耦合的总线控制的外围设备。
6.一种计算机系统,包括:
系统总线;以及
多个代理,所述多个代理耦合到所述系统总线,其中,所述多个代理中的至少一个是微处理器,所述微处理器包括:
高速缓存存储器;以及
总线接口单元,所述总线接口单元耦合到所述高速缓存存储器,并耦合到所述系统总线,所述总线接口单元用于:
从耦合到所述系统总线的其余多个代理中的一个接收事务,以便从存储器地址读取数据;
判断所述高速缓存存储器是否以独占状态将所述数据保持在所述存储器地址;以及
当所述高速缓存存储器以独占状态将所述数据保持在所述存储器地址时,在系统总线上声明选择修改hit-modified的信号,将数据在所述系统总线上提供给其他的代理。
7.根据权利要求6所述的计算机系统,其中,当以共享状态保持数据时,所述微处理器耦合到所述系统总线,在所述事务期间能够声明选择修改的信号的唯一代理,其中所述总线接口单元还用于:
判断所述高速缓存存储器是否以共享状态将数据保持在所述存储器地址;以及
当所述高速缓存存储器以共享状态将数据保持在所述存储器地址时,在所述系统总线上声明所述选择修改的信号,并将所述数据在所述系统总线上提供给所述其他的代理。
8.根据权利要求6所述的计算机系统,其中,所述总线接口单元还用于:
从与所述系统总线相耦合的另一个代理接收事务,以便从第二存储器地址读取第二数据,以及使包括所述第二数据的高速缓存行无效;
判断所述高速缓存存储器是否以独占状态将所述第二数据保持在所述第二存储器地址;以及
当所述高速缓存存储器以独占状态将所述第二数据保持在所述第二存储器地址时,在所述系统总线上声明所述选择修改的信号,并将所述第二数据在所述系统总线上提供给所述其他的代理以及使所述高速缓存行无效。
9.根据权利要求6所述的计算机系统,其中,所述总线接口单元还用于:
判断所述其他的代理是不是优先代理;以及
当所述高速缓存存储器以独占状态将所述数据保持在所述存储器地址并且所述其他的代理不是优先代理时,在所述系统总线上声明所述选择修改的信号,并将所述数据在所述系统总线上提供给所述其他的代理;以及
当所述高速缓存存储器以独占状态将所述数据保持在所述存储器地址并且所述其他的代理是优先代理时,在所述系统总线上声明命中信号,并且抑制将所述数据在所述系统总线上提供给所述其他的代理。
10.根据权利要求9所述的计算机系统,其中,所述优先代理包括芯片组,所述芯片组更包括以下设备之一或其结合:
与所述优先代理相耦合的系统存储器;以及
与所述优先代理相耦合的总线控制的外围设备。
11.根据权利要求6所述的计算机系统,其中,所述多个代理包括:
多个配置为所述微处理器的微处理器。
12.一种避免系统中接入系统存储器的延时的方法,其中,所述系统包括微处理器,所述微处理器具有高速缓存存储器,并且所述微处理器用于在系统总线上与其他代理进行通信,所述方法包括:
接收,由所述微处理器在所述系统总线上从其他代理中的一个接收事务,以便从存储器地址读取数据;
判断,由所述微处理器判断所述高速缓存存储器是否以独占状态将所述数据保持在所述存储器地址;以及
声明,当所述高速缓存存储器以独占状态将所述数据保持在所述存储器地址时,由所述微处理器在系统总线上声明选择修改hit-modified的信号,在所述系统总线上将数据提供给其他的代理。
13.根据权利要求12所述的方法,还包括:
在所述微处理器知道,以共享状态保持数据时,所述微处理器是耦合到所述系统总线,在所述事务期间能够声明选择修改的信号的唯一代理时,判断所述高速缓存存储器是否以共享状态将数据保持在所述存储器地址;以及
当所述高速缓存存储器以共享状态将数据保持在所述存储器地址时,在所述系统总线上声明所述选择修改的信号,并将所述数据在所述系统总线上提供给所述其他的代理。
14.根据权利要求12所述的方法,还包括:
从与所述系统总线相耦合的另一个代理接收事务,以便从第二存储器地址读取第二数据,以及使包括所述第二数据的高速缓存行无效;
判断所述高速缓存存储器是否以独占状态将所述第二数据保持在所述第二存储器地址;以及
当所述高速缓存存储器以独占状态将所述第二数据保持在所述第二存储器地址时,在所述系统总线上声明所述选择修改的信号,并将所述第二数据在所述系统总线上提供给其他的代理以及使所述高速缓存行无效。
15.根据权利要求12所述的方法,还包括:
判断所述其他的代理是不是优先代理;以及
当所述高速缓存存储器以独占状态将所述数据保持在所述存储器地址并且所述其他的代理不是优先代理时,在所述系统总线上声明所述选择修改的信号,并将所述数据在所述系统总线上提供给所述其他的代理;以及
当所述高速缓存存储器以独占状态将所述数据保持在所述存储器地址并且所述其他的代理是优先代理时,在所述系统总线上声明命中信号,并且抑制将所述数据在所述系统总线上提供给所述其他的代理。
16.根据权利要求15所述的方法,其中,所述优先代理包括芯片组,所述芯片组更包括以下设备之一或其结合:
与所述优先代理相耦合的系统存储器;以及
与所述优先代理相耦合的总线控制的外围设备。
Applications Claiming Priority (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US25934409P | 2009-11-09 | 2009-11-09 | |
US61/259,344 | 2009-11-09 | ||
US12/880,958 US8364906B2 (en) | 2009-11-09 | 2010-09-13 | Avoiding memory access latency by returning hit-modified when holding non-modified data |
US12/880,958 | 2010-09-13 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN102043739A CN102043739A (zh) | 2011-05-04 |
CN102043739B true CN102043739B (zh) | 2013-08-21 |
Family
ID=43909889
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN 201010545658 Active CN102043739B (zh) | 2009-11-09 | 2010-11-09 | 避免存储器接入延时的系统和方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN102043739B (zh) |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP1258806A2 (en) * | 2001-05-18 | 2002-11-20 | Broadcom Corporation | Source controlled cache allocation |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6745297B2 (en) * | 2000-10-06 | 2004-06-01 | Broadcom Corporation | Cache coherent protocol in which exclusive and modified data is transferred to requesting agent from snooping agent |
US7702858B2 (en) * | 2007-06-05 | 2010-04-20 | Apple Inc. | Latency reduction for cache coherent bus-based cache |
-
2010
- 2010-11-09 CN CN 201010545658 patent/CN102043739B/zh active Active
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP1258806A2 (en) * | 2001-05-18 | 2002-11-20 | Broadcom Corporation | Source controlled cache allocation |
Also Published As
Publication number | Publication date |
---|---|
CN102043739A (zh) | 2011-05-04 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
EP2568389B1 (en) | Coherence switch for i/o traffic | |
US9575895B2 (en) | Providing common caching agent for core and integrated input/output (IO) module | |
US7613882B1 (en) | Fast invalidation for cache coherency in distributed shared memory system | |
US6668309B2 (en) | Snoop blocking for cache coherency | |
KR100371844B1 (ko) | 데이타처리시스템 | |
TW200534110A (en) | A method for supporting improved burst transfers on a coherent bus | |
JP6174186B2 (ja) | キャッシュコヒーレンシを有する集積回路 | |
US8386668B2 (en) | Querying a device for information | |
CN111684426A (zh) | 多节点系统低功率管理 | |
US7685373B2 (en) | Selective snooping by snoop masters to locate updated data | |
CN109002408B (zh) | 总线仲裁方法和系统 | |
US9304925B2 (en) | Distributed data return buffer for coherence system with speculative address support | |
US10909056B2 (en) | Multi-core electronic system | |
JP4846482B2 (ja) | バスアービトレーション装置 | |
CN102043739B (zh) | 避免存储器接入延时的系统和方法 | |
CN102945214A (zh) | 基于io延迟时间分布优化中断处理任务的方法 | |
CN102929819B (zh) | 用于处理计算机系统中的存储设备的中断请求的方法 | |
TWI423034B (zh) | 用於與系統匯流排上的其他代理進行通訊的處理器、系統及方法 | |
US6631428B1 (en) | Apparatus and method for completing transactions in all flow control classes | |
JP2023543804A (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 | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant |