一种在处理器中挂起和释放执行过程中计算线程的整体机制制造技术

技术编号:2849339 阅读:239 留言:0更新日期:2012-04-11 18:40
一种在能支持和执行多个程序线程的处理器中的处理机制,包括用于调度一个程序线程的参数和该程序线程中的一个指令,该指令能够存取该参数。当该参数等于第一数值时,且当一个程序线程发出该指令时,该指令根据编码在该参数中的一个或多个条件而重新调度该程序线程。

【技术实现步骤摘要】
【国外来华专利技术】
本专利技术属于数字处理器的领域(例如,微处理器、数字信号处理器、微控制器等等),特别是有关于,涉及在单个处理器中管理多个线程的执行的装置与方法。
技术介绍
在数字计算的领域,计算能力的发展历史显示了在各方面都有持续的进步。持续的进步一直在发生,例如处理器的装置密度与线路互连的技术,可用于改善运算速度、容错能力、使用更高速的时脉信号或者更多其它改进。另一个可改善整体计算能力的研究领域为并行处理,其不仅包括使用多个分开的处理器执行并行操作。并行处理的概念包括将任务分散至多个分开的处理器,但是也包括多个程序同时在一个处理器上执行的方案。此方案一般被称为多线程。接下来将介绍多线程的概念随着处理器操作频率逐渐加快,要隐藏在计算机系统的操作中固有的延迟(latency)也变的越来越困难。一个高级处理器在一个特定应用中其高速数据缓存中丢失了百分之一的指令,如果它对于片外RAM有50个周期的延迟的话,则可能导致大概百分之五十的时间停顿。如果当该处理器因为丢失的高速缓存指令而停顿时,属于另一个不同应用程序的指令可以被执行的话,该处理器的性能可以因此而改善,并且一部份或者全部的跟内存有关的延迟也可有效的被消除。举例来说,图1A显示了因为高速缓存丢失而停顿的单个指令流101。支持该指令运作的机器仅可在一个时间内执行单个线程或任务。相反的,图1B显示了在指令流101停顿时指令流102可被执行。在这种情况当中,该支持机器可以同时支持两个线程,也因此更有效的使用该机器所拥有的资源。更一般的说,各个单独的计算机指令都具有特定的语法,使得不同种类的指令需要不同的资源去执行期望的运算。整数负载没有充分使用到整个浮点运算单元的逻辑或寄存器,任何除了寄存器移位之外的运算皆需要使用加载/储存单元的资源。没有一个单一指令使用到全部处理器的资源,而且当为了追求更高性能的设计而因此加入了更多的管线级与并行功能单元后,会进而降低平均被所有指令使用而全部消耗的处理器资源的比例。多线程的发展一大部分源自于,如果一个顺序程序基本上不能有效率地完全使用处理器的全部资源,该处理器就应该能够将这些资源中的一部分在属于程序执行的多个线程当中进行分配。这种方式并不一定导致任何特定程序可被更快速的执行,事实上,一些多线程方案实质上降低了单一线程程序执行的性能,然而却可使一个并行指令流的集合在更短的时间内和/或使用更少的处理器数目来运行。这个概念可用图2A与图2B来说明,其中各自显示了单一线程处理器210与双线程处理器250。处理器210支持单一线程212,表示为使用加载/储存单元214。如果当存取高速缓存216时发生一个丢失,那么处理器210便会停顿(根据图1A所描述)直到重新获得该丢失数据。在这个过程当中,乘法器/除法器单元218始终处于闲置状态而且没有被有效使用。然而,处理器250支持两个线程;即212与262。因此,若是线程212发生停顿,处理器250仍然可以同时执行线程262与乘法器/除法器单元218,因而更有效地利用了所有的资源(根据图1B所描述)。在单一处理器上具有多线程可获得更佳的多任务处理能力的好处。然而,捆绑多个程序线程在关键事件上可以降低事件反应时间,而且线程级的并行处理在原理上可在单一应用程序中被充分利用。已经提出了各种多线程处理方式。其中之一为指令交错多线程(interleaved multithreading),也就是分时复用(TDM)方案,对于每个发出的指令从一个线程切换至另一个线程。该方案在调度上有一定程度的“公平性”,但是为了静态分配多个发起槽(issue slot)至多个线程,通常会限制单一程序线程的性能。动态交错的方式可以改良这个问题,但是实现这个方式比较复杂。另一个多线程的方案是块交错多线程(blocked multithreading),其从一个单一程序线程持续地发出连续多个指令,直到某个特定的阻塞事件发生,例如高速缓存丢失或者重新设定,举例来说,导致该线程被挂起而另一个线程被激活。因为块交错多线程变换线程的频率较小,所以其实现方式可以是比较简单的。另一方面,阻塞的动作在调度线程的过程中是比较不具有“公平性”。单个线程可以独占整个处理器很长一段时间,如果它非常地幸运能在高速缓存中找到它需要的所有数据。一种混合调度方案结合了块交错多线程与指令交错多线程的特定,也常被使用与研究。仍然有另一种多线程的形式为同时多线程(simultaneousmultithreading),是一种在超标量处理器上实现的方案。在同步多线程中,来自不同线程的多个指令可以被同时发出。例如,一个超标量精简指令集计算机(RISC),每周期发出总共两个指令,以及一个同步多线程的超标量管线,每周期从两个线程中任一个发出总计两个指令。那些单一程序线程所依附或停顿的周期会导致该处理器不被充分利用,因此在同步多线程中这些周期可被另一线程的发出指令所填补。同步多线程也因此成为一个非常有用的技术,用以解决并恢复在超标量管线中所浪费的效率。但也有争议地被认为是最复杂的多线程系统所使用的方法,因为在一周期内激活多于一个线程,会使得内存存取保护装置的实现更加地复杂等等。另外一个值得注意的一点,对于一定的工作量,中央处理器(CPU)操作的管线化越完善,越会降低其多线程实现的潜在获得的效率。多线程与多重处理实质上是非常相关的。事实上,一般可认为其中的差异只有一点不同也就是多重处理器只共享内存和/或线路连线,而多线程处理器除了共享内存和/或线路连线之外,还共享指令提取与发出逻辑,和其它可能的处理器资源。在单个多线程处理器当中,各个线程互相竞争发起槽与其它资源,从而限制了并行处理能力。某些多线程程序与架构模型假设了新线程会被分配到不同的处理器,使得该程序可被有效的并行处理。在本申请案提出申请时,应该已有许多的多线程解决方案,用以解决当前领域许多不同的问题。其中之一即为实时线程的改善方案。一般来说,实时多媒体算法通常被执行于专用处理器/数字信号处理器(DSP),用以保证服务质量(QoS)与响应时间,且并不包括将线程混合并共享于多线程方案当中,因为实时软件并无法容易地获得保证该软件可被适时地执行。在这方面,非常清楚的必须要有一个方案与机制,允许一个或多个实时线程或虚拟处理器能够在特定的指令间的间隔保证获得在多线程处理器中特定比例的指令发起槽,因而计算带宽与响应时间能被清楚的定义。如果这样的机制能被使用,则具有严格QoS要求的线程即可被包含在此多线程的混用中。另外,这种系统中的实时线程(如DSP相关的线程),可以或多或少地被避免于遇到中断而因搬动重要资源而变化执行的时间。这种技术可以在特殊的情况下使用具有DSP加强功能的RISC处理器与内核,以取代一般在消费性多媒体应用上使用分离的RISC与DSP内核。在本申请案提出申请时,当前技术中多线程方案的另一个问题为在处理器中产出与消灭激活的线程。为了支持相对细粒度多线程(fine-grained multithreading),期望以可能的最小系统开销产生和消灭程序执行过程的并行线程,并且至少在一般的情况下不会干扰到必须的操作系统功能。在这个方面,清楚需要的是一些指令如FORK(线程产生)与JOIN(线程终止)。另一个存在于多线程处理本文档来自技高网...

【技术保护点】
在一个能够支持和执行多程序线程的处理器中,一种处理的机制,包括:    一个参数,用于调度一个程序线程;以及    一个指令,置于该程序线程中,并且能够存取该参数;    其中,当该参数等于第一数值时,该指令根据一个或多个编码于该参数中的条件,重新调度该程序线程。

【技术特征摘要】
【国外来华专利技术】US 2003-8-28 60/499,180;US 2003-9-12 60/502,359;US1.在一个能够支持和执行多程序线程的处理器中,一种处理的机制,包括一个参数,用于调度一个程序线程;以及一个指令,置于该程序线程中,并且能够存取该参数;其中,当该参数等于第一数值时,该指令根据一个或多个编码于该参数中的条件,重新调度该程序线程。2.如权利要求1所述的机制,其中该参数保存在一个数据储存装置中。3.如权利要求1所述的机制,其中当该参数等于第二数值,且该第二数值不等于该第一数值时,该指令释放该程序线程。4.如权利要求3所述的机制,其中该第二数值为零。5.如权利要求1所述的机制,其中当该参数等于第二数值,且该第二数值不等于该第一数值时,该指令无条件地重新调度该程序线程。6.如权利要求5所述的机制,其中该第二数值为一奇数。7.如权利要求5所述的机制,其中该第二数值为负1。8.如权利要求1所述的机制,其中该一个或多个条件中的一个条件与将执行机会让与其它线程直到该一个条件被满足为止的该程序线程相关。9.如权利要求8所述的机制,其中该一个条件被编码于该参数中的位向量或位字段之一中。10.如权利要求5所述的机制,其中,在该程序线程被重新调度的情形下,该程序线程的执行会在该线程中该指令之后的位置继续。11.如权利要求3所述的机制,其中当该参数等于第三数值,且该第三数值不等于该第一数值与该第二数值时,该指令无条件地重新调度该程序线程。12.如权利要求1所述的机制,其中该一个或多个条件中的一个条件为一个硬件中断。13.如权利要求1所述的机制,其中该一个或多个条件中的一个条件为一个软件中断。14.如权利要求1所述的机制,其中,在该程序线程被重新调度的情形下,该程序线程的执行会在该线程中该指令之后的位置继续。15.在一个能够支持与执行多程序线程的处理器中,一种由一个线程重新调度执行或释放该线程本身的方法,包括(a)发出一个指令,该指令存取一个数据存储装置中的一部分记录,该部份记录编码了与决定该线程是否被重新调度的一个或多个条件相关的一个或多个参数;以及(b)根据在该部分记录中的该一个或多个参数来依照该条件重新调度该线程或释放该线程。16.如权利要求15所述的方法,其中该记录被置于一个通用寄存器(GPR)中。17.如权利要求15所述的方法,其中这些参数中的一个参数与被释放的而不是被重新调度的线程相关。18.如权利要求17所述的方法,其中与该被释放的线程相关的该一个参数为一零值。19.如权利要求15所述的方法,其中这些参数中的一个参数与被重新排队等待调度的线程相关。20.如权利要求19所述的方法,其中该一个参数为一任意奇数值。21.如权利要求19所述的方法,其中该一个参数为负1的二进制补码值。22.如权利要求15所述的方法,其中这些参数中的一个参数与将执行机会让与其它线程直到一个特定条件被满足为止的该线程相关。23.如权利要求22所述的方法,其中该一个参数被编码于该记录中的位向量或者一个或多个值字段之一中。24.如权利要求15所述的方法,其中,在该线程发出该指令并被重新调度的情形下,当该一个或多个条件被满足时,该线程的执行会在该线程指令流中该线程所发出的该指令之后的位置继续。25.如权利要求15所述的方法,其中这些参数中的一个参数与被释放的而不是被重新调度的线程相关,并且这些参数中的另一个参数与被重新排队等待调度的线程相关。26.如权利要求15所述的方法,其中这些参数中的一个参数与被释放的而不是被重新调度的线程相关,并且这些参数中的另一个参数与将执行机会让与其它线程直到一个特定条件被满足相关。27.如权利要求15所述的方法,其中这些参数中的一个参数与被重新排队等待重新调度的线程相关,并且这些参数中的另一个参数与将执行机会让与其它线程直到一个特定条件被满足相关。28.如权利要求15所述的方法,其中这些参数中的一个参数与被释放的而不是被重新调度的线程相关,这些参数中的另一个参数与被重新排队等待调度的线程相关,并且这些参数中的再另一个参数与将执行机会让与其它线程直到一个特定条件被满足相关。29.一种支持与执行多个软件实体的数字处理器,包括一个数据储存装置中的一部分记录,该部分记录编码了与一个或多个条件相关的一个或多个参数,该一个或多个条件决定了当一个线程将执行机会让与其它线程时该线程是否被重新调度。30.如权利要求29所述的数字处理器,其中该部分记录被置于一个通用寄存器(GPR)中。31.如权利要求29所述的数字处理器,其中这些参数中的一个参数与被释放的而不是被重新调度的线程相关。32.如权利要求31所述的数字处理器,其中与该被释放的线程相关的该一个参数为一零值。33.如权利要求29所述的数字处理器,其中这些参数中的一个参数与被重新排队等待调度的线程相关。34.如权利要求33所述的数字处理器,其中该一个参数的值为一任意奇数值。35.如权利要求33所述的数字处理器,其中该一个参数的值为负1的二进制补码值。36.如权利要求29所述的数字处理器,其中这些参数中的一个参数与将执行机会让与其它线程直到一个特定条件被满足的线程相关。37.如权利要求36所述的数字处理器,其中该一个参数被编码于该记录中的位向量或是一个或多个值字段之一中。38.如权利要求29所述的数字处理器,其中这些参数中的一个参数与被释放的而不是被重新调度的线程相关,并且这些参数中的另一个参数与一个被重新排队等待调度的线程相关。39.如权利要求29所述的数字处理器,其中这些参数中的一个参数与被释放的而不是被重新调度的线程相关,并且这些参数中的另一个参数与将执行机会让与其它线程直到一个特定条件被满足相关。40.如权利要求29所述的数字处理器,其中这些参数中的一个参数与被重新排队等待重新调度的线程相关,并且这些参数中的另一个参数与将执行机会让与其它线程直到一个特定条件被满足相关。41.如权利要求29所述的数字处理器,其中这些参数中的一个参数与被释放的而不是被重新调度的线程相关,这些参数中的另一个参数与被重新排队等待调度的线程相关,并且这些参数中的再另一个参数与将执行机会让与其它线程直到一个特定条件被满足相关。42.一种能够支持与执行多个程序线程的处理系统,包括一个数字处理器;一个数据储存装置中的一部分记录,该部分记录编码了与一个或多个条件相关的一个或多个参数,该一个或多个条件决定了一个线程是否被重新调度;以及一个指令集,包含用于重新调度和释放该线程的一个指令;其中当该线程发出该指令时,该指令存取该记录中的该一个或多个参数,并且该系统根据该部分记录中的该一个或多个参数来依照该一个或多个条件重新调度或释放该发出指令的线程。43.如权利要求42所述的处理系统,其中该部分记录被置于一个通用寄存器(GPR)中。44...

【专利技术属性】
技术研发人员:凯文基塞尔
申请(专利权)人:美普思科技有限公司
类型:发明
国别省市:US[美国]

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

1
相关领域技术
  • 暂无相关专利