版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、第第2章章 ARM体系结构体系结构 参考书:ARM嵌入式处理器结构与应用基础马忠梅,马广云,徐英慧,等北京航空航天大学出版社121 ARM体系结构概述体系结构概述2 21 11 ARM1 ARM体系结构的特点体系结构的特点0 0、概述:、概述:qARMARM公司公司 ARMARM即即Advanced RISC MachinesAdvanced RISC Machines的缩写。的缩写。 ARMARM公司是知识产权公司是知识产权(IP)(IP)供应商,成立于供应商,成立于19901990。 ARMARM公司本身不生产芯片,靠转让设计许可,由合公司本身不生产芯片,靠转让设计许可,由合作伙伴公司来生
2、产各具特色的芯片。作伙伴公司来生产各具特色的芯片。 ARMARM作为作为3232位嵌入式位嵌入式RISCRISC微处理器业界的领先供应微处理器业界的领先供应商,商业模式的强大之处在于它在世界范围有超过商,商业模式的强大之处在于它在世界范围有超过100100个合作伙伴个合作伙伴包括半导体工业的著名公司,包括半导体工业的著名公司,从而保证了大量的开发工具和丰富的第三方资源,从而保证了大量的开发工具和丰富的第三方资源,它们共同保证了基于它们共同保证了基于ARMARM处理器核的设计可以很快处理器核的设计可以很快投入市场。投入市场。2p ARMARM处理器的处理器的3 3大特点是:大特点是:耗电少,成本
3、低,功能强;耗电少,成本低,功能强;16163232位双指令集;位双指令集;全球众多合作伙伴保证供应。全球众多合作伙伴保证供应。q ARMARM体系结构基于体系结构基于精简指令集计算机精简指令集计算机(RISC)(RISC)原理原理。v 传统的传统的CISCCISC指令集计算机随着计算机的发展引入了各种各指令集计算机随着计算机的发展引入了各种各样的复杂指令样的复杂指令, ,使得指令集和为实现这些指令的计算机体系使得指令集和为实现这些指令的计算机体系结构越来越复杂结构越来越复杂, ,已经不堪重负。已经不堪重负。v 经过大量的研究和分析经过大量的研究和分析, ,发现在发现在CISCCISC的指令集
4、中的指令集中, ,各种指令各种指令的使用频度相差悬殊。的使用频度相差悬殊。 大概有大概有20%20%的指令被反复使用的指令被反复使用, ,使用量约占整个程序的使用量约占整个程序的80%;80%; 而有而有80%80%左右的指令则很少使用左右的指令则很少使用, ,其使用量约占整个程其使用量约占整个程序的序的20%20%。这就是所谓的这就是所谓的20%80%20%80%规律规律。 3p RISCRISC指令集和相关的译码机制比复杂指令集计算机指令集和相关的译码机制比复杂指令集计算机(CISC)(CISC)的设计更简单。这种简单性得到了:的设计更简单。这种简单性得到了: 高指令吞吐率;高指令吞吐率;
5、 出色的实时中断响应;出色的实时中断响应; 体积小、性价比高的处理器宏单元。体积小、性价比高的处理器宏单元。p 1616位位ThumbThumb指令集,允许软件指令集,允许软件1616位编码使占用的存位编码使占用的存储器空间节省高达储器空间节省高达3535,然而保留了,然而保留了3232位系统所有位系统所有的优势。的优势。 4qARMARM还提供了两个前沿特性还提供了两个前沿特性嵌入式嵌入式ICERTICERT逻辑逻辑和嵌入式跟踪宏核系列,用于辅助嵌入式处理器核和嵌入式跟踪宏核系列,用于辅助嵌入式处理器核的、高集成的的、高集成的SoCSoC器件的调试。允许在代码的任何部器件的调试。允许在代码的
6、任何部分分甚至在甚至在ROMROM中设置断点。中设置断点。qARMARM当前有当前有5 5个产品系列:个产品系列:ARM7ARM7、ARM9ARM9、ARM9EARM9E、ARM10ARM10和和SecurCoreSecurCore。q进一步的产品来自于合作伙伴,例如进一步的产品来自于合作伙伴,例如Intel Intel XScaleXScale微体系结构和微体系结构和StrongARMStrongARM产品。产品。 51ARM的的RISC型处理器结构型处理器结构q 中央控制器没有采用微程序的方式。采用了硬接线中央控制器没有采用微程序的方式。采用了硬接线PLAPLA的方式。的方式。q 减少复杂
7、功能的指令,选用使用频度最高的指令;减少复杂功能的指令,选用使用频度最高的指令;q 简化处理器的结构,减少处理器的集成度;简化处理器的结构,减少处理器的集成度;q 采用采用3232位定长指令。除了单机器周期执行位定长指令。除了单机器周期执行1 1条指令外,条指令外,每条指令具有多种操作功能,提高了指令使用效率。每条指令具有多种操作功能,提高了指令使用效率。q 采用流水线结构,使每一条指令平均在一个机器周期采用流水线结构,使每一条指令平均在一个机器周期内完成,以提高处理器的速度。内完成,以提高处理器的速度。q 采用多寄存器的结构,使指令的操作尽可能在寄存器采用多寄存器的结构,使指令的操作尽可能在
8、寄存器之间进行。之间进行。q 采用采用LoadLoadStoreStore结构,即只有结构,即只有LoadLoadStore(Store(加载存加载存储储) )指令可与存储器打交道,减少访问存储器的频度,指令可与存储器打交道,减少访问存储器的频度,节约指令执行时间。节约指令执行时间。q 为了进一步提高指令和数据的存取速度,有的还增为了进一步提高指令和数据的存取速度,有的还增加指令快存加指令快存ICacheICache和数据快存和数据快存DCacheDCache;62Thumb指令集指令集q 新型新型ARMARM体系结构在体系结构在3232位指令集的基础上位指令集的基础上又定义了又定义了1616
9、位的位的ThumbThumb指令集,可以使程指令集,可以使程序存储器更小。序存储器更小。ThumbThumb指令集比通常的指令集比通常的8 8位和位和1616位位CISCCISCRISCRISC处理器具有更好的处理器具有更好的代码密度,而芯片面积只增加代码密度,而芯片面积只增加6 6。73 3多处理器状态模式多处理器状态模式qARMARM可以支持可以支持7 7种处理器模式:种处理器模式: 用户模式用户模式 快中断模式快中断模式 中断模式中断模式 管理模式管理模式 中止模式中止模式 系统模式系统模式 未定义模式未定义模式q除了用户模式外,其余的均为特权模式。这是除了用户模式外,其余的均为特权模式
10、。这是ARMARM的的特色之一。多处理器模式可以大大提高特色之一。多处理器模式可以大大提高ARMARM处理器的处理器的效率,并方便操作系统的设计。效率,并方便操作系统的设计。84嵌入式在线仿真调试嵌入式在线仿真调试q ARMARM体系结构的处理器芯片都嵌入了在线仿真体系结构的处理器芯片都嵌入了在线仿真ICERTICERT逻辑逻辑q 由于由于ICERTICERT逻辑的支持,便于通过逻辑的支持,便于通过JTAGJTAG来仿真调试来仿真调试ARMARM体系结构芯片,从而可以省去价格昂贵的在线仿体系结构芯片,从而可以省去价格昂贵的在线仿真器。真器。q 在处理器核中还集成了嵌入式跟踪宏单元(在处理器核中
11、还集成了嵌入式跟踪宏单元(ETMETM),), ETMETM可以用于监控内部总线,实时跟踪指令和数据的可以用于监控内部总线,实时跟踪指令和数据的执行。执行。95 5灵活和方便的接口灵活和方便的接口q ARMARM体系结构具有协处理器接口,这样,既可以使基体系结构具有协处理器接口,这样,既可以使基本的本的ARMARM处理器内核尽可能小,又可以方便地扩充各处理器内核尽可能小,又可以方便地扩充各种功能。种功能。ARMARM允许接允许接1616个协处理器。个协处理器。q ARMARM处理器核具有片上总线处理器核具有片上总线AMBA(AdvancedAMBA(Advanced Micro Micro c
12、ontroller Bus Architecture)controller Bus Architecture)。q AMBAAMBA定义了定义了3 3组总线:组总线: 先进高性能总线先进高性能总线AHB(AdvancedAHB(Advanced High performance Bus) High performance Bus); 先进系统总线先进系统总线ASB(AdvancedASB(Advanced System Bus) System Bus); 先进外围总线先进外围总线APB(AdvancedAPB(Advanced Peripheral Peripheral Bus) Bus)。q
13、 通过通过AMBAAMBA可以方便地扩充各种处理器及可以方便地扩充各种处理器及I IO O,这样,这样,可以把可以把DSPDSP、其他处理器和、其他处理器和I IO O接口接口( (如如UARTUART、定时器、定时器和接口等和接口等) )都集成在一块芯片中。都集成在一块芯片中。106、低电压低功耗的设计、低电压低功耗的设计q 由于由于ARMARM体系结构的处理器主要用于手持式嵌入式系统之中,体系结构的处理器主要用于手持式嵌入式系统之中,ARMARM体体系结构在设计中十分注意低功耗问题。系结构在设计中十分注意低功耗问题。q CMOSCMOS电路的功耗关系:电路的功耗关系:Pc = (1/2)f
14、VPc = (1/2)fVDDDD2 2AgCLgAgCLg 式中,式中,f f为时钟频率;为时钟频率;V VDDDD为工作电源电压;为工作电源电压;AgAg是逻辑门在是逻辑门在1 1个时钟个时钟周期内翻转的次数周期内翻转的次数( (通常为通常为2)2);CLgCLg为门的负载电容。因此,为门的负载电容。因此,ARMARM体体系结构的设计采用了以下措施:系结构的设计采用了以下措施:降低电源电压,可工作在降低电源电压,可工作在3 30V0V以下。以下。减少门的翻转次数,当某个功能电路不需要时,禁止门翻转。减少门的翻转次数,当某个功能电路不需要时,禁止门翻转。减少门的数目,即降低芯片的集成度。减少
15、门的数目,即降低芯片的集成度。降低时钟频率降低时钟频率( (但也会损失系统的性能但也会损失系统的性能) )。11212 ARM处理器结构处理器结构1 1ARMARM体系结构体系结构q是是ARMARM体系结构:体系结构:v 3232位位ALUALU;v 3131个个3232位通用寄存器位通用寄存器v 6 6个状态寄存器个状态寄存器v 32328 8位乘法器位乘法器v 32323232位桶形移位寄存器位桶形移位寄存器v 指令译码及控制逻辑指令译码及控制逻辑v 指令流水线指令流水线v 数据地址寄存器。数据地址寄存器。 如图如图4141所示所示12FIG4-1132ARM的流水线结构的流水线结构p 计
16、算机中的计算机中的1 1条指令的执行可以分若干个阶段:条指令的执行可以分若干个阶段: 取指,从存储器中取出指令取指,从存储器中取出指令(fetch)(fetch); 译码,指令译码译码,指令译码( (decdec) ); 取操作数,假定从寄存器组中取操作数取操作数,假定从寄存器组中取操作数( (regreg) ); 执行运算执行运算(ALU)(ALU); 存储器访问,操作数与存储器有关存储器访问,操作数与存储器有关( (memmem) ); 结果写回寄存器结果写回寄存器( (resres) )。 各个阶段的操作相对都是独立的。因此,采用流水线各个阶段的操作相对都是独立的。因此,采用流水线的重叠
17、技术可以大大提高系统性能。的重叠技术可以大大提高系统性能。14p ARM体系结构的单周期体系结构的单周期3级流水线级流水线 图图45 ARM单周期单周期 3级流水线级流水线取指取指译码译码执行执行取指取指译码译码执行执行取指取指译码译码执行执行时间时间123153ARM存储器结构存储器结构 ARMARM架构的处理器,有的带有指令架构的处理器,有的带有指令CacheCache和数据和数据CacheCache,但片内不带有片内但片内不带有片内RAMRAM和片内和片内ROM ROM ,因此,系统所需的,因此,系统所需的RAMRAM和和ROMROM须通过总线外接。须通过总线外接。 系统所需的系统所需的
18、RAMRAM和和ROM(ROM(包括包括Flash)Flash)都通过总线连接,由都通过总线连接,由于系统的地址范围较大于系统的地址范围较大(2(232324 GB)4 GB),有的片内还带有,有的片内还带有存储器管理单元存储器管理单元MMUMMU。 图48 ARM外接RAM和ROM 16图图48 ARM外接外接RAM和和ROMROMoeRAMoeRAMwe3RAMwe2RAMwe1RAMwe0A1、A0没有接入片内地址线,他们是确定RAMwe3 RAMwe0的依据。174ARM IO结构结构p ARMARM架构中的处理器核和处理器内核一架构中的处理器核和处理器内核一般都没有般都没有I IO
19、O部件和模块,部件和模块,ARMARM架构处理架构处理器的器的I IO O可通过可通过AMBAAMBA(先进微控制总线(先进微控制总线架构)总线来扩充。架构)总线来扩充。ARMARM架构中的架构中的I IO O直接存储器存取直接存储器存取DMADMA中断结构。中断结构。 18(1)(1) 存储器映射存储器映射I IO Op一般的一般的I IO(O(如串行接口如串行接口) )有若干个寄存器:有若干个寄存器: 发送数据寄存器发送数据寄存器( (只写只写) ); 数据接收寄存器数据接收寄存器( (只读只读) ); 控制寄存器、状态寄存器控制寄存器、状态寄存器( (只读只读) ); 中断允许寄存器;中
20、断允许寄存器;等。这些寄存器都需要相应的等。这些寄存器都需要相应的I IO O端口地址。端口地址。pARMARM采用了存储器映射采用了存储器映射I IO O的方式,即把的方式,即把I IO O端口端口地址作为特殊的存储器地址。地址作为特殊的存储器地址。 19(2)(2) 直接存储器存取直接存储器存取DMADMAARMARM架构的处理器一般都没有架构的处理器一般都没有DMADMA部件,只有在一些高档部件,只有在一些高档的的ARMARM架构处理器中具有架构处理器中具有DMADMA的功能。的功能。 (3) (3) 中断中断IRQIRQ和快速中断和快速中断FIQFIQp 一般的一般的ARMARM没有没
21、有DMADMA功能,为了能提高功能,为了能提高I IO O处理能力,系统安排了快速处理能力,系统安排了快速中断中断FIQ(FastFIQ(Fast Interrupt) Interrupt),而对普通,而对普通I IO O的中断源仍安排了一般中的中断源仍安排了一般中断断IRQIRQ。p 要提高中断响应的速度,在设计中可以采用以下办法:要提高中断响应的速度,在设计中可以采用以下办法: 提供大量后备寄存器,在中断响应及返回时,作为保护现场和恢提供大量后备寄存器,在中断响应及返回时,作为保护现场和恢复现场的上下文切换复现场的上下文切换 (Context Switching)(Context Swit
22、ching)之用。之用。 采用片内采用片内RAMRAM结构,这样可以加速异常处理结构,这样可以加速异常处理( (包括中断包括中断) )的进入时的进入时间。间。 CacheCache和地址变换后备缓冲器和地址变换后备缓冲器TLBTLB(Translation(Translation LookasideLookaside Buffer)Buffer)采用锁住采用锁住(Locked down)(Locked down)方式以确保临界代码段不受方式以确保临界代码段不受“不不命中命中”所产生的影响。所产生的影响。 205ARM协处理器接口协处理器接口pARMARM可以通过增加协处理器来支持一个通用的可以
23、通过增加协处理器来支持一个通用的指令集的扩充;指令集的扩充;p也可以通过未定义指令陷阱也可以通过未定义指令陷阱(Trap)(Trap)来支持协来支持协处理器的软件仿真处理器的软件仿真 。 21p ARM可以扩展可以扩展16个协处理器,每个协处理器可有个协处理器,每个协处理器可有16个寄存个寄存器。器。 MMU和保护单元的系统控制都采用和保护单元的系统控制都采用CPl5协处理器;协处理器; JTAG调试中的协处理器为调试中的协处理器为CPl4,即,即调试通信通道调试通信通道DCC(Debug Communication Channel)协处理器号协处理器号功功 能能15系统控制系统控制14调试控
24、制器调试控制器138保留保留74用户用户30保留保留22 6ARM 的的 AMBA接口接口p ARM处理器内核可通过内部总线扩充处理器内核可通过内部总线扩充Cache等部件,等部件,或通过协处理器接口扩充各种协处理器;或通过协处理器接口扩充各种协处理器;p 也可以通过先进微控制器总线架构也可以通过先进微控制器总线架构AMBA(Advanced Microcontroller Bus Arehitecture)来扩展不同体系架来扩展不同体系架构的宏单元及构的宏单元及IO部件。部件。p AMBA事实上已成为片上总线事实上已成为片上总线OCB(On Chip Bus)标标准。准。p AMBA有如下有
25、如下3类总线:类总线: 先进高性能总线先进高性能总线AHB(Advanced High-performance Bus); 先进系统总线先进系统总线ASB(Advanced System Bus) 先进外围总线先进外围总线APB(Advanced Peripheral Bus) 。 AMBA结构如图结构如图49所示。所示。 23247 7ARMARM的的JTAGJTAG调试接口调试接口p JTAG的基本知识的基本知识 什么是什么是JTAG ? JTAG是是Joint Test Action Group的缩写,基的缩写,基于于IEEE1149.1标准。标准。 使用使用JTAG的优点的优点 JTA
26、G的建立使得集成电路固定在的建立使得集成电路固定在PCB上,上,只通过边扫描便可以通过测试。只通过边扫描便可以通过测试。 在在ARM7TDMI处理器中,可以通过处理器中,可以通过JTAG直接控制直接控制ARM的内部总线,的内部总线,I/O口等信息,口等信息,从而达到调试的目的。从而达到调试的目的。25p JTAG调试接口的结构如调试接口的结构如图图410所示。所示。测试访问端口测试访问端口TAP(Test Access Port)控制器;控制器;旁路旁路(Bypass)寄存器;寄存器;指令寄存器;指令寄存器;数据寄存器;数据寄存器;与与JTAG接口兼容的接口兼容的ARM架构处理器。架构处理器。
27、26p处理器的每个引脚都有一个移位寄存单元,称处理器的每个引脚都有一个移位寄存单元,称为边界扫描单元为边界扫描单元BSC(Boundary Scan Cell):BSC将将JTAG电路与处理器核逻辑电路联系电路与处理器核逻辑电路联系起来,同时,隔离了处理器核逻辑电路与芯起来,同时,隔离了处理器核逻辑电路与芯片引脚;片引脚;所有边界扫描单元的串联构成了边界扫描寄所有边界扫描单元的串联构成了边界扫描寄存器存器BSR;BSR寄存器电路仅在进行寄存器电路仅在进行JTAG测试时有效,测试时有效,在处理器核正常工作时无效(在处理器核正常工作时无效(直通直通)。)。27芯核逻辑芯核逻辑BSCBSCBSCBS
28、CBSCBSC28 ( 1 ) JTAG的控制寄存器的控制寄存器p 测试访问端口测试访问端口TAPTAP控制器:对嵌入在控制器:对嵌入在ARMARM处理器核内部的测试功能处理器核内部的测试功能电路进行访问控制,它是一个同步状态机。通过测试模式选择电路进行访问控制,它是一个同步状态机。通过测试模式选择TMSTMS和时钟信号和时钟信号TCKTCK来控制状态的转换,实现来控制状态的转换,实现IEEEll49IEEEll491 1标准所标准所确定的测试逻辑电路的工作时序。确定的测试逻辑电路的工作时序。p 指令寄存器:它是串行移位寄存器,通过它可以串行输入执行各指令寄存器:它是串行移位寄存器,通过它可以
29、串行输入执行各种操作指令。种操作指令。p 数据寄存器组:它是一组串行移位寄存器。操作指令被串行装入数据寄存器组:它是一组串行移位寄存器。操作指令被串行装入由当前指令所选择的数据寄存器,随着操作的进行,测试结果被由当前指令所选择的数据寄存器,随着操作的进行,测试结果被串行移出。其中:串行移出。其中: 器件器件IDID寄存器:读出在芯片内固化的寄存器:读出在芯片内固化的IDID号。号。 旁路寄存器:旁路寄存器:1 1位移位寄存器,用位移位寄存器,用1 1个时钟的延迟把个时钟的延迟把TDITDI连至连至TDOTDO,使,使测试者在同一电路板测试循环内访问其他器件。测试者在同一电路板测试循环内访问其他
30、器件。 边界扫描寄存器边界扫描寄存器( (扫描链扫描链) ):截取:截取ARMARM处理器核与芯片引脚之间所有信处理器核与芯片引脚之间所有信号,组成专用的寄存器链。号,组成专用的寄存器链。29 ( 2 ) JTAG测试信号测试信号TRST测试复位输入信号,测试接口初始化。测试复位输入信号,测试接口初始化。TCK测试时钟,在测试时钟,在TCK时钟的同步作用下,通过时钟的同步作用下,通过TDI和和TDO引脚串行移入引脚串行移入移出数据或指令,同时也为测试访问端口移出数据或指令,同时也为测试访问端口TAP控制器的状态机提供时钟。控制器的状态机提供时钟。TMS测试模式选择信号,测试模式选择信号, 在在
31、TCK同步下控制测试接口状态机的操作。同步下控制测试接口状态机的操作。TDI测试数据输入线,其串行输入数据送至边界扫描寄存器或指令寄存器测试数据输入线,其串行输入数据送至边界扫描寄存器或指令寄存器(由由TAP 控制器的当前状态及已保存在指令寄存器中的指令来控制控制器的当前状态及已保存在指令寄存器中的指令来控制)。TDO测试数据输出线,把从边界扫描链采样的数据传播至串行测试电路中的测试数据输出线,把从边界扫描链采样的数据传播至串行测试电路中的下一个芯片下一个芯片JTAG可以对同一块电路板上多块芯片进行测试。连接方法如下:可以对同一块电路板上多块芯片进行测试。连接方法如下:TRST、TCK和和TM
32、S信号并行接至各个芯片;信号并行接至各个芯片;前前1块芯片的块芯片的TDO接至下接至下1块芯片的块芯片的TDI。30( 3 ) TAP状态机状态机p 测试访问端口测试访问端口TAPTAP控制器是一个控制器是一个1616状态的有限状态机,状态的有限状态机,为为JTAGJTAG提供控制逻辑,控制进入提供控制逻辑,控制进入JTAGJTAG结构中各种寄存器结构中各种寄存器内数据的扫描与操作。内数据的扫描与操作。p 状态转移图如图状态转移图如图411411所示,所示,在在TCKTCK同步时钟上升沿的同步时钟上升沿的TMSTMS引脚的逻辑电压决定状态转移的过程。引脚的逻辑电压决定状态转移的过程。p 任一状
33、态下,让任一状态下,让TMS=1TMS=1可以经可以经5 5个个TCKTCK回到复位状态。回到复位状态。p 由由TDITDI引脚输入到器件的扫描信号有引脚输入到器件的扫描信号有2 2个状态变化路径:个状态变化路径:用于指令移入至指令寄存器,或用于数据移入至相应的用于指令移入至指令寄存器,或用于数据移入至相应的数据寄存器数据寄存器( (该数据寄存器由当前指令确定该数据寄存器由当前指令确定) )。p 状态图中的每个状态都是状态图中的每个状态都是TAPTAP控制器进行数据处理所需控制器进行数据处理所需要的,这些处理包括向引脚施加激励信号、捕获输入数要的,这些处理包括向引脚施加激励信号、捕获输入数据、
34、加载指令以及将边界扫描寄存器中数据移入移出据、加载指令以及将边界扫描寄存器中数据移入移出 31状态转换发生在状态转换发生在TCK同步时钟脉同步时钟脉冲的上升沿冲的上升沿32( 4 ) JTAG( 4 ) JTAG接口控制指令接口控制指令p 控制指令用于控制控制指令用于控制JTAG接口各种操作,包括接口各种操作,包括公用公用(Public)指令和指令和私有私有(Private)指令。最基本的公用指令有:指令。最基本的公用指令有: BYPASS 旁路旁路片上系统逻辑指令,用于未被测试的芯片,即把片上系统逻辑指令,用于未被测试的芯片,即把TDI与与TDO旁路旁路(1个时钟延迟个时钟延迟)。 EXTE
35、ST 片外电路测试指令,用于测试电路板上芯片之间的互连。片外电路测试指令,用于测试电路板上芯片之间的互连。如图如图411中的引脚状态被中的引脚状态被捕获捕获在在capture DR;并在;并在shift DR状态时,状态时,通过通过TDO引脚把寄存器中数据移出,同时新的数据通过引脚把寄存器中数据移出,同时新的数据通过TDI引脚移入,引脚移入,该数据在该数据在更新更新update DR状态中用于边界扫描寄存器输出。状态中用于边界扫描寄存器输出。 IDCODE 读芯片读芯片ID码指令,用于识别电路板上的芯片。此时,码指令,用于识别电路板上的芯片。此时,ID寄寄存器在存器在TDI与与TDO引脚之间,
36、在引脚之间,在capture DR状态中,芯片的状态中,芯片的ID复制至复制至ID寄存器,然后在寄存器,然后在shift DR状态中移出。状态中移出。 INTEST 片内测试指令,边界扫描寄存器位于片内测试指令,边界扫描寄存器位于TDI与与TDO引脚之间,引脚之间,处理器核逻辑输入和输出状态被边界扫描寄存器捕获和控制。处理器核逻辑输入和输出状态被边界扫描寄存器捕获和控制。p 以上是以上是ARM架构最基本的公用指令,各种处理器核可以根据需要架构最基本的公用指令,各种处理器核可以根据需要进行扩展。进行扩展。33213 ARM处理器内核处理器内核p ARM体系结构的处理器内核有体系结构的处理器内核有
37、ARM7TDMI、ARM8、ARM9TDMI、ARM10TDMI及及ARM11TDMI等。等。p ARM7TDMI处理器内核处理器内核 ARM7TDMI处理器是处理器是ARM7处理器系列成员之一,是目前应用处理器系列成员之一,是目前应用很广的很广的32位高性能嵌入式位高性能嵌入式RISC处理器。处理器。 TDMI后缀的含义:后缀的含义:T具有具有16位压缩指令集位压缩指令集Thumb;D支持在片调试支持在片调试(Debug) ,允许处理器响应调试请求暂停;,允许处理器响应调试请求暂停;M增强型乘法器增强型乘法器(Multiplier),比以前处理器性能更高,产生全,比以前处理器性能更高,产生全
38、64位结果;位结果;I提供嵌入式提供嵌入式ICE硬件,支持片上断点调试。硬件,支持片上断点调试。 ARM7处理器核采用了处理器核采用了3级流水线结构,指令执行分为取指、译级流水线结构,指令执行分为取指、译码和执行等码和执行等3个阶段。个阶段。 ARM7TDMI的体系结构图如图的体系结构图如图412所示。所示。34113个扫描单元:包括ARM核所有I/O引脚、地址数据总线引脚和输入输出控制引脚。 33个扫描单元:数据总线D31:D0和一个端点控制信号38个扫描单元:通过控制ICE宏单元,实现对ARM执行指令的断点、观察点的控制。35p ARM7TDMI内核的内核的JTAG扫描链结构扫描链结构(主
39、(主要包括条扫描链)要包括条扫描链) Scan Chain0: 有有113个扫描单元个扫描单元,包括包括ARM核核的所有的所有I/O,地址数据总线和输入输出控制信地址数据总线和输入输出控制信号号.这条链上的信号复杂这条链上的信号复杂,不易控制不易控制,但是但是,包含包含的信息丰富的信息丰富,可以通过这条链得到可以通过这条链得到ARM7TDMI所有的内核信息。所有的内核信息。36 Scan Chain1:有有3333个扫描单元,包括个扫描单元,包括ARMARM核的核的数据数据总线总线和一个和一个断点控制信号断点控制信号。这是一条很有用的链,。这是一条很有用的链,通过控制这条链,可以控制通过控制这
40、条链,可以控制ARMARM核执行指定的指令,核执行指定的指令,从而实现对从而实现对ARMARM的内部寄存器,协处理器以及外部存的内部寄存器,协处理器以及外部存储器的读写操作。储器的读写操作。 Scan Chain2:有有3838个扫描单元,通过控制个扫描单元,通过控制EmbeddedICE宏单元,实现对宏单元,实现对ARMARM执行指令的断点、执行指令的断点、观察点控制。观察点控制。EmbeddedICE是集成在是集成在ARMARM内核的中内核的中的嵌入式的嵌入式ICE防真器。通过对防真器。通过对EmbeddedICE的控制,的控制,对对EmbeddedICE中寄存器的读取,可以获得中寄存器的
41、读取,可以获得ARMARM内内核的状态,为程序设置断点或读取核的状态,为程序设置断点或读取DebugDebug通信通道。通信通道。372 22 21 1 数据类型数据类型ARMARM处理器支持下列数据类型:处理器支持下列数据类型: ByteByte字节,字节,8 8位;(位;(A31A0)32A31A0)32位地址位地址均有效均有效. . HalfwordHalfword 半字,半字,1616位位( (半字必须与半字必须与2 2字节字节边界对准边界对准) ) (A31A1,0)A31A1,0)偶数地址偶数地址,A0,A0为为0 0 ; WordWord字,字,3232位位( (字必须与字必须与
42、4 4字节边界对准字节边界对准) )。 (A31A2,0,0)A31A2,0,0)地址是地址是4 4的倍数的倍数,A1,A0,A1,A0均为均为0. 0. 2 22 ARM 2 ARM 编程模型编程模型图图418 ARM数据类型存储图数据类型存储图见见ARM的存储结构的存储结构38ARMARM体系结构支持表体系结构支持表4343所列的所列的7 7种处理器模式。种处理器模式。表表43 处理器模式处理器模式处理器处理器模模 式式说说 明明用户用户user正常程序执行模式正常程序执行模式FIOfiq支持高速数据传送或通道处理支持高速数据传送或通道处理IRQirq用于通用中断处理用于通用中断处理管理管
43、理svc操作系统保护模式操作系统保护模式系统复位后的缺省模式系统复位后的缺省模式中止中止abt实现虚拟存储器和或存储器保护实现虚拟存储器和或存储器保护未定义未定义und支持硬件协处理器的软件仿真支持硬件协处理器的软件仿真系统系统sys运行特权操作系统任务运行特权操作系统任务222 处理器模式处理器模式异异常常模模式式特特权权模模式式39p 模式的改变模式的改变 在软件控制下可以改变模式;在软件控制下可以改变模式; 外部中断或异常处理也可以引起模式发生改变。外部中断或异常处理也可以引起模式发生改变。p 大多数应用程序在用户模式下执行。大多数应用程序在用户模式下执行。 当处理器工作在用户模式时,正
44、在执行的程序不能访问当处理器工作在用户模式时,正在执行的程序不能访问某些被保护的系统资源;某些被保护的系统资源; 用户模式下不能改变模式,除非异常用户模式下不能改变模式,除非异常(Exception)(Exception)发生。发生。这允许操作系统来控制系统资源的使用。这允许操作系统来控制系统资源的使用。p 除用户模式外的其他除用户模式外的其他6 6种模式称为种模式称为特权模式特权模式。 特权模式服务于中断或异常;特权模式服务于中断或异常; 特权模式可以访问被保护的资源;特权模式可以访问被保护的资源; 特权模式下可以改变模式。特权模式下可以改变模式。关于模式的说明:关于模式的说明:40p 系统
45、模式。系统模式。不能由任何其他模式进入该模式;不能由任何其他模式进入该模式;它与用户模式拥有完全相同的寄存器。然而它是它与用户模式拥有完全相同的寄存器。然而它是特权模式,不受用户模式的限制。特权模式,不受用户模式的限制。它供需要访问系统资源的操作系统任务使用,但它供需要访问系统资源的操作系统任务使用,但希望避免使用与异常模式有关的附加寄存器。避希望避免使用与异常模式有关的附加寄存器。避免使用附加寄存器保证了当任何异常出现时,都免使用附加寄存器保证了当任何异常出现时,都不会使任务的状态不可靠。不会使任务的状态不可靠。p 除用户模式和系统模式之外的除用户模式和系统模式之外的5 5种模式称作异常模式
46、。种模式称作异常模式。当特定的异常出现时,进入相应的模式。当特定的异常出现时,进入相应的模式。每种模式都有某些附加的寄存器,以避免异常出每种模式都有某些附加的寄存器,以避免异常出现时用户模式的状态不可靠。现时用户模式的状态不可靠。41223 处理器工作状态处理器工作状态p ARMARM处理器有两种工作状态:处理器有两种工作状态: ARMARM:这种状态下执行:这种状态下执行3232位字对准的位字对准的ARMARM指令;取指时指令;取指时程序计数器的程序计数器的PC.1PC.1和和PC.0PC.0均为均为0 0 ThumbThumb:这种状态下执行半字对准的:这种状态下执行半字对准的1616位位
47、ThumbThumb指令。指令。取指时程序计数器的取指时程序计数器的PC.0PC.0为为0 0,而使用,而使用PC.1PC.1位选择另位选择另一个半字。一个半字。p ARMARM处理器可以在两种工作状态之间切换。处理器可以在两种工作状态之间切换。ARMARM和和ThumbThumb之之间状态的切换不影响处理器的模式或寄存器的内容。间状态的切换不影响处理器的模式或寄存器的内容。42p ARMARM处理器在处理器在ARMARM和和ThumbThumb两种工作状态之间切换的方法:两种工作状态之间切换的方法: 进入进入ThumbThumb状态。当操作数寄存器的状态位状态。当操作数寄存器的状态位( (位
48、位0)0)为为1 1时,执行时,执行BXBX指令进入指令进入ThumbThumb状态。如果处理器在状态。如果处理器在ThumbThumb状态进入异常,则当异常处理状态进入异常,则当异常处理(IRQ(IRQ、FIQFIQ、UndefUndef、AbortAbort和和SWI)SWI)返回时,自动转换到返回时,自动转换到ThumbThumb状态。状态。 进入进入ARMARM状态。当操作数寄存器的状态位状态。当操作数寄存器的状态位( (位位0)0)为为0 0时,执行时,执行BXBX指令进入指令进入ARMARM状态。处理器进行异常处理状态。处理器进行异常处理(IRQ(IRQ、FIQFIQ、ResetR
49、eset、UndefUndef、AbortAbort和和SWI)SWI)时,把时,把PCPC放入异常模式链接寄存器中,从异常向量地址开始放入异常模式链接寄存器中,从异常向量地址开始执行也可以进入执行也可以进入ARMARM状态。状态。43p ARMARM处理器总共有处理器总共有3737个寄存器:个寄存器: 3131个通用寄存器,包括程序计数器个通用寄存器,包括程序计数器PCPC。这些寄。这些寄存器是存器是3232位的。位的。 6 6个状态寄存器。这些寄存器也是个状态寄存器。这些寄存器也是3232位的,但只位的,但只使用了其中的使用了其中的1212位。位。p 3737个寄存器不能被同时看到,处理器
50、状态和个寄存器不能被同时看到,处理器状态和工作模式决定哪些寄存器编程者可见。工作模式决定哪些寄存器编程者可见。2 22 24 4 寄存器组织寄存器组织44SPSR_fiqSPSR_irqSPSR_undSPSR_abtSPSR_svcCPRSCPRSCPRSCPRSCPRSCPRSCPRSR15(PC)R15(PC)R15(PC)R15(PC)R15(PC)R15(PC)R15(PC)R14_fiqR14_irqR14_undR14_abtR14_svcR14R14R13_fiqR13_irqR13_undR13_abtR13_svcR13R13R12_fiqR12R12R12R12R12R1
51、2R11_fiqR11R11R11R11R11R11R10_fiqR10R10R10R10R10R10R9_fiqR9R9R9R9R9R9R8_fiqR8R8R8R8R8R8R7R7R7R7R7R7R7R6R6R6R6R6R6R6R5R5R5R5R5R5R5R4R4R4R4R4R4R4R3R3R3R3R3R3R3R2R2R2R2R2R2R2R1R1R1R1R1R1R1R0R0R0R0R0R0R0快中断模式快中断模式中断模式中断模式未定义模式未定义模式中止模式中止模式管理模式管理模式系统模式系统模式用户模式用户模式异常模式异常模式特权模式特权模式*黄色黄色表明用户或系统模式使用的一般寄存器已被异
52、常模式特定的另一寄存器所替代表明用户或系统模式使用的一般寄存器已被异常模式特定的另一寄存器所替代 451通用寄存器通用寄存器通用寄存器(R0(R0R15)R15)可分成可分成3 3类:类:(1) (1) 不分组寄存器不分组寄存器R0R0R7R7 R0 R0R7R7是不分组寄存器,在所有的处理器模式下,是不分组寄存器,在所有的处理器模式下,它们每一个都访问同样的它们每一个都访问同样的3232位物理寄存器。它们是真位物理寄存器。它们是真正的通用寄存器,没有体系结构所隐含的特殊用途。正的通用寄存器,没有体系结构所隐含的特殊用途。(2) (2) 分组寄存器分组寄存器R8R8R14R14R8R8R14R
53、14是分组寄存器。它们每一个访问的物理寄是分组寄存器。它们每一个访问的物理寄存器取决于当前的处理器模式。每种处理器模式有存器取决于当前的处理器模式。每种处理器模式有专用的分组寄存器用于快速异常处理。专用的分组寄存器用于快速异常处理。若要访问特定的物理寄存器而不依赖于当前的处理若要访问特定的物理寄存器而不依赖于当前的处理器模式,则要使用规定的名字。器模式,则要使用规定的名字。46 寄存器寄存器R8R8R12R12各有两组物理寄存器。一组为各有两组物理寄存器。一组为FIQFIQ模式,另一模式,另一组为除组为除FIQFIQ以外的其他模式。第以外的其他模式。第1 1组访问组访问R8_fiqR8_fiq
54、R12_fiqR12_fiq,第二组访问第二组访问R8_usrR8_usrR12_usrR12_usr。独立的。独立的FIQFIQ模式允许快速中断模式允许快速中断处理。处理。 寄存器寄存器R13R13、R14R14各有各有6 6个分组的物理寄存器。个分组的物理寄存器。1 1个用于用户模个用于用户模式和系统模式,而其他式和系统模式,而其他5 5个分别用于个分别用于5 5种异常模式。访问时需种异常模式。访问时需要指定其模式名。名字形式如下:要指定其模式名。名字形式如下:v R13_R13_v R14_ R14_ 其中,其中,可以从可以从usr、svc、abt、und、irq和和fiq 6种模式中选
55、取一个。种模式中选取一个。 47 寄存器寄存器R13R13通常用作堆栈指针,称作通常用作堆栈指针,称作SPSP。v 每种异常模式都有自己的分组每种异常模式都有自己的分组R13R13。v 通常通常R13R13应当被初始化成指向异常模式分配的堆栈。应当被初始化成指向异常模式分配的堆栈。v 在异常处理程序的入口将用到的其他寄存器的值保存在异常处理程序的入口将用到的其他寄存器的值保存到堆栈中。返回时,重新将这些值加载到寄存器。这到堆栈中。返回时,重新将这些值加载到寄存器。这种异常处理方法保证了异常出现后不会导致执行程序种异常处理方法保证了异常出现后不会导致执行程序的状态不可靠。的状态不可靠。48 寄存
56、器寄存器R14R14用作子程序链接寄存器,也称为链接寄存器用作子程序链接寄存器,也称为链接寄存器LR(LinkLR(Link Register) Register)。v当执行带链接转移当执行带链接转移(BL)(BL)指令时,指令时, R14R14得到得到R15R15的拷的拷贝。贝。v在其他情况下,将在其他情况下,将R14R14当做通用寄存器。当做通用寄存器。v类似地,当中断或异常出现时,或中断或异常程类似地,当中断或异常出现时,或中断或异常程序执行序执行BLBL指令时,相应的分组寄存器指令时,相应的分组寄存器R14_svcR14_svc、R14_irqR14_irq、R14_fiqR14_fi
57、q、R14_abtR14_abt和和R14_undR14_und用来保存用来保存R15R15的返回值。的返回值。 49应用提示:应用提示: FIQFIQ模式有模式有7 7个分组的寄存器个分组的寄存器R8R8R14R14映射为映射为R8_fiq R8_fiq R14_fiqR14_fiq。在。在ARMARM状态下,状态下,FIQFIQ处理中使用处理中使用R8R8R14R14没必要保存。没必要保存。 UserUser、IRQIRQ、SupervisorSupervisor、AbortAbort和和UndefinedUndefined模式每一种都模式每一种都包含两个分组的寄存器包含两个分组的寄存器R
58、13R13和和R14R14的映射,允许每种模式都有的映射,允许每种模式都有自己的堆栈和链接寄存器。自己的堆栈和链接寄存器。 50(3) (3) 程序计数器程序计数器R15R15 寄存器寄存器R15R15用作程序计数器用作程序计数器PCPC。在。在ARMARM状态,位状态,位1:01:0为为0 0,位位3131:22保存保存PCPC。在。在ThumbThumb状态下,位状态下,位00为为0 0,位,位31:131:1保保存存PCPC。程序计数器用于特殊场合。程序计数器用于特殊场合。 读程序计数器。指令读出的读程序计数器。指令读出的R15R15的值是指令地址加上的值是指令地址加上8 8个字节。由于
59、个字节。由于ARMARM指令始终是字对准的,所以读出结果指令始终是字对准的,所以读出结果值的位值的位1:01:0总是总是0(0(在在ThumbThumb状态下,情况有所变化状态下,情况有所变化) )。读读PCPC主要用于快速地对临近的指令和数据进行位置无主要用于快速地对临近的指令和数据进行位置无关寻址,包括程序中的位置无关转移。关寻址,包括程序中的位置无关转移。 写程序计数器。写写程序计数器。写R15R15的通常结果是将写到的通常结果是将写到R15R15中的值中的值作为指令地址,并以此地址发生转移。由于作为指令地址,并以此地址发生转移。由于ARMARM指令要指令要求字对准,通常希望写到求字对准
60、,通常希望写到R15R15中值的位中值的位1:0=0b001:0=0b00。512 2程序状态寄存器程序状态寄存器p 在所有处理器模式下都可以访问当前程序状态寄在所有处理器模式下都可以访问当前程序状态寄存器存器CPSR(CurrentCPSR(Current Program Status Register) Program Status Register)。p CPSRCPSR包含条件码标志、中断禁止位、当前处理器包含条件码标志、中断禁止位、当前处理器模式以及其他状态和控制信息。模式以及其他状态和控制信息。p 每种异常模式都有一个程序状态保存寄存器每种异常模式都有一个程序状态保存寄存器SPSR
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 小学英语口语教学中游戏化教学法的实践效果分析课题报告教学研究课题报告
- 《项目式学习策略在高中物理课堂中的实践与教学效果评价研究》教学研究课题报告
- 中学数学智能教学助手:行为预测与数学问题解决策略培养策略研究教学研究课题报告
- 人工智能在跨学科教学评价中的应用与评价体系构建策略教学研究课题报告
- 2024年温州理工学院马克思主义基本原理概论期末考试真题汇编
- 2024年哈尔滨华德学院马克思主义基本原理概论期末考试笔试真题汇编
- 2025年广东水利电力职业技术学院马克思主义基本原理概论期末考试真题汇编
- 2025年喀什大学马克思主义基本原理概论期末考试真题汇编
- 2024年可克达拉职业技术学院马克思主义基本原理概论期末考试笔试题库
- 2025年惠州经济职业技术学院马克思主义基本原理概论期末考试笔试题库
- 矿产企业管理办法
- 企业账期管理暂行办法
- 从大庆油田股权改革透视公司股权结构优化与治理创新
- 慈善春节慰问活动方案
- 2025至2030中国电地暖系统行业市场现状分析及竞争格局与投资发展报告
- 互联网金融浪潮下A银行网点智能轻型化转型之路
- 胸科手术麻醉管理专家共识
- 物联网智能家居设备智能控制手册
- (二模)东北三省三校2025年高三第二次联合模拟考试 英语试卷(含答案解析)
- 福建省泉州市2024-2025学年高一上学期期末质量监测生物试题(原卷版+解析版)
- 10千伏环网柜(箱)标准化设计方案 (2023 版)
评论
0/150
提交评论