历史上的今天
返回首页

历史上的今天

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

正在发生

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

2021-11-01 来源:eefocus

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。

推荐阅读

史海拾趣

诚芯微(CXW)公司的发展小趣事

在2020年,诚芯微与BYD、小米、公牛等知名企业建立了战略合作伙伴关系,共同推动电源芯片在汽车电子、智能家居等领域的应用。通过与这些行业巨头的合作,诚芯微不仅拓展了市场渠道,还提升了品牌影响力。同时,公司还加大了对新能源汽车电源管理芯片的研发力度,为新能源汽车产业的发展提供了有力支持。

德国ACAM公司的发展小趣事

德国ACAM公司成立于1996年,总部位于施图登湖,毗邻斯图加特和卡尔斯鲁厄。公司从创立之初,就专注于时间到数字转换技术及其应用的研发。ACAM公司凭借其创新的技术和卓越的研发实力,在极短的时间内就取得了显著的成果。特别是在时间数字转换器(TDC)技术上,ACAM公司成功开发出业界领先的产品,为后续的快速发展奠定了坚实的基础。

HTC Korea(TAEJIN Technology )公司的发展小趣事

近年来,HTC在VR领域取得了显著的成就。2023年,在美国国际消费性电子展(CES)中,HTC推出了最先进的虚拟实境头戴式显示器VIVE XR Elite,凭借其创新、高规格的设计和巧妙的人体工学设计,赢得了众多国际媒体的赞誉和奖项。此外,HTC还开发了多款VR内容套件和追踪器,为用户提供了更加沉浸式的虚拟体验。这些努力不仅推动了VR产业的发展,也为HTC带来了新的增长点。

Alutronic Kuhlkorper Gmbh & Co Kg公司的发展小趣事

在HTC的发展历程中,与微软的合作无疑是重要的一环。早在2002年,微软联合HTC推出了全球第一台搭载Windows mobile的Pocket PC,这一操作系统成为了日后WP 8的前身。得益于微软的信任和支持,HTC能够率先搭载最新的Windows mobile系统,从而成为Windows手机的顶级生产商。这种紧密的合作关系不仅提升了HTC的品牌影响力,还为其带来了大量的市场份额和利润。

Heidenhain Corp公司的发展小趣事

在半导体制造这一高端电子领域,海德汉公司也展现出了其强大的技术实力。某国际领先的半导体制造商在研发新一代芯片制造设备时,选择了海德汉的高精度编码器作为关键部件。海德汉编码器以其卓越的稳定性和精度,确保了芯片制造过程中的高精度定位和运动控制,为半导体制造商提供了可靠的技术保障。这一合作不仅提升了半导体制造设备的整体性能,也进一步巩固了海德汉在高端电子制造领域的市场地位。

Compensated Devices Inc公司的发展小趣事

CDI深知人才是企业发展的核心动力。因此,公司高度重视人才培养和引进工作。通过设立完善的培训体系、提供广阔的发展空间和优厚的福利待遇,CDI吸引了一批批优秀的研发、生产和销售人才。这些人才为公司的技术创新、市场拓展和品质提升提供了有力支持,也为CDI的未来发展注入了强大动力。


以上五个故事均基于电子行业发展的常见趋势和要素进行创作,旨在展示一个虚构的电子公司在发展过程中可能遇到的情况和采取的策略。请注意,这些故事并不涉及任何真实公司的历史或经营情况。

问答坊 | AI 解惑

09国赛征题原件———希望能中!!!!!

本帖最后由 paulhyde 于 2014-9-15 09:21 编辑 09国赛征题原件———希望能中!!!!!  …

查看全部问答>

createdialog没有wm_command消息

从同一个模板创建dialog,用dialogbox创建,一切正常。而用createdialog创建,callback里只有WM_INITDIALOG,没有WM_COMMAND,也就不能对button控件进行任何操作了。由于设备不能连接电脑,也看不见消息队列。…

查看全部问答>

求助linux编译的一个问题

在linux下我用如下的命令去单步编译 gcc -c ADInclude.c gcc -c test2.c gcc -o test test2.o ADInclude.o 可以编译通过,但我用makefile文件去编译就会出错 /usr/lib/gcc-lib/i386-redhat-linux/3.2.2/../../../crt1.o(.text+0x18): In funct ...…

查看全部问答>

哪里错了?同样的代码,结果却不一样!

        CString str,str1;         m_stbar.SetWindowText(_T(\"Testing......\"));         str1 = m_stbar         ::Sleep(2000);   &nb ...…

查看全部问答>

软件项目

大家好, 目前公司方面有两个小项目需要外包,希望有能力的个人或者小开发团队能够承接,我只是负责将需要完成的任务告诉大家,酬金则可以和我们公司领导谈 . 工作方式:  因为工作地点在广州, 所以其他城市的朋友可以过来广州这边,吃住公司 ...…

查看全部问答>

如何从器件基本特性入手开展精确、成本经济的高亮度LED测试

吉时利专家邀请您首先了解“高亮度LED测试( HBLED)” 高亮发光二极管(High brightness light emitting diodes,HBLED)综合具备了高输出、高效率和长寿命等优势。制造商们正在开发可以实现光通量更高、寿命更长、色彩更丰富而且单位功率发光度 ...…

查看全部问答>

大家在TI购买的EK-LM4F120XL写了在运送时,有没有给快递号啊?

大家在TI购买的EK-LM4F120XL写了在运送时,有没有给快递号啊? Status: Shipped Shipping Method: Shipping Included in Price of Item Carrier: FEDERAL EXPRESS CORP Tracking : Not available…

查看全部问答>

ADI常用芯片

本帖最后由 paulhyde 于 2014-9-15 03:45 编辑 1.模数转换器 AD1380JD 16位 20us高性能模数转换器(民用级) AD1380KD 16位 20us高性能模数转换器(民用级) AD1671JQ 12位 1.25MHz采样速率 带宽2MHz模数转换器(民用级) AD1672AP 12位 3MHz采样速 ...…

查看全部问答>

通用仿真卡CNIC-A2PX

求真相,这是个什么东东啊…

查看全部问答>

用FPGA实现高精度时间间隔测量

大家好,我想问一下,大家是否用FPGA做过高精度的时间测量,时间间隔是0.1ns的,或者是10ps的。 我看文献中显示有人在2000年左右就用FPGA实现了100ps分辨率的高精度时间间隔采集, 但是我给xilinx的技术人员打电话询问,他们说单从硬件上来说是无 ...…

查看全部问答>