arm架构笔记
arm架构
ARM架构过去称作进阶精简指令集机器(AdvancedRISCMachine,更早称作:AcornRISCMachine),是一个32位精简指令集( RISC )处理器架构,其广泛地使用在许多嵌入式系统设计。由于节能的特点,ARM处理器非常适用于移动通讯领域,符合其主要设计目标为低耗电的特性。
在今日,ARM家族占了所有32位嵌入式处理器75%的比例,使它成为占全世界最多数的32位架构之一。ARM处理器可以在很多消费性电子产品上看到,从可携式装置(PDA、移动电话、多媒体播放器、掌上型电子游戏,和计算机)到电脑外设(硬盘、桌上型路由器)甚至在导弹的弹载计算机等军用设施中都有他的存在。在此还有一些基于ARM设计的派生产品,重要产品还包括Marvell的XScale架构和德州仪器的OMAP系列
arm架构包含以下RISC特性:
- 读取/存取架构
- 不支持地址对齐内存存取(ARMv6内核已支持)
- 正交指令集(任意存取指令可以任意的寻址方式存取数据Orthogonal instruction set)
- 大量的16x32bit寄存器阵列(register file)
- 固定的32 bits 操作码(opcode)长度,降低编码数量所产生的耗费,减轻解码和流水线化的负担。
- 大多均为一个CPU周期执行。
arm处理器的特点:
1、体积小、低功耗、低成本、高性能;
2、支持Thumb(16 位)/ARM(32 位)双指令集,能很好的兼容8 位/16 位器件;
3、大量使用寄存器,指令执行速度更快;
4、大多数数据操作都在寄存器中完成;
5、寻址方式灵活简单,执行效率高;
6、指令长度固定;
arm相关概念:
冯诺依曼体系:
数学家冯·诺依曼提出了计算机制造的三个基本原则,即采用二进制逻辑、**程序存储执行以及计算机由五个部分组成(运算器、控制器、存储器、输入设备、输出设备),**这套理论被称为冯·诺依曼体系结构.
- 特点
1. 单处理机结构,机器以运算器为中心;
2. 采用程序存储思想;
3. 指令和数据一样可以参与运算;
4. 数据以二进制表示;
5. 将软件和硬件完全分离;
6. 指令由操作码和操作数组成;
7. 指令顺序执行。
ARM7——冯诺依曼体系结构简单,但速度较慢。取指不能同时取数据。
冯诺依曼结构的组成
(1)运算器:计算机中执行各种算术和逻辑运算操作的部件。运算器的基本操作包括加、减、乘、除四则运算,与、或、非、异或等逻辑操作,以及移位、比较和传送等操作,亦称算术逻辑部件(ALU);
(2)控制器:由程序计数器、指令寄存器、指令译码器、时序产生器和操作控制器组成,它是发布命令的“决策机构”,即完成协调和指挥整个计算机系统的操作。**运算器和控制器统称中央处理器,也叫做CPU。**中央处理器是电脑的心脏;
(3)存储器:存储器分为内存和外存。内存是电脑的记忆部件,用于存放电脑运行中的原始数据、中间结果以及指示电脑工作的程序。外存就像笔记本一样,用来存放一些需要长期保存的程序或数据,断电后也不会丢失,容量比较大,但存取速度慢。当电脑要执行外存里的程序,处理外存中的数据时,需要先把外存里的数据读入内存,然后中央处理器才能进行处理。外存储器包括硬盘、光盘和优盘;
(4)输入设备:输入设备是向计算机输入数据和信息的设备。是计算机与用户或其他设备通信的桥梁。输入设备是用户和计算机系统之间进行信息交换的主要装置之一。键盘,鼠标,摄像头,扫描仪,光笔等都属于输入设备。
(5)输出设备:是计算机硬件系统的终端设备,用于接收计算机数据的输出显示、打印、声音、控制外围设备操作等。也是把各种计算结果数据或信息以数字、字符、图像、声音等形式表现出来。常见的输出设备有显示器、打印机等。
结构示意图
哈佛结构
- 结构特点:
- 程序存储器与数据存储器分开.
- 提供了较大的存储器带宽,各自有自己的总线。
- 适合于数字信号处理.
- 大多数DSP都是哈佛结构.
- ARM9是哈佛结构,取指和取数在同一周期进行,提高速度,改进哈佛体系结构分成三个存储区:程序、数据、程序和数据共用。
CISC复杂指令集(Complex Instruction Set Computer)
特点:
1、具有大量的指令和寻址方式2、8/2原则:80%的程序只使用20%的指令3、大多数程序只使用少量的指令就能够运行。4、CISC CPU 包含有丰富的单元电路,因而功能强、面积大、功耗大。
RISC精简指令集(Reduced Instruction Set Computer)
特点:
1、在通道中只包含最有用的指令,只提供简单的操作。2、确保数据通道快速执行每一条指令。3、**Load-store结构**—— 处理器只处理寄存器中的数据,load-store指令用来完成数据在寄存器和外部存储器之间的传送。4、使CPU硬件结构设计变得更为简单, RISC CPU包含较少的单元电路,因而面积小、功耗低。
RISC与CISC主要差别
- 寄存器方面
RISC指令集:拥有更多的通用寄存器,每个可以存放数据和地址,寄存器为所有的数据操作提供快速的存储访问。
CISC指令集:多用于特定目的的专用寄存器。
- LOAD –STORE结构方面
RISC结构:Cpu 仅处理寄存器中的数据,采用独立的、专用的LOAD –STORE 指令来完成数据在寄存器和外存之间的传送。(访存费时,处理和存储分开,可以反复的使用保存在寄存器中的数据,而避免多次访问外存)。
CISC结构:能直接处理存储器中的数据。
ARM芯片选择的一般原则
- 从应用的角度,对在选择ARM芯片时所应考虑的主要因素有:
ARM芯核:如果希望使用WinCE或Linux等操作系统以减少软件开发时间,就需要选择ARM720T以上带有MMU功能的ARM芯片.
系统时钟控制器:系统时钟决定了ARM芯片的处理速度。ARM7的处理速度为0.9MIPS/MHz,常见的ARM7芯片系统主时钟为20MHz-133MHz,ARM9的处理速度为1.1MIPS/MHz,常见的ARM9的系统主时钟为100MHz-233MHz, ARM10最高可以达到700MHz。
内部存储器容量:在不需要大容量存储器时,可以考虑选用有内置存储器的ARM芯片。
GPIO数量:在某些芯片供应商提供的说明书中,往往申明的是最大可能的GPIO数量,但是有许多引脚是和地址线、数据线、串口线等引脚复用的。这样在系统设计时需要计算实际可以使用的GPIO数量。
USB接口:许多ARM芯片内置有USB控制器,有些芯片甚至同时有USB Host和USB Slave控制器。
中断控制器:ARM内核只提供快速中断(FIQ)和标准中断(IRQ)两个中断向量。但各个半导体厂家在设计芯片时加入了自己不同的中断控制器,以便支持诸如串行口、外部中断、时钟中断等硬件中断。外部中断控制是选择芯片必须考虑的重要因素,合理的外部中断设计可以很大程度的减少任务调度的工作量。
LCD控制器:些ARM芯片内置LCD控制器,有的甚至内置64K彩色TFT LCD控制器。在设计PDA和手持式显示记录设备时,选用内置LCD控制器的ARM芯片较为适宜。
扩展总线:大部分ARM芯片具有外部SDRAM和SRAM扩展接口,不同的ARM芯片可以扩展的芯片数量即片选线数量不同,外部数据总线有8位、16位或32位。某些特殊应用的ARM芯片如德国Micronas的PUC3030A没有外部扩展功能。
封装:主要的封装有QFP、TQFP、PQFP、LQFP、BGA、LBGA等形式,BGA封装具有芯片面积小的特点,可以减少PCB板的面积,但是需要专用的焊接设备,无法手工焊接。另外一般BGA封装的ARM芯片无法用双面板完成PCB布线,需要多层PCB板布线。
Thumb技术
ARM的RISC体系结构的发展中已经提供了低功耗、小体积、高性能的方案。而为了解决代码长度的问题,ARM体系结构又增加了T变种,开发了一种新的指令体系,这就是Thumb指令集,它是ARM技术的一大特色。
Thumb是ARM体系结构的扩展。它有从标准32位ARM指令集抽出来的36条指令格式,可以重新编成16位的操作码。这能带来很高的代码密度。
支持Thumb的ARM体系结构的处理器状态可以方便的切换、运行到Thumb状态,在该状态下指令集是16位的Thumb指令集。