第 5 章 arm 及 xscale 介绍

87
1 5 5 ARM ARM XScale XScale

Upload: geri

Post on 13-Jan-2016

109 views

Category:

Documents


0 download

DESCRIPTION

第 5 章 ARM 及 XScale 介绍. ARM 微处理器概述. ARM(Advanced RISC Machines) ,既可以认为是一个公司的名字,也可以认为是对一类微处理器的通称,还可以认为是一种技术的名字。 - PowerPoint PPT Presentation

TRANSCRIPT

Page 1: 第 5 章   ARM 及 XScale 介绍

1

第第 55 章 章 ARMARM及及 XScaleXScale介绍介绍

Page 2: 第 5 章   ARM 及 XScale 介绍

ARMARMARMARM

2

ARM 微处理器概述

Page 3: 第 5 章   ARM 及 XScale 介绍

ARMARMARMARM

3

ARM(Advanced RISC Machines) ,既可以认为是一个公司的名字,也可以认为是对一类微处理器的通称,还可以认为是一种技术的名字。 1991年 ARM 公司成立于英国剑桥,主要出售芯片设计技术的授权。目前,采用 ARM 技术知识产权 (IP)核的微处理器,即我们通常所说的 ARM 微处理器,已遍及工业控制、消费类电子产品、通信系统、网络系统、无线系统等各类产品市场,基于 ARM 技术的微处理器应用约占据了 32位 RISC 微处理器 75% 以上的市场份额, ARM 技术正在逐步渗入到我们生活的各个方面。

Page 4: 第 5 章   ARM 及 XScale 介绍

ARMARMARMARM

4

ARM 公司是专门从事基于 RISC 技术芯片设计开发的公司,作为知识产权供应商,它本身不直接从事芯片生产,靠转让设计许可,由合作公司生产各具特色的芯片,世界各大半导体生产商从 ARM 公司购买其设计的ARM 微处理器核,根据各自不同的应用领域,加入适当的外围电路,从而形成自己的 ARM 微处理器芯片进入市场。 目前,全世界有几十家大的半导体公司都使用 ARM公司的授权,因此既使得 ARM 技术获得更多的第三方工具、制造、软件的支持,又使整个系统成本降低,从而使产品更容易进入市场被消费者所接受,更具有竞争力。

Page 5: 第 5 章   ARM 及 XScale 介绍

ARMARMARMARM

5

ARM 处理器系列

下面所列的是 ARM 微处理器的几个系列,以及其他厂商基于 ARM 体系结构的处理器,这些处理器除了具有 ARM 体系结构的共同特点以外,每一个系列的 ARM 微处理器都有各自的特点和应用领域。

◆ ARM7 系列 ◆ ARM9 系列 ◆ ARM9E 系列 ◆ ARMl0E 系列 ◆ SecurCore 系列 ◆ Intel的 Xscale

◆ Intel的 StrongARM

Page 6: 第 5 章   ARM 及 XScale 介绍

ARMARMARMARM

6

Xscale 处理器

Xscale 处理器是基于 ARMv5TE 体系结构的解决方案,是一款性能全、性价比高、功耗低的处理器。它支持 16 位的 Thumb 指令和 DSP 指令集 , 已使用在数字移动电话、个人数字助理和网络产品等场合。Xscale 处理器是 Intel 目前主要推广的一款ARM 微处理器。

Page 7: 第 5 章   ARM 及 XScale 介绍

ARMARMARMARM

7

RISC 体系结构

ARM 处理器实现加载/存储 (load/store)体系结构是典型的 RISC 处理器。只有加载和存储指令可以访问存储器。数据处理指令只对寄存器的内容进行操作。

Page 8: 第 5 章   ARM 及 XScale 介绍

ARMARMARMARM

8

精简指令集计算机 RISC (Reduced Instruction Set Computer) 结构的产生是相对于传统的复杂指令集计算机 CISC (Complex Instruction Set Computer) 结构而言的。

传统的 CISC 计算机的指令集随着计算机的发展而引入了各种各样的复杂指令 , 使得指令集和为此要实现这些指令的计算机体系结构越来越复杂 ,已经不堪重负。

Page 9: 第 5 章   ARM 及 XScale 介绍

ARMARMARMARM

9

经过大量的研究和分析 , 发现在 CISC 的指令集中 , 各种指令的使用频度相差悬殊。

大概有 20% 的指令被反复使用 , 使用量约占整个程序的 80%; 而有 80%左右的指令则很少使用 , 其使用量约占整个程序的 20% 。这就是所谓的 20%—80%定律。

Page 10: 第 5 章   ARM 及 XScale 介绍

ARMARMARMARM

10

RISC 特点如下:指令规整、对称、简单。指令小于 100条,基本寻

址方式有 2~3 种。单周期指令。指令字长度一致,单拍完成,便于流水操作 ;

ARM7 三级流水线:取指、译码、执行;ARM9 五级流水线;ARMl0 六级流水线。大量的寄存器。寄存器不少于 32 个。数据处理器的

指令只对寄存器的内容操作。只有加载/存储指令可以访问存储器。

Page 11: 第 5 章   ARM 及 XScale 介绍

ARMARMARMARM

11

几种常用的调试方法指令集模拟器

一种利用 PC机端的仿真开发软件模拟调试的方法。驻留监控软件

驻留监控程序运行在目标板上, PC机端调试软件可通过并口、串口、网口与之交互,以完成程序执行、存储器及寄存器读写、断点设置等任务JTAG仿真器

通过 ARM芯片的 JTAG边界扫描口与 ARM核进行通信,不占用目标板的资源,是目前使用最广泛的调试手段在线仿真器

使用仿真头代替目标板上的 CPU,可以完全仿真 ARM芯片的行为。但结构较复杂,价格昂贵,通常用于 ARM硬件开发中

Page 12: 第 5 章   ARM 及 XScale 介绍

ARMARMARMARM

12

什么是 JTAG?

JTAG是 Joint Test Action Group的缩写是IEEE1149.1标准

JTAG的建立使得集成电路固定在 PCB上,只通过边界扫描便可以被测试

在 ARM7TDMI处理器中,可以通过 JTAG直接控制ARM的内部总线, IO口等信息,从而达到调试的目的

Page 13: 第 5 章   ARM 及 XScale 介绍

ARMARMARMARM

13

Page 14: 第 5 章   ARM 及 XScale 介绍

ARMARMARMARM

14

ARM的 JTAG调试结构

Page 15: 第 5 章   ARM 及 XScale 介绍

ARMARMARMARM

15

ARM的 JTAG调试接口1、 ARM的 JTAG调试结构一个典型的 ARM 基于 JTAG调试结构如图所示。

Debug 主控端

协议转换器

调试目标机 处理器的开发系统

负责转换 Debug 主控端发出的高级 ARM调试指令为底层的和 ARM 内核通信的

运行ARM公司或第三方提供的调试软件的PC机

Page 16: 第 5 章   ARM 及 XScale 介绍

ARMARMARMARM

16

Debug 主控( Host)通常是运行有 ARM 公司或者第三方提供的调式软件的 PC ,通常用的调试软件有ARM Debug for Window(ADW), Linux 下的 arm-elf-gdb 等。通过这些调试软件,可以发送高级的 ARM 指令,比如:设置断点,读写存储器,单步跟踪,全速运行等。

Page 17: 第 5 章   ARM 及 XScale 介绍

ARMARMARMARM

17

协议转换器( Protocol converter)负责转换 Debug主控端发出的高级 ARM调式命令为底层的和 ARM 内核通信的 JTAG命令。

Debug 主控端和协议转换器之间的介质可以有很多种,比如:以太网, USB, RS-232 ,并口等。主控端和协议转换器之间的通信协议最典型的就是 ARM 公司提供的 Angle标准,也可以是第三方厂家自己定义的标准。

关于 Angle 的协议,请参考 ARM SDT和ADS, ajj 公司的 OpenICE32,EPI 公司的 Jeeni 等。

Debug 目标板就是指系统的调试对象。

Page 18: 第 5 章   ARM 及 XScale 介绍

ARMARMARMARM

18

JTAG 的典型信号

TMS: 测试模式选择( Test Mode Select),通过 TMS信号控制 JTAG状态机的状态TCK : JTAG的时钟信号TDI:数据输入信号TDO :数据输出信号nTRST: JTAG复位信号,复位 JTAG的状态机和内部的宏单元( Macrocell)

Page 19: 第 5 章   ARM 及 XScale 介绍

ARMARMARMARM

19

JTAG与 Angel

JTAG调试:协议转换器解释上位机传送过来的命令,通过 JTAG控制 ARM执行。Angel调试:协议转换器可以直接做为目标板的Firmware的一部分。直接执行从宿主机传送过来的调试命令;并回送相应的数据。Angel可以节省专门的 JTAG仿真器,但是,它需要软件,或者是嵌入式操作系统的支持,做不到完全的实时仿真。而 JTAG仿真是通过硬件和控制 ARM的 EmbeddedICE实现的,可以做到实时仿真。

Page 20: 第 5 章   ARM 及 XScale 介绍

ARMARMARMARM

20

ARM 微处理器的体系结构

Page 21: 第 5 章   ARM 及 XScale 介绍

ARMARMARMARM

21

数据和指令类型

ARM 采用的是 32 位架构。ARM 约定:

Byte: 8 bit

Halfword: 16 bits(2 bytes)

Word: 32 bits(4 bytes)

大部分 ARM core提供:ARM 指令集 (32-bit)

Thumb 指令集 (16-bit)

Page 22: 第 5 章   ARM 及 XScale 介绍

ARMARMARMARM

22

数据类型

字(Word)字的长度为 32 位,而在 8位 /16 位处理器体系结构中,字的长度一般为 16 位,请注意区分。半字 (Half-Word)

半字的长度为 16 位,与 8位 /16 位处理器体系结构中字的长度一致。字节( Byte)各种处理器体系结构中,字节的长度均为 8 位。

Page 23: 第 5 章   ARM 及 XScale 介绍

ARMARMARMARM

23

ARM 微处理器的工作状态

从编程的角度看 ,ARM 微处理器的工作状态一般有两种 ,并可在两种状态之间切换 :

ARM状态,此时处理器执行 32 位的字对齐的ARM 指令; Thumb状态,此时处理器执行 16 位的、半字对齐的 Thumb 指令。

Page 24: 第 5 章   ARM 及 XScale 介绍

ARMARMARMARM

24

ARM 处理器在两种工作状态之间可以切换:进入 Thumb状态。

当操作数寄存器的状态位 (地址的最低位,即位 [0])为 1时,执行 BX 指令进入 Thumb状态。如果处理器在Thumb状态进入异常,则当异常处理(IRQ、 FIQ、 Undef、 Abort 和 SWI)返回时,自动转换到 Thumb状态。

进入 ARM状态。 当操作数寄存器的状态位 (位 [0])为 0时,执行 BX指令进入 ARM状态。处理器进行异常处理 (IRQ、 FIQ、Reset、 Undef、 Abort 和 SWI ARM状态执行 ) 。在此情况下,把 PC 放人异常模式链接寄存器中。从异常向量地址开始执行也可以进入 ARM状态。

Page 25: 第 5 章   ARM 及 XScale 介绍

ARMARMARMARM

25

处理器工作模式

ARM 微处理器支持 7 个基本工作模式,分别为: 用户模式 (User):非特权模式,大部分任务执行在这种模式, ARM 处理器正常的程序执行状态。快速中断模式 (FIQ): 当一个高优先级 (fast)中断产生时将会进入这种模式,用于高速数据传输或通道处理。 外部中断模式( IRQ):当一个低优先级 (normal)中断产生时将会进入这种模式,用于通用的中断处理。 管理模式( Supervisor):当复位或软中断指令执行时将会进入这种模式,操作系统使用的保护模式,系统复位后的缺省模式。

Page 26: 第 5 章   ARM 及 XScale 介绍

ARMARMARMARM

26

中止模式 (Abort):当存取异常时将会进入这种模式。

1. 指令中止模式:指令预取终止时进入该模式。 2. 数据访问中止模式:当数据访问终止时进入该模式,可用于虚拟存储及存储保护。

指令未定义模式 (Undef): 当执行未定义指令时会进入这种模式,支持硬件协处理器指令的软件仿真。系统模式 (System):使用和 User模式相同寄存器集的特权模式,运行具有特权的操作系统任务。

Page 27: 第 5 章   ARM 及 XScale 介绍

ARMARMARMARM

27

ARM 微处理器的运行模式可以通过软件改变,也可以通过外部中断或异常处理改变。

大多数的应用程序运行在用户模式下,当处理器运行在用户模式下时,某些被保护的系统资源是不能被访问的。

除用户模式以外,其余的所有 6 种模式称为非用户模式或特权模式 (Privileged Modes);

其中除去用户模式和系统模式以外的 5 种又称为异常模式 (Exception Modes) ,常用于处理中断或异常 , 以及需要访问受保护的系统资源等情况。

Page 28: 第 5 章   ARM 及 XScale 介绍

ARMARMARMARM

28

超级模式( Supervisor)

多种特权模式变化 用户程序的运行模式

复位后的缺省模式 主要完成各模式的堆栈设置,注意不要进入用户模式

一般为用户模式

User

处理器模式

处理器启动时的模式转换图

Page 29: 第 5 章   ARM 及 XScale 介绍

ARMARMARMARM

29

寄存器

ARM 的中央寄存器集是 16 个用户寄存器 R0 – R15 。这些寄存器均是32 位宽度, R0 – R12没有其他特殊功能,寄存器 R13 – R15在 CPU中有特殊功能。

R13 被用作堆栈指针 (stack pointer, SP) ,保存当前处理器模式的堆栈的栈顶。

R14 被称为链接寄存器 (link register, LR) ,保存调用子函数的返回地址。

R15 是程序计数器 (program counter, PC) 。其内容是处理器要取的下一条指令的地址。

Page 30: 第 5 章   ARM 及 XScale 介绍

ARMARMARMARM

30

ARM状态下的寄存器组织

程序状态寄存器:• CPSR

(current program status register)

当前的程序状态寄存器

• SPSR

(saved program status register)

备份的程序状态寄存器

Page 31: 第 5 章   ARM 及 XScale 介绍

ARMARMARMARM

31

ARM 微处理器共有 37个 32 位寄存器。1 个用作 PC1 个用作 CPSR5 个用作 SPSR30 个为通用寄存器

当前处理器的模式决定着哪组寄存器可操作,任何模式都可以存取:

相应的 R0 – R12 子集相应的 R13(SP), R14(LR)相应的 R15(PC)相应的 CPSR

特权模式 (除 system模式 ) 还可存取:相应的 SPSR

6 个状态寄存器

Page 32: 第 5 章   ARM 及 XScale 介绍

ARMARMARMARM

32

ARM和 Thumb 寄存器组织图解

Page 33: 第 5 章   ARM 及 XScale 介绍

ARMARMARMARM

33

Thumb状态下和 ARM状态下的 R0~R7 是相同的

Thumb状态下和 ARM状态下的 CPSR 和所有的 SPSR 是相同的

Thumb状态下的 SP 对应于 ARM状态下的 R13

Thumb状态下的 LR 对应于 ARM状态下的 R14

Thumb状态下的程序计数器对应于 ARM状态下的 R15

(1) Thumb状态下的寄存器组织与 ARM状态下的寄存器组织的关系

Page 34: 第 5 章   ARM 及 XScale 介绍

ARMARMARMARM

35

(2) 访问 THUMB状态下的高位寄存器 (Hi-registers)

在 Thumb状态下,高位寄存器 R8~R15并不是标准寄存器集的一部分,但可使用汇编语言程序有限制地访问这些寄存器,将其用作快速的暂存器 .

使用带特殊变量的 MOV 指令 , 数据可以在低位寄存器和高位寄存器之间进行传送 , 高位寄存器的值可以使用CMP和 ADD 指令进行比较或加上低位寄存器中的值。

Page 35: 第 5 章   ARM 及 XScale 介绍

ARMARMARMARM

36

ARM 体系结构包含一个当前程序状态寄存器 (CPSR)和 5 个备份的程序状态寄存器 (SPSRs) 。备份的程序状态寄存器用来进行异常处理,其功能包括:保存 ALU中的当前操作信息。控制允许和禁止中断。设置处理器的运行模式。

程序状态寄存器每一位的安排如图所示.

(3) 程序状态寄存器

Page 36: 第 5 章   ARM 及 XScale 介绍

ARMARMARMARM

37

程序状态寄存器的格式

Page 37: 第 5 章   ARM 及 XScale 介绍

ARMARMARMARM

38

① 条件码标志 (Condition Code Flags)

N、 Z、 C、 V均为条件码标志位。它们的内容可被算术或逻辑运算的结果所改变,并且可以决定某条指令是否被执行。在 ARM状态下,绝大多数的指令都是有条件

执行的。在 Thumb状态下.仅有分支指令是有条件执行的。

Page 38: 第 5 章   ARM 及 XScale 介绍

ARMARMARMARM

40

运行模式位 M[4:0]:M0、M1 、 M2、M3、M4是模式位。这些位决定了处理器的运行模式。具体含义如下。

由表可知,并不是所有的运行模式位的组合都是有效的,其他的组合结果会导致处理器进入一个不可恢复的状态。

Page 39: 第 5 章   ARM 及 XScale 介绍

ARMARMARMARM

41

异常

异常 (exception) 由内部或外部源产生以引起处理器处理一个事件,即当正常的程序执行流程发生暂时的停止时。例如,外部中断或试图执行未定义指令都会引起异常。在处理异常之前,处理器状态必须保留,以便在异常处理程序完成后,原来的程序能够重新执行。

处理器允许多个异常同时发生,它们将会按固定的优先级进行处理。

ARM 支持 7 种类型的异常。列出了异常的类型以及处理这些异常的处理器模式。异常出现后,强制从异常类型对应的固定存储器地址开始执行程序。这些固定的地址称为异常向量 (Exception Vectors) 。

Page 40: 第 5 章   ARM 及 XScale 介绍

ARMARMARMARM

42

ARM 体系结构所支持的异常类型

Page 41: 第 5 章   ARM 及 XScale 介绍

ARMARMARMARM

43

异常向量表( Exception Vectors)

Page 42: 第 5 章   ARM 及 XScale 介绍

ARMARMARMARM

44

异常优先级( Exception Priorities)

Page 43: 第 5 章   ARM 及 XScale 介绍

ARMARMARMARM

45

高端向量

一些 ARM 实现允许异常向量的定位由 32 位地址空间低端的正常地址范围 Ox00000000~Ox000000lC ,移到接近于地址空间高端的另一地址范围 0xFFFF0000~ 0xFFFF00lC 。

这些改变后的地址位置称为高端向量。

Page 44: 第 5 章   ARM 及 XScale 介绍

ARMARMARMARM

46

异常的进入和退出

只要正常的程序流程被暂时停止 ,则异常发生,例如服务外部的中断。

在异常被处理之前,必须保存当前的处理器状态,以便当处理程序完成后,原来的程序能重新开始。

如果几种异常同时发生,则对它们按固定的次序处理,可参考异常优先级。

Page 45: 第 5 章   ARM 及 XScale 介绍

ARMARMARMARM

47

当异常产生时, ARM core:拷贝 CPSR到 SPSR_<mode>

设置适当的 CPSR 位:改变处理器状态进入 ARM态改变处理器模式进入相应的异常模式设置中断禁止位禁止相应中断 (如果需要 )

保存返回地址到 LR_<mode>

设置 PC 为相应的异常向量

Page 46: 第 5 章   ARM 及 XScale 介绍

ARMARMARMARM

48

返回时,异常处理需要:从 SPSR_<mode>恢复 CPSR

从 LR_<mode>恢复 PC

Note:这些操作只能在 ARM态执行

Page 47: 第 5 章   ARM 及 XScale 介绍

ARMARMARMARM

49

Xscale 系统结构 PXA255 处理器结构与特性

XSBase255 开发平台介绍

Page 48: 第 5 章   ARM 及 XScale 介绍

ARMARMARMARM

50

Xscale系统结构

Page 49: 第 5 章   ARM 及 XScale 介绍

ARMARMARMARM

51

Xscale系统结构 ---- Xscale超级流水线

PXA255拥有 7级超级流水线,主要由主流水线、 MAC流水线和内存访问流水线组成。

Page 50: 第 5 章   ARM 及 XScale 介绍

ARMARMARMARM

52

Xscale系统结构 ---- Xscale超级流水线

主流水线 F1/F2 指令读取 (给下一级的指令译码级提交下一条要执行的指令。是许多重要功能单元所处之地。)ID 指令译码 (接收 IFU中的指令字节和发送到 RF 寄存器文件 / 移位级的译码寄存器信息)RF 寄存器文件 / 移位级(主要对寄存器文件单元或者 RFU 进行读写,为 ALU 操作、 MAC 操作、内存数据 Cache 的读取和协处理器接口提供相关数据)X1执行级 (执行 ALU 计算、条件指令执行和分支目标确定)

X2执行级 (包含程序状态寄存器 PSRs 并选择哪些需要在 XWB级写入 RFU中。)XWB写回级(当 一条指令到达写回级时将写回寄存器文件单元RFU)

Page 51: 第 5 章   ARM 及 XScale 介绍

ARMARMARMARM

53

Xscale系统结构 ---- Xscale超级流水线

MAC流水线 执行所有的乘 /累加指令。它执行 40 位累加寄存器 acc0 和能把指令值转化成普通的 ARM 寄存器值。 MAC 不是真正的一条流水线,指令的类型和资源决定它所需的周期数。不会同时两条指令出现在 MAC流水线上。当 MAC 在处理一条指令的时候其他的指令不允许进出到M1中,除非原来的指令在下一个周期中处理完成。 MAC单元执行开始于 M1 ,接受 2个 32 位操作数, N 个周期后完成并返回寄存器文件。

Page 52: 第 5 章   ARM 及 XScale 介绍

ARMARMARMARM

54

Xscale系统结构 ---- Xscale超级流水线

内存访问流水线 内存流水线有 D1、 D2和 DWB3级构成,独立完成指令的装载和存储。在执行完 X1后开始执行 D1级,计算有效的存 /取地址;在 D2级数据 cache 和小型数据 cache返回目的数据; DWB级进行填入缓冲器和写入缓冲器操作。

Page 53: 第 5 章   ARM 及 XScale 介绍

ARMARMARMARM

55

Xscale系统结构 ---- Xscale乘 /累加 MAC

Xscale 为了多媒体的应用,支持 SIMD.

比如MIAPH 指令,它执行 2个 16x16 位乘法,然后与 40 位累加器相加,即 2个 32 位寄存器可以看作为 2对 16 位寄存器,先高 16 位相乘并与累加器进行相加;低 16 位也相乘后与累加器相加,这 2个结果相加后再送到寄存器文件中。

Page 54: 第 5 章   ARM 及 XScale 介绍

ARMARMARMARM

56

Xscale系统结构 ---- 内存管理

提供内存访问保护和虚拟地址到物理地址的转换 支持指令 TLB

支持数据 TLB

(Translation Look-aside Buffer, TLB ,转换搜索缓存 )

Page 55: 第 5 章   ARM 及 XScale 介绍

ARMARMARMARM

57

Xscale系统结构 ---- 指令 Cache

容量为 32K

32 路组相联 每路由 8 个字 (32 字节 ) 和一位有效位

(思考:有几组 ?)

循环替换算法

Page 56: 第 5 章   ARM 及 XScale 介绍

ARMARMARMARM

58

Xscale系统结构 ---- 指令 Cache

Page 57: 第 5 章   ARM 及 XScale 介绍

ARMARMARMARM

59

Xscale系统结构 ---- 数据 Cache

容量 32KB

32 路组相联 每路包含 32 字节和 1 个有效位 , 还包含 2个dirty 位 ,分别对应低 16 位字节和高 16 位字节 采用循环替换法

Page 58: 第 5 章   ARM 及 XScale 介绍

ARMARMARMARM

60

Xscale系统结构 ---- 转移目标缓冲器 BTB  

BTB 由有 128 入口的直接映像 cache 构成 每个入口由 TAG分支地址、 DATA 数据目标地址和 2位历史位组成。

Page 59: 第 5 章   ARM 及 XScale 介绍

ARMARMARMARM

61

Xscale系统结构 ---- 性能监视

提供 2个 32 位的性能计数器,可以分别对 2 个独立的事件同时监视。 另外还有 1个 32 位时钟计数器用来联合性能计数器记录内核时钟数。

当计算突发事件时计数器将监测到一个特定事件的发生;当测量持续事件时计数器将记录处理器时钟周期数当指定条件为真时事件发生。

所有的这些计数器都有对应的 IRQ和 FIQ资源。Xscale 的性能监视模块可以通过协处理器 CP14 的寄存器 0-3 进行控制。

Page 60: 第 5 章   ARM 及 XScale 介绍

ARMARMARMARM

62

Xscale系统结构 ---- 电源管理

Xscale 核合并电源管理和时钟管理来控制时钟和管理电源,它控制每一个运行模式的时钟频率和管理不同电源管理模式下的性能与功耗间的优化。

Page 61: 第 5 章   ARM 及 XScale 介绍

ARMARMARMARM

63

Xscale系统结构 ---- 调试

通讯控制模块通过 JTAG 指令来建立目标机和宿主机的握手

硬件断点模块 有指令和数据断点寄存器,由协处理器控制

跟踪缓冲模块 对程序历史记录以实现恢复异常和跳转

代码下载模块 代码下载到 I-Cache,调试代理程序实现读 /写

Page 62: 第 5 章   ARM 及 XScale 介绍

ARMARMARMARM

64

PXA255处理器结构与特性

Page 63: 第 5 章   ARM 及 XScale 介绍

ARMARMARMARM

65

PXA255处理器结构与特性

PXA255 除了采用 Xscale 内核,还具有以下特点: 内核工作频率: 200MHz、 300MHz和 400MHz

系统存储器接口 时钟和电源控制器 DMA 控制器 LCD 控制器 系统集成模块 串行通信口 多媒体通信口

Page 64: 第 5 章   ARM 及 XScale 介绍

ARMARMARMARM

66

PXA255处理器结构与特性

时钟模块:控制系统每一个模块的时钟频率优化计算处理和电源管理的功能。有三个寄存器:

核时钟设置寄存器 CCCR L:晶振频率至存储器频率倍因子,可以设置成

27、 32、 36、 40或 45 。 M:存储器频率至运行方式频率倍因子,可以设置成 1或 2 。 N:运行方式频率至快速方式频率因子,可以设置成

1.0、 1.5、 2.0或 3.0 。

时钟允许寄存器 CKEN

振荡器设置寄存器 OSCC

Page 65: 第 5 章   ARM 及 XScale 介绍

ARMARMARMARM

67

PXA255处理器结构与特性

电源管理模块 运行模式 快速模式 ( CCCR的 N)空闲模式 空闲模式没有改变时钟的产生。应用程序选择 PWRMODE 寄存器的M段来选择空闲方式。

睡眠模式 许多处理器内部单元功能关闭,实时时钟和电源管理模块继续工作

。通过使用 PWRMODE 寄存器来进入睡眠模式。33MHz空闲模式 在 33MHz空闲模式下其他所有的外设单元都不能使用包括

SDRAM、 LCD和 DMA 控制器。

Page 66: 第 5 章   ARM 及 XScale 介绍

ARMARMARMARM

68

PXA255处理器结构与特性

GPIO口 PXA255 可以使用和控制的 GPIO管脚有 81 个。使用 27 个寄存器可以配置这些 GPIO管脚的方向( 进或出 ) 、管脚功能、管脚的状态 (输出 ) 、管脚的高低电平检测 (输入 ) 和选择第二功能。许多 GPIO管脚的第二功能已经被处理器或外设配置使用。

Page 67: 第 5 章   ARM 及 XScale 介绍

ARMARMARMARM

69

PXA255处理器结构与特性

中断控制器

Page 68: 第 5 章   ARM 及 XScale 介绍

ARMARMARMARM

70

PXA255处理器结构与特性

实时时钟 RTC

使用实时时钟可以配置成频率很广的周期时钟信号,通常 RTC 设置 1Hz 信号输出用来当作系统时间的基准。 实时时钟芯片是 RTC4513

Page 69: 第 5 章   ARM 及 XScale 介绍

ARMARMARMARM

71

PXA255处理器结构与特性

DMA 控制器 (DMAC )DMAC有 16 个通道,从通道 0 到通道 15

在嵌入式 Linux中 DMA 在设备驱动上常常要用到。 DMA控制器对内存的访问和 CPU 的运行完全互斥,因此在DMA 控制器访问内存时 CPU 不访问内存。 DMA 控制器在传输数据上要比 CPU快得多,它的操作完全由硬件驱动,只要一个时钟周期就可以完成一个字节的传输。在 DMA 控制器暂时占住了内存, CPU仍能取指令,而许多指令的执行是不要求访问内存的,这样 CPU和 DMA 控制器之间有了一定的并行度,提高的综合效率。即使 CPU 要访问内存也可以在数据 cache中读取。

Page 70: 第 5 章   ARM 及 XScale 介绍

ARMARMARMARM

72

XSBase255 的配件

Page 71: 第 5 章   ARM 及 XScale 介绍

ARMARMARMARM

73

XSBase255硬件介绍

Page 72: 第 5 章   ARM 及 XScale 介绍

ARMARMARMARM

74

XSBase255硬件介绍

Page 73: 第 5 章   ARM 及 XScale 介绍

ARMARMARMARM

75

XSBase255 Linux BSP 介绍

Page 74: 第 5 章   ARM 及 XScale 介绍

ARMARMARMARM

76

XSBase255 Linux光盘内容

Page 75: 第 5 章   ARM 及 XScale 介绍

ARMARMARMARM

77

Xsbase255开发系统 ----硬件资源

项目 描述处理器 Intel XScale PXA255 400MHz

SDRAM Samsung 64Mbyte

Flash Intel strata flash 32MByte

以太网 CS8900A 10BaseT

声卡 AC’97 Stereo audio

显示 LG TFT LCD 6.4”( 640 * 480)

触摸屏 ADS7843 touch screen

USB Host 2 Slot

USB Slave 1 Slot

PCMCIA 1 Slot

实时时钟 Real time clock RTC4513

红外 HDSL3600

CF 1 Slot

MMC 1 Slot

Page 76: 第 5 章   ARM 及 XScale 介绍

ARMARMARMARM

78

Xsbase255开发系统 ----硬件资源

存储器接口主要可以分成 3 类 :SDRAM SDRAM有 4块区域静态 FLASH静态存储器有 6块卡存储器卡存储器有 2块。

Page 77: 第 5 章   ARM 及 XScale 介绍

ARMARMARMARM

79

Xsbase255开发系统 ----硬件资源

LCD 接口 PXA255 处理器内置的 LCD 控制器支持被动 (DSTN)或主动 (TFT)模式的显示器,还支持单色或多种的彩色像点格式 ,支持单屏或双屏显示;被动彩色方式有 65536 种颜色 ( 使用16位 TMED抖动算法 ) ,主动彩色方式有 65536 种颜色(16 位,绕过调色板 ) ,显示可以达到 1024x1024 ,推荐使用最大值 800x600;内置 2 个专用 DMA 通道。Xsbase255 系统使用的 LCD是 6.4’TFT 的彩色显示屏,分辨率是 640x480 。

Page 78: 第 5 章   ARM 及 XScale 介绍

ARMARMARMARM

80

Xsbase255开发系统 ----硬件资源

以太网接口 Xsbase255 开发系统采用 Cirrus Logic 公司CS8900A 以太网芯片,是符合 IEEE802.3协议的工业标准架构总线的一款低成本的以太网芯片。它高度集成了一些常用的部件比如:片内的RAM、 10BASE-T 传输和接受过滤器和 ISA总线接口等 。

Page 79: 第 5 章   ARM 及 XScale 介绍

ARMARMARMARM

81

Xsbase255开发系统 ----硬件资源

音频接口 PXA255 处理器包含 AC’97 控制单元,支持音频控制器 (AC-link) ,能通过串口传输数字音频、调制调解器、音频输入、控制寄存器和状态信息等。因为 PXA255 处理器内置了 AC’97 控制器,需要外扩一个音频解码芯片。Xsbase255 外扩了 Cirrus Logic CS4299 用作音频解码器。

Page 80: 第 5 章   ARM 及 XScale 介绍

ARMARMARMARM

82

Xsbase255开发系统 ----硬件资源

实时时钟 RTC

当关闭 Xsbase255 系统电源, RTC4513 可以通过一个电池来保持当前的时间。系统外扩了实时时钟芯片 RTC4513 和一个纽扣电池组成 RTC 电路 。

Page 81: 第 5 章   ARM 及 XScale 介绍

ARMARMARMARM

83

Xsbase255开发系统 ----硬件资源

串口 Xsbase 开发系统提供 1 个全功能的 (FF, Full Function)串口, 1 个蓝牙串口 (BT,Bluetooth)和1 个标准 UART(红外接口 ) 。它们使用 PXA255中的第二功能 GPIO 引脚。全功能串口支持Modem 控制功能,其最高波特率为 230.4Kb/s;蓝牙串口是一个高速 UART ,最高波特率为921.6Kb/s ,可连接蓝牙模块 。

Page 82: 第 5 章   ARM 及 XScale 介绍

ARMARMARMARM

84

Xsbase255开发系统 ----硬件资源

USB 接口 Xsbase255 开发系统有 1个 USB-Client 接口和 2个 USB-Host 接口 ( 其中一个是 mini USB 接口 ) 。 USB-Client 接口作为 USB 的从设备,一般与主设备如宿主机连接,用于下载数据和程序,也可以用作 USB网口来使用。 USB-Client 控制器 UDC 集成在 PXA255处理器内部。

USB-Host 接口作为 USB 的主设备,用于连接 USB 外设,例如 U盘、鼠标、键盘和摄像头等。

Page 83: 第 5 章   ARM 及 XScale 介绍

ARMARMARMARM

85

Xsbase255开发系统 ----硬件资源

扩展接口 1个 PCMCIA 接口1个 CF卡接口1个MMC卡接口120pin 的扩展接口。

Page 84: 第 5 章   ARM 及 XScale 介绍

ARMARMARMARM

86

PCMCIA

通常,台式机和服务器等用的网卡均不支持 PCMCIA标准, PCMCIA 是专门用在笔记本或 PDA 、数码相机等便携设备上的一种接口规范(总线结构)。也就是笔记本网卡通常都支持 PCMCIA规范,而台式机网卡则不支持此规范。 PCMCIA 是英文“ PERSONAL COMPUTER MEMORY CARD INTERNATIONAL ASSOCIATION” 的缩写, PCMCIA定义了三种不同型式的卡,它们的长宽都是 85.6×54mm ,只是在厚度方面有所不同。 Type I 是最早的 PC卡,厚 3.3mm 主要用于 RAM和 ROM; Type II将厚度增至 5.5mm 适用范围也大大扩展包括了大多数的 modem(调制解调器)和 faxmodem(传真调制解调器), LAN 适配器和其它电气设备; Type III则进一步增大厚度到 10.5mm 这种 PC卡主要用于旋转式的存储设备(例如硬盘)。 PCMCIA总线分为两类,一类为 16 位的 PCMCIA ,另一类为 32 位的 CardBus 。

Page 85: 第 5 章   ARM 及 XScale 介绍

ARMARMARMARM

87

CF卡

CF卡( Compact Flash)是 1994年由 SanDisk最先推出的。CF卡重量只有 14g ,仅纸板火柴般大小( 43mm x 36m x m3.3mm),是一种固态产品,也就是工作时没有运动部件。 CF卡采用闪存( flash)技术,是一种稳定的存储解决方案,不需要电池来维持其中存储的数据。对所保存的数据来说,CF卡比传统的磁盘驱动器安全性和保护性都更高;比传统的磁盘驱动器及Ⅲ型 PC卡的可靠性高 5到 10倍,而且 CF卡的用电量仅为小型磁盘驱动器的 5% 。这些优异的条件使得大多数数码相机选择 CF卡作为其首选存储介质。

Page 86: 第 5 章   ARM 及 XScale 介绍

ARMARMARMARM

88

MMC

MMC(MultiMedia Card)卡由西门子公司和首推 CF的SanDisk于 1997年推出。 1998年 1月十四家公司联合成立了MMC协会(MultiMedia Card Association 简称 MMCA),现在已经有超过 84 个成员。 MMC 的发展目标主要是针对数码影像、音乐、手机、 PDA 、电子书、玩具等产品,是把存贮单元和控制器一同做到了卡上,智能的控制器使得 MMC保证兼容性和灵活性。 MMC 被设计作为一种低成本的数据平台和通讯介质,它的接口设计非常简单:只有 7针!接口成本低于 0.5美元,相比之下SmartMedia和Memory Stick 的接口成本都要高于 1美元。在接口中,电源供应是 3针,而数据操作只用 3针的串行总线即可( SPI模式再加上 1针用于选择芯片)。MMC 的操作电压为 2.7伏到 3.6伏,写 /读电流只有 27mA和23mA ,功耗很低。

Page 87: 第 5 章   ARM 及 XScale 介绍

ARMARMARMARM

89

Xsbase255开发系统 ---- 软件资源

Linux( Linux2.4.18 )

FLASH (32M 32bit)

Root Filesystem

Kernel Image

Reserved

Bootloader

0x0200 0000

0x001C 0000

0x000C 0000

0x0004 0000

0x0000 0000

30 MByte

1MByte

512KByte

256KByte