[架构之路-14]:目标系统 - 硬件平台 - CPUMPUNPUGPUMCUDSPFPGASOC的区别
Posted 文火冰糖的硅基工坊
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了[架构之路-14]:目标系统 - 硬件平台 - CPUMPUNPUGPUMCUDSPFPGASOC的区别相关的知识,希望对你有一定的参考价值。
目录
1.1 CPU(Central Processing Unit:中央处理单元/器)
1.2 MPU(Microprocessor Unit:微处理单元/器)-- 广义CPU
1.3 MCU(Mirco Controller Unit:微控制单元)-- 单片机
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、外设控制器为一体的芯片。
以上是关于[架构之路-14]:目标系统 - 硬件平台 - CPUMPUNPUGPUMCUDSPFPGASOC的区别的主要内容,如果未能解决你的问题,请参考以下文章
[架构之路-20]:目标系统 - 硬件平台 - 嵌入式系统硬件电路基础:架构设计流程总线外设基本电路编码
[架构之路-13]:目标系统 - 硬件平台 - 五种主流CPU架构的比较(CISC X86RISC ARMRISC PowerPCRISC MIPSRISC-V)
[架构之路-17]:目标系统 - 硬件平台 - ARM CPU架构与系列选型
[架构之路-12]:目标系统 - 硬件平台 - 单核CPU的架构与基本工作原理
[架构之路-16]:目标系统 - 硬件平台 - CPU主要物理性能指标
[架构之路-19]:目标系统 - 硬件平台 - 案例1 - 用单片机STM8/STM32搭建目标系统(以无线传感器LoRa终端为例)