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

利用同步开销以改善多线程性能的机制制造技术

技术编号:8413011 阅读:142 留言:0更新日期:2013-03-14 02:06
可启动其它线程的、用于可编程事件驱动放弃机制的方法、设备、及程序工具。在一个实施例中,设备包括执行多个指令的执行资源以及检测和同步对象相关的长延迟事件的事件检测器。该事件检测器可以响应于和该同步对象相关的长延迟事件而引发第一线程切换。该设备还包括一旋转检测器,该检测器检测该同步对象是否为受争夺的同步对象。该旋转检测器可响应于检测到受争夺的同步对象而引发第二线程切换,从而启动旋转检测响应。

【技术实现步骤摘要】

本专利技术涉及处理指令序列等的处理设备和系统的领域以及编程该设备和/或系统的特定指令序列。一些实施例涉及监视和/或响应这种处理设备中执行资源内的条件或事件。
技术介绍
目前使用各种机制改变处理系统内的控制流(即所遵循的处理路径或指令序列)。例如,程序序列内的跳转指令清楚明确地导致跳转到新地址。该跳转指令为控制流的明确变化的一个示例,因为该指令引导处理器跳转到一个位置并在该点继续执行。传统的跳转指令是“精确的”(或同步),这是因为发生该跳转是执行跳转指令的直接结果。控制流改变的另一个传统示例为中断。中断可以是向诸如处理器的设备提供的外 部信号。处理器的响应为跳转到中断处理程序(handler),该处理程序为处理特殊中断发送的事件的程序。中断通常也是相对精确的,这是因为是由处理器在接收到该中断后在特定的时间窗口内对其进行识别并产生响应。特别地,在内部接收到中断之后,该中断通常在下一个指令边界才起作用。在一些情形中,只允许操作系统或工作于高优先级别的其它软件屏蔽中断,因此用户程序没有机会启动或者禁止这些控制流改变事件。控制流改变的另一个传统示例出现于对异常的响应。异常通常反映预定义的架构条件,该条件为例如数学指令满足特定标准(非正规、下溢、溢出、非数字等)的结果。例如通过设置控制寄存器中的位,可以屏蔽一些异常。如果出现异常且未被屏蔽,则调用异常处理程序以处理该异常。改变处理器的控制流的另一个技术为使用断点。通常在调试时使用断点。可将特定的指令地址编程到断点寄存器。在断点启动且到达目标地址时,该处理器采取各种措施(而不是照常继续该程序)。断点允许单步执行程序等。多线程是一种通过多个不同的线程使用处理器硬件的技术。多线程处理器可由于各种原因而在各线程之间切换。例如,处理器具有在可用线程之间自动切换的算法。其它处理器使用基于事件切换的多线程(SoEMT),由此诸如缓存缺失的特定事件会引起线程切换。线程切换可以被看作是一种控制流改变,这是因为处理器切换其所执行的指令序列或指令流。在一个现有技术参考中,详细描述了一种静止指令(见美国专利号No. 6,493,741)。在一个示例中,静止指令停止一个线程内的进程,直到计时器到期或者出现向存储器位置进行存储器写入为止。因此,诸如静止指令的指令本身可触发包括该静止指令的线程的进程暂时停止并切换到另一个线程。附图说明在所附各图中以示例的方式而非限制的方式阐述本专利技术。图I阐述了可以检测和响应执行资源(execution resource)的处理条件的系统的实施例。图2阐述了图I的系统的一个实施例的工作流程图。图3阐述了图I的系统的另一个实施例的工作流程图。图4阐述了能够响应多个不同性能事件(performance event)和/或复合性能事件的系统的另一个实施例。图5a阐述了可识别复合事件的监视器的一个实施例。图5b阐述了监视器的另一个实施例。图5c阐述了监视器的另一个实施例。图6阐述了根据一个实施例的,响应程序可定义的触发器而启动辅助线程 (helper thread)的用于用户程序执行的流程图。图7阐述了根据一个实施例的细化监视器设置的过程的流程图。图8阐述了根据一个实施例的更新软件的过程的流程图。图9a阐述了启动多个嵌套的辅助线程以辅助处理程序的流程图。图9b阐述了支持虚拟线程的一个实施例的线程切换逻辑。图IOa阐述了上下文相关的事件图解矢量和屏蔽(mask)实现的一个实施例。图IOb阐述了上下文相关的事件图解矢量和屏蔽实现的一个实施例。图11阐述了基于监视器事件而执行线程切换的多线程处理器的一个实施例。图12阐述了对同步对象具有事件检测和处理能力的系统的一个实施例。图13阐述了根据多个实施例的同步事件处理的流程图。图14阐述了基于事件处理程序线程的锁剖析(lock profiling)的线程调度改进的流程图。具体实施例方式下述阐述了可启动其它线程的可编程事件驱动的放弃(yield)机制的实施例。在下述描述中,列出了诸如处理器类型、微架构条件、事件、启动机制等的许多具体细节,其目的是提供对本专利技术的更彻底的了解。然而,本领域技术人员将会了解到,不使用这些具体细节也可以实施本专利技术。此外,并未详细示出一些众所周知的结构,电路等,目的是避免不必要地使本专利技术变得不明确。在一些实施例中,所公开的技术允许在执行程序时,该程序能够积极地监视并响应执行该程序的执行资源的条件。事实上,这些实施例可包括实时的执行资源工作条件反馈以改善性能。如果执行资源遇到执行延迟条件,可中断该程序执行以做调整。在一些实施例中,可启动一处理程序,该处理程序可产生辅助线程以试图改善原始线程的执行。在其它实施例中,可通过切换到非辅助线程的另一个程序线程而实现中断。这些及其它实施例在某些情况下可有利地改善处理能力和/或优化以适于特殊硬件。参考图1,描述可以检测并响应执行资源的处理条件的系统的一个实施例。在图I的实施例中,执行资源105、监视器110、和启动逻辑120形成能够执行指令的处理器100的一部分。在某些实施例中该执行资源包括可集成到单个元件或集成电路的硬件资源。然而,执行资源可包括软件或固件资源或者硬件及软件和/或可用于执行程序指令的固件的任意组合。例如,固件可用作提取层的一部分或者可为处理硬件增加功能,软件亦可如此。软件还可以用于仿真指令集的一部分或全部,或者以其它方式辅助处理。该处理器为可执行指令的任何不同类型的处理器。例如,该处理器可以是通用处理器,例如Pentium 处理器家族或Itanium 处理器家族或来自Intel公司的其它处理器家族中的一种处理器,或者是来自其它公司的处理器。因此,该处理器可以是精简指令集计算(RISC)处理器、复杂指令集计算(CISC)处理器、超长指令字(VLIW)处理器、或者任何混合或备选处理器类型。此外,例如网络或通信处理器、协同处理器、嵌入处理器、压缩引擎、图像处理器等的专用处理器可以使用这里公开的技术。由于集成的趋势仍在继续且处理器变得更加复杂,对内部性能指示器进行监视并作出反应的必要性进一步增大,因此使得更加需要目前所公开的技术。然而,由于该
内的技术进展快速,难以预见所公 开的技术的所有应用,尽管其可以广泛应用于可执行程序序列的复杂硬件。如图I所示,处理器100耦合到诸如存储器的存储介质150。存储介质150可以为具有各种层次水平的存储器子系统,其包括但不限于各种水平的缓冲存储器、诸如动态随机访问存储器等的系统存储器、以及诸如闪存(例如存储棒等)、磁盘或光盘的非易失性存储器。如图所示,该存储介质存储程序160以及处理程序和/或诸如辅助线程170的其它线程。为了允许监视器监视预期事件,监视器110可耦合到执行资源的各个部分以检测具体条件或者被告知特定的微架构事件。信号线可连接到监视器110,或者该监视器可以策略性地和相关资源放置或集成在一起。该监视器可包括各种可编程逻辑或软件或固件元件或者可以定制设计成检测具体条件。该监视器追踪各种事件或条件,且如果出现该监视器应检测的事件或条件,则向执行资源105发出信号以中断正常的控制流,否则程序将按该正常控制流执行。如图I所示,该中断会导致调用事件处理程序或出现线程切换。特殊可检测条件的一个示例为缓冲存本文档来自技高网
...

【技术保护点】
一种设备,包括:能够同时执行多个线程的执行资源;检测与同步对象相关联的缓存缺失事件的事件检测器硬件逻辑,所述事件检测器引发第一线程切换;以及检测同步对象为受争夺的同步对象的旋转检测器,所述旋转检测器引发第二线程切换。

【技术特征摘要】
...

【专利技术属性】
技术研发人员:N英赖特J科林斯P王H王X田J沈G肖弗P哈马伦德
申请(专利权)人:英特尔公司
类型:发明
国别省市:

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

1