具有连续块的并行执行的基于块的架构制造技术

技术编号:17490821 阅读:33 留言:0更新日期:2018-03-17 13:47
公开了用于在基于块的处理器架构中提供对目标地址的早期访问的系统、方法和计算机可读存储装置。在所公开的技术的一个示例中,在基于块的架构中执行分支的方法可以包括使用基于块的架构的第一核心来执行第一指令块的一个或多个指令。该方法可以包括在第一指令块被提交之前发起第二指令块的指令的非推测性执行。

Block based architecture with parallel execution of a continuous block

A system, a method, and a computer readable storage device for providing early access to the target address in a block based processor architecture. In an example of the disclosed technology, the method of executing branches in block based architecture can include one or more instructions of the first instruction block using the first core of block based architecture. The method may include non speculative execution of an instruction that initiates a second instruction block before the first instruction block is submitted.

【技术实现步骤摘要】
【国外来华专利技术】具有连续块的并行执行的基于块的架构
技术介绍
微处理器已经从由于摩尔定律所预测的持续晶体管扩展而导致的晶体管计数、集成电路成本、制造资本、时钟频率和能量效率的持续增加中受益,其中相关联的处理器指令集架构(ISA)几乎没有变化。然而,从过去40年来驱动半导体产业发展的光刻扩展中实现的益处正在放缓甚至扭转。精简指令集计算(RISC)架构已经成为处理器设计的主要范例很多年。无序超标量实现在面积或性能方面尚未展现出持续改进。因此,在处理器ISA方面存在充分的机会来扩大性能改善。
技术实现思路
公开了用于在基于块的处理器指令集架构(BB-ISA)中提供对目标地址的早期访问的方法、装置和计算机可读存储设备。所描述的用于解决方案的技术和工具可以潜在地提高处理器性能,并且可以被单独实现,或者以与彼此的各种组合被实现。如将在下面更充分地描述的,所描述的技术和工具可以在数字信号处理器、微处理器、专用集成电路(ASIC)、软处理器(例如,在使用可重配置逻辑的现场可编程门阵列(FPGA)中实现的微处理器核心)、可编程逻辑或其他合适的逻辑电路中实现。对于本领域普通技术人员而言将是显而易见的,所公开的技术可以在各种计算平台中被实现,包括但不限于服务器、大型机、手机、智能电话、PDA、手持设备、手持计算机、触摸屏平板设备、平板计算机、可穿戴计算机和膝上型计算机。在所公开的技术的一些示例中,基于块的计算系统可以包括多个处理器核心和控制逻辑。处理器核心可以包括第一处理器核心,第一处理器核心被配置为执行第一指令块的指令并且在第一指令块被提交之前生成第二指令块的目标地址。控制逻辑可以被配置为接收第二指令块的目标地址并且在第一指令块被提交之前发起第二指令块的执行。发起的第二指令块的执行可以至少部分基于被编码在第一指令块的头部中的出口类型信息。提供本
技术实现思路
是为了以简化的形式介绍将在以下具体实施方式中进一步描述的概念的选择。本
技术实现思路
部分不旨在标识所要求保护的主题的关键特征或必要特征,也不旨在用于限制所要求保护的主题的范围。从下面参考附图进行的详细描述中,所公开的主题的前述和其他目的、特征和优点将变得更加明显。附图说明图1示出了能够在所公开的技术的一些示例中使用的包括多个处理器核心的基于块的处理器。图2示出了能够在所公开的技术的一些示例中使用的基于块的处理器核心。图3示出了根据所公开的技术的某些示例的数个指令块。图4示出了源代码的部分和相应指令块。图5示出了能够在所公开的技术的一些示例中使用的基于块的处理器头部和指令。图6是示出针对基于块的计算机架构的编译器的示例方法的流程图。图7示出了能够在所公开的技术的一些示例中使用的示例指令块的各个方面。图8是示出用于在基于块的计算机架构上控制指令的执行的方法的示例的流程图。图9-10示出了能够在所公开的技术的一些示例中使用的基于块的架构的不同配置和操作的示例。图11是示出用于实现所公开的技术的一些实施例的合适的计算环境的框图。具体实施方式I.一般考虑本公开在代表性实施例的上下文中被阐述,其不旨在以任何方式进行限制。如在本申请中所使用的,除非上下文另有明确规定,否则单数形式“一个(a)”、“一个(an)”和“该(the)”包括复数形式。另外,术语“包括(includes)”表示“包括(comprises)”。此外,术语“耦合(coupled)”涵盖将项目耦合或链接在一起的机械、电、磁、光学以及其他实际方式,并且不排除在耦合的项目之间存在中间元件。此外,如本文中使用的,术语“和/或”是指短语中的任何一个项目或项目的组合。本文中描述的系统、方法和装置不应当被解释为以任何方式进行限制。相反,本公开单独地以及在彼此的各种组合和子组合中涉及各种公开的实施例的所有新颖的和非显而易见的特征和方面。所公开的系统、方法和装置不限于任何特定方面或特征或其组合,所公开的事物和方法也不要求任何一个或多个特定优点存在或问题被解决。此外,所公开的实施例的任何特征或方面可以在彼此的各种组合和子组合中被使用。尽管为了方便呈现而以特定的顺序次序描述了所公开的方法中的一些方法的操作,但是应当理解,除非下面阐述的特定语言要求特定的次序,否则这种描述方式涵盖重新排列。例如,顺序地描述的操作在一些情况下可以被重新排列或并行执行。而且,为了简单起见,附图可能并未示出所公开的事物和方法能够与其他事物和方法结合使用的各种方式。另外,本描述有时使用诸如“产生”、“生成”、“显示”、“接收”、“发出”、“验证”、“执行”和“发起”等术语来描述所公开的方法。这些术语是对所执行的实际操作的高级描述。对应于这些术语的实际操作将根据具体实现而变化,并且容易由本领域普通技术人员可辨别。本文中参考本公开的装置或方法呈现的操作理论、科学原理或其他理论描述已经被提供用于更好理解的目的,并且不旨在限制范围。所附权利要求书中的装置和方法不限于以这种操作理论描述的方式起作用的那些装置和方法。所公开的方法中的任一方法可以被实现为存储在一个或多个计算机可读介质(例如,计算机可读介质,诸如一个或多个光学介质盘、易失性存储器部件(诸如DRAM或SRAM)、或非易失性存储器部件(诸如硬盘驱动器))上并且在计算机(例如,任何市售计算机,包括智能电话或包括计算硬件的其他移动设备)上执行的计算机可执行指令。用于实现所公开的技术的任何计算机可执行指令、以及在实现所公开的实施例期间创建和使用的任何数据可以存储在一个或多个计算机可读介质(例如,计算机可读存储介质)上。计算机可执行指令可以是例如专用软件应用或者经由web浏览器或其他软件应用(诸如远程计算应用)访问或下载的软件应用的部分。例如,这样的软件可以在单个本地计算机上(例如,作为在任何合适的市售计算机上执行的代理)或者使用一个或多个网络计算机在网络环境(例如,经由因特网、广域网、局域网、客户端服务器网络(诸如云计算网络)或其他这样的网络)中被执行。为了清楚起见,仅描述了基于软件的实现的某些选定方面。本领域公知的其他细节被省略。例如,应当理解,所公开的技术不限于任何特定的计算机语言或程序。例如,所公开的技术可以通过用C、C++、Java或任何其他合适的编程语言编写的软件来实现。同样,所公开的技术不限于任何特定的计算机或硬件类型。合适的计算机和硬件的某些细节是公知的,并且不需要在本公开中详细阐述。此外,任何基于软件的实施例(例如,包括用于使得计算机执行任何所公开的方法的计算机可执行指令)可以通过合适的通信手段来上载、下载或远程访问。这样的合适的通信手段包括例如因特网、万维网、内联网、软件应用、电缆(包括光缆)、磁通信、电磁通信(包括RF、微波和红外通信)、电子通信、或其他这样的通信手段。II.所公开的技术的介绍超标量无序微架构使用实质的电路资源来重命名寄存器,以数据流次序调度指令,在推测未命中之后进行清理,并且为了确切的异常而有序地引退结果。这包括昂贵的耗能电路,诸如深度多端口寄存器文件、用于数据流指令调度唤醒的多端口内容可访问存储器(CAM)、以及很多宽总线多路复用器和旁路网络,所有这些都是资源密集型的。例如,多读多写RAM的基于FPGA的实现通常要求复制、多周期操作、时钟倍频、存储体交错、实时值表和其他昂贵的技术的混合。所公开的技术能够通本文档来自技高网
...
具有连续块的并行执行的基于块的架构

【技术保护点】
一种基于块的计算系统,包括:多个处理器核心,其包括第一处理器核心,所述第一处理器核心被配置为执行第一指令块的指令并且在所述第一指令块被提交之前生成第二指令块的目标地址;以及控制逻辑,其被配置为在所述第一指令块被提交之前接收所述第二指令块的所述目标地址并且发起所述第二指令块的非推测性执行。

【技术特征摘要】
【国外来华专利技术】2015.06.26 US 14/752,6361.一种基于块的计算系统,包括:多个处理器核心,其包括第一处理器核心,所述第一处理器核心被配置为执行第一指令块的指令并且在所述第一指令块被提交之前生成第二指令块的目标地址;以及控制逻辑,其被配置为在所述第一指令块被提交之前接收所述第二指令块的所述目标地址并且发起所述第二指令块的非推测性执行。2.根据权利要求1所述的基于块的计算系统,还包括由所述多个处理器核心共享的资源,并且其中所述控制逻辑还被配置为优先访问所述共享资源,使得与较新的非推测性指令块和推测性指令块相比,较旧的非推测性指令块具有对所述资源的优先权。3.根据权利要求1或2中任一项所述的基于块的计算系统,其中发起所述第二指令块的非推测性执行至少部分基于被编码在所述第一指令块的头部中的出口类型信息。4.根据权利要求1到3中任一项所述的基于块的计算系统,其中发起所述第二指令块的执行包括将所述第二指令块加载到所述多个处理器核心中的第二核心中。5.根据权利要求1到4中任一项所述的基于块的计算系统,其中所述第一指令块被加载到所述第一核心的第一指令窗口中,并且发起所述第二指令块的执行包括将所述第二指令块加载到所述第一核心的第二指令窗口中。6.一种在基于块的架构中执行分支方法,所述方法包括:使用所述基于块的架构的第一核心来执行第一指令块的一个或多个指令;以及在所述第一指令块被提交之前,发起第二指令块的指令的非推测性执行。7.根据权利要求6所述的方法,还包括:评估所述第一指令块的所述指令的谓词;以及至少部分基于所述谓词评估来执行所述发起。8.根据权利要求6或7中任一项所述的方法,还包括...

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

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

1