基于同时多线程的取指控制方法技术

技术编号:7526371 阅读:215 留言:0更新日期:2012-07-12 06:57
本发明专利技术提供的是一种基于同时多线程的取指控制方法。在处理器的每一个时钟周期,取指部件根据程序计数器读取指令的PC值,先选定两个优先级较高的线程作为取指线程,之后计算每个线程所需的实际指令数,进行读取指令的操作;双优先级资源分配机制按照线程IPC值和Cache失效率这两项参数,计算线程在取指阶段所需的系统资源,完成资源的动态分配操作;而TBHBP分支预测器则配合取指部件的取指操作,通过将读取到分支指令Bi的全局历史信息和局部历史信息进行连接,作为二级模式匹配表PHT的索引,获取模式匹配位Sc,将计算结果输入到分支结果输出表BRT;当分支指令Bi再次被执行时,通过选择器Selector判断CONF字段是否大于等于2,如果是则直接将记录的分支结果输出,最后将取到的指令放入指令Cache中,完成取指控制的全部操作。

【技术实现步骤摘要】

本专利技术涉及的是ー种取指控制方法。具体地说是ー种基于同时多线程的指令获取处理方法。
技术介绍
随着计算机体系结构的发展,为顺应人们对高性能处理器的迫切需求,同时多线程处理器应运而生,成为目前主流的微处理器结构。针对同时多线程处理器的各项研究变得十分活跃,同时多线程处理器的取指控制方法作为高性能处理器领域的研究热点备受关注。近年来,国内外许多专家学者和科研机构对其展开积极的研究和探索。在取指策略方面,美国华盛顿大学的Tullsen教授提出目前公认的性能较好的取指策略IC0UNT。 ICOUNT策略授予运行速度快的线程以较高的优先级,有效地阻止某一线程阻塞指令队列, 使得指令队列中的指令并行最大化,也是传统处理器中取指性能最好的,但因其取指带宽利用不均衡、指令队列冲突率高的缺点,因此极大地限制了同时多线程处理器性能的充分发挥。在分支预测器方面,由McFarling提出Gshare预测器,通过将地址高位和历史低位做“异或”处理,使得出现干扰的分支指令被映像到不同的预测表目项,有效地缓解了线程间指令互扰现象的发生,但却可能将新的分支別名干扰引入到原本不发生冲突的分支指令之间,因此分支预测性能还有待提高。
技术实现思路
本专利技术的目的在于提供一种能提高处理器的指令呑吐率,取指带宽利用均勻,能降低指令队列冲突率和提高分支预测性能的。本专利技术的目的是这样实现的步骤ー在处理器的每ー个时钟周期,取指部件根据程序计数器读取指令的PC 值;步骤ニ 通过T选2多路选择器选择指令队列项数计数器值最小的两个线程进行输出,假设线程1的优先级高于线程2 ;步骤三线程1的计数值先经加法器和乘法器执行多项表达式的运算,之后将结果值依次进行一次按位取反和模16运算操作,将输出值通过2选1选择器与取指带宽进行比较,取较小值;除读取指令的计算外,线程2的执行过程与1相同,对于线程2,读取的指令数为线程1的取指数与取指带宽的差值;步骤四将两个线程的输出结果送入取指部件寄存器完成取指带宽的划分;步骤五双优先级资源分配机制按照线程IPC值和Cache失效率这两项參数,计算线程在取指阶段所需的系统资源,完成资源的动态分配操作。步骤六判断是否存在分支指令;若有,则根据分支指令Bi的PC值索引分支预测信息表BPIT,读取分支指令所属线程索引号TID ;反之,则将读取的指令送入指令Cache ;4步骤七通过获取的TID编号索引线程分支历史寄存器信息表TBHRIT,读取线程预测的分支历史信息BPHI,作为分支预测的全局历史信息;同吋,通过获取的指令PC值索引分支目标地址历史寄存器信息表BTAHRIT,读取分支指令的目标地址BPTA,并根据指令地址读取用于分支预测的局部历史信息;步骤八将每个线程的分支历史信息BHR和根据目标地址读取的历史信息BHT通过哈希函数结合在一起,作为ニ级模式匹配表PHT的索引;步骤九通过拼接的历史信息索引PHT表获取分支指令的模式历史位な,用于实际的分支预测操作;步骤十将获取的模式历史位な输入到预测决定函数,完成分支预测结果的计算操作,同吋,通过状态转换函数δ来完成模式历史位的更新操作,更新后的模式历史位将由原来的 Ri,c-k Ri, c-k+1......Ri, c-1 变为 Ri,c-k+lRi,c-k+2......Ri, c ;步骤十一将分支指令Bi的预测结果写入分支结果输出表BRT中;当下次有相同的分支指令被预测时,若预测结果与BRT表中的PRED值相同,则CONF加1 ;反之,CONF做减 1操作;步骤十二 通过TBHRIT表的更新电路,将获取的分支输出结果Ri,c左移入线程历史寄存器中的最末位上,并将预测的历史信息更新为分支指令提交的历史信息;步骤十三通过BTAHRIT表的更新电路,将获取分支输出结果Ri,c所对应的目标地址历史信息左移入地址历史寄存器中的最末位上,并将预测的分支指令目标地址更新为分支指令提交时的实际地址信息;步骤十四当分支预测器对下一分支指令Bi+Ι进行分支预测吋,首先根据其PC值索引BRT表中的CONF字段;若CONF大于等于2,则BPIT表中的TAG字段记为1,分支预测电路将不对指令Bi+Ι进行分支预测操作,而是直接将存储的分支结果输出;反之,若CONF 小于2,则BPIT表中的TAG字段记为0,分支指令重新执行分支预测操作,并将预测结果与 BRT表中的数据进行比对,完成CONF字段和PRED字段的更新操作;最后,将预测结果告知取指単元;步骤十五若在分支预测的整个过程中出现分支误预测现象,则将处理器启动误预测处理机制即时停止剰余操作,并取消误预测分支指令后所属同一线程的正在流水线中运行的全部指令,线程的PC值调整为分支后的正确目标指令地址,然后从新的地址重新开始读取指令执行;同时,根据分支的实际执行结果调整分支结果输出表BRT中相应表目项的CONF字段和PRED字段,以供该分支指令再次执行时使用。本专利技术还可以包括1、所述计算线程在取指阶段所需的系统资源中,所述系统资源包括取指带宽、指令队列长度、保留站队列长度,资源分配的具体方式为权利要求1. 一种,其特征是步骤ー在处理器的每ー个时钟周期,取指部件根据程序计数器读取指令的PC值; 步骤ニ 通过T选2多路选择器选择指令队列项数计数器值最小的两个线程进行输出, 假设线程1的优先级高于线程2 ;步骤三线程1的计数值先经加法器和乘法器执行多项表达式的运算,之后将结果值依次进行一次按位取反和模16运算操作,将输出值通过2选1选择器与取指带宽进行比较,取较小值;除读取指令的计算外,线程2的执行过程与1相同,对于线程2,读取的指令数为线程1的取指数与取指带宽的差值;步骤四将两个线程的输出结果送入取指部件寄存器完成取指带宽的划分; 步骤五双优先级资源分配机制按照线程IPC值和Cache失效率这两项參数,计算线程在取指阶段所需的系统资源,完成资源的动态分配操作。步骤六判断是否存在分支指令;若有,则根据分支指令Bi的PC值索引分支预测信息表BPIT,读取分支指令所属线程索引号TID ;反之,则将读取的指令送入指令Cache ;步骤七通过获取的TID编号索引线程分支历史寄存器信息表TBHRIT,读取线程预测的分支历史信息BPHI,作为分支预测的全局历史信息;同吋,通过获取的指令PC值索引分支目标地址历史寄存器信息表BTAHRIT,读取分支指令的目标地址BPTA,并根据指令地址读取用于分支预测的局部历史信息;步骤八将每个线程的分支历史信息BHR和根据目标地址读取的历史信息BHT通过哈希函数结合在一起,作为ニ级模式匹配表PHT的索引;步骤九通过拼接的历史信息索引PHT表获取分支指令的模式历史位な,用于实际的分支预测操作;步骤十将获取的模式历史位な输入到预测决定函数,完成分支预测结果的计算操作,同吋,通过状态转换函数δ来完成模式历史位的更新操作,更新后的模式历史位将由原来的 Ri, c-k Ri, c-k+1......Ri, c-1 变为 Ri,c-k+IRi, c-k+2......Ri, c ;步骤十一将分支指令Bi的预测结果写入分支结果输出表BRT中;当下次有相同的分支指令被预测时,若预测结果与BRT表中的PRED值相同,则CONF加1 ;反之,CONF做减1操本文档来自技高网...

【技术保护点】

【技术特征摘要】

【专利技术属性】
技术研发人员:李静梅关海洋
申请(专利权)人:哈尔滨工程大学
类型:发明
国别省市:

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

1
相关领域技术