实现高速时钟的两级线程状态多线程支持的方法和设备技术

技术编号:2873047 阅读:168 留言:0更新日期:2012-04-11 18:40
提供了一种方法和设备,用来实现高速时钟的两级线程状态多线程支持。第一级线程状态存储器存储了受限数量的可运行线程寄存器状态。受限数量小于一阈值。下一线程选择逻辑电路耦合在第一级线程状态存储器和当前执行的处理器状态之间,从受限数量的可运行线程寄存器状态中拾取下一在处理器中运行的线程。第二级线程存储设施存储多于可运行线程寄存器状态受限数量的另一数量的线程状态。一可运行线程选择逻辑电路耦合在第一级线程状态存储器和第二级线程存储设施之间。该可运行线程选择逻辑电路有选择地在第一级受限数量的可运行线程寄存器状态与第二级线程存储设施之间交换线程状态。(*该技术在2023年保护过期,可自由使用*)

【技术实现步骤摘要】

本专利技术总体涉及数据处理领域,具体来说,涉及用来实现高速时钟的两级线程状态多线程支持的方法和设备
技术介绍
CPU内硬件效率的改善是通过把处理任务分割成可独立执行的指令序列,叫做线程。当CPU由于各种原因无法继续处理或执行其中某个线程时,CPU迅速地切换到并执行另一线程。多线程是一种改善电脑系统的整体速度或系统吞吐量的有效办法。多线程设计技术已经成为使得处理器性能随时钟频率提高的重要手段。相比以往的处理器设计遇到的停顿状况、以致降低了性能,多线程却允许由单独的并列活动线程继续执行指令。然而,随着时钟频率继续增加,硬件里需要支持越来越多的线程、从而为处理器的执行提供持续可用的选项。参考图1,示出了现有技术的多线程选择结构,其通常由100来表示。现有技术的多线程选择结构100是单级设计,包括完全互补的寄存器和其他状态描述硬件,用于硬件所支持的每一线程执行,如多个线程0~N寄存器状态102所示。线程0~N寄存器状态102提供了每一可运行线程0~N的状态的单独拷贝。现有技术的多线程选择结构100包括下一线程选择逻辑电路104,其耦合在多个线程0~N寄存器状态102与当前执行的处理器状态106之间,以选择下一线程状态102,此时设定特定线程运行于在空闲事件中发生改变的处理器。随着时钟频率增加,机器里需要支持更多的线程,要求每一可运行线程0~N的状态的单独拷贝。随着时钟频率增加和线程数增加,被支持的线程数超出了某阀值界限,多线程选择结构100和选择逻辑电路104变得复杂。选择逻辑电路104从硬件支持的许多线程状态中运行下一所需线程状态102,该选择逻辑电路104变得复杂并影响了设计的峰值时钟率。当前的设计者被迫选择两类降级之中的较轻者①降低的时钟速度、以容纳大量线程执行必需的逻辑电路;或②受限或不够的线程状态、以在高速时钟的停顿状况期间支持指令执行。需要一种机制,其允许一在硬件里支持大量线程、而不致影响时钟率的最佳状态。
技术实现思路
本专利技术的主要目的是提供一种方法和设备,用来实现高速时钟的两级线程状态多线程支持。本专利技术的其他重要目的是提供用来实现高速时钟的两级线程状态多线程支持,而基本没有负面效果、并克服了现有技术配置的许多弊病的方法和设备。简要地说,提供了一种方法和设备,用来实现高速时钟的两级线程状态多线程支持。第一级线程状态存储器存储了受限数量的可运行线程寄存器状态。受限数量小于一阈值。下一线程选择逻辑电路耦合在第一级线程状态存储器与当前执行的处理器状态之间,从受限数量的寄存器状态中拾取下一个在处理器中执行的线程。第二级线程存储设施存储比可运行线程寄存器状态受限数量更多的另一个数目的线程状态。一个可运行线程选择逻辑电路耦合在第一级线程状态存储器和第二级线程状态存储设施之间,该线程选择逻辑电路有选择地在第一级受限数量的可运行线程寄存器状态与第二级线程存储设施之间交换线程状态。依照专利技术特征,第一级线程状态存储器是高速逻辑电路,对于高速时钟率做了优化。可选项的第二级线程存储设施是中速逻辑电路,低于高速时钟。第二级线程存储设施存储了一些线程状态,其数量等于处理器性能峰值所需的所定数量的线程。仅在第二级线程存储设施里呈现状态的线程不能使用处理器,但可供可运行线程选择逻辑电路快速选择,该可运行线程选择逻辑电路可用来在第一级线程状态存储器与第二级线程存储设施之间交换线程状态。附图说明本专利技术及其上述和其他目的和优点,可以通过下面的优选实施例的详细说明来透彻理解,该优选实施例在附图里绘出,其中图1是现有技术的多线程选择结构的框图; 图2是依照优选实施例的两级线程选择结构的框图;图3是流程图,示出了依照优选实施例的下一线程选择的示例操作;和图4是流程图,示出了依照优选实施例的可运行线程选择逻辑电路的示例操作。具体实施例方式下面参照附图说明,图2示出了优选实施例的多线程选择结构,其通常由附图标号200来表示。多线程选择结构200包括两级线程状态存储器,通常由202和204表示。第一级线程状态存储器202是高速逻辑电路,对于快速时钟率做了优化。第二级线程状态存储器204是可选择的中速逻辑电路,其操作的速度低于第一级状态存储器202的高速逻辑。依照优选实施例的特征,多线程选择结构200支持硬件里的大量线程,而不影响时钟率。多线程选择结构200避免了当寄存器逻辑电路复制品的数量超出特定阈值时可能出现的时钟率受损。传统上,全部线程的执行皆在硬件里由相同组织和速度的逻辑电路来支持。然而,本专利技术的第一方面要求在第一级202里这些寄存器逻辑电路复制品的数量限制在小于特定阈值量。这允许时钟率不受影响地增加。然而,简单地限制用于高速时钟的处理器的线程寄存器状态组可能造成性能失衡。形成不希望的停顿状况,且该状况无法克服,因为他们是因缺乏可供运行的线程而出现的。克服这一失衡需要本专利技术的第二方面;在处理器的状态存储器的第二级2 04里附加线程支持。第二级204提供容量来保存需要硬件支持以达到峰值性能的全部,所有线程的状态信息。仅在第二级204里呈现状态的线程不能使用处理器,但可供控制逻辑电路快速选择。该选择未必如同当从状态存储器的第一级202中选择线程一样快,但是大大地快于执行保存/恢复至处理器的主内存的场景,其是一种加大状态容量的传统做法。保存于第二级里的特定线程的状态信息可按需要与存入第一级202的特定线程状态0~L交换。通常,这在当线程用罄了第一级线程状态存储器202、遇到处理器停顿状况时可能出现。如图2所示,两级多线程选择结构200限制多个可运行线程0~L寄存器状态206的数量,该寄存器状态206用于第一级202里多线程的处理器执行。多线程选择结构200包括下一线程选择逻辑电路208,其耦合在第一级可运行线程0~L寄存器状态206与当前执行的处理器状态210之间,以快速选择下一线程状态206,此时设定特定线程运行于在空闲事件中发生改变的处理器,其在空闲事件变化。这里实现的状态存储器的第一级202带来了高速时钟,但仅此一点而没有专利技术的其他方面,则可能限制设计的峰值性能在第二级线程状态存储器204中的二级线程存储设施212里为支持高速时钟的峰值性能所需线程总数设立了附加容量。这就克服了不这样做的峰值性能限制。不仅设有各线程的状态,还设有存储区域、以包含有用信息以确定从第二级状态存储器204中选择的下一线程,此时确定了与第一级寄存器状态存储器的交换是可运行线程选择逻辑电路214所需的。在处理器上仅执行来自第一级寄存器状态存储器206的线程,正如当前技术里所提供的。在处理器控制逻辑电路确定的适当时刻,可运行线程选择逻辑电路214要求线程状态在线程状态存储器的第一级202与第二级204之间交换。通常,这允许来自第二级存储器212的特定可运行线程、获得对在第一线级寄存器空间的处理器设备的访问权限,同时保持随时重新调用停顿线程的状况、该停顿线程使用第一级资源206。参照图3,示出了依照优选实施例的多线程选择结构200中的下一线程选择逻辑电路208的示例操作。如框300所示,下一线程选择逻辑电路208挑选优选线程作为在处理器上运行的下一线程。对于遇到的处理器停顿状况,执行校验,如决定框302所示。当遇到处理器停顿状况时,下一线程选择逻辑电路20本文档来自技高网
...

【技术保护点】
用来实现高速时钟的两级线程状态多线程支持的设备,包括: 第一级线程状态存储器用于存储受限数量的可运行线程寄存器状态;所述受限数量小于一阈值; 下一线程选择逻辑电路耦合在所述第一级线程状态存储器与当前执行的处理器状态之间,用来从所述受限数量的可运行线程寄存器状态中拾取下一线程以运行于处理器; 第二级线程存储设施,用来存储另一数量的线程状态;所述另一数量的线程状态多于所述受限数量的可运行线程寄存器状态;和 可运行线程选择逻辑电路耦合在所述第一级线程状态存储器与所述第二级线程存储设施之间,用来在所述第一级受限数量的可运行线程寄存器状态与所述第二级线程存储设施之间交换线程状态。

【技术特征摘要】
...

【专利技术属性】
技术研发人员:哈罗德F科斯曼蒂莫西J马林斯
申请(专利权)人:国际商业机器公司
类型:发明
国别省市:US[美国]

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

1