用于使用常量高速缓冲存储器将字面数产生的数据更高效地转发到依赖指令的方法和设备的制造方法

文档序号:9291634阅读:339来源:国知局
用于使用常量高速缓冲存储器将字面数产生的数据更高效地转发到依赖指令的方法和设备的制造方法
【技术领域】
[0001]本发明涉及微处理器。
【背景技术】
[0002]在典型中央处理单元(CPU)管线流中,管线中的指令将首先获得其操作数,并且接着执行,然后最终回写结果,并且可能将结果转发到后续的依赖性消耗指令。根据CPU微型架构,这个进程通常跨越多个管线级发生以便优化性能和频率。
[0003]在含有多个执行管线的超标量处理器中,将一个指令的结果转发到管线中的一或多个消耗指令,可能是对性能至关重要的功能,如果无法高效地执行这个功能,可能会导致管线停滞。数据相依性停滞是最常见的停滞,其涉及指令尝试分派到其相应管线以便执行,其中停滞的指令等待操作数的产生者完成。将所需的操作数从其产生者转发到停滞的指令时的延迟,会导致CPU性能降低。

【发明内容】

[0004]本发明的实施例涉及用于使用用于存储常量(字面数或立即数)的高速缓冲存储器将字面数产生的数据更高效地转发到依赖指令的系统和方法。
[0005]在一个实施例中,处理器包含寄存器、第一管线、高速缓冲存储器和控制器。所述控制器响应于第一管线对指令进行解码而在高速缓冲存储器中的条目中存储值,其中所述指令在完成执行后即刻将所述值写入到所述寄存器,并且其中在所述第一管线对所述指令进行解码时确定所述值或者所述值是可用的。所述控制器在所述条目中设置标记字段以用所述寄存器标记所述条目,并且将所述条目中的标记字段设置成指示所述条目是有效的。所述指令可以是移动立即数指令。
[0006]在另一实施例中,一种方法包含:在第一管线中对第一指令进行解码,其中所述第一指令在完成执行后即刻将值写入到寄存器,并且其中在所述第一管线对所述第一指令进行解码时,确定所述值或者所述值是可用的。所述方法进一步包含在高速缓冲存储器中的条目中存储所述值;用所述寄存器标记所述条目;以及将所述条目设置成有效。
[0007]在另一实施例中,一种处理器包含:用以对第一指令进行解码的第一管线,其中所述第一指令在完成执行后即刻将值写入到寄存器,并且其中在所述第一管线对所述第一指令进行解码时,确定所述值或者所述值是可用的。所述处理器进一步包含:用于存储的装置,所述用于存储的装置用以在高速缓冲存储器中的条目中存储值;用于标记的装置,所述用于标记的装置用以用寄存器标记所述条目;以及用于设置的装置,所述用于设置的装置用以将所述条目设置成有效的。
[0008]在另一实施例中,一种非暂时性计算机可读媒体存储有指令以使处理器执行一个进程。所述进程包含:在第一管线中对第一指令进行解码,其中所述第一指令在完成执行后即刻将值写入到寄存器,并且其中在所述第一管线对所述第一指令进行解码时确定所述值或者所述值是可用的;在高速缓冲存储器中的条目中存储所述值;用所述寄存器标记所述条目;以及将所述条目设置成有效的。
【附图说明】
[0009]呈现附图以协助描述本发明的实施例,且提供所述图式仅用于说明实施例而非对其加以限制。
[0010]图1说明根据实施例的处理器。
[0011 ] 图2说明根据实施例的方法。
[0012]图3说明可以应用实施例的无线通信系统。
【具体实施方式】
[0013]在以下针对本发明的特定实施例的描述和相关图式中揭示本发明的若干方面。可在不脱离本发明的范围的情况下设计替代实施例。另外,将不会详细描述或将省略本发明的众所周知的元件以免混淆本发明的相关细节。
[0014]本文中使用词语“示范性”意指“充当实例、例子或说明”。在本文中被描述为“示范性”的任何实施例未必被解释为比其它实施例优选或有利。同样,术语“本发明的实施例”并非要求本发明的所有实施例包含所论述的特征、优势或操作模式。
[0015]本文中所使用的术语仅仅是为了描述特定实施例的目的,且并不希望限制本发明的实施例。如本文中所使用,单数形式“一”、“一个”和“所述”意图还包含复数形式,除非上下文另外清楚地指示。将进一步理解,术语“包括”和/或“包含”在于本文中使用时指定所陈述的特征、整数、步骤、操作、元件和/或组件的存在,但并不排除一或多个其它特征、整数、步骤、操作、元件、组件和/或其群组的存在或添加。
[0016]另外,依据待由(例如)计算装置的元件执行的动作序列来描述许多实施例。将认识到,可由特定电路(例如,专用集成电路(ASIC))、由通过一或多个处理器执行的程序指令或由两者的组合来执行本文中所述的各种动作。另外,可认为本文中所描述的这些动作序列完全体现于任何形式的计算机可读存储媒体内,所述计算机可读存储媒体中存储有对应计算机指令集合,所述指令在被执行时将使相关联的处理器执行本文中所描述的功能性。因此,本发明的各种方面可以若干不同形式来体现,所有所述形式均被涵盖在所主张的主题的范围内。另外,对于本文中所描述的实施例中的每一者来说,任何此些实施例的对应形式可在本文中被描述为(例如)“经配置以(执行所描述的动作)的逻辑”。
[0017]图1说明处理器100的组件,其中为了便于说明,并未说明所有组件。许多处理器是超标量处理器,采用一个以上管线。图1中说明了两个管线,标记为102a和102b,但是实际上超标量处理器中可能存在两个以上管线。为简单起见,每一管线中展示了三个级,但是实际上很可能使用不止三个级。
[0018]图1的管线中说明的是指令提取级104a和104b,解码级106a和106b,和执行级108a和108b。管线可以包含其它级,仅举几例,例如寄存器提取、危险检查、高速缓冲存储器命中检测、数据提取和用于加载和寄存器到寄存器操作的回写。控制器功能单元,标记为110,控制管线102a和102b 0
[0019]移动指令是用于将数据从一个位置移动(复制或写入)到另一位置的常用指令。移动指令通常写成MOV,并且这里将遵照这条惯例。移动指令的一个常见用法是将常量的值复制到架构式寄存器中。有待复制的常量值可被称为立即数(immediate)或字面数(literal)。用于将常量移动到寄存器的移动指令可以称为移动立即数指令和并且写成MOVRm#constant,其中constant是指常量值,并且Rm是指常量值被写入的架构式寄存器。在图1中,寄存器Rm标记为118,并且被说明为寄存器堆120内的一个寄存器。
[0020]在对移动立即数指令进行解码后,实施例即刻将常量作为条目的一部分存储在高速缓冲存储器中,所述高速缓冲存储器被称作常量高速缓冲存储器,并且在图1中标记为112。常量高速缓冲存储器112中的条目在图1中标记为114,并且包括三个字段:标记字段,标记为114a ;常量字段,标记为114b,和旗标字段,标记为114c。正如其名称暗示的,常量字段114b存储与条目相关联的常量值。标记字段114a识别常量值将要写入(或移动)到的寄存器。旗标字段114c包括一或多个位,用以指示条目114的状态。对于一些实施例,旗标字段114c的宽度可以是一位,指示条目是否有效。
[0021]常量高速缓冲存储器112可以在处理器100中作为寄存器堆实现。在图1的图示中,常量高速缓冲存储器112展示为与寄存器堆120分开的结构。然而,常量高速缓冲存储器112未必需要独立于寄存器堆120。举例来说,常量高速缓冲存储器112可以是寄存器堆120的一部分,或者这两个结构都可以包含于较大的寄存器堆结构中。
[0022]移动立即数指令不需要随后执行以计算其结果。通常,当产生一个常量时,所述常量立即被随后(按编程顺序)消耗指令消耗掉。通过利用常量高速缓冲存储器112,在将常量值写入到目的地架构式寄存器之前,随后消耗指令可以存取所存储的常量值。
[0023]常量高速缓冲存储器112的内容可以被看作组织成一个表格,其中存储于条目中的常量值通过移动立即数指令写入,并且根据移动立即数指令的目的地寄存器而被标记。考虑存储于常量高速缓冲存储器112中的移动立即数指令的结果(常量值)和依赖于移动立即数指令的随后(按编程顺序)指令,其中随后指令的操作数是移动立即数指令将要移动到目的地寄存器的常量值。所述随后指令是消耗指令,并且目的地寄存器是移动指令的目标寄存器。
[0024]对于一个实施例,执行消耗指令不需要等待转发移动立即数指令的结果,也不需要等待移动立即数指令完成执行。实情为,消耗指令可以使用存储于常量高速缓冲存储器112中与其依赖的移动立即数指令相关联的条目中的
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1