通用处理器与图形处理器融合系统及其融合方法转让专利

申请号 : CN201110008397.5

文献号 : CN102073543B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 邹治海黄田祝永新沈祥尹晓静

申请人 : 上海交通大学上海红神信息技术有限公司

摘要 :

一种计算机处理器技术领域的通用处理器与图形处理器融合的高效能架构,包括:调度控制核心及对应的指令缓存、串行处理核心模块和串行数据缓存、并行处理单元阵列和可寻址高速存储、统一数据缓存及数据接口。本发明适用于顺序执行程序和并行执行程序相协调的处理,并在提高计算速度的同时,提高处理器的效能,在该架构下,数据传输速度得以提高,同时显著地提高效能。

权利要求 :

1.一种通用处理器与图形处理器融合的高效能系统,其特征在于,包括:调度控制核心及对应的指令缓存、串行处理核心模块和串行数据缓存、并行处理单元阵列和可寻址高速存储、统一数据缓存及内部数据接口,其中:调度控制核心与指令缓存相连接并传输指令信息,指令缓存分别与内部数据接口及统一数据缓存相连接并传输调度控制核心所需的指令及数据信息,串行处理核心模块与串行数据缓存相连接并传输大规模的需串行处理的数据信息及串行处理核心模块处理完毕数据信息,串行数据缓存与统一数据缓存相连接并传输串行处理核心模块相关数据信息,并行处理单元阵列与可寻址高速存储相连接并传输待处理的需并行处理的数据信息及并行处理单元阵列处理完毕数据信息,可寻址高速存储与统一数据缓存相连接并传输并行处理单元阵列相关数据信息,统一数据缓存与内部数据接口及指令缓存相连接并传输调度控制核心的调度控制地址信息和数据信息,内部数据接口与外部数据接口及指令缓存和统一数据缓存相连接并分别传输所有需要处理的指令和数据信息;所述的调度控制核心从指令缓存中获取指令,识别任务的并行度及数据量,进行任务分配并将数据包装成适合两种不同数据处理器处理的形式后交由串行处理核心模块与并行处理单元阵列进行数据处理;

所述的调度控制核心及对应的指令缓存是由频率较低、功耗较小的嵌入式处理器及高速指令缓存实现,完成任务指令调度及简单处理;

所述的串行处理核心模块和串行数据缓存是由现有CPU芯片中的算术逻辑单元与L1、L2 Cache构成,负责处理由调度控制核心分配的串行任务;

所述的并行处理单元阵列和可寻址高速存储是由现有GPU芯片中的众核处理单元阵列和片上的可寻址存储构成,完成调度控制核心分配的并行任务。

2.根据权利要求1所述的通用处理器与图形处理器融合的高效能系统,其特征是,所述的统一数据缓存是一可寻址高速存储,其通过一个存储控制器来控制数据的传输和选片。

3.根据权利要求1所述的通用处理器与图形处理器融合的高效能系统,其特征是,所述的内部数据接口是一个多端口、带有仲裁机制的接口芯片。

4.根据权利要求1所述的通用处理器与图形处理器融合的高效能系统,其特征是,所述的内部数据接口为双向读取接口,该双向读取接口分别与串行处理核心模块以及并行处理单元阵列相连接,并实现从外部数据接口中读取数据。

5.一种根据上述任一权利要求所述系统的融合方法,其特征在于,包括以下步骤:

步骤一,外部部件将需要处理的程序或任务通过内部数据接口传入,指令存入指令缓存中,等待调度控制核心从指令缓存中将指令导入到处理器中;

步骤二,调度控制核心读入指令,并对任务进行分析判断并包装;

步骤三,处理器根据任务的不同需求,开启串行处理核心模块和/或并行处理单元阵列实现融合。

6.根据权利要求5所述的融合方法,其特征是,所述的指令包括:调度指令和简单运算指令、复杂逻辑处理指令和串行指令以及大规模数据的可并行处理的任务。

7.根据权利要求5所述的融合方法,其特征是,所述的分析判断是指根据导入的指令中的任务信息描述,对任务的类型及复杂度进行判断,将任务分为三种类型:第一种情况:无法并行处理任务;

第二种情况:多核并发执行的任务;

第三种情况:复杂的逻辑、数据处理任务或包含其组合的子任务。

8.根据权利要求5所述的融合方法,其特征是,所述的包装是指:对任务的执行顺序进行适当调整,并对所采用的数据处理器进行分配,保证任务的工作效率。

9.根据权利要求7所述的融合方法,其特征是,所述的处理器根据任务的不同需求是指:当判断为第一种情况时,串行处理核心模块从调度控制核心中接受任务指令,并从统一数据缓存中将数据导入串行数据缓存进行处理;当判断为第二种情况时,并行处理单元阵列从调度控制核心中接受任务指令,并从统一数据缓存中将数据导入可寻址高速存储进行处理;当判断为第三种情况时,调度控制核心将任务分成若干适合两种不同数据处理器计算的任务,按一定调度策略发送给两种处理核心处理;而两种处理核心在处理后,各自缓存中数据传送至统一数据缓存进行数据交互。

说明书 :

通用处理器与图形处理器融合系统及其融合方法

技术领域

[0001] 本发明涉及的是一种计算机处理器技术领域的系统及方法,具体是一种适用于大规模数据处理的高效能计算的通用处理器与图形处理器融合系统及其融合方法。 [0002] 背景技术
[0003] 随着计算机性能、功耗和集成度等方面的要求越来越高,CPU(通用处理器)作为主要的控制部件和计算部件,承受的压力越来越大。如今,CPU的工艺达到32nm,采用超标量技术和超流水线技术,分支预测的准确率高达99%以上,已达到单核的极限。而多核技术和异构技术成为必然趋势。
[0004] 目前计算机中的计算部件主要是GPU(图形处理器)与CPU,GPU采用多核、高度细颗粒并行,大大提高了计算能力。CPU进行串行指令处理,GPU负责并行数据计算、图像处理,两者通过北桥PCI-E总线相连接,分别拥有独立的存储器内存和显存。但这样需要分别供电,提供散热,加大了体积,而且由于PCI-E总线的传输能力有限,制约了计算能力。因而,把两者融合在一块芯片中,成为未来研究的重要方向。其中,AMD公司采用HT总线将两者合并在一起,而推出了代号为Fusion的新一代处理器;Intel也曾计划开发Larrabee架构。
[0005] 经对现有技术文献的检索发现,中国专利申请号00815257.8,名称为:并行处理器结构,描述了一种并行的基于硬件的多线程处理器。该处理器包括协调系统功能的通用处理器和支持多个硬件线程的多个微引擎。该处理器还包括一存储控制系统,它具有根据存储器调用是针对存储器的偶数存储区还是奇数存储区而排序存储器调用的第一存储控制器和根据存储器调用是读还是写调用优化存储器调用的第二存储控制器。 [0006] 中国专利申请号为:92111552.0,名称为:动态多方式并行处理器阵列体系结构的计算机系统,对一个并行RISC计算机系统提供了动态多方式并行处理器阵列。所展示的微密耦合VLSI实施例的体系结构能通过互连网络扩展到更大范围分布的处理单元,该网络将多个能以MIMD方式处理和处理器彼此耦合,在控制处理器控制下将指令广播到选定的单元组。处理单元耦合逻辑能实现动态方式分派和动态方式变换,允许SIMD方式操作的处理器最大限度利用存储器和周期时间。操作方式能在逐条指令一级从SIMD方式变换到MIMD方式。而上述两项技术都仅限于并行计算处理器的研究,而且只是针对于特定应用。 [0007] 美国专利申请号US2080100629Al的Fusion架构,虽然将CPU与GPU融合在一起,但仅仅是两个裸片封装在一起,并没有改变两者的协同计算方式,即GPU作为CPU的加速部件。在数据 交互模式上,沿用了原有CPU芯片与GPU显卡的通信模式。
[0008] 美国英特尔公司(Intel Incorporation)虽然提出过多篇论文研究Larrabee架构,并没有利用现有的GPU架构,而是基于x86的通用计算架构。
[0009] 发明内容
[0010] 本发明针对现有技术存在的上述不足,提供一种通用处理器与图形处理器融合系统及其融合方法,适用于顺序执行程序和并行执行程序相协调的处理,并在提高计算速度的同时,提高处理器的效能,在该架构下,数据传输速度得以提高,同时显著地提高效能。 [0011] 本发明是通过以下技术方案实现的:
[0012] 本发明涉及一种通用处理器与图形处理器融合系统,包括:调度控制核心及对应的指令缓存、串行处理核心模块、串行数据缓存、并行处理单元阵列、可寻址高速存储、统一数据缓存及数据接口,其中:调度控制核心与指令缓存相连接并传输指令信息;指令缓存分别与数据接口及统一数据缓存相连接并传输调度控制核心所需的指令及数据信息;串行处理核心模块与串行数据缓存相连接并传输大规模的需串行处理的数据信息及串行处理核心模块处理完毕数据信息;串行数据缓存与统一数据缓存相连接并传输串行处理核心模块相关数据信息;并行处理单元阵列与可寻址高速存储相连接并传输待处理的需并行处理的数据信息及并行处理单元阵列处理完毕数据信息;可寻址高速存储与统一数据缓存相连接并传输并行处理单元阵列相关数据信息;统一数据缓存与数据接口及指令缓存相连接并传输调度控制核心的调度控制地址信息和数据信息;数据接口与外部数据接口及指令缓存和统一数据缓存相连接并分别传输所有需要处理的指令和数据信息。
[0013] 所述的统一数据缓存是一可寻址高速存储,其通过一个存储控制器来控制数据的传输和选片。
[0014] 所述的数据接口是一个多端口、带有仲裁机制的接口芯片。
[0015] 所述的调度控制核心从指令缓存中获取指令,识别任务的并行度及数据量,进行任务分配并将数据包装成适合两种不同数据处理器处理的形式后交由串行处理核心模块与并行处理单元阵列进行数据处理。
[0016] 所述的数据接口为双向读取接口,该双向读取接口分别与串行处理核心模块以及并行处理单元阵列相连接,并实现从外部读取数据。
[0017] 本发明涉及上述系统的融合方法,包括以下步骤:
[0018] 步骤一,外部部件将需要处理的程序或任务通过数据接口传入,指令存入指令缓存中,等待调度控制核心从指令缓存中将指令导入到处理器中。
[0019] 步骤二,调度控制核心读入指令,并对任务进行分析判断并包装。 [0020] 所述的指令包括:调度指令和简单运算指令、复杂逻辑处理指令和串行指令以及大规模数据的可并行处理的任务。
[0021] 所述的分析判断是指根据导入的指令中的任务信息描述,对任务的类型及复杂度进行判断,将任务分为三种类型:
[0022] 第一种情况:无法并行处理任务;;
[0023] 第二种情况:多核并发执行的任务,如图像处理、SIMD(单指令流多数据流)等类型的任务;
[0024] 第三种情况:复杂的逻辑、数据处理任务或包含其组合的子任务。 [0025] 所述的包装是指:对任务的执行顺序进行适当调整,并对所采用的处理单元进行分配,保证任务的工作效率。
[0026] 步骤三,处理器根据任务的不同需求,开启串行处理核心模块和/或并行处理单元阵列实现融合,其中:
[0027] 当判断为第一种情况时,串行处理核心模块从调度控制核心中接受任务指令,并从统一数据缓存中将数据导入数据缓存进行处理;
[0028] 当判断为第二种情况时,并行处理单元阵列从调度控制核心中接受任务指令,并从统一数据缓存中将数据导入可寻址高速存储进行处理;
[0029] 当判断为第三种情况时,调度控制核心将任务分成若干适合两种不同处理核心计算的任务,按一定调度策略发送给两种处理核心处理。而两种处理核心在处理后,各自缓存中数据传送至统一数据缓存进行数据交互。
[0030] 融合后的新处理器的构架为以调度控制核心为任务处理核心,负责任务分析、指令分配调度以及少量的串行计算;而大规模数据的处理等具体数据计算,调度控制核心把任务分割封装成适合串行处理核心模块和并行处理单元阵列来分别计算。通过调度控制核心控制两个核的任务量和计算来降低功耗,实现高效能计算。
[0031] 附图说明
[0032] 图1为本发明结构示意图。
[0033] 图2为本发明的内部数据通讯传输图。
[0034] 图3为本发明的一种执行实施例的流程图。
[0035] 图4为本发明的统一数据缓存的控制器模块。
[0036] 具体实施方式
[0037] 下面对本发明的实施例作详细说明,本实施例在以本发明技术方案为前提下进行实施,给出了详细的实施方式和具体的操作过程,但本发明的保护范围不限于下述的实施例。
[0038] 如图1所示,本实施例包括:调度控制核心及对应的指令缓存、串行处理核心模块和串行数据缓存、并行处理单元阵列和可寻址高速存储、统一数据缓存及数据接口,其中:调度控制核心与指令缓存相连接并传输指令信息,指令缓存与数据接口及统一数据缓存相连接并传输指令及数据信息,串行处理核心模块与串行数据缓存相连接并传输待处理及处理完毕的数据信息,串行数据缓存与统一数据缓存相连接并传输相应数据信息,并行处理单元阵列与可寻址高速存储相连接并传输待处理及处理完毕的数据信息,可寻址高速存储与统一数据缓存相连接并传输相应数据信息,统一数据缓存与数据接口及指令缓存相连接并传输数据信息,数据接口与外部数据接口及内部的指令缓存和统一数据缓存相连接并传输所有需要处理的指令和数据信息。
[0039] 所述的调度控制核心及对应的指令缓存是由频率较低、功耗较小的嵌入式处理器及高速指令缓存实现,完成任务指令调度及简单处理。
[0040] 所述的串行处理核心模块和串行数据缓存是由现有CPU芯片中的算术逻辑单元(ALU)处理单元与L1、L2Cache构成,负责处理由调度控制核心分配的串行任务。 [0041] 所述的并行处理单元阵列和可寻址高速存储是由现有GPU芯片中的众核处理单元阵列和片上的可寻址存储构成,完成调度控制核心分配的并行任务。
[0042] 所述的统一数据缓存是一可寻址高速存储,其通过一个存储控制器来控制数据的传输和选片,以保证不同的部件可以同时访问。
[0043] 所述的数据接口是一个多端口、带有仲裁机制的接口芯片,负责将外部存储器的内容传入相应的高速缓存内及将处理结果传出。
[0044] 所述的调度控制核心是一个低功耗处理核心,负责指令处理和任务调度。其从指令缓存中获取指令,进行任务分配,交由串行处理核心模块与并行处理单元阵列进行数据处理。其核心任务是识别任务的并行度及数据量,将数据包装成适合两种不同数据处理器处理的形式,分配其分别执行。在一种处理器处于空闲状态时,对其进行屏蔽,以降低功耗。 [0045] 将GPU和CPU中的处理单元和Cache提取出来。而CPU的ALU单元与L1、L2Cache构成基本的串行处理核心模块和数据缓存部分,处理适合于串行计算的数据任务;而GPU中的处理单元和片上存储构成并行处理单元阵列和可寻址高速存储,对任务的并行部分进行处理。而两者均从统一高速存储中寻址获取所需数据。
[0046] 所述的统一数据缓存作为核心的数据存储模块,负责给串行处理核心模块与并行处理单元阵列提供需处理数据。而其数据通过数据接口从外部将数据对进来。同时,它与指令缓存可以交互数据,以方便各计算模块通信。
[0047] 所述的两种数据处理器在配合工作时,指令调度和分配由调度控制核心负责,将一个任务 中数据串行部分和并行部分分别包装,设定好执行顺序及数据处理后的传递地址,交由数据处理核心计算。而数据处理核心在处理完毕数据后,将数据按安排好的地址,将数据传递到指定位置。
[0048] 所述的串行处理核心模块与并行处理单元阵列从外部内存读取数据的方式为通过数据接口来读取。数据接口是一个双向读取接口。
[0049] 如图3和图4所示,本实施例通过以下步骤实现融合处理:
[0050] 步骤一,外部部件将需要处理的程序或任务通过数据接口传入,指令缓存入指令存储器,等待调度控制核心从中将指令导入到处理器中。
[0051] 步骤二,调度控制核心读入指令,并对指令进行分析判断并重新包装。根据对处理器类型的需求指令分为三类:
[0052] 1.调度指令和简单运算指令。这类指令不包含复杂的、大规模的数据处理,对于调度控制核心可以独立处理。
[0053] 2.复杂的逻辑处理指令和串行指令。这类指令特点是数据量较大或包含特殊计算公式,调度控制核心不能在短时间内解决。调度控制核心将此类任务封装成适合串行处理核心模块处理的任务,将指令内容及对应的数据地址发送到串行处理核心模块。 [0054] 3.大规模数据的可并行处理的任务。此类任务一般数据量特别大,而且适合单指令流多数据流的方式处理。调度控制核心将此类任务封装成适合并行处理单元阵列处理的任务,将指令内容及对应的数据地址发送到并行处理单元阵列。
[0055] 步骤三,根据任务的不同需求,处理器处于不同的工作状态,开启串行处理核心模块或(和)并行处理单元阵列。
[0056] 1.调度控制核心与串行处理核心模块协同工作。对于复杂的顺序执行任务或任务适合流水执行而无法并行处理时,串行处理核心模块从调度控制核心中接受任务指令,并从统一数据缓存中将数据导入数据缓存进行处理。(如图3,路线分支(1)) [0057] 2.调度控制核心与并行处理单元阵列协同工作。对于多核并发执行的任务,并行处理单元阵列从调度控制核心中接受任务指令,并从统一数据缓存中将数据导入可寻址高速存储进行处理。(如图3,路线分支(1))
[0058] 3.调度控制核心、串行处理核心模块与并行处理单元阵列协同工作。对于一些极为复杂的大规模逻辑、数据处理任务,调度控制核心将任务分成若干适合两种不同处理核心计算的任务,按一定调度策略发送给两种处理核心处理。而两种处理核心在处理后,各自缓存中数据传送至统一数据缓存进行数据交互。(如图3,路线分支(2))
[0059] 步骤四,在数据处理模块处理结束后,对后续任务进行判断,如果未全部执行结束,等待 任务继续执行;若全部执行结束,则关闭数据处理模块。
[0060] 按照此种执行过程,对比现有架构有重要提高,新型融合系统形成的装置有如下有益效果:
[0061] 首先,数据和指令传递绕过PCI-E总线,可获得十倍级以上的速度提升,而处理器的执行效率保持不变。
[0062] 第二,该架构在功耗方面对比与现有的CPU与GPU结构有着良好的表现。在执行串行执行程序或大规模数据并行执行程序,功耗仅为原有架构的一半。对于极为复杂的大规模逻辑、数据处理任务,该架构仅在短时间内达到现有架构的功率,但大部分时间维持在比现有架构少数十瓦。