[发明专利]一种用于粗粒度多核计算系统的分支处理模块及其分支处理机制有效

专利信息
申请号: 201610645196.9 申请日: 2016-08-08
公开(公告)号: CN106293642B 公开(公告)日: 2018-10-02
发明(设计)人: 宋宇鲲;李浩洋;张多利;杜高明;蒋雯 申请(专利权)人: 合肥工业大学
主分类号: G06F9/38 分类号: G06F9/38;G06F9/50;G06F11/14
代理公司: 安徽省合肥新安专利代理有限责任公司 34101 代理人: 陆丽莉;何梅生
地址: 230009 安*** 国省代码: 安徽;34
权利要求书: 查看更多 说明书: 查看更多
摘要: 发明公开了一种用于粗粒度多核计算系统的分支处理模块及其分支处理机制,其特征是:粗粒度多核计算系统包括片上网络、主控制单元、存储器单元、接口单元和多种功能单元;主控制单元在确认分支预测错误后,可以立即开始分支预测错误恢复,并提前终止已经发射的错误指令的执行,使系统恢复正常工作状态;功能单元在确认分支预测错误后,可以立即结束当前运算任务,恢复空闲状态,释放控制权,等待正确任务的下发。本发明能够在发现分支预测错误时在极短时间内纠正错误,减少由于分支预测错误带来的性能损失,从而进一步增强分支预测对系统性能的提升,使计算系统达到更高的工作效率。
搜索关键词: 一种 用于 粒度 多核 计算 系统 分支 处理 模块 及其 机制
【主权项】:
1.一种用于粗粒度多核计算系统的分支处理模块,所述粗粒度多核计算系统是基于片上网络的通信架构,所述片上网络包括:片上网络状态层、片上网络配置层和片上网络数据层;所述粗粒度多核计算系统中设置有主控制单元、存储器单元;所述主控制单元包括:取指模块、解码模块、寄存器重命名模块、调度器模块、发射模块、写回模块、提交模块、空闲虚拟寄存器队列、空闲物理寄存器队列、空闲功能单元队列和寄存器重命名映射表模块;所述取指模块包括:程序指针PC;所述解码模块包括:程序指针接口和若干通用寄存器;所述调度器模块包括:指令窗口存储器;所述提交模块包括:重定序缓冲区;所述寄存器重命名映射表模块包括:前端表格和后端表格;其特征是:在所述粗粒度多核计算系统的主控制单元内还设置有分支处理模块;所述分支处理模块包括:检查点表格、功能单元状态表;所述检查点表格内包含:分支指令的任务编号、分支预测结果和缓存程序指针;所述功能单元状态表内包含:各个功能单元的任务编号;所述取指模块收到所述调度器模块的指令读取信号时,根据所述程序指针PC从所述存储器单元中取出任务指令发送给解码模块;所述解码模块判定所述任务指令为分支指令时,对所述分支指令进行预测,得到分支预测结果;再通过所述程序指针接口获取所述程序指针PC,并对所述程序指针PC的数值执行所述任务指令内包含的指针运算操作后,将运算结果作为缓存程序指针,并将所述缓存程序指针连同所述解码模块中的通用寄存器数值、分支预测结果一同存入所述任务指令内,从而得到更新后的任务指令;所述寄存器重命名模块判定更新后的任务指令为分支指令时,将所述更新后的任务指令进行重组打包后,分别发送给所述分支处理模块内的检查点表格和所述提交模块内的重定序缓冲区;所述提交模块检测到所述重定序缓冲区的头部为分支指令时,查询所述检查点表格,若检查点表格为空,则提交所述重定序缓冲区的头部分支指令;若检查点表格非空,则将所述重定序缓冲区的头部分支指令的任务编号与检查点表格首项的任务编号进行比较,若分支指令的任务编号较小,则提交所述重定序缓冲区的头部分支指令;否则,循环查询和比较提交条件,直到满足提交条件后再提交所述重定序缓冲区的头部分支指令;所述分支处理模块接收到所述更新后的任务指令时,将其填入所述检查点表格中,并始终将检查点表格的首项作为当前分支指令;所述分支处理模块通过所述片上网络状态层接收当前分支指令的正确跳转结果;并判断所述正确跳转结果与所述分支预测结果是否相同,若相同,则表示分支预测正确,从所述检查点表格头部移除所述当前分支指令,后续项目均向前移动一项;若不相同,则表示分支预测错误,所述分支处理模块向所述取指模块、所述解码模块、所述寄存器重命名模块、所述调度器模块、所述发射模块、所述提交模块和所述寄存器重命名映射表模块均发送分支恢复信号;当所述取指模块、所述解码模块、所述寄存器重命名模块和所述调度器模块收到分支恢复信号时,若自身处在空闲状态,则相应模块立即进入各自的分支恢复状态;否则,相应模块等待空闲状态后再进入分支恢复状态;当所述发射模块收到分支恢复信号时,若自身处在空闲状态时,则立即进入分支恢复状态;若处在底层任务指令请求状态或底层任务指令填充状态时,则等待当前状态结束后立即转入功能单元释放状态后再进入分支恢复状态;若处在其他状态,则继续执行发射操作,直到自身处在空闲状态或底层任务指令请求状态或底层任务指令填充状态;当所述发射模块处于功能单元释放状态,所述发射模块释放掉所述当前分支指令请求的所有功能单元、所有虚拟寄存器和所有物理寄存器,并将所有功能单元、所有虚拟寄存器和所有物理寄存器分别重新送回所述空闲功能单元队列、所述空闲物理寄存器队列和所述空闲虚拟寄存器队列中;当所述取指模块、所述解码模块、所述寄存器重命名模块、所述调度器模块和所述发射模块均已进入分支恢复状态时,所述分支处理模块生成开始恢复信号,并将所述检查点表格中的当前分支指令的缓存程序指针发送给解码模块,同时,控制提交模块将重定序缓冲区中保存的通用寄存器数值发送给解码模块;所述分支处理模块依次检索所述功能单元状态表中各个功能单元的任务编号,对所述任务编号大于所述当前分支指令任务编号的功能单元通过所述片上网络配置层下发提前结束信息用于释放相应功能单元;所述主控制单元在接收到片上网络状态层传来的各个功能单元发送的功能单元释放信息后,将相应功能单元释放信息中所包含的功能单元编号加入所述空闲功能单元队列中;所述解码模块收到所述分支处理模块传来的缓存程序指针和提交模块传来的通用寄存器数值后,将所述通用寄存器数值写入解码模块中的通用寄存器,同时将所述缓存程序指针通过所述程序指针接口发送给所述取指模块;所述取指模块收到所述解码模块传来的缓存程序指针,并用于覆盖所述程序指针PC;所述调度器模块检测到所述开始恢复信号后,检索所述指令窗口存储器中的全部任务指令,将任务编号大于所述当前分支指令的任务编号的项目置为无效,同时发送调度器模块恢复完成信号给分支处理模块;所述提交模块检测到所述开始恢复信号后,检索所述重定序缓冲区,将任务编号大于当前分支指令任务编号的任务指令中作为输出寄存器的虚拟寄存器和物理寄存器选出,并分别送入所述空闲虚拟寄存器队列和所述空闲物理寄存器队列,并将重定序缓冲区的写入指针移动到当前分支指令处,同时发送提交模块恢复完成信号给分支处理模块;所述寄存器重命名映射表模块检测到所述开始恢复信号后,将所述后端表格的内容复制到所述前端表格内,用于覆盖所述前端表格的原有内容,然后将重定序缓冲区中任务编号小于当前分支指令任务编号的任务指令中的体系寄存器AR与虚拟寄存器VR的映射关系更新到前端表格中,同时发送寄存器重命名映射表模块恢复完成信号给分支处理模块;所述分支处理模块收到所述调度器模块恢复完成信号、所述提交模块恢复完成信号和所述寄存器重命名映射表模块恢复完成信号后,分别发送分支处理结束信号给所述取指模块、所述解码模块、所述寄存器重命名模块、所述调度器模块、所述发射模块、所述提交模块,并清空所述检查点表格;所述取指模块、所述解码模块、所述寄存器重命名模块、所述调度器模块、所述发射模块和所述提交模块接收到所述分支处理模块发送的分支处理结束信号,各自回到空闲状态,从而完成分支预测恢复过程。
下载完整专利技术内容需要扣除积分,VIP会员可以免费下载。

该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于合肥工业大学,未经合肥工业大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服

本文链接:http://www.vipzhuanli.com/patent/201610645196.9/,转载请声明来源钻瓜专利网。

×

专利文献下载

说明:

1、专利原文基于中国国家知识产权局专利说明书;

2、支持发明专利 、实用新型专利、外观设计专利(升级中);

3、专利数据每周两次同步更新,支持Adobe PDF格式;

4、内容包括专利技术的结构示意图流程工艺图技术构造图

5、已全新升级为极速版,下载速度显著提升!欢迎使用!

请您登陆后,进行下载,点击【登陆】 【注册】

关于我们 寻求报道 投稿须知 广告合作 版权声明 网站地图 友情链接 企业标识 联系我们

钻瓜专利网在线咨询

周一至周五 9:00-18:00

咨询在线客服咨询在线客服
tel code back_top