具有结合的cpu和gpu的芯片器件,相应的主板和计算机系统的制作方法

文档序号:6643212阅读:149来源:国知局
具有结合的cpu和gpu的芯片器件,相应的主板和计算机系统的制作方法
【专利摘要】本实用新型大体上涉及一种计算机系统,具体地说,涉及一种具有结合的CPU和GPU的芯片器件,一种包括配置成与具有结合的CPU和GPU的芯片器件连接的芯片插口的相应主板和一种包括结合的CPU和GPU的计算机系统。
【专利说明】具有结合的CPU和GPU的芯片器件,相应的主板和计算机系统

【技术领域】
[0001]本实用新型大体上涉及一种计算机系统,具体地说,涉及一种具有结合的CPU(中央处理单元)和GPU(图形处理单元)的芯片器件,一种包括配置成与具有结合的CPU和GPU的芯片器件连接的芯片插口的相应主板和一种包括结合的CPU和GPU的计算机系统。

【背景技术】
[0002]计算机长期以来就包含CPU,其设计用于运行常规的编程任务。但是,计算机系统典型地也包括其他处理元件,最普通的是GPU,其最初设计用于并行地执行专业的图形计算。随着时间的推移,GPU已经变得更加强大和用途广泛,进而允许将它们以非常优异的功效应用于处理通用的并行计算任务。
[0003]今天,越来越多的主流应用程序要求仅仅通过高度并行计算就能够实现高性能和高效率。但是,现在的CPU和GPU被设计成独立的处理单元,不能高效地协同工作,并且编程起来非常繁琐。它们每个都具有单独的内存空间,进而需要应用程序明确地将数据从CPU复制到GPU,然后再返回来。
[0004]在CPU上运行的程序通过设备驱动器堆栈利用系统调用来使得针对GPU的任务列队等待,所述设备驱动器堆栈通过完全独立的调度程序来管理。这导致明显的具有系统开销(overhead)的调度延迟,所述系统开销只有在应用程序需要的并行计算量非常大的时候才使得这种处理过程是合算的。此外,如果在GPU上运行的程序想要直接产生工作条目的话,不管是针对它本身还是针对CPU,这在今天都是不能实现的。
[0005]同时,现有的计算系统通常包括多个处理设备。例如,一些计算系统包括处于单独的芯片上的CPU和GPU(例如,CPU可以位于主板上,而GPU可以位于显卡上)或者处于单个芯片封装中的CPU和GPU。
[0006]这种分散的芯片布局使得系统和软件设计师需要使用芯片到芯片接口,以便每个处理器访问内存。这些外部的接口(例如芯片到芯片的接口)对使异构处理器协同工作的内存延迟和功率消耗都具有负面影响,单独的内存系统(例如单独的寻址空间)和驱动器管理的共享内存使得系统开销变得不可接受。
[0007]不仅分散的芯片布局而且单个的芯片布局都可能限制能够被发送给GPU用于执行的命令的类型。这种基于性能的限制存在是因为CPU可以相对快速地请求由这些计算命令所生成的操作的结果。但是,由于现有系统中GPU上的调度工作的系统开销大并且这些命令可能不得不排队等待以便其他先前发起的命令先被执行,所以由于将计算命令发送给GPU所导致的延迟通常是不可接受的。
实用新型内容
[0008]为了解决这些缺陷和其他缺点,本实用新型提供一种改善的计算机系统,其将CPU与GPU结合在一起并且使得它们能够共同地高效工作。所述改善的计算机系统具有增强的浮点数据处理和计算能力,并且同时降低了功耗,并且使得所述系统的性能、可编程性和可移植性得到改善。
[0009]为了实现所述改善的计算机系统,提出了异构系统架构(HSA)。所述HSA是一种系统架构,其允许加速器(例如图形处理器)在与系统的CPU相同的处理水平上运行。利用HSA,应用程序可以在单个统一的寻址空间内创建数据结构,并且能够以最高效的方式针对所分配的任务在硬件上发起工作条目。在计算单元之间共享数据就像发送指针一样简单。多个计算任务可以在相同的相干(coherent)内存区域上运行,能够根据需要使用分界线和原子内存(barriers and atomic memory)操作以便保持数据同步。
[0010]在实施本实用新型的第一方面的示例性实施方式中,提供了一种芯片器件。所述芯片器件包括:CPU,其具有多个内核;GPU,其具有多个计算单元;系统内存,其连接至所述CPU和所述GPU ;内存管理单元(MMU),其连接至所述系统内存并且由所述CPU和所述GPU共享;其中,所述CPU和所述GPU集成在一起并且在共享的内存中以相干的方式运行。
[0011]作为本实用新型的一个方面,提供统一的寻址空间供所述CPU和所述GPU使用,以避免数据复制。所述统一的寻址空间允许包含指针的数据结构,所述指针能够由所述CPU和所述GPU自由使用。这使得在所述CPU与所述GPU之间共享资源变得更加容易,并且消除了通信延迟和瓶颈,否则的话这些通信延迟和瓶颈可能会使得GPU卸载没必要复杂化的事务。
[0012]在实施本实用新型的第二方面的示例性实施方式中,提供了一种主板。所述主板包括至少一个配置成连接至芯片器件的芯片插口,所述芯片器件包括:CPU,其具有多个内核;GPU,其具有多个计算单元;系统内存,其连接至所述CPU和所述GPU;内存管理单元(MMU),其连接至所述系统内存并且由所述CPU和所述GPU共享;其中,所述CPU和所述GPU集成在一起并且在共享的内存中以相干的方式运行。
[0013]在实施本实用新型的第三方面的示例性实施方式中,提供了一种计算机系统。所述计算机系统包括:CPU,其具有多个内核;GPU,其具有多个计算单元;系统内存,其连接至所述CPU和所述GPU;内存管理单元(MMU),其连接至所述系统内存并且由所述CPU和所述GPU共享;其中,所述CPU和所述GPU集成在一起并且在共享的内存中以相干的方式运行。

【专利附图】

【附图说明】
[0014]参考附图通过举例的方式(但并不限于此)阐述本实用新型,其中:
[0015]图1示出现有技术中一种包括CPU和GPU的简化的计算机系统的示意性方框图,所述CPU和GPU均具有单独的内存;
[0016]图2示出一种包括CPU和GPU的经改善的简化的计算机系统的示意性方框图,所述CPU和GPU具有共享的系统内存;
[0017]图3示出一种根据本实用新型的示例性实施方式的经改善的简化的计算机系统的示意性方框图;以及
[0018]图4示出一种根据本实用新型的示例性实施方式的典型系统的示意性方框图。

【具体实施方式】
[0019]结合附图在考虑下面的详细描述的情况下更好地理解本实用新型。在下面的说明书中,许多具体细节都是用来提供对本实用新型的完全理解。但是,对本领域技术人员来说显而易见的是,本实用新型能够以不带有一些或全部具体细节的方式实施。在其他情况下,公知的步骤和/或结构并未进行详细阐述,以免不必要地造成本实用新型难于理解。
[0020]在一些实施方式中,计算机系统在单个集成电路或者主板上实现,所述集成电路或者主板的元件可以包括一个或多个CPU内核以及一个或多个统一的GPU计算单元,如下面还将详细介绍的那样。与CPU和GPU通常是独立的(例如位于单独的卡或板上或者位于单独的封装中)传统计算环境相比,改善的计算机系统创造了一种现有的和新型的编程框架、语言和工具都能够在上面应用的基础。
[0021]所述改善的计算机系统的统一环境可以使得编程人员编写相应的应用程序,所述应用程序流畅连贯地或者说无缝地在CPU与GPU之间转移数据,进而从每个设备必须要提供的最佳属性中获益。统一的单个编程平台可以提供强大的基础,以便开发采用并行方式的语言、框架和应用程序。
[0022]在下面的详细描述中,对“一种实施方式”、“一个实施方式”、“一种不例性实施方式”等的参考指示出所描述的实施方式可以包括特定特征、结构或特点,但是每个实施方式可以不必包括所述特定特征、结构或特点。此外,这类短语没有必要是指同一实施方案。另夕卜,当结合一个实施方式描述特定特征、结构或特点时,所主张的是本领域技术人员知道结合无论是否被明确描述的其它实施方式对这种特征、结构或特点的影响。
[0023]图1以简单的方式示出现有技术中简化的传统计算机系统。如图1中所示,在简化的传统计算机系统中,具有多个内核107的CPUlOl和具有多个计算单元108的GPU 102被设计成单独的处理元件并且具有单独的内存103、104。CPU内存103通过第一内存总线105连接至CPU 101,而GPU内存104通过第二内存总线106连接至GPU102。在所示的例子中,CPU 101和GPU 102通过通信链路110连接。在所示的例子中,省略了所述传统计算机系统的公知的元件,以免造成对本实用新型的相关细节的描述难于理解。
[0024]由于单独的内存,每个CPU和GPU都具有单独的内存空间,需要应用程序明确地将数据从CPU复制到GPU,然后返回。具体地说,CPU 101明确地将数据复制到GPU内存104,GPU 102完成计算,然后将计算结果明确地复制返回给CPU内存103。仅仅只有数据组可以被复制,因为GPU不能跟随(follow)嵌入式数据结构链接。CPU内存与GPU内存之间的路径是相当耗时费力的,并且没有用于CPU和GPU访问相同的内存区域的简洁的方式。
[0025]所述传统的计算机系统包括具有自己的本地内存的CPU和具有自己的本地内存的GPU,其支持非统一内存访问(NUMA)。在NUMA下,与非本地内存(对其他处理器来说是本地的内存或者在处理器之间共享的内存)相比,处理器可以更加快速地访问它自己的本地内存。NUMA的优点限于特定的工作负荷,这一点在服务器上尤其明显,在那里数据通常与某些任务或者用户紧密相关。
[0026]图2以简单的方式示出根据本实用新型的改善的计算机系统的一种示例性实施方式。CPU 201具有多个内核207并且通过第一内存总线205连接至统一的内存203。GPU202具有多个计算单元208并且通过第二内存总线206连接至所述统一的内存203。CPU201和GPU202通过处理器间通信链路210以通信方式连接。在一种实施方式中,所述处理器间通信链路210是超级传输(HyperTransport)链路。如图2中所示,CPU和GPU共享着被称为GPU/GPU统一内存的相同的系统内存。其优点包括更加简单的编程模式和数据在单独的内存池之间的较少复制。在一种实施方式中,每个CPU 201和GPU 202都具有自己的高速缓存(未示出)。
[0027]包括具有相同内存的CPU和GPU的所述改善的计算机系统支持统一内存访问(UMA)。在UMA模式下,所有的处理器统一地共享物理内存。在一种UMA架构中,对存储位置的访问时间不依赖于哪个处理器发出请求或者哪个内存芯片包含所转交的数据。统一内存访问计算机架构通常与非统一内存访问(NUMA)架构不同。在UMA架构中,每个处理器都可以使用自己的高速缓存。外围设备也以某种方式共享。所述UMA模式适用于通用目的和多用户分时操作应用程序。它可以被用于在对时间要求苛刻的应用程序中使单个大型程序的执行得以加速。
[0028]在这种改善的计算机系统种,CPU简单地将指针传递给GPU,GPU完成计算,然后(PU就可以直接读取结果。不需要复制。指针是一种保持着内存地址的命名变量。它使得通过命名来引用数据或者代码段变得容易,并且不需要开发人员知道内存中的确切地址。指针可以由被用于在任何其他的变量上运行的相同表达式所操作。在所述改善的计算机系统中,存在用于两个计算元件访问相同的内存区域的简洁的方式。相干的内存确保了 CPU和GPU高速缓存都能查看更新的数据。GPU可以流畅连贯地访问还没有存在于物理内存中的虚拟内存地址。CPU和GPU都可以访问和配置系统的虚拟内存中的任何位置。CPU和GPU都可以读取和修改内存的相同区域,而不用一个等待另一个处理任务。这使得它们两个之间的资源共享更加简单,其消除了通信延迟和瓶颈,否则的话这些通信延迟和瓶颈可能会使得GPU卸载没必要复杂化的事务。
[0029]在一个例子中,每个GPU计算单元都可以包括一个或多个标量和/或向量浮点单元和/或算术逻辑单元(ALU)。GPU计算单元也可以包括专用处理单元(未示出),如反平方根单元和正弦/余弦单元。
[0030]图3示出根据本实用新型的经改善的简化的计算机系统的一种示例性实施方式。所述改善的计算机系统包括具有异构系统架构的加速处理单元(HSA APU)APU 300和系统内存303。所述APU 300和系统内存303通过内存总线310以通信的方式连接。APU 300使得具有多个内核307的CPU模块301、具有多个计算单元308的GPU模块302和HSA内存管理单元(HMMU) 305结合在一起。这些部件都通过内存总线310与相干的和不相干的系统内存303通信。所述系统内存303包括相干部分和不相干部分。
[0031 ] 在这种计算机系统中,为CPU和GPU提供了统一的寻址空间,并因此CPU和GPU可以访问具有相同地址空间的内存。现在,指针可以在CPU与GPU之间自由传递。还提供了CPU与GPU之间完全相干的内存。GPU现在可以访问和缓存来自系统内存的相干内存区域中的数据,并且可以引用来自CPU高速缓存(未示出)的数据。高速缓存相干性得以保持。此外,GPU通过CPU指针使用可分页的系统内存,并因此GPU可以利用CPU与GPU之间共享的虚拟内存,并且可分页的系统内存现在可以由GPU直接引用,而不用在访问之前进行复制或者锁定(pinned)。
[0032]下面结合在图4中所示的典型系统来描述根据本实用新型的改善的计算机系统的一种示例性实施方式。如下面详细阐述的那样,所述典型系统包括利用处理器间通信链路连接至其他元件的HSA APU、连接至所述APU的附加板,所述附加板具有专用的APD (加速处理设备)和本地内存。这种示例性系统可以构成在单个硅片或者封装上,进而使得CPU和GPU结合在一起,以提供一种统一的编程和运行环境。这种环境确保了针对某些编程任务可以像使用CPU那样流畅地使用GPU。此外,专用的APD可以包含在这个系统中。虽然GPU、加速处理单元(APU)以及通用用途的图形处理单元(GPU)是这个领域中常用的术语,但是表述“加速处理设备(APD) ”被认为是更广义的表述。例如,APD是指硬件和/或软件的任何配合集合,与常规CPU、常规GPU、软件和/或其组合相比,所述任何配合集合以加速方式完成与加速图形处理任务、数据并行任务或嵌套数据并行任务相关的那些功能和计算。
[0033]这个示例性系统用来说明各种特征、特性和能力,所述各种特征、特性和能力可以加以使用,从而更为有效地利用系统的计算资源。如本领域技术人员将了解的那样,具有不同配置和布置的替代实施方式也是意料之中的。
[0034]图4是一种说明性计算机系统的框图并且阐明了不同的元件和/或子系统。本实用新型并不限于图4的说明性实施方式,并且应注意到,本实用新型的实施方式以类似方式包括带有一个以上或者带有一个APU插槽的较大和较小平台设计。本文所描述的实施方式是出于说明性目的,并且应了解,根据本实用新型的其它实施方式也是可能的。根据本实用新型的特定平台设计的详细实施特性可以是不同的。
[0035]参考图4,系统元件被分解为多个方框,每个方框都可以包含不同的特征、特性、互连和/或属性。软件(更小程度上来说包括应用软件)列举了这些特征、特性、互连和/或属性,并且将这些方面并入到代码操作中。
[0036]根据本实用新型的计算机系统40包括APU 400和系统内存403。APU 400和系统内存403通过第一内存总线410以通信的方式连接。在一种实施方式中,APU 400可以通过处理器间通信链路例如外围元件互连装置(PCIe) 414和/或超级传输链路416连接至其他APU。APU 400包括具有多个内核407的CPU模块401、具有多个计算单元408的GPU模块402和HSA内存管理单元HMMU 305。
[0037]所述计算机系统40还包括通过第一内存总线410连接至APU400的系统内存403。所述系统内存403包括相干部分和不相干部分。所述计算机系统40还包括附加板420。所述附加板420通过PCIe总线412连接至所述APU 400。在各种可供选择的实施方式中,附加板420的一些或所有物理元件和/或软件、固件或微代码设置在带有一个或多个APU的共同衬底(例如,印刷电路板)上。
[0038]所述附加板420包括专用的APD 421和本地内存422,所述本地内存422通过第二内存总线423连接至所述专用的APD 421。所述本地内存422包括相干的第一部分和不相干的第二部分。所述本地内存422典型地在物理上实施为易失性存储器,但是这种实施方式并不是本实用新型的要求。所述专用的APD 421可以包括它自己的计算单元,如但不限于一个或多个SMD (单指令多数据)处理内核。如本文所提及,SMD是流水线或编程模型,其中核心程序(kernel)在多个处理元件上同时执行,所述处理元件中的每一个都具有自己的数据和共享的程序计数器。所有处理元件执行一个完全相同的指令集。预测的使用使得工作项目能够参与或不参与每个所发出的命令。在一个实施例中,每个APD 421计算单元都可以包括一个或多个标量和/或向量浮点单元和/或算术逻辑单元(ALU)。所述APD计算单元还可以包括专用处理单元(未示出),如反平方根单元和正弦/余弦单元。
[0039]组合式CPU/GPU体系结构系统的具体特征表现为含有依从于CPU/GPU体系结构的一个或多个处理单元,其中至少一个是APU (即,含有CPU计算单元和APD-SMD执行单元两者)。每个处理单元大致上通过其物理表示(例如,“APU插槽”、APD “适配器” /装置)来定义,并且具有可发现的内部子元件和特性,如但不限于CPU计算单元和高速缓存(可选地,可以在组合式体系结构依从性离散APD设备中不表达任何内容)、APD SIMD和高速缓存(如果表达传统的CPU特性,则是可选的)、存储控制器和连接装置、1MMU(可选地,可以针对组合式体系结构依从性离散APD不表达任何内容)以及1连接接口(例如,PCIe、HyperTransport、DM1、内部或其它接口)。
[0040]在计算机系统中,通信基础设施视需要互连系统的部件。通信基础设施可以包括(未示出)外围部件互连(PCI)总线、扩展的PCI (PC1-E)总线、高级微控制器总线体系结构(AMBA)总线、高级图形端口(AGP)或其它此类通信基础设施中的一个或多个。通信基础设施还可以包括以太网,或类似网络,或满足应用程序的数据传输速率要求的任何适当物理通信基础设施。通信基础设施包括用以互连包括计算系统元件在内的元件的功能性。
[0041]本文所示出和描述的示例性系统至少可以在计算设备(包括但不限于笔记本计算机、桌上型计算机、服务器计算机、手持式计算机、移动计算机和平板计算机、机顶盒、媒体服务器、电视机和类似设备)、图形处理和异构型计算资源的统一编程环境等领域中找到应用。
[0042]应了解,本实用新型并不限于上文所述的说明性实施方式,而是涵盖属于所附权利要求和其等效方案的范围内的任何和所有实施方案。
[0043]对本领域技术人员来说,显而易见的是,可以针对这里所描述的实施方式实现大量的改进方案和变形方案,而它们并未离开要求保护的主题的实质和范围。因此,本说明书的用意在于,涵盖这里所描述的不同实施方式的改进方案和变形方案,并且所述改进方案和变形方案处于附加的权利要求和它们的等效方案的范围之内。
【权利要求】
1.一种芯片器件,其包括: CPU,其具有多个内核; GPU,其具有多个计算单元; 系统内存,其连接至所述CPU和所述GPU ; 内存管理单元(MMU),其连接至所述系统内存并且由所述CPU和所述GPU共享; 其中,所述CPU和所述GPU集成在一起并且在共享的内存中以相干的方式运行。
2.一种主板,其包括配置成连接至芯片器件的芯片插口,所述芯片器件包括: CPU,其具有多个内核; GPU,其具有多个计算单元; 系统内存,其连接至所述CPU和所述GPU ; 内存管理单元(MMU),其连接至所述系统内存并且由所述CPU和所述GPU共享; 其中,所述CPU和所述GPU集成在一起并且在共享的内存中以相干的方式运行。
3.根据权利要求2所述的主板,其中,所述主板还包括加速处理设备(APD)。
4.根据权利要求3所述的主板,其中,所述主板还包括加速处理设备本地内存,其通过内存总线连接至所述加速处理设备(APD)。
5.一种计算机系统,其包括: CPU,其具有多个内核; GPU,其具有多个计算单元; 系统内存,其连接至所述CPU和所述GPU ; 内存管理单元(MMU),其连接至所述系统内存并且由所述CPU和所述GPU共享; 其中,所述CPU和所述GPU集成在一起并且在共享的内存中以相干的方式运行。
6.根据权利要求5所述的计算机系统,其中,所述计算机系统还包括加速处理设备(APD)。
7.根据权利要求6所述的计算机系统,其中,所述计算机系统还包括加速处理设备本地内存,其通过内存总线连接至所述加速处理设备(APD)。
【文档编号】G06F15/16GK203930824SQ201420188170
【公开日】2014年11月5日 申请日期:2014年4月17日 优先权日:2014年4月17日
【发明者】谢铭, 李有生 申请人:超威半导体产品(中国)有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1