一种应用于同时多线程处理器的取指控制装置及其方法制造方法及图纸

技术编号:2856709 阅读:220 留言:0更新日期:2012-04-11 18:40
本发明专利技术公开了一种应用于同时多线程处理器的取指控制装置及其方法,该装置包括用于记录每线程占用指令队列的项数的计数器、T选二多路选择器、第一按位取反器、第二按位取反器、第一模16运算器、第二模16运算器、第一二选一选择器、第二二选一选择器及减法器。本发明专利技术为每个线程计算了一个取指数量的上界,从而更加均衡地利用了取指带宽,使得同时多线程处理器的平均占用指令队列项数大幅度减少,指令队列冲突率显著降低,同时Cache(高速缓冲存储器)和TLB(快表)的命中率也明显提高,最终使得处理器的性能得到很大的提高。

【技术实现步骤摘要】

本专利技术涉及计算机体系结构和通用微处理器设计领域,尤其涉及一种用于同时多线程处理器的取指控制装置及其方法。
技术介绍
首先介绍说明书中
技术实现思路
所应用到环境,即,同时多线程微处理器系统结构。一个同时多线程处理器的系统结构如图1所示。为了同时运行多个线程,处理器需要为每个线程设置一套独立的用于保存其运行状态的硬件机构,包括程序计数器、定点和浮点寄存器组,以及在存储部件包括Cache、TLB和指令队列中设置的线程标识符。在此,指令队列是指包含同时多线程处理器内取指队列、译码队列、重命名队列和定点/浮点发射队列在内全部队列的统称;在每个时钟周期,取指部件根据分支预测器的结果从指令Cache中读取多个线程的指令送到取指队列,取指队列中的指令按“先进先出”的次序每周期将数量等于译码带宽的指令送到译码部件进行译码,指令经译码和重命名后进入到定点或浮点发射队列等待发射,当条件满足,即,操作数准备好且部件空闲时被发射到相应的功能部件乱序执行,执行结束后再经过指令重排序部件依次写回到寄存器中。如图2所示,同时多线程处理器与传统的基于分支预测和乱序执行的超标量处理器的不同之处在于,前者允许在每个时钟周期从多个线程读取指令执行,因此在一个时钟周期内,同时多线程处理器能够同时利用程序的线程级并行性和指令级并行性来消除水平浪费,另外,当由于长延迟操作或者资源冲突导致只有一个活动线程时,该线程能够使用所有可获得的发射槽,这使得可以通过使用其他线程的未阻塞指令来消除垂直浪费,两方面的改进极大地提高了指令的吞吐率和系统的总体性能。而后者由于两类指令槽浪费现象的存在,导致性能低于同时多线程处理器的性能。从图中可以看到,同时多线程处理器在每个时钟周期可以从多个线程读取指令送到取指队列以供执行部件执行,因此,更加充分地利用了处理器发射槽的带宽,提高了处理器的指令吞吐率。同时多线程处理器在提高指令吞吐率和指令槽资源利用率的同时也增加了线程间对共享硬件资源的竞争。合理分配硬件资源,在提高多线程总体性能的同时不影响单个程序负载的性能,其关键的因素在于取指方法。另外,由于允许在每个时钟周期从多个线程读取指令执行,取指部件和访存部件成为制约同时多线程处理器性能的瓶颈。合理取指,减少不必要的提前或无效取指操作,提高取指效率和取指质量,其关键的因素也在取指方法。其次,我们简单介绍一些现有的同时多线程处理器的取指方法。最简单的取指方法为“随机法”,即取指部件随机地从备选线程取指令执行。另外一种简单的取指方法称为“round-robin”方式,即,轮询法,取指部件根据取指带宽轮流从全部或部分活动线程中读取固定或可变数目的指令到取指队列中供执行。轮询法的一种改进方法称为“round-robin by 1”,该方法为了提高上次选中取指的线程在运行时调入Cache的数据的使用效率,在下次调度时仅调度1个新的线程并淘汰1个旧的线程,从而使大部分线程可以在这个周期继续被取指,提高了Cache数据的利用率,减少了因线程频繁切换导致Cache数据被轮流替换掉的情况。轮询法实现简单,不考虑线程的推进速度和优先级等因素,有可能出现某些线程的指令因延迟执行而长期占据指令队列项导致其他线程无法继续取指和推进的现象,从而降低了系统整体的指令吞吐率。在这三种取指方法中,随机法和轮询法的性能接近,而“round-robin by 1”的方法略优于轮询法。在已有的取指方法中,ICOUNT方法的取指效率和取指质量最高,依据该方法进行取指的程序性能也最好。在ICOUNT取指方法中,取指部件优先选择占据指令队列项数最少的几个线程进行取指,因此,若某线程运行速度快,则其指令在队列中的延迟时间短,可以被很快发射到功能部件执行,表现在指令队列上即占据较少的队列项,从而在下次取指时可以获得较高的优先权;而运行速度慢的线程,由于其指令延迟执行而长期占据队列项,形成指令堆积,因而在下次取指时将具有较低的优先权。在此,ICOUNT方法倾向于使运行速度快的线程优先运行,同时又能保证一定的取指公平性。ICOUNT方法有多种取指参数组合,其中,ICOUNT.2.8的性能最优,其具体步骤为每次选两个线程取指,共取8条指令;首先优先为占据指令队列项最少的线程取指,当其发生指令Cache失效或下一条指令需要跨越指令Cache行时即停止取指,然后,将剩余的取指带宽分配给第二个选中的线程。ICOUNT方法尽量为所选的第一个线程取指,直到停止取指的条件发生或达到最大的取指带宽时为止,在取指带宽有剩余时才为第二个线程取剩余数量的指令,这样会出现第一个线程被取了过多的指令而第二个线程没有足够的指令被取到的现象发生,造成取指带宽利用不均衡,每时钟周期内线程占用的指令队列项数相差较大,指令队列冲突率偏高,同时使得高速缓冲存储器和TLB的命中率受到限制,进而影响处理器性能的进一步提高。在ICOUNT取指方法下,其取指装置仅包含一个线程的选择器、若干个记录线程占用指令队列项的计数器。在每个时钟周期,选择器从所有计数器中选择两个最小的值,其所对应的计数器编号即为将要从中进行取指的线程号,随后,取指部件从选定的第一个线程(其计数器值最小)中尽可能多地取指令,直到达到最大的取指带宽或遇到Cache行的边界或出现Cache不命中时才停止;如果此时仍有剩余的取指带宽,则取指部件从第二个线程(其计数器值次小)中尽可能多地取指令,直到遇到相同的终止条件才停止取指。在该装置中,选择器在取指时比较全部计数器值的相对大小后,这些计数器的值即不再被利用,由此,造成取指带宽利用不均衡,ICOUNT取指装置效率较低,性能较差。在ICOUNT基础上,结合线程优先级的因素还有PICOUNT和PICOUNT2两种取指方法。前者在取指时计算备选线程的优先级和占用指令队列项数两个参数的加权和,其值最小的几个线程获得取指的优先权;后者则在计算加权和时偏重于线程优先级所占的权值。在此,考虑优先级的取指方法可以保证高优先级线程的取指和执行,但却可能导致低优先级线程长期得不到运行或性能发生下降。针对不同的性能指标,也有一些其他的取指方法。如一些贪心算法在取指时可以选择具有最小Cache或TLB失效率的线程进行取指;或选择具有最小平均访存时间的线程进行取指;也可以选择具有最高每周期指令数,即IPG,的值的线程进行取指;另外,也可以根据各线程对硬件资源的使用互补情况进行取指选择,如侧重于使各线程总的数据Cache失效率最小,或侧重于使总的平均访存时间最小,或侧重于使总的IPC值最大等。也有些从提高指令发射队列使用效率,尽量减少指令在队列中等待时间的角度提出了几种门控取指方法,如当线程的延迟执行指令数达到某个限额时即停止从该线程取指,或在线程实际或预测的数据Cache失效率达到某个限额时即停止取指等。这些方法虽然在一定程度上满足了某项性能指标的要求,但由于其不是从处理器最终的性能指标出发进行取指选择,因而其处理器的总体性能都低于基于ICOUNT方法的处理器性能。
技术实现思路
本专利技术的目的在于克服现有技术中取指带宽利用不均衡的问题;以及为了大幅度减少同时多线程处理器的平均占用指令队列项数,显著降低指令队列冲突率,同时明显提高高速缓冲存储器和TLB的命中率,最终提高处理器性能本文档来自技高网
...

【技术保护点】
一种应用于同时多线程处理器的取指方法,包括以下步骤:a)对同时运行的多个线程所占用的指令队列项的项数进行统计;b)将统计后得到的数值进行排序;c)从排序后的序列中选择两个最小的值,将这两个值所对应的线程作为本时钟周期 中选定取指的线程,其他线程在本时钟周期内不进行取指;d)对步骤c)中两个最小的值分别进行逻辑“反”操作并对16进行取模操作,得到对应的两个新值,分别计算两个最小值的取指令条数上限;e)根据取指令条数上限进行取指。

【技术特征摘要】
1.一种应用于同时多线程处理器的取指方法,包括以下步骤a)对同时运行的多个线程所占用的指令队列项的项数进行统计;b)将统计后得到的数值进行排序;c)从排序后的序列中选择两个最小的值,将这两个值所对应的线程作为本时钟周期中选定取指的线程,其他线程在本时钟周期内不进行取指;d)对步骤c)中两个最小的值分别进行逻辑“反”操作并对16进行取模操作,得到对应的两个新值,分别计算两个最小值的取指令条数上限;e)根据取指令条数上限进行取指。2.如权利要求1所述的方法,其特征在于步骤c)中,所述最小值的较小值的取指令条数上限为取指带宽,与所述最小值的较小值逻辑反操作后的值模16运算后的值,两者中最小的值。3.如权利要求1所述的方法,其特征在于步骤c)中,所述最小值的较大值的取指令条数上限为取指带宽与小于所述最小值的较小值的取指令条数上限的所取实际指令条数的差值,与所述最小值的较大值逻辑反操作后的值模16运算后的值,两者中最小的值。4.如权利要求1所述的方法,其特征在于所述取指令条数上限是指当从该线程取指时,若发生高速缓冲存储器不命中、指令跨越高速缓冲存储器边界、线程分支误预测等情况,则停止从该线程继续取指。5.一种应用于同时多线程处理器的取指装置包括用于记录每线程占用指令队列的项...

【专利技术属性】
技术研发人员:何立强刘志勇胡伟武
申请(专利权)人:中国科学院计算技术研究所
类型:发明
国别省市:11[中国|北京]

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

1