乱序的基于块的处理器和指令调度器制造技术

技术编号:19878181 阅读:18 留言:0更新日期:2018-12-22 17:54
公开了用于实现包括现场可编程门阵列实现的基于块的处理器的装置和方法。在所公开的技术的一个示例中,基于块的处理器包括被配置为针对指令的事务块生成译码的就绪依赖性的指令译码器,其中指令中的每个指令与编码在事务块中的不同指令标识符相关联。处理器还包括被配置为从指令的事务块的集合乱序地发出指令的指令调度器。指令基于确定针对指令的译码的就绪状态依赖性被满足而被发出。确定包括访问具有译码的就绪依赖性的存储装置,该译码的就绪依赖性利用被编码在指令的事务块中的相应指令标识符而被索引。

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

【技术保护点】
1.一种包括基于块的处理器的装置,所述基于块的处理器包括:指令译码器,其被配置为针对指令的事务块的至少部分生成译码的就绪依赖性,所述指令中的每个指令与编码在所述事务块中的不同指令标识符相关联;以及指令调度器,其被配置为从指令的所述事务块不按程序顺序地发出指令,其中:所述指令基于确定针对所述指令的所述译码的就绪依赖性被满足而被发出,并且所述确定包括:访问存储装置,所述存储装置存储使用被编码在指令的所述事务块中的相应指令标识符的所述译码的就绪依赖性。

【技术特征摘要】
【国外来华专利技术】2016.04.28 US 62/328,976;2016.07.29 US 15/224,4691.一种包括基于块的处理器的装置,所述基于块的处理器包括:指令译码器,其被配置为针对指令的事务块的至少部分生成译码的就绪依赖性,所述指令中的每个指令与编码在所述事务块中的不同指令标识符相关联;以及指令调度器,其被配置为从指令的所述事务块不按程序顺序地发出指令,其中:所述指令基于确定针对所述指令的所述译码的就绪依赖性被满足而被发出,并且所述确定包括:访问存储装置,所述存储装置存储使用被编码在指令的所述事务块中的相应指令标识符的所述译码的就绪依赖性。2.根据权利要求1所述的装置,其中所述确定包括:使用由执行的指令信号通知的指令标识符,来生成用于访问所述存储装置的索引。3.根据权利要求1或权利要求2所述的装置,其中所述指令处理器还包括指令取指单元,所述指令取指单元被配置为:取指针对指令的所述事务块的头的至少部分,并且并发地取指指令的所述事务块的指令的至少部分。4.根据权利要求3所述的装置,其中所述指令取指单元包括存储所取指的头的第一块存储器、和存储所取指的指令的第二块存储器。5.根据权利要求1-4中的任一项所述的装置,其中所述指令调度器被耦合到数据操作数缓冲器,所述数据操作数缓冲器存储用于由所述指令在后续时钟周期中的执行而生成的数据。6.根据权利要求5所述的装置,还包括旁路逻辑,所述旁路逻辑允许数据操作数被转发以用于由指令在紧跟着的后续时钟周期中的执行,所述旁路逻辑允许所述数据操作数被转发而不将所述数据操作数存储在所述数据操作数缓冲器中。7.根据权利要求5所述的装置,其中所述数据操作数缓冲器被配置为每个时钟周期为不超过一个的指令来存储操作数数据,所述装置还包括:旁路逻辑,其允许在不同数据操作数被存储在所述数据操作数缓冲器中时、针对不同指令的数据操作数在相同时钟周期中被转发到所述处理器的执行单元。8.一种被配置为执行基于块的处理器指令集的可重新配置逻辑器件,所述器件包括:多个多输入查找表(LUT);指令高速缓存,其被配置为从指令块接收指令,所述指令由所述处理器从耦合到所述可重新配置逻辑器件的存储器取指;指令调度器,其被配置为存储由编码在指令块中的指令标识符索引的就绪状态数据,所述指令调度器还...

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

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

1