使用基本块高速缓存的微处理器制造技术

技术编号:2884403 阅读:185 留言:0更新日期:2012-04-11 18:40
本发明专利技术披露了一种微处理器和一种相关的方法以及数据处理系统。所述微处理器包括指令分裂单元,其被构成用于接收第一个微处理器指令集。所述分裂单元把所述指令集组织成为指令组。在所述指令组中的每个指令共用公共的指令组标记。所述处理器还包括基本块高速缓存装置,其利用指令组格式被组织,并且被构成用于高速缓存由分裂单元产生的指令组。处理器的执行单元适用于执行指令组中的指令。(*该技术在2020年保护过期,可自由使用*)

【技术实现步骤摘要】
本申请的主题和1999,10,28中请的序列号为09/428399,名称为“微处理器中的指令组组织和例外处理”的美国专利的主题相关,其和本申请为同一受让人,在此列为参考。本专利技术一般涉及微处理器结构领域,尤其涉及利用指令组结构、相应的高速缓存功能及其有用的扩展的微处理器。微处理器技术已经达到千兆赫的性能,对微处理器设计者的主要的挑战是利用达到最新技术发展水平的技术,同时又保持和为利用特定的指令系统结构(ISA)操作而设计的大量的已安装软件兼容。为了解决这个问题,设计者已经实现了“分层结构”的微处理器,其适应于接收按照现有的ISA构成的指令,并把接收的指令的指令格式转换为更适合于在千兆赫执行流水线中操作的内部ISA。参看图4,图中示出了分层结构的微处理器401的选择的部分。在这种设计中,微处理器401的高速缓存410接收并存储借助于取单元402从主存储器取来的指令。在指令高速缓存单元410中存储的指令按照第一ISA(即其中写有由处理器401执行的程序的ISA)被格式化。然后从指令高速缓存410中检索指令并通过ISA转换单元412被转换为第二ISA。因为从第一ISA到第二ISA的转换需要多个周期,所以转换处理一般是流水线处理,因而,在任何给定的时刻,可能有多个被从第一ISA转换为第二ISA的指令。然后输出被转换的指令,以便在处理器401的执行流水线422中执行。取单元402包括分支预测逻辑406,其借助于预测分支决定的结果试图确定伴随着分支指令的将被执行的指令的地址。然后,指令被预测性地发出并被根据分支预测执行。然而,当一个分支预测错误时,被悬在微处理器401的指令高速缓存410和结束级432之间的指令必须被刷新。当误预测的分支引起系统刷新时,则招致作为流水线长度的函数的性能损失。必须被刷新的流水线的数量越大,分支误预测性能损失也越大。因为分层体系结构加于处理器流水线,并增加了在一个给定的时刻可能处于“飞行”中的指令的数量,所以和分层体系结构相关的分支预测损失可能成为处理器性能的一个限制因素。因此非常需要实现一种能够解决分支误预测性能损失的分层体系结构的微处理器。此外,还需要能够至少部分地解决由重复执行一段代码而引起的例外条件反复发生的解决方案。还需要一种能够操作实际上较大的发出队,而不牺牲检索下一个要执行的指令的能力。上述的问题通过一种利用指令组和与所述指令组的格式匹配的高速缓存装置的微处理器被大部分解决了。本专利技术的一个实施例提出了一种微处理器和一种相关的方法以及数据处理系统。所述微处理器包括指令分裂单元,其被构成用于接收第一个微处理器指令集。所述分裂单元把所述指令集组织指令组。在所述指令组中的每个指令共用公共的指令组标记。所述处理器还包括基本块高速缓存装置,其利用指令组格式被组织,并且被构成用于高速缓存由分裂单元产生的指令组。处理器的执行单元适用于执行指令组中的指令。在一个实施例中,当在执行指令组中的指令期间产生引起刷新的异常时,则所述的刷新只刷新那些已被从基本块高速缓存中分派的指令。通过只刷新那些已经到达基本块高速缓存的指令,处理器用不着刷新悬挂在分裂单元流水线中的指令。因为被刷新的指令较少,所以可以减少异常性能损失。在一个实施例中,接收的指令被按照第一指令格式格式化,并且按照第二指令格式对第二指令集格式化,其中所述第二指令格式比第一指令格式宽。基本块高速缓存被合适地构成,用于在基本块高速缓存的相应的入口中存储每个指令组。在一个实施例中,基本块高速缓存中的每个入口包括表示相应的基本块高速缓存入口的入口字段和预测下一个要被执行的指令组的指针。处理器最好被构成用于响应误预测的分支更新高速缓存的指针。本专利技术还提出了一种利用指令历史信息和基本块高速缓存一起来改善性能的微处理器、数据处理系统和方法。这种处理器适用于接收一个指令集,并把所述指令集组织指令组,然后,指令组被分派执行。在执行指令组时,记录表示和指令组相关的异常事件的指令历史信息。此后,响应指令历史信息修改指令的执行,以便阻止在随后的指令组执行期间发生异常事件。所述处理器包括存储装置,例如指令高速缓存,L2高速缓存和系统存储器,分裂单元,和基本块高速缓存。分裂单元被构成用于从存储装置接收指令集。分裂单元适用于把指令集组织成指令组。分裂单元可以从第一指令格式到第二指令格式修改指令集的格式。基本块高速缓存的结构适用于存储指令组。基本块高速缓存包括相应于每个基本块高速缓存入口的指令历史字段。指令历史信息表示和指令组相关的异常事件。在优选实施例中,基本块高速缓存的每个入口相应于由分裂单元产生的一个指令组。处理器还可以包括完成表控制逻辑,其被构成用于当指令组完成时存储执行历史字段中的信息。指令历史信息可以表示在指令组中的指令是否具有对另一个指令依赖性,或者可以表示先前的指令组的执行是否引起存储输送异常。在这个实施例中,处理器被构成用于响应检测到指令组先前的执行引起过存储输送异常而以有序方式执行指令。本专利技术还提出一种利用第一发出队和第二发出队的处理器、数据处理系统和相关的方法。所述处理器适用于向发出单元分派指令。所述发出单元包括第一发出队和第二发出队。如果指令在当前不满足被发出的条件则被存储在第一发出队中。如果指令在当前满足被发出的条件则被存储在第二发出队中。处理器从第一发出队的指令中确定要发出的下一个指令。如果指令依赖于另一个指令的执行结果,则可以从第一发出队中转移到第二发出队中。在一个实施例中,指令可以在被发出以便执行之后被从第一发出队中转移到第二发出队中。在这个实施例中,在一个特定的时间间隔内,指令可以被保存在第二发出队中。此后,如果该指令尚未被拒绝,则包含该指令的第二发出队入口不再被分配。所述微处理器包括指令高速缓存,分配单元,其被构成用于接收来自指令高速缓存的指令,以及发送单元,其被构成用于接收来自分配单元的指令。发送单元适用于分配当前够执行条件的分派的指令到第一发出队中,并把当前不够执行条件的指令分配到第二发出队中。本专利技术的其它的目的和优点通过下面结合附图详细说明本专利技术可以更加清楚,其中附图说明图1是包括按照本专利技术的一个实施例的数据处理系统的选择的部分的方块图;图2是按照本专利技术的一个实施例的微处理器的选择的部分的方块图;图3表示由图2所示的处理器的一个实施例执行的指令分裂功能的一个例子;图4是一种微处理器的选择的部分的方块图;图5是图2的微处理器的基本高速缓存块的方块图;图6说明图2的微处理器可能遇到的各种分支情况;图7是适用于利用本专利技术的一个填空表的方块图;图8是包括指令历史信息的基本块高速缓存的方块图;以及图9是包括按照本专利技术的一个实施例的一次发出队和二次发出队的发出队的方块图。虽然本专利技术可以用各种不同的形式实施,此处还是以举例的方式在附图中示出了一些特定的实施例并加以详细说明。不过,应当理解,这里的附图和详细说明并不是为了把本专利技术限制于这些特定的实施例,而恰恰相反,本专利技术应当包括落在由所附权利要求限定的本专利技术的构思范围内的所有改型和等效替代方案。参见图1,其中示出了按照本专利技术的数据处理系统100的一个实施例。系统100包括一个或几个中央处理单元(处理器)101a,101b,101c等(一般被称为处理器101)。在一个实施例中,每个本文档来自技高网...

【技术保护点】
一种用于执行微处理器指令的方法,包括以下步骤:把接收的第一指令集转换为指令组;在被设置的基本块高速缓存的入口中存储所述指令组,其中每个高速缓存装置的入口含有指令组;发出在所述指令组中的指令进行执行;以及响应在指令组中的指令执 行期间产生的异常,只刷新悬挂在基本块高速缓存和最后一级之间的那些指令。

【技术特征摘要】
...

【专利技术属性】
技术研发人员:詹姆斯A卡尔
申请(专利权)人:国际商业机器公司
类型:发明
国别省市:US[美国]

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

1