用于SMT处理器上的CPI调度的系统和方法技术方案

技术编号:2864555 阅读:189 留言:0更新日期:2012-04-11 18:40
本发明专利技术提供了一种用于在同时多线程(SMT)处理器环境中通过计算性能度量,诸如当两个线程运行在该SMT处理器上时发生的CPI,来识别兼容的线程的系统和方法。确定当两个线程运行在所述SMT处理器上时所获得的CPI。如果所获得的CPI好于一个兼容性阈值,则记录指示兼容性的信息。当一个线程将要结束时,调度器在将要结束的线程所属的运行队列内寻找并调度另一个线程。调度器识别这样的线程:该线程(1)与仍然运行在SMT处理器上的线程(即,不是将要结束的线程)兼容,并且(2)准备好了执行。不断地更新CPI数据,从而不断地识别出与另一线程兼容的线程。

【技术实现步骤摘要】

本专利技术一般地涉及用于在SMT处理器上调度线程的系统和方法。更具体地,本专利技术涉及为了进行SMT调度,使用一种度量以便确定相互兼容的处理线程的系统和方法。
技术介绍
现代计算机的基本结构包括有外围设备以便向外部世界传输信息和从外部世界接收信息;这种外围设备可以是键盘、显示器、磁带驱动器、耦合于网络的通信线路等。计算机的基础结构中还包括从外部世界接收、处理和向外部世界传递这些信息所需的硬件,包括总线、存储器单元、输入/输出(I/O)控制器、存储设备和至少一个中央处理单元(CPU)等。CPU是系统的大脑。它执行构成计算机程序的指令,并且指挥着其它系统组件的运行。从计算机硬件的立场上看,多数系统的操作方式基本上相同。处理器实际上快速地执行非常简单的操作,诸如算术、逻辑比较、和数据从一个位置到另一个位置的移动。指挥着计算机执行大量这种简单操作的程序给人以这样的幻觉,即计算机正在执行一些很复杂的操作。然而,用户所感觉到的计算机系统新的或增强的能力实际上可能是机器正在执行同样的简单功能,但是执行得更快得多。因此,对计算机系统的继续改进要求这些系统被做得还要更快。对计算机整体速度的一种度量,也称为吞吐量,是度量单位时间内所执行的操作的数目。从概念上讲,在所有可能的对系统速度的改进中最简单的是提高各种部件的时钟速度,特别是处理器的时钟速度。如果所有的部件都以快两倍的速度执行,但是在其他方面以完全相同的方式工作,则系统将用原来时间的一半执行给定的任务。几年以前由分立部件构成的计算机处理器,通过缩小尺寸并且减少部件的数目,执行速度明显地更快了;最终,整个处理器被封装在单个芯片上的一个集成电路上。尺寸的缩小使得提高处理器的时钟速度成为可能,并且因此提高了系统的速度。尽管由集成电路获得了巨大的速度提升,但是依然存在对更快的计算机系统的需求。硬件设计者通过更大的集成度、进一步减小电路的尺寸以及其它的技术可以获得速度的进一步提高。然而,设计者考虑到物理尺寸不可能无限地持续减小,而处理器时钟速度的不断提高也存在着限制。因此,已注意寻求其它方法进一步改进计算机系统的整体速度。在不改变时钟速度的情况下,通过使用多个处理器仍然可能提高系统的速度。封装在集成电路芯片上的单个处理器的适度的成本使得这是可行的。从处理器的使用通过将工作负载从主处理器转移到从处理器上极大地提高了系统的速度。例如,从处理器例行地执行重复的和单个特定目的的程序,诸如输入/输出设备通信和控制。还可以将多个CPU放置在单个计算机系统内,典型地放置在基于主机的系统内,该系统同时为多个用户提供服务。每个不同的处理器可以为不同的用户单独地执行不同的任务,因此提高了系统同时执行多个任务的整体速度。然而,提高单个任务诸如一个应用程序的执行速度更加困难。在多个CPU之间协调各个功能的执行并且传递各个功能的结果是一件很难处理的工作。对于从I/O处理器来说,这并不是如此困难,因为功能是已经预先定义的和有限的,而对于执行通用应用程序的多个CPU来说,协调这些功能就要困难得多,这部分地是因为,系统设计者事先不知道这些程序的细节。多数应用程序按着单一路径或由处理器所执行的步骤流执行。尽管有时可能将这个单一路径分解为多个并行的路径,进行这样处理的一种通用应用还在研究之中。一般地,将冗长的任务分解成较小的任务以便由多个处理器并行执行是由软件工程师逐个案例地编写代码来完成的。对于执行不一定是重复的或可预知的商务事务来说,这种专用方法尤其成问题。因此,虽然多处理器提高了整个系统的性能,但是仍然存在许多提高单个CPU的速度的理由。如果CPU时钟速度是给定的,则通过提高每个时钟周期内所执行的操作的平均数目,有可能进一步提高CPU的速度,即每秒执行的操作数目。一种用于高性能、单芯片微处理器的常见的体系结构是精简指令集计算机(RISC)结构,其特征在于一个经常使用的指令的小的、简化的集合以便快速执行,这些简单的操作如前面说明的被快速地执行。由于半导体技术的进步,RISC体系结构的目标已经成为开发具有在每个机器时钟周期内执行一条或多条指令的能力的处理器。另一个增加每个时钟周期所执行的操作的平均数目的方法是修改CPU内的硬件。这种吞吐量度量,即每条指令的时钟周期,通常被用于表示高性能处理器体系结构的特征。指令流水线和高速缓冲存储器是使得这种成就成为可能的计算机体系结构特征。流水线指令执行允许随后的指令在先前发出的指令完成之前就开始执行。高速缓冲存储器在更靠近处理器处存储频繁使用的和其它数据,并且在多数情况下允许继续执行指令,而不必等待主存储器的整个访问时间。还已经展示了某些改进,其中多个执行单元具有前瞻硬件,用于寻找指令以并行执行。对于在超标量系统中顺序和乱序地完成指令这两者,流水线在某些情况下将会停滞(stall)。依赖于先前发出的还没有完成的指令的结果的指令可能会使得流水线停滞。例如,在高速缓存中没有入/存储指令中所需的数据,即高速缓存未命中时,依赖于该装入/存储指令的指令不能被完成,直到在高速缓存中可以得到该数据时为止。特别是对涉及到大数据结构的计算而言,在高速缓存中维护持续执行所必需的请求数据,并且维持高命中率,即对该数据的请求次数与在高速缓存中准备好了该数据的次数的比,并不是容易的事。一次高速缓存未命中可以使得流水线停滞几个时钟周期,并且如果数据在多数情况下都不在,则存储器延迟的总量将是严重的。虽然用于主存储器的存储器装置正在变得更快,但是这种存储器芯片的速度和高端处理器的速度之间的差距正在变得越来越大。因此,当前高端处理器设计中的相当数量的执行时间花在了等待高速缓存未命中的解决上,并且这些存储器访问延迟占用了处理器执行时间的越来越多的部分。提高CPU内硬件效率的另一种技术是将一个处理任务分成被称为线程的可独立地执行的指令序列。这种技术与将较大的任务分成较小的任务以便由不同的处理器独立地执行有关,只是此处将由同一个处理器执行这些线程。然后当CPU出于任何原因不能继续处理或执行这些线程中的一个线程时,CPU切换到并且执行另一个线程。在计算机体系结构中定义的术语“多线程”与该术语在软件中的使用是不相同的,在软件中它的含义是将一个任务分割成多个相关的线程。在体系结构的定义中,这些线程可以是相互独立的。因此“硬件多线程”经常被用于区分该术语的这两种使用。硬件多线程的传统形式涉及为每个线程复制处理器寄存器。例如,对于实现了IBM公司所提供的商业名称为PowerPCTM的体系结构以执行多线程的处理器,该处理器必须维护N个状态以便运行N个线程。因此,下面的内容要被复制N次通用寄存器、浮点寄存器、条件寄存器、浮点状态和控制寄存器、计数寄存器、链接寄存器、异常寄存器、保存/恢复寄存器和专用寄存器。此外,可以复制专用的缓冲区诸如段后备缓冲区(segment lookasidebuffer),或者可以将线程号标记在每个缓冲区项上,并且否则,则必须被在每次线程转换时清仓每个缓冲区项。还有,某些分支预测机制,例如,相关性寄存器(correlation register)和返回堆栈也应该被复制。幸运的是,不需要复制处理器的某些较大的功能,诸如一级指令高速缓存(L1 I-cache)、一级数据高速缓存(L1 D-本文档来自技高网...

【技术保护点】
一种识别兼容的软件线程以便在SMT处理器上执行的、计算机实施的方法,该方法包括:识别一个时间间隔,在这个时间间隔内第一线程和第二线程两者都运行在SMT处理器上;获取在识别出的时间间隔内发生的性能值;基于所获取的性能值 ,确定第一线程是否与第二线程兼容;以及响应该确定操作,记录第一线程与第二线程的兼容性。

【技术特征摘要】
...

【专利技术属性】
技术研发人员:JM阿卡帕蒂A杜希D米歇尔MS斯里尼瓦斯
申请(专利权)人:国际商业机器公司
类型:发明
国别省市:US[美国]

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

1