与单核处理器相比,多核处理器在体系结构、软件、功耗和安全性设计等方面面临着巨大的挑战,但也蕴含着巨大的潜能。

CMP和SMT一样,致力于发掘计算的粗粒度并行性。CMP可以看做是随着大规模集成电路技术的发展,在芯片容量足够大时,就可以将大规模并行处理机结构中的SMP(对称多处理机)或DSM(分布共享处理机)节点集成到同一芯片内,各个处理器并行执行不同的线程或进程。在基于SMP结构的单芯片多处理机中,处理器之间通过片外Cache或者是片外的共享存储器来进行通信。而基于DSM结构的单芯片多处理器中,处理器间通过连接分布式存储器的片内高速交叉开关网络进行通信。

由于SMP和DSM已经是非常成熟的技术了,CMP结构设计比较容易,只是后端设计和芯片制造工艺的要求较高而已。正因为这样,CMP成为了最先被应用于商用CPU的“未来”高性能处理器结构。

虽然多核能利用集成度提高带来的诸多好处,让芯片的性能成倍地增加,但很明显的是原来系统级的一些问题便引入到了处理器内部。

1、 核结构研究:同构还是异构

CMP的构成分成同构和异构两类,同构是指内部核的结构是相同的,而异构是指内部的核结构是不同的。为此,面对不同的应用研究核结构的实现对未来微处理器的性能至关重要。核本身的结构,关系到整个芯片的面积、功耗和性能。怎样继承和发展传统处理器的成果,直接影响多核的性能和实现周期。同时,根据Amdahl定理,程序的加速比决定于串行部分的性能,所以,从理论上来看似乎异构微处理器的结构具有更好的性能。

核所用的指令系统对系统的实现也是很重要的,采用多核之间采用相同的指令系统还是不同的指令系统,能否运行操作系统等,也将是研究的内容之一。

2、程序执行模型

处理器设计的首要问题是选择程序执行模型。程序执行模型的适用性决定多核处理器能否以最低的代价提供最高的性能。程序执行模型是编译器设计人员与系统实现人员之间的接口。编译器设计人员决定如何将一种高级语言程序按一种程序执行模型转换成一种目标机器语言程序; 系统实现人员则决定该程序执行模型在具体目标机器上的有效实现。当目标机器是多核体系结构时,产生的问题是: 多核体系结构如何支持重要的程序执行模型?是否有其他的程序执行模型更适于多核的体系结构?这些程序执行模型能多大程度上满足应用的需要并为用户所接受?

3、cache设计:多级Cache设计与一致性问题

处器和主存间的速度差距对CMP来说是个突出的矛盾,因此必须使用多级Cache来缓解。目前有共享一级Cache的CMP、共享二级Cache的CMP以及共享主存的CMP。通常,CMP采用共享二级Cache的CMP结构,即每个处理器核心拥有私有的一级Cache,且所有处理器核心共享二级Cache。

Cache自身的体系结构设计也直接关系到系统整体性能。但是在CMP结构中,共享Cache或独有Cache孰优孰劣、需不需要在一块芯片上建立多级Cache,以及建立几级Cache等等,由于对整个芯片的尺寸、功耗、布局、性能以及运行效率等都有很大的影响,因而这些都是需要认真研究和探讨的问题。

另一方面,多级Cache又引发一致性问题。采用何种Cache一致性模型和机制都将对CMP整体性能产生重要影响。在传统多处理器系统结构中广泛采用的Cache一致性模型有: 顺序一致性模型、弱一致性模型、释放一致性模型等。与之相关的Cache一致性机制主要有总线的侦听协议和基于目录的目录协议。目前的CMP系统大多采用基于总线的侦听协议。

4、核间通信技术

CMP处理器的各CPU核心执行的程序之间有时需要进行数据共享与同步,因此其硬件结构必须支持核间通信。高效的通信机制是CMP处理器高性能的重要保障,目前比较主流的片上高效通信机制有两种,一种是基于总线共享的Cache结构,一种是基于片上的互连结构。

总线共享Cache结构是指每个CPU内核拥有共享的二级或三级Cache,用于保存比较常用的数据,并通过连接核心的总线进行通信。这种系统的优点是结构简单,通信速度高,缺点是基于总线的结构可扩展性较差。

基于片上互连的结构是指每个CPU核心具有独立的处理单元和Cache,各个CPU核心通过交叉开关或片上网络等方式连接在一起。各个CPU核心间通过消息通信。这种结构的优点是可扩展性好,数据带宽有保证; 缺点是硬件结构复杂,且软件改动较大。

也许这两者的竞争结果不是互相取代而是互相合作,例如在全局范围采用片上网络而局部采用总线方式,来达到性能与复杂性的平衡。

5、总线设计

传统微处理器中,Cache不命中或访存事件都会对CPU的执行效率产生负面影响,而总线接口单元(BIU)的工作效率会决定此影响的程度。当多个CPU核心同时要求访问内存或多个CPU核心内私有Cache同时出现Cache不命中事件时,BIU对这多个访问请求的仲裁机制以及对外存储访问的转换机制的效率决定了CMP系统的整体性能。因此寻找高效的多端口总线接口单元(BIU)结构,将多核心对主存的单字访问转为更为高效的猝发(burst)访问; 同时寻找对CMP处理器整体效率最佳的一次Burst访问字的数量模型以及高效多端口BIU访问的仲裁机制将是CMP处理器研究的重要内容。

6 、操作系统设计: 任务调度、中断处理、同步互斥

对于多核CPU,优化操作系统任务调度算法是保证效率的关键。一般任务调度算法有全局队列调度和局部队列调度。前者是指操作系统维护一个全局的任务等待队列,当系统中有一个CPU核心空闲时,操作系统就从全局任务等待队列中选取就绪任务开始在此核心上执行。

这种方法的优点是CPU核心利用率较高。后者是指操作系统为每个CPU内核维护一个局部的任务等待队列,当系统中有一个CPU内核空闲时,便从该核心的任务等待队列中选取恰当的任务执行,这种方法的优点是任务基本上无需在多个CPU核心间切换,有利于提高CPU核心局部Cache命中率。目前多数多核CPU操作系统采用的是基于全局队列的任务调度算法。

多核的中断处理和单核有很大不同。多核的各处理器之间需要通过中断方式进行通信,所以多个处理器之间的本地中断控制器和负责仲裁各核之间中断分配的全局中断控制器也需要封装在芯片内部。

另外,多核CPU是一个多任务系统。由于不同任务会竞争共享资源,因此需要系统提供同步与互斥机制。而传统的用于单核的解决机制并不能满足多核,需要利用硬件提供的“读-修改-写”的原子操作或其他同步互斥机制来保证。

7、低功耗设计

半导体工艺的迅速发展使微处理器的集成度越来越高,同时处理器表面温度也变得越来越高并呈指数级增长,每三年处理器的功耗密度就能翻一番。目前,低功耗和热优化设计已经成为微处理器研究中的核心问题。CMP的多核心结构决定了其相关的功耗研究是一个至关重要的课题。

低功耗设计是一个多层次问题,需要同时在操作系统级、算法级、结构级、电路级等多个层次上进行研究。每个层次的低功耗设计方法实现的效果不同——抽象层次越高,功耗和温度降低的效果越明显。

8、存储器墙

为了使芯片内核充分地工作,最起码的要求是芯片能提供与芯片性能相匹配的存储器带宽,虽然内部Cache的容量能解决一些问题,但随着性能的进一步提高,必须有其他一些手段来提高存储器接口的带宽,如增加单个管脚带宽的DDR、DDR2、QDR、XDR等。同样,系统也必须有能提供高带宽的存储器。所以,芯片对封装的要求也越来越高,虽然封装的管脚数每年以20%的数目提升,但还不能完全解决问题,而且还带来了成本提高的问题,为此,怎样提供一个高带宽,低延迟的接口带宽,是必须解决的一个重要问题。

9、可靠性及安全性设计

随着技术革新的发展,处理器的应用渗透到现代社会的各个层面,但是在安全性方面却存在着很大的隐患。一方面,处理器结构自身的可靠性低下,由于超微细化与时钟设计的高速化、低电源电压化,设计上的安全系数越来越难以保证,故障的发生率逐渐走高。另一方面,来自第三方的恶意攻击越来越多,手段越来越先进,已成为具有普遍性的社会问题。现在,可靠性与安全性的提高在计算机体系结构研究领域备受注目。

今后,CMP这类处理器芯片内有多个进程同时执行的结构将成为主流,再加上硬件复杂性、设计时的失误增加,使得处理器芯片内部也未必是安全的,因此,安全与可靠性设计任重而道远。

多核处理器9大关键技术相关推荐

  1. 5g空分复用技术_5G十大关键技术之三的空分复用

    笔者在描述5G的十大关键技术时,列举了其中一个关键技术是:空分复用(Space Division Multiplexing,SDM). 在讨论空分复用之前,我们有必要知道什么是空分复用,以及移动通信中 ...

  2. 大数据的5大关键技术点

    大数据技术,就是从各种类型的数据中快速获得有价值信息的技术.大数据领域已经涌现出了大量新的技术,它们成为大数据采集.存储.处理和呈现的有力武器.大数据处理关键技术一般包括:大数据采集.大数据预处理.大 ...

  3. MySQL的关键技术及主要特征_生物特征识别十大关键技术解析

    生物识别技术在近几年有了长足的进展,但要使生物识别从理论研究走向实际应用,众多的科研单位还需要突破和解决其中一系列的关键技术.从统计的意义上讲人类的指纹.掌形.虹膜等生理特征存在着性.因而这些特征都可 ...

  4. 平均年薪 50 万的无人驾驶工程师,需要掌握这 5 大关键技术

    微信公众号 关键字全网搜索最新排名 [机器学习算法]:排名第一 [机器学习]:排名第一 [Python]:排名第三 [算法]:排名第四 无人驾驶无疑是 2017 年人工智能领域最热的话题,它涉及了目标 ...

  5. 全面了解后3G时代的技术走向:4大关键技术(转)

    HSDPA(高速下行分组接入)用于实现WCDMA网络高速下行数据业务,可以使下行的数据速率达到8-10Mbps,被誉为后3G时代的主要解决方案.对采用多入多出(MIMO)技术的HSDPA系统,数据速率 ...

  6. 一篇文章看懂大数据的5大关键技术

    大数据技术,就是从各种类型的数据中快速获得有价值信息的技术.大数据领域已经涌现出了大量新的技术,它们成为大数据采集.存储.处理和呈现的有力武器.大数据处理关键技术一般包括:大数据采集.大数据预处理.大 ...

  7. MOS管发热原因-总结有4大关键技术原因解析

    做电源或者驱动的使用,当然就是用它的开关作用.了解MOS管发热四大关键技术. 1.芯片发热 本次内容主要针对内置电源调制器的高压驱动芯片.假如芯片消耗的电流为2mA,300V的电压加在芯片上面,芯片的 ...

  8. Gartner发布2011十大关键技术

    原文标题:10 things: Handicapping Gartner's top technologies for 2011(查看原文推荐) 原文链接:http://www.zdnet.com/b ...

  9. 大数据计算的6大关键技术与4大应用场景探索!

    | 转载自:DataFun | 编辑:钱英宇 | 设计:张千禧 大数据和AI的能力在企业应用中发挥着越来越重要的价值,企业在提升数字化转型带来的数字到知识萃取助力于业务的同时,面对海量数据的增长,离不 ...

最新文章

  1. 新装myeclispse8.6GA、@Override出错
  2. R语言数据结构之数据框
  3. 调链接_硬核科普 | 三根弹簧让你链接宇宙的混响效果器?!
  4. 让时间倒流的保存点:用Apache Flink的保存点技术重新处理数据流
  5. pandas to_csv 最左边 多一列 索引值 问题处理
  6. pt-online-schema-change 在线修改表结构
  7. 了解招聘中的这些潜台词,找工作少走弯路
  8. 米斯特白帽培训讲义 实战篇 南方 0day
  9. 培训机构破产了,“我还要还贷到2028年”
  10. 非现场执法管理计算机(工业级),浅析非现场执法中存在问题的方法及对策
  11. 现实给了梦想多少时间?
  12. java spring boot 项目 热加载 有利于快速开发
  13. 奇妙“水仙花数”的判断
  14. 智慧城市数字孪生技术方案,建设可视化系统
  15. java导出帆软pdf,java后台把fineRepo图表导出pdf格式时发生错误!
  16. 学校计算机机房网络设备,[学校计算机机房的维护]学校计算机机房硬件设备清单...
  17. tlc2543 多通道选择 错误
  18. 合成大西瓜html源码,合成大西瓜
  19. 符合OpenDRIVE规范的xodr文件格式解读(1) ——road部分
  20. 盘一盘 这些深度学习框架够你用一年

热门文章

  1. IELTS学习(003) - 单词(植物研究篇)
  2. java斗图表情_程序员之间的斗图表情包, java真的输惨了!
  3. STM32驱动ST7735彩色屏幕(任意分辨率),驱动不了你顺着网线来打我
  4. 递归实例,汉诺塔问题
  5. Excel函数DAY和EOMONTH
  6. 查看和终止 PostgreSQL 连接会话
  7. Jmeter接口实战(一)之获取token值登录
  8. 面试宝典技术篇:了解防抖节流共同点及区别
  9. Kesci:Tensorflow 实现 LSTM——时间序列预测
  10. AEIA2018 | 斑马网络郝飞:AliOS,我们正在改变中国汽车使用体验