PowerPC

1.1 PowerPC 简介

PowerPC,最初的含义却不是「Power」,而是 Performance Optimized With Enhanced RISC,PC指的是 Performance Computing。

Power PC 处理器架构的亮点是开放,它公开了指令集,允许任何厂商设计 Power PC 的兼容处理器、Power PC 的一些软件的源代码可以从网络上下载到,Power PC 的内核也非常小,可以在同一芯片上安置许多其他的辅助电路,例如缓存、协处理器,大大增加了芯片的灵活性。

目前,主流的 PowerPC 处理器制造商有 IBM、Freescale (原摩托罗拉半导体部,现已与荷兰NXP合并)、AMCC、LSI(已被Avago收购)等。其中以 IBM 和 Freescale 的 PowerPC 处理器最为流行。

1.2 Power ISA

Power ISA 是 Power 架构对应的指令集,最初是现已解散的 power.org 组织开发,现由 IBM 领导的 OpenPOWER 基金会继续发展。Power ISA 继承并发展 PowerPC ISA,其由核心 PowerPC ISA 和可选的嵌入式应用程指令合并而成。

在2006年,这两个部分由 power.org 创始者IBM 和飞思卡尔半导体领导合并。Power ISA 分为几个不同的子集,每个指令都被定义为一个子集的一部分。不同型号的处理器只实现了一组指令子集,例如服务器类处理器包括子集 Base、Server、Floating-Point、64-Bit 等,所有处理器都实现了 Base 子集 。

1.3 Freescale PowerPC

IBM PowerPC 广泛应用于服务器等高性能应用场景,而 Freescale PowerPC 最重要的应用是汽车电子等嵌入式场景。Freescale 公司提供了数量众多的含集成化外设的 PowerPC 处理器,在网络设备市场取得了非常可观的成功。目前 Freescale 公司已经调整其 PowerPC 产品策略,将其划分成3个主要市场:网络设备、汽车电子(MPC5xx系列)和工业控制。

Freescale PowerPC 基于 EIS Architecture,EIS 是the Freescale Embedded Implementation Standards 的缩写。EIS Architecture 对 Power 架构来说更像是一种分支。

指令集是架构的重要组成部分,Freescale PowerPC 的指令集与 Power ISA 之间基本相同,但硬件组成与应用场景不同致使依赖于硬件实现的指令子集不同。

EIS Architecture 的指令集是 Power ISA 的子集。下表是这两者的对应关系:

PowerISA 有v2.3-v2.7、v3.0、v3.1七个版本,目前最新的 PowerISA 是2020年发布的v3.1版本。

1.4 Freescale主要产品系列

Freescale PowerPC 在通讯领域的成功,很可能要归功于 PowerQUICC 处理器,这也是 IBM 的 PowerPC 和 Freescale 的 PowerPC 的最重要的区别。将 QUICC(Quad Integrated Communications Controller) 和 PowerPC 内核结合的 PowerPC 处理器称为 PowerQUICC 处理器。

自1995以后 PowerQUICC 一路升级,从 PowerQUICC I 到 PowerQUICC II ,再到 PowerQUICC III 和 PowerQUICC II pro 。目前, Freescale 将 CPM 升级为 QE(QUICC Engine)。

伴随 PowerQUICC 的升级,Freescale PowerPC 内核也在升级。

603内核系列:MPC850、MPC860、MPC875、MPC885 等,目前是最低端的 Freescale PowerPC 处理器。这类 PowerPC 处理器没有包含 SDRAM 接口,用户必须使用 MPC860 提供的 UPM(USER Programmable Machines) 配置成 SDRAM 接口。603内核配合 PowerQUICC I。

603E内核系列:MPC8250、MPC8260、MPC8272等。从 PowerPC 内核的角度看,603到603E的升级不大,主要是 MMU 上,此外包含了 SDRAM 控制器。603E内核配合 PowerQUICC II。

E300内核系列:MPC8349、MPC8347、MPC8360等。E300系列与603E系列结构基本一致,在处理器内核上的修改不多。QE最先在MPC8360上实现,此外支持 DDR SDRAM 接口。E300内核配合 PowerQUICC II pro。

E500内核系列:包括 MPC8540、MPC8560、MPC8548 等。E500内核共有V1 、V2两个版本。V1版本和V2版本的最大区别在于MMU。基于E500内核的 PowerPC 处理器是 Freescale 高端处理器的发展方向。E500 内核和603E有很大的不同,只有指令系统是兼容的,其他内核组件都不相同。E500 内核支持 DDR SDRAM,RapidIO 和千兆以太网接口。E500 内核配合 PowerQUICC III。

E600内核系列:也称为G4,包括 MPC7410,MPC7447,MPC7448,MPC8641 等。与 IBM 的Power 700 系列的最大不同在于G4系列支持 AltiVec结构。这类处理器也是 Apple 用于 MAC 机的芯片。

E700系列:支持64位的 PowerPC 结构,开发中(最新消息不明,怀疑被放弃)。

飞思卡尔 QorIQ 通信平台是飞思卡尔的 PowerQUICC 通信处理器的下一代演进产品,包含一个或者更多个核,一共有5个不同的产品平台。按照功能和性能,分为 P1, P2, P3, P4 和P5,同老的 PowerPC 产品保持软件兼容,例如 PowerQUICC 平台。

1.5 参考手册与学习资料

EIS Architecture 参考手册主要是 《EREF: A Programmer’s Reference Manual for Freescale Power Architecture Processors》,还有一些指令子集的说明手册、飞思卡尔各产品的处理器核架构手册等

Power Architecture参考手册有《PowerISA_V2.06B》、《PowerISA_V2.07》等。

EIS Architecture指令集分类

2.1 根据硬件和通用性分类

根据硬件和通用性可将EIS指令集分为 Base、SPE、AltiVec、VLE、Embedded 子集。对指令依据硬件进行分类可以针对特定需求定制嵌入式系统,不仅可以节省资金还能提高系统的可靠性和性能。

各指令子集实际上是基于特定硬件的。例如许多嵌入式系统没有 mmu 硬件,则处理器是不支持类似 tlbilx、tlbwe、tlbivax 这类指令的,也就是说如果该某一特定嵌入式系统中没有对应的硬件,则该系统无法运行这个指令子集。同时在不同的处理器上各指令子集包含的指令数也会不同,这跟处理器的实现有关。

2.2 根据执行权限分类

根据执行权限可将EIS指令集分为用户级指令子集、特权级指令子集。

用户级指令集包含:整数操作指令、存储/加载指令、浮点运算指令、跳转指令、处理器状态指令、Cache管理指令等。

特权级指令集包含:TLB操作指令、操作特权寄存器指令和中断处理指令。

飞思卡尔EIS Architecture v2.1详述

EIS2.1架构涉及到的指令子集有:

  • Base:包含整数指令、存储/加载指令、跳转指令等

  • SPE:浮点指令集

  • AltiVec:矢量运算集

  • VLE:变长指令集

  • Embedded:嵌入式系统相关指令

基于EIS2.1架构实现的处理器核有 e500 core family(包含e500v1, e500v2, e500mc, e5500, e6500)、e200 core family。其对应的 Power ISA 是2.06B,同时还包含一些EIS的特有指令。

所有飞思卡尔处理器都支持的 Power ISA 2.06 中的指令子集有:

  • Base

  • Embedded

  • Cache Specification

要注意的是有一些 Power ISA 2.06 的指令在所有飞思卡尔处理器中都是不支持的,不支持的指令子集有:

  • Server (and any dependent categories)

  • Decimal Floating-Point

  • Embedded.Cache.Debug

  • Embedded.Cache.Initialization

  • Embedded.Hypervisor.LRAT

  • Embedded.Multi-Threading

  • Embedded.Page Table

  • Embedded.TLB Write Conditional

  • Legacy Integer Multiply-Accumulate

  • Legacy Move Assist

  • Load/Store Quadword

  • Move Assist

  • Processor Compatibility

  • Stream

  • Strong Access Order

  • Trace

  • Vector-Scalar Extension

  • Vector.Little Endian

SkyEye 支持多种处理器模型

SkyEye 目前支持主流的嵌入式硬件平台,可以运行主流的操作系统,此外还能适配国内自主研发的操作系统天脉,上文中介绍的 PowerPC 和飞思卡尔指令集架构可以在 SkyEye 中进行全数字仿真。通过利用基于LLVM的动态二进制翻译技术,使虚拟处理器在典型的桌面计算机上运行速度可以达到2000MIPS以上。

SkyEye 目前支持的处理器模型列表:

飞思卡尔与PowerPC介绍相关推荐

  1. 痞子衡嵌入式:飞思卡尔i.MX RTyyyy系列MCU特性介绍(3)- 命名规则

    大家好,我是痞子衡,是正经搞技术的痞子.今天痞子衡给大家介绍的是飞思卡尔i.MX RTyyyy系列MCU的命名规则. 打开任何一款i.MX RTyyyy系列芯片的Data Sheet均可找到如下命名规 ...

  2. ai电磁组属于什么组_飞思卡尔智能车电磁组分区算法介绍

    写在之前的话: 1.目前我是一名在校学生,这也是我第一次写博客,不周之处,请多谅解: 2.此算法并非原创,借鉴自山东德州学院第八届白杨队(PS:个人看法,对于一些人把别人的开源东西改头换面一下就说是自 ...

  3. 痞子衡嵌入式:飞思卡尔Kinetis开发板OpenSDA调试器那些事(上)- 背景与架构

    大家好,我是痞子衡,是正经搞技术的痞子.今天痞子衡给大家介绍的是飞思卡尔Kinetis MCU开发板板载OpenSDA调试器(上篇). 众所周知,嵌入式软件开发几乎离不开调试器,因为写一个稍有代码规模 ...

  4. 飞思卡尔烧写工具mfgtools的使用

    注意:当时遇到烧录之后各种重启问题,还有system.img 文件同步不过去的原因,都是因为没有加flash刷新 <CMD state="Updater" type=&quo ...

  5. 痞子衡嵌入式:飞思卡尔i.MX RTyyyy系列MCU启动那些事(8)- 从Raw NAND启动

    大家好,我是痞子衡,是正经搞技术的痞子.今天痞子衡给大家介绍的是飞思卡尔i.MX RTyyyy系列MCU的Raw NAND启动. 前面铺垫了七篇启动系列文章,终于该讲具体Boot Device了,我们 ...

  6. ftm模块linux驱动,飞思卡尔k系列_ftm模块详解.doc

    飞思卡尔k系列_ftm模块详解 1.5FTM模块1.5.1 FTM模块简介FTM模块是一个多功能定时器模块,主要功能有,PWM输出.输入捕捉.输出比较.定时中断.脉冲加减计数.脉冲周期脉宽测量.在K1 ...

  7. ARM、X86/Atom、MIPS、PowerPC 介绍

    2016 RISC(reduced instruction set computer,精简指令集计算机)是一种执行较少类型计算机指令的微处理器,起源于80年代的MIPS主机(即RISC机),RISC机 ...

  8. hp203b例程_飞思卡尔公司LIN总线的例程代码

    [实例简介] 飞思卡尔公司LIN总线的例程代码,里面有PDF介绍和飞思卡尔众多DEMO板的LIN代码例程,非常适合对LIN总线的通讯进行学习 [实例截图] [核心代码] 飞思卡尔公司_FSLLINDr ...

  9. 飞思卡尔智能车之舵机算法

    恍恍惚惚,将近一年的智能车生涯终于结束了,虽然到目前为止我们的车子还是比不上学长的神车,但是也还算是对的起我们组一年的辛勤与努力了,为了给自己惨败的智能车比赛和还算完整的智能车学习生涯留下点东西.我打 ...

最新文章

  1. 王爽 汇编语言第三版 监测点9.2 监测点9.3 补全编程,利用jcxz指令,利用loop指令,实现在内存2000H段中查找第一个值为0的字节,
  2. php7与php5的区别,PHP7和PHP5区别
  3. matplotlib-绘制精美的图表
  4. JZOJ 1220. Pla
  5. abiword class list
  6. Jmeter通过CSV Data Set Config参数化
  7. iPhone 12 5G更耗电?续航时间较4G妥妥地缩短不少
  8. python可视化工具bokeh_浅谈python可视化包Bokeh
  9. mysql乱码加的一段代码_mysql乱码的解决方法
  10. 最新电脑为什么用ghost无法安装系统?安装版正常,是何原因?
  11. RxJava--takeWhile,takeUntil,(附带filter)的特性总结
  12. IOS网络——检测网络状态:Reachability
  13. 坑杀全球顶级量化大佬的经典案例:价值投资就是看财务指标吗?
  14. 清理windows资源管理器右键打开方式,新建菜单
  15. python科赫雪花递归理解_科赫雪花的python3实现(递归,非递归)
  16. 谷歌seo外链Backlinks研究工具推荐
  17. 2.4G信道跳频-LFSR-C代码实现
  18. 7-5 华氏度转摄氏度(四舍五入) (5分)_PTA_Java基础练习
  19. php语言有哪些特性,盘点PHP编程语言具有的特性
  20. 苹果4s怎么越狱教程_苹果u盘越狱教程

热门文章

  1. ubuntu 开启php mysql扩展_linux(ubuntu/centos)、windows安装php-zip扩展
  2. android黑屏日志_Android启动页黑屏的解决方案
  3. iphone7无服务_iphone7无服务无信号怎么办
  4. Java I/O体系之OutputStream和InputStream详细讲解
  5. 场强和电阻_电阻定律及其相关问题
  6. 现在php内存使用,php 内存使用信息代码
  7. stl文件unity_Unity导入STL格式模型(一)
  8. java 线程退出cmd_java 线程的终止与线程中断
  9. python做界面小软件_PySimpleGUI图形界面绘制及办公自动化小软件的制作
  10. 阿里云和中移物联网M5311的MQTT通讯