嵌入式微处理器第二章_第1页
嵌入式微处理器第二章_第2页
嵌入式微处理器第二章_第3页
嵌入式微处理器第二章_第4页
嵌入式微处理器第二章_第5页
已阅读5页,还剩32页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

第2章嵌入式处理器体系结构

本章先概述当今流行的嵌入式处理器核的基本情况,进而以ARM核为例介绍嵌入式处理器的体系结构。使大家对ARM技术有个全面的了解和掌握,建立起以ARM技术为基础的嵌入式系统应用。本章主要内容ARM体系结构发展与技术特征

2.22.4工作状态与工作模式32.3嵌入式处理器内核简介

32.1ARM处理器寄存器组织2.5ARM处理器的异常中断

存储器格式及数据类型

2.62.8ARM流水线技术

32.7ARM处理器内核结构(重点)

2.1嵌入式处理器内核(1)

1.内核的含义内核是指处理器内部核心部件,通常指的是一种设计技术,并不是一种芯片,内核的设计一般追求高速度、低功耗、易于集成。2.典型内核

嵌入式领域体系结构全部是RISC指令集的处理器内核。尽管都毫不例外的采用RISC结构,但各自有各自的优势和应用领域,目前世界上有四大流派的嵌入式处理器内核生产厂家及嵌入式处理器内核(见下页图)。返回嵌入式处理器内核(2)ARM

ARM

公司

MIPS

MIPS

公司

Motorola

Freescale

公司

典型嵌入式处理器内核

高低速兼容

外设接口丰富

应用广泛

内置DSP

高速

32/64位

多核集成

低功耗

16/32位

主流产品

PowerPC68K/ColdFire

Motorola

公司

由ARM7的冯·诺依曼体系结构(程序存储器与数据存储器统一编址)到ARM9的哈佛体系结构(程序存储器与数据存储器分开独立编址)。存储器结构指令流水线7种不同的版本V1、V2、V3、V4、V5、V6和V7。2.2ARM体系结构的发展指令流水线由ARM7的3级到ARM10的6级。版本架构基本性能V1ARM1,基本的数据处理指令(无乘法)、字节、半字和字的Load/Store指令、转移指令,寻址空间64MB。V2ARM2/ARM3,增加乘法和乘加指令、支持协处理器操作指令、快速中断模式、SWP/SWPB的最基本存储器与寄存器交换指令V3把寻址空间增至32位(4GB),增加了当前程序状态寄存器CPSR和程序状态保存寄存器SPSR以便于异常处理。增加了中止和未定义2种处理器模式.V4引进了16位的Thumb指令集,ARM7、ARM9和StrongARM都采用了该版结构V5ARM10和XScale都采用该版架构,新增指令有带有链接和交换的转移BLX指令、计数前导零计数CLZ指令、BRK中断指令、增加了信号处理指令(V5TE版)。V6包括100%与以前的体系兼容、SIMD媒体扩展,使媒体处理速度快1.75倍、改进了的内存管理,使系统性能提高30%(2001年)V7更高性能、功耗效率和代码密度的Thumb®-2技术(2005年),Cortex-A8TM处理器采用的就是V7版的结构返回ARM体系结构的技术特征(1)

单周期操作

ARM指令系统中的指令只需要执行简单的和基本的操作,因此其执行过程在一个机器周期内完成。

采用加载/存储指令结构

存储器访问指令的执行时间长,因此只采用了加载和存储两种指令对存储器进行读和写的操作,面向运算部件的操作都经过加载指令和存储指令,从存储器取出后预先存放到寄存器对内,以加快执行速度。ARM体系结构的技术特征(2)固定的32位长度指令

指令格式固定为32位长度,使指令译码结构简单,效率提高。

3地址指令格式

采用三地址指令格式、较多寄存器和对称的指令格式便于生成优化代码,降低编译开销。

指令流水线技术

ARM采用多级流水线技术,以提高指令执行的效率。

1.ARM处理器工作状态

(1)ARM状态:ARM工作于32位指令状态(2)Thumb状态:ARM执行16位的Thumb指令的状态2.ARM处理器工作模式共7种:

用户模式、快速中断模式、外部中断模式、管理模式、中止模式、未定义指令模式以及系统模式详见附表。2.3ARM工作状态与工作模式工作模式功能说明可访问的寄存器CPSR[M4:M0]用户模式User程序正常执行工作模式PC,R14~R0,CPSR10000快速中断模式FIQ处理高速中断,用于高速数据传输或通道处理PC,R14_fiq~R8_fiq,R7~R0,CPSR,SPSR_fiq10001外部中断模式IRQ用于普通中断处理PC,R14_irq~R13_irq,R12~R0,CPSR,SPSR_irq10010管理模式SVC操作系统的保护模式,处理软中断SWIPC,R14_svc~R13_svc,R12~R0,CPSR,SPSR_svc10011中止模式ABT处理存储器故障,实现虚拟存储器和存储器保护PC,R14_abt~R13_abt,R12~R0,CPSR,SPSR_abt10111未定义指令模式UND处理未定义的指令陷井,用于支持硬件协处理器仿真PC,R14_und~R13_und,R12~R0,CPSR,SPSR_und11011系统模式SYS运行特权级的操作系统任务PC,R14~R0,CPSR11111返回2.4ARM处理器寄存器组织工作于ARM状态下,在物理分配上,寄存器被安排成部分重叠的组,每种处理器工作模式使用不同的寄存器,不同模式下寄存器组如图所示。由图中得出:

ARM处理器共有37个寄存器,包括31个通用寄存器(含PC)和6个状态寄存器。共同点是,一无论何种模式,R15均作为PC使用;二是CPSR为当前程序状态寄存器;三是R7~R0为公用的通用寄存器。不同之处在于高端7个通用寄存器和状态寄存器在不同模式下不同。

所有通用寄存器均为32位结构。

返回Thumb状态下的寄存器组织

返回模式寄存器用户模式系统模式管理模式中止模式未定义模式外部中断模式快速中断模式通用寄存器R0R1R2R3R4R5R6R7R13(SP)R13_svcR13_abtR13_undR13_irqR13_fiqR14(LR)R14_svcR14_abtR14_undR14_irqR14_fiq程序计数器R15(PC)状态寄存器CPSR无SPSR_svcSPSR_abtSPSR_undSPSR_irqSPSR_fiq状态寄存器CPSR

返回

313029282726……876543210NZCVQ保留IFTM4M3M2M1M0模式选择(表2.2)模式切换1=Thumb模式0=ARM模式F=1禁止快速中断F=0允许快速中断快速中断禁止外部中断禁止I=1禁止外部中断I=0允许外部中断增强DSP指令溢出Q=1DSP指令溢出Q=0

DSP指令无溢出溢出标志进借位标志全0标志符号标志1有效2.5ARM处理器的异常中断

异常(Exceptions)是由于内部或外部事件引起的请求,使处理器去作相应处理的事件。有7类:异常类型优先级别工作模式异常向量地址说明高端低端复位RESET1管理模式0XFFFF00000X00000000当RESET复位引脚有效(低电平)时进入该异常未定义的指令UND6未定义指令中止模式0XFFFF00040X00000004当前指令未定义时产生指令异常。可利用它模拟协处理器操作。软件中断SWI6管理模式0XFFFF00080X00000008用户定义的中断指令,可用于用户模式下的程序调用特权操作。指令预取中止PABT5中止模式0XFFFF000C0X0000000C当预取指令地址不存在时或该地址不允许当前指令访问时执行指令产生的异常。数据访问中止DABT2中止模式0XFFFF00100X00000010当数据访问指令的目标地址不存在时或该地址不允许当前指令访问时执行指令产生的异常外部中断请求IRQ4外部中断模式0XFFFF00180X00000018有外部中断时发生异常快速中断请求FIQ3快速中断模式0XFFFF001C0X0000001C有快速中断请求时发生的异常优先级???返回异常的中断响应过程

返回1.保护状态标志将CPSR的值保存到将要执行的异常中断对应的各自SPSR中(保护目的,并不是传统的压入堆栈的方法)。2.设置工作模式并禁止中断(1)设工作模式(M4:M0的5个位)(2)禁止中断(I=1禁止IRQ中断,F=1禁止FIQ中断)3.保护断点地址将引起异常指令的下一条地址(断点地址)保存到新的异常工作模式的R14中。4.转入中断服务程序入口地址给程序计数器PC强制赋值,使转入由表2.3所示的向量地址,以便执行相应的处理程序。从异常处理程序中返回

1.恢复原来被保护的用户寄存器。2.将SPSR_mode寄存器值复制到CPSR中, 使得CPSR从相应的SPSR中恢复,以恢 复被中断的程序工作状态。3.根据异常类型将PC值恢复成断点地 址,以执行用户原来运行着的程序。4.清除CPSR中的中断(I=0和F=0),开 放外部中断和快速中断。返回异常中断返回的指令示例

返回异常返回指令以前状态ARM状态Thumb状态软中断指令SWIMOVSPC,R14_svcPC+4PC+2未定义指令UDEFMOVSPC,R14_undPC+4PC+2快速中断FIQSUBSPC,R14_fiq,#4PC+4PC+4外部中断IRQSUBSPC,R14_irq,#4PC+4PC+4预取中止PABTSUBSPC,R14_abt,#4PC+4PC+4数据中止DABTSUBSPC,R14_abt,#8PC+8PC+82.6存储器格式及数据类型(1)

两种数据存储格式1.小端模式(Little-endian) 低字节数据放低地址。2.大端模式(Big-endian) 高字节数据放低地址。数据31………2423………1615………87………0模式0x1234567812345678小端模式78563412大端模式返回存储器格式及数据类型(2)数据类型ARM支持8位、16位和32位三种数据类型。如:0x6b0x128c0x12345678其中每一种又支持有符号数和无符号数,因此认为共有6种数据类型。ARM还支持其它类型的数据,如浮点数的数据类型等。

2.7ARM指令流水线技术指令流水线是RISC结构的一切处理器共同的一个特点,ARM处理器也不例外,但不同的ARM核其流水线级数不同。例如:ARM7采用3级流水线结构;ARM9采用5级流水线结构;

ARM10采用6级流水线结构;为何要采用指令流水线技术?

返回指令流水线技术的优势假设某微处理器以5个步骤完成一个指令的执行过程时间片12345678910指令1取指译码取数执指回写指令2取指译码取数执指回写时间片12345678910指令1取指译码取数执指回写指令2取指译码取数执指回写指令3取指译码取数执指回写指令4取指译码取数执指回写指令5取指译码取数执指回写指令6取指译码取数执指回写无流水线有流水线返回因此采用指令流水线技术将大大提高微处理器的运行效率

ARM指令流水线级数介绍时间片12345678指令1取指译码执指指令2取指译码执指指令3取指译码执指指令4取指译码执指指令5取指译码执指指令6取指译码执

3级流水线(如ARM7)时间片123456789指令1取指译码执行缓冲回写指令2取指译码执行缓冲回写指令3取指译码执行缓冲回写指令4取指译码执行缓冲回写指令5取指译码执行缓冲回写5级流水线(如ARM9)采用冯·诺依曼体系结构(程序存储器与数据存储器统一编址)采用哈佛体系结构(程序存储器与数据存储器分开独立编址)

2.8ARM处理器内核ARM处理器核作为基本处理单元,根据发展需求还集成了与处理器核密切相关的功能模块,如Cache存储器和存储器管理MMU硬件,这些基于微处理器核并集成这些IP(IntelligenceProperty)核的标准配置的ARM核都具有基本处理器的配置,这些内核称为处理器核。

RM处理器核当前有6个系列产品如ARM7、ARM9、ARM9E、ARM10E、SecurCore

以及ARM11系列。另外还有IntelXScale

微体系结构和StrongARM结构。

返回ARM处理器内核结构

介绍两种ARM内核结构:

ARM7TDMI和ARM920T

ARM7TDMI是ARM公司最早为业界普遍认可且得到了最为广泛应用的处理器核,特别是在手机和PDA中,随着ARM技术的发展,它已是目前基本的ARM核。对存储器的访问采用单一32位数据总线传送指令和数据即冯·诺依曼体系结构。

ARM920T是在ARM9TDMI内核基础上增加了MMU和Cache部件的通用微处理器内核,采用程序存储器与数据存储器完全独立编址的哈佛结构(Harvard)。

ARM核的命名规则及含义

ARM7TDMI:支持高密度16位的Thumb指令集;支持片上Debug(调试);支持增强型Multiplier,即64位乘法;支持嵌入式ICE观察硬件;ARM7TDMI的可综合(synthesizable)版本(软核)ARM7TDMI–S系列号ARM7TDMI内核结构

特点(1)采用V4T,支持64位乘法,半字、有符号字节存取(2)支持Thumb指令集(3)32×8DSP乘法器(4)32位寻址空间(4GB)(5)支持ICE(6)JTAG测试端口结构ARM7TDMI主处理器结构

返回ARM7TDMI功能框图

返回ARM7TDMI重要接口信号

(1)时钟和时钟控制类信号 MCLK:主时钟信号输入。

nWAIT:总线等待信号输入,低电平使总线处于等待状态。 ECLK:外部时钟信号输出,由ARM7TMDI向外部提供时钟。

nRESET:复位信号输入,低电平使处理器复位。(2)地址类信号 A[31:0]:32条地址线A31~A0

nRW:读写指示,nRW=0读操作,nRW=1写操作。 MAS[1:0]:总线宽度:00=字节01=半字10=字11=保留

nOPC:信息类型,0=操作码,1=操作数。

nTRANS:特权信息,0=用户级,1=特权级。 LOCK:总线封锁输出,1=总线封锁。 TBIT:工作状态,0=ARM状态,1=Thumb状态。返回ARM7TDMI重要接口信号续

返回(3)存储器请求信号

nMREQ:存储器请求信号,低电平有效。 SEQ:存储器总线周期选择类型。

nMERQ与SEQ编码决定当前总线周期的类型如表2.4所示。(4)数据时序信号 D[31:0]:双向32位数据总线。 DIN[31:0]:32位数据总线输入。 DOUT[31:0]:32位数据总线输出。ARM7TDMI重要接口信号续

返回(3)存储器请求信号

nMREQ:存储器请求信号,低电平有效。 SEQ:存储器总线周期选择类型。

nMERQ与SEQ编码决定当前总线周期的类型如表2.4所示。(4)数据时序信号 D[31:0]:双向32位数据总线。 DIN[31:0]:32位数据总线输入。 DOUT[31:0]:32位数据总线输出。表2.4总线操作类型nMREQSEQ总线周期类型00N周期(非顺序周期)01S周期(顺序周期)10I周期(内部周期)11C周期(协处理器寄存器传送周期)总线周期类型

返回(1)非顺序周期(N周期) N周期是最简单的总线周期,本周期地址与

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论