空指令的动态生成制造技术

技术编号:17959520 阅读:42 留言:0更新日期:2018-05-16 05:18
装置和方法被公开用于存储器访问指令(诸如存储器存储指令)的动态无效。在所公开的技术的一些示例中,一种装置可以包括存储器和一个或多个基于块的处理器核。核之一可以包括被配置为执行存储器访问指令的执行单元,存储器访问指令包括指令块中包含的多个存储器加载和/或存储器存储指令。核还可以包括硬件结构,硬件结构存储用于指令块中的至少一个断言指令的数据,该数据标识如果断言指令的条件被满足则存储器存储指令中的一个或多个是否将发出。核可以进一步包括控制单元,控制单元被配置为至少部分地基于硬件结构数据来控制存储器访问指令向执行单元的发出。

Dynamic generation of empty instructions

Devices and methods are disclosed for dynamic invalidation of memory access instructions such as memory storage instructions. In some examples of the disclosed technologies, one device can include memory and one or more block based processor cores. One of the cores can include an execution unit that is configured to execute the memory access instruction, and the memory access instruction includes a plurality of memory loading and / or memory storage instructions contained in the instruction block. The core can also include hardware structure, and the hardware structure stores data for at least one assertion instruction in the instruction block, which identifies whether one or more of the memory storage instructions will be sent if the condition of the assertion instruction is satisfied. The core may further include a control unit, which is configured to control the emit of the memory access instruction to the execution unit at least partly based on the hardware structure data.

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

【技术保护点】
一种包括存储器和一个或多个基于块的处理器核的装置,所述核中的至少一个核包括:执行单元,被配置为执行存储器访问指令,所述存储器访问指令包括指令块中包含的多个存储器加载和/或存储器存储指令;硬件结构,存储用于所述指令块中的至少一个断言指令的数据,所述数据标识在所述断言指令的条件被满足的情况下所述存储器存储指令中的一个或多个存储器存储指令是否将发出;以及控制单元,被配置为至少部分地基于所述硬件结构数据来控制所述存储器访问指令向所述执行单元的发出。

【技术特征摘要】
【国外来华专利技术】2015.09.19 US 62/221,003;2015.12.23 US 14/998,1471.一种包括存储器和一个或多个基于块的处理器核的装置,所述核中的至少一个核包括:执行单元,被配置为执行存储器访问指令,所述存储器访问指令包括指令块中包含的多个存储器加载和/或存储器存储指令;硬件结构,存储用于所述指令块中的至少一个断言指令的数据,所述数据标识在所述断言指令的条件被满足的情况下所述存储器存储指令中的一个或多个存储器存储指令是否将发出;以及控制单元,被配置为至少部分地基于所述硬件结构数据来控制所述存储器访问指令向所述执行单元的发出。2.根据权利要求1所述的装置,其中所述硬件结构进一步被配置为:存储指示所述存储器访问指令中的至少一些存储器访问指令的执行排序的数据。3.根据权利要求2所述的装置,其中指示执行排序的所述数据至少部分地基于针对所述指令块中的所述存储器访问指令中的每个存储器访问指令而编码的加载/存储标识符(LSID)。4.根据权利要求2所述的装置,其中所述控制单元进一步被配置为基于所述硬件结构数据来发出一个或多个空存储指令。5.根据权利要求1所述的装置,其中所述控制单元包括存储向量寄存器,所述存储向量寄存器存储指示所述存储器访问指令中的哪些存储器访问指令已经执行的存储向量数据,并且其中所述控制单元进一步被配置为基于所述硬件结构数据来修改所述存储向量数据,以指示在所述断言指令的所述条件被满足的情况下所述存储器存储指令中的一个或多个未发出指令已经发出。6.根据权利要求1所述的装置,其中所述控制单元包括存储向量寄存器,所述存储向量寄存器存储指示所述存储器访问指令中的哪些存储器访问指令已经执行的存储向量数据,并且其中所述控制单元进一步被配置为:将所述存储向量数据与存储掩码数据相比较以确定所述存储器存储指令中的哪些存储器存储指令已经执行,所述存储掩码数据指示所述存储器访问指令中的至少一些存储器访问指令的执行排序;以及将所述存储向量数据与所述存储掩码数据相比较以确定被排序在所述存储器访问指令中的当前存储器访问指令之前的所有存储器存储指令已经执行,并且基于所述确定向所述执行单元发出所述当前存储器访问指令。7.根据权利要求1所述的装置,其中所述硬件结构中存储的所述数据由译码所述存储器访问指令的指令译码器生成。8.一种操作处理器以执...

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

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

1