多线程处理器中用于降低线程切换时延的方法和装置制造方法及图纸

技术编号:2889126 阅读:211 留言:0更新日期:2012-04-11 18:40
一种用于降低多处理器中的线程切换时延的方法和装置。其在基本指令队列中存储活动线程的指令,在线程切换指令队列中存储待用线程的指令。在活动线程执行期间,从基本指令队列中分配指令以执行。发生线程切换时,从线程切换指令队列中分配指令以执行。同时,存储在线程切换指令队列中的指令被传输给基本指令队列。从而,消除了将待用线程的指令重新填充到基本指令队列的总时间。(*该技术在2018年保护过期,可自由使用*)

【技术实现步骤摘要】

本专利技术一般涉及多线程处理器中用于降低线程切换时延的方法和装置。现在,用于高性能、单片微处理器的最常用的结构是采用精简指令集计算机的RISC结构。由于半导体技术的发展,RISC结构的目标已成为开发出差不多在每个机器的时钟周期都能启动一条指令的处理器设计。这种每条指令时钟周期数或称为CPI的度量标准被经常用于表征高性能处理器的结构。指令流水线技术及高速缓冲存储器结构特征已使得CPI的改善成为可能。流水线指令的执行使得后面的指令在前面已发出的指令执行完之前就可开始执行。高速缓冲存储器使得在大多数情况下,不需等待一个完整的主存储器存取时间,就可使指令继续执行。尽管用作主存储器的存储器设备的速度不断提高,但是这种存储器芯片与高档处理器之间的速度差距却在不断加大。因此当前设计的高档处理器的相当多的执行时间浪费在等待高速缓冲存储器的未命中上,可以预见,除非实现存储器时延容许技术,否则存储器访问延时将占用越来越多的处理器执行时间的比率。一种已知的容许存储器时延的技术是多线程。目前有两种多线程技术硬件多线程和软件多线程。硬件多线程技术所采用的处理器在芯片上要保持若干个任务或线程的状态,它一般涉及为每个线程复制处理器的寄存器。有两种基本的硬件多线程技术形式。常规的方式是在处理器中保持N个线程或状态并以周期(cycle-by-cycle)为基础将线程交错。这种方式由于处于一个线程中的指令被分离开,从而消除了流水线所存在的相关性问题。硬件多线程技术的另一种形式是对一些长时延事件进行线程切换。本专利技术的一种实施例就是使用硬件多线程技术并对一些长时延事件执行线程间的切换处理。但是,线程切换本身需要占用一些时钟周期。由于线程切换所导致的时延其相当一部分是由于要求开始执行一个新的线程的取指令操作的结果。附图说明图1示出了用于由一个多线程处理器的多个流水线进行处理而分配指令的现有技术的结构。如图1所示,指令传送多路器8具有第一和第二输入。第一输入与一个存有多条指令的指令高速缓冲存储器4相连。存储在指令高速缓冲存储器4中的指令属于活动态的线程(active thread),即当前被执行的线程,及一个或多个等待执行的线程(dormant thread),即当前不被执行的线程。指令传送多路器8的第二个输入与主存储器和/或存储器子系统2相连。主存储器存储每个线程的所有指令,而存储器子系统例如二级高速缓冲存储器可以存储的指令数小于各线程所有的指令数但大于指令高速缓冲存储器4中的指令数。如图1所示,指令高速缓冲存储器4也与主存储器和/或存储器子系统2相连。根据从控制逻辑6所接收的线路填充旁路信号,指令传送多路器8输出由控制逻辑6所寻址的来自于指令高速缓冲存储器4或主存储器和/或存储器子系统的指令。指令传送多路器8向基本指令队列10输出指令。基本指令队列10所存储的多条指令被输出分配给多个处理流水线以供多线程处理器执行。发生线程切换时,基本指令队列10中的指令是无效的,并且在第一时钟周期,由控制逻辑6生成正在成为活动线程的待用线程的指令地址。在第二个时钟周期,根据新生成的指令地址对指令进行寻址,并且控制逻辑6输出一个线路填充旁路信号,使得指令传送多路器8选择与指令高速缓冲存储器4相连的输入。若被寻址的指令驻留在指令高速缓冲存储器4中,则在第三个时钟周期,指令传送多路器8向基本指令队列10输出这些指令,基本指令队列10输出这些指令以分配给处理流水线。相应地,正在成为活动线程的待用线程的指令驻留在指令高速缓冲存储器4中时,将占用三个时钟周期以完成线程切换。当然,如果指令高速缓冲存储器4中没有包含由控制逻辑6所寻址的,即将成为活动线程的待用线程的指令,则完成线程切换的时间将根据解决指令高速缓冲存储器未命中问题所需要的时间而增加。本专利技术的一个目的是提供一种用于降低多线程处理器中线程切换时延的方法和装置。本专利技术另一个目的是提供一种用于降低多线程处理器中线程切换时延的方法和装置,它能从需要执行一个线程切换的时间中消除重新填充基本指令队列的时间。本专利技术的这些以及其它目的将通过除了提供一个用于存储活动线程的基本指令队列外还提供一个线程切换指令队列来实现,其中该队列用于存储待用线程指令。当发生线程切换时,存储在线程切换指令队列中的指令被输出以供执行,从而消除了由于必须等待基本指令队列被重新填充而导致的线程切换时延。另外,与即将成为活动线程的待用线程指令从线程切换指令队列中输出的同时,存储在线程切换指令队列中的一些指令被传输给基本指令队列。从线程切换指令队列中最先输出的指令输出之后,用于执行的指令会再一次从基本指令队列中输出。由于基本指令队列中已被预先填充进最初存储在线程切换指令队列中的指令,因此进一步消除了因填充基本指令队列而造成的延时。本专利技术其它目的,特征和特点;方法、操作及相关结构部件的功能;或其组合及构造的经济性通过以下结合附图的实施例的详细描述将更清楚。其中实施例及附图均属于本说明书的一部分,不同的附图中的相应部分用相同的参考标记。本专利技术通过以下的详细叙述及附图将更易理解,它们仅用于说明本专利技术,而不是用于限制本专利技术。其中图1是用于分配指令的现有技术结构;图2是根据本专利技术用于分配指令的结构。根据本专利技术的用于分配指令的结构包括一个与指令传送多路器相连的线程切换指令队列及与一个基本指令队列并行的输出多路器。线程切换指令队列存储待用线程指令,而基本指令队列存储活动线程指令。发生线程切换时,存储在线程切换指令队列中的指令被输出多路器输出以备执行,从而消除了因必须等待基本指令队列被重新填充而导致的线程切换时延。另外,正在成为活动线程的待用线程的指令是由输出多路器输出时,其中一些指令被传输给基本指令队列。从线程切换指令队列获取初始指令输出之后,输出多路器再一次输出从基本指令队列中获取的指令,以备执行。由于基本指令队列中已被预先填充进最初存储在线程切换指令队列中的指令,故又进一步消除了由于填充基本指令队列而导致的延时。现在将参考图2详细地讨论根据本专利技术的分配指令的结构。如图2所示,按照与上述所讨论的与现有技术的指令分配结构相同的方式连接指令传送多路器8,控制逻辑6,指令高速缓冲存储器4,及主存储器和/或存储器子系统2。同样的,控制逻辑6向指令传送多路器8输出一个线路填充旁路信号,该信号表明指令传送多路器8应该输出来自于指令高速缓冲存储器4的指令还是来自于主存储器和/或存储器子系统2的指令。根据本专利技术的用于分配指令的结构还包括一个指令填充多路器12,一个线程切换指令队列14及一个输出多路器16。指令填充多路器12具有一个第一和第二输入。第一输入与指令传送多路器8的输出相连。指令填充多路器12的第二输入与输出多路器16的输出相连。指令填充多路器12根据从控制逻辑6所接收的指令切换信号将来自于指令传送多路器8或输出多路器16的指令输出给基本指令队列10。线程切换指令队列14也接收指令传送多路器8的输出,线程切换指令队列14及基本指令队列10将他们的输出传送给输出多路器16。输出多路器16根据由控制逻辑6所生成的线程切换信号选择性地输出来自于基本指令队列10或线程切换指令队列14的输出指令。由指令多路器16输出的指令被分配给多线程处理器的多个处理流水线。在活动本文档来自技高网...

【技术保护点】
一种用于降低多线程处理器中的线程切换时延的方法,包括: (a)将一个活动线程的指令存入一个基本指令队列,所述活动线程是当前被所述多线程处理器所执行的线程; (b)将一个待用线程的指令存入一个线程切换指令队列,所述待用线程是当前不被所述多线程处理器执行的线程; (c)在所述活动线程执行期间分配所述基本指令队列中用于执行的指令;及 (d)在发生线程切换时分配所述线程切换指令队列中用于执行的指令。

【技术特征摘要】
...

【专利技术属性】
技术研发人员:威廉姆托马斯弗里恩菲力普罗格斯黑列三世
申请(专利权)人:国际商业机器公司
类型:发明
国别省市:US[美国]

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

1