当前位置: 首页 > 专利查询>英特尔公司专利>正文

用于细粒度异构处理的指令集架构制造技术

技术编号:19023131 阅读:31 留言:0更新日期:2018-09-26 19:00
本发明专利技术涉及用于细粒度异构处理的指令集架构(ISA)以及相关联的处理器、方法和编译器。ISA包括被配置成在具有实现不同的微架构的异构核的处理器上执行的指令。提供了用以使得能够针对具有异构核的目标处理器(或处理器家族)编译/汇编相应代码段并使得针对特定类型的处理器核微架构所编译的适当代码段在运行时间时经由ISA指令的执行而被动态地调用的机制。除了支持具有三个或更多个不同的核类型的处理器的指令之外,ISA指令还包括无条件分支和调用指令及有条件分支和调用指令二者。指令被配置成在基本上不添加开销的同时支持指令线程跨异构核的动态迁移。还提供了用以生成和汇编操作码段的编译器,所述操作码段被配置成在具有异构核的处理器上执行。

【技术实现步骤摘要】
用于细粒度异构处理的指令集架构
技术介绍
处理器速度、存储器、存储和网络带宽技术方面的提高导致了增建和部署具有不断增加的容量的网络。最近,基于云的服务——诸如由亚马逊提供的那些(例如,亚马逊弹性计算云(EC2)和简单存储服务(S3))和由微软提供的那些(例如,Azure和Office365)——的引入导致了除了部署海量数据中心以支持采用私人网络基础设施的这些服务之外还增建附加网络以用于公共网络基础设施。基于云的服务一般由大量互连的高速服务器来促进,其中主机设施通常称为服务器“农场”或数据中心。这些服务器农场和数据中心一般包括容纳在专门设计的设施中的机架和/或刀片服务器的大到海量的阵列。较大的基于云的服务中的许多都是经由跨地理区域分布或甚至全球分布的多个数据中心托管的。例如,微软Azure在美国、欧洲和亚洲中的每一个中都具有多个非常大的数据中心。亚马逊采用位于同一处且分离的数据中心用于托管它的EC2和AWS服务,仅在美国就包括不止十二个AWS数据中心。数据中心性能中的限制性因素之一是在单个处理器级别和机架级别二者处的热负荷。热负荷与处理器功率消耗直接相关:处理器消耗的功率越多,它生成的热量就越多。随着处理器密度的增加(即,机架中的给定物理空间内的更多的处理器),热考虑变得愈加重要。现今,存在各种方法用于平衡性能和热负荷,包括使工作负载跨更多的处理器分布以及将核置于降低功率状态中。然而,这二者都是粗粒度的方法。近来,引入了采用“大”核和“小”核的混合的异构处理器架构。所述处理器主要面向低功率客户端/移动设备,但可预想到具有异构架构的服务器处理器将通过更高效的处理器利用而提供增强的性能。附图说明在结合附图理解时,本专利技术的前述方面和许多伴随的优点将随着其通过参考以下详细描述变得更好理解而变得更容易领会,在附图中相同的参考标号贯穿各图指代相同的部分,除非另外指定:图1a是Arm处理器的图示,其具有“大”核和“小”核的相同大小的集群并且被配置成实现成群切换的方案;图1b是内核中切换器方案的图示,在所述方案下成对的大核和小核被实现为虚拟核;图1c是具有“大”核和“小”核的Arm处理器的图示,其采用异构多处理(全局任务调度)方案,在所述方案下使得能实现所有核的同时使用;图2a和2b分别图示了伪代码清单,其对应于采用具有IP偏移的操作数的无条件和有条件分支指令的实施例;图3a和3b分别图示了伪代码清单,其对应于采用具有IP偏移的操作数的无条件和有条件调用指令的实施例;图4a和4b分别图示了伪代码清单,其对应于采用具有要将执行分支到的操作码段的地址的操作数的无条件和有条件分支指令的实施例;图5a和5b分别图示了伪代码清单,其对应于采用具有要调用的操作码段的地址的操作数的无条件和有条件调用指令的实施例;图6a和6b分别图示了伪代码清单,其对应于支持具有N个不同的核类型的处理器的无条件和有条件调用指令的实施例;图7是图示了根据一个实施例的由编译器实现的操作和逻辑的流程图,其用来编译和汇编操作码以用于在具有异构核的处理器上执行;图8a是图示了使用基于第一编译指示的方案、针对大核和小核微架构生成核类型特定的RSA-sign(RSA-签名)函数的伪代码清单和图示;图8b是图示了使用基于第二编译指示的方案、针对大核和小核微架构生成核类型特定的RSA-sign函数的伪代码清单和图示;图8c是图示了使用基于第三编译指示的方案、针对大核和小核微架构生成核类型特定的RSA-sign函数的伪代码清单和图示;图8d是图示了使用基于第四编译指示的方案、针对大核和小核微架构生成核类型特定的RSA-sign函数的伪代码清单和图示,所述方案针对每个RSA-sign函数采用分离的源代码;以及图8e是图示了使用基于第五编译指示的方案、针对大核和小核微架构生成核类型特定的直接插入(in-line)分支的代码段的伪代码清单和图示;以及图9是图示了基于Arm的微架构的示例的示意性框图。具体实施方式本文中描述了用于细粒度异构处理的指令集架构及相关联的处理器、方法和编译器的实施例。在以下描述中,阐述了众多具体细节以提供对本专利技术的实施例的透彻理解。然而,相关领域技术人员将认识到,可以在没有所述具体细节中的一个或多个的情况下或者利用其它方法、组件、材料等来实践本专利技术。在其它实例中,没有详细地示出或描述公知的结构、材料或操作以免模糊本专利技术的各方面。贯穿本说明书对“一个实施例”或“实施例”的引用意指结合所述实施例描述的特定特征、结构或特性被包括在本专利技术的至少一个实施例中。因此,短语“在一个实施例中”或“在实施例中”在贯穿本说明书的各处的出现不一定都指代同一实施例。此外,所述特定结构、特征或特性可以以任何适合的方式组合在一个或多个实施例中。为了清楚起见,本文中的附图中的单独的组件还可以通过其在附图中的标签而不是通过特定的参考标号来指代。另外,指代特定组件类型(与特定组件相对)的参考标号可以被示出有参考标号接着是意指“典型的”的“(型)((typ))”。将理解,这些组件的配置将是可能存在但为了简单和清楚而未在附图中示出的类似组件或另外的没有被标注单独的参考标号的类似组件中的典型的。相反地,“(型)”不应被解释为意指组件、元件等通常用于其公开的功能、实现、目的等。ARM利用其“大.小”方法实现了客户端/移动处理器空间中的异构计算解决方案。基本思想是存在特定ARM指令集/架构的两个设计/实现。这些之一是针对功率/能量/区域重度优化的,因此被称作“小的”。另一个是一般经由超标量执行端口、无序处理、昂贵的分支预测单元、较大的高速缓存、重度推测/存储器预取等来使绝对性能最大化的非常积极进取的设计。这被称作“大的”。在客户端/移动的上下文中,在发动时将应用/任务分成关键的一个或后台任务并将它们分别束缚至大核或小核成为可能。根据维基百科文章,存在取决于操作系统的调度来布置核的三种方式。在图1a中示出的成群切换的方案下,处理器被配置有“大”(Cortex-A57)核和“小”(Cortex-A53)核的相同大小的集群。Linux操作系统调度器每次仅可以看到一个集群;当整个处理器上的负载在低与高之间改变时,系统转变到另一集群。然后将所有相关数据传递通过共用的L2(2级)高速缓存(未示出),第一核集群被断电并且另一个被激活。如所描绘的,如果需要至少一个高核(即,大核),则挑选高集群。在图1b中示出的内核中切换器方案下,将“大”(Cortex-A15)核与“小”(Cortex-A7)核配对,其中每一对被实现为一虚拟核。在每个虚拟核的操作期间,每次仅对一个真实核(“大”或“小”)供电。针对给定的虚拟核,在需求为高时使用“大”核,而在需求为低时使用“小”核。当虚拟核上的需求(在高与低之间)改变时,对即将就任的核上电,运行状态在核之间转移,将即将卸任的核停机,并且处理在新核上继续。经由Linuxcpufreq框架完成切换。在图1c中示出的异构多处理(全局任务调度)方案下,使得能实现所有核的同时使用。可以将具有高优先级或计算强度的线程分配给“大”(Cortex-A15)核,而可以在“小”(Cortex-A7)核上执行具有较低优先级或较小计算强度的线程,诸如后台任务。在图1a-1c中示出的ARM架构本文档来自技高网...

【技术保护点】
1.一种处理器,包括:多个处理器核,每个处理器核具有指令指针(IP),所述多个处理器核包括实现第一微架构的至少一个第一类型的处理器核和实现第二微架构的至少一个第二类型的处理器核;指令集架构(ISA),其包括具有第一和第二操作数的指令,所述第一和第二操作数分别用来存储数据,根据所述数据能够确定被配置成在第一类型的处理器核上执行的第一代码段的第一位置并且能够确定被配置成在第二类型的处理器核上执行的第二代码段的第二位置,其中所述指令在所述多个处理器核中的一个上的执行使得所述处理器,基于正在执行所述指令的核的类型来将所述处理器核的所述IP更新成指向第一或第二位置。

【技术特征摘要】
2017.03.07 US 15/4521501.一种处理器,包括:多个处理器核,每个处理器核具有指令指针(IP),所述多个处理器核包括实现第一微架构的至少一个第一类型的处理器核和实现第二微架构的至少一个第二类型的处理器核;指令集架构(ISA),其包括具有第一和第二操作数的指令,所述第一和第二操作数分别用来存储数据,根据所述数据能够确定被配置成在第一类型的处理器核上执行的第一代码段的第一位置并且能够确定被配置成在第二类型的处理器核上执行的第二代码段的第二位置,其中所述指令在所述多个处理器核中的一个上的执行使得所述处理器,基于正在执行所述指令的核的类型来将所述处理器核的所述IP更新成指向第一或第二位置。2.根据权利要求1所述的处理器,其中所述处理器核包括至少一个大核和至少一个小核,其中所述至少一个大核中的每一个与第一微架构相关联,并且其中所述至少一个小核中的每一个与第二微架构相关联,并且其中小核比大核消耗更少的功率。3.根据权利要求1或2所述的处理器,其中第一和第二微架构是基于ARM的微架构。4.根据前述权利要求中的任一项所述的处理器,其中第一和第二操作数被用来存储第一和第二IP偏移,并且其中如果所述处理器核与第一类型的处理器核对应,则所述指令在所述处理器核上的执行使得所述处理器核的所述IP中的值偏置第一IP偏移,或者如果所述处理器核与第二类型的处理器核对应,则所述指令在所述处理器核上的执行使得所述处理器核的所述IP的所述值偏置第二IP偏移。5.根据前述权利要求中的任一项所述的处理器,其中第一和第二操作数被用来存储第一和第二地址,并且其中如果所述处理器核是第一核类型的处理器核,则所述指令在所述处理器核上的执行使得第一地址被加载到所述处理器核的所述IP中,或者如果所述处理器核是第二类型的处理器核,则所述指令在所述处理器核上的执行使得第二地址被加载到所述处理器核的所述IP中。6.根据前述权利要求中的任一项所述的处理器,其中所述指令是分支指令,当所述分支指令在第一类型的处理器核上执行时其分支到第一代码段并且当所述分支指令在第二类型的处理器核上执行时其分支到第二代码段。7.根据权利要求6所述的处理器,其中所述分支指令是有条件分支指令,其包括用以存储数据的第三操作数,所述数据在所述指令被执行时由所述处理器核进行评估以确定是否要分支到第一和第二代码段中的任一个。8.根据前述权利要求中的任一项所述的处理器,其中所述指令是调用指令,当所述调用指令在第一类型的处理器核上执行时其调用第一代码段并且当所述调用指令在第二类型的处理器核上执行时其调用第二代码段。9.根据权利要求8所述的处理器,其中所述调用指令是有条件调用指令,其包括用以存储数据的第三操作数,所述数据在所述指令被执行时由所述处理器核进行评估以确定是否要调用第一和第二代码段中的任一个。10.根据前述权利要求中的任一项所述的处理器,其中所述处理器包括N个或更多个不同的核类型并且所述ISA包括指令,所述指令在所述处理器核中的一个上执行时使得所述处理器:读取包含表格的位置的寄存器,所述表格包含将所述N个不同的核类型中的每一个映射到与该核类型对应的代码段所位于的位置的信息;以及从所述表格中检索与执行所述指令的所述处理器核即为的核类型相关联的代码段的位置。11.一种由具有多个处理器核的处理器执行的方法,所述多个处理器核包括实现第一微架构的至少一个第一类型的处理器核和实现第二微架构的至少一个第二类型的处理器核,所述方法包括:在处理器核上执行指令以使得:如果所述处理器核是第一类型的处理器核,则所述处理器核执行第一代码段,或者如果所述处理器核是第二类型的处理器核,则所述处理器核执行第二代码段。12.根据权利要求11所述的方法,其中所述处理器核包括至少一个大核和至少一个小核,其中所述至少一个大核中的每一个与第一微架构相关联,并且其中所述至少一个小核中的每一个与第二微架构相关联,并且其中小核比大核消耗更少的功率。13.根据权利要求11或12所述的方法,其中第一和第二微架构是基于ARM的微架构。14.根据权利要求11-13中的任一权利要求所述的方法,其中所述多个处理器核中的每一个包括指令指针(IP),其中所述指令包括用来存储第一和第二IP偏移的第一和第二操作数,并且其中如果所述处理器核是第一类型的处理器核,则所述指令在所述处理器核上的执行使得所...

【专利技术属性】
技术研发人员:V戈帕尔
申请(专利权)人:英特尔公司
类型:发明
国别省市:美国,US

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

1