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

用于暂停处理器中执行过程的方法和装置制造方法及图纸

技术编号:2877202 阅读:130 留言:0更新日期:2012-04-11 18:40
描述用于暂停来自一个线程的指令执行的方法和装置。在一种实施方案中,暂停指令作为两种指令或微指令来实现:SET指令和READ指令。当接收到用于指定线程的SET标志时,SET指令在存储器中设置一Bit标志表示已经暂停对该线程的执行。SET指令被放在流水线中以便执行。然而用于那个线程的READ指令被阻止进入流水线直到SET指令被执行且完成(由清除Bit标志引起)。一旦Bit标志被清除,READ指令被放在流水线中以便执行。在暂停一个线程的处理的时间中,其他线程的执行可能继续。(*该技术在2021年保护过期,可自由使用*)

【技术实现步骤摘要】

本专利技术涉及用于暂停在一处理器等中执行过程的方法和装置。更具体而言,本专利技术的实施方案涉及控制暂停多个进程中的一个的执行过程,以便将优先权给另一个进程或省电。
技术介绍
如本领域所公知的,处理器包括许多子模块,每一子模块适用于执行特定任务。在一公知处理器中,这些子模块包括如下指令高速缓冲存储器,取指令单元用于从指令高速缓冲存储器中取适当指令;译码逻辑,将指令译码成最后或中间格式;微操作逻辑,将中间指令转换成用于执行的最后格式;以及一执行单元,执行最后格式指令(在一些例子中来自译码逻辑,而在另外的例子中来自微操作逻辑)。在时钟的操作下,处理器系统的执行单元执行提交给它的连续指令。如本领域所公知的,指令可提供给执行单元,该执行单元对处理器系统来说不产生重大的工作作用。例如,在IntelX86处理器系统中,NOP(空操作)指令使执行单元不对“指令周期”采取行动。在此所使用的指令周期是处理器所需要的用于执行一指令的一组处理器时钟周期。实际效果是,NOP指令阻塞处理器一个指令周期。NOP指令的局限在于它使处理器阻塞一个时间单位。因此,使用一个或多个NOP指令,处理器仅能被阻塞等于总的许多指令周期的一段时间。NOP指令的另一个局限是处理器的执行单元不能进行任何其他指令执行。例如,由执行单元执行的指令可被细分为两个或多个“线程”。每一线程是用来实现一指定任务的一组指令。因此,如果其中一个线程包括一NOP指令,该指令由执行单元执行并且阻塞整个处理器(即在NOP指令执行期间不能完成其他线程的执行)。由上可知,需要一种避免这些局限的暂停处理器执行的改进的方法和装置。专利技术概述根据本专利技术的实施方案,一种暂停执行线程中指令的方法被提出。首先,确定用于第一线程的下一指令是否是第一种类型的指令。如果是,第一线程的指令将不被处理而来自第二线程的指令能被处理。附图简述附图说明图1是采用本专利技术附加实施方案处理器中一部分的方框图。图2是根据本专利技术附加实施方案,表示实施方案方法的流程图。图3是采用本专利技术附加实施方案的处理器的一部分的方框图。图4是根据本专利技术附加实施方案,表示附加实施方案方法的流程图。专利技术详述参考图1,示出了采用本专利技术的实施方案的处理器系统10中一部分的例子。在该实施方案中,处理器是多线程处理器,其中执行理论上被细分为两个或多个逻辑处理器。在此,术语“线程”指的是指令码序列。例如,在电视电话应用中,处理器可被要求执行代码来处理视频图像数据以及音频数据。而分开的代码序列,其执行被指定来逐个处理这些数据类型。因此,第一线程可包括用于视频图像数据处理的指令而第二线程可用于音频数据处理的指令。在该例中,有一个单独的执行单元(无次序的执行单元31),每次可执行一个指令。然而,处理器系统10可被视为两个逻辑处理器,第一逻辑处理器执行来自第一线程(线程0)的指令以及第二逻辑处理器执行来自第二线程(线程1)的指令。在本处理器系统10的实施方案中,指令由取指令单元11抽取并提供给队列13并被存储为线程0队列或线程1队列的一部分。本领域的技术人员能理解在处理器系统10中,使用的队列可被用来存储多于两个线程。来自两个线程的指令被提供给复用器(MUX)15,以及控制逻辑17,用来控制是线程0还是线程1的指令被提供给译码单元21。译码单元21可将指令转换成两个或多个微指令并将该指令提供给队列23。队列23的输出被提供给MUX,基于控制逻辑26的操作,MUX将来自线程0或线程1的指令提供给重命名/分配单元27。分配单元可依次将指令提供给队列28。基于进度控制逻辑30的操作MUX29,在线程0队列和线程1队列间选择。而进度控制逻辑30也接收与MUX相同的输入。MUX29的输出被提供给执行指令的执行单元31。然后指令被放在队列33中。队列33的输出被提供给MUX34。基于控制逻辑35的操作,MUX34将来自线程0和线程1的指令发送给完成(retire)单元36。根据本专利技术的第一实施方案,暂停指令被用来挂起线程的指令的处理。在图1例中,暂停指令由取指令单元11抽取并存储在线程0队列中。线程0队列的输出经MUX15被提供给译码单元21,译码单元21将暂停指令译码成两个微指令SET指令和READ指令。在译码单元21,SET指令使一值(如位标志19)存储在存储器中,该值表示用于特定线程(在该实例中为线程0)的SET指令已经被接收。然后SET指令被送入“流水线”中。在该实施方案中,“流水线”包括重命名/分配单元27以及执行单元31以及相关队列。执行单元31不对SET指令采取行动(即将其视为已知的NOP指令)。只要SET指令由完成单元26完成,标志19被复位。在译码单元21,READ指令不被放入流水线中直到用于那个标志的标志19被复位。因此,如果在队列13中有来自线程1的指令,这些指令能被译码单元21译码并放入流水线中。因此,取决于队列23、28和33中线程1指令的数量将影响线程0的执行将被暂停多久(即,在流水线中线程1指令的数量越多,SET指令到达完成(retire)单元36的时间越长)。只要标志19被复位,READ指令被发送到队列23并最终被发送到执行单元31。使用SET指令,执行单元不采取行动,如同NOP指令一样。在本专利技术的实施方案,译码单元21从线程0至线程1交替进行指令译码。在用于线程0的SET指令后,例如,译码单元在译码线程1的指令和检验标志19的值交替执行,直到它被复位。在该实施方案中译码单元21的操作的例子如图2所示。译码后,在块40中,下一线程的指令被确定。在判定块41中,判定该指令是否是SET指令。如果是,控制权传送到块43,在该块处,设置存储器中的位标志。在块47中,SET指令被放入流水线中用于执行单元。然后,控制权返回到块40来确定下一线程的下一指令。如果指令不是SET指令,控制权传送到判定块45来确定该指令是否是READ指令。如果是,控制权传送到判定块49以确定存储器中适当的位标志是否被设置。如果存储器中位标志被设置,那么控制权传送到块51,在该块处指令被从流水线阻止(因此,临时性地分块执行来自那个特定线程的指令)。然后控制权被转移到块40来确定来自下一线程的下一指令。如果位标志未被设置(判定块49),那么控制权传送到块43,在该块处指令(在这种情况下为READ指令)被放入流水线中用于执行。如上所述,在该实施例中当SET指令被退役时,位标志被复位。然后控制权返回到块40来确定下一线程的下一指令。同样,如果指令既不是SET指令也不是READ指令,用一正常的方法将其放入流水线中用于执行。如从上面所看到的,SET指令用来在线程的执行中引起一暂停直到该指令完成。这是因为下述的READ指令直到阻塞那个线程其后指令执行的SET指令有效地退役才被放入流水线中。在一个线程的暂停期间,那个线程用于执行的的指令不被处理(例如,放入流水线中,发送到执行单元等等)而来自另一线程用于执行的指令可被处理。当一个线程的执行被暂停时,用于处理系统的总的功耗可被降低。根据本专利技术的另一实施方案,暂停指令用定时器或计数器来实现。如图3所示,图1的存储器标志19由计数器39代替。作为第一个例子,当译码单元21确定第一线程的下一指令是暂停指令(即具有特定位格式的指令)本文档来自技高网...

【技术保护点】
在线程中暂停指令执行的方法,包括: 确定如果用于第一线程的下一指令是第一种类型的指令;以及 在一时间周期不处理所述第一线程用于执行的指令同时可处理来自第二线程用于执行的指令。

【技术特征摘要】
...

【专利技术属性】
技术研发人员:DT马尔D罗德格斯
申请(专利权)人:英特尔公司
类型:发明
国别省市:US[美国]

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

1