670 likes | 825 Views
嵌入式系统 An Introduction to Embedded System 第 2 课 PXA255 开发平台 陈文智 浙江大学计算机学院 2009 年 4 月. 回顾. 嵌入式系统概念 嵌入式系统发展历程 嵌入式系统构成要素 嵌入式系统应用领域 浙大 嵌入式系统教学与科研. 提纲. ARM 嵌入式处理器 StrongARM 架构处理器 XScale 架构处理器 PXA255 处理器结构与特性 Xsbase255 开发系统. 概述.
E N D
嵌入式系统 An Introduction to Embedded System 第2课 PXA255开发平台 陈文智 浙江大学计算机学院 2009年4月
回顾 嵌入式系统概念 嵌入式系统发展历程 嵌入式系统构成要素 嵌入式系统应用领域 浙大嵌入式系统教学与科研
提纲 ARM嵌入式处理器 StrongARM架构处理器 XScale架构处理器 PXA255处理器结构与特性 Xsbase255开发系统
概述 Advanced RISC Machines • ARM公司虽然只成立10多年,但在1999年因移动电话火爆市场,其32位RISC处理器占市场份额超过了50%。 • ARM公司商业模式的强大之处在于其价格合理,全世界范围有超过100个合作伙伴--包括半导体工业的著名公司。 • ARM公司专注于设计,其内核耗电少、成本低、功能强,特有16/32位双指令集。ARM已成为移动通信、手持计算、多媒体数字消费等嵌入式解决方案的RISC标准。
ARM系列产品表示 • ARM系列产品丰富,以ARM7为例,内核ARM7TDMI表示为: • ARM7: ARM系列具有32位整数运算核 • T: 内含16位压缩指令集Thumb • D: 支持片内Debug调试 • M: 采用增强型乘法器(Multiplier) • I: 内含嵌入式ICE宏单元 • ARM系列产品的后缀提供了各种形式与功能的选择: • -S:可综合的软核Softcore • -E:具有DSP的功能 • -J:Jazeller,允许直接执行Java字节码
ARM架构 • ARM架构自诞生至今,已经发生了很大的演变,至今已定义7种不同的版本: • V1版架构 • V2版架构 • V3版架构 • V4版架构 • V5版架构 • V6版架构 • V7版架构
V1版架构 • 该版架构只在原型机ARM1出现过,其基本性能: • 基本的数据处理指令(无乘法) • 字节、半字和字的LOAD/STORE指令 • 转移指令,包括子程序调用及链接指令 • 软件中断指令 • 寻址空间:64M字节(26位)
V2版架构 • 该版架构对V1版进行了扩展,如ARM2与ARM3(V2a版)架构,增加了以下功能: • 乘法和乘加指令 • 支持协处理器操作指令 • 快速中断模式 • SWP/SWPB的最基本存储器与寄存器交换指令 • 寻址空间:64M字节(还是26位)
V3版架构 • 把寻址空间增至32位(4G字节) • 增加了当前程序状态寄存器CPSR(Current Program Status Register)和程序状态保存寄存器SPSR(Saved Program Status Register)。 • 增加了中止(Abort)和未定义二种处理器模式。ARM6就采用该版架构。指令集变化如下: • 增加了MRS/MSR指令,以访问新增的CPSR/SPSR寄存器 • 增加了从异常处理返回的指令功能。
V4版架构 • V4版架构是目前应用最广的ARM体系结构,对V3版架构进行了进一步扩充。 • 引进了16位的Thumb指令集,使ARM使用更加灵活。 • ARM7、ARM8、ARM9和StrongARM都采用该版架构。指令集中增加了以下功能: • 符号化和非符号化半字及符号化字节的存/取指令 • 增加了16位Thumb指令集 • 完善了软件中断SWI指令的功能 • 处理器系统模式引进特权方式时使用用户寄存器操作 • 把一些未使用的指令空间捕获为未定义指令
V5版架构 • 在V4版基本上增加了一些新的指令,ARM10和XScale都采用该版架构,这些新增指令有: • 带有链接和交换的转移BLX指令 • 计数前导零CLZ指令,提高整数除法和重点优先级排队操作的效率 • BRKT中断指令(软中断) • 增加了信号处理指令(V5TE版) • 为协处理器增加更多可选择的指令
V6版架构 • 在芯片功耗和多媒体处理上有所突破。 • 增加多媒体扩展(SIMD变种)功能 • 在语音、视频、图像上的处理能力提高4倍 • 使用先进工艺使得芯片的功耗进一步降低。 • 该版本可以广泛应用于移动电话、PDA等手持设备
ARM处理器系列 • ARM7系列 • ARM9系列 • ARM9E系列 • ARM10E系列 • SecurCore系列 • Intel的Strong ARM系列 • Intel的XScale系列
如何对ARM处理器进行选型(1) • 操作系统需求 • ARM720T/ARM920T/ARM922T/ARM946T:有MMU,支持Linux,WinCE • ARM7TDMI:没MMU,uCLinux • 系统时钟控制器 • ARM7:20~133 MHZ • ARM9:100~233 MHZ • ARM10:700 MHZ • Cirrus Logic的EP7312: 只有一个主时钟频率,不能顾及UART和音频时钟的准确性。 • Philips的SAA7750: 分别为CPU核、UART/DSP/音频提供同频率时钟。
如何对ARM处理器进行选型(2) • USB接口 • USB控制器 • USB Host • USB Slave • GPIO • 数量的多少 • 是否和地址线、数据线、串口线等引线复用 • 中断控制器 • SAA7550: 所有GPIO都可以设置成FIQ或IRQ,可以选择上升沿、下降沿、高电平、低电平四种中断方式,使得IRDA、键盘等任务可以作为背景程序运行。
如何对ARM处理器进行选型(3) • Cirrus Logic的EP7312:只有四个外部中断源,每个中断源只能是低电平或高电平中断,需用轮询方式。 • IIS( Integrate Interface of Sound )接口 • 便于设计音频应用产品。 • nWAIT信号 • 与GAL芯片结合实现符合PCMCIA标准的WLAN卡和Bluetooth卡的接口,成本比PCMCIA专业控制芯片低。 • 可以扩展外部DSP协处理器。 • LCD控制器 • 设计手持式显示记录设备时,选用内置LCD控制器的ARM芯片较为合适。如S1C2410
如何对ARM处理器进行选型(4) • 电源管理 • 低功耗模式 • 睡眠模式 • DMA控制器 • 可以快速和外部设备交换数据,如硬盘等。 • 封装 • 主要有QFP/TQFP/PQFP/LQFP/BGA/LBGA等形式。 • BGA封装芯片面积小,但需要专用焊接设备,无法用双面板完成PCB布线,需要多层PCB板布线。
如何选择多芯核结构ARM芯片 • 多ARM核 (ARM + ARM) • Portal Player公司的PP5002: 集成两个ARM7TDMI,用于MP3。 • MinSpeed公司多款通信芯片:集成2~4个ARM7TDMI内核 • ARM + DSP • ARM公司的Piccolo DSP芯核 • OAK公司的16位定点DSP芯核 • TI公司的TMS320C5000系列DSP芯核 • Motorola公司的56K DSP核 • ARM + FPGA
主要的ARM芯片提供商 • Intel • Texas Instrument • Samsung Semiconductor • Freescale • Philips Semiconductor • Qualcomm • Atmel • Cirrus Logic • 华为、中兴正购买ARM芯核,设计自主版权专用芯片
提纲 ARM嵌入式处理器 StrongARM架构处理器 XScale架构处理器 PXA255处理器结构与特性 Xsbase255开发系统
StrongARM架构处理器 • StrongARM是Intel公司为手持式消费类电子设备和移动计算与通信的嵌入式处理器。 • 采用StrongARM架构的处理器有: • SA-1: StrongARM处理器内核 • SA-110: StrongARM处理器核 • SA-1100: 通用处理器MPU • SA-1110: 通用处理器MPU • IXP1200: 采用StrongARM核的网络处理器
StrongARM架构主要特性(1/2) • StrongARM处理器核 • 内核: SA-1、指令快存I-Cache、数据快存D-Cache、微小数据Cache、存储器管理单元IMMU和DMMU、读和写缓冲器 • 存储器控制模块 • 支持各种ROM、FLASH(闪存)、DRAM和SRAM、支持PCMCIA • 系统控制模块 • 通用可中断GPIO、看门狗定时计数器、间隔定时器、电源管理控制器、中断控制器、片上振荡器:2个(含锁相环)
StrongARM架构主要特性(2/2) • 外围控制模块 • LCD液晶驱动控制器、串行接口UART、红外接口IrDA、数字单频Codec接口 • 大量应用的是改进型SA-1110处理器。在SA-1100处理器基础上,增加了以下功能: • DMA控制器:6通道,以提高LCD显示和I/O传送的效率 • 实时时钟RTC • 串行外围接口SPI • 扩展了PS/2键盘与鼠标接口、USB的主机接口以及PCMCIA/CF接口。
提纲 ARM嵌入式处理器 StrongARM架构处理器 XScale架构处理器 PXA255处理器结构与特性 Xsbase255开发系统
XScale微架构处理器的时钟可以达1GHz、功耗1.6W,能达到1200MIPS,是最高端的嵌入式处理器之一XScale微架构处理器的时钟可以达1GHz、功耗1.6W,能达到1200MIPS,是最高端的嵌入式处理器之一 型号:IOP310、IOP321、PXA210 、PXA 25X、 PXA 26X、 PXA 27X 采用7/8级超级流水线 支持多媒体处理技术 指令快存(I-Cache): 32K字节 Intel XScale PXA255 • 数据快存(D-Cache) • 微小数据快存(Mini-DCache) • 指令存储器管理单元IMMU • 动态电源管理 • 数据存储器管理单元DMMU • 中断控制器 • 总线控制器 • 1G字节/秒、ECC协议 • 调试(Debug)接口
XScale系统结构---- XScale超级流水线 • PXA255拥有7级超级流水线,主要由主流水线、MAC流水线和内存访问流水线组成。是与SA的最大不同特点之一。
XScale系统结构---- XScale超级流水线 • 主流水线 • F1/F2指令读取 • ID指令译码 • RF寄存器文件/移位级 • X1执行级 • X2执行级 • XWB写回级
XScale系统结构---- XScale超级流水线 • MAC流水线 • 执行所有的乘/累加指令。它执行40位累加寄存器acc0和能把指令值转化成普通的ARM 寄存器值。 • 当MAC在处理一条指令的时候其他的指令不允许进入到M1中,除非原来的指令在下一个周期中处理完成(非流水)。 • MAC单元执行开始于M1,接受2个32位操作数,N个周期后完成并返回寄存器文件。
XScale系统结构---- XScale超级流水线 • 内存访问流水线 • 内存流水线有D1、D2和DWB3级构成,独立完成指令的装载和存储。 • 执行完X1后开始执行D1级,计算有效的存/取地址;在D2级数据cache和小型数据cache返回目的数据;DWB级进行填入缓冲器和写入缓冲器操作。
XScale系统结构---- XScale乘/累加MAC • XScale为了多媒体的应用,支持SIMD • 例如:MIAPH指令,执行2个16x16位乘法,然后与40位累加器相加,即2个32位寄存器可以看作为2对16位寄存器,先高16位相乘并与累加器进行相加;低16位也相乘后与累加器相加,这2个结果相加后再送到寄存器文件中。
XScale系统结构---- 内存管理 • 提供内存访问保护和虚拟地址到物理地址的转换 • 支持指令TLB • 支持数据TLB (Translation Look-aside Buffer,TLB,转换搜索缓存)
XScale系统结构---- 指令Cache • 容量为32K • 32路组相联 • 每路由8个字(32字节)和一位有效位 • (思考:有几组?) • 循环替换算法
XScale系统结构---- 数据Cache • 容量32KB • 32路组相联 • 每路包含32字节和1个有效位,2个dirty位,分别对应低16位字节和高16位字节 • 采用循环替换法
XScale系统结构---- 转移目标缓冲器BTB • BTB由有128入口的直接映像cache构成 • 每个入口由TAG分支地址、DATA数据目标地址和2位历史位组成。
XScale系统结构---- 性能监视 • 提供2个32位性能计数器,对2个独立事件同时监视。 • 1个32位时钟计数器,联合性能计数器记录内核时钟数。 • 当计算突发事件时计数器将监测到一个特定事件的发生; • 当测量持续事件时计数器将记录处理器时钟周期数当指定条件为真时事件发生。 • 所有的这些计数器都有对应的IRQ和FIQ资源。 • XScale的性能监视模块可以通过协处理器CP14的寄存器0-3进行控制。
XScale系统结构---- 电源管理 • XScale合并电源管理和时钟管理来控制时钟和管理电源。 • 控制每一个运行模式的时钟频率和管理不同电源管理模式下的性能与功耗间的优化。
XScale系统结构---- 调试 • 通讯控制模块 • 通过JTAG指令来建立目标机和宿主机握手 • 硬件断点模块 • 提供指令和数据断点寄存器,由协处理器控制 • 跟踪缓冲模块 • 对程序历史记录以实现恢复异常和跳转 • 代码下载模块 • 代码下载到I-Cache,调试代理程序实现读/写
提纲 ARM嵌入式处理器 StrongARM架构处理器 XScale架构处理器 PXA255处理器结构与特性 Xsbase255开发系统
PXA255处理器结构与特性 PXA255除了采用XScale内核,还具有以下特点: • 内核工作频率:200MHz、300MHz和400MHz • 系统存储器接口 • 时钟和电源控制器 • DMA控制器 • LCD控制器 • 系统集成模块 • 串行通信口 • 多媒体通信口
PXA255处理器结构与特性 • 时钟模块: • 包括以下5个主要时钟源: • 32.768kHz振荡器 • 3.6864MHz振荡器 • 可编程频率核心PLL • 95.85MHz固定频率的外设PLL • 147.46MHz固定频率PLL • 时钟管理模块包含3个寄存器 • 核时钟设置寄存器CCCR • 时钟允许寄存器CKEN • 振荡器设置寄存器OSCC
PXA255处理器结构与特性 • 电源管理模块 • 运行模式 • 快速模式 • 空闲模式 • 休眠,但仍监视片内片外的中断服务请求。 • 33MHz空闲模式 • 和其他空闲模式的区别:所有的外设单元都不能使用,包括SDRAM、LCD和DMA控制器。 • 睡眠模式 • 处理器内部单元功能关闭,只有实时时钟和电源管理模块继续工作 。
PXA255处理器结构与特性 • GPIO口 • PXA255可以使用和控制的GPIO管脚有81个。 • 使用27个寄存器可以配置这些GPIO管脚的方向(进或出)、管脚功能、管脚的状态(输出)、管脚的高低电平检测(输入)和选择第二功能。 • 许多GPIO管脚的第二功能已经被处理器或外设配置使用。
PXA255处理器结构与特性 • 中断控制器
PXA255处理器结构与特性 • 实时时钟RTC • 使用实时时钟可以配置成频率很广的周期时钟信号,通常RTC设置1Hz信号输出用来当作系统时间的基准。 • 实时时钟芯片是RTC4513。
PXA255处理器结构与特性 • DMA控制器 (DMAC ) • DMAC有16个通道,从通道0到通道15。 • DMA控制器对内存的访问和CPU的运行完全互斥,因此在DMA控制器访问内存时CPU不访问内存。 • DMA控制器在传输数据上要比CPU快得多,它的操作完全由硬件驱动,只要一个时钟周期就可以完成一个字节的传输。