ARM体系结构与接口技术(一)
- 格式:doc
- 大小:19.00 KB
- 文档页数:7
ARM处理器详解(1)-ARMCortex-A系列处理器如图所⽰,绿⾊的部分都是v7-A的架构,蓝⾊的是v8-A架构,基本上绿⾊都是可以⽀持到32和64位的,除了A32,只⽀持到32位。
在右边的每个部分,⽐如说需要⾼效能的最上⾯的A15-A73这个部分是最⾼效的,接下来就是⽐较注重整个效率的部分了,中间那个部分是⽐较⾼效率的,最下⾯那栏的是效率最好的,在电池的效能⽅⾯达到了最好的标准。
最新的还有使⽤在麒麟980上的,基于Dynamiq技术的第⼆代优质内核 Cortex A76。
Acore主打的就是⾼性能,消费类的产品⽐如⼿机,平板,机顶盒等需要上系统的基本上都需要使⽤Acore。
Acore的发展曲线基本上和⼯艺曲线重叠,最新的A76是基于7nm的⼯艺,A73基于10nm的⼯艺,更早些的A5,A9基本上使⽤40nm或28nm的⼯艺。
这是ARM 2016年发布的最新A系列处理器,Cortex-A73⽀持全尺⼨ARMv8-A构架,ARMv8-A是ARM公司的⾸款⽀持64位指令集的处理器架构,包括ARM TrustZone技术、NEON、虚拟化和加密技术。
所以⽆论是32位还是64位,Cortex-A73都可以提供适应性最强的移动应⽤⽣态开发环境。
Cortex-A73包括128位 AMBR 4 ACE接⼝和ARM的big.LITTLE系统⼀体化接⼝,采⽤了⽬前最先进的10nm技术制造,可以提供⽐Cortex-A72⾼出30%的持续处理能⼒,⾮常适合移动设备和消费级设备使⽤。
预计今年晚些时候到2017年,Cortex-A73处理器将会逐渐覆盖到我们合作伙伴的⾼端智能⼿机、平板电脑、翻盖式移动设备、数字电视等⼀系列消费电⼦设备。
big.LITTLE架构发展到最新的A76,更新了Dynamiq架构,core的外⾯再包了⼀层L3 cache,减少了对外部DDR的读写,所以性能更优。
Cortex-A72最早发布于2015年年初,也是基于ARMv8-A架构,采⽤台积电16nm FinFET制造⼯艺,Cortex-A72可在芯⽚上单独实现性能,也可以搭配Cortex-A53处理器与ARMCoreLinkTMCCI⾼速缓存⼀致性互连(CacheCoherentInterconnect)构成ARMbig.LITTLETM配置,进⼀步提升能效。
ARM Cortex-A7是一种基于ARMv7-A架构的处理器核心,属于ARM 的低功耗应用处理器系列。
它在性能和功耗方面取得了良好的平衡,广泛应用于移动设备、嵌入式系统和物联网设备等领域。
ARM Cortex-A7的主要特点和接口技术包括:1. 架构特性:Cortex-A7采用了ARMv7-A架构,支持32位指令集,并提供了多种指令集扩展,如Thumb-2和NEON等,以提高代码密度和多媒体处理能力。
2. 处理器核心:Cortex-A7采用了超标量乱序执行(Out-of-Order Execution)的架构,具有双发射、乱序执行和多级流水线等特性,可以提供较高的性能和效率。
3. 处理器频率:Cortex-A7的时钟频率可根据具体实现而异,通常在几百MHz到几GHz之间,可以根据功耗和性能要求进行调整。
4. 高效能耗比:Cortex-A7以低功耗为设计目标,具有较低的静态功耗和动态功耗。
它采用了一些功耗优化技术,如动态电压频率调节(DVFS)、低功耗待机模式和智能缓存等,以在提供足够性能的同时降低功耗。
5. 内存接口:Cortex-A7支持多种内存接口技术,包括LPDDR2、DDR3、DDR3L和DDR4等,可以与不同类型的内存进行高效通信。
6. 外设接口:Cortex-A7提供了多种外设接口,如UART、SPI、I2C 和USB等,用于与外部设备进行通信和控制。
7. 硬件加速器:Cortex-A7还支持NEON向量处理引擎,用于高效处理多媒体数据和信号处理任务。
此外,它还可以与其他硬件加速器,如GPU和图像处理器等进行协同工作,以提高整体系统性能。
总的来说,基于Cortex-A7的ARM体系结构具有较低的功耗、高性能、丰富的接口技术和良好的可扩展性,适用于多种低功耗应用场景,如智能手机、平板电脑、物联网设备和工业控制等。
第一章1.简述ARM可以工作的几种模式。
答:ARMv7-A架构处理器共有8种工作模式,即用户模式(User)、快速中断模式(FIQ)、外部中断模式(IRQ)、特权模式(Supervisor)、数据访问中止模式(Abort)、未定义指令中止模式(Undef)、系统模式(System)、监控模式(Monitor)2.ARM 核有多少个寄存器?答:ARM处理器有40个32位长的寄存器3.什么寄存器用于存储PC和LR寄存器?答:R15和R14寄存器4.R13通常用来存储什么?答:R13通常用来存储堆栈指针5.哪种模式使用的寄存器最少?答:用户模式(User)和系统模式(System),因为这两种模式下没有SPSR寄存器6.CPSR 的哪一位反映了处理器的状态?答:T位是处理器的状态控制位第二章1.熟悉 Eclipse 开发环境。
答:略,参照第2.3节2.新建一个工程,编写一个汇编程序实现3+13=16的操作。
答:略,参照第2.6节第三章1.用 ARM 汇编实现下面列出的操作。
R0=15R0=R1/16(有符号数)R1=R2*3R0=−R0答:R0=15-- MOV R0,#15R0=R1/16 --MOV R0,R1,ASR #4BIC R0, R0, #0x78000000R1=R2*3-- MOV R3, #3MUL R1,R2,R3R0=−R0 -- MOV R1, #-1MOV R2, R0MUL R0,R1,R22.BIC 指令的作用是什么?答:将一个寄存器中的某一位或者某几位清零3.执行 SWI 指令时会发生什么情况?答:执行SWI指令时ARM处理器会自动将CPSR拷贝到SVC模式下的SPSR,然后修改CPSR 寄存器的T位使处理器进入ARM状态,修改CPSR寄存器的低五位模式位使处理器进入SVC模式,修改CPSR寄存器的I位禁止IRQ中断,保存当前SWI指令下一条指令的地址到SVC 模式下的LR寄存器,然后PC的值改为异常向量表中偏移地址为0x08的地址。
基于cortex-a7的arm体系结构与接口技术基于Cortex-A7的ARM体系结构与接口技术Cortex-A7是ARM公司设计的一款高效能低功耗处理器内核。
它基于ARMv7-A体系结构,并使用了ARM的Thumb-2指令集,以提供更好的代码密度和节能特性。
Cortex-A7广泛应用于移动设备、物联网和嵌入式系统等领域。
ARM体系结构是一种低功耗、高性能的处理器架构。
它采用精简指令集(RISC)的设计哲学,以减少指令的数量和复杂性,从而提高处理器的性能和功耗效率。
Cortex-A7作为ARM体系结构的一部分,具有以下特点:1. 高性能:Cortex-A7采用超标量技术,可同时执行多个指令,从而提高处理器的吞吐量和并行性能。
它还支持动态指令调度,通过重排序指令来提高指令级并行性。
2. 低功耗:Cortex-A7采用了ARM的大小核技术。
即在同一个芯片上同时集成了Cortex-A7和Cortex-A15两个处理器内核。
Cortex-A7主要负责处理低功耗任务,而Cortex-A15则用于处理高性能任务。
这种设计可以实现功耗和性能的平衡。
3. 异构多核:Cortex-A7还支持异构多核架构。
它可以与其他Cortex-A内核配合工作,实现更高的并行性和处理能力。
例如,在移动设备中,Cortex-A7与Cortex-A15的组合可以实现更好的性能和功耗。
除了处理器内核,Cortex-A7还支持各种接口技术,以满足不同应用场景的需求。
以下是一些常见的接口技术:1. AMBA接口:Cortex-A7采用了ARM的AMBA总线标准,包括AMBA AXI、AHB和APB等接口。
这些接口提供了高效的数据传输机制,支持多种外部设备的连接和通信。
2. 引脚接口:Cortex-A7的芯片上引脚提供了多种接口,包括GPIO、UART、SPI、I2C和SDIO等。
这些接口可以连接到外部设备,如传感器、存储器和通信模块等。
3. 存储接口:Cortex-A7支持多种存储器接口,包括SD卡接口、NAND和NOR闪存接口以及DDR3/DDR4内存接口。
ARM920TDMA处理器是哈佛结构,包括取指、译码、执行、存储、写入的五级流水线。
包括cp14和cp15两个协处理器。
16k数据缓存和16k指令缓存。
虚拟地址64路相关缓存。
每线8字。
ARM的基本数据类型:
ARM采用的是32位架构,基本上数据类型有以下三种:
Byte :字节,8位
Halfword:半字,16bit(半字必须与2字节边界对齐
Word:字,32bit(必须与4字节边界对齐
所有的数据类型指令的操作数都是字类型。
ARM指令编译后是4字节(与字边界对齐,Thumb指令编译后是2字节(与半字对齐
存储器大/小端
Arm支持大端模式和小端模式。
在大端模式下,一个字的高地址放的是数据的地位,在小端模式下,数据的低地址放的是数据的低位。
ARM920T,有7中工作模式:
用户模式(User,正常程序执行模式。
快速中断模式(FIQ,当一个高优先级中断产生时将会进入该模式,一般用于高速数据传输和通道处理。
外部中断模式(IRQ,当一个低优先级中断产生时将会进入该模式,一般用于通常的中断处理
特权模式(Supervise,当复位或软中断指令执行时进入该模式,是一种供操作系统使用的保护模式。
数据访问中止模式(abort,当存取异常时将会进入该模式,用于虚拟存储或存储保护未定义指令中止模式(undef,当执行未定义指令时进入该模式,有时用于通过软件仿真协处理器硬件的工作方式
系统模式(system使用和user模式相同的寄存器集模式,用于运行特权级操作系统任务
除了用户模式,其他六中均为特权模式。
在特权模式下,程序可以访问所有的系统资源,也可以任意的进行处理器模式切换。
流水线的概念与原理
处理器按照一系列的步骤来执行每一条指令,典型的步骤如下:
1、从存储器读取指令(fetch
2、译码以鉴别它是属于哪一条指令(decode
3、从指令中提取指令的操作数(这些操作数往往存在于寄存器中(reg
4、将操作数进行组合以得到结果或存储器地址(ALU
5、如果需要,则访问存储器以存储数据(mem
6、将结果写回到寄存器堆(res
流水线的分类:
1、3级流水线ARM组织
取指令—>译码—>执行
2、5级流水线ARM组织
取指令—>译码—>执行—>缓冲/数据—>回写
3、6级流水线ARM组织
取指令—>发射—>译码—>执行—>存储—>回写
影响流水线性能的因素:
1、互锁:即一条指令的结果被用作下一条指令的操作数
2、跳转指令:
ARM为微处理器指令系统
ARM处理器的寻址方式:
1、立即数寻址方式
2、寄存器寻址方式
3、寄存器移位寻址方式
内存访问指令寻址方式:
内存访问指令的寻址方式可以分为以下几种
1、字及无符号字节的load/store指令的寻址方式
2、杂类load/store指令的寻址方式
3、批量load/store指令的寻址方式
4、协处理器load/store指令的寻址方式
ARM处理器的指令集
操作数指令集:
MOV:执行的结果就是把一个数N送到目标寄存器Rd,其中N可以是寄存器也可以是立即数
MVN:是反相传送指令,它将操作数的反码传送到目的寄存器,多用于向寄存器传送一个负数或者生成位掩码。
AND:指令将shifter_operand表示的数值与寄存器Rn的值按位做逻辑与操作,并将结果保存到目标寄存器Rd中,同时根据操作的结果更新CPSR寄存器
EOR:指令时将寄存器Rn中的值和shifter_operand的执行行按位异或操作,并将执行结果存储到目的寄存器Rd中,同时根据指令的执行结果更新到 CPSR中相应的条件标志位
SUB:指令从急促安全Rn中减去shifter_operand表示的数值,并将结果存到目标寄存器Rd中,同时更具指令的执行结果设置CPSR中相应的标志位
RSB :指令从寄存器shifter_operand中减去Rn表示的数值,并将结果保存到目标寄存器Rd中,同时更具指令的执行结果设置CPSR中的相应位。
ADC:指令将寄存器shifter_operand的值加上Rn表示的值,再加上CPSR中的C 条件标志位的值,并将结果保存到目标寄存器Rd中,同时根据指令的执行结果设置CPSR中相应的标志位
SBC指令用于执行操作数大于32位时的减法操作。
该指令从寄存器Rn中减去shifter_operand表示的数值,再减去寄存器CPSR中C条件标志位的反码,并将结果保存到目标寄存器Rd中,同时根据指令的执行结果哦设置CPSR中相应的标志位。
RSC指令从寄存器shifter_operand中减去Rn表示的数值,再减去寄存器CPSR 中C条件标志位的反码,并将结果保存到目标寄存器Rd中,同时根据指令的执行结果设置CPSR 中相应的标志位
TST 测试执行用于将一个寄存器的值和一个算术值进行比较,条件标志位根据两个操
作数做逻辑与后的结果设置。
TEQ 指令用于将一个寄存器的值和一个算术值做比较,条件标志位根据两个操作数做逻辑异或后的结果设置,以便以后的指令根据相应的条件标志来判断是否执行。
CMP 指令使用寄存器Rn的值减去shifter_operand的值,根据操作的结果更新CPSR中相应的条件标志位,以便后面的指令根据相应的条件标志来判断是否执行。
CMN 指令使用寄存器Rn的值将去shifter_operand表示的负数值,根据操作的结果跟新CPSR中相应的条件标志位,以便后面的指令更具相应的条件标志来判断是否执行。
ORR 位逻辑或操作指令,它将第二个源操作数shifter_operand的值与寄存器Rn 的值按位做逻辑或操作,并将结果保存到Rd中
BIC 位清零指令,将寄存器Rn中的值与第二个源操作数shifter_operand的值的反码按位做逻辑与操作,并将结果保存到目标寄存器中
乘法指令集
ARM异常中断处理概述
ARM处理器中有7中类型的异常,按优先级从高到低的排序如下:复位异常(reset、数据异常(data abort、快速中断异常(FIQ、外部中断异常(IRQ、预取异常(prefetch abort、软中断异常(swi和未定义异常(undefined instruction。
当异常发生的时候处理器会把PC设置为一个特定的存储器地址,之一地址房子被称为向量表的特定地址范围内。
向量表的入口是一些跳转指令,跳转到专门处理摸个异常或者中断的子程序。
存储器映射地址0x00000000 是为向量表(一组32位字保留的。
在有些处理器中,向量表可以选择定位在存储空间的高地址(从偏移量0xffff0000开始,一些嵌入式系统,如Linux和windows CE就是利用这一特性。
当异常发生时,分组寄存器r14和SPSR 用于保存处理器状态。
异常返回
式,SPSR内容回复到CPSR中,连接寄存器r14的内容回复到程序计数器PC。
1、复位异常:当处理器的复位引脚有效时,系统产生复位异常中断,程序跳转到复位异常中断处理程序处执行。
复位异常中断有以下两种情况:系统上电和系统复位。
复位异常中断处理程序的主要功能:
A、设置异常中断向量表
B、初始化数据栈和寄存器
C、初始化存储系统,如系统中的MMU
D、初始化关键的I/0设备
E、使能中断
F、处理器切换到合适的模式
G、初始化c变量,跳转到应用程序执行
2、未定义指令异常
3、软中断SWI:软中断发生时,处理器进入特权模式,执行一些特权模式下的操作系统功能。
4、预取指令异常:是由系统存储器报告的,当处理器试图去取一条被标记为预取无效的指令式,发生预取异常
5、数据访问异常:数据访问异常是由存储器发出数据中止信号,它由存储器访问指令load/store产生。
当数据访问指令的目标地址不存在或者改地址不允许当前指令访问时,处理器产生数据访问中止异常。
当数据访问中止异常发生时,寄存器的值将根据以下规则进行修改:
A、返回地址寄存器r14的值只与发生数据异常的指令地址有关,与PC无关
B、如果指令中没有指定基址寄存器回写,则基址寄存器的值不会改变
C、如果指令中指定了机制寄存器回写,则寄存器的值与具体芯片的ABORT MODELS 有关,由芯片的生产商指定
D、如果指令只加载一个通用寄存器的值,则通用寄存器的值不变
E、如果批量加载指令,则寄存器的值是不可预知的值
F、如果指令加载协处理器寄存器的值,则被加载的寄存器的值是不可预知
6、外部中断IRQ:当处理器的外部中断请求引脚有效,而且CPSR寄存器I控制位被清除时,处理器产生外部中断IRQ异常。
7、快速中断FIQ:当处理器的快速中断请求引脚有效且CPSR寄存器的F控制位被清除时,处理器产生快速中断请求FIQ异常。