导图社区 嵌入式系统
嵌入式系统思维导图:包含计算机架构,计算机组成(控制单元在时序脉冲的作用下,将指令计数器里所指向的指令地址(这个地址是在内存里的)送到地址总线上去,然后CPU将这个地址里的指令读到指令寄存器进行译码。)等等
编辑于2022-05-05 10:03:11嵌入式系统
计算机架构
冯诺依曼架构
哈佛架构
计算机组成
计算机系统
硬件系统
软件系统
计算机总线结构
数据总线DB(DataBus)
地址总线AB(AddressBus)
控制总线CB(ControlBus)
计算机的存储器
Cache高速缓冲存储器容量小、速度快、价格高
RAM 随机存取存储器容量中、速度中、价格中
Flash 闪存 容量大、速度慢、价格低
计算机的控制器
程序计数器PC(ProgramCounter)
指令寄存器IR(InstructionRegister)
指令译码器ID(InstructionDecoder)
操作控制器OC(OperationController)
CPU运行原理
控制单元在时序脉冲的作用下,将指令计数器里所指向的指令地址(这个地址是在内存里的)送到地址总线上去,然后CPU将这个地址里的指令读到指令寄存器进行译码。
对于执行指令过程中所需要用到的数据,会将数据地址也送到地址总线,然后CPU把数据读到CPU的内部存储单元(就是内部寄存器)暂存起来,最后命令运算单元对数据进行处理加工。
指令执行过程
1.取指令:CPU的控制器从内存读取一条指令并放入指令寄存器。
2.指令译码:指令寄存器中的指令经过译码,决定该指令应进行何种操作(就是指令里的操作码)、操作数在哪里(操作数的地址)。
3.执行指令:分两个阶段“取操作数”和“进行运算”。
4.修改指令计数器,决定下一条指令的地址。
ARM体系架构
架构的定义
指令集(ISA)和基于这一体系架构下处理器的编程模型。
主要特征
1.采用大量的寄存器,它们都可以用于多种用途。
2.采用Load/Store体系架构。
3.每条指令都可以条件执行。
4.采用多寄存器的Load/Store指令。
5.能够在单时钟周期执行的单条指令内完成一项普通的移位操作和一项普通的ALU操作。
6.通过协处理器指令集来扩展ARM指令集,包括在编程模式中增加了新的寄存器和数据类型。
处理器特点
1.体积小、低功耗、低成本、高性能。
2.支持Thumb(16位)/ARM(32位)双指令集,能很好地兼容8位/16位器件。
3.大量使用寄存器,指令执行速度更快。
4.大多数数据操作都在寄存器中完成。
5.寻址方式灵活简单,执行效率高。
6.指令长度固定。
ARM指令集
定义
一整套底层指令的统称
RISC(精简指令集)
CISC(复杂指令集)
指令格式
长度固定
操作码 、操作数地址
Soc(System on Chip)
系统芯片
架构
1.ARMProcessorcore处理器核
2.ClocksandResetController时钟和复位电路
3.InterruptController中断控制器
4.ARMPropherals外部设备
5.GPIO
6.DMAPort
7.ExternalMemoryInterface外部内存接口
8.OnchipRAM片上RAM
9.AHB、APB总线
Cortex-A 寄存器组
R0~R15 通用寄存器
①、未备份寄存器,即R0~R7。
在所有的处理器模式下这8个寄存器都是同一个物理寄存器,在不同的模式下,这8个寄存器中的数据就会被破坏。所以这8个寄存器并没有被用作特殊用途。
②、备份寄存器,即R8~R14。
备份寄存器中的R8~R12这5个寄存器有两种物理寄存器
R14也称为连接寄存器
存放当前子程序的返回地址
异常模式将要返回的地址
③、程序计数器PC,即R15。
R15保存着当前执行的指令地址值加8个字节
CPSR 当前程序状态寄存器
该寄存器包含了条件标志位、中断禁止位、当前处理器模式标志等一些状态位以及一些控制位。
SPSR 备份程序状态寄存器
当特定的异常中断发生时,SPSR寄存器用来保存当前程序状态寄存器(CPSR)的值,当异常退出以后可以用SPSR中保存的值来恢复CPSR。
SPSR和CPSR的寄存器结构
N(bit31):当两个补码表示的有符号整数运算的时候
Z(bit30)
Z=1表示运算结果为零。
Z=0表示运算结果不为零。
对于CMP指令,Z=1表示进行比较的两个数大小相等
C(bit29)
在加法指令中,当结果产生了进位,则C=1,表示无符号数运算发生上溢,其它情况下C=0。
在减法指令中,当运算中发生借位,则C=0,表示无符号数运算发生下溢,其它情况下C=1。
对于包含移位操作的非加/减法运算指令,C中包含最后一次溢出的位的数值,对于其它非加/减运算指令,C位的值通常不受影响。
V(bit28):对于加/减法运算指令,当操作数和运算结果表示为二进制的补码表示的带符号数时,V=1表示符号位溢出,通常其他位不影响V位。
Q(bit27):仅ARMv5TE_J架构支持
IT[1:0](bit26:25):和IT[7:2](bit15:bit10)一起组成IT[7:0],作为IF-THEN指令执行状态。
J(bit24):仅ARM_v5TE-J架构支持
GE[3:0](bit19:16):SIMD指令有效,大于或等于。
IT[7:2](bit15:10):参考IT[1:0]。
E(bit9):大小端控制位,E=1表示大端模式,E=0表示小端模式。
A(bit8):禁止异步中断位,A=1表示禁止异步中断。
I(bit7):I=1禁止IRQ,I=0使能IRQ。
F(bit6):F=1禁止FIQ,F=0使能FIQ。
T(bit5):控制指令执行状态,表明本指令是ARM指令还是Thumb指令,通常和J(bit24)一起表明指令类型,参考J(bit24)位。
M[4:0]:处理器模式控制位
10000 User模式
10001 FIQ模式
10010 IRQ模式
10011 Supervisor(SVC)模式
10110 Monitor(MON)模式
10111 Abort(ABT)模式
11010 Hyp(HYP)模式
11011 Undef(UND)模式
11111 System(SYS)模式
Cortex-A 处理器运行模型
User:用户模式
FIQ:快中断模式
IRQ:中断模式
Supervisor(SVC):管理模式
Abort:中止模式
Undef:未定义模式
System:系统模式
Monitor(MON)监视模式,这个模式用于安全扩展模式。
Hypervisor(HYP)超级监视模式,用于虚拟化扩展。
Cortex-A7 MPCore 简介
I.MX6UL使用的是Cortex-A7架构。
Cortex-A7MPcore处理器支持1~4核,通常是和Cortex-A15组成big.LITTLE架构的。
Cortex-A7本身性能不弱,比Cortex-A8性能要强大,而且更省电。
I.MX6UL配置了32KB的L1指令Cache和32KB的L1数据Cache,以及128KB的L2Cache。
Cortex-A7MPCore使用ARMv7-A架构,支持在一个处理器上选配1~4个内核。
Cortex-A7MPCore使用ARMv7-A架构
1.SIMDv2扩展整形和浮点向量操作。
2.提供了与ARMVFPv4体系结构兼容的高性能的单双精度浮点指令,支持全功能的IEEE754。
3.支持大物理扩展(LPAE),最高可以访问40位存储地址,也就是最高可以支持1TB的内存。
4.支持硬件虚拟化。
5.支持GenericInterruptController(GIC)V2.0。
6.支持NEON,可以加速多媒体和信号处理算法。