天大嵌入式系统课件-2-嵌入式处理器概要_第1页
天大嵌入式系统课件-2-嵌入式处理器概要_第2页
天大嵌入式系统课件-2-嵌入式处理器概要_第3页
天大嵌入式系统课件-2-嵌入式处理器概要_第4页
天大嵌入式系统课件-2-嵌入式处理器概要_第5页
已阅读5页,还剩97页未读 继续免费阅读

下载本文档

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

文档简介

1、2022/10/111嵌入式系统设计 天津大学计算机学院 车明 第二章: 嵌入式处理器2022/10/101嵌入式系统设计 天津大2022/10/112计算机体系结构回顾2022/10/102计算机体系结构回顾2022/10/1132022/10/1032022/10/114计算机指令集回顾2022/10/104计算机指令集回顾2022/10/1152022/10/1052022/10/1162.1 嵌入式处理器介绍2.1.1 MPU嵌入式系统中直接利用 MPU(接近通用计算机 CPU)的情况已经很少8位 MPU 已经淘汰16、32位 MPU 仍有少量应用 16位 MPU 的例子:INTEL

2、80C186EC 32位 MPU 的例子:INTEL 80386EXARM 是32位 MPU,但不作为独立芯片使用2022/10/1062.1 嵌入式处理器介绍2022/10/1172.1.2 MCU嵌入式系统中大量利用MCU作为其核心部件8位 MCU 在微、小型应用中仍有很大市场,MCS-51系列的单片机是低端嵌入式系统中用得最多的微处理器。16位 MCU 成为鸡肋32位 MCU 在中、大型应用中较多,但目前也面临更新嵌入式技术(如SOC)的替代, ARM 系列是应用较广泛的32位微处理器,实际上该系列的MCU芯片很多,但都是以 ARM 微内核为核心的。2022/10/1072.1.2 MC

3、U2022/10/1181) 8位MCU: MCS-51系列8位MCU的典型是MCS-51系列单片机哈佛结构、CISC指令MCS-51系列是INTEL公司的产品,包括51、52两个子系列。 51子系列主要型号有8031、8051、8751等,52子系列比51子系列增加了少量内部资源。许多公司购买了MCS-51的内核,并增加了片内资源,生产出各具特色的与MCS-51兼容的单片机产品。例如ATMEL公司的AT89C系列,主要型号有AT89C51、AT89C52、AT89C2051、T89C51RD2等。这些产品比INTEL的更实用。2022/10/1081) 8位MCU: MCS-51系列2022

4、/10/119MCS-51系列芯片举例型 号 片内ROM片内RAMI/O口线封 装8031无128B+SFR84DIP 40脚8051掩膜4KB128B+SFR84DIP 40脚8751EPROM 4KB128B+SFR84DIP 40脚AT89C2051FLASH 2KB128B+SFR15DIP 20脚SOIC 20脚AT89C51FLASH 4KB128B+SFR84DIP 40脚PLCC 44脚AT89C52FLASH 8KB256B+SFR84DIP 40脚PLCC 44脚T89C51RD2FLASH 64KBEEPROM 2KB1024B+SFR86DIP 40脚PLCC 68脚2

5、022/10/109MCS-51系列芯片举例型 号 片内2022/10/1110本课程实验用的单片机P89LV51RD2 的主要性能和特点 INTEL 8052 CPU 内核 内部程序存储器ROM :64KB( FLASH ) 内部数据存储器RAM:256B + 1024B RAM 寄存器区:有4个寄存器区,每个区有R0-R7八个工作寄存器 8位并行输入输出端口:P0、P1、P2、P3 定时/计数器:2个16位的定时/计数器 串型口:全双工的端口(RXD:接收端,TXD发送端) 硬件SPI:支持程序下载 中断系统:设有5个中断源 堆栈:设在内RAM单元中,通过堆栈指针SP确定堆栈位置 指令系统

6、:111条指令。按功能分为数据传送、算术运算、逻辑运算、控制转移和布尔操作5大类。2022/10/1010本课程实验用的单片机P89LV52022/10/1111MCS-51 单片机内部方框图时钟电路64KROM程序存储器1024BRAM数据存储器2X16位定时/计数器CPU处理器64KB总线扩展控制器可编程I/O端口P0-3可编程串行口2022/10/1011MCS-51 单片机内部方框图时钟电2022/10/1112VCCRSTXTAL1 P0口XTAL2/EA/PSENALE P1口P3口RXDTXD/INT0/INT1 P2口T0T1/WR/RDGND87C51EPROM型AT89C5

7、1ATMELFLASH型MCS-51单片机外型图(DIP封装) MCS-51单片机的逻辑符号图2022/10/1012VCCAT89C51MCS-51单片2022/10/1113程序存储器六个特殊的单元在程序存储器中,有六个单元是具有特定功能。编程者是不能随便使用的。0000H单元:上电时,程序计数器PC所指向的单元0003H单元:外部中断/INT0的入口地址;000BH单元:定时器T0的溢出中断入口地址;0013H单元:外部中断/INT1的入口地址;001BH单元:定时器T1的溢出中断入口地址;0023H单元:串行口接收、传送的中断入口地址。2022/10/1013程序存储器六个特殊的单元在

8、程序存储器2022/10/1114 数据存储器示意图 特殊功能寄存器SFR通用数据存储器80H7FH00HFFH独立存储区 数据存储区 256B个字节 1024B个字节数据存储器1024B0000H03FFH1,访问独立RAM的20H单元MOV A,20H2,访问全部RAM的20H单元MOV R0,#20hMOVX A,R03,尽管独立与全部存储区 的00H-FFH地址相重叠,但由于指令的不同可以 保证不会发生地址混乱。00FFH0100H2022/10/1014 数据存储器示2022/10/1115片内RAM低 128B 字节功能分配图 位寻址区3区2区1区0区通用区08H07H00H7FH

9、30H2FH20H1FH18H17H10H0FH工作寄存器区:4个每个区中有R0-R7八个工作寄存器位寻址区16个单元 20H-2FH,共有128 可寻址位个位。位地址:00H-7FH注意:位地址与字节地址的区别通用的RAM区地址:30H-7FH2022/10/1015片内RAM低 128B 字节功能分配2022/10/1116片内 RAM(20H-2FH)中的位寻址区结构图7F7E7D7C7B7A797877767574737271706F6E6D6C6B6A696867666564636261605F5E5D5C5B5A595857565554535251504F4E4D4C4B4A494

10、847464544434241403F3E3D3C3B3A393837262524232221202F2E2D2C2B2A292827262524232221201F1E1D1C1B1A191817161514131211100F0E0D0C0B0A090807060504030201002FH20H字节地址2022/10/1016片内 RAM(20H-2FH)中的位2022/10/1117特殊功能寄存器SFR特殊功能寄存器SFR (Special Function Register) 特殊用途寄存器的集合。用来设定单片机内部各个部件的工作方式,存放相关部件的状态,定时器初值,并行端口的锁存器

11、等等。 尽管特殊功能寄存器与RAM在同一个单元中,但不能作为普通的RAM存储单元来使用。只有在编程中根据需要,进行一些特定功能的设定,或者是从中查寻相关部件的状态时,才能进行读、写操作。SFR高128B低128B0FFH80H7FH00H特殊功能寄存器SFR在片内RAM中的位置2022/10/1017特殊功能寄存器SFR特殊功能寄存器S2022/10/1118标识符名 称地 址ACCBPSWSPDPTRP0P1P2P3IPIETMODTCON累加器B寄存器程序状态字堆栈指针数据指针(包括DPH,DPL)口0口1口2口3中断优先级控制寄存器中断允许控制寄存器定时/计数器方式控制寄存器定时/计数器

12、控制寄存器0E0H0F0H0D0H81H83H,82H80H90H0A0H0B0H0B8H0A8H89H88H特殊功能寄存器 SFR(表一)2022/10/1018标识符名 称地 址AC2022/10/1119特殊功能寄存器 SFR(表二)标识符名 称地 址TH0TL0TH1TL1SCONSBUFPCON定时/计数器0初值寄存器高8位定时/计数器0初值寄存器低8位定时/计数器1初值寄存器高8位定时/计数器1初值寄存器低8位串行口控制寄存器串行口数据缓冲器(接收,发送)电源控制寄存器8CH8AH8DH8BH98H99H97H注:表中红色的单元为可按位寻址的字节2022/10/1019特殊功能寄存

13、器 SFR(表二)标识2022/10/1120端口举例:P3 通用I/O端口、多用途端口在多用途情况下,P3口分别作为串行口、外中断输入、外部计数输入和系统扩展时使用的WR和RD信号的端口。在这种情况下,锁存器Q端为“1”电平以保证与门是打开的。在通用I/O模式下,“替代输出功能”端为“1”电平,以保证与门打开。D Q 锁存器CL /QP3.x引脚替代输出功能读锁存器读引脚内部总线写锁存器MUX (数据=0)Vcc2022/10/1020端口举例:P3 通用I/O端口、多用2022/10/11212) 32位MCU: ARM系列32位MCU的典型是基于AMR的单片机ARM(Advanced R

14、ISC Machines)系列微处理器,采用的都是由 ARM 公司提供的ARM IP。ARM 公司本身不生产芯片,只转让设计许可,由合作公司生产各具特色的芯片。ARM 使用 RISC指令,支持 ARM 指令集和Thumb 指令集 ARM指令为32位长度 Thumb指令为16位长度,是ARM指令集的功能子集,但节省40以上的存储空间。2022/10/10212) 32位MCU: ARM系列2022/10/1122ARM处理器系列 ARM7 ARM9 ARM9E ARM10E ARM11 SecurCore (专为安全需要而设计) OptimoDE (最新的DSP核) Inter Strong A

15、RM (融合了Inter的技术) Inter Xscale (Intel曾主推的一款ARM)2022/10/1022ARM处理器系列 ARM7ARM CPU ISA的发展 ARM CPU 的指令集体系 ISA 发展到现在,先后有 V1, V2, V3, V4, V4T, V5TE, V5TEJ, V6, V7等主要的版本。ARM V1V3版本的处理器未得到大量应用,ARM处理器的大量泛应用是从其V4版本开始的到目前V7是最新的版本,它也被称作CoreTex系列。 ARM CPU ISA的发展 ARM CPU 的指令集体系 ARM处理器的分类结构体系版本(Architecture)ARM v4T

16、ARM v5TE ARM v6ARM Cortex (v7)Processor FamilyARM7 ARM9ARM10ARM11ARM CortexARM处理器的分类结构体系版本(Architecture)PARM FamilyARM7 FamilyARM9 FamilyARM10 FamilyARM11 Family150DMIPS300 DMIPS500 DMIPS1000 DMIPSARM Cortex FamilyARM720TARM1136J ARM1176JZARM1026EARM920T/ARM922T ARM926EJCortex AApplication Processor

17、ARM7TDMIARM1156T2ARM1026EARM946ECortex REmbedded RT ControllerARM7TDMIARM966E ARM968ECortex MMicro-controllerARM ArchitectureARM FamilyARM7 FamilyARM9 Fa按应用特征分类应用处理器 Application Processor实时控制处理器 Real-time Controller微控制器 Micro-controller特征:MMU, Cache 最快频率、最高性能、合理功耗 特征:MPU, Cache 实时响应、合理性能、较低功耗 特征:no

18、sub-memory system 一般性能、最低成本、极低功耗 按应用特征分类特征:MMU, Cache 特征:MPARM11 芯片ARM11300-700+ MHzSIMD 指令扩展支持更丰富的多媒体应用FOMA N902iFirst ARM11 based phoneOMAP2420i.MX31/i.MX31LARM11 芯片ARM11FOMA N902iOMAP242高性能的ARM嵌入式处理器最快的处理器提供超过2000 DMIPS 的性能运行于 1GHz 频率 (90nm or 65nm 制造工艺)功耗小于 300mWARM Cortex A8 Application Process

19、or高性能的ARM嵌入式处理器最快的处理器提供超过2000 DMCortex-M3 实现 $1 ARM芯片ARM Cortex ArchitectureThumb-2 ISA3 Stage PipelineLuminary Micro 的 Stellaris 系列 MCU 产品售价仅1美元ARM Cortex-M3 微控制器内核,专门针对MCU应用领域而设计,突出低成本、低功耗和高效率。Cortex-M3 实现 $1 ARM芯片ARM CorteARM7TDMI指令流水线为增加处理器指令流的速度,ARM7 系列使用3级流水线。允许多个操作同时处理,而非顺序执行。 PC指向正被取指的指令,而非正

20、在执行的指令。FetchDecodeExecute从存储器中读取指令解码指令中用到的寄存器寄存器读(从寄存器Bank)移位及ALU操作寄存器写(到寄存器Bank )PCPCPC - 4PC-2PC - 8PC - 4ARMThumbARM7TDMI指令流水线为增加处理器指令流的速度,ARM7ARM9TDMI指令流水线InstructionFetch Shift + ALUMemoryAccessRegWriteRegReadRegDecodeFETCHDECODEEXECUTEMEMORYWRITEARM9TDMIARM or ThumbInst DecodeReg SelectRegRead

21、ShiftALURegWriteThumbARMdecompressARM decodeInstructionFetchFETCHDECODEEXECUTEARM7TDMIARM9TDMI指令流水线Instruction Shift 理想的3级流水线(ARM7TDMI:无访存操作) 理想的3级流水线(ARM7TDMI:无访ARM的LDR流水线 ARM的LDR流水线 数据宽度(类型) 数据类型 字节型数据(Byte):数据宽度为8bits 半字数据类型(HalfWord):数据宽度为16bits,存取式必须以2字节对齐的方式 字数据类型(Word):数据宽度为32bits,存取式必须以4字节对齐

22、的方式 数据宽度(类型) 数据类型 工作状态和工作模式 处理器有两种工作状态:ARM:32位,执行字对准的ARM指令Thumb:16位,执行半字对准的Thumb指令ARM和Thumb之间状态的切换不影响处理器的模式或寄存器的内容工作状态和工作模式 处理器有两种工作状态:工作状态和工作模式 进入Thumb状态:执行BX指令,并设置操作数寄存器的状态(位0)为1。在Thumb状态进入异常(IRQ, FIQ, UNDEF, ABORT,SWI etc.),当异常处理返回时自动转换到Thumb状态进入ARM状态:执行BX指令,并设置操作数寄存器的状态(位0)为0。进入异常时,将PC放入异常模式链接寄存

23、器中,从异常向量地址开始执行也可进入ARM状态工作状态和工作模式 进入Thumb状态:工作状态和工作模式 Thumb-2:增加了混合模式能力定义了一个新的32-bit指令集能在传统的 16bit指令运行的Thumb状态下同时运行。这样能在一个系统中更好地平衡ARM和Thumb代码的能力,使系统能更好地利用ARM级别的性能和Thumb代码的密度的优势。 工作状态和工作模式 Thumb-2:增加了混合模式能力工作状态和工作模式 处理器模式说明用户模式(User)正常程序执行模式,用于应用程序异常模式(FIQ)快速中断处理,用于支持高速数据传送或通道处理异常模式(IRQ)用于一般中断处理异常模式(S

24、upervisor)特权模式,用于系统初始化或操作系统功能异常模式(Abort)存储器保护异常处理异常模式(Undefined)未定义指令异常处理系统模式(System)运行特权操作系统任务(ARM V4以上版本)工作状态和工作模式 处理器模式说明用户模式(User)正常程工作状态和工作模式 User模式程序不能访问有些受保护的资源只能通过异常的形式来改变CPU的当前运行模式特权模式可以存取系统中的任何资源System模式与User模式的运行环境一样但是它可以不受任何限制的访问任何资源该模式主要用于运行系统中的一些特权任务FIQ模式IRQ模式Supervisor模式Abort模式Undefin

25、ed模式异常模式:主要是在外部中断或者程序执行非法操作时会触发工作状态和工作模式 User模式程序不能访问有些受保护的资源寄存器 ARM寄存器概述ARM处理器有37个寄存器 31个通用寄存器:程序计数器、堆栈及其他通用寄存器 6个状态寄存器这些寄存器不能同时看到不同的处理器状态和工作模式确定哪些寄存器是对编程者是可见的寄存器 ARM寄存器概述ARM处理器有37个寄存器ARM微处理器: ARM State寄存器ARM微处理器: ARM State寄存器ARM微处理器: Thumb State寄存器ARM微处理器: Thumb State寄存器ARM State 与Thumb State寄存器关系

26、ARM State 与Thumb State寄存器关系处理器模式与寄存器的关系异常发生时伴随的模式切换意味着, 被调用的异常处理程序会访问: 它自己的堆栈指针 (SP_)它自己的链接寄存器 (LR_)它自己的备份程序状态寄存器 (SPSR_)如果是FIQ异常处理, 5个其它的通用状态寄存器 (r8_FIQ to r12_FIQ)其它寄存器和原来模式下的寄存器是相同的处理器模式与寄存器的关系异常发生时伴随的模式切换意味着, 被不同模式下堆栈指针的初始化各模式分组的堆栈指针寄存器是需要在系统初始化(即系统复位)时被设置好的,这样才能在进入不同的模式时自动切换使用不同的堆栈空间。初始化时需注意堆栈指

27、针必须保持8字节对齐。 ;中断模式堆栈的设置MSR CPSR_c, #0 x000000D2 ;切换到中断模式LDR R1, = IrqStackMOV SP, R1 ;设置中断模式堆栈指针;快速中断模式堆栈的设置MSR CPSR_c, #0 x000000D1 ;切换到快速中断模式LDR R1, = FiqStackMOV SP, R1 ;设置快速中断模式堆栈指针;中止模式堆栈的设置.不同模式下堆栈指针的初始化各模式分组的堆栈指针寄存器是需要在寄存器 通用寄存器通用寄存器是R0-R15的寄存器,分为三类 没有对应影子寄存器的寄存器R0-R7 有对应影子寄存器的寄存器R8-R14 程序计数器R

28、15 (或者PC) 影子寄存器是指该寄存器在不同的模式下对应的物理寄存器寄存器 通用寄存器通用寄存器是R0-R15的寄存器,分为三寄存器 通用寄存器R0-R7所有模式下,R0-R7所对应的物理寄存器都是相同的 这八个寄存器是真正意义上的通用寄存器,ARM体系结构中对它们没有作任何特殊的假设,它们的功能都是等同的。在中断或者异常处理程序中一般都需要对这几个寄存器进行保存。寄存器 通用寄存器R0-R7寄存器 通用寄存器R8-R14访问的物理寄存器取决于当前的处理器模式,若要访问特定的物理寄存器而不依赖当前的处理器模式,则要使用规定的名字。 R8-R12各有两组物理寄存器:一组为FIQ模式,另一组是

29、除FIQ以外的其他模式。R13-R14各有6个分组的物理寄存器,一个用于用户模式和系统模式,其他5个分别用于5种异常模式。R13(也被称为SP指针)被用作栈指针,通常在系统初始化时需要对所有模式下的SP指针赋值,当CPU在不同的模式时栈指针会被自动切换成相应模式下的值。R14有两个用途,一是在调用子程序时用于保存调用返回地址,二是在发生异常时用于保存异常返回地址。寄存器 通用寄存器R8-R14寄存器 通用寄存器R15用作程序计数器(PC),可以被读写ARM state: bits 1:0为0,bits31:2即为 PC. THUMB state:bit 0为0,bits31:1即为 PC寄存器

30、 通用寄存器R15寄存器 程序状态寄存器CPSR(当前程序状态寄存器)在所有的模式下都是可以读写的,它主要包含:条件标志中断使能标志当前处理器的模式其它的一些状态和控制标志寄存器 程序状态寄存器CPSR(当前程序状态寄存器)在所有寄存器 程序状态寄存器置0表示执行32bit的ARM指令置1表示执行16bit的Thumb指令 NegativeZeroCarryOverflowIRQ中断的响应:置1:禁止响应置0:允许响应FIQ中断的响应:置1:禁止响应置0:允许响应条件标志模式控制位ARM/Thumb控制标志中断标志寄存器 程序状态寄存器置0表示执行32bit的ARM指令N寄存器 程序状态寄存器

31、模式控制位M0-M4M4:0模式Thumb状态可见寄存器ARM状态可见寄存器10000UserR7R0LR、SPPC、CPSRR14R0PC、CPSR10001FIQR7R0LR_fiq、SP_fiqPC、CPSR、SPSR_fiqR7R0R14_fiqR8_fiqPC、CPSR、SPSR_fiq10010IRQR7R0LR_irq、SP_irqPC、CPSR、SPSR_irqR12R0R14_irqR13_irqPC、CPSR、SPSR_irq10011SupervisorR7R0LR_svc,SP_svcPC、CPSR、SPSR_svcR12R0R14_svc、R13_svcPC、CPSR

32、、SPSR_svc10111AbortR7R0LR_abt、SP_abtPC、CPSR、SPSR_abtR12R0R14_abt、R13_abrPC、CPSR、SPSR_abt11011UndefinedR7R0LR_und、SP_undPC、CPSR、SPSR_undR12R0R14_und、R13_undPC、CPSR、SPSR_und11111SystemR7R0LR、SPPC、CPSRR14R0PC、CPSR寄存器 程序状态寄存器模式控制位M0-M4M4:0模式寄存器 程序状态寄存器 条件标志位N = ALU产生负数结果Z = ALU产生结果是0C = ALU操作产生进位或借位V =

33、ALU结果溢出溢出标志 Q标志只在5TE架构及以后被定义表示饱和是否产生J位只在5TEJ架构及以后被定义J = 1: 处理器处于Jazelle态中断关闭位I = 1: 关闭IRQF = 1: 关闭FIQT位T = 0: 处理器处于ARM态T = 1: 处理器处于Thumb态在4T架构被引入模式位指定了处理器当前模式fsxc2731N Z C V Q2867I F T mode1623 15 54024 U n d e f i n e dJV6新引入的GE3:0 被一些SIMD指令使用 E 位控制读取/存储的大小端A 位关闭不准确的数据异常中断IT abcde 用于Thumb2指令组的条件执行1

34、089 19 GE3:0 E A IT cond_abcde寄存器 程序状态寄存器 条件标志位T位fsxc2731N ARM寄存器的分配和使用 寄存器的使用,在很大程度上与编译器有关系,不同的编译器对于不同体系结构处理器的寄存器的使用有其特定的规则。 (比如函数参数传递和返回值)寄存器编号可选寄存器名字ATPCS寄存器用法R0r3A1a4参数寄存器,在调用函数时,用来存放前4个函数参数和返回值。在函数内,如果把这些寄存器作为临时过渡寄存器来使用,则会破坏它们的值R4r8V1v5通用变量寄存器,调用函数必须保存被调用函数存放在这些寄存器中的变量值r9v6 sb通用变量寄存器。在与读/写位置无关的

35、编译情况下,r9中保存静态基本地址,这个地址是读/写数据的地址;否则必须保存这个寄存器中被调用函数的变量值r10v7 sl通用变量寄存器。在使用堆栈边界检查的编译情况下,r10保存堆栈边界的地址;否则必须保存这个寄存器中被调用函数的变量值r11v8 fp通用变量寄存器。在使用结构指针的编译情况下,必须保存这个寄存器中调用函数的变量值r12Ip通用临时过渡寄存器,函数调用时会破坏其中的值r13sp堆栈指针,指向满递减堆栈r14lr连接寄存器,在函数调用时用以保存返回地址r15pc程序计数器ARM寄存器的分配和使用 寄存器的使用,在很大程度上与编译器中断与异常-概述当异常发生时CPU自动到指定的向

36、量地址读取指令并且执行,即ARM的向量地址处存放的是一条指令(一般是一条跳转指令)在X86上,当有异常发生时CPU是到指定的向量地址读取要执行的程序的地址中断与异常-概述当异常发生时CPU自动到指定的向量地址读取指2.3.4中断与异常-概述ARM CPU将引起异常的类型分为7种异常类型模式优先级一般向量地址高向量地址ResetSupervisor10 x000000000 xFFFF0000Undefined InstructionUndefined60 x000000040 xFFFF0004Software InterruptSupervisor60 x000000080 xFFFF000

37、8Prefetch AbortAbort50 x0000000C0 xFFFF000CData AbortAbort20 x000000100 xFFFF0010IRQ(interrupt)IRQ40 x000000180 xFFFF0018FIQ(fast interrupt)FIQ30 x0000001C0 xFFFF001CFIQIRQ(Reserved)Data AbortPrefetch AbortSoftware InterruptUndefined InstructionReset0 x1C0 x180 x140 x100 x0C0 x080 x040 x002.3.4中断与异常

38、-概述ARM CPU将引起异常的类型分为异常的优先级有些异常会同时发生异常被赋以了优先级,据此决定被响应的顺序:ResetData AbortFIQIRQPrefetch AbortSWIUndefined instruction在所有异常的入口,IRQ 中断被屏蔽 只有重新被使能才可触发内核响应 (如:中断嵌套处理)在 FIQs 和 Reset 异常的入口,FIQ中断被屏蔽高优先级低优先级异常的优先级有些异常会同时发生Reset在所有异常的入口,I中断与异常-异常响应过程ARM处理器响应异常的过程如下: 拷贝CPSR寄存器的内容至对应模式下的 SPSR_寄存器中;将返回地址保存到对应模式下的

39、LR_寄存器中;对 CPSR 寄存器的一些控制位进行设置:无论发生异常时处理器处于Thumb 状态还是ARM状态,响应异常后处理器都会切换到 ARM 状态,即CPSR5=0;将模式位 CPSR4:0设置为被响应异常的模式编码;设置中断屏蔽位:如果异常模式为Reset 或 FIQ 则 CPSR6=1 /*禁止快速中断*/ CPSR7=1 /*禁止正常中断*/将程序计数器(PC)设置为异常向量的地址中断与异常-异常响应过程ARM处理器响应异常的过程如下: ARM CPU进入异常模式的过程示例ARM CPU进入异常模式的过程示例异常返回过程从异常处理程序返回时(执行特定的异常返回指令,需注意对于复位

40、异常不需要返回),处理器执行下列动作:将SPSR_中的内容恢复到CPSR中;将PC设置为LR_ 的值同异常响应过程一样,上述过程只能在ARM状态下完成。 异常返回过程从异常处理程序返回时(执行特定的异常返回指令,需Reset vectorPrefetch abort vectorData abort vectorReservedSWI vectorUndef vectorIRQ vectorB IRQ_HandlerMOV PC, #0 x30000000LDR PC, PC, #+0 xFF0 32 M 4 K0 x10000 x20000000 xFFC0 x300000000 xFFFF

41、FFFF0 x1C0 x180 x140 x100 xC0 x80 x40 x0 未定义指令异常处理被放置到了32MB 跳转范围外Undef Handler0 x30008000IRQ 处理程序在32MB的跳转范围内IRQ HandlerLiteral pool 包含了未定义指令异常处理的地址0 x30008000软中断异常处理被放置在合适的地址上SWI HandlerFIQ vectorFIQ 处理紧跟着异常向量表FIQ Handler异常向量表的内容Reset vectorPrefetch abort vec中断响应过程ARM CPU Core能响应两级的外部中断 FIQ 和 IRQ,这提

42、供了非常基本的优先级分级功能。FIQ 中断比IRQ 中断的优先级更高,主要体现在以下几个方面:当多个中断发生时,FIQ首先被处理在 响应 FIQ 中断时屏蔽了 IRQ 中断 (和 FIQ中断),直到FIQ中断处理程序完成,IRQ中断才会被处理 中断响应过程ARM CPU Core能响应两级的外部中断 中断响应过程以下特性能够让CPU Core能够尽快地响应FIQ中断:FIQ 向量在异常向量表的最后,这样使FIQ处理程序可以直接从FIQ向量处开始,省去了跳转的时间开销;FIQ 模式下有五个额外的寄存器 (r8_FIQ to r12_FIQ),对于这些寄存器在进入和推迟FIQ时无须保存和恢复,节省

43、了时间;FIQ 中断源可以有多个, 但是为了最好的系统性能应该避免FIQ中断的嵌套,应该避免在 FIQ 中断处理程序内又有另一个异常发生。 中断响应过程以下特性能够让CPU Core能够尽快地响应FI内存和I/O ARM 的寻址空间是线性的地址空间,为232=4G Bytes 0 to 3 存储第一个word, bytes 4 to 7存储第二个word, ARM支持大端(Big-endian)和小端(Little-endian)的内存数据方式,可以通过硬件的方式设置端模式(不提供软件的方式)内存和I/O ARM 的寻址空间是线性的地址空间,为232=内存和I/O 大小端大端的数据存放格式低地

44、址高地址地址A地址A+1地址A+2地址A+3最高有效字节的地址就是该word的地址最高有效字节位于最低地址word a=0 x f6 73 4b cdf6734bcd内存和I/O 大小端大端的数据存放格式低地址高地址地址A内存和I/O 大小端小端的数据格式 低地址高地址地址A地址A+1地址A+2地址A+3最低有效字节的地址就是该word的地址最低有效字节位于最低地址word a=0 x f6 73 4b cdf6734bcd内存和I/O 大小端小端的数据格式 低地址高地址地址A地 CPU与I/O设备之间的接口信息数据信息状态信息控制信息数字量模拟量开关量连续几位二进制形式表示的数或字符。如键盘

45、输入的信息以及打印机、显示器输出的信息等时间上连续变化的量,如温度、压力、流量等只有两个状态的量,如阀门的合与断、电路的开与关等CPU与I/O设备之间的接口信息反映外设当前工作状态的信息READY信号:输入设备是否准备好BUSY信号:输出设备是否忙CPU向外部设备发送的控制命令信息读写控制信号时序控制信号中断信号片选信号其它操作信号数据、状态、控制信息都是通过CPU的数据总线传送,存在I/O接口的不同端口中:数据、状态、控制端口 CPU与I/O设备之间的接口信息数据信息状态信息 内存和I/O I/O端口编址方式I/O端口的编址方法,即I/O端口的地址安排方式存储器映射编址I/O映射编址I/O端

46、口的地址与内存地址统一编址,即I/O单元与内存单元在同一地址空间I/O端口与内存单元分开编址,即I/O单元与内存单元都有自己独立的地址空间 内存和I/O I/O端口编址方式I/O端口 内存和I/O I/O端口编址方式存储器映射编址I/O映射方式优点可采用丰富的内存操作指令访问I/O单元无需单独的I/O地址译码电路无需专用的I/O指令I/O单元不占用内存空间I/O程序易读缺点外设占用内存空间I/O程序不易读I/O操作指令仅有单一的传送指令,I/O接口需有地址译码电路举例ARM中,I/O端口与内存单元统一编址Intel 80X86系列,I/O端口与内存单元分开编址,I/O端口有自己独立的地址空间,

47、其大小为64KB 内存和I/O I/O端口编址方式存储器映射内存和I/O I/O端口编址方式ARM 的I/O端口都是内存映射的方式,即对I/O端口的访问与内存的访问的方式完全一样。通常将I/O所映射的存储系统标识为非高速缓存(uncachable)和非缓冲(unbufferable)。内存和I/O I/O端口编址方式ARM 的I/O端口都是2022/10/11713) IBM Power处理器系列20世纪70年代,IBM发明精简指令集RISC技术Power (Performance Optimization With Enhanced RISC ) 是IBM很多服务器和超级计算机的主处理器Po

48、wer系列包括Power1、2、3、4、4+、5、5+、6、7 和2013年发布的Power7+1997年,基于POWER2架构的“深蓝”计算机战胜国际象棋大师卡斯帕罗夫2000年POWER4芯片研制成功,是业界第一个双内核处理器2005年推出基于POWER架构的CELL BE处理器,被业界称作片上超级计算机,在一个芯片上有9个内核,计算能力惊人在全球排名前10位的超级计算机中,共有5台采用了Power架构,第一名是IBM的“蓝色基因 ”2022/10/10713) IBM Power处理器系列2022/10/1172CELL BE (Cell Broadband Engine )16B/cy

49、cle (2x)16B/cycleBICFlexIOTM MICDual XDRTM16B/cycleEIB (up to 96B/cycle)64-bit Power Architecture with VMX PPESPELSSXUSPUMFCPXUL1PPU16B/cycleL232B/cycleLSSXUSPUMFCLSSXUSPUMFCLSSXUSPUMFCLSSXUSPUMFCLSSXUSPUMFCLSSXUSPUMFCLSSXUSPUMFC2022/10/1072CELL BE (Cell Broa2022/10/1173PowerPC1993年IBM推出PowerPC,它源自于

50、POWER体系结构,但与POWER不同,PowerPC是开放的,它定义了一个指令集(ISA),并且允许任何人来设计和制造与PowerPC兼容的处理器,为了支持PowerPC而开发的软件模块的源代码都可以自由使用。1994年IBM发布首个基于Power架构的嵌入式控制器 PowerPC 403GA 1998年IBM公布了首个基于PowerPC的嵌入式系统芯片SoC内核 PowerPC 405(IP)2002年IBM推出嵌入式PowerPC 440GP和PowerPC 440GX处理器,440GX拥有TCP/IP负载加速功能2022/10/1073PowerPC2022/10/1174PowerP

51、C 处理器系列2022/10/1074PowerPC 处理器系列2022/10/1175PowerPC 400 系列这是 PowerPC 处理器中的嵌入式系列产品 低端是 PowerPC 405EP,32位单线程,每个嵌入式处理器只需要1瓦的功耗就可以实现 200MHz的主频 高端是基于铜技术的 800MHz的 PowerPC 440 系列, 32位双线程、超标量体系结构,它是业界最高端的嵌入式处理器 许多产品都是在对 PowerPC 400 系列的核心进行适度修改而构建的 “蓝色基因”就是在其每个主芯片中采用了两个PowerPC 440 处理器和两个 FP 浮点核心2022/10/1075P

52、owerPC 400 系列2022/10/1176PowerPC 405、PowerPC 440 处理器内核在实现上有两种选择: 在180纳米到130纳米工艺上实现性能优越的硬核 由IBM提供完全可综合的软核 通过IBM CoreConnect总线架构,将PowerPC 405/440与外设和功能IP整合构成完整的SoC解决方案CoreConnect 按数据访问速度分成 3 层总线: PLB(Processor Local Bus)是与处理器及 DMA 等快速设备接口的快速总线 OPB(On-chip Peripheral Bus)是为UART、GPIO 等慢速设备提供接口的总线 DCR(De

53、vice Control Register Bus),用菊花链方式将处理器与设备配置寄存器连接起来2022/10/1076PowerPC 405、PowerP2022/10/1177IBM CoreConnect 总线架构2022/10/1077IBM CoreConnect 总线2022/10/11782.1.3 DSPDigital Signal Processor 数字信号处理器信号处理:对信号的加工过程信号处理方式: 模拟方式:使用电子线路实现,如:滤波电路 数字方式:使用计算机实现,如:滤波算法为什么使用数字方式?信号处理器输入信号输出信号2022/10/10782.1.3 DSP信

54、号处理器输入信2022/10/11792022/10/10792022/10/1180DSP的的特点多数DSP采用哈佛结构,分别存储程序和数据,各有独立的地址总线和数据总线,取指和读数可以同时进行。采用流水线技术硬件乘法器能在单个指令周期内完成乘/加运算循环寻址(Circular addressing),位倒序(bit-reversed)等特殊指令。使FFT、卷积等运算中的寻址、排序及计算速度大大提高。独立的DMA总线和控制器多处理器接口,使多个处理器可以很方便的并行或串行工作以提高处理速度2022/10/1080DSP的的特点2022/10/1181典型MCU与DSP的比较2022/10/1

55、081典型MCU与DSP的比较2022/10/1182DSP产品举例型号 芯片/核 定点/浮点 字长 指令长 主频Texas Instruments 公司:TMS320C2x Chip Fixed 16 16 12.5TMS320C3x Chip Float 32 32 40TMS320C62xx Chip Fixed 16 32 200Motorola 公司:DSP560 xx Chip Fixed 24 24 47.5DSP Group 公司:TeakDSPCore Core Fixed 16 16 130Analog Devices 公司:ADSP-21xx Both Fixed 16

56、24 75TigerSHARC Chip Fixed/Float 32 32 2502022/10/1082DSP产品举例2022/10/118316bit 定点运算DSP性能比较2022/10/108316bit 定点运算DSP性能比较2022/10/118432bit 浮点运算DSP性能比较2022/10/108432bit 浮点运算DSP性能比较2022/10/11852.1.4 FPGA & CPLD (SOC)PLD (Programmable Logic Device)可编程逻辑器件,是20世纪70年代发展起来的一种新型逻辑器件,是目前数字系统设计的主要硬件基础。它包括PROM、G

57、AL、FPGA、CPLD等多种产品类型。GAL(Generic Array Logic)通用阵列逻辑FPGA(Field Programmable Gate Array )现场可编程门阵列CPLD(Complex Programmable Logic Device)复杂可编程逻辑器件2022/10/10852.1.4 FPGA & CPLD2022/10/1186GAL(GAL16V8)2022/10/1086GAL(GAL16V8)2022/10/1187FPGA( Xilinx的Spartan-系列)2022/10/1087FPGA( Xilinx的Spart2022/10/1188FPG

58、A CLB2022/10/1088FPGA CLB2022/10/1189FPGA IO Logic2022/10/1089FPGA IO Logic2022/10/1190CPLD (Altera的MAX7000S系列)2022/10/1090CPLD (Altera的MAX702022/10/1191CPLD - MacroCells2022/10/1091CPLD - MacroCells2022/10/1192PLD器件的优点集成度高,可以替代多至几千块通用IC芯片极大减小电路的面积,降低功耗,提高可靠性具有完善先进的开发工具提供语言、图形等设计方法,十分灵活通过仿真工具来验证设计的正确性可以反复地擦除、编程,方便设计的修改和升级灵活地定义管脚功能,减轻设计工作量,缩短系统开发时间2022/10/1092PLD器件的优点2022/10/1193FPGA 与 CPLD

温馨提示

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

评论

0/150

提交评论