一周前我们在美国总部那边举办英特尔研究成果开放日活动,邀请了世界各地的行业媒体前往参观,其中还特别邀请了几位中国IT业的记者出席。参加了这次活动的同事回来后对我谈到了现场的情况,说记者们对技术细节都很感兴趣,往往不满足于知道是什么,更要了解为什么。在现场开放的几个小时里,技术人员们根本没有空闲的时刻。结束后记者们还抱怨说时间太短了。是啊,总共五十多个展示,据说记者们除了专访外只有三个小时看展示,走马观花也不太够啊。
我可以在这里跟大家讨论一下一些热门技术问题。关于多核技术,有热心读者在留言中谈到多个内核之间的通信机制和内存带宽的问题。我在这里稍作阐述:
关于多核的片上互连(interconnection)
我们知道多核系统是在一个芯片上集成有多个处理器内核,这多个内核之间的通信要靠片上互连系统来实现。设计时,要考虑三个因素,即功耗、芯片面积以及设计复杂度。
先说功耗:互连网络是个耗电大户,可以消耗整个芯片供电的三分之一!如增加互连网络带宽,就会增加能耗。所以一方面要考虑实际带宽的需求,也要考虑相应的电源管理技术方面的要求,达到按需供应,以节约电能。
芯片面积:集成电路的特点就是有大量的晶体管备用,可以构成各种电路。互连网络就是由芯片中的一部分晶体管构成的,在芯片上占用的面积可超过内核晶核面积的五分之一。此涨彼消,用了太多的晶体管作互连网络,用于计算功能的晶体管数量就会减少。我们必须找到一个合理的比例,不能牺牲太多计算功能区域,也就是说互连网络的片上面积是有限制的。
设计复杂度:所有的电路设计都是要经过优化的。显而易见,简单的电路容易进行优化,复杂的电路在进行优化的时候难度就增大。在各种类型的网络结构中,总线(BUS)最简单,但一次只能收或是发一个消息。双向的环结构(Ring)可以做到同时收发,链路速度也快,但是内核大量增加后就不经济了,因为只有一条路可走。我们增加维度,2维的网状网络(mesh)可以处理大量并发消息,并且有大量的不同路由可供选择。如果继续增加维度,在交叉开关矩阵(Crossbar)的结构下,所有的核均可与其他核同时通信。我们看到,高维网络有更好的架构性能,但也更难优化设计。
如何选择合适的互连方案呢?我们认为,应该为实际应用提供合适的带宽。在万亿级系统中,芯片整体带宽要达到每秒万亿字节的水平,链路带宽要在数百GB/s。我们的研究人员在基于性能、晶核面积和功率等相关考虑因素后,确定了2维网状网络作为万亿级芯片的片上互连网络方案。这个方案是连接多核的方案中,统筹性能和电源效率的最佳方案。
关于多核系统的内存容量和带宽
我们的解决方案是基于硅核植入(Through silicon Vias)技术的3维内存堆叠。基本原理是将内存晶片和CPU晶片叠放在一起,电源和IO信号从内存穿过到达CPU。每个内核都与3维堆叠内存直接相连。在我们的80核研究用芯片中,每个内核有256 KB SRAM内存,芯片上共有8490个硅核通道。由于每个内核都与3维堆叠内存相连接,系统同时满足了大容量和低延迟的要求。该技术已在小批量生产中实现,我们的研究人员正在研究如何推广到大规模量产的生产工艺。该技术出现在产品中只是一个时间问题。



我有些问题。。
请问个人电脑的用户真的有如此高的速度需求么?
这次研发日确实很过瘾,我们几位记者没有时间全部看完所有展示,这是因为每一个展示都非常之诱人,在专注听讲和问问答答中时间很快就过去了.
非常感谢英特尔能够给我们这次机会,让我们接触这些可能在未来数年内对计算带来很大改变的技术.这不同于IDF将重点放在了已经在开发或即将问世的产品和技术,而是涉及了更前瞻的技术.
我们将很大一块时间放在了万亿级计算上.我想请问杜博士,未来英特尔的多核处理器上,固定功能单元是不是就是内置型的硬件加速器,另外,基于硅光子技术的总线将来是否会与万亿级的系统同步推出?还有,我个人对Ct也很感兴趣,希望有机会能就此与ICRC的相关技术专家进行更多交流.
to biz4cn
十年前比尔盖子还说“我相信640KB内存基本可以满足所有人的要求“呢,凭什么就能预言个人电脑没有更高的要求呢,要求是无止境的,举点实际的例子吧,未来的虚拟现实游戏,人工智能,语言,动作识别,哪样不是需要极为强大的计算能力的,到那时你再来看这句话,未免就觉得有点可笑了吧
象兵你好!很高兴你们在研发日有这么多获,也非常欢迎来我们中心与技术人员进一步了解相关的研究。
关于您的问题,硬件加速器是目前在多核方面的一个研究方向,但并没有限制在这一个方向上。硅光子技术目前还处于非常基础的研究阶段,而万亿级的系统也只是一个研究原型系统。至于将来相关产品的推出要看当时的研究进程状况,目前并没有一个关联的时间表。”
每个内核只有256 KB SRAM内存,80个内核加在一起也只有20M,如何提升和主内存之间的带宽?这些小内存速度如何?作用大吗?为什么不是1级缓存或2级缓存?大计算势必牵涉到大的内存数据,比如一个10GB的经常交换数据,如何对这10GB数据进行高速访问,使内存读写不成为亿万级计算的性能瓶颈?
陈昞睿您好!您指出的内存通信问题很关键。的确,在万亿级的应用中,也必须有相应的万亿字节的带宽。我文中提到的每个内核的内存,是用于核内指令和数据的存储区。您所指的主内存,是另外的一个晶片,与多核晶片叠放在一起(三维内存堆叠)。每个内核都与内存晶片连接,数据通信则由片上互连网络负责。
谢谢杜江凌楼主!我还想问一下,今后内存晶片和多核晶片叠放在一起,是否也是一种整合?是把内存整合在CPU里,还是把CPU整合在内存上?这样的内存必须整合CPU生产,还是能够单独由各内存厂商生产提供呢?
陈昞睿您好!我谈到的是我们在多核研究的原型芯片中使用的方案,至于若干年后在产品所涉及的生产问题上,目前还无法评论。在三维内存堆叠的方案里,内存晶片叠放在多核晶片上,它们是封装在一起的,否则也很难达到万亿级的内存带宽。
再次感谢楼主!我听说显卡(GPU)的浮点运算能力几十倍于CPU,GPU和显存之间的带宽也是CPU和内存之间的10倍以上,特别适合重复海量计算。现在人们正考虑把GPU的资源用于像CPU一样的通用计算,AMD也计划在未来推出融合GPU和CPU的Fusion芯片。请问Intel是否也有类似的打算?在万亿级多核计算中是否也会考虑包含GPU资源,或者GPU和显存之间的带宽模式?
陈昞睿您好!我们非常关心在未来万亿级应用的背景下,如何让我们的产品的性能满足相应的需求。我们的80核研究芯片验证了研究人员在低功耗、内核间通信能力、内存带宽、芯片设计等等很多方面的设计思想。这个系统是同构的多核系统。在英特尔中国研究中心,我们的研究人员已经开始着手研究异构多核系统的相关课题。