跨多内核的分享监控快取列的制作方法

文档序号:6657006阅读:118来源:国知局
专利名称:跨多内核的分享监控快取列的制作方法
技术领域
本发明关于处理器,特别是关于监控快取列的变化。
背景技术
许多应用程序经撰写以与其它应用程序进行互动。此外,许多应用程序经撰写为多执行绪(multi-threaded)应用程序。多执行绪应用程序具有多个经设计以按相当独立之方式执行的程序代码序列(执行绪(thread))。各执行绪(或应用程序)可按各种方式互相通信。为简化起见,在本发明中该名词「执行绪」在本文中会用来指来自多执行绪应用程序之程序代码序列,或若该应用程序本身非属多执行绪者则用来指整体之应用程序。
存储器位置通常是用来于各执行绪间进行通信。例如,可定义存储器位置以储存信号标(semaphore),该信号标用以控制对较大存储器区域之存取、控制对该计算机系统中如外围装置之另一资源之存取、控制执行特定程序代码序列(通常称为「关键区段」)之能力等等。上述任丨者在后文中称为受保护资源。通常,执行绪可存取该信号标并检查其状态。若该状态表示该执行绪可控制该受保护资源,则该执行绪可改变该信号标状态以表示该执行绪控制该受保护资源。若该状态表示另一执行绪正控制该受保护资源,则该执行绪可继续检查该信号标直到该状态改变为止(例如由其它执行绪写入该信号标以表示已完成对该受保护资源之控制)。存储器位置亦可用来在执行绪之间传递其它讯息(或是表示讯息为可获用)。若给定执行绪正等待来自另一执行绪之讯息,则该给定执行绪可继续检查该存储器位置直到该存储器位置经写入有表示该讯息为可获用之数值为止。有许多其它的范例存在,其中执行绪可利用存储器位置以与另一执行绪进行通信。
通常,当执行绪在对所欲状态检查存储器位置且在该存储器位置内未发现该所欲状态时,该执行绪会进入「自旋回路(spin loop)」,其中该执行绪重复存取该存储器位置以检查该所欲状态。当该存储器位置最终经写入有该所欲状态时,该执行绪即退出该自旋回路。当该执行绪在该自旋回路内时,该执行绪实际上并未完成有益的工作。然而,执行该执行绪的处理器仍会耗用执行该自旋回路的电力。
若程序设计人员在自旋回路及其它之其中执行绪正等待存储器位置中所欲状态的情况下使用指令,有些指令集架构已定义该等指令允许该处理器将此情况予以最佳化。例如x86指令集(具有数据流单一指令(streaming single-instruction)、多重数据延伸3、或SSE3)定义MONITOR/MWAIT指令对。该MONITOR指令可用来建立该处理器正监控用以更新的地址范围(例如,由于另一处理器所执行之储存作业)。该MWAIT指令可用于使该处理器在等待更新时进入「实施相关之最佳化状态(implementation-dependent optimized state)」。该处理器响应于该受监控地址范围内之储存作业(并亦基于某些中断和其它与该受监控地址范围无关之原因),而退出该实施相关之最佳化状态。通常,透过在该处理器中所实施之正常相干机制(normal coherencymechansism)以通知该处理器该项更新。

发明内容
在一个具体实施例中,一种包含第一处理器内核及第二处理器内核之系统。该第一处理器内核设成传送识别该第一处理器内核正监控用于更新的地址范围的地址范围指示。该第一处理器内核设成响应于执行定义使该第一处理器内核监控用于更新之该地址范围的第一指令,而传送该地址范围指示。该第二处理器内核经耦接以接收该地址范围指示,且该第二处理器内核设成响应于执行更新在该地址范围内的至少一个字节的储存操作,而发出信号给该第一处理器内核。该第一处理器内核经耦接以接收来自该第二处理器内核的信号,且该第一处理器内核设成响应于该信号而退出第一状态,其中该第一状态为使该第一处理器内核正等待该地址范围内的更新之状态。
在另一个具体实施例中,考量到一种方法。该方法包含将识别第一处理器内核正监控用于更新的地址范围的地址范围指示从该第一处理器内核传送至第二处理器内核,其中该传送处理系响应于执行定义使该第一处理器内核监控用于更新之该地址范围的第一指令;执行在该第二处理器内核中更新在该地址范围内的至少一个字节的储存操作;响应于该储存操作,发出信号给该第一处理器内核;以及响应于该信号,退出该第一处理器内核内之第一状态,于该第一状态中该第一处理器内核正等待该地址范围内之该更新。
又在另一个具体实施例中,考量到一种包含监控单元的处理器内核。该处理器内核设成响应于第一指令而监控用于更新的地址范围。该处理器内核设成进入第一状态以等待对该地址范围的更新。该监控单元设成响应于执行该第一指令而将识别该地址范围的地址范围指示传送至第二处理器内核,并且设成接收来自该第二处理器内核以指示该第二处理器内核正更新该地址范围内的至少一个字节的信号。该处理器内核设成响应于该信号而退出该第一状态。


以上之详细说明将参照于下简短说明之各附图。
图1为包含复数个处理器内核之计算机系统的一个具体实施例的方块图;图2为说明在执行监控指令之过程中,处理器内核之一个具体实施例的操作流程图;图3为说明在执行MWait指令之过程中,处理器内核之一个具体实施例的操作流程图;图4为说明在执行储存指令之过程中,处理器内核之一个具体实施例的操作流程图;图5为说明当等待快取列更新时,为进入低电力状态的处理器内核之一个具体实施例的操作的状态机;图6为说明当处理器内核更新该受监控之快取列时,于相同节点内的处理器内核之一个具体实施例的操作的范例;以及图7为说明当处理器内核更新该受监控之快取列时,于另一节点内的处理器内核之一个具体实施例的操作的范例。
主要组件符号说明10计算机系统 12A节点12B 节点 14A存储器14B 存储器16A外围装置16B 外围装置 18A处理器内核18B 处理器内核 18C处理器内核18D 处理器内核 20A桥接器20B 桥接器22A存储器控制器22B 存储器控制器24AHT接口电路24B HT接口电路 24CHT接口电路24D HT接口电路 24EHT接口电路24F HT接口电路 26A监控单元26B 监控单元 28A缓存器28B 缓存器28C缓存器28D 缓存器30A比较器30B 比较器30C比较器30D 比较器40、42、44、46、48、50、52、54、56、58方块60正常模式 62 经武装模式64睡眠模式 70 箭头72箭头 74 箭头76箭头 78 箭头具体实施方式
以下说明各示范性具体实施例,其中包含实作x86指令集架构的处理器内核(至少包括定义MONITOR及MWAIT指令之SSE3延伸,并可包含其它的延伸,譬如AMD64TM延伸或者是任何其它延伸)。其它具体实施例可实作任何指令集架构,并且可包含一个或更多的指令,此等指令可经定义以建立待予监控的地址范围(例如快取列或任何其它地址范围),并且经定义以令该处理器内核进入等待于该受监控地址范围里至少一个字节的更新的状态。也就是说,响应于执行该(等)指令,该处理器内核可监控该地址范围,并进入等待在该受监控地址范围内更新的状态下。该等MONITOR及MWAIT指令会用来作为该等指令之范例。在本说明书中,为便于说明而将该MONITOR指令称为监控指令(不大写),将该MWAIT指令称为MWait指令(仅M及W大写)。
现参照图1,图中显示计算机系统10之一个具体实施例的方块图。在所述具体实施例中,该计算机系统10包含节点12A至12B、存储器14A至14B以及外围装置16A至16B。该等节点12A至12B为相互耦接,且该节点12B耦接于该等外围装置16A至16B。各该节点12A至12B耦接于个别的存储器14A至14B。该节点12A包含耦接于桥接器20A的处理器内核18A至18B,该桥接器20A进一步耦接于存储器控制器22A以及复数个HyperTransportTM(HT)接口电路24A至24C。该节点12B类似地包含耦接于桥接器20B的处理器内核18C至18D,该桥接器20B进一步耦接于存储器控制器22B以及复数个HyperTransportTM(HT)接口电路24D至24F。该等HT电路24C至24D为(在本具体实施例中为透过HT接口)相互耦接,且该HT电路24F耦接于该外围装置16A,该外围装置16A以菊链(daisy-chain)组态(在本具体实施例中为利用各HT接口)之方式耦接于该外围装置16B。该等存储器控制器22A至22B耦接于个别的存储器14A至14B。
该等处理器内核18A至18B之一具体实施例的额外细节可如图1所示。该等处理器内核18C至18D可为类似者。在所述具体实施例中,该处理器内核18A包含监控单元26A,该监控单元26A包含缓存器28A至28B及比较器30A至30B。该缓存器28A耦接于该比较器30A,该比较器30A进一步经耦接以自接往该桥接器20A之接口接收无效化探询(invalidating probe;P-inv)的地址。该缓存器28B耦接于该比较器30B,该比较器30B进一步经耦接以自该处理器内核18A接收储存地址(StAddr)。该比较器30B的输出经耦接作为送至该监控单元26B的Wakeup-ST信号。该监控单元26B,在所述具体实施例中,包含分别类似于缓存器28A至28B及比较器30A至30B的缓存器28C至28D及比较器30C至30D。该比较器30D的输出经耦接作为送至该监控单元26A的Wakeup-ST信号。该缓存器28A耦接于该缓存器28D,且该缓存器28B耦接于该缓存器28C。
各该处理器内核18A至18D可设成响应于执行监控指令而监控地址范围。此外,该等监控处理器内核18A至18D可将识别受监控地址范围的地址范围指示传送给至少一个其它的处理器内核18A至18D(该「接收处理器内核」)。例如在所述具体实施例中,该等监控处理器内核18A至18D可将该地址范围指示传送给在相同节点12A至12B内的其它处理器内核18A至18D。亦即,该处理器内核18A可将其地址范围指示传送给该处理器内核18B(并反之亦然),而该处理器内核18C可将其地址范围指示传送给该处理器内核18D(并反之亦然)。该接收处理器内核18A至18D可响应于指令执行而监控该等接收处理器内核18A至18D所施行之对该地址范围的储存操作。如侦测到此储存,则该接收处理器内核18A至18D可发出信号给该监控处理器内核18A至18D。例如,在所述具体实施例中,该接收处理器内核18A至18D可向该监控处理器内核18A至18D确认(assert)该Wakeup-ST信号。该监控处理器内核18A至18D可响应于该信号,而透过执行该MWait指令退出该先前进入的状态(如仍在该状态下)。在一些具体实施例中,对该受监控地址范围的储存操作的侦测结果发出信号的接收处理器内核,可令该监控处理器内核相较于透过正常通信接口之相干性通信传输所进行者,而能够更快速地退出该状态。
一般说来,该地址范围指示可为任何定义受监控地址范围的(各)数值。例如,该地址范围可对应于存储器中之接续字节的区块。若该区块大小为固定的(例如快取列,或固定数量之快取列,或部分的快取列),则可利用该区块之基地址。类似地,若该大小为可变的但是各处理器内核18A至18D经程序化以具有相同大小,则可利用基地址。在其它具体实施例中,基地址及大小或者基地址及结束地址可识别该地址范围。在本文中的其余部分里,例示其中快取列为该地址范围的大小且以该快取列的基地址作为地址范围指示具体实施例。然而,其它的具体实施例可利用任何大小地址范围以及任何对应的地址范围指示。
图1中更详细地描述该等处理器内核18A至18B以包含该监控单元26A至26B。如后将详细说明该监控单元26A(及其缓存器28A至28B与比较器30A至30B)的操作,且该监控单元26B的操作可类似。该缓存器28A储存受该监控单元26A所监控的地址(MAddr)。亦即,该处理器内核18A可将在由该处理器内核18A执行该监控指令之过程中所产生的地址写入该缓存器28A内。透过该比较器30A来比较该MAddr与供应给该处理器内核18A的地址,该处理器内核18A具有任何表示由该地址所表示的快取列的更新的通信。例如,在所述具体实施例中,无效化探询(P-inv)可为更新指示。一般说来,探询是用于相干法则(coherency schemes)中之通信以决定该探询之接收器是否具有由该探询所识别的快取列,且若发现有,则特定该快取列之状态变化(并且可能要求将经修改之快取列回返至存储器或该请求者)。无效化探询可将快取列之状态变化特定为无效。无效化探询可用于某些相干法则中,以将由来源装置(如处理器、外围装置等)予以更新之其它快取内的快取列无效化。亦可使用其它的指示。例如,除无效化探询以外,可使用尚有或另予取代之写入操作。如另一个范例,表示该读取操作之来源即将要修改该快取列的读取操作可为更新指示。这种读取操作通常称为具修改意图之读取操作、读取修改操作,或是读取排除操作。在其它具体实施例中,该MAddr可与该处理器内核18A所接收之任何探询的地址相比较,即使该等探询并非表示更新亦然。这些比较作业可令该处理器内核18A退出该MWait状态并且再次地读取该快取列(透过跟在该指令序列内之Mwait指令后面的各项指令)。按此方式,软件可确保对产生该探询之受监控快取列的存取之来源不会接收到该快取列的排除版本(这就会能够后续地更新而不会产生无效化探询)。
若该比较器30A侦测到相符结果,则该监控单元26A可令该处理器内核18A退出响应于该MWait指令而进入之状态(即如图1中透过该WExit信号之确认(assertion))。该处理器内核18A可继续执行后续于该MWait指令的各项指令。软件可包含后续于该MWait指令的各项指令,以检查在受监控之快取列内的数值,并且若未发现所欲状态,则分支回返到该监控指令/MWait指令以重新进入该状态。
该监控单元26A亦可将该受监控快取列的地址传送至该监控单元26B。在所述具体实施例中,该监控单元26A可将该地址从该缓存器28A直接输出到该监控单元26B。在其它具体实施例中,可按其它方式来传通该地址。例如,可透过接口将该地址传送至该桥接器20A(即如以经编码以表示该地址系受监控地址之通信),并且该桥接器20A可将该通信按路线(route)传送至该处理器内核18B。
按类似方式,该监控单元26A可接收受到该监控单元26B监控的地址。在所述具体实施例中,该监控单元26A包含该缓存器26B以储存来自该监控单元26B之受监控地址的影像拷贝(shadow copy)(图1中的MAddrS)。该监控单元26A比较该MAddrS地址与该处理器内核18A所执行之储存操作的地址(图1中的StAddr)。若(比较器30B)侦测到对该MAddrS地址所表示的该快取列之储存,则该监控单元26A可向该监控单元26B确认(assert)该Wakeup-ST信号。在其它具体实施例中,该监控单元26B可连续地供应该缓存器28C的输出至该监控单元26A,并且在此等具体实施例中可不对该缓存器28B实施。
该监控单元26B可类似地对该监控单元26A产生该Wakeup-ST信号。响应于接收到来自该监控单元26B所确认的Wakeup-ST信号,该监控单元26A可设成退出响应于该MWait指令而进入的状态,类似于侦测到对于该快取列之无效探询。
一般说来,该处理器内核18A可利用接至该桥接器20A之接口与该计算机系统10的其它组件进行通信(如外围装置16A至16B、处理器内核18B至18D(除了如前述之受监控地址之影像拷贝及Wakeup-ST信号与该处理器内核18B之通信、存储器控制器22A至22B等)。该接口可按任何所需方式设计。可对该接口定义快取相干通信,即如前述。在一个具体实施例中,该桥接器20A与该等处理器内核18A至18B间之接口上的通信可为按封包之形式,类似于使用在HT接口上者。在其它的具体实施例中,可使用任何所欲之通信(例如总线接口上之异动(transaction))。在其它具体实施例中,该等处理器内核18A至18B可分享接至该桥接器20A之接口(即如分享总线接口)。
该桥接器20A一般说来可设成接收来自该处理器内核18A至18B及该等HT电路24A至24C的通信,并视通信型态、该通信内的地址等而定将这些通信按路线传送至该等处理器内核18A至18B、该HT电路24A至24C及该存储器控制器22A。在一个具体实施例中,该桥接器20A包含系统请求队列(SRQ),而所接收之通信会由该桥接器20A写入其内。该桥接器20A可排程来自SRQ之通信以按路线传送到该等处理器内核18A至18B、HT电路24A至24C、以及存储器控制器22A间之(各)目的地。相关于该处理器内核18C至18D、HT电路24D至24F、及存储器控制器22B而言,该桥接器20B可为类似。
该存储器14A至14B可包含任何适当的存储器装置。例如,存储器14A至14B可包含一个或多个RAMBUS DRAM(RDRAMS)、同步DRAM(SDRAMS)、双资料速率(DDR)DRAM、静态RAM等等。可在存储器14A至14B间划分该计算机系统10的地址空间。各节点12A至12B可包含用以决定哪些地址映像到哪些存储器14A至14B之存储器映图(map)(例如,在该桥接器20A内),并因此决定应将对于特定地址之存储器请求按路线传送到哪个节点12A至12B。该等存储器控制器22A至22B可包含用以介接至该存储器14A至14B的控制电路。此外,该等存储器控制器22A至22B可包含用以排伫各项存储器请求的请求队列等。
该HT电路24A至24F可包含各种缓冲器及控制电路,用以接收来自HT链接之封包并且传送该等封包于HT链接上。该HT接口包含用以传送封包的单方向链接。各HT电路24A至24F可耦接于两个此等链接(一个用于传送而一个用于接收)。给定之HT接口可按快取相干方式(例如于节点12A至12B间)或按非相干方式(例如往返于外围装置16A至16B)操作。在所述具体实施例中,该HT电路24C及24D透过相干HT链接而耦接,以于该等节点12A至12B间进行通信。该等HT电路24A至24B及24E未予使用,并且该HT电路24F透过非相干链接而耦接于该等外围装置16A至16B。
该等外围装置16A至16B可为任何种类的外围装置。例如,该等外围装置16A至16B可包含用以与另一计算机系统进行通信且耦接于该另一计算机之装置(例如,网络适配卡或调制解调器)。此外,该等外围装置16A至16B可包含视讯加速器、音讯卡、硬或软盘机或是碟机(drive)控制器、SCSI(小型计算机系统接口)配接器与电话卡、声卡,以及如GPIB或场(field)总线适配卡之各种资料取得卡。应注意到该名词「外围装置」系为涵盖输入/输出(I/O)装置。
在一个具体实施例中,各该节点12A至12B可为包含如图1中所显示之电路的单一集成电路芯片。亦即,各节点12A至12B可为芯片多处理器(CMP)。其它具体实施例可视需要将该等节点12A至12B实施为两个或以上个别的集成电路。可使用任何层级的整合或离散组件。
一般说来,处理器内核18A至18D可包含经设计以执行在给定指令集架构中所定义之指令的电路。亦即,该处理器内核电路可设成撷取、译码执行、及储存该指令集架构中所定义之指令的结果。该等处理器内核18A至8D可包含任何所欲组态,包含超管线式、超纯量式或其组合。其它组态可包含纯量式、管线式、非管线式等。各种具体实施例可运用非按序推理执行(out of order speculative execution)或是依序执行(in or der execution)。该处理器内核可包含对于一个或多个指令的微编码(microcoding)或其它功能,而与上述任何构项相组合。各种具体实施例可实施各式其它如快取、转译侧观缓冲器(translation lookaside buffer;TLB)等之设计特征。在CMP具体实施例中,在给定节点12A至12B内的处理器内核可包含纳入于该CMP内之电路。在其它具体实施例中,各该处理器内核18A至18D可包含离散集成电路。
如前述,该等处理器内核18A至18D可设成在指令执行过程中执行储存操作。在各种具体实施例中,储存操作可为显明储存指令之结果,可在其它以存储器操作数作为目的地之指令里为内隐的,或为两者。一般说来,储存操作可为在由与该储存操作关联的地址所特定的存储器位置内一个或多个字节的更新作业。
前文已用如确认(asserted)、未确认(deasserted)、产生(generated)等而提及各种信号。一般说来,信号可为任何由来源传送至接收器之指示。信号可包含一个或多个例如经确认或未确认的信号线列(signd line)。
应注意本具体实施例虽利用HT接口以于各节点间以及于节点及各外围装置间进行通信,然其它具体实施例可利用任何所欲接口或各接口以进行任一通信。例如,可利用其它封包基础式接口、可利用总线接口、可利用各种标准外围接口(例如外围组件互连(PCI)接口、快速PCI接口等)等。
应注意如图1所述之计算机系统10虽包含两个节点12A至12B,然其它具体实施例可实施单一或两个以上的节点。类似地,各节点12A至12B在各种具体实施例中可包含两个或多个处理器内核。在一些具体实施例中,在节点内之各处理器内核里的该等监控单元26可设成接收来自相同节点内之其它各处理器内核的受监控快取列的地址,并且可设成监控对各受监控快取列的储存操作。在其它具体实施例中,可识别该等处理器内核的子集合,并且该子集合可设成侦测对其他各个受监控快取列的储存操作。该计算机系统10之各种具体实施例可对每个节点12A至12B包含不同数量的HT接口、耦接于一个或多个节点之不同数量的外围设备等。
图2至图4为说明处理器内核18A至18D之一个具体实施例以执行各种指令之操作流程图,而图5为说明处理器内核18A至18D之一个具体实施例之示范性状态的状态机。在以下的图2至图5讨论中,会利用该处理器内核18A作为范例,而该等处理器内核18B至18D为类似者。对于透过图2至图4所示之各项指令,执行该指令之该等处理器内核18A至18D可执行其它在图2至图4中为各图标简洁清晰之故而未予绘示的操作(例如,检查异常等)。
现参照图2,图中说明为处理器内核18A之一个具体实施例以执行监控指令之操作流程图。该处理器内核18A可包含电路及/或微程序代码以执行该图2中所示之操作。图2中虽系为便于了解而按特定顺序以叙述各方块,然可采用任何顺序。此外,可在该处理器内核18A内藉由组合逻辑而按平行方式执行各方块。在各种具体实施例中,可视需要令方块可在多个时脉周期上管线化(pipelined),及/或使该流程图中所述之操作可在多个时脉周期上管线化。
在本实施例中,待予监控之快取列的地址系定义在该EAX缓存器内(或RAX缓存器,若由该处理器内核18A实施该AMD64TM延伸)。在其它具体实施例中,该处理器内核18A可增加两个或多个操作数以产生待予监控之快取列的地址。在一些具体实施例中,若激活受保护模式,则该EAX缓存器的内容会为待加入其中一个区段缓存器内所定义之区段基地址的位移值(offset),以获得线性地址。在其它的具体实施例中,该区段基地址可为零,且该EAX缓存器的内容可等于该线性地址。若激活分页功能(决策方块40,「是」分支),则该地址为虚拟地址(例如线性地址),该虚拟地址待由该分页机制予以转译成实体地址(方块42)。实体地址可为由该监控单元26A所监控的地址。在任一情况下,该处理器内核18A可将受监控的地址写入该监控单元26A内的MAddr缓存器28A(方块44)。另外,该处理器内核18A可将该地址传送至其它的处理器内核(方块46)。于其它的实施例中,该处理器内核18A可将该地址传送至一个以上之其它的处理器内核。该处理器内核18A亦可「武装」该监控单元26A(方块48)。一般说来,「武装」该监控单元26A可指将该监控单元26A置放在表示已执行监控指令之状态下(并因此已在该监控单元26A内建立待予监控的地址)。该经武装状态可用以决定对该MWait指令的响应,如后文所详述。
图3系说明处理器内核18A之一个具体实施例以执行MWait指令之操作流程图。该处理器内核18A可包含以执行图3中所示操作的电路及/或微程序代码。图3所示之方块虽按特定顺序以便于了解之方式加以说明,但是可运用任意的顺序。此外,可在该处理器内核18A内藉由组合逻辑按平行方式执行方块。在各种具体实施例中,可视需要令方块可在多个时脉周期上管线化,及/或令该流程图内所述之操作可在多个时脉周期上管线化。
若该监控单元26A为透过先前执行之监控指令而经武装(并且并未侦测到对该快取列的后续更新-决策方块50,「是」分支),则在此具体实施例中该处理器内核18A可进入睡眠状态(方块52)。在不同具体实施例中,可响应于该MWait指令而进入各种状态(例如,先前所述之实施相关的最佳化状态)。该睡眠状态可为省电状态,其中该处理器内核18A尝试减少其耗电量。在一些具体实施例中,该处理器内核18A在睡眠状态下可停止执行指令。在各种具体实施例中,该睡眠状态可包含下列一个或多个减少耗电量的方式降低处理器内核18A操作的时脉频率、对各种电路闸控时脉、关闭时脉、关闭锁相回路(phase lockloop)或其它时脉产生电路、降低处理器内核的电力(除该监控单元以外)等。该睡眠状态可为用于例如个人计算机系统里电力管理之各种实施内的任何停止准许状态(stop grant state)。在其它具体实施例中,可运用其它状态。例如,若该处理器内核18A施行多执行绪设备功能,则当执行该MWait指令时该处理器内核18A可切换至执行另一执行绪,直到侦测出对受监控之快取列的更新为止。
若该监控单元26A为未经武装(决策方块50,「否」分支),则该处理器内核18A对于该MWait指令可不采取任何动作,并且可继续执行后续于该MWait指令的次一指令。若未在该WMait指令之前先执行监控指令,则该监控单元26A可不经武装(虽然可在该监控指令与该MWait指令之间执行其它指令)。此外,若先前即已执行该监控指令,然在执行该MWait指令之前侦测到受监控快取列的更新,则该监控单元26A可不经武装。
现参照图4,此图系显示处理器内核18A一个具体实施例以执行储存操作之操作流程图。该处理器内核18A可包含以执行图4内所显示之操作的电路及/或微程序代码。图4内所显示之各方块虽系为便于了解而按特定顺序所述,然可运用任何顺序。此外,可在该处理器内核18A内藉由组合逻辑按平行方式执行方块。在各种具体实施例中,可视需要令方块在多个时脉周期上的管线化,及/或令该流程图内所述之操作在多个时脉周期上管线化。
该监控单元26A比较该储存操作的地址与该缓存器28B(储存该MAddrS地址之缓存器)内的地址。若该储存地址与该MAddrS地址相符(决策方块54,「是」分支),则该监控单元26A可向该处理器内核18B确认该Wakeup-ST信号(方块56)。在任一情况下,该处理器内核18A可藉更新存储器完成储存((方块58)。在实施快取的处理器内核18A之具体实施例中,可在快取内更新该存储器。此外,可根据在该计算机系统10内所施行之相干协议维持快取相干性。
图5为说明关联于该监控/MWait指令实施的处理器内核18A的示范性状态之状态机图。可藉由该处理器内核18A的各种具体实施例来实施其它用于其它目的之状态。图5中所示者为正常状态60、经武装状态62及睡眠状态64。
该正常状态60可为该处理器内核18A之状态,其中可执行指令,并且正执行快取列的无监控处理(如对于监控/MWait指令所定义者)。该经武装状态62可为其中该监控单元26A已经以将受监控之快取列的地址所更新(透过执行该监控指令)之状态,且正等待后续的MWait指令执行作业。该睡眠状态64系如前述为省电状态。在其它具体实施例中,可如前述运用其它状态以代替该睡眠状态64。
若该处理器内核18A在该正常状态60下并执行该监控指令,则该状态机即转移至该经武装状态62。在该经武装状态62下,若侦测到对受监控之快取列的无效化探询(确认WExit),或由该监控单元26A收到经确认之Wakeup-ST信号,则该状态机即转移回到该正常状态60。这项移转代表在执行该MWait指令之前,即先出现对于该受监控快取列的更新的情况。另一方面,若当该状态机在该经武装状态62下时执行该MWait指令,则该状态机即转移到该睡眠状态64。该状态机可响应于侦测到对于受监控快取列的无效化探询(WExit)、向该监控单元26A确认Wakeup-ST信号(Wakeup-ST),或者是任何其它对于该MWait指令及/或处理器内核实施所定义之退出情况(其它-退出),而从该睡眠状态64转移到该正常状态60。其它的退出情况可逐一依具体实施例而改变,然可包含将外部中断递送至该处理器内核18A、该处理器内核18重置等。
图6为说明当位于相同节点12A内的处理器内核(例如该处理器内核18B)更新该受监控快取列时,该处理器内核18A的操作范例。由该处理器内核18A所执行的程序代码即如在标题(粗体字)「处理器内核18A,节点12A」下所显示者。而由该处理器内核18B所执行的程序代码则为标题(粗体字)「处理器内核18B,节点12A」下所显示者。该处理器内核18A执行该监控指令,建立快取列的地址「A」以监控并武装该监控单元26A。该程序代码则包含检查该地址A(图6中经标注为「检查[A]」)。这项检查可包含读取在该受监控快取列内之存储器位置,并将该存储器位置与所欲状态相比较。若该所欲状态在该存储器位置处,则该检查可于该MWait指令附近分支,且继续进行后续处理。该检查可侦测到发生在执行该监控指令之竞赛情况下之对该快取列的更新。在本范例里,并未存在于该所欲状态在该快取列中,且该处理器内核18A执行该MWait指令。该处理器内核18A因此进入该睡眠状态(箭头70)。
该处理器内核18B执行对该地址A之储存操作,并且侦测到(在该监控单元28B中)该储存操作的地址相符于来自该处理器内核18A的影像监控地址(MAddrS)。从而,该处理器内核18B(特别是该监控单元28B)藉确认该Wakeup-ST信号(箭头72)来发出讯号给该处理器内核18A(且特别是该监控单元26A)。该处理器内核18A再次检查该地址A(图6中的检查[A]),并在该快取列内的侦测到该所欲状态。因此,该处理器内核18A继续执行其它指令。
图7为说明当在另一节点12B内的处理器内核(例如该处理器内核18C)更新该受监控快取列时,该处理器内核18A的操作范例。由该处理器内核18A所执行的程序代码即如在标题(粗体字)「处理器内核18A,节点12A」下所显示者。而由该处理器内核18C所执行的程序代码则为标题(粗体字)「处理器内核18C,节点12B」下所显示者。此外,该处理器内核18C与该处理器内核18A之间的通信传输系如图7的中间部分所示。类似于图6之范例,该处理器内核18A执行该监控指令,建立快取列的地址「A」以供监控并武装该监控单元26A;检查该地址「A」;以及执行该MWait指令。该处理器内核18A从而进入该睡眠状态(箭头74)。
该处理器内核18C执行对该地址A之储存操作。在本具体实施例中,该处理器内核18C并不具有由该处理器内核18A所监控的地址的影像拷贝,而因此继续相干操作之正常传输以完成储存。特别是,该处理器内核18C将无效化探询传送给该节点12B内的桥接器20B(箭头76)。该桥接器20B接着传送该无效化探询给该节点12A(而该无效化探询到达桥接器20A)。该桥接器20A接着传送该无效化探询至该处理器内核18A,该处理器内核18A侦测出该无效化探询的地址与该缓存器28A内的地址相符。因此,该处理器内核18A退出该睡眠状态(箭头78)。该处理器内核18A再次检查该地址A(图7中的检查[A]),并在该快取列内侦测到该所欲状态。因此,该处理器内核18A继续执行其它指令。
对熟谙本项技艺之人士而言,经完全了解前文揭示后,显然了解本发明可作许多的变化及修饰。下列之申请专利范围将诠释为涵盖所有该等变化及修饰。
工业应用本发明大致上可应用于处理器以及监控快取列之变化。
虽然本发明可受到各种之修改及替代形式,但是由各图式以范例之方式显示本发明之各特定具体实施例,并在文中对该等实施例加以详细说明。然应了解该等图式以及对于此等之详细说明并不是要为将本发明限制于所揭示之特定的形式,而相反地是,本发明将涵盖所有落于所附申请专利范围内所定义之本发明精神及范围内的修改、等同及替代项目。
权利要求
1.一种包含监控单元(26A)的处理器内核(18A),该监控单元设成响应于第一指令而监控用于更新的地址范围,其中该处理器内核(18A)配置为进入第一状态(64)以等待对该地址范围的更新,而且,其中该监控单元(26A)设成响应于执行该第一指令,而将识别该地址范围的地址范围指示传送至第二处理器内核(18B),且其中该监控单元(26A)配置为接收来自该第二处理器内核(18B)以指示该第二处理器内核(18B)正更新该地址范围内的至少一个字节的信号Wakeup-ST,其中该处理器内核(18A)配置为响应于该信号Wakeup-ST而退出该第一状态(64)。
2.如权利要求1所述的处理器内核,其中该地址范围指示包含识别接续存储器字节的区块的地址。
3.如权利要求1所述的处理器内核,进一步具有接口(24C),以与该计算机系统的其它组件进行通信,且其中该处理器内核(18A)进一步配置为若该更新指示表示该地址范围内的更新,则响应于接收来自该接口(24C)的更新指示而退出该第一状态(64)。
4.如权利要求3所述的处理器内核,其中该更新指示为探询。
5.如权利要求1所述的处理器内核,其中该监控单元(26A)进一步配置为储存接收自该第二处理器内核(18B)之第二地址范围指示的影像拷贝,其中该第二处理器内核(18B)正监控由该第二地址范围指示所表示的第二地址范围内的更新。
6.如权利要求5所述的处理器内核,其中该监控单元(26A)配置为,响应于该处理器内核(18A)执行更新该第二地址范围内的至少一个字节的第二储存操作,而发出信号给该第二处理器内核(18B)。
7.如权利要求1所述的处理器内核,其中该第一状态包含省电状态。
8.一种系统,包含如权利要求1至7中任一权利要求所述的处理器内核(18A);以及第二处理器内核(18B),该第二处理器内核经耦接以接收该地址范围指示,且该第二处理器内核配置为响应于执行更新在该地址范围内的至少一个字节的储存操作,而发出信号给该处理器内核(18A)。
9.一种方法,包含下列步骤将识别第一处理器内核(18A)正监控用于更新的地址范围的地址范围指示,从该第一处理器内核(18A)传送至第二处理器内核(18B),其中该传送处理响应于执行经定义而使该第一处理器内核(18A)监控用于更新的该地址范围的第一指令;执行在该第二处理器内核(18B)中更新在该地址范围内的至少一个字节的储存操作;响应于该储存操作,发出信号给该第一处理器内核(18A);以及响应于该信号,退出该第一处理器内核(18A)中的第一状态,在该第一状态中该第一处理器内核(18A)正等待该地址范围内的该更新。
10.如权利要求9所述的方法,其中该第一处理器内核经耦接于接口以与该计算机系统的其它组件进行通信,该方法进一步包含若该更新指示表示该地址范围内的更新,则响应于接收来自该接口的更新指示而退出该第一处理器内核中的该第一状态。
11.如权利要求10所述的方法,其中该更新指示为探询。
全文摘要
在一个具体实施例中,一种包含第一处理器内核及第二处理器内核之系统。该第一处理器内核设成传送识别该第一处理器内核正监控用于更新的地址范围的地址范围指示。该第一处理器内核设成响应于执行定义使该第一处理器内核监控该地址范围的第一指令,而传送该地址范围指示。该第二处理器内核经耦接以接收该地址范围指示,且该第二处理器内核设成响应于执行更新在该地址范围内的至少一个字节的储存操作,而发出信号给该第一处理器内核。该第一处理器内核经耦接以接收来自该第二处理器内核的信号,且该第一处理器内核设成响应于该信号而退出第一状态,于该第一状态中该第一处理器内核正等待该地址范围内的更新。
文档编号G06F9/30GK101036116SQ200580033487
公开日2007年9月12日 申请日期2005年9月21日 优先权日2004年10月1日
发明者M·T·克拉克 申请人:先进微装置公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1