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

下载本文档

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

文档简介

1、2022-3-151嵌入式系统设计嵌入式系统设计 天津大学计算机学院天津大学计算机学院 车明车明 第二章第二章: 嵌入式处理器嵌入式处理器2022-3-152计算机体系结构回顾计算机体系结构回顾2022-3-1532022-3-154计算机指令集回顾计算机指令集回顾2022-3-1552022-3-1562.1 嵌入式处理器介绍嵌入式处理器介绍2.1.1 MPUn嵌入式系统中直接利用嵌入式系统中直接利用 MPU(MPU(接近通用计算接近通用计算机机 CPU)CPU)的情况已经很少的情况已经很少n8 8位位 MPU MPU 已经淘汰已经淘汰n1616、3232位位 MPU MPU 仍有少量应用仍

2、有少量应用u 16 16位位 MPU MPU 的例子:的例子:INTEL 80C186ECINTEL 80C186ECu 32 32位位 MPU MPU 的例子:的例子:INTEL 80386EXINTEL 80386EXnARM ARM 是是3232位位 MPUMPU,但不作为独立芯片使用,但不作为独立芯片使用2022-3-1572.1.2 MCUn嵌入式系统中大量利用嵌入式系统中大量利用MCUMCU作为其核心部件作为其核心部件n8 8位位 MCU MCU 在微、小型应用中仍有很大市场,在微、小型应用中仍有很大市场,MCS-51MCS-51系列的单片机是低端嵌入式系统中用系列的单片机是低端嵌

3、入式系统中用得最多的微处理器。得最多的微处理器。n1616位位 MCU MCU 成为鸡肋成为鸡肋n3232位位 MCU MCU 在中、大型应用中较多,但目前在中、大型应用中较多,但目前也面临更新嵌入式技术(如也面临更新嵌入式技术(如SOCSOC)的替代,)的替代, ARM ARM 系列是应用较广泛的系列是应用较广泛的3232位微处理器,实位微处理器,实际上该系列的际上该系列的MCUMCU芯片很多,但都是以芯片很多,但都是以 ARM ARM 微内核为核心的。微内核为核心的。2022-3-1581) 8位位MCU: MCS-51系列系列n8 8位位MCUMCU的典型是的典型是MCS-51MCS-5

4、1系列单片机系列单片机n哈佛结构、哈佛结构、CISCCISC指令指令nMCS-51MCS-51系列是系列是INTELINTEL公司的产品公司的产品, ,包括包括5151、5252两个子系列。两个子系列。 5151子系列主要型号有子系列主要型号有80318031、80518051、87518751等,等,5252子系列比子系列比5151子系列增加了子系列增加了少量内部资源。少量内部资源。n许多公司购买了许多公司购买了MCS-51MCS-51的内核,并增加了片的内核,并增加了片内资源,生产出各具特色的与内资源,生产出各具特色的与MCS-51MCS-51兼容的兼容的单片机产品。例如单片机产品。例如A

5、TMELATMEL公司的公司的AT89CAT89C系列,系列,主要型号有主要型号有AT89C51AT89C51、AT89C52AT89C52、AT89C2051AT89C2051、T89C51RD2T89C51RD2等。这些产品比等。这些产品比INTELINTEL的更实用。的更实用。2022-3-159MCS-51系列芯片举例系列芯片举例型 号 片内ROM片内RAMI/O口线封 装8031无128B+SFR84DIP 40脚8051掩膜4KB128B+SFR84DIP 40脚8751EPROM 4KB128B+SFR84DIP 40脚AT89C2051FLASH 2KB128B+SFR15DI

6、P 20脚SOIC 20脚AT89C51FLASH 4KB128B+SFR84DIP 40脚PLCC 44脚AT89C52FLASH 8KB256B+SFR84DIP 40脚PLCC 44脚T89C51RD2FLASH 64KBEEPROM 2KB1024B+SFR86DIP 40脚PLCC 68脚2022-3-1510本课程实验用的单片机本课程实验用的单片机P89LV51RD2 的主要性能和特点的主要性能和特点 INTEL 8052 CPU 内核内核 内部程序存储器内部程序存储器ROM :64KB( FLASH ) 内部数据存储器内部数据存储器RAM:256B + 1024B RAM 寄存器

7、区:有寄存器区:有4个寄存器区,每个区有个寄存器区,每个区有R0-R7八个工作寄存器八个工作寄存器 8位并行输入输出端口:位并行输入输出端口:P0、P1、P2、P3 定时定时/计数器:计数器:2个个16位的定时位的定时/计数器计数器 串型口:全双工的端口(串型口:全双工的端口(RXD:接收端,:接收端,TXD发送端)发送端) 硬件硬件SPI:支持程序下载:支持程序下载 中断系统:设有中断系统:设有5个中断源个中断源 堆栈:设在内堆栈:设在内RAM单元中,通过堆栈指针单元中,通过堆栈指针SP确定堆栈位置确定堆栈位置 指令系统:指令系统:111条指令。按功能分为数据传送、算术运算、条指令。按功能分

8、为数据传送、算术运算、逻辑运算、控制转移和布尔操作逻辑运算、控制转移和布尔操作5大类。大类。2022-3-1511MCS-51 单片机内部方框图单片机内部方框图时钟电路64KROM程序存储器1024BRAM数据存储器2X16位定时/计数器CPU处理器64KB总线扩展控制器可编程I/O端口P0-3可编程串行口2022-3-1512VCCRSTXTAL1 P0口XTAL2/EA/PSENALE P1口P3口RXDTXD/INT0/INT1 P2口T0T1/WR/RDGND87C51EPROM型AT89C51ATMELFLASH型2022-3-1513程序存储器六个特殊的单元程序存储器六个特殊的单元

9、在程序存储器中,有六个单元是具有特定功能。在程序存储器中,有六个单元是具有特定功能。编程者是不能随便使用的。编程者是不能随便使用的。0000H单元:上电时,程序计数器单元:上电时,程序计数器PC所指向的单元所指向的单元0003H单元:外部中断单元:外部中断/INT0的入口地址;的入口地址;000BH单元:定时器单元:定时器T0的溢出中断入口地址;的溢出中断入口地址;0013H单元:外部中断单元:外部中断/INT1的入口地址;的入口地址;001BH单元:定时器单元:定时器T1的溢出中断入口地址;的溢出中断入口地址;0023H单元:串行口接收、传送的中断入口地址。单元:串行口接收、传送的中断入口地

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

11、FH30H2FH20H1FH18H17H10H0FH工作寄存器区:4个每个区中有R0-R7八个工作寄存器位寻址区16个单元 20H-2FH,共有128 可寻址位个位。位地址:00H-7FH注意:位地址与字节地址的区别通用的RAM区地址:30H-7FH2022-3-1516片内片内 RAMRAM(20H-2FH20H-2FH)中的位寻址区结构图)中的位寻址区结构图7F7E7D7C7B7A797877767574737271706F6E6D6C6B6A696867666564636261605F5E5D5C5B5A595857565554535251504F4E4D4C4B4A4948474645

12、44434241403F3E3D3C3B3A393837262524232221202F2E2D2C2B2A292827262524232221201F1E1D1C1B1A191817161514131211100F0E0D0C0B0A090807060504030201002FH20H字节地址2022-3-1517特殊功能寄存器特殊功能寄存器SFRn特殊功能寄存器SFR (Special Function Register) 特殊用途寄存器的集合。用来设定单片机内部各个部件的工作方式,存放相关部件的状态,定时器初值,并行端口的锁存器等等。 尽管特殊功能寄存器与RAM在同一个单元中,但不能作为

13、普通的RAM存储单元来使用。只有在编程中根据需要,进行一些特定功能的设定,或者是从中查寻相关部件的状态时,才能进行读、写操作。SFR高128B低128B0FFH80H7FH00H特殊功能寄存器SFR在片内RAM中的位置2022-3-1518ACCBPSWSPDPTRP0P1P2P3IPIETMODTCON累加器B寄存器程序状态字堆栈指针数据指针(包括DPH,DPL)口0口1口2口3中断优先级控制寄存器中断允许控制寄存器定时/计数器方式控制寄存器定时/计数器控制寄存器0E0H0F0H0D0H81H83H,82H80H90H0A0H0B0H0B8H0A8H89H88H特殊功能寄存器 SFR(表一)

14、2022-3-1519特殊功能寄存器 SFR(表二)标识符名 称地 址TH0TL0TH1TL1SCONSBUFPCON定时/计数器0初值寄存器高8位定时/计数器0初值寄存器低8位定时/计数器1初值寄存器高8位定时/计数器1初值寄存器低8位串行口控制寄存器串行口数据缓冲器(接收,发送)电源控制寄存器8CH8AH8DH8BH98H99H97H注:表中红色的单元为可按位寻址的字节2022-3-1520端口举例:端口举例:P3 通用通用I/OI/O端口端口、多用途端口、多用途端口n在多用途情况下,P3口分别作为串行口、外中断输入、外部计数输入和系统扩展时使用的WR和RD信号的端口。在这种情况下,锁存器

15、Q端为“1”电平以保证与门是打开的。n在通用I/O模式下,“替代输出功能”端为“1”电平,以保证与门打开。D Q 锁存器CL /QP3.x引脚替代输出功能读锁存器读引脚内部总线写锁存器MUX (数据=0)Vcc2022-3-15212) 32位位MCU: ARM系列系列n3232位位MCUMCU的典型是基于的典型是基于AMRAMR的单片机的单片机nARMARM(Advanced RISC MachinesAdvanced RISC Machines)系列微处理系列微处理器,采用的都是由器,采用的都是由 ARM ARM 公司提供的公司提供的ARM IPARM IP。nARM ARM 公司本身不生

16、产芯片,只转让设计许可,公司本身不生产芯片,只转让设计许可,由合作公司生产各具特色的芯片。由合作公司生产各具特色的芯片。nARM ARM 使用使用 RISCRISC指令,支持指令,支持 ARM ARM 指令集和指令集和Thumb Thumb 指令集指令集u ARMARM指令为指令为3232位长度位长度 u ThumbThumb指令为指令为1616位长度,是位长度,是ARMARM指令集的功指令集的功能子集,但节省能子集,但节省4040以上的存储空间。以上的存储空间。2022-3-1522ARM处理器系列处理器系列 ARM7 ARM9 ARM9E ARM10E ARM11 SecurCore (专

17、为安全需要而设计)(专为安全需要而设计) OptimoDE (最新的(最新的DSP核)核) Inter Strong ARM (融合了(融合了Inter的技术)的技术) Inter Xscale (Intel曾主推的一款曾主推的一款ARM)ARM CPU ISA的发展的发展 nARM CPU 的指令集体系 ISA 发展到现在,先后有 V1, V2, V3, V4, V4T, V5TE, V5TEJ, V6, V7等主要的版本。nARM V1V3版本的处理器未得到大量应用,ARM处理器的大量泛应用是从其V4版本开始的n到目前V7是最新的版本,它也被称作CoreTex系列。 ARM处理器的分类处理

18、器的分类n结构体系版本(Architecture)uARM v4TuARM v5TE uARM v6uARM Cortex (v7) Processor FamilyProcessor Family ARM7 ARM9 ARM10 ARM11 ARM CortexARM FamilyARM7 FamilyARM9 FamilyARM10 FamilyARM11 Family150DMIPS300 DMIPS500 DMIPS1000 DMIPSARM Cortex FamilyARM720TARM1136J ARM1176JZARM1026EARM920T/ARM922T ARM926EJCo

19、rtex AApplication ProcessorARM7TDMIARM1156T2ARM1026EARM946ECortex REmbedded RT ControllerARM7TDMIARM966E ARM968ECortex MMicro-controllerARM Architecture 按应用特征分类按应用特征分类 应用处理器应用处理器 Application Processor 实时控制处理器实时控制处理器 Real-time Controller 微控制器微控制器 Micro-controller特征:特征:MMU, Cache 最快频率、最高性能、合理功耗最快频率、最高

20、性能、合理功耗 特征:特征:MPU, Cache 实时响应、合理性能、较低功耗实时响应、合理性能、较低功耗 特征:特征:no sub-memory system 一般性能、最低成本、极低功耗一般性能、最低成本、极低功耗 ARM11 芯片芯片nARM11u300-700+ MHzuSIMD 指令扩展支持更丰富的多媒体应用指令扩展支持更丰富的多媒体应用FOMA N902iFirst ARM11 based phoneOMAP2420i.MX31/i.MX31L高性能的高性能的ARM嵌入式处理器嵌入式处理器n最快的处理器提供超过2000 DMIPS 的性能u运行于运行于 1GHz 频率频率 (90n

21、m or 65nm 制造工艺制造工艺)n功耗小于 300mWARM Cortex A8 Application ProcessorCortex-M3 实现实现 $1 ARM芯片芯片 ARM Cortex Architecture Thumb-2 ISA 3 Stage Pipeline Luminary Micro Luminary Micro 的的 Stellaris Stellaris 系列系列 MCU MCU 产品售价仅产品售价仅1 1美元美元ARM Cortex-M3 微控制器内核,专门针对MCU应用领域而设计,突出低成本、低功耗和高效率。ARM7TDMI指令流水线指令流水线n为增加处

22、理器指令流的速度,ARM7 系列使用3级流水线。u允许多个操作同时处理,而非顺序执行。u PC指向正被取指的指令,而非正在执行的指令。FetchDecodeExecute从存储器中读取指令从存储器中读取指令解码指令中用到的寄存器解码指令中用到的寄存器寄存器读(从寄存器寄存器读(从寄存器Bank)移位及移位及ALU操作操作寄存器写(到寄存器寄存器写(到寄存器Bank )PCPCPC - 4PC-2PC - 8PC - 4ARMThumbARM9TDMI指令流水线指令流水线InstructionFetch Shift + ALUMemoryAccessRegWriteRegReadRegDecod

23、eFETCHDECODEEXECUTEMEMORYWRITEARM9TDMIARM or ThumbInst DecodeReg SelectRegReadShiftALURegWriteThumbARMdecompressARM decodeInstructionFetchFETCHDECODEEXECUTEARM7TDMI 理想的理想的3级流水线级流水线(ARM7TDMI:无访存操作)无访存操作) ARM的的LDR流水线流水线 数据宽度(类型)数据宽度(类型) n数据类型 u 字节型数据(字节型数据(ByteByte):):数据宽度为8bits u 半字数据类型(半字数据类型(HalfWo

24、rdHalfWord):):数据宽度为16bits,存取式必须以2字节对齐的方式u 字数据类型(字数据类型(WordWord):):数据宽度为32bits,存取式必须以4字节对齐的方式 工作状态和工作模式工作状态和工作模式 n处理器有两种工作状态:uARM:32位,执行字对准的ARM指令uThumb:16位,执行半字对准的Thumb指令nARM和Thumb之间状态的切换不影响处理器的模式或寄存器的内容工作状态和工作模式工作状态和工作模式 n进入Thumb状态:u执行BX指令,并设置操作数寄存器的状态(位0)为1。u在Thumb状态进入异常(IRQ, FIQ, UNDEF, ABORT,SWI

25、etc.),当异常处理返回时自动转换到Thumb状态n进入ARM状态:u执行BX指令,并设置操作数寄存器的状态(位0)为0。u进入异常时,将PC放入异常模式链接寄存器中,从异常向量地址开始执行也可进入ARM状态工作状态和工作模式工作状态和工作模式 nThumb-2 :增加了混合模式能力u定义了一个新的定义了一个新的32-bit指令集能在传统的指令集能在传统的 16bit指令运行的指令运行的Thumb状态下同时运行。状态下同时运行。u这样能在一个系统中更好地平衡这样能在一个系统中更好地平衡ARM和和Thumb代码的能力,使系统能更好地利用代码的能力,使系统能更好地利用ARM级别的性能和级别的性能

26、和Thumb代码的密度的优势。代码的密度的优势。 工作状态和工作模式工作状态和工作模式 处理器模式处理器模式说明说明用户模式(User)正常程序执行模式,用于应用程序异常模式(FIQ)快速中断处理,用于支持高速数据传送或通道处理异常模式(IRQ)用于一般中断处理异常模式(Supervisor)特权模式,用于系统初始化或操作系统功能异常模式(Abort)存储器保护异常处理异常模式(Undefined)未定义指令异常处理系统模式(System)运行特权操作系统任务(ARM V4以上版本)工作状态和工作模式工作状态和工作模式 User模式模式程序不能访问有些受保护的资源程序不能访问有些受保护的资源只

27、能通过异常的形式来改变只能通过异常的形式来改变CPU的当前运行模式的当前运行模式特权模式特权模式可以存取可以存取系统中的系统中的任何资源任何资源System模式模式与与User模式的运行环境一样模式的运行环境一样但是它可以不受任何限制的访问任何资源但是它可以不受任何限制的访问任何资源该模式主要用于运行系统中的一些特权任务该模式主要用于运行系统中的一些特权任务FIQ模式模式IRQ模式模式Supervisor模式模式Abort模式模式Undefined模式模式异常模式:主要是在外部中异常模式:主要是在外部中断或者程序执行非法操作时断或者程序执行非法操作时会触发会触发寄存器寄存器 ARM寄存器概述寄

28、存器概述nARM处理器有37个寄存器u 31个通用寄存器:程序计数器、个通用寄存器:程序计数器、堆栈及其他通用寄存器堆栈及其他通用寄存器u 6个状态寄存器个状态寄存器n这些寄存器不能同时看到n不同的处理器状态和工作模式确定哪些寄存器是对编程者是可见的ARM微处理器:微处理器: ARM State寄存器寄存器ARM微处理器微处理器: Thumb State寄存器寄存器ARM State 与与Thumb State寄存器关系寄存器关系处理器模式与寄存器的关系处理器模式与寄存器的关系n异常发生时伴随的模式切换意味着, 被调用的异常处理程序会访问: u它自己的堆栈指针 (SP_)u它自己的链接寄存器

29、(LR_)u它自己的备份程序状态寄存器 (SPSR_)u如果是FIQ异常处理, 5个其它的通用状态寄存器 (r8_FIQ to r12_FIQ)u其它寄存器和原来模式下的寄存器是相同的不同模式下堆栈指针的初始化不同模式下堆栈指针的初始化n各模式分组的堆栈指针寄存器是需要在系统初始化(即系统复位)时被设置好的,这样才能在进入不同的模式时自动切换使用不同的堆栈空间。初始化时需注意堆栈指针必须保持8字节对齐。 ;中断模式堆栈的设置MSR CPSR_c, #0 x000000D2 ;切换到中断模式LDR R1, = IrqStackMOV SP, R1 ;设置中断模式堆栈指针;快速中断模式堆栈的设置M

30、SR CPSR_c, #0 x000000D1 ;切换到快速中断模式LDR R1, = FiqStackMOV SP, R1 ;设置快速中断模式堆栈指针;中止模式堆栈的设置.寄存器寄存器 通用寄存器通用寄存器n通用寄存器是R0-R15的寄存器,分为三类 u 没有对应影子寄存器的寄存器没有对应影子寄存器的寄存器R0-R7 u 有对应影子寄存器的寄存器有对应影子寄存器的寄存器R8-R14u 程序计数器程序计数器R15 (或者或者PC) n影子寄存器是指该寄存器在不同的模式下对应的物理寄存器寄存器寄存器 通用寄存器通用寄存器nR0-R7u所有模式下,所有模式下,R0-R7所对应的所对应的物理物理寄存

31、器寄存器都是相同的都是相同的 u这八个寄存器是真正意义上的通用这八个寄存器是真正意义上的通用寄存器,寄存器,ARM体系结构中对它们没体系结构中对它们没有作任何特殊的假设,它们的功能有作任何特殊的假设,它们的功能都是等同的。都是等同的。u在中断或者异常处理程序中一般都在中断或者异常处理程序中一般都需要对这几个寄存器进行保存。需要对这几个寄存器进行保存。寄存器寄存器 通用寄存器通用寄存器nR8-R14u访问的物理寄存器取决于当前的处理器模式,若要访问特定的物理寄存器而不依赖当前的处理器模式,则要使用规定的名字。 uR8-R12各有两组物理寄存器:一组为FIQ模式,另一组是除FIQ以外的其他模式。u

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

33、uTHUMB state:bit 0为为0,bits31:1即为即为 PC寄存器寄存器 程序状态寄存器程序状态寄存器nCPSR(当前程序状态寄存器)在所有的模式下都是可以读写的,它主要包含:u条件标志条件标志u中断使能标志中断使能标志u当前处理器的模式当前处理器的模式u其它的一些状态和控制标志其它的一些状态和控制标志寄存器寄存器 程序状态寄存器程序状态寄存器n置0表示执行32bit的ARM指令n置1表示执行16bit的Thumb指令 NegativeZeroCarryOverflowIRQ中断的响应中断的响应:置置1:禁止响应:禁止响应置置0:允许响应:允许响应FIQ中断的响应中断的响应:置置

34、1:禁止响应:禁止响应置置0:允许响应:允许响应条件标志条件标志模式控制位模式控制位ARM/Thumb控制标志控制标志中断标志中断标志寄存器寄存器 程序状态寄存器程序状态寄存器n模式控制位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_irqR12R0

35、R14_irqR13_irqPC、CPSR、SPSR_irq10011SupervisorR7R0LR_svc,SP_svcPC、CPSR、SPSR_svcR12R0R14_svc、R13_svcPC、CPSR、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、C

36、PSRR14R0PC、CPSR寄存器寄存器 程序状态寄存器程序状态寄存器n 条件标志位uN = ALU产生负数结果uZ = ALU产生结果是0uC = ALU操作产生进位或借位uV = ALU结果溢出n溢出标志 Q标志u只在5TE架构及以后被定义u表示饱和是否产生nJ位u只在5TEJ架构及以后被定义uJ = 1: 处理器处于Jazelle态n中断关闭位uI = 1: 关闭IRQuF = 1: 关闭FIQnT位uT = 0: 处理器处于ARM态uT = 1: 处理器处于Thumb态u在4T架构被引入n模式位u指定了处理器当前模式fsxc2731N Z C V Q2867I F T mode162

37、3 15 54024 U n d e f i n e dJV6V6新引入的新引入的GE3:0 被一些SIMD指令使用 E 位控制读取/存储的大小端A 位关闭不准确的数据异常中断IT abcde 用于Thumb2指令组的条件执行1089 19 GE3:0 E A IT cond_abcdeARM寄存器的分配和使用寄存器的分配和使用 n寄存器的使用,在很大程度上与编译器有关系,不同的编译器对于不同体系结构处理器的寄存器的使用有其特定的规则。 (比如函数参数传递和返回值)寄存器编号寄存器编号可选寄存器名字可选寄存器名字ATPCS寄存器用法寄存器用法R0r3A1a4参数寄存器,在调用函数时,用来存放前

38、4个函数参数和返回值。在函数内,如果把这些寄存器作为临时过渡寄存器来使用,则会破坏它们的值R4r8V1v5通用变量寄存器,调用函数必须保存被调用函数存放在这些寄存器中的变量值r9v6 sb通用变量寄存器。在与读/写位置无关的编译情况下,r9中保存静态基本地址,这个地址是读/写数据的地址;否则必须保存这个寄存器中被调用函数的变量值r10v7 sl通用变量寄存器。在使用堆栈边界检查的编译情况下,r10保存堆栈边界的地址;否则必须保存这个寄存器中被调用函数的变量值r11v8 fp通用变量寄存器。在使用结构指针的编译情况下,必须保存这个寄存器中调用函数的变量值r12Ip通用临时过渡寄存器,函数调用时会

39、破坏其中的值r13sp堆栈指针,指向满递减堆栈r14lr连接寄存器,在函数调用时用以保存返回地址r15pc程序计数器中断与异常中断与异常-概述概述n当异常发生时CPU自动到指定的向量地址读取指令并且执行,即ARM的向量地址处存放的是一条指令(一般是一条跳转指令)u在X86上,当有异常发生时CPU是到指定的向量地址读取要执行的程序的地址执行的程序的地址2.3.4中断与异常中断与异常-概述概述nARM CPU将引起异常的类型分为7种异常类型模式优先级一般向量地址高向量地址ResetSupervisor10 x000000000 xFFFF0000Undefined InstructionUndef

40、ined60 x000000040 xFFFF0004Software InterruptSupervisor60 x000000080 xFFFF0008Prefetch AbortAbort50 x0000000C0 xFFFF000CData AbortAbort20 x000000100 xFFFF0010IRQ(interrupt)IRQ40 x000000180 xFFFF0018FIQ(fast interrupt)FIQ30 x0000001C0 xFFFF001CFIQIRQ(Reserved)Data AbortPrefetch AbortSoftware Interrup

41、tUndefined InstructionReset0 x1C0 x180 x140 x100 x0C0 x080 x040 x00异常的优先级异常的优先级n有些异常会同时发生n异常被赋以了优先级,据此决定被响应的顺序:ResetData AbortFIQIRQPrefetch AbortSWIUndefined instruction在所有异常的入口,在所有异常的入口,IRQ IRQ 中断被屏蔽中断被屏蔽 只有重新被使能才可触发内核响应 (如:中断嵌套处理)在在 FIQs FIQs 和和 ResetReset 异常的入口,异常的入口,FIQFIQ中断被屏蔽中断被屏蔽高优先级低优先级中断与异

42、常中断与异常-异常响应过程异常响应过程nARM处理器响应异常的过程如下: u拷贝CPSR寄存器的内容至对应模式下的 SPSR_寄存器中;u将返回地址保存到对应模式下的LR_寄存器中;u对 CPSR 寄存器的一些控制位进行设置:F无论发生异常时处理器处于Thumb 状态还是ARM状态,响应异常后处理器都会切换到 ARM 状态,即CPSR5=0;F将模式位 CPSR4:0设置为被响应异常的模式编码;F设置中断屏蔽位:如果异常模式为Reset 或 FIQ 则 CPSR6=1 /*禁止快速中断*/ CPSR7=1 /*禁止正常中断*/u将程序计数器(PC)设置为异常向量的地址ARM CPU进入异常模式

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

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

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

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

47、效字节的地址最高有效字节的地址就是该就是该word的地址的地址最高有效字节最高有效字节位于最低地址位于最低地址word a=0 x f6 73 4b cdf6734bcd内存和内存和I/O 大小端大小端小端的数据格式小端的数据格式 低地址低地址高地址高地址地址地址A地址地址A+1地址地址A+2地址地址A+3最低有效字节的地址最低有效字节的地址就是该就是该word的地址的地址最低有效字节最低有效字节位于最低地址位于最低地址word a=0 x f6 73 4b cdf6734bcd CPU与与I/O设备之间的接口信息设备之间的接口信息数据信息数据信息状态信息状态信息控制信息控制信息数字量数字量模

48、拟量模拟量开关量开关量连续几位二进制形式表示的数或字符连续几位二进制形式表示的数或字符。如键盘输入的信息以及打印机、显。如键盘输入的信息以及打印机、显示器输出的信息等示器输出的信息等时间上连续变化的量,如温度、压力时间上连续变化的量,如温度、压力、流量等、流量等只有两个状态的量,如阀门的合与断只有两个状态的量,如阀门的合与断、电路的开与关等、电路的开与关等CPUCPU与与I/OI/O设备设备之间的之间的接口信接口信息息反映外设当反映外设当前工作状态前工作状态的信息的信息READY信号:输入设备是否准备好信号:输入设备是否准备好BUSY信号:输出设备是否忙信号:输出设备是否忙CPU向外部向外部设

49、备发送的设备发送的控制命令信控制命令信息息读写控制信号读写控制信号时序控制信号时序控制信号中断信号中断信号片选信号片选信号其它操作信号其它操作信号数据、状态、控制信息都数据、状态、控制信息都是通过是通过CPUCPU的数据总线传的数据总线传送,存在送,存在I/OI/O接口的不同接口的不同端口中:数据、状态、控端口中:数据、状态、控制端口制端口 内存和内存和I/O I/O端口编址方式端口编址方式I/OI/O端口的编址方法,即端口的编址方法,即I/OI/O端口的地址安排方式端口的地址安排方式存储器映射编址存储器映射编址I/O映射编址映射编址I/OI/O端口的地址与内存地址统端口的地址与内存地址统一编

50、址,即一编址,即I/OI/O单元与内存单单元与内存单元在同一地址空间元在同一地址空间I/OI/O端口与内存单元分开编址端口与内存单元分开编址,即,即I/OI/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

51、 80X86系列,I/O端口与内存单元分开编址,I/O端口有自己独立的地址空间,其大小为64KB内存和内存和I/O I/O端口编址方式端口编址方式nARM 的I/O端口都是内存映射的方式,即对I/O端口的访问与内存的访问的方式完全一样。n通常将I/O所映射的存储系统标识为非高速缓存(uncachable)和非缓冲(unbufferable)。2022-3-15713) IBM Power处理器系列处理器系列n2020世纪世纪7070年代,年代,IBMIBM发明精简指令集发明精简指令集RISCRISC技术技术nPower (Performance Optimization With Enhanc

52、ed RISC ) Power (Performance Optimization With Enhanced RISC ) 是是IBMIBM很多服务器和超级计算机的主处理器很多服务器和超级计算机的主处理器nPowerPower系列包括系列包括Power1Power1、2 2、3 3、4 4、4+4+、5 5、5+5+、6 6、7 7 和和20132013年发布的年发布的Power7+Power7+n19971997年,基于年,基于POWER2POWER2架构的架构的“深蓝深蓝”计算机战胜国际象棋计算机战胜国际象棋大师卡斯帕罗夫大师卡斯帕罗夫n20002000年年POWER4POWER4芯片研

53、制成功,是业界第一个双内核处理器芯片研制成功,是业界第一个双内核处理器n20052005年推出基于年推出基于POWERPOWER架构的架构的CELL BECELL BE处理器,被业界称作处理器,被业界称作片上超级计算机,在一个芯片上有片上超级计算机,在一个芯片上有9 9个内核,计算能力惊人个内核,计算能力惊人n在全球排名前在全球排名前1010位的超级计算机中,共有位的超级计算机中,共有5 5台采用了台采用了PowerPower架构,第一名是架构,第一名是IBMIBM的的“蓝色基因蓝色基因 ”2022-3-1572CELL BE (Cell Broadband Engine )16B/cycle

54、 (2x)16B/cycleBICFlexIOTM MICDual XDRTM16B/cycleEIB (up to 96B/cycle)64-bit Power Architecture with VMX PPESPELSSXUSPUMFCPXUL1PPU16B/cycleL232B/cycleLSSXUSPUMFCLSSXUSPUMFCLSSXUSPUMFCLSSXUSPUMFCLSSXUSPUMFCLSSXUSPUMFCLSSXUSPUMFC2022-3-1573PowerPCn19931993年年IBMIBM推出推出PowerPCPowerPC,它源自于,它源自于POWERPOWER体

55、系结构,体系结构,但与但与POWERPOWER不同,不同,PowerPCPowerPC是开放的,它定义了一个是开放的,它定义了一个指令集(指令集(ISAISA),并且允许任何人来设计和制造与),并且允许任何人来设计和制造与PowerPCPowerPC兼容的处理器,为了支持兼容的处理器,为了支持PowerPCPowerPC而开发的而开发的软件模块的源代码都可以自由使用。软件模块的源代码都可以自由使用。n19941994年年IBMIBM发布首个基于发布首个基于PowerPower架构的嵌入式控制器架构的嵌入式控制器 PowerPC 403GA PowerPC 403GA n19981998年年IB

56、MIBM公布了首个基于公布了首个基于PowerPCPowerPC的嵌入式系统芯的嵌入式系统芯片片SoCSoC内核内核 PowerPC 405PowerPC 405(IPIP)n20022002年年IBMIBM推出嵌入式推出嵌入式PowerPC 440GPPowerPC 440GP和和PowerPC PowerPC 440GX440GX处理器,处理器,440GX440GX拥有拥有TCP/IPTCP/IP负载加速功能负载加速功能2022-3-1574PowerPC 处理器系列处理器系列2022-3-1575PowerPC 400 系列系列n这是这是 PowerPC PowerPC 处理器中的嵌入式

57、系列产品处理器中的嵌入式系列产品 n低端是低端是 PowerPC 405EPPowerPC 405EP,3232位单线程,每个嵌入式位单线程,每个嵌入式处理器只需要处理器只需要1 1瓦的功耗就可以实现瓦的功耗就可以实现 200MHz200MHz的主频的主频 n高端是基于铜技术的高端是基于铜技术的 800MHz800MHz的的 PowerPC 440 PowerPC 440 系列,系列, 3232位双线程、超标量体系结构,它是业界最高端的位双线程、超标量体系结构,它是业界最高端的嵌入式处理器嵌入式处理器 n许多产品都是在对许多产品都是在对 PowerPC 400 PowerPC 400 系列的核

58、心进行适系列的核心进行适度修改而构建的度修改而构建的 n“蓝色基因蓝色基因”就是在其每个主芯片中采用了两个就是在其每个主芯片中采用了两个PowerPC 440 PowerPC 440 处理器和两个处理器和两个 FP FP 浮点核心浮点核心2022-3-1576PowerPC 405、PowerPC 440 n处理器内核在实现上有两种选择:处理器内核在实现上有两种选择:u 在在180180纳米到纳米到130130纳米工艺上实现性能优越的硬核纳米工艺上实现性能优越的硬核u 由由IBMIBM提供完全可综合的软核提供完全可综合的软核 n通过通过IBM CoreConnectIBM CoreConnec

59、t总线架构,将总线架构,将PowerPC 405/440PowerPC 405/440与外设和功能与外设和功能IPIP整合构成完整的整合构成完整的SoCSoC解决方案解决方案nCoreConnect CoreConnect 按数据访问速度分成按数据访问速度分成 3 3 层总线层总线: :u PLBPLB(Processor Local BusProcessor Local Bus)是与处理器及)是与处理器及 DMA DMA 等快速设备接口的快速总线等快速设备接口的快速总线 u OPB OPB(On-chip Peripheral BusOn-chip Peripheral Bus)是为)是为U

60、ARTUART、GPIO GPIO 等慢速设备提供接口的总线等慢速设备提供接口的总线 u DCR DCR(Device Control Register BusDevice Control Register Bus),用菊花链),用菊花链方式将处理器与设备配置寄存器连接起来方式将处理器与设备配置寄存器连接起来2022-3-1577IBM CoreConnect 总线架构总线架构2022-3-15782.1.3 DSPnDigital Signal Processor 数字信号处理器数字信号处理器n信号处理:对信号的加工过程信号处理:对信号的加工过程n信号处理方式:信号处理方式:u 模拟方式:使用电子线

温馨提示

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

评论

0/150

提交评论