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