[发明专利]基于块大小将指令块映射到指令窗口有效
申请号: | 201680036642.4 | 申请日: | 2016-06-23 |
公开(公告)号: | CN107771318B | 公开(公告)日: | 2021-11-19 |
发明(设计)人: | D·C·伯格;A·史密斯;J·格雷 | 申请(专利权)人: | 微软技术许可有限责任公司 |
主分类号: | G06F9/38 | 分类号: | G06F9/38 |
代理公司: | 北京市金杜律师事务所 11256 | 代理人: | 王茂华;姚杰 |
地址: | 美国华*** | 国省代码: | 暂无信息 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 基于 小将 指令 映射 窗口 | ||
一种基于指令块的微架构中的处理器核利用具有头部的指令块,所述首部包括到可以使用存储器、寄存器、逻辑、或代码流中的一种来表达的大小表的索引。处理器核中的控制单元基于从大小表中指示的块大小来确定为当前指令块取回多少指令以映射到指令窗口。由于指令块大小对于给定的程序通常是不均匀分布的,与指令块具有固定大小或以较少粒度来调整大小的布置相比,大小表的利用使能指令块与指令窗口中可用槽大小的匹配更为灵活。这样的灵活性使能更密集的指令封装,这通过减少给定指令块中的无操作的数量(无操作,诸如空函数)来提高整体处理效率。
技术领域
指令集架构(ISA)和处理器的设计者进行功率和性能折衷。例如,如果设计者选择具有传递更高性能的指令的ISA,则处理器的功耗也可能更高。备选地,如果设计者选择消耗较低功率的指令的ISA,性能可能会更低。功耗可能被绑定到在执行期间由指令使用的处理器的硬件资源量,例如算术逻辑单元(ALU)、高速缓存线、或寄存器。大量这样的硬件资源的使用可能以更高的功耗的代价传递更高的性能。备选地,少量这样的硬件资源的使用可能以较低的性能的代价导致较低的功耗。编译器可用于将高级代码编译为与ISA和处理器架构兼容的指令。
背景技术
基于指令块的微架构中的处理器核利用具有头部的指令块,该头部包括到可以使用存储器、寄存器、逻辑、或代码流中的一种来表达的大小表的索引。处理器核中的控制单元基于从大小表中指示的块大小来确定针对当前指令块取回多少指令以映射到指令窗口。由于指令块大小对于给定的程序通常是不均匀分布的,与其中指令块具有固定大小或用较少粒度调整大小的布置相比,大小表的利用使得指令块与指令窗口中可用时槽大小的匹配更为灵活。这样的灵活性使能更密集的指令封装,这通过减少给定指令块中的无操作的数量(无操作,诸如空函数)来提高整体处理效率。
提供本发明内容是为了以简化的形式介绍将在以下具体实施例部分中进一步描述的一些概念的选择。本发明内容并不旨在标识要求保护的主题的关键特征或必要特征,也不旨在用作确定所要求保护的主题的范围的辅助手段。此外,要求保护的主题不限于解决本公开的任意部分中提到的任意或全部缺点的实现。
附图说明
图1示出其中编译器提供在包括多个处理器核的架构上运行的编码指令的示意性计算环境;
图2是示例性处理器核的示意性微架构的框图;
图3示出了块头部的示意性布置;以及
图4-15是示意性方法的流程图。
相同的附图标记指示附图中的相同的元件。
除非另有说明,元件不是按比例绘制的。
具体实施方式
图1示出了示意性计算环境100,当前指令块映射可以与该计算环境100一起被利用。该环境包括编译器105,该编译器可用于从程序115生成编码的机器可执行指令110。指令110可由处理器架构120处理,处理器架构120被配置为处理包含例如在4和128个指令之间的可变大小的指令块。
处理器架构120通常包括在分区块的配置中由片上网络(未示出)互连并还与一个或多个2级(L2)高速缓存(代表性地由附图标记130指示)互操作的多个处理器核(代表性地由附图标记125指示)。尽管核和高速缓存的数量和结构可以根据实现而变化,但是应该注意,物理核可以在程序115的运行时期间在被称为“组成”的过程中被一起合并到一个或多个更大的逻辑处理器中,其使得更多的处理能力用于程序执行。备选地,当程序执行支持适当的线程级并行性时,核125在被称为“分解”的进程中可以被拆分以独立工作并执行来自独立线程的指令。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于微软技术许可有限责任公司,未经微软技术许可有限责任公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201680036642.4/2.html,转载请声明来源钻瓜专利网。