首页 / 专利库 / 人工智能 / 专用逻辑 / 基于异构流水线的高效通用处理器执行方法及系统

基于异构流线的高效通用处理器执行方法及系统

阅读:833发布:2020-05-08

专利汇可以提供基于异构流线的高效通用处理器执行方法及系统专利检索,专利查询,专利分析的服务。并且本 发明 提出基于异构流 水 线的高效通用处理器执行方法及系统,包括:将通用处理器中计算部件整合为计算单元阵列,基于计算单元阵列构建顺序执行的计算流水线;并基于通用处理器中通用部件构建乱序执行的通用流水线;获取待执行指令,通用处理器中译码模 块 识别待执行指令属于通用指令或计算指令,若待执行指令属于通用指令,则将属于通用指令的待执行指令发送至通用流水线,得到待执行指令的执行结果,若待执行指令属于计算指令,则将属于计算指令的待执行指令发送至计算流水线,得到待执行指令的执行结果。本发明将通用处理器中计算指令和通用指令的流水线独立开来,使得两条流水线可以采用各自最高效的结构设计方法。,下面是基于异构流线的高效通用处理器执行方法及系统专利的具体信息内容。

1.一种基于异构流线的高效通用处理器执行方法,其特征在于,包括:
步骤1、将通用处理器中计算部件整合为计算单元阵列,基于该计算单元阵列构建顺序执行的计算流水线;并基于该通用处理器中通用部件构建乱序执行的通用流水线;
步骤2、获取待执行指令,通用处理器中译码模识别该待执行指令属于通用指令或计算指令,若该待执行指令属于通用指令,则执行步骤3,若该待执行指令属于计算指令,则执行步骤4;
步骤3、将属于通用指令的待执行指令发送至该通用流水线,得到该待执行指令的执行结果;
步骤4、将属于计算指令的待执行指令发送至该计算流水线,得到该待执行指令的执行结果。
2.如权利要求1所述的基于异构流水线的高效通用处理器执行方法,其特征在于,该通用指令包括定浮点运算指令、逻辑指令、访存指令、比较指令、分支转移指令、控制指令、系统指令,和,第一同步与数据交换指令;
该计算指令包括向量计算指令、向量访存指令,和,第二同步与数据交换指令;
该计算流水线和该通用流水线共享一个同步与交换模块,通过该第一同步与数据交换指令和该第二同步与数据交换指令实现同步与数据交换。
3.如权利要求1所述的基于异构流水线的高效通用处理器执行方法,其特征在于,该通用流水线采用面向指令并行的多发射、深流水和乱序执行的通用处理器流水线结构;
该计算流水线,采用面向数据并行的单指令多数据流的专用处理器流水线结构。
4.如权利要求1所述的基于异构流水线的高效通用处理器执行方法,其特征在于,该通用处理器包括电路,用于控制该计算流水线的启动和停止。
5.如权利要求1所述的基于异构流水线的高效通用处理器执行方法,其特征在于,该通用流水线通过一级数据高速缓存访问存储系统,该计算流水线通过二级或者最后一级高速缓存访问存储系统。
6.一种基于异构流水线的高效通用处理器执行系统,其特征在于,包括:
模块1、将通用处理器中计算部件整合为计算单元阵列,基于该计算单元阵列构建顺序执行的计算流水线;并基于该通用处理器中通用部件构建乱序执行的通用流水线;
模块2、获取待执行指令,通用处理器中译码模块识别该待执行指令属于通用指令或计算指令,若该待执行指令属于通用指令,则执行模块3,若该待执行指令属于计算指令,则执行模块4;
模块3、将属于通用指令的待执行指令发送至该通用流水线,得到该待执行指令的执行结果;
模块4、将属于计算指令的待执行指令发送至该计算流水线,得到该待执行指令的执行结果。
7.如权利要求6所述的基于异构流水线的高效通用处理器执行系统,其特征在于,该通用指令包括定浮点运算指令、逻辑指令、访存指令、比较指令、分支转移指令、控制指令、系统指令,和,第一同步与数据交换指令;
该计算指令包括向量计算指令、向量访存指令,和,第二同步与数据交换指令;
该计算流水线和该通用流水线共享一个同步与交换模块,通过该第一同步与数据交换指令和该第二同步与数据交换指令实现同步与数据交换。
8.如权利要求6所述的基于异构流水线的高效通用处理器执行系统,其特征在于,该通用流水线采用面向指令并行的多发射、深流水和乱序执行的通用处理器流水线结构;
该计算流水线,采用面向数据并行的单指令多数据流的专用处理器流水线结构。
9.如权利要求6所述的基于异构流水线的高效通用处理器执行系统,其特征在于,该通用处理器包括门控电路,用于控制该计算流水线的启动和停止。
10.如权利要求6所述的基于异构流水线的高效通用处理器执行系统,其特征在于,该通用流水线通过一级数据高速缓存访问存储系统,该计算流水线通过二级或者最后一级高速缓存访问存储系统。

说明书全文

基于异构流线的高效通用处理器执行方法及系统

技术领域

[0001] 本发明属于处理器设计领域,特别涉及一种异构流水线的高效通用处理器设计方法及系统。

背景技术

[0002] 人工智能机器学习认知计算、仿真模拟等新兴应用属于计算密集型应用,需要计算机具有更强大的计算能。而通用处理器由于计算能力不足,与专用处理器如GPU、TPU等存在一个数量级的差距。因此,为满足新兴计算密集型应用的需求,当前的计算机系统一般采用异构的组成方式:一种是将具有强大计算能力的专用处理器,如GPU、TPU等作为IO设备,通过高速IO总线(如PCI-E)与通用处理器互连,协同工作;另一种是将GPU、TPU等作为协处理器,与通用处理器通过系统总线互连进行协同工作;还有一种是将GPU、TPU等作为IP核,通过片上互连总线与通用处理器核心组成异构多核处理器进行协同工作。无论哪一种方式,都需要通用处理器与专用处理器协同工作,缺一不可。
[0003] 上述计算机系统存在两个明显的缺点:一是资源浪费,二是编程困难。
[0004] 资源浪费主要体现在通用处理器的资源浪费。现代的通用处理器设计十分复杂,通常采用面向高指令并行的多发射、深流水、乱序执行的统一流水线结构,同时具有强大的向量计算部件,如图1所示。然而,在面向新兴应用的计算机系统中,虽然通用处理器和专用处理器搭配使用,但通用处理器实际上主要完成一些简单的管理功能,计算任务则完全由专用处理器承担,因此通用处理器自身强大的算力和复杂设计都是浪费。
[0005] 编程困难体现在虽然计算任务主要由专用处理器承担,但通用处理器也需要配合做一些专用处理器做不了的工作,即二者必须搭配使用。这样就涉及两种不同指令系统的处理器的协同编程工作,增加了编程的复杂度和难度。同时,不同专用处理器的指令系统各不相同,也极大地增加了编程的难度和工作量。
[0006] 如果通用处理器的计算能力能够大幅度提高,那么就能够在单一的通用处理器上处理计算密集型应用,这样资源利用率低和编程难的问题都可以得到解决。
[0007] 与专用处理器相比,通用处理器计算能力低的主要原因是通用处理器为了提高通用程序执行的指令并行度,一般采用多发射、深流水、动态调度、乱序执行等复杂的设计方法,消耗了大量的晶体管资源,使得真正用于计算的晶体管资源的比例明显低于专用处理器,所以峰值计算能力通常比专用处理器低一个数量级。

发明内容

[0008] 本发明的目的是解决通用处理器计算能力相对较低,而专用处理器编程困难的问题,提出了一种基于异构流水线的高效的通用处理器设计方法,为不同功能需求的指令设计不同结构的流水线,从而在单一的通用处理器上高效地满足新兴计算密集型应用的应用需求。
[0009] 针对现有技术的不足,本发明提出一种基于异构流水线的高效通用处理器执行方法,其中包括:
[0010] 步骤1、将通用处理器中计算部件整合为计算单元阵列,基于该计算单元阵列构建顺序执行的计算流水线;并基于该通用处理器中通用部件构建乱序执行的通用流水线;
[0011] 步骤2、获取待执行指令,通用处理器中译码模识别该待执行指令属于通用指令或计算指令,若该待执行指令属于通用指令,则执行步骤3,若该待执行指令属于计算指令,则执行步骤4;
[0012] 步骤3、将属于通用指令的待执行指令发送至该通用流水线,得到该待执行指令的执行结果;
[0013] 步骤4、将属于计算指令的待执行指令发送至该计算流水线,得到该待执行指令的执行结果。
[0014] 所述的基于异构流水线的高效通用处理器执行方法,其中该通用指令包括定浮点运算指令、逻辑指令、访存指令、比较指令、分支转移指令、控制指令、系统指令,和,第一同步与数据交换指令;
[0015] 该计算指令包括向量计算指令、向量访存指令,和,第二同步与数据交换指令;
[0016] 该计算流水线和该通用流水线共享一个同步与交换模块,通过该第一同步与数据交换指令和该第二同步与数据交换指令实现同步与数据交换。
[0017] 所述的基于异构流水线的高效通用处理器执行方法,其中该通用流水线采用面向指令并行的多发射、深流水和乱序执行的通用处理器流水线结构;
[0018] 该计算流水线,采用面向数据并行的单指令多数据流的专用处理器流水线结构。
[0019] 所述的基于异构流水线的高效通用处理器执行方法,其中该通用处理器包括电路,用于控制该计算流水线的启动和停止;
[0020] 所述的基于异构流水线的高效通用处理器执行方法,其中该通用流水线通过一级数据高速缓存访问存储系统,该计算流水线通过二级或者最后一级高速缓存访问存储系统。
[0021] 本发明还提出了一种基于异构流水线的高效通用处理器执行系统,其中包括:
[0022] 模块1、将通用处理器中计算部件整合为计算单元阵列,基于该计算单元阵列构建顺序执行的计算流水线;并基于该通用处理器中通用部件构建乱序执行的通用流水线;
[0023] 模块2、获取待执行指令,通用处理器中译码模块识别该待执行指令属于通用指令或计算指令,若该待执行指令属于通用指令,则执行模块3,若该待执行指令属于计算指令,则执行模块4;
[0024] 模块3、将属于通用指令的待执行指令发送至该通用流水线,得到该待执行指令的执行结果;
[0025] 模块4、将属于计算指令的待执行指令发送至该计算流水线,得到该待执行指令的执行结果。
[0026] 所述的基于异构流水线的高效通用处理器执行系统,其中该通用指令包括定浮点运算指令、逻辑指令、访存指令、比较指令、分支转移指令、控制指令、系统指令,和,第一同步与数据交换指令;
[0027] 该计算指令包括向量计算指令、向量访存指令,和,第二同步与数据交换指令;
[0028] 该计算流水线和该通用流水线共享一个同步与交换模块,通过该第一同步与数据交换指令和该第二同步与数据交换指令实现同步与数据交换。
[0029] 所述的基于异构流水线的高效通用处理器执行系统,其中该通用流水线采用面向指令并行的多发射、深流水和乱序执行的通用处理器流水线结构;
[0030] 该计算流水线,采用面向数据并行的单指令多数据流的专用处理器流水线结构。
[0031] 所述的基于异构流水线的高效通用处理器执行系统,其中该通用处理器包括门控电路,用于控制该计算流水线的启动和停止;
[0032] 所述的基于异构流水线的高效通用处理器执行系统,其中该通用流水线通过一级数据高速缓存访问存储系统,该计算流水线通过二级或者最后一级高速缓存访问存储系统。
[0033] 由以上方案可知,本发明的优点在于:
[0034] 本发明将通用处理器中计算指令和通用指令的流水线独立开来,使得两条流水线可以采用各自最高效的实现方法。这一方面可以大幅降低通用处理器的设计复杂度,将更多晶体管资源用于计算流水线的设计,大幅提高通用处理器的计算能力;另一方面是通用指令和计算指令采用统一的编码,可以紧耦合地在两条流水线中并行执行,不仅简化了编程的难度,而且相比通过IO总线、系统总线或片上总线的互连协作方式,大幅提高了计算任务的执行效率。附图说明
[0035] 图1为本发明大数据管理和可视化流程图
[0036] 图2为可疑数据分析模块所输出的结果可视化范例图。

具体实施方式

[0037] 本发明包括以下关键点:
[0038] 关键点1,处理器指令由统一编码的基础的通用操作指令和专门的计算操作指令组成(后文简称为通用指令和计算指令),这两类指令在处理器的译码模块之后具有独立的流水线通路(后文简称为通用流水线和计算流水线);独立的两条流水线可以采用异构的实现方法,有利于通用指令和计算指令的高效实现。其中异构是指通用流水线采用乱序执行的流水线结构,计算流水线采用顺序执行的流水线结构,这两种流水线的结构有很大差别,所以是异构的。同时,因为两条流水线执行的指令不一样,这样两条流水线的运算执行部件的设计也完全不一样,这也是一种异构。
[0039] 关键点2,通用流水线和计算流水线具有独立的访存部件,通用流水线的访存部件能够访问一级高速缓存,计算流水线的访存部件只能访问二级高速缓存;有利于满足通用访存指令的低延迟需求和计算访存指令的高带宽需求。
[0040] 关键点3,计算流水线由门控电路控制,一条专门的通用指令或者操作,通过门控电路,可以启用或停止计算流水线;这样在只有通用指令的程序运行时可以关闭计算流水线,大幅降低处理器的功耗。
[0041] 关键点4,计算流水线通过一个专门的寄存器或者标志位使能或禁止;使得仅有一个程序可以使用计算流水线,简化了操作系统和应用程序的设计。
[0042] 关键点5,通用流水线和计算流水线共享一个同步和交换模块,实现两条流水线中指令的同步和数据交换;可以高效地实现通用指令和计算指令的并行执行和协同配合。
[0043] 关键点6,计算流水线只能执行专门的计算、访存以及同步和数据交换操作,不能执行分支转移操作;简化了处理器设计和编程的复杂度。
[0044] 计算密集型应用通常具有大量的数据并行性。而适合通用程序的高指令并行性的设计方法并不适合高数据并行性的应用,能效比很低。面向数据并行的专用处理器通常采用顺序执行的、简单的处理器架构,绝大多数的晶体管资源都用于计算单元的设计,形成密集的计算单元阵列,计算能力大幅提高。因此,如果在通用处理器中将计算部件与通用处理部件剥离开,形成两条独立的流水线。计算部件采用与专用处理器相似的简单的、顺序的流水线设计和高密度计算单元阵列;而复杂的架构设计仅限于通用流水线,并对通用流水线进行一定程度的简化,降低复杂度。这样就可以在单一的通用处理器上实现更大规模的计算能力,同时仍具备较强的通用处理能力,并降低了编程的复杂度。其中简化内容包括:一方面是指通用流水线指令功能简化,只包括基础的指令,复杂的向量计算指令都挪到计算流水线了,这样通用流水线的设计就会得到很大的简化。另一方面,下一段提到的,通用指令的定浮点运算指令可以共享同一套逻辑寄存器和物理寄存器,这会减少一套浮点寄存器,也会大幅简化设计。
[0045] 异构流水线处理器采用统一编码的指令集,包括通用指令和计算指令。通用指令包括基本的定浮点运算指令、逻辑指令、访存指令、比较指令、分支转移指令、控制指令、系统指令和专门的同步与数据交换指令等。计算指令包括向量计算指令、向量访存指令和专门的同步与数据交换指令。为进一步降低通用流水线的复杂度,通用指令中的定浮点运算指令可以共享同一套逻辑寄存器和同一套物理寄存器,以简化通用流水线的设计。
[0046] 异构流水线处理器的结构如图2所示。在取指、译码部件后有两条独立的流水线,一条是执行通用指令的通用流水线,采用面向指令并行的传统的多发射、深流水、乱序执行的通用处理器流水线结构;一条是执行计算指令的计算流水线,采用面向数据并行的单指令多数据流的专用处理器流水线结构。
[0047] 异构流水线处理器的译码模块识别出通用指令和计算指令,将它们送往不同的流水线执行。
[0048] 计算流水线受门控电路控制,通过门控电路启动或停止计算流水线的工作,达到降低功耗的目的。
[0049] 计算流水线和通用流水线共享一个同步与交换模块,通过专门的指令实现同步与数据交换。计算流水线只有向量计算指令,没有控制指令,控制指令在通用流水线。因此,计算程序执行时两条流水线都有指令在执行,它们之间需要配合,但两条流水线是异构的,执行的步调是不一致,因此需要同步指令来保持某一时刻的步调一致,避免程序出错。另外,两条流水线配合工作就存在一定的数据交换。
[0050] 通用流水线通过一级数据高速缓存访问存储系统,目的是降低访问延迟。计算流水线通过二级或者最后一级高速缓存访问存储系统,目的是提高访存带宽,减少对一级数据高速缓存的干扰,降低一级数据高速缓存的设计复杂度。
[0051] 通用指令中有两条专门设计的指令或者操作,一条指令或操作控制计算流水线的门控电路,从而控制计算流水线电路是否工作;另一条指令或操作通过一个特定的寄存器标志位,控制计算流水线的使能或者不使能,避免使用冲突。现代的处理器是支持多用户程序分时执行的。计算程序通常需要占用全部算力来提高计算性能,因此这种计算程序通常只有一个,这样处理器设计时计算流水线就不支持分时共享了,一段时间内默认只分配给一个计算程序专用,这样可以简化操作系统和软件的设计。但这样如果用户不小心又同时运行了另一个计算程序,就会发生错误。设置一个标志位,使得计算程序在使用计算流水线前要先获得这个标志位的控制权,如果标志位已被其他计算程序控制,则新的计算程序不能启动,这样就确保了计算流水线的独占性。
[0052] 以下为与上述方法实施例对应的系统实施例,本实施方式可与上述实施方式互相配合实施。上述实施方式中提到的相关技术细节在本实施方式中依然有效,为了减少重复,这里不再赘述。相应地,本实施方式中提到的相关技术细节也可应用在上述实施方式中。
[0053] 本发明还提出了一种基于异构流水线的高效通用处理器执行系统,其中包括:
[0054] 模块1、将通用处理器中计算部件整合为计算单元阵列,基于该计算单元阵列构建顺序执行的计算流水线;并基于该通用处理器中通用部件构建乱序执行的通用流水线;
[0055] 模块2、获取待执行指令,通用处理器中译码模块识别该待执行指令属于通用指令或计算指令,若该待执行指令属于通用指令,则执行模块3,若该待执行指令属于计算指令,则执行模块4;
[0056] 模块3、将属于通用指令的待执行指令发送至该通用流水线,得到该待执行指令的执行结果;
[0057] 模块4、将属于计算指令的待执行指令发送至该计算流水线,得到该待执行指令的执行结果。
[0058] 所述的基于异构流水线的高效通用处理器执行系统,其中该通用指令包括定浮点运算指令、逻辑指令、访存指令、比较指令、分支转移指令、控制指令、系统指令,和,第一同步与数据交换指令;
[0059] 该计算指令包括向量计算指令、向量访存指令,和,第二同步与数据交换指令;
[0060] 该计算流水线和该通用流水线共享一个同步与交换模块,通过该第一同步与数据交换指令和该第二同步与数据交换指令实现同步与数据交换。
[0061] 所述的基于异构流水线的高效通用处理器执行系统,其中该通用流水线采用面向指令并行的多发射、深流水和乱序执行的通用处理器流水线结构;
[0062] 该计算流水线,采用面向数据并行的单指令多数据流的专用处理器流水线结构。
[0063] 所述的基于异构流水线的高效通用处理器执行系统,其中该通用处理器包括门控电路,用于控制该计算流水线的启动和停止;
[0064] 所述的基于异构流水线的高效通用处理器执行系统,其中该通用流水线通过一级数据高速缓存访问存储系统,该计算流水线通过二级或者最后一级高速缓存访问存储系统。
高效检索全球专利

专利汇是专利免费检索,专利查询,专利分析-国家发明专利查询检索分析平台,是提供专利分析,专利查询,专利检索等数据服务功能的知识产权数据服务商。

我们的产品包含105个国家的1.26亿组数据,免费查、免费专利分析。

申请试用

分析报告

专利汇分析报告产品可以对行业情报数据进行梳理分析,涉及维度包括行业专利基本状况分析、地域分析、技术分析、发明人分析、申请人分析、专利权人分析、失效分析、核心专利分析、法律分析、研发重点分析、企业专利处境分析、技术处境分析、专利寿命分析、企业定位分析、引证分析等超过60个分析角度,系统通过AI智能系统对图表进行解读,只需1分钟,一键生成行业专利分析报告。

申请试用

QQ群二维码
意见反馈