资源预览内容
第1页 / 共85页
第2页 / 共85页
第3页 / 共85页
第4页 / 共85页
第5页 / 共85页
第6页 / 共85页
第7页 / 共85页
第8页 / 共85页
第9页 / 共85页
第10页 / 共85页
亲,该文档总共85页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述
嵌入式系统原理与开发 第8讲南京大学计算机系 俞建新主讲2008年春季2008年9月15日南京大学计算机系2第4章ARM体系结构l本章主要介绍以下内容:lARM体系结构版本lARM处理器系列lARM流水线lARM工作模式和工作状态lARM寄存器组织lARM存储器组织lARM的异常中断lAMBA和ARM7TDMI2008年9月15日南京大学计算机系34.8 AMBA和ARM7TDMIl介绍以下内容lARM处理器的片上总线AMBAl典型的ARM处理器核ARM7TDMI2008年9月15日南京大学计算机系44.1 ARM片上总线-AMBAlARM公司为单个或者多个ARM处理器芯核提供的独立 总线规格说明。l英文全称是:lAdvanced Microcontroller Bus Architecturel目前版本是3.0版l2.0版AMBA标准定义了三组总线:lAHB(AMBA高性能总线)lASB(AMBA系统总线)lAPB(AMBA外设总线)2008年9月15日南京大学计算机系5AHB、ASB和APBlAMBA规范定义了3种总线:lAHB(Advanced High-performance Bus)l用于连接高性能系统模块。它支持突发(burst)数据传 送方式及单个数据传送方式,所有时序都以单一时 钟的沿为基准。lASB(Advanced System Bus)l用于连接高性能系统模块,它支持突发数据传送模 式。lAPB(Advance Peripheral Bus)l为低性能的外围部件提供较简单的接口。2008年9月15日南京大学计算机系6典型的基于AMBA的SOC系统l一个典型的基于 AMBA的微控制 器将使用AHB或 ASB总线,再加 上APB总线,如 右图所示。lASB总线是旧版 的系统总线;而 AHB则较晚推出 ,以增强对更高 性能、综合及时 序验证的支持。2008年9月15日南京大学计算机系74.2 ARM7TDMI核lARM7TDMI是世界上广泛使用的32位嵌入式RISC处理 器,它是目前用于低端的ARM处理器核,且应用范围 很广。lARM7TDMI 的名称含义如下:lARM7:ARM6 32位整型核的3V兼容版本;lT:16位压缩指令集Thumb;lD:在片调试(debug)支持,允许处理器响应调试请 求暂停;lM:64位增强型乘法器(multiplier),与以前处理器相 比性能更高,产生全64位结果;lI:嵌入式ICE硬件提供片上断点和调试点支持。2008年9月15日南京大学计算机系84.2.1 ARM7TDMI介绍lARM7TDMI处理器是ARM7处理器系列成员之一 ,是目前应用很广的32位高性能嵌入式RISC处理 器。l本节介绍ARM7TDMI的以下4个内容l基本特点l框图、内核和功能图l体系结构l存储器接口2008年9月15日南京大学计算机系9ARM7TDMI基本特点lARM7TDMI基本特点包含以下内容:l指令流水线l存储器访问l存储器接口l嵌入式ICE-RT逻辑2008年9月15日南京大学计算机系10指令流水线lARM7TDMI使用流水线以提高处理器指令的流动 速度。流水线允许几个操作同时进行,以及处理 和存储系统连续操作。lARM7TDMI使用3级流水线,因此,指令的执行分 3个阶段:取指、译码和执行。l正常操作流水:l在执行当前一条指令的同时,后续的一条指令 被译码,后续的第二条指令从存储器中被取出 。2008年9月15日南京大学计算机系11指令流水线的功能段划分从存储器取指令指令所用的寄存器译码从寄存器组中读寄存器,执 行移位和ALU操作,将寄存 器写回到寄存器组执行译码取指PC - 8PC - 4PC2008年9月15日南京大学计算机系12ARM7的3级流水线示意图取指译码执行ARMThumbPC+8PC+4PC+4PC+2PCPC取指译码执行取指译码执行取指译码执行取指译码执行T1T2T3T4T5 当前执行指令的所在地址2008年9月15日南京大学计算机系13存储器访问特点lARM7TDMI核是冯诺依曼(Von Neumann)体系结 构,使用单一32位数据总线传送指令和数据。只 有加载、存储和交换指令可以访问存储器中的数 据。l数据可以是:8位(字节)、16位(半字)和32位(字)。l字必须是4字节边界对准,半字必须是2字节边界 对准。2008年9月15日南京大学计算机系14存储器接口特点lARM7TDMI存储器接口特点如下:l速度相关控制信号流水作业l方便片内和片外快速突发(burst)访问模式2008年9月15日南京大学计算机系154种存储周期l空闲周期(I)l非顺序周期(N)l顺序周期(S)l协处理器寄存器传送周期(C)2008年9月15日南京大学计算机系16嵌入式ICE-RT逻辑l为ARM7TDMI核提供了集成的在片调试支持l可用来设置断点或观察点出现的条件l嵌入式ICE-RT逻辑包含调试通信通道lDCC,Debug Communications ChannellDCC用于在目标和宿主调试器之间传送信息l嵌入式ICE-RT逻辑通过JTAG(Joint Test Action Group)测试访问口进行控制2008年9月15日南京大学计算机系17ARM7TDMI体系结构lARM7TDMI有如下2个指令集:l32位ARM指令集;l16位Thumb指令集。l属于ARMv4T体系结构的实现l特点是:l1指令集压缩l2Thumb指令集2008年9月15日南京大学计算机系18指令集压缩l对于传统的微处理器体系结构,指令和数据具有同样的宽度。l与16位体系结构相比,32位体系结构在操纵32位数据时 呈显了更高的性能,并可更有效地寻址更大的空间。l一般来讲,16位体系结构比32位体系结构具有更高的代 码密度,但只有近似一半的性能。lThumb在32位体系结构上实现了16位指令集,以提供:l比16位体系结构更高的性能;l比32位体系结构更高的代码密度。2008年9月15日南京大学计算机系19Thumb指令集lThumb指令集是通常使用的32位ARM指令集的子集。l每条Thumb指令是16位长,有相应的对于处理器模型有相同效 果的32位ARM指令。lThumb指令在标准的ARM寄存器配置下进行操作,在ARM和 Thumb状态之间具有出色的互操作性。l执行时,16位Thumb指令透明地实时解压缩成32位ARM指令 ,且没有性能损失。lThumb具有32位核的所有优点:l32位寻址空间;l32位寄存器;l32位移位器和算术逻辑单元ALU(Arithmetic Logic Unit);l32位存储器传送。2008年9月15日南京大学计算机系20Thumb指令集(续)lThumb因而可提供长的转移范围、强大的算术运算能力和大的 寻址空间。lThumb代码的长度是ARM代码长度的65,当从16位存 储系统运行时,提供ARM代码160的性能。lThumb使ARM7TDMI核非常适用于有存储器宽度限制且 代码密度为重要的嵌入式应用场合。l由于ARM7TDMI具有16位Thumb指令集和32位ARM指令集, 这使设计者能根据他们的应用要求在子程序级灵活地强调性能 或代码长度。2008年9月15日南京大学计算机系21框图、内核和功能图l参看下面的三张内部电路结构图lARM7TDMI处理器框图lARM7TDMI主处理器逻辑lARM7TDMI处理器功能图l有关图中的引脚信号请参看PDF资料文件 ARM7TDMI的所有信号描述2008年9月15日南京大学计算机系22ARM7TDMI处理器框图2008年9月15日南京大学计算机系23ARM7TDMI主处理器2008年9月15日南京大学计算机系24ARM7TDMI处理器功能图2008年9月15日南京大学计算机系25ARM7TDIM部分信号解释lAPE(address pipe line enable)lALE(address latch enable)lABE(address bus enable)lLOCK(locked operation)lMCLK(memory clock input)lnWAIT(not wait)lECLK(external clock output)lnRESET(not reset)lnRW(not read/write)lnMREQ(not memory request)2008年9月15日南京大学计算机系26APE信号lAPE(address pipe line enable)l选择地址总线、LOCK、MAS1:0、nRW、nOPC和 nTRANS信号是操作在流水线方式(APE为高)还是非流水 线方式(APE为低)。2008年9月15日南京大学计算机系27ALE信号lALE(address latch enable)l提供这个信号用以与以前的ARM处理器兼容。l对于新设计,若需要地址重新定义时,ARM公司则推荐 使用APE,并将ALE接高。l当该信号为低时,锁存地址总线、LOCK、MAS1:0、 nRW、nOPC和nTRANS信号。这可允许这些地址信号在 整个存储器访问周期内都有效。l例如,当与ROM接口时,在数据被读出之前地址必须 一直有效。2008年9月15日南京大学计算机系28ABE信号lABE(address bus enable)l该引脚信号为高时,地址总线有效。l当它为低时禁止总线驱动,使地址总线进入高阻状态。l也用同样的方法控制LOCK、MAS1:0、nRW、nOPC和 nTRANS信号。若系统没有要求,则禁止地址驱动, ABE必须接高。2008年9月15日南京大学计算机系29LOCK信号lLOCK(locked operation)l一个受APE、ALE和ABE控制的信号。lLOCK用于向仲裁器指示总线上正在进行原子性 (atomic)操作。l当处理器执行一个锁定内存区访问时为高,则表明正 在执行SWP和SWPB指令。此信号用来防止控制器允 许其它器件访问存储器。l信号值为高表明这些指令执行原子性读写操作,可 用于实现信号量。lLOCK通常为低。2008年9月15日南京大学计算机系30MCLK信号lMCLK(memory clock input)l所有存储器访问和处理器操作的主时钟。时钟速度可以 减慢到以允许访问慢速外设或存储器。另外,nWAIT可 与自由运行的MCLK一起使用以获得同样的效果。2008年9月15日南京大学计算机系31nWAIT信号lnWAIT(not wait)l当它为低时,处理器将其访问时间延长几个MCLK周 期,这对访问低速存储器或外围设备有用。在内部 nWAIT与MCLK进行逻辑“与”且必须仅在MCLK为低 时改变。当nWAIT不使用时,它必须接高。l相当于x86处理器的Ready信号(输入,高电平)。2008年9月15日南京大学计算机系32ECLK信号lECLK(external clock output)l在正常操作中,它只是可选用nWAIT延展的MCLK, 从内核输出。当内核正在被调试时,它是DCLK,由 TCLK内部产生。2008年9月15日南京大学计算机系33nRESET信号lnRESET(not reset)l用于从已知的地址启动处理器。低电平将引起正在执 行的指令非正常中止。这个信号必须保持为低至少达 2个时钟周期,同时nWAIT保持为高。l当它为低时,处理器执行内部周期,同时地址从复位 处增值。若nRESET保持到超过最大地址界限,则地 址溢出为零。当它保持为高至少1个时钟周期时,处 理器从地址0重新开始。2008年9月15日南京大学计算机系34nRW 信号lnRW(not read/write)l读写控制信号l一个受APE、ALE和ABE控制的信号。lnRW指定传送的方向。nRW为高表明是ARM7TDMI 的写周期,nRW为低表明是ARM7TDMI的读周期。S 周期的突发传送始终是读突发,或者写突发。在突发 传送期间不
网站客服QQ:2055934822
金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号