1、摘要摘要本文分析了以 Motorola PowerPC 处理器为核心的嵌入式数据处理系统的设计方案。设计中采用了 PowerPC603R 和 PowerPC860 处理器,包括 VME 总线,AD、DA 数据采集,RD、SD 轴角转换,FLASH、SRAM 存储器,1553B 航空总线等功能模块,使用嵌入式实时操作系统 VxWorks 进行软件任务调度。解决了某雷达处理机的数据处理问题。关键词:数据处理系统,PowerPC,嵌入式系统,实时操作系统VxWorksAbstractABSTRACTAbstract: The paper analyzed the design of the embe
2、dded data processing system utilizing Motorola PowerPC processors. In the design, we adopted the PowerPC603E and PowerPC860 processors, including the VME bus line, AD and DA data collection, RD and SD axes angle conversion,FLASH and used the embedded real-time operation system Vxworks to realize the
3、 software task schedule. It settled the data processing problem of a certain radar processor.Keywords: Data Processing System, PowerPC , Embedded system,Real- time Operation System Vxworks.目录i目录摘要 .IABSTRACTII第一章 绪论 11.1 背景 .11.1.1 POWERPC 处理器 .1第二章 POWERPC603R 处理器 52.1 POWERPC603R 的结构 .52.1.1 Power
4、 PC603R 处理器特点5第三章 POWERPC860SR 处理器 113.1 POWERPC860SR 的功能 113.1.1 PowerPC860SR 的组成11第四章 操作系统的引用 .134.1 嵌入式实时操作系统 VXWORKS 134.2 数据处理单元各模块硬件构成 .164.3 命令分析及任务调度模块 .20第五章 结论与展望 .21参考文献 22致谢 23附录:调试方法与步骤 24PowerPC 的嵌入式数据处理系统设计1第一章 绪论1.1 背景为了提高机载雷达的性能,增强雷达对现代战争的自适应能力,并从十分复杂的背景中获取更多更清晰的目标信息,在进行新体制雷达研究的同时,对
5、信号处理系统提出了新的要求,信号处理单元完成对雷达回波信号的各种处理,担负着校正,脉冲压缩,相参和非相参积累,恒虚警,杂波跟踪,对地高分辨成像等任务,数据处理单元主要完成雷达数据处理,雷达系统控制,单目标和多目标跟踪,与综合航电火控系统的通信等任务,具有多种非总线接口和总线接口,为了简化设计,提高可靠性和适应未来任务的扩充,信号处理单元在任务调度上采用了大状态复位切换机制。Vxworks 采用了模块化结构,可使软件修改过程更方便,软件可靠性进一步提高。嵌入式系统(Embedded System)是以嵌入式计算机为技术核心,面向用户、面向产品、面向应用,软硬件可裁减的,适用于对功能、可靠性、成本
6、、体积、功耗等综合性严格要求的专用计算机系统。嵌入式系统主要由嵌入式处理器、外围硬件设备、嵌入式操作系统以及特定的应用程序等四部分组成,是集软硬件于一体的可独立工作的“器件” ,用于实现对其它设备的控制、监视或管理等功能。PowerPC 处理器采用 RISC,主要应用于通讯设备、自动控制和工业机器人等。PowerPC 支持缓冲的共享存储器结构,有较高的处理带宽,对于块数据处理十分有效。PowerPC 有较高的时钟频率和功能强大的处理核,更适合于后端数据处理。PowerPC 使用嵌入式操作系统 VxWorks和开发环境 Tornado 开发非常方便。数据处理单元是一个嵌入式实时多处理器系统,其中
7、包括一个主处理器和若干从处理器。1.1.1 PowerPC 处理器PowerPC 体系结构是一种精减指令集计算机(Reduced Instruction Set Computer,RISC)体系结构,定义了 200 多条指令。PowerPC 之所以是 RISC,原因在于大部分指令在一个单一的周期内执行,而且通常只执行一个单一的操作(比如将内存加载到寄存器,或者将寄存器数江南大学继续教育学院专科论文据存储到内存) 。PowerPC 体系结构分为三个级别(或者说是“book” ) 。通过对体系结构以这种方式进行划分,为实现可以选择价格/性能比平衡的复杂性级别留出了空间,同时还保持了实现间的代码兼容
8、性。从超级计算机到游戏控制台,从服务器到手机,随处可见 PowerPC 处理器的身影 - 它们的体系结构全都相同。Book I. 用户指令集体系结构定义了通用于所有 PowerPC 实现的用户指令和寄存器的基本集合。这些是非特权指令,为大多数程序所用。 Book II. 虚拟环境体系结构定义了常规应用软件要求之外的附加的用户级功能,比如高速缓存管理、原子操作和用户级计时器支持。虽然这些操作也是非特权的,但是程序通常还是通过操作系统调用来访问这些函数。Book III. 操作环境体系结构定义了操作系统级需要和使用的操作。其中包括用于内存管理、异常向量处理、特权寄存器访问、特权计时器访问的函数。B
9、ook III 中详细说明了对各种系统服务和功能的直接硬件支持。 从最初的 PowerPC 体系结构的开发开始,就根据特定的市场需求而发生分支。当前,PowerPC 体系结构家族树有两个活跃的分支,分别是 PowerPC AS 体系结构和 PowerPC Book E 体系结构。PowerPC AS 体系结构是 IBM 为了满足它的 eServer pSeries UNIX 和 Linux 服务器产品家族及它的 eServer iSeries 企业服务器产品家族的具体需要而定义的。PowerPC Book E 体系结构,也被称为 Book E,是 IBM 和 Motorola 为满足嵌入式市场
10、的特定需求而合作推出的。 PowerPC AS 所采用的原始 PowerPC 体系结构与 Book E 所采用的扩展之间的主要区别大部分集中于 Book III 区域中。在这些衍生的体系结构中还有一些适当的应用级扩展,这些扩展大部分与具体应用的场合相关,但是 PowerPC AS 和 PowerPC Book E 共享在 PowerPC 体系结构的 Book I 中定义的基本指令集。虽然三种体系结构主要在操作系统级别上表现出不同,但它们在很大程度上具备应PowerPC 的嵌入式数据处理系统设计3用级的兼容性PowerPC 最初定义了同时对 32 位和 64 位实现的支持,可以让 32 位的应用
11、程序运行于 64 位系统之上。在 IBM pSeries 和 iSeries 服务器上使用的 PowerPC AS 系统现在只提供体系结构的 64 位实现,新的 64 位应用程序和遗留的 32 位的应用程序可以运行于同一个系统之上。PowerPC Book E 体系结构同时有 32 位实现和 64 位实现,64 位实现也完全兼容 32 位 PowerPC 应用程序。这两种体系结构都具备与 PowerPC Book I 指令和寄存器的完全兼容性,同时提供了对内存管理、异常和中断、计时器支持和调试支持等各方面的系统级扩展。PowerPC 应用程序编程模型当用到不止一种类型的 PowerPC 处理器
12、时,开发人员应时刻谨记处理器内存的方式存在一些差异。PowerPC 体系结构本身支持字节(8 位) 、半字(16 位) 、字(32 位) 和双字(64 位) 数据类型。PowerPC 实现还可以处理最长 128 字节的多字节字符串操作。32 位 PowerPC 实现支持 4-gigabyte 的有效地址空间,而 64 位 PowerPC 实现支持 16-exabyte 的有效地址空间。所有存储都可以字节寻址。对于错位数据访问来说,不同的产品家族提供了不同的校准支持,有一些是以处理异常的方式,其他的是通过硬件中的一步或者多步操作来处理访问。最高位字节在最前(Big-endian)还是最低位字节在
13、最前(little-endian)?PowerPC、PowerPC AS 以及早期的 IBM PowerPC 4xx 家族大部分是字节排列顺序最高位在最前的机器,这就意味着对半字、字以及双字访问来说,最重要的字节(most-significant byte,MSB)位于最低的地址。各实现对最低位在最前的字节排列顺序方式的支持不同。PowerPC 和 PowerPC AS 提供了最小限度的支持,而 4xx 家族为最低位字节在最前的存储提供了更为健壮的支持。Book E 是字节排列顺序无关的,因为 Book E 体系结构完全支持这两种访问方法。江南大学继续教育学院专科论文PowerPC 应用级寄存
14、器PowerPC 的应用级寄存器分为三类:通用寄存器(general-purpose register,GPR) 、浮点寄存器(floating-point register FPR 和浮点状态和控制寄存器 Floating-Point Status and Control Register,FPSCR)和专用寄存器(special-purpose register,SPR) 。让我们来分别看一下这三类寄存器。通用寄存器(GPR)用户指令集体系结构(Book I)规定,所有实现都有 32 个 GPR(从 GPR0 到 GPR31) 。GPR 是所有整数操作的源和目的,也是所有加载/存储操作的地
15、址操作数的源。GPR 还提供对 SPR 的访问。所有 GRP 都是可用的,只有一种情况例外:在某些指令中,GPR0 只是代表数值 0,而不会去查找 GPR0 的内容。浮点寄存器(FPR)Book I 规定,所有实现都有 32 个 FPR(从 FPR0 到 FPR31) 。FPR 是所有浮点操作的源和目的操作数,可以存放 32 位和 64 位的有符号和无符号整数,以及单精度和双精度浮点数。FPR 还提供对 FPSCR 的访问。浮点状态和控制寄存器(FPSCR)捕获浮点操作的状态和异常结果,FPSCR 还具有控制位,以支持特定的异常类型和对四种舍入模式之一的选择。对 FPSCR 的访问要通过 FP
16、R。PowerPC 芯 片 成 功 , 并 制 造 出 基 于 PowerPC 的 多 处 理 器 计 算 机 。PowerPC 架 构 的 特 点 是 可 伸 缩 性 好 、 方 便 灵 活 。 第 一 代 PowerPC 采用 0.6 微 米 的 生 产 工 艺 , 晶 体 管 的 集 成 度 达 到 单 芯 片 300 万 个 。1998 年 , 铜 芯 片 问 世 , 开 创 了 一 个 新 的 历 史 纪 元 。 2000 年 , IBM 开始 大 批 推 出 采 用 铜 芯 片 的 产 品 , 如 RS/6000 的 X80 系 列 产 品 。 铜 技术 取 代 了 已 经 沿 用
17、 了 30 年 的 铝 技 术 , 使 硅 芯 片 多 CPU 的 生 产 工 艺 达到 了 0.20 微 米 的 水 平 , 单 芯 片 集 成 2 亿 个 晶 体 管 , 大 大 提 高 了 运 算性 能 。PowerPC 处 理 器 家 族 包 括 的 一 些 极 为 经 典 的 通 信 处 理 器 介 绍 : PowerPC 的嵌入式数据处理系统设计5MPC860: MPC860 PowerQUICC 内 部 集 成 了 微 处 理 器 和 一 些 控 制 领域 的 常 用 外 围 组 件 , 特 别 适 用 于 通 信 产 品 。 PowerQUICC 可 以 被 称 为MC6 和
18、集 成 度 等 。 类 似 于 MC68360 QUICC, MPC860 PowerQUICC 集 成了 两 个 处 理 块 。 8360 的 在 网 络 和 数 据 通 信 领 域 的 新 一 代 产 品 , 提 高了 器 件 运 行 的 各 方 面 性 能 , 包 括 器 件 的 适 应 性 、 扩 展 能 力 一 个 处 理 块是 嵌 入 的 PowerPC 核 , 另 一 个 是 通 信 处 理 模 块 ( CPM) , 与 MC68360的 CPM 基 本 类 似 。 由 于 CPM 分 担 了 嵌 入 式 PowerPC 核 的 外 围 工 作 任务 , 这 种 双 处 理 器
19、体 系 结 构 功 耗 要 低 于 传 统 的 体 系 结 构 的 处 理 器 。MPC8245: MPC8245 集 成 PowerPC 处 理 器 适 用 于 那 些 对 成 本 、 空 间 、功 耗 和 性 能 都 有 很 高 要 求 的 应 用 领 域 。 该 器 件 有 较 高 的 集 成 度 , 它 集5 个 芯 片 于 一 体 , 从 而 降 低 了 系 统 的 组 成 开 销 。 高 集 成 度 的 结 果 是 简化 了 电 路 板 的 设 计 , 降 低 了 功 耗 和 加 快 了 开 发 调 试 时 间 。 这 种 低 成 本多 用 途 的 集 成 处 理 器 的 设 计
20、目 标 是 使 用 PCI 接 口 的 网 络 基 础 结 构 、电 讯 和 其 它 嵌 入 式 应 用 。 它 可 用 于 路 由 器 、 接 线 器 、 网 络 存 储 应 用和 图 像 显 示 系 统 。MPC8260: MPC8260 PowerQUICC II 是 目 前 最 先 进 的 为 电 信 和 网络 市 场 而 设 计 的 集 成 通 信 微 处 理 器 。 高 速 的 嵌 入 式 PowerPC 内 核 ,连 同 极 高 的 网 络 和 通 信 外 围 设 的 集 成 通 信 微 处 理 器 。 高 速 的 嵌 入 式PowerPC 内 核 , 连 同 极 高 的 网 络
21、 和 通 信 外 围 设 系 统 。 MPC8260 PowerQUICC II 可 以 称 作 是 MPC860 PowerQUICC 的 下 一 代 产 品 , 它 在各 方 面 的 提 供 更 高 的 性 能 , 包 括 更 大 的 灵 活 性 、 扩 展 的 能 力 和 更 高 的集 成 度 。 与 MPC860 相 似 , MPC8260 也 有 两 个 主 要 的 组 成 部 分 : 嵌 入的 PowerPC 内 核 和 通 信 处 理 模 块 ( CPM) 。 由 于 CPM 分 担 了 嵌 入 式PowerPC 核 的 外 围 工 作 任 务 , 这 种 双 处 理 器 体 系
22、 结 构 功 耗 要 低 于 传 统的 体 系 结 构 的 处 理 器 。 CPM 同 时 支 持 3 个 快 速 的 串 行 通 信 控 制 器( FCC) 、 2 个 多 通 道 控 制 器 ( MCC) 、 4 个 串 行 通 信 控 制 器 ( SCC) 、 2个 串 行 管 理 控 制 器 ( SMC) 、 1 个 串 行 外 围 接 口 ( SPI) 和 一 个 I2C 接口 。 PowerPC 内 核 和 CPM 的 组 合 , 加 之 MPC8260 的 多 功 能 和 高 性 能 ,为 用 户 在 网 络 和 通 信 产 品 的 开 发 方 面 提 供 巨 大 的 潜 力 并
23、 缩 短 开 发 周 期 ,江南大学继续教育学院专科论文加 速 产 品 的 上 市 。 根据各个功能模块的所需完成的任务,选用了不同的处理器。主机和伺服模块需要进行浮点数处理,从而选用了PowerPC603R,而接口模块主要实现一些接口和控制等通讯功能,从而选用了定点处理器 PowerPC860SR。第二章 PowerPC603R 处理器2.1 PowerPC603R 的结构PowerPC603R 是 PowerPC 家族中的一款低功耗 RISC 微处理器,CPU内部时钟频可达 200MHz,其内嵌 32 位 PowerPC 核,支持 32 位有效地址,支持 8/16/32 位整形数据类型和
24、32/64 位浮点数据类型。PowerPC核集成了 5 个执行单元:整数单元(IU)、浮点单元(FPU)、分支处理单元(BPU)、转载/存储单元(LSU)、系统寄存器单元(SRU)。PowerPC603R 的结构框图如图 2-1:PowerPC 的嵌入式数据处理系统设计7系统寄存器单元整数单元装载 / 存储单元浮点单元通用寄存器堆实现单元指令 M M U数据 M M U指令单元预取指令队列转移处理调度单元指令队列6 4 B i t6 4 B i t6 4 B i t1 6 K 字节指令 C a c h e标志1 6 K 字节数据 C a c h e标志处理器总线接口3 2 位地址总线3 2 /
25、 6 4 位数据总线6 4 B i t6 4 B i t6 4 B i t6 4 B i t3 2 B i t6 4 B i t电源损耗控制时钟倍频器定时计数器 /递减器J T A G / C O P接口图 2 -1 PowerPC603R 结构框图2.1.1 Power PC603R处理器特点 Power PC603R处理器具有如下特点:高性能、低功耗、超标量、精简指令集计算机每个时钟周期最多发出和结束 3 条指令; 每个时钟周期最多执行 5 条指令; 大多数指令为单周期执行; 浮点处理单元能执行所有的单精度和大多数双精度数的操作:1) 五个独立的可执行单元和两个寄存器组可执行单元有: 分支
26、处理单元、整型处理单元、浮点处理单元、装入/ 存储处理单元和系统寄存器处 理单元; 一个用于整型数操作的普通目的寄存器组, 其包含 32 个寄存器; 一个用于单精度或双精度数操 作的浮点数寄存器组, 其包含 32 个寄存器。 2) 强大的指令和数据的吞吐量 6 零周期分支处理能力; 在未知分支条件下, 可编江南大学继续教育学院专科论文程静态分支情况预报; 指令取指单元具有每个周期从指令 cache 中取两条指令的能力; 具有六条指令输入的指令队列; 为减少数据的流转周期在硬件上设 有独立的通道;具有 16 k 字节数据和 16 k 字节指令的 cache 具有四个相连的页, cache 采用直
27、接像法, 采用近期最少使用的替换算法; 在每个页或每个基块中 cache 进行主存一致的算法可设置为写回法 或写直达法; 52 位虚拟地址, 32 位物理地址。3) 外部总线时钟最高为 66 MHz, CPU 主频最高为133 MHz。2.2 系统组成及原理 该数据处理模块主要由 CPU 、电源管理、SRAM、FLASH、SIO、TIMER、FPGA 、NET功能块组成( 图 2-2) 。 下面分别介绍一下各功能块的主要工作原理。图 2-2 系统组成框图(1) CPU 功能块CPU 功能块包括处理器和时钟电路。 处理器选用 RISC 微处理器 Power PC603 系列中低功耗的微处 理器
28、Power PC603r, 其内核电压PowerPC 的嵌入式数据处理系统设计9Vdd, PLL 电压Avdd 和 I/ O 电压Ovdd 均为 3 3 V, 使用 32 位数据工作模 式, CPU 总线时钟设计为 33MHz, CPU 工作频率为 133 MHz。33MHz 的时钟由时钟驱动电路进行驱动, 为了减小时钟的漂移, 由专用时钟驱动芯片分别为 Power PC603r 和 FPGA 等芯片提供时钟。(2) 电源管理功能块电源管理功能块完成数据处理模块的上电复位功能、电源的转换和对电源的监测等功能。 数据处理模块外部输入单一的+ 5 V 直流电源, 然而处理器及FPGA 需要+ 3
29、3 V 和+ 1 5 V 的电源。 + 5V 电源的上电复位和对电源的监测功能由一片 MAX706 完成。 电源的转换由两片可调的 LDO 分别实现+ 5 V 到33 V 和+ 5 V到 1 5 V 的转换。(3)SRAM功能块该模块的静态随机存储器的数据宽度为 32 位, 总容量4Mbytes. SRAM 功能块作为操作系统及应 用软件的内存, 同时实现 SRAM 与 CPU 中cache 的映射, 实现 cache 与 SRAM 的数据交换。(4) FLASH功能块该模块的 FLASH 存储器的数据宽度为 32 位, 总容量为 8Mbytes。 FLASH 功能块作为一些引导程序、 操作系
30、统、应用软件及测试软件存放的载体, 该模块在上电时, 首先从 FLASH 功能块中读出命令并执 行, 并把操作系统及其它软件程序移植到 SRAM 区, 最终实现操作系统及其它软件程序在内存中运行, 这样提高了该模块的系统性能。(5) SIO功能块SIO功能块主要选用多规程串行控制器 8274 来实现 2 路 RS232 串行接口。8274 的工作时钟为 3 6864 MHz, 由一个 3 6864MHz 的晶振来提供。8274 的发送时钟和接收时钟为 1 8432MHz, 由FPGA 对3 6864MHz 作 2 分频得来。 发送时钟和接收时钟是波特率的16 倍( 波特率为115 200 bp
31、s) .8274 可工作在查询方式和中断方式, 这可由软件对 8274 作相应的初始化来实现。 在本模块中, 8274 的中断方式采用非向量中断方式.8274 发送数据和接收数据的TTL 电平与 RS232 电平的转换由江南大学继续教育学院专科论文一片MAX232 来实现。两路串行接口实现该模块作为目标板与 Vxworks 操作系统 Tornado开发环境的连接, 开发工具可通过串行接口对目标板进行相关的操作。(6) TIMER功能块TIMER 功能块具有 4 路定时/ 计数器, 其中有 3 路 16 位定时/ 计数器, 一路 24 位定时器。 16 位定时/ 计数器选用 82C54 可编程定
32、时/ 计数器来实现, 24 位定时器由 FPGA 实现。 时钟为 100 kHz, 16 位最大定 时为 655 36 ms, 24 位最大定时为 167 77215s。82C54 的 3 个定时器输出 OUT0、OUT1、OUT2 和 FPGA 中实现的 24 位定时器的输出分别作为该模块 内部的中断源。 82C54 的 3 个定时器输出使能信号由 FPGA 中相应的控制寄存器控制. 。FPGA 实现的 24 位定时器的 输出使能有装入数据的操作控制。在该模块中 OUT0、OUT1 定时器可作为操作系统中的系统时钟和辅助时钟, 其它两个定时器留给用户使用。(7)FPGA 功能块FPGA 功能
33、块是该模块中最重要的控制功能块, 实现了各功能块与CPU 之间时序的匹配, FPGA 功 能块主要完成以下功能: a. 产生 CPU 的复位信号; 来自 Multibus 上的手动复位信号( MHRST ) 、JTAG 上的复位信号 ( JHRST ) 和上电复位合成 MAX706 的复位输入, CPU 的复位信号由以上复位信号进行逻辑运算而产 生。b. 产生存储器、I/ O 等设备的片选信号和读/ 写信号;c. 实现 18 级中断的控制;d. 实现 12 路离散量的输出;e. 实现 16 位/ 32 位数据转换的控制;f. 实现 24 位定时器;g. 产生其它控制信号。高性能的超标量微处理器
34、每周期发出和撤销多达 3 条指令;每周期执行多达 5 条指令;多数指令单周期执行;浮点单元(FPU)对所有单精度操作和大多数双精度操作进行流水作业。5 个独立的执行单元和 2 个PowerPC 的嵌入式数据处理系统设计11寄存器堆进行静态分支预测的 BPU;32 位的 IU;进行单、双精度操作,与 IEEE 754 全兼容的 FPU;在数据 Cache 和通用寄存器(GPR)、浮点寄存器(FPR)之间进行数据传输的 LSU;执行条件寄存器(CR)、专用寄存器(SPR)和整数加法和比较指令的 SRU;32 个装载整型操作数的GPR;32 个装载单、双精度操作数的 FPR.。高指令数据吞吐量零周期
35、分支转移能力;在未定状况下分支转移的可编程静态分支预测;取指单元每周期可从指令 Cache 取 2 条指令;1个 6 口的指令队列提供了预知将来的能力;带前馈功能的独立流水线减少了硬件的数据相关;4 路组相关、物理映射的 16K 字节的数据Cache;LRU 置换算法;4 路组相关、物理映射的 16K 字节的指令Cache;LRU 置换算法;以每页或每块为基准,可编程 Cache 回写或直写操作;52 位虚拟地址,32 位物理地址。提高系统性能的便捷性带 Burst 传输功能的 32 或 64 位分离事务外部数据总线;支持一级地址流水和乱序总线事务。PowerPC603R 是采用05m CMO
36、S 四层铝工艺,集成了 260 万晶体管的高速(主频达 133 M)、超标量、低功耗(33 V 功耗不大于 4 W)32 b RISC 微处理器。PowerPC603R 每周期可以发出 3 条指令,执 行 5 条指令,多数指令属于单周期执行,所有的单精度浮点操作、多数双精度浮点操作都采用流水线方式体现其高性能、超标量的特点;PowerPC603R 具有 5 个独立的流水线执行单元(分支处理单元、整型单元、浮点单元、读出/写入单元和系统寄存器单元)和 2 个寄存器文件(32 个 64 b GPRS 和 32 个 64 b FPRS)PowerPC603R 具有强大的指令和数据处理能力,采用分开的
37、 16 k 四路组相连的数据 CACHE 和指令 CACHE 使得数据访问和指令的提取可以出现在同一周期之中,取指令单元每周期可以从 CACHE 取 2 条指令,指令队列可以存放 6 条指令,对于未解决的条件转移进行可编程静态转移预测而且采用可编程写回(write-back)和写透(wirte-through)策略,PowerPC603R 具有 52 b 虚拟地址和 32 b 物理地址,地址转换具有 4 k的页空间、不同的块的大小和 256 M 的段空间,在 PowerPC603R 中采用一个 64 组两路组相连 ITLB 和 DTLB,而且通过快速捕获装置支持软件江南大学继续教育学院专科论文
38、表格查找操作和更新;在提高系统性能方面 PowerPC603R 具有一个带“猝发”(burst)转换的 32 或 64b 的分批处理外部数据总线而且支持一级地址流水和乱序的处理;在内置电源管理方面 PowerPC603R 采用33 V 的低比,PowerPC603R 具有 3 种节电模式(DOZE/NAP/SLEEP)。PowerPC603R 低功耗技术的使用动态功耗管理的设计在 PowerPC603R 中动态功耗管理模式是由软件实现的,在正常的工作状态下空闲的功能单元会受软件控制进入低能耗状态而不影响性能、软件执行或外部硬件。动态功耗管理逻辑会自动操纵时钟再生器使处于空闲状态的功能块的时钟关
39、断并 v 且禁止寄存器值的改变从而使平均功耗减少,试验表明使用动态管理功耗设计的 603R能使其功耗减少 15。 时钟再生器的动态功耗管理设计 PowerPC603的时钟再生器及其时序关系。该时钟电路的 3 个输出分别是主锁存时钟C1,从锁存时钟 C2 和扫描端口时钟 ACLK。 GCLK 是整个片内时钟分布树中的全局时钟信号;OVERRIDE 能够使局部电路的 GCLK 关断,该控制信号也是用于静态功耗管理模式以减小时钟功耗;C1TEST,C2TEST和 SCANC1 是检测时钟输入和控制信号;WAITCLK 是集成于所有时钟再生器之间的信号;C1FREEZE 和 C2FREEZE 是时钟再
40、生器的 2 个“冻结”(freeze)信号,该信号用于局部电路的动态功耗管理,当这 2个信号处于有效状态时能够迫使时钟信号处于低电平,停止相应功能单元的时钟信号从而实现节省功耗的目的,以下将从 603R 是如何“冻结”相应单元的时钟信号来讨论其动态功耗技术。中可以看出其时序关系。执行单元的动态功耗管理 PowerPC603R 的每一个执行单元具有单独的时钟输入,根据 clock-by-clock 自动控制,而且 CMOS 电路在不翻转的状态下其功耗是可以忽略的,所以可以通过停止单个执行单元的时钟对每一个执行单元进行独立的动态功耗管理。根据已经存在的指令分派和执行的逻辑对动态功耗管理进行控制,其
41、中主要是通过基于流水线级或分配到某一单元特定指令的时钟“冻结”分布逻辑进行动态功耗管理。以读出/写入(LSU)执行单元为例,写入流水的最后一级是一个完成的写入队列,该队列一直保持写入状态直到 CACHE 可利用或者出现读出相关PowerPC 的嵌入式数据处理系统设计13性,因此一个写入状态可能在完成的写入队列当中保留一段时间,但是尽管如此 603R 可能冻结写入流水线中的其他级。603R 的执行单元是根据分配给某一单元的特定指令来“冻结”时钟,比如系统寄存器(SRU)单元,SRU 只有一个单周期的执行级但却管理着许多的寄存器,只有当该寄存器被修改时其时钟才处于有效状态,而此时该单元中其他寄存器
42、的时钟却保持“冻结”状态。给出了每一执行单元的空闲百分比,可以看出,在实际应用当中每一个执行单元在相当大的百分比时间内是空闲的,所以在其空闲时间内“冻结”其时钟可以有效地减少执行单元的平均功耗。CACHE 和 MMU 的动态功耗管理 603R 的模块化 CACHE 确保当CACHE 不命中出现时所有其他的读写操作都被延迟直到不命中的数据由内存返回。在等待数据的这段时间(根据存储器的执行时间和处理机与总线时钟的比率该时间可以达到很多时钟周期)内 CACHE 和 MMU 处于闲置状态,因此可以运用动态管理逻辑使其时钟处于禁止状态,从而达到节省功耗的目的。(1) 数据 CACHE 的动态功耗管理对于
43、所有的单拍或者“猝发”(burst)式读存储器,在等待不命中数据的情况下动态功耗管理会“冻结”数据CACHE 所有的时钟再生器。如果 CACHE 的不命中需要写回到存储器或者“掷出”(castout),那么动态功耗管理将会在“掷出”完成之后冻结时钟,反之如果 CACHE 不命中就不需要“掷出”,动态功耗管理将会在不命中的地址被送到总线接口单元之后立即冻结时钟直至数据由存储器返回。对于“猝发”读出数据的每一拍来讲时钟都被自动置于“使能”(enabled)状态。如果在数据拍(data beats)之间有许多的处理机时钟,那么在每一拍之间都会冻结时钟。(2) 指令 CACHE 的动态功耗管理对于指令
44、 CACHE 来说,所有的“猝发”式或者单拍读存储器,动态功耗管理都会“冻结”其时钟。由于指令CACHE 不包括修改状态,所以只要省去数据 CACHE 状态机中的“掷出”(castout)部分就是指令 CACHE 动态功耗管理的状态机,从而可以看到指令 CACHE 的空闲时间百分比。(3) MMU 的动态功耗管理对于任何的“猝发”或者单拍读操作,指令和江南大学继续教育学院专科论文数据 MMU 的时钟都被“冻结”。因为 MMU 只有在初始化查找、非监控以及从存储器读数据拍时是处于工作状态的,所以在全部 CACHE 不命中的情况下,MMU 的时钟都是“冻结”的。然而当时钟处于冻结状态下的时候可能出
45、现系统寄存器单元读写 MMU,如果检测到这种状况动态功耗管理单元就会释放相应“冻结”的时钟直到下一个功耗节省状态的出现。静态功耗管理的设计 603R 在闲置状态时,其静态功耗管理模式允许功耗管理软件或者操作系统将处理机带入低功耗模式。603R 提供 3 种静态功耗管理模式:瞌睡(DOZE)、昏睡(NAP)和沉睡(SLEEP),这 3 种模式通过设置机器状态寄存器(MSR)和硬件实现寄存器 0(HID0)中的位来编程控制。一旦进入上述 3 种低功耗模式中的任意一种,603R 就会完成所有未解决的指令,致使在特定模式下不需要执行的功能单元的时钟关断而进入“静止”状态,要想跳出相应的低功耗模式需要有
46、外部干扰使“唤醒”信号处于使能状态,这样 603R 才会跳入相应干扰矢量的地址从而继续执行指令。603R 这 3 种低功耗模式之间不能直接转换而必须先进入全功耗模式(内部功能单元完全以处理器时钟速度工作)再跳入其他低功耗模式。瞌睡模式(DOZE):瞌睡模式允许 603R 在节省功耗的状态下保持CACHE 的一致性,该模式下“探测”(snoop)逻辑和数据 CACHE 处于有效状态,以确保对总线的探测能够正常进行。如果在瞌睡模式下出现探测命中就会出现必要的 CACHE 更新和探测写回总线操作。在瞌睡模式下603R 的所有功能单元除时间基数/减量寄存器和总线探测逻辑之外都被禁止。在该模式下外部异步
47、中断、系统管理异常事件、递减异常事件、软硬复位及其检查都会使 603R 进入完全供电。处于瞌睡的 603R 保持PLL 处于完全供电状态,并锁住系统外部时钟输入(SYSCLK),因而处理器完全供电的事务仅需几个周期2,4。昏睡模式(NAP):在昏睡模式下只有时间基数寄存器和 PLL(锁相环)处于加电状态,在该模式下 CACHE 的一致性不能够被维持,所以在该状态下如果要改变存储器系统程序,在进入昏睡模式之前就必须刷新数据CACHE。与瞌睡模式相比昏睡模式通过禁止数据 CACHE 和总线探测更进PowerPC 的嵌入式数据处理系统设计15一步降低功耗。当 603R 接收外部异步中断、系统管理异常
48、事件、递减异常事件、软硬复位或者机器检查信号保持时回到完全供电状态。沉睡模式(SLEEP):当然,作为一个低功耗的微处理器其低功耗设计还会涉及到很多方面,比如在版图设计方面标准单元用于控制器的实现,宏模块用于规整的数据路径(datapath),SRAM 和定时/计数器等的实现;模块的布局首先考虑高速部件的布局、电源地线的布局和高速时钟树的布局,然后是低速部件的布局,这些布局是采用交互式进行的。第三章 PowerPC860SR 处理器3.1 PowerPC860SR 的功能 PowerPC860SR 是当今比较流行、性能相当优越的单片集成嵌入式微处理器。它是基于 PowerPC 结构的通信控制器
49、,内部不但集成了微处理器还有很多外设的功能也集成在一起,特别适用于互联网络和数据通信。PowerPC860SR 各方面性能包括适应性、扩展能力和集成度等都非常强。PowerPC860SR 处理器可根据用户不同的要求提高 24 个串行通行控制器、不同规格的指令和数据缓存,可根据外围设备的访问速度快慢可设置不同的等待时间,其内部时钟可以倍频来提高指令执行速度。它的外围接口很丰富,可以适应各种情况的应用。它具有存储控制器,其存储控制器的功能很强,可以支持各种存储器,包括各种新型的 DRAM 和Flash,并可以实现与存储器的无缝接口。3.1.1 PowerPC860SR 的组成 图 3-1 是 PowerPC860SR 结构图。它包括三个主要模块:PowerPC 核、通信处理模块(CPM) 、系统接口单元(SIU) 。江南大学继续教育学院专科论文图 3-1 PowerPC860SR 结构图PowerPC 核是主要的处理单元,通常称为 Embedded PowerPC 核心(或 EPPC) 。它包括数据和指令的缓存和存储器管理单元(MMU) ,在40MHz 时钟为 50MIPS 指令速度。第二个主要的模块为系统接口单元(SIU) 。主要包括:总线监视器、中断监视器、软件看门狗、中断定时器和实时时钟(RTC) 、复位控制器、不占用内部开销的片内总线