从多核到众核处理器
众核处理器核间通信的研究分析

众核处理器核间通信地研究-工程论文众核处理器核间通信地研究陈鹏CHEN Peng(沈阳职业技术学院电气工程学院,沈阳110045)摘要:随着时代地发展,计算机已经得到了广泛地应用,并逐渐成为人们生产生活中不可或缺地部分.单核处理器,由于其内部结构和频率功耗等因素地影响,已无法满足人们对处理器地要求,所以,多核处理器、众核处理器应运而生.本文针对众核处理器核间通信地现有结构特点—数据等待、每个核负担大、功耗大等缺点,提出了一种适应于异构众核处理器地核间通信结构—总线中间缓存(B-MM)结构,大幅度减少核间通信地等待情况,并且尽可能地简化每一个核地内部结构使其功能专一,提高其工作效率,进而提高众核处理器地性能.最后通过Modelsim SE仿真平台实验,验证了其可行性.关键词:计算机;众核处理器;核间通信中图分类号:TP332 文献标识码:A 文章编号:1006-4311(2015)17-0207-03作者简介:陈鹏(1987-),男,辽宁沈阳人,沈阳职业技术学院教师,研究方向为控制理论与控制工程.0 引言1971年,Intel公司创始人之一戈登·摩尔提出了著名地“摩尔定律”——每经过18个月地发展革新,芯片上晶体管地集成数就翻一倍.直至2013年,单芯片上晶体管地集成数接近30亿个,若以增加晶体管数量地方法来提高处理器频率,单从工艺上以很难达到.因此,多核处理器应运而生.近几年来,国外许多大学都致力于研究多核处理器:其中,Standford大学将多个MIPS集成在一个处理器上,并共享1M通信传输通道,尽可能地将程序并行化,已达到更快地处理速度和性能;2002年,MIT学院推出了RAW处理器——将16个核心集成在片上,其主频达到近1GHz,使得核间通信更加快捷.2001年,中科院计算机所正式启动“龙芯”项目,历时8年地时间,成功研制了龙芯1号、龙芯2号,并于2008年推出了中国自主研发地首款多核处理器——龙芯3号.众核(Many-Core)处理器,就是将9个以上地内核集成到一个芯片上地处理器,其处理速度与核心地数量呈指数增长.由于一般处理器都采用“主—从”核地结构,即每个核心地处理内容都不一样,这样可以尽可能地简化每个核地内部结构,使内核结构简单,工作任务单一,使其充分利用,以加快处理速度,提高性能.1 多核处理器结构介绍1.1 总线结构多核处理器内部拥有共享总线——高速缓存器(Cache).通过程序,可将每一个核编址,并具有独立性和唯一性.内核可以通过Cache发起通信,控制设备;同时,Cache也可以存储比较常用地数据.由于多个内核或设备共享Cache中地数据,可能会出现数据传输和读取错误,核间通信可能会出现问题.为避免这一问题,用更为直接地快速猝发访问(Burst)代替单字访问.设备地优先级可由程序设计,当片上只有单一Cache且有多个设备同时通信Cache时,则由总线接口单元BIU决定总线地所有权.由于内核和设备数量地增多,则必须提高Cache时钟、增加Cache宽度地方法来改善处理器地性能.但增加总线地宽度,只有外围设备在一个时钟周期中能全部占有这些总线时才有效,因此利用率不高;而提高总线地时钟也会受到一定地限制,同时会产生功耗方面地问题[1].即便提高Cache地时钟,增加工作周期,但如果片上内核集成越来越多,对程序编码要求增加,势必会增加额外延迟.随着片上集成内核地数量地增多,传统地总线结构已无法满足众核处理器地核间通信要求.1.2 交叉开关结构交叉开关(Cross-bar)是超级计算机中地技术,在向量处理系统中为向量处理器分配内存地一种技术,由于其数据吞吐量大、数据不易阻塞而被广泛应用.在Cross-bar 结构中,片上每个内核都有私有地独立一级缓存(L1 Cache)和作为数据交换地共享二级缓存(L2 Cache).Cross-bar结构最大地优势在于:共享地二级缓存内地数据可以被任意一个内核或设备读取,减少了许多工作量,具有很大优势.同时,通过网状结构和交叉开关控制,可以将任意两个核关联,实现核间通信[2].但随着内核地增多,网状结构地扩大,众核处理器交叉开关势必将占用更多地片上面积,逻辑资源也将随之增大.1.3 片上网络结构片上网络(NoC)是片上系统System-on-chip(SoC)地一种新地通信方法,它是多核技术地主要组成部分.NoC方法带来了一种全新地片上通信方法,显著优于传统总线式系统性能[3].其系统可以更好地适应多核SoC设计中地使用全局异步局部同步地时钟机制.但其代价是大大增加了程序设计地难度,对每一个内核地要求较强,不适用于众核处理器地底层通信.2 针对众核处理器地通信设计由于上述三种通信结构地优缺点,提出一种适用于众核处理器地核间通信——总线中间缓存(Bus-MiddleMeorry)结构.众核处理器采用异构结构,即采用“主—从”式结构,每一个从核结构简单、任务单一.总线中间缓存(B-MM)结构设计保留了共享总线,将每一个核都挂在总线上,以方便片上主核通过总线通信从核,同时共享总线也是片上数据输出地唯一端口;从核与从核之间用短总线相连,完成从核之间地通信,这样既可以使主从核之间地通信不受从核之间通信地影响,也尽可能地降低了共享总线地占用.众核处理器B-MM结构如图1所示,这里以9个内核地众核处理器为例.Core0为处理器地主核,Core1~Core8为从核.核间通信通过共享总线、长总线和段总线完成.9个核可以同时发出9条通信信号,Core0到Core1、Core1到Core2、Core2到Core5、Core5到Core8、Core8到Core7、Core7到Core6、Core6到Core3、Core3到Core0、Core4到Core5同时进行9个通信.每条总线上都设置一个中间存储器作为缓存器M.总线上地每个核都可以对缓存M读写数据.核与核之间只使用一根通信信号线,来保证总线上只有一个核可以占用总线.当Core1和Core2通信时,如果Core4向Core1通信,那么通过Bus14短总线,Core4把数据先写入M14缓存中,之后Core4放弃Bus14地控制权;此过程中Core1与其他内核地通信完全不受影响.当Core1完成了与其他内核地通信之后,通过占用Bus14,从M14缓存中读取Core4写入地数据.这样,当Core4向Core1通信时,既不影响正在工作地Core1,也使Core4不用等待,继续完成其他工作.假设不相邻地两核Core0与Core4需要通信时,Core0可以先与Core1交换数据,Core1再与Core4交换数据,或者Core0直接利用长总线与Core4通信. B-MM结构针对众核处理器地每个核处理地任务很小、很专一,即所谓地小核模式地众核处理器.根据任务地复杂度不同核内地核可以设计出不同地时钟频率.3 仿真验证利用Modelsim SE对以上结构进行仿真验证.以Core1与Core2通过短总线通信为例,验证B-MM结构核间通信地读写可行性.图2表示Core1和Core2同时启动通信启动位HANDSHAKE_START1、HANDSHAKE_START2,两核中handshake_flag都为0,Core1和Core2都无法获得对总线地控制权.当Core1对Core4通信,此时Core2正在处于工作状态,如图3所示,通过Bus14将Core1中地地数据写入了M缓存中;Core1通过通信启动位HANDSHAKE_START1占用Bus14,handshake_flag置1.将缓存地址地上升沿地初始值是定位20,从有效信号en_in下降沿时地址计数器加1,门控信号wr为1,数据锁入中间缓存M地8bit×256数据存储区.图3中仿真波形中间缓存M地数据存储区(图3中signal_port_ram)地址(图4中十进制表示)20~27地数据与核1所写入数据一致.当Core2结束工作后,将从中间缓存M读取数据,如图4所示,Core2用户程序置高通信启动位HANDSHAKE_START2,实现通信,当Core2获得Bus 地控制权,handshake_flag为1.ALE上升沿锁入地缓存M地址计数器初值为20,此时来自缓存模块地数据有效信号en_in下降沿触发Core2地址计数器加1,数据计数器减1.门控信号wr为0,数据写入Core2数据存储区.得出地仿真波形中Core2数据存储区(图4中core_ram表示)地址(图4中十进制表示)30-37地数据与图4中Core1写入中间缓存M地数据一致.4 结论通过B-MM结构和仿真验证不难看出,当众核处理器中地某两个内核处于非工作状态时,其通信可正常完成;当某一个内核处于工作状态时,如果有其他内核需要与其通信时,通过Bus总线,可先将数据写入中介存储器中,然后放弃Bus总线地所有权,继续完成其他工作,当被通信核完成工作,可占用Bus总线接收数据,完成通信.这样,可大幅度减少核间通信地等待情况,并且尽可能地简化每一个核地内部结构使其功能专一,提高其工作效率,进而提高众核处理器地性能.参考文献:[1]李亚民主编.计算机原理与设计—Verilog HDL版[M].北京:清华大学出版社,2011:107-109.[2]郭建军.同步数据触发体系结构多核处理器存储系统关键技术研究[D].国防科技大学博士学位论文,2008:17-23.[3]黄国睿,张平.多核处理器地关键技术及其发展趋势[J].计算机工程与设计,2009,300(10):2414-2418.[4]李月香,基于FPGA地微控制器IP核研究与设计[D].山西大学硕士学位论文,20-21.[5]盛肖炜,多核处理器内部核间通信研究[D].沈阳理工大学硕士学位论文,15-17,25-30.版权申明本文部分内容,包括文字、图片、以及设计等在网上搜集整理.版权为个人所有This article includes some parts, including text, pictures, and design. Copyright is personal ownership.b5E2R。
CPU的多核心架构及计算单元详解

CPU的多核心架构及计算单元详解中央处理器(CPU)是计算机系统中的核心组件之一,它承担着执行计算和控制操作的任务。
随着计算机的快速发展,人们对于性能的要求也越来越高。
为了满足用户对于多任务处理和高性能计算的需求,CPU的多核心架构逐渐兴起。
本文将详细介绍CPU的多核心架构以及其中的计算单元。
一、CPU的多核心架构1.1 多核心概念及发展多核心是指在一个CPU芯片上集成多个独立的处理器核心。
与传统的单核心CPU相比,多核心架构能够同时处理多个线程或任务,提升计算机的整体性能。
多核心架构的发展源于摩尔定律的进展。
根据摩尔定律,集成电路中的晶体管数量每18个月翻倍,这意味着CPU的计算能力也在同期间不断提升。
然而,到了一定程度,提升频率并不能显著增加CPU的性能,因为频率增加会导致功耗和发热的问题。
因此,为了进一步提升性能,多核心架构成为了解决方案。
1.2 多核心的优势多核心架构具有如下几个优势:1.2.1 提升系统性能:多核心能够同时处理多个任务或线程,有效提高了系统的整体性能。
特别是对于多线程应用程序或者同时执行多个任务的场景,多核心能够更好地满足用户需求。
1.2.2 节能降耗:与提升频率相比,多核心架构能更好地平衡性能和功耗。
通过将任务分配到多个核心上执行,每个核心的工作频率可以降低,从而减少功耗和发热,延长电池续航时间。
1.2.3 增强并行计算能力:多核心为并行计算提供了强大的支持。
对于需要大量计算的应用程序,多个核心可以同时进行计算,加速处理过程。
1.3 多核心架构的实现方式多核心架构的实现方式主要有对称多处理(SMP)和复杂指令集计算(CISC)。
对称多处理(SMP)是指每个核心拥有相同的访问权限和权力,可以独立运行不同的任务。
SMP架构中,每个核心可以共享同一份操作系统,从而实现大部分应用程序的并行执行。
复杂指令集计算(CISC)则是在一个CPU芯片上,集成多个核心以及专用的计算单元,每个计算单元负责执行特定类型的计算任务。
计算机结构听课笔记

计算机结构听课笔记一、引言计算机结构是计算机专业中的一门基础课程,它主要研究计算机系统的组成、工作原理以及硬件和软件之间的相互关系。
掌握计算机结构的知识对于理解和设计计算机系统具有重要意义。
二、计算机结构的基本概念1.计算机系统的组成计算机系统由硬件系统和软件系统两大部分组成。
硬件系统包括中央处理器(CPU)、存储器、输入/输出设备等;软件系统包括操作系统、应用软件等。
2.计算机工作的基本原理计算机工作原理可以概括为“存储程序”和“顺序执行”。
存储程序是指将编写的程序指令及数据存储在存储器中,顺序执行是指按照程序规定的顺序逐条执行指令。
3.计算机体系结构的发展历程从最早的单片机到现在的多核处理器,计算机体系结构不断发展,主要经历了四个阶段:单处理器结构、流水线结构、多处理器结构和并行处理器结构。
三、计算机硬件系统结构1.中央处理器(CPU)中央处理器是计算机系统的核心,负责执行程序指令。
其主要功能包括取指令、指令译码、数据读取/写入、运算等。
2.存储器存储器用于存储程序指令和数据。
主要包括主存储器和辅助存储器。
主存储器又称随机存储器(RAM),辅助存储器包括硬盘、光盘、U盘等。
3.输入/输出设备输入设备用于将外部信息输入计算机,如键盘、鼠标等;输出设备用于将计算机处理后的结果输出,如显示器、打印机等。
四、计算机指令系统1.指令的分类指令可分为数据操作指令、程序控制指令、存储器指令、输入/输出指令等。
2.指令的执行过程指令的执行过程包括取指令、指令译码、数据读取/写入、运算等步骤。
3.指令集体系结构(ISA)指令集体系结构是计算机硬件与软件之间的接口规范,它定义了计算机支持的指令种类、数据类型、寄存器结构等。
五、计算机性能评价1.性能指标计算机性能评价的指标包括运算速度、吞吐量、响应时间等。
2.性能评价方法性能评价方法主要有基准测试、事务处理性能委员会(TPC)等。
3.提高计算机性能的途径提高计算机性能的途径包括:提高处理器主频、增加处理器核心数、优化指令集、改进存储器性能等。
为什么大神不推荐Xeon至强CPU,而自己却在用呢?如何区分如何选择

为什么大神不推荐Xeon至强CPU,而自己却在用呢?如何区分如何选择Xeon系列是Intel的企业级产品的总称,涵盖了几乎有你所有需要的类型的处理器。
先说说系列 xeon目前有xeon phi,xeon-w ,xeon 铂金,黄金,白银,青铜,这个就和i3 i5 i7是一个意思,但是具体情况具体分析,白银不一定比青铜都好,其他也是同理。
前两个一个是针对计算的众核处理器,一个是专门配套lga2066的工作站产品线,就不展开说了,就说基础的xeon系列。
我们先从性能针对不同最简单的分个类。
1.多核心高频2.多核心低频3.低核心高频4.低核心低频这四种处理器适合的是完全不同的场景。
比如日常游戏就考虑1和3比较多,跑3d,建模,渲染就考虑1 2比较多,做nas,软路由就考虑4比较多。
懂的人能把xeon安在他该在的地方,不会把一颗16核2.2g的u 给一个游戏玩家用,也不会把一颗4核的xeon给渲染工作站用。
除此以外,xeon的来源也有很多种,大致就三类,正品盒装,oem散片,洋垃圾正品盒装没什么可说的,一般个人用户也不会考虑,因为实在是太贵了,比同规格的酷睿要贵上几倍,除了财大气粗的企业会采购,个人一般不买。
oem散片买的人就多了,Intel是会给经销商批发处理器的,并不全是从oem商那流出来的,所以也是正规渠道的CPU,一般提供一年保修,价格实惠,不少人会选择。
但是这几年洋垃圾是最火的,洋垃圾有很多种,一种是各种各样的测试版CPU,这里就不展开讲了,另一种就是从退役的服务器或者数据中心来的处理器。
这些东西性价比超级超级高,当然前提是你会挑,因为洋垃圾里有很多很多是真垃圾,而且要承担没有售后的风险。
如果一个人能自己看准洋垃圾,了解它的特性,知道怎么配主板,软件怎么处理,对得上自己的需求,那这个人是很懂了。
但是大多数人买到洋垃圾是看到tb或者整机的广告说这玩意nb才买的...他们买到的是洋垃圾里的真垃圾...2019年11月最新CPU处理器天梯(发烧>高端>中级>初级>入门级)简单来说,由低到高赛扬:现在很少了,不多赘述奔腾:入门级家用,轻度游戏娱乐酷睿:i3 初级家用,游戏娱乐i5 中级家用,游戏娱乐,轻度渲染/直播i7 高端家用,游戏娱乐,中度渲染/直播i9 发烧级家用,游戏,重度渲染/直播而Xeon至强是一个独特的存在它是一系列服务器CPU服务器端特点是什么?长时间不断电,不分白天黑夜的24小时工作,这就对CPU的体质、散热提出了巨大的考验。
多核处理器的发展趋势

多核处理器的发展趋势摘要:多核处理器以其高性能、低功耗优势正逐步取代传统的单处理器成为市场的主流。
介绍了 Hydra、Cell、RAW 这 3 种典型的多核处理器结构,重点讨论了核心结构选择、存储结构设计、低功耗等 4个影响当前多核处理器发展的关键技术,最后得出多核处理器的未来将呈现众核、低功耗和异构结构 3 种发展趋势。
Abstract:Multi-core processor has replaced single processor as the mainstream in the market for its high performance and low power.Three typical structures of multi-core processor: Hydra, Cell, RAW is introduced, and then four key techniques is presented, suchas core architecture, memory architecture design, low power and finally thedevelopmenttrends of multi-coreprocessor isdiscussed, whichare manycore, low power and heterogeneous.多核处理器也称为片上多处理器 (chip multi-processor,CMP),或单芯片多处理器。
自 1996 年美国斯坦福大学首次提出片上多处理器(CMP)思想和首个多核结构原型,到 2001 年IBM 推出第一个商用多核处理器 POWER4,再到 2005 年 Intel和AMD多核处理器的大规模应用,最后到现在多核成为市场主流,多核处理器经历了十几年的发展。
在这个过程中,多核处理器的应用范围已覆盖了多媒体计算、嵌入式设备、个人计算机、商用服务器和高性能计算机等众多领域,多核技术及其相关研究也迅速发展,比如多核结构设计方法、片上互连技术、可重构技术、下一代众核技术等。
下一代处理器进入众核时代

《 电子设计应用》独家拥有 《 日经电子》中文翻译权
下一代处理器进入众核时代
日经电子》记者 北乡达郎 本刊编译自 ( 《 日经电子》
不 久前 ,I ( 特 尔信 息 技 术 DF 英
峰 会 ) HOT CHI S 2 大 会 相 继 在 和 P 0 美 国召 开 ,会上 介 绍 的新 产 品 和 新 技 术 揭 示 出 处 理 器 今 后 的 发 展 动 向 。会 议 上 发表 的论 文 大 多涉 及 众
La r b e 由英 特 尔 公 司 开 ra e 是
发 、 集 成 了 多 个 x 6 核 的 图 形处 8内
理 器 , 并 计 划 于 2 0 年  ̄ 01 0 9 2 0年
进 入 实 用 。 La r b e 集 成 了 大 ra e 中 量 采 用 顺 序 执 行 (n o d r ̄ 构 的 i— r e)
环 线进 行 连接 , 以形成 众 核架 构 。
英 特 尔 公 司 的L ra e 和 a rb e
Ne al m h e
英 特 尔 另 外 还 发 布 了 下 一 代 面 向 PC和 服 务 器 的 低 功 耗 处 理 器 N hlm( 发 代 号 ) N hlm C r 7 ea 开 e 。 ea e oБайду номын сангаасi 处 理 器 具 有 4 结 构 ,共 集 成 73 亿 核 .1 个 晶 体 管 , 内 建 8 B的 L 共 享 高 速 M 3
・ 英特尔公司的GP ar e ULrbe a  ̄ VD A N II公司的GP 1 (0 UG ) 0 2 ・ 思科公司的Q P F  ̄ h w R s ac 公司的A t S a e e r h nn o
图1 D IF和H TC IS2 O HP 0指明处理器的发展方向
高性能众核处理器申威26010

DOI : 10.7544/issnl000-1239.2021.2020104158(6) : 1155 1165, 2021计算机研究与发展Journal of Computer Research and Development高性能众核处理器申威26010胡向东柯希明尹飞张新马永飞颜世云马超(上海高性能集成电路设计中心上海201204)(huxdisme@ vip. sina. com)Shenwei-26010: A High-Performance Many-Core ProcessorHu Xiangdong, Ke Ximing, Yin Fei , Zhao Xin, Ma Yongfei , Yan Shiyun, and Ma Chao(Shanghai High-Performance Integrated Circuit Design Center , Shanghai 201204)Abstract Based on the multi-core processor Shenwei 1600, the high-performance many-core processorShenwei 26010 adopts SoC (system on chip) technology, and integrates 4 computing-control cores and256 computing cores in a single chip. It adopts a 64-bit RISC (reduced instruction set computer)instruction set designed with an original design, and supports 256-bit SIMD (single instruction multiple data ) integer and floating-point vector-acceleration operations. Its peak performance for double precision floating-point operations reaches 3.168TFLOPS. Shenwei 26010 processor is manufactured using 28 nm process technology. The die area of the chip is more than 500 mm 2 , and the260 cores of the chip can run stably with a frequency of 1.5 GHz. Shenwei 26010 processor adopts avariety of low power-consumption designs on the architecture level , the microarchitecture level , and the circuit level, and thus, leading to a peak energy-efficiency-ratio of 10.559GFLOPS/W. Notably, both the operating frequency and the energy-efficiency-ratio of the chip are higher t h an those of theworldwide contemporary processor products. Through the technical innovations of high frequency design, stable reliability design and yield design, Shenwei 26010 has effectively solved the issues of high frequency target, power consumption wall, stability and reliability, and yield, all of which are encountered when pursuing the goal of high-performance computing. It has been applied successfullyto a 100PFLOPS supercomputer system named Sunway TaihuLight" on a large scale, and therefore, can adequately meet the computing requirements for both scientific and engineering applications.Key words Shenwei instruction set ; computation-control core ; computing core ; low power design ;energy-efficiency-ration摘 要 申威26010高性能众核处理器在多核处理器申威1600基础上,采用片上系统(system on chip ,SoC)技术,在单芯片内集成4个运算控制核心和256个运算核心,采用自主设计的64位申威RISC(reduced instruction set computer)扌旨令系统,支持 256 位 SIMD(single instruction multiple data )整数和浮点向量加速运算,单芯片双精度浮点峰值性能达3.168TFLOPS.申威26010处理器基于28 nm 工艺流片,芯片die 面积超过500 mm 2,芯片260个核心稳定运行频率达1.5 GHz.申威26010处理器从结 构级、微结构级到电路级,综合采用多种低功耗设计技术,峰值能效比达10.559GFLOPS/W .芯片运行 频率和能效比均超过同时期国际同类型处理器.申威26010通过在高频率设计、稳定可靠性设计和成品率设计等方面的技术创新,有效解决了芯片在实现高性能目标中所遇到的高频率目标、功耗墙、稳定可靠性和成品率等难题,成功大规模应用于国产10万万亿次超级计算机系统“申威•太湖之光”有效满足了科学与工程应用的计算需求.收稿日期:2020-12-21;修回日期=2021-04-26基金项目:“核高基”国家科技重大专项基金项目(2013ZX01028-001-001)This work was supported by the National Science and Technology Major Projects of Hegaoji (2013ZX01028-001-001).1156计算机研究与发展2021, 58(6)关键词 申威指令集;运算控制核心;运算核心;低功耗设计;能效比中图法分类号TP338为了满足国产超级计算机研制对国产高性能CPU(central processing unit )的迫切需求,“十一一五”期间,在“核高基”国家科技重大专项的支持下, 申威处理器研发团队完成了高性能多核CPU 芯片申威1600的研发⑴,申威1600被成功应用于第一 台全部基于国产CPU 芯片构建的国产千万亿次超级计算机系统“神威•蓝光”“十二五”期间,申威研 发团队继续在国家“核高基”重大专项的支持下,成 功完成了高性能众核处理器申威26010的研发.为了在性能和稳定可靠性等方面满足构建国产新一代 超级计算机系统的需求,芯片研发团队在高性能多 核处理器申威1600研发成果和技术基础上,突破了 芯片结构设计、低功耗设计、稳定可靠性和成品率设计等多个方面的关键技术,最终于2014年完成芯片 研制,并大规模应用于国产10万万亿次计算机系统 “神威•太湖之光",该系统从2016年6月开始连续4次蝉联全球超级计算机排行榜Top500冠 军,基于该系统的应用课题2次斩获超级计算应用 最高奖一一“戈登•贝尔奖”申威26010芯片采用片上系统(system on chip,SoC)技术,片上集成了 4个运算控制核心和256个运算核心,以及4路128位DDR3存储访问接口和8通路PCI-E3.0等I/O 接口.该芯片采用28 nm 工艺流片,晶体管数量达到50亿,die 面积超过500 mm 2 , 已接近芯片代工生产极限.处理器核心工作频率达 到1.5GHz,双精度浮点峰值性能达3.168TFLOPS,峰值功耗近300W.要实现芯片的性能、功耗和稳定可靠性等多个方面技术指标,芯片研发在结构和微 结构、正确性、低功耗、稳定可靠性和成品率等方面遇到了巨大的挑战,本文主要阐述应对这些挑战的 设计方法•1结构与组成1.1总体结构申威26010处理器采用分布共享SoC 芯片架构,全芯片共集成了 4个运算控制核心和256个 运算核心,以及4路128 b 的DDR3存储器控制接口和8通路PCI-E3.0等I/O 接口,总体结构如图1所示.申威26010片上包含4个核组、1个系统接口Fig. 1 The overall structure of Shenwei 26010图1申威26010总体结构图胡向东等:高性能众核处理器申威260101157和1套片上网络.每个核组包含1个运算控制核心、1个8X8的运算核心阵列和1个协议处理部件及智能存储器访问控制接口iMC;系统接口连接PCI-E3.0和以太网等I/O接口;片上网络实现4个核组和系统接口之间的互连•自主指令集是国产处理器冲破国外同行业的技术封锁和知识产权壁垒的基础,申威26010处理器的2类核心采用申威自主64b的RISC指令集,运算控制核心和运算核心的基础指令集保持兼容,支持8b,16b,32b和64b整数运算、单精度和双精度浮点运算,并根据高性能应用需求进行了扩展:类核心均支持256b的SIMD扩展指令,支持整数和浮点的短向量操作,使得运算控制核心每个时钟周期最快可以完成16个双精度浮点运算,运算核心每个时钟周期最快可以完成8个双精度浮点运算•1.2运算控制核心和运算核心芯片集成的运算控制核心负责芯片资源管理,提供各种系统服务功能,并承担系统中无法并行化的应用程序段的执行,因此对该核心的管理功能和计算性能要求均很高.申威26010的运算控制核心由指令流水线、运算流水线、访存流水线和2级Cache等部分组成.采用4译码7发射指令流水线结构,支持同时发射5条整数类指令(含访存指令)和2条浮点类指令,支持指令预取、转移预测、寄存器更名、乱序发射、乱序执行和推测执行•运算流水线包含5条整数流水线、2条支持256b的SIMD指令的浮点流水线以及对应的寄存器文件.访存流水线处理访存指令,实现对存储器空间和I/O空间的访问,控制数据Cache的访问.每个核心集成了容量均为32KB的一级指令Cache和一级数据Cache,以及指令和数据共享的512KB二级Cache.运算控制核心的总体结构如图2所示.芯片集成的运算核心主要承担计算任务,由指令流水线、运算流水线、访存流水线、16KB一级指令Cache和64KB可重构局部数据存储器等部分组成.运算核心指令流水线采用2译码2发射结构,支持乱序发射、乱序执行和乱序退出•运算流水线包含2条运算流水线,其中1条运算流水线支持256b的SIMD指令,支持整数和浮点的短向量加速计算,另一条为整数运算流水线,支持32b和64b整数算术运算、逻辑运算、移位运算以及访存地址的计算等, 2条运算流水线共享1个寄存器文件.访存流水线处理访存指令,实现对存储器空间的访问,并控制可重构局部数据存储器的访问•根据应用需要,可将核心局部数据存储器重构成软硬件协同Cache结构.Fig.2The structure of the computation-controlling core图2运算控制核心结构图芯片的2类核心通过支持256b的单指令流多数据流SIMD指令,支持整数和浮点的短向量操作,实现单条指令同时对多个不同数据完成相同操作,实现核心内的数据级并行;2类核心实现的超标量结构支持核心内的指令级并行处理;核组内的不同核心之间和核组之间支持线程级或进程级等更高层次的并行处理.基于芯片支持的多粒度多层次并行处理功能,使得在1.5GHz工作频率下单个运算控制核心的双精度浮点峰值性能达到24GFLOPS,单个运算核心的双精度浮点峰值性能达到12GFLOPS,芯片集成的260个核心提供的双精度浮点峰值性能可达3.168TFLOPS.1・3片上存储结构芯片集成的运算核心采用了局部数据存储器技术,每个运算核心的局部数据存储器可由软件完成数据的缓存管理,不同管理方式可同时存在并支持局部数据存储器容量的动态划分,充分结合硬件的高效性和软件的灵活性,降低芯片实现开销并满足应用对存储的需要.运算核心的指令存储器采用Cache结构,硬件支持对一级指令Cache的指令脱靶进行合并,提高了存储总线带宽的利用率.运算核心阵列集成了更大容量的共享二级指令Cache,进一步提高了具有局部性的指令访问命中率,降低指令脱靶访问延迟,并且减少指令脱靶对主存储器的频繁访问•为支持片上存储的高效使用和数据在运算核心1158计算机研究与发展2021,58()中的灵活分配,运算核心在能够直接访问主存空间的同时,采用了多模式数据流传输技术,支持数据在核心局部数据存储器和主存间的批量带跨步的异步数据传输,实现计算与访存的并行.每个存储访问接口还实现了智能访存优化算法,优化算法可以依据不同课题的访存特征对访存请求进行访问优化,以有效提高存储带宽的使用效率.申威26010核组的运算核心阵列还实现了基于预约调度的传输总线技术,多个运算核心的访存行为由集中控制器进行统一管理,多核心复用的总线资源按照效率优先兼顾公平的算法进行节拍级调度和分配,充分保证运算核心的服务质量,提升了访存效率.总之,申威26010处理器的片上存储结构有效利用了片上资源,缓解了访存墙问题.2正确性验证高性能处理器的正确性验证至今仍是一个业界难题,而申威26010处理器设计规模庞大、结构复杂,内部包含4个运算控制核心、256个运算核心、4路高带宽DDR3存储控制接口等众多功能模块,组成了一个逻辑极其复杂的片上系统.申威26010还包含核心、核组和芯片等多个设计层次,较多的设计层次使得片内运行控制更加复杂,逻辑信号传递路径越深,传递过程中的各种组合情况越复杂,设计错误隐藏也越深,验证难度越大.这个复杂的片上系统对正确性验证提出了严峻的挑战,如果仅仅采用传统处理器验证方法,难以在有限的研发周期内完成芯片的验证工作,为此,芯片验证团队在借鉴以往验证经验的基础上,主要采用了3种技术方法:1)综合采用多种验证手段.申威26010芯片综合采用了模拟验证、硬件仿真加速器验证[力、FPGA实物验证8和形式验证凹等多种验证方法.模拟验证作为一种传统的验证方法,可观性好,错误定位快,但其验证速度随着验证对象规模的增大而降低,由于申威26010在设计的模块级和部件级规模相对较小,主要采用该方法来进行验证,取得了较好验证效果;硬件仿真加速器验证的验证速度可以比模拟验证快很多,而且可观性好,验证过程中的信号状态可以全程跟踪,错误定位便捷,用于验证的中后期,芯片有了基本正确性以后,在核心以上层次支撑操作系统及应用程序等较大规模测试程序的验证,申威26010的硬件仿真加速器验证环境上几乎发现了全部软硬件接口相关的设计错误,取得了很好的验证效果;FPGA实物验证的验证速度比硬件仿真加速验证更快,主要用于在核心以上层次支撑大量应用级测试程序的验证,申威26010基于自研的单核、单核组、多核组和全片等多种不同规模的FPGA验证平台,实现了多个层次在应用级的快速验证,有效加快了芯片的错误收敛速度;形式验证在申威26010中主要用于RTL设计与后端物理实现之间的等价性验证.2)采用层次化的验证策略.针对申威26010的层次化结构和芯片规模超大特性,将芯片的正确性验证分为模块级、部件级和芯片级3个层次,开发以白盒、黑盒和灰盒测试理论指导下的基于约束的随机激励、基于断言的定向激励以及多元化事务激励、场景激励,分解激励开发和验证难度,满足不同层次验证环境对运行速度和验证资源的需求.模块级运行速度快,资源用量少,侧重白盒焦点验证,在信号层面开发各种激励确保底层模块验证覆盖率.部件级运行速度较快,验证资源用量中等,侧重在协议层面开发激励,既包含白盒焦点验证和灰盒验证,也含有黑盒自动化验证.芯片级运行速度慢,验证资源用量大,侧重于在指令序列等软件可见状态层面构建自动化验证环境进行黑盒方式验证.3)构建可重构芯片级验证环境.可重构芯片级验证环境支持多种参数化配置,使得验证人员能够根据不同的验证需求,自由灵活地构建芯片级验证环境,较好地解决了验证覆盖率和模拟仿真速度之间的矛盾,也较好地解决了验证规模与运算资源之间的矛盾,取得了很好的验证效果.申威26010的可重构芯片级验证环境如图3所示.该环境支持芯片中的核组数量可配置,可以配置芯片的核组数量为1~4个,支持单核组中运算核心数量可配置,可以配置的运算核心数量为1〜64个;支持对各核组内的运算核心阵列中的真、伪运算核心进行替换,其中伪运算核心是一个运算核心接口模型,伪运算核心模型的接口行为与真实核心完全一致,但其设计规模远小于真实运算核心;支持对各核组中的访存接口进行多种配置,包括使用真实的设计模型、虚拟存储器接口模型等;支持对芯片中的PCI-E和以太网接口进行配置,可选择芯片RTL模型中是否包含这2个接口.申威26010通过综合采用多种验证方法,以及多层次、多规模的验证,发挥各种验证方法的优势,从不同验证层次和验证视角实现交叉验证和优势胡向东等:高性能众核处理器申威260101159算制心运控核运算核心(真、伪运算 核心数量可配)协议处理部件访存接口 (真、伪可配)存储器核组0 ;-----核组1核组2核组3(芯片内核组数量可配)系统接口芯片接口验证组件集成验证组件的可配置RTL 模型Fig. 3 Reconfigurable chip-level verification environment图3可重构芯片级验证环境互补,最终取得了很好的验证效果,实现了一次流片 成功的目标.3物理实现申威26010规模庞大,芯片尺寸已接近生产极 限,这对物理实现来说是个极大的挑战,为了完成如 此大规模芯片的物理设计且实现高性能的目标,本芯片采用高可复用层次化物理设计、高性能时钟系 统设计和定制综合混合设计等方法,基于28 nm 工 艺实现了 1.5 GHz 的频率指标•3.1高可复用层次化物理设计层次化物理设计方法是实现超大规模芯片设计 的基础,该方法实现了物理设计并行化,提高了后端 设计团队在统一平台上分工协作的效率,同时层次化的设计可以缩小模块的设计规模,减轻设计及检查分析对计算资源需求的压力,缩短设计优化的周期,从而可以通过增加优化迭代的次数,取得更好的 设计优化效果•本芯片采用的高可复用物理设计方 法支持电路和版图的层次化设计,同时支持静态时 序分析、功耗分析、等价性验证和可靠性分析等层次化的检查分析,从而高效地实现了申威26010这款 极大规模芯片的物理设计.申威26010物理实现上分为核心、核组和芯片3个全局层次,采用自顶向下的策略,以全片 Floorplan 设计、全局电地设计以及全局时钟设计为主导,根据芯片总体要求和信号连接关系,依次确定 芯片、核组和核心的面积和各层次模块的相对位置 关系,制定时钟网络的实现方案,给出各层次顶层的设计资源和设计约束,实现芯片的总体布局和规划. 各模块在顶层模块给予的设计约束下进行设计和优 化,并将结果依次反馈给上一层次进行调整优化,实现自底向上的反馈回路.层次化的设计中采用了高 可复用性的策略,功能模块和缓存模块设计好后进 行IP 化处理,给核心层进行复用,核心层固化后在核组层进行复用,在芯片层对核组进行复用,实现了 高效的层次化设计.3.2高性能时钟系统设计全芯片包含了多种不同频率时钟,包括:控制核心时钟、运算核心时钟、存控时钟、PCIE 时钟、全局 时钟、接口及维护时钟等.其中全局时钟频率达到1.4 GHz,控制核心和运算核心的频率均达到1.5 GHz.不同时钟在分布范围、时钟偏斜和时钟功耗上有不 同的指标要求,需要根据它们的特点分别采用不同 的设计方法:1) 对于运算核心时钟、控制核心时钟和全局时钟3种高频率且分布范围广的时钟,采用“全局+局 部”层的时钟设计结构,分层次进行低偏斜时钟设计;为增强抗OCV (on -chip variation )的能力,全局 时钟采用对称Htree 型结构,实现时钟从源头到各 终点传播延时的精准控制.在模块局部时钟设计中,直接采用“大驱动+ MESH ”的方式直连到各时序单元,确保时钟信号传播的低延时和低偏斜.一个运算 核组的时钟分布如图4所示.2) 对于分布范围较小或频率较低的其他时钟按照平衡时钟树的方式进行单层时钟结构设计,在满足设计性能的同时也大大降低了设计复杂度•通过上述设计方法,申威26010的各咼频时钟1160计算机研究与发展2021,58(6)Fig.4Clock network distribution of an computingcore group图4一个运算核组的时钟网络分布图全片分布最大偏斜均控制在10ps以内,时钟占空比达到49.85%〜50.15%,经流片测试各时钟均可以稳定运行在设计频率下,达到了设计目标•3.3高性能定制设计申威26010芯片2类核心的逻辑非常复杂,为了达到频率设计目标,采用了多种定制设计技术:1)全局通路设计在全局芯片布局设计时优先考虑关键时序通路的设计,尽可能缩短其物理长度.此外在全局布线的金属资源选取上,也将传播速度较快的高层金属尽量向关键通路倾斜,确保关键通路的时序可以满足设计要求.2)定制存储器设计访存路径一直是处理器的关键路径所在,需要进一步提升片上SRAM阵列的访存速度.商用的存储器综合工具(Memory Compiler)已无法满足存储器的频率要求,申威26010处理器内部主要Cache 阵列均为定制实现,包含单端口和双端口阵列•定制存储器采用了容偏差灵敏放大器设计、高速译码器设计和自定时电路等关键技术[0],速度比基于商用工具生成的存储器快27%〜37%.此外寄存器文件也是关键路径所在,由于读写端口众多,综合实现方法无法有效地布通走线,且时序难以达到指标,申威26010中的5读5写和7读4写寄存器文件均为定制设计,采用了自研多端口bitcell(存储单元)、高速译码电路和多米诺读出电路等关键技术,最终满足了寄存器文件的频率设计要求.3)高性能时钟树定制设计为尽可能降低时钟偏斜、降低时钟延时和增强其抗OCV的能力,全芯片3个主要高频时钟均采用定制设计方式实现,时钟主干采用定制Htree时钟树结构,时钟的一级驱动单元、二级驱动单元及门控驱动单元均采用定制实现,确保整个时钟树设计具备低传播延时和低传播偏斜的特性•通过这3种技术手段,芯片最终可以稳定运行在1.5GHz,工作频率高于国际上同期同类芯片,使芯片性能达到了设计预期,双精度浮点峰值性能达到了 3.168TFLOPS的设计指标.3.4高性能综合设计为提高设计效率,芯片的大部分控制与运算逻辑模块均采用了综合设计方法来实现,在传统商用综合设计流程的基础上,芯片开发团队根据芯片的特点自行定制开发了多项自动化功能,例如:自动填充物理信息的逻辑综合功能、关键逻辑自动打包聚集功能、根据时序自动调整并优化关键路径权重功能、自动创建定制Mesh时钟树功能、对关键路径或指定路径优先进行布线功能、自动在大反转电流单元两侧插入去耦电容功能[1]、集成时序分析及时序自动优化功能、集成设计规则检查及自动修复功能等.通过对综合流程的深度定制化开发,大大提高了综合设计质量和效率,模块级设计频率较标准商用流程提升15%〜20%,布线错误率下降90%,极大地提高了设计的效率和质量.4低功耗设计随着晶体管数量的增加和工作频率的提高,降低处理器的功耗变得越来越重要[2「13].申威26010在实现高性能的同时,从结构级、微结构级到电路级,综合采用多层次功耗优化技术来降低处理器的功耗.1)结构级低功耗设计申威26010在结构级采用的低功耗设计技术有:①申威26010的结构设计思想是通过集成众多核心来提升性能,适当降低单核心最高工作频率的要求,避免过高工作频率带来功耗的快速上升,从而有效地提升了芯片的能效比.胡向东等:高性能众核处理器申威260101161②支持多种形态的工作模式.包括深度睡眠、浅睡眠和低功耗运行模式.对较长时间无工作负载的核心,可控制使其处于极低工作频率的深度睡眠状态,最大限度降低运行功耗;对短时间无工作负载的核心,特殊的停机指令可使核心处于浅睡眠状态,杜绝核心绝大多数信号的翻转从而降低功耗;对运行速度要求较低的应用程序,可以动态调整指令发射速度,达到降低运行功耗的目的.③多频率设计.在满足性能需求前提下,仅核心采用最高工作频率,互连部件、存储控制器和系统接口则采取较低的工作频率,降低运行功耗.2)微结构级低功耗设计申威26010在微结构级采用的低功耗设计技术有:①功能部件动态配置.采用动态切割方式,支持不同层次的部件切割,以降低功耗.一是核心级,可以根据应用需求的核心数量,将不使用的核心断开,使其处于极低工作频率状态;二是部件级,对浮点部件或SIMD运算部件,在运行无浮点操作或无SIMD运算的应用时,可动态关闭浮点部件或SIMD 部件的时钟,降低核心的运行功耗.②多端口存储器设计.Cache存储器设计采用“虚拟多端口”技术来减少物理端口数量,既降低功耗,也有效降低芯片面积.其中运算控制核心的指令Cache和二级Cache都采用物理单端口存储器,虚拟实现双端口功能,数据Cache则采用双端口存储器实现了虚拟三端口的功能.③I/O低功耗支持.DDR3存储器接口和PCI-E 接口都支持低功耗模式,在没有访问请求时,可自动处于低功耗状态.3)电路级低功耗设计申威26010在电路级采用的低功耗设计技术有:①采用多层次多粒度的门控时钟方式.降低平均运行功耗,细粒度控制可在模块内部实现对一定数量的触发器进行控制,粗粒度控制可在模块级、核心级和核组级进行时钟控制,从而实现不同工作模式下降低功耗的目标.同时采取动态功耗分析和电压降分析,通过布局优化和放置片上电容,避免门控时钟在降低功耗的同时造成动态电压降影响电路工作的稳定性.②采用多阈值晶体管混合设计.以常规阈值晶体管为主体进行设计,用速度最快的低阈值晶体管进行关键时序路径的优化,这样在满足设计频率目标前提下,尽可能采用高阈值晶体管来优化漏电功耗.通过此设计策略,在申威26010的50亿晶体管中,低阈值晶体管数量仅占1.97%,使得常温下漏电功耗仅为12W.5可靠性设计申威26010在使用中根据运行课题的不同,芯片的实际功耗往往会在几十瓦到几百瓦之间来回波动.频繁的大幅度功耗波动给芯片的稳定可靠性带来了严峻的挑战.为了确保芯片可以在实际系统中稳定运行,申威26010从结构设计到物理设计综合采用了多种高可靠性设计方法,有效地降低了功耗波动对电源网络系统的影响,确保了芯片在实际系统中的稳定工作.芯片稳定可靠性设计所采用的关键技术方法有:1)电地网络强化设计.在各运算核心和运算控制核心上均采用BUMP垂直供电技术,确保各部分的充足供电;采用自顶向下每层均垂直交叉打孔的网格状方式进行连接;除相互电地隔离的区域外,所有模块电地均在芯片顶层连在一起,构成一张统一完整的大网,确保电源网络的强壮性.2)电地网络隔离设计.同时对于不同核心区域的电地进行物理隔离,避免功耗波动导致的电压波动相互影响.3)去耦电容的按需使用.通过设计流程优化确保各大功耗单元周围插入去耦电容单元,减少电源波动.4)片上时钟变化平滑过渡的控制方法.在芯片整体或局部部件进行时钟频率提升或降低时,按照预设的部件粒度和时间间隔进行频率的变化,使得芯片内部时钟频率变化时功耗按梯度变化,有效降低功耗波动给芯片可靠运行带来的风险.5)片上存储器采取容工艺偏差自调节设计方法.在芯片运行过程中实时感知工艺参数的变化,并根据工艺参数的变化情况自动调整存储器电路的相关参数,以有效容忍制造工艺偏差,提高电路运行的稳定可靠性.6成品率设计越大的芯片面积会导致更大的工艺偏差和更高的制造缺陷概率,从而会导致部分芯片出现性能或功能上的问题,降低芯片成品率.申威26010在设计。
多核处理器的关键技术及其发展趋势

多核处理器的关键技术及其发展趋势多核处理器是一种在单个芯片上集成了多个处理核心的中央处理器。
它可以同时执行多个任务,提高计算机的处理能力和性能。
多核处理器的关键技术包括核心通信技术、调度和分配算法、内存系统设计以及功耗和散热管理。
本文将详细介绍多核处理器的关键技术及其发展趋势。
核心通信技术是多核处理器的关键技术之一。
多核处理器的核心之间需要进行有效的通信和数据交换,以便协同完成任务。
常见的核心通信技术包括共享内存、消息传递和DMA(直接内存访问)等。
共享内存是多核处理器中广泛使用的一种通信方式,它允许多个核心访问同一块物理内存,提供了高效的数据共享和通信能力。
消息传递是一种基于消息传递机制的通信方式,核心之间通过发送和接收消息进行通信。
DMA技术允许核心直接访问主存中的数据,减少了核心之间的通信开销。
未来,核心通信技术将更加强调低延迟和高吞吐量的特性,以满足越来越复杂的应用需求。
调度和分配算法是多核处理器的关键技术之二。
调度算法决定了多核处理器上各个任务的执行顺序和调度方式,而分配算法用于将任务分配给不同的核心。
调度和分配算法需要考虑核心之间的负载均衡、响应时间和功耗等因素。
常见的调度算法包括先来先服务、最短作业优先、时间片轮转和优先级调度等。
未来,调度和分配算法将更加智能化,能够根据任务的特性、系统的负载和资源情况进行动态调整,以最大化系统的吞吐量和响应能力。
内存系统设计是多核处理器的关键技术之三。
内存系统是多核处理器中用于存储和访问数据的重要组成部分,它需要支持多核并发访问、提供高带宽和低访存延迟的特性。
常见的内存系统设计包括缓存一致性协议、内存一致性模型和内存控制器设计等。
缓存一致性协议用于保证多核处理器中各级缓存之间的数据一致性,确保核心之间访问同一份数据时获得一致的结果。
内存一致性模型定义了内核之间共享数据时的可见性和一致性规则。
内存控制器设计需要考虑多核并发访问时的冲突和带宽分配等问题。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
从多核到众核处理器此文由客座作者Zheng Li所写,欢迎大家follow他的twitter:/biglizheng其实“多核”这个词已经流行很多年了,世界上第一款商用的非嵌入式多核处理器是2002年IBM推出的POWER4。
当然,多核这个词汇的流行主要归功与AMD和Intel的广告,Intel 与AMD的真假四核之争,以及如今的电脑芯片市场上全是多核处理器的事实。
接下来,学术界的研究人员开始讨论未来成百上千核的处理器了。
有一个与多核匹配的词叫片上网络(Networks on Chip),讲的是多核里的网络式互连结构,甚至有人预测未来将互连网集成到片上这种概念了。
当然,这样的名词是很吸引眼球的,不过什么东西都得从实际出发,这篇文章也就简单地分析了为什么有多核这个事情,以及多核系统的挑战。
为什么有多核处理器?事先需要提及的是,一个常见误区就是多核和众核处理器的发展来源于应用和市场驱动。
实际上,应用和市场希望单核处理器的寿命越来越长,而物理限制是多核以及未来众核处理器出现和发展的动力。
之后我们来谈论一下,首先,为什么有多核处理器?从Intel 80286到Intel Pentium 4大概二十多年的时间都是单核处理器的天下,为什么最近几年单核处理器却销声匿迹了?是什么导致了多核时代的到来?这里需要知道一个经验定律和三个限制,他们是多核处理器的最本质缘由。
这个定理就是摩尔定律。
Gordon Moore博士是Intel的创始人之一。
早在他参与创建Intel之前的1965年,他就提出,在至少十年内,每个芯片上集成的晶体管数(集成度)会每两年翻一番。
后来,大家把这个周期缩短到十八个月。
这个指数规律的发展速度是令人难以置信的,大家都听过那个国王按几何级数赏赐大臣谷粒,从而使得国库被掏空的传说。
而摩尔定律讲得就是现实中晶体管数量几何级数倍增的故事,更令人难以置信的是这个速度保持到今天已经快五十年了。
人类历史上应该还没有任何技术是指数发展这么久的。
题外话一句,若干年前,互联网骨干网带宽曾经这么指数了几年,曾有人将其总结为一个定律忽悠一堆人研究光纤通讯,后来发现带宽没法按照指数定律涨了,许多搞光电的人也就找不到工作了。
扯远了点,整个IT产业之所以风光了这么多年,摩尔定律是本质的因素。
当无数的硅公硅婆和软件民工们将晶体管数目的增长转换为计算机等IT产品的性能时,摩尔定律也就有了两个推论,每十八个月,计算机等 IT 产品的性能会翻一番;相同性能的计算机等 IT 产品,每十八个月价钱会降一半。
后面这个推论很可怕的一件事情,他说,如果你IT产品像菜市场的商贩一年年复一年的卖同样的东西,那么你IT产品的价钱会指数下降。
从某种意义上来说摩尔定律逼迫着所有的IT企业不断的按指数规律提高产品的性能,并且创新出新的产品。
但不幸的是,这种从晶体管数转换为性能增长的过程日趋困难。
时至今日,集成度还在以摩尔定律的速度增长,但是性能的增长遇到了三个物理规律的限制。
第一是功耗,第二是互连线延时,第三是设计复杂度。
功耗限制:晶体管的主要工作就以翻转提供信息计算,要让晶体管翻转就是给他们提供能量,而他们一翻转就要发热。
从Intel 80286到Pentium 4的路线一直是让晶体管翻转得越来越快(约两千倍的差别),处理器频率随之不断上升,也就是意味单位时间提供给芯片的能量——功耗,会逐步上升,发热也越来越厉害。
一个很明显的现象是,286不需要散热,但是Pentium IV却需要散热片加强劲的风扇。
这种靠不断增加翻转速度的方式带来的最大好处是同一个程序,你什么优化也不做,买一个下一代的芯片就可以让程序跑快很多。
但是与此同时,翻转速度的上升带来功耗的急剧增长,所散热超过了风扇散热的热预算。
不幸地是,散热的能力却不能够同步增长,这限制了处理器所发热的总功耗,从而使得传统地提高处理器频率的老法子不再具有可扩展性。
单核处理器的性能发展走到了尽头。
那摩尔定律提供的多余的处理器怎么办呢?最简单的办法就是用来增加单片集成处理器核的数量而不是性能。
互联线延迟:芯片上除了晶体管就是互连线。
它的主要工作是把一个晶体管干活儿的结果给另一个晶体管,是个车间搬运工的角色。
曾几何时,晶体管是很慢的,所以没人在乎这种搬运工带来的任何延时影响。
但是随着晶体管越来越小,越来越快,互连线的延迟并不随之变块,这就成了问题了。
以前晶体管每翻转一次的时间互连线能够把数据从芯片的一头送到另一头,而如今这种对角线传输得花好几个晶体管翻转的时间。
摩尔定律说晶体管集成度越来越高,但是互连线却相对的越来越慢了。
这带来的最大问题是干一件事情需要花的步骤更多了,打个比方就是工厂里的流水线级数越来越多,很多步骤都花在把东西从一个车间搬到另一个车间上。
在Pentium IV的时候,干一件事情(执行一条指令)要花20级流水线。
流水线级数长不是什么好事,因为一旦当流水线级前面处理的东西出了问题,后面正在处理的那些东西就得重头来做。
当年AMD Athon之所有能够在与Intel Pentium 4争夺中占领一席之地,就是因为虽然AMD的晶体管翻得慢,但流水线级数少,因此那种重头来做的机会和代价都小,因此性能还很高。
克服互联线延迟增加的最好办法就是把一个大厂房分成很多个小厂房,事情都在一个小厂房里解决,这样运输的距离就变短了。
换句话说,使用较小的核组成一个多核的芯片,而不是以往的单核芯片。
设计复杂度:随着晶体管数量的增加,芯片设计的设计空间、设计复杂度和验证难度都是大幅度增加的。
话说Intel六核的iCore7上集成了超过十亿个晶体管,其设计难度之大可想而知。
如果采用多个重复设计处理器核,那么设计的复杂度就会大大降低,从而使得设计成本降低,出错的机会也减小了。
总结一下,多核系统的出现是摩尔定律与物理规律限制相互作用的结果,三个主要的限制是:功耗、互连、设计复杂度。
一个处理器上的晶体管数越来越多,但是他们却因为功耗和互连线的限制并不能直接提供很高的性能,那么怎么办呢?一个最简单的办法就是用在一个处理器中集成多个简单的处理器核。
这样既把多出来的晶体管用上了,而每个处理器核就像前一代的处理器一样简单,因此不必提高他们的翻转速度,各个处理器核只需要自己交换数据,因此没有很长的连线延迟。
这也就是Intel放弃Pentium IV采用Core 2结构的缘由,也是本篇文章最本质的原理。
从单核到多核乃至未来众核的变化并不是芯片设计公司根据客户需求,市场趋势做出的主动选择,而是在物理规律限制不得已的情况下被逼走上的道路。
这意味着以前那种处理器频率越来越高的时代已经一去不复返了。
在那个已经过去的黄金时代,程序员不需要怎么优化程序,因为优化程序所花的功夫和时间还不一定值得去市场上买一个新款处理器。
这也就使得Microsoft敢于做越来越慢的软件。
他不怕因为软件太慢卖不出去,因为处理器的翻转速度的增长会使得他本来很慢的软件,不久就会快得可以接受。
但是这个故事已经结束了,现在的新款处理器跑老程序并不会快到哪里去,而当你买了新处理器还得对老程序作进一步的优化才能利用上新增的晶体管。
这可能也就是微软的Vista按照老路子设计,但卖得没那么好的原因,也带来了微软裁员5000人,但是linux却还是比较红火的结果。
下面这个图是09年初Redhat Linux和Windows的股票走势,可以比较明显的看出来,当处理器速度不再翻倍的时候,当人们没钱总是换硬件的时候,微软的表现就不是那么好了。
因为Windows Vista 是微软沿用了以前处理器发展规律设计的操作系统,因此并不叫座。
微软公司不得不花大力气重写了他们的内核代码,推出了Windows 7来收拾Vista的残局。
多核虽然说着容易,做起来也不难,但是难得却不在多核本身上,下面的内容简单地揭开了多核设计貌似困难实则简单地面纱,同时也指出多核之难不在核上,而在互连与编程两大挑战。
多核处理器是什么样子的?多核处理器的发展其实很大程度上是一个学术界最早提出但是由工业界引领的题目,从本质上来说设计一个多核处理器本身没有什么有深度的挑战,难点其实是互连和编程的问题。
不过在我们深入了解这两个问题前还是先回顾一下多核处理器的发展之路,目的是看看人们怎么从单核走到多核的。
多核的点子最早学术界提出的。
典型的有四个:斯坦福的Hydra(1996),斯坦福的Imagine (2000),MIT的RAW(2002),以及UT奥斯丁的TRIPS(2003)。
在这个问题上,是不得不佩服美国的创造力,要知道直到在2000年左右,所有的人都还在为处理器频率按照摩尔定律翻翻而狂热,美国的顶尖研究员就早已看到了这条路的尽头并指出未来处理器的发展之路。
如果从学术界多核处理器的发展上学到一点最关键的内容的话,那就是:做一个多核的处理器不是一件有理论困难的事情。
曾有人据此预测说多核设计给了学术界一次超越工业界的机会,就像当年一个随便的学生project做出来的RISC处理器就能胜过工业界的CISC处理器一样。
但是就目前看来这件事情并没有如期发生。
真正的难点并不在处理器设计上,当工业界用各自不同的方式实现多核处理器后,一个重要经验就是:真正的难点在提供一个多核平台上的编程环境。
在介绍多核处理器的设计的时候我们将学术和工业界的研究情况结合在一起。
多核处理器架构的学术深度是有限的,但是工业界的实现却是多种多样的,SUN、IBM、Intel、AMD、甚至ARM都相继设计并推出了了自己的多核处理器。
面对不同的客户市场,不同的公司推出的不同多核处理器具有截然不同的特点。
多核处理器的设计依照大致可以分为三类:总线或者交换开关互连的或和设计,流处理器和图形处理器,以及网络互连的处理器:以总线或交换开关为基本互连架构的多核设计最初的多核处理器集成的处理器核数量较小,典型的特点就是互连方式是以总线和交换开关为主,而每个核结构相似功能较为强大。
这种设计也该可以看作传统一个主板上多处理器结构在片上的集成,主要的创新来源于摩尔定律指导下半导体技术进步带来的集成度提高,体系结构的创新并不明显。
这种结构的始祖(当然也是片上多核的始祖)是Hydra。
斯坦福的Hydra处理器是最早提出的片上多核处理器。
Hydra发明后成立了一家公司,然后这个公司被SUN公司购买(后来SUN又被Oracle买了,不过那是后话),Hydra也就成为了现在SUN主流处理器Niagara的原型。
不仅如此,现在Intel的双核、四核处理器也是采用了和Hydra类似的结构。
Hydra的出发点也就是看到了多发射超标量处理器架构的末日,然后将多个简单的处理器核集成在了一个芯片上,互连方式还是最简单的总线互连,每个处理器通过总线广播的方式发送信息,也通过总线侦听来接受其他处理器。