多线程微处理器中的二分化线程调度器制造技术

技术编号:2833230 阅读:184 留言:0更新日期:2012-04-11 18:40
本发明专利技术提供一种二分化调度器,用于在可同时执行多个线程的多线程处理器中派送多个线程的指令。此调度器包括可重复使用内核内的不可由使用者定制的第一部分、内核外的可由使用者定制的第二部分、以及耦接第二部分与内核的接口。第二部分实施可由使用者根据特定应用来定制的线程调度策略。第一部分是调度策略不可知的,且根据由第二部分传送的调度策略在每一个时钟周期内发出线程的指令给执行单元。第二部分经由每个线程的优先级来传送调度策略。当内核承诺执行指令时,此内核通知第二部分哪一个线程的指令被承诺执行,以使此第二部分相应地更新优先级。

【技术实现步骤摘要】
【国外来华专利技术】多线程微处理器中的二分化线程调度器与本专利技术互相参照的相关申请案[OOOl]本申请案和下列同时申请的待审美国专利申请案有关,将这些申请案整体引入用于所有H的。序号 (案号)申请日期标题(MIPS.0200-00-US)多线程微处理器中的漏水桶线程 调度器(MIPS.0201画00-US)具有用于增进流水线使用效率的 优化线程调度器的多线程微处理 器(MIPS.0201-01-US)包含具有根据指令停顿可能性预 测的线程调度器的多线程微处理 器(MIPS.0202-00-US)多线程微处理器中的指令/滑动缓 冲器
本专利技术关于一种多线程处理器的技术范畴,特别是执行多 线程时的指令发出调度。技术背景微处理器的设计者使用了许多技巧来增加微处理器的性 能。大多数微处理器在固定频率的时钟信号下操作。微处理器中的各20个电路在每一时钟周期执行各自的功能。根据汉尼斯与帕特森(请参 阅计算机结构 一种定量描述,第三版),微处理器的性能根据执行 一个程序或多个程序所需的时间来衡量。在此观点下,微处理器的性 能取决于其时钟频率、执行一个程序所需的平均时钟周期数目(或是 每--个时钟周期所执行的平均指令数目)、以及一个程序或多个程序 中所执行的指令数目。半导体科学家以及工程师,主要是通过减少晶 体管大小,其导致更快的切换时间,不断地使微处理器能够在更快的 时钟频率下运行。能够执行的指令数目很大程度上由程序中欲执行的 任务所限制,但是也会被微处理器的指令集结构所影响。可通过结构 或组织机制的改变以大幅度提高性能,即改善每一时钟周期所能执行 的指令数,特别是利用平行处理机制。—种能改善每一时钟周期所能执行的指令数以及时钟频率 的平行处理机制为流水线化微处理器,其使多个指令在微处理器各流 水线阶段中重迭地执行。在理想的情况下,流水线中的指令在每一时 钟周期均向下一阶段移动,其对指令执行一个不同的功能。因此,虽 然每一个指令需要多个时钟周期才能完成,但是因为各个指令的多个 周期互相重迭,所以每一指令所需的平均时钟会减少。此种流水线化 微处理器的性能可以视程序中指令容许的程度来改善其性能,即,在 --个指令不需要依靠其前端指令就能执行的程度下,可以与其前端指 令平行地执行,此称之为指令级平行化。另一种指令级平行化也可以 是微处理器同时在一个时钟周期中发出多个执行指令,通常称之为超 标量微处理器。前述所讨论的仅是单一指令级的平行处理机制,然而,根 据指令级平行化所能达成的性能改善是有限的。许多研究如何改善指 令级平行机制限制的做法最近又重新兴起,如采用指令块、指令流、 或指令流级的平行化,通常称为线程级平行机制。线程只是程序指令 的系列或流。多线程微处理器可根据一些多线程指令提取及执行的调 度原则,如交错、阻塞或是同时多重线程的方式,同时执行多个线程。 多线程微处理器通常可以容许多个线程同时分享微处理器中的一些功能单元(如指令提取及译码单元、高速缓存、分支预测单元、以及加载/储存、整数处理、浮点处理、单一指令多数据(SIMD)单元等)。 然而,多线程微处理器还包含多组的资源或上下文(context),以储 存每一线程的特殊状态,如多个程序计数器和通用目的寄存器组, 以提供在不同线程快速切换以提取及发出指令的能力。多线程微处理器所解决性能限制问题的一个例子是,因为 高速缓存失误而必须存取微处理器外的内存时通常需要-一段相对长 的时间。对当代微处理器为基础的计算机系统而言,内存的存取时间 通常是高速缓存命中存取时间的一至二个数量级倍数是十分常见的。 依赖于高速缓存中的丢失数据的指令在流水线中停顿,等待来自内存 的数据。结果是,当流水线停顿以等待数据自内存取出时,单线程微 处理器的一些或全部流水线阶段空闲,不执行任何有意义的工作达数 个时钟周期之久。而多线程微处理器则可以在此等待内存提取的时 间,发出其它线程的指令以解决此问题,因此,可以使流水线各阶段 继续从事其它有意义的工作,这类似于操作系统在页面错误时的任务 切换,但更精细。其它的多线程微处理器所解决性能限制问题的例子 nj以是因为分支错误预测以及相随的流水线清空、或是因为数据相 关、或是因为如除法指令、浮点指令等长时间等待指令,而造成的流 水线停顿以及其相随的空闲周期。同样的,多线程微处理器则可以在 此等待时间,发出其它线程的指令至原本应该空闲的流水线阶段以解 决此问题,因此,可以使多线程处理器大幅减少执行包含多个线程的 --个程序或多个程序所需的时间。另一个问题是,特别是在嵌入式系 统中,当中断服务时所浪费的时间。当输入输出组件发出中断信号至 微处理器时,此微处理器通常会切换至中断服务程序,此时必须储存 程序当前状态,服务该中断需求,以及在中断需求服务后重新回到程 序当前状态。多线程微处理器具有提供自己线程的自行上下文事件服 务程序代码的能力。其结果是,多线程微处理器能够在最短时间内, 甚至是一个时钟周期,就可以响应输入输出组件的事件信号,然后切 换回原本的事件,因此可以避免传统方式所造成的长时间事件服务浪 费。由上面叙述可以观察到,处理器同时执行多个线程,可以减少执行包含多个线程的一个程序或多个程序的时间。然而,必须要 了解的是,多线程处理器相对于单线程处理器所能获得的好处,是与 此处理器的线程调度策略高度相关的,即处理器如何调度不同的线 程发出他们的指令来执行。更进一步,适合的线程调度策略是与处理 器所欲执行的应用高度相关的。例如,多线程处理器可以使用在许多 不同的应用中,包括实时嵌入式系统,如网络切换器与路由器、RAID 控制器、打印机、扫瞄器、手持设备、数码相机、汽车、机顶盒、家 电等;科学运算;交易运算;服务器运算以及通用目的运算。这些应 用中的每一应用需要不同的调度策略,以使多线程处理器的性能最佳 化。其结果是,十分需要一种定制化的能力,可以让具有不同应用的 使用者视其需要来调整其特定的调度策略。定制化的线程调度器在尝 试设计多线程微处理器内核时特别需要,该内核可以是被定制以符合 不同应用需求的微处理器和/或系统的一部份。这将使得此多线程内 核可以对不同设计重复使用,这是很需要的,因为如此一来就可以节 省掉为了不同应用而必须重新设计整个处理器的许多时间。然而,将微处理器的整个线程调度电路都加以定制化会造 成许多问题,因为此线程调度电路通常是与微处理器内部的流水线化 操作息息相关的,如此一来会造成不好的副作用。例如,对于顾客而 言,很难了解到微处理器内部的流水线化作业是如何运作的,因此造 成顾客定制化调度器的困难。更进一步而言,处理器内部的流水线化 作业的时间关键信号路径也必须让客户知道,如果客户的定制化逻辑 速度太慢的话,这或许会影响到整个微处理器的时钟速度。最后,客 户定制化调度器的过程中或许会不小心地发生错误,而严重地影响到 整个微处理器内核的运作速度及功能。因此,对于多线程处理器架构 而言,如何能使得在可以定制其线程调度策略时,不会有以上所述的 缺点,就变得十分重要。
技术实现思路
本专利技术提供一种二分化的调度器架构。此调度器的第一部 份位于处理器内核之外,用来实施根据使用者应用所需要的线程调度策略;因此,这部分可安全地被使用者修改而不会危及到处理器内核的本文档来自技高网
...

【技术保护点】
一种二分化调度器,用于在配置为可同时执行多个线程的多线程处理器中派送指令,所述调度器包括:    第一调度器逻辑,配置为发出所述多个线程的指令到所述处理器的至少一个执行单元;    第二调度器逻辑,用于实施所述多个线程的调度策略;以及    接口,将所述第二调度器逻辑耦接至所述第一调度器逻辑和所述至少一个执行单元,所述接口包括:    第一信号,供所述第一调度器逻辑用来从所述第二调度器逻辑接收所述多个线程的每一个的优先级,其中所述第一调度器逻辑根据所述优先级发出所述指令到所述至少一个执行单元;以及    第二信号,供所述第二调度器逻辑用来接收所述多个线程的每一个的指令执行信息,其中所述第二调度器逻辑根据所述指令执行信息更新所述优先级。

【技术特征摘要】
【国外来华专利技术】US 2005-2-4 11/051,9971.一种二分化调度器,用于在配置为可同时执行多个线程的多线程处理器中派送指令,所述调度器包括第一调度器逻辑,配置为发出所述多个线程的指令到所述处理器的至少一个执行单元;第二调度器逻辑,用于实施所述多个线程的调度策略;以及接口,将所述第二调度器逻辑耦接至所述第一调度器逻辑和所述至少一个执行单元,所述接口包括第一信号,供所述第一调度器逻辑用来从所述第二调度器逻辑接收所述多个线程的每一个的优先级,其中所述第一调度器逻辑根据所述优先级发出所述指令到所述至少一个执行单元;以及第二信号,供所述第二调度器逻辑用来接收所述多个线程的每一个的指令执行信息,其中所述第二调度器逻辑根据所述指令执行信息更新所述优先级。2. 如权利要求l所述的调度器,其中所述第一调度器逻辑在每一 时钟周期根据所述优先级选择所述多个线程中的哪-—个来发出所述 指令到所述至少一个执行单元。3. 如权利要求2所述的调度器,其中所述第一调度器逻辑在每一 时钟周期根据所述优先级选择所述多个线程中的一个来发出所述指 令到所述至少一个执行单元。4. 如权利要求2所述的调度器,其中所述第一调度器逻辑在每一 时钟周期根据所述优先级选择所述多个线程中的一个以上线程来发 出所述指令到所述至少一个执行单元。5. 如权利要求1所述的调度器,其中所述接口还包括 第三信号,供所述第二调度器逻辑用来从所述第一调度器逻辑接 收所述多个线程的每一个的状态信息,其中所述第二调度器逻辑根据 所述状态信息更新所述优先级。6.如权利要求5所述的调度器,其中所述状态信息包含关于所述 第--调度器逻辑是否被阻止发出所述多个线程的每一个的指令的指7. 如权利要求1所述的调度器,其中所述多个线程的每一个的优 先级包含多个预定优先级中的一个。8. 如权利要求1所述的调度器,其中所述指令执行信息包含由所 述至少一个执行单元提供的、关于所述多个线程中哪一个的指令被承诺执行的指示。9. 如权利要求1所述的调度器,其中所述指令执行信息包含由所 述至少一个执行单元提供的、关于所述多个线程中哪一个的指令被执 行完毕的指示。10. 如权利要求1所述的调度器,其中所述指令执行信息包含由 所述第一调度器逻辑提供的、关于所述多个线程中哪一-个的指令被发 出的指示。11. 如权利要求1所述的调度器,其中所述第一调度器逻辑是不可 被使用者修改的。12. 如权利要求1所述的调度器,其中所述第二调度器逻辑是可 被使用者修改的。13. 如权利要求1所述的调度器,其中所述多个线程的每一个包 括一个指令流。14. 如权利要求13所述的调度器,其中所述处理器还包括 一组储存元件,与所述多个线程的每--个相关,用于描述所述指令流的执行状态。15. 如权利要求14所述的调度器,其屮所述一组储存元件中的每 一个包括程序计数器。16. 如权利要求15所述的调度器,其中所述一组储存元件中的每 一个还包括通用寄存器组。17. 如权利要求1所述的调度器,其中所述处理器包括处理器内 核,其中所述处理器内核包括所述第一调度器逻辑并且不包括所述第 二调度器逻辑。18. 如权利要求17所述的调度器,其中所述处理器内核是可合成的。19. 如权利要求17所述的调度器,其中所述处理器内核是可为多 个使用者重复使用的。20. 如权利要求17所述的调度器,其中所述第一调度器逻辑被配 置为选取所述多个线程中的至少一个线程来发出指令,所述处理器已 经为该至少一个线程提取出可发出的指令,并且该至少一个线程具有 由所述优先级指定的最髙优先级。21. 如权利要求20所述的调度器,其中如果所述多个线程中的多 于一个线程具有所述已提取的可发出指令和所述最高优先级,则所述 第--调度器逻辑被配置为按照轮循方式选择所述多个线程中的所述 多于一个线程中的一个线程。22. 如权利要求20所述的调度器,还包括用亍检査所述多个线程的所述已提取的可发出指令的寄存器依 赖性的逻辑,其中如果所述多个线程中的多于一个线程具有所述最高 优先级,则所述第--调度器逻辑被配置为根据所述寄存器依赖性选取 所述多个线程中的所述多于一个线程中的一个线程。23. 如权利要求22所述的调度器,其中如果所述多个线程中的多 于一个线程具有所述已提取的可发出指令、所述最高优先级和相同的 所述寄存器依赖性,则所述第一调度器逻辑被配置为按照轮循方式选 取所述多个线程中的所述多于一个线程中的一个线程。24. 如权利要求1所述的调度器,其中所述接口还包括 第三信号,供所述第二调度器逻辑用来针对所述多个线程的每一个向所述第一调度器逻辑通知是否阻止发出该线程的指令。25. 如权利要求1所述的调度器,其中所述接口还包括 时钟信号,其从所述第一调度器逻辑至所述第二调度器逻辑。26. 如权利要求1所述的调度器,其中由一种计算机程序产品实 现所述调度器,该计算机程序产品包括计算机可用介质,该计算机可 用介质具有计算机可读程序代码,其中所述计算机程序产品与计算设 备一起使用。27. 如权利要求1所述的调度器,其中由传输介质中所包含的包 括计算机可读程序代码的计算机数据信号提供了所述调度器。28. —种多线程处理器,包括 线程调度策略逻辑,配置为实施一种策略,该策略用于调度由所 述处理器同时执行的多个线程的指令派送;处理器内核,耦接至所述线程调度策略逻辑,包括 至少一个执行流水线,用于执行指令以及 指令派送器,耦接来根据从所述线程调度策略逻辑所接收的 所述策略,将所述多个线程的指令派送到所述执行流水线;接口 ,用于耦接所述线程调度策略逻辑和所述处理器内核,包括: 优先级指示器,用于所述线程调度策略逻辑向所述指令派送 器传送所述多个线程的每-'个的派送优先级,以实施所述策略以及 执行指示器,用于所述至少一个执行流水线向所述线程调度 策略逻辑传送针对所述多个线程中每一个的指示信息,以指示是否所 述至少一个执行流水线已承诺执行该线程的指令。29. 如权利要求28所述的处理器,其中所述线程调度策略逻辑物 理上位于所述处理器内核外部。30. 如权利要求28所述的处理器,其中所述线程调度策略逻辑是 可由使用者修改的,而所述微处理器内核是不可由使用者修改的。31. 如权利要求28所述的处理器,其中所述指令派送器被配置为 选取所述多个线程中的至少一个线程来发出指令,所述处理器为该至 少一个线程已经提取了可发出的指令,且该至少一个线程具有由所述 优先级指定的最髙优先级。32. 如权利要求31所述的处理器,如果所述多个线程中的多于一 个线程具有所述已提取的可发出指令和所述最髙优先级,则所述指令 派送器被配置为按照轮循方式选择所述多个线程中的所述多于一个 线程中的一个线程。33. 如权利要求31所述的处理器,还包括用于检査所述多个线程的所述已提取的可发出指令的寄存器依 赖性的逻辑,其中如果所述多个线程中的多于一个线程具有所述最高 优先级,则所述指令派送器被配置为根据所述寄存器依赖性选取所述 多个线程中的所述多于一个线程中的一个线程。34. 如权利要求33所述的处理器,其中如果所述多个线程中的多 于--个线程具有所述已提取的可发出指令、所述最高优先级和相同的 所述寄存器依赖性,则所述指令派送器被配置为按照轮循方式选取所 述多个线程中的所述多丁-个线程屮的个线程。35. 如权利要求28所述的处理器,其中由一种计算机程序产品实 现所述处理器,该计算机程序产品包括计算机可用介质,该计算机可 用介质具有计算机可读程序代码,其中所述计算机程序产品与计算设 备-起使用。36. 如权利要求28所述的处理器,其中由传输介质中所包含的包 括计算机可读程序代码的计算机数据信号提供了所述处理器。37. —种线程调度策略管理器,用于在可同时执行多个线程的多 线程处理器中执行线程调度策略,所述策略管理器包括输入,用于在每一处理器时钟周期,接收关于所述多个线程的每 —个的指令是否被执行的指示输出,用于在每一处理器时钟周期,传送所述多个线程的每一个 的指令派送优先级;耦接至所述输入的逻辑,用于根据所述输入产生所述输出,以实 施所述线程调度策略。38. 如权利要求37所述的策略管理器,其中关于指令是否被执行 的所述指示指出所述指令是否被派送以用于执行。39. 如权利要求37所述的策略管理器,其中关于指令是否被执行 的所述指示指出所述指令是否被承诺执行。40. 如权利要求37所述的策略管理器,其中关于指令是否被执行 的所述指示指出所述指令是否被执行完毕。41. 如权利要求37所述的策略管理器,其中所述多个线程中每一 个的优先级包括多个预定优先级中的一个。42. 如权利要求37所述的策略管理器,还包括第二输出,用于在每一处理器时钟周期传送关于针对所述多个线 程中的每一个是否阻止发出指令的指示。43. 如权利要求37所述的策略管理器,还包括第二输入,用于在每一处理器时钟周期接收所述多个线程中每--个的状态,所述状态指示所述线程是否目前被阻止从其发出指令;其中所述逻辑进一步被配置为根据所述第--和第二输入产生所 述输出,以实施所述线程调度策略。44. 如权利要求37所述的策略管理器,其中所述多个线程中每一 个的优先级包括多个预定优先级中的一个。45. 如权利要求37所述的策略管理器,其中由一种计算机程序产 品实现所述策略管理器,该计算机程序产品包括计算机可用介质,该 计算机可用介质具有计算机可读程序代码,其中所述计算机程序产品 与计算设备一起使用。46. 如权利要求37所述的策略管理器,其中由传输介质中所包含 的包括计算机可读程序代码的计算机数据信号提供了所述策略管理 器。47. —种多线程处理器内核,被配置为可同时执行多个线程,所 述多个线程中的每一个包括一个指令流,所述处理器内核包括接口 ,用于将所述处理器内核耦接到所述处理器内核外部的线程 调度策略逻辑,所述接口包括第一信号,供所述线程调度策略逻辑用来向所述处理器内核 传送所述多个线程的每一个的优先级;以及第二信号,供所述线程调度策略逻辑用来从所述处理器内核 接收所述多个线程中每一个的关于这些线程的指令执行的信息,以供 所述线程调度策略逻辑用来更新所述优先级调度器,其接收所述第一信号,并根据所述第.'信号所提供的所 述优先级,从所述多个线程中的至少一个线程选取至少一个指令,以 发出用来执行。48. 如权利要求47所述的处理器内核,其中所述调度器被配置为 在处理器内核的每一时钟周期选取所述至少一个指令。49. 如权利要求47所述的处理器内核,其中所述信息包含关于所 述处理器内核已承诺执行所述多个线程中的一个特定线程的指令的 指示。50. 如权利要求49所述的处理器内核,其中如果所述指令保证不 会被从所述处理器清空的话,则所述处理器内核已承诺执行所述指 令。51. 如权利要求49所述的处理器内核,其中如果所述指令保证会 被所述处理器执行完毕的话,则所述处理器内核己承诺执行所述指 令。52. 如权利要求47所述的处理器内核,其中所述信息指示所述处 理器内核已执行完毕所述多个线程中的一个特定线程的指令。53. 如权利要求47所述的处理器内核,其中所述信息指示所述处 理器内核己发出所述多个线程中的一个特定线程的指令来用于执行。54. 如权利要求47所述的处理器内核,其中所述接口还包括 第三信号,供所述线程调度策略逻辑用来从所述处理器内核接收状态信息,该状态信息指定所述多个线程中每一个的状态,以供所述 线程调度策略逻辑用来更新所述优先级。55. 如权利要求47所述的处理器内核,其中所述状态信息包含关 于所述多个线程中的每一个是否被阻止而使所述调度器不能从该线 程发出指令供执行的指示。56. 如权利要求47所述的处理器内核,其中所述接口还包括 第三信号,供所述线程调度策略逻辑用来针对所述多个线程中的每一个向所述调度器通知是否阻止发出该线程的指令。57. 如权利要求47所述的处理器内核,其中所述调度器被配置为 从所述多个线程中的所述至少一个线程选取所述至少一个指令,以尽 量保持所述处理器内核的执行流水线充满指令,从而使所述执行流水 线效率髙。58. 如权利要求47所述的处理器内核,其中所述调度器被配置为 选取所述多个线程中的所述至少一个线程,所述处理器己经为该至少 一个线程提取了可发出的指令,并且该至少一个线程具有由所述优先 级指定的最高优先级。59. 如权利要求58所述的处理器内核,其中如...

【专利技术属性】
技术研发人员:达伦M琼斯莱恩C肯特凯文D契瑟尔汤姆士A彼德森
申请(专利权)人:美普思科技有限公司
类型:发明
国别省市:US[]

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

1