1 / 51

节目预告 (4~15 周 ) 第一阶段:设计者

节目预告 (4~15 周 ) 第一阶段:设计者. 第二阶段:学生(复习) 第三阶段:工程师(案例) 最后:考试(开卷) or PAPER. 学生教程. ARM 体系结构 ARM 指令系统 XScale 微架构的系统结构. 一个 Strong ARM 板卡. DATA ADDR control. LCD port. GPIO. Memory control. USB Port. Memory sheet. NaNo PCI. LCD port. 以太网,串口. 几个问题?. 有了开发板,我们能作什么? 我们成功的仿制出来,我们成功了吗?

jonny
Download Presentation

节目预告 (4~15 周 ) 第一阶段:设计者

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. 节目预告(4~15周)第一阶段:设计者 第二阶段:学生(复习) 第三阶段:工程师(案例) 最后:考试(开卷)or PAPER

  2. 学生教程 • ARM体系结构 • ARM指令系统 • XScale 微架构的系统结构

  3. 一个Strong ARM板卡

  4. DATA ADDR control LCD port GPIO Memory control USB Port

  5. Memory sheet

  6. NaNo PCI LCD port

  7. 以太网,串口

  8. 几个问题? • 有了开发板,我们能作什么? • 我们成功的仿制出来,我们成功了吗? • 我们是真正的设计者吗?

  9. 预备知识 • 计算机体系结构分类 -冯·诺依曼结构 -哈佛体系结构 -精简指令系统计算机(RISC)

  10. 冯·诺依曼结构

  11. 哈佛体系结构

  12. 第二部分 ARM的体系结构

  13. ARM体系结构 ARM公司是把ARM作为知识产权IP推向嵌入式处理器市场,目前,已占有75%左右的市场。因此,ARM架构在市场出现也有多种形式,既有处理器内核(如ARM7TDMI)形式,也有处理器核(如ARM720T)形式。半导体厂商或片上系统SOC设计应用厂商采用ARM架构生产相应的MCU/MPU(如ATMEL公司的AT91单片机MCU)或SOC芯片。

  14. 关于ARM • ARM=Advanced RISC Machine • RISC 的典型代表 • 32位处理器技术 • 嵌入式领域的主力军 • ARM的产品 • ARM处理器内核,以IP的形式提供给IC生产厂家 • 硬核 • 软核 • ARM开发工具、SOC开发工具、评估板等 • ARM公司不生产芯片

  15. 2.1 ARM的特点(1) ARM微处理器的主要特点 • 系列化:ARM7, ARM9, ARM10, … • 独特的指令系统 • 32位架构,定长。 • 32位ARM指令 • 16位Thumb指令 • 大部分为单周期指令 • 条件执行 • Load/Store • 流水线结构 • ARM7:3级流水线 • ARM9:5级流水线 • 高性能、低功耗

  16. ARM的特点(2) ARM微处理器的主要特点 • 支持JTAG调试 • 7种工作模式 • User : 用户模式,非特权 • FIQ : 快速中断 • IRQ : 普通中断 • Supervisor管理模式 • Abort : 存取异常模式 • Undef : 未定义指令模式 • System : 系统模式 • 2种工作状态 • ARM • Thumb 支持ARM/Thumb的交互工作

  17. 典型指令使用频度

  18. Thumb指令集 • Thumb 是16-bit 指令集 • 代码密度优化 (总代码大小约为ARM指令的65%) • 使用窄总线存储器时可以大大提高性能。 • 是 ARM 指令集的一个子集。 • 核存在一个执行状态 – Thumb状态 • ARM和Thumb之间切换使用BX 指令

  19. 2.2 ARM架构

  20. ARM7TDMI 处理器内核 • ARM7TDMI 是基于 ARM7 内核 • 3 级流水线---0.9MIPS/MHz • 冯.诺依曼架构 • CPI(Cycle Per Instruction) 约为1.9 • T - Thumb 架构扩展, 提供两个独立的指令集: • ARM 指令,均为 32位 • Thumb指令,均为 16位 • 两种运行状态,用来选择哪个指令集被执行 • D - 内核具有Debug扩展结构 • M - 增强乘法器 (32x8) 支持64位结果. • I - EmbeddedICE-RT逻辑---提供片上断点和调试点支持

  21. ARM7TDMI 内核信号 nM[4:0] MCLK nMREQ 时钟 nWAIT SEQ LOCK A[31:0] ISYNC D[31:0] BUSEN 存储器接口 配置 BIGEND DIN[31:0] ARM7TDMI 内核 DOUT[31:0] nENOUT nIRQ nRW 中断 nFIQ MAS[1:0] nRESET nTRANS 存储器管理 APE ABORT 总线控制 DBE nOPC nCPI VDD 协处理器接口 CPA 电源 VSS CPB

  22. 控制信号 地址总线 A[31:0] DOUT[31:0] BUS Splitter ARM7TDM 内核 DIN[31:0] 数据总线 D[31:0] Embedded ICE 逻辑 TAP 控制器 JTAG 接口 ARM7TDMI 方框图

  23. ABE A[31:0] 地址 自增器 Incrementer 地址寄存器 P C BIGEND MCLK 寄存器 nWAIT PC Update nRW 指令 解码 MAS[1:0] A L U B u s 解码站 ISYNC A B u s B B u s 指令 解码 nIRQ 乘法器 nFIQ nRESET 及 ABORT nTRANS 读数据 寄存器 nMREQ 桶形 移位器 SEQ 控制 逻辑 LOCK nM[4:0] 写数据 寄存器 nOPC nCPI 32 位 ALU CPA CPB DBE D[31:0] ARM7TDMI 内核

  24. PC[31:2] ARM State PC[31:1] Thumb State ALU[31:0] 地址 寄存器 A[31:0] 0x1C 向量 0x00 INC 自增器 外部地址产生

  25. 2.3 ARM处理器模式 处理器模式分为用户和系统模式,系统模式包括了: 快中断请求FIQ(Fast Interrupt Request) 中断请求IRQ(Interrupt Request) 管理SVC(Supervisor) 中止Abort 未定义Undefined等几种模式。

  26. r0-r15为32位通用寄存器,其中,r15常用作程序计数器PC、r14常用作链接寄存器LR、r13常用作堆栈指针SP r0-r15为32位通用寄存器,其中,r15常用作程序计数器PC、r14常用作链接寄存器LR、r13常用作堆栈指针SP • 当前程序状态寄存器CPSR(Current Program Status Register)

  27. CPSR 1、条件码标识 N:负数标识 Z:结果为零标识 C:进位位标识 V:溢出标识 *Q:DSP的溢出/饱和(选用) 2、控制位 I:IRQ中断禁止位 F:FIQ快中断禁止位 T:Thumb位 Mode:处理器工作模式 保护程序状态寄存器SPSR(Saved Program Status Register)是处理器系统模式下保存当前程序状态寄存器CPSR的内容。

  28. 2.4 Thumb状态 Thumb状态下的寄存器是ARM状态下寄存器组的一部份:r0-r7、r13(SP)、r14(LR)、r15(PC)和CPSR

  29. Thumb状态寄存器与ARM状态寄存器映象

  30. 2.5 异常处理模式 异常(Exception)是由内部或外部源产生以引起处理器处理一个事件,在处理异常之前,处理器状态必须保留;以便在异常处理程序完成后,原来的程序能够重新执行。同一时刻有可能出现多个异常。

  31. 异常类型

  32. 2.5.1 复位 处理器上一旦有复位输入,处理器立即停止执行当前指令。复位完成下列操作: r14_svc=UNPREDICTABLE Value SPSR_svc=UNPREDICTABLE Value CPSR[4:0]=0b10011 /*进入管理模式*/ CPSR[5]=0 /*在ARM状态执行*/ CPSR[6]=1 /*禁止快速中断*/ CPSR[7]=1 /*禁止正常中断*/ PC=0x00000000

  33. 2.5.2 未定义指令异常 当ARM处理器执行协处理器指令时,它必须等待协处理器应答后,才能其正执行该指令;若协处理器没有应答,则会出现未定义指令异常 r14_und=address of next instruction after undefined instruction SPSR_und=CPSR CPSR[4:0]=0b11011 /*进入未定义模式*/ CPSR[5]=0 /*在ARM状态执行*/ /*CPSR[6]不变*/ CPSR[7]=1 /*禁止正常中断*/ PC=0×00000004 在仿真未定义指令后,通过下面指令: MOVS PC, r14 恢复PC(从r14_und)和CPSR(从SPSR_und),并返回该未定义指令的下一条指令

  34. 2.5.3 软件中断SWI 软件中断SWI指令进入管理模式,该指令常用于调用操作系统,故常称为“管理调用”(supervisor call) r14_svc=addre of next instruntion after the SWI instruction SPSR_SVC=CPSR /*进入管理模式*/ CPSR[4:0]=0b10011 /*在ARM状态执行*/ CPST[5]=0 /*CPST[6]不变*/ CPSR[7]=1 /*禁止下常中断*/ PC=0×00000008 完成软件中断SWI操作后,MOV PC,r14指令恢复PC(从r14_svc)和CPSR(从SPSR_SVC),并返回到SWI指令后的下一条指令

  35. 2.5.4 预取中止(取指令存储器中止) • 取指令无效时,存储器发生存储器中止信号;若试用执行无效指令,则产生预取中止异常;若该指令未指到(如指仅在流水线中发生了转移),则不发生预取中止。 • R14_abt=address of the aborted instruction+4 • SPSRabt=CPSR • CPSR[4:0]=0b10111 /*进入中止模式*/ • CPSR[5]=0 /*在ARM状态执行*/ • /*CPSR[6]不变*/ • PC=0×0000000C • 确定中止原因后,即可通过SUBS PC, r14,#4指令从中止模式返回,恢复了PC及CPSR值。

  36. 2.5.5 数据中止(数据访问存储器中止) • 当存储器数据访问无效时,存储器系统发出存储器中止信号。 • r14_abt=address of the aborted instruction+8 • SPSR_abt=CPSR • CPSR[4:0]=0b10111 /*进入中止模式*/ • CPSR[5]=0 /*在ARM状态执行*/ • /*CPSR[6]不变*/ • CPSR[7]=1 /*禁止正常中断*/ • PC=0×00000010 • 确定中止原因后,通过SUBS PC, r14,#8从中止模式返回,并恢复PC和CPSR的值。若中止的指令不需要重新执行,则通过SUBS PC,r14,#4来返回。

  37. 2.5.6 中断请求IRQ • 通过IRQ输入引脚,产生外部中断请求。当CPSR的I位为2时,则禁止IRQ中断;若该I位为0时,且检测到有IRQ输入时,执行下列操作: • r14_ir8=address of next instruction to be executed+4 • SPSR_irg=CPSR • CPSR[4:0]=0b10010 /*进入中断IRQ模式*/ • CPSR[5]=0 /*在ARM状态执行*/ • /*CPSR[6]不变*/ • CPSR[7]=1 /*禁止正常中断*/ • PC=0×00000018 • 可通过SUBS PC,R14,#4指令从中断服务返回,并恢复PC和CPSR的值,并继续执行被中断的程序。

  38. 2.5.7 快速中断请求FIQ • 通过FIQ输入引脚,产生外部快速中断请求。快速中断请求FIQ优先级高于中断请求IRQ,当进入快速中断请求FIQ时,会屏蔽IRQ中断请求。快速中断请求FIQ用来支持数据传送和通道处理,并有足够私有寄存器,可减少上下文切换的开销。 • 当CPSR的F位为1时,禁止快速中断请求;若该F位为0时,且检测到FIQ引脚有输入时,则执行下列操作: • r14_fig=address of next instruction to be executed+4 • SPSR_fiq=CPSR • CPSR[4:0]=0b10001 /*进入快速中断请求FIQ模式*/ • CPSR[5]=0 /*在ARM状态执行*/ • CPSR[6]=1 /*禁止快速中断请求*/ • PC=0×0000001C • 通过指令SUBS PC,r14,#4 从中断服务返回,并恢复PC 和CPSR的值,再继续执行被中断的程序。

  39. 2.6 ARM的流水线结构 计算机中的一条指令的执行可以分若干个阶段: 1.取指,从存储器中取出指令(fetch) 2.译码,指令译码(dec) 3.取操作数,假定操作数从寄存器组中取(reg) 4.执行运算(ALU) 5.存储器访问,操作数与存储器有关(mem) 6.结果写回寄存器(res) 而各个阶段的操作相对都是独立的。因此,可以采用流水线的重叠技术,可以大大提高系统的性能

  40. ARM Thumb PC PC 从存储器中读取指令 Fetch 解码指令 PC - 4 PC-2 Decode 寄存器读(从寄存器Bank) 移位及ALU操作 寄存器写(到寄存器Bank ) PC - 8 PC - 4 Execute 2.6.1 指令流水线 为增加处理器指令流的速度,ARM7 系列使用3级流水线. • 允许多个操作同时处理,比逐条指令执行要快。 PC指向正被取指的指令,而非正在执行的指令

  41. ADD 周期 1 2 3 4 5 6 SUB MOV AND 操作 ORR Decode Execute Fetch EOR CMP Fetch Decode Execute RSB Execute Fetch Decode Fetch Decode Execute Decode Execute Fetch Fetch Decode Execute Fetch Decode Fetch • 该例中用6个时钟周期执行了6条指令 • 所有的操作都在寄存器中(单周期执行) • 指令周期数 (CPI) = 1 2.6.2 最佳流水线

  42. ADD SUB LDR MOV AND ORR 周期 1 2 3 4 5 6 操作 Fetch Decode Execute Fetch Decode Execute Fetch Decode Execute Data Writeback Fetch Decode Execute Fetch Decode Fetch 2.6.3 LDR 流水线举例 • 该例中,用6周期执行了4条指令 • 指令周期数 (CPI) = 1.5

  43. 2.6.4 ARM的流水线设计 • 流水线的结构相关 — 某些指令在流水线中重叠执行时,产生资源冲突 • 流水线的数据相关 — 当一条指令需要前面指令的执行结果,而这些指令均在流水线中重叠执行时,就可能引起流水线的数据相关 • 流水线的控制相关 —当流水线遇到分支指令和其他会改变PC值的指令时就会发生控制相关。一旦流水线检测某条指令是分支指令,就暂停分支指令之后的所有指令,直到分支指令确定了新的PC值为止

  44. 避免结构相关 ARM架构采用了资源重复的方法: • 采用分离式指令Cache和数据Cache。使取指和存储器的数据访问不再发生冲突。同时也解决了相应的数据通路问题。 • ALU中采用单独加法器来完成地址计算。使执行周期的运算不再产生资源冲突。

  45. 数据相关 • 定向(也称为旁路或短路)技术。 • 流水线互锁(Pipeline Interlock)技术。 • 编译器的“流水线调度”(或“指令调度”)技术

  46. 控制相关 • 指令预测 • 尽早计算出分支转移成功时的PC值(即分支的目标地址)

More Related