MPU和MCU的区别

2023-05-16

MCU指的是微控制器,集合了FLASH、RAM和一些外围器件。MCU一般使用片内FLASH来存储和执行程序代码.

MPU指的是微处理器,FLASH和RAM则需要设计者自行搭建,当然MCU也可以外扩。

MPU的电路设计相对MCU较为复杂。MPU将代码存储在外部FLASH中,上电后将代码搬运至RAM中运行。

MCU的启动速度更快,MCU虽然也可以将代码运行在RAM中,但是内部RAM容量小,使用外部扩展RAM的话速度相对内部也较慢。

MCU不具备内存管理单元(MMU),不能运行Linux这种操作系统,只能运行小型操作系统,因此无法运行多进程程序。小型操作系统的RTOS多任务类似于多线程

MCU相对MPU具有更强的实时性。

MCU相对MPU具有更低的功耗。虽然MPU也有低功耗模式,但不会像MCU那么低。

MPU的主频相对较高,外接的内存也一般是DDR3,DDR4这种速度比较快的,适用于运算比较复杂的。

至于如何选择,是使用MCU还是MPU需要从性能要求,体积重量要求、预算成本等多方面综合考虑。一般地,MCU偏向于低成本低功耗,MPU趋向于高性能。目前的MCU和MPU的界限在逐渐模糊,MCU的主频也在不断提高,外设不断增加。在远程控制,消费电子或对实时要求高的场合使用MCU的多一些。

在有大量计算,高速互联,或是图形交互要求高的地方使用MPU多一些。

根据要求也可以使用MCU和MPU配合,现在好多芯片是同时具有MCU和MPU的多核,更方便设计者使用。

MCU和MPU的区别及选择

MPU的全称叫Micro Processor Unit,MCU的全称是Mirco Controller Unit。首先这两个词都有一个Micro开头,其实这就表明了这是计算/控制单元小型化后出现的技术。事实上,这是由于集成电路进步带来的计算机系统集成程度提高的结果。使得原来有多片分立的元件组成的计算机系统向高度集成化发展,多个芯片/元件的功能在向一颗芯片集中。这是一个大的技术演进的背景。

但在技术演进过程中,出现了两种不同的需求。这两种需求就是“以软制硬”和“以硬助软”两种模式。这在我的专栏里有一个系列,有兴趣的朋友可以去扩展阅读一下。

所谓以软制硬,就是通过运行一段软件/程序来控制硬件,也就是所谓的程控。在这种使用模式中,计算机系统不承担主要的工作负载,而主要是起辅助/协调/控制作用。具体的可以参考:

其实我是老莫:以软制硬,以硬助软:在芯片中嵌入处理器的两种形式。(连载二)27 赞同 · 0 评论文章

因此这种情况下集成的化的计算机系统就不太需要强大的计算/处理能力。所以对应的形态应该是运行频率低、运算能力一般,但是需要集成化程度高(使用方便)、价格低廉(辅助系统不应增加太多成本)等因素。

由于主要完成“控制”相关的任务,所以被称为Controller。也就是根据外界的信号(刺激),产生一些响应,做一点简单的人机界面。对于这种需求,通过不需要芯片主频太高。早期8051系列主频不过10几MHz,还是12个周期执行一条指令。经过多年的“魔改”也最终达到了100MHz。其次就是处理能力不用太强,8位的MCU长期是微控制器的主流。后来16位的MCU逐步开始占领市场。而随着ARM的32位MCU的出现,采用ARM的M系列的MCU也开始逐步扩大市场。以ST、NXP公司的产品为主要代表。但是这些ARM系列MCU的主频一般也是在几十MHz到100多MHz的量级。其次由于执行的“控制相关”任务,通常不需要支持复杂的图形界面和处理能力。

在MCU上完成的任务大多数是一些简单的刺激-响应式的任务,而且任务类型单一,任务执行过程简单。在这种情况下一般不需要MCU去执行功能复杂、运算量大的程序,而通常不需要运行大型操作系统来支持复杂的多任务管理。这就造成了MCU一般对于存储器的容量要求比较低。

而Processor,顾名思义是处理器。处理器就是能够执行“处理”功能的器件。其实具备Processor这个单词的器件不少。比如CPU就被称为“中央处理器”,那既然有“中央”就应该有“外围”。GPU在经典的桌面计算机中就是一个典型的“外围”处理器,主要负责图形图像处理,由于图形图像显示。当然,今天由于AI的崛起,GPU变身成为了人工智能的训练神器。

带“P”的还有DSP,数字信号处理器,一种专门为了数字信号处理而生的“领域专用处理器”。所以这些带P的处理器,都是要具备“处理”能力的。“处理”什么?自然是处理数据/信息了。也就是说处理器本身都需要较为强大的数据处理/计算能力

以GPU为例,正是由于它强大的并行浮点运算能力才能支持高速的图像处理,使音视频播放、多媒体技术成为可能。同样由于这样的处理能力使之在AI时代来临之时发挥巨大作用。

以上对于处理器说了这么多,核心意思就是一个。处理器一定要处理/运算能力强,能够执行比较复杂的任务。而微处理器,其实就是微型化/集成化了的处理器。准确的说是微型化/集成化的“中央处理器”。这就是把传统的CPU之外集成了原属于“芯片组”的各类接口和部分“外设”而形成的。

MPU从一开始就定位了具有相当的处理和运算能力,一般需要运行较大型的操作系统来实现复杂的任务处理。因此这就决定了MPU应该具备比较高的主频和较为强大的运算能力。MPU很早就演进到了32位处理器,现在更是开始大力普及64位。现在MPU领导具有绝对影响力的Arm公司一开始就定位要做32位。同时MPU也一直追求实现较高的主频。早期经典的Arm9系列MPU频率就在200MHz-400MHz。现在手机上使用的高端MPU更是到达了3GHz,和主流的桌面处理器是一个级别了。和通用的桌面处理器一样,MPU现在也普遍“多核化”。

为了支撑MPU强大的算力,使得“物尽其用”。必然要求在MPU上运行比较复杂的、运算量大的程序和任务,通常需要有大容量的存储器来配合支撑。而大容量的存储器难以被集成到以逻辑功能为主的MPU内部,因此MPU现在要运行起来通常需要“外挂”大容量的存储器主要是大容量的DDR存储器和FLASH。在手机领域前者被称为“运存”而后者被称为“内存”。为了支撑运行复杂操作系统和大型程序,往往还需要MPU中集成高性能的存储控制器、存储管理单元(MMU)等一整套复杂的存储机制和硬件。

所以从形态上看,MPU由于需要运行对处理能力要求复杂大程序,一般都需要外挂存储器才能运行起来。而MCU往往只是执行刺激-响应式的过程控制和辅助,功能比较单一,仅仅需要使用片上集成的小存储器即可。这是区别MPU和MCU的重要表象,但不是核心原因。

总结一下,MPU和MCU的区别本质上是因为应用定位不同,为了满足不同的应用场景而按不同方式优化出来的两类器件。

  • MPU注重通过较为强大的运算/处理能力,执行复杂多样的大型程序,通常需要外挂大容量的存储器。
  • MCU通常运行较为单一的任务,执行对于硬件设备的管理/控制功能。通常不需要很强的运算/处理能力,因此也不需要有大容量的存储器来支撑运行大程序。通常以单片集成的方式在单个芯片内部集成小容量的存储器实现系统的“单片化”。

但需要指出的是,随着技术的不断演进。以上的产品形态也会发生一系列的变化和衍生。现在NXP已经开始推出主频在1GHz,带强大运算能力的MCU。而随着3D封装、Chiplet技术的进步,把大容量存储器以先进封装的方式实现“单片集成”也正在实现。所以这种技术名词最终还是应该从他们出现的原因去理解,而不应该简单的从一些形态、架构去解释。更不应该机械的搞一些没有什么意义的“定义”,还让学生在考试的时候去回答。

最后,Arm公司所提出A、R、M三个系列的处理器分类是更加科学、更加符合不同应用场景的分类。对于学习处理器相关知识的同学应该从这方向去理解更为合适。对于A、R、M的解释我们下次有机会再谈。

  Cortex-A 系列 - 开放式操作系统的高性能处理器
      Cortex-A 应用程序处理器(Application Processors)在高级工艺节点中可实现高达 2GHz+ 标准频率的卓越性能,从而可支持下一代的移动 Internet 设备。这些处理器具有单核和多核种类,最多提供四个具有可选 NEON 多媒体处理模块和高级浮点执行单元的处理单元
 应用包括智能手机、智能本和上网本、电子阅读器、数字电视、家用网络、家用网关和其他各种产品。

      Cortex-R 系列 - 面向实时应用的卓越性能
      Cortex-R 系列处理器的开发则面向深层嵌入式实时应用(Embedded Real-time  Applications Processors)对低功耗、良好的中断行为、卓越性能以及与现有平台的高兼容性这些需求进行了平衡考虑。
      应用领域有汽车制动系统、动力传输解决方案、大容量存储控制器、联网和打印机等。

      Cortex-M 系列 - 面向具有确定性的微控制器应用的成本敏感型解决方案
      Cortex-M 系列处理器(Embedded Microcontroller Processors)主要是针对微控制器领域开发的,在该领域中,既需进行快速且具有高确定性的中断管理,又需将门数和可能功耗控制在最低
      应用领域有微控制器、混合信号设备、智能传感器、汽车电子和气囊等。

MPU和MCU的区别 - 知乎

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

MPU和MCU的区别 的相关文章

  • 【MM32F5270开发板试用】五、rt-thread 利用SPI接口驱动SD卡

    篇文章来自极术社区与灵动组织的MM32F5270开发板评测活动 更多开发板试用活动请关注极术社区网站 作者 Magicoe是攻城狮 之前SPI接的是个2 4寸的小屏幕 鉴于MM32F5270片上没有SDIO接口用的是SPI拓展的SD卡 反正
  • 嵌入式软件—RK3568开发环境搭建

    一 RK3568 1 1 开发板特点 BSP比较大 对于电脑内存和存储空间要求高 四核CPU 22nm工艺 1 2 BSP BSP Board Support Package 板级支持包 类似于PC系统中BIOS和驱动程序的集合 BSP包含
  • MCU(单片机)datasheet(规格说明书)

    STC 宏晶 型号 程序容量 datasheet STC8G2K64S4 36I QFN48 64K 规格说明书链接 https pan baidu com s 18IickcTlMHgesCkmXFi7Lg pwd tala 提取码 ta
  • UDS应用层协议解析(史上最全)

    UDS应用层协议解析 UDS应用层协议解读 下 诊断服务分类 基础服务类 0x10 诊断会话模式 任何会话模式切换至默认会话模式时 非默认会话模式下设置的状态需要reset 28服务 85服务设置的状态需要恢复至默认状态 27服务解锁状态需
  • CCP协议学习

    一 CCP协议基础知识 a CCP CAN Calibration Protocol 中文名为CAN标定协议 是基于CAN总线的一种应用层协议 b CCP可以读取RAM PORTS ROM FLASH 写RAM PORTS FLASH c
  • C语言代码静态检查学习笔记(结尾有惊喜)

    静态检查 静态分析的概念 定义 程序静态分析是指在不运行代码的方式下 通过各种分析工具对程序代码进行扫描并做出评估的过程 特点 不实际执行程序 只是通过对代码的静态扫描对程序进行分析 执行速度快 效率高 静态分析技术 类型检查 风格检查 风
  • ESP32S3学习——SPIFFS 文件系统

    芯片 esp32s3 开发环境 espidfv4 4 一 官网相关资料 1 简介 SPIFFS 是一个用于 SPI NOR flash 设备的嵌入式文件系统 支持磨损均衡 文件系统一致性检查等功能 2 说明 目前 SPIFFS 尚不支持目录
  • 数字IC验证:ARM总线协议AMBA中AHB、APB的简介、区别与联系

    写在前面 最近实习项目里用到这2个协议 因此简单整理一下 内容大多来自ARM官方文档与网络上的 我主要做一个整合 加上自己的理解补充 内容来源都会分别标出 如有侵权请指出 立刻删帖 官方文档入口 AMBA 包括AHB ASB APB 文章目
  • 【STM32实战】机械臂快递分拣系统(二)——机械臂控制程序(上位机)编写

    STM32实战 机械臂快递分拣系统 二 机械臂控制程序 上位机 编写 前言 题目分析 蓝牙模块的使用 上位机程序的编写 连接阿里云 测试 前言 近期回校上最后一门课 刚好是做机械臂有关的题目 所以写文记录一下 主要实现的是可以自动识别获取快
  • HardFault_Handler问题查找方法

    一 程序进入HardFault Handler 可能原因 1 内存溢出 常见的于数组访问越界 2 堆栈溢出 堆栈设置过小等 二 排查方法 方法1 出现该情况后 可首先查看LR寄存器中的值 确定当前使用堆栈为MSP或PSP 1 打开寄存器窗口
  • 计算机组成原理--基于Logisim的海明校验码解码电路实验的应用(超详细/设计/实验/作业/练习)

    目录 课程名 计算机组成原理 内容 作用 设计 实验 作业 练习 学习 基于Logisim的海明校验码解码电路 一 前言 二 环境与设备 三 内容 四 结果与分析 课程名 计算机组成原理 内容 作用 设计 实验 作业 练习 学习 基于Log
  • 使用Arduino开发ESP32(17):固件更新演示

    文章目录 目的 基础说明 使用演示 通过SD卡更新固件 通过网页更新固件 总结 目的 很多时候我们会有因为bug修复 功能增加等情况需要对已投产使用的设备更新固件 这种情况下再使用工具通过串口烧录固件就不是那么方便了 比较常用的是通过网络或
  • HT1621B液晶驱动(附电路图)

    最近做了一个项目用到了HT1621 电路图 datasheet code HT1621B datasheet include ht1621 h void ht1621 send high order data UCHAR data UCHA
  • STM32F4单片机ADC采样及ARM-DSP库的FFT

    模拟信号经过ADC采样后变成数字信号 数字信号可以进行FFT运算 在频域中更容易分析信号的特征 本文将介绍如何用STM32F4的进行ADC采样 并利用ARMDSP库里的FFT算法对ADC采样值进行快速傅里叶变换 我使用的是STM32F407
  • 【零基础玩转BLDC系列】基于反电动势过零检测法的无刷直流电机控制原理

    无刷直流电动机基本转动原理请参考 基于HALL传感器的无刷直流电机控制原理 基本原理及基础知识本篇不再赘述 目录 反电势过零检测法的原理 反电势过零检测实现方法 位置传感器的存在限制了无刷直流电机在某些特定场合中的应用 如 使电机系统的体积
  • MSP430F42X系列单片机SD16例程(16位AD采样)

    说明 该驱动程序库包含了常用的16位ADC SD16 操作与控制功能函数 如选择通道 设置信号放大倍数 设置数据格式 基准源输出开关等 以及常用采样函数 包括单通道采样 平均采样 多通道同时采样等 可以作为各种程序的底层驱动使用 要使用该库
  • MCU 常用的文件系统

    片外FLASH SPIFFS FATFS LittleFs 片上FLASH FlashDB EasyFlash
  • 【ESP32】反复重启

    ESP32开发 反复重启 串口输出如下所示 rst 0xc SW CPU RESET boot 0x13 SPI FAST FLASH BOOT configsip 188777542 SPIWP 0xee clk drv 0x00 q d
  • 关注MCU 开发中的无限循环

    在 MCU 的开发过程中 我们经常会遇到需要使用无限循环的情况 例如 在前后台系统中 我们需要在一个无限循环中处理各种任务 在实时性操作系统中 我们也可能需要在一个无限循环中调度各个任务 那么 处理无限循环的语句有哪些写法呢 目前常见的有两
  • 关注MCU 开发中的无限循环

    在 MCU 的开发过程中 我们经常会遇到需要使用无限循环的情况 例如 在前后台系统中 我们需要在一个无限循环中处理各种任务 在实时性操作系统中 我们也可能需要在一个无限循环中调度各个任务 那么 处理无限循环的语句有哪些写法呢 目前常见的有两

随机推荐

  • oracle触发器执行用户和v$session的查询

    oracle触发器 xff0c 由针对表的动作触发 xff0c 其执行用户为当前表的所有者 xff0c 所以在触发器中涉及的权限问题 xff0c 应该和触发器所基于的表的所有者有关 对于v session的查询 xff1a 要明确的是 xf
  • springboot打包docker镜像部署

    springboot打包docker镜像部署 环境准备 机器 vultr一台 centos7 资源下载 jdk8 maven git yum install git docker yum install docker io 环境搭建 jdk
  • 深度学习基础——简单了解meta learning(来自李宏毅课程笔记)

    知乎同名账号同步发布 目录 一 初步了解二 和ML的差异三 应用了解 一 初步了解 我们以分类问题为例 xff0c 以前 xff0c 学习的目的是学习一个二元分类器 f f f xff1b 现在 xff0c 学习的
  • docker删除镜像及容器

    问题 清理服务器相关无用docker镜像及容器 删除镜像image 要删除 Docker 中的镜像 xff0c 可以使用 docker rmi 命令 请注意 xff0c 删除镜像前请确保不再需要它 xff0c 并且已经停止了使用该镜像的所有
  • 云技术:弹性计算ECS

    云计算 xff08 Cloud Computing xff09 被业界看作继大型计算机 个人计算机 互联网之后的第四次IT产业革命 xff0c 正日益成为未来互联网与移动技术相结合的一种新兴计算模式 云计算提供了IT基础设施和平台服务的新模
  • 如何在 docker 容器中安装 ROS

    本文记录在 docker ubuntu 18 04 环境下安装 ROS xff08 机器人操作系统 xff09 的过程 目录 文章目录 目录安装 ROS参考文献 安装 ROS 安装步骤如下 xff1a span class token co
  • DOCKER个人遇见小问题

    1 在写dockerfile的时候使用了echo的方式向文件里面写入 基本格式是 echo 34 想要写入的操作 34 gt gt gt 路径 dockerfile 1 因为是要向文件里面进行一个写操作同时希望建立容器的时候执行这个操作 所
  • Tips and Tricks for Visual Question Answering: Learnings from the 2017 Challenge阅读笔记

    本文提出了一种基于深度神经网络的VQA模型 xff0c 并报告了一套广泛的实验来确定每个设计选择的贡献和替代设计的性能 它提供了关于VQA模型各个组件重要性的指示器 xff0c 一 Summary of findings 1 使用一个sig
  • Ubuntu系统用VNCViewer连不上远程的解决办法

    有时Ubuntu重启电脑重新联网之后 xff0c 用VNCViewer远程时提示timeout 解决办法 点击Ubuntu电脑系统的设置按钮 xff0c 进入共享选项卡 检查远程登录是不是已经开启 xff0c 屏幕共享是不是活动状态 屏幕共
  • OAuth2.0的四种授权方式

    前言 OAuth 简单理解就是一种授权机制 xff0c 它是在客户端和资源所有者之间的授权层 xff0c 用来分离两种不同的角色 在资源所有者同意并向客户端颁发令牌后 xff0c 客户端携带令牌可以访问资源所有者的资源 OAuth2 0 是
  • PowerBuilder---合并相同单元格

    在用数据窗口显示数据时 xff0c 经常会出现某一列的连续多行内容是相同的 xff0c 在有中国特色的软件使用者看来这是一个很大的问题 一定要合并才能显得规范 如下图 xff1a PowerBuilder 合并相同单元格 qibin jin
  • 各行业的英语术语(绝对精华 1)

    不看不知道 各行业的英语术语 xff08 绝对精华 xff09 化妆品中英文对照 makeup xff08 粉底 xff09 mask xff08 面膜 xff09 mascara xff08 睫毛膏 xff09 milk xff08 乳
  • SD-WAN与SDN:揭开差异 如何选择虚拟化网络

    随着物联网 工业互联网等新兴业务场景的不断涌现 xff0c 网络正面临着开放 融合 智能化 个性化等需求 在SDN进入稳定爬升期 xff0c 还未完全落地之时 xff0c 以SD WAN xff08 软件定义的广域网 xff09 为代表的新
  • H5实例 移动端页面练习

    文章目录 标签知识点 标签知识点 name 61 viewport xff1b 屏幕设定maximum scale 61 1 0 minimum scale 61 1 0 initial scale 61 1 0 xff1b 最大最小缩放比
  • SSH修改远程端口后无法登录的解决办法

    参考 xff1a https www cnblogs com opswa p 16076001 html SSH是一种网络协议 xff0c 用于计算机之间的加密登录 如果一个用户从本地计算机 xff0c 使用SSH协议登录另一台远程计算机
  • 串口调试助手如何使用

    需要设置好对应的串口端口 xff0c 波特率 校验位 数据位 停止位 xff0c 然后打开串口 这是一个绿色版的 xff0c 比深蓝串口调试助手好用的多
  • 来来来!我告诉你 AUTOSAR架构深度解析从入门到放弃

    如何快速学习AUTOSAR 关于AUTOSAR的背景和架构信息 xff0c 这里就不详细展开了 大家可以参看 xff1a AUTOSAR的分层架构 一文了解 今天我们重点讲讲如何快速学习AUTOSAR架构的方法 如何获取规范文档 xff1f
  • 智能指针make_unique 与make_shared 的知识介绍

    关于make unique的构造及使用例程 xff0c MSDN的讲解非常详细 xff08 https msdn microsoft com zh cn library dn439780 aspx xff09 使用过程中 xff0c 主要有
  • Adaptive AutoSAR 标准介绍

    关于自适应AutoSAR 平台 自适应autosar 平台实现了adaptive applications的运营环境 它提供了两种接口 xff0c 一种是service 一种是API 平台功能分成两部分 xff1a service部分和ad
  • MPU和MCU的区别

    MCU指的是微控制 器 集合了FLASH RAM和一些外围器件 MCU一般使用片内FLASH来存储和执行程序代码 MPU指的是微处理 器 FLASH和RAM则需要设计者自行搭建 xff0c 当然MCU也可以外扩 MPU的电路设计相对MCU较