异构处理器装置和方法_2

文档序号:9383059阅读:来源:国知局
令(或者表示协处理器指令的控制信号)发布到协处理器345。协处理器345接受并执行 所接收的协处理器指令。
[0049] 现在参考图4,所示为根据本发明的实施例的更具体的第一示例性系统400的框 图。如图4所示,多处理器系统400是点对点互连系统,并且包括经由点对点互连450耦合 的第一处理器470和第二处理器480。处理器470和480中的每一个都可以是处理器200 的某一版本。在本发明的一个实施例中,处理器470和480分别是处理器310和315,而协 处理器438是协处理器345。在另一实施例中,处理器470和480分别是处理器310和协处 理器345。
[0050] 处理器470和480被示出为分别包括集成存储器控制器(頂〇单元472和482。 处理器470也包括作为其总线控制器单元的部分的点对点(P-P)接口 476和478 ;类似地, 第二处理器480包括P-P接口 486和488。处理器470、480可以经由使用点对点(P-P)接 口电路478、488的P-P接口 450来交换信息。如图4所示,頂C 472和482将处理器耦合 到各自的存储器,即存储器432和存储器434,这些存储器可以是本地附连到各自处理器的 主存储器的部分。
[0051 ] 处理器470、480可各自经由使用点对点接口电路476、494、486、498的各个P-P接 口 452、454与芯片组490交换信息。芯片组490可以可选地经由高性能接口 439与协处理 器438交换信息。在一个实施例中,协处理器438是专用处理器,诸如例如,高吞吐量MIC 处理器、网络或通信处理器、压缩引擎、图形处理器、GPGPU、嵌入式处理器等。
[0052] 共享高速缓存(未示出)可以被包括在任一处理器之内,或被包括在两个处理器 外部但仍经由P-P互连与这些处理器连接,从而如果将某处理器置于低功率模式时,可将 任一处理器或两个处理器的本地高速缓存信息存储在该共享高速缓存中。
[0053] 芯片组490可以经由接口 496耦合至第一总线416。在一个实施例中,第一总线 416可以是外围组件互连(PCI)总线或诸如PCI高速总线或另一第三代I/O互连总线之类 的总线,但是本发明的范围不限于此。
[0054] 如图4所示,各种I/O设备414可连同总线桥418 -起耦合到第一总线416,总线 桥418将第一总线416耦合到第二总线420。在一个实施例中,诸如协处理器、高吞吐量MIC 处理器、GPGPU的处理器、加速器(诸如例如图形加速器或数字信号处理(DSP)单元)、现场 可编程门阵列或任何其他处理器的一个或多个附加处理器415耦合到第一总线416。在一 个实施例中,第二总线420可以是低引脚计数(LPC)总线。各种设备可以被耦合至第二总 线420,在一个实施例中,这些设备包括例如,键盘/鼠标422、通信设备427以及诸如可包 括指令/代码和数据430的盘驱动器或其他大容量存储设备之类的存储单元428。此外,音 频I/O 424可以被耦合至第二总线420。注意,其他架构是可能的。例如,代替图4的点对 点架构,系统可以实现多分支总线或其他这类架构。
[0055] 现在参考图5,所示为根据本发明的实施例的更具体的第二示例性系统500的框 图。图4和图5中的相同部件用相同附图标记表示,并从图5中省去了图4中的某些方面, 以避免使图5的其他方面变得模糊。
[0056] 图5示出处理器470、480可分别包括集成存储器和I/O控制逻辑("CL")472和 482。因此,CL 472、482包括集成存储器控制器单元并包括I/O控制逻辑。图5示出不仅 存储器432、434耦合至CL 472、482,而且I/O设备514也耦合至控制逻辑472、482。传统 I/O设备515被耦合至芯片组490。
[0057] 现在参考图6,所示出的是根据本发明的实施例的SoC 600的框图。图2中的相 似组件具有相同的标号。另外,虚线框是更先进的SoC上的可选特征。在图6中,互连单元 602被耦合至:应用处理器610,其包括一个或多个核的集合202A-N以及共享高速缓存单元 206 ;系统代理单元210 ;总线控制器单元216 ;集成存储器控制器单元214 ;-组或一个或 多个协处理器620,其可包括集成图形逻辑、图像处理器、音频处理器和视频处理器;静态 随机存取存储器(SRAM)单元630 ;直接存储器存取(DMA)单元632 ;显示单元640,其以及 用于耦合至一个或多个外部显示器。在一个实施例中,协处理器620包括专用处理器,诸如 例如,网络或通信处理器、压缩引擎、GPGPU、高吞吐量MIC处理器、嵌入式处理器等。
[0058] 本文公开的机制的各实施例可以被实现在硬件、软件、固件或此类实现方式的组 合中。可将本发明的多个实施例实现为在可编程系统上执行的计算机程序或程序代码,该 可编程系统包括至少一个处理器、存储系统(包括易失性和非易失性存储器和/或存储元 件)、至少一个输入设备以及至少一个输出设备。
[0059] 可将程序代码(诸如图4中示出的代码430)应用于输入指令,以执行本文描述的 多个功能并生成输出信息。可以按已知方式将输出信息应用于一个或多个输出设备。为了 本申请的目的,处理系统包括具有诸如例如数字信号处理器(DSP)、微控制器、专用集成电 路(ASIC)或微处理器之类的处理器的任何系统。
[0060] 程序代码可以用高级程序化语言或面向对象的编程语言来实现,以便与处理系统 通信。在需要时,也可用汇编语言或机器语言来实现程序代码。事实上,本文中描述的机制 不限于任何特定编程语言的范围。在任何情况下,该语言可以是编译语言或解释语言。
[0061] 至少一个实施例的一个或多个方面可由存储在表示处理器中的各种逻辑的机器 可读介质上的表示性指令来实现,当由机器读取这些表示性指令时,这些指令使该机器制 作用于执行本文所述的技术的逻辑。可将被称为"IP核"的此类表示存储在有形的机器可 读介质上,并将其提供给各种客户或生产设施,以便加载到实际制造该逻辑或处理器的制 造机器中。
[0062] 此类机器可读存储介质可以包括但不限于通过机器或设备制造或形成的物品的 非瞬态的有形安排,其包括存储介质,诸如:硬盘;任何其他类型的盘,包括软盘、光盘、紧 致盘只读存储器(CD-ROM)、紧致盘可重写(CD-RW)以及磁光盘;半导体器件,例如只读存 储器(R0M)、诸如动态随机存取存储器(DRAM)和静态随机存取存储器(SRAM)之类的随机 存取存储器(RAM)、可擦除可编程只读存储器(EPROM)、闪存、电可擦除可编程只读存储器 (EEPROM);相变存储器(PCM);磁卡或光卡;或适于存储电子指令的任何其他类型的介质。
[0063] 相应地,本发明的多个实施例也包括非瞬态的有形机器可读介质,该介质包含指 令或包含定义本文中描述的结构、电路、装置、处理器和/或系统特征的设计数据(例如,硬 件描述语言(HDL))。也将此类实施例称为程序产品。
[0064] 在一些情况下,指令转换器可用来将指令从源指令集转换至目标指令集。例如,指 令转换器可变换(例如,使用静态二进制变换、包括动态编译的动态二进制变换)、变形、仿 真指令或以其他方式将指令转换成将由核来处理的一条或多条其他指令。可在软件、硬件、 固件或其组合中实现该指令转换器。指令转换器可在处理器上、在处理器外、或者部分在处 理器上且部分在处理器外。
[0065] 图7是根据本发明的多个实施例的对照使用软件指令转换器将源指令集中的二 进制指令转换成目标指令集中的二进制指令的框图。在所示的实施例中,指令转换器是软 件指令转换器,但也可替代地在软件、固件、硬件或其各种组合中实现该指令转换器。图7 示出可使用x86编译器704来编译利用高级语言702的程序,以生成可由具有至少一个x86 指令集核的处理器716原生地执行的x86二进制代码706。具有至少一个x86指令集核的处 理器716表示能通过兼容地执行或以其他方式处理以下内容来执行与具有至少一个x86指 令集核的英特尔处理器基本相同功能的任何处理器:1)英特尔x86指令集核的指令集的本 质部分,或2)目标为在具有至少一个x86指令集核的英特尔处理器上运行以取得与具有至 少一个x86指令集核的英特尔处理器基本相同的结果的应用或其他软件的目标代码版本。 x86编译器704表示用于生成x86二进制代码706(例如,目标代码)的编译器,该二进制代 码可通过或不通过附加的链接处理在具有至少一个x86指令集核的处理器716上被执行。 类似地,图7示出可使用替代的指令集编译器708来编译利用高级语言702的程序,以生成 可以由不具有至少一个 x86指令集核的处理器714 (例如,具有执行加利福尼亚州桑尼维尔 市的MIPS技术公司的MIPS指令集和/或执行加利福尼亚州桑尼维尔市的ARM控股公司的 ARM指令集的核的处理器)原生地执行的替代指令集二进制代码710。指令转换器712被 用来将x86二进制代码706转换成可以由不具有x86指令集核的处理器714原生地执行的 代码。该被转换的代码不大可能与替代的指令集二进制代码710相同,因为能够这样做的 指令转换器难以制造;然而,被转换的代码将完成一般操作,并且由来自替代指令集中的指 令构成。因此,指令转换器712通过仿真、模拟或任何其他过程来表示允许不具有x86指令 集处理器或核的处理器或其他电子设备执行x86二进制代码706的软件、固件、硬件或其组 合。
[0066] 软件诱明的异构计筧
[0067] 下文所述的本发明的多个实施例通过对软件隐藏异构性并且将所有知晓异构性 的逻辑和试探法集成在处理器内来克服对异构性的软件支持的缺乏。然而,在常规CPU中, 将任务分配给多个核是由软件(通常由操作系统)排他性地完成的,在本发明的一个实施 例中,该分配被分解为两部分。软件继续将软件进程调度到处理器所暴露的同构"虚拟核", 同时硬件动态地选择哪个物理核实现给定的虚拟核。旨在使吞吐量、性能、或其他度量最大 化的软件调度算法继续工作,同时硬件执行另一(透明的)优化层,其中在每一个虚拟核上 运行的进程/线程被定向到最适于在该虚拟核上运行的工作负荷类型的任一物理核。
[0068] 本发明的一个实施例包括含有不同类型的计算元件(每种类型呈现不同的性能 和功率特性)的硬件架构。在本文所述的实施例中的一些实施例中,计算元件是多核处理 器内的多个核。然而,可采用不同形式的计算元件(例如,单个处理器核中的功能单元或加 速器)而仍然符合本发明的基本原理。
[0069] 通过向软件暴露多个虚拟且同构的计算元件,对软件(例如,操作系统、应用等) 隐藏了硬件的异构性质。因此,该软件就好像其在具有同构核的处理器上运行那样进行操 作。该实施例的处理器硬件包括用于将暴露给软件的虚拟计算元件中的每一个动态地映射 到可用的物理计算元件类型中的一个或多个的逻辑。硬件动态地选择物理计算元件所借助 的特定机制对该软件是透明的(对该软件是隐藏的)。
[0070] 通过包括计算元件的异构选择,处理器硬件能够总是在具有非常不同类型的计算 任务的非常不同的操作条件下非常高效地操作。例如,包含小型功率高效核以及大型高性 能核这两者的CPU可用于在功率有限(并且性能不是关键)的时候以及也在需要高性能 (但功率不受限)的其他时候高效地运行软件。硬件内计算元件的不同组合的选择是基于 哪些类型的任务需要在该系统上运行以及在哪些条件下运行的设计要求。
[0071] 异构系统可包含不同类型的计算元件,诸如,处理器核、图形处理器单元(GPU)和 固定功能加速器(例如,用于加速诸如排序和循环之类的常见功能)。在以下阐明的本发明 的多个实施例中,异构系统具有不同类型的处理器核一一即,少量高性能核和较大数量的 小型功率高效核。然而,本发明的基本原理可被用于其他类型的计算元件。
[0072] 图8示出提供软件透明性的异构核系统的一个实施例。处理器硬件包含多个异构 物理核PC0-PC3810。然而,仅同构的虚拟核VC0-VC3806被暴露给软件。因此,基于软件的 调度器804 (它可以是操作系统的部分)就像它在真实的同构多核处理器或多处理器系统 中那样调度任务802以在所暴露的同构虚拟核806中的每一个上执行。当调度器804继续 将多个软件任务调度到多个虚拟核806时,虚拟到物理(V-P)映射逻辑808将每一个虚拟 核806映射到一个或多个合适的物理核810。在一个实施例中,由映射决定逻辑809响应 于一组映射规则820和当前检测到的条件821来执行映射决定。可在固件、软件、硬件或它 们的任意组合中实现映射规则820和映射决定逻辑809。如果在硬件中实现,则映射规则 820和映射决定逻辑809可被集成为在V-P核映射逻辑808中的处理器芯片上的逻辑。如 果在软件或固件中被指定,则可在芯片被制造和销售之后对映射规则820和映射决定逻辑 809进行编程和重新编程。无论如何实现映射规则820和映射决定逻辑809,本发明的基本 原理保持相同。
[0073] 下文提供由映射决定逻辑809使用的映射规则和条件的若干特定示例(例如,基 于正被执行的任务的要求和处理器的功率分布而被实现的)。简单说来,在一个实施例中, 映射决定逻辑809实现一种用于根据映射规则820和当前操作条件821来确定应当如何将 各种虚拟核806映射至物理核810的映射算法。在一个实施例中,映射决定逻辑809配置 硬件映射表,该硬件映射表由V-P核映射逻辑808使用以执行虚拟核和物理核之间的物理 映射。
[0074] 在图8中所示的特定示例中,虚拟核VCO被映射至物理核PC1,虚拟核VCl被映射 至物理核PC3,虚拟核VC2被映射至物理核PC0,并且虚拟核VC3被映射至物理核PC2。图8 中物理核810的不同尺寸用于暗示每个核的处理功率的量。因此,物理核PC3是"大型"高 性能核;物理核PCO-PCl是"小型"功率高效核;而物理核PC2提供相对于小型核PCO-PCl 更高的性能但相对于大型核PC3更低的性能。
[0075] 因此,在图8中,(实现映射规则820并且基于当前条件821的)V-P核映射逻辑 808已确定:被分配给虚拟核VCO和VC2的任务最适合小型核;被分配给VCl的任务最适合 大型的高功率核;而与VC3相关联的任务则介于前两者之间。该实现允许该系统在不需要 软件知晓关于异构性的任何情况下实现异构性的益处。
[0076] 如上所述,映射决定逻辑809可鉴于与计算系统相关联的当前检测到的操作条件 821来执行映射。例如,如果计算系统是移动设备,则V-P核映射逻辑808可取决于该移动 设备当前是由电池供电还是被插入插座来以不同方式执行映射(例如,当由电池供电时, 在可能的时候倾向于使用较小的核)。类似地,如果该移动计算系统的电池水平为低(例 如,低于某个指定阈值),则除非绝对必要否则V-P核映射逻辑808可抑制使用大型高性能 核PC3(其将易于更快地耗尽电池)。作为另一示例,如果该系统的总功率预算中的大量功 率正由另一处理器组件消耗(例如,图形处理单元正在执行图形密集型操作),则V-P核映 射逻辑808可抑制使用大型高性能核PC3。在这种情况下,当前条件821可指示当前可用于 核810的总功率预算量(例如,总量减去正由其他系统组件消耗的量),并且V-P核映射逻 辑808可相应地执行映射。
[0077] 虽然图8中示出三种不同的核,但是本发明的一个实施例包括N个小型核和M个 大型核,其中,N>M。可针对多种不同场景来调节具有大型和小型核的软件透明的异构系统。 通过动态地改变在V-P核映射逻辑808中所实现的试探法,可针对不同设置来优化该系统。 三个示例性实施例为:(1)针对性能进行优化,(2)优化功率预算,以及(3)针对能效进行 优化。例如,如果计算设备被插入交流(AC)插座和/或具有满电池量,则V-P核映射逻辑 808系统可选择(1),从而更频繁地映射至大型高功率核PC3。相比之下,当不靠交流电和/ 或电池量低时,V-P核映射逻辑808可选择(3),从而仅使用小型物理核PCO和PC1。当功 率预算被指定时,V-P核映射逻辑808将选择可能的最高性能选项而同时将系统维持在所 指定的功率预算之内(例如,仅在此类使用匹配于功率预算之内时才利用高性能核PC3)。
[0078] 如上所述,由V-P核映射逻辑808实现的、将虚拟核映射到物理核的试探法也可与 像图形处理器(GPU)那样的其他CPU组件协调性能和功率水平。
[0079] 可在硬件中实现该试探法,但是,即便其在固件或软件中被实现,相比操作系统, 它也能够与硬件协调得好得多,因为该试探法是由处理器销售商提供的。例如,该试探法可 实时关注(由当前操作条件821所指示的)GPU功率利用率,并且实时地确定有多少剩余功 率可由处理器核810使用。然后,该试探法基于这些所指定的功率约束,将虚拟核806映射 至物理核810。
当前第2页1 2 3 4 5 6 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1