CN1831805A - 同步寄存器 - Google Patents

同步寄存器 Download PDF

Info

Publication number
CN1831805A
CN1831805A CNA2006100059617A CN200610005961A CN1831805A CN 1831805 A CN1831805 A CN 1831805A CN A2006100059617 A CNA2006100059617 A CN A2006100059617A CN 200610005961 A CN200610005961 A CN 200610005961A CN 1831805 A CN1831805 A CN 1831805A
Authority
CN
China
Prior art keywords
register
cpu
value
itc
fast
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
CNA2006100059617A
Other languages
English (en)
Other versions
CN100555268C (zh
Inventor
R·G·坎贝尔
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.)
Hewlett Packard Development Co LP
Original Assignee
Hewlett Packard Development Co LP
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 Hewlett Packard Development Co LP filed Critical Hewlett Packard Development Co LP
Publication of CN1831805A publication Critical patent/CN1831805A/zh
Application granted granted Critical
Publication of CN100555268C publication Critical patent/CN100555268C/zh
Expired - Fee Related 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/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3867Concurrent instruction execution, e.g. pipeline or look ahead using instruction pipelines
    • G06F9/3869Implementation aspects, e.g. pipeline latches; pipeline synchronisation and clocking
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/04Generating or distributing clock signals or signals derived directly therefrom
    • G06F1/14Time supervision arrangements, e.g. real time clock
    • 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

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)
  • Hardware Redundancy (AREA)

Abstract

本发明的实施例涉及同步寄存器(2120)。实施例包括多个处理单元(110),每个处理单元包括多个CPU(210),这些CPU以不同频率运行,并且每个CPU具有ar.itc定时寄存器(2120)。多个单元(110)中最快单元中的CPU(210)称为快速CPU(210)。较慢单元中的CPU(210)称为慢速CPU(210)。在预定时间间隔,给慢速CPU(210)提供快速CPU(210)的ar.itc值,以便替代它们的ar.itc(2120)值。结果,同步了ar.itc寄存器(2120)中的值,而不提供负时间。还公开了其它实施例。

Description

同步寄存器
技术领域
本发明一般涉及计算机系统中的寄存器同步。
背景技术
通常,多CPU计算机系统中的每个CPU通过时钟运行。根据实现,系统中所有CPU的时钟都可由一个或多个时钟源提供,但是每种方法具有其自身的缺点。例如,在单时钟源方法中,例如时钟发生器的时钟源为所有CPU提供时钟,因此对所有接收该时钟的CPU而言,该时钟是相同的。然而,该方法受到单点故障的限制。也就是说,例如,如果时钟发生或分布中的任何一个出现故障,则整个系统失效。
在多时钟源方法中,诸如在其中一个时钟发生器为多单元系统中的处理单元提供时钟的一种方法中,单元中的所有CPU都接收来自一个时钟源的同一时钟,但是每个单元接收来自不同时钟源的不同时钟。结果,如果时钟出现故障,则只有使用该时钟的单元出现故障,而使用其它时钟的单元可继续工作。遗憾地,不同时钟源中的时钟漂移会导致各种问题,诸如导致负时间的计算或时间反向流逝。时钟漂移可称为不同CPU所见的时钟频率的变化。在SMP(对称多处理)系统中,线程可由一个CPU发起,并随后在另一个CPU上运行。例如,如果由运行在快速时钟控制的CPU上的线程读取ar.itc寄存器(其是包含间隔时间计数器值的应用寄存器),并且该线程后来迁移到慢速时钟控制的CPU,则当前运行在慢速时钟控制的CPU上的ar.itc寄存器可具有比来自第一读取(例如来自快速时钟控制的CPU的读取)的值更低的值,这将导致流逝时间被计算为负值。
发明内容
本发明的实施例涉及对寄存器进行同步。一个实施例包括多个处理单元,每个处理单元包括多个CPU,这些CPU以不同频率运行,并且每一个CPU具有ar.itc定时寄存器。多个单元中最快单元中的CPU称为快速CPU。较慢单元中的CPU称为慢速CPU。在预定时间间隔,给慢速CPU提供快速CPU的ar.itc值,以替代它们的ar.itc值。结果,同步了ar.itc寄存器中的值,而不提供负时间。还公开了其它实施例。
附图说明
在附图的各个图中,通过示例的方式而非限制的方式来阐述本发明,附图中相同的标号指示相同的元件,并且其中:
图1示出可在其上实施本发明实施例的配置;
图2示出根据本发明实施例的图1配置的处理单元。
具体实施方式
在以下描述中,出于解释的目的,阐述了许多具体细节,以便提供本发明的全面理解。然而,对于本领域的技术人员而言,显然可在没有这些具体细节的情况下实践本发明。在其它例子中,以框图形式示出了众所周知的结构和装置,以避免使本发明不清楚。
图1示出可实现本发明实施例的配置100。系统100包括多个处理单元,例如单元110(1)-110(N),以及多个接口120,例如接口120(1)-120(L)。系统100是SMP(对称多处理)系统,其中多个CPU可同时完成单个进程。可为空闲CPU分配任何任务,并可增加附加CPU以改进性能和处理增加的负荷。线程可由一个CPU发起,并随后在另一个CPU上运行。可分割一个或多个处理单元110,以便构成运行操作系统的系统。接口120使得能够连接多个单元110,并且如果需要,一个或多个连接的单元110操作为运行操作系统映像的独立计算机系统。通常,操作系统创建拥有线程的进程。在前端总线135上将数据从计算机的一部分传输到例如CPU、存储器等另一部分。本发明的实施例独立于总线拓扑,该总线拓扑包括单元110内和单元110之间的拓扑。例如,诸如共享、点对点、网状等总线结构都在本发明实施例的范围内。本领域的技术人员将认识到,前端总线可指的是将CPU连接到存储器的系统总线,并也可称为存储总线、局部总线、主机总线等。本发明的实施例还可适用于NUMA(非均匀存储器存取)系统,其中从一个单元110到另一个单元110的存储器存取时间完全不同,例如,比单元110内的存储器存取时间慢。
图2示出了作为处理单元110的实施例的处理单元200。处理单元200包括多个处理器或CPU(例如CPU 210(1)-210(M))、存储器220、不同级别的高速缓存230。一般地,希望每个CPU 210接收具有相同频率(例如可接受变化的频率)的时钟。根据配置,单元200的CPU 210可存取同一单元200或另一个单元200的存储器220和/或高速缓存230。
每个单元200接收来自例如时钟发生器(未示出)的时钟源的时钟。结果,相同单元200中的每个CPU 210接收来自该同一时钟源的时钟,并且相同单元200上的CPU 210运行在同一时钟频率。由于不同单元200中的不同时钟源,不同单元200中CPU 210的时钟频率不同。
CPU 210包括称为临时存储区的寄存器(未示出)以便由该CPU使用。CPU中的ALU(算术逻辑单元,未示出)在运算和处理数据期间使用那些寄存器,同时执行其功能。ALU可见的一个寄存器是寄存器ar.itc 2120(应用寄存器-间隔时间计数器),该寄存器是包含间隔时间计数器值(根据该值计算时间)的应用寄存器。在本文中,寄存器ar.itc用于说明目的,但本发明的实施例也可适用于其它寄存器或信息存储器,包括对ALU不可见的那些。CPU 210还具有其自身的高速缓存2130,称为CPU高速缓存。出于说明目的,在CPU210中仅示出一个高速缓存2130。然而,在这种CPU内部可能存在不同级别的高速缓存2130。
与高速缓存2130的情况类似,出于说明目的,仅在图2中示出一个高速缓存230。然而,在CPU 210和存储器220之间可存在处于不同级别的一个或多个高速缓存230。
           由寄存器ar.itc提供的正时间
出于说明目的,与其它单元200的频率相比具有最快时钟频率的单元200称为“快速单元”,而具有比该快速单元慢的时钟频率的其它单元200称为“慢速单元”。快速单元中的CPU称为CPU-F,而慢速单元中的CPU称为CPU-S。CPU-F的ar.itc 2120称为ar.itc-F,而CPU-S的ar.itc 2120称为ar.itc-S。一旦标识了快速单元,该单元的CPU就标记为CPU-F,以便跟踪其ar.itc-F的值,以在需要时提供给慢速单元。在单元200中所有CPU 210接收来自相同时钟源的时钟的实施例中,同一单元中所有CPU 210的ar.itc值是相同的,并且快速单元中的任何CPU 210可标记为提供ar.itc-F值的CPU-F。
一般地,希望单元200中CPU 210的ar.itc值单调增加。也就是说,随后读取的ar.itc值总是大于或等于先前读取的ar.itc值。这是通过在预定时间间隔将ar.itc-F值提供给ar.itc-S来实现的,出于说明目的,该预定时间间隔称为漂移间隔。一般地,时钟设计者基于设计组(lot)中最慢和最快单元之间的预期时钟漂移来指定漂移间隔,考虑了部件变化、电压变化、操作温度等。设计者可指定特定设计具有例如100ppm(百万分率)的最大漂移。也就是说,对于每100万个时钟存在100个时钟的最大漂移。换而言之,在100万个时钟之后,如果另一个单元例如单元200(B)不漂移,则单元200例如单元200(A)可比该单元200(B)快100个时钟。然而,由于每个单元都可能漂移,因此从最快和最慢单元扩展的漂移是200ppm(2×100ppm)。结果,对于每5000个(1百万时钟/200ppm)时钟,可能发生时钟漂移,并因此漂移间隔(用时钟数来表示)可选择为5000。在一个实施例中,例如称为“漂移计数器”的计数器用于初始化漂移间隔,并当该计数器终止时,例如计数到0,提供ar.itc-F的值以便由CPU-S使用。可以时间单位例如毫秒、秒等或其它时间间隔单位等来指定漂移间隔。
根据实现,在确定漂移间隔期间,考虑线程从一个单元200迁移到另一个单元200所花的时间和/或执行高速缓存转移所花的时间。例如,如果确定频率漂移将在5000个时钟内发生,并且迁移线程花10个时钟,则漂移间隔可选择为4990个时钟(5000个时钟-10个时钟)。类似地,如果执行高速缓存转移花20个时钟,则漂移间隔可选择为4980个时钟(5000个时钟-20个时钟)。高速缓存转移是使用前端总线的存储器一致性协议从一个CPU的高速缓存到另一个CPU的高速缓存的数据移动。
                     标识快速单元
标识最快单元的任何技术都在本发明实施例的保护范围内。例如,频率测量装置,无论是硬件或软件还是其组合,都可用于测量运行单元的时钟的频率,从而将最快单元标识为快速单元。在一个实施例中,选择CPU 210来表示单元200;每个选择的CPU 210对应于存储位置;并且所有选择的表示系统(例如系统100)中单元200的CPU 210开始计数到预定数,例如10000,每个对应于时钟。一旦达到该数10000,CPU 210就将结果或任何数(例如标记)写入其相应存储位置。同时,CPU(例如CPU-C)持续检验存储位置,并且一旦标识了写入位置,CPU-C就从该位置标识写入该位置并且还是最快CPU的CPU。从标识的最快CPU,标识最快单元(例如本文中使用的快速单元)。通常选择足够大的预定数,以使漂移能发生。备选地,每一个选择的CPU监控其自身的时间计数,并在达到数10000时,CPU与其它CPU核对,以便确定快速(最快)CPU。一般地,当快速CPU达到数10000时,没有其它CPU会达到该数,从而标识了最快CPU。
           存储器/高速缓存一致性
为了使CPU 210快速存取所需数据,CPU 210与不同级别的高速缓存230/2130以及包括存储器220的存储区共同运行,这些高速缓存和存储区根据将数据提供给发出请求的CPU 210所花的时间按层次进行组织。存储器或高速缓存一致性协议包括记录高速缓存中存储位置的内容、每个CPU的高速缓存2130的内容等的目录结构。从较靠近CPU 210的高速缓存存取数据比从距离同一CPU 210较远的高速缓存/存储器存取数据花的时间少。一般地,在从CPU 210请求数据时,在高速缓存层次中检验数据,以确定该数据是否在其中一个高速缓存(例如230、2130等)中,并且如果是,则将数据从该高速缓存而不是从存储器例如220、磁盘和/或其它存储介质提供给发出请求的CPU,这是由于获取高速缓存中的数据一般比从磁盘或包括存储器的其它存储介质获取数据快得多。
高速缓存一致性协议管理CPU 210请求的数据,并提供存储给定存储位置的最新数据的存储元件的统一视图(view)。数据的最新值可位于存储器220、高速缓存级230、CPU 210的高速缓存2130、其它存储区等中。根据实现,当CPU 210试图存取存储位置时,高速缓存一致性协议结合前端总线标识具有与该存储位置相关联的数据值的最新版本的位置。不考虑最新值的位置,高速缓存一致性协议使该值对发出请求的CPU 210可用,例如,将该值提供给这种CPU的高速缓存2130。高速缓存一致性协议包括各种协议,诸如前端总线协议、窥探协议等,该协议又包括I/O写、I/O读、存储器读、窥探、对存储器读的响应等。
将ar.itc-F合并到高速缓存一致性协议-混叠存储位置
本发明的实施例将包括ar.itc寄存器的寄存器合并到相干域中。这些实施例使这些寄存器成为存储层的一部分,从而受到高速缓存一致性协议的控制。出于说明目的,将ar.itc-F合并到高速缓存一致性协议中。这样,本发明的实施例为选择的存储位置声明ar.itc-F的混叠(alias),并将这种混叠通知给包括CPU 210、操作系统、高速缓存控制器、存储控制器等的系统中的所有元件。这种声明可由固件在系统初始化时实现,或由各种其它机构实现。由于保留了用于混叠ar.itc-F的混叠存储位置,因此该位置不用于其它目的。一旦混叠了存储位置,ar.itc-F就受到高速缓存一致性协议的控制,并且CPU-F看到对显式存储地址的窥探被混叠到ar.itc-F。此外,由于混叠的存储位置是对应于ar.itc-F的特殊位置,因此当请求来自该位置的数据时,可在高速缓存或其它存储区中跳过搜索数据,并且该搜索直接指向ar.itc-F。根据本发明的实施例,包括前端总线协议的高速缓存一致性协议没有改变。然而,改变包括一致性协议的存储映像以及CPU-S的高速缓存控制器如何读取混叠地址、CPU-F如何将ar.itc-F值返回该混叠地址等。
CPU-F和/或高速缓存控制器作如下决定:诸如CPU-F是否参与一致性协议、它是否返回ar.itc-F值等。在本领域技术人员所了解的高速缓存相干域语言中,CPU-F“拥有”“寄存器线路”,或者对应于混叠存储位置的ar.itc-F中的数据总是“有效”、由CPU-F  “更改”和“拥有”。也就是说,ar.itc-F存储混叠存储地址的最新数据。由于更改了ar.itc-F中的数据,因此在请求该数据时,存储控制器结合高速缓存一致性协议和/或前端总线协议采取适当措施,包括允许CPU-F将ar.itc-F中的数据返回发出请求的CPU,例如CPU-S。例如,当CPU-F读取混叠存储地址位置时,确认这是对应于ar.itc-F的特殊地址的CPU-F中的高速缓存控制器允许CPU-F返回该值。如果CPU-F不返回ar.itc-F的值,则错误肯定已经发生了,并相应地提供系统标记。在一个实施例中,当错误发生时,CPU-F返回预定值,诸如0,其适当地从系统发信号通知进行错误处理。在窥探读取之后,CPU-S获取ar.itc-F值,用该值替代它的ar.itc值,清除无效标记,并更新漂移间隔,例如,复位漂移计数器。
将ar.itc-F合并到高速缓存一致性协议-创建新命令
一般地,前端总线定义数据移动,并控制这种移动。在典型的前端总线上,存在标识事务类型诸如IO、存储器、高速缓存等和子类型诸如IO读、IO写、存储器读、存储器写、高速缓存请求、高速缓存窥探响应等的构件。将寄存器合并到高速缓存一致性协议中的本发明实施例为那些寄存器创建了新的高速缓存命令子类型。实际上,具有子类型的附加命令为寄存器提供了数据传送的新情况。新的子类型将寄存器的类别定义为一致性协议的一部分,其中由该子类型选择用于该协议的特定寄存器,而不使用通常由高速缓存一致性协议使用的命令的存储地址部分。换而言之,由命令子类型标识对上述寄存器的高速缓存操作,并且不涉及任何特定存储地址。诸如CPU、操作系统、存储控制器、高速缓存控制器等系统元件提供有与该附加命令有关的信息,并在适当时使用该命令。例如,在CPU-S想要更新其ar.itc窥探时,该CPU-S通过在前端总线上放置具有用于该寄存器ar.itc的命令类型和子类型的事务来请求该值。高速缓存一致性协议基于该命令及其子类型确认这是用于寄存器例如寄存器ar.itc的高速缓存一致性的命令,将该请求转发到CPU-F,该CPU-F经由高速缓存一致性协议适当地返回寄存器ar.itc-F的值。此外,当高速缓存控制器将该命令确认为与ar.itc-F有关的命令时,高速缓存控制器跳过搜索不同级别高速缓存等中的数据。
在以上说明中,使用了单个寄存器ar.itc。然而,本发明的实施例并不局限于ar.itc寄存器或单个寄存器。在将多个寄存器合并到相干域中的情况下,保留了混叠的存储位置,和/或为每个寄存器创建了命令,并将每个寄存器合并到本文所述的高速缓存一致性协议中。
            ar.itc-F和高速缓存一致性协议
当CPU-S想要更新其ar.itc-S时,使其自身的内容无效,这使下面的读取获取ar.itc-F值。由于ar.itc-F是高速缓存相干域的一部分,因此当CPU-S想要ar.itc-F值时,在使用混叠存储位置的实施例中,CPU-S读取该混叠存储位置,这实际上导致高速缓存失误。CPU-S例如通过将读取请求发送到前端总线以使一致性协议在ar.itc-F上窥探来请求一致性协议提供该值。该请求对应于在混叠存储位置之外请求一个值。来自前端总线的高速缓存一致性协议确定拥有和存储混叠存储位置的最新值的存储元件。该存储元件实际上是ar.itc-F。由于快速单元或CPU-F具有ar.itc-F,因此没有CPU-S会对它们具有这种值有反应。能够标识ar.itc-F的一致性协议由此将请求传递到包含CPU-F的快速单元。该快速单元知道在其选作CPU-F的其中一个CPU中具有请求的值,然后允许该CPU-F响应。此时,该CPU-F确认对ar.itc-F中最新数据的窥探请求,并结合高速缓存一致性协议将最新的ar.itc-F值提供给CPU-S。
在一些实施例中,前端总线协议更新混叠的存储位置,而不是留下ar.itc-F作为具有对应于混叠存储位置的最新值的仅有存储区,发出请求的CPU例如CPU-S从该混叠存储位置获取ar.itc-F值。备选地,CPU-F将最新的ar.itc-F值写入混叠存储位置,并请求该发出请求的CPU例如CPU-S重试该请求,并且CPU-S最终直接从混叠存储位置获取ar.itc-F值。备选地,CPU-S可获取数据,同时最新的ar.itc-F值被传送到混叠存储位置。
使用以上说明,在使用新创建的命令的实施例中,在CPU-S使用命令来请求ar.itc上的窥探之后,一致性协议基于命令和命令子类型确定对应于该窥探请求的存储元件。然后一致性协议将该请求传递到CPU-F,该CPU-F结合一致性协议返回ar.itc-F值等。
                    备选实施例
在适当时,例如在漂移计数器在漂移间隔终止时,本发明的实施例通过操作系统使用同步例程来同步定时寄存器。在SMP系统固件初始化和开机启动期间,一个CPU例如CPU-I执行该固件,并且其它CPU保持复位。因此,当CPU-I不复位时,CPU-I的ar.itc定时器开始计数,而其它CPU的ar.itc定时器仍处于复位,并且还没有开始计数。一旦固件运行到所有CPU都不复位并开始运行这一点,CPU-I的ar.itc就运行在其它CPU的ar.itc前面,导致ar.itc寄存器的不同步。结果,操作系统启动进行一次ar.itc寄存器同步的例程。当漂移计数器终止指示其更新ar.itc-S的时间时,本发明的实施例利用操作系统的该例程来更新慢速单元的ar.itc-S。在使用操作系统的该同步例程之前,本发明的实施例权衡优点和缺点,包括在执行该例程期间的CPU时间,因为例如如果时间间隔短,则使用该例程会极大影响系统性能。
在上文的说明书中,已经参考本发明的具体实施例描述了本发明。然而,显然的是,在不脱离本发明更宽的精神和范围的前提下,可进行本发明的各种更改和改变。相应地,说明书和附图应看作示例性的,而非限制性的。

Claims (10)

1.一种用于更新慢速寄存器(2120)的方法,包括以下步骤:
标识多个处理单元(110),每个处理单元具有至少一个寄存器(2120);
将处理单元(110)标识为快速处理单元(110),并将除了所述快速处理单元(110)以外的任何处理单元标识为慢速处理单元(110);
将所述快速处理单元(110)中的寄存器(2120)标识为快速寄存器(2120),并将所述慢速处理单元(110)中的寄存器(2120)标识为慢速寄存器(2120);所述快速寄存器(2120)是第一CPU(210)的一部分,且所述慢速寄存器(2120)是不同于第一CPU(210)的第二CPU(210)的一部分;
在时间间隔内,将所述慢速寄存器(2120)的值更新为所述快速寄存器(2120)的值。
2.如权利要求1所述的方法,其中所述至少一个寄存器的寄存器(2120)是CPU(210)的一部分。
3.如权利要求1所述的方法,其中更新所述慢速寄存器(2120)的值包括将所述快速寄存器(2120)的值提供到存储器中的指定位置。
4.如权利要求3所述的方法,其中更新所述慢速寄存器(2120)的值包括从所述指定位置获取所述快速寄存器(2120)的值。
5.如权利要求1所述的方法,还包括在更新所述慢速寄存器(2120)的值的步骤之前将所述快速寄存器(2120)合并到高速缓存相干域中的步骤。
6.如权利要求5所述的方法,其中将所述快速寄存器(2120)合并到所述高速缓存相干域中的所述步骤包括将存储位置选为所述快速寄存器(2120)的混叠的步骤。
7.如权利要求6所述的方法,还包括在请求选为所述快速寄存器(2120)的混叠的所述存储位置中的值时返回所述快速寄存器(2120)的值的步骤。
8.如权利要求5所述的方法,其中将所述快速寄存器(2120)合并到所述高速缓存相干域中的所述步骤包括提供具有与传送所述快速寄存器(2120)中的值相关联的子类型的命令的步骤。
9.如权利要求8所述的方法,还包括在确认所提供的命令时返回所述快速寄存器(2120)的值的步骤。
10.一种多处理系统,包括:
快速CPU,其具有合并到高速缓存一致性协议中的快速寄存器;
快速时钟源,其运行所述快速CPU;
慢速CPU,其具有慢速寄存器;以及
慢速时钟源,其运行所述慢速CPU;
其中在一个时段内所述高速缓存一致性协议用于将所述快速寄存器中的值提供给所述慢速寄存器;所述时段选择为使所述慢速寄存器中的值单调增加。
CNB2006100059617A 2005-01-21 2006-01-20 同步寄存器 Expired - Fee Related CN100555268C (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US11/040756 2005-01-21
US11/040,756 US7437587B2 (en) 2005-01-21 2005-01-21 Method and system for updating a value of a slow register to a value of a fast register

Publications (2)

Publication Number Publication Date
CN1831805A true CN1831805A (zh) 2006-09-13
CN100555268C CN100555268C (zh) 2009-10-28

Family

ID=36589659

Family Applications (1)

Application Number Title Priority Date Filing Date
CNB2006100059617A Expired - Fee Related CN100555268C (zh) 2005-01-21 2006-01-20 同步寄存器

Country Status (6)

Country Link
US (1) US7437587B2 (zh)
EP (1) EP1684168B1 (zh)
JP (1) JP2006202285A (zh)
CN (1) CN100555268C (zh)
DE (1) DE602006006877D1 (zh)
TW (1) TW200634482A (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TWI623835B (zh) * 2015-12-11 2018-05-11 甲骨文國際公司 用於反向目錄之省電機制

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20080229062A1 (en) * 2007-03-12 2008-09-18 Lorenzo Di Gregorio Method of sharing registers in a processor and processor
US8169850B2 (en) 2009-04-27 2012-05-01 Intel Corporation Forming multiprocessor systems using dual processors
US10162680B2 (en) * 2016-12-13 2018-12-25 GM Global Technology Operations LLC Control of data exchange between a primary core and a secondary core using a freeze process flag and a data frozen flag in real-time

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5001730A (en) * 1989-03-31 1991-03-19 International Business Machines Corporation Clock synchronization algorithm for address independent networks
US6311283B1 (en) * 1998-09-17 2001-10-30 Apple Computer, Inc. Need based synchronization of computer system time clock to reduce loading on network server
US6389547B1 (en) * 1999-03-19 2002-05-14 Sony Corporation Method and apparatus to synchronize a bus bridge to a master clock
AU6126499A (en) 1999-09-17 2001-04-24 Comuniq Asa Method for synchronizing clocks in electronic units connected to a multi processor data bus
US6502141B1 (en) * 1999-12-14 2002-12-31 International Business Machines Corporation Method and system for approximate, monotonic time synchronization for a multiple node NUMA system
US6907472B2 (en) * 2001-03-30 2005-06-14 Yitran Communications Ltd. Distributed synchronization mechanism for shared communications media based networks
US7093080B2 (en) * 2003-10-09 2006-08-15 International Business Machines Corporation Method and apparatus for coherent memory structure of heterogeneous processor systems
US20060047849A1 (en) * 2004-06-30 2006-03-02 Mukherjee Shubhendu S Apparatus and method for packet coalescing within interconnection network routers
US7213106B1 (en) * 2004-08-09 2007-05-01 Sun Microsystems, Inc. Conservative shadow cache support in a point-to-point connected multiprocessing node
US7308538B2 (en) * 2004-11-04 2007-12-11 International Business Machines Corporation Scope-based cache coherence

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TWI623835B (zh) * 2015-12-11 2018-05-11 甲骨文國際公司 用於反向目錄之省電機制

Also Published As

Publication number Publication date
EP1684168A3 (en) 2006-08-23
US7437587B2 (en) 2008-10-14
US20060168465A1 (en) 2006-07-27
JP2006202285A (ja) 2006-08-03
CN100555268C (zh) 2009-10-28
TW200634482A (en) 2006-10-01
DE602006006877D1 (de) 2009-07-02
EP1684168A2 (en) 2006-07-26
EP1684168B1 (en) 2009-05-20

Similar Documents

Publication Publication Date Title
CN1575455B (zh) 优化输入/输出应用的分布式读写高速缓存实现方案
CN108885583B (zh) 高速缓存存储器访问
US5809280A (en) Adaptive ahead FIFO with LRU replacement
Li et al. NUMA-aware shared-memory collective communication for MPI
CN103279426B (zh) 在不同高速缓存一致性域之间共享信息的技术
US6247107B1 (en) Chipset configured to perform data-directed prefetching
Wu et al. Error recovery in shared memory multiprocessors using private caches
CN101925881B (zh) 多处理器系统以及多处理器系统的同步方法
US5797026A (en) Method and apparatus for self-snooping a bus during a boundary transaction
US8266383B1 (en) Cache miss processing using a defer/replay mechanism
US9836325B2 (en) Resource management subsystem that maintains fairness and order
KR100230454B1 (ko) 다중처리 시스템의 캐시메모리 검사방법
US7783843B2 (en) Bus interface adapted to coalesce snoop responses
US20120198187A1 (en) Technique for preserving memory affinity in a non-uniform memory access data processing system
CN101410797A (zh) 无序处理器中的事务存储器
CN101313285A (zh) 高速缓存包含性的按组放宽
CN101563674A (zh) 对来自多处理器系统上的多线程程序的存储器访问进行管理的方法和系统
US6665767B1 (en) Programmer initiated cache block operations
US8788761B2 (en) System and method for explicitly managing cache coherence
CN1231449A (zh) 基于请求的同步总线操作
CN100555268C (zh) 同步寄存器
Mikschl et al. Msparc: a multithreaded Sparc
KR20060102565A (ko) 라이트 백 캐시 내에서 동시 발생하는 스누프 푸시 또는스누프 킬 연산중에 라이트 백 연산을 취소하는 시스템 및방법
Ren et al. MTM: Rethinking Memory Profiling and Migration for Multi-Tiered Large Memory
Chen et al. Concurrent hash tables on multicore machines: Comparison, evaluation and implications

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
C17 Cessation of patent right
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20091028

Termination date: 20110120