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

处理器和挂起线程的方法技术

技术编号:2864024 阅读:224 留言:0更新日期:2012-04-11 18:40
本发明专利技术公开了用于在多线程处理器中挂起线程的执行的技术。在一个实施例中,处理器包括可以在多个线程之间分区的资源。处理器逻辑在执行第一线程时接收指令,并响应于该指令而释放部分分区资源以被其他线程使用。(*该技术在2022年保护过期,可自由使用*)

【技术实现步骤摘要】

本公开涉及处理器领域。更具体而言,本公开涉及多线程处理器以及用于在多线程处理器中暂时挂起对一个线程的处理的技术。
技术介绍
多线程处理器能够同时处理多个不同指令序列。驱动在单个处理器中多个指令流的执行的主要推动因素,是对处理器利用率所得到的改善。高并行体系结构已经发展了多年,但经常难以从单个指令流中提取出足够的并行性,以利用多个执行单元。并发多线程处理器允许多个指令流在不同执行资源中同时执行,以试图更好地利用这些资源。对于遇到高等待时间延迟或者经常等待事件发生的程序,多线程可能尤其有利。当一个线程在等待高等待时间任务完成或者在等待特定事件时,可以处理不同的线程。已经提出了许多不同技术来控制处理器何时在线程之间切换。例如,一些处理器检测诸如L2高速缓存未命中(cache miss)之类的特长的等待时间事件,并响应于这些被检测的长的等待时间事件而切换线程。虽然在某些环境中对这种长的等待时间事件的检测可能是有效的,但这种事件检测不太可能检测出所有这样的点,即此时切换线程可能是高效的。尤其是,基于事件的线程切换可能检测不出程序中编程者有意延迟的点。实际上,通常编程者处于最佳的位置来确定何时切换线程是高效的,以避免浪费的螺旋等待循环(spin-wait loop)或其他消耗资源的延迟技术。这样,允许程序控制线程切换可能使得程序能够更高效地工作。影响线程选择的显式程序指令可能对此有利。例如,在2000年1月21日递交的美国专利申请No.09/489,130中描述了“暂停”指令。暂停指令允许暂时挂起线程的执行,或者直到达到计数值,或者直到指令已通过处理器流水线。但是,在以上引用的申请中所描述的暂停指令,并不指定要释放线程可分区的资源。不同的技术可能是有用的,以允许编程者更高效地利用多线程处理器的资源。附图说明通过附图中的示例而非限制来图示本专利技术。图1图示了多线程处理器的一个实施例,该处理器具有逻辑,其响应于指令而挂起线程并释放与该线程相关联的资源。图2是根据一个实施例图示图1的多线程处理器的操作的流程图。图3a图示了用于指定多线程处理器可以被挂起的时间量的各种选择。图3b图示了这样的流程图,其中可以通过经过所选量的时间或者发生事件而退出被挂起的状态。图4图示了根据一个实施例的资源分区、共享和复制。图5图示了用于模拟、仿真和制造使用所公开技术的设计的各种设计表示或格式。具体实施例方式以下说明描述了用于在多线程处理器中挂起线程执行的技术。在以下说明中,给出了大量的具体细节以提供对本专利技术更充分的理解,例如逻辑实现、操作码、指定操作数的装置、资源分区/共享/复制实现、系统元件的类型和相互关系、以及逻辑分区/集成的选择。但是,本领域的技术人员将认识到,没有这些具体细节也可以实施本专利技术。在另外一些例子里,没有详细示出控制结构、门级电路和完整的软件指令序列,以免模糊本专利技术。本领域普通技术人员阅读所包含的说明后,不进行必要实验就能够实现合适的功能。所公开的技术可以允许编程者在一个线程中实现挂起机制,同时让其他线程利用处理资源。这样,之前专用于被挂起线程的分区可以在该线程被挂起的时候被释放。这些和/或其他被公开的技术可能有利地提高整个处理器的吞吐量。图1图示了多线程处理器100的一个实施例,其具有挂起逻辑110,以允许响应于指令而挂起线程。在一些实施例中可以将“处理器”形成为单个集成电路。在其他实施例中,多个集成电路可以一起形成处理器,在另外一些实施例中,硬件和软件例程(例如二进制转换例程)可以一起形成处理器。挂起逻辑可以是微代码、各种形式的控制逻辑、或所描述功能的其他实现,可能包括转换、软件等等。处理器100被耦合到存储器195,以允许处理器从存储器195检索指令并执行这些指令。存储器和处理器可以以以下方式来耦合点对点的方式、经由总线桥、经由存储器控制器、或经由其他已知或可用技术。存储器195存储各种程序线程,包括第一线程196和第二线程198。第一线程196包括“挂起”指令。在图1的实施例中,总线/存储器控制器120向前端130提供用于执行的指令。前端130根据指令指针170来指示从各个线程中检索指令。指令指针逻辑被复制以支持多个线程。前端130将指令输送到线程可分区资源140中以进一步处理。线程可分区资源140包括逻辑上分离的分区,当处理器100中有多个线程是活动的时,这些分区专用于特定线程。在一个实施例中,每个单独的分区仅包含来自该分区所专用于的线程的指令。线程可分区资源140可以包括例如指令队列。当在单线程模式时,线程可分区资源140的分区可以被组合形成专用于这一个线程的单个大分区。处理器100还包括复制状态180。复制状态180包括足以维持逻辑处理器的上下文的状态变量。使用复制状态180,可以执行多个线程而不会有状态变量存储的竞争。此外,可以对每个线程都复制寄存器分配逻辑。被复制的状态相关逻辑可以使用恰当的资源分区进行工作,以准备执行进入的指令。线程可分区资源140将指令传递到共享资源150。共享资源150不考虑其来源地按指令来操作。例如,调度器和执行单元可以是对线程透明的共享资源。线程可分区资源140可以通过以公平的方式在线程之间变换,而将来自多个线程的指令输送给共享资源150,所述公平方式使每个活动线程都连续地进行。这样,共享资源可以在恰当状态上执行所提供的指令,而不必考虑线程混和。共享资源150后可以接着另一组线程可分区资源160。线程可分区资源160可以包括收回的资源,例如重排缓冲器等等。因此,线程可分区资源160可以确保来自每个线程的指令的执行正确结束,并确保恰当地更新该线程的恰当状态。如前所述,可能需要向编程者提供这样一种实现延迟的技术,其不要求持续轮询存储器单元,甚或不必执行指令循环。这样,图1的处理器100包括挂起逻辑110。挂起逻辑110可以被编程来提供用于挂起线程的特定持续时间,或者来提供固定的延迟。挂起逻辑110包括流水线刷新逻辑112和分区/退火逻辑114。可以参考图2的流程图来进一步解释图1实施例的操作。在一个实施例中,处理器100的指令集包括使线程挂起的“挂起”操作码(指令)。在框200中,接收作为第一线程(T1)的指令序列的一部分的“挂起”操作码。如框210所示,挂起线程T1的执行。线程挂起逻辑110包括流水线刷新逻辑112,如框220所示,流水线刷新逻辑112清空处理器流水线以清除所有指令。在一个实施例中,如框230所示,一旦流水线被清空,分区/退火逻辑114就释放与线程T1相关联的任何被分区的独占资源,以被其他线程使用。这些被释放的资源被退火来形成一组更大的资源,以由其余的活动线程来利用。如框235所示,在线程T1被挂起期间可以执行其他线程(假定有指令可用于执行)。这样,处理器资源可以继续被使用,基本不受线程T1的干扰。当线程T1有很少的工作或没有有用的工作要完成时,或者当程序判定完成线程T1中的任务不是优先的时,将处理器资源更充分地用于其他线程,可以有利地加快对其他有用的执行流的处理。一般而言,当线程T1被挂起时,处理器进入取决于实现的状态,该状态允许其他线程更充分地利用处理器资源。在一些实施例中,处理器可以释放专用于T1的可分区资源140和160的一些分区或所有本文档来自技高网...

【技术保护点】
一种处理器,包括:多个线程可分区资源,其每个都可在多个线程之间被分区;逻辑,所述逻辑从所述多个线程中的第一线程接收程序指令,并且响应于所述程序指令而使所述处理器挂起所述第一线程的执行,并释放所述多个线程可分区资源中与所述第一 线程相关联的部分,以被所述多个线程中的其他线程使用。

【技术特征摘要】
US 2001-12-31 10/039,7771.一种处理器,包括多个线程可分区资源,其每个都可在多个线程之间被分区;逻辑,所述逻辑从所述多个线程中的第一线程接收程序指令,并且响应于所述程序指令而使所述处理器挂起所述第一线程的执行,并释放所述多个线程可分区资源中与所述第一线程相关联的部分,以被所述多个线程中的其他线程使用。2.如权利要求1所述的处理器,其中所述程序指令是挂起指令。3.如权利要求1所述的处理器,其中所述逻辑使所述处理器将所述第一线程挂起所选量的时间。4.如权利要求3所述的处理器,其中所述所选量的时间是固定量的时间。5.如权利要求3所述的处理器,其中当所述第一线程被挂起的时候,所述处理器将执行来自第二线程的指令。6.如权利要求3所述的处理器,其中所述所选量的时间可由从以下技术所组成的组中选择出的至少一种技术来编程与所述程序指令一起提供操作数;烧断熔丝来设置所述所选量;在解码所述程序指令之前在存储单元中编程所述所选量;在微代码中设置所述所选量。7.如权利要求1所述的处理器,其中所述多个线程可分区资源包括指令队列;寄存器池。8.如权利要求7所述的处理器,还包括多个共享资源,所述多个共享资源包括多个执行单元;高速缓存;调度器多个复制资源,所述多个复制资源包括多个处理器状态变量;指令指针;寄存器重命名逻辑。9.如权利要求8所述的处理器,其中所述多个线程可分区资源还包括多个重排缓冲器;多个存储缓冲器条目。10.如权利要求1所述的处理器,其中所述逻辑还使所述处理器响应于事件而恢复所述第一线程的执行。11.如权利要求3所述的处理器,其中所述逻辑还使得所述处理器忽略事件,直到已经经过了所述所选量的时间。12.如权利要求1所述的处理器,其中所述处理器以计算机可读介质上的数字格式来实现。13.一种方法,包括在第一线程的执行中接收第一操作码;响应于所述第一操作码而将所述第一线程挂起所选量的时间;响应于所述第一操作码而释放多个线程可分区资源。14.如权利要求13所述的方法,其中所述释放步骤包括将所述多个线程可分区资源退火,以形成可由更少线程使用的更大结构。15.如权利要求14所述的方法,其中所述释放所述多个线程可分区资源的...

【专利技术属性】
技术研发人员:黛博拉马尔斯科特罗杰斯戴维希尔夏夫南丹考希克詹姆斯克罗斯兰戴维库法提
申请(专利权)人:英特尔公司
类型:发明
国别省市:US[美国]

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

1