第2章ARM体系结构解析课件

上传人:痛*** 文档编号:241970549 上传时间:2024-08-08 格式:PPT 页数:287 大小:4.33MB
返回 下载 相关 举报
第2章ARM体系结构解析课件_第1页
第1页 / 共287页
第2章ARM体系结构解析课件_第2页
第2页 / 共287页
第2章ARM体系结构解析课件_第3页
第3页 / 共287页
点击查看更多>>
资源描述
,*,大学计算机基础,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,第,2,章,ARM,体系结构,第,2,章,ARM,体系结构,主要内容,1,3,2,4,ARM,体系结构概述,编程模型,ARM,基本寻址方式,ARM,指令集,5,ARM9TDMI,内核,6,ARM9,与,ARM7,的比较,ARM920T,核,7,2,.1.1,ARM,体系结构的特点,ARM,即,Advanced RISC Machines,的缩写。,ARM,公司1990年成立,是设计公司。,ARM,是知识产权(,IP),供应商,,本身不生产芯片,靠转让设计许可,由合作伙伴公司来生产各具特色的芯片。,ARM,处理器的3大特点是:,耗电少、成本低、功能强;,16,位/32位双指令集;,全球众多合作伙伴保证供应。,ARM,处理器为,RISC,芯片,其简单的结构使,ARM,内核非常小,这使得器件的功耗也非常低。它具有经典,RISC,的特点:,大的、统一的寄存器文件;,装载/保存结构,数据处理 操作只针对寄存器的内容,而不直接对存储器进行操作;,简单的寻址模式;,统一和固定长度的指令域,简化了指令的译码,便于指令流水线设计。,2,.1.1,ARM,体系结构的特点,2,.1.1,ARM,体系结构的特点,ARM,体系结构的特点:,RISC,型处理器结构,ARM/Thumb,指令集,多处理器状态模式,嵌入式在线仿真调试,灵活和方便的接口,ARM,体系结构具有协处理器接口,ARM,处理器核还具有片上总线,AMBA(AHB/ASB/APB),低电压低功耗的设计,2,.1.1,ARM,体系结构的特点,ARM,目前的产品系列:,ARM7,ARM9,ARM9E,ARM10,SecurCore,通用处理器系列,专门为安全设备设计的处理器系列,2,.1.2,ARM,处理器结构,1,3,2,4,ARM,的体系结构,ARM,的流水线结构,ARM,存储器结构,ARM I/O,结构,5,ARM AMBA,接口,6,ARM,协处理器接口,ARM JTAG,调试接口,7,8,冯诺依曼结构 与哈佛结构,微处理器是整个系统的核心,通常由,3,大部分组成。,算术逻辑单元,寄存器,控制单元,微处理器,存储器,输入,输出,1.,ARM,的体系机构,由32位,ALU、31,个32位通用寄存器及6位状态寄存器、32,8位乘法器、32,32位桶形移位寄存器、指令译码及控制逻辑、指令流水线和数据/地址寄存器组成。,ALU,由两个操作数锁存器、加法器、逻辑功能、结果及零检测逻辑构成。,ALU,的逻辑结构,ALU,每一时钟周期由双相时钟组成。,ALU,的最小数据通路周期由以下组成:,寄存器读时间;,移位器延迟;,ALU,延迟;,寄存器写建立时间;,双相时钟间非重叠时间。,ALU,的数据通路时序,桶形移位寄存器,为了减少移位的延迟时间,,ARM,采用了32,32位的桶形移位寄存器。这样,可以使左移/右移,n,位、环移,n,位和算术右移,n,位等都可以一次完成。,高速乘法器,ARM,为了提高运算速度,采用,两位乘法,的方法,。,两位乘法根据乘数的2位来实现,“,加-移位,”,运算。,乘数,A,n-1,A,n,:00-,原部分积,S,右移2位;,01-原部分积,S,加被乘数后右移2位;,10-原部分积,S,加2倍被乘数后,右移2位;,11-原部分积,S,加3倍被乘数后,右移2位。,2倍被乘数可通过将被乘数左乘1位来实现;,3倍可看作4-1(11100-1),故先减1倍被乘数,再加4倍被乘数来实现。,4倍被乘数的操作实际上是在该2位乘数11的高1位乘数加,“,1,”,,且此,“,1,”,可暂存在,Cout,进位触发器中。,高速乘法器,组合值,Yi-1YiC,操作,C,值变化,0000,部分积,0,;右移两位,C=01001,部分积,x,;右移两位,C=01010,部分积,x,;右移两位,C=02011,部分积,2x,;右移两位,C=02100,部分积,2x,;右移两位,C=03101,部分积,x,;右移两位,C=13110,部分积,x,;右移两位,C=14 1 11,部分积,0,;右移两位,C=1,高速乘法器,x=0.101100 y=0.111001,高速乘法器,ARM,的高速乘法器采用32,8位的结构,逻辑结构如下:,浮点部件,浮点部件是作为选件为,ARM,体系结构选用,,FPA10,浮点加速器以协处理器方式与,ARM,相连,并通过协处理器指令的解释来执行。,控制器,ARM,的控制器采用硬接线的可编程逻辑阵列,PLA。,输入端14根,输出40根,分散控制,Load/Store,多路、乘法器、协处理器以及地址、寄存器、,ALU,和移位器的控制。,寄存器,ARM,内含,37个,寄存器,其中:,31个通用32位寄存器,6个状态寄存器,2,.1.2,ARM,处理器结构,1,3,2,4,ARM,的体系结构,ARM,的流水线结构,ARM,存储器结构,ARM I/O,结构,5,ARM AMBA,接口,6,ARM,协处理器接口,ARM JTAG,调试接口,7,8,冯诺依曼结构 与哈佛结构,冯,诺依曼体系结构,指令寄存器,控制器,数据通道,输入,输出,中央处理器,存储器,程序,指令,0,指令,1,指令,2,指令,3,指令,4,数据,数据,0,数据,1,数据,2,冯,诺依曼体系结构,指令寄存器,控制器,数据通道,输入,输出,CPU,程序存储器,指令,0,指令,1,指令,2,数据存储器,数据,0,数据,1,数据,2,地址,指令,地址,数据,哈佛体系结构,2,.1.2,ARM,处理器结构,1,3,2,4,ARM,的体系结构,ARM,的流水线结构,ARM,存储器结构,ARM I/O,结构,5,ARM AMBA,接口,6,ARM,协处理器接口,ARM JTAG,调试接口,7,8,冯诺依曼结构 与哈佛结构,指令执行的阶段,计算机中的1条指令的执行可以分若干个阶段:,取指,从存储器中取出指令(,fetch);,译码,指令译码(,dec):,取操作数,假定操作数从寄存器组中取(,reg);,执行运算(,ALU);,存储器访问,操作数与存储器有关(,mem);,结果写回寄存器(,res)。,指令执行的阶段,流水线的停顿,相邻指令执行的数据相关性会产生指令执行的停顿。,指令执行的阶段,碰到分支类指令,则会使后面紧接该条指令的几条指令的执行都无效。,遇到分支指令,28,ARM7ARM,处理器使用,3,级流水线,分别为:,取指级:取指级完成程序存储器中指令的读取,并放入指令流水线中。,译码级:对指令进行译码,为下一周期准备数据路径需要的控制信号。这一级指令,“,占有,”,译码逻辑,而不,“,占有,”,数据路径。,执行级:指令,“,占有,”,数据路径,寄存器被读取,操作数在桶式移位器中被移位,,ALU,产生相应的运算结果并回写到目的寄存器中,,ALU,的结果则根据指令需求来更改状态寄存器的条件位。,ARM,体系结构的3级流水线,ARM7,体系结构采用了3级流水线,分为取指,译码和执行。下图是单周期3级流水线的操作示意图。,ARM,体系结构的3级流水线,由于取指的存储器访问和执行的数据通路占用都是不可同时共享的资源,因此对多周期指令来说,会产生流水线阻塞。如图3-12所示下图的影印框周期都是与存储器访问有关的。因此在流水线设计中不允许重叠。,31,ARM9,架构采用,5,级流水线:,增加了,I-Cache,和,D-Cache,,把存储器的取指与数据存取分开;,增加了数据写回的专门通路和寄存器;,把指令的执行过程分割为,5,阶段,:,取指令;,指令译码、寄存器读、分支目标计算及执行;,移位和,ALU,操作;,数据,Cache,访问;,结果写回到寄存器。,32,ARM9,架构采用了,5,级流水线:,取指:指令从存储器中取出,放入指令流水线。,译码:指令译码,从寄存器中读取寄存器操作数。在寄存器组中有,3,个操作数读端口,因此大多数,ARM,指令能在一个周期内读取其操作数。,执行:把一个操作数移位,产生,ALU,的结果。如果指令是,Load,或,Store,,在,ALU,中计算存储器的地址。,缓冲,/,数据:如果需要,则访问数据存储器。否则,,ALU,的结果只是简单地缓冲一个时钟周期,以便使所有指令具有同样的流水线流程。,回写:将指令产生的结果回写到寄存器,包括任何从存储器读取的数据。,33,更多级的流水线,ARM10,采用了,6,级流水线。,ARM11,采用了,8,级流水线。,ARM,体系结构的5级流水线,5级流水线把存储器的取指与数据存取分开,增加了,I-Cache,和,D-Cache,以提高存储器存取的效率,增加了数据写回的专门通路和寄存器,以减少数据通路冲突。,这样,5级流水线分为:,取指、指令译码、执行、数据缓存和写回,。,2,.1.2,ARM,处理器结构,1,3,2,4,ARM,的体系结构,ARM,的流水线结构,ARM,存储器结构,ARM I/O,结构,5,ARM AMBA,接口,6,ARM,协处理器接口,ARM JTAG,调试接口,7,8,冯诺依曼结构 与哈佛结构,存储器系统,寄存器,高速缓存,SRAM,主存储器,DRAM,本地存储器,Flash,、,ROM,、磁盘,网络存储器,Flash,、,ROM,、磁盘,时钟周期,0,110,50100,20000000,分层结构,存储器种类,RAM,:随机存取存储器,,SRAM,:静态随机存储器,,DRAM,:动态随机存储器,1,),SRAM,比,DRAM,快,2,),SRAM,比,DRAM,耗电多,3,),DRAM,存储密度比,SRAM,高得多,4,),DRAM,需要周期性刷新,ROM,:只读存储器,EPROM(Erasable Programmable ROM),EEPROM(Electrically EPROM),FLASH,:闪存,闪速存储器,(FLASH),相对传统的,EPROM,芯片,这种芯片可以用电气的方法快速地擦写,由于快擦写存储器不需要存储电容器,故其集成度更高,制造成本低于,DRAM,它使用方便,既具有,SRAM,读写的灵活性和较快的访问速度,又具有,ROM,在断电后可不丢失信息的特点,所以快擦写存储器技术发展十分迅速,NOR,技术,NOR,技术闪速存储器是最早出现的,Flash Memory,,目前仍是多数供应商支持的技术架构,它源于传统的,EPROM,器件。,与其它,Flash Memory,技术相比,具有可靠性高、随机读取速度快的优势。,在擦除和编程操作较少而直接执行代码的场合,尤其是代码(指令)存储的应用中广泛使用。,由于,NOR,技术,Flash Memory,的擦除和编程速度较慢,而块尺寸又较大,因此擦除和编程操作所花费的时间很长,在纯数据存储和文件存储的应用中,,NOR,技术显得力不从心。,NAND,技术,NAND,技术,Flash Memory,具有以下特点:,以页为单位进行读和编程操作,,1,页为,256,或,512,字节;以块为单位进行擦除操作,,1,块为,4K,、,8K,或,16K,字节。具有快编程和快擦除的功能,其块擦除时间是,2ms,;而,NOR,技术的块擦除时间达到几百,ms,数据、地址采用同一总线,实现串行读取。随机读取速度慢且不能按字节随机编程。,芯片尺寸小,引脚少,是位成本,(bit cost),最低的固态存储器,突破了每兆字节,1,元的价格限制。,芯片包含有失效块,其数目最大可达到,335,块(取决于存储器密度)。失效块不会影响有效块的性能,但设计者需要将失效块在地址映射表中屏蔽起来,基于,NAND,的存储器可以取代硬盘或其它块设备。,ARM,存储器结构,ARM,架构的处理器,有的带有指令,Cache,和数据,Cache,,但片内不带有片内,RAM,和片内,ROM,,系统所需的,RAM,和,ROM,须通过总线外接,如下图,。,2,.1.2,ARM,处理器结构,1,3,2,4,ARM,的体系结构,ARM,的流水线结构,ARM,存储器结构,ARM I/O,结构,5,ARM AMBA,接口,6,ARM,协处理器接口,ARM JTAG,调试接口,7,8,冯诺依曼结构 与哈佛结构,ARM,I/O,结构,ARM,架构中的处理器核和处理器内核一般都没有,I/O,的部件和模块,构成,ARM,架构的处理器中的,I/O,可通过,AMBA,总线来扩充。,(1)存储器映像,I/O,ARM,采用存储器映像,I/O,的方式,即把,I/O,端口地址作为特殊的存储器地址。不过,I/O,的输入/输出与真正的存储器读/写仍然有所不同:存储器的单元重复读多次的值是一致的;而,I/O,设备的连续2次输入,其输入值可能会有所不同。,(2)直接存储器存取,DMA,在,I/O,的数据流量比较大,中断处理比较频繁的场合,会明显影响系统的性能。因此,许多系统就采用了直接存储器存取,DMA,,这样,,I/O,的数据块传送至存储器的缓冲器区域就不需要处理器介入。而中断也仅仅出现在出现出错时或缓冲器满时。,(3)中断,IRQ,和快速中断,FIQ,一般的,ARM,没有,DMA,的功能,为了提高,I/O,处理的能力,对于一些要求,I/O,处理速率比较高的事件,系统安排快速中断,FIQ(Fast Interrupt),,而对其余的,I/O,源仍安排一般中断,IRQ。,2,.1.2,ARM,处理器结构,1,3,2,4,ARM,的体系结构,ARM,的流水线结构,ARM,存储器结构,ARM I/O,结构,5,ARM AMBA,接口,6,ARM,协处理器接口,ARM JTAG,调试接口,7,8,冯诺依曼结构 与哈佛结构,ARM,协处理器接口,ARM,为了便于片上系统,SOC,的设计,处理器内核尽可能精简,要增加系统的功能,可以通过协处理器来实现。在逻辑上,,ARM,可以扩展,16个,协处理器,每个协处理器可有16个寄存器。,协处理器号,功 能,15,系统控制,14,调试控制器,138,保留,74,用户,30,保留,例如,,MMU,和保护单元的系统控制都采用,CP15,协处理器;,JTAG,调试中的协处理器为,CP14,,即调试通信通道,DCC(Debug,Communication Channel)。,2,.1.2,ARM,处理器结构,1,3,2,4,ARM,的体系结构,ARM,的流水线结构,ARM,存储器结构,ARM I/O,结构,5,ARM AMBA,接口,6,ARM,协处理器接口,ARM JTAG,调试接口,7,8,冯诺依曼结构 与哈佛结构,ARM AMBA,接口,ARM,处理器也可以通过先进微控制器总线架构,AMBA(Advanced Microcontroller Bus Architecture),来扩展不同体系架构的宏单元及,I/O,部件。,AMBA,事实上已成为片上总线,OCB(On Chip Bus),标准。,AMBA,包括以下三类总线:,先进高性能总线,AHB,先进系统总线,ASB,先进外围总线,APB,2,.1.2,ARM,处理器结构,1,3,2,4,ARM,的体系结构,ARM,的流水线结构,ARM,存储器结构,ARM I/O,结构,5,ARM AMBA,接口,6,ARM,协处理器接口,ARM JTAG,调试接口,7,8,冯诺依曼结构 与哈佛结构,JTAG,调试接口的结构,JTAG,是,联合测试工作组(,Joint Test Action Group,),的简称,是在名为,标准测试访问端口和边界扫描结构,的,IEEE,的标准,1149.1,的常用名称。此标准用于测试访问端口,使用边界扫描的方法来测试印刷电路板。,JTAG,最初是用来对芯片进行测试的,基本原理是在器件内部定义一个,TAP,(,Test Access Port,测试访问口)通过专用的,JTAG,测试工具对内部节点进行测试。,JTAG,测试允许多个器件通过,JTAG,接口串联在一起,形成一个,JTAG,链,能实现对各个器件分别测试。现今,,JTAG,接口还常用于实现,ISP,(,In-System Programmable;,在线编程),对,FLASH,等器件进行编程。,JTAG,调试接口的结构,因为只有一条数据线,通信协议有必要像其他串行设备接口一样为串行传输。时钟由,TCK,引脚输入。配置是通过,TMS,引脚采用状态机的形式一次操作一位来实现的。每一位数据在每个,TCK,时钟脉冲下分别由,TDI,和,TDO,引脚传入或传出。可以通过加载不同的命令模式来读取芯片的标识,对输入引脚采样,驱动(或悬空)输出引脚,操控芯片功能,或者旁路(将,TDI,与,TDO,连通以在逻辑上短接多个芯片的链路)。,JTAG,调试接口的结构,由测试访问端口,TAP(Test Access Port),控制器、指令寄存器、数据寄存器以及与,JTAG,接口兼容的,ARM,架构处理器组成。,JTAG,的控制寄存器,测试访问端口,TAP,控制器,对嵌入在,ARM,处理器核内部的测试功能电路进行访问控制,是一个同步状态机。通过测试模式选择,TMS,和时钟信号,TCK,来控制其状态机。,指令寄存器,是串行移位寄存器,通过它可以串行输入执行各种操作的指令。,数据寄存器组,是一组串行移位寄存器。操作指令被串行装入由当前指令所选择的数据寄存器,随着操作的进行,测试结果被串行移出。其中:,器件,ID,寄存器:读出在芯片内固化的,ID,号。,旁路寄存器:1位移位寄存器,用1个时钟的延迟把,TDI,连至,TDO,,使测试者在同一电路板测试循环内访问其他器件。,边界扫描寄存器(扫描链):截取,ARM,处理器核与芯片引脚之间所有信号,组成专用的寄存器位。,JTAG,测试信号,TRST:,测试复位输入信号,测试接口初始化。,TCK:,测试时钟,在,TCK,时钟的同步作用下,通过,TDI,和,TDO,引脚串行移入/移出数据或指令,同时也为测试访问端口,TAP,控制器的状态机提供时钟。,TMS:,测试模式选择信号,控制测试接口状态机的操作。,TDI,,测试数据输入线,其串行输入数据送至边界扫描寄存器或指令寄存器(由,TAP,控制器的当前状态及已保存在指令寄存器中的指令来控制)。,TDO:,测试数据输出线,把从边界扫描链采样的数据传播至串行测试电路中的下一个芯片。,TAP,状态机,测试访问端口,TAP,控制器是一个16状态的有限状态机,为,JTAG,提供控制逻辑。状态转移图如右图:,JTAG,接口控制指令,控制指令用于控制,JTAG,接口各种操作,控制指令包括公用(,Public),指令和私有(,Private),指令。最基本的公用指令有:,BYPASS:,旁路片上系统逻辑指令,用于未被测试的芯片,即把,TDI,与,TPO,旁路(1个时钟延迟)。,EXTEST:,片外电路测试指令,用于测试电路板上芯片之间的互连。,IDCODE:,读芯片,ID,码指令,用于识别电路板上的芯片。此时,,ID,寄存器在,TDI,与,TDO,引脚之间,在,capture DR,状态中,芯片的,ID,复制至该寄存器,然后在,shift DR,状态中移出。,INTEST:,片内测试指令,边界扫描寄存器位于,TDI,与,TDO,引脚之间,处理器核逻辑输入和输出状态被该寄存器捕获和控制。,2,.1.3,ARM,处理器内核,ARM,体系结构的处理器内核有:,ARM7TDMI,、ARM8、,ARM9TDMI,、,ARM10TDMI,及,ARM11TDMI,等。,ARM7TDMI,ARM7TDMI,名字原义如下:,ARM7 ARM6 32,位整数核的3,V,兼容的版本;,T 16,位压缩指令集,Thumb;,D,在片调试(,Debug),支持,允许处理器响应调,试请求暂停;,M,增强型乘法器(,Multiplier),,与以前处理器,相比性能更高,产生全64位结果;,I,嵌入式,ICE,硬件提供片上断点和调试点支持。,ARM7TDMI,体系结构图,Scan Chain 1 33,个扫描单元,包括数据总线和一个断点 控制信号。,Scan Chain 0 113,个扫描单元,包括,ARM,所有的,I/O,,地 址,/,数据总线和输入,/,输出控制信号。此链很 复杂,不易控制,但包含信息丰富,可通 过它得到,ARM7TDMI,内核的所有信息。,Scan Chain 2 38,个扫描单元,通过控制,EmbeddedICE,宏 单元,实现对,ARM,进行指令的断点、观察 点的控制。,ARM7TDMI,引脚图,ARM7TDMI-,接口,存储器接口,中断,调试接口,协处理器接口,ARM7TDMI-,存储器接口,MCLK,nWAIT,A31:0,D31:0,nMREQ,SEQ,nRW,LOCK,ABE,DBE,nTRANS,ABORT,Clocks and,Clock Control,Memory,Management,Memory,Interface,Data and,Address,Bus,Control,Memory,Access,Control,nM4:0,MAS1:0,BL3:0,APE,ALE,TBE,ECLK,TBIT,BUSEN,nENIN,BIGEND,ARM7TDMI,nENOUT,ARM7TDMI-,存储器接口,MCLK,输入,处理器工作的时钟。,静态设计的,ARM,通过延长时钟周期来访问慢速的设备。,nWAIT,输入,在,ARM,内部与,MCLK,相与。,必须在,MCLK,为低的相位阶段改变。,容许该信号从一个周期扩展到另一个周期,延长总线访问周期。,ECLK,输出,核心逻辑的时钟的输出。,在正常和调试状态下反映内部时钟。,ph1&ph2,内部信号,双相位非覆盖的内部时钟。,处理器内部工作周期。,ARM7TDMI-,存储器接口,MCLK,nWAIT,Phase 1,Phase 2,Phase 2,Phase 1,ph2,Internal Clock,ECLK,ph1,Internal Clock,ARM7TDMI-,存储器接口,MCLK,nWAIT,Phase 1,Phase 2,Phase 2,Phase 1,ph2,Internal Clock,ECLK,ph1,Internal Clock,ARM7TDMI-,存储器接口,MCLK,nWAIT,Phase 1,Phase 2,Phase 2,Phase 1,ph2,Internal Clock,ECLK,ph1,Internal Clock,ARM7TDMI-,存储器接口,nMREQ,输出,:,存储器请求,.,低有效,指示在接下来的周期中进行存储器访问。,SEQ,输出:连续地址访问,高有效,指示在接下来的周期中地址不变或大一个操作数(字或半字),nRW,输出:非读/写,区分存储器读写访问,LOCK,输出:锁定操作,指示一条交换指令正在执行,接下来的两个处理器总线周期是不可见的。,MAS1:0,输出:存储器访问大小,指示字、半字或字节访问。,ARM7TDMI-,存储器接口,APE,和,ALE,输入,ARM,建议两个信号都为高,以便有最长的时间进行地址译码。,任何一个信号都可以连接到在数据访问期间需要稳定地址的设备。,APE:,地址流水线使能,APE=1,地址是流水线的,(,在后续的相位2提供,).,APE=0,重新定时地址改变的时序,从,MCLK,的下降沿开始。,控制对,A31:0,的透明锁存。,ALE:,地址锁存使能,控制对,A31:0,的透明锁存。,仅用于已有的系统设计,因为它比,APE,更复杂。,ARM7TDMI-,存储器接口,ABE,输入:地址总线使能,当,ABE,为低时,下面的信号处于高阻状态:,A31:0,nRW,LOCK,MAS1:0,nOPC,and nTRANS,DBE,输入,:,数据总线使能,当,DBE,为低时,,D31:0,处于高阻状态。,TBE,输入:测试总线使能,当,TBE,为低时,下面的信号处于高阻状态:,D31:0,A31:0,nRW,LOCK,MAS1:0,nOPC,and nTRANS,在,ABE,和,DBE,都为低时,情况一样。,ARM7TDMI-,存储器接口,nOPC,输出,低有效,指示处理器正在从存储器取指。,nTRANS,输出,低有效,指示处理器处于,user mode.,nM4:0,输出,当前操作模式,即,User,FIQ,IRQ,Supervisor,Abort,System or Undefined.,ABORT,输入,指示请求的访问不容许。,既用于指令预取,又用于,Data abort。,ARM7TDMI-,接口,存储器接口,中断,调试接口,协处理器接口,ARM7TDMI-,中断接口,nIRQ,nFIQ,ISYNC,Interrupts,ARM7TDMI,ARM7TDMI-,中断接口,2 个中断源,:nIRQ and nFIQ,输入,nFIQ,比,nIRQ,优先级高。,FIQ,代码可以在进入中断后直接访问执行。,可以选择,(ISYNC,输入)同步或异步时序。,异步时序,(ISYNC=0),损失一个周期的同步。,同步时序,(ISYNC=1),nIRQ,和,nFIQ,必须在,MCLK,的下降沿的时候已经建立且保持。,nFIQ,和,nIRQ,中断可以通过设置,CPSR,寄存器中的,F,和,I,位屏蔽。,ARM7TDMI-,中断接口,ISYNC=0,Earliest Start of Interrupt Sequence,Instruction from Interrupt,vector,Interrupt Vector Address,MCLK,nFIQ/nIRQ,A31:0,D31:0,ARM7TDMI-,中断接口,ISYNC=1,Earliest Start of Interrupt Sequence,vector,MCLK,nFIQ/nIRQ,A31:0,D31:0,Interrupt Vector Address,Instruction from Interrupt,ARM7TDMI-,接口,存储器接口,中断,调试接口,协处理器接口,ARM7TDMI-,调试接口,DBGRQ,BREAKPT,DBGACK,Debug,Interface,ECLK,EXTERN1:0,DBGEN,ARM7TDMI,JTAG Interface,ARM7TDMI-,调试接口,TDI-Input-Test Data In,TDO-Output-Test Data Out,TMS-Input-Test Mode Select,TCK-Input-Test Clock,nTRST-Input-Test Reset(active low),ARM7TDMI-,调试接口,DBGEN,输入(,DEBUG ENABLE),必须保持高电平,以允许,ARM7TDMI,的软件调试。,EXTERN1:0,输入,输入到,EmbeddedICE,宏单元,允许基于外部条件的断点。,ARM7TDMI-,调试接口,下面的信号仅用于扩展外部调试。,Multi-ICE,不使用这些信号。,BREAKPT,输入(,BREAK POINT),在指令上标志断点。,在数据上标志观察点。,如果不用,保持低电平。,DBGRQ,输入(,DEBUG REQUEST),强制,ARM7TDMI,核进入调试状态,高有效。,如果不用,保持低电平。,DBGACK,输出(,DEBUG ACKNOWLEDGE),ARM7TDMI,进入调试状态的响应信号。高电平指示,ARM7TDMI,核已进入调试状态。,ARM7TDMI-,调试接口,TAP,信号容许增加额外的链,SCREG3:0-,输出当前选择的扫描链,IR3:0-,输出,当前已加载的指令,TAPSM3:0-,输出,TAP,状态机状态,SDINBS-,输出,扫描链串行数据输入,SDOUTBS-,输入,扫描链串行数据输出,所需其它的移位、捕获时钟及多路复用器或选择线。,ARM7TDMI-,接口,存储器接口,中断,调试接口,协处理器接口,ARM7TDMI-,协处理器接口,nCPI,nOPC,CPB,CPA,Coprocessor,Interface,ARM7TDMI,ARM7TDMI-,协处理器接口,可以支持多达,16,个协处理器。,nOPC,输出:取操作码,低有效,指示正在取指令。,使能协处理器跟踪处理器指令流水线。,nCPI,输出:协处理器指令,低有效,指示当前正在执行的指令是一条协处理器指令,且该指令应该执行。,CPA,输入:协处理器缺少,高有效,当能够执行所要求的协处理器操作的协处理器存在时变低。,CPB,输入:协处理器忙,高有效,当协处理器准备好要执行要求的协处理器操作时变低。,如果没有连接外部协处理器的话,将,CPA,和,CPB,拉高。,采用了3级流水线结构,指令执行分为取指、译码和执行等3个阶段;,运算器能实现32位整数运算;,采用了高效的乘法器,用32,8位乘法器实现32,32位乘法(结果为64位)。,采用,v4T,版指令,支持16位,Thumb,指令集;,嵌入式,ICE(Embedded-ICE),模块为,ARM7TDMI,提供了片内调试功能。同时通过,JTAG,接口可以很方便地用,PC,主机对,ARM7TDMI,进行开发和调试。,还提供了存储器接口、,MMU,接口、协处理器接口和调试接口,以及时钟与总线等控制信号。,ARM7TDMI,主要特点,ARM7TDMI,主要性能指标,工艺:0.35,m(,新近采用0.25,m);,金属布线:3层;,电压:3.3,V(,新近采用1.2,V、0.9V);,管子数:74209只;,内核芯片面积:2.1,mm,2,;,时钟:066,MHz;,MIPS:66;,功耗:87,mW;,MIPS/W:690(,采用0.25,m,工艺,0.9,V,电压,可达1 200,MIPS/W)。,ARM9TDMI,主要性能指标,工艺:025,m(0.18,m);,金属布线:3层;,电压:2.5,V(1.2V);,管子数:11 100只;,核芯片面积:2.1,mm,2,;,时钟:0200,MHz;,MIPS:220;,功耗:150,mW;,MIPS/W:1 500。,ARM9TDMI,流水线结构,ARM9TDMI,处理器内核采用了,5级流水线,。,ARM9TDMI,主要特点,采用指令和数据分离访问的方式,即采用了指令,Cache,和数据,Cache。,用专门硬件来直接完成,ARM,与,Thumb,指令的译码。,ARM9TDMI,也有协处理器接口,允许在芯片增加浮点、数字信号处理或其他专用的协处理器。,ARM9TDMI,也提供相应的软核。,ARM9E-S,是具有,DSP,功能的能执行,v5TE,版,ARM,指令的,ARM9TDMI,软核,当然其芯片面积要增加30。,在,ARM9,流水线设计中,增加专用流水段用于存储器访问和将结果写回到寄存器组。而且,寄存器读也移到译码段。这些改变通过减少在单一时钟周期内操作最大的逻辑数目,允许更高的时钟频率。,ARM10TDMI,ARM10TDMI,在系统结构上主要采用增加时钟速率和减少每条指令平均时钟周期数,CPI(Clock Per Instruction),两大措施,以同样的工艺,同样的芯片面积,在性能上2倍于,ARM9TDMI。,ARM10TDMI,采用提高时钟速率、6级流水线、分支预测逻辑、64位存储器和无阻塞的存/取逻辑等措施,使,ARM10TDMI,的性能得到很大提高,是目前高档,ARM,体系结构的处理器内核。,流水线结构,2,.1.4,ARM,处理器核,在最基本的,ARM,处理器内核基础上,可增加,Cache、,存储器管理单元,MMU、,协处理器,CP15、AMBA,接口以及,EMT,宏单元等,构成,ARM,处理器核。,以,ARM7TDMI,处理器内核为基础的有:,ARM720T,处理器核,ARM740T,处理器核,以,ARM9TDMI,处理器内核为基础的有:,ARM920T,处理器核,ARM940T,处理器核,ARM720T,ARM720T,处理器核是在,ARM7TDMI,处理器内核基础上,增加8,KB,的数据与指令,Cache,,支持段式和页式存储的,MMU、,写缓冲器及,AMBA,接口构成。,ARM740T,ARM740T,处理器核与,ARM720T,处理器核相比,结构基本相同,但,ARM740,处理器核,没有存储器管理单元,MMU,,,不支持虚拟存储器寻址;而是用存储器保护单元来提供基本保护和,Cache,的控制。这为低价格低功耗的嵌入式应用提供了合适的处理器核。由于在嵌入式应用中运行固定软件,也不需要进行地址变换,所以可以省去地址变换后备缓冲器,TLB。,ARM920T,ARM920T,处理器核是在,ARM9TDMI,处理器内核基础上,增加了分离式的指令,Cache,和数据,Cache,,并带有相应的存储器管理单元,I-MMU,和,D-MMU、,写缓冲器及,AMBA,接口等。,ARM920T,处理器核特性:,工艺:0.25,m;,金属布线:4层;,电压:2.5,V;,管子数:2 500 000只;,核芯片面积:2325,mm,2,;,时钟:0200,MHz;,MIPS:220;,功耗:560,mW;,MIPS/W:390。,ARM920T,特性,ARM940T,ARM940T,处理器核与,ARM740T,处理器核相似,采用了,ARM9TDMI,处理器内核,是,ARM920T,处理器核的简化。,没有存储器管理单元,MMU,,,不支持虚拟存储器寻址,而是用有储器保护单元来提供存储保护和,Cache,控制。,ARM940T,的存储保护单元结构与,ARM740T,的基本相同。,主要内容,1,3,2,4,ARM,体系结构概述,编程模型,ARM,基本寻址方式,ARM,指令集,5,ARM9TDMI,内核,6,ARM9,与,ARM7,的比较,ARM920T,核,7,2,.2.1 数据类型,ARM,处理器支持下列数据类型:,Byte,字节,8位;,Halfword,半字,16位(半字必须与2字节边界对准);,Word,字,32 位(字必须与4字节边界对准)。,2,.2.2 处理器模式,ARM,体系结构支持7种处理器模式。,处理器,模 式,说 明,用户,usr,正常程序执行模式,FIQ,fiq,支持高速数据传送或通道处理,IRQ,irq,用于通用中断处理,管理,svc,操作系统保护模式,中止,abt,实现虚拟存储器和/或存储器保护,未定义,und,支持硬件协处理器的软件仿真,系统,sys,运行特权操作系统任务,处理器模式分类,处理器模式,用户模式,特权模式,异常模式,系统模式,FIQ,IRQ,管理,中止,未定义,2,.2.3 处理器工作状态,ARM,处理器有两种工作状态:,ARM:,32,位,这种状态下执行字对准的,ARM,指令;,Thumb:,16,位,这种状态下执行半字对准的,Thumb,指令。,ARM,处理器在两种工作状态之间可以切换。,ARM,和,Thumb,之间状态的切换不影响处理器的模式或寄存器的内容。,(1)进入,Thumb,状态。当操作数寄存器的状态位(位0)为1时,执行,BX,指令进入,Thumb,状态。如果处理器在,Thumb,状态进入异常,则当异常处理(,IRQFIQUndefAbort,和,SWI),返回时,自动转换到,Thumb,状态。,(2)进入,ARM,状态。当操作数寄存器的状态位(位0)为0时,执行,BX,指令进入,ARM,状态。处理器进行异常处理(,IRQFIQResetUndef Abort,和,SWI)。,在此情况下,把,PC,放入异常模式链接寄存器中。从异常向量地址开始执行也可以进入,ARM,状态。,2,.2.4 寄存器组织,ARM,处理器总共有37个寄存器:,31,个通用寄存器,包括程序计数器(,PC)。,这些寄存器是32位的。,6,个状态寄存器。这些寄存器也是32位的,但只使用了其中的12位。,通用寄存器,通用寄存器(,R0R15),可分成3类:,不分组寄存器,R0R7:,在所有的处理器模式下,它们每一个都访问一样的32位物理寄存器。,分组寄存器,R8R14:,它们每一个访问的物理寄存器取决于当前的处理器模式。每种处理器模式有专用的分组寄存器用于快速异常处理。,寄存器,R13,通常用作堆栈指针,称作,SP,。,寄存器,R14,用作子程序链接寄存器,也称为链接寄存器,LR,。,寄存器,R8R12,各有两组物理寄存器。一组为,FIQ,模式,另一组为除,FIQ,以外的其它模式。,寄存器,R13、R14,各有6个分组的物理寄存器。1个用于用户模式和系统模式,而其它5个分别用于5种异常模式。,程序计数器,R15:,在,ARM,状态,位1:0为,位31:2 保存,PC,在,Thumb,状态,位0为0,位31:1保存,PC。,程序状态寄存器,在所有处理器模式下都可以访问当前程序状态寄存器,CPSR,(Current Program Status Register)。CPSR,包含,条件码标志,、,中断禁止位,、,当前处理器模式,以及,其它状态和控制信息,。每种异常模式都有一个程序状态保存寄存器,SPSR,(Saved Program Status Register)。,当异常出现时,,SPSR,用于保留,CPSR,的状态。,CPSR,和,SPSR,格式如下:,程序状态寄存器,条件码标志,N、Z、C、V,(Negative、Zero、Carry、oVerflow),位称作条件码标志(,Condition Code Flags)。,通常条件码标志通过执行下述指令进行修改,即,比较指令(,CMN、CMP、TEQ、TST);,一些算术运算、逻辑运算和传送指令,它们的目的寄存器不是,R15。,这些指令通过在指令助记符后加上字符,“,S,”,进行标志设置。,条件码标志的含义,N:,如果结果是带符号二进制补码,若结果为负数,则,N=1;,若结果为正数或0,则,N=0。,Z:,若指令的结果为0,则置1,否则置0。,C:-,加法,包括比较指令,CMN。,产生进位则,C,置1;否则置0。,-减法,包括比较指令,CMP。,产生借位则,C,置0;否则置1。,-对于结合移位操作的非加/减法指令,,C,置为移出值的最后1位。,V:,对于加法或减法指令,当发生带符号溢出时,,V,置1。,程序状态寄存器,溢出,式子,1:,式子,2:,0 1 1 1(7)0 0 1 1(3),+0 1 1 1(7)+0 0 1 1(3),-,1 1 1 0(-2),溢出,0 1 1 0(6),正确,溢出标志,V:,对于加法或减法指令,当发生带符号溢出时,,V,置1。,式子,3:,式子,4:,1 1 0 0(-4)1 1 0 0(-4),+1 0 0 0(-8)+1 1 1 1(-1),-,1 0 1 0 0(4),溢出,1 1 0 1 1(-5),正确,-,进位进位,程序状态寄存器,溢出,总结,两个正数相加,如果结果为负数,就产生了溢出。,两个负数相加,如果结果为正数,就产生了溢出。,不同符号,的两个数相加,不会产生溢出。,对于加法,当计算的结果最高位向上进一位时,就会产生进位情况,.,程序状态寄存器,控制位,程序状态寄存器,PSR(Program Status Register),的最低8位,I、F、T,和,M4:0,用作控制位。,中断禁止位,I,置1则禁止,IRQ,中断;,F,置1则禁止,FIQ,中断。,T,位,T=0,指示,ARM,执行;,T=1,指示,Thumb,执行。,模式位,M0、M1、M2、M3,和,M4,是模式位。这些位决定处理器的工作模式。,M4:0,模式,可访问的寄存器,10000,用户,PC、R14R0、CPSR,10001,FIQ,PC、R14_fiqR8_fiq、R7R0、CPSR、SPSR_fiq,10010,IRQ,PC、R14_irq、R13_irq、R12R0、CPSR、SPSR_irq,10011,管理,PC、R14_svc、R13_svc、R12R0、CPSR、SPSR_svc,10111,中止,PC、R14_abt、R13_abt、R12R0、CPSR、SPSR_abt,11011,未定义,PC、R14_und、R13_und、R12R0、CPSR、SPSR_und,11111,系统,PC、R14R0、CPSR,Thumb,状态的寄存器集,Thumb,状态下的寄存器集是,ARM,状态下的寄存器集的子集。程序员可以直接访问8个通用寄存器(,R0R7)、PC、SP、LR,和,CPSR。,每一种特权模式都有一组,SP、LR,和,SPSR。,Thumb,状态的寄存器集,Thumb,状态寄存器与,ARM,状态寄存器的关系,注意:在,Thumb,状态下,寄存器,R8-R15(,高寄存器)并不是标准寄存器集的一部分。,2,.2.5 异常,异常由内部或外部源产生并引起处理器处理一个事件,例如外部中断或试图执行未定义指令都会引起异常。,ARM,支持7种类型的异常。,异常类型,模 式,正常地址,高向量地址,复位,管理,0,x00000000,0,xFFFF0000,未定义指令,未定义,0,x00000004,0,xFFFF0004,软件中断(,SWI),管理,0,x00000008,0,xFFFF0008,预取中止(取指令存储器中止),中止,0,x0000000C,0,xFFFF000C,数据中止(数据访问存储器中止),中止,0,x00000010,0,xFFFF0010,IRQ(,中断),IRQ,0,x00000018,0,xFFFF0018,FIQ(,快速中断),FIQ,0,x0000001C,0,xFFFF001C,当异常出现时,异常模式分组的,R14,和,SPSR,用于保存状态。,当处理异常返回时,把,SPSR,传送到,CPSR,R14,传送到,PC。,这可用两种方法自动完成,即,使用带,“,S,”,的数据处理指令,将,PC,作为目的寄存器;,使用带恢复,CPSR,的多加载指令。,优先级,异 常,1(最高),复位,2,数据中止,3,FIQ,4,IRQ,5,预取中止,6(最低),未定义指令、,SWI,2,.2.5 异常,异常优先级,2,.2.6 存储器和存储器映射,I/O,地址空间,ARM,体系结构使用2,32,个8位字节的单一、线性地址空间。将字节地址做为无符号数看待,范围为02,32,-1。,存储器格式,2,.2.6 存储器和存储器映射,I/O,非对准的存储器访问,存储器映射,I/O,若在,ARM,态执行期间,将没有字对准的地址写到,R15,中,结果通常不可预知或者地址的位1:0被忽略。,若在,Thumb,态执行期间,将没有半字对准的地址写到,R15,中,则地址的位0通常忽略。,当执行无效代码时,从,R15,读值的结果对,ARM,状态来说总是位1:0为0,对,Thumb,状态来说总是位0为0。,ARM,系统完成,I/O,功能的标准方法是使用存储器映射,I/O。,从存储器映射,I/O,地址加载用于输入,向存储器映射,I/O,地址存储用于输出。,存储器映射,I/O,位置的行为通常不同于对一个正常存储器位置所期望的行为。例如,对于存储器映射,I/O,位置,第2次加载的返回值可以不同于第1次加载的返回值。,主要内容,1,3,2,4,ARM,体系结构概述,编程模型,ARM,基本寻址方式,ARM,指令集,5,ARM9TDMI,内核,6,ARM9,与,ARM7,的比较,ARM920T,核,7,寻址方式,是根据指令中给出的地址码字段来寻找真实操作数地址的方式。,ARM,处理器支持的基本寻址方式有:,2,.3,ARM,基本寻址方式,寄存器寻址,立即寻址,寄存器移位寻址,寄存器间接寻址,变址寻址,多寄存器寻址,堆栈寻址,块复制寻址,相对寻址,寄存器寻址,所需要的值在寄存器中,指令中地址码给出的是寄存器编号,即寄存器的内容为操作数。例如指令:,ADD R0,R1,R2 ;R0,R1+R2,这条指令将2个寄存器(,R1,和,R2),的内容相加,结果放入第3个寄存器,R0,中。必须注意写操作数的顺序,第1个是结果寄存器,然后是第一操作数寄存器,最后是第二操作数寄存器。,立即寻址,立即寻址,是一种特殊的寻址方式,指令中在操作码字段后面的,地址码部分,不是通常意义上的操作数地址,,而是操作数本身,。这样的数称为立即数。例如指令:,ADD R3,R3,#1 ;R3,R3+1,AND R8,R7,#0 xff ;R8,R77:0,第2个源操作数为一个立即数,以,“,#,”,为前缀,十六进制值以在,“,#,”,后加,“,0,x,”,或,“,&,”,表示。,第1条指令完成寄存器,R3,的内容加1,结果放回,R3,中。第2条指令完成,R7,的32位值与0,FFH,相,“,与,”,,结果为将,R7,的低位送到,R8,中。,寄存器移位寻址,这种寻址方式是,ARM,指令集特有的。第2个寄存器操作数在与第1个操作数结合之前,选择进行移位操作。例如指令:,ADD R3,R2,R1,LSL#3 ;R3,R2+8,R1,寄存器,R1,的内容逻辑左移3位,再与寄存器,R2,内容相加,结果放入,R3,中。,可以采取的移位操作如有:,LSL:,逻辑左移(,Logical Shift Left)。,寄存器中字的低端空出的位补0。,0,LSR:,逻辑右移(,Logical Shift Right)。,寄存器中字的高端空出的位补0。,0,可以采取的移位操作如有:,寄存器移位寻址,ASR:,算术右移(,Arithmetic Shift Right)。,算术移位的对象是带符号数,若源操作数为正数,则字的高端空出的位补0。若源操作数为负数,则字的高端空出的位补1。,RRX:,扩展为1的循环右移(,Rotate Right eXtended by 1 place)。,操作数右移一位,空位(位31)用原,C,标志值填充。,ROR:,循环右移(,ROtate Right)。,从字的最低端移出的位填入字的高端空出的位。,C,寄存器间接寻址,指令中的地址码给出某一通用寄存器的编号。在被指定的寄存器中存放操作数的有效地址,而操作数则存放在存储单元中,即寄存器为地址指针。例如指令:,LDR R0,R1 ;R0,R1,STR R0,R1 ;R0,R1,寄存器间接寻址使用一个寄存器(基址寄存器)的值作为存储器的地址。第1条指令将寄存器,R1,指向的地址单元的内容加载到寄存器,R0,中。第2条指令将寄存器,R0,存入寄存器,R1,指向的地址单元。,变址寻址,变址寻址就是将基址寄存器的内容与指令中给出的位移量相加,形成操作数有效地址。变址寻址用于访问基址附近的存储单元,包括,基址加偏移,和,基址加索引寻址,。寄存器间接寻址是偏移量为0的基址加偏移寻址。,基址加偏移寻址,基址加索引寻址,前索引寻址方式:基址需加(或减)最大4,KB,的偏移来计算访问的地址。,例如:,LDR R0,R1,#4 ;R0,R1+4,后索引寻址方式:基址不带偏移作为传送的地址,传送后自动索引。,例如:,LDR R0,R1,#4 ;R0,R1,;R1,R1+4,指令指定一个基址寄存器,再指定另一个寄存器(索引),其值作为位移加到基址上形成存储器地址。,例如:,LDR R0,R1,R2 ;R0,R1+R2,多寄存器寻址,一次可以传送几个寄存器的值。允许一条指令传送16个寄存器的任何子集(或所有16个寄存器)。例如指令:,LDMIA R1,R0,R2,R5 ;R0,R1,;R2,R1+4,;R5,R1+8,由于传送的数据项总是32位的字,基址,R1,应该字对准。这条指令将,R1,指向的连续存储单元的内容送到寄存器,R0、R2,和,R5。,堆栈寻址,堆栈是按,“,先进后出,”,(,FILO,)的特定顺序进行存取的存储区。堆栈寻址是隐含的,它使用一个专门的寄存器(堆栈指针)指向一块存储器区域(堆栈)。栈指针所指定的存储单元就是堆栈的栈顶。,根据增长方向,堆栈可分为:,向上生长:即向高地址方向生长,称为递增堆栈(,Ascending Stack)。,向下生长:即向低地址方向生长,称为递减堆栈(,Descendin
展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 管理文书 > 施工组织


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!