多核CPU的运行模式详解
关注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的运行模式详解相关推荐
- ShardingSphere Mode 模式新起航:运行模式详解
在 5.0.0 GA 版本中,Apache ShardingSphere 新增了运行模式的概念,同时提供了 Memory/Standalone/Cluster 3 种配置方式.ShardingSphe ...
- JavaScript 运行机制详解(理解同步、异步和事件循环)
1.为什么JavaScript是单线程? JavaScript语言的一大特点就是单线程,也就是说,同一个时间只能做一件事.那么,为什么JavaScript不能有多个线程呢?这样能提高效率啊. Java ...
- Android Doze and App Standby模式详解
Android Doze and App Standby模式详解 来源:腾云阁 https://www.qcloud.com/community Optimizing for Doze and Ap ...
- Android M新特性Doze and App Standby模式详解
转载请标明出处:http://blog.csdn.net/xx326664162/article/details/52312122 文章出自:薛瑄的博客 你也可以查看我的其他同类文章,也会让你有一定的 ...
- python语言程序的特点_Python语言概述及其运行机制详解
即日起,我们将打开一个新的编程世界的大门--Python语言.Python是一种跨平台的计算机程序设计语言.是一种面向对象的动态类型语言,最初被设计用于编写自动化脚本(shell),随着版本的不断更新 ...
- Python语言概述及其运行机制详解
即日起,我们将打开一个新的编程世界的大门--Python语言.Python是一种跨平台的计算机程序设计语言.是一种面向对象的动态类型语言,最初被设计用于编写自动化脚本(shell),随着版本的不断更新 ...
- Spotify敏捷模式详解三部曲第二篇:研发过程
本文转自:Scrum 中文网 引言 在本系列文章的第一篇,我们介绍了Spotify的敏捷研发团队,以及它独特的组织架构.Spotify的研发团队采用的是一种非常独特的组织架构,如下图所示: 整个研发组 ...
- Docker(十四):Docker:网络模式详解
Docker作为目前最火的轻量级容器技术,牛逼的功能,如Docker的镜像管理,不足的地方网络方面. Docker自身的4种网络工作方式,和一些自定义网络模式 安装Docker时,它会自动创建三个网络 ...
- linux apache两种工作模式详解
apache两种工作模式详解 刚接触这两个配置时很迷糊,全部开启或全部注释没有几多变化.今天搜索到这么一篇讲得还不错的文章,看了几篇,还是不能完全记住,做一个收藏. 空闲子进程:是指没有正在处理请求的 ...
最新文章
- 基于最优化方法的超宽带通信信号设计
- 设备中的c语言代码文件,设备树编译器无法识别包含文件的C语法
- 电脑系统哪个最好用_什么除湿机好用_家用除湿机哪个牌子最好用-装修攻略
- 《JavaScript 高级程序设计》 7.5 常用模式
- 线性回归原理与spark/sklearn实现
- java学习记录【day12】
- JavaScript函数节流(throttle)与函数去抖(debounce)解析与应用举例
- [原]一些KVM测试过程中的命令笔记(2)分配实例
- Polynomial(2019南昌邀请赛)(拉格朗日插值)
- Mendix:低代码与无代码的异同点与用例
- 操作系统课设之Windows 进程管理
- Java如何读指定行
- mysql配置文件参数详解 my.cnf
- BZOJ3566[SHOI2014] 概率充电器
- c++ 获取硬盘序列号serialnumber
- firefox插件下载失败
- 给JAVA做个类VS的拖放式界面设计工具
- 2017NHOI小甲 第五题 折纸
- 2-15 微信小程序array数据类型(附带方法解析)
- 核芯国产高压运放CLA4031/ CLA4032