arm接口技术一--arm核总结

嵌入式底层开发之ARM接口技术和智能硬件开发

一、CPU、MPU、MCU、SOC的概念与区别

SOC,system on chip,片上系统,cpu核 + 外围控制器。即在一块芯片上集成了整个信息系统。简单来说就是在CPU的基础上,扩展集成专用接口的超大规模集成电路,是智能设备的大脑。
通常说的买手机上的CPU就是SOC;而买电脑上的CPU就是CPU芯片,电脑上的控制器是南桥、北桥芯片。

1. 概念

1.1 CPU(Central Processing Unit)
CPU(Central Processing Unit),是一台计算机的运算核心和控制核心。CPU由运算器、控制器和寄存器及实现它们之间联系的数据、控制及状态的总线构成。众所周知的三级流水线:取址、译码、执行的对象就是CPU,差不多所有的CPU的运作原理可分为四个阶段:提取(Fetch)、解码(Decode)、执行(Execute)和写回(Writeback)。 CPU从存储器或高速缓冲存储器中取出指令,放入指令寄存器,并对指令译码,并执行指令。所谓的计算机的可编程性主要是指对CPU的编程。

1.2 MPU (Micro Processor Unit)

MPU (Micro Processor Unit),叫微处理器(不是微控制器MCU,很多人会把微处理器和微控制器混淆),通常代表一个功能强大的CPU(暂且理解为增强版的CPU吧),但不是为任何已有的特定计算目的而设计的芯片。这种芯片往往是个人计算机和高端工作站的核心CPU。例如Intel 的X86,ARM的一些Cortex-A芯片如飞思卡尔i.MX6、全志A20、TI AM335X等都属于MPU。

1.3 MCU(Micro Control Unit)

MCU(Micro Control Unit):叫微控制器,其实就是我们平常说的单片机。是指随着大规模集成电路的出现及其发展,将计算机的CPU、RAM、ROM、定时计数器和多种I/O接口集成在一片芯片上,形成芯片级的芯片,比如51、STC、AVR、Cortex-M这些芯片,内部除了CPU外还有RAM、ROM,也就是在一块芯片中集成了整个计算机系统,可以直接加简单的外围器件(电阻,电容)就可以运行代码了。它本质上仍是一个完整的单片机,有处理器,有各种接口,所有的开发都是基于已经存在的系统架构,应用者要做的就是开发软件程序和加外部设备。而像ARM(Cortex-A系列)直接放代码是运行不了的,因为它本质上只是增强版的CPU,必须添加相应的RAM和ROM。

1.4 SoC(System on Chip)

SoC(System on Chip,整体的一个电路系统,完成一个具体功能的东西):指的是片上系统,MCU只是芯片级的芯片,而SoC是系统级的芯片,它既MCU那样有内置RAM、ROM同时又像MPU那样强大,不单单是放简单的代码,可以放系统级的代码,也就是说可以运行操作系统(以Linux OS为主)(将就认为是MCU集成化与MPU强处理力各优点二合一)。

1.5 SoPC(System On a Programmable Chip)

与上述几项概念相比,SoPC的出现频率并不是那么高,但这并不影响它的重要性。SOPC是System On a Programmable Chip的缩写,即 可编程片上系统,SoPC与MCU、MPU、SoC最明显的区别在于:可更改硬件配置,也就是说自己构造芯片。

举个例子说明便于理解,单片机的硬件配置是固化好了的, 我们能够编程修改的就是软件配置,本来是串口通信功能,通过修改代码变成AD采样功能,也就是说硬件配置是固定了的,我们只能通过修改软件来选择其中的一项或多项功能;而SoPC可以修改硬件配置信息使其成为相应的芯片,可以是MCU,也可以是SoC。

2. 区别

2.1 MCU和MPU的区别

MCU在一块芯片中集成了整个计算机系统,可以直接加简单的外围器件(电阻,电容)就可以运行代码了。它本质上仍是一个完整的单片机,有处理器,有各种接口,所有的开发都是基于已经存在的系统架构,应用者要做的就是开发软件程序和加外部设备。

MPU如ARM的Cortex-A系列,直接放代码是运行不了的,因为它本质上只是增强版的CPU,必须添加相应的RAM和ROM。

2.2 CPU与SoC的区别

SoC可以认为是将MCU集成化与MPU强处理力各优点二合一,其中MCU是CPU集成了各类外设,MPU是增强版的CPU

2.3 SoPC与MCU、MPU、SoC的区别

SoPC与MCU、MPU、SoC最明显的区别在于:可更改硬件配置,也就是说自己构造芯片。

目前芯片的发展方向是从CPU到SoC,现在已经没有纯粹的CPU了,都是SoC。ARM出卖的内核其实就是CPU(当然还需要总线),各种外设是半导体厂商自己添加的。

二、cpu组成

CPU又叫中央处理器,其主要功能是进程算术和逻辑运算,内部结构大概可以分为控制单元、算数逻辑单元和存储单元等几个部分。按其处理信息字的长度,又分为8位、16位、32位、64位微处理。

1、clock单元:不是手表。类似人的心脏,cpu能不能工作就是看clock单元。clock单元发出不断跳变的时钟信号(电压信号)。跳变频率越高,CPU工作速度越快

  • CPU主频2.6GHz:表示外围的时钟信号是2.6GHz的时候CPU正常工作;稍微超一点点是可以的,这就是CPU的超频。超太多了CPU可能就会损坏。
  • 时钟信号是由一套单独的电路产生的

2、控制单元:由预取电路和译码电路组成。

  • 预取电路:从PC寄存器取指令;取到指令后,再通过译码电路对指令做解析,解析之后知道指令是干嘛的,就知道CPU接下来要做什么事情;然后根据这些指令来控制ALU、I/O外设等。
  • 指令就是C语言编译之后的机器码,机器码是由CPU厂家设计的,CPU可以解析机器码并知道不同机器码要做什么事情
  • PC寄存器中的指令来源于高速cache。因为内存的频率是MHz级别,而CPU的频率是GHz级别,如果直接从内存中获取指令,内存根本忙不过来;所以厂家在设计的时候加入了高速cache

3、算术逻辑单元:ALU,Arithmetic And Logic Unit。从寄存器中读取数据进行算术或逻辑运算,并将运算结果放到寄存器中。寄存器中的数据来源于数据cache。

4、PC寄存器:Program counter,是一种特殊的寄存器,用于存放下一条取指指令的地址。 PC总是指向下一条将要取指的指令地址。CPU总是按照PC的指向对指令序列进行取指、译码和执行,也就是说,最终是PC 决定了程序运行流向

5、通用寄存器(GR,General register):通用寄存器可用于传送和暂存数据,也可参与算术逻辑运算,并保存运算结果。寄存器就是CPU内部的存储单元,CPU内部有很多寄存器。

6、高速cache:分为数据cache、指令cache。数据和指令不是直接进到CPU寄存器的,而是通过高速cache进来的。

三、CPU厂家主要工作

机器码设计、主频、高速cache、多核集成、硬件浮点运算、数据运算、功耗。

CISC:complex Instruction Set Computer,复制指令集计算机。
RISC:Reduced Instruction Set Computer,精简指令集计算机。

  • 复制指令集,长度不固定,一条指令就可以完成一个复杂的功能,所以效率高,但是功耗也高。intel就是复制指令集
  • 精简指令集,长度固定,一条指令要么32位,要么64位…一个功能可能要执行多条指令,效率相比复杂指令集低,但是功耗低,比如ARM就是精简指令集。

常见的CPU芯片厂家有: ARM、Intel、RISC-V、MIPS、PowerPC等。

芯片产业链: 芯片设计:ARM、Intel – SOC:半导体厂家(高通、三星、联发科、恩智浦NXP、全志、御芯微、海思) – 产品:小米、华为、Apple、大疆


ARM核介绍

ARM是Advanced RISC Machine的缩写。ARM是一家微处理器企业,设计了大量的高性能、廉价、低功耗的RISC处理器。ARM只设计芯片,不生产,授权半导体厂商并提供服务。

ARM11之后,ARM核命名为Cortex,分为三个系列:A、R、M。

  • A系列主要用于消费电子领域,可以跑操作系统;
  • R系列,主要用于工业控制、医疗器械、新能源汽车领域,对实时要求比较高;
  • M系列主要是单片机,功能不是特别强大,不跑操作系统。

1.1 ARMv7核的工作模式

arm v7核有9种工作模式:9种工作模式中,只有User和System为正常工作模式,其他的都是非正常的工作模式。好比人在不同的境况下有不同的状态:编写代码是工程师模式,生病是小洋人模式,带小孩是奶爸模式…
在这里插入图片描述

只有User模式是PL0权限级别,级别最低,不能主动切换到其他工作模式,除非引起异常。

  • User模式是用户程序的工作模式,它运行在操作系统的用户态,它没有权限去操作其它硬件资源,只能执行处理自己的数据,也不能切换到其它模式下,要想访问硬件资源或切换到其它模式只能通过软中断或产生异常。

IRQ中断:是指软件在执行的时候,产生了一个特殊的信号,打断了CPU正在的请求,然后切换到另外一种模式去。好比老师上课,讲课过程中有学生提问导致打断老师讲课
必须要有中断,不然老师必须不停的去看有没有人提问,一边讲课一遍观察有没有人提问题,这样的话消耗的资源比较多呀,老师好累啊。有了中断,老师一直讲课就可以了,有问题学生打断就可以了。而学生打断的时候,处理速度方面又分为两种:一种是需要马上解答FIQ,一种不用马上解答IRQ。

1.2 ARMv7核的寄存器资源

寄存器是CPU内部的存储单元。数据要到CPU内部计算,那么数据首先要存到CPU的寄存器上,然后才可以用ALU计算。

  • R0-R7、PC寄存器是所有工作模式共享的。PC寄存器用于存放下一条取指指令的地址。PC总是指向下一条将要取指的指令地址
  • FIQ工作模式单独有一套R8-R12寄存器
  • 除了正常的User和System工作模式,Hyp工作模式单独拥有SP寄存器,其他异常的工作模式都单独拥有SP和LR寄存器
  • 另外两个寄存器:CPSR,记录当前程序的工作模式;SPSR,异常产生时,用于保存CPSR的值

FIQ工作模式,R8-R12寄存器与其他工作模式不共享。即FIQ单独有R8-R12寄存器,这也是为什么FIQ比IRQ快的原因

  • 其他工作模式进入到IRQ时,IRQ因为与其他工作模式共享R0-R7工作模式,所以进入IRQ工作模式后需要先保存R0-R7寄存器原来的值到内存中;待IRQ工作模式工作完成准备退出时,需要从内存中读取之前保存的数据,然后恢复R0-R7寄存器为原来的值。这个过程显然需要时间。而FIQ单独有R8-R12寄存器五个寄存器,在FIQ工作模式下,在自己独立的寄存器中存取的数据,没有IRQ保存和恢复的过程,所以FIQ比IRQ快。

寄存器资源及用途

更多介绍,看体系课1.2 ARM核介绍.pdf。重点掌握寄存器用途分析、CPSR寄存器低8位、高5位的意义。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

一个两个四个三

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值