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

用于事务存储器系统中的自适应线程调度的方法和设备技术方案

技术编号:11236374 阅读:69 留言:0更新日期:2015-04-01 09:59
本文描述用于事务存储器环境中的自适应线程调度的设备和方法。追踪随着时间的线程中的若干冲突。并且如果冲突超过阈值,可以延迟(自适应调度)线程以便避免竞争线程之间的冲突。此外,更复杂的版本可追踪在时期上由第二线程引起的第一线程内的事务异常中止的数量,以及在所述时期上由第一线程执行的事务的总数。根据所述追踪,确定第一线程关于第二线程的冲突比率。并且当第一线程将被调度时,如果第二线程正在运行并且冲突比率超过冲突比率阈值,则第一线程可以被延迟。

【技术实现步骤摘要】
【国外来华专利技术】【专利摘要】本文描述用于事务存储器环境中的自适应线程调度的设备和方法。追踪随着时间的线程中的若干冲突。并且如果冲突超过阈值,可以延迟(自适应调度)线程以便避免竞争线程之间的冲突。此外,更复杂的版本可追踪在时期上由第二线程引起的第一线程内的事务异常中止的数量,以及在所述时期上由第一线程执行的事务的总数。根据所述追踪,确定第一线程关于第二线程的冲突比率。并且当第一线程将被调度时,如果第二线程正在运行并且冲突比率超过冲突比率阈值,则第一线程可以被延迟。【专利说明】用于事务存储器系统中的自适应线程调度的方法、设备和 系统
本公开关于集成电路的领域,并且更具体地,关于处理器中的并行执行。
技术介绍
半导体处理和逻辑设计中的进展已经允许可出现在集成电路装置上的逻辑的量 中的增长。作为结果,计算机系统配置已经从系统中的单个或多个集成电路演进到出现在 单个集成电路上的多个核以及多个逻辑处理器。处理器或集成电路通常包括单个处理器管 芯,其中处理器管芯可包括任何数量的核或逻辑处理器。 集成电路上不断增加的数量的核以及逻辑处理器使得更多软件线程能够并发执 行。然而,可同时执行的软件线程的数量的增长已经造成同步软件线程中共享的数据的问 题。存取多个核或多个逻辑处理器系统中的共享数据的一个普遍的解决方案包括使用锁来 保证对共享数据的多个存取之间的互斥。然而,执行多个软件线程的不断增长的能力潜在 地导致错误争用和串行化的执行。 例如,考虑保存共享数据的哈希表。通过锁系统,程序员可以锁住整个哈希表,从 而允许一个线程存取整个哈希表。然而,其它线程的吞吐量和性能潜在地受到不利影响,因 为在释放锁之前,它们不能存取哈希表中的任何条目。任一种方式,在将这个简单的示例外 推到大规模程序中之后,显然锁争用的复杂性、串行化、精细粒度的同步以及死锁避免变成 程序员非常麻烦的负担。 另一种最近的数据同步技术包括使用事务存储器(TM)。通常事务执行包括原子地 执行一组多个微操作、操作或指令。在以上示例中,线程在哈希表内执行,并且它们的存储 器存取被监视/追踪。如果线程存取/更改相同条目,则可执行冲突解决来确保数据有效 性。一种类型的事务执行包括软件事务存储器(STM),其中存储器存取的追踪、冲突解决、异 常中止任务以及其它事务任务在软件中执行,通常没有硬件的支持。另一种类型的事务执 行包括硬件事务存储器(HTM)系统,其中包括软件以支持存取追踪、冲突解决和其它事务任 务。 如可以看到的,TM具有提供多个线程之间的更好性能的潜力。然而,如果由于线 程之间的数据冲突而产生太多事务异常中止,则性能可变成降级。换句话说,事务异常中止 的成本(即,将架构和存储器状态退回到事务之前的点)可能是耗时的。并且虽然一些异常 中止通常是实现可能的最高并行性能的一部分,太多异常中止可导致比不利用锁执行的受 益花费更多时间来异常中止事务。传统地,如果事务异常中止太多次,执行回复到基于锁的 执行。但是,仍没有尝试有效地调度线程以便最小化(或在一些情况下避免)并行线程之间 的冲突。 【专利附图】【附图说明】 本专利技术通过示例的方式示出并且不意图受附图限制。 图1图示了包括具有多个处理元件(2个核以及4个线程槽)的处理器的系统的逻 辑表示的实施例。 图2图示了软件事务存储器系统和支持其执行的硬件结构的逻辑表示的实施例。 图3图示了基于线程冲突自适应调度线程的模块的逻辑表示的实施例。 图4图示了基于线程冲突自适应调度线程的模块的逻辑表示的实施例。 图5图示了用于基于与当前运行的线程的冲突来延迟线程的调度的方法的流程 图的实施例。 图6图示了用于基于线程冲突自适应调度线程的方法的流程图的实施例。 图7图示了用于基于线程冲突自适应调度线程的方法的流程图的另一实施例。 【具体实施方式】 在以下描述中,阐述了许多特定细节,例如以下示例:特定类型的特定处理器配 置、特定硬件结构、特定架构和微架构细节、特定寄存器配置、特定冲突公式、特定类型的控 制软件等,以便提供对本专利技术的透彻理解。然而,对于本领域技术人员将显而易见的是不需 要采用这些特定细节来实践本专利技术。在其它实例中,公知的部件或方法,例如特定和备选的 处理器架构、用于所述算法的特定逻辑电路/代码、特定功率单元实现细节、解码器的特定 操作、指令的特定格式和处理器的其它特定操作细节未详细描述以便避免不必要地使本发 明变得模糊。 虽然参考处理器描述以下实施例,但是其它实施例也可适用于其它类型的集成电 路和逻辑装置。本文描述的实施例的类似技术和教导可应用于其它类型的电路或半导体装 置(其可受益于更高的管道吞吐量和改进的性能)。例如,公开的实施例不限于计算机系统。 并且还可用于其它装置,例如手持式装置和嵌入式应用。手持式装置的一些示例包括蜂窝 电话、互联网协议装置、数字照相机、个人数字助理(PDA)以及手持式PC。嵌入式应用包括 微控制器、数字信号处理器(DSP0、片上系统、网络计算机(NetPC)、机顶盒、网络集线器、广 域网(WAN)交换机或能够执行下面教导的功能和操作的任何其它系统。 本文描述的方法和装置用于自适应调度线程以最小化冲突,具体地,关于微处理 器(例如处理器100)的事务执行来讨论自适应线程调度。但是,并不如此限制本文描述的设 备和方法,因为它们可以结合备选处理器架构以及包括多个处理元件的任何装置来实现。 例如,自适应线程调度可以在其它类型的集成电路和逻辑装置中实现。或者它可以用于小 形状因素的装置、手持式装置或嵌入式应用中。另外,自适应线程调度还可实现用于调度与 事务执行无关的线程。作为示例,调度线程以便采用与如下描述的类型方式来最小化高速 缓存或其它共享资源中的系统失效。 参考图1,图示了包括多个核的处理器的实施例。处理器100包括任何处理器或处 理装置,例如微处理器、嵌入式处理器、数字信号处理器(DSP)、网络处理器、手持式处理器 或执行代码的其它装置。在一个实施例中,处理器100包括至少两个核--核101和102, 其可包括不对称核或对称核(图示的实施例)。然而,处理器100可包括可以是对称或不对 称的任何数量的处理元件。 在一个实施例中,处理元件指支持软件线程的硬件或逻辑。硬件处理元件的示例 包括:线程单元、线程槽、线程、处理单元、上下文、上下文单元、逻辑处理器、硬件线程、核和 /或任何其它元件,其能够保存处理器的状态,例如执行状态或架构状态。换句话说,在一 个实施例中,处理元件指能够与代码独立关联的任何硬件,所述代码例如软件线程、操作系 统、应用或其它代码。物理处理器通常指集成电路,其潜在地包括任何数量的其它树立元 件,例如核或硬件线程。 核通常指位于能够保持独立架构状态的集成电路上的逻辑,其中每个独立保持的 架构状态与至少一些专用执行资源关联。与核相比,硬件线程通常指位于能够保持独立架 构状态的集成电路上的逻辑,其中独立保持的架构状态共享对执行资源的存取。如可以看 到的,当某些资源被共享而其它资源专用于架构状态时,硬件线程与核的命名之间的线重 叠。但是,核与硬件线程经常由操作系统视为独立的逻辑处理器,其中本文档来自技高网...

【技术保护点】
一种设备,包括:冲突模块,适于确定第一线程与第二线程的冲突率太高;以及线程调度模块,适于:确定在调度所述第一线程之前所述第二线程是否正在运行,并且响应于所述冲突模块确定所述第一线程与所述第二线程的所述冲突率太高以及所述线程调度模块确定所述第二线程正在运行而延迟所述第一线程的调度。

【技术特征摘要】
【国外来华专利技术】...

【专利技术属性】
技术研发人员:BT路易斯B萨哈
申请(专利权)人:英特尔公司
类型:发明
国别省市:美国;US

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

1