当前位置: 首页 > news >正文

[架构之路-14]:目标系统 - 硬件平台 - CPU、MPU、NPU、GPU、MCU、DSP、FPGA、SOC的区别

目录

前言:

一、通用指令程序控制

1.1 CPU(Central Processing Unit:中央处理单元/器)

1.2 MPU(Microprocessor Unit:微处理单元/器)-- 广义CPU

1.3 MCU(Mirco Controller Unit:微控制单元)-- 单片机

二、网络协议处理器NPU

2.1 npu = network processing units:网络处理单元

2.2 npu = neural-network processing units:神经网络处理器

三、矩阵运算

3.1 GPU(graphics processing unit,缩写:GPU)

3.2 TPU(Tensor Processor Unit)

四、DSP(Digital Signal Processing,简称DSP)

五、片上系统

5.1 FPGA(Field Programmable Gate Array:现场可编程逻辑器件)

5.2 SOC(System on Chip:系统级芯片,也有称片上系统)


前言:

作为嵌入式系统的架构师,我们经常会遇到主控芯片的选型问题,从重点类型的芯片中,选择合适的符合业务系统需要的芯片。本文就阐述各种类型芯片的区别。

一、通用指令程序控制

1.1 CPU(Central Processing Unit:中央处理单元/器)

中央处理器(central processing unit,简称CPU)作为计算机系统的运算控制核心,是信息处理、程序运行的最终执行单元。CPU也称为通用处理器。

其功能主要功能是通过运算单元ALU来解释计算机指令以及处理计算机软件中的二进制数据

狭义的CPU,只包括ALU和相应的控制电路,不包括IO控制器和内存控制器MMU。

广义的CPU,除了包括ALU和相应的控制电路之外,还包括IO控制器和内存控制器MMU和中断控制器,是集成了大量外围控制器的单颗芯片。

目前,很少有狭义上的CPU了,大多都是广义上的CPU芯片。

1.2 MPU(Microprocessor Unit:微处理单元/器)-- 广义CPU

微机中的中央处理器(CPU)称为微处理器(MPU),是构成微机的核心部件,也可以说是微机的心脏。它起到控制整个微型计算机工作的作用,产生控制信号对相应的部件进行控制,并执行相应的操作。

在微机中,CPU被集成在一片超大规模集成电路芯片上,称为微处理器(MPU),微处理器插在主板的cpu插槽中。

MPU就是广义上的CPU。

1.3 MCU(Mirco Controller Unit:微控制单元)-- 单片机

微控制单元(Microcontroller Unit;MCU),重在控制,因此,又称单片微型计算机(Single Chip Microcomputer )或者单片机。

它是把中央处理器(Central Process Unit;CPU)的频率与规格做适当缩减,并将内存(memory)、Flash、计数器(Timer)、USB、A/D转换、UART、PLC、DMA等周边接口,甚至LCD驱动电路都整合在单一芯片上,形成芯片级的计算机,为不同的应用场合做不同组合控制。

诸如手机、PC外围、遥控器,至汽车电子、工业上的步进马达、机器手臂的控制等,都可见到MCU的身影。

MCU VS MPU

MCU重在“控制”,所谓控制,就是包含了外围设备、内存的微型计算机。

MPU重在“处理”,所谓处理,强调的是ALU的能力,就是带有外围控制器的CPU

CPU:ALU + 控制电路

MPU:ALU + 控制电路 + IO控制器  + 内存控制器。 =》 NLP2160处理器。

MCU:ALU + 控制电路 + IO控制器  + 内存控制器 + IO设备 + 内存 => STM32, MSP430等单片机

二、网络协议处理器NPU

2.1 npu = network processing units:网络处理单元

专门用于处理网络数据包的处理器, 如处理IP数据包的加密。

2.2 npu = neural-network processing units:神经网络处理器

嵌入式神经网络处理器(NPU)是以数据驱动并行计算的专用的处理器、专用芯片。

特别擅长处理视频、图像类的海量多媒体数据。

三、矩阵运算

3.1 GPU(graphics processing unit,缩写:GPU)

图形处理器,又称显示核心、视觉处理器、显示芯片,是一种专门在个人电脑、工作站、游戏机和一些移动设备(如平板电脑、智能手机等)上做图像图形相关运算工作的微处理器。

CPU和GPU之所以大不相同,是由于其设计目标的不同,它们分别针对了两种不同的应用场景。CPU需要很强的通用性来处理各种不同的数据类型,同时又要逻辑判断又会引入大量的分支跳转和中断的处理。这些都使得CPU的内部结构异常复杂。而GPU面对的则是类型高度统一的、相互无依赖的大规模数据和不需要被打断的纯净的计算环境。

GPU采用了数量众多(高达成百上千个)的ALU计算单元和超长的流水线,但只有非常简单的控制逻辑并省去了Cache。

CPU不仅被Cache占据了大量空间,而且还有有复杂的控制逻辑和诸多优化电路,相比之下计算能力只是CPU很小的一部分。

3.2 TPU(Tensor Processor Unit)

张量处理器(英语:tensor processing unit,缩写:TPU)是Google为机器学习定制的专用芯片(ASIC),专为Google的深度学习框架TensorFlow而设计。

与图形处理器(GPU)相比,TPU采用低精度(8位)计算,以降低每步操作使用的晶体管数量。降低精度对于深度学习的准确度影响很小,但却可以大幅降低功耗、加快运算速度。同时,TPU使用了脉动阵列的设计,用来优化矩阵乘法与卷积运算,减少I/O操作。此外,TPU还采用了更大的片上内存,以此减少对DRAM的访问,从而更大程度地提升性能。

Google在2016年的Google I/O年会上首次公布了TPU。不过在此之前TPU已在Google内部的一些项目中使用了一年多,如Google街景服务、RankBrain以及其旗下DeepMind公司的围棋软件AlphaGo等都用到了TPU。而在2017年的Google I/O年会上,Google又公布了第二代TPU,并将其部署在Google云平台之上。第二代TPU的浮点运算能力高达每秒180万亿次。

四、DSP(Digital Signal Processing,简称DSP)

数字信号处理(Digital Signal Processing,简称DSP)是一门涉及许多学科而又广泛应用于许多领域的新兴学科。 是由大规模或超大规模集成电路芯片组成的用来完成数字信号处理任务的处理器。

数字信号处理已经在通信等领域得到极为广泛的应用。数字信号处理是利用计算机或专用处理设备,以数字形式对信号进行采集、变换、滤波、估值、增强、压缩、识别等处理,以得到符合人们需要的信号形式。

(1)CPU VS DSP

DSP主要用来开发嵌入式的信号处理系统,不强调人机交互,不需要太多通信接口,结构也较为简单,便于开发。

CPU的标准化和通用性更为完善,支持操作系统,以CPU为核心的系统方便人机交互,具有标准接口设备通信;

CPU外设接口电路比较复杂。

嵌入式CPU偏重逻辑控制。

DSP偏重数学运算,提供大量的乘法单元。

CPU采用的冯诺依曼架构:数据和程序使用相同的存储器。

DSP采用的是哈佛结构:数据和程序使用不同的存储器。

(2) DSP VS GPU

DSP最初是用来执行矩阵算法的。但到目前为止,DSP 并没能真正提供任何有用的性能或是可以与 GPU 相匹敌的器件。为什么会这样呢?其主要原因就是核数量。DSP 主要用于电信系统,且无需拥有 16 个或 32 个以上的核。其工作负载并不需要这么多。相反,GPU 负载在近 10~15 年间一直在增加,可以拥有上百个核,大约从 2006 年开始,英伟达的 GPU 在性能上就超过了 DSP。

DSP可以执行程序,也可以进行运算。

GPU只能进行运算。

五、片上系统

5.1 FPGA(Field Programmable Gate Array:现场可编程逻辑器件)

FPGA 器件属于专用集成电路中的一种半定制电路,是可编程的逻辑列阵,能够有效的解决原有的器件门电路数较少的问题。FPGA 的基本结构包括可编程输入输出单元,可配置逻辑块,数字时钟管理模块,嵌入式块RAM,布线资源,内嵌专用硬核,底层内嵌功能单元。由于FPGA具有布线资源丰富,可重复编程和集成度高,投资较低的特点,在数字电路设计领域得到了广泛的应用。

目前的FPGA,除了提供传统的现场可编程的能力外,还提供了大量的DSP核、ARM CPU核、外网控制器等功能。可以通过FPGA动态构建一个CPU + DSP + RAM + 外设控制器的单芯片计算机系统。是可编程的线上系统PSOC

传统的现场可编程的能力提供了快速的、高速的、组合逻辑和时序逻辑处理

5.2 SOC(System on Chip:系统级芯片,也有称片上系统)

System on Chip的缩写,称为系统级芯片,也有称片上系统,意指它是一个产品,是一个有专用目标的集成电路,其中包含完整系统并有嵌入软件的全部内容。

从狭义角度讲,它是信息系统核心的芯片集成,是将系统关键部件集成在一块芯片上;从广义角度讲, SoC是一个微小型系统,如果说中央处理器(CPU)是大脑,那么SoC就是包括大脑、心脏、眼睛和手的系统。国内外学术界一般倾向将SoC定义为将微处理器、模拟IP(Intellectual Property)核、数字IP核和存储器(或片外存储控制接口)集成在单一芯片上,它通常是客户定制的,或是面向特定用途的标准产品。

目前,大部分的所谓的CPU或处理器都是SOC系统,而不是单纯的狭义上的计算单元ALU.

因此,SOC并不是什么处理器,而是集处理器、DSP、外设控制器为一体的芯片。

相关文章:

  • Linux下brk、sbrk实现一个简易版本的malloc
  • 一、CSS选择器与权重[基础选择器、结构选择器、属性选择器、伪类选择器]
  • flutter系列之:深入理解布局的基础constraints
  • 【C语言进阶】动态内存管理及柔性数组
  • 网课查题接口系统
  • C语言基础知识入门
  • 闲暇之际敲敲代码,记录Leetcode刷题Day-01
  • 2021年下半年信息安全工程师上午真题及答案解析
  • Dinky,让 Flink SQL 纵享丝滑
  • Docker | docker容器导出以及常见问题的处理
  • 【node进阶】深度解析之Express框架入门
  • 【重温Linux】一、Ubuntu系统一些常识性的东西(这节持续更新)
  • mysql group_concat 与 union 联合查询漏洞,数据列最大长度为341
  • ISO27001认证需要准备什么资料?
  • 腾讯研究成果登 Nature 子刊:scBERT 攻克单细胞测序数据分析痛点
  • 《Java编程思想》读书笔记-对象导论
  • android 一些 utils
  • es的写入过程
  • mac修复ab及siege安装
  • Nacos系列:Nacos的Java SDK使用
  • ng6--错误信息小结(持续更新)
  • PHP那些事儿
  • rabbitmq延迟消息示例
  • RxJS 实现摩斯密码(Morse) 【内附脑图】
  • vuex 笔记整理
  • 对话:中国为什么有前途/ 写给中国的经济学
  • 给Prometheus造假数据的方法
  • 聊聊hikari连接池的leakDetectionThreshold
  • 驱动程序原理
  • 原创:新手布局福音!微信小程序使用flex的一些基础样式属性(一)
  • 云栖大讲堂Java基础入门(三)- 阿里巴巴Java开发手册介绍
  • 专访Pony.ai 楼天城:自动驾驶已经走过了“从0到1”,“规模”是行业的分水岭| 自动驾驶这十年 ...
  • ​用户画像从0到100的构建思路
  • # 安徽锐锋科技IDMS系统简介
  • #AngularJS#$sce.trustAsResourceUrl
  • #define
  • #在线报价接单​再坚持一下 明天是真的周六.出现货 实单来谈
  • (pojstep1.3.1)1017(构造法模拟)
  • (超简单)构建高可用网络应用:使用Nginx进行负载均衡与健康检查
  • (翻译)terry crowley: 写给程序员
  • (附源码)php投票系统 毕业设计 121500
  • (附源码)计算机毕业设计ssm本地美食推荐平台
  • (强烈推荐)移动端音视频从零到上手(下)
  • (三)Pytorch快速搭建卷积神经网络模型实现手写数字识别(代码+详细注解)
  • (算法)前K大的和
  • (译)计算距离、方位和更多经纬度之间的点
  • (原創) 未来三学期想要修的课 (日記)
  • (转)ABI是什么
  • (转)Unity3DUnity3D在android下调试
  • .NET Core工程编译事件$(TargetDir)变量为空引发的思考
  • .NET I/O 学习笔记:对文件和目录进行解压缩操作
  • .Net Remoting常用部署结构
  • .Net调用Java编写的WebServices返回值为Null的解决方法(SoapUI工具测试有返回值)
  • .net下简单快捷的数值高低位切换
  • /var/log/cvslog 太大