一种用于粗粒度多核计算系统的分支处理模块及其分支处理机制技术方案

技术编号:14342364 阅读:123 留言:0更新日期:2017-01-04 14:09
本发明专利技术公开了一种用于粗粒度多核计算系统的分支处理模块及其分支处理机制,其特征是:粗粒度多核计算系统包括片上网络、主控制单元、存储器单元、接口单元和多种功能单元;主控制单元在确认分支预测错误后,可以立即开始分支预测错误恢复,并提前终止已经发射的错误指令的执行,使系统恢复正常工作状态;功能单元在确认分支预测错误后,可以立即结束当前运算任务,恢复空闲状态,释放控制权,等待正确任务的下发。本发明专利技术能够在发现分支预测错误时在极短时间内纠正错误,减少由于分支预测错误带来的性能损失,从而进一步增强分支预测对系统性能的提升,使计算系统达到更高的工作效率。

【技术实现步骤摘要】

本专利技术涉及高密度计算和指令动态调度领域,具体地说是一种用于粗粒度多核计算系统的分支预测错误提前处理及其恢复机制。
技术介绍
多核技术因为低功率消耗、强并行处理能力和优异的计算性能已经成为处理器设计的主流。然而,在多核计算系统运算性能的发挥很大程度上取决于计算系统中的算力能否被最大限度地利用,而通过分支预测的方式提前指令的下发时机,已经被广泛应用于现代超标量处理器中,并被证明为一种有效的提高处理器计算效率的方法和手段。分支预测的性能提升很大程度上取决于分支预测的准确度和分支预测错误时恢复正确工作状态的时间,而对基于片上网络的粗粒度多核计算系统而言,分支预测错误需要很长的时间来恢复系统工作状态,往往由此带来巨大的性能损失。
技术实现思路
本专利技术为了克服现有专利技术的不足之处,提出了一种用于粗粒度多核计算系统的分支处理模块及其分支处理机制,以期能够使主控制单元在发现分支预测错误时在极短时间内纠正错误,减少由于分支预测错误带来的较大性能损失;使功能单元尽早结束错误的计算任务,并释放控制权,从而进一步增强分支预测对系统性能的提升,使计算系统达到更高的工作效率。本专利技术为达到上述目的所采用的技术方案是:本专利技术一种用于粗粒度多核计算系统的分支处理模块,所述粗粒度多核计算系统是基于片上网络的通信架构,所述片上网络包括:片上网络状态层、片上网络配置层和片上网络数据层;所述粗粒度多核计算系统中设置有主控制单元、存储器单元和多种功能单元;所述主控制单元包括:取指模块、解码模块、寄存器重命名模块、调度器模块、发射模块、写回模块、提交模块、空闲虚拟寄存器队列、空闲物理寄存器队列、空闲功能单元队列和寄存器重命名映射表模块;所述取指模块包括:程序指针PC;所述解码模块包括:程序指针接口和若干通用寄存器;所述调度器模块包括:指令窗口存储器;所述提交模块包括:重定序缓冲区;所述寄存器重命名映射表模块包括:前端表格和后端表格;其特点是:在所述粗粒度多核计算系统的主控制单元内还设置有分支处理模块;所述分支处理模块包括:检查点表格、功能单元状态表;所述检查点表内包含:分支指令的任务编号、分支预测结果和缓存程序指针;所述功能单元状态表内包含:各个功能单元的任务编号;所述取指模块收到所述调度器模块的指令读取信号时,根据所述程序指针PC从所述存储器单元中取出任务指令发送给解码模块;所述解码模块判定所述任务指令为分支指令时,对所述分支指令进行预测,得到分支预测结果;再通过所述程序指针接口获取所述程序指针PC,并对所述程序指针PC的数值执行所述任务指令内包含的指针运算操作后,将运算结果作为缓存程序指针,并将所述缓存程序指针连同所述解码模块中的通用寄存器数值、分支预测结果一同存入所述任务指令内,从而得到更新后的任务指令;所述寄存器重命名模块判定更新后的任务指令为分支指令时,将所述更新后的任务指令进行重组打包后,分别发送给所述分支处理模块内的检查点表格和所述提交模块内的重定序缓冲区;所述提交模块检测到所述重定序缓冲区的头部为分支指令时,查询所述检查点表格,若检查点表格为空,则提交所述重定序缓冲区的头部分支指令;若检查点表格非空,则将所述重定序缓冲区的头部分支指令的任务编号与检查点表格首项的任务编号进行比较,若分支指令的任务编号较小,则提交所述重定序缓冲区的头部分支指令;否则,循环查询和比较提交条件,直到满足提交条件后再提交所述重定序缓冲区的头部分支指令;所述分支处理模块接收到所述更新后的任务指令时,将其填入所述检查点表格中,并始终将检查点表的首项作为当前分支指令;所述分支处理模块通过所述片上网络状态层接收当前分支指令的正确跳转结果;并判断所述正确跳转结果与所述分支预测结果是否相同,若相同,则表示分支预测正确,从所述检查点表格头部移除所述当前分支指令,后续项目均向前移动一项;若不相同,则表示分支预测错误,所述分支处理模块向所述取指模块、所述解码模块、所述寄存器重命名模块、所述调度器模块、所述发射模块、所述提交模块和所述寄存器重命名映射表模块均发送分支恢复信号;当所述取指模块、所述解码模块、所述寄存器重命名模块和所述调度器模块收到分支恢复信号时,若自身处在空闲状态,则相应模块立即进入各自的分支恢复状态;否则,相应模块等待空闲状态后再进入分支恢复状态;当所述发射模块收到分支恢复信号时,若自身处在空闲状态时,则立即进入分支恢复状态;若处在底层任务指令请求状态或底层任务指令填充状态时,则等待当前状态结束后立即转入功能单元释放状态后再进入分支恢复状态;若处在其他状态,则继续执行发射操作,直到自身处在空闲状态或底层任务指令请求状态或底层任务指令填充状态;当所述发射模块处于功能单元释放状态,所述发射模块释放掉所述当前分支指令请求的所有功能单元、所有虚拟寄存器和所有物理寄存器,并将所有功能单元、所有虚拟寄存器和所有物理寄存器分别重新送回所述空闲功能单元队列、所述空闲物理寄存器队列和所述空闲虚拟寄存器队列中;当所述取指模块、所述解码模块、所述寄存器重命名模块、所述调度器模块和所述发射模块均已进入分支恢复状态时,所述分支处理模块生成开始恢复信号,并将所述检查点表格中的当前分支指令的缓存程序指针发送给解码模块,同时,控制提交模块将重定序缓冲区中保存的通用寄存器数值发送给解码模块;所述分支处理模块依次检索所述功能单元状态表中各个功能单元的任务编号,对所述任务编号大于所述当前分支指令任务编号的功能单元通过所述片上网络配置层下发提前结束信息用于释放相应功能单元;所述主控制单元在接收到片上网络状态层传来的各个功能单元发送的功能单元释放信息后,将相应功能单元释放信息中所包含的功能单元编号加入所述空闲功能单元队列中;所述解码模块收到所述分支处理模块传来的缓存程序指针和提交模块传来的通用寄存器数值后,将所述通用寄存器数值写入解码模块中的通用寄存器,同时将所述缓存程序指针通过所述程序指针接口发送给所述取指模块;所述取指模块收到所述解码模块传来的缓存程序指针,并用于覆盖所述程序指针PC;所述调度器模块检测到所述开始恢复信号后,检索所述指令窗口存储器中的全部任务指令,将任务编号大于所述当前分支指令的任务编号的项目置为无效,同时发送调度器模块恢复完成信号给分支处理模块;所述提交模块检测到所述开始恢复信号后,检索所述重定序缓冲区,将任务编号大于当前分支指令任务编号的任务指令中作为输出寄存器的虚拟寄存器和物理寄存器选出,并分别送入所述空闲虚拟寄存器队列和所述空闲物理寄存器队列,并将重定序缓冲区的写入指针移动到当前分支指令处,同时发送提交模块恢复完成信号给分支处理模块;所述寄存器重命名映射表模块检测到所述开始恢复信号后,将所述后端表格的内容复制到所述前端表格内,用于覆盖所述前端表格的原有内容,然后将重定序缓冲区中任务编号小于当前分支指令任务编号的任务指令中的体系寄存器AR与虚拟寄存器VR的映射关系更新到前端表格中,同时发送寄存器重命名映射表模块恢复完成信号给分支处理模块;所述分支处理模块收到所述调度器模块恢复完成信号、所述提交模块恢复完成信号和所述寄存器重命名映射表模块恢复完成信号后,分别发送分支处理结束信号给所述取指模块、所述解码模块、所述寄存器重命名模块、所述调度器模块、所述发射模块、所述提交模本文档来自技高网...
一种用于粗粒度多核计算系统的分支处理模块及其分支处理机制

【技术保护点】
一种用于粗粒度多核计算系统的分支处理模块,所述粗粒度多核计算系统是基于片上网络的通信架构,所述片上网络包括:片上网络状态层、片上网络配置层和片上网络数据层;所述粗粒度多核计算系统中设置有主控制单元、存储器单元和多种功能单元;所述主控制单元包括:取指模块、解码模块、寄存器重命名模块、调度器模块、发射模块、写回模块、提交模块、空闲虚拟寄存器队列、空闲物理寄存器队列、空闲功能单元队列和寄存器重命名映射表模块;所述取指模块包括:程序指针PC;所述解码模块包括:程序指针接口和若干通用寄存器;所述调度器模块包括:指令窗口存储器;所述提交模块包括:重定序缓冲区;所述寄存器重命名映射表模块包括:前端表格和后端表格;其特征是:在所述粗粒度多核计算系统的主控制单元内还设置有分支处理模块;所述分支处理模块包括:检查点表格、功能单元状态表;所述检查点表内包含:分支指令的任务编号、分支预测结果和缓存程序指针;所述功能单元状态表内包含:各个功能单元的任务编号;所述取指模块收到所述调度器模块的指令读取信号时,根据所述程序指针PC从所述存储器单元中取出任务指令发送给解码模块;所述解码模块判定所述任务指令为分支指令时,对所述分支指令进行预测,得到分支预测结果;再通过所述程序指针接口获取所述程序指针PC,并对所述程序指针PC的数值执行所述任务指令内包含的指针运算操作后,将运算结果作为缓存程序指针,并将所述缓存程序指针连同所述解码模块中的通用寄存器数值、分支预测结果一同存入所述任务指令内,从而得到更新后的任务指令;所述寄存器重命名模块判定更新后的任务指令为分支指令时,将所述更新后的任务指令进行重组打包后,分别发送给所述分支处理模块内的检查点表格和所述提交模块内的重定序缓冲区;所述提交模块检测到所述重定序缓冲区的头部为分支指令时,查询所述检查点表格,若检查点表格为空,则提交所述重定序缓冲区的头部分支指令;若检查点表格非空,则将所述重定序缓冲区的头部分支指令的任务编号与检查点表格首项的任务编号进行比较,若分支指令的任务编号较小,则提交所述重定序缓冲区的头部分支指令;否则,循环查询和比较提交条件,直到满足提交条件后再提交所述重定序缓冲区的头部分支指令;所述分支处理模块接收到所述更新后的任务指令时,将其填入所述检查点表格中,并始终将检查点表的首项作为当前分支指令;所述分支处理模块通过所述片上网络状态层接收当前分支指令的正确跳转结果;并判断所述正确跳转结果与所述分支预测结果是否相同,若相同,则表示分支预测正确,从所述检查点表格头部移除所述当前分支指令,后续项目均向前移动一项;若不相同,则表示分支预测错误,所述分支处理模块向所述取指模块、所述解码模块、所述寄存器重命名模块、所述调度器模块、所述发射模块、所述提交模块和所述寄存器重命名映射表模块均发送分支恢复信号;当所述取指模块、所述解码模块、所述寄存器重命名模块和所述调度器模块收到分支恢复信号时,若自身处在空闲状态,则相应模块立即进入各自的分支恢复状态;否则,相应模块等待空闲状态后再进入分支恢复状态;当所述发射模块收到分支恢复信号时,若自身处在空闲状态时,则立即进入分支恢复状态;若处在底层任务指令请求状态或底层任务指令填充状态时,则等待当前状态结束后立即转入功能单元释放状态后再进入分支恢复状态;若处在其他状态,则继续执行发射操作,直到自身处在空闲状态或底层任务指令请求状态或底层任务指令填充状态;当所述发射模块处于功能单元释放状态,所述发射模块释放掉所述当前分支指令请求的所有功能单元、所有虚拟寄存器和所有物理寄存器,并将所有功能单元、所有虚拟寄存器和所有物理寄存器分别重新送回所述空闲功能单元队列、所述空闲物理寄存器队列和所述空闲虚拟寄存器队列中;当所述取指模块、所述解码模块、所述寄存器重命名模块、所述调度器模块和所述发射模块均已进入分支恢复状态时,所述分支处理模块生成开始恢复信号,并将所述检查点表格中的当前分支指令的缓存程序指针发送给解码模块,同时,控制提交模块将重定序缓冲区中保存的通用寄存器数值发送给解码模块;所述分支处理模块依次检索所述功能单元状态表中各个功能单元的任务编号,对所述任务编号大于所述当前分支指令任务编号的功能单元通过所述片上网络配置层下发提前结束信息用于释放相应功能单元;所述主控制单元在接收到片上网络状态层传来的各个功能单元发送的功能单元释放信息后,将相应功能单元释放信息中所包含的功能单元编号加入所述空闲功能单元队列中;所述解码模块收到所述分支处理模块传来的缓存程序指针和提交模块传来的通用寄存器数值后,将所述通用寄存器数值写入解码模块中的通用寄存器,同时将所述缓存程序指针通过所述程序指针接口发送给所述取指模块;所述取指模块收到所述解码模块传来的缓存程序指针,并用于覆盖所述程序指针PC;所述调度器模块检测到所述开...

【技术特征摘要】
1.一种用于粗粒度多核计算系统的分支处理模块,所述粗粒度多核计算系统是基于片上网络的通信架构,所述片上网络包括:片上网络状态层、片上网络配置层和片上网络数据层;所述粗粒度多核计算系统中设置有主控制单元、存储器单元和多种功能单元;所述主控制单元包括:取指模块、解码模块、寄存器重命名模块、调度器模块、发射模块、写回模块、提交模块、空闲虚拟寄存器队列、空闲物理寄存器队列、空闲功能单元队列和寄存器重命名映射表模块;所述取指模块包括:程序指针PC;所述解码模块包括:程序指针接口和若干通用寄存器;所述调度器模块包括:指令窗口存储器;所述提交模块包括:重定序缓冲区;所述寄存器重命名映射表模块包括:前端表格和后端表格;其特征是:在所述粗粒度多核计算系统的主控制单元内还设置有分支处理模块;所述分支处理模块包括:检查点表格、功能单元状态表;所述检查点表内包含:分支指令的任务编号、分支预测结果和缓存程序指针;所述功能单元状态表内包含:各个功能单元的任务编号;所述取指模块收到所述调度器模块的指令读取信号时,根据所述程序指针PC从所述存储器单元中取出任务指令发送给解码模块;所述解码模块判定所述任务指令为分支指令时,对所述分支指令进行预测,得到分支预测结果;再通过所述程序指针接口获取所述程序指针PC,并对所述程序指针PC的数值执行所述任务指令内包含的指针运算操作后,将运算结果作为缓存程序指针,并将所述缓存程序指针连同所述解码模块中的通用寄存器数值、分支预测结果一同存入所述任务指令内,从而得到更新后的任务指令;所述寄存器重命名模块判定更新后的任务指令为分支指令时,将所述更新后的任务指令进行重组打包后,分别发送给所述分支处理模块内的检查点表格和所述提交模块内的重定序缓冲区;所述提交模块检测到所述重定序缓冲区的头部为分支指令时,查询所述检查点表格,若检查点表格为空,则提交所述重定序缓冲区的头部分支指令;若检查点表格非空,则将所述重定序缓冲区的头部分支指令的任务编号与检查点表格首项的任务编号进行比较,若分支指令的任务编号较小,则提交所述重定序缓冲区的头部分支指令;否则,循环查询和比较提交条件,直到满足提交条件后再提交所述重定序缓冲区的头部分支指令;所述分支处理模块接收到所述更新后的任务指令时,将其填入所述检查点表格中,并始终将检查点表的首项作为当前分支指令;所述分支处理模块通过所述片上网络状态层接收当前分支指令的正确跳转结果;并判断所述正确跳转结果与所述分支预测结果是否相同,若相同,则表示分支预测正确,从所述检查点表格头部移除所述当前分支指令,后续项目均向前移动一项;若不相同,则表示分支预测错误,所述分支处理模块向所述取指模块、所述解码模块、所述寄存器重命名模块、所述调度器模块、所述发射模块、所述提交模块和所述寄存器重命名映射表模块均发送分支恢复信号;当所述取指模块、所述解码模块、所述寄存器重命名模块和所述调度器模块收到分支恢复信号时,若自身处在空闲状态,则相应模块立即进入各自的分支恢复状态;否则,相应模块等待空闲状态后再进入分支恢复状态;当所述发射模块收到分支恢复信号时,若自身处在空闲状态时,则立即进入分支恢复状态;若处在底层任务指令请求状态或底层任务指令填充状态时,则等待当前状态结束后立即转入功能单元释放状态后再进入分支恢复状态;若处在其他状态,则继续执行发射操作,直到自身处在空闲状态或底层任务指令请求状态或底层任务指令填充状态;当所述发射模块处于功能单元释放状态,所述发射模块释放掉所述当前分支指令请求的所有功能单元、所有虚拟寄存器和所有物理寄存器,并将所有功能单元、所有虚拟寄存器和所有物理寄存器分别重新送回所述空闲功能单元队列、所述空闲物理寄存器队列和所述空闲虚拟寄存器队列中;当所述取指模块、所述解码模块、所述寄存器重命名模块、所述调度器模块和所述发射模块均已进入分支恢复状态时,所述分支处理模块生成开始恢复信号,并将所述检查点表格中的当前分支指令的缓存程序指针发送给解码模块,同时,控制提交模块将重定序缓冲区中保存的通用寄存器数值发送给解码模块;所述分支处理模块依次检索所述功能单元状态表中各个功能单元的任务编号,对所述任务编号大于所述当前分支指令任务编号的功能单元通过所述片上网络配置层下发提前结束信息用于释放相应功能单元;所述主控制单元在接收到片上网络状态层传来的各个功能单元发送的功能单元释放信息后,将相应功能单元释放信息中所包含的功能单元编号加入所述空闲功能单元队列中;所述解码模块收到所述分支处理模块传来的缓存程序指针和提交模块传来的通用寄存器数值后,将所述通用寄存器数值写入解码模块中的通用寄存器,同时将所述缓存程序指针通过所述程序指针接口发送给所述取指模块;所述取指模块收到所述解码模块传来的缓存程序指针,并用于覆盖所述程序指针PC;所述调度器模块检测到所述开始恢复信号后,检索所述指令窗口存储器中的全部任务指令,将任务编号大于所述当前分支指令的任务编号的项目置为无效,同时发送调度器模块恢复完成信号给分支处理模块;所述提交模块检测到所述开始恢复信号后,检索所述重定序缓冲区,将任务编号大于当前分支指令任务编号的任务指令中作为输出寄存器的虚拟寄存器和物理寄存器选出,并分别送入所述空闲虚拟寄存器队列和所述空闲物理寄存器队列,并将重定序缓冲区的写入指针移动到当前分支指令处,同时发送提交模块恢复完成信号给分支处理模块;所述寄存器重命名映射表模块检测到所述开始恢复信号后,将所述后端表格的内容复制到所述前端表格内,用于覆盖所述前端表格的原有内容,然后将重定序缓冲区中任务编号小于当前分支指令任务编号的任务指令中的体系寄存器AR与虚拟寄存器VR的映射关系更新到前端表格中,同时发送寄存器重命名映射表模块恢复完成信号给分支处理模块;所述分支处理模块收到所述调度器模块恢复完成信号、所述提交模块恢复完成信号和所述寄存器重命名映射表模块恢复完成信号后,分别发送分支处理结束信号给所述取指模块、所述解码模块、所述寄存器重命名模块、所述调度器模块、所述发射模块、所述提交模块,并清空所述检查点表格;所述取指模块、所述解码模块、所述寄存器重命名模块、所述调度器模块、所述发射模块和所述提交模块接收到所述分支处理模块发送的分支处理结束信号,各自回到空闲状态,从而完成分支预测恢复过程。2.一种用于粗粒度多核计算系统的分支处理机制,所述粗粒度多核计算系统是基于片上网络的通信架构,所述片上网络包括:片上网络状态层、片上网络配置层和片上网络数据层;所述粗粒度多核计算系统包括:主控制单元、存储器单元和多种功能单元;所述多种功能单元包括:分支恢复模块、状态层接口、数据层接口、配置层接口;所述主控制单元包括:取指模块、解码模块、寄存器重命名模块、调度器模块、发射模块、写回模块、提交模块、分支处理模块、空闲虚拟寄存器队列、空闲物理寄存器队列、空闲功能单元队列和寄存器重命名映射表模块;所述取指模块包括:程序指针...

【专利技术属性】
技术研发人员:宋宇鲲李浩洋张多利杜高明蒋雯
申请(专利权)人:合肥工业大学
类型:发明
国别省市:安徽;34

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

1