解耦合的处理器指令窗口和操作数缓冲区制造技术

技术编号:17490817 阅读:40 留言:0更新日期:2018-03-17 13:47
一种基于指令块的微架构中的处理器内核被配置为使得指令窗口和操作数缓冲区被解耦合以进行独立地操作,其中块中的指令不与资源(诸如被维持在操作数缓冲区中的控制位和操作数)严格地绑定。相反,在块和资源中的指令之间建立指针,使得可以通过跟随这些指针来为经刷新的指令块(即,被重新使用而不从指令高速缓存重新提取的指令块)建立控制状态。指令窗口与操作数空间的这种解耦合可以提供更高的处理器效率,特别是在利用刷新的多核心阵列中(例如,当执行使用紧密的循环的程序代码时),因为操作数和控制位被预验证。

Decoupled processor instruction window and operand buffer

A micro architecture instruction in block processor based on kernel is configured such that the instruction window and data buffer is coupled to independently, which blocks in the instruction and resources (such as the number of bits and the operation control is maintained in the buffer of the operands) strictly bound. Instead, a pointer is set up between the instructions in blocks and resources, so that the control state can be established by following these pointer to refresh the instruction block, that is, the instruction block which is reused instead of from the instruction cache. The decoupling of instruction window and operand space can provide higher processor efficiency, especially in the use of refreshed multi-core arrays (for example, when executing tightly cyclic program codes), because operands and control bits are pre verified.

【技术实现步骤摘要】
【国外来华专利技术】解耦合的处理器指令窗口和操作数缓冲区
技术介绍
指令集架构(ISA)和处理器的设计者对功耗和性能进行权衡。例如,如果设计者选择具有递送更高性能的指令的ISA,则处理器的功耗可能也会更高。或者,如果设计者选择具有功耗较低的指令的ISA,则性能可能更低。功耗可以与在执行期间由指令所使用的处理器的硬件资源(诸如算术逻辑单元(ALU)、高速缓存线或寄存器)的数量相关。使用大量这样的硬件资源可以以较高的功耗为代价递送较高的性能。或者,使用少量这样的硬件资源可以以较低的性能为代价产生较低的功耗。编译器可以用于将高级代码编译成与ISA和处理器架构兼容的指令。
技术实现思路
一种基于指令块的微架构中的处理器内核被配置为使得指令窗口和操作数缓冲区被解耦合以进行独立地操作,其中块中的指令不与资源(诸如被维持在操作数缓冲区中的控制位和操作数)严格地绑定。相反,在块和资源中的指令之间建立指针,使得可以通过跟随这些指针来为经刷新的指令块(即,被重新使用而不从指令高速缓存重新提取的指令块)建立控制状态。指令窗口与操作数空间的这种解耦合可以提供更高的处理器效率,特别是在利用刷新的多核心阵列中(例如,当执行使用紧密的循环的程序代码时),因为操作数和控制位被预验证。提供本“
技术实现思路
”以便以简化的形式介绍将在以下“具体实施方式”中进一步描述的一些概念。本“
技术实现思路
”不旨在标识所要求保护的主题的关键特征或基本特征,也不旨在用于帮助确定所要求保护的主题的范围。此外,所要求保护的主题不限于解决本公开的任何部分中提到的任何或全部缺点的实现。附图说明图1示出了说明性计算环境,其中编译器提供在包括多个处理器内核的架构上所运行的编码指令;图2是用于示例性处理器内核的说明性微架构的框图;图3示出了块标头(blockheader)的说明性布置;以及图4-15是说明性方法的流程图。相似的附图标记表示附图中的相似的元素。除非另有说明,否则元素不是按比例绘制的。具体实施方式图1示出了可以与其一起利用指令块的当前基于年龄的管理的说明性计算环境100。该环境包括编译器105,其可以用于从程序115生成编码的机器可执行指令110指令110可以由处理器架构120处理,处理器架构120被配置为处理具有可变尺寸内容(例如,在4到128个指令之间)的指令块。处理器架构120通常包括平铺配置的多个处理器内核(由附图标记125代表性地指示),这些处理器内核由片上网络(未示出)互连,并且还与一个或多个2级(L2)高速缓存(由附图标记130代表性地指示)交互操作。尽管内核和高速缓存的数目和配置可以根据实施方式而变化,但是应当注意,物理内核可以在程序115的运行时期间在被称为“合成”的过程中被一起合并到一个或多个更大的逻辑处理器中,更大的逻辑处理器可以使得更多的处理能力致力于程序执行。或者,当程序执行支持合适的线程级并行性时,内核125可以在被称为“分解”的过程中被拆分以独立地工作,并且执行来自独立线程的指令。图2是说明性处理器内核125的一部分的简化框图。如图所示,处理器内核125可以包括前端控制单元202、指令高速缓存204、分支预测器206、指令解码器208、指令窗口210、左操作数缓冲区212、右操作数缓冲区214、算术逻辑单元(ALU)216、另一ALU218、寄存器220以及加载/存储队列222。在一些情况下,总线(由箭头指示)可以携带数据和指令,而在其他情况下,总线可以携带数据(例如,操作数)或控制信号。例如,前端控制单元202可以经由仅携带控制信号的总线来与其他控制网络通信。尽管图2示出了以特定安排来被布置的用于处理器内核125的一定数目的说明性部件,但是取决于特定实施方式的需要,可以具有不同布置的更多或更少的部件。前端控制单元202可以包括被配置为控制通过处理器内核的信息流的电路以及用于协调其内的活动的电路。前端控制单元202还可以包括用于实施有限状态机(FSM)的电路,在FSM中状态列举了处理器内核可以采用的每个操作配置。通过使用操作码(如下所述)和/或其他输入(例如,硬件级信号),前端控制单元202中的FSM电路可以确定下一状态并且控制输出。因此,前端控制单元202可以从指令高速缓存204提取指令,以用于由指令解码器208进行处理。前端控制单元202可以通过控制网络或总线来与处理器内核125的其他部分交换控制信息。例如,前端控制单元可以与后端控制单元224交换控制信息。在一些实施方式中,前端控制单元和后端控制单元可以被集成到单个控制单元中。前端控制单元202还可以协调和管理对处理器架构120(图1)的各个内核和其他部分的控制。因此,例如,指令块可以同时在多个内核上执行,并且前端控制单元202可以经由控制网络来与其他内核交换控制信息,以根据需要确保各种指令块执行的同步。前端控制单元202可以进一步处理关于以原子态执行的指令块的控制信息和元信息。例如,前端控制单元202可以处理与指令块相关联的块标头。如下面更详细地讨论的,块标头可以包括关于指令块的控制信息和/或元信息。相应地,前端控制单元202可以包括组合逻辑、状态机和暂态存储单元(诸如触发器),以处理块标头中的各个字段。前端控制单元202可以在每个时钟周期提取并解码单个指令或多个指令。已解码指令可以存储在指令窗口210中,指令窗口210在处理器内核硬件中被实施作为缓冲区。指令窗口210可以支持指令调度器230,在一些实施方式中,指令调度器230可以保持每个已解码指令的输入(诸如断言和操作数)的就绪状态。例如,当其所有输入(如果有的话)就绪时,给定的指令可以由指令调度器230唤醒并且准备好被发出。在发出指令之前,根据需要,指令所需要的任何操作数可以被存储在左操作数缓冲区212和/或右操作数缓冲区214中。取决于指令的操作码,可以使用ALU216和/或ALU218或其他功能单元来对操作数执行操作。ALU的输出可以存储在操作数缓冲区中,或者存储在一个或多个寄存器220中。以数据流顺序发出的存储操作可以在加载/存储队列222中排队,直到指令块提交。当指令块提交时,加载/存储队列222可以将所提交的块存储写入存储器。分支预测器206可以处理与分支出口类型相关的块标头信息,并且在进行分支预测时将该信息作为因素。如上所述,处理器架构120通常利用在以原子态提取、执行和提交的块中所组织的指令。因此,处理器内核可以集中地提取属于单个块的指令,将它们映射到处理器内核内的执行资源,执行指令,并且以原子态提交它们的结果。处理器可以提交所有指令的结果,或者可以取消整个块的执行。块内的指令可以按照数据流顺序执行。另外,处理器可以允许块内的指令使用消息或其他合适形式的通信来彼此直接通信。因此,产生结果的指令可以将该结果传送给块中利用该结果的另一指令,而非将结果写入寄存器文件。作为示例,对存储在寄存器R1和R2中的值进行累加的指令可以被表示为如下面的表1所示:表1以这种方式,源操作数不是用指令指定的,而是由以ADD指令为目标的指令来指定的。编译器105(图1)可以在指令110的编译期间显式地对控制和数据依赖关系进行编码,从而使得处理器内核无需在运行时重新发现这些依赖关系。这可以有利地使得在这些指令的执行期间处理器负载减少并且节能。作为示例,本文档来自技高网...
解耦合的处理器指令窗口和操作数缓冲区

【技术保护点】
一种用于管理指令窗口中的指令块的方法,所述指令窗口在布置处理器中,所述方法包括:将指令块从指令高速缓存映射到所述指令窗口中,所述指令块包括一个或多个解码指令;为所述指令块分配资源,其中所述资源包括与所述指令块中的所述一个或多个解码指令中的每一个解码指令相关联的控制位和操作数;维持所述资源和所述块中的所述一个或多个解码指令之间的一个或多个指针;刷新所述指令块,而不从所述指令高速缓存重新提取所述指令块;以及通过跟随所述一个或多个指针来重新使用所述资源。

【技术特征摘要】
【国外来华专利技术】2015.06.26 US 14/752,7241.一种用于管理指令窗口中的指令块的方法,所述指令窗口在布置处理器中,所述方法包括:将指令块从指令高速缓存映射到所述指令窗口中,所述指令块包括一个或多个解码指令;为所述指令块分配资源,其中所述资源包括与所述指令块中的所述一个或多个解码指令中的每一个解码指令相关联的控制位和操作数;维持所述资源和所述块中的所述一个或多个解码指令之间的一个或多个指针;刷新所述指令块,而不从所述指令高速缓存重新提取所述指令块;以及通过跟随所述一个或多个指针来重新使用所述资源。2.根据权利要求1所述的方法,还包括:为从所述指令高速缓存提取的每个指令块执行批量分配,以获取与所述指令块中的所述一个或多个指令中的每一个指令相关联的资源。3.根据权利要求1所述的方法,还包括在与所述指令窗口解耦合的操作数缓冲区中维持操作数和控制位,以使得资源在指令块被刷新时被预验证。4.根据权利要求3所述的方法,其中所述控制位包括操作数就绪状态。5.根据权利要求1所述的方法,其中所述资源包括操作码。6.根据权利要求5所述的方法,还包括:基于程序来利用指令块,以及在使用编程循环来实现所述程序的执行时刷新所述指令块。7.一种基于指令块的微架构,包括:控制单元;一个或多个操作数缓冲区;以及指令窗口,所述指令窗口被配置为存储要在所述...

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

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

1