与断言的加载指令相关联的预取制造技术

技术编号:17959513 阅读:31 留言:0更新日期:2018-05-16 05:18
公开了与预取与基于块的处理器架构中的程序的断言的加载相关联的数据有关的技术。在所公开的技术的一个示例中,处理器包括基于块的处理器核,其用于执行包括多个指令的指令块。基于块的处理器核包括译码逻辑和预取逻辑。译码逻辑被配置为检测指令块的断言的加载指令。预取逻辑被配置为计算断言的加载指令的目标地址,并且针对所计算的目标地址处的数据向处理器的存储器层级发出预取请求。

Prefetching associated with an asserted loading instruction

Technologies related to data related to prefetching and loading of assertions of programs in block based processor architectures are disclosed. In one example of the disclosed technology, the processor includes block based processor cores for executing instruction blocks including multiple instructions. The block based processor core includes decoding logic and prefetching logic. The decoding logic is configured to detect the load instruction of the assertion of the instruction block. The prefetching logic is configured as the target address of the load instruction to calculate the assertion, and the prefetching request is sent to the processor's memory level for the data at the calculated target address.

【技术实现步骤摘要】
【国外来华专利技术】与断言的加载指令相关联的预取
技术介绍
由于摩尔定律所预测的持续的晶体管扩展,微处理器已经从晶体管数的持续增加、集成电路成本、制造资本、时钟频率、以及能量效率中收益,而相关的处理器指令集架构(ISA)却很小变化。然而,从在过去40年里驱动半导体工业的光刻扩展实现的益处正在放缓或者甚至反转。精简指令集计算(RISC)架构已经成为处理器设计中的主导典范很多年。乱序超标量实现尚未在面积或性能方面展现出持续改进。因此,存在对于扩展性能改进的处理器ISA改进的足够机会。
技术实现思路
公开了用于预取与基于块的处理器指令集架构(BB-ISA)的断言的加载和存储指令相关联的数据的方法、装置和计算机可读存储设备。所描述的技术和工具能够潜在地改进处理器性能,并且可以彼此分离地被实现,或者彼此各种组合被实现。如下面将更充分地描述的,所描述的技术和工具可以被实现在以下各项中:数字信号处理器、微处理器、专用集成电路(ASIC)、软处理器(例如,使用可重新配置逻辑被实现在现场可编程门阵列(FPGA)中的微处理器核)、可编程逻辑、或者其他适合的逻辑电路。如对于本领域的普通技术人员而言将容易地明显的,所公开的技术可以被实现在各种计算平台中,包括但不限于服务器、大型机、手机、智能电话、PDA、手持式设备、手持式计算机、触摸屏平板设备、平板计算机、可穿戴计算机、以及膝上型计算机。在所公开的技术的一些示例中,处理器包括基于块的处理器核,其用于执行包括指令头部和多个指令的指令块。基于块的处理器核包括译码逻辑和预取逻辑。译码逻辑被配置为检测指令块的断言的加载指令。预取逻辑被配置为计算断言的加载指令的目标地址,并且针对所计算的目标地址处的数据向处理器的存储器层级发出预取请求。提供本
技术实现思路
以引入以在具体实施方式中下面进一步描述的简化形式的概念的选择。本
技术实现思路
不旨在标识要求保护的主题的关键特征或基本特征,其也不旨在用于限制要求保护的主题的范围。所公开的主题的前述和其他目标、特征以及优点将从参考附图进行的以下具体实施方式变得更加明显。附图说明图1图示了如可以在所公开的技术的一些示例中使用的包括多个处理器核的基于块的处理器。图2图示了如可以在所公开的技术的一些示例中使用的基于块的处理器核。图3图示了根据所公开的技术的某些示例的多个指令块。图4图示了源代码和相应的指令块的部分。图5图示了如可以在所公开的技术的一些示例中使用的基于块的处理器头部和指令。图6是图示基于块的处理器中的处理器核的状态的进展的示例的流程图。图7A示出了用于基于块的处理器的程序的示例源码片段。图7B示出了来自图7A的示例源码片段的依赖关系图的示例。图8示出了与来自图7A的源码片段相对应的示例指令块,指令块包括断言的加载指令和断言的存储指令。图9是示出可以在所公开的技术的一些示例中执行的编译用于基于块的处理器的程序的示例方法的流程图。图10示出了可以在所公开的技术的一些示例中使用的用于在基于块的处理器核上执行指令块的示例系统。图11示出了可以在所公开的技术的一些示例中使用的包括具有多个基于块的处理器核和存储器层级的处理器的示例系统。图12到图13是示出可以在所公开的技术的一些示例中执行的在基于块的处理器核上执行指令块的示例方法的流程图。图14是图示用于实现所公开的技术的一些实施例的适合的计算环境的块图。具体实施方式I.总体考虑在未旨在以任何方式进行限制的代表性实施例的上下文中阐述了本公开内容。如在本申请中所使用的,除非上下文清楚地指明,否则单数形式“一”、“一种”和“该”包括复数形式。此外,术语“包括”意味着“包含”。而且,术语“耦合的”涵盖机械的、电的、磁性的、光学的以及将多个项耦合或链接在一起的其他实际方式,并且不排除耦合项之间的中间元件的存在。另外,如在此所使用的,术语“和/或”意味着短语中的任何一项或多项的组合。在此所描述的系统、方法和装置不应当以任何方式被解释为限制性的。相反,本公开涉及彼此单独并且以各种组合和子组合的各种所公开的实施例的所有新颖和非显而易见的特征和方面。所公开的系统、方法和装置既不限于任何特定方面或者特征或者其组合,所公开的内容和方法也不要求任何一个或多个特定优点存在或者问题被解决。此外,所公开的实施例的任何特征或者方面可以彼此以各种组合和子组合被使用。虽然为了方便呈现而以特定顺序的次序描述所公开的方法中的一些方法的操作,但是应当理解,除非特定排序由下面阐述的特定语言所要求,否则说明书的这种方式涵盖重新布置。例如,顺序地描述的操作可以在一些情况下重新布置或者并行地执行。此外,出于简单的缘故,附图可能未示出所公开的内容和方法可以结合其他内容和方法使用的各种方式。此外,说明书有时使用类似“产生”、“生成”、“显示”、“接收”、“发射”、“验证”、“执行”和“发起”的术语来描述所公开的方法。这些术语是所执行的实际操作的高层描述。对应于这些术语的实际操作将取决于特定实现而变化并且是由本领域的普通技术人员容易地可辨别的。参考本公开的装置或者方法在此所呈现的操作理论、科学原理或者其他理论描述已经出于更好的理解的目的而被提供,并且不旨在范围方面是限制性的。所附的权利要求中的装置和方法不限于以由这样的操作理论所描述的方式实现的那些装置和方法。所公开的方法中的任一方法可以被实现为被存储在一个或多个计算机可读介质(例如,计算机可读介质(诸如一个或多个光学介质光盘、易失性存储器部件(诸如DRAM或SRAM))或非易失性存储器部件(诸如硬盘驱动器))上并且被执行在计算机(例如,任何商业可获得的计算机,包括智能电话或者包括计算硬件的其他移动设备)上的计算机可执行指令。用于实现所公开的技术的计算机可执行指令中的任一指令以及在所公开的实施例的实现期间创建和使用的任何数据可以被存储在一个或多个计算机可读介质(例如,计算机可读存储介质)上。计算机可执行指令可以是例如专用软件应用或者经由网络浏览器或者其他软件应用(诸如远程计算应用)访问或者下载的软件应用的一部分。这样的软件可以例如在单个本地计算机(例如,利用在任何适合的商业可获得的计算机上执行的通用处理器和/或基于块的处理器)上被执行,或者在使用一个或多个网络计算机的网络环境(例如,经由因特网、广域网、局域网、客户端服务器网络(诸如云计算网络)、或者其他这样的网络)中被执行。为了清晰起见,描述了基于软件的实现的仅某些所选的方面。省略了在本领域中众所周知的其他细节。例如,应当理解,所公开的技术不限于任何特定计算机语言或者程序。例如,所公开的技术可以通过以C、C++、JAVA或者任何其他适合的编程语言来实现。同样地,所公开的技术不限于任何特定计算机或者硬件类型。适合的计算机和硬件的某些细节是众所周知的并且不需要在本公开中被详细阐述。此外,基于软件的实施例(包括例如用于使得计算机执行所公开的方法中的任一方法的计算机可执行指令)中的任一实施例可以通过适合的通信手段被上载、被下载或者被远程访问。这样的适合的通信手段包括例如因特网、万维网、内联网、软件应用、电缆(包括光纤电缆)、磁通信、电磁通信(包括RF、微波和红外通信)、电子通信、或者其他这样的通信手段。II.所公开的技术的简介超标量乱序微架构采用大量的电路资源来重命名寄存器,以数据流次序调本文档来自技高网
...
与断言的加载指令相关联的预取

【技术保护点】
一种包括基于块的处理器核的处理器,所述基于块的处理器核用于执行包括指令头部和多个指令的指令块,所述基于块的处理器核包括:译码逻辑,被配置为检测所述指令块的断言的加载指令;以及预取逻辑,被配置为:接收与所述断言的加载指令相关联的第一值;使用所接收的第一值来计算所述断言的加载指令的目标地址;以及针对所计算的目标地址处的数据向所述处理器的存储器层级中的高速缓存发出预取请求。

【技术特征摘要】
【国外来华专利技术】2015.09.19 US 62/221,003;2016.03.04 US 15/061,3701.一种包括基于块的处理器核的处理器,所述基于块的处理器核用于执行包括指令头部和多个指令的指令块,所述基于块的处理器核包括:译码逻辑,被配置为检测所述指令块的断言的加载指令;以及预取逻辑,被配置为:接收与所述断言的加载指令相关联的第一值;使用所接收的第一值来计算所述断言的加载指令的目标地址;以及针对所计算的目标地址处的数据向所述处理器的存储器层级中的高速缓存发出预取请求。2.根据权利要求1所述的基于块的处理器核,其中所述第一值由所述指令块的另一指令生成并且以所述断言的加载指令为目标。3.根据权利要求1或2中任一项所述的基于块的处理器核,其中向所述存储器层级的所述预取请求在所述断言的加载指令的断言被计算之前被发出。4.根据权利要求1至3中任一项所述的基于块的处理器核,其中所述目标地址是使用所述预取逻辑的专用算术单元而计算的。5.根据权利要求1至3中任一项所述的基于块的处理器核,其中计算所述目标地址包括在打开指令发出时隙期间并且使用指令执行逻辑的算术单元来执行所述目标地址计算。6.根据权利要求1至5中任一项所述的基于块的处理器核,其中所述断言的加载指令包括编译器提示字段,并且所述预取逻辑仅在由所述编译器提示字段指示时才发出所述预取请求。7.根据权利要求1至6中任一项所述的基于块的处理器核,其中向所述存储器层级的非预取请求优先于所述预取请求。8.根据权利要求1至7中任一项所述的基于块的处理器核,还包括:唤醒和选择逻...

【专利技术属性】
技术研发人员:D·C·伯格A·L·史密斯
申请(专利权)人:微软技术许可有限责任公司
类型:发明
国别省市:美国,US

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

1