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

    • 摘要:

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

    • 专利类型:

      发明专利

    • 申请/专利号:

      CN201210010895.8

    • 申请日期:

      2012.01.14

    • 公开/公告号:

      CN102566974A

    • 公开/公告日:

      2012-07-11

    • 发明人:

      李静梅 关海洋

    • 申请人:

      哈尔滨工程大学

    • 主分类号:

      G06F9/34(2006.01)I,G,G06,G06F,G06F9

    • 分类号:

      G06F9/34(2006.01)I,G06F9/38(2006.01)I,G,G06,G06F,G06F9,G06F9/34,G06F9/38

    • 主权项:

      一种基于同时多线程的取指控制方法,其特征是:步骤一:在处理器的每一个时钟周期,取指部件根据程序计数器读取指令的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表获取分支指令的模式历史位Sc,用于实际的分支预测操作;步骤十:将获取的模式历史位Sc输入到预测决定函数,完成分支预测结果的计算操作,同时,通过状态转换函数δ来完成模式历史位的更新操作,更新后的模式历史位将由原来的Ri,c?k?Ri,c?k+1......Ri,c?1变为Ri,c?k+1Ri,c?k+2......Ri,c;步骤十一:将分支指令Bi的预测结果写入分支结果输出表BRT中;当下次有相同的分支指令被预测时,若预测结果与BRT表中的PRED值相同,则CONF加1;反之,CONF做减1操作;步骤十二:通过TBHRIT表的更新电路,将获取的分支输出结果Ri,c左移入线程历史寄存器中的最末位上,并将预测的历史信息更新为分支指令提交的历史信息;步骤十三:通过BTAHRIT表的更新电路,将获取分支输出结果Ri,c所对应的目标地址历史信息左移入地址历史寄存器中的最末位上,并将预测的分支指令目标地址更新为分支指 令提交时的实际地址信息;步骤十四:当分支预测器对下一分支指令Bi+1进行分支预测时,首先根据其PC值索引BRT表中的CONF字段;若CONF大于等于2,则BPIT表中的TAG字段记为1,分支预测电路将不对指令Bi+1进行分支预测操作,而是直接将存储的分支结果输出;反之,若CONF小于2,则BPIT表中的TAG字段记为0,分支指令重新执行分支预测操作,并将预测结果与BRT表中的数据进行比对,完成CONF字段和PRED字段的更新操作;最后,将预测结果告知取指单元;步骤十五:若在分支预测的整个过程中出现分支误预测现象,则将处理器启动误预测处理机制即时停止剩余操作,并取消误预测分支指令后所属同一线程的正在流水线中运行的全部指令,线程的PC值调整为分支后的正确目标指令地址,然后从新的地址重新开始读取指令执行;同时,根据分支的实际执行结果调整分支结果输出表BRT中相应表目项的CONF字段和PRED字段,以供该分支指令再次执行时使用.