专栏名称: 新机器视觉
最前沿的机器视觉与计算机视觉技术
目录
相关文章推荐
笔吧评测室  ·  华硕无畏 Pro 14 骁龙版 2025 ... ·  昨天  
笔吧评测室  ·  荣耀 MagicBook Pro 14 ... ·  2 天前  
笔吧评测室  ·  聊一台售后长达3年的一线笔记本 ·  2 天前  
笔吧评测室  ·  联想 YOGA 14 / X 和 YOGA ... ·  3 天前  
51好读  ›  专栏  ›  新机器视觉

嵌入式概念及硬件组成

新机器视觉  · 公众号  ·  · 2024-09-22 21:15

正文

一、MPU、MCU、SoC、

Application Processors的概念


https://www.microcontrollertips.com/microcontrollers-vs-microprocessors-whats-difference/


https://www.microcontrollertips.com/difference-microprocessors-application-processors/


在一个电子系统中,处理器占据最重要的位置,被称为中内处理器单元:CPU(Central Processing Unit)。它从IO设备读取数据,处理,然后显示出来。


CPU的发展有两个路线:MPU、MCU。


MPU只是一个处理器,需要搭配内存等非常多的其他外设才可以构成一个系统;


MCU内部有处理器、内存、Flash及其他模块,仅仅需要搭配少量外设就可以构成一个系统。


MPU这一路线,在上世纪80年代非常流行,那时的微型计算机、游戏机都是使用MPU。比如Motorola公司的68000芯片就是一款主流的微处理器(MPU)。下图是一款Alpha Micro AM-1000系列的微型计算机电路板,电路板右侧中间最大的芯片就是MPU 68000。



后来MPU逐渐式微,可以认为MPU发现到现在只剩下了intel、AMD公司x86系列CPU。这类CPU也越来越复杂,称之为“微处理器”似乎不恰当了。在个人电脑领域,可以看到类似下图的主板。主板上插上CPU、内存条、声卡等等就构成了一台计算机。整个主板体积庞大、制造复杂:



MCU这一路线,就是把CPU、内存、Flash都集中在一个芯片上,它再搭配其他外设备就可以构建一个完整的系统。MCU的发展经历过8位8051单片机、16位AVR单片机、32位STM单片机等等:



我们使用的51单片机、STM32单片机,一般都只是用来处理比较简单的事务,应用场景比较单一。我们使用的手机,里面的主芯片更加复杂,它既含有CPU,也含有用于数据处理的DSP、用于图形显示的GPU。使用这类主芯片设计出来的电路板更加复杂,它的性能甚至不弱于个人电脑:



为了跟个人电脑相区分,这些使用含有CPU电子产品,被称为嵌入式系统、嵌入式产品、嵌入式板卡。


嵌入式板卡就是一台形状不一样的电脑,跟电脑相比,可以引入几个概念:


1.CPU (Central Processing Unit)


中央处理器,在PC机它是一个独立的芯片。


在嵌入系统中,它是芯片里的一个单元,跟其他模块比如USB、UART、音频组成一个芯片。


众所周知的三级流水线:取址、译码、执行的对象就是CPU,差不多所有的CPU的运作原理可分为四个阶段:提取(Fetch)、解码(Decode)、执行(Execute)和写回(Writeback)。


CPU从存储器或高速缓冲存储器中取出指令,放入指令寄存器,并对指令译码,并执行指令。所谓的计算机的可编程性主要是指对CPU的编程。


2.MPU (Micro Processor Unit)


微处理器单元,其作用等同于在PC上使用的CPU,它也只仅仅是一个处理器,需要配合内存、Flash等外设才可以使用。


现在,除了个人电脑上的CPU,基本上找不到MPU了。并且我们一般不把电脑上的CPU当作MPU,毕竟它也是挺大的,并不“微小”。


3.MCU (Micro Controller Unit)


微控制器单元,有时又称为单片机。


MCU内部集成了处理器和各类模块,比如USB控制器、UART控制器、内存、Flash等等。只需要外接少量的器件,就可以搭建一个电子系统。


C51芯片、STM32等芯片,都是MCU。


MCU芯片内部的内存或Flash,容量在几KB、几百KB、几MB的量级,一般不再需要外接内存或Flash。


4.Application Processors


手机中的主芯片跟MCU类似,也是集成了处理器和各类模块。但是它的性能已经极大提升,可以外接几GB的内存、几GB的Flash。


在手机中,这个主芯片一般用来处理显示、输入,运行用户的程序,所以称它为“Application Processors”。

“Application Processors”的概念可以扩展到其他场景,不再局限于手机。


跟MCU进行比较,Application Processors有以下不同:


a. 集成了更多的模块:


°Application Processors内部集成了更多的模块,比如用于数据处理的DSP、用于图形显示的GPU,甚至有多个处理器。


°这里又引入一个概念“片上系统”(SoC,System on Chip),SoC的本意是在一个芯片上就可以搭建完整的系统。


°但是这个概念在日常使用中比较宽泛:MCU芯片也可以称为SoC,Application Processors也可以称为SoC,即使它们还必须外接内存/Flash等外设才可以运行。


°在以前的文档中涉及SoC时,意指比较复杂的系统;这时候MCU不属于SoC,因为MCU比较简单。但是时代在发展,MCU也越来越复杂了,所以把MCU也当作SoC也是可以的。


°在手机电路板中,可用空间非常小。Application Processors还需要搭配内存芯片才可以使用,于是发展出了一种名为package-on-package (PoP)的工艺:在电路板上先焊接Application Processors,在Application Processors上面再焊接内存芯片,即2个芯片叠在一起。


b. 运行的操作系统不同:


°MCU上一般不运行操作系统,或是运行一些资源耗费较小的小型实时操作系统(RTOS)。


°MCU一般用来处理实时性要求高的事情,处理一些比较简单的事情。


°Application Processors基本上都会运行比较复杂的操作系统(比如Linux),在操作系统上运行多个APP。


在这里做个总结:CPU发展从MPU开始并分为两个路线,一条线路是专用CPU(比如我们个人电脑上的CPU),另一条线路是走集成路线,把CPU与其他模块集成到一起形成MCU(微控制器),MCU继续发展形成AP(应用处理器)。注意:对于芯片可以分为两类:MCU与AP,但在日常工作中,与MCU对应的除了AP还有MPU,MCU是用来跑单片机,而AP/MPU是用来跑Linux操作系统,这里会与前面的总结冲突,我们只需要知道AP/MPU是与MCU相对的即可。



二、哈弗架构与冯诺伊曼架构



CPU架构可以分为哈弗架构与冯诺伊曼架构。哈弗架构中指令与数据分开存放,CPU可以同时读入指令、读写数据。冯诺伊曼架构中指令、数据混合存放,CPU依次读取指令、读写数据,不可同时操作指令和数据。


ARM公司的芯片,ARM7及之前的芯片是冯诺伊曼架构,ARM7之后使用“改进的哈弗架构”。“改进的哈弗结构”如下所示:



在“改进的哈弗架构”里,指令和数据在外部存储器中混合存放;CPU运行时,从指令cache中获得指令,从数据cache中读写数据。



三、XIP概念


eXecute In Place, 本地执行。可以不用将代码拷贝到内存,而直接在代码的存储空间运行。



四、嵌入式系统硬件组成


一句话引出整个嵌入式系统: 支持多种设备启动


问题引出:


a. 系统支持SPI FLASH启动, 这意味着可以运行SPI FLASH上的代码


b. 但是SPI FLASH不是XIP设备,, cpu无法直接执行里面的代码


问题来了,CPU如何执行SPI FLASH上的代码?一上电, CPU执行的第1个程序、第1条指令在哪里?


答案:


a. ARM板子支持多种启动方式:XIP设备启动、非XIP设备启动等等。比如:Nor Flash、SD卡、SPI Flash, 甚至支持UART、USB、网卡启动。这些设备中,很多都不是XIP设备。


问:既然CPU无法直接运行非XIP设备的代码,为何可以从非XIP设备启动?

答:上电后,CPU运行的第1条指令、第1个程序, 位于片内ROM中, 它是XIP设备。这个程序会执行必要的初始化, 比如设置时钟、设置内存;再从"非XIP设备"中把程序读到内存;最后启动这上程序。


猜测: ARM芯片内部有很多部件,这是一个片上系统(System on chip),






请到「今天看啥」查看全文