专利名称:监听访问的减少的制作方法
监听访问的减少背景技术
为了改进性能, 一些计算机系统可以包括一个或多个高速缓存。高速缓存通常存储与存储在其它地方的或早先计算的原始数据相 对应的数据。为了减少存储器访问延迟, 一旦数据被存储在高速缓存 中,将来就可以通过访问高速缓存的副本而不是重取或重计算原始数 据来对其进行使用。
由计算机系统使用的一种高速缓存是中央处理单元(CPU) 高速缓存。因为CPU高速缓存更靠近CPU (例如,设置在CPU内部 或CPU附近),所以它使CPU能够更快速地访问诸如最近使用的指 令和/或数据之类的信息。因此,利用CPU高速缓存可以减少与访问设置在计算机系统中其它地方的主存储器相关的延迟。存储器访问延迟的减少继而改进了系统性能。然而,每次访问CPU高速缓存时, 对应的CPU就会进入更高功率的使用状态,以提供高速缓存访问支 持功能,例如,从而维护CPU高速缓存的一致性。
更高功率的使用会增加热量产生。过热会损害计算机系统的部件。而且,更高功率的使用会增大电池消耗,例如,在移动计算设 备中的电池消耗,这又会减少移动设备在重新充电之前可以使用的时 间。额外的功耗会额外导致使用更大的电池,其重量会更大。更大重 量的电池减少了移动计算设备的便携性。
参考附图进行详细说明。在附图中,参考标记的最左侧的数字标识首先出现该参考标记的附图。在不同的图示中,使用相同的参 考标记指示类似的或相同的项。
图1-3说明了根据本发明一些实施例的计算系统的框图;
图4说明了用于减少由处理器执行的监听访问(snoop
access)的方法的实施例。
具体实施方式
在下列描述中,为了使得彻底了解各实施例,阐述了大量的 具体细节。然而,可以在没有具体细节的情况下实现本发明的各种实 施例。在其它的情况中,没有详细地描述公知的方法、过程、部件和 电路,以便不会使本发明的特定实施例不清楚。
图1说明了根据本发明实施例的计算系统100的框图。计算 系统100可以包括一个或多个与互连网络(或总线)104相耦合的中 央处理单元(CPU) 102或处理器。处理器(102)可以是任何适当 的处理器,例如通用处理器、网络处理器等等(包括精简指令集计算 机(RISC)处理器或复杂指令集计算机(CISC))。此外,处理器(102) 可以具有单核或多核设计。具有多核设计的处理器(102)可以将不 同类型的处理器核集成在同一集成电路(IC)管芯上。而且,可以将 具有多核设计的处理器(102)实现为对称的或非对称的多处理器。
芯片组106还可以耦合到互连网络104。芯片组106可以包 括存储器控制中心(MCH) 108。 MCH108可以包括与存储器112相 耦合的存储器控制器110。存储器112可以储存数据和由CPU 102或 计算系统100中包含的任何其它设备执行的指令序列。在本发明的一 个实施例中,存储器112可以包括一个或多个易失性存储(或存储器) 设备,例如随机存取存储器(RAM)、动态RAM (DRAM)、同步 DRAM (SDRAM)、静态RAM (SRAM)等等。还可以使用非易失 性存储器,例如硬盘。额外的设备可以耦合到互连网络104,例如多 个CPU和/或多个系统存储器。
MCH 108还可以包括与图形加速器116相耦合的图形接口 114。在本发明的一个实施例中,图形接口 114可以经由加速图形端 口 (AGP)耦合到图形加速器116。在本发明的一个实施例中,显示 器(例如平板显示器)可以通过例如信号转换器耦合到图形接口 114, 所述信号转换器将存储在诸如视频存储器或系统存储器之类的存储 设备中的图像的数字表示转换为由显示器解释和显示的显示信号。由
显示设备产生的显示信号在被显示器解释并且随后显示在显示器上 之前,会通过各种控制设备。
中心接口 118可以将MCH 108耦合到输入/输出控制中心 (ICH) 120。 ICH 120可以提供到与计算系统100相耦合的输入/输 出(I/O)设备的接口。 ICH120可以通过外设桥(或控制器)124耦 合到总线122,所述外设桥(或控制器)124例如是外设部件互连(PCI) 桥、通用串行总线(USB)控制器等等。桥124可以提供CPU 102 和外围设备之间的数据通路。可以使用其它类型的拓扑结构。而且, 例如通过多个桥或控制器,多条总线可以耦合到ICH120。此外,在 本发明的各个实施例中,耦合到ICH 120的其它外设可以包括集成驱 动电路(IDE)或小型计算机系统接口 (SCSI)硬盘驱动器、USB端 口、键盘、鼠标、并行端口、串行端口、软盘驱动器、数字输出支持 (例如,数字视频接口 (DVI))等等。
总线122可以耦合到音频设备126、 一个或多个盘片驱动器 128和网络接口设备130。其它的设备可以耦合到总线122。而且, 在本发明的一些实施例中,各种部件(例如网络接口设备130)可以 耦合到MCH 108。此外,可以组合CPU 102和MCH 108以形成单个 芯片。并且,在本发明的其它的实施例中,可以将图形加速器116包 含在MCH 108内。
另外,计算系统100可以包括易失性和/或非易失性存储器 (或存储设备)。例如,非易失性存储器可以包括下列各项中的一项或多项只读存储器(ROM)、可编程ROM (PROM)、可擦除PROM (EPROM)、电EPROM (EEPROM)、盘片驱动器(例如128)、软盘、光盘ROM (CD-ROM)、数字多用途盘(DVD)、闪速存储器、磁光盘或适于存储电子指令和/或数据的其它类型的非易失性机器可读介质。
图2说明了根据本发明一个实施例的、设置为点到点(PtP) 结构的计算系统200。特别地,图2显示了一个系统,其中,处理器、存储器和输入/输出设备通过多个点到点接口互联。
图2的系统200还可以包括多个处理器,为了清楚起见,仅
显示了其中的两个处理器,即处理器202和204。处理器202和204 每一个可以包括本地存储器控制中心(MCH) 206和208,以与存储 器210和212相耦合。处理器202和204可以是任何适当的处理器, 例如参考图1的处理器102所论述的那些处理器。处理器202和204 可以分别使用PtP接口电路216和218经由点到点(PtP)接口 214 来交换数据。处理器202和204每一个可以使用点到点接口电路226、 228、230和232经由单独的PtP接口 222和224与芯片组220交换数 据。芯片组220还可以使用PtP接口电路237经由高性能图形接口 236 与高性能图形电路234交换数据。
本发明的至少一个实施例可以位于处理器202和204之内。 然而,本发明的其它实施例可以存在于图2的系统200中的其它电路、 逻辑单元或设备中。此外,本发明的其它实施例可以分布于图2所示 的多个电路、逻辑单元或设备中。
芯片组220可以使用PtP接口电路241耦合到总线240。总 线240可以具有一个或多个与其耦合的设备,例如总线桥242和I/O 设备243。经由总线244,总线桥242可以耦合到其它的设备,例如 键盘/鼠标245、通信设备246(例如调制解调器、网络接口设备等等)、 音频I/O设备247和/或数据存储设备248。数据存储设备248可以存 储可由处理器202和/或204执行的代码249。
图3说明了计算系统300的实施例。系统300可以包括CPU 302。在一个实施例中,CPU 302可以是任何适当的处理器,例如图 1的处理器102或图2的处理器202-204。 CPU 302可以经由互连网 络305 (例如图1的互连104或图2的PtP接口 222和224)耦合到 芯片组304。在一个实施例中,芯片组304与图1的芯片组106或图 2的芯片组220相同或类似。
CPU 302可以包括一个或多个处理器核306 (例如参考图1 的处理器102或图2的处理器202-204所论述的)。CPU 302还可以 包括一个或多个高速缓存308 (在本发明的一个实施例中,其可以是 共享的),例如1级(L1)高速缓存、2级(L2)高速缓存或3级(L3) 高速缓存等等,以存储由系统300的一个或多个部件使用的指令和/
或数据。CPU 302的各个部件可以通过总线和/或存储器控制器或控 制中心(例如,图1的存储器控制器110、图1的MCH 108或图2 的MCH206-208)直接耦合到高速缓存308。而且,可以将一个或多 个实现存储器监听功能处理的部件包含在CPU 302之内,将参考图4 对其进行进一步的论述。例如,可以包含处理器监视逻辑310以监视 由处理器核306进行的存储器访问。CPU 302的各个部件可以设置在 同一集成电路管芯上。
如图3所说明的,芯片组304可以包括提供到存储器314(例 如图1的存储器112或图2的存储器210-212)的访问的MCH 312(例 如图1的MCH 108或图2的MCH206-208)。因此,处理器监视逻辑 310可以监视由处理器核306进行的到存储器314的存储器访问。芯 片组304还可以包括ICH 316,以提供到一个或多个I/O设备318 (例 如参考图1和2所论述的那些设备)的访问。ICH316可以包括桥以 允许通过总线319与各个I/0设备318进行通信,例如图1的ICH 120 或图2中与总线桥242相耦合的PtP接口电路241 。在一个实施例中, I/O设备318可以是能够向存储器314和从存储器314传输数据的块 I/O设备。
而且,可以将一个或多个实现存储器监听功能处理的部件包 含在芯片组304之内,将参考图4对其进行进一步的论述。例如,可 以包含I/O监视逻辑320,以提供页监听命令,其逐出高速缓存308 中的一个或多个高速缓存行。例如基于来自1/0设备318的通信量, 1/O监视逻辑320还可以启用处理器监视逻辑310。因此,1/0监视逻 辑320可以监视去往和来自I/O设备318的通信量,例如由I/O设备 318进行的到存储器314的存储器访问。在一个实施例中,1/0监视 逻辑320可以耦合在存储器控制器(例如图1的存储器控制器110) 和外设桥(例如图1的桥124)之间。而且,I/O监视逻辑320可以 位于MCH 312内。可以将芯片组304的各个部件设置在同一集成电 路管芯上。例如,可以将I/O监视逻辑320和存储器控制器(例如图 1的存储器控制器110)设置在同一集成电路管芯上。
图4说明了用于减少由处理器执行的监听访问的方法400的 实施例。通常,当访问主存储器(例如314)时,可以向处理器核306 发出监听访问,例如以维护存储器一致性。在一个实施例中,监听访 问可以起因于由图3的I/0设备318引起的通信量。例如,块I/0设 备的控制器(例如USB控制器)可以周期性地访问存储器314。由 1/0设备318进行的每一个访问可以引起(例如处理器核306的)监 听访问,以确定正在访问的存储器区域(例如存储器314的部分)是 否位于例如高速缓存308内,以维护高速缓存308与存储器314的一 致性。
在一个实施例中,可以利用图3的系统300的各个部件来执 行参考图4论述的操作。例如,步骤402-404和(可选的)410可以 由I/O监视逻辑320来执行。步骤406和408可以由处理器核306来 执行。歩骤416可以由MCH 312和/或I/O设备318来执行。步骤 412-414和418-420可以由处理器监视逻辑310来执行。
参考图3和4, I/O监视逻辑320可以从一个或多个块I/O 设备318接收存储器访问请求(402)。 1/O监视逻辑320可以分析所 接收的请求(402)以确定(例如在存储器314中的)存储器对应区 域。1/O监视逻辑320可以发出页监听命令(404),其标识与由块I/0 设备318进行的存储器访问相对应的页地址。例如,页地址可以标识 存储器314内的区域。在一个实施例中,I/O设备318可以访问4K 字节或8K字节的连续存储器区域。
I/O监视逻辑320可以启用处理器监视逻辑310 (406)。处 理器核306可以接收(例如在步骤404产生的)页监听(408),并且 逐出(例如在高速缓存308中的) 一个或多个高速缓存行(410)。在 步骤412,可以监视存储器访问。例如,1/O监视逻辑320可以例如 通过监视通信接口 (例如图1的中心接口 118或图2的总线240)上 的事务来监视去往和来自1/0设备318的通信量。此外,在被启用之 后(406),处理器监视逻辑310可以监视由处理器核306进行的存储 器访问(412)。例如,处理器监视逻辑310可以监视互连网络305上 的、试图访问存储器314的存储器事务。
在步骤414,如果处理器监视逻辑310确定由处理器核306
进行的存储器访问是到步骤404的页地址的访问,则例如通过处理器 监视逻辑310,可以在步骤416重置处理器和/或I/0监视逻辑(310 和320)。因此,可以停止对存储器访问的监视(412)。在步骤416 之后,方法400可以在步骤402继续。否则,如果在步骤414处理器 监视逻辑310确定由处理器核306进行的存储器访问不是到步骤404 的页地址的访问,则方法400可以继续到步骤418。
在步骤418,如果I/O监视逻辑320确定由块I/O设备(318) 进行的存储器访问是到步骤404的页地址的访问,则可以例如在不产 生到处理器核306的监听请求的情况下访问存储器(314) (420)。否 则,方法400在步骤404继续以处理块I/O设备(318)的、到存储 器(314)的新区域的存储器访问请求。虽然图4说明了步骤414可 以在步骤418之前,但是步骤414也可以在步骤418之后执行。而且, 在一个实施例中,可以异步地执行步骤414和418。
在一个实施例中,与由处理器核306较频繁地访问的其它内 容相比,可以较不频繁地将去往和来自I/O设备318的数据载入高速 缓存308。因此,方法400可以减少由处理器(例如处理器核306) 执行的监听访问,其中,由到已被从高速缓存308中逐出的页地址(404)的块I/O设备通信量产生存储器访问。这种实现使处理器(例 如处理器核306)能够避免离开低功率状态而执行监听访问。
例如,根据ACPI规范(Advanced Configuration and Power Interface specification, Revision 3.0, September 2, 2004)的实现可以使 处理器(例如处理器核306)能够减少在C2状态花费的时间,C2状 态比C3状态使用更高的功率。对于每一个USB设备存储器访问(其 会在每l毫秒出现,而不管存储器访问是否需要监听访问),处理器(例如处理器核306)可以进入C2状态以执行监听访问。例如参考 图3和4,在这里论述的实施例可以限制不必要的监听访问的产生, 例如,块I/0设备正访问先前被逐出的页地址(404, 410)的情况。 因此,可以产生单个监听访问(404)并且为存储器(314)的公用区 域逐出对应的高速缓存行(410)。降低的功耗可以导致移动计算设备 中电池的更长寿命和/或更小体积。
在各个实施例中,可以将在这里例如参考图1-4论述的一个 或多个操作实现为硬件(例如逻辑电路)、软件、固件或它们的组合, 可以将其作为计算机程序产品而提供,所述计算机程序产品例如包括 机器可读或计算机可读介质,所述介质上存储有指令,用于对计算机 进行编程以执行这里所论述的处理。机器可读介质可以包括任何适当 的存储设备,例如参考图l-3所论述的那些设备。
另外,可以将这种计算机可读媒体作为计算机程序产品而进 行下载,其中,经由通信链路(例如调制解调器或网络连接),通过 体现为载波或其它传播介质的数据信号,可以将程序从远程计算机(例如服务器)传输到请求计算机(例如客户机)。因此,在这里, 应认为载波包括机器可读介质。
在说明书中对"一个实施例"或"实施例"的引用表示可以 将结合该实施例所描述的特定特征、结构或特性包含在至少一个实现 中。在说明书的各处出现的短语"在一个实施例中"可以是或可以不 是全部对同一实施例的引用。
而且,在说明书和权利要求书中,可以使用术语"耦合"、 "连接"以及它们的派生词。在一些实施例中,"连接"可以用来指 示两个或更多个元件互相间直接物理接触或电接触。"耦合"可以表 示两个或更多个元件直接物理接触或电接触。但是,"耦合"还可以 表示两个或更多个元件相互间非直接接触,而仍然可以互相协作或相 互作用。
因此,虽然己经具体到结构特征和/或方法动作描述了本发 明的实施例,但是,应该理解要求保护的主题可能不限于所描述的具 体特征或动作。取而代之的是,将具体的特征和动作作为实现要求保 护的主题的样例形式而披露。
权利要求
1.一种装置,包括处理器核,用于接收页监听命令,所述页监听命令标识与由输入/输出(I/O)设备发出的存储器访问请求相对应的页地址;以及逐出一个或多个与所述页地址相匹配的高速缓存行;以及处理器监视逻辑,用于监视由所述处理器核进行的存储器访问,以确定所述处理器核存储器访问是否在所述页地址之内。
2. 根据权利要求1所述的装置,其中,所述一个或多个高速缓 存行位于与所述处理器核相耦合的高速缓存中。
3. 根据权利要求2所述的装置,其中,所述高速缓存与所述处 理器核位于同一集成电路管芯上。
4. 根据权利要求1所述的装置,其中,所述页地址标识通过芯 片组与所述处理器核相耦合的存储器的区域。
5. 根据权利要求4所述的装置,其中,所述芯片组包括I/0监 视逻辑,以监视由所述I/0设备进行的存储器访问。
6. 根据权利要求5所述的装置,其中,所述芯片组包括存储器 控制器,并且所述I/O监视器耦合在所述I/O设备和所述存储器控制 器之间。
7. 根据权利要求6所述的装置,其中,所述I/0监视器逻辑与 所述存储器控制器位于同 一集成电路管芯上。
8. 根据权利要求1所述的装置,还包括多个处理器核。
9. 根据权利要求8所述的装置,其中,所述多个处理器核位于 单个集成电路管芯上。
10. —种方法,包括接收页监听命令,所述页监听命令标识与由输入/输出(I/O)设备发出的存储器访问请求相对应的页地址;以及逐出一个或多个与所述页地址相匹配的高速缓存行;以及 监视由处理器核进行的存储器访问,以确定所述处理器核存储器访问是否在所述页地址之内。
11. 根据权利要求IO所述的方法,还包括如果所述处理器核存储器访问在所述页地址之内,则停止监视所 述存储器访问。
12. 根据权利要求IO所述的方法,还包括如果I/O存储器访问在所述页地址之内,则访问与所述处理器核相耦合的存储器。
13. 根据权利要求12所述的方法,其中,在不产生监听访问的 情况下访问所述存储器。
14. 根据权利要求10所述的方法,还包括监视由所述I/O设备进行的存储器访问。
15. 根据权利要求IO所述的方法,其中,所述处理器核存储器 访问对与所述处理器核相耦合的存储器执行读或写操作。
16. 根据权利要求10所述的方法,还包括从所述i/o设备接收所述存储器访问请求,其中,所述存储器访 问请求标识在与所述处理器核相耦合的存储器之内的区域。
17. 根据权利要求IO所述的方法,还包括在接收所述存储器访问请求之后,启用处理器监视逻辑以监视由 所述处理器核进行的存储器访问。
18. —种系统,包括 易失性存储器,用于储存数据; 处理器核,用于接收页监听命令,所述页监听命令标识与由输入/输出(I/O) 设备发出的对所述存储器的访问请求相对应的页地址;以及逐出一个或多个与所述页地址相匹配的高速缓存行;以及 处理器监视逻辑,用于监视由所述处理器核进行的对所述存储器 的访问,以确定所述处理器核存储器访问是否在所述页地址之内。
19. 根据权利要求18所述的系统,还包括 耦合在所述存储器和所述处理器核之间的芯片组,其中,所述芯片组包括I/O监视逻辑,用于监视由所述I/O设备进行的存储器访问。
20. 根据权利要求18所述的系统,其中,所述易失性存储器是 RAM、 DRAM、 SDRAM或SRAM。
全文摘要
本文描述了可以用于减少监听访问的技术。在一个实施例中,方法包括接收页监听命令,该页监听命令标识与由输入/输出(I/O)设备发出的存储器访问请求相对应的页地址。可以逐出一个或多个与所述页地址相匹配的高速缓存行。此外,可以监视由处理器核进行的存储器访问,以确定所述处理器核存储器访问是否在所述页地址之内。
文档编号G06F12/08GK101213524SQ200680023791
公开日2008年7月2日 申请日期2006年6月29日 优先权日2005年6月29日
发明者D·威廉斯, J·卡达什 申请人:英特尔公司