您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 管理学资料 > 补充材料-ARM m0架构1
1ARMUniversityProgramCopyright©ARMLtd2013ARMCortex-M0处理器体系结构第一部分2ARMUniversityProgramCopyright©ARMLtd2013单元大纲ARM体系和处理器什么是ARM架构ARM处理器系列ARMCortex-M架构系列Cortex-M0处理器ARM处理器Vs.ARM体系ARMCortex-M0处理器Cortex-M0处理器概述Cortex-M0框图Cortex-M0寄存器Cortex-M0内存映射Cortex-M0异常处理3ARMUniversityProgramCopyright©ARMLtd2013ARM体系和ARM处理器4ARMUniversityProgramCopyright©ARMLtd2013什么是ARM架构ARM架构是一种基于RISC技术的处理器架构因其低功耗而出名;因此广泛应用在移动设备中,诸如手机和平板中都有由ARM公司设计并授权一个很大的生态圈来生产ARM控股设计基于ARM的处理器的公司;并不生产,但是授权其他半导体合作厂商使用其设计来制造和销售产品给他们的客户;同时还提供其他设计,比如物理IP、图形核和开发工具。5ARMUniversityProgramCopyright©ARMLtd2013ARM处理器系列Cortex-A系列(应用)用于开放操作系统的高性能处理器;应用产品包括手机、数字电视、电子书和家庭网关等。Cortex-R系列(实时)对于实时应用有杰出的性能;应用产品包括汽车刹车系统、动力传动系统等。Cortex-M系列(单片机)用于特定的单片机应用的顾忌成本的解决方案;应用产品包括单片机、混合信号设备、智能传感器、车体电路和气囊等。SecurCore系列高安全性的应用。早期的经典处理器包括ARM7、ARM9、ARM11系列Cortex-ACortex-A57Cortex-A53Cortex-A15Cortex-A9Cortex-A8Cortex-A7Cortex-A5Cortex-R7Cortex-R5Cortex-R4Cortex-M4Cortex-M3Cortex-M1Cortex-M0+Cortex-M0SC000SC100SC300ARM11ARM9ARM7Cortex-RCortex-MSecurCoreClassicAsofSept20136ARMUniversityProgramCopyright©ARMLtd2013设计一个基于ARM的SoC从ARM或其他第三方IP厂家获得一组IP核;把这些IP核集成进单个芯片的设计中;把设计交给半导体厂家来做芯片生产。基于ARM的MCU芯片ROMARM处理器RAM系统总线外围部件外部接口SoCSoC设计芯片制造可授权的IPIP库Cortex-A9Cortex-R5Cortex-M0ARM7ARM9ARM11AXI总线AHB总线APB总线GPIOI/O块定时器DRAM控制FLASH控制SRAM控制7ARMUniversityProgramCopyright©ARMLtd2013ARMCortex-M架构系列Cortex-M系列:Cortex-M0,M0+,M1,M3,M4.低功耗更低的能耗、更长的电池寿命更小的代码更低的硅片成本易于使用更快的软件开发和重用嵌入式应用智能仪表、人机接口设备、汽车和工业控制系统、白色商品、消费产品和医疗仪器AsofSept20138ARMUniversityProgramCopyright©ARMLtd2013ARMCortex-M架构系列处理器ARM架构核心架构Thumb®Thumb®-2硬件乘法硬件除法饱和运算DSP扩展浮点运算Cortex-M0ARMv6-M冯诺伊曼大多数子集1或32个周期无无无无Cortex-M0+ARMv6-M冯诺伊曼大多数子集1或32个周期无无无无Cortex-M1ARMv6-M冯诺伊曼大多数子集3或33个周期无无无无Cortex-M3ARMv7-M哈佛完整完整1个周期有有无无Cortex-M4ARMv7E-M哈佛完整完整1个周期有有有可选9ARMUniversityProgramCopyright©ARMLtd2013Cortex-M0处理器最小的ARM处理器极小的硅片面积极少的门数量(最低配置大约1.2万个门)代码密度高以16位Thumb指令为基础加上一些强大的32位指令低功耗16µW/MHz(90LP工艺、最小配置)简单性只有56条指令对C语言友好更确定的响应时间使用ARMv6-M架构10ARMUniversityProgramCopyright©ARMLtd2013ARM处理器Vs.ARM架构ARM架构定义了指令集的细节、程序的模型、异常模型和内存映射;相关文档在ArchitectureReferenceManual(架构参考手册)中;ARM处理器是用一种ARM架构开发出来的;更多的实现细节,比如时序数据以及和实现相关的数据;相关文档在处理器的TechnicalReferenceManual(技术参考手册)中。ARMv4/V4t架构ARMv5/v4E架构ARMv6架构ARMv7架构ARMv6-M如.Cortex-M0,M1如ARM7TDMI如ARM9926EJ-S如ARM1136ARMv8架构ARMv7-A如Cortex-A9ARMv7-R如Cortex-R4ARMv7-M如Cortex-M3ARMv8-A如Cortex-A53Cortex-A57ARMv8-R2013年9月的数据11ARMUniversityProgramCopyright©ARMLtd2013ARM处理器Vs.ARM架构Cortex-M0:v6-MARMv6架构的Thumb指令集;ARMv7-M架构的内存映射,异常模型和Thumb-2系统;低功耗优化的设计。ARMv6-M架构ARMv6架构ARMv7-M架构ARMCortex-M0Thumb指令集内存映射异常模型Thumb-2系统低功耗优化的设计12ARMUniversityProgramCopyright©ARMLtd2013ARMCortex-M0处理器概述13ARMUniversityProgramCopyright©ARMLtd2013Cortex-M0概述32位精简指令集计算(RISC)处理器冯诺伊曼架构数据和指令共享单个总线接口;指令集56条指令,是Thumb-1(16位)和Thumb-2(16/32位)的子集;支持的中断1个不可屏蔽中断(NMI)+1到32个物理中断支持睡眠模式14ARMUniversityProgramCopyright©ARMLtd2013Cortex-M0框图内部总线系统AHBLITE总线接口唤醒中断控制器(WIC)处理器核心嵌套向量化中断控制器(NVIC)调试子系统中断请求和NMIARMCortex-M0微处理器内存与外围部件JTAG/串行线调试接口-Wire电源管理接口15ARMUniversityProgramCopyright©ARMLtd2013Cortex-M0框图处理器核心包括内部寄存器、ALU、数据通路和一些控制逻辑;三级流水线:取指、译码和执行;寄存器包括16个32位寄存器,都可以用做通用和特殊用途。嵌套向量化中断控制器(NVIC)最多32个中断请求信号和一个不可屏蔽中断(NMI);自动处理嵌套的中断,比如比较中断请求和当前正在处理的中断的优先级;取指译码执行取指译码执行取指译码执行指令1指令2指令3取指译码执行指令4Time16ARMUniversityProgramCopyright©ARMLtd2013Cortex-M0框图总线系统包括内部总线系统,处理器核心中的数据通路和AHBLITE接口单元;全部都是32位宽度;AHBLITE是许多ARM处理器所采用的片上总线协议,在IC设计业内得到广泛使用。调试子系统处理调试控制、程序断点和数据观察点(watchpoint);当调试事件发生的时候,它可以把处理器核心置于停止状态,让开发人员可以分析处理器此刻的状态,比如查看寄存器和标志的值。唤醒中断控制器(WIC)(可选)对于低功耗应用,单片机可以关闭大多数部件进入睡眠模式。当检测到一个中断请求的时候,WIC可以通知电源管理单元来给系统供电。17ARMUniversityProgramCopyright©ARMLtd2013ARMCortex-M0处理器的寄存器18ARMUniversityProgramCopyright©ARMLtd2013Cortex-M0寄存器处理器寄存器内部的寄存器是用来存储和处理处理器核心内的临时数据的;所有的寄存器都在处理器核心内,因此能更快地被读写;load-store架构要处理内存中的数据,就必须把数据从内存装载到寄存器中,在处理器中处理,需要的话,再写回到内存中。Cortex-M0寄存器寄存器组(bank)16个32位寄存器(13个是通用的);特殊寄存器。19ARMUniversityProgramCopyright©ARMLtd2013Cortex-M0寄存器R0R1R2R3R4R5R6R7R8R9R10R11R12R13(分组)R14R15xPSR堆栈指针(SP)链接寄存器(LR)程序计数器(PC)PRIMASKCONTROLProgramStatusRegisters(PSR)InterruptmaskregisterStackdefinition特殊寄存器寄存器组MSPPSP主堆栈指针进程堆栈指针APSREPSRIPSR应用程序PSR执行PSR终端PSR低段寄存器高段寄存器通用寄存器20ARMUniversityProgramCopyright©ARMLtd2013Cortex-M0寄存器R0–R12:通用寄存器低段寄存器(R0–R7)可以由任何指令读写;高段寄存器(R8–R12)有时候不能被某些Thumb指令读写。R13:堆栈指针(SP)记录堆栈当前的地址;在任务之间切换的时候,用来保存程序的上下文;Cortex-M0有两个SP:一个是主SP(MSP),用在需要特权访问的程序中,比如OS内核及异常处理程序;另一个是进程SP(PSP),用在普通的应用程序中(不跑异常处理程序的时候)。程序计数器(PC)记录当前指令代码的地址;每个取值操作自动递增4(对于32位指令码而言),除非是遇到了跳转指令;像函数调用这样的跳转指令,会把PC变到一个特定的地址,同时把当前的PC保存在链接寄存器(LR)中。数据数据PCSP地址低高压栈退栈堆栈代码堆21ARMUniversityProgramCopyright©ARMLtd2013Cortex-M0寄存器R14:链接寄存器(LR)LR用来保存子程序或函数调用时的返回地址;函数结束的时候,程序计数器(PC)装入LR中的值。PCLR主程序代码子程序当前PC把LR里的地址装入PC,从而返回到主程序中当前LR从子程序返回主程序PCLR主程序代码子程序当前PC1.把当前的PC保存到LR中2.把子程序的起始地址装入PC调用子程序代码区代码区22ARMUniversityProgramCopyright©ARMLtd2013Cortex-M0寄存器xPSR,混合的程序状态寄存器提供程序运行的信息及ALU标志:应用PSR(APSR)中断PSR(IPSR)执行PSR(EPSR)NZCVISR编号保留保留保留T保留TNZCVISR编号APSRIPSREPSRxPSR第0位第8位第16位第24位第31位23ARMUniversityProgramCopyright©ARMLtd2013Cortex-M0寄存器APSRN:负标志如果ALU的结果是负数就置为1;Z:零标志如果ALU的结果是0就置为1;C:进位
本文标题:补充材料-ARM m0架构1
链接地址:https://www.777doc.com/doc-3843099 .html