处理器和指令码生成设备制造技术

技术编号:13671982 阅读:60 留言:0更新日期:2016-09-07 20:02
本申请涉及处理器和指令码生成设备。在包括指令预取缓冲器以从存储器预取具有连续地址的指令组的处理器中,降低了发生总线比所需更多地被指令预取占用的情况的概率。处理器包括指令获取地址发生器,其控制将被预取到指令预取缓冲器中的指令的地址和量。指令获取地址发生器包括存储指令的指令预取量的表,以使得指令预取缓冲器与处理执行单元中出现的分支的分支目的地地址相关联地执行预取。当处理执行单元中出现分支时,指令获取地址发生器使得指令预取缓冲器预取与包括所出现分支的分支目的地地址的所关注的分支目的地地址相对应的指令预取量的指令。

【技术实现步骤摘要】
相关申请的交叉引用这里通过参考并入2015年2月26日提交的日本专利申请第2015-036296号的全部公开内容,包括说明书、附图和摘要。
本专利技术涉及处理器和指令码生成设备,其中指令码生成设备根据以高级语言描述的程序生成可由处理器执行的指令码。具体地,本专利技术可以通过诸如微计算机的处理器(其具有指令高速缓存和预取功能)以及通过使用该处理器的系统适当地使用。
技术介绍
在包括指令高速缓存的处理器中,广泛地采用预取功能,以防止处理能力由于将在高速缓存未命中之后执行的高速缓存填充引起的劣化。预取功能预测处理器将在未来执行的指令,并且在高速缓存未命中发生之前预先将指令读取到预取缓冲器(诸如指令高速缓存)中。提出了各种预取功能,从简单的预取功能(在与当前正在执行的指令的地址连续的地址处读取指令)到高性能预取功能(伴随分支预测)。专利文献1公开了一种处理器,其包括FIFO(先入先出)类型的预取缓冲器,并且基于由指令解码器计算的指令的字数针对指令的每个单元执行预取。其特征在于,可以通过降低当通过预取功能将指令读取到预取缓冲器中时发生的总线仲裁的频率来增加整个系统总线效率。(专利文献1)日本未审查专利申请公开第Hei 2(1990)-242337号
技术实现思路
本专利技术的专利技术人针对专利文献1的调研提出了以下新的问题。当代替FIFO类型的预取缓冲器而对指令高速缓存执行指令预取时,占用总线的时段变得更长,因为一次读取大量的指令。FIFO类型的预取缓冲器以字为单位来执行指令预取,其中一个字具有一个或两个字节。相反,指令高速缓存中的作为高速缓存填充的单位的高速缓存线(通常制成与条目大小一致)例如为128字节。如果包括指令高速缓存的处理器被配置为使得可以在每当执行一个高速缓存线的指令和发生高速缓存未命中时执行高速缓存填充,则由于等待高速缓存填充而导致的性能劣化是显著的。因此,执行推测性指令预取来预先读取多条线是有效的。这里,通过固定值或寄存器设定值给出执行指令预取的计数,即为其执行高速缓存填充的线的数量。在不伴随分支预测的情况下,针对与当前正在执行的指令的地址连续的地址的指令,执行多条线的指令预取。此时,明显地,如果采用固定的指令预取计数,则存在其中发生对没有实际执行的指令的推测性指令预取的情况。例如,当假设在伴随高速缓存未命中的一条线的高速缓存填充之后以固定方式执行两条线的指令预取时,即使在执行包括在第一线中的指令且不执行随后指令的同时出现分支的情况下,也不抵消两条线的随后指令预取而是执行这两条线的随后指令预取。为了执行两条线的随后指令预取,将占用执行高速缓存填充的总线并且将保持等待获得用于获取分支目的地地址的指令的总线权利。不仅在指令预取缓冲器配置有高速缓存存储器的情况下可能发生这种问题,而且类似地在采用FIFO类型的预取缓冲器的情况下也可能发生这种问题。以下解释这种问题的解决方案。根据本专利技术的说明书和附图的描述,本专利技术的其他问题和新特征将变得清楚。根据本申请的一个实施例如下所述。即,处理器包括指令预取缓冲器以从存储器预取具有连续地址的指令组,还包括指令获取地址发生器以控制将被预取至指令预取缓冲器的指令的地址和指令预取量。指令获取地址发生器包括表以存储指
令的指令预取量,以使得指令预取缓冲器与处理执行单元中出现的分支的分支目的地地址相关联地执行预取。当处理执行单元中出现分支时,指令获取地址发生器使得指令预取缓冲器预取与包括所出现分支的分支目的地地址的所关注分支目的地地址相对应的指令预取量的指令。如下简要解释通过上述一个实施例得到的效果。可以抑制降低发生总线比所需更多地被指令预取占用的情况的可能性。附图说明图1是示出根据典型实施例的处理器的结构的实例的框图;图2是示出整个处理器的结构的实例的框图;图3是示出比较实例的处理器中的指令获取地址发生器的结构的框图;图4是示出根据典型实施例的处理器的指令获取地址发生器的结构的实例的框图;图5是示出具有全相联存储器的指令预取计数表的结构的实例的概念图;图6是示出具有集相联存储器的指令预取计数表的结构的实例的概念图;图7是示出根据实施例1的指令获取地址发生器的结构的实例的框图;图8是示意性示出对指令预取计数表进行表写入的过程的解释图;图9是示意性示出从指令预取计数表中对指令获取计数进行表读取的过程的解释图;图10是示意性示出比较实例的处理器的操作的实例的定时图;图11是示意性示出根据典型实施例的处理器的操作的实例的定时图;图12是示出根据实施例1的指令获取地址发生器的结构(与分支预测组合)的另一实例的框图;图13是示出根据实施例2的处理器和安装在其中的指令获取地址发生器的结构的实例的框图;图14是示出根据实施例3的指令获取地址发生器的结构的实例的框图;图15是示出根据实施例4的指令获取地址发生器的结构的实例的框图;图16是示出根据实施例5的指令获取地址发生器的结构的实例的框图;图17是示出根据实施例6的指令获取地址发生器的结构的实例的框图;图18是示出在根据实施例6的指令获取地址发生器中安装的指令预取计数表的相联存储器的条目的结构的实例的解释图;图19是示意性示出根据实施例7的指令码生成设备的结构的实例的解释图;图20是示意性示出由链接器生成的可执行文件的实例的解释图;以及图21是示意性示出由链接器生成的指令预取计数信息的实例的解释图。具体实施方式1.实施例的概述首先,解释本申请中公开的典型实施例的概况。关于典型实施例的概况解释中的圆括号中参考的附图的标号仅示出了附加该标号的部件的概念中包括的内容。(1)〈指令预取量管理表〉本申请中公开的典型实施例是处理器(100),其包括:指令预取缓冲器(20),从存储器(40)中预取具有连续地址的指令组;处理
执行单元(30),从指令预取缓冲器中读取指令并执行指令;以及指令获取地址发生器(11)。结构如下。指令获取地址发生器设置有表(1,2,3),该表存储指令的指令预取量以使得指令预取缓冲器与处理执行单元中出现的分支的分支目的地地址相关联地执行预取。当在处理执行单元中出现分支时,指令获取地址发生器参照该表来计算与所出现的分支的分支目的地地址相对应的指令预取量,并且使指令预取缓冲器预取所计算的指令预取量的指令,包括所关注的分支目的地地址的指令(4-7)。根据该结构,可以抑制降低发生总线(41)比所需更多地被指令预取占用的情况的可能性。(2)〈动态表〉在段落1中,当在处理执行单元中出现分支时,指令获取地址发生器基于在所出现的分支的分支目的地地址与紧接在所关注分支之后出现的分支的地址之间的差异来重写与表(2)的所关注分支目的地地址相对应的指令预取量。根据该结构,基于实际发生的分支来学习指令预取量;因此,可以以更高的精度预测适当的指令预取量。(3)〈静态表〉在段落1中,当处理执行单元执行指定的指令时,在表(3)中写入分支目的地地址和对应的指令预取量。根据该结构,关于没有频繁发生的例外情况的处理(诸如中断),当难以期望如段落2中动态地计算指令预取量时,或者当难以期望保持动态计算的指令预取量直到它接下来被参考时(当其溢出时),可以确定地提供适合的指令预取量。通过程序的离线分析或者通过诸如操作系统的软件,还可以适当地计算指令预取量。(4本文档来自技高网
...

【技术保护点】
一种处理器,包括:指令预取缓冲器,操作为从存储器预取具有连续地址的指令组;处理执行单元,操作为从所述指令预取缓冲器中读取指令并执行所述指令;以及指令获取地址发生器,其中,所述指令获取地址发生器包括:表,操作为存储指令的指令预取量,以使所述指令预取缓冲器与所述处理执行单元中出现的分支的分支目的地地址相关联地执行预取,并且其中,当所述处理执行单元中出现分支时,所述指令获取地址发生器参考所述表来计算与所出现的分支的所述分支目的地地址相对应的指令预取量,并使所述指令预取缓冲器预取所计算的所述指令预取量的指令,包括所关注的分支目的地地址的指令。

【技术特征摘要】
2015.02.26 JP 2015-0362961.一种处理器,包括:指令预取缓冲器,操作为从存储器预取具有连续地址的指令组;处理执行单元,操作为从所述指令预取缓冲器中读取指令并执行所述指令;以及指令获取地址发生器,其中,所述指令获取地址发生器包括:表,操作为存储指令的指令预取量,以使所述指令预取缓冲器与所述处理执行单元中出现的分支的分支目的地地址相关联地执行预取,并且其中,当所述处理执行单元中出现分支时,所述指令获取地址发生器参考所述表来计算与所出现的分支的所述分支目的地地址相对应的指令预取量,并使所述指令预取缓冲器预取所计算的所述指令预取量的指令,包括所关注的分支目的地地址的指令。2.根据权利要求1所述的处理器,其中,当在所述处理执行单元中出现分支时,所述指令获取地址发生器基于在所出现的分支的所述分支目的地地址与紧接在所关注的分支之后出现的分支的地址之间的差异来重写所述表的与所关注的分支目的地地址相对应的所述指令预取量。3.根据权利要求1所述的处理器,其中,当所述处理执行单元执行指定指令时,所述分支目的地地址和对应的所述指令预取量被写入所述表中。4.根据权利要求3所述的处理器,其中,所述表被定义为静态表,其中,所述指令获取地址发生器还包括:动态表,操作为存储指令的指令预取量,以使所述指令预取缓冲器与所述处理执行单元中出现的分支的分支目的地地址相关联地执行预取,其中,当所述处理执行单元中出现分支时,所述指令获取地址发生器基于在所出现分支的分支目的地地址与紧接在所述关注分支之后出现的分支的地址之间的差异来重写所述动态表的与所关注的分支目的地地址相对应的所述指令预取量,并且其中,当所述处理执行单元中出现分支时,所述指令获取地址发生器参照所述静态表和所述动态表中的至少一个来计算与所出现分支的所述分支目的地地址相对应的所述指令预取量,并且使所述指令预取缓冲器预取所计算的指令预取量的指令,包括所关注的分支目的地地址的指令。5.根据权利要求2所述的处理器,其中,所述指令获取地址发生器还包括:分支预测单元,并且其中,当所述处理执行单元中出现分支且所述分支预测单元的分支预测成功时,所述指令获取地址发生器停止向所述表重写与所关注的分支目的地地址相对应的所述指令预取量。6.一种处理器,包括:指令高速缓存;处理执行单元;以及指令获取地址发生器,其中,所述指令高速缓存保持多条线,每条线包括预定数量的指令码,并且针对从所述指令获取地址发生器提供的每个指令预取请求地址从存储器中预取一条线的指令码,其中,所述处理执行单元从所述指令高速缓存读取并执行包括预定数量的指令码的指令,其中,所述指令获取地址发生器包括:指令预取计数表,操作为存储指令预取计数,以使所述指令高速缓存与所述处理执行单元中出现的分支的分支目的地地址相关联地执行预取,并且其中,当所述处理执行单元中出现分支时,所述指令获取地址发
\t生器参照所述指令预取计数表来计算与包括所出现分支的所述分支目的地地址的指令预取请求地址相对应的指令预取计数,并且顺序地向所述指令高速缓存提供从所关注的指令预取请求地址开始继续并且数量上对应于所计算的指令预取计数的所述指令预取请求地址。7.根据权利要求6所述的处理器,其中,当所述处理执行单元中出现分支时,所述指令获取地址发生器基于在所出现分支的所述分支目的地地址与紧接在所关注分支之后出现的分支的地址之间的差异来重写所述指令预取计数表的与所关注的分支目的地地址相对应的所述指令预取计数。8.根据权利要求7所述的处理器,其中,所述处理执行单元包括:分支请求单元,操作为当出现分支时向所述指令获取地址发生器提供所出现分支的分支源地址和分支目的地地址,其中,所述指令获取地址发生器保持所提供的分支目的地地址,并且基于通过从紧接在所关注分支之后出现分支时提供的分支源地址中减去当前保持的分支目的地地址得到的差异来重写保持在所述指令预取计数表中且对应于所述分支目的地地址的指令预取计数。9.根据权利要求7所述的处理器,其中,所述处理执行单元包括:分支请求单元,其中,当所述处理执行单元中出现分支时,所述分支请求单元向所述指令获取地址发生器提供所出现分支的所述分支源地址,其中,所述分支请求单元包括:计数器,操作为在所述处理执行单元中出现分支时开始计数,并且操作为对由所述处理执行单元执行的指令的地址超过与所述指令高速缓存的一条线相对应的地址边界的次数进行计数,其中,所述分支请求单元向所述指令获取地址发生器提供紧接在所关注分支之后出现分支时的时间处的计数值作为分支间距离,并且其中,所述指令获取地址发生器保持所提供的分支目的地地址,
\t并且基于当紧接在所...

【专利技术属性】
技术研发人员:山下源龟井达也
申请(专利权)人:瑞萨电子株式会社
类型:发明
国别省市:日本;JP

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

1