本发明专利技术提供了一种用于使用监视-存储器等待来监视锁定的方法、装置和系统。根据一个实施例,与被争用的锁定相关联的节点被监视;寻求被争用的锁定的处理器被休眠,直到监视器事件发生。
【技术实现步骤摘要】
本专利技术涉及处理器,更具体地说,涉及使用监视-存储器等待来为一个或多个等待锁定的处理器监视锁定,直到锁定变得可用。
技术介绍
通常,超线程或多线程处理器能够同时处理多个指令序列。促使在单个处理器中执行多个指令流的主要推动因素是所得到的处理器利用率的提高。超线程处理器允许多个指令流在不同的执行资源中同时执行,试图更好地利用这些资源。此外,超线程处理器能够被用于这样的程序,其遇到高等待时间的延迟或者常常等待事件发生。通常,超线程处理器具有单个的资源装置,该资源装置被所有的线程或逻辑处理器(处理器)共享。没有足够的资源可能在处理器之间产生明显的争用,尤其是在一个或多个处理器等待锁定变得可用的时候。已经提议了若干技术来改进涉及多个处理器间的锁定争用的程序运行的低效率以及其他资源消耗延迟。例如,在传统的螺旋等待锁定系统中,使用等待队列来将等待锁定的处理器放置到等待列表中,直到锁定变得可用为止。但是,在这样的等待期间,处理器不断地访问锁定的存储器位置,使得在该存储器位置产生存储器争用,造成资源瓶颈,浪费存储器带宽、计算带宽、微体系结构资源以及功率。这样的“忙等待”处理器可能对有关的其他处理器的性能造成不利的影响。附图说明所附的权利要求具体地阐述了本专利技术的特征。本专利技术的实施例及其优点可以通过下面结合附图的详细说明得到最好的理解,其中图1是图示具有存储器存取监视器的超线程处理器的实施例的框图; 图2是图示了超线程处理器操作的实施例的流程图;图3是图示了超线程处理器的实施例的框图;图4是图示用于资源划分、共享和复制的处理的实施例的框图;图5是图示用于暂停和恢复线程执行的处理的实施例的流程图;图6是图示了用于激活和操作监视逻辑的处理的实施例的流程图;图7是图示了用于监视操作的处理的实施例的流程图;图8是图示了使用监视-存储器等待获取锁定和监视锁定的处理的实施例的流程图;图9图示了使用监视-存储器等待来释放锁定和监视锁定的处理的实施例的流程图;图10是图示了系统的实施例的框图;以及图11是图示了用于设计的模拟、仿真和制造的各种设计表示或形式的实施例的框图。
技术实现思路
本专利技术描述了用于为一个或多个等待锁定的处理器监视锁定的方法和装置。宽泛地说,本专利技术的实施例提出使用监视-存储器等待来为一个或多个等待锁定的处理器监视锁定,直到锁定变得可用。系统、装置和方法被提供来使要获取可能被其他处理器争用的锁定的处理器休眠,直到监视器事件发生,例如锁定变得对该处理器可用。换句话说,虽然处理器可以等待锁定变得可用,但是在队列中等待的同时,它可以休眠。根据一个实施例,处理器休眠的选项可以包括处理器让出其资源并提供所让出的资源以由其他处理器使用。根据一个实施例,寻求锁定的处理器可以是超线程处理器的逻辑处理器。典型的超线程处理器可以包括共享相同资源的多线程或逻辑处理器。根据一个实施例,监视-存储器等待(monitor-mwait)机制可以被用来监视被争用的锁定,并且使处理器休眠,例如直到锁定变得可用。被争用的锁定可以指一个或多个处理器等待或寻求获得的锁定。根据一个实施例,可以与处理器相对应地产生节点或队列单元(节点)。根据一个实施例,使用监视-存储器等待,节点可以与被争用的锁定相关联地被初始化并被监视。节点的监视可以包括例如通过监视锁定的锁定地址来监视锁定,锁定地址可以被称为监视地址。根据一个实施例,一个或多个事件或者设定的时间周期可以被称为监视器事件,并且基于监视器事件的发生,节点的监视可以结束,并且处理器可以被唤醒。例如,使队列中的下一个处理器声明(claim)锁定和锁定的可用性可以被称为监视器事件。换句话说,当处理器是队列中下一个(或者第一个)接收被争用的锁定并且锁定变得可用时,处理器可以要求锁定并且还可以收回(reclaim)一些或全部先前被让出的资源。根据一个实施例,被争用的锁定当被拥有锁定的另外的处理器释放时,可以变得可用。根据一个实施例,可以在让其他处理器使用处理资源时,在一个线程或处理器中实现监视-存储器等待。例如,根据一个实施例,可以设立监视器,使得处理器可以休眠,直到发生特定存储器存取,所述存储器存取例如是向规定存储器位置的写。处理器可以依据规定的事件被唤醒,而不用执行可能浪费处理器资源的例程。根据一个实施例,先前被专用于当前休眠的处理器的分区在该处理器仍然休眠时可以被让出。本专利技术的这些和/或其他实施例可以相对地改善总的机器处理量。具体实施例方式在下面的说明中,为了提供对本专利技术各种实施例的更全面的理解,阐述了许多具体的细节,比如逻辑实现方式、操作码、资源划分、资源共享和资源复制的实现方式、系统部件的类型和相互关系以及逻辑划分/集成选择。但是,应该理解,对于本领域的技术人员,基于所公开的内容,本专利技术的实施例可以在没有这些特定细节时也能够被实施。在其他例子中,为了不使本专利技术模糊,没有详细地示出控制结构、门级电路和完全的软件指令序列。本领域的普通技术人员,通过所包括的说明,不用过分的试验就将能够实现适当的功能。下面将对本专利技术实施例的各个步骤进行说明。实施例的各个步骤可以由硬件部件执行或体现在机器可执行指令中,它们可以被用来使通过这些指令编程的通用或专用处理器、机器或逻辑电路执行各个步骤。或者,实施例的各个步骤可以通过组合硬件和软件的结合被执行。本专利技术的各种实施例可以被提供为计算机程序产品,这些产品可以包括在其上存储有指令的机器可读介质,这些指令可以被用来对计算机(或其他电子设备)编程,以执行根据本专利技术各种实施例的处理。机器可读介质可以包括但不限于软盘、光盘、CD-ROM、磁光盘、ROM、RAM、EPROM、EEPROM、磁/光卡、闪存或适于存储电子指令的其他类型的介质/机器可读介质。而且,本专利技术的各种实施例也可以作为计算机程序产品被下载,其中,程序可以通过通信链路(例如,调制解调器或网络连接)以被体现在载波或其他传播介质中的数据信号的方式从远程计算机传输到请求计算机。图1是图示具有存储器存取监视器110的超线程处理器100的实施例的框图。根据一个实施例,处理器100可以被形成为单个集成电路。根据另一个实施例,多个集成电路可以一起形成处理器100,根据又一个实施例,硬件和软件例程(例如,二进制译码例程)可以一起形成处理器100。如图所示,总线/存储器控制器120可以向前端130提供用于执行的指令。前端130可以根据指令指针170引导从各种线程获取指令。指令指针逻辑可以被复制来支持多线程。根据一个实施例,前端130可以将指令送入线程/处理器可划分资源140中,以进行进一步处理。当处理器100中有多个线程是活动的时,线程/处理器可划分资源140可以包括在逻辑上被分开的专用于特定线程的分区。根据一个实施例,每个单独的分区可以仅包含来自被该部分专用于的线程的指令。线程/处理器可划分资源140例如可以包括指令队列。当处于单线程模式时,线程/处理器可划分资源140的分区可以被组合来形成专用于一个线程的单个大分区。根据一个实施例,处理器100还可以包括复制的状态180。复制的状态180可以包括足以维护逻辑处理器环境的状态变量。使用复制的状态180,可以执行多个线程而不用为状态变量存储进行竞争。此外,可以为每个线程复制寄存器分配逻辑。本文档来自技高网...
【技术保护点】
一种方法,包括:监视与被争用的锁定相关联的节点;以及使要获取所述被争用的锁定的处理器休眠,直到一个事件发生。
【技术特征摘要】
...
【专利技术属性】
技术研发人员:佩尔哈马隆德,詹姆斯B克罗斯兰,阿尼尔阿加尔沃,夏夫南丹D考希克,
申请(专利权)人:英特尔公司,
类型:发明
国别省市:US[美国]
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。