【转】多核处理器的工作原理及优缺点

《处理器关于多核概念与区别 多核处理器工作原理及优缺点》原文传送门


摘要:目前关于处理器的单核、双核和多核已经得到了普遍的运用,今天我们主要说说关于多核处理器的一些相关概念,它的工作与那里以及优缺点而展开的分析。

1、多核处理器

多核处理器是指在一枚处理器中集成两个或多个完整的计算引擎(内核),此时处理器能支持系统总线上的多个处理器,由总线控制器提供所有总线控制信号和命令信号。

##2、多核处理器的优点和缺点

从应用需求上去看,越来越多的用户在使用过程中都会涉及到多任务应用环境,日常应用中用到的非常典型的有两种应用模式。

一种应用模式是一个程序采用了线程级并行编程,那么这个程序在运行时可以把并行的线程同时交付给两个核心分别处理,因而程序运行速度得到极大提高。这类程序有的是为多路 工作站或服务器设计的专业程序,例如专业图像处理程序、非线视频编缉程序、动画制作程序或科学计算程序等。对于这类程序,两个物理核心和两颗处理器基本上是等价的,所以,这些程序往往可以不作任何改动就直接运行在 双核电脑上。

还有一些更常见的日常应用程序。例如Office、IE等,同样也是采用线程级并行编程,可以在运行时同时调用多个线程 协同工作,所以在 双核处理器上的运行速度也会得到较大提升。例如,打开IE 浏览器上网。看似简单的一个操作,实际上浏览器进程会调用代码解析、Flash播放、多媒体播放、Java、 脚本解析等一系列线程,这些线程可以并行地被双核处理器处理,因而运行速度大大加快(实际上IE浏览器的运行还涉及到许多进程级的交互通信,这里不再详述)。由此可见,对于已经采用并行编程的软件,不管是专业软件,还是日常 应用软件,在多核处理器上的运行速度都会大大提高。 日常应用中的另一种模式是同时运行多个程序。

许多程序没有采用并行编程,例如一些 文件压缩软件、部分游戏软件等等。对于这些 单线程的程序,单独运行在多核处理器上与单独运行在同样参数的 单核处理器上没有明显的差别。但是,由于日常使用的最最基本的程序—— 操作系统——是支持 并行处理的,所以,当在多核处理器上同时运行多个单线程程序的时候,操作系统会把多个程序的指令分别发送给多个核心,从而使得同时完成多个程序的速度大大加快。 另外,虽然单一的单线程程序无法体现出多核处理器的优势,但是多核处理器依然为 程序设计者提供了一个很好的平台,使得他们可以通过对原有的单线程序进行并行设计优化,以实现更好的程序运行效果。

一些游戏厂商正在对原来的一些单线程游戏进行优化,采用并行编程使得游戏运行得更快。有的游戏可以使用一个线程实现人物动画,而使用另一个线程来载入地图信息。或者使用一个线程来实现图像渲染中的 矩阵运算,而使用另一个来实现更高的人工智能运算。如今,大量的支持多核心的游戏涌现出来,从而使得多核处理器的优势能得到进一步的发挥。

优点:多线程,在一个时钟周期内能处理更多的任务 多任务处理 大缓存 高总线 这是单核处理器所达不到的
  缺点:功耗较大,需要特定平台支持 需要大容量内存跟进 一般的软件最多支持到两线程(双核)价格高
  

3、多核开发和多线程开发的区别

在本质上,多核开发也就是利用多线程进行程序开发,让不同功能的进程在不同的核上运行,或者让同一进程中不同功能的线程在不同的核上运行。以往我们学习的算法都是面向单线程的,而多核开发时要将这些算法改造成支持多线程的算法,然后系统运行时会将多线程分配到多核处理器上,以实现运行的加速。

不过和传统的多线程编程方式有所不同, 多核开发对于同步锁定等问题较简单,但是需要仔细分析出可并行计算的代码块来,让多线程能够在一个任务中并行。多线程开发的时候,你并不知道有几个物理CPU,而进行多核开发时,你肯定知道有多少个物理CPU了。

4、多核处理器工作原理

由程序程序决定。如果程序支持多核处理器,那么它会把要处理的数据分解成多个部分分别给予不同的核心寄存器让各个运算器共同运算,最后的结果汇总后由一个运算器处理好分发给下一步,或者直接由程序控制将各个运算结果下发给下一步。如果程序只支持单核,那就是很简单地把数据流供应给一个处理器处理。
  

5、总结

目前,多核技术已经成为最受关注的话题和研究方向。多核体系结构为性能提高和节能计算等领域开辟了新的方向。然而,现在的多核处理器还没有统一的标准,基本上处于探索阶段。核与核之间的连接方式、通讯协调方式、同一处理器中核与核间结构的差异、器件资源分配策略、任务调度策略、节能策略、软硬件协同设计策略等方面都处于研究探索之中。多核必将带来影响整个计算机行业方方面面的巨大变革,包括体系结构研究、嵌入式系统设计和解决方案设计、编译技术、操作系统核心算法、应用软件设计等计算机系统的各个领域。

在单核处理器研究中,主要集中在提高频率,提高指令级并行度等方面。而在多核体系中,更加关注核与核之间的协作、共享资源的分配、提高线程级并行度等方面。

多核处理器必然带来一个问题是,需要提高程序的并行度,因为单线程程序是无法发挥多核处理器的优势的。通过编译优化可以把原先单线程的代码编译成多线程的形式。OpenMP提供了一种方法,程序员根据需要把可以并行处理的代码加上合适的标记,编译器根据这些标记把相应代码编译成多线程的程序段。多线程程序开发涉及到多线程调试的难题,这在多核处理器上会变得更加困难,所以多核体系导致程序开发模式发生巨大变化。

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

【转】多核处理器的工作原理及优缺点相关推荐

  1. 电阻触摸屏和电容触摸屏的工作原理及优缺点

    随着科技的发展使用需求的增长,触摸屏行业经历了从低档到高档逐步升级的过程,触摸技术已渗透到各行各业中.按照工作原理可以分为电阻触摸屏和电容触摸屏两大类.下面沐渥小编从二者的工作原理和优缺点出发,教大家 ...

  2. Lombok简介、使用、工作原理、优缺点(转载)

    文章转载:https://www.jianshu.com/p/453c379c94bd Lombok简介.使用.工作原理.优缺点 1.Lombok简介 官方介绍 Project Lombok is a ...

  3. AJAX工作原理及其优缺点 1.什么是AJAX? AJAX全称为“Asynchronous JavaScript and XML”(异步JavaScript和XML),是一种创建交互式网页应用的网页

    参考文章:https://www.cnblogs.com/SanMaoSpace/archive/2013/06/15/3137180.html AJAX工作原理及其优缺点 1.什么是AJAX? AJ ...

  4. 服务器ups后备式好还是在线式好,后备式UPS电源和在线式UPS工作原理和优缺点

    后备式UPS电源和在线式UPS工作原理和优缺点.目前市场上的UPS不间断电源主要分为两大类:在线式UPS电源与后备式UPS电源.我们在负载小功率设备的时候,如果设备本身对电能的要求不是很高的话,一般情 ...

  5. ajax简介跟优点讲解,简要总结ajax工作原理及优缺点

    虽然在实际的项目中使用多种ajax请求,但就其工作原理,优缺点尚未深入总结, 参考:http://www.cnblogs.com/SanMaoSpace/archive/2013/06/15/3137 ...

  6. 处理器关于多核概念与区别 多核处理器工作原理及优缺点

    +关注 摘要:目前关于处理器的单核.双核和多核已经得到了普遍的运用,今天我们主要说说关于多核处理器的一些相关概念,它的工作与那里以及优缺点而展开的分析. 1.多核处理器 多核处理器是指在一枚处理器中集 ...

  7. 原理c++_浅谈C/S和B/S架构的工作原理及优缺点

    C/S架构 一.C/S架构及其背景 C/S架构是一种比较早的软件架构,主要应用于局域网内.在这之前经历了集中计算模式,随着计算机网络的进步与发展,尤其是可视化工具的应用,出现过两层C/S和三层C/S架 ...

  8. 三层架构学习的困难_浅谈C/S和B/S架构的工作原理及优缺点

    C/S架构 一.C/S架构及其背景 C/S架构是一种比较早的软件架构,主要应用于局域网内.在这之前经历了集中计算模式,随着计算机网络的进步与发展,尤其是可视化工具的应用,出现过两层C/S和三层C/S架 ...

  9. Struts工作原理及其优缺点详解

    2019独角兽企业重金招聘Python工程师标准>>> 一.Struts工作原理 MVC即Model-View-Controller的缩写,是一种常用的设计模式.MVC 减弱了业务逻 ...

最新文章

  1. linux nfs 进程,【Linux】 nfs 故障处理
  2. 15款最好的网站音乐播放器
  3. 拷贝boost::exception的测试程序
  4. [SDOI2015]序列统计
  5. Leetcode重点250题
  6. 基于javaweb+SpringBoot+MyBatis网上书店管理系统在线购书系统(前台、后台)
  7. PHP发币,处理货币价值的PHP库
  8. [NOI2015]小园丁与老司机
  9. java配置文件密码加密解密_Java-从配置文件加密/解密用户名和密码
  10. VMware虚拟机启动报错,无法执行64位操作
  11. Warning [gazebo.cc:215] Waited 1seconds for namespaces.
  12. macOS下快速复制文件或文件夹路径
  13. 全民农场服务器维修,微信全民农场新手常见问题集锦
  14. iphone个人热点无法开启_为什么苹果手机上的个人热点一直在转不能打开啊
  15. 常见的连续型随机变量分布
  16. python整段注释_python段注释
  17. 计算机图形学阴影的的分类,计算机图形学8_光照模型与阴影处理_.pdf
  18. 阿里云服务器购买和域名购买备案流程
  19. Java打印1900年到2100年之间的闰年,一行打印4个
  20. wallpaper使用教程,从注册到安装

热门文章

  1. 多测师肖sir_高级金牌讲师_项目管理工具之tapd(7.5拓展知识)
  2. 周期信号傅里叶级数公式
  3. 白夜追凶 :手 Q 图片的显示和发送逻辑 1
  4. Ubuntu18.04深度学习GPU环境配置
  5. 二叉检索树(BST)
  6. 手机便签怎么正确使用?
  7. AntCTF x D^3CTF_Crypto_部分复现
  8. 易语言编写的Windows XP扫雷推理辅助
  9. 【CSS 属性值分类: 指定值,计算值,使用值,实际值 的区别】
  10. 16进制 转RGB颜色