51
节节节节 (4~15 节 ) 第第第 第第第 一: 节节节节 节节节 节节节 :() 第第第第 第第第第 第第第 :() 第第 第第第 第第第 :() or PAPER

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

  • Upload
    jonny

  • View
    119

  • Download
    6

Embed Size (px)

DESCRIPTION

节目预告 (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. 以太网,串口. 几个问题?. 有了开发板,我们能作什么? 我们成功的仿制出来,我们成功了吗? - PowerPoint PPT Presentation

Citation preview

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

节目预告(4~15 周 )

第一阶段:设计者

第二阶段:学生(复习)

第三阶段:工程师(案例)最后:考试(开卷) or PAPER

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

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

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

一个 Strong ARM 板卡

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

DATA ADDR controlMemory control

LCD port GPIO

USB Port

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

Memory sheet

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

NaNo PCI

LCD port

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

以太网,串口

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

几个问题?• 有了开发板,我们能作什么?• 我们成功的仿制出来,我们成功了吗?

• 我们是真正的设计者吗?

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

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

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

冯 · 诺依曼结构

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

哈佛体系结构

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

第二部分 ARM 的体系结构

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

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

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

关于 ARM

• ARM=Advanced RISC Machine– RISC 的典型代表– 32 位处理器技术– 嵌入式领域的主力军

• ARM 的产品– ARM 处理器内核,以 IP 的形式提供给 IC 生产厂家

• 硬核• 软核

– ARM 开发工具、 SOC 开发工具、评估板等– ARM 公司不生产芯片

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

2.1 ARM 的特点( 1 ) ARM 微处理器的主要特点

– 系列化: ARM7, ARM9, ARM10, …– 独特的指令系统

• 32 位架构,定长。– 32 位 ARM 指令– 16 位 Thumb 指令

• 大部分为单周期指令• 条件执行• Load/Store

– 流水线结构• ARM7 : 3 级流水线• ARM9 : 5 级流水线

– 高性能、低功耗

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

ARM 的特点( 2 ) ARM 微处理器的主要特点

– 支持 JTAG 调试– 7 种工作模式

• User : 用户模式,非特权• FIQ : 快速中断• IRQ : 普通中断• Supervisor 管理模式• Abort : 存取异常模式• Undef : 未定义指令模式• System : 系统模式

– 2 种工作状态• ARM• Thumb支持 ARM/Thumb 的交互工作

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

典型指令使用频度 指令类型 使用指令使用频度

数据传送类 43%

转 / 跳控制类 23%

算术运算类 15%

比较类 13%

逻辑运算类 5%

其他 1%

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

Thumb 指令集 • Thumb 是 16-bit 指令集

– 代码密度优化 (总代码大小约为 ARM 指令的 65% )

– 使用窄总线存储器时可以大大提高性能。– 是 ARM 指令集的一个子集。

• 核存在一个执行状态 – Thumb 状态– ARM 和 Thumb 之间切换使用 BX 指令

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

2.2 ARM 架构

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

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 逻辑 --- 提供片上断点和调试

点支持

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

ARM7TDMI 内核信号

ARM7TDMI内核

MCLK

nIRQ

nFIQ

nRESET

BUSEN

BIGEND

ISYNC

nWAIT

VDD

VSS

APE

DBE

协处理器接口

存储器管理

存储器接口

ABORT

nOPC

CPB

CPA

nCPI

nTRANS

nM[4:0]

MAS[1:0]

nRW

nMREQ

LOCK

SEQ

nENOUT

A[31:0]

DOUT[31:0]

DIN[31:0]

D[31:0]

电源

总线控制

时钟

配置

中断

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

ARM7TDMI 方框图

ARM7TDM内核

TAP 控制器

JTAG 接口

数据总线

控制信号

D[31:0]

地址总线A[31:0]

DIN[31:0]

DOUT[31:0]BUSSplitter

EmbeddedICE逻辑

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

ARM7TDMI 内核

乘法器

指令解码

地址自增器

nRESET

nMREQ

SEQ

ABORT

nIRQ

nFIQ

nRW

MAS[1:0]

LOCK

nCPI

CPA

CPB

nWAIT

MCLK

nOPC

BIGEND

ISYNC

nTRANS

nM[4:0]

D[31:0]

桶形移位器

32 位 ALU

DBE

写数据 寄存器

读数据 寄存器

地址寄存器

寄存器

A[31:0]ABE

控制 逻辑

PC Update

解码站

指令 解码

Incrementer

PC

A

Bus

B

Bus

ALU

Bus

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

外部地址产生

PC[31:2] ARM StatePC[31:1] Thumb State

ALU[31:0]

INC

自增器

A[31:0]

向量

0x1C

0x00

地址寄存器

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

2.3 ARM 处理器模式 处理器模式分为用户和系统模式,系统模式包括了:

快中断请求 FIQ ( Fast Interrupt Request )

中断请求 IRQ ( Interrupt Request ) 管理 SVC ( Supervisor ) 中止 Abort

未定义 Undefined 等几种模式。

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

模式

用户 系统 中止 未定义 中断

R0 R0 R0 R0 R0 R0

R1 R1 R1 R1 R1 R1

R2 R2 R2 R2 R2 R2

R3 R3 R3 R3 R3 R3

R4 R4 R4 R4 R4 R4

R5 R5 R5 R5 R5 R5

R6 R6 R6 R6 R6 R6

R7 R7 R7 R7 R7 R7

R8 R8 R8 R8 R8 R8_fiq

R9 R9 R9 R9 R9 R9_fiq

R10 R10 R10 R10 R10 R10_fiq

R11 R11 R11 R11 R11 R11_fiq

R12 R12 R12 R12 R12 R12_fiq

R13 R13 R13_abt R13_und R13_irq R13_fiq

R14 R14 R14_abt R14_und R14_irq R14_fiq

PC PC PC PC PC PC

CPSR CPSR CPSR CPSR CPSR CPSR

SPSR_abt SPSR_und SPSR_irq SPSR_fiq

快中断管理

R0

R1

R2

R3

R4

R5

R6

R7

R8

R9

R10

R11

R12

R13_svc

R14_svc

PC

CPSR

SPSR_svc

异常模式

特权模式

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

• r0-r15 为 32 位通用寄存器,其中,r15 常用作程序计数器 PC 、 r14 常用作链接寄存器 LR 、 r13 常用作堆栈指针 SP

• 当前程序状态寄存器 CPSR(Current Program Status Register)

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

CPSR 1 、条件码标识N :负数标识Z :结果为零标识 C :进位位标识V :溢出标识*Q : DSP 的溢出 / 饱和(选用)2 、控制位I : IRQ 中断禁止位F : FIQ 快中断禁止位 T : Thumb 位Mode :处理器工作模式

保护程序状态寄存器 SPSR ( Saved Program Status Register )是处理器系统模式下保存当前程序状态寄存器 CPSR 的内容。

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

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

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

R0

R1

R2

R3

R4

R5

R6

R7

R8

R9

R10

R11

R12

SP(R13)

LR(R14)

PC(R15)

CPSR

SPSR

R0

R1

R2

R3

R4

R5

R6

R7

SP

LR

PC

CPSR

SPSR

Thumb状态 ARM状态

低寄存器

高寄存器

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

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

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

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

异常类型异常类型 处理器模式 异常向量地址 优先级

复位 管理 0×000000001 (最

高)

未定义指令 未定义 0×00000004 6

软件中断( SWI ) 管理 0×00000008 6

预取中止(取指令存储器中止) 中止 0×0000000C 5

数据中止(数据访问存储器中止) 中止 0×00000010 2

中断 IRQ 中断 IRQ 0×00000018 4

快中断 FIQ 快中断 FIQ 0×0000001C 3

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

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

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

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 ),并返回该未定义指令的下一条指令

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

2.5.3 软件中断 SWI 软件中断 SWI 指令进入管理模式,该指令常用于调用操作系统,故常称为“管理调用”( supervisor call )

r14_svc=addre of next instruntion after the SWI instructionSPSR_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 指令后的下一条指令

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

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值。

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

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 来返回。

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

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 的值,并继续执行被中断的程序。

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

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 的值,再继续执行被中断的程序。

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

2.6 ARM 的流水线结构 计算机中的一条指令的执行可以分若干个阶段: 1.取指,从存储器中取出指令( fetch ) 2.译码,指令译码( dec ) 3.取操作数,假定操作数从寄存器组中取( re

g ) 4. 执行运算( ALU ) 5. 存储器访问,操作数与存储器有关( mem ) 6. 结果写回寄存器( res ) 而各个阶段的操作相对都是独立的。因此,可以采用流水线的重叠技术,可以大大提高系统的性能

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

2.6.1 指令流水线

Fetch

Decode

Execute

从存储器中读取指令

解码指令

寄存器读(从寄存器 Bank)移位及 ALU 操作寄 存 器 写 ( 到 寄 存 器 Bank )

PC PC

PC - 4 PC-2

PC - 8 PC - 4

ARM Thumb

为增加处理器指令流的速度, ARM7 系列使用 3 级流水线 .

–允许多个操作同时处理,比逐条指令执行要快。

PC 指向正被取指的指令,而非正在执行的指令

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

2.6.2 最佳流水线

该例中用 6 个时钟周期执行了 6 条指令所有的操作都在寄存器中(单周期执行)指令周期数 (CPI) = 1

操作

周期 1 2 3 4 5 6

ADD

SUB

MOV

AND

ORR

EOR

CMP

RSB

Fetch Decode Execute

Fetch Decode Execute

Fetch Decode Execute

Fetch Decode Execute

Fetch Decode Execute

Decode Execute

Fetch Decode

Fetch

Fetch

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

2.6.3 LDR 流水线举例

周期

操作

1 2 3 4 5 6

Fetch Decode ExecuteFetch Decode Execute

Fetch Decode Execute Data WritebackFetch Decode Execute

Fetch Decode

Fetch

ADD

SUB

LDR

MOV

AND

ORR

• 该例中,用 6 周期执行了 4 条指令

• 指令周期数 (CPI) = 1.5

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

2.6.4 ARM 的流水线设计 • 流水线的结构相关 — 某些指令在流水线中重叠执行时,产生资源冲突 • 流水线的数据相关 — 当一条指令需要前面指令的执行结果,而这些指令均

在流水线中重叠执行时,就可能引起流水线的数据相关

• 流水线的控制相关 —当流水线遇到分支指令和其他会改变 PC 值

的指令时就会发生控制相关。一旦流水线检测某条指令是分支指令,就暂停分支指令之后的所有指令,直到分支指令确定了新的 PC 值为止

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

避免结构相关 ARM 架构采用了资源重复的方法:• 采用分离式指令 Cache 和数据 Cache 。使取指和存储器的数据访问不再发生冲突。同时也解决了相应的数据通路问题。

• ALU 中采用单独加法器来完成地址计算。使执行周期的运算不再产生资源冲突。

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

数据相关 • 定向(也称为旁路或短路)技术。 • 流水线互锁( Pipeline Interlock )技术。

• 编译器的“流水线调度”(或“指令调度”)技术

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

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

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

祝国庆快乐!

大家注意安全!