【技术实现步骤摘要】
相关申请的交叉引用这里通过参考并入2015年2月26日提交的日本专利申请第2015-036296号的全部公开内容,包括说明书、附图和摘要。
本专利技术涉及处理器和指令码生成设备,其中指令码生成设备根据以高级语言描述的程序生成可由处理器执行的指令码。具体地,本专利技术可以通过诸如微计算机的处理器(其具有指令高速缓存和预取功能)以及通过使用该处理器的系统适当地使用。
技术介绍
在包括指令高速缓存的处理器中,广泛地采用预取功能,以防止处理能力由于将在高速缓存未命中之后执行的高速缓存填充引起的劣化。预取功能预测处理器将在未来执行的指令,并且在高速缓存未命中发生之前预先将指令读取到预取缓冲器(诸如指令高速缓存)中。提出了各种预取功能,从简单的预取功能(在与当前正在执行的指令的地址连续的地址处读取指令)到高性能预取功能(伴随分支预测)。专利文献1公开了一种处理器,其包括FIFO(先入先出)类型的预取缓冲器,并且基于由指令解码器计算的指令的字数针对指令的每个单元执行预取。其特征在于,可以通过降低当通过预取功能将指令读取到预取缓冲器中时发生的总线仲裁的频率来增加整个系统总线效率。(专利文献1)日本未审查专利申请公开第Hei 2(1990)-242337号
技术实现思路
本专利技术的专利技术人针对专利文献1的调研提出了以下新的问题。当代替FIFO类型的预取缓冲器而对指令高速缓存执行指令预取时,占用总线的时段变得更长,因为一次读取大量的指令。FIFO类型的预取缓冲器以字为单位来执行指令预取,其中一个字具有一个或两个字节。相反,指令高速缓存中的作为高速缓存填充的单位的高速缓存线(通 ...
【技术保护点】
一种处理器,包括:指令预取缓冲器,操作为从存储器预取具有连续地址的指令组;处理执行单元,操作为从所述指令预取缓冲器中读取指令并执行所述指令;以及指令获取地址发生器,其中,所述指令获取地址发生器包括:表,操作为存储指令的指令预取量,以使所述指令预取缓冲器与所述处理执行单元中出现的分支的分支目的地地址相关联地执行预取,并且其中,当所述处理执行单元中出现分支时,所述指令获取地址发生器参考所述表来计算与所出现的分支的所述分支目的地地址相对应的指令预取量,并使所述指令预取缓冲器预取所计算的所述指令预取量的指令,包括所关注的分支目的地地址的指令。
【技术特征摘要】
2015.02.26 JP 2015-0362961.一种处理器,包括:指令预取缓冲器,操作为从存储器预取具有连续地址的指令组;处理执行单元,操作为从所述指令预取缓冲器中读取指令并执行所述指令;以及指令获取地址发生器,其中,所述指令获取地址发生器包括:表,操作为存储指令的指令预取量,以使所述指令预取缓冲器与所述处理执行单元中出现的分支的分支目的地地址相关联地执行预取,并且其中,当所述处理执行单元中出现分支时,所述指令获取地址发生器参考所述表来计算与所出现的分支的所述分支目的地地址相对应的指令预取量,并使所述指令预取缓冲器预取所计算的所述指令预取量的指令,包括所关注的分支目的地地址的指令。2.根据权利要求1所述的处理器,其中,当在所述处理执行单元中出现分支时,所述指令获取地址发生器基于在所出现的分支的所述分支目的地地址与紧接在所关注的分支之后出现的分支的地址之间的差异来重写所述表的与所关注的分支目的地地址相对应的所述指令预取量。3.根据权利要求1所述的处理器,其中,当所述处理执行单元执行指定指令时,所述分支目的地地址和对应的所述指令预取量被写入所述表中。4.根据权利要求3所述的处理器,其中,所述表被定义为静态表,其中,所述指令获取地址发生器还包括:动态表,操作为存储指令的指令预取量,以使所述指令预取缓冲器与所述处理执行单元中出现的分支的分支目的地地址相关联地执行预取,其中,当所述处理执行单元中出现分支时,所述指令获取地址发生器基于在所出现分支的分支目的地地址与紧接在所述关注分支之后出现的分支的地址之间的差异来重写所述动态表的与所关注的分支目的地地址相对应的所述指令预取量,并且其中,当所述处理执行单元中出现分支时,所述指令获取地址发生器参照所述静态表和所述动态表中的至少一个来计算与所出现分支的所述分支目的地地址相对应的所述指令预取量,并且使所述指令预取缓冲器预取所计算的指令预取量的指令,包括所关注的分支目的地地址的指令。5.根据权利要求2所述的处理器,其中,所述指令获取地址发生器还包括:分支预测单元,并且其中,当所述处理执行单元中出现分支且所述分支预测单元的分支预测成功时,所述指令获取地址发生器停止向所述表重写与所关注的分支目的地地址相对应的所述指令预取量。6.一种处理器,包括:指令高速缓存;处理执行单元;以及指令获取地址发生器,其中,所述指令高速缓存保持多条线,每条线包括预定数量的指令码,并且针对从所述指令获取地址发生器提供的每个指令预取请求地址从存储器中预取一条线的指令码,其中,所述处理执行单元从所述指令高速缓存读取并执行包括预定数量的指令码的指令,其中,所述指令获取地址发生器包括:指令预取计数表,操作为存储指令预取计数,以使所述指令高速缓存与所述处理执行单元中出现的分支的分支目的地地址相关联地执行预取,并且其中,当所述处理执行单元中出现分支时,所述指令获取地址发
\t生器参照所述指令预取计数表来计算与包括所出现分支的所述分支目的地地址的指令预取请求地址相对应的指令预取计数,并且顺序地向所述指令高速缓存提供从所关注的指令预取请求地址开始继续并且数量上对应于所计算的指令预取计数的所述指令预取请求地址。7.根据权利要求6所述的处理器,其中,当所述处理执行单元中出现分支时,所述指令获取地址发生器基于在所出现分支的所述分支目的地地址与紧接在所关注分支之后出现的分支的地址之间的差异来重写所述指令预取计数表的与所关注的分支目的地地址相对应的所述指令预取计数。8.根据权利要求7所述的处理器,其中,所述处理执行单元包括:分支请求单元,操作为当出现分支时向所述指令获取地址发生器提供所出现分支的分支源地址和分支目的地地址,其中,所述指令获取地址发生器保持所提供的分支目的地地址,并且基于通过从紧接在所关注分支之后出现分支时提供的分支源地址中减去当前保持的分支目的地地址得到的差异来重写保持在所述指令预取计数表中且对应于所述分支目的地地址的指令预取计数。9.根据权利要求7所述的处理器,其中,所述处理执行单元包括:分支请求单元,其中,当所述处理执行单元中出现分支时,所述分支请求单元向所述指令获取地址发生器提供所出现分支的所述分支源地址,其中,所述分支请求单元包括:计数器,操作为在所述处理执行单元中出现分支时开始计数,并且操作为对由所述处理执行单元执行的指令的地址超过与所述指令高速缓存的一条线相对应的地址边界的次数进行计数,其中,所述分支请求单元向所述指令获取地址发生器提供紧接在所关注分支之后出现分支时的时间处的计数值作为分支间距离,并且其中,所述指令获取地址发生器保持所提供的分支目的地地址,
\t并且基于当紧接在所...
【专利技术属性】
技术研发人员:山下源,龟井达也,
申请(专利权)人:瑞萨电子株式会社,
类型:发明
国别省市:日本;JP
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。