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

用于调度线程的技术制造技术

技术编号:4124074 阅读:225 留言:0更新日期:2012-04-11 18:40
一种调度多个线程以供在处理器内执行的技术。更具体而言,一个实施例涉及基于处理资源的各种状态来使用各种条件或指令延迟或阻止处理器中的线程切换操作的技术。

【技术实现步骤摘要】

本专利技术的各实施例一般涉及信息处理领域。更具体而言,本专利技术的各实施例涉及 调度处理器中的多个指令线程的技术。
技术介绍
微处理器中的多线程操作涉及同时地或以从应用程序或操作系统的观点来看表 现为同时的方式来执行多个指令序列的技术。线程操作架构中的差异可包括调度线程的方 式或向各个线程分配处理资源的方式。例如,某些现有技术线程操作架构在将处理资源分 配给不同的线程之前,仅仅在特定时间量内将该处理资源分配给某一线程。例如,某些现有 技术架构可以实现将线程的执行“暂停”特定时间量的指令,并且该时间量可能不能在每次 使用该指令时改变,反而是固定的。在不考虑线程的瞬时处理需求或该线程所使用的处理资源的状态的情况下在固 定时间量内向线程分配处理资源可导致在完成某些重要的或者合理的操作之前切换线程。 此外,不顾处理状态或线程需求而切换线程可导致处理器性能的降级。除基于某一任意时间量切换线程之外,某些现有技术线程操作架构在特定一个或 一组事件时切换线程,而不管线程的需求或底层处理资源的状态。类似地,这些线程操作架 构可导致在次优的时间或频率切换线程,使得性能受损或功耗可能增加。附图说明本专利技术的实施例在各附图中是作为示例而非作为限制示出的,在附图中相同的附 图标记指代相同的元素,并且其中图1示出其中可以实现至少一个实施例的逻辑;图2示出其中可以使用本专利技术的至少一个实施例的处理器;图3示出其中可以使用本专利技术的至少一个实施例的共享总线计算机系统的框图;图4示出其中可以使用本专利技术的至少一个实施例的点对点互连计算机系统的框 图;图5是示出可以在一个实施例中使用的操作的流程图。 具体实施例方式本专利技术的各实施例涉及计算机系统和信息处理。更具体而言,本专利技术的各实施例 涉及至少部分地基于处理资源的各状态条件来延迟或阻止不同的线程访问处理资源的技 术。在一个实施例中,例如指令、子指令(例如“微操作(UOP) ”)或控制信号(此后一般被 称为“指令”)可被执行,以使得线程调度逻辑延迟从正在执行的一个线程到另一个的切换, 直到满足某一条件为止,如加载了数据或已经过去了多个时钟周期等。在另一实施例中,可 以执行一指令,该指令使得线程调度器不调度线程中的后续指令来执行,直到返回了该后 续指令所依赖的或者使用的预取数据为止。此外,在一个实施例中,以上指令不调用处理该线程的处理资源(例如处理“流水线”)的清除,而相反允许处理资源保持状态信息,以便在 满足各种条件之后经延迟的或停止的线程可以恢复执行。本专利技术的各实施例通过允许各种各样的和可变数量的条件来控制是否要延迟、切 换或者清除线程,来允许比现有技术线程调度技术更智能的线程切换。通过允许多个可变 条件基于任何特定时间的处理条件来确定是否要调度或者切换线程,本专利技术的各实施例可 以在只有切换线程的更低的系统功耗的同时改进处理性能,并且因此导致与其相关联的状 态保存/恢复开销,从处理观点来看时这样做是有意义的。不同于基于固定的或刚性的某 组准则或定时来切换线程的现有技术线程调度技术,本专利技术的各实施例允许线程切换根据 变化的系统和处理条件、根据考虑给定时刻的系统和处理资源参数和条件的各种可变算法 来发生。在一些实施例中,此处描述的线程调度技术至少部分地基于处理资源中的各种微 架构条件来阻止或延迟线程切换,其中各线程在以下时刻执行,如在处理未对齐的数据操 作数期间,在处理锁定的或原子操作时,在处理要求多个或复合操作(加载_>ALU操作、加 载->ALU->存储操作等)的指令时,在处理使用微码操作序列的指令时,或在解码包含特定 前缀、操作数大小、地址大小、锁、重复操作、或段超越操作的指令时。各实施例还可以延迟 或阻止作为其它微架构条件的结果的线程切换。在一些实施例中,取决于特定线程的处理 状态、该线程的执行阶段等,一个或多个条件可以选择性地使得线程调度器从处理器清除 或不清除该线程。图1示出其中可以实现至少一个实施例的逻辑。图1包括预取缓冲区组101,其 存储从高速缓存或其它存储器(未示出)中取到对应于每一线程的各缓冲区位置中的指 令。在一个实施例中,调度逻辑100支持四个线程的调度,并且预取缓冲区组包括每一线程 至少一个缓冲区条目以存储所取的每一线程的指令。在其它实施例中,预取缓冲区组包括 存储每一线程的多个指令的多个缓冲区条目。所取的每一线程的指令可以沿互连TO、Tl、 T2和T3来传递到多路复用器(mux) 105,其可以基于来自线程选取器逻辑110的选择线选 择各指令中的对应于所选线程的一个。线程选取器逻辑可以基于线程阻塞指示符115和/ 或解码器120所提供的、所取的指令的经解码的指示或表示来确定选择哪一线程,并且因 此确定执行该线程的哪些指令。在一个实施例中,解码器向线程选取器逻辑指示指令在何时被解码并且何时可以 选择来自不同的线程的新指令。在一个实施例中,如果线程阻塞信号未置为有效(assert), 并且解码器向线程选取器逻辑指示所选择的当前指令已被解码,则线程选取器逻辑可以选 择来自不同的线程的指令。在一个实施例中,线程选取器逻辑以“循环”的方式选择来自线 程的指令,以使得以确定的方式来选择各线程(例如T0、T1、T2、T3)。在一个实施例中,线程 选取器逻辑可以根据某一算法来选择线程,使得线程被选择的次序基于其它条件而改变。在一个实施例中,线程选取器逻辑通过向多路复用器将信号置为有效来选择特定 线程的指令,这允许线程中的指令由解码逻辑解码并由执行逻辑(未示出)执行。线程选 取器逻辑可以实现用于选择从特定线程中选择哪一指令的各种算法,包括静态算法,如顺 序或“循环”选择算法。然而,在一个实施例中,线程选取逻辑接收指示该线程是否应被阻 塞/延迟等或其是否应当继续下去的线程阻塞信号。在一个实施例中,线程阻塞信号可以 超越可由线程选取器实现的用于选择接下来要选取哪一线程的任何算法。例如,在一个实施例中,线程阻塞信号的置为有效阻止顺序或“循环”的次序中的下一线程被选择。在一个实施例中,线程阻塞信号可以出于各种原因而被置为有效,包括延迟指 令或“vprefetch.misshint”指令的执行。例如,响应于接收、解码、或处理vprefetch. misshint指令或类似指令,线程阻塞控制逻辑(未示出)可以将线程阻塞信号置为有效,以 阻止线程选取器逻辑选择线程,直到从存储器分层结构中取出了 vprefetch. misshint指 令所请求的数据为止。一旦取出了数据,线程阻塞信号可被置为无效以允许具有等待所取 的数据的指令的线程被选择和解码。在一个实施例中,在取数据(例如从存储器或2级高速缓存到1级高速缓存)的指 令距使用它的指令(例如“加载”指令)特定“距离”(程序指令的数量)的情况下,vpretch. misshint指令或类似的指令对开发者而言可能是有用的。在这些情况下,可以阻止其它线 程利用硬件,直到数据被取出并且可以使用为止,因为利用该数据的线程在满足消费者指 令(使用所取的数据的指令)之前不会将处理资源重新租用给其它线程。在一个实施例中, vprefetch. misshint通过使得包含消费者指令的线程被“跳过”或不被调度,来阻止消费者 指令阻止其它线程本文档来自技高网...

【技术保护点】
一种装置,包括:至少部分地基于第二指令是否已被执行来选择对应于多个线程中的一个线程的第一指令的线程选择逻辑,其中所述第二指令是从包括vprefetch.misshint指令和线程延迟指令的一组指令中选择的。

【技术特征摘要】

【专利技术属性】
技术研发人员:E格罗科斯基E斯普林格K加纳帕锡C陈J劳洛D卡尔曼T福塞斯M阿布拉什
申请(专利权)人:英特尔公司
类型:发明
国别省市:US[美国]

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

1