从多核到众核处理器
众核处理器核间通信的研究分析
众核处理器核间通信地研究-工程论文众核处理器核间通信地研究陈鹏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技术允许核心直接访问主存中的数据,减少了核心之间的通信开销。
未来,核心通信技术将更加强调低延迟和高吞吐量的特性,以满足越来越复杂的应用需求。
调度和分配算法是多核处理器的关键技术之二。
调度算法决定了多核处理器上各个任务的执行顺序和调度方式,而分配算法用于将任务分配给不同的核心。
调度和分配算法需要考虑核心之间的负载均衡、响应时间和功耗等因素。
常见的调度算法包括先来先服务、最短作业优先、时间片轮转和优先级调度等。
未来,调度和分配算法将更加智能化,能够根据任务的特性、系统的负载和资源情况进行动态调整,以最大化系统的吞吐量和响应能力。
内存系统设计是多核处理器的关键技术之三。
内存系统是多核处理器中用于存储和访问数据的重要组成部分,它需要支持多核并发访问、提供高带宽和低访存延迟的特性。
常见的内存系统设计包括缓存一致性协议、内存一致性模型和内存控制器设计等。
缓存一致性协议用于保证多核处理器中各级缓存之间的数据一致性,确保核心之间访问同一份数据时获得一致的结果。
内存一致性模型定义了内核之间共享数据时的可见性和一致性规则。
内存控制器设计需要考虑多核并发访问时的冲突和带宽分配等问题。
多核的名词解释
多核的名词解释随着科技的不断进步,计算机技术也在不断的发展与演进。
而其中一个重要的概念就是多核。
本文将从多核的概念解释、多核技术的发展历程以及多核技术对计算机性能和应用的影响等方面进行阐述,旨在帮助读者更好地理解多核技术。
一、多核的概念解释多核是指在一个处理器芯片上集成了多个独立的处理核心。
也就是说,多核处理器是由两个或者更多的中央处理器核心组成的集成电路。
每个处理核心都可以独立运行并执行指令,拥有自己的寄存器、控制单元和缓存等。
多核技术可以提供更高的计算能力和处理能力,使计算机能够同时运行多个应用程序或任务。
二、多核技术的发展历程多核技术的发展可以追溯到上世纪90年代,当时计算机产业遇到了瓶颈,因为单核处理器的频率无法再继续提高。
为了克服这个问题,科学家们开始研究如何将多个处理器集成到一个芯片上。
最早的多核处理器诞生于2001年,随着硅技术的进步和制程的改进,多核技术逐渐成为了主流。
三、多核技术的优势和挑战1. 提升计算性能:多核技术能够同时运行多个应用程序或任务,大大提高了计算机的处理能力和性能。
2. 节能环保:相较于传统的单核处理器,多核处理器在相同任务下能够以更低的功耗来完成工作,从而为节能提供了有力支持。
3. 提高系统可靠性:多核处理器能够通过分布式计算和冗余设计来提高系统的可靠性,当部分核心出现故障时,其余核心仍然可以正常工作,从而提高了系统的稳定性和可靠性。
4. 提升并行计算能力:多核处理器的并行计算能力强,能够更好地支持科学计算、图像处理、数据分析等复杂的计算任务。
然而,多核技术也带来了一些挑战。
首先,软件的开发和优化变得更加复杂,需要充分利用多核处理器的并行计算能力。
其次,多核处理器对内存带宽和缓存一致性的要求较高,需要合理调度和管理资源,以避免性能瓶颈。
最后,多核处理器的热量和功耗问题也需要得到有效解决,以确保硬件的可靠运行。
四、多核技术的应用领域多核技术在众多领域都发挥着重要的作用。
计算机体系结构发展历史概述
计算机体系结构发展历史概述计算机体系结构是指计算机硬件与软件之间的结构和相互关系。
它的发展历程可以追溯到二十世纪四十年代的早期电子计算机。
一、第一代计算机体系结构在二战期间,计算机开始崭露头角。
1943年,美国哈佛大学的数学家霍华德·阿金斯提出了“范·洛依德体系结构”,这是第一个计算机体系结构的设计思路。
范·洛依德体系结构包括储存程序、指令集、控制器和运算器等核心组件,其影响至今。
二、第二代计算机体系结构20世纪50年代到60年代,晶体管技术的发展使计算机体系结构迈向了第二代。
此时,计算机厂商开始设计采用存储器单元的计算机,这些计算机使用指令的地址作为操作数,提高了计算机的运算速度和灵活性。
麻省理工学院的IBM 709和IBM 704计算机是这一时期的典型代表。
三、第三代计算机体系结构20世纪60年代至80年代中期,计算机体系结构迎来第三代的革命。
这一时期,集成电路的应用使得计算机在整体上更小、更便宜、更可靠、更易于维护。
计算机体系结构设计开始关注并行处理和虚拟内存等概念。
1971年,英特尔发布了第一款微处理器Intel 4004,标志着个人计算机时代的到来。
四、第四代计算机体系结构20世纪80年代后期至今,计算机体系结构进入第四代。
这一时期,计算机处理能力大幅提升,数据吞吐量迅速增长,多处理器和多核心设计成为主流,计算机大规模并行处理能力显著加强。
此外,计算机体系结构开始关注功耗和能效的问题,并提出了众核处理器等创新设计。
五、未来计算机体系结构的发展趋势随着人工智能、大数据和物联网等技术的快速发展,计算机体系结构也在不断变化和创新。
未来的计算机体系结构将更加注重能效、并行处理能力和存储技术的优化。
例如,量子计算机、光子计算机和神经元计算机等新的计算机体系结构也将有可能成为未来的发展方向。
结论:计算机体系结构的发展历史经历了多个阶段,从早期的范·洛依德体系结构到现代的多核处理器设计,计算机体系结构不断创新和优化。
从多核到众核处理器
从多核到众核处理器其实“多核”这个词已经流行很多年了,世界上第一款商用的非嵌入式多核处理器是2002年IBM推出的POWER4。
当然,多核这个词汇的流行主要归功与AMD和Intel的广告,Intel与AMD的真假四核之争,以及如今的电脑芯片市场上全是多核处理器的事实。
接下来,学术界的研究人员开始讨论未来成百上千核的处理器了。
有一个与多核匹配的词叫片上网络(Networks on Chip),讲的是多核里的网络式互连结构,甚至有人预测未来将互连网集成到片上这种概念了。
当然,这样的名词是很吸引眼球的,不过什么东西都得从实际出发,这篇文章也就简单地分析了为什么有多核这个事情,以及多核系统的挑战。
为什么有多核处理器?事先需要提及的是,一个常见误区就是多核和众核处理器的发展来源于应用和市场驱动。
实际上,应用和市场希望单核处理器的寿命越来越长,而物理限制是多核以及未来众核处理器出现和发展的动力。
之后我们来谈论一下,首先,为什么有多核处理器?从Intel 80286到Intel Pentium 4大概二十多年的时间都是单核处理器的天下,为什么最近几年单核处理器却销声匿迹了?是什么导致了多核时代的到来?这里需要知道一个经验定律和三个限制,他们是多核处理器的最本质缘由。
这个定理就是摩尔定律。
Gordon Moore博士是Intel的创始人之一。
早在他参与创建Intel之前的1965年,他就提出,在至少十年内,每个芯片上集成的晶体管数(集成度)会每两年翻一番。
后来,大家把这个周期缩短到十八个月。
这个指数规律的发展速度是令人难以置信的,大家都听过那个国王按几何级数赏赐大臣谷粒,从而使得国库被掏空的传说。
而摩尔定律讲得就是现实中晶体管数量几何级数倍增的故事,更令人难以置信的是这个速度保持到今天已经快五十年了。
人类历史上应该还没有任何技术是指数发展这么久的。
题外话一句,若干年前,互联网骨干网带宽曾经这么指数了几年,曾有人将其总结为一个定律忽悠一堆人研究光纤通讯,后来发现带宽没法按照指数定律涨了,许多搞光电的人也就找不到工作了。
计算机行业智能化计算机硬件与软件方案
计算机行业智能化计算机硬件与软件方案第1章智能化计算机硬件概述 (3)1.1 计算机硬件发展历程 (3)1.1.1 传统计算机硬件的演变 (3)1.1.2 硬件体系结构的演变 (3)1.2 智能化硬件特点与趋势 (3)1.2.1 智能化硬件特点 (3)1.2.2 智能化硬件趋势 (4)1.3 智能化硬件关键技术与产品 (4)1.3.1 关键技术 (4)1.3.2 代表性产品 (4)第2章智能化处理器与芯片技术 (5)2.1 智能处理器架构 (5)2.1.1 异构计算架构 (5)2.1.2 可重构处理器架构 (5)2.1.3 众核处理器架构 (5)2.2 人工智能芯片设计 (5)2.2.1 神经网络处理器 (5)2.2.2 张量处理器 (5)2.2.3 可编程人工智能芯片 (5)2.3 边缘计算芯片应用 (6)2.3.1 物联网 (6)2.3.2 移动设备 (6)2.3.3 自动驾驶 (6)第3章存储设备与技术 (6)3.1 传统存储设备 (6)3.1.1 硬盘存储 (6)3.1.2 光盘存储 (6)3.1.3 U盘存储 (6)3.2 分布式存储技术 (6)3.2.1 分布式存储概述 (6)3.2.2 分布式文件系统 (7)3.2.3 分布式数据库 (7)3.3 存储优化与数据管理 (7)3.3.1 存储优化策略 (7)3.3.2 数据管理技术 (7)3.3.3 数据保护与容灾 (7)3.3.4 存储设备管理 (7)第4章智能化网络设备与技术 (7)4.1 网络设备发展概述 (7)4.2 智能交换机与路由器 (7)4.2.1 智能交换机 (7)4.3 软件定义网络(SDN) (8)第5章输入输出设备与技术 (9)5.1 显示设备与技术 (9)5.1.1 液晶显示器(LCD)技术 (9)5.1.2 有机发光二极管显示器(OLED)技术 (9)5.2 输入设备与交互技术 (9)5.2.1 键盘与鼠标技术 (9)5.2.2 触摸屏技术 (9)5.3 输出设备与打印技术 (9)5.3.1 打印机技术 (10)5.3.2 喷墨打印技术 (10)5.3.3 激光打印技术 (10)第6章智能化操作系统与平台 (10)6.1 操作系统发展历程 (10)6.2 智能化操作系统特性 (10)6.3 通用操作系统与定制化平台 (11)第7章人工智能算法与框架 (11)7.1 机器学习算法 (11)7.1.1 线性回归算法 (11)7.1.2 逻辑回归算法 (11)7.1.3 决策树算法 (11)7.1.4 随机森林算法 (11)7.1.5 支持向量机算法 (11)7.2 深度学习框架 (11)7.2.1 TensorFlow (12)7.2.2 PyTorch (12)7.2.3 Keras (12)7.2.4 Caffe (12)7.3 计算机视觉与语音识别 (12)7.3.1 计算机视觉 (12)7.3.2 语音识别 (12)7.3.3 多模态识别 (12)第8章数据中心与云计算 (12)8.1 数据中心建设与发展 (12)8.1.1 数据中心概述 (12)8.1.2 数据中心建设 (13)8.1.3 数据中心发展 (13)8.2 云计算服务模式 (13)8.2.1 云计算概述 (13)8.2.2 基础设施即服务(IaaS) (13)8.2.3 平台即服务(PaaS) (13)8.2.4 软件即服务(SaaS) (13)8.3 虚拟化与容器技术 (14)8.3.2 容器技术 (14)8.3.3 虚拟化与容器技术的应用 (14)第9章网络安全与隐私保护 (14)9.1 网络安全威胁与防护 (14)9.1.1 常见网络安全威胁 (14)9.1.2 防护策略与措施 (14)9.2 数据加密与隐私保护技术 (14)9.2.1 数据加密技术 (14)9.2.2 隐私保护技术 (14)9.3 安全协议与标准 (15)9.3.1 安全协议概述 (15)9.3.2 常见网络安全标准 (15)9.3.3 安全协议与标准的实施与评估 (15)第10章智能化计算机应用案例 (15)10.1 智能制造与工业互联网 (15)10.2 智能医疗与健康 (15)10.3 智能交通与自动驾驶 (16)10.4 智能家居与生活服务 (16)第1章智能化计算机硬件概述1.1 计算机硬件发展历程1.1.1 传统计算机硬件的演变计算机硬件自20世纪中叶诞生以来,经历了多次重大变革。
面向国产申威26010众核处理器的SpMV实现与优化
面向国产申威26010众核处理器的SpMV实现与优化刘芳芳;杨超;袁欣辉;吴长茂;敖玉龙【摘要】世界首台峰值性能超过100P的超级计算机——神威太湖之光已经研制完成,该超级计算机采用了国产申威异构众核处理器,该处理器不同于现有的纯CPU,CPU-MIC,CPU-GPU架构,采用了主-从核架构,单处理器峰值计算能力为3TFlops/s,访存带宽为130GB/s.稀疏矩阵向量乘SpMV(sparse matrix-vector multiplication)是科学与工程计算中的一个非常重要的核心函数,众所周知,其是带宽受限型的,且存在间接访存操作.国产申威处理器给稀疏矩阵向量乘的高效实现带来了很大的挑战.针对申威处理器提出了一种CSR格式SpMV操作的通用异构众核并行算法,该算法从任务划分、LDM空间划分方面进行精细设计,提出了一套动静态buffer的缓存机制以提升向量x的访存命中率提出了一套动静态的任务调度方法以实现负载均衡.另外还分析了该算法中影响SpMV性能的几个关键因素,并开展了自适应优化,进一步提升了性能.采用Matrix Market矩阵集中具有代表性的16个稀疏矩阵进行了测试,相比主核版最高有10倍左右的加速,平均加速比为6.51.通过采用主核版CSR格式SpMV的访存量进行分析,测试矩阵最高可达该处理器实测带宽的86%,平均可达到47%.【期刊名称】《软件学报》【年(卷),期】2018(029)012【总页数】12页(P3921-3932)【关键词】稀疏矩阵向量乘;SpMV;申威26010处理器;异构众核并行;自适应优化【作者】刘芳芳;杨超;袁欣辉;吴长茂;敖玉龙【作者单位】中国科学院软件研究所并行软件与计算科学实验室,北京 100190;中国科学院大学,北京 100049;中国科学院软件研究所并行软件与计算科学实验室,北京 100190;计算机科学国家重点实验室(中国科学院软件研究所),北京100190;北京大学数学科学学院,北京100871;国家并行计算机工程技术研究中心,北京 100190;中国科学院软件研究所并行软件与计算科学实验室,北京 100190;中国科学院软件研究所并行软件与计算科学实验室,北京 100190;中国科学院大学,北京 100049;北京大学数学科学学院,北京100871【正文语种】中文【中图分类】TP303稀疏矩阵向量乘(SpMV)y=Ax是科学与工程计算中一个非常重要的计算内核,其性能往往对应用整体性能有着很大影响.SpMV是属于访存密集型的,算法中的浮点计算与存储访问的比率很低,且稀疏矩阵非零元素分布很不规则,使得向量x为间接访问且访问不规则,可重用性差,这些因素给SpMV的高效实现带来很大挑战.目前,超级计算机的体系结构已经从多核向众核乃至异构众核发展,然而访存墙问题却越来越突出,带宽受限型操作的峰值性能也越来越低,并且实现难度逐步增大.由我国国家并行计算机工程技术研究中心研制的新一代申威异构众核处理器已经面世,其峰值性能为3TFlops/s,聚合访存带宽为130GB/s,相比计算能力,其访存能力偏弱,给稀疏矩阵向量乘的高效实现带来了巨大的挑战.本文针对该处理器特点,提出一种面向传统的稀疏矩阵存储格式CSR的通用SpMV异构众核并行算法,并从任务划分、LDM空间划分、向量x访存优化、负载均衡、自适应优化等角度开展工作.1 相关工作介绍SpMV的实现和优化,一直是高性能计算领域科研人员的研究重点.每当一款新的处理器问世,基于该处理器的 SpMV实现及优化的工作就会持续出现.基于 CPU的SpMV工作有很多,主要从存储格式[1,2]、分块算法[3-5]、值和索引压缩[6,7]、向量化[8,9]、自适应优化[10,11]等角度开展研究.2008年,GPGPU出现,开启了GPU用于通用计算的热潮.随后,基于GPU的SpMV 工作大量涌现,这些工作主要通过存储格式、重排、压缩、自适应调优等技术解决带宽利用率、负载均衡、并行度等问题,先后提出了HYB[12],ELLPACK-R[13],sliced-ELLPACK[14],blocked ELLPACK[15],BRC[16],BCCOO[17]等新型存储格式;研究了稀疏矩阵的重排技术[18]及压缩格式[19],以减少访存开销;研究了GPU平台体系结构特征、稀疏矩阵存储格式、稀疏矩阵集之间的关系,并给出自动选择模型[20];另外还研究了自动调优技术[17,21,22],以根据稀疏矩阵的特征选择最优参数并获取较优的性能.2011年,Intel公司的异构众核处理器Xeon Phi发布.随后,Liu等人[23]提出了新的ESB格式,该格式可有效改善Xeon Phi上SpMV向量化性能,并能减少访存开销,另外还提出了混合的动态调度器以改善并行任务的负载均衡性;Tang等人[24]通过新的存储格式VHCC、二维不规则任务划分、自动调优技术等优化了一类scale-free 稀疏矩阵SpMV的性能.另外还有一类工作涉及到多个异构众核处理器,Kreutzer等人[25]主要从改善向量化性能的角度提出新的存储格式SELL-C-σ;Liu等人[26]提出了CSR5存储格式用于改善不规则稀疏矩阵SpMV的性能,在多个异构众核处理器上实现并与现有最优工作进行了对比.本文主要研究面向申威26010异构众核处理器的SpMV并行算法及实现和优化技术,以支撑该国产平台相关应用.2 国产申威26010处理器介绍国产申威 26010处理器采用异构众核架构,由 4个核组(core group,简称 CG)组成,其双精度计算能力3TFlops/s,单处理器拥有260个核心,采用共享存储架构,聚合访存带宽130GB/s.基于该处理器搭建了国产神威太湖之光超级计算机,已经部署于国家超算无锡中心,其峰值性能超过100PFlops/s.本文主要在其一个核组上开展工作,如图1所示.每个核组由控制核心(management processing element,简称MPE,又称主核)、计算核心簇(computing processing elements clusters,简称CPE cluster,又称从核)、协议处理部件(PPU)和存储控制器(memory controller,简称MC)组成.平均每个核组的访存带宽为32.5GB/s,实测带宽为27.5GB/s.主核采用通用的RISC架构,向量化宽度256位,采用一级数据和指令Cache分离、二级指令数据共享的两级片上存储层次.从核核组采用拓扑为8×8 mesh互联,包含64个计算核心和DMA(DMA controller)控制器.计算核心采用精简的64位RISC 指令集,向量化宽度为256位,有64KB的Scratch Pad Memory(又称LDM),通过DMA可实现内存与LDM间的快速数据传输.应用程序由控制核心启动,借助高性能线程库Athread将计算任务异步加载到计算核心执行,双方通过同步接口协同. Fig.1 The architecture of SW26010 processor图1 国产申威26010处理器单核组架构图3 CSR格式简介CSR格式是目前稀疏矩阵使用最广泛的一种存储格式.设待存储的稀疏矩阵A是m×n维的,有nz个非零元,其通过3个一维数组来存储稀疏矩阵的信息,具体如下: ·val[nz],记录每个非零元的值;·col[nz],记录每个非零元所在的列;·ptr[m+1],记录每行的第1个非零元在数组val[nz]和col[nz]中的索引,其中,ptr[m]=nz.图2给出了一个示例.目前,大多数科学与工程计算应用的矩阵中均采用CSR格式进行存储,国际上SpMV算法的研究也大都以 CSR格式为基准,如果采用其他存储格式,还需衡量该格式到 CSR格式的转换开销,故本文直接研究基于CSR格式的SpMV算法.Fig.2 The CSR format图2 CSR格式示意图4 SpMV异构众核并行算法4.1 任务划分申威众核处理器每个核组包括1个主核和64个从核,为了充分利用从核核组的计算资源,我们将计算任务尽可能的分给从核,主核主要负责前处理和控制.对于稀疏矩阵而言,任务划分方法有两种:一维划分和二维划分.二维划分时,多个从核会同时更新y向量的一部分,需要加锁处理,从而导致额外的开销.对规则稀疏矩阵而言,每行的非零元个数较少,LDM 可以容纳至少一行计算所需的元素,所以我们采用一维的任务划分方法.如果矩阵一行的非零元太多,导致 LDM 空间不能一次容纳一行的元素进行计算,那么将采用主核进行计算.一维划分方式又有两种(如图3所示,其中,srow为当前申威处理器一个从核的LDM 可以容纳的最多稀疏行大小).静态任务划分:将矩阵按行等分,每个从核计算m/64行,从核的内部循环开始执行,每次只计算矩阵的srow行;动态任务划分:将矩阵srow行的计算视为一个子任务,形成任务池.每个从核一次只负责一个子任务,执行结束后,再取下一个子任务进行计算.Fig.3 Task partition图3 任务划分示意图具体计算方式见第 4.2节.静态任务划分方式每个从核执行的矩阵行数基本相同;动态任务划分方式时,每个从核执行的矩阵行数根据当前从核的执行情况动态调整,总矩阵行数可能大不相同.这两种方式分别适用于不同类型的稀疏矩阵,见第5.2节.4.2 LDM空间划分每个从核的LDM空间相当于一块高速缓存,从核访问LDM中的数据仅需要数拍即可完成,而从核直接访问主存则需要200多拍,所以LDM空间的使用对并行算法的设计至关重要.每个从核的LDM空间仅有64KB,而CSR格式的SpMV计算需要val,col,ptr,x,y这5个数组的值才能完成.根据第4.1节中的任务划分方式,每个从核每次只计算srow行,那么y的空间只需srow大小,其余行计算时可以重复利用此块空间;ptr数组类似,只需srow+1大小.由于SpMV计算中x的访存是不连续且不规则的,对整体性能影响很大.为此,我们为其预留较多的空间以增加命中率.每个从核64KB空间分配如下:24KB用于存储x,y,ptr和其他局部变量,40KB用于存放val和col.由于val为双精度数据类型,col为整型数据类型,共占 12字节,所以40KB空间最多只能存储40×1024/12个val和col元素,即3 413个.那么srow=3413/maxnz,其中,maxnz为该稀疏矩阵每行最大的非零元个数.若采用双缓冲优化,则该值减半,val,col,ptr均设置两块buffer,大小为原来的一半.x设置2块buffer:一块静态buffer,其大小为xssize;一块动态buffer,其大小为xdsize.静态buffer加载一次后重复使用;动态 buffer在静态 buffer没有命中时使用,如没有命中,则从当前所需的x处加载xdsize个数据到动态buffer,后续计算时先查找静态 buffer,再查找动态 buffer,如果没有命中,继续加载xdsize个数据到动态 buffer中.具体流程如图4所示.Fig.4 The flowchart of dynamic and static buffer loading ofx图4 x的动静态buffer加载示意图对每个矩阵而言,xssize的最大值由srow确定,该缓冲区的大小直接影响了SpMV 的最终性能.对于xdsize的选择,我们期望读取一次的开销与访问一次主存的开销相当.经测试,DMA传递32个元素的开销与访问一次主存的开销相当,故xdsize设置为32.5 实现及优化5.1x访存优化稀疏矩阵向量乘中,x是间接访存,访存行为很不规则,在申威众核处理器上,x的访存是优化的重点,直接对其最终性能起到决定性的影响.x的访存有几种方式.(1) 所有的x直接从主存读取;(2) 每个从核通过DMA预取部分x,其余x通过访问主存得到,记为static-dma;(3) 动静态buffer方式,记为static-dynamic.具体见第4.2节.由于从核访问一次主存约需200多拍,方案1性能明显很差,所以实际中并未使用.方案2和方案3中静态buffer的大小见第4.2节.第6.2.1节给出了两种方案的性能对比结果.另外,加载静态buffer的初始位置对SpMV的性能也有一些影响.初始位置有两种选择.1) 从当前从核计算的行块的起始位置读取,记为start-x-row;2) 从当前从核计算行块所需的第一个x处读取,记为start-x-current.5.2 负载均衡稀疏矩阵每行的非零元个数不尽相同,且分布不均.按照图3(a)中的静态任务划分方法,对有些矩阵会导致从核间负载不均衡,这个负载不均衡来自两个方面.· 每个从核计算的行块的总非零元个数可能差异较大;· 每个从核计算的行块中x的访存行为可能差异较大.为了解决负载不均衡的问题,本文还采用了动态任务划分的方式,如图3(b)中所示.该方式中,从核间协同,通过采用我们自己用原子操作实现的锁来完成.然而,由于目前的锁实现中需要访问主存,这个代价比较高,所以其性能较差,具体见第6.2.2节.为此,本文对这种调度方式进一步进行了优化,只在第1次运行SpMV时采用动态调度,并记录每个计算核心所分配的任务,在以后的执行过程中,均按照这种方式来进行任务分配,我们将其称为动-静态任务调度.5.3 自适应优化由于实际应用中稀疏矩阵千差万别,非零元的分布方式各不相同.对每一个稀疏矩阵而言,任务分配方式、静态buffer大小、静态buffer加载的起始位置等均对其性能有着很大的影响,有必要针对该稀疏矩阵选择最优的参数组合.可选的参数如下: · 调度方式,有两种选择:静态调度和动静态结合的调度方式;· 静态buffer读取的起始位置;· 静态buffer的大小,其最大值受LDM限制,每个矩阵均不同,初始值选为128,每128递增.为了减少搜索开销,本文对Matrix Market矩阵集中57个不同类型的稀疏矩阵选择不同参数的性能结果进行分析,发现任务调度方式、静态buffer读取的起始位置均与静态buffer的大小关系不大,据此,本文确定了如图5的搜索顺序.该搜索过程需要大约3~22个SpMV的时间,但是对于实际应用来说,这个过程可以预先进行,以便于在以后的迭代过程中选用性能最高的SpMV实现.Fig.5 The flowchart of search of optimal parameter图5 最优参数搜索顺序图5.4 双缓冲优化该处理器从核上支持DMA访存与计算重叠,为了验证其有效性,本文设置LDM上val,col,ptr的双buffer.图6中,上图展示了单buffer的计算和访存流程,下图展示了双buffer的计算和访存流程.但该异构众核SpMV算法中主要以DMA操作为主,计算所占的比重很小,该优化对整体的性能影响不大.Fig.6 SpMV with CSR format in timeline图6 CSR格式SpMV时序图6 实验结果6.1 实验平台我们采用神威“太湖之光”的一个核组作为测试平台,借助高性能线程库Athread 将计算任务异步加载到从核执行.测试矩阵选用了Matrix Market矩阵集中的矩阵进行测试,矩阵规模从数千到百万,矩阵非零元个数从数万到1 00多万.表1中给出了测试矩阵的基本信息.Table 1 The information of test matrices表1 测试矩阵信息表注:下节给出的所有测试结果均为计算50次SpMV的时间.编号矩阵名字矩阵维数(m) 非零元数(nz)1 bcsstk17 10 974 428 650 2 bcsstk28 4 410 219 024 3 raefsky2 3 242 294 276 4 Linverse 11 999 95 977 5 Cant 62 451 4 007 383 6 s3dkq4m2 90 449 4 820 891 7 fv2 9 801 87 025 8 nemeth01 9 506 725 054 9 LF10000 19 998 99 982 10 af_0_k101 503 625 17 550 675 11 cavity20 4 562 138 187 12 ecology1 1 000 000 4 996 000 13 epb3 84 617 463 625 14 qa8fk 66 127 1 660 579 15 Obstclae 40 000 197 608 16 af_shell3 504 855 17 588 8756.2 测试结果6.2.1x访存优化的对比结果图7中比较了第5.1节中提到的方案2和方案3的性能,从图中可以看出,方案3明显优于方案2,最高加速比可达21倍.这是因为方案3利用了稀疏矩阵的局部性,动态缓冲区的x数据得以重复利用.图8中给出了部分矩阵选用两种加载静态buffer的起始位置的性能对比.矩阵qa8fk,raefsky2,cavity20选用方案2性能较好,而cant和s3dkq4m2是选用方案1性能较好,性能差最大的有55%,最小的也有11%.Fig.7 The optimized performance ofxloading图7x访存优化效果对比图Fig.8 The impact of the start position of loading dynamic/static buffer on performance图8 加载动静态buffer的初始位置对性能的影响6.2.2 任务调度由于稀疏矩阵千差万别,不同的任务调度方式对其优化的效果也不尽相同,图9中给出了动-静态调度方式性能较好的测试矩阵的结果,并将其与静态调度方式进行了对比.其中,两种调度方式均采用从当前所需的第 1个x作为起点加载静态buffer,并且选用了xssize可选范围内的最优性能.从图中可以看出,最大加速比可以达到6倍多,说明不同任务调度方式对某些矩阵的性能有着很大的影响.第6.2节中提到:动态调度时,由于加锁引入了额外的开销.图10中比较了采用动态调度进行计算的时间(记为dynamic)与利用动态调度的任务划分方式进行静态分配的计算时间(记为static(dynamic)),其性能约有10%~40%的差异.Fig.9 The impact of different scheduling method on performance图9 不同的任务调度方式的优化效果Fig.10 Comparison of the first two calculations using the static (dynamic) method 图10 动静态调度方式前两次性能对比6.2.3 自适应优化图11给出了对第5.3节中提到的3个参数进行自适应优化的性能结果(不含调优时间),并与采用静态调度方式、xssize=1536、从当前所需的第1个x进行加载静态buffer的方法进行了对比.从图中可以看出:自适应优化取得了比较明显的加速效果,平均性能提升为44%,最大的ecology1矩阵可达到6倍多,这主要是动静态任务调度带来的加速.Fig.11 The performance of adaptive optimization图11 自适应优化效果图6.2.4 性能结果本文对选取的 16个矩阵进行了测试,图12(a)展示了分别在主核和从核运行的结果,主核版采用最原始的CSR格式SpMV实现.可以看出:测试的矩阵相对主核版均有不同程度的性能提升,最高可达10倍多,最低也有4倍多,平均加速比为 6.51倍.另外,本文还测试了带宽利用率,总访存量采用公式nz×12+(nrow+1)×4+nrow×8×2来计算.图12(b)给出了测试矩阵的带宽利用率(总带宽按照实测带宽27.5Gb/s计算),最高可达86.09%,最低可达31.76%,平均带宽利用率为47%.Fig.12 The performance of bandwidth efficiency of test matrices图12 测试矩阵的性能及带宽利用率6.3 测试结果分析从测试结果来看,从核上 SpMV的性能与其非零元的分布有很大关系.如果非零元分布的局部性特征比较明显,那么本算法中动静态buffer的命中率较高,从而整体性能较好.目前,整体的带宽偏低,这是因为计算时采用了主核计算 CSR格式 SpMV的访存量,而实际在从核计算时,由于x的间接访问,必然会引入x的额外访存.未来将进一步改进x的访存策略,以提升整体性能.对于一个特定的矩阵,可通过观察分析其非零元的分布规律,设计出特定的x的传输方案,这样能尽可能地减少x的冗余访存,进而提升带宽利用率和整体性能.7 结论及下一步工作SpMV是众多科学与工程应用中经常调用的核心函数之一,其性能至关重要.而CSR 格式是使用最广泛的一种稀疏矩阵存储格式.本文针对申威处理器提出了一种CSR 存储格式SpMV操作的通用异构众核并行算法,该算法首先从任务划分、LDM 空间划分方面进行精细设计.为了提升向量x的访存命中率,本文提出了一套动静态buffer的缓存机制,并分析了加载静态 buffer 起始位置对性能的影响;对某些稀疏矩阵从核间负载不均衡的原因,提出了一套动静态的任务调度方法以实现负载均衡.另外,还分析了该算法中影响SpMV性能的几个关键因素,并开展了自适应优化,进一步提升了性能.对于CSR格式的SpMV,未来还需进一步考虑提升x访存命中率的方法,比如利用该处理器的寄存器通信.还可以考虑根据稀疏矩阵的x访存特征对其进行分类,对每一类的矩阵采用更加适合的访存方法,以提升自适应性.另外还需考虑新的整体访存量更少的存储格式,以提升整体性能.References:【相关文献】[1] Kourtis K,Karakasis V,Goumas G,Koziris N.CSX:An extended compression format for SpMV on shared memory systems.In:Proc.of the 16th ACM Symp.on Principles and Practice of Parallel Programming.San Antonio,2011.[2] Sun XZ,Zhang YQ,Wang T,Long GP,Zhang XY,Li Y.Crsd:Application specific auto-tuning of SpMV for diagonal sparse matrices.In:Proc.of the 17th Int’l Conf.on Parallel Processing—Vol.Part II (Euro-Par 2011).2011.316-327.[3] Im EJ,Yelick K.Optimizing sparse matrix computations for register reuse in SPARSITY.In:Proc.of th e Int’l Conf.on Computational Science.LNCS 2073,2001.127-136.[4] Nishtala R,Vuduc R,Demmel,J,Yelick K.When cache blocking sparse matrix vector multiply works and why.In:Proc.of the Applicable Algebra inEngineering,Communication,and Computing.2007.[5] Mellor-Crummey J,Garvin J.Optimizing sparse matrix-vector product computations using unroll and JAM.Int’l Journal of High Performance ComputingApplications,2004,18:225-236.[6] Willcock J,Lumsdaine A.Accelerating sparse matrix computations via datacompress ion.In:Proc.of the 20th Annual Int’l Conf.on Supercomputing (ICS 2006).New York,2006.307-316.[7] Kourtis K,Goumas G,Koziris N.Optimizing sparse matrix-vector multiplication using index and value compression.In:Proc.of the 5th Conf.on Computing Frontiers.Ischia,2008.[8] D’Azevedo E,Fahey M,Mills R.Vectorized sparse matrix multiply for compressed row storage format.In:Proc.of the Int’l Conf.on Computational Science.2005.[9] Williams S,Oliker L,Vuduc R,Shalf J,Yelick K,Demmel J.Optimization of sparse matrix-vector multiplication on emerging multicore platforms.In:Proc.of the 2007 ACM IEEE Conf.on Supercom-Putting.Reno,2007.[10] Vuduc R,Demmel J,Yelick K.OSKI:A library of automatically tuned sparse matrix kernels.In:Proc.of the SciDAC 2005,Journal of Physics:Conf.Series,2005.[11] Li JJ,Tan GM,Chen M,Sun NH.SMAT:An input adaptive auto-tuner for sparse matrix-vector multiplication.In:Proc.of the 34th ACM SIGPLAN Conf.on Programming LanguageDesign and Implementation (PLDI 2013).2013.117-226.[12] Bell N,Garland M.Implementing sparse matrix-vector multiplication on throughput-oriented processors.In:Proc.of the Conf.on High Performance Computing Networking,Storage and Analysis.ACM Press,2009.18.[13] Vazquez F,Fernandez J,Garzon E.A new approach for sparse matrix vector product on NVIDIA GPUs.Concurrency and Computation:Practice and Experience,2011,23(8):815-826.[14] Monakov A,Lokhmotov A,Avetisyan A.Automatically tuning sparse matrix-vector multiplication for GPU architectures.In:Proc.of the Int’l Conf.on High-Performance Embedded Architectures and Compilers.Berlin,Heidelberg:Springer-Verlag,2010.111-125.[15] Choi JW,Singh A,Vuduc RW.Model-Driven autotuning of sparse matrix-vector multiply on GPUs.ACM Sigplan Notices,2010,45(5):115-126.[16] Ashari A,Sedaghati N,Eisenlohr J,etal.An efficient two-dimensional blocking strategy for sparse matrix-vector multiplication on GPUs.In:Proc.of the 28th ACM Int’l Conf.on Supercomputing.ACM Press,2014.273-282.[17] Yan S,Li C,Zhang Y,etal.yaSpMV:Yet another SpMV framework on GPUs.ACM SIGPLAN Notices,2014,49(8):107-118.[18] Pichel JC,Rivera FF,Fernández M,etal.Optimization of sparse matrix-vector multiplication using reordering techniques on GPUs.Microprocessors and Microsystems,2012,36(2):65-77.[19] Tang WT,Tan WJ,Ray R,etal.Accelerating sparse matrix-vector multiplication on GPUs using bit-representation-optimized schemes.In:Proc.of the Int’l Conf.on High Performance Computing,Networking,Storage and Analysis.ACM Press,2013.26.[20] Sedaghati N,Mu T,Pouchet LN,etal.Automatic selection of sparse matrix representation on GPUs.In:Proc.of the 29th ACM Int’l Conf.on Supercomputing.ACM Press,2015.99-108.[21] Ashari A,Sedaghati N,Eisenlohr J,etal.Fast sparse matrix-vector multiplication on GPUs for graph applications.In:Proc.of the Int’l Conf.for High PerformanceComputing,Networking,Storage and Analysis (SC 2014).IEEE,2014.781-792.[22] Guo D,Gropp W.Adaptive thread distributions for SpMV on a GPU.In:Proc.of the Extreme Scaling Workshop.University of Illinois at Urbana-Champaign,2012.2.[23] Liu X,Smelyanskiy M,Chow E,etal.Efficient sparse matrix-vector multiplication on x86-based many-core processors.In:Proc.of the ACM Int’l Conf.onSupercomputing.2013.273-282.[24] Tang WT,Zhao R,Lu M,etal.Optimizing and auto-tuning scale-free sparse matrix-vector multiplication on Intel Xeon Phi.In:Proc.of the 2015 IEEE ACM Int’l Symp.on Code Generation and Optimization (CGO).2015.136-145.[25] Kreutzer M,Hager G,Wellein G,etal.A unified sparse matrix data format for efficientgeneral sparse matrix-vector multiplication on modern processors with wide SIMD units.SIAM Journal on Scientific Computing,2014,36(5):C401-C423.[26] Liu W,Vinter B.CSR5:An efficient storage format for cross-platform sparse matrix-vector multiplication.In:Proc.of the ACM Int’l Conf.on Supercomputing.2015.339-350.。
多核处理器体系结构分析
多核技术的优势
多核处理器体系结构分析
多核的并行运行
多核处理器体系结构分析
在每个核中,线程是并发的
多核处理器体系结构分析
多核与多处理器的比较
多处理器:两个或两个以上的CPU及主板上 的多个CPU插槽
多核处理器:一颗CPU搭载两个核芯,即1 die 2 cores ,即在一个单晶硅上集成了多个 核芯
多核处理器体系结构分析
多核与多处理器的比两个较处理器
• 两个分开的芯片通过外在系统总 线连接
• 需要外在软件支持 • 更多的热量消耗
双核
■ 两个核在一个芯片内直接连接 ■ 多线程和多进程自动并行处理 ■ 热量消耗增加的很少 ■ 封装成本降低
多核处理器体系结构分析
多核与超线程的比较
超线程:Hyper-Threading Technology HT是Intel对SMT的实现,在最近的P4和Xeon处
多核处理器体系结构分析
AMD双核
多核处理器体系结构分析
AMD四核酷龙
Large shared L3 cache shares data between cores efficiently while helping reduce latency to main memory
Dedicated L1 and L2 cache per core helps performance of virtualized environments and large databases by reducing cache pollution associated with a shared L2 cache
但近年来,通过这些技术并未获得更好的性能 能量和存储延时问题,已经成为提高单线程性能的障
计算机组成原理期末考试试题及答案
计算机组成原理期末考试试题及答案一、选择题(每题2分,共20分)1. 计算机系统由哪两部分组成?A. 硬件和软件B. 输入和输出设备C. 中央处理器和外部设备D. 存储器和输入输出设备答案:A2. 下面哪个寄存器用来存放指令?A. 累加寄存器B. 指令寄存器C. 程序计数器D. 状态寄存器答案:B3. 下面哪种总线用于连接CPU和内存?A. 数据总线B. 地址总线C. 控制总线D. 局部总线答案:B4. 下面哪个设备不属于输入设备?A. 键盘B. 鼠标C. 扫描仪D. 打印机答案:D5. 下面哪个设备不属于输出设备?A. 显示器B. 打印机C. 扬声器D. 键盘答案:D6. 下面哪个操作属于逻辑运算?A. 加法B. 减法C. 与运算D. 乘法答案:C7. 下面哪种存储器属于随机访问存储器?A. 硬盘B. U盘C. RAMD. ROM答案:C8. 下面哪个部件负责数据的输入输出操作?A. CPUB. 内存C. 硬盘D. I/O接口答案:D9. 下面哪个技术用于提高CPU的工作频率?A. 超线程B. 超频C. 虚拟化D. 多核答案:B10. 下面哪个总线标准用于连接CPU和外部设备?A. PCIB. USBC. IDED. SATA答案:A二、填空题(每题2分,共20分)1. 计算机的硬件系统主要包括五大部件:________、________、________、________和________。
答案:控制器、运算器、存储器、输入设备、输出设备2. 计算机指令通常由________和________两部分组成。
答案:操作码、操作数3. 在计算机中,数据总线的宽度决定了计算机的________。
答案:字长4. 计算机的存储器系统分为________和________两大部分。
答案:主存储器、辅助存储器5. I/O端口地址分为________和________两种。
答案:统一编址、独立编址三、判断题(每题2分,共20分)1. 计算机的性能主要取决于CPU的性能。
超级计算机的技术路线与应用前景
超级计算机的技术路线与应用前景随着科技的快速发展,超级计算机也在不断地升级和更新。
超级计算机是指具备极高性能和复杂操作能力的计算机系统,它可以进行高速而精密的计算和模拟,用来处理人们日常生活和工业生产中的各种问题,包括科学、工程、商业和军事等领域。
超级计算机的技术路线和应用前景备受人们关注。
一、超级计算机的技术路线超级计算机的技术路线的发展是一个跨越几十年的历程。
从20世纪60年代开始,使用大规模的超级计算机的目的是为了解决气象学、物理学、核物理学等领域的问题。
现在,超算已经成为很多领域的重要工具和支撑。
超级计算机的技术路线主要表现在以下几个方面:1. 架构优化超级计算机的设计理念已经由传统的单处理器向多处理器、多核和众核转变。
新的架构推崇高性能、低功耗和易于编程的理念。
由于许多超级计算机的应用程序都需要处理大规模数据集合和存储故障,超算的软硬件应用也在不断地发展。
2. 高速网络超级计算机往往需要快速传输大量的数据,并且需要保证数据的质量和安全性。
高速网络技术的出现让超级计算机的传输更加高效,也方便了数据在超算之间的共享。
3. 高速存储超级计算机需要处理大量的数据集合,因此需要更多容量的存储空间来存储这些数据。
新的技术,如闪存和非易失性RAM,已经成为超算的常规存储解决方案,取代了以前的磁盘阵列。
4. 加速器基于加速器的架构对于超级计算机的全面性能提升已经成为了不可或缺的技术,现在市面上主流的加速器有GPU、FPGA、ASIC等。
通过加速器,计算能力可以得到极大提升,而算法与编程的优化也成为了必须的考虑因素。
二、超级计算机的应用前景超级计算机可以在许多领域发挥重要作用,特别是一些需要高精准度模拟和大数据计算的领域。
现在,超级计算机的应用前景已经涵盖了以下几个方面:1. 气象灾害预防超级计算机在气象学上的应用已经成为了一个备受关注的领域。
由于其精准预测的能力,一些国家已经成功地建立了具有世界领先水平的气象预报系统。
多核、众核技术课件
线延迟变长
在众核设计中进行集中控制变得困难,如何采用更分布式的方式完成结 构设计?如何在分布的结构中实现共享数据的分发传播?如何在分布的 结构中实现高效的核间互斥并发操作?
------Tilera-Gx72-Raw结构
作者:杨颖超
4.1Tilera-Gx72
这是Tilera公司今年2月19发布的一款新的72核心的微 处理器。 Tilera-Gx72还包含了多项Tilera的特有技术:iMesh二 维互联、DDC分布式缓存一致性以及TileDirect I/O技术等, 提供了4个DDR3内存控制器,以及带有100Gb以太网的片 上 I/O 、 8 个可配置为 32 个 1GbE 端口的 10GbE 端口、以及 4个 PCI-E 端口。芯片主频为 1.2GHz ,带有 23MB 缓存, 16个内核可用于NIC功能。
作者:傅雪雪/张伟育
3.1 多核技术主要研究内容
并行编程 多核中的能源
核心内部的延迟
3.1.1并行编程
多核的成本优势与并行化计算与计算机性能上的需 求相结合,促进了多核并行编程。
美国斯坦福大学在20 世纪90 年代中期就开始了多核处理 器的研究。他们是目前学术界非常活跃的研究小组之一, 研究范围包括体系结构、应用程序分析研究,以及目前 处于热点的并行编程模型-事务存储。 日本的早稻田大学在20 世纪末就开始发表有关多核处理
Tilera-Gx72处理器结构图
内存控制器 系统集成
mpipe多核可编程智能引 擎系统提供线速数据包 分类,负载平衡和数据 包缓冲管理处理等操作
串行总线
网络端口
IO流接口
系统集成
芯片带有2个USB 2.0、1个主机接口。4个I2C接口。1个 SPI主接口,2个高速UART接口及48个中断引脚和JTAG 端口。 串行总线
多核与众核处理器体系结构研究与优化
多核与众核处理器体系结构研究与优化随着计算机技术的飞速发展,人们对处理器的要求越来越高。
与此同时,计算机体系结构也逐渐从单核走向了多核和众核。
多核和众核处理器相较于传统单核处理器,能够实现更高的计算性能和更强的并行处理能力。
本文将从多核和众核处理器的发展历程、体系结构以及优化方案三个方面进行探讨。
一、多核和众核处理器的发展历程多核和众核处理器不是一夜之间诞生的,它们经历了一段漫长的发展历程。
早在20世纪70年代,就有人开始提出多核和众核的概念。
但当时的硬件技术水平限制了其发展。
直到20世纪90年代,随着硬件技术的飞速发展,多核和众核处理器才得以大规模应用并逐渐成为主流。
2005年,Intel公司发布了第一款双核处理器Pentium D。
此后,各大芯片厂商纷纷推出了多核处理器产品。
如今,已经出现了拥有上百个核心的众核处理器,比如Xilinx的Zynq UltraScale+ MPSoC,它拥有了8个ARM A53核心,以及一个ARM R5F核心。
二、多核和众核处理器的体系结构多核和众核处理器的体系结构是由CPU核心数量、核心之间的通信方式以及共享的硬件资源三个因素组成。
1. CPU核心数量多核处理器指在单个芯片上集成了多个CPU核心。
而众核处理器则是指在单个芯片上集成了大量的CPU核心。
单个CPU核心无法满足处理器的需求,多个CPU核心可以同时执行多个任务,提高处理效率。
众核处理器更是可以同时执行大量的任务,加速计算过程。
2. 核心之间的通信方式多核和众核处理器的核心之间通过共享内存或者消息传递两种方式进行通信。
共享内存是指所有核心之间共享同一块物理内存,这样每个核心都可以直接读取和修改共享内存,因此共享内存方式的数据共享效率高,但会产生竞争、锁等问题。
消息传递则是指各个核心之间通过消息队列等方式传递数据,在核心之间不共享数据,避免了共享内存产生的问题。
3. 共享的硬件资源多核和众核处理器中的各个核心之间共享硬件资源,比如CPU缓存、总线带宽、内存带宽等。
mflops的名词解释
mflops的名词解释名词解释:MFLOPSMFLOPS是计算机性能测试中常用的一个指标,全称是“每秒百万浮点运算次数”(Million Floating-Point Operations Per Second)的缩写。
它用来衡量计算机处理器或整个计算系统的浮点运算速度,是评估计算机性能的重要标准之一。
在现代计算机应用中,尤其是科学计算、图像处理、人工智能等领域,对于高效的浮点运算能力有着迫切的需求。
1. 演化背景在过去几十年里,计算机技术发展迅猛,处理器的性能越来越强大。
从早期的单核处理器,到后来的多核处理器,以及现在的众核处理器,计算机的性能指标也在不断演进。
2. 浮点运算浮点运算是计算机处理器的一项主要任务,用来进行科学计算、图像处理、物理模拟等复杂计算过程。
与整数运算不同,浮点数计算具有更高的精度,可以表示更广泛的数值范围。
3. MFLOPS的计算方法MFLOPS通过测量计算机系统在单位时间内能够执行的浮点运算次数来衡量其计算性能。
通常,该指标通过执行一系列浮点运算代码,并记录计算所花费的时间来计算得出。
4. 实际应用MFLOPS是评估计算机性能的重要指标,它广泛应用于科学计算、模拟仿真、计算机图形学、深度学习等领域。
在这些领域中,需要处理大规模、复杂的数据,并进行高速的浮点运算,因此MFLOPS的提升对于提高计算效率至关重要。
5. MFLOPS的局限性尽管MFLOPS作为计算机性能的重要指标,但它也存在一些局限性。
首先,MFLOPS只能衡量计算机在浮点运算方面的性能,对于整数运算等其他计算任务并不敏感。
其次,不同计算机系统之间的MFLOPS值并不能直接进行比较,因为不同系统可能使用不同的测试方法和硬件设置。
6. 其他性能指标除了MFLOPS,还有一些其他常用的性能指标,如IPS(Instructions Per Second)、IPS(Instructions Per Cycle)等。
- 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的出发点也就是看到了多发射超标量处理器架构的末日,然后将多个简单的处理器核集成在了一个芯片上,互连方式还是最简单的总线互连,每个处理器通过总线广播的方式发送信息,也通过总线侦听来接受其他处理器。