当前位置: 首页 > 专利查询>英特尔公司专利>正文

用于使用记录板机制处理加载锁定指令的方法和装置制造方法及图纸

技术编号:2845483 阅读:189 留言:0更新日期:2012-04-11 18:40
一种处理器,包含:    一个调度器,用来调度程序指令的执行,    一个执行管道,用来执行被调度的指令并且确定已经得到执行的指令是否要被重新执行,    一个重放单元,用来使指令被重新执行,    一个记录板,具有用于存储与加载锁定指令相关联的退出条件标志的多个字段,所述记录板提供与执行管道的通信。(*该技术在2023年保护过期,可自由使用*)

【技术实现步骤摘要】

本专利技术总体上涉及一种用于处理计算机处理器内的加载锁定指令的方法和装置。更特别地,本专利技术涉及一种用于使用记录板机制处理乱序计算机处理器内的加载锁定指令的系统和方法。
技术介绍
许多处理器,例如从市场上可获得的Intel公司的Pentium处理器,为“乱序”处理器。当所需的数据和执行单元变得可用时,乱序处理器推测性地按照任意次序执行指令。计算机系统内的一些指令通过机器寄存器依赖于其它指令。乱序处理器尝试通过以下方式拓展并行性主动地寻找其输入源可用于计算的指令,并且即使在程序流(程序次序)中较早出现的其它指令还未得到执行的情况下也调度它们以便执行。这样就为机器资源的更有效利用和更快的整体执行创造了机会。加载锁定指令用于多任务/多重处理系统中以便对信号量进行操作。信号量是如下的标志变量,所述标志变量被用来防止资源或数据被多处理器系统中的一个以上的代理同时访问,因为同时访问会导致程序不确定的行为。为了保障对信号量的唯一访问,加载锁定指令结合存储解锁指令必须要以原子方式加以执行。也就是说,一旦加载锁定指令访问了信号量值,在相应的存储解锁指令释放它之前,任何其它的指令都不能对该信号量进行操作,直到对应的存储解锁指令将它释放为止。加载锁定/存储解锁指令对还在x86处理器中引入需求,因为按照程序次序在加载锁定/存储解锁指令对之前的所有加载指令和所有存储指令必须在所述原子操作之前得到执行。另外,按照程序次序在所述加载锁定/存储解锁指令对之后的所有后续的加载指令和存储指令必须在所述加载锁定/存储解锁指令都完全得到执行之后才能被执行。在任何x86程序执行中都一定不能违反这一“防护”语义。推测性的执行意味着指令在解决相关的控制依赖性之前可被提取和执行。以推测性的乱序方式执行“加载锁定”指令隐含着如果没有得到正确的处理,可以不遵守加载锁定/存储解锁指令对的防护语义。但是,如果加载锁定指令可以被推测性地执行,就能够显著地提高性能,因为在资源能够使用时以及在加载锁定指令之前的所有指令已经被完成以外的任何时间,所述执行都可以被进行。通过只在指令已经达到“到达退出(at-retirement)”时才执行加载锁定指令,在处理乱序机器中的加载锁定指令过程中的传统方法就保障了防护语义。当一条指令按照程序次序接下来将要退出时,该“到达退出”(或者“在退出(at-retire)”)条件被加上标志。也就是说,按照程序次序所有靠前的指令都已经退出了。另外,这些传统的方法堆积所有的锁定指令,而不管它们是否在两个高速缓存线之间被分开(即“分开”或“未分开”锁定操作),并且不管它们是否将被写回到可高速缓存的区域。因此,大量的无关时间和资源被广泛地用来准备和处理任一加载锁定指令。在加载锁定指令变为符合退出条件时,这些方法产生了对应要执行的加载锁定指令的长的等待时间并且占用了大量的处理资源。附图说明图1是根据本专利技术的第一实施方案举例说明一个具有如下重放(replay)系统的计算机处理器核心的框图,该重放系统具有包含锁定记录板机制的检查器;图2是根据本专利技术的第一实施方案描述用于使用锁定记录板机制推测性地处理乱序处理器核心内的加载锁定指令的方法的流程图。图3是根据本专利技术的一些实施方案描述用于保持锁定记录板的方法的流程图;图4是根据本专利技术的第一实施方案描述用于当加载锁定指令到达检查器阶段的时候推测性地执行检查的方法的流程图;图5是根据本专利技术的第二实施方案举例说明一个具有如下重放系统的计算机处理器核心的框图,该重放系统具有包含锁定记录板机制的检查器;图6是根据本专利技术的第二实施方案描述用于使用锁定记录板机制推测性地处理乱序处理器核心内的加载锁定指令的方法的流程图。图7是根据本专利技术的第二实施方案描述用于当加载锁定指令到达检查器阶段的时候推测性地执行检查的方法的流程图;以及图8是按照本专利技术的一些实施方案的一种已知的多代理系统的框图,该系统包含在图1和图5中所示的用于执行加载锁定指令的处理器核心。具体实施例方式本专利技术的一些实施方案在一个处理核心中提供专用于对加载锁定指令进行管理的记录板。该加载锁定记录板包含多个代表不同条件的记录板条目,在加载锁定指令可退出之前这些条件必须得到满足。在加载锁定指令执行期间,记录板受到检查。如果记录板指示有一个或多个退出条件没有得到满足,那么就重放该加载锁定指令。否则,就允许该加载锁定指令退出。当退出条件被清除(clear)时,记录板管理功能定期对记录板内容进行更新。图1是根据本专利技术的第一实施方案的在一个示例性处理器内的处理器核心100的框图。处理器核心100可以包含调度器110、执行管道120、退出单元130、重放路径140,以及存储转发缓冲器150。处理器核心100可以被连接到写组合缓冲器160和高速缓冲存储器170。处理器核心100还可以包含传统的电路(图8),以便将处理器核心100连接到通信总线(图8)并且允许它与在计算机系统内的其它实体即代理(图8)进行通信。调度器110可以从指令队列(未示出)接收指令流。顾名思义,调度器110可以在相关联的输入资源变得容易得到的时候调度每条指令以便执行,而不管程序次序。可以被连接到调度器110的执行管道120可以包含专用于指令的各种执行单元,例如各种加法器和算术单元、加载单元、存储单元和其它电路系统(未示出)。依赖于指令类型,该调度器可以把一条指令提交到一个执行单元,该执行单元执行该指令。执行管道120还可以确定是要退出还是重放所分派的指令。可以被连接到执行管道120的退出单元130可以使得被正确和完全执行的指令退出。退出单元130按照程序次序使指令退出。例如,第一指令Inst A按照程序次序可能出现在第二指令Inst B之前。如果Inst A没有先退出,则即使Inst B在Inst A之前被完全和正确地执行,它也不可以退出。重放路径140可以被连接到执行管道120。重放路径140重新执行没有被正确和完全执行的指令。存储转发缓冲器150可以被连接到执行管道120。在多个已得到执行的存储指令准备退出的时候,存储转发缓冲器150可以临时存储来自它们的结果。处理器核心100可以被连接到外部单元,包含写组合缓冲器(WCB)160和高速缓冲存储器170。WCB 160可以被连接到存储转发缓冲器150和执行管道120。WCB 160临时地存储与存储解锁和加载锁定指令相关联的数据和地址。然后,WCB 160等待最佳时间,以便使用与被临时存储的数据相关联地址来将临时存储的数据写到高速缓冲存储器170。数据被以预先确定的大小(此处称为“高速缓存线”)为单位写到高速缓冲存储器170。高速缓冲存储器180可以被连接到WCB 160和系统存储器(图8)。然后高速缓冲存储器170等待最佳时间,以便通过外部总线将这种数据写到系统存储器。存储转发缓冲器150和WCB160都生成到执行管道120的命中/未命中信号。该命中/未命中信号指示一个特定的存储区是否包含加载锁定指令所指向的数据和地址。在这方面,处理器的操作和体系结构是众所周知的。本专利技术的一些实施方案引入了锁定记录板180,执行单元120在确定使加载锁定指令退出或重放时可以参考该锁定记录板180。锁定记录板180可以保持关于与所有加载锁定指令相关联的预先本文档来自技高网...

【技术保护点】

【技术特征摘要】
1.一种处理器,包含一个调度器,用来调度程序指令的执行,一个执行管道,用来执行被调度的指令并且确定已经得到执行的指令是否要被重新执行,一个重放单元,用来使指令被重新执行,一个记录板,具有用于存储与加载锁定指令相关联的退出条件标志的多个字段,所述记录板提供与执行管道的通信。2.如权利要求1所述的处理器,进一步包含具有连接到记录板字段的输入和连接到执行单元的输出的或门。3.如权利要求1所述的处理器,进一步包含具有连接到记录板字段的输入和连接到执行单元的输出的与门。4.一种在计算机系统中的处理器核心,包含一个执行管道,按照乱序来执行指令;一个锁定记录板,用于监视对应加载锁定指令的退出条件,所述记录板具有用于多个退出条件中的每个条件的标志位置,其中加载锁定指令通过在锁定记录板的拥有者比加载锁定指令年轻时逐出所述拥有者来保持锁定记录板。5.如权利要求4所述的处理器,其中所述拥有者是另一条加载锁定指令。6.如权利要求4所述的处理器,其中当所述拥有者出现在处理中的加载锁定指令之前时,所述拥有者是更年轻的。7.如权利要求4所述的处理器,其中当所述拥有者不如所述加载锁定指令年轻的时候,所述加载锁定指令被重放。8.如权利要求4所述的处理器,其中所述退出条件之一是是否存在故障条件和错误地址中的一个。9.如权利要求4所述的处理器,其中所述退出条件之一是加载锁定指令是否拥有锁定记录板。10.如权利要求4所述的处理器,其中所述退出条件之一是是否存在要释放完的较老的存储指令或优先的存储指令之一。11.如权利要求4所述的处理器,其中所述退出条件之一是在写组合缓冲器中是否存在命中。12.如权利要求4所述的处理器,其中所述退出条件之一是加载锁定指令是否在退出。13.一种用于保持锁定记录板以便处理乱序处理器中的当前的加载锁定指令的方法,包含确定是否存在记录板的拥有者,所述拥有者是保持锁定记录板的另一条加载锁定指令;如果是这样的话,则确定在程序流中所述拥有者是否比当前的加载锁定指令年轻;如果是这样的话,则逐出锁定记录板的拥有者,保持用于当前加载锁定指令的锁定记录板,并且重新设置锁定记录板,以及此后,在与当前的加载锁定指令相关联的退出条件得到满足的时候,清除锁定记录板的标志。14.如权利要求13所述的方法,其中当前的加载锁定指令在拥有者不如当前的加载锁定指令年轻的时候被重放。15.如权利要求13所述的方法,进一步包含在记录板的所有标志被清除时使当前的加载锁定指令退出。16.一种用于执行乱序处理器核心内的加载锁定指令的方法,所述处理器核心位于具有系统存储器的计算机系统内,所述方法包含读取...

【专利技术属性】
技术研发人员:H·H·胡姆D·卡米恩
申请(专利权)人:英特尔公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1