包括混合处理器核的片上系统(SOC)的制作方法

文档序号:13215583阅读:306来源:国知局
技术领域本公开内容的各实施例通常涉及处理设备,且尤其涉及包括均具有根据不同的指令集架构(ISA)设计的异构核的处理器的片上系统。背景终端用户可能要求诸如膝上型计算机、平板计算机或智能电话之类的单个计算设备有选择地在多种生态系统或操作系统(OS)的其中之一下操作。例如,他们可能期望设备在用于私人用途的第一OS(如安卓TM)下操作和在用于商务用途的第二OS(如)下操作。不同类型的OS可以构建在根据不同的指令集架构(ISA)设计的处理器上。例如,架构(IA)是WindowsOS可以在其上操作的一种类型的ISA,且是安卓可以在其上操作的另一类型的ISA。另外,ISA的每一种都可以把不同的通信协议集用作在处理器中的组件之间或在处理器和外围设备之间的通信接口。当前,设备生产商通过两种技术的其中之一在相同的计算设备上实现双生态系统。第一种,设备生产商简单地把不同ISA的处理器设计到单个计算设备中。例如,设备生产商可以在计算设备中实现一个IA处理器和一个ARM处理器,以使得当Windows是前台OS时Windows应用可以运行在IA处理器上,且当安卓是前台OS时安卓应用可以运行在ARM处理器上。备选地,设备生产商可以在计算设备中相同类型的ISA处理器上运行虚拟机。虚拟机可以从相同类型的ISA指令仿真不同的生态系统。例如,计算设备可以在Windows虚拟机上执行Windows应用且在安卓虚拟机上执行安卓应用,同时计算设备的各处理器可以仅仅地是IA处理器或仅仅地是ARM处理器。附图简述从下面给出的详细描述和本公开内容的各种实施例的附图,将更完整地理解本公开内容。然而,不应认为各图把本公开内容限制在特定的实施例,而是仅用于解释和理解。图1阐释根据一个实施例的处理设备。图2A阐释包括根据一个实施例的总线桥的处理设备。图2B阐释包括根据一个实施例的系统代理转换器的处理设备。图2C阐释包括根据一个实施例的多个处理器模块的处理设备。图3A阐释根据一个实施例的处理设备的详细示意图。图3B阐释根据另一实施例的处理设备的详细示意图。图4是根据一个实施例用于在双OS计算设备中切换OS的方法的框图。图5A是阐释用于包括本公开内容的一个实施例可以在其中使用的异构核的处理器的微架构的框图。图5B是阐释根据本公开内容的至少一个实施例实现的顺序流水线和寄存器重命名级、乱序发起/执行流水线框图。图6阐释用于包括根据本公开内容的一个实施例的逻辑的处理器的微架构的框图。图7是阐释可以在其中使用本公开内容的一个实施例的系统的框图。图8是本公开内容的一个实施例可以在其中操作的系统的框图。图9是本公开内容的一个实施例可以在其中操作的系统的框图。图10是根据本公开内容的一个实施例的片上系统(SoC)的框图。图11是根据本公开内容的SoC设计的实施例的框图。图12阐释计算机系统的一个实施例的框图。详细描述由于根据不同的ISA设计的冗余的处理器,用于在相同的设备上运行双生态系统的方案承受高成本、性能降级和高功率消耗。当前方案的另一问题是在不同的ISA微系统中运行的二进制代码的兼容性。例如,为ARM平台编译的应用未经移植工作不能直接运行在IA平台上。已经使用二进制转换来解决在不同类型的ISA之间的兼容性问题。然而,这种解决方案需要动态地或静态地将为非原生ISA编写的原生库转换到原生ISA的运行时软件。不幸的是,二进制转换引入性能损失且不能处理所有场景。运行多个生态系统的计算设备的终端用户期望以最小的性能降级、功率消耗和系统占用面积在计算设备上可用的不同类型的OS之间快速切换。为了高效地在单个计算设备上实现多生态系统,本公开内容的各实施例提供可以包括至少一个中央处理单元(CPU)的片上系统(SoC),该中央处理单元均包括异构ISA核。异构核可以包括根据第一ISA类型设计的至少一个核以及根据第二ISA类型设计的至少一个核,其中第一ISA类型和第二ISA类型不同。例如,CPU的第一核可以被设计成复杂指令集计算(CISC)核,且同一CPU的第二核可以被设计成精简指令集计算(RISC)核。更具体地,第一ISA类型可以是IA,且第二ISA类型可以是ARM。应注意,尽管出于方便起见本申请常常提及作为两个示例性ISA的IA和ARM,但本申请不限于这些两个特定的示例。本申请的原理同样适用于其他类型的ISA,例如架构。本公开内容的各实施例可以在相同的管芯上集成异构核以便形成SoC,以使得可以在单个计算设备上构建高效和高性能的多OS或双OS。本公开内容的各实施例提供具有比现有技术更低成本和功率消耗、小占用面积和高性能的优点的不同的架构。尽管参考例如在计算平台或微处理器中的特定集成电路描述下列的实施例,但其他实施例适用于其他类型的集成电路和逻辑器件。在此描述的各实施例的类似技术和教导可以应用到其他类型的电路或半导体设备。例如,所公开的实施例不限于台式计算机系统或超极本TM。并且也可以用于其他设备,诸如之类的手持式设备、平板、其他薄笔记本、片上系统(SOC)设备和嵌入式应用。手持式设备的一些示例包括蜂窝式电话、因特网协议设备、数码相机、个人数字助理(PDA)和手持式PC。嵌入式应用通常包括微控制器、数字信号处理器(DSP)、片上系统、网络计算机(NetPC)、机顶盒、网络集线器、广域网(WAN)交换机或可以执行下面教导的功能和操作的任何其他系统。尽管参考处理器描述了下列的实施例,但其他实施例适用于其他类型的集成电路和逻辑器件。本公开内容的各实施例的类似技术和教导可以应用到可以受益于较高的流水线吞吐量和改善的性能的其他类型的电路或半导体设备。本公开内容的各实施例的教导适用于执行数据处理的任何处理器或机器。然而,本公开内容不限于执行512位、256位、128位、64位、32位或16位数据操纵的处理器或机器且可以应用到执行数据的操纵或管理的任何处理器和机器。另外,出于阐释的目的,下列的描述提供各示例,且附图示出各种示例。然而,不应以限制性意义来解释这些示例,这是由于它们仅仅旨在提供本公开内容的各实施例的示例,而不是提供本公开内容的各实施例的所有可能的实现的详尽列表。由于更多计算机系统用于因特网、文本和多媒体应用,已经引入了附加的处理器支持一段时间。在一个实施例中,指令集可以与一个或多个计算机架构相关联,包括数据类型、指令、寄存器架构、编址模式、存储器架构、中断和异常处理以及外部输入和输出(I/O)。在一个实施例中,指令集架构(ISA)可以通过一个或多个微架构来实现,微架构包括用来实现一个或多个指令集的处理器逻辑和电路。相应地,具有不同的微架构的处理器可以共享公共指令集的至少一部分。例如,奔腾4处理器、核TM处理器和来自加利福尼亚州桑尼维尔市的高级微设备有限公司的处理器实现x86指令集的几乎相同的版本(具有已经随新版本增加的一些扩展),但具有不同的内部设计。类似地,由其他处理器开发公司例如ARM控股有限公司、MIPS或它们的经许可方或采用者设计的处理器可以共享公共指令集的至少一部分,但可以包括不同的处理器设计。例如,使用新的或公知的技术,包括专用物理寄存器、使用寄存器重命名机制(例如,使用寄存器别名表(RAT)、重排序缓冲器(ROB)和引退寄存器堆)的一个或多个动态分配物理寄存器,在不同的微架构中可以以不同的方式实现ISA的相同的寄存器架构。在一个实施例中,寄存器可以包括可以或不可以由软件程序员寻址的一个或多个寄存器、寄存器架构、寄存器堆或其他寄存器组。在一个实施例中,指令可以包括一个或多个指令格式。在一个实施例中,指令格式可以指示各种字段(位的数量、位的位置等等),以便指定要执行的操作以及要被执行该操作的(多个)操作数,以及其他。一些指令格式可以进一步按照指令模板(或子格式)定义的分割。例如,给定指令格式的指令模板可以被定义成具有该指令格式的字段的不同子集和/或被定义成具有不同地解释的给定字段。在一个实施例中,使用指令格式(并且,如果已定义,在该指令格式的指令模板中给定的一个中)表示指令,且指定或指示操作和该操作将要操作的操作数。图1阐释根据一个实施例的处理设备100。处理设备100可以是位于相同的管芯或相同的基板上的SoC且可以表示被制造在SoC上的中央处理单元(CPU)。SoC可以包括按相同的半导体制造工艺高效制造的集成电路。如图1中所示出的处理设备100可以包括第一处理器模块102、第二处理器模块104以及总线和/或通信构造(abusand/orcommunicationfabric)106,总线和/或通信构造106提供在处理器模块102和104之间以及在处理器模块102、104和在SoC上或在SoC外的其他组件(未示出)之间的通信接口。在一个实施例中,处理器模块102可以包括根据第一类型的ISA设计的一个或多个处理核,且处理器模块104可以包括根据第二类型的ISA设计的一个或多个处理核,其中第二类型不同于第一类型。ISA类型可以包括CISC或RISC架构的不同特色。例如,ISA可以是IA、ARM和PowerPC架构中的任何一个。在一个实施例中,处理器模块102可以包括根据IA设计的处理核,它们可以专门适用于支持WindowsOS,且处理器模块104可以包括根据ARM设计的处理核,它们可以专门适用于支持安卓OS。在一个实施例中,可以通过使用处理设备100来构建支持多生态系统或双生态系统的计算设备。在计算设备被切换到Windows设备或者作为Windows设备启动时,处理器模块102可以活跃地在前台运行,以便原生地支持执行Windows应用,同时处理模块104可以在后台运行或保持空闲。备选地,在计算设备被切换到安卓设备或作为安卓设备启动时,处理器模块104可以在前台运行,以便原生地支持执行安卓应用,同时处理器模块102可以在后台运行或保持空闲。以此方式,实现了高效和高性能的双生态系统计算设备。总线106可以耦合到处理器模块102、104以提供数据通信和控制信令的接口。在实践中,可以根据具体类型的ISA设计总线106。因而,为了在根据不同类型的ISA设计的处理器模块102、104之间提供通信信道,可能需要用于转换数据和消息的进一步的模块。图2A阐释处理设备200,其包括根据一个实施例用于在不同的ISA核之间通信的电路模块。如图2A中所示出的处理设备200可以包括处理器模块102、104和总线和/或构造106,类似于如图1中所示出的处理设备。另外,处理设备200可以包括耦合在处理器模块104和总线106之间的总线桥202。总线106可以被设计成用于ISA类型的处理器模块102,且因而可能不能够与不同的ISA类型的处理器模块104直接通信。耦合在处理器模块104和总线106之间的总线桥202可以把来自处理器模块104的消息转换成适用于总线106且处理器模块102可理解的格式。相反,总线桥202可以经由总线106将来自处理器模块102的消息转换成适用于处理器模块104的格式。在一个实施例中,处理器模块102可以包括IA类型的核,且总线106可以具体被设计成处理来自IA核的消息。例如,总线106可以是可以处理管芯内互连(IDI)消息的系统代理(SA)。处理器模块104可以包括其类型不同于IA的核。在一个实施例中,在处理器模块104内的核可以是ARM类型,且被设计成根据高级微控制器总线架构(AMBA)协议传输消息。总线桥202可以将来自处理器模块102的IDI消息转换成AMBA消息,以供处理器模块104读取,或者相反地将来自处理器模块104的AMBA消息转换成IDI消息,以供处理器模块102读取。在一个备选实施例中,处理器模块102可以包括ARM类型的核,且总线106可以被具体设计成处理来自ARM核的消息。例如,总线106可以是可以处理AMBA消息的SA。处理器模块104可以包括其类型不同于AMBA的核。在一个实施例中,在处理器模块104内的核可以是IA类型且被设计成根据IDI消息传输消息。总线桥202可以将来自处理器模块102的AMBA消息转换成IDI消息以供处理器104读取,或相反地,将来自处理器模块104的IDI消息转换成AMBA消息以供处理器模块102读取。处理设备200的异构核可以与不是在SoC上的外围设备通信。图2B阐释处理设备200,其包括根据一个实施例用于在核和外围设备之间的通信的电路模块。相比于图2A,如图2B中所示出的处理设备200可以另外包括转换器204和外围桥206,用于在处理设备200和外围设备208、210之间传输消息和控制信号。转换器204可以是系统代理的一部分,且耦合到总线106,且外围桥206可以耦合在转换器204和外围设备208、210之间。外围设备208、210可以不是SoC的一部分,它们共同由异构处理模块102、104控制,以使得每一外围设备可以由处理模块中的任何一个寻址。转换器204可以将来自处理模块102、104中的异构核的不同类型的消息和控制信号转换成外围桥206可以识别的格式,以使得它可以将消息和控制信号传送给适当的外围设备。在一个实施例中,转换器204可以处理去往和来自各核(包括去往可以耦合到包括异构核的其他SoC的外围设备的各核)的内部命令/中断。在这点上,转换器可以使被设计成用于第一类型的核的内部命令/中断适应于第二类型。例如,转换器204可以使被设计成用于IA核的片上系统构造(IOSF)总线和外围设备适应于与ARM核通信。在另一实施例中,转换器204可以管理在核和外围设备之间的直接数据连接。例如,转换器204可以将控制码写到外围设备的存储器映射I/O(MMIO)寄存器,以使得被专门设计成用于第一类型的ISA的外围设备可以与第二类型的核对话(发送消息和中断),且被专门设计成用于第二类型的ISA的外围设备可以与第一类型的核对话。尽管参考包括两种类型的ISA核的处理设备200讨论如图2A和2B中所示出的各实施例,但本公开内容的各方面可以容易地被扩展到多种类型的ISA核。图2C阐释根据一个实施例包括多个ISA的处理器模块的处理设备。相比于图2B,如图2C中所示出的处理设备200可以额外包括第三处理器模块212和附加的总线桥214。处理器模块212可以包括根据不同于处理器模块102或104的ISA的第三类型的ISA设计的核。耦合在处理器模块212和(根据处理器模块102的ISA设计的)总线106之间的总线桥214可以在处理器模块212和总线106之间转换消息。因而,处理设备200可以包括多于两种类型的异构核且被设计成可以支持多于两种的生态系统的计算设备。图3A阐释根据一个实施例的处理设备300的详细示意图。如图3A中所示出的处理设备可以包括第一处理器模块302、第二处理器模块304和IA系统代理(SA)306,该SA306可以进一步包括总线/构造(未示出)和SA转换器308。处理器模块302可以进一步包括一个或多个第一类型的ISA或ISA1(例如IA)核310、312以及可以用来为IA核310、312分级数据的2级高速缓存314。处理器模块304可以进一步包括一个或多个第二类型或ISA2(例如ARM)核316、318,2级高速缓存320、总线桥322,其中2级高速缓存320可以用来为ARM核316、318和总线桥322分级数据。总线桥322可以转换在ARM核316、318和SA306之间传送的消息。处理设备300也可以包括耦合到处理器模块302、304和SA306的电源控制器324,用于经由电源管理(PM)链路管理供应给处理器模块302、304的电源。处理设备300也可以包括使用存储器接口(MI)协议耦合到SA306的存储器控制器326。存储器控制器326可以控制对存储器设备336(如DDR存储器)的数据读/写。另外,SA306可以经由转换器308耦合到外围设备328-334。外围设备可以属于包括IA专用、ARM专用和非专用的三种类别的其中之一。IA专用外围设备仅在处理设备300活跃地在前台运行处理器模块302时工作。AMR专用设备仅在处理设备300活跃地在前台运行处理器模块304时工作。非专用外围设备可以在处理器模块302处于前台时或在处理器模块304处于前台时工作。可以经由根据系统上构造(On-SystemFabric,IOSF)协议或构造接口(fabricinterface,FI)协议的总线通信实现在转换器308和外围设备328-334之间的通信。在操作中,IA核310、312可以根据IDI协议将消息传送给SA306。总线桥322可以将来自IA核310、312的IDI消息转换成可以由ARM核316、318读取的格式。相反,总线桥322可以将来自ARM核316、318的AMBA消息转换成IDI消息和将该IDI消息传送给SA306。消息可以包括核发起的存储器和I/O操作和代理发起的监听和中断以及电源管理接口。SA306可以控制IOSF总线,IOSF总线可以耦合到SoC上的其他模块。SA306也可以处理去往和来自异构核的内部命令和/或中断。为了使在SA306和其他设备内的IOSF总线适应于ARM核316、318,SA转换器306可以为ARM核316、318转换IOSF总线协议消息和内部命令/中断。在一个实施例中,处理设备300可以提供直接将IA核310、312和ARM核316、318链接到存储器336的共享存储器(SM)部分的核间通信隧道。以此方式,异构核可以高速访问存储器。电源控制器324可以经由FI协议消息通过SA306与处理器模块302、304通信。例如,电源控制器可以接收由前台核产生的切换当前运行的操作系统(OS)的请求。响应于该请求,电源控制器可以通过PM链路发起指令以减少供给前台活动核的电源,以便将它们带到空闲状态,且同时增加供给后台核的电源,以便将他们带到活动状态。例如,如果处理设备300正在活跃地运行IA核310、312且闲置ARM核316、318,则响应于对切换的请求,电源控制器324可以减少供给处理器模块302的电源并增加供给处理器模块304的电源,以使得IA核310、312可以变得空闲且ARM核316、318可以变得活动。围绕IA系统代理306构建如图3A中所示出的处理设备300。备选地,可以围绕其他类型的系统代理构建处理设备。图3B阐释根据一个实施例围绕ARM系统代理构建的处理设备340。如图3B中所示出的处理设备340可以包括根据诸如AMBA之类的ARM通信协议设计的ARM系统代理(SA)346。处理设备340也可以包括处理器模块342、344、电源控制器346和存储器控制器366。处理器模块342可以进一步包括一个或多个第二类型的ISA或ISA2(如ARM)核350、352和2级高速缓存354,且处理器模块344可以进一步包括一个或多个第一类型的ISA或ISA1(如IA)核356、358、2级高速缓存360和总线桥362。SA346可以进一步包括ARM总线(未示出)和转换器348。由于SA346被设计成与ARM核协同操作,处理器模块342可以根据AMBA协议与ARMSA346通信。相反,包括IA核356、358的处理器模块344可以通过总线桥362与SA346通信,总线桥362可以把IA核消息转换成AMBA格式或反之亦然,以使得处理器模块342可以通过SA346与处理器模块344交换消息。类似地,转换器348可以将来自IA核356、358的命令和/或中断转换成被指定为IA设备的外围设备328-334,或反之亦然。在实践中,处理设备340可以按类似于处理设备300的方式操作,如图3A中所示出的。配备有两个或多个OS的计算设备可以以硬件共享可访问模式、软件共享可访问模式或独占可访问模式操作。在硬件共享可访问模式下,计算设备可以并发地和主动地操作多于一个的OS(例如Windows和安卓两者)。为了实现硬件共享可访问模式,处理模块(例如如图3A中所示出的302、304,或如图3B中所示出的342、344)中的每一个都可以配备有它们的各自驱动程序。控制在各核和外围设备之间的消息交换和事件分派的、嵌入在SA308(或348)中的转换器308(或348)可以将中断多路复用到并发运行的每一OS。在软件共享可访问模式下,计算设备可以通过虚拟化并发地和主动地操作多于一个的OS。可以构建虚拟驱动程序以便在异构核当中在OS之间转发消息。尽管硬件共享可访问和软件共享可访问模式两者同时运行多于一个的OS,但相对于外围设备,OS中的一个可以是主OS,且另一OS可以是从OS。主OS可以主要管理外围设备,独占地访问外围设备,或与从OS共享外围设备。在独占可访问模式下,计算设备可以在前台仅运行一个OS并将其余OS放置在后台或置于空闲状态。前台OS可以在包括对前台OS来说是原生的核的处理器模块上运行。例如,当运行在前台时Windows及其应用可以运行在IA核上,且当运行在前台时安卓及其应用可以运行在ARM核上。响应于切换的请求,可以切换前台和后台OS。图4是根据一个实施例用于切换双OS计算设备中的OS的一种方法的框图。方法400可以由处理逻辑执行,处理逻辑可以包括硬件(例如,电路、专用逻辑、可编程逻辑、微代码等等)、软件(例如在处理设备、通用计算机系统或专用机器上运行的指令)、固件或其组合。在一个实施例中,方法400可以部分地由以上参考图1、2A-2C、3A-3B所描述的处理器模块l02、104、212、302、304、342、344中的任何一种的处理逻辑执行。为了简化解释,将方法400叙述和描述为一系列动作。然而,根据本公开内容的动作可以按照各种次序和/或并发地发生以及与在此不呈现和描述的其他动作一起发生。此外,不需要执行全部所阐释的动作就可以实现根据所公开的本主题的方法400。另外,本领域中的技术人员将理解和明白,可以备选地经由状态图或事件将方法400表示成一系列相互联系的状态。参见图4,处理逻辑可以接收切换OS的请求。可以响应于由计算设备的用户发起的指令、或响应于在计算设备内的逻辑触发的事件、或响应于调度(例如在每一日或月的特定时间)而生成该请求。响应于该请求,在402,执行当前运行的OS的处理逻辑可以确定被专门设计成在当前运行的OS下操作的第一组设备,并发起挂起第一组设备的指令。在一个实施例中,可以通过将该组设备的标识与指定设备的类别的表匹配起来实现这种确定。在404,执行当前运行的OS的处理逻辑可以通过查询该表,进一步确定不专用于当前运行的前台OS或后台OS的第二组设备,并经由系统代理中的转换器重新配置第二组设备,以使得第二组设备处于适于在后台OS下运行的状态。重新配置可以包括重写这些设备的MMIO寄存器。在406,执行当前运行的前台OS的处理逻辑可以通过查询该表确定当前空闲的第三组设备,这是因为它们专用于在后台OS下操作,且经由转换器启用/恢复第三组设备。在408,执行当前运行的OS的处理器可以将后台OS激活到前台且同时停用先前运行的前台OS。OS的切换也可以引起在不同的处理器模块中的异构核之间切换,如本公开内容的各实施例中所示出的。图5A是阐释根据本公开内容的一个实施例用于实现包括异构核的处理设备的处理器500的微架构的框图。具体地,处理器500叙述根据本公开内容的至少一个实施例的处理器中包括的顺序架构核和寄存器重命名逻辑、乱序发起/执行逻辑。处理器500包括耦合到执行引擎单元550的前端单元530,且两者都耦合到存储器单元570。处理器500可以包括精简指令集计算(RISC)核、复杂指令集计算(CISC)核、超长指令字(VLIW)核或混合或备选的核类型。作为又一选项,处理器500可以包括专用核,诸如例如网络或通信核、压缩引擎、图形核等等。在一个实施例中,处理器500可以是多核处理器或可以是多处理器系统的一部分。前端单元530包括耦合到指令高速缓存单元534的分支预测单元532,指令高速缓存单元534耦合到指令转换后备缓冲器(TLB)536,指令转换后备缓冲器(TLB)536耦合到取指令单元538,取指令单元538耦合到解码单元540。解码单元540(也称为解码器)可以解码指令,且生成从原始指令解码、或以另外方式反映原始指令、或从原始指令导出的一个或多个微操作、微代码入口点、微指令、其他指令或其他控制信号作为输出。可以使用各种不同的机制实现解码器540。合适的机制的示例包括但不限于查找表、硬件实现、可编程逻辑阵列(PLA)、微代码只读存储器(ROM)等等。指令高速缓存单元534还耦合到存储器单元570。解码单元540耦合到执行引擎单元550中的重命名/分配器单元552。执行引擎单元550包括耦合到引退单元554和一组一个或多个调度器单元556的重命名/分配器单元552。(多个)调度器单元556表示任何数量的不同的调度器,包括保留站(RS)、中央指令窗等等。(多个)调度器单元556耦合到(多个)物理寄存器堆单元558。(多个)物理寄存器堆单元558中的每一个表示一个或多个物理寄存器堆,一个或多个物理寄存器堆中的不同的寄存器堆存储一个或多个不同的数据类型,例如标量整数、标量浮点数、紧缩整数、紧缩浮点数、矢量整数、矢量浮点数等等,状态(例如,作为要执行的下一指令的地址的指令指针)等等。由引退单元554重叠(多个)物理寄存器堆单元558,以便阐释可以实现寄存器重命名和乱序执行的各种方式(例如,使用(多个)重排序缓冲器和(多个)引退寄存器堆,使用(多个)未来堆、(多个)历史缓冲器和(多个)引退寄存器堆;使用寄存器映射和寄存器池;等等)。在一种实现中,处理器500可以与参考图1、2A-2C、3A和3B描述的处理器100、200、300和340相同。一般地,架构寄存器从处理器外或从程序员的视角是可见的。寄存器不限于任何已知的具体类型的电路。只要能够存储和提供在此描述的数据,各种不同类型的寄存器就是合适的。合适的寄存器的示例包括但不限于专用物理寄存器,使用寄存器重命名动态分配的物理寄存器、专用的和动态分配的物理寄存器的组合等等。引退单元554和(多个)物理寄存器堆单元558耦合到(多个)执行集群560。(多个)执行集群560包括一组一个或多个执行单元562和一组一个或多个存储器访问单元564。执行单元562可以执行各种操作(例如,移位、加法、减法、乘法)且操作各种类型的数据(例如,标量浮点数、紧缩整数、紧缩浮点数、矢量整数、矢量浮点数)。尽管一些实施例可以包括特定功能或功能集专用的多个执行单元,但其他实施例可以包括仅一个执行单元或全都执行所有功能的多个执行单元。(多个)调度器单元556、(多个)物理寄存器堆单元558和(多个)执行集群560被示出为可能是多个,这是因为某些实施例为某些类型的数据/操作创建分离的流水线(例如,标量整数流水线、标量浮点数/紧缩整数/紧缩浮点数/矢量整数/矢量浮点数流水线,和/或均具有它们自己的调度器单元、(多个)物理寄存器堆单元和/或执行集群的存储器访问流水线——且在分离的存储器访问流水线的情况下,实现了其中仅该流水线的执行集群具有(多个)存储器访问单元564的特定实施例)。还应理解,在使用了分离的流水线的场合,这些流水线中的一个或多个可以是乱序发起/执行且其余为顺序发起/执行。存储器访问单元组564耦合到存储器单元570,存储器单元570可以包括数据预取器580、数据TLB单元572、数据高速缓存单元(DCU)574和2级(L2)高速缓存单元576,仅举几个例子。在一些实施例中,DCU574也称为1级平数据高速缓存(L1高速缓存)。DCU574可以处理多个待解决高速缓存未命中,且继续服务于传入存储和负载。它也支持维持高速缓存相干性。数据TLB单元572是用来通过映射虚拟和物理地址空间改善虚拟地址转换速度的高速缓存。在一个示例性的实施例中,存储器访问单元564可以包括负载单元、存储地址单元和存储数据单元,它们中的每一个都耦合到存储器单元570中的数据TLB单元572。L2高速缓存单元576可以耦合到一个或多个其他级别的高速缓存且最终耦合到主存储器。在一个实施例中,数据预取器580通过自动地预测程序准备使用哪些数据推测性地向DCU574加载/预取数据。预取可以是指在处理器实际上需要数据之前将存储在存储器层次结构(例如,低级高速缓存或存储器)的一个存储器位置中的数据传递到更接近处理器的高级存储器位置(例如,产生较低的访问等待时间)。更具体地,预取可以是指在处理器发起对正在返回的特定数据的要求之前从低级高速缓存/存储器的其中之一到数据高速缓存和/或预取缓冲器的数据早期检索。处理器500可以支持一个或多个指令集(例如,x86指令集(带有已经随新版本添加的一些扩展);加利福尼亚州桑尼维尔市的MIPS技术的MIPS指令集;加利福尼亚州桑尼维尔市的ARM控股的ARM指令集(带有诸如NEON之类的可选附加扩展))。应理解,核可以支持多线程(执行两个或更多个并行的操作或线程组),且可以以各种方式支持多线程,包括分时多线程化、同时多线程化(其中单个物理核为该物理核同时多线程化的线程中的每一个提供逻辑核)或其组合(例如,分时提取和解码以及此后的同时多线程化,例如在超线程技术中的那样)。尽管在乱序执行的上下文中描述寄存器重命名,但应理解,寄存器重命名可以用于顺序架构。尽管所阐释的处理器的实施例也包括分离的指令和数据高速缓存单元和共享L2高速缓存单元,但各备选实施例可以具有用于指令和数据两者的单个内部高速缓存,诸如例如,1级(L1)内部高速缓存,或多级内部高速缓存。在一些实施例中,该系统可以包括内部高速缓存和外置于核和/或处理器的外部高速缓存的组合。备选地,所有高速缓存可以外置于核和/或处理器。图5B是阐释根据本公开内容的一些实施例由图5A的处理设备500实现的顺序流水线和寄存器重命名阶段、乱序发起/执行流水线的框图。图5B中的实线框阐释顺序流水线,而虚线框阐释寄存器重命名、乱序发起/执行流水线。在图5B中,处理器流水线500包括取出阶段502、长度解码阶段504、解码阶段506、分配阶段508、重命名阶段510、调度(也称为分派或发起)阶段512、寄存器读/存储器读阶段514、执行阶段516、回写/存储器写阶段518、异常处理阶段522和提交阶段524。在一些实施例中,阶段502-524的排序可以不同于所阐释的,且不限于图5B中所示出的特定排序。图6阐释根据本公开内容的一个实施例包括混合核的处理器600的微架构的框图。在一些实施例中,可以将根据一个实施例的指令实现为操作具有字节、字、双字、四字等等的大小的数据元素以及数据类型,例如单精度和双精度整数和浮点数数据类型。在一个实施例中,顺序前端601是处理器600的取出要执行的指令并准备它们以供稍后在处理器流水线中使用的部分。前端601可以包括若干单元。在一个实施例中,指令预取器626从存储器取出指令并将它们馈入到指令解码器628,指令解码器628转而解码或解析它们。例如,在一个实施例中,解码器将所接收的指令解码成被称为“微指令”或“微操作”(也称为微op或uop)的机器可以执行的一个或多个操作。在其他实施例中,解码器将指令解析成根据一个实施例由微架构用来执行操作的操作码和相应数据和控制字段。在一个实施例中,跟踪高速缓存630取出已解码的uop并将它们组装成uop队列634中的程序有序序列或跟踪以供执行。在跟踪高速缓存630遭遇复杂指令时,微代码ROM632提供完成操作所需要的uop。一些指令被转换成单个微op,而其他的指令需要若干微op才能完成完整的操作。在一个实施例中,如果完成指令需要多于四个微op,则解码器628访问微代码ROM632以便执行该指令。对于一个实施例,指令可以被解码成少量的微op以供在指令解码器628处理。在另一实施例中,如果完成操作需要多个微op,则指令可以被存储在微代码ROM632内。跟踪高速缓存630是指入口点可编程逻辑阵列(PLA)以判断用于读取微代码序列的正确微指令指针,以便根据来自微代码ROM632的一个实施例完成一个或多个指令。在微代码ROM632完成定序指令的微op之后,机器的前端601再次继续从跟踪高速缓存630取出微op。乱序执行引擎603是准备指令以供执行的场所。在指令通过流水线并获得调度以供执行时,乱序执行逻辑具有多个缓冲器来平滑和重新排序指令流以便优化性能。分配器逻辑分配每一uop为了执行而需要的机器缓冲器和资源。寄存器重命名逻辑将逻辑寄存器重命名到寄存器堆中的条目上。分配器也为在指令调度器(存储器调度器、快速调度器602、慢速/一般浮点数调度器604和单精度浮点数调度器606)之前的两个uop队列(一个用于存储器操作且一个用于非存储器操作)之一中的每一uop分配条目。uop调度器602、604、606基于它们的相关输入寄存器操作数源的就绪和uop完成它们的操作需要的执行资源的可用性判断uop何时准备好执行。一个实施例的快速调度器602可以在主时钟周期的每一半时调度,而其他调度器每个主处理器时钟周期仅可以调度一次。调度器仲裁分派端口以便调度uop以供执行。寄存器堆608、610位于调度器602、604、606和执行块611中的执行单元612、614、616、618、620、622、624之间。存在分离的寄存器堆608、610,分别用于整数和浮点数操作。一个实施例的每一寄存器堆608、610也包括分流网络,该分流网络可以将还没有写入到寄存器堆的刚刚完成的结果分流或转发给新的相关uop。整数寄存器堆608和浮点数寄存器堆610也能够与其他通信数据。对于一个实施例,整数寄存器堆608被拆分成两个分离的寄存器堆,一个寄存器堆用于低阶32位数据,且第二寄存器堆用于高阶32位数据。一个实施例的浮点数寄存器堆610具有128位宽的条目,这是因为浮点数指令通常具有宽度为从64到128位的操作数。执行块611包含其中实际上执行各指令的执行单元612、614、616、618、620、622、624。该部分包括存储微指令执行所需要的整数和浮点数据操作数值的寄存器堆608、610。一个实施例的处理器600由多个执行单元组成:地址产生单元(AGU)612、AGU614、快速ALU616、快速ALU618、慢速ALU620、浮点数ALU622、浮点数移动单元624。对于一个实施例,浮点数执行块622、624执行浮点数、MMX、SIMD和SSE或其他操作。一个实施例的浮点数ALU622包括64位×64位浮点数除法器,以便执行除法、开方根和余的微op。对于本公开内容的各实施例,可以借助于浮点数硬件处理涉及浮点数值的指令。在一个实施例中,ALU操作去往高速ALU执行单元616、618。一个实施例的快速ALU616、618可以借助于半时钟周期的有效等待时间执行快速操作。对于一个实施例,大多数复杂整数操作去往慢速ALU620,这是由于慢速ALU620包括用于长等待时间类型的操作的整数执行硬件,例如乘法器、移位、标志逻辑和分支处理。存储器加载/存储操作由AGU612、614执行。对于一个实施例,在对64位数据操作数执行整数操作的上下文中描述的整数ALU616、618、620。在各备选实施例中,ALU616、618、620可以被实现为支持各种数据位,包括16、32、128、256等等。类似地,浮点数单元622、624可以被实现为支持一定范围的具有各种宽度的位数的操作数。对于一个实施例,浮点数单元622、624,可以对与SIMD和多媒体指令结合的128位宽的压缩数据操作数进行操作。在一个实施例中,uop调度器602、604、606在父负载已经完成执行之前分派相关操作。由于在处理器600中推测性地调度和执行各uop,处理器600也包括处理存储器未命中的逻辑。如果数据负载在数据高速缓存中未命中,则流水线中可能存在正在进行的已经给调度器留下暂时不正确的数据的相关操作。重放机制跟踪和再次执行使用不正确的数据的指令。仅需要重放相关操作,且允许完成不相关的操作。处理器的一个实施例的调度器和重放机制也被设计成捕获用于文本字符串比较操作的指令序列。根据本公开内容的各实施例,处理器600也包括实现存储地址预测的逻辑,用于存储器消歧。在一个实施例中,处理器600的执行块611可以包括用于实现用于存储器消歧的存储地址预测的存储地址预测器(未示出)。术语“寄存器”可以是指作为指令的部分被用来标识操作数的板载处理器存储位置。换句话说,寄存器可以是从处理器的外部(从程序员的视角)可用的那些。然而,一个实施例的寄存器的含义不应限于具体类型的电路。相反,一个实施例的寄存器能够存储和提供数据,并执行在此描述的功能。在此描述的寄存器可以使用任何数量的不同技术由在处理器内的电路实现,例如专用物理寄存器、使用寄存器重命名的动态分配物理寄存器、专用和动态分配物理寄存器的组合等等。在一个实施例中,整数寄存器存储32位整数数据。一个实施例的寄存器堆也包含用于紧缩数据的8个多媒体SIMD寄存器。对于下面的讨论,寄存器被理解成被设计成保存紧缩数据的数据寄存器,例如启用了来自加利福尼亚州圣克拉拉市的英特尔公司的MMX技术的微处理器中的64位宽的MMXTM寄存器(在一些实例中也称为‘mm’寄存器)。可用于整数和浮点数形式两者的这些MMX寄存器可以与伴随有SIMD和SSE指令的压缩数据元素一起操作。类似地,涉及SSE2、SSE3、SSE4或更高(通常称为“SSEx”)技术的128位宽的XMM寄存器也可以用来保存这样的压缩数据操作数。在一个实施例中,在存储压缩数据和整数数据时,寄存器不需要区分两种数据类型。在一个实施例中,整数和浮点数被包含在相同的寄存器堆或不同的寄存器堆中。此外,在一个实施例中,浮点数和整数数据可以被存储在不同的寄存器或相同的寄存器中。现在参见图7,所示出的是阐释其中可以使用本公开内容的一个实施例的系统700的框图。如图7中所示出,多处理器系统700是点对点互连系统,且包括经由点对点互连750耦合的第一处理器770和第二处理器780。尽管被示出为带有仅两个处理器770、780,但应理解,本公开内容的各实施例的范围不限于此。在其他实施例中,一个或多个附加的处理器可以出现在给定的处理器中。在一个实施例中,多处理器系统700可以实现在此描述的混合核。处理器770和780被示出为分别包括集成存储器控制器单元772和782。处理器770也包括点对点(P-P)接口776和778,作为其总线控制器单元的一部分;类似地,第二处理器780包括P-P接口786和788。处理器770、780可以使用P-P接口电路778、788经由点对点(P-P)接口750交换信息。如图7中所示出,IMC772和782将处理器耦合到各自的存储器,即存储器732和存储器734,它们可以是本地附加到各自的处理器的主存储器的部分。处理器770、780均可以使用点对点接口电路776、794、786、798经由各个P-P接口752、754与芯片组790交换信息。芯片组790也可以经由高性能图形接口739与高性能图形电路738交换信息。共享高速缓存(未示出)可以被包括在任一处理器中或在两个处理器之外,但仍经由P-P互连与处理器连接,以使得如果处理器被置于低功率模式则处理器中的任一个或两者的本地高速缓存信息可以被存储在共享高速缓存中。芯片组790可以经由接口796耦合到第一总线716。在一个实施例中,第一总线716可以是外围组件互连(PCI)总线,或诸如PCI快速总线或另一种第三代I/O互连总线之类的总线,但本公开内容的范围不限于此。如图7中所示出,各种I/O设备714可以连同总线桥718一起耦合到第一总线716,总线桥718将第一总线716耦合到第二总线720。在一个实施例中,第二总线720可以是低引脚数(LPC)总线。各种设备可以耦合到第二总线720,包括例如键盘和/或鼠标722、通信设备727和存储单元728,如在一个实施例中可以包括指令/代码和数据730的盘驱动器或其他大容量存储设备。进一步,音频I/O724可以耦合到第二总线720。注意,其他架构是可能的。例如,代替图7的点对点架构,系统可以实现多点式总线或其他这样的架构。现在参见图8,所示出的是本公开内容的一个实施例可以在其中操作的系统800的框图。系统800可以包括一个或多个处理器810、815,它们耦合到图形存储器控制器中枢(GMCH)820。在图8中用虚线表示附加的处理器815的可选性质。在一个实施例中,处理器810、815实现根据本公开内容的各实施例的混合核。每一处理器810、815可能是如上所述的某种版本的电路、集成电路、处理器和/或硅集成电路。然而,应注意,不太可能的情况是,集成图形逻辑和集成存储器控制单元将存在于处理器810、815中。图8阐释GMCH820可以耦合到存储器840,存储器840可以是例如动态随机存取存储器(DRAM)。对于至少一个实施例,DRAM可以与非易失性高速缓存相关联。GMCH820可以是芯片组或芯片组的一部分。GMCH820可以与(多个)处理器810、815通信并控制在(多个)处理器810、815和存储器840之间的交互。GMCH820也可以充当在(多个)处理器810、815和系统800的其他元件之间的加速总线接口。对于至少一个实施例,GMCH820经由诸如前端总线(FSB)895之类的多点式总线与(多个)处理器810、815通信。此外,GMCH820耦合到显示器845(例如平板或触摸屏显示器)。GMCH820可以包括集成图形加速器。GMCH820还耦合到输入/输出(I/O)控制器中枢(ICH)850,输入/输出(I/O)控制器中枢(ICH)850可以用来将各种外围设备耦合到系统800。作为例子在图8的实施例中示出的是外置图形设备860,外置图形设备860可以是独立的图形设备,与另一外围设备870一起耦合到ICH850。备选地,附加的或不同的处理器也可以存在于系统800中。例如,(多个)附加的处理器815可以包括与处理器810相同的(多个)附加的处理器、对处理器810来说是异构或非对称的(多个)附加的处理器、加速器(诸如例如图形加速器或数字信号处理(DSP)单元)、现场可编程门阵列或任何其他处理器。在(多个)处理器810、815之间可以存在包括架构、微架构、热、功率消耗特性等等的优点指标谱方面的各种差异。这些差异可以有效地表现为在处理器810、815当中的非对称性和异质性。对于至少一个实施例,各种处理器810、815可以驻留在相同的管芯封装中。现在参见图9,所示出的是本公开内容的一个实施例可以在其中操作的系统900的框图。图9阐释处理器970、980。在一个实施例中,处理器970、980可以实现上面描述的混合核。处理器970、980可以分别包括集成存储器和I/O控制逻辑(“CL”)972和982,且分别经由在点对点(P-P)接口978和988之间的点对点互连950相互通信。处理器970、980均通过所示出的各自的P-P接口976到994和986到998经由点对点互连952和954与芯片组990通信。对于至少一个实施例,CL972、982可以包括集成存储器控制器单元。CL972、982可以包括I/O控制逻辑。如所叙述的,存储器932、934耦合到CL972、982,且I/O设备914也耦合到控制逻辑972、982。旧式I/O设备915经由接口996耦合到芯片组990。可以以多种不同的系统类型实现各实施例。图10是根据本公开内容的一个实施例的SoC1000的框图。虚线框是更高级的SoC上的可选特征。在图10,(多个)互连单元1012耦合到:包括一组一个或多个核1002A-N和(多个)共享高速缓存单元1006的应用处理器1020;系统代理单元1010;(多个)总线控制器单元1016;(多个)集成存储器控制器单元1014;一组或一个或多个媒体处理器1018,其可以包括集成图形逻辑1008、用于提供静态和/或摄像机功能的图像处理器1024、用于提供硬件音频加速的音频处理器1026以及用于提供视频编码/解码加速的视频处理器1028;静态随机存取存储器(SRAM)单元1030;直接存储器存取(DMA)单元1032;以及用于耦合到一个或多个外置显示器的显示单元1040。在一个实施例中,存储器模块可以被包括在(多个)集成存储器控制器单元1014中。在另一实施例中,存储器模块可以被包括在可以用来访问和/或控制存储器的SoC1000的一个或多个其他组件中。应用处理器1020可以包括用于实现在此在各实施例中描述的混合核的存储地址预测器。存储器层次结构包括在核内的一级或多级高速缓存、一组或一个或多个共享高速缓存单元1006和耦合到该组集成存储器控制器单元1014的外部存储器(未示出)。该组共享高速缓存单元1006可以包括一个或多个中级高速缓存,例如2级(L2)、3级(L3)、4级(L4)或其他级别的高速缓存、末级高速缓存(LLC)和/或其组合。在一些实施例中,核1002A-N中的一个或多个能够多线程化。系统代理1010包括协调和操作核1002A-N的那些组件。系统代理单元1010可以包括例如电源控制单元(PCU)和显示单元。PCU可以是调节核1002A-N和集成图形逻辑1008的功率状态所需要的逻辑和组件或包括它们。显示单元用于驱动一个或多个外部连接的显示器。在架构和/或指令集方面,核1002A-N可以是同构或异构的。例如,核1002A-N中的一些可以是顺序的,而其他是乱序的。作为另一示例,核1002A-N中的两个或更多个能够执行相同的指令集,而其他可能仅能够执行该指令集的子集或不同的指令集。应用处理器1020可以是通用处理器,例如可从加利福尼亚州圣克拉拉市的英特尔TM公司商购的双核和四核酷睿TMi3、i5、i7处理器、至强TM、安腾TM、凌动TM或夸克TM处理器。备选地,应用处理器1020可以来自另一公司,例如ARM控股TM有限公司、MIPSTM等等。应用处理器1020可以是专用处理器,诸如例如,网络或通信处理器、压缩引擎、图形处理器、协处理器、嵌入式处理器等等。可以在一个或多个芯片上实现应用处理器1020。应用处理器1020可以是一个或多个基板的一部分和/或可以使用多种工艺技术中的任何一种在一个或多个基板实现,工艺技术诸如例如BiCMOS、CMOS或NMOS。图11是根据本公开内容的片上系统(SoC)设计的一种实施例的框图。作为特定的说明性示例,SoC1100被包括在用户设备(UE)中。在一个实施例中,UE是指由最终用户用来通信的任何设备,例如手持式电话、智能电话、平板、超薄笔记本、带有宽带适配器的笔记本或任何其他类似通信设备。UE常常连接到基站或节点,基站或节点本质上潜在地对应于GSM网络中的移动站(MS)。在这里,SOC1100包括2个核——1106和1107。核1106和1107可以遵循一种指令集架构,例如基于架构酷睿TM的处理器、高级微设备有限公司(AMD)处理器、基于MIPS的处理器、基于ARM的处理器设计或其消费者以及它们的经许可方或采用者。核1106和1107耦合到与总线接口单元1109和L2高速缓存1110相关联的高速缓存控制1108以便与系统1100的其他部分通信。互连1110包括片上互连,例如IOSF、AMBA或以上所描述的其他互连,其潜在地实现所描述的公开内容的一个或多个方面。在一个实施例中,核1106、1107可以实现在此在各实施例中描述的混合核。互连1110提供到其他组件的通信通道,例如订户身份模块(SIM)1130,其与SIM卡对接;引导ROM1135,其保存引导代码以供由核1106和1107执行以初始化和引导SoC1100;SDRAM控制器1140,其与外部存储器(例如DRAM1160)对接;闪速控制器1145,其与非易失性存储器(例如闪速1165)对接;外围控制1150(例如串行外围接口),其与外围设备对接;视频编解码器1120和视频接口1125,其显示和接收输入(例如启用触摸的输入);GPU1115,其执行图形相关计算等等。这些接口中的任何一个可以合并在此描述的本公开内容的各方面。另外,系统1100阐释用于通信的外围设备,例如蓝牙模块1170、3G调制解调器1175、GPS1180和Wi-Fi1185。图12阐释以计算机系统1200的示例形式的机器的图解表示,其中可以执行用于引起该机器执行在此讨论的方法中的任何一种或多种的一组指令。在各备选实施例中,该机器可以连接(例如,联网)到LAN、内联网、外联网或因特网中的其他机器。该机器可以在客户机-服务器网络环境中以服务器或客户机设备的角色操作,或者在对等(或分布式)网络环境中作为对等机器而操作。机器可以是个人计算机(PC)、平板PC、机顶盒(STB)、个人数字助理(PDA)、蜂窝式电话、web设备、服务器、网络路由器、交换机或桥、或能够执行指定由该机器执行的动作的一组指令(顺序的或以其他方式)的任何机器。进一步,尽管仅阐释了单个机器,术语“机器”也应被理解成包括个别地或共同地执行一组(或多组)指令以执行在此讨论的方法论中的任何一种或多种的机器的任何集合。计算机系统1200包括经由总线1230相互通信的处理设备1202、主存储器1204(例如只读存储器(ROM)、闪速存储器、动态随机存取存储器(DRAM)(例如同步DRAM(SDRAM)或DRAM(RDRAM)等等)、静态存储器1206(例如闪速存储器、静态随机存取存储器(SRAM)等等)和数据存储设备1218。处理设备1202表示一个或多个通用处理设备,例如微处理器、中央处理单元等等。更具体地,处理设备可以是复杂指令集计算(CISC)微处理器、精简指令集计算机(RISC)微处理器、超长指令字(VLIW)微处理器或实现其他指令集的处理器、或实现指令集的组合的处理器。处理设备1202也可以是一个或多个专用处理设备,例如专用集成电路(ASIC)、现场可编程门阵列(FPGA)、数字信号处理器(DSP)、网络处理器等等。在一个实施例中,处理设备1202可以包括一个或处理核。处理设备1202被配置为执行处理逻辑1226,以便执行在此讨论的操作和步骤。在一个实施例中,处理设备1202是与参考图1描述的处理器架构100相同,其实现在此借助于本公开内容的各实施例描述的混合核。计算机系统1200可以进一步包括通信上耦合到网络1220的网络接口设备1208。计算机系统1200也可以包括视频显示单元1210(例如,液晶显示器(LCD)或阴极射线管(CRT))、字母数字输入设备1212(例如键盘)、光标控制设备1214(例如鼠标)和信号产生设备1216(例如扬声器)。此外,计算机系统1200可以包括图形处理单元1222、视频处理单元1228和音频处理单元1232。数据存储设备1218可以包括机器可访问存储介质1224,其上存储有软件1226,用于实现在此描述的功能的方法中的任何一种或多种,例如实现如上所述的用于存储器消歧的存储地址预测。在计算机系统1200执行软件1226期间,软件1226也可以完全地或至少部分地作为指令1226驻留在主存储器1204内和/或作为处理逻辑1226驻留在处理设备1202内;主存储器1204和处理设备1202也构成机器可访问存储介质。机器可读存储介质1224也可以用来存储实现例如根据本公开内容的各实施例所描述的用于混合核的存储地址预测的指令1226。尽管在一种示例实施例将机器可访问存储介质1128示出为单个介质,但术语“机器可访问存储介质”应被理解成包括存储一组或多组指令的单个介质或多个介质(例如,集中式或分布式数据库和/或关联的高速缓存和服务器)。术语“机器可访问存储介质”也应被理解成包括能够存储、编码或携带由机器执行的一组指令且引起机器执行本公开内容的方法中的任何一种或多种的任何介质。术语“机器可访问存储介质”因此应被理解成包括但不限于固态存储器以及光介质和磁介质。下列的示例涉及进一步的实施例。示例1是处理设备,其可以包括第一处理器模块和第二处理器模块,第一处理器模块包括根据第一指令集架构(ISA)设计的第一核,第二处理器模块包括根据第二ISA设计的第二核,其中所述第二处理器模块被制造在与所述第一处理器模块相同的管芯上。在示例2中,示例1的主题可以可选地包括系统代理(SA),其包括通信上耦合到第一处理器模块和第二处理器模块的总线。在示例3中,示例2的主题可以可选地提供,所述总线被设计成原生地发送去往和来自所述第一核的消息。在示例4中,示例2和3中的任何一项的主题可以可选地提供,所述第二处理器模块包括总线桥,其用于转换在所述第二核和所述总线之间发送的消息。在示例5中,示例2和3中的任何一项的主题可以可选地提供,所述SA进一步包括转换器,所述SA通过所述转换器耦合到多个外围设备。在示例6中,示例1-3中的任何一项的主题可以可选地提供,所述处理设备是被制造在相同管芯上的片上系统(SoC)设备。在示例7中,示例1-3中的任何一项的主题可以可选地提供,所述处理设备是与多于一个的操作系统端接的计算设备的一部分。在示例8中,示例1-3中的任何一项的主题可以可选地提供,其中,第一操作系统在被激活时运行在所述第一处理器模块上,且第二操作系统在被激活时运行在所述第二处理器模块上。在示例9中,示例8的主题可以可选地提供,所述处理设备是中央计算单元(CPU),并且是与双操作系统端接的计算设备的一部分。在示例10中,示例1-3中的任何一项的主题可以可选地进一步包括第三处理器模块,其包括根据不同于所述第一ISA和所述第二ISA的第三指令集(ISA)设计的第三核。在示例11中,示例1-3中的任何一项的主题可以可选地提供,所述第三处理器模块包括第三总线桥,其用于转换在所述第一核、第二核和第三核之间发送的消息。示例12是处理器,其可以包括根据第一指令集架构(ISA)设计的第一核,以及根据第二ISA设计的第二核,其中所述处理器是被制造在单个管芯上的片上系统(SoC)设备。在示例13中,示例13的主题可以可选地进一步包括系统代理(SA),其包括通信上耦合到所述第一和第二核的总线,其中所述总线被设计成原生地发送去往和来自所述第一核的消息。在示例14中,示例12和13中的任何一项的主题可以可选地进一步包括耦合在所述第二核和所述总线之间的总线桥,其中所述总线桥转换在所述第二核和所述总线之间发送的消息。在示例15中,示例12-14中的任何一项的主题可以可选地提供,所述SA进一步包括转换器,所述SA通过所述转换器耦合到多个外围设备。在示例16中,示例12-14中的任何一项的主题可以可选地提供,第一操作系统在被激活时运行在所述第一处理器模块上,且第二操作系统在被激活时运行在所述第二处理器模块上。在示例17,示例17的主题可以可选地提供,所述处理设备是中央计算单元(CPU),并且是与双操作系统端接的计算设备的一部分。在示例18,示例12-14中的任何一项的主题可以进一步包括根据不同于所述第一ISA和所述第二ISA的第三指令集(ISA)设计的第三核。在示例19,示例12-14中的任何一项的主题可以可选地提供,所述第三核包括第三总线桥,其用于转换在所述第一核、第二核和第三核之间发送的消息。示例20是方法,所述方法可以包括:响应于从在中央处理单元(CPU)上前台执行的第一操作系统(OS)切换到在所述CPU上后台执行的第二OS的请求,由所述CPU的第一核确定与所述第一OS专门关联的第一组设备,所述第一核是根据第一类型的指令集架构(ISA)设计的,第一组设备专门用于所述第一OS;挂起所述第一组设备;确定不专门用于所述第一OS和第二OS的第二组设备;为所述第二OS重新配置所述第二组设备;以及将所述第二OS切换到前台并将所述第一OS切换到后台,其中,所述切换包括激活根据第二类型的ISA设计的所述CPU的第二核,且闲置所述第一核。在示例21中,示例21的主题可以可选地包括确定专门用于所述第二OS的第三组设备,且启用所述第三组设备。示例22是非暂态计算机可读介质,其包括多个指令,响应于在中央计算单元(CPU)上执行,所述多个指令引起所述CPU执行一种方法,所述方法包括:响应于从在中央处理单元(CPU)上前台执行的第一操作系统(OS)切换到在所述CPU上后台执行的第二OS的请求,由所述CPU的第一核确定与所述第一OS专门关联的第一组设备,所述第一核是根据第一类型的指令集架构(ISA)设计的,第一组设备专门用于所述第一OS;挂起所述第一组设备;确定不专门用于所述第一OS和第二OS的第二组设备;为所述第二OS重新配置所述第二组设备;以及将所述第二OS切换到前台并将所述第一OS切换到后台,其中,所述切换包括激活根据第二类型的ISA设计的所述CPU的第二核,且闲置所述第一核。在示例23中,示例22的主题可以可选地还包括确定专门用于所述第二OS的第三组设备,以及启用所述第三组设备。示例24是装置,所述装置可以包括:响应于从在中央处理单元(CPU)上前台执行的第一操作系统(OS)切换到在所述CPU上后台执行的第二OS的请求,用于确定与所述第一OS专门关联的第一组设备的装置,所述第一核是根据第一类型的指令集架构(ISA)设计的;用于挂起所述第一组设备的装置;用于确定不专门用于所述第一OS和第二OS的第二组设备的装置;用于为所述第二OS配置所述第二组设备的装置;以及用于将所述第二OS切换到前台并将所述第一OS切换到后台的装置,其中,所述切换包括激活根据第二类型的ISA设计的所述CPU的第二核,且闲置所述第一核。在示例25中,示例24的主题可以可选地还包括用于确定专门用于所述第二OS的第三组设备的装置,以及用于启用所述第三组设备的装置。尽管已经参考有限数量的实施例描述了本公开内容,但本领域中的技术人员将明白源于其的众多修改和变化。预期所附权利要求覆盖落在本公开内容真正精神和范围内的所有这样的修改和变化。设计可以经历从创建到仿真到制造的各种阶段。表示设计的数据可以以多种方式表示设计。首先,如在仿真中可用的,可以使用硬件描述语言或另一功能描述语言表示硬件。另外,可以在设计过程的一些阶段产生带有逻辑和/或晶体管门的电路级模型。此外,在一些阶段,大多数设计达到表示硬件模型中各种设备的物理放置的数据水平。在其中使用了常规半导体制造技术的情况中,表示硬件模型的数据可以是指定用来生产集成电路的掩模的不同掩模层上各种功件的存在或缺失的数据。在设计的任何表示中,数据可以被存储在任何形式的机器可读介质中。存储器或诸如盘之类的磁或光存储可以是存储经由光波或电波发送的信息的机器可读介质,该光波或电波经调制或以另外方式生成以便发送这样的信息。在发送指示或携带代码或设计的电载波时,在执行电信号的复制、缓冲或再次传送的意义上,制作了新的副本。因而,通信提供商或网络提供商可以至少临时地在有形机器可读介质上存储制品例如被编码成载波的信息,实现了本公开内容的各实施例的技术。在此所使用的模块是指硬件、软件和/或固件的任何组合。作为示例,模块包括与非暂态介质相关联的诸如微控制器之类的硬件,以存储适于由微控制器执行的代码。因此,在一个实施例中,对模块的引用是指专门被配置为识别和/或执行保存在非暂态介质上的代码的硬件。此外,在另一实施例中,模块的使用是指包括代码的非暂态介质,该代码专门适于由微控制器执行以便执行预先确定的操作。并且,可以推断,在又一实施例中,术语模块(在这一示例中)可以是指微控制器和非暂态介质的组合。通常,被阐释为分离的模块边界往往改变且可能重叠。例如,第一和第二模块可以共享硬件、软件、固件或其组合,同时可能保留一些独立的硬件、软件或固件。在一个实施例中,术语逻辑的使用包括诸如晶体管、寄存器之类的硬件或诸如可编程逻辑器件之类的其他硬件。在一个实施例中,短语‘被配置为’的使用是指排列、放在一起、制造、提供销售、进口和/或设计装置、硬件、逻辑或元件,以便执行指定的或确定的任务。在这一示例中,如果将不是正在操作的装置或其元件设计、耦合和/或相互连接以执行所指定的任务,则它仍然‘被配置为’执行所指定的任务。作为纯粹说明性的示例,逻辑门在操作期间可以提供0或1。但‘被配置为’向时钟提供启用信号的逻辑门不包括可以提供1或0的每一潜在逻辑门。相反,该逻辑门是以在操作期间1或0输出启用时钟的某种方式耦合的逻辑门。再次注意,术语‘被配置为’的使用不要求操作,而是改为聚焦于装置、硬件和/或元件的可能状态,其中在潜在状态中,装置、硬件和/或元素被设计成在装置、硬件和/或元素操作时执行具体任务。此外,在一个实施例中,短语‘应’、‘能够/应’和/或‘可操作为’的使用是指允许按照指定的方式使用装置、逻辑、硬件和/或元件的方式设计的某种装置、逻辑、硬件和/或元件。如上所述应注意,在一个实施例中,‘应’、‘能够’或‘可操作为’的使用是指装置、逻辑、硬件和/或元件的潜在状态,其中装置、逻辑、硬件和/或元件不是正在操作而是按照指定的方式使用装置、逻辑、硬件和/或元件的方式来设计。在此所使用的值包括数量、状态、逻辑状态或二进制逻辑状态的任何已知的表示。通常,逻辑电平、逻辑值(logicvalue)或逻辑的值(logicalvalue)的使用也被称为1和0,它仅仅表示二进制逻辑状态。例如,1是指高逻辑电平且0是指低逻辑电平。在一个实施例中,诸如晶体管或闪存单元之类的的存储单元能够保持单个逻辑的值或多个逻辑的值。然而,已经使用计算机系统中各值的其他表示。例如十进制数字10也可以被表示成二进制值1010和十六进制字母A。因此,值包括能够保存在计算机中的信息的任何表示。此外,状态可以由值或值的部分表示。作为示例,诸如逻辑1之类的第一值可以表示默认的或初始的状态,而诸如逻辑0之类的第二值可以表示非默认的状态。另外,在一个实施例中,术语复位和设置分别是指默认的和经更新的值或状态。例如,默认值可能包括高逻辑值,即复位,而经更新的值可能包括低逻辑值,即设置。注意,各值的任何组合都可以用来表示任何数量的状态。可以经由可由处理元件执行的存储在机器可访问的、机器可读的、计算机可访问的或计算机可读的介质上的指令或代码实现上面陈述的方法、硬件、软件固件或代码的实施例。非暂态机器可访问/可读介质包括以可由机器例如计算机或电子系统读取的形式提供(即,存储和/或发送)信息的任何机制。例如,非暂态机器可访问介质包括随机存取存储器(RAM),例如静态RAM(SRAM)或动态RAM(DRAM);ROM;磁或光存储介质;闪速存储器设备;电存储设备;光存储设备;声存储设备;用于保存从暂态(传播)信号(例如,载波、红外信号、数字信号)接收的信息的其他形式的存储设备;等等,它们有别于可以从中接收信息的非暂态介质。用来将逻辑编程为执行本公开内容的各实施例的指令可以被存储在系统中的存储器内,例如DRAM、高速缓存、闪速存储器或其他存储。此外,可以经由网络或通过其他计算机可读介质分发指令。因而机器可读介质可以包括用于以可由机器(例如计算机)读取的形式存储或发送信息的任何机制,但不限于软盘、光盘、紧致盘、只读存储器(CD-ROM)以及磁光盘、只读存储器(ROM)、随机存取存储器(RAM)、可擦除可编程只读存储器(EPROM)、电可擦除可编程只读存储器(EEPROM)、磁或光卡、闪速存储器或用于经由电、光、声或其他形式的传播信号(例如载波、红外信号、数字信号等等)在因特网上传输信息的有形机器可读存储。因此,计算机可读介质包括适用于以可由机器(例如计算机)读取的形式存储或发送电子指令或信息的任何类型的有形机器可读介质。贯穿本说明书对“一个实施例”或“一种实施例”的引用意味着,结合该实施例描述的具体的特征、结构或特性被包括在本公开内容的至少一个实施例中。因而,贯穿本说明书各种场所出现短语“在一个实施例中”或“在一种实施例中”并不必定全都是指相同的实施例。此外,在一个或多个实施例中,可以按任何何时的方式组合该具体的特征、结构或特性。在前述的说明书中,已经参考特定的示例性实施例给出了详细描述。然而,应明显看出,可以在不偏离所附权利要求中所叙述的本公开内容的更宽泛的精神和范围的前提下对其做出各种修改和改变。因此,应以说明性意义而非限制性意义来看待本说明书和各图。此外,前面对实施例和其他示例性语言的使用并不必定是指相同的实施例或相同的示例,而是可以指不同的和有区别的实施例,也可能是指相同的实施例。
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1