包括打包源字段和目的地字段的微操作.pdf

上传人:Y0****01 文档编号:4429893 上传时间:2018-10-01 格式:PDF 页数:16 大小:2.43MB
返回 下载 相关 举报
包括打包源字段和目的地字段的微操作.pdf_第1页
第1页 / 共16页
包括打包源字段和目的地字段的微操作.pdf_第2页
第2页 / 共16页
包括打包源字段和目的地字段的微操作.pdf_第3页
第3页 / 共16页
点击查看更多>>
资源描述

《包括打包源字段和目的地字段的微操作.pdf》由会员分享,可在线阅读,更多相关《包括打包源字段和目的地字段的微操作.pdf(16页珍藏版)》请在专利查询网上搜索。

1、(10)申请公布号 CN 104035748 A (43)申请公布日 2014.09.10 C N 1 0 4 0 3 5 7 4 8 A (21)申请号 201410083147.1 (22)申请日 2014.03.07 13/790,661 2013.03.08 US G06F 9/38(2006.01) (71)申请人三星电子株式会社 地址韩国京畿道 (72)发明人 T-C.坦 B.G.伯吉斯 R.延加 (74)专利代理机构北京市柳沈律师事务所 11105 代理人张婧 (54) 发明名称 包括打包源字段和目的地字段的微操作 (57) 摘要 提供了用于在微处理器中在寄存器重新命名 之前进行。

2、寄存器打包的方法和装置。该方法包括: 接收从一个或多个指令解码的多个微操作;基于 通过其读或写打包寄存器以用于寄存器重新命名 的重新命名器的重新命名端口的预设数目,将包 括在所述微操作中的多个寄存器打包成为包括多 个打包寄存器的打包寄存器结构;以及发送打包 寄存器以用于寄存器重新命名。 (30)优先权数据 (51)Int.Cl. 权利要求书3页 说明书8页 附图4页 (19)中华人民共和国国家知识产权局 (12)发明专利申请 权利要求书3页 说明书8页 附图4页 (10)申请公布号 CN 104035748 A CN 104035748 A 1/3页 2 1.一种指令处理方法,包括: 接收从一。

3、个或多个指令解码的多个微操作; 基于通过其读或写打包寄存器以用于寄存器重新命名的重新命名器的重新命名端口 的预设数目,将包括在所述微操作中的多个寄存器打包成为包括多个打包寄存器的打包寄 存器结构;以及 将打包寄存器发送到所述重新命名器以用于寄存器重新命名。 2.如权利要求1所述的方法,其中,被打包成为打包寄存器结构中的寄存器中的每一 个包括有效源数据或者有效目的地数据。 3.如权利要求1所述的方法,还包括重新命名所述打包寄存器, 其中所述重新命名端口的预设数目被设置为小于允许微操作在一个周期中作为操作 数所具有的全部寄存器的数目。 4.如权利要求3所述的方法,其中从预定寄存器当中选择将被打包成。

4、为打包寄存器结 构的寄存器中的每一个,所述预定寄存器从全部寄存器当中选择。 5.如权利要求4所述的方法,其中基于关于预定寄存器的有效信息和使用年限信息选 择将被打包的寄存器中的每一个。 6.如权利要求1所述的方法,其中,所述打包寄存器结构还包括关于被打包成为打包 寄存器结构的寄存器中的每一个的属性信息。 7.如权利要求6所述的方法,其中,所述属性信息包括以下至少其中之一: 关于寄存器中的每一个是否具有有效源信息或者目的地信息的信息; 寄存器中的每一个的标识符;以及 包括寄存器中的每一个的微操作当中的微操作的标识符。 8.如权利要求7所述的方法,其中,所述微操作的标识符包括关于已经解码微操作的 。

5、解码器的信息。 9.如权利要求7所述的方法,其中,所述属性信息还包括关于寄存器中的每一个的使 用年限信息。 10.如权利要求1所述的方法,还包括确定打包寄存器的数目是否超出所述重新命名 器端口的预设数目, 其中,如果确定所述打包寄存器的数目未超出所述预设数目,则在当前周期中发送所 述打包寄存器以用于寄存器重新命名,以及 其中,如果确定所述打包寄存器的数目超出所述预设数目,则在下一周期发送包括在 所述多个微操作当中的一个或多个微操作中的一个或多个寄存器以用于寄存器重新命名。 11.如权利要求10所述的方法,其中,所述预设数目小于允许微操作作为操作数所具 有的全部寄存器的数目。 12.如权利要求1。

6、1所述的方法,其中,基于多个微操作的使用年限,从所述多个微操作 当中选择所述一个或多个微操作。 13.如权利要求1所述的方法,其中,所述多个寄存器包括至少一个源寄存器和至少一 个目的地寄存器,以及 其中,所述打包寄存器结构包括: 打包源结构,包括通过打包所述至少一个源寄存器而生成的至少一个打包源寄存器; 权 利 要 求 书CN 104035748 A 2/3页 3 以及 打包目的地结构,包括通过打包至少一个目的地寄存器而生成的至少一个打包目的地 寄存器。 14.如权利要求13所述的方法,其中,所述打包源结构还包括关于所述至少一个打包 源寄存器中的每一个源自其的源寄存器的源属性信息;以及 其中,。

7、所述打包目的地结构还包括关于所述至少一个打包目的地寄存器中的每一个源 自其的目的地寄存器的目的地属性信息。 15.如权利要求14所述的方法,其中,所述源属性信息包括以下至少其中之一: 关于源寄存器是否具有有效源信息的信息; 源寄存器的标识符;以及 包括源寄存器的微操作当中的微操作的标识符,并且 其中所述目的地属性信息包括: 关于所述目的地寄存器是否具有有效目的地信息的信息; 目的地寄存器的标识符;以及 包括目的地寄存器的微操作当中的微操作的标识符。 16.如权利要求15所述的方法,其中,所述源属性信息和所述目的地属性信息至少其 中一个包括关于所述源寄存器和所述目的地寄存器的使用年限信息。 17。

8、.一种包括打包器的指令处理装置,所述打包器被配置为: 接收从一个或多个指令解码的多个微操作; 基于通过其读或写打包寄存器以用于寄存器重新命名的重新命名器的预设数目的重 新命名端口,将包括在所述微操作中的多个寄存器打包成为包括多个打包寄存器的打包寄 存器结构;以及 发送所述打包寄存器以用于寄存器重新命名。 18.如权利要求17所述的装置,其中,被打包成为打包寄存器结构中的寄存器中的每 一个包括有效源数据或者有效目的地数据。 19.如权利要求17所述的装置,其中所述重新命名端口的预设数目被设置为小于允许 微操作在一个周期中作为操作数所具有的全部源寄存器的数目。 20.如权利要求19所述的装置,还包。

9、括多个多路复用器,每一个多路复用器从预定寄 存器当中选择将被打包成为打包寄存器结构的寄存器中的每一个,所述预定寄存器从全部 寄存器当中选择。 21.如权利要求20所述的装置,其中基于关于预定寄存器的有效信息和使用年限信息 选择将被打包的寄存器中的每一个。 22.如权利要求17所述的装置,其中,所述打包寄存器结构还包括关于被打包成为打 包寄存器结构的寄存器中的每一个的属性信息。 23.如权利要求22所述的装置,其中,所述属性信息包括以下至少其中之一: 关于寄存器中的每一个是否具有有效源信息或者目的地信息的信息; 寄存器中的每一个的标识符;以及 包括寄存器中的每一个的微操作当中的微操作的标识符。 。

10、24.如权利要求23所述的装置,其中,所述微操作的标识符包括关于已经解码微操作 权 利 要 求 书CN 104035748 A 3/3页 4 的解码器的信息。 25.如权利要求24所述的装置,其中,所述属性信息还包括关于寄存器中的每一个的 使用年限信息。 26.如权利要求17所述的装置,还包括控制器,其确定打包寄存器的数目是否超出所 述重新命名器端口的预设数目, 其中,如果确定所述打包寄存器的数目未超出所述预设数目,则所述控制器控制所述 打包器在当前周期发送所述打包寄存器以用于寄存器重新命名,以及 其中,如果确定所述打包寄存器的数目超出所述预设数目,则所述控制器控制所述打 包器在下一周期发送包。

11、括在所述多个微操作当中的一个或多个微操作中的一个或多个寄 存器以用于寄存器重新命名。 27.如权利要求26所述的装置,其中,所述预设数目小于允许微操作作为操作数所具 有的全部寄存器的数目。 28.如权利要求27所述的装置,其中,所述控制器控制所述打包器基于所述多个微操 作的使用年限,从所述多个微操作当中选择所述一个或多个微操作。 29.如权利要求17所述的装置,其中,所述多个寄存器包括至少一个源寄存器和至少 一个目的地寄存器,以及 其中,所述打包寄存器结构包括: 打包源结构,包括通过打包所述至少一个源寄存器而生成的至少一个打包源寄存器; 以及 打包目的地结构,包括通过打包所述至少一个目的地寄存。

12、器而生成的至少一个打包目 的地寄存器。 30.如权利要求29所述的装置,其中,所述打包源结构还包括关于所述至少一个打包 源寄存器中的每一个源自其的源寄存器的源属性信息;以及 其中,所述打包目的地结构还包括关于所述至少一个打包目的地寄存器中的每一个源 自其的目的地寄存器的目的地属性信息。 31.如权利要求30所述的装置,其中,所述源属性信息包括以下至少其中之一: 关于源寄存器是否具有有效源信息的信息; 源寄存器的标识符;以及 包括源寄存器的微操作当中的微操作的标识符,以及 其中所述目的地属性信息包括: 关于所述目的地寄存器是否具有有效目的地信息的信息; 目的地寄存器的标识符;以及 包括目的地寄存。

13、器的微操作当中的微操作的标识符。 32.如权利要求31所述的装置,其中,所述源属性信息和所述目的地属性信息至少其 中一个包括关于所述源寄存器和所述目的地寄存器的使用年限信息。 权 利 要 求 书CN 104035748 A 1/8页 5 包括打包源字段和目的地字段的微操作 技术领域 0001 按照示范性实施例的方法和装置涉及在寄存器重新命名阶段之前在微处理器中 运行的微操作(micro-ops)中对源寄存器字段和目的地寄存器字段打包。 背景技术 0002 现代微处理器通常在其中提供的解码器处将例如宏指令的高级指令分解或者翻 译为低级、硬件可运行微操作以提高数据处理的效率。解码的微操作的数量和格。

14、式取决于 高级指令集架构和内部微处理器架构。 0003 微操作典型具有两个或者三个源操作数(operand)和一个或者两个目的地操作 数。源操作数用来指定包含源数据的寄存器。目的地操作数用来指定在微操作的操作执行 之后该微操作的操作的结果写到的寄存器。 0004 用于特定微操作的源寄存器和目的地寄存器的数目取决于正在运行的指令的 类型。例如,ADD指令具有两个源操作数和一个目的地操作数。乘积累加(multiply accumulate)指令具有三个源操作数和一个或多个目的地操作数。分支指令仅仅具有一个 源操作数用以指定非直接分支地址,而不具有目的地操作数。在解码出微操作之后,微操作 被发送到重。

15、新命名器,其中微操作的寄存器要在微操作被排定和运行之前被重新命名。寄 存器重新命名是一种用于消除数据故障的常见技术,数据故障诸如微操作的无序运行中的 读后写和写后写故障。重新命名过程包括检查用于每个寄存器的重新命名表格,重新分配 不同或者附加的物理寄存器以替换微操作的目的地寄存器,记录关于微操作之间的相关性 的数据。重新命名的微操作被发送到调度器和运行单元。然后,被运行的微操作发送到目 的地寄存器和/或存储器或者高速缓存以存储。 0005 寄存器重新命名是针对高速微处理器设计中定时和性能的瓶颈(bottleneck)。当 源寄存器和目的地寄存器的数目增加时该限制变得更加显著。为了优化整体性能,。

16、将每一 周期待重新命名的微操作的数目最大化而不增加重新命名器的重新命名端口的数目是有 利的。 发明内容 0006 为了解决现有技术中重新命名处理的问题,本发明构思的一个或多个示范性实施 例提供了增加每一周期将被重新命名的微操作的数目而不增加重新命名器的重新命名端 口的数目的方法和装置。 0007 一个或多个示范性实施例还提供在重新命名寄存器之前将源寄存器和目的地寄 存器打包成为打包寄存器结构以便增强寄存器重新命名操作的效率的方法和装置。 0008 根据示范性实施例的方面,提供一种指令处理方法,包括:接收从一个或多个指令 解码的多个微操作(micro-op);基于通过其读或写打包寄存器以用于寄存。

17、器重新命名的重 新命名器的重新命名端口的预设数目,将包括在所述微操作中的多个寄存器打包成为包括 多个打包寄存器的打包寄存器结构;以及发送所述打包寄存器以用于寄存器重新命名。这 说 明 书CN 104035748 A 2/8页 6 里,被打包成为打包寄存器结构中的每一个寄存器可以包括有效源数据或者有效目的地数 据。 0009 所述方法还可以包括重新命名所述打包寄存器,其中所述重新命名端口的预设数 目被设置为小于允许微操作在一个周期中作为操作数所具有的全部寄存器的数目。 0010 可以基于关于预定寄存器的有效信息和使用年限信息,从所述预定寄存器当中选 择将被打包成为打包寄存器结构的寄存器中的每一个。

18、,所述预定寄存器从全部寄存器当中 选择。 0011 所述打包寄存器结构还可以包括关于被打包成为打包寄存器结构的寄存器中的 每一个的属性信息,其中,所述属性信息包括:关于寄存器中的每一个是否具有有效源信息 或者目的地信息的信息;寄存器中的每一个的标识符;以及包括寄存器中的每一个的微操 作当中的微操作的标识符。 0012 所述微操作的标识符可以包括关于已经对微操作解码的解码器的信息。 0013 所述属性信息还可以包括关于寄存器中的每一个的使用年限信息。 0014 所述方法还可以包括:确定打包寄存器的数目是否超出所述重新命名器端口的预 设数目,其中,如果确定所述打包寄存器的数目未超出所述预设数目,则。

19、在当前周期发送所 述打包寄存器用于寄存器重新命名,和其中,如果确定所述打包寄存器的数目超出所述预 设数目,则在下一周期发送包括在多个微操作当中的一个或多个微操作中的一个或多个寄 存器以用于寄存器重新命名。 0015 所述预设数目可以小于允许微操作作为操作数所具有的全部寄存器的数目。 0016 将由打包器打包的源寄存器和目的地寄存器中的每一个可以是有效寄存器。 0017 可以基于多个微操作的使用年限,从所述多个微操作当中选择所述一个或多个微 操作。 0018 根据另一示范性实施例的方面,提供一种包括打包器的指令处理装置,打包器被 配置为:接收从一个或多个指令解码的多个微操作;基于通过其读或写打包。

20、寄存器以用于 寄存器重新命名的重新命名器的重新命名端口的预设数目,将包括在所述微操作中的多个 寄存器打包成为包括多个打包寄存器的打包寄存器结构;以及发送所述打包寄存器以用于 寄存器重新命名。 0019 所述重新命名端口的预设数目可以被设置为小于允许微操作在一个周期中作为 操作数所具有的全部源寄存器的数目。 0020 所述装置还可以包括:控制器,其确定打包寄存器的数目是否超出所述重新命名 器端口的预设数目,其中,如果确定所述打包寄存器的数目未超出所述预设数目,则所述控 制器控制所述打包器在当前周期发送所述打包寄存器以用于寄存器重新命名,和其中,如 果确定所述打包寄存器的数目超出所述预设数目,则所。

21、述控制器控制所述打包器在下一周 期发送包括在所述多个微操作当中的一个或多个微操作中的一个或多个寄存器以用于寄 存器重新命名。 附图说明 0021 上面和/或其它方面将从下面结合附图的示例性实施例的描述中变得明显并且 更加容易理解,附图中: 说 明 书CN 104035748 A 3/8页 7 0022 图1示出根据示范性实施例的微处理器的一部分; 0023 图2示出根据示范性实施例的、被配置为将源寄存器和目的地寄存器打包成为打 包寄存器结构的微处理器的一部分; 0024 图3示出根据另一示范性实施例的、在打包源寄存器和目的地寄存器中使用多路 复用器的微处理器的一部分;以及 0025 图4是示出。

22、根据示范性实施例的寄存器打包的流程图。 具体实施方式 0026 将参考附图详细描述示范性实施例以便由本领域普通技术人员容易地实现。本发 明构思可以以各种形式具体实现而不局限于这里阐述的示范性实施例。公知部分的描述尚 未详细示出以避免不必要地模糊本发明,并且相同的参考标记贯穿始终指代相同元件。 0027 作为预备考虑,下面的方法可以提出以提高频率由此增强微处理器的性能:降低 包括每一周期将被重新命名的寄存器的微操作的数目或者降低解码宽度;降低微操作中的 源字段和目的地字段的数目;采用附加(多个)周期以重新命名寄存器;以及建立定制重新 命名电路以满足影响功率和设计复杂度的定时等等。但是,这些方法仍。

23、可以伴随调整重新 命名器的重新命名端口大小为源寄存器和目的地寄存器的最差情况数目,这可能影响微处 理器的定时或者架构性能。 0028 为了优化微处理器就寄存器重新命名方面来说的整体性能,考虑通过提供具有每 一周期最优数目的源寄存器和目的地寄存器的重新命名器来最大化每一周期将被重新命 名的微操作的数目,而不增加重新命名端口的数目,如下面的示范性实施例所述。 0029 图1示出根据示范性实施例的、包括多个解码器0、1和2和重新命名器100的微 处理器10的一部分。如图1中所示,解码器通过对从存储器或者高速缓存(未示出)接收到 的一个或多个指令(未示出)进行解码来生成微操作。重新命名器100使用重新。

24、命名逻辑对 微操作中的源寄存器和/或目的地寄存器重新命名。微处理器10具有解码宽度三。解码 宽度指的是在一个周期中解码的微操作的数目。重新命名器100可以具有18个重新命名 端口110,相应于微操作能够具有的源寄存器字段和目的地寄存器字段的总数。也就是说, 微处理器10的微操作的格式支持多达四个源寄存器(A、B、C和D)和两个目的地寄存器(A 和B),并且因此,可以在一个周期中生成的寄存器的总数是12个源寄存器和6个目的地寄 存器。该解码器和重新命名器结构可以要求重新命名器100具有多达18个重新命名端口 用于重新命名。 0030 图2示出根据示范性实施例的、包括多个解码器0、1和2、打包器2。

25、00、重新命名器 300和控制器400的微处理器20的一部分。微处理器20的解码器0、1和2和重新命名器 300可以类似于图1的微处理器10中的那些。但是,根据示范性实施例,微处理器20被配 置使得由解码器解码的微操作的源寄存器字段和目的地寄存器字段在寄存器被重新命名 之前被打包。在下文中,微操作的打包源寄存器字段和打包目的地寄存器字段也分别被称 作打包源寄存器和打包目的地寄存器。打包器200被配置为将由解码器解码的微操作中的 源寄存器和目的地寄存器,在寄存器在重新命名器300处被重新命名之前分别打包成为打 包源结构210和打包目的地结构220。以下,打包源结构210和打包目的地结构220被共。

26、同 称作打包寄存器结构。控制器400被配置为至少控制打包器200的输出操作,如稍后将描 说 明 书CN 104035748 A 4/8页 8 述的那样。这里,将打包成为打包寄存器结构的源寄存器和目的地寄存器中的每一个都可 以是具有有效源数据或者目的地数据的寄存器。也就是说,包括在微操作中并且不具有有 效源数据或者目的地数据的任意寄存器可以不打包成为打包寄存器结构。 0031 在本实施例中,图2中示出的微处理器20与图1中示出的微处理器10类似,具有 解码宽度三,具有三个解码器0、1和2,用于在每个周期将诸如宏指令这样的复杂指令解码 为微操作。而且,每个解码器的微操作格式支持四个源寄存器(A、B。

27、、C和D)和两个目的地 寄存器(A和B),像图1中的微处理器10那样。寄存器A、B、C和D可以称作微操作中指定 的架构寄存器(architectural registers),与通过在重新命名器300中的重新命名将架 构寄存器映射到的物理寄存器相反。因为在本实施例中每一周期解码三个微操作,所以在 一个周期时段内可以通过这三个解码器生成总共12个源寄存器和6个目的地寄存器。在 本实施例中,打包源结构210具有八个条目以容纳多达八个打包源寄存器,并且打包目的 地结构220具有三个条目以容纳多达三个打包目的地寄存器。 0032 在图2中,在重新命名器300中重新命名之前,基于重新命名器300的重新命。

28、名端 口310的预设数目,八个源寄存器和三个目的地寄存器被打包成为打包寄存器结构。这里, 重新命名器300的重新命名端口310的预设数目是八。具体地说,三个微操作的八个源寄 存器(A、B、C、D、B、A、C、D)被打包以构成具有八个打包源寄存器(打包源0至打包源7)的 八个条目的打包源结构210。类似地,三个微操作的三个目的地寄存器(A、B和A)被打包 以构成具有三个打包目的地寄存器(打包Dest0至Dest2)的三个条目的打包目的地结构 220。因此,打包寄存器结构中的打包源寄存器和打包目的地寄存器的总数是八个,这与重 新命名器端口310的数目相同。这些被打包成为打包寄存器结构的源寄存器和目。

29、的地寄存 器是分别从微操作的源字段和目的地字段提供的。源寄存器和目的地寄存器的打包可以同 时或者在不同时间处理。 0033 如果用于微操作的打包源寄存器和打包目的地寄存器的总数等于或者小于重新 命名端口310的预设数目,则根据示范性实施例,打包源寄存器和打包目的地寄存器在用 于重新命名这些打包寄存器的相同周期中,在控制器400的控制下被发送到重新命名器 300。这里,重新命名端口310的预设数目可以是系统允许的重新命名端口的最大数目。如 果打包源寄存器和打包目的地寄存器的数目超出重新命名端口310的预设数目,则根据示 范性实施例,接收自解码器0、1和2的微操作当中的一个或多个微操作在用于重新命。

30、名这 些所选择的微操作中的打包源和/或寄存器的下一周期中,在控制器400的控制下被发送 到重新命名器300。可以根据(多个)微操作的使用年限(age)选择在下一周期中将发送到 重新命名器300的(多个)微操作。 0034 如图2中所示,根据示范性实施例,用于源寄存器和目的地寄存器的系统允许的 最大重新命名器端口可以分别设置为八个和三个。这些数目八和三小于可以在一个周期时 段内由三个解码器生成的源寄存器和目的地寄存器的最大数目,即12和6。可以在一个周 期时段内由三个解码器生成的源寄存器和目的地寄存器的最大数目与由解码器0、1和2的 解码宽度所提供的源字段和目的地字段的数目相同。 0035 在图。

31、2中,由解码器0解码的第一微操作具有四个源寄存器和两个目的地寄存器 作为其操作数(operand),第二微操作具有一个源寄存器并且没有目的地寄存器作为其操 作数,并且第三微操作具有三个源寄存器和一个目的地寄存器作为其操作数。来自三个解 说 明 书CN 104035748 A 5/8页 9 码器的打包源寄存器的总数是八个,并且打包目的地寄存器的总数是三个,这与系统允许 的重新命名端口310的最大数目相同。因此,打包源寄存器和打包目的地寄存器可以在一 个周期中被发送到重新命名器300用于重新命名。用这样的方式,在每个周期中发送到重 新命名器300的源寄存器和目的地寄存器的数目被优化。 0036 根。

32、据示范性实施例,多个位被添加到打包源结构210和打包目的地结构220以指 示被接收作为打包源结构210和打包目的地结构220的各个条目的打包源寄存器的属性和 打包目的地寄存器的属性,如图2中所示。属性位可以包括有效位、解码器标识符(ID)位、 源ID位、使用年限掩码位等等,如稍后将描述的那样。因此,如图2中所示,每个打包源寄 存器的属性通过一个有效位、一个解码器ID位、一个源ID位和用于使用年限掩码向量的多 个位表示。另外,图2示出每个打包目的地寄存器的属性在没有使用年限掩码向量位的条 件下通过一个有效位、一个解码器ID位和一个目的地ID位表示。现在,在下面描述属性位 的功能。 0037 用于。

33、打包源寄存器的有效位中的每一个都指示相应打包源寄存器源自其的源寄 存器是有效还是无效(例如,1用于有效,0用于无效)。参考图2,打包源结构210中的八个 条目的每个有效位都指示为有效。这表示相应于打包源寄存器并且包括在微操作中的每个 源寄存器都具有有效源数据。类似地,用于打包目的地寄存器的有效位中的每一个都指示 相应打包目的地寄存器源自其的目的地寄存器是有效还是无效。参考图2,打包寄存器结构 220中的三个条目的每个有效位都指示为有效。这表示相应于打包目的地寄存器并且包括 在微操作中的每个目的地寄存器都具有有效目的地数据。 0038 提供解码器ID位以分别识别打包寄存器源自其的解码器。在图2中。

34、,用于头四个 打包源寄存器中的每一个的解码器ID是0,其表示打包源寄存器的头四个条目来源于解码 器0。类似地,提供用于打包目的地寄存器的解码器ID位以分别识别打包目的地寄存器的 来源。根据另一示范性实施例,解码器ID位可以分别指示微操作的ID,所述微操作分别采 用被打包成为打包源结构210或者打包目的地结构220的源寄存器或者目的地寄存器。 0039 提供用于打包源寄存器的源寄存器ID位以分别识别打包源寄存器源自其的源寄 存器。在图2中,用于头四个打包源寄存器的源寄存器ID分别是A、B、C和D,表示解码器 中的这些源寄存器的ID分别是A、B、C和D。类似地,提供目的地寄存器ID位以识别打包 目。

35、的地寄存器源自其的目的地寄存器。 0040 还提供用于使用年限掩码向量的多个位用于每一个打包源寄存器。用于每个使 用年限掩码向量的位的数目可以相应于打包目的地寄存器的数目以使得使用年限掩码向 量的每个位指示相关于打包目的地结构220中的每一个打包目的地寄存器的、打包源结构 210中的相应打包源寄存器的使用年限属性。也就是说,使用年限掩码向量追踪相对于打包 目的地寄存器的、打包源寄存器的使用年限。考虑到相对于打包目的地寄存器的打包源寄 存器的使用年限来设置使用年限掩码向量中的每个位;当打包源寄存器比相应于位位置的 打包目的地寄存器更年轻(或者更老)时,位被设置为1(或者0)。使用年限掩码向量被重。

36、新 命名器300中的重新命名逻辑使用以计算组内源到目的地的相关性。例如,打包源结构210 中的用于第一打包源寄存器A的使用年限掩码向量是000,其表示打包目的地结构220中存 在三个打包目的地寄存器,并且每个打包目的地寄存器都比第一打包源寄存器A年轻。在 图2中,使用年限掩码向量位仅仅包括在打包源结构210中。但是,根据示范性实施例,使 说 明 书CN 104035748 A 6/8页 10 用年限掩码向量位可以包括在打包目的地结构220而非打包源结构210中,以指示相对于 打包源寄存器的打包目的地寄存器的使用年限。而且,根据另一示范性实施例,使用年限掩 码向量位可以既包括在打包源结构210中。

37、,也包括在打包目的地结构220中。 0041 上面描述的属性位不仅仅局限于有效位、解码器ID位、源寄存器ID位和使用年限 掩码向量位。根据示范性实施例,附加位可以被添加到图2中的打包寄存器结构以指示打 包寄存器的不同属性。例如,存储在源寄存器和目的地寄存器中的物理寄存器的ID可以添 加到图2中的打包寄存器结构。 0042 根据本实施例使用重新命名之前打包的方法优化发送到重新命名器300的源寄 存器和目的地寄存器的数目使得能够在一个周期中重新命名更多微操作,从而导致更好的 效率和更高的架构性能。 0043 图3示出根据示范性实施例的、除了图2的微处理器20的相同结构之外包括多个 多路复用器(MU。

38、X)A至K的微处理器30的一部分。在图3中,耦接到打包源结构210的解 码器0至2与耦接到打包目的地结构220的的解码器0至2相同,并且仅为了简要描述的目 的而单独示出。在图3中,为了简要描述的目的,重新命名器300和控制器400也被省去。 在本实施例中,八个源打包MUX A至H分别用来选择将被打包的源寄存器,并且三个目的地 打包MUX I至K分别用来选择将被打包的目的地寄存器。具体地说,为了寄存器打包,八个 源打包MUX A至H中的每一个被配置为接收在一个周期时段内能够由三个解码器生成的全 部源寄存器当中多达预定数目的源寄存器,然后选择接收到的寄存器中的一个来构成打包 源结构210的条目。三。

39、个目的地打包MUX I至K中的每一个也被配置为接收在一个周期时 段内能够由三个解码器生成的全部目的地寄存器当中多达预定数目的目的地寄存器,然后 选择接收到的寄存器中的一个构成打包目的地结构220的条目。更具体地说,每个MUX耦 接到解码器0至2中的两个以接收多达预定数目的寄存器,以及选择接收到的寄存器当中 的一个寄存器以输出,以用于与其它MUX选择的寄存器一起打包。 0044 根据另一示范性实施例,MUX A至K中的每一个可以仅仅被分配给四个寄存器A至 D(未示出)当中的特定寄存器。例如,源打包MUX A可以仅仅被分配给每个解码器的源寄 存器A和B以便仅仅接收源寄存器A和B供选择,而源打包MU。

40、X B可以仅仅被分配给源寄 存器C和D。根据又一示范性实施例,每个MUX可以被分配给解码器0至2(未示出)当中 的特定解码器。例如,源打包MUX A可以被配置为仅仅接收由解码器0使用的源寄存器。 0045 在图3中,同时并行执行打包源寄存器和打包目的地寄存器,以最小化可能的MUX 延迟。 0046 在图3中,能够输入到每个MUX的寄存器的数目如上面所说明的那样受限制。图 3具体地示出将12个源寄存器和6个目的地寄存器打包成为八个打包源寄存器(打包源0 至打包源7)和三个打包目的地寄存器(打包Dest0至打包Dest2)的方案。如图3中所示, 源打包MUX A至H中的每一个将源寄存器的数目从12。

41、1降低到51,这表示用于打包 源寄存器的每个MUX能够接收多达5个未打包源寄存器以选择5个未打包源寄存器中的一 个来构成打包源结构210的条目。类似地,目的地打包MUX I至K中的每一个将目的地寄 存器的数目从61降低到41,这表示用于打包目的地寄存器的每个MUX能够接收多达 4个未打包目的地寄存器以选择4个未打包目的地寄存器中的一个来构成打包目的地结构 220的条目。该打包源结构210和打包目的地结构220的方案会能够降低用于在MUX中进 说 明 书CN 104035748 A 10 7/8页 11 行选择的时间而不丢失任何架构性能。 0047 根据示范性实施例,MUX A至K中的每一个应用。

42、优先逻辑以选择将被打包的源寄 存器或者目的地寄存器。例如,源打包MUX B接收五个源寄存器的输入,这五个源寄存器包 括来自解码器0的三个源寄存器(B、C和D)和来自解码器1的两个源寄存器(A和B)。使 用优先逻辑,源打包MUX B选择五个源寄存器中的一个并且输出所选择的源寄存器用于打 包。可以基于输入至MUX A至K中的每一个的关于源寄存器和目的地寄存器的有效信息和 使用年限信息至少其中一个来设置优先逻辑。 0048 用于在MUX B中进行选择的示范性优先逻辑描述如下: 0049 (a)Sel_Decoder0_SourceB=Decoder0_Source_B is valid 0050 (。

43、b)Sel_Decoder0_SourceC=Decoder0_Source_C is valid 0051 (c)Sel_Decoder0_SourceD=Decoder0_Source_D is valid 0052 (d)Sel_Decoder1_SourceA=Decoder1_Source_A is validand 0053 (e)Sel_Decoder1_SourceB=Decoder1_Source_B is valid 0054 通过预先确定微操作中的哪些源寄存器和目的地寄存器将被打包成为打包源结 构210和打包目的地结构210,可以减少图2中示出的属性位的量,以加速微操作的。

44、通道中 未打包操作下行数据流。 0055 图4是示出根据示范性实施例的、在微处理器中在寄存器重新命名之前寄存器打 包的流程图。 0056 如图4中所示,在操作100中,复杂指令在微处理器的一个或多个解码器处被解码 成为微操作。在操作200中,在解码的微操作中的源寄存器和目的地寄存器被分别打包成 为打包源结构和打包目的地结构以由打包器构成打包寄存器结构。这里,源寄存器和目的 地寄存器中的每一个都可以是具有有效源或者目的地信息的寄存器。 0057 操作200可以包括附加操作210,其中能够在一个周期时段内由解码器生成的全 部源寄存器当中、微操作的预定源寄存器被多路复用,以输出用于与由其它MUX选择。

45、的寄 存器一起打包的一个寄存器。 0058 操作200还可以包括附加操作220,其中多个位被添加到打包源结构和打包目的 地结构以指示作为打包源结构和打包目的地结构的各个条目接收的、打包源寄存器的属性 和打包目的地寄存器的属性。这些属性位指示被接收作为打包源结构210和打包目的地结 构220的各个条目的、打包源寄存器的属性和打包目的地寄存器的属性,如图2中所示。属 性位可以包括有效位、解码器ID位、源ID位、使用年限掩码位等等,但不局限于此。打包源 说 明 书CN 104035748 A 11 8/8页 12 结构和打包目的地结构的每个条目的属性通过一个有效位、一个解码器ID位、一个源ID位 和。

46、/或用于使用年限掩码向量的多个位表示。上面描述的属性位不仅仅局限于有效位、解 码器ID位、源寄存器ID位和使用年限掩码向量位。附加位可以被添加到打包寄存器结构 以指示打包寄存器的不同属性。存储在源寄存器和目的地寄存器中的物理寄存器的ID可 以是这样的属性。 0059 在操作300中,确定打包源寄存器和打包目的地寄存器的数目是否超出重新命名 器中提供的重新命名端口的预设数目。如果确定所述数目等于或者小于预设数目,则在相 同周期分别将打包源寄存器和打包目的地寄存器发送到重新命名器以用于重新命名。 0060 另一方面,如果确定所述数目大于预设数目,则在下一周期,从解码器接收到的微 操作当中、在一个或。

47、多个所选择的微操作中的一个或多个打包源寄存器和打包目的地寄存 器被发送到重新命名器以用于在一个或多个微操作中重新命名打包寄存器。端口的预设数 目可以是系统允许的重新命名端口的最大数目。 0061 发送到重新命名器的打包寄存器在重新命名器中被重新命名,然后在操作400中 被发送以用于调度和运行。 0062 根据上面描述的实施例,具有在重新命名之前将源寄存器和目的地寄存器打包成 为打包寄存器结构的打包器的微处理器可以处理更多微操作,而不增加重新命名端口的数 目和对处理时间产生不利影响。同时,通过限制源寄存器和目的地寄存器的数目或者通过 指定将打包成为打包寄存器结构的预定源寄存器和目的地寄存器,可以。

48、实现处理微操作的 额外效率。 0063 上面描述的实施例仅仅是说明性的而不意欲限制本发明构思的范围。例如,未打 包结构中以及打包结构中的源寄存器和目的地寄存器的示范性数目能够是任意数目。而 且,解码器和MUX的数目能够是任意数目。此外,本领域普通技术人员能够容易地认识到, 附图中的词“源”和“目的地”分别包括“源寄存器”和“目的地寄存器”的意思。而且,根据 各种实施例的处理器可以是任意类型的处理器、微处理器或者中央处理单元(CPU)或者图 形处理单元(GPU)或者包括多核处理器的数据处理单元。这些和其它变化、修改、添加和改 进可以落入本发明构思的范围内。 0064 在上面描述的实施例中,用于描。

49、述诸如“解码器”、“打包器”、“重新命名器”、“MUX” 和“控制器”这样的微处理器20和30中的每一个组件的术语指示但是不局限于诸如集成 芯片这样的执行特定任务的软件或者硬件组件。提供用于这些组件的功能可以合并成较少 的组件或者一个组件或者分离为额外组件。此外,这些组件可以实现为使得它们在通信系 统中运行一个或多个计算机。 0065 本领域普通技术人员将理解,可以在此进行形式和细节上的各种改变而不脱离本 发明构思的精神和范围。因此,本发明构思的范围并非通过具体实施例的详细描述定义,而 是通过后附权利要求来定义,并且在范围内的所有差异将理解为包括在本发明构思内。 说 明 书CN 104035748 A 12 1/4页 13 图1 说 明 书 附 图CN 104035748 A 13 2/4页 14 图2 说 明 书 附 图CN 104035748 A 14 3/4页 15 图3 说 明 书 附 图CN 104035748 A 15 4/4页 16 图4 说 明 书 附 图CN 104035748 A 16 。

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 物理 > 计算;推算;计数


copyright@ 2017-2020 zhuanlichaxun.net网站版权所有
经营许可证编号:粤ICP备2021068784号-1