关注v-x-公-众-号:【嵌入式基地
后-台-回-复:【电赛】 即可获资料
回复【编程】即可获取
包括有:C、C++、C#、JAVA、Python、JavaScript、PHP、数据库、微信小程序、人工智能、嵌入式、Linux、Unix、QT、物联网、算法导论、大数据等资料

1.多核处理器的发展

最初,商业化处理器都致力于单核处理器的发展,其性能已经发挥到极致,仅仅提高单核芯片的速度会产生过多热量且无法带来相应性能改善,但CPU性能需求大于CPU发展速度。

尽管通过增加流水线可以提高CPU的频率,但是由于缓存的增加与漏电流控制不力的因素,导致功率大幅增加,性能反而不如之前低频率的CPU。由于CPU的功率增加,导致CPU的散热问题也就更加严重,风冷已经不能解决问题了。

那么,此使新的技术就出现了:多核处理器。早在1996年就有第一款多核CPU原型Hydra。2001年IBM推出第一个商用多核处理器POWER4,2005年Intal和AMD多核处理器大规模应用。

多核处理器越来越流行,在服务器、桌面、上网本、平板、手机还是医疗设备、国防、航天等方面都得到了广泛的应用。

2.多核处理器的分类

2.1 从架构上区分

  • 同构多核架构:系统中的处理器在架构上是相同的
  • 异构多核架构:系统中的处理器在架构上是不同的

同构多核架构在硬件与软件设计上比较简单,通用性高。

异构多核处理器有:TI的达芬奇平台DM6000系列(ARM9+DSP)、Xilinx的Zynq7000系列(双核Cortex-A9+FPGA)、Cell处理器(1个64位POWERPC+8个32位协处理器)等等。

同构多核处理器有:Exynos4412,freescale i.mx6 dual和quad系列、TI的OMAP4460等,Intel的Core Duo、Core2 Duo等。

2.2 从运行模式上区分

在软件上区分的话,多核处理器有三种运行模式:

  • AMP(非对称多处理)
  • SMP(对称多处理)
  • BMP(受约束多处理)
AMP

AMP是指,多个核相对独立的运行不同的任务,每个核之间相互隔离,可以运行不同的操作系统或裸机程序。

AMP的运行模式基本不会存在开销问题,尤其是在运行裸机程序时,甚至没有开销,这种模式比较适合实时性高的应用。但是两个核心之间的通信与资源共享需要有一套优秀的处理机制。

虽然多个核心可以运行不同的系统,但是需要有一个主要的核心,需要使用该核心来控制整个系统以及其他的核心。例如:一个核心运行运行实时性较高的任务,另一个核心运行UI界面。

SMP

SMP是指多个核心运行一个操作系统,该操作系统同等的管理多个内核,这种运行模式就是简单提高运行性能。目前支持该运行模式的操作系统有:Linux,Windows,Vxworks。

目前,我们的PC机使用的就是这种运行模式,一般适用于功能复杂,对实时性要求不高的系统。

BMP

BMP运行模式与 SMP类似,同样也是一个OS管理所有的核心,但开发者可以指定将某个任务仅在某个指定内核上执行 。

原文链接,点击查看

多核CPU的运行模式详解相关推荐

  1. ShardingSphere Mode 模式新起航:运行模式详解

    在 5.0.0 GA 版本中,Apache ShardingSphere 新增了运行模式的概念,同时提供了 Memory/Standalone/Cluster 3 种配置方式.ShardingSphe ...

  2. JavaScript 运行机制详解(理解同步、异步和事件循环)

    1.为什么JavaScript是单线程? JavaScript语言的一大特点就是单线程,也就是说,同一个时间只能做一件事.那么,为什么JavaScript不能有多个线程呢?这样能提高效率啊. Java ...

  3. Android  Doze and App Standby模式详解

    Android  Doze and App Standby模式详解 来源:腾云阁 https://www.qcloud.com/community Optimizing for Doze and Ap ...

  4. Android M新特性Doze and App Standby模式详解

    转载请标明出处:http://blog.csdn.net/xx326664162/article/details/52312122 文章出自:薛瑄的博客 你也可以查看我的其他同类文章,也会让你有一定的 ...

  5. python语言程序的特点_Python语言概述及其运行机制详解

    即日起,我们将打开一个新的编程世界的大门--Python语言.Python是一种跨平台的计算机程序设计语言.是一种面向对象的动态类型语言,最初被设计用于编写自动化脚本(shell),随着版本的不断更新 ...

  6. Python语言概述及其运行机制详解

    即日起,我们将打开一个新的编程世界的大门--Python语言.Python是一种跨平台的计算机程序设计语言.是一种面向对象的动态类型语言,最初被设计用于编写自动化脚本(shell),随着版本的不断更新 ...

  7. Spotify敏捷模式详解三部曲第二篇:研发过程

    本文转自:Scrum 中文网 引言 在本系列文章的第一篇,我们介绍了Spotify的敏捷研发团队,以及它独特的组织架构.Spotify的研发团队采用的是一种非常独特的组织架构,如下图所示: 整个研发组 ...

  8. Docker(十四):Docker:网络模式详解

    Docker作为目前最火的轻量级容器技术,牛逼的功能,如Docker的镜像管理,不足的地方网络方面. Docker自身的4种网络工作方式,和一些自定义网络模式 安装Docker时,它会自动创建三个网络 ...

  9. linux apache两种工作模式详解

    apache两种工作模式详解 刚接触这两个配置时很迷糊,全部开启或全部注释没有几多变化.今天搜索到这么一篇讲得还不错的文章,看了几篇,还是不能完全记住,做一个收藏. 空闲子进程:是指没有正在处理请求的 ...

最新文章

  1. 基于最优化方法的超宽带通信信号设计
  2. 设备中的c语言代码文件,设备树编译器无法识别包含文件的C语法
  3. 电脑系统哪个最好用_什么除湿机好用_家用除湿机哪个牌子最好用-装修攻略
  4. 《JavaScript 高级程序设计》 7.5 常用模式
  5. 线性回归原理与spark/sklearn实现
  6. java学习记录【day12】
  7. JavaScript函数节流(throttle)与函数去抖(debounce)解析与应用举例
  8. [原]一些KVM测试过程中的命令笔记(2)分配实例
  9. Polynomial(2019南昌邀请赛)(拉格朗日插值)
  10. Mendix:低代码与无代码的异同点与用例
  11. 操作系统课设之Windows 进程管理
  12. Java如何读指定行
  13. mysql配置文件参数详解 my.cnf
  14. BZOJ3566[SHOI2014] 概率充电器
  15. c++ 获取硬盘序列号serialnumber
  16. firefox插件下载失败
  17. 给JAVA做个类VS的拖放式界面设计工具
  18. 2017NHOI小甲 第五题 折纸
  19. 2-15 微信小程序array数据类型(附带方法解析)
  20. 核芯国产高压运放CLA4031/ CLA4032

热门文章

  1. DNS有哪两种域名解析方式?简述这两种方式区别和特点。
  2. 天池比赛——docker初步尝试
  3. 屏蔽百度搜索结果页的推送广告
  4. vs的快捷键——注释/取消注释
  5. 密码学与网络安全课程习题集及参考答案(一些思考题)
  6. JS实战应用之做LOL领图标任务~
  7. npm 中 --save 与 --save-dev 的区别
  8. 初识OpenGL (3)片段着色器(Fragment Shader)
  9. 学习金字塔---优化你的学习方法
  10. Android存储空间及路径总结