[发明专利]一种CPU中加速无条件跳转的方法及电路有效
| 申请号: | 201911301722.X | 申请日: | 2019-12-17 |
| 公开(公告)号: | CN111124494B | 公开(公告)日: | 2023-07-25 |
| 发明(设计)人: | 王粟;肖佐楠;郑茳 | 申请(专利权)人: | 天津国芯科技有限公司 |
| 主分类号: | G06F9/30 | 分类号: | G06F9/30;G06F9/448 |
| 代理公司: | 天津滨海科纬知识产权代理有限公司 12211 | 代理人: | 耿树志 |
| 地址: | 300457 天津市滨海新区开发*** | 国省代码: | 天津;12 |
| 权利要求书: | 查看更多 | 说明书: | 查看更多 |
| 摘要: | |||
| 搜索关键词: | 一种 cpu 加速 无条件 跳转 方法 电路 | ||
本发明提供了一种使用在嵌入式CPU中的,用于加速程序中无条件跳转的方法及其电路实现。该方法通过在CPU中,加入软件可寻址寄存器及相应的取指计算与控制电路,从而实现通过寄存器访问指令,直接无缝切换CPU取指流水线,达到在绝大多数情况下加速无条件跳转的效果。
技术领域
本发明属于集成电路中的嵌入式处理器技术领域,尤其是涉及一种CPU中加速无条件跳转的方法及电路。
背景技术
CPU(中央处理器)的核心功能是读取并执行软件程序指令。读取并执行指令的第一步就是取指,即CPU向总线或存储设备发出目标指令的地址,总线或存储设备根据CPU发出的地址,返回目标指令给CPU的过程。程序一般是顺序读取并执行的,直到发生程序的跳转。也就是说,取指时目标指令的地址是顺序递增的,直到遇到跳转指令。
从CPU发出地址,到总线或存储设备返回目标指令,是有一定延迟时间的。为了整体上在一定时间内尽量多的取指,CPU通常采用流水线的方式发出地址和接受指令,如图1所示。CPU在时间t0发出目标地址0,在下一个cycle(时钟周期)不等指令0返回,就继续顺序发出地址1,如此下去。当总线或存储设备返回目标地址0所对应的指令0时,CPU已流水线化地发出了d个地址,即CPU的取指延迟是d。
如果指令0经过CPU译码,发现正好是一条跳转指令,它的执行会将CPU的下一条指令的目标地址跳转到了一个新的地址n,那么时间t(d+j)之前发出的地址和已经取得的指令,就都作废了。CPU重新流水线化地发出地址n及其后续地址。当指令n进入CPU时,时间已经过去了t(d+j+d)了。
总结起来,一条跳转指令,使得CPU相对浪费了d+j个cycle,其中d是取指延迟时间,j是跳转指令译码和目标地址的计算时间。程序的跳转打断了原有的取指流水线,不仅使CPU陷入等待而不能全速运行,而且取到的很多作废的指令数据,白白浪费了宝贵的总线带宽资源。可以说,程序跳转是CPU性能的主要影响因素之一。
程序跳转,按照类型,可以分为无条件跳转和条件跳转两大类。无条件跳转是指程序会无条件地跳转到另一个确定的指令地址。在软件上通常对应着子函数的调用和退出。条件跳转是指程序会根据某个变量的值,来判断是否跳转到另一个确定的指令地址。由于条件跳转不在本文讨论范围内,因此本文之后的跳转都默认指代无条件跳转。
对无条件跳转的加速方法可以分为软件和硬件两个方面。在软件上着重减少程序跳转的次数,比如优化编译器,采用内联函数等。在硬件上,着重减少跳转产生的延迟开销,比如采用跳转地址查找表等。
跳转地址查找表,其基本结构与CPU中常用的缓存(Cache)基本一致。CPU中的取指单元,流水线化地向总线发出指令的目的地址,每条地址除了送至总线外,还送入跳转地址查找表中,与各表项中存储的源地址进行逐一比较。如果与某个源地址一致(即所谓的命中),该源地址对应的目的地址,就被路选出来,作为下一条取指地址。上述过程使得取指流水线无缝地跳转到了新的程序段继续运行,避免了跳转的延迟开销,其效果如图2所示。
图2中在t0时刻地址0在跳转地址查找表中命中,查得新的指令地址为n,因此在t1时刻CPU直接向总线发出地址n,并在t2时刻继续顺序寻址n+1。经过td延迟后,总线依次流水化地返回指令0,指令n,指令n+1等。t0时刻的无缝跳转切换,节省了d+j个cycle。指令n在译码执行时发现需要跳转至地址f,即t1时刻的地址n未在查找表中命中,导致在t(d+j+1)时刻CPU重新发出地址f,并等待至t(2d+j+1)时刻才取得指令f,浪费了d+j个cycle。
由上可知,跳转地址查找表对跳转的加速效果是十分理想的,但前提是跳转源地址在查表时必须命中。
但在实际情况中,由于采用Cache结构,源地址到目的地址的首次跳转,都是未命中的。只有再次发生相同的跳转时才可能命中,因此对于程序中只发生一次的那些跳转,查找表并无作用。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于天津国芯科技有限公司,未经天津国芯科技有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201911301722.X/2.html,转载请声明来源钻瓜专利网。





