资源描述
,第二部分ARM9处理器硬件平台主要内容: ARM处理器概述 ARM9处理器S3C2410A硬件介绍ARM处理器概述 ARM简介 ARM指令集体系结构版本与处理器系列ARM处理器结构ARM简介ARM (Advanced RISC Machines),既 可以认为 是一个公司的名字,也可以认为 是对一类微处理器的通称,还可以认为是 一种技术的名字。ARM公司(1991年ARM公司成立于英国剑 桥)本身不生产芯片,转让设计许可,由合 作公司生产各具特色的芯片。目前,采用ARM技术知识产权(IP)核的微处理器,即我们通常所说的ARM微处理器已遍及工业控制、消费类电子产品、通信系统、网络系统、无线系统等各类产品市场,基于ARM技术的微处 理器应用约占据了 32位RISC微处理器75%以上的 市场份额,ARM技术正在逐步渗入到我们生活的 各个方面。4世界各大半导体生产商从ARM公司购买其设计的ARM微处理器核,根据各自不同的应用领域,加 入适当的外围电路,从而形成自己的ARM微处理器 芯片进入市场。目前,全世界有几十家大的半导体公司都使用ARM公司的授权,因此既使得ARM技术获得更多的第三方工具、制造、软件的支持,又使整个系统成本降低,使产品更容易进入市场被消费者所接 受,更具有竞争力。ARM处理器的特点及应用领域ARM处理器的特点小体积、低功耗、成本低.高性能; 16位/32位双指令集;全球众多的合作伙伴。6作为32位的RISC架构,基于ARM核的微控制器芯片不但占据 了高端微控制器市场的大部分市场份额,同时也逐渐向低端微 控制器应用领域扩展,ARM微控制器的低功耗、高性价比,向传 统的8位/16位微控制器提出了挑战。无线通讯领域:目前己有超过85%的无线通讯设备采用了 ARM技术,ARM以 其高性能和低成本,在该领域的地位日益巩固。网络应用:随着宽带技术的推广,采用ARM技术的ADSL芯片正逐 步获得竞争优势。此外,ARM在语音及视频处理上行了优 化,并获得广泛支持,也对DSP的应用领域提出了挑战。消费类电子产品:ARM技术在目前流行的数字音频播放器、数字机顶盒和游戏机中得到广泛釆用。成像和安全产品:现在流行的数码相机和打印机中绝大部分釆用ARM技 术。手机中的32位SIM智能卡也采用了ARM技术。8ARM指令集体系结构版本(1) VI版架构该版架构只在原型机ARMJ出现过,没有用于商业产品。 其基本性能有:基本的数据处理指令(无乘法);基于字节、半字和字的Load/Store指令;转移指令,包括子程序调用及链接指令;供操作系统使用的软件中断指令SWI;寻址空间:64MB (226); 软件 26 bit地址总线。10(2) V2版架构该版架构对VI版进行了扩展,例如ARM2和ARM3 (V2a)架构,版本2a是版本2的变种,ARM3芯片釆用 了版本2日。V2版架构与版本V丄相比,增加了以下功能: 乘法和乘加指令(Multiply & Multiply-accumulate);支持协处理器操作指令;支持线程同步快速中断模式;寻址空间:64MB;26 bit地址总线。SWP/SWPB的最基本存储器与寄存器交换指令;(3) V3版架构V3版架构对ARM体系结构作了较大的改动:寻址空间增至32位(4GB);当前程序状态信息从原来的R15寄存器移到当前程序 状态 寄存器 CPSR 中(Current Program Status Register);增加了程序状态保存寄存器SPSR (Saved Program Status Register);增加了中止(Abort)和未定义2种处理器模式;增加了MRS/MSR指令,以访问新增的CPSR/SPSR 寄存器;r增加了从异常处理返回的指令功能。(4) V4版架构V4版架构在V3版上作了进一步扩充,V4版架构是目 前应用最广的ARM体系结构,ARM7、ARM8、 ARM9和StrongARM都采用该架构。指令集中增加了 以下功能:符号化和非符号化半字及符号化字节的存/取指令;增加了丄6位Thumb指令集;完善了软件中断SWI指令的功能;处理器系统模式引进特权方式时使用用户寄存器操作; 把一些未使用的指令空间捕获为未定义指令。12(5) V5版架构版架构是在V4版基础上增加了一些新的指令,ARM 10和Xscale都采用该版架构。这些新增命令有: 带有链接和交换的转移BLX指令;计数前导零CLZ指令; BRK中断指令;增加了数字信号处理指令(V5TE版);14为协处理器增加更多可选择的指令。13(6) V6版架构V6版架构是2001年发布的,首先在2002年春季发 布的ARM11处理器中使用。此架构在V5版基础上增 加了以下功能: THUMB: 35%代码压缩; DSP扩充:高性能定点DSP功能; Jazelle: Jova性能优化,可提高8倍; Media扩充:音/视频性能优化,可提高4倍。ARM处理器系列 ARM7系列一低功耗,低价位 ARM9系列一低功耗,高性价比 ARM9E系列一综合了DSP能力 ARM10E系列一低功耗,高性能 SecurCore系列一提供了安全解决方案 Intel的XScale和StrongARM融合了Intel的技术ARM11系列一增强的多媒体处理能力15ARM处理器结构处理器的工作状态 RISC技术流水线技术超标量执行数据存储 ARM指令与Thumb指令16ARM状态和Thumb状态 V4版以后有: 32位ARM指令集 16位Thumb指令集,功能是ARM指令集的 功能子集。 ARM7TDMI核以后,T变种的ARM微处理器 有两种工作状态: ARM状态 Thumb 状态。ARM与Thumb状态转换在程序的执行过程中,微处理器可以随时在 两种工作状态之间切换,并且该转变不影响处理 器的工作模式和相应寄存器中的内容。进入Thumb状态:当操作数寄存器的状态位(位0)为 1时,执行BX指令。 进入ARM状态:当操作数寄存器的状态位(位0)为0 时,执行BX指令。19RISC技术IRISC体系结构基本特点:大多数指令只需要执行简单和基本的功能,其执行过程在 一个机器周期内完成。只保留加载/存储指令。操作数由加载/存储指令从存储器 取出放寄存器内操作。芯片逻辑不采用或少釆用微码技术,而釆用硬布线逻辑。减少指令数和寻址方式。指令格式固定,指令译码简化。优化编译。19RISC技术IIARM体系结构还釆用了 一些特别的技术:所有的指令都可根据前面的执行结果决定是否被执行,提 高了指令的执行效率。可用Load/Store指令批量传输数据,以提高数据的传输 效率。可在一条数据处理指令中同时完成逻辑处理和移位处理。20流水线技术计算机中的1条指令的执行分若干个阶段:(1) 取指,从存储器中取出指令(fetch);(2) 译码,指令译码(dec):(3) 取操作数,从寄存器组中取(reg);(4) 执行运算(ALU);(5) 存储器访问,操作数与存储器有关(mem);(6)结果写回寄存器(res) 023fetchdecregALUmemres23指令fetchdecregALUmemresfetchdecregALUmemres-时间但上述的过程是一种理想的过程,各个阶段的操作时间有长短。相邻指令执行的数据相关性会产生指令执行的停顿(stall),严重的会产生数据灾难(hazards)。下图,第2条指令的reg操作需要第1条指令执行的结果 (res),因此,第2条指令在执行时,不得不产生停顿。碰到分支类指令,后面紧接该条指令的几条指令的执行都 会无效。指令-时间24ARM7的3级流水线取指译码执行-时间1取指 | 译码执行取指译码执行指令25ARM9的5级流水线ARM9和StrongARM架构都釆用了 5级流 水线.增加了I-Cache和D-Cache,把存储器的取指与数据存 取分开(解决数据相关及指令、数据同一通道问题); 增加了数据写回的专门通路和寄存器;把指令的执行过程分割为5部分:取指- 指令译码-执行- 数据缓存-写回26超标量执行通过重复设置多套指令执行部件,同时处理并完成多条 指令,实现并行操作,来达到提高处理速度的目的。所有 ARM内核,包括流行的ARM7、ARM9和ARM11等,都是单周期 指令机。ARM公司下一代处理器将是每周期能处理多重指令 的超标量机。但是:超标量处理器在执行的过程中必须动态地检查指令相关性 如果代码中有分支指令;我们必须将分支被执行命分支不被执行这两种情况分开考 虑计算执行时间几乎是不可能的;计算执行时间几乎是不可能的;超标量CPU采用多条流水线结构形式27ARM存储数据类型 七RM处理器支持以下六种数据类型: 8位有符号和无符号字节。 16位有符号和无符号半字,以2字节的边界对齐。 32位有符号和无符号字,以4字节的边界对齐ARM釆用的是32位架构ARM约定:Byte :Halfword :Word8 bit16 bits (2 byte)32 bits (4 byte)28ARM处理器寻址方式寻址方式:是根据指令中给出的地址码字段来实现寻找真实操作数地址的方式,ARM处理器有9种基本 寻址方式。29 寄存器寻址一操作数的值在寄存器中,指令执行时直 接取出寄存器值操作。 立即寻址一指令中在操作码字段后面的地址码部分不 是通常意义上的操作数地址,而是操作数本身。 寄存器移位寻址一这种寻址方式是ARM指令集特有的。 第2个寄存器操作数在与第1个操作数结合之前,选择 进行移位操作。 寄存器间接寻址一指令中的地址码给出某一通用寄存 器的编号。在被指定的寄存器中存放操作数的有效地 址,而操作数则存放在存储单元中,即寄存器为地址 指针。30变址寻址一将基址寄存器的内容与指令中给出的位移量相 加,形成操作数有效地址。多寄存器寻址一一次可以传送几个寄存器的值。允许一条 指令传送16个寄存器的任何子集。堆栈寻址一堆栈是特定顺序进行存取的存储区,操作顺序 分为“后进先出”和“先进后出”,堆栈寻址是隐含的, 它使用一个专门的寄存器(堆栈指针)指向一块存储区域(堆栈),指针所指向的存储单元就是堆栈的栈顶。块拷贝寻址一多寄存器传送指令用于一块数据从存储器的 某一位置拷贝到另一位置。相对寻址一相对寻址是变址寻址的一种变通,由程序计数 器PC提供基地址。指令中的地址码字段作为位移量。ARM指令的编码格式3128 27 25 2421 20 1916 1512 11870cond 001 opcode s RnRdShifter opera nd说明: Cond指令执行的条件编码 Opcode指令操作符编码 S决定指令的操作是否影响CPSR的值 Rd操作目标寄存器编码 Rn包含第一操作数的寄存器编码 Shifter_operand-表示第二操作数Cond0 01OpcodesRnRdCpernd 2Cond000000A$RdRnRs10 0 1RmCond0 0 0 1 0B00RnRd0 0 0 01 0 0 1RmCond0 11PuJ,LRnRdoffsetCond0 1 1xxxxxxxxxxxxxxxxxxxx1XXXXCond1 0 0puSJ,LRnRegister UstCond1 0 1LoffsetCond1 1 0puNLRnCRdCPonsetCond1110CPOpcCRnCRdCP#CP0CRmCond1110CPOpcLCRnRdCP9CP1CRmCond1111ignored by processor8 ?312S 2; 26 25 24 2: 22 21 20 1916 15MultiplySingle Data SwapSingle Data TransferUndefinedBlock Data TransferBranchCoproc Data TransferCoproc Data OperationCo proc Register TransferSoftware Interrupt0Data Processing PSR Transfer33Thumb指令集Thumb指令可以看作是ARM指令压缩形式的子集,是针对代码密度的问题而提出的,它具有16位的代码 密度。Thumb不是一个完整的体系结构,不能指望处理 只执行Thumb指令而不支持ARM指令集。因此,Thumb 指令只需要支持通用功能,必要时可以借助于完善的 ARM指令集。34IThumb指令集与ARM指令集的区别 Thumb指令集没有:协处理器指令;信号量指令;访问CPSR或SPSR 的指令;乘加指令及64位乘法指令等 Thumb指令的第二操作数受到限制;除了跳转指令B有条件执行功能外,其它指令 均为无条件执行;37大多数Thumb数据处理指令采用2地址格式35ARM9处理器S 3C2410 A硬件介纟英文参考S3C2410A USERs MANUAL 处理器综述 处理器工作模式 存储器控制器 NAND FLASH控制器 时钟与电源管理 中断控制器 I/O端口 UART LCD控制器 ADC与触摸屏 芯片的电气与机械特性
展开阅读全文