已阅读5页,还剩28页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
ARM架构,Agenda,ARM公司简介编程模式指令集系统设计,ARMLtd,成立于1990年11月前身为Acorn计算机公司AdvanceRISCMachine(ARM)主要设计ARM系列RISC处理器内核授权ARM内核给生产和销售半导体的合作伙伴ARM公司不生产芯片IP(IntelligenceProperty)另外也提供基于ARM架构的开发设计技术软件工具,评估板,调试工具,应用软件,总线架构,外围设备单元,等等,ARMOfficesWorldwide,800+雇员全球,EnglandCambridge,Maidenhead,Sheffield,BlackburnGermanyMunichFranceParis,SophiaAntipolisKoreaSeoul,USSeattle,LosGatos,WalnutCreek,Austin,Boston,SanDiegoChinaTaiwanandShanghaiJapanShin-Yokohama(Tokyo),ARMPartnershipModel,目录,ARM公司简介编程模式指令集系统设计,数据和指令类型,ARM采用的是32位架构.ARM约定:Byte:8bitsHalfword:16bits(2byte)Word:32bits(4byte)大部分ARMcore提供:ARM指令集(32-bit)Thumb指令集(T变种)(16-bit)Jazellecores支持Javabytecode(J变种,4TEJ),处理器工作模式,ARM有7个基本工作模式:User:非特权模式,大部分任务执行在这种模式正常程序执行的模式FIQ:当一个高优先级(fast)中断产生时将会进入这种模式高速数据传输和通道处理IRQ:当一个低优先级(normal)中断产生时将会进入这种模式通常的中断处理Supervisor:当复位或软中断指令执行时将会进入这种模式供操作系统使用的一种保护模式Abort:当存取异常时将会进入这种模式虚拟存储及存储保护Undef:当执行未定义指令时会进入这种模式软件仿真硬件协处理器System:使用和User模式相同寄存器集的特权模式特权级的操作系统任务,ARM寄存器,寄存器组织概要,Usermoder0-r7,r15,andcpsr,r8,r9,r10,r11,r12,r13(sp),r14(lr),spsr,FIQ,User,r13(sp),r14(lr),spsr,IRQ,Usermoder0-r12,r15,andcpsr,r13(sp),r14(lr),spsr,Undef,Usermoder0-r12,r15,andcpsr,r13(sp),r14(lr),spsr,SVC,Usermoder0-r12,r15,andcpsr,r13(sp),r14(lr),spsr,Abort,Usermoder0-r12,r15,andcpsr,ThumbstateLowregisters,ThumbstateHighregisters,Note:System模式使用user模式寄存器集,ARM寄存器,ARM有37个32-Bits长的寄存器.1个用作PC(programcounter)1个用作CPSR(currentprogramstatusregister)5个用作SPSR(savedprogramstatusregisters)30个通用寄存器当前处理器的模式决定着哪组寄存器可操作.任何模式都可以存取:相应的r0-r12子集相应的r13(thestackpointer,sp)andr14(thelinkregister,lr)相应的r15(theprogramcounter,pc)相应的CPSR(currentprogramstatusregister,cpsr)特权模式(除system模式)还可以存取;相应的spsr(savedprogramstatusregister),程序状态寄存器,条件位:N=1-结果为负,0-结果为正或0Z=1-结果为0,0-结果不为0C=1-进位,0-借位V=1-结果溢出,0结果没溢出Q位:仅ARM5TE/J架构支持指示增强型DSP指令是否溢出J位仅ARM5TE/J架构支持J=1:处理器处于Jazelle状态,中断禁止位:I=1:禁止IRQ.F=1:禁止FIQ.TBit仅ARMxT架构支持T=0:处理器处于ARM状态T=1:处理器处于Thumb状态Mode位(处理器模式位):0b10000User0b10001FIQ0b10010IRQ0b10011Supervisor0b10111Abort0b11011Undefined0b11111System,当处理器执行在ARM状态:所有指令32bits宽所有指令必须word对齐所以pc值由bits31:2决定,bits1:0未定义(所以指令不能halfword/byte对齐).当处理器执行在Thumb状态:所有指令16bits宽所有指令必须halfword对齐所以pc值由bits31:1决定,bits0未定义(所以指令不能byte对齐).当处理器执行在Jazelle状态:所有指令8bits宽处理器执行word存取一次取4条指令,程序指针PC(r15),VectorTable,异常处理,当异常产生时,ARMcore:拷贝CPSR到SPSR_设置适当的CPSR位:改变处理器状态进入ARM态改变处理器模式进入相应的异常模式设置中断禁止位禁止相应中断(如果需要)保存返回地址到LR_设置PC为相应的异常向量返回时,异常处理需要:从SPSR_恢复CPSR从LR_恢复PCNote:这些操作只能在ARM态执行.,Vectortablecanbeat0 xFFFF0000onARM720TandonARM9/10familydevices,FIQ,IRQ,(Reserved),DataAbort,PrefetchAbort,SoftwareInterrupt,UndefinedInstruction,Reset,TheARM可以用little/bigendian格式存取数据.,r0=0 x11223344,STRr0,r1,LDRBr2,r1,r1=0 x100,Memory,3210,0123,ByteLane,31,24,23,16,15,8,7,0,11,22,33,44,31,24,23,16,15,8,7,0,11,22,33,44,31,24,23,16,15,8,7,0,11,22,33,44,31,24,23,16,15,8,7,0,00,00,00,44,31,24,23,16,15,8,7,0,00,00,00,11,Littleendian,Bigendian,R2=0 x44,R2=0 x11,Formoreinformation,see:“ApplicationNote61:BigandLittleEndianByteAddressing”,字节顺序,ARM发展,SA-110,ARM7TDMI,4T,1,支持Halfword和signedhalfword/byte和Systemmode,支持Thumb指令集,2,4,ARM9TDMI,SA-1110,ARM720T,ARM940T,改良的ARM/Thumb交互作用以及CLZ指令,5TE,SaturatedmathsDSPmultiply-accumulateinstructions,XScale,ARM1020E,ARM9E-S,ARM966E-S,3,早期的ARMs,ARM9EJ-S,5TEJ,ARM7EJ-S,ARM926EJ-S,Jazelle支持Java字节码,6,ARM11,SIMD,SISIMDMD,S,SIMD,测验1,1)说出ARM可以工作的模式名字。2)ARM核有多少个寄存器?3)什么寄存器用于存储PC和连接寄存器?4)R13通常用来存储什么?5)哪种模式使用的寄存器最少?6)在Thumb指令集中,哪些寄存器处于Lowgroup?7)CPSR的哪一位反映了处理器的状态?8)所有的Thumb指令采取什么对齐方式?9)ARM有哪几个异常类型。10)为什么FIQ的服务程序地址要位于0X1C?11)在复位后,ARM处理器处于何种模式、何种状态?,Agenda,ARM公司简介编程模式指令集系统设计,ARM指令集,所有ARM指令均为32-bits长大部分为单周期指令所有指令都可以条件执行采用Load/Store架构数据处理指令:SUBr0,r1,#5;r1-5-r0ADDr2,r3,r3,LSL#2;R3x4+r3-r2ANDSr4,r4,#0 x20;r4+0 x20-r4,更新条件码标志位ADDEQr5,r5,r6;r5+r6-r5(条件-相等)存储器存取指令:LDRr0,r1,#4;r1+4-r0STRNEBr2,r3,r4;NE符合-将r2低8位数写到r3+r4内存单元LDRSHr5,r6,#8!;r6+8-r5(半字节),r5中高16位设置成该字节的符号位STMFDsp!,r0,r2-r7,r10;出栈,ARM跳转分支指令,BPC32Mbyte.BL保存返回地址到LR返回时从LR恢复PC对于non-leaf函数,LR必须压栈保存,STMFDsp!,regs,lr:BLfunc2:LDMFDsp!,regs,pc,func1,func2,:BLfunc1:,:MOVpc,lr,协处理器,多达16个可定义协处理器,用唯一的ID来标示扩充ARM指令集通常用作ARM“internalfunctions”(例如:cp15通常用作ARMcache控制器)通常系统设计的时候最好用内存映射外设容易实现,Thumb指令集,Thumb是一个16-bits指令集优化代码密度(65%ofARM)提高窄内存操作性能是ARM指令集的一个功能子集ARM/Thumb转换使用BX指令,对于有编译器产生的绝大多数指令:条件执行不可用源和目的寄存器相同只有低端寄存器可用常量大小受限制内嵌的桶形移位不可用,ARM/Thumb性能分析,存储器宽度(zerowaitstate),指令流,执行单元,ARM,Thumb,解码阶段,执行阶段,预取阶段,Jazelle,Jazelle,Jazelle使得ARMcores执行8-bit的Java字节码95%的字节码执行使用hardware(typical)NormalJVM:1.0Caffeinemarks/MHzARM9EJ:5.5Caffeinemarks/MHz更高的性能增加的门电路12K(ARM9EJ-S同ARM9E-S比较)ARMJTEK(JavaTechnologyEnablingKit)提供支持代码,Agenda,介绍编程模式指令集系统设计,基于ARM的系统示例,16bitRAM,8bitROM,32bitRAM,I/O,外设,中断控制器,nFIQ,nIRQ,AMBA总线,Bridge,Timer,On-chipRAM,ARM,InterruptController,Remap/Pause,TIC,Arbiter,BusInterface,ExternalROM,ExternalRAM,Reset,系统总线,片内外设总线,AMBAAdvancedMicrocontrollerBusArchitectureADKCompleteAMBADesignKit,ACTAMBAComplianceTestbenchPrimeCellARMsAMBAcompliantperipherals,AHBorASB,APB,ExternalBusInterface,Decoder,ARMDeveloperSuite1.2,ADS1.2是为嵌入式ARM开发而设计的一整套软件开发工具从最初的软件原型到最终优化的ROM代码。ADS1.2发布于2001的12月份支持的主机系统IBMcompatiblePCswithWindows95,98,2000,MEorNT4SunworkstationswithSolaris2.6,2.7or2.8HPworkstationswithHPUX10.20,11RedHatLinux6.2&7.1使用FLEXLM管理器,管理它的LICENSE45天的评估版软件第三方工具支持:,使用Multi-ICE调试,5线JTAG,被调试的系统可以是最终系统!也可以使用第三方开发调试工具。,Data,Address,Control,BREAKPT,CPU,ARM,DebuggerandMulti-ICEserver(可以运行在不同的主机上),TAP,EmbeddedICELogic-RT,ARM实时跟踪,EmbeddedTraceMacrocell(ETM)实时指令(PC)跟踪实时数据访问跟踪包含ICE功能(trigger&filterlogic)MultiTraceTracePortAnalyzer(TPA)更深层次的追踪TraceDebugTools通过JTAG/Multi-ICE配置ETM跟踪从ETM/MultiTrace接收跟踪信息使用源代码镜像文件得到ETM跟踪的数据,5,ARMcore,ETM,RAM,ROM,TAPcontroller,Trace,Trigger/Filter,9,13,21wireTracePort,5wireJTAGport,Serial/Ethernet,并口l,主机运行TraceDebug工具(Add-onforADS),ARMPoweredProducts,LexmarkZ52ColorJetprinter,SamsungML5100A,JVCPixstarGC-X1,HPJo
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
评论
0/150
提交评论