powerpc 扩展指令设计 1

Introduction:

  Powerpc是上世纪由IBM,MOTO,苹果公司合作开发的精简指令集处理器(RISC).PowerPC具有良好伸缩性以及可扩展性能,同时在上世纪90年代末期,PowerPC增加类似于DSP的单指令多数据的处理指令。

  相较于ARM,以及x86架构,PowerPC具有较好能耗比。本官将针对PowePC处理器内部流水线APU接口,进行扩展指令展示。通过PowerPC内部预留APU接口,可以支持DSP,定点运算以及浮点向量运算,可变长扩展指令运算。

Backgroud:

  无论系PowerPC抑或是ARM芯片,在通用功能上基本一致。各个厂家为提升某方面性能,例如控制/浮点运算/图形计算等等增加扩展指令集。例如ARM中存在Thumb指令,相对于普通32位指令,Thumb只有16位,极大提高指令压缩比。

  本文将基于QEMU的PowerPC高层仿真平台,对PowerPC扩展指令进行设计与实现。(基于C语言,of course)。本官将根据PowerPC指令手册,对指令集定义,采用电子级仿真平台对,对扩展指令进行设计,仿真,验证。因此本文将首先分析PowerPC相关架构以及寄存器,并且大家仿真环境,然后通过GCC验证指令格式,通过QEMU验证指令功能。

  

资料参考:18摸-PowerISA_V2.06B_V2_PUBLIC手册,以及QEMU的PowerPC仿真平台。(请移驾git下载),以及PPC405,460相关扩展指令资料,以及GCC关于扩展指令支持资料。

时间: 2024-07-30 22:42:58

powerpc 扩展指令设计 1的相关文章

cpu设计-->cpu指令设计与全程逻辑分析

CPU指令设计,除了命名之外,更重要的是分析出指令如何才能够实现.对于图 3 1的CPU结构,如果指令是预先放到irom里的,那么,指令执行时要一条一条地从irom取出来,放到ir指令寄存器中,提供给control进行分析执行.每一条指令如何转变成机器动作,CPU的设计者必须认真地进行分析和规划.这一过程叫指令全程动作分析,简称指令全程分析. 我们针对图 3-1的结构,可以尝试设计一些用符号表示的汇编指令,然后对这些汇编指令如何实现,进行细致地分析.汇编指令的二进制数表示就是机器指令.汇编指令和

巧用拦截器:高效的扩展点设计

最近在设计框架时,需要设计一类扩展点,发现不能简单地继承或使用事件来给使用者提供 API.最终使用拦截器模式解决了 API 的设计.   扩展点使用场景 该扩展点的使用场景如下: 不能使用继承:需要在类型的继承体系外(非被扩展类型的子类)对类型进行扩展. 需要能在基本逻辑的执行前.后扩展新的逻辑,甚至可以使用新的逻辑替换基础逻辑. 对于性能敏感.由于该基础逻辑是比较核心的代码,需要尽量地减少扩展点带来的额外性能消耗.并尽量少地产生额外的对象.   扩展点设计方案选型 在框架设计时,扩展点设计主要

Citrix Profile Management 和 VDI系列讲座之三:大规模环境下的扩展架构设计

说好了要写三期的,上周在出差,最后一期姗姗来迟,还望大家见谅,特别是那些给我回信问我问题的XD们. 咱们第一期讲了如何配置CitrixProfile Management 和 Folder Redirection,第二期讲了性能参数调优,这第三期就升华一下,探讨一下如何在大规模环境中做到文件服务器或者是NAS设备的扩展,同时如何管理用户使用这些设备? 相信你也知道,如果你的环境里面只有500个并发的XenApp用户,或者是500个VDI桌面,那我想这个环境的搭建不会太复杂,一台文件服务器或者是一

推荐 15 个 Angular.js 应用扩展指令(参考应用)

几天前我们看到Angular 1.4.0发布了-一个以社团为驱动的发布版本涵盖了400多个GitHub的提交,增加了对特性的提升,比如动画,以及可用性. 官方新闻发布稿 覆盖了绝大部分,这同样值得放于 官方版本库 中. Angular.js   是一个神奇的JS框架,这一点毫无疑问,但是尽管受欢迎度和社团日益增长,但是社团中的很多开发者觉得Angular是另外一种浪费个人时间和效率的形式.在这些最不招人喜欢的问题中你会发现,测试和调试简直就是一个噩梦.你可以从网络上找到一些分散的报告, 这里有一

聊聊从web session的共享到可扩展缓存设计

先从web session的共享说起 许多系统需要提供7*24小时服务,这类系统肯定需要考虑灾备问题,单台服务器如果宕机可能无法立马恢复使用,这必定影响到服务.这个问题对于系统规模来说,从小到大可能面临的难度会相差很大.但对于原理来说其实就是需要准备备份系统随时可以替代正在服务的系统,也就是无论何时都有服务器可以提供服务.也就是灾备系统或者负载均衡. 提供灾备系统或者负载均衡系统都需要面临一个问题,那就是如何解决共享数据的问题.对于web服务器而言首先要解决的就是web session共享问题,

表格布局扩展/DW设计界面中快速整体布局页面的操作

DW设计界面中快速整体布局页面的操作流程: <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta htt

《华油能源OA系统数据同步和扩展的设计与实现_张宇峰》阅读笔记

为什么我会找到这篇论文? 华油能源集团拥有多套信息化软件系统,每个用户需要登录操作多个软件系统,记住多个系统的用户名.密码,需要不停的切换到每个系统,查看是否有需要进行的工作:管理员更是疲于每天对各个软件后台进行部门.人员.密码等信息的维护操作.基于此,华油能源集团有必要对这些系统进行关联整合:各个系统之间的数据同步:各个系统之间的数据的发送扩展:基于一套系统可以登录多套系统的单点登录操作. 我现在项目中遇到的问题就是,如何去整合不同系统中的密码和账号.我需要一个同步机制. 然后,我现在有的系统

高扩展软件架构设计

从最简单的水平来看,可伸缩性就是做更多的事情.更多的事情可以是响应更多的用户请求,执行更多的工作,或处理更多的数据.设计软件这件事本身是复杂的,而让软件做更多的工作也有其特有的问题.这篇文章针对构建可伸缩软件系统提出了一些原则和方针. 1. 减少处理时间 增加应用所做工作数量的一个方法就是减少完成单项工作所花费的时间.举例来说,减少处理一个用户请求所需的时间意味着你能在同样长的时间内处理更多的用户请求.这里有一些本原则适用的例子和一些可能的实现策略. 并置(Collocation):通过并置数据

基于ARM处理器的反汇编器软件简单设计及实现

写在前面 2012年写的,仅供参考 反汇编的目的 缺乏某些必要的说明资料的情况下, 想获得某些软件系统的源代码.设计思想及理念, 以便复制, 改造.移植和发展: 从源码上对软件的可靠性和安全性进行验证,对那些直接与CPU 相关的目标代码进行安全性分析: 涉及的主要内容 分析ARM处理器指令的特点,以及编译以后可执行的二进制文件代码的特征: 将二进制机器代码经过指令和数据分开模块的加工处理: 分解标识出指令代码和数据代码: 然后将指令代码反汇编并加工成易于阅读的汇编指令形式的文件: 下面给出个示例