CN101036116A - 跨多内核的分享监控快取列 - Google Patents

跨多内核的分享监控快取列 Download PDF

Info

Publication number
CN101036116A
CN101036116A CNA2005800334872A CN200580033487A CN101036116A CN 101036116 A CN101036116 A CN 101036116A CN A2005800334872 A CNA2005800334872 A CN A2005800334872A CN 200580033487 A CN200580033487 A CN 200580033487A CN 101036116 A CN101036116 A CN 101036116A
Authority
CN
China
Prior art keywords
processor cores
processor
address
address realm
state
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
Application number
CNA2005800334872A
Other languages
English (en)
Other versions
CN101036116B (zh
Inventor
M·T·克拉克
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Advanced Micro Devices Inc
Original Assignee
Advanced Micro Devices Inc
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Advanced Micro Devices Inc filed Critical Advanced Micro Devices Inc
Publication of CN101036116A publication Critical patent/CN101036116A/zh
Application granted granted Critical
Publication of CN101036116B publication Critical patent/CN101036116B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30003Arrangements for executing specific machine instructions
    • G06F9/30076Arrangements for executing specific machine instructions to perform miscellaneous control operations, e.g. NOP
    • G06F9/30083Power or thermal control instructions
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/54Interprogram communication
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/10Program control for peripheral devices
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30003Arrangements for executing specific machine instructions
    • G06F9/3004Arrangements for executing specific machine instructions to perform operations on memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30003Arrangements for executing specific machine instructions
    • G06F9/30076Arrangements for executing specific machine instructions to perform miscellaneous control operations, e.g. NOP
    • G06F9/30087Synchronisation or serialisation instructions
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline or look ahead
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3885Concurrent instruction execution, e.g. pipeline or look ahead using a plurality of independent parallel functional units
    • G06F9/3889Concurrent instruction execution, e.g. pipeline or look ahead using a plurality of independent parallel functional units controlled by multiple instructions, e.g. MIMD, decoupled access or execute
    • G06F9/3891Concurrent instruction execution, e.g. pipeline or look ahead using a plurality of independent parallel functional units controlled by multiple instructions, e.g. MIMD, decoupled access or execute organised in groups of units sharing resources, e.g. clusters

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Memory System Of A Hierarchy Structure (AREA)
  • Debugging And Monitoring (AREA)

Abstract

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

Description

跨多内核的分享监控快取列
技术领域
本发明关于处理器,特别是关于监控快取列的变化。
背景技术
许多应用程序经撰写以与其它应用程序进行互动。此外,许多应用程序经撰写为多执行绪(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继续执行其它指令。
对熟谙本项技艺之人士而言,经完全了解前文揭示后,显然了解本发明可作许多的变化及修饰。下列之申请专利范围将诠释为涵盖所有该等变化及修饰。
工业应用
本发明大致上可应用于处理器以及监控快取列之变化。
虽然本发明可受到各种之修改及替代形式,但是由各图式以范例之方式显示本发明之各特定具体实施例,并在文中对该等实施例加以详细说明。然应了解该等图式以及对于此等之详细说明并不是要为将本发明限制于所揭示之特定的形式,而相反地是,本发明将涵盖所有落于所附申请专利范围内所定义之本发明精神及范围内的修改、等同及替代项目。

Claims (11)

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所述的方法,其中该更新指示为探询。
CN2005800334872A 2004-10-01 2005-09-21 跨多内核的分享监控快取列 Active CN101036116B (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US10/956,685 2004-10-01
US10/956,685 US7257679B2 (en) 2004-10-01 2004-10-01 Sharing monitored cache lines across multiple cores
PCT/US2005/033819 WO2006039162A2 (en) 2004-10-01 2005-09-21 Sharing monitored cache lines across multiple cores

Publications (2)

Publication Number Publication Date
CN101036116A true CN101036116A (zh) 2007-09-12
CN101036116B CN101036116B (zh) 2010-08-11

Family

ID=35994769

Family Applications (1)

Application Number Title Priority Date Filing Date
CN2005800334872A Active CN101036116B (zh) 2004-10-01 2005-09-21 跨多内核的分享监控快取列

Country Status (8)

Country Link
US (1) US7257679B2 (zh)
EP (1) EP1807754B1 (zh)
JP (1) JP4982375B2 (zh)
KR (1) KR101216190B1 (zh)
CN (1) CN101036116B (zh)
DE (1) DE602005020960D1 (zh)
TW (1) TWI366132B (zh)
WO (1) WO2006039162A2 (zh)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102541237A (zh) * 2010-12-22 2012-07-04 威盛电子股份有限公司 配置在多重处理器核心之间的分散式电源管理
CN108009121A (zh) * 2017-12-21 2018-05-08 中国电子科技集团公司第四十七研究所 面向应用的动态多核配置方法
CN113157543A (zh) * 2021-05-14 2021-07-23 海光信息技术股份有限公司 一种可信度量方法及装置、服务器、计算机可读存储介质

Families Citing this family (43)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7213093B2 (en) * 2003-06-27 2007-05-01 Intel Corporation Queued locks using monitor-memory wait
US7502948B2 (en) * 2004-12-30 2009-03-10 Intel Corporation Method, system, and apparatus for selecting a maximum operation point based on number of active cores and performance level of each of the active cores
US7484053B2 (en) * 2005-05-16 2009-01-27 Texas Instruments Incorporated Cross-referencing cache line addresses with corresponding names
US7444474B2 (en) * 2005-05-16 2008-10-28 Texas Instruments Incorporated Determining the presence of a virtual address in a cache
US8281083B2 (en) 2005-06-30 2012-10-02 Intel Corporation Device, system and method of generating an execution instruction based on a memory-access instruction
US9003421B2 (en) * 2005-11-28 2015-04-07 Intel Corporation Acceleration threads on idle OS-visible thread execution units
US20070271450A1 (en) * 2006-05-17 2007-11-22 Doshi Kshitij A Method and system for enhanced thread synchronization and coordination
US9710384B2 (en) 2008-01-04 2017-07-18 Micron Technology, Inc. Microprocessor architecture having alternative memory access paths
US8561037B2 (en) * 2007-08-29 2013-10-15 Convey Computer Compiler for generating an executable comprising instructions for a plurality of different instruction sets
US8122229B2 (en) * 2007-09-12 2012-02-21 Convey Computer Dispatch mechanism for dispatching instructions from a host processor to a co-processor
US8156307B2 (en) * 2007-08-20 2012-04-10 Convey Computer Multi-processor system having at least one processor that comprises a dynamically reconfigurable instruction set
US9015399B2 (en) 2007-08-20 2015-04-21 Convey Computer Multiple data channel memory module architecture
US8095735B2 (en) 2008-08-05 2012-01-10 Convey Computer Memory interleave for heterogeneous computing
US20090106755A1 (en) * 2007-10-19 2009-04-23 Sundeep Chandhoke Programmable Controller with Multiple Processors Using Scanning and Data Acquisition Architectures
US9336051B2 (en) * 2007-10-19 2016-05-10 National Instruments Corporation Programmable controller with multiple processors using a scanning architecture
US20090309243A1 (en) * 2008-06-11 2009-12-17 Nvidia Corporation Multi-core integrated circuits having asymmetric performance between cores
US8205066B2 (en) * 2008-10-31 2012-06-19 Convey Computer Dynamically configured coprocessor for different extended instruction set personality specific to application program with shared memory storing instructions invisibly dispatched from host processor
US20100115233A1 (en) * 2008-10-31 2010-05-06 Convey Computer Dynamically-selectable vector register partitioning
US8156275B2 (en) * 2009-05-13 2012-04-10 Apple Inc. Power managed lock optimization
US8364862B2 (en) * 2009-06-11 2013-01-29 Intel Corporation Delegating a poll operation to another device
US8423745B1 (en) 2009-11-16 2013-04-16 Convey Computer Systems and methods for mapping a neighborhood of data to general registers of a processing element
US8631256B2 (en) 2010-12-22 2014-01-14 Via Technologies, Inc. Distributed management of a shared power source to a multi-core microprocessor
US8972707B2 (en) 2010-12-22 2015-03-03 Via Technologies, Inc. Multi-core processor with core selectively disabled by kill instruction of system software and resettable only via external pin
CN103955265B (zh) * 2010-12-22 2017-04-12 威盛电子股份有限公司 配置在多重处理器核心之间的分散式电源管理
US8637212B2 (en) 2010-12-22 2014-01-28 Via Technologies, Inc. Reticle set modification to produce multi-core dies
US8782451B2 (en) * 2010-12-22 2014-07-15 Via Technologies, Inc. Power state synchronization in a multi-core processor
US8930676B2 (en) 2010-12-22 2015-01-06 Via Technologies, Inc. Master core discovering enabled cores in microprocessor comprising plural multi-core dies
US9460038B2 (en) 2010-12-22 2016-10-04 Via Technologies, Inc. Multi-core microprocessor internal bypass bus
US8819349B2 (en) * 2011-07-08 2014-08-26 Facebook, Inc. Invoking operating system functionality without the use of system calls
US8713262B2 (en) 2011-09-02 2014-04-29 Nvidia Corporation Managing a spinlock indicative of exclusive access to a system resource
US8868843B2 (en) 2011-11-30 2014-10-21 Advanced Micro Devices, Inc. Hardware filter for tracking block presence in large caches
CN106909444B (zh) 2011-12-22 2021-01-12 英特尔公司 用于指定应用线程性能状态的指令的指令处理装置及相关方法
WO2013147887A1 (en) 2012-03-30 2013-10-03 Intel Corporation Context switching mechanism for a processing core having a general purpose cpu core and a tightly coupled accelerator
US10430190B2 (en) 2012-06-07 2019-10-01 Micron Technology, Inc. Systems and methods for selectively controlling multithreaded execution of executable code segments
US9218288B2 (en) * 2012-06-15 2015-12-22 International Business Machines Corporation Monitoring a value in storage without repeated storage access
US9792112B2 (en) 2013-08-28 2017-10-17 Via Technologies, Inc. Propagation of microcode patches to multiple cores in multicore microprocessor
US9465432B2 (en) 2013-08-28 2016-10-11 Via Technologies, Inc. Multi-core synchronization mechanism
US9535488B2 (en) 2013-08-28 2017-01-03 Via Technologies, Inc. Multi-core microprocessor that dynamically designates one of its processing cores as the bootstrap processor
JP6525267B2 (ja) * 2015-11-13 2019-06-05 Necプラットフォームズ株式会社 範囲外参照検出装置、方法およびプログラム
US10394678B2 (en) 2016-12-29 2019-08-27 Intel Corporation Wait and poll instructions for monitoring a plurality of addresses
US11176042B2 (en) * 2019-05-21 2021-11-16 Arm Limited Method and apparatus for architectural cache transaction logging
US11237960B2 (en) 2019-05-21 2022-02-01 Arm Limited Method and apparatus for asynchronous memory write-back in a data processing system
US20220394023A1 (en) * 2021-06-04 2022-12-08 Winkk, Inc Encryption for one-way data stream

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2916421B2 (ja) * 1996-09-09 1999-07-05 株式会社東芝 キャッシュフラッシュ装置およびデータ処理方法
JPH10149285A (ja) 1996-11-18 1998-06-02 Hitachi Ltd 命令実行制御方法および情報処理装置
US6493741B1 (en) 1999-10-01 2002-12-10 Compaq Information Technologies Group, L.P. Method and apparatus to quiesce a portion of a simultaneous multithreaded central processing unit
US6721856B1 (en) * 2000-10-26 2004-04-13 International Business Machines Corporation Enhanced cache management mechanism via an intelligent system bus monitor
US7363474B2 (en) 2001-12-31 2008-04-22 Intel Corporation Method and apparatus for suspending execution of a thread until a specified memory access occurs
US7266587B2 (en) * 2002-05-15 2007-09-04 Broadcom Corporation System having interfaces, switch, and memory bridge for CC-NUMA operation

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102541237A (zh) * 2010-12-22 2012-07-04 威盛电子股份有限公司 配置在多重处理器核心之间的分散式电源管理
CN102541237B (zh) * 2010-12-22 2014-09-17 威盛电子股份有限公司 多核心处理器及其分散式电源管理方法
CN108009121A (zh) * 2017-12-21 2018-05-08 中国电子科技集团公司第四十七研究所 面向应用的动态多核配置方法
CN108009121B (zh) * 2017-12-21 2021-12-07 中国电子科技集团公司第四十七研究所 面向应用的动态多核配置方法
CN113157543A (zh) * 2021-05-14 2021-07-23 海光信息技术股份有限公司 一种可信度量方法及装置、服务器、计算机可读存储介质

Also Published As

Publication number Publication date
TW200627271A (en) 2006-08-01
JP4982375B2 (ja) 2012-07-25
EP1807754B1 (en) 2010-04-28
WO2006039162A2 (en) 2006-04-13
DE602005020960D1 (de) 2010-06-10
EP1807754A2 (en) 2007-07-18
TWI366132B (en) 2012-06-11
KR20070057906A (ko) 2007-06-07
WO2006039162A3 (en) 2007-03-15
KR101216190B1 (ko) 2012-12-28
US20060075060A1 (en) 2006-04-06
US7257679B2 (en) 2007-08-14
CN101036116B (zh) 2010-08-11
JP2008515096A (ja) 2008-05-08

Similar Documents

Publication Publication Date Title
CN101036116A (zh) 跨多内核的分享监控快取列
US11093277B2 (en) Systems, methods, and apparatuses for heterogeneous computing
US11294809B2 (en) Apparatuses and methods for a processor architecture
CN107667358B (zh) 用于在多个拓扑结构中使用的装置及其方法
CN108027804B (zh) 片上原子事务引擎
CN106815151B (zh) 高性能互连相干协议
KR101291016B1 (ko) 사용자 핸들러 등록 장치, 프로세서, 시스템 및 방법
US10248568B2 (en) Efficient data transfer between a processor core and an accelerator
US8886919B2 (en) Remote update programming idiom accelerator with allocated processor resources
US10509740B2 (en) Mutual exclusion in a non-coherent memory hierarchy
KR101775569B1 (ko) 가상 재시도 큐
CN108885586B (zh) 用于以有保证的完成将数据取出到所指示的高速缓存层级的处理器、方法、系统和指令
KR20150107831A (ko) 데이터 버퍼와 연관된 스누프 필터링의 제공
KR20190086669A (ko) 프로세서 아키텍처에 대한 장치들 및 방법들
JP2011150422A (ja) データ処理装置
EP3274860B1 (en) A method, apparatus and system for optimizing cache memory transaction handling in a processor
JP7164267B2 (ja) ヘテロジニアスコンピューティングのためのシステム、方法及び装置
Arimilli et al. IBM POWER9 processor and system features for computing in the cognitive era
US20240004808A1 (en) Optimized prioritization of memory accesses
Fang et al. Scalable barrier synchronisation for large-scale shared-memory multiprocessors

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