1 PowerPC体系结构
POWER 是 Power Optimization With Enhanced RISC 的缩写,是 IBM 的很多服务器、工作站和超级计算机的主要处理器。POWER 芯片起源于 801 CPU,是第二代 RISC 处理器。POWER 芯片在 1990 年被 RS 或 RISC System/6000 UNIX 工作站(现在称为 eServer 和 pSeries)采用,POWER 的产品有 POWER1、POWER2、POWER3、POWER4,现在最高端的是 POWER5。POWER5 处理器是目前单个芯片中性能最好的芯片。POWER6计划 2006 年发布。
PowerPC 是 Apple、IBM 和摩托罗拉(Motorola)联盟(也称为 AIM 联盟)的产物,它基于 POWER 体系结构,但是与 POWER 又有很多的不同。例如,PowerPC 是开放的,它既支持高端的内存模型,也支持低端的内存模型,而POWER 芯片是高端的。最初的 PowerPC设计也着重于浮点性能和多处理能力的研究。当然,它也包含了大部分 POWER 指令。很多应用程序都能在 PowerPC 上正常工作,这可能需要重新编译以进行一些转换。从2000 年开始,摩托罗拉和 IBM 的PowerPC芯片都开始遵循 Book E 规范,这样可以提供一些增强特性,从而使得 PowerPC 对嵌入式处理器应用(例如网络和存储设备,以及消费者设备)更具有吸引力。PowerPC 体系结构的最大一个优点是它是开放的:它定义了一个指令集(ISA),并且允许任何人来设计和制造与 PowerPC 兼容的处理器;为了支持 PowerPC 而开发的软件模块的源代码都可以*使用。最后,PowerPC 核心的精简为其他部件预留了很大的空间,从新添加缓存到协处理都是如此,这样可以实现任意的设计复杂度。
PowerPC 体系结构分为三个级别(或者说是“book”)。通过对体系结构以这种方式进行划分,为实现可以选择价格/性能比平衡的复杂性级别留出了空间,同时还保持了实现间的代码兼容性。
Book I. 用户指令集体系结构
定义了通用于所有 PowerPC 实现的用户指令和寄存器的基本集合。这些是非特权指令,为大多数程序所用。
Book II. 虚拟环境体系结构
定义了常规应用软件要求之外的附加的用户级功能,比如高速缓存管理、原子操作和用户级计时器支持。虽然这些操作也是非特权的,但是程序通常还是通过操作系统调用来访问这些函数。
Book III. 操作环境体系结构
定义了操作系统级需要和使用的操作。其中包括用于内存管理、异常向量处理、特权寄存器访问、特权计时器访问的函数。Book III 中详细说明了对各种系统服务和功能的直接硬件支持。
从最初的 PowerPC 体系结构的开发开始,就根据特定的市场需求而发生分支。当前,PowerPC 体系结构家族树有两个活跃的分支,分别是 PowerPC AS体系结构和 PowerPC Book E体系结构。PowerPC AS 体系结构是 IBM 为了满足它的 eServer pSeries UNIX 和 Linux 服务器产品家族及它的 eServer iSeries 企业服务器产品家族的具体需要而定义的。PowerPC Book E 体系结构,也被称为 Book E,是 IBM 和 Motorola 为满足嵌入式市场的特定需求而合作推出的。PowerPC AS 所采用的原始 PowerPC 体系结构与 Book E 所采用的扩展之间的主要区别大部分集中于 Book III 区域中。
在这些衍生的体系结构中还有一些适当的应用级扩展,这些扩展大部分与具体应用的场合相关,但是 PowerPC AS和 PowerPC Book E 共享在 PowerPC 体系结构的 Book I 中定义的基本指令集。虽然三种体系结构主要在操作系统级别上表现出不同,但它们在很大程度上具备应用级的兼容性。
PowerPC 最初定义了同时对 32 位和 64 位实现的支持,可以让 32 位的应用程序运行于 64 位系统之上。在 IBM pSeries 和 iSeries 服务器上使用的 PowerPC AS 系统现在只提供体系结构的 64 位实现,新的 64 位应用程序和遗留的32 位的应用程序可以运行于同一个系统之上。PowerPC Book E 体系结构同时有 32位实现和 64 位实现,64 位实现也完全兼容 32 位 PowerPC 应用程序。这两种体系结构都具备与 PowerPC Book I 指令和寄存器的完全兼容性,同时提供了对内存管理、异常和中断、计时器支持和调试支持等各方面的系统级扩展。
最初的 PowerPC 体系结构仍是 PowerPC AS 和 PowerPC Book E 的主要组成部分,并仍保持了其完整性,表现出了令人信服的应用级兼容性。
摩托罗拉半导体(飞思卡尔)从低到高的PowerQUICC I、II、II Pro、III四个系列的通信处理器产品,应对不同的应用需求:
1) PowerQUICC I MPC8xx低成本通信控制器系列,8xx core
MPC823, MPC823E, MPC850, MPC852T, MPC853T, MPC855T, MPC857DSL, MPC857T, MPC859DSL, MPC860, MPC862, MPC866, MPC870, MPC875, MPC880, MPC885
2) PowerQUICC II MPC82xx高性能低价格通信控制器系列,603e or G2 core
MPC8247, MPC8248, MPC8250, MPC8255, MPC8260, MPC8264, MPC8265, MPC8266, MPC8270, MPC8271, MPC8272, MPC8275, MPC8280
3) PowerQUICC II Pro MPC83xx高集成度通信控制芯片系列,e300 core
MPC8343E, MPC8347E, MPC8349E, MPC8358E, MPC8360E
4)PowerQUICC III MPC85xx高性能低功耗通信控制芯片系列,e500 core
MPC8540, MPC8541E, MPC8555E, MPC8560, MPC8543E, MPC8545E, MPC8547E, MPC8548E
Power QUICC系列微处理器一般有三个功能模块组成,嵌入式PowerPC核(EMPCC),系统接口单元(SIU)以及通信处理器(CPM)模块,这三个模块内部总线都是32位。Power QUICC中除集成了PowerPC核,还集成了一个32位的RISC内核。Power PC核主要执行高层代码,而RISC则处理实际通信的低层通信功能,两个处理器内核通过高达8K字节的内部双口RAM相互配合,共同完成MPC854强大的通行控制和处理功能。CPM以RISC控制器为核心构成,除包括一个RISC控制器外,还包括七个串行DMA(SDMA)通道、两个串行通信控制器(SCC)、一个通用串行总线通道(USB)、两个串行管理控制器(SMC)、一个I2C接口和一个串行外围电路(SPI),可以通过灵活的编程方式实现对Ethemet、USB、T1/E1,ATM等的支持以及对UART, HDLC等多种通信协议的支持。
Power QUICC II 完全可以看作是Power QUICC的第二代,在灵活性、扩展能力、集成度等方面提供了更高的性能。Power QUICC II同样由嵌入式的PowerPC核和通信处理模块CPM两部分集成而来。这种双处理器器的结构由于CPM承接了嵌入式Power PC核的外围接口任务,所以较传统结构更加省电。CPM交替支持三个快速串行通信控制器(FCC),二个多通道控制器(MCC),四个串行通信控制器(SCC),二个串行管理控制器(SMC),一个串行外围接口电路(SPI)和一个I2C接口。嵌入式的Power PC核和通信处理模块(CPM)的融和,以及Power QUICCII的其他功能、性能缩短了技术人员在网络和通信产品方面的开发周期。
同Power QUICCII相比,Power QUICC III集成度更高、功能更强大、具有更好的性能提升机制。Power QUICCIII中的CPM较Power QUICC II产品200MHz的CPM的运行速度提升了66%,达到333MHz,同时保持了与早期产品的向后兼容性。这使得客户能够最大范围的延续其现有的软件投入、简化未来的系统升级、又极大的节省开发周期。Power QUICC III通过微代码具有的可扩展性和增加客户定制功能的特性,能够使客户针对不同应用领域开发出各具特色的产品。这种从Power QUICC II开始就有的微代码复用功能,已经成为简化和降低升级成本的主要设计考虑。
MPC860 PowerQUICC是当今比较流行、性能相当优越的单片集成嵌入式微处理器。MPC860 PowerQUICC通信处理器可根据用户不的要求提高2~4个串行通信控制器、不同规格的指令和数据缓存,各种级别的网络协议支持。该产品专为宽带接入设备如路由器、接入集线器、LAN/WAN交换机、PBX系统和STM网关等设计。MPC860包括三个主要模块:PowerPC核心、系统接口单元(SIU)、通信处理模块(CPM)。
PowerPC是主要的处理机单元,通常称为Embedded PowerPC核心(或EPPC)。它包括数据和指令的缓存和存储器管理单元(MMU),在40MHz时钟时为50 MIPS指令速度。
第二个主要的模块为系统接口单元(SIU)。主要包括:总线监视器、假中断监视器、软件看门狗、中断定时器和实时时钟(RTC)、复位控制器、不占用内部开销的片内总线仲裁、JTAG1149.1测试口。它的一个主要功能是提供内部总线和外部总线的接口。
第三个主要模拟为通信处理机模块(CPM)。主要包括:RISC控制器、所有串行通道口支持连续接收和发送模式、5K字节双口RAM、16个串行DMA (SDMA)通道、三个平行I/O寄存器、四个波特率独立的发生器(可以连接到任意一个SCC和SMC,并允许运行中改变,支持自动波特率)、四个串行通信控制器(SCC)(支持以太网、HDLC/SDLC、HDLC总线)、两个串行管理控制器(SMC)(UART方式或透明传输)、一个串行外围接口电路(SPI)(MC6830 SCP的扩展,支持主从模式,支持同一总线上多主操作)、一个I2C(Inter-Integrated Circuit)接口(支持主从模式,支持多主环境)。CPM在几个不同的通信设备如SCC和SMC上发送、接收数据,所有的通信设备可以独立工作。SCC和SMC也可以用于时分复用总线。
串行通信控制(SCC)是MPC860中最强大的通信设备,它们可以以多种不同的协议传送数据,比如UART HDLC,以太网等等。
SMC为2个全双工通道,编程可以配置它们独立支持UART、透明方式和GCI。SMC比SCC的能力少一些,它支持少一些协议,而且CPM RISC提供的服务也少一些。
注意,与SCC一样,SMC使用缓存描述字符,缓存在存储器中,与SCC一样,SMC向CPM RISC提供请求,使SDMA传送数据。SCC与SMC一个显著的不同为没有FIFO做接收和发送工作,相反接收和发送为双缓存。
MPC860有两个CPU:PowerPC和32位RISC。PowerPC执行高层代码,RISC处理实际通信的低层通信功能。由于CPU分担了嵌入式PowerPC核的外围工作任务,这种双处理器体系结构功耗要低于传统体系结构的处理器。两个处理器主要是通过内部存储空间相互配合工作。在存储器区,每个处理器都可以设置控制位、读状态位。每个通信设备都有一个发送DMA和接收DMA,32 侠RISC控制这16个串行DMA在通信设备和存储器之间传送数据。当MPC860接收数据时,串行DMA从通信设备接收数据并放入存储器中;发送数据顺序相反,串行DMA从存储器中取数据,送到通信设备,串行DMA只服务CPM的RISC,但是两个虚拟IDMA可以为用户DMA所用。本文转自 21cnbao 51CTO博客,原文链接:http://blog.51cto.com/21cnbao/133619,如需转载请自行联系原作者