首页> 中国专利> 基于平台热以及功率预算约束,对于给定工作负荷的最佳逻辑处理器计数和类型选择

基于平台热以及功率预算约束,对于给定工作负荷的最佳逻辑处理器计数和类型选择

摘要

处理器包括支持不同的核类型的多个逻辑核的多个物理核,其中核类型包括大核类型和小核类型。多线程应用程序包括由逻辑核的第一子集在第一时隙并发地执行的多个软件线程。基于从监测在第一时隙执行收集到的数据,处理器选择逻辑核的第二子集,用于软件线程在第二时隙的并发执行。第二子集中的每一个逻辑核都具有匹配软件线程中的一个的特征的一种核类型。

著录项

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2020-02-14

    授权

    授权

  • 2016-01-06

    实质审查的生效 IPC(主分类):G06F9/06 申请日:20121228

    实质审查的生效

  • 2015-12-09

    公开

    公开

说明书

技术领域

本发明涉及处理逻辑、微处理器,以及相关联的指令集架构领域,当它们被处理器或其他处理逻辑执行时,执行逻辑、数学,或其他功能操作。

背景技术

中央处理单元(CPU)设计师试图通过增大处理器中的核的数量,提供处理器性能的一致的改善。缩放处理器的性能并改善能量效率的必要性导致异构型处理器架构的发展。异构型处理器包括带有不同的功率和性能特征的核。例如,异构型处理器可以集成大核和小核的混合,如此,可以潜在地实现两种类型的核的优点。需要高处理强度的应用程序可以分配给大核,而产生低处理强度的应用程序可以分配给小核,以节省电能。在移动或其他功率受约束的平台上,提高能量效率转换成延长的电池寿命。

常规异构型处理器中的核通常在其整个执行持续时间内被分配给处理任务。然而,任务的处理强度可能会在其执行过程中变化。在任何给定时间,可以有多个任务同时执行,这些任务可能具有对于处理资源的不同的并且变化的要求。如此,静态核分配不能优化处理资源的利用率和能量效率。

附图简述

此处所描述的本发明的各实施例是作为示例说明的,而不仅限于各个附图的图形。

图1是根据一实施例的具有核选择模块的处理器的框图。

图2是示出了根据一实施例的执行核选择线程的处理器的框图。

图3是示出了根据一个实施例的用于执行核选择线程的时间线的示例的时序图。

图4是示出了根据一实施例的核选择所使用的性能计数器的框图。

图5示出了根据一实施例的多线程应用程序的执行。

图6是示出了根据一实施例的要被执行的操作的流程图。

图7A是根据一实施例和有序和无序流水线的框图。

图7B是根据一实施例和有序和无序核的框图。

图8A-B是根据一实施例的比较具体的示例性有序核体系结构的框图。

图9是根据一个实施例的处理器的框图。

图10是示出了根据一个实施例的系统的框图。

图11是根据一个实施例的第二系统的框图。

图12是根据本发明的一实施例的第三系统的框图。

图13是根据一个实施例的片上系统(SoC)的框图。

实施例的描述

在下面的描述中,阐述了很多具体细节。然而,应该理解,本发明的各实施例可以在没有这些具体细节的情况下实施。在其他情况下,没有详细示出已知的电路、结构,以及技术,以便不至于使对本描述的理解变得模糊。

此处所描述的各实施例提供核选择机制,该机制跟踪多线程应用程序的执行,并向应用程序暴露最合适的核组。多线程应用程序具有可以在多个核上被并发地处理的执行的多个上下文(即,软件线程,也被称为线程)。这多个线程可以具有在不同的数据集上应用的相同指令序列(例如,大矩阵乘法),或可以涉及不同的任务在不同的线程中的并发执行(例如,同时的网页浏览和音乐播放)。当运行多线程应用程序时,核选择机制选择处理器中最适合于线程的并发执行的核的子集。选择可以考虑平台热约束、功率预算和应用程序可缩放性。在一个实施例中,核选择机制可以通过用于带外控制的微控制器,或用于带内控制的软件线程来实现。

图1是根据一实施例的实现核选择机制的处理器100的框图。在此实施例中,处理器100包括具有大核类型的两个大核120和具有小核类型的四个小核130。应该理解,在另一个实施例中,处理器100可包括任意数量的大核120和任意数量的小核130。在某些实施例中,处理器可包括两个以上的不同的核类型。大核120和小核130中的每一个都是包括用于执行指令的电路的物理核。如此,在下面的描述中,大核120和小核130统称为物理核120和130。

在一个实施例中,大核120和小核130中的每一个都可以支持被超线程以在一个物理核上运行的一个或多个逻辑核125。超线程允许物理核对单独的数据并发地执行多个指令,其中并发执行由被指定了硬件组件和单独的地址空间的重复的副本的多个逻辑核支持。每一逻辑核125在操作系统(OS)看起来好像是不同的处理单元;如此,OS可以调度两个进程(即,两个线程)用于并发执行。大核120比小核130具有更大的处理能力并消耗更大的功率。由于其较高处理能力和较高功率预算,大核120可以比小核130支持更多逻辑核125。在图1的实施例中,每一大核120都支持两个逻辑核125,每一小核130都支持一个逻辑核125。在替换实施例中,由物理核120或130支持的逻辑核的数量可以不同于在图1中所示出的。

处理器100还在物理核120和130外面包括硬件电路。例如,处理器100可包括由物理核120和130共享的缓存140(例如,末级缓存(LLC)),以及诸如集成存储器控制器之类的控制单元160,总线/互连控制器等等。应该理解,图1的处理器100是简化表示,并且可以包括额外的硬件电路。

在一个实施例中,处理器100耦合到功率控制单元(PCU)150。PCU150监测并管理处理器110中的电压、温度和功率消耗。在一个实施例中,PCU150是与相同管芯上的处理器110的其他硬件组件集成的硬件或固件单元。PCU150控制逻辑核125以及物理核120和130的激活(例如,打开)和去激活,诸如关闭核或将核置于节能状态(例如,睡眠状态)。

在实现带外控制的实施例中,PCU150包括核选择模块152,该模块152确定用于执行多线程应用程序的逻辑核125的子集。在图1的实施例中,处理器100支持总共八个逻辑核125。然而,由于功率和热约束,并非所有逻辑核125都可以同时活跃;例如,最大只有四个逻辑核125可以同时活跃。多线程应用程序可以以任何组合(在允许的功率预算内)在逻辑核125中的任何一个上运行,最大数量高达四个逻辑核125。核选择模块152可以监测应用程序的执行,以确定哪些逻辑核125用于执行应用程序。核选择模块152意识到,并非所有逻辑核125都相同:由大核120支持的逻辑核具有大核类型,而由小核130支持的逻辑核具有小核类型。具有大核类型的逻辑核(也被称为“大逻辑核”)比具有小核类型的逻辑核(也被称为“小逻辑核”)具有更大的处理能力并消耗更大的功率。另外,在相同大核上并发地运行的两个逻辑核可以比在两个不同的大核上并发地运行的两个逻辑核具有较小的处理能力并消耗较少的能量。

图2是根据另一实施例的实现核选择机制的处理器200的框图。处理器200类似于图1的处理器100,只是核选择是由执行核选择线程252的物理核中的一个带内执行的。核选择线程252是控制线程,该控制线程可以由逻辑核125中的任何一个在物理核中的任何一个(即,大核120和小核130中的任何一个)上执行。在任何给定时间,只有一个核选择线程252由处理器100执行。在一个实施例中,执行多线程应用程序(或应用程序的一部分)的逻辑核125(例如,逻辑核LC)还可以执行核选择线程252。如果在应用程序的执行过程中,逻辑核LC被去激活,则核选择线程252可以被迁移到另一活跃的逻辑核125,以继续核选择操作。

图3是示出了执行多线程应用程序和核选择线程252的逻辑核LC的时序图。在一个实施例中,核选择线程252每隔N毫秒唤醒以选择执行应用程序的逻辑核的子集。核选择线程252可以只运行几微秒。一旦选择了逻辑核的子集,逻辑核LC通知PCU150激活(例如,启动)那些被选择的逻辑核——如果它们还不在活跃状态的话。可以由PCU150去激活(例如,关闭或置于节能状态)未被选择的逻辑核。

在一个实施例中,由核选择机制(即,图1的核选择模块251或图2的核选择线程252)作出的选择可以基于若干种因素,包括但不限于:由应用程序执行的操作的类型,核的可用性,以及功率预算。例如,如果应用程序具有四个线程并且四个线程正在对不同的组的数据执行正好相同的操作,那么,可以选择四个小逻辑核以优化每瓦特的处理器性能。在另一个示例中,四个线程可以最初被分配给四个小逻辑核以根据生产者-消费者模型,执行操作。如果核选择机制检测到线程中的一个是瓶颈(例如,计算瓶颈),则可以将瓶颈线程在其上面运行的小逻辑核替换为大逻辑核,以改善执行速度,以及由此改善每瓦特的处理器性能。

在另一个示例中,如果线程正在执行在执行实例之间没有时间关联的操作,则核选择机制可以将每一线程指定到处理器中的最佳可用的逻辑核,只要分配在功率预算内。最佳可用的逻辑核可以是在较高功率耗散操作点操作的核;例如,大逻辑核。如果功率预算不足,那么,可以选择小逻辑核,尽管有大逻辑核可用。

在再一个示例中,如果核选择模块机制检测到应用程序正在相同的大核120(更具体而言,在被超线程到相同大核120中的两个大逻辑核)上运行两个线程,则它可以将两个线程指定到两个小逻辑核——如果两个小逻辑核的聚合的性能比两个超线程的大逻辑核的聚合的性能更好。

在一个实施例中,可以基于物理核内以及外面的若干个性能计数器,确定通过核选择执行的操作的类型。图4是示出了两组性能计数器420和430的实施例的框图,其中,每一个性能计数器420都位于物理核410(例如,小核120或大核130)内,每一个性能计数器430位于物理核410之外。性能计数器420和430由核选择模块251或核选择线程252(作为两个替换实施例,以虚线框示出)监测,用于进行核选择。例如,这些性能计数器420和430可包括,但不限于:存储器负载计数器(其指示在给定时间段内从存储器440请求了多少负载),LLC未命中计数器、二级缓存未命中计数器、转换后援缓冲器(TLB)未命中计数器、分支未命中预测计数器、停止计数器等等。这些计数器的任何组合都可以用于选择用于执行多线程应用程序的逻辑核的子集。

图5是示出了多个应用程序的多个线程(SW1-SW9)由处理器执行的情况的框图。线程SW1-SW9中的每一个都是多线程应用程序550(例如,APP1和APP2)的软件线程。处理器可以是图1的处理器100或图2的处理器200。在此示例中,处理器提供总共八个逻辑核:四个大逻辑核(每一个都被示为“大520”)和四个小逻辑核(每一个都被示为“小530”)。然而,由于各种约束(例如,热和功率预算约束),在任何给定时间,只有四个逻辑核可以同时运行。如此,只有四个逻辑核对操作系统510可见。操作系统510(或更具体而言,调度器)可以调度总共九个线程中的四个软件线程(每一个都被示为“SW540”)来同时运行。作出调度,以最大化执行效率,以便九个线程中的每一个都被分配时隙来运行,并且九个线程全部看起来好像基本上同时运行。然而,在硬件级别,只有四个线程并发地执行。这些四个线程540可能来自相同应用程序550或来自不同的应用程序550。此外,在不同的时间实例,不同组的四个线程540可以并发地执行。

不管调度哪四个线程540以并发地执行,核选择电路580都580可将每一线程的特征与线程将在其上面执行的逻辑核匹配。核选择电路580可以是图1的核选择模块152,或物理核中的一个内的支持逻辑核执行图2的核选择线程252的执行电路。由于有四个同时运行的线程,因此,选择总共四个逻辑核以在任何时间激活。选择是动态的,因为四个选择的逻辑核会不时变化,这取决于哪些线程正在运行,正在被执行的操作的类型,当前性能计数器值、功率预算及其他操作考虑。例如,在第一时隙,选择第一组560两个大逻辑核520和两个小逻辑核530,在第二时隙,选择第二组570四个小逻辑核520。核选择电路580还判断第一组560中的两个大逻辑核520是否应该在相同大核上或在两个不同的大核上。如此,核选择还确定有多少物理核应该是活跃的。核选择对于操作系统510是透明的。对操作系统510而言,在任何给定时间都总共有四个核可用。关于逻辑核与物理核,以及哪四个逻辑核可用并被选择的细节,对于操作系统510是透明的。

图6是根据一个实施例的用于选择逻辑核的方法600的示例实施例的流程图。在各实施例中,图6的方法600可以由通用处理器、专用处理器(例如,图形处理器或数字信号处理器),或另一种类型的数字逻辑器件或指令处理设备来执行。在某些实施例中,图6的方法600可以由处理器、设备或系统来执行,诸如如图7A-B、8A-B和9-13所示的实施例。此外,如图7A-B、8A-B和9-13所示的处理器、设备,或系统可以执行与图6的方法600的那些实施例相同、类似或者不同的操作和方法的实施例。

方法600开始时处理器(例如,图1的处理器100或图2的处理器200;或更具体而言,图5的核选择电路580)监测包括多个软件线程的多线程应用程序的执行(610)。处理器包括支持不同的核类型的多个逻辑核的多个物理核,其中,核类型包括大核类型和小核类型。软件线程由第一子集的逻辑核在第一时隙并发地执行。基于从监测在第一时隙执行收集到的数据,处理器选择第二子集的逻辑核,用于软件线程在第二时隙的并发执行。第二子集中的每一个逻辑核都具有匹配软件线程中的一个的特征的核类型。

示例性核架构

有序和无序核框图

图7A是示出根据本发明的各实施例的示例性有序流水线和示例性的寄存器重命名的无序发布/执行流水线的框图。图7B是示出根据本发明的各实施例的要包括在处理器中的有序架构核的示例性实施例和示例性的寄存器重命名的无序发布/执行架构核的框图。图7A-B中的实线框示出有序流水线和有序核,而任选增加的虚线框示出寄存器重命名的无序发布/执行流水线和核。给定有序方面是无序方面的子集的情况下,将描述无序方面。

在图7A中,处理器流水线700包括获取级702、长度解码级704、解码级706、分配级708、重命名级710、调度(也称为分派或发布)级712、寄存器读取/存储器读取级714、执行级716、写回/存储器写入级718、异常处理级722以及提交级724。

图7B示出了处理器核790,包括耦合到执行引擎单元750的前端单元730,执行引擎单元750和前端单元830两者都耦合到存储器单元770。核790可以是精简指令集计算(RISC)核、复杂指令集计算(CISC)核、超长指令字(VLIW)核或混合或替代核类型。作为又一选项,核790可以是专用核,诸如例如网络或通信核、压缩引擎、协处理器核、通用计算图形处理器单元(GPGPU)核、或图形核等等。

前端单元730包括耦合到指令高速缓存单元734的分支预测单元732,指令高速缓存单元734耦合到指令转换后备缓冲器(TLB)736,指令转换后备缓冲器736耦合到指令获取单元738,指令获取单元738耦合到解码单元740。解码单元740(或解码器)可解码指令,并生成从原始指令解码出的、或以其他方式反映原始指令的、或从原始指令导出的一个或多个微操作、微代码进入点、微指令、其他指令、或其他控制信号作为输出。解码单元740可使用各种不同的机制来实现。合适的机制的示例包括但不限于查找表、硬件实现、可编程逻辑阵列(PLA)、微代码只读存储器(ROM)等。在一个实施例中,核790包括(例如,在解码单元740中或否则在前端单元730内的)微代码ROM或存储某些宏指令的微代码的其他介质。解码单元740耦合到执行引擎单元750中的重命名/分配器单元752。

执行引擎单元750包括耦合到隐退单元752的重命名/分配器单元754和一组一个或多个调度器单元756。调度器单元756表示任意数量的不同的调度器,包括预留站、中心指令窗口等等。调度器单元756耦合到物理寄存器组单元758。每个物理寄存器组单元758表示一个或多个物理寄存器组,其中不同的物理寄存器组存储一种或多种不同的数据类型,诸如标量整数、标量浮点、紧缩整数、紧缩浮点、矢量整数、矢量浮点、状态(例如,作为要执行的下一指令的地址的指令指针)等。在一个实施例中,物理寄存器组单元758包括矢量寄存器单元、写掩码寄存器单元和标量寄存器单元。这些寄存器单元可以提供架构向量寄存器、向量掩码寄存器、和通用寄存器。物理寄存器组单元758与引退单元754重叠以示出可以用来实现寄存器重命名和无序执行的各种方式(例如,使用重新排序缓冲器和引退寄存器组;使用将来的文件、历史缓冲器和引退寄存器组;使用寄存器映射和寄存器池等等)。隐退单元754和物理寄存器组单元758耦合到执行群集760。执行群集760包括一组一个或多个执行单元762和一组一个或多个存储器访问单元764。执行单元762可以对各种类型的数据(例如,标量浮点、紧缩整数、紧缩浮点、向量整型、向量浮点)执行各种操作(例如,移位、加法、减法、乘法)。尽管一些实施例可以包括专用于特定功能或功能组的若干个执行单元,但是,其他实施例可以只包括一个执行单元或都执行所有功能的多个执行单元。调度器单元756、物理寄存器组单元758,以及执行群集760被示为可能是多个,因为某些实施例对于某些类型的数据/操作创建单独的流水线(例如,标量整数流水线、标量浮点/紧缩整数/紧缩浮点/矢量整数/矢量浮点流水线和/或存储器访问流水线,每一个流水线都具有它们自己的调度器单元、物理寄存器组单元和/或执行群集——并且在单独的存储器访问流水线的情况下,实现了其中只有此流水线的执行群集具有存储器访问单元764的某些实施例)。还应该理解,使用单独的流水线,这些流水线中的一个或多个可以是无序发出/执行,其余的是有序的。

存储器访问单元764的集合耦合到存储器单元770,该存储器单元包括耦合到数据高速缓存单元774的数据TLB单元772,其中数据高速缓存单元耦合到二级(L2)高速缓存单元776。在一个示例性实施例中,存储器访问单元764可以包括加载单元、存储地址单元以及存储数据单元,其中每一个都耦合到存储器单元770中的数据TLB单元772。指令高速缓存单元734进一步耦合到存储器单元770中的2级(L2)高速缓存单元776。L2高速缓存单元776耦合到一个或多个其他级的高速缓存,并最终耦合到主存储器。

作为示例,示例性寄存器重命名的、无序发布/执行核架构可以如下实现流水线700∶1)指令取出738执行取出和长度解码级702和704;2)解码单元740执行解码级706;3)重命名/分配器单元752执行分配级708和重命名级710;4)调度器单元756执行调度级712;5)物理寄存器组单元758和存储器单元770执行寄存器读取/存储器读取级714;执行群集760执行执行级716;6)存储器单元770和物理寄存器组单元758执行写回/存储器写入级718;7)各单元可牵涉到异常处理级722;以及8)引退单元754和物理寄存器组单元758执行提交级724。

核790可支持一个或多个指令集(例如,x86指令集(具有与较新版本一起添加的一些扩展);加利福尼亚州桑尼维尔市的MIPS技术公司的MIPS指令集;加利福尼州桑尼维尔市的ARM控股的ARM指令集(具有诸如NEON等可选附加扩展)),其中包括本文中描述的各指令。在一个实施例中,核790包括支持打包数据指令集合扩展(例如,SSE、AVX1、AVX2等等)的逻辑,由此允许被许多多媒体应用使用的操作将使用打包数据来执行。

应该理解,核可以支持多线程(执行操作或线程的两个或更多并行组),并可以以各种方式达到这一目的,包括时间切片多线程,同时的多线程(其中,单个物理核为物理核同时正在多线程处理的每一个线程提供一种逻辑核),或其组合(例如,时间切片获取和解码和此后的同时的多线程处理,诸如在Hyperthreading技术中)。

尽管寄存器重命名是在无序执行的上下文中描述的,但是,应该理解,寄存器重命名可以用于有序架构中。尽管所示出的处理器的实施例还包括分开的指令和数据高速缓存单元734/774以及共享L2高速缓存单元776,但替代实施例可以具有用于指令和数据两者的单个内部高速缓存,诸如例如一级(L1)内部高速缓存或多个级别的内部高速缓存。在某些实施例中,系统可以包括内部缓存和核和/或处理器外部的外部缓存的组合。可另选地,全部缓存都可以核和/或处理器外部的。

具体的示例性有序核架构

图8A-B示出了比较具体的示例性有序核架构的框图,该核将是芯片中的多个逻辑块中的一个(包括相同类型和/或不同类型的其他核)。根据应用,这些逻辑块通过高带宽的互连网络(例如,环形网络)与一些固定的功能逻辑、存储器I/O接口和其它必要的I/O逻辑通信。

图8A是根据本发明的各实施例的单个处理器核的框图,以及其与管芯上的互连网络802的连接以及其第2级(L2)缓存804的本地子集。在一个实施例中,指令解码器800支持具有紧缩数据指令集扩展的x86指令集。L1缓存806允许对进入标量和矢量单元中的缓存存储器的低等待时间访问。尽管在一个实施例中(为了简化设计),标量单元808和矢量单元810使用分开的寄存器集合(分别为标量寄存器812和矢量寄存器814),并且在这些寄存器之间转移的数据被写入到存储器并随后从一级(L1)缓存806读回,但是本发明的替代实施例可以使用不同的方法(例如使用单个寄存器集合或包括允许数据在这两个寄存器组之间传输而无需被写入和读回的通信路径)。

L2缓存的本地子集804是全局L2缓存的一部分,该全局L2缓存被划分成多个分开的本地子集,即每个处理器核一个本地子集。每个处理器核具有到其自己的L2缓存804的本地子集的直接访问路径。被处理器核读出的数据被存储在其L2缓存子集804中,并且可以与其他处理器核访问其自己的本地L2缓存子集并行地被快速访问。被处理器核写入的数据被存储在其自己的L2缓存子集804中,并在必要的情况下从其它子集清除。环形网络确保共享数据的一致性。环形网络是双向的,以允许诸如处理器核、L2缓存和其它逻辑块之类的代理在芯片内彼此通信。每个环形数据路径为每个方向1012位宽。

图8B是根据本发明的实施例的图8A中的处理器核的一部分的展开图。图8B包括L1缓存804L1数据缓存806A部分,以及关于矢量单元810和矢量寄存器814的更多细节。具体地说,矢量单元810是16宽矢量处理单元(VPU)(见16宽ALU828),该单元执行整型、单精度浮点以及双精度浮点指令中的一个或多个。该VPU通过混合单元820支持对寄存器输入的混合、通过数值转换单元822A-B支持数值转换、并通过复制单元824支持对存储器输入的复制。写掩码寄存器826允许断定所产生的矢量写。

具有集成存储器控制器和图形器件的处理器

图9是根据本发明的各实施例的可能具有一个以上核、可能具有集成存储器控制器、以及可能具有集成图形器件的处理器900的框图。图9中的实线框示出具有单个核902A、系统代理910、一个或多个总线控制器单元916的集合的处理器900,而虚线框的可选附加示出具有多个核902A-N、系统代理单元910中的一个或多个集成存储器控制器单元914的集合以及专用逻辑908的处理器900。

因此,处理器900的不同实现可包括:1)CPU,其中专用逻辑908是集成图形和/或科学(吞吐量)逻辑(其可包括一个或多个核),并且核902A-N是一个或多个通用核(例如,通用有序核、通用无序核、这两者的组合);2)协处理器,其中核902A-N是旨在主要用于图形和/或科学(吞吐量)的多个专用核;以及3)协处理器,其中核902A-N是多个通用有序核。因此,处理器900可以是通用处理器、协处理器或专用处理器,诸如例如网络或通信处理器、压缩引擎、图形处理器、GPGPU(通用图形处理单元)、高吞吐量的集成众核(MIC)协处理器(包括30个或更多核)、或嵌入式处理器等。该处理器可以被实现在一个或多个芯片上。处理器900可以是一个或多个衬底的一部分,和/或可以使用诸如例如BiCMOS、CMOS或NMOS等的多个加工技术中的任何一个技术将处理器900实现在一个或多个衬底上。

存储器层次结构包括核内的一级或多级缓存,一组或一个或多个共享高速缓存器单元906,以及耦合到集成的存储器控制器单元914组的外部存储器(未示出)。共享高速缓存器单元906组可以包括一个或多个中级缓存,诸如2级(L2)、3级(L3)、4级(L4),或其他级别的缓存,末级缓存(LLC),和/或其组合。尽管在一个实施例中,基于环的互连单元912将集成图形逻辑908、共享高速缓存单元906的集合以及系统代理单元910/集成存储器控制器单元914互连,但替代实施例可使用任何数量的公知技术来将这些单元互连。在一个实施例中,维持一个或多个高速缓存单元906和核902-A-N之间的一致性(coherency)。

在某些实施例中,核902A-N中的一个或多个能够多线程处理。系统代理910包括协调和操作核902A-N的那些组件。系统代理单元910可包括例如功率控制单元(PCU)和显示单元。PCU可以是或包括用于调节核902A-N和集成的图形逻辑908的功率状态所需的逻辑和组件。显示单元用于驱动一个或多个从外部连接的显示器。

核902A-N在架构指令集方面可以是同构的或异构的;即,这些核902A-N中的两个或更多个核可能能够执行相同的指令集,而其他核可能能够执行该指令集的仅仅子集或不同的指令集。

示例性计算机架构

图10-13是示例性计算机架构的框图。本领域已知的对膝上型设备、台式机、手持PC、个人数字助理、工程工作站、服务器、网络设备、网络集线器、交换机、嵌入式处理器、数字信号处理器(DSP)、图形设备、视频游戏设备、机顶盒、微控制器、蜂窝电话、便携式媒体播放器、手持设备以及各种其他电子设备的其他系统设计和配置也是合适的。一般地,能够包含本文中所公开的处理器和/或其他执行逻辑的多个系统和电子设备一般都是合适的。

现在请参看图10,所示是根据本发明的一个实施例的系统1000的框图。系统1000可以包括一个或多个处理器1010、1015,这些处理器耦合到控制器中枢1020。在一个实施例中,控制器中枢1020包括图形存储器控制器中枢(GMCH)1090和输入/输出中枢(IOH)1050(其可以在分开的芯片上);GMCH1090包括存储器和图形控制器,存储器1040和协处理器1045耦合到该存储器和图形控制器;IOH1050将输入/输出(I/O)设备1060耦合到GMCH1090。可另选地,存储器和图形控制器中的一个或两者都集成在处理器内(如此处所描述的),存储器1040和协处理器1045利用IOH1050,直接耦合到单个芯片中的处理器1010以及控制器中枢1020。

在图10中利用虚线表示额外的处理器1015的可任选的本质。每一处理器1010、1015可包括本文中描述的处理核中的一个或多个,并且可以是处理器900的某一版本。

存储器1040可以是例如动态随机存取存储器(DRAM)、相变存储器(PCM)或这两者的组合。对于至少一个实施例,控制器中枢1020经由诸如前端总线(FSB)之类的多分支总线、诸如快速通道互连(QPI)之类的点对点接口、或者类似的连接1095与处理器1010、1015进行通信。

在一个实施例中,协处理器1045是专用处理器,诸如例如高吞吐量MIC处理器、网络或通信处理器、压缩引擎、图形处理器、GPGPU、或嵌入式处理器等等。在一个实施例中,控制器中枢1020可以包括集成图形加速器。

就包括体系结构、微体系结构、热,功率消耗特征等等的一系列优点的度量而言,在物理资源1010,1015之间可能会有各种差异。

在一个实施例中,处理器1010执行控制一般类型的数据处理操作的指令。协处理器指令可嵌入在这些指令中。处理器1010将这些协处理器指令识别为应当由附连的协处理器1045执行的类型。因此,处理器1010在协处理器总线或者其他互连上将这些协处理器指令(或者表示协处理器指令的控制信号)发布到协处理器1045。协处理器1045接受并执行所接收的协处理器指令。

现在请参看图11,所示是根据本发明的一个实施例的第一更具体的示例性系统1100的框图。如图11所示,多处理器系统1100是点对点互连系统,并包括通过点对点互连1150耦合的第一处理器1170和第二处理器1180。处理器1170和1180中的每一个都可以是处理器900的某一版本。在本发明的一个实施例中,处理器1170和1180分别是处理器1010和1015,而协处理器1138是协处理器1045。在另一实施例中,处理器1170和1180分别是处理器1010和协处理器1045。

处理器1170和1180被示为分别包括集成存储器控制器(IMC)单元1172和1182。处理器1170还包括点对点(P-P)接口1176和1178,作为其总线控制器单元的一部分;类似地,第二处理器1180包括P-P接口1186和1188。处理器1170、1180可以使用点对点(P-P)接口电路1178、1188经由P-P接口1150来交换信息。如图11所示,IMC1172和1182将处理器耦合到相应的存储器,即,存储器1132和存储器1134,它们可以是本地连接到相应的处理器的主存储器的一部分。

处理器1170、1180可各自经由使用点对点接口电路1176、1190、1194、1186的各个P-P接口1152、1154与芯片组1198交换信息。芯片组1190可以可选地经由高性能接口1138与协处理器1139交换信息。在一个实施例中,协处理器1138是专用处理器,诸如例如高吞吐量MIC处理器、网络或通信处理器、压缩引擎、图形处理器、GPGPU、或嵌入式处理器等等。

共享缓存(未示出)可以被包括在任一处理器之内,或被包括在两个处理器外部但仍经由P-P互连与这些处理器连接,从而如果将某处理器置于低功率模式时,可将任一处理器或两个处理器的本地缓存信息存储在该共享缓存中。

芯片组1190可经由接口1196耦合至第一总线1116。在一个实施例中,第一总线1116可以是外围组件互连(PCI)总线,或诸如PCI快速(Express)总线或另一第三代I/O互连总线之类的总线,但本发明的范围并不受此限制。

如图11所示,各种I/O设备1114以及将第一总线1116耦合到第二总线1118的总线桥1116可以耦合到第一总线1120。在一个实施例中,诸如协处理器、高吞吐量MIC处理器、GPGPU的处理器、加速器(诸如例如图形加速器或数字信号处理器(DSP)单元)、现场可编程门阵列或任何其他处理器的一个或多个附加处理器1115被耦合到第一总线1116。在一个实施例中,第二总线1120可以是低管脚数(LPC)总线。在一个实施例中,各种设备可以耦合到第二总线1120,包括,例如,键盘和/或鼠标1122、通信设备1127以及存储单元1128,诸如磁盘驱动器或可以包括指令/代码以及数据1130的其他大容量存储设备。此外,音频I/O1124可以被耦合至第二总线1120。请注意,其他架构也是可以的。例如,代替图11的点对点架构,系统可以实现多点分支总线或其他这样的架构。

现在请参看图12,所示是根据本发明的一个实施例的第二更具体的示例性系统1200的框图。图11和12中的相同元素带有相同参考编号,从图12省略了图11的某些方面,以便不至于使图12的其他方面变得模糊。

图12示出了处理器1170、1180可以分别包括集成的存储器和I/O控制逻辑(“CL”)1172和1182。因此,CL1172、1182包括集成存储器控制器单元并包括I/O控制逻辑。图12示出了不仅存储器1132,1134耦合到CL1172,1182,而且I/O设备1214也耦合到控制逻辑1172,1182。传统I/O设备1215被耦合至芯片组1190。

现在请参看图13,所示是根据本发明的实施例的SoC1300的框图。图9中的类似的元素带有相同的参考编号。另外,虚线框是更先进的SoC的可选特征。在图13中,互连单元1302耦合到:应用处理器1310,该应用处理器包括一个或多个核902A-N的集合以及共享高速缓存单元906;系统代理单元910;总线控制器单元916;集成存储器控制器单元914;一组或一个或多个协处理器1320,其可包括集成图形逻辑、图像处理器、音频处理器和视频处理器;静态随机存取存储器(SRAM)单元1330;直接存储器存取(DMA)单元1332;以及用于耦合至一个或多个外部显示器的显示单元1340。在一个实施例中,协处理器1320包括专用处理器,诸如例如网络或通信处理器、压缩引擎、GPGPU、高吞吐量MIC处理器、或嵌入式处理器等等。

本文公开的机制的各实施例可以被实现在硬件、软件、固件或这些实现方法的组合中。本发明的实施例可实现为在可编程系统上执行的计算机程序或程序代码,该可编程系统包括至少一个处理器、存储系统(包括易失性和非易失性存储器和/或存储元件)、至少一个输入设备以及至少一个输出设备。

可以将诸如图11中所示出的代码1130之类的程序代码应用于输入指令,以执行此处所描述的功能并生成输出信息。可以按已知方式将输出信息应用于一个或多个输出设备。为了本申请的目的,处理系统包括具有诸如例如数字信号处理器(DSP)、微控制器、专用集成电路(ASIC)或微处理器之类的处理器的任何系统。

程序代码可以用高级程序化语言或面向对象的编程语言来实现,以便与处理系统通信。在需要时,也可用汇编语言或机器语言来实现程序代码。事实上,本文中描述的机制不限于任何特定编程语言的范围。在任一情形下,该语言可以是编译语言或解释语言。

至少一个实施例的一个或多个方面可以由存储在机器可读介质上的表征性指令来实现,该指令表示处理器中的各种逻辑,该指令在被机器读取时使得该机器制作用于执行本文所述的技术的逻辑。被称为“IP核”的这样的表示可以存储在有形的机器可读介质中,并提供给各种客户或生产设施,以加载到实际制造逻辑或处理器的制造机器中。

这样的机器可读存储介质可以包括但不限于通过机器或设备制造或形成的物品的非瞬态的有形安排,其包括存储介质,诸如:硬盘;任何其它类型的盘,包括软盘、光盘、紧致盘只读存储器(CD-ROM)、紧致盘可重写(CD-RW)以及磁光盘;半导体器件,例如只读存储器(ROM)、诸如动态随机存取存储器(DRAM)和静态随机存取存储器(SRAM)之类的随机存取存储器(RAM)、可擦除可编程只读存储器(EPROM)、闪存、电可擦除可编程只读存储器(EEPROM);相变存储器(PCM);磁卡或光卡;或适于存储电子指令的任何其它类型的介质。

因此,本发明的各实施例还包括非瞬态的有形机器可读介质,该介质包含指令或包含设计数据,诸如硬件描述语言(HDL),它定义本文中描述的结构、电路、装置、处理器和/或系统特征。这样的实施例还可以被称为程序产品。

尽管在各个附图中描述和示出了某些示例性实施例,但是,可以理解,这样的实施例只是说明性的,而不对本发明形成限制,本发明不仅限于所示出的和所描述的特定结构和布局,因为所属领域的技术人员在研究本发明时可以想到各种其他修改方案。在诸如此技术之类的技术的领域,在增长快速并且不能轻松地预见进一步的进步的情况下,在不偏离本发明的原理或附带权利要求的范围的情况下,所公开的各实施例可以轻松地在布局和细节方面可修改,如通过实现技术进步所促进的。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号