能够填补我们中高端微处理器的空白——高性能通用处理器芯片

能够填补我们中高端微处理器的空白——高性能通用处理器芯片

我是郭海峰(热链联合发起人),向大家汇报一款来自德国的高性能通用处理器芯片。

这是一款具有颠覆性创新价值的,能够广泛应用到云端的服务器、个人计算机、包括移动通信、互联网大数据、人工智能,还有边缘计算等一些领域。那么这款产品能够适用的应用范围十分广阔,经过【中国工程院院士,中国科学院微电子研究所,包括清华、北大的一些教授】做过一次评审,认为这个芯片是能够填补中国在中高端微处理器的空白

对于中国半导体处理器这一块领域的行业水平,其实是远远落后于美国的,我想今天在座的各位,包括这个领域的专家以及各位投资人,你们都很清楚,我们中国长期面临着缺芯的局面,然后中国半导体方面每年的进口金额,是在每年2000亿美金,进口的额度已经远远超过石油——这种命脉级的进口商品。

那么今年沸沸扬扬的美国全面制裁封杀中兴通讯,美国所有的高科技公司不再向中兴通讯提供任何芯片,这几乎导致中兴突然死亡,接下来的图片是美国国务院公布的一个消息。

能够填补我们中高端微处理器的空白——高性能通用处理器芯片

在去年中国政府支持一个私募基金Canyon Bridge,计划已13亿美金去收购美国FPGA的厂商莱迪斯Lattice,这个被特朗普政府否决了,其实Lattice只是FPGA厂商的第三名。

大家可以通过链接去了解下判决。(复制链接到浏览器)

https://www.hpcllp.com/cases/PACT%20Final%20Judgment.pdf

今天我给大家汇报下欧洲航天局他们做的一块芯片叫HPDP(High Performance Data Processor,高性能数据处理器)。大家看这页照片,

能够填补我们中高端微处理器的空白——高性能通用处理器芯片

这是2016年6月份的时候在瑞典的哥德堡,由欧洲航天局的芯片处理专家,来自于空客的Diego做的汇报,是专门用来监测太空碎片的一款人工智能的处理芯片,基于粗粒度可重构阵列架构的处理器,这个架构实际上是Martin 15年前的技术,而我们今天晚上汇报的这项技术呢,会远远比欧洲航天局在使用的芯片更高级,这是2016年的PPT,欧洲航天局是在去年2017年完成流片的。

那么欧洲航天局实际上规划的系统,是包括一些地面和太空当中,一些在轨的卫星,其中有一种卫星叫SBSS,用于监测太空当中各种碎片。这幅图描述了欧洲航天局整体的规划。

能够填补我们中高端微处理器的空白——高性能通用处理器芯片

这幅图是整个太空碎片监测芯片整体的数据流,体现各种算法,主要使用了人工智能的处理。

能够填补我们中高端微处理器的空白——高性能通用处理器芯片

欧洲航天局太空监测的卫星主要采用光学的方式获取图像,人工智能的处理方法来监测的。

这幅图是一个硬件的设计图,基于Martin 15年以前,当时在德国的Pact XPP公司研发的这款产品,到现在都可以满足欧洲航天局的使用要求。

能够填补我们中高端微处理器的空白——高性能通用处理器芯片

科技部曾经组织过一次专家评审,对Martin当前最新的技术进行汇报。刚才向大家展示的欧洲航天局的芯片当时还叫做粗粒度可重构阵列,大家也留意到了它的设计图里面是没有CPU的,也就是说它本身既是主处理器,也是协处理器。

但是他15年前这个技术,当时指令处理只是基于顺序的,没办法做到乱序处理的。经过最近几年,Martin他们的研发,目前已经实现了乱序处理和循环加速,今天后面会把技术特性给大家更加细致的汇报。

那么中国科技部组织论证会议,当时由中国国际技术转移中心以及亚创联进行合办的。

能够填补我们中高端微处理器的空白——高性能通用处理器芯片

我向大家介绍下合影当中的人,从最左侧是亚欧科创董事长郭巍(热链联合发起人)。第二个是我本人郭海峰(热链联合发起人),第三个是叶晓城

,他是Marvell美满电子的前高工。第四个是清华的吴晓明教授,第五个是中科院微电子研究所主任黑勇主任。右边这位女士是德国处理器厂商英飞凌Infineon在中国区业务的创办人。

她旁边的是航天772所的姚全斌书记,航天772所非常出名,我们北斗卫星上的芯片就是他们生产的。因为它要用的芯片和普通的芯片不一样,太空中射线很强,普通的CPU会被太空射线击穿,他们的芯片都要进行防辐射加固。再往右的是北大的陈钟教授。然后他右边的是今天要介绍的技术发明人Martin Vorbach。

最中间的是中国工程院院士、清华教授金国藩院士。在他右边的是PeterWeber,是英特尔欧洲区业务的创办人,最近也是积极的国际投资人。在他右边满头白发的老人也是中国工程院院士、北京理工大学教授周立伟院士。在周院士右侧是

骆东淼,是首控集团总工。旁边的这位女士是韩国世宗汽车研究院的李慧珠。右边数第三个是中国国际技术转移中心的黄平主任(热链技术成果转移产业顾问 / 团队顾问)。右边数第二个是俄罗斯的亚娜Yana女士。最右边的是戴姆勒的前高级副总裁Hans-Peter,刚刚退休,最近为欧洲公司做咨询的服务。

在这次会议上,各位专家认为Martin的最新技术拥有国际领先水平、非常高的成熟度,能够填补我国在中高端微处理器的空白,提升中国芯片产业的竞争力,对于经济社会意义重大。

在这次会议上,我作为Martin的翻译,用中文向大家汇报了这项技术。今天晚上的讲解也请大家放心,我要汇报的内容都是经过院士、教授审核过的,我会为这次汇报内容的真实性、准确性负责。


到底这是一项什么样的技术让中国顶尖的教授、院士非常认可呢?


我先要从芯片行业现状讲起,我们当前生活的时代是一个异构的时代,也就是说整个处理器是一个片上系统SoC,就是把不同的内核,例如CPU、GPU等不同内核,采用不同架构内核,组装到同一款芯片上,从而能够让不同内核完成各自擅长的工作任务。

例如,英特尔以168亿美金收购Altera,是FPGA的厂商,其实是因为英特尔的CPU在一些重要的一些算法面前无能为力,表现太差了,就要采用异构的芯片来提高速度。比如中国的科大讯飞,据我了解的相关报道,其人工智能处理方面就采用了英特尔CPU+ Altera FPGA异构的体系。

能够填补我们中高端微处理器的空白——高性能通用处理器芯片

今天给大家演示的芯片就是典型的异构芯片,这款芯片来自于华为,是华为的子公司叫华为海思。他们生产的麒麟970的芯片,因为很多人都会用到这款芯片,比如大家用华为Mate10,P10手机里的芯片就是麒麟970。

像这款芯片,华为利用它在营销方面取得了很大成功。

但是我们要看一下这款芯片里面的结构,我们会留意到它其实是用了8核CPU,麒麟970是采用了4个ARM公司的Cortex-A73内核,4个是Cortext-A53的内核,共8个CPU核。然后使用了12个GPU核。然后又集成了一个NPU,他们对外宣传叫神经网络的处理器,这款处理器上面的CPU、GPU来自于英国的ARM公司,MPU来自于中国的公司叫寒武纪, 他们生产的一款ASIC的人工智能芯片。还用了一个图像处理的数字信号处理的芯片。

那么这款芯片虽然华为在营销方面做了很多的文章,也为华为在芯片的自足提供了坚实的基础,比如不用再买高通的芯片了。

因为它能够在片上系统上能够做到很好的集成,

但是反过来说这能代表未来吗?

你看这款芯片里面集成了四种内核,8个CPU,12个GPU,一个神经网络的NPU芯片,DSP数字信号处理的芯片,这种异构的架构体系,内核彼此之间进行一些通讯,这里面就不可避免的遇到异构存在的存储墙的问题,还有编程的复杂度,比如说CPU用一些C语言进行编程;GPU用OpenCL进行编程最方便;NPU寒武纪有一些单独的人工智能指令,针对神经网络所需要的一些指令等等情况,为软件编程带来很大难度。

那么我们想想有没有一款芯片结构,不需要这么多异构的核,用同一种类型的核起到同样的作用呢?

第一,能够起到不同内核的高速性能处理的表现;

第二,统一的内核架构,支持指令集,可以像C语言一样简单进行编程。

那么这就是我们今天汇报的体系叫GPPA(General Purpose Processing Array, 通用计算阵列)。刚才我讲的华为海思的异构芯片,我认为这不是未来。

未来的话应该是用统一的内核,来起到各种异构核同样的处理能力,又具有良好的简单编程特性,又能克服多核系统存储墙问题造成的性能瓶颈。

能够填补我们中高端微处理器的空白——高性能通用处理器芯片

这张图给大家介绍一下,目前市场上主流的处理器划分方式,从左往右看,左侧的GPP通用处理器,特指超标量的CPU,它的灵活性最高,但是运算处理的能力及能耗比最低,可能很多人对区块链、比特币挖矿的情况比较了解的话,比特币最早的时候就是用普通电脑CPU来挖矿的,随着矿工的增多、计算算力的提升,CPU很快的在处理能力上跟不上了。

比特币先用CPU,后面用GPU,现在比特大陆用了些ASIC的芯片,ASIC芯片处理性能最高,但是它的应用性、灵活性最差;然后之前提到CGRA的概念,包括欧洲航天局使用的芯片,主要是德国的Pact XPP公司为代表的。

能够填补我们中高端微处理器的空白——高性能通用处理器芯片

那么今天晚上要介绍的内核叫GPPA。这款芯片大家可以看到两个特征。

一是多态性,同一内核在执行特定计算任务时,能够呈现并超越,超标量CPU、DSP、GPU和FPGA的运算特点和性能优势。换句话说这种内核可以在执行不同计算任务时呈现出不同内核架构的特点,从而实现全面替代。

二是同构性,处理器单个内核GPPA是若干通用处理单元所构成的阵列,支持同构方式来组成多核SoC芯片。正是因为多态性和同构性决定了这款芯片不仅仅是解决中国高性能CPU缺失痛点,而且这款芯片可以同时替代GPU、DSP、FPGA这些异构的芯片。

或许有一些投资人会问,你这么说很狂妄,是不是我理解错了。我可以很负责任的告诉大家,我汇报的内容都是科技部组织论证会议上全部都谈论过的。

我后面会详细给大家讲,为什么我们能够做得到这种同构、多态的特点,从而实现对于不同内核的全面替代。

然后这个GPPA叫General Purpose Processing Array 通用处理阵列。它其实是传统的CPU和CGRA两相结合的新颖的架构,很多CGRA处理器当协处理器时是不支持指令的,主要是一种构令的概念,对于一些基础的门级器件在上面做成Network,形成不同的构令,还会有一些门阵列的信号处理层。在GPPA里面这两项已经不需要了。

能够填补我们中高端微处理器的空白——高性能通用处理器芯片

那么新增什么呢?第一是基于指令的发射机制,可以全面的支持CPU指令。第二是实现单时钟周期内的多指令发射,目前最好的CPU就是4发射。我们这边可以实现更多,在讲同步多线程的时候也会详细的进行汇报,它有自动化的单元寻址,自动化阵列网络的设置,这里面也有一个隐式流水线的一种概念。

和CPU相比第一个去掉了保留站,因为一般的CPU在指令发射的时候,把指令发射在保留站里面的,在GPPA里面不需要这个。第二个是重排序的缓存,解决一些不同指令之间数据依赖性的问题,它要借助于一个大的寄存器堆,来缓存不同指令之间传递的数据,而GPPA不需要,为什么不需要?是因为它不同的处理单元之间,它是通过一种自动化阵列单元互联的方式,一个指令运算完成以后,直接它的输出结果输送到下一个指令的处理单元上,而不是缓存到重排序寄存器堆里面,然后等待下一个指令从里面进行读取,在性能方面带来非常大的优势。

和CPU相比的话,GPPA的寄存器堆是用阵列的资源来实现的,不需要专门建立重排序缓存区,然后基于阵列的方式来实现保留站和指令窗口的方式。然后后面都会有相应的一些例子来说明如何实现的。

我们知道保留站和重排序缓存或者说一个CPU,其实现在它的芯片面积上,90%都被浪费了,只有10%真正用于处理的,后面有一副图来详细的去介绍这个特性。

总结一下:GPPA是CGRA和CPU的这么一个结合体。GPPA它是从一个加速器为基础的,在支持乱序处理和循环加速的优势下,全面支持这个指令集,从而拥有了和传统的超标量的CPU相比的话,拥有了很大的性能优势。

能够填补我们中高端微处理器的空白——高性能通用处理器芯片

大家也可以看下这幅图片,这幅图片里面就是讲这种新的架构。

它的主要架构是什么特点呢?

大家可以看右侧的这幅图,这里面最下方是一个个不同的处理单元,它们共同组成一个阵列,能够非常快的进行处理。通过这种方式,第一个实现了循环的加速,第二个实现了乱序的处理,第三个基于阵列能够实现同步的多线程,然后不同的内核之间组成同构的,而不是异构多核的片上系统。这种架构第一个计算性能得到非常大的优势,比CPU快很多。

第二个是硅片面积,都是同构的芯片,和Intel的多核CPU相比,取消掉了重排序的缓存去以及保留站,对于这种情况下整个芯片的面积得到非常有效的利用,芯片面积决定了制造成本,制造成本会更低。

第三个能耗的问题,针对循环加速来讲,在能耗方面等到很大的优化,还有一个方面待会也会讲,在多核之间的高速Cache采用树形的总线结构,目前来讲主流用的,目前来讲都是一种环形结构的,那么树形的方式Cache能够对于核间的存储墙问题得到一个极大的改善。

这副图片已经非常准确的讲清楚了,我刚才的那句话,为什么这款芯片能够全面的替代CPU、GPU、FPGA、DSP以及ASIC的一些芯片,原因的话就是它具备这几个特性。

能够填补我们中高端微处理器的空白——高性能通用处理器芯片

这幅图更加方便的去讲解了一下,就是这款内核它具备多态性,颠覆了异构的SOC 存在的各种各样的痛点。

最左侧的这幅图实际上我们是和英特尔的Haswell做了对标,这款GPPA是如何呈现出超标量处理器的乱序处理的特点,这块我要去交代清楚,GPPA在取代不同内核的时候,其实并没有在硬件层面上模仿任何人,谁的都没有去模仿,而是因为它是一种阵列,大家看中间那副图。

不同的处理逻辑,由阵列当中的不同单元来承接计算任务的。它不同的单元之间可以通过阵列的网络连接,能直接连接在一起,从而实现时序的调度,也就是重排序缓存和指令窗口。第二个是它的数据不需要像一个公用的寄存器堆,不像重排序缓存区里面那样反复读写数据,从而提升性能的处理,也实现指令间的并行。

那么首先讲一下循环加速模式,为什么在技术性能和能耗方面都具有相当大的优势。因为大家都知道目前CPU架构特点是超流水线、超标量、乱序处理的内核,CPU具有以上三个特点。

但是哪怕是最先进的CPU,包括英特尔。他们的每一个指令都要经过取指、译指、发射、执行、数据写回寄存器堆等等,同一个指令划完成不同的环节来进行处理,从而实现一个超级流水线的概念。因为超标量是指令间的,超流水线指的是同个指令之内的。

那么这种情况下,左侧饼图,那么基准的CPU的能耗是这么分布的,取指(取出指令)和译指(翻译指令)。因为哪怕你软件编译出来的二进制机器指令,也是不能被CPU执行的,需要CPU进行一个译指的操作,还有从指令的高速缓存里面来进行指令的读取、数据的高速缓存、数据的通道以及寄存器堆的读写。

能够填补我们中高端微处理器的空白——高性能通用处理器芯片

大家可以看到第二幅图,在第一幅图的时候我们描述的是一个循环,学过编程的人都很清楚循环,在这里面同一段代码会被反复执行,比如循环多少次。

为什么说循环加速很重要呢?

因为在编程的时候你编好的程序,主要是以循环的方式来进行执行的,比如说很简单的字符串的比较,现在都是64位的处理器,那么很长的字符串就要通过循环的反复进行字节比较。那么CPU在同一个循环的不同迭代处理时,取指、译指、发射这些工作全部都要做一遍,哪怕是同个指令被执行几百上千上万次,整个流水线都要全部跑一次。

而GPPA这种处理器就不用了,在循环的第一次执行的时候,就会把这些指令发射到阵列里面不同单元上,用阵列处理单元。一旦发射后,在循环加速的模式下,它是不会从单元中退出来的,然后这条指令就驻守在这个单元里面,等待下一次循环的执行。

这种情况下可以看一下第二幅图,这样子的话,第一个我从高速的指令缓存里面取指不需要了,可以关闭掉,因为我所有指令已经发射到阵列里面了,取指根本不需要。

第二个我这边每一步执行完后,我也不需要把我的数据再写回到寄存器堆里面,这是不需要的。因为每一个指令,我的输出正好是作为下一个指令输入的时候,就会通过一个网络连接,在两个不同的处理单元之间建立这么一个电路,所以说前面的指令完成了以后,它的输出直接作为下一条指令的入参,就传递过去了。

这种情况下在循环加速的情况下,其实大家可以看得到整个的指令处理工作就不复存在了。那么这种情况下,它就呈现出来像ASIC芯片那样,针对这个循环体的算法,它把整个硬件结构进行一个优化,所以说可以像一个ASIC芯片一样达到非常高的处理能力,这就是我们说的循环加速的处理方式。

驻守在不同单元并通过硬件来进行直接连接,数据依赖性的时序处理也不会像普通的CPU那样做个重排序缓冲区,用高速缓存来调度不同指令处理,这就是一个循环加速。

这种情况下,至少50%的能耗所需要的工作就会暂时性的被停用掉。

你的循环是执行1万次,只要在第一次的时候处理指令,后面的9999次再也不用在指令的方面浪费你的性能和你的功耗。大家不要小看这一点。我看到一份数据,英特尔的芯片50%的能耗是花在了解析指令上,

因此英特尔的芯片为什么没办法用在手机上呢?

就是因为它是复杂指令集CISC,能耗太大,你的手机电池是满足不了它如此浪费的,所以这就是在手机方面干不过ARM的一个重要原因,ARM是精简指令集RISC。

能够填补我们中高端微处理器的空白——高性能通用处理器芯片

这张图片讲的是乱序的处理,乱序处理指的是不同指令之间的并行。刚才我们也讲到指令发射,普通的CPU一次只能发射4个指令,进入保留站里面去,指令发射进去以后能不能执行呢。

第一个它受到资源限制,因为我们说CPU是电脑的大脑,在CPU里面真正执行计算的叫做算术逻辑单元ALU。只有这个才是真正去执行计算任务。因为普通的CPU芯片其实算术逻辑单元非常少,只有一行,所以它能够同时并发处理的指令不是很多。

第二个是依赖于它的时序关系,比如说1个数要先加1再除以2,那么你在执行的时候就不能先除以2再加1,这样的话你的计算结果就是错误了,并不符合你的算法的要求。

能够填补我们中高端微处理器的空白——高性能通用处理器芯片

所以说硬件在指令处理时候呢,就要根据时序上的要求。也就是说,我上一个指令完成了以后,要利用它的输出结果来作为我下一条指令的输入参数。那么这种情况下,就决定我只能在刚才那条指令后面才能处理,哪怕是现在还有很多算术逻辑单元被浪费了,也必须等到前面的指令执行完毕了,以后才能进行处理。

但是假如是说我两条指令彼此不相关,各自所需要的输入参数也都好了。这种情况下就可以进行并行处理了,所以说目前来讲CPU都是支持乱序处理的,但是它使用的代价就是我们刚才讲用到一个重排序的缓存区,要有一个指令之间的调度,还要有一个寄存器的组,就会浪费大量芯片的面积。我后面会有一幅图来讲。

其实大家去看英特尔、龙芯的芯片,86%的区域是与计算无关的间接开销,就是内存管理的一些东西,而这个GPPA的内核架构里面的运算单元是粗粒度的,每一个阵列单元,指令调度器、寄存器和重排序的缓冲区相当于3合1了,指令之间的依赖性是通过一种网络把不同单元互联在一起的,就没有寄存器组的间接开销。

换句话说,在GPPA里面不同单元之间,实际上是用了一个空间换时序的概念,它的电路物理连接就解决了时序的问题。

举个例子来说明,GPPA的内核是怎么样乱序处理的。比如说这个指令,可以看左侧的这张列表-指令发射单元,模拟英特尔X86体系的这套指令。我们可以看到右侧是一个4*4的16个处理单元,这里只是演示。

我们计划做的服务器芯片内核,打算做的是256个处理单元。这里面的话呢,每一个时钟周期之内都有指令呢,都可以往阵列里面空闲单元进行发射,一旦里面的数据,即输入参数都就绪了,那么这个处理单元就会处于一种激活状态,这样子的话输入参数已经就绪了,他就可以立即执行,不需要从别的地方进行调度,又不用请求其他的运算单元,因为算术逻辑单元就集成在这个处理单元之内。

橙色的就是属于一种等待的状态。打个比方,上条指令执行完了以后,数据从上一条指令单元,传到这个单元格子里面就可以进行执行了。比如灰色是处于一种已经处理完了,就可以处于一种结束的状态,然后新的指令可以发射进去,就是这么一种特点。

能够填补我们中高端微处理器的空白——高性能通用处理器芯片

给大家讲一下同步多线程的问题。我们GPPA架构的特点,它的运算基于阵列,里面的运算处理单元非常多。比如说256个,这种情况下直接给它带来非常大的、同步多线程SMT的性能优势。我们知道现在所有最好的CPU生产厂商英特尔,只能支持单核双线程;超微公司AMD从前年开始,最新款芯片的单核,才从一个线程变成支持两个线程。

这种情况下,普通CPU很难去提升了。因为第一个,一个指令周期之内只能同时发射出4条指令,这4条指令又要划分出来更多线程,相对来说不是很合适;第二个,算术逻辑单元太少,芯片90%都是内存,算术逻辑单元太少想实现同步多线程也不可能,而GPPA单核能够支持16到32个线程。打个比方,1个线程用的8到16个处理单元,我们在256个情况下实际上可以达到30多个线程,远远超过现在任何一个CPU厂商的工作模式。

而且在异构的情况下,能够很好的解释为什么GPPA能够克服存储墙的问题,存储墙指的是执行一个计算任务,比如有的任务GPU能够很好执行的,有的就很头疼;能够用得到的指令还是用GPU,用不到的情况还是用CPU处理。不同的内核之间要传递一些参数的时候,因为它们不在一个核里面,就需要一个多核之间的总线结构,通过它来进行数据的传递,这种情况下就会导致存储墙的问题。

大家可以自己去查询一下存储墙的问题。这个存储墙问题,对于GPPA就不存在这个问题了,是因为这个处理单元的一部分是可以执行CPU的任务,另外一部分单元其实是在同一个核里面就是执行了以前GPU的任务,现在这个同构核就可以实现了,可以重构GPU的样子。

这种情况下,它们之间的数据通信,就不会存在存储墙的问题了,就压根用不到总线,同一个内核里面不同的单元可以通过网络连接把它的输出结果直接作为下一条指令输入的,这种情况下和普通CPU相似,但处理GPU任务效率上有很大提升。那么这样子的话,所有的处理单元都会得到非常良好的运用,对于多并发任务的处理都会处理效率非常高。

讲到这里,我们一起回顾一下,指令间并行处理的能力。打个比方,第一个,GPU是典型的一种单指令多数据的处理,精度高64位,而GPPA也可以实现单指令多数据SIMD,在这种单一指令多数据处理的方式,这里面64位可以同时供8个8位数据工作。这种情况下,人工智能对精度要求并不高。

第二个,可以用很多指令进行指令间并行,有充足的处理单元256个,在乱序处理时可以并行的指令非常多。因为实话说,哪怕你算术逻辑单元比较多,但是你每个指令周期都只能发射4条指令。

像在这种情况下,你也没办法处理更多的并行处理。而这边不一样,它在循环加速的时候所有的指令都是存在那个地方的,这种情况下,完全可以相当于一个数据驱动的处理器一样,实现很高的指令间并行,在循环加速的时候处理的能力。再到现在同步的多线程,在软件的实现上能够把原来不同的内核在相同内核里面执行。

能够填补我们中高端微处理器的空白——高性能通用处理器芯片

存储墙问题?现在英特尔在使用一个环形结构,也就是说在L1以上就是通过环形方式。这也就导致一个问题:我有一个数据要进行更新的时候,我在某一层里面进行更新的时候,它需要把整一层的数据都要在不同的层重新复制,所有的数据都要在环形来进行复制。

在这么一种情况下,更新缓存时间的开销和数据的处理量就会非常大,而这边是因为树状的总线结构,比如说是4叉树或8叉树,L1以上的会用到树状,L1以下的在内核里面,把一个数据内容在内核间处理。

根据离核近的数据划分出读和写哪个多,是读大于写,还是写大于读,还是说读与写是比较平衡的,根据不同的策略通过多叉树的方式,来进行寻址,读比较多的数据会把它放在树中较底层内核比较近的地方,你就可以就近进行读取。但一个数据大家很少去读它,不同的核之间都要去写它,这种情况下就会把它放在更高层。

这种情况下多核写数据,都写在同一位置上,不需要频繁的在不同层之间数据复制来维持它的同步,时间的开销非常大,带来的好处体现在数据传输、耗时方面。右侧GPPA和英特尔有个比较,英特尔是指数性上升的,这边是线性的上升。

能够填补我们中高端微处理器的空白——高性能通用处理器芯片

这幅图是英特尔Haswell最近几年新的设计,绿色的才是真正执行指令处理的单元,其他红色的区域全部是没必要的、间接的开销。整个芯片90%的硅片面积都已经浪费掉,而且能耗高,把数据搬来搬去的,非常消耗能量,非常耗电,处理性能却有很大幅度的下降。

能够填补我们中高端微处理器的空白——高性能通用处理器芯片

能够填补我们中高端微处理器的空白——高性能通用处理器芯片

这幅图就是多态性的描述,GPPA是多态的,可以同时替代CPU、GPU、DSP不同的内核。可以对标CPU,绿色区域是它的ALU算术逻辑单元,可以重构到GPPA内核系统里面,寄存器堆、保留站、重排序的缓存区,GPPA都可以良好地映射过去。而且这里面有一个突出的循环加速的能力,这么多的处理单元。

它所带来处理上的更多优势,包括同步多线程的一种能力,都会比CPU在性能方面和能耗方面得到很大的改进。因为循环加速这种模式又克服了,例如FPGA、CGRA等没办法通过指令来编程,典型的如FPGA,FPGA是不支持指令的。它必须写在到构令里面configuration files,通过构令切换电路的。有的时候构令的切换,速度都会到秒级,这种情况处理起来就很耗时。

能够填补我们中高端微处理器的空白——高性能通用处理器芯片

这幅图讲述的是GPPA,如何去对标DSP数据处理的芯片内核结构的,对标的是亚德诺公司的blackfin。

能够填补我们中高端微处理器的空白——高性能通用处理器芯片

这幅图讲的是GPU的一个案例。GPU里面也有一个阵列的概念。典型的处理模式是单指令多数据SIMD的处理,不同层级的处理单元之间,跨层也是属于硬连接的。这种结构在处理模式上,是一个典型的循环加速。

GPU尤其是英伟达,他们提出一种概念叫GPGPU,就是通用型的GPU,也就是能够良好的支持全指令集,但遗憾的说GPU从来没有达到CPU良好灵活性。GPPA在处理的时候也可以呈现出来它特有的处理特点。GPU在处理一些非单一指令数据的算法的时候,还是非常的麻烦的。而最新GPPA的内核,都能够良好的支持起来。

能够填补我们中高端微处理器的空白——高性能通用处理器芯片

这就是FPGA的样例。FPGA就是我刚才讲的时候,中国打算以13亿美金买一个Lattice的,FPGA厂商的老三,美国直接否决掉。这款芯片对标的是Xilinx,它的处理能力,在GPPA中也可以完全实现出来,我们GPPA最早是一个CGRA,和FPGA这两项技术都是属于可重构计算的技术,FPGA俗称是精细粒度,而GPPA或CGRA是粗粒度。

主要区别:FPGA是门级的,而GPPA当中,整个算术逻辑处理单元、指令调度、输入和输出,整个数据的通道都是完全可以重新配置的,它是属于不同的处理单元之间进行重构,每个单元都是比较粗,比如说我们刚才讲到的的,单核是256个处理单元。

这款芯片,它是一种多态同构的芯片。这种芯片不仅仅能够改变我们中国的CPU中高端芯片的缺失,严重的落后于ARM、英特尔,在进行比较的时候,这款芯片完全全面支持指令集。第二良好的乱序处理。

这款芯片不仅仅替代CPU,它可以同时替代DSP、GPU、FPGA这些不同的异构的芯片,未来设计的芯片是可重构的,异构的方式不再需要,所以具备替代的能力。

当然也不是绝对的替代,例如GPU,我们自研的CPU出来以后还是需要显卡,只是不需要加速的显卡;例如FPGA,所有处理器的设计,在逻辑设计的过程当中都会用FPGA来进行功能上、逻辑上的验证,这种情况GPPA是不能实现的,它只是在处理能力上更好。

再复述一下这款处理器架构的特点:第一个是全面性的异构核可替代,第二能耗更低,第三芯片的面积更小,12寸的硅片可生产出更多的芯片,单价低,处理性能好,功耗低、编程的简便性。


分享到:


相關文章: