一种处理器指令循环段执行过程避免重复取指的方法与流程
本发明涉及处理器微架构,尤其涉及一种处理器指令循环段执行过程避免重复取指的方法。
背景技术:
1、处理器运行程序时会大量执行循环代码,数据运算、设备控制这类常用程序里循环代码占比很高,多数场景下循环运行工作量能占到整体程序30%-70%,处理器处理指令统一遵循取指译码执行的流水线流程,取指环节消耗的时钟周期数量,直接决定整套程序运行性能。
2、程序存放指令的外部存储设备读取延迟高,单次调取指令需要10-50个时钟周期,当前处理器处理循环逻辑依靠跳转指令往复执行,每一轮循环结束后,都要重新访问外部存储读取循环首指令,循环执行多少次,就要重复多少次完整外部取指操作。
3、持续重复访问外部存储会带来两类负面效果,循环执行次数越多,反复取指累积等待时长越长,程序整体运行速度持续下降,外部存储读写功耗是内部寄存器读写的5-10倍,频繁发起外部访存会显著提升处理器功耗,对嵌入式、移动这类低功耗设备影响突出。
4、现有处理器架构未设计适配循环指令复用需求的专用硬件存储与配套控制逻辑,无法缓存已读取的循环指令,只能通过反复访问外部存储完成循环运算,取指延迟高、整机功耗大的技术缺陷难以有效改善。
技术实现思路
1、本发明的目的是为了解决现有技术中存在上述缺点,而提出的一种处理器指令循环段执行过程避免重复取指的方法。
2、为了实现上述目的,本发明采用了如下技术方案:一种处理器指令循环段执行过程避免重复取指的方法,包括以下步骤:
3、s1、设置一循环控制寄存器和一指令寄存器组;
4、s2、当处理器的译码单元识别到循环标志指令时,配置所述循环控制寄存器的循环参数,并将该寄存器中的循环有效位置为有效状态,以启用循环模式;
5、s3、在循环段的首次执行过程中,从外部存储体读取循环段指令,同时将所读取的指令依次缓存至所述指令寄存器组;
6、s4、当读取到循环段的最后一条指令后,停止从所述外部存储体读取指令,转而从所述指令寄存器组中按序读取缓存的指令,用于循环段的后续重复执行,其中,单次从所述指令寄存器组读取指令所需的第一时钟周期数小于单次从所述外部存储体读取指令所需的第二时钟周期数;
7、s5、每完成一轮从所述指令寄存器组读取全部循环段指令的操作后,将所述循环控制寄存器中存储的循环次数减1,直至所述循环次数减至0时,将所述循环有效位置为无效状态,恢复从所述外部存储体读取指令。
8、优选的,所述s2中的循环参数至少包括循环有效位、循环总次数、循环段的起始地址和循环段的结束地址;
9、其中,所述起始地址记为ba,所述结束地址记为ea,循环段的指令条数m满足:m=ea-ba+1。
10、优选的,所述循环有效位为有效状态时,处理器禁止从所述外部存储体读取指令,所述循环有效位为无效状态时,所述指令寄存器组停止输出缓存的指令,并执行清零操作。
11、优选的,所述指令寄存器组包含个寄存器,每个寄存器对应唯一编号,所述s3中的缓存过程按照编号从小到大的顺序依次写入指令数据,所述s4中的按序读取过程按照编号从小到大的顺序依次输出指令数据,当读至最后一条缓存指令对应的编号后,跳回起始编号继续读出,以实现循环读出。
12、优选的,所述指令寄存器组的存储深度为,当所述s2中循环段的指令条数m>时,触发溢出处理机制;
13、其中,m由结束地址与起始地址之差加1确定。
14、优选的,所述s4和s5构成的循环执行阶段的总取指时间满足:
15、;
16、其中,为所述s3中首次执行时从外部存储体完成全部循环段指令取指所需的时间,c为循环总次数,m为循环段指令条数,为单条指令从所述指令寄存器组读取所需的时钟周期数。
17、优选的,首次执行时从外部存储体完成全部循环段指令取指所需的时间满足:
18、;
19、其中,为单条指令从外部存储体读取所需的平均时钟周期数;
20、所述s3至s5所构成的循环执行全过程相对于传统重复访存方式的总取指时间节约比例r满足:
21、;
22、当且时,。
23、优选的,所述s2中的循环标志指令为专用指令或特定操作码,用于触发所述循环控制寄存器的参数加载,所述参数至少包括循环总次数、起始地址和结束地址。
24、优选的,在所述s4或s5执行期间,即所述循环有效位为有效状态期间,若接收到外部中断或循环终止指令,则立即将所述循环有效位置为无效状态,终止从所述指令寄存器组读取指令,并恢复从所述外部存储体读取指令。
25、优选的,所述s2中配置的所述循环控制寄存器支持在执行阶段通过软件指令动态修改其存储的循环参数,以适配嵌套循环场景,嵌套循环中,外层循环的参数在内层循环执行前暂存于处理器内部临时寄存器或栈中,待内层循环结束后恢复至所述循环控制寄存器。
26、本发明提出的设计方案,在应用过程中,其有益效果在于:
27、1、本发明通过循环控制寄存器与指令寄存器组的硬件组合,实现循环段指令为一次取指、多次复用,从而将单条指令取指延时从10-50个时钟周期降低至约1个时钟周期,显著提升程序执行效率,尤其在高迭代次数场景下效果突出;
28、2、本发明通过减少循环执行过程中对外部存储体的重复访问,将外部访存操作次数降低90%以上,从而有效降低cpu功耗,整体功耗可降低30%-60%,特别适用于嵌入式及移动低功耗设备;
29、3、本发明通过指令寄存器组支持自定义存储深度、循环控制寄存器参数可动态修改,实现适配不同长度循环段及嵌套循环等复杂场景,同时无需修改cpu核心架构,具备良好的兼容性与集成灵活性;
30、4、本发明通过避免循环回跳分支导致的流水线清空操作,减少了分支预测失败带来的3-5个时钟周期延时,提升流水线执行稳定性,进一步优化cpu整体处理效率。
1.一种处理器指令循环段执行过程避免重复取指的方法,其特征在于,包括以下步骤:
2.根据权利要求1所述的一种处理器指令循环段执行过程避免重复取指的方法,其特征在于:所述s2中的循环参数至少包括循环有效位、循环总次数、循环段的起始地址和循环段的结束地址;
3.根据权利要求2所述的一种处理器指令循环段执行过程避免重复取指的方法,其特征在于:所述循环有效位为有效状态时,处理器禁止从所述外部存储体读取指令,所述循环有效位为无效状态时,所述指令寄存器组停止输出缓存的指令,并执行清零操作。
4.根据权利要求3所述的一种处理器指令循环段执行过程避免重复取指的方法,其特征在于:所述指令寄存器组包含个寄存器,每个寄存器对应唯一编号,所述s3中的缓存过程按照编号从小到大的顺序依次写入指令数据,所述s4中的按序读取过程按照编号从小到大的顺序依次输出指令数据,当读至最后一条缓存指令对应的编号后,跳回起始编号继续读出,以实现循环读出。
5.根据权利要求4所述的一种处理器指令循环段执行过程避免重复取指的方法,其特征在于:所述指令寄存器组的存储深度为,当所述s2中循环段的指令条数m>时,触发溢出处理机制;
6.根据权利要求1所述的一种处理器指令循环段执行过程避免重复取指的方法,其特征在于:所述s4和s5构成的循环执行阶段的总取指时间满足:
7.根据权利要求6所述的一种处理器指令循环段执行过程避免重复取指的方法,其特征在于:首次执行时从外部存储体完成全部循环段指令取指所需的时间满足:
8.根据权利要求1所述的一种处理器指令循环段执行过程避免重复取指的方法,其特征在于:所述s2中的循环标志指令为专用指令或特定操作码,用于触发所述循环控制寄存器的参数加载,所述参数至少包括循环总次数、起始地址和结束地址。
9.根据权利要求1所述的一种处理器指令循环段执行过程避免重复取指的方法,其特征在于:在所述s4或s5执行期间,即所述循环有效位为有效状态期间,若接收到外部中断或循环终止指令,则立即将所述循环有效位置为无效状态,终止从所述指令寄存器组读取指令,并恢复从所述外部存储体读取指令。
10.根据权利要求1所述的一种处理器指令循环段执行过程避免重复取指的方法,其特征在于:所述s2中配置的所述循环控制寄存器支持在执行阶段通过软件指令动态修改其存储的循环参数,以适配嵌套循环场景,嵌套循环中,外层循环的参数在内层循环执行前暂存于处理器内部临时寄存器或栈中,待内层循环结束后恢复至所述循环控制寄存器。
版权声明:本站专利文献数据主要来源于国家知识产权局等公开渠道,由 技术新讯 进行整理汇编。页面设计及数据汇编的著作权归本站所有。全部内容仅供个人学习、科研评估与技术交流参考,严禁用于任何商业用途(包括但不限于直接生产制造、技术转让、倒卖数据等)。
免责条款:专利技术具有时效性,本站不对资料的绝对准确性、完整性和可实施性提供任何明示或暗示的担保。因参考本站内容造成的直接或间接损失,本站不承担相关法律责任。若您认为本站内容有侵权问题,请及时提供权属证明与我们联系,本站将在核实后依法处理。反馈意见:yyfuon@163.com