历史上的今天

今天是:2024年11月01日(星期五)

正在发生

2021年11月01日 | ARM处理器和体系结构介绍(Cortex-A9)

发布者:幸福自在 来源: eefocus关键字:ARM  处理器  Cortex-A9 手机看文章 扫描二维码
随时随地手机看文章

ARM(Advanced RISC Machines)

概述:有三种含义,它是一个公司的名称,是一类微处理器的通称,还是一种技术的名称。


技术特征


体积小、低功耗、低成本、高性能。

支持Thumb(16位)/ARM(32位)双指令集,能很好地兼容8/16位器件。

大量使用寄存器,指令执行速度更快。

大多数数据操作都在寄存器中完成。

寻址方式灵活简单,执行效率高。

指令长度固定。

嵌入式RISC微处理器

概述:RISC(Reduced Instruction Set Computer)是精简指令集计算机,RISC把着眼点放在如何使计算机的结构更加简单和如何使计算机的处理速度更加快速上。RISC选取了使用频率最高的简单指令,抛弃复杂指令,固定指令长度,减少指令格式和寻址方式,不用或少用微码控制。


嵌入式CISC微处理器

概述:传统的复杂指令级计算机(CISC)更侧重于硬件执行指令的功能性,使CISC指令及处理器的硬件结构更加复杂。


RISC和CISC的区别

在这里插入图片描述

ARM的基本数据类型

ARM采用32位架构,ARM的基本数据类型有以下3种。


Byte:字节,8bit。

Halfword:半字,16bit(半字必须与2字节边界对齐)。

Word:字,32bit(字必须与4字节边界对齐)。


注意

ARM 系统结构 v4 以上版本支持以上3种数据类型,v4 以前版本仅支持字节和字。

ARM指令编译后是4个字节(与字边界对齐),Thumb指令编译后是2个字节(与半字边界对齐)


ARM工作模式

注意:除用户模式外的其他7种处理器模式成为**特权模式**。在特权模式下,程序可以访问所有的系统资源,也可以任意进行处理器模式切换。其中以下6种又称异常模式。


快速中断模式(fiq)

外部中断模式(irq)

特权模式(svc)

数据访问中止模式(abt)

未定义指令中止模式(und)

监控模式(mon)(Cortex-A特有模式)

注意:


处理器模式可以通过软件控制切换,也可以通过外部中断或异常处理过程进行切换。

大多数的用户程序运行在用户模式下。当处理器工作在用户模式时,应用程序不能够访问受操作系统保护的一些系统资源,应用程序也不能直接进行处理器模式切换。当需要进行处理器模式切换时,应用程序可以产生异常处理,在异常处理过程中进行处理器模式切换。这种体系结构可以使操作系统控制整个系统资源的使用。


当应用程序发生异常中断时,处理器进入相应的异常模式。在每一种异常模式中都有一组专用寄存器以供相应的异常处理程序使用,这样就可以保证在进入 ARM 的工作模式异常模式时用户模式下的寄存器(保存程序运行状态)不被破坏。


ARM的流水线结构

本文用的Cortex-A9是ARMv7架构,使用3级流水线,分为取指、译码、执行。


取指令:从寄存器装载一条指令。

译码:识别被执行的指令,并为下一个周期准备数据通路的控制信号。在这一级,指令占有译码逻辑,不占用数据通路。


执行:处理指令并将结果写会寄存器。

在这里插入图片描述

当处理器执行简单的数据处理指令时,流水线使得平均每个时钟周期能完成1条指令。但1条指令需要3个时钟周期来完成,因此,有3个时钟周期的延时,但吞吐率是每个周期1条指令。

ARM9使用5级流水线:取指、译码、执行、缓冲/数据、回写。

寄存器组织

根据ARM型号的不同,寄存器数量有所不同,本文所述Cortex-A9有

40个32位寄存器。


33个通用寄存器。(不分组寄存器R0-R15,分组寄存器R8-R14,程序计数器R15)

6个状态寄存器:1个CPSR(current program status register,当前程序状态寄存器),6个SPSR(saved prgram status register,备份程序状态寄存器)。

1个PC(program counter,程序计数器)。

在这里插入图片描述

寄存器R13(SP)

概述:寄存器R13在ARM处理器中常用做堆栈指针,称为SP,保存的是每种模式下的栈空间的地址,每一种模式都有自己的栈空间。异常处理程序负责初始化自己的的R13,使其指向该异常模式专用的栈地址。在异常处理程序入口处,将用到的其他寄存器的值保存在堆栈中,返回时,重新将这些值加载到寄存器。通过这种保护程序现场的方法,异常不会破坏被其中断的程序现场。


寄存器R14(LR)

概述:寄存器R14又被称为连接寄存器(LR),它在ARM体系结构中具有下面两种特殊作用;


每一种处理器模式用自己的R14存放当前子程序的返回地址。

当通过BL或BLX指令调用子程序时,R14被设置成该子程序的返回地址。在子程序返回时,把R14的值复制到程序计数器(PC)。

R14也可以被用做通用寄存器使用。

寄存器R15(PC)

寄存器R15用作程序计数器(PC)。保存的是正在取指的指令的地址。


程序状态寄存器(CPSR和SPSR)

每一种处理器模式下都有一个专用的物理寄存器做备份程序程序状态寄存器(=SPSR)。在所有处理器模式下都可以访问当前程序状态寄存器(CPSR)。当特定的异常中断发生时,这个物理存储器负责存放当前程序状态寄存器的内容(SPSR用于保存CPSR的状态)。当异常处理程序返回时,再将其内容恢复到当前程序状态寄存器。


程序状态寄存器格式

标志位

N、Z、C、V通称为条件标志位。(在这里不做赘述,如需详细了解可以参考系统书籍)。


Q标志位

用于在异常中断发生时保存和恢复CPSR中的Q标志位。(在带DSP指令扩展中,表示增强的DAP指令是否发生了溢出)。


控制位

CPSR的低8位(I、F、T及M【4:0】)统称为控制位。当异常发生时,这些位的值将发生相应的变化。另外,如果在特权模式下,也可以通过软件编程来修改这些位的值。


中断禁止位:I=1,IRQ被禁止;F=1,FIQ被禁止

状态控制位(T位是处理器的状态控制位):T=0,处理器处于ARM状态(即正在执行32位的ARM指令);T=1,处理器处于Thumb状态(即正在执行16位Thumb指令)。当然,T位只有在T系列的ARM处理器上才有效,在非T系列的ARM版本中,T位始终为0。

模式控制位:M【4:0】作为位模式控制位,这些位的组合确定了处理器处于哪种状态

在这里插入图片描述

==注:==博客所用开发平台为三星ARM Cortex-A9四核CPU的Exynos-4412。

关键字:ARM  处理器  Cortex-A9 引用地址:ARM处理器和体系结构介绍(Cortex-A9)

上一篇:ARM之I2C总线协议介绍
下一篇:ARM串行通信与并行通信介绍

推荐阅读

集微网消息,日前美国专利商标局又公布了一项苹果的新专利,该专利名为“外部照明和警告系统”,专利内容详细描述了如何在汽车上以安装显示装置的方式来向周围传递更多信息。        根据美国专利商标局公布的专利内容描述,苹果计划未来在汽车的车身部分安装LED灯、OLED屏显示面板、LCD显示面板、以及液晶调光器等样式的显示装置。苹果还提到,可...
2020年2月12日-14日,日本国际机器人开发及应用技术展RoboDEX,日本国际智能工厂展SMART FACTORY Expo,日本可穿戴设备与技术展 WEARABLE EXPO 三展合一,将于日本东京有明国际展览中心盛大举办。届时,此展预计吸引来自全球的730家展商及60,000位专业观众,90位行业领军人物也将登台演讲。如果您从事机器人,智能工厂,可穿戴相关产品及技术,此次...
韩国媒体 Elec 的一份新报告显示,LG 正努力在明年 3 月发布一款具备可滚动式显示屏的设备,该设备代号为 “B Project”。  此外,预计 LG 还将推出其他智能手机产品,包括一个 Velvet 系列后续者的和新款旗舰机型,旗舰新机可能会作为 V60 ThinQ 5G 的继任者推出。  报道指出,“B Project”是 LG 电子 Explorer Proje...
仿真报错 error30220在用STVD软件仿真程序的时候,有时候报错。弹出一个error30220的警告窗口。 引起这个问题原因有可能是烧写软件STVP软件刚烧写过程序,STLINK 被烧写软件占用了,这时可以把烧写软件STVP关掉,然后重新仿真,就能正常使用了。如果还不行就拔掉STLINK烧写器,关掉软件。重新打开软件,连接烧写器。烧写程序时报错有时候在烧写程序的...

史海拾趣

问答坊 | AI 解惑

如何延长手机电池的待机时间?

不少消费者在使用手机的过程中,发现手机待机时间大幅度缩水。其实,除了有部分原因是商家过分夸大了手机的待机时间外,还和消费者使用手机的环境和方式有关。 对于如何延长手机待机时间,手机维修人士认为:首先,在恶劣天气里和密封环境下尽 ...…

查看全部问答∨

PID调节概念及基本原理

目前工业自动化水平已成为衡量各行各业现代化水平的一个重要标志。同时,控制理论的发展也经历了古典控制理论、现代控制理论和智能控制理论三个阶段。智能控制的典型实例是模糊全自动洗衣机等。自动控制系统可分为开环控制系统和闭环控制系统。&nbs ...…

查看全部问答∨

求湿度传感器(资料)和烟雾传感器与单片机的连接方法

做了一学期设计,还差个湿度和烟雾传感器,希望那位大哥能够帮忙一下 yaowei00007@163.com…

查看全部问答∨

完全电控的下一代网络化汽车系统

在未来的5至10年里,传统的汽车机械系统(如刹车和驾驶系统)将变成通过高速容错通信总线与高性能CPU相连的电气系统。在一辆装备了综合驾驶辅助系统的汽车上,诸如电控(control by-wire)刹车、电控驾驶和电子阀门控制等特性将为驾驶员带来终极驾 ...…

查看全部问答∨

求助:请问下DIP封装的元器件的布线问题?

有个DIP封装的元器件,它的引脚可以在顶层和底层之间切换使用吗?就是说在顶层的时候可以用引脚连接,切换到底层时候那个元器件还可以连接到底层的元器件吗?谢谢!…

查看全部问答∨

什么是分时计算机?

请问大家什么是分时计算机?…

查看全部问答∨

关于一个汇编语句,谢谢

assume ds:xxx,cs:xxx 这个语句什么意识??…

查看全部问答∨

求助各位高手

最近老师分派了课程设计,可用的平台有x-hyper255b,2410,还有nios2的开发板若干,请教各位高手,有哪些内容可以选择进行开发啊,请达人们给点指点和建议…

查看全部问答∨

请问一块液晶显示器的电源板的STB对地电阻一般为多少?谢谢。

请问一块液晶显示器的电源板的STB对地电阻一般为多少?谢谢。 我用指针万用表测的两种情况:   1、红笔接STB,黑笔接地,测得的阻值为0;   2、黑笔接STB,红笔接地,测得的阴值为400欧。 请问这样正常否?烦各位回我一下 ...…

查看全部问答∨

升压电路问题

有什么电路 或者是 IC 能让输入电压在5-20V,输出稳定在15V的吗?…

查看全部问答∨
小广播
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

电子工程世界版权所有 京ICP证060456号 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved