powerpc架构的前世今生
文章目录
- Powerpc架构的前世
- 今生
- 什么是powerpc?
- PowerPC和ARM有什么区别呢?
Powerpc架构的前世
PowerPC架构是一种基于精简指令集计算机(RISC)的处理器架构。它最初由IBM、Motorola和Apple共同开发,旨在为个人电脑、工作站和服务器提供高性能和可扩展性。
PowerPC架构在1991年首次推出,后来成为苹果Macintosh电脑的主要处理器架构。它在苹果电脑上使用的时间从1994年持续到2006年,之后苹果转向使用基于x86架构的处理器。
PowerPC架构的设计注重性能、低功耗和可扩展性。它采用了流水线执行、超标量执行和乱序执行等技术,以提高指令执行效率。PowerPC架构还支持多级缓存和高速总线,以加快数据传输和访问速度。
PowerPC架构具有良好的跨平台兼容性,因为它的指令集是统一的。这意味着在不同的PowerPC处理器上编译的程序可以在各种PowerPC系统上运行,无需重新编译。这为软件开发者和用户带来了便利。
在工作站和服务器领域,PowerPC架构曾经是一种受欢迎的选择。它在高性能计算、科学计算和图形处理等领域表现出色。然而,随着x86架构的不断发展和市场占有率的增加,PowerPC架构逐渐失去了竞争力。
尽管如此,PowerPC架构仍然存在,并且在某些领域和特定应用中仍然被使用。例如,它在某些嵌入式系统、网络设备和游戏主机中得到应用。
PowerPC架构曾经在多个产品中得到广泛应用。以下是一些使用PowerPC架构的知名产品:
-
Apple Macintosh电脑:在1994年至2006年期间,苹果公司的Macintosh电脑使用PowerPC处理器。这些电脑包括iMac、Power Macintosh和PowerBook等系列。
-
IBM RS/6000和IBM System p:IBM推出的RS/6000工作站和System p服务器系列使用了PowerPC处理器。这些产品在科学计算、工程设计和企业级应用等领域具有很高的性能。
-
Amiga 4000和AmigaOne:Amiga计算机是一种在1980年代和1990年代非常流行的家用计算机。Amiga 4000和AmigaOne系列采用了PowerPC处理器,为用户提供了强大的多媒体和游戏体验。
-
Sony PlayStation 3:PlayStation 3游戏主机采用了基于PowerPC架构的Cell处理器。这款游戏主机在发布时引起了广泛关注,并在游戏界取得了巨大成功。
-
Nintendo GameCube和Wii:任天堂的GameCube和Wii游戏主机也使用了PowerPC架构的处理器。这些主机在游戏市场上取得了很大的成功,并受到广大玩家的喜爱。
-
Nokia 770 Internet Tablet:Nokia 770是一款于2005年发布的互联网平板设备,它搭载了PowerPC架构的TI OMAP 1710处理器。这款设备旨在提供互联网浏览、电子邮件、音乐播放等功能。
-
Nokia N800和N810 Internet Tablets:Nokia N800和N810是Nokia 770的后续产品,同样采用了PowerPC架构的TI OMAP处理器。它们是基于Linux的移动互联网设备,提供了更多的功能和改进的性能。
有那么一段时间,PowerPC获得了巨大的成功。摩托罗拉68000系列芯片是Apple PC以及许多种类和数百万个嵌入式控制器的核心。除了苹果之外,索尼的PlayStation3、任天堂的Wii、Wii U、GameCube、微软的Xbox 360和3DO M2都使用了PowerPC处理器。
今生
2005年,苹果联合创始人史蒂夫·乔布斯宣布苹果将转向英特尔处理器。当苹果放弃PowerPC时,其实就数量而言,他们并没有失去大量客户,但他们失去了最负盛名的客户。然后游戏机也放弃了PowerPC,而典型的嵌入式系统也放弃了。
在20世纪90年代和21世纪初,授权处理器IP可谓风靡一时,这是实现大规模采用的最可靠途径。其实从一开始,IBM就仿效了ARM、MIPS、SPARC等架构,走了PowerPC的授权路线。但是IBM的条款太苛刻了,PowerPC许可证比MIPS或ARM的许可证贵得多。PowerPC未能在市场普及很大的原因是开放不足
、IBM的高价授权费
。智能手机时代后,PowerPC 因成本问题逐渐被边缘化。
2005年2月28日, 信息产业部软件与集成电路促进中心(CSIP)与飞思卡尔半导体公司(Freescale)联合宣布将在北京共建CSIP-Freescale Linux系统实验室,支持国家软件与集成电路公共服务平台的建设。在此次合作中,飞思卡尔和第三方合作伙伴将为该实验室提供基于PowerPC处理器的开发板和工作站。
苏州国芯科技股份有限公司成立于2001年,2001年在信息产业部指导下苏州国芯接受摩托罗拉先进水平的低功耗、高性能32位RISC嵌入式CPU M*Core 技术及设计方法,2010年又接收了IBM较先进的PowerPC技术。根据IBM和苏州国芯科技的技术转移协议,IBM同意将 PowerPC嵌入式CPU的技术转移给中国,这也是IBM第一次将 PowerPC技术正式许可给中国企业使用,并且中国企业可以在此基础上开展创新研究和开发,技术成果归中国企业所有。
基于PowerPC的指令集和架构开发高端嵌入式CCore CPU,苏州国芯以此为高起点,经过多年的开发与自主创新,公司成功开发了C0、C200、C300、C400、C2000、C8000、C9000等7个系列43款高性能嵌入式CPU系列。基于CCore核心已有80多款SoC芯片完成设计,并在SMIC、HHNEC、联电/和舰、宏力和TSMC等工艺线上验证及生产。基于CCore CPU及设计平台的系列技术广泛应用于在信息安全、智能电网、金融安全、电子政务、工业控制、办公自动化等领域。2018年有超过亿颗内嵌 CCore CPU 的 SoC 芯片获得量产应用。
什么是powerpc?
PowerPC(Performance Optimization With Enhanced RISC – Performance Computing
,有时简称PPC)是一种精简指令集(RISC)架构的中央处理器(CPU),PowerPC架构具有可伸缩性好、方便灵活,具有非常强的嵌入式表现,因为它具有优异的性能、较低的能量损耗以及较低的散热量。除了像串行和以太网控制器那样的集成 I/O,该嵌入式处理器与台式机CPU存在非常显著的区别。Powerpc芯片凭借其出色的性能和高度整合和技术先进特性在网络通信应用,工业控制应用,家用数字化,网络存储领域,军工领域,电力系统控制等都具有非常广泛的应用。
PowerPC和ARM有什么区别呢?
1、整合度高以及技术先进性,现在PowerPC 处理器集成USB,PCI,DDR控制器,SATA控制器,千兆网口控制器,CAN控制器,RapidIO以及PCI_Express控制器,IEEE1588通信协议,支持各种通信协议CPM协处理器 ,DMA,SPI,I2C.UART等,客户无须设计复杂的外围电路,减少设计复杂程度以及物料使用,ARM这点比不上 。
2、芯片可选范围大,性能高,升级容易,从50M-1.7G都有处理器,而且POwerPC将象多核处理器发展,如已经推出集成双e500 core MPC8572,MIPS性能高达6897,ARM我看频率是1G的都没有,ARM 大概是 1.1 MIPS/MHz,Power Architecture 是大于2.0MIPS/MHz,所以PowerPC在高端嵌入式应用,占有很大比例,ARM这点比不上 。
3、价格方面,PowerPC处理器相对于ARM来说价格比较贵,但是如果是MIPS/MHz性能比较以及整合的外围电路来说。
4、PowerPC 的结构在尤其在功耗方面的束缚可能导致其在嵌入式领域没有如ARM那样大的伸缩性。
相关文章:

powerpc架构的前世今生
文章目录 Powerpc架构的前世今生什么是powerpc?PowerPC和ARM有什么区别呢? Powerpc架构的前世 PowerPC架构是一种基于精简指令集计算机(RISC)的处理器架构。它最初由IBM、Motorola和Apple共同开发,旨在为个人电脑、工…...

SQL-存储过程、流程控制、游标
存储过程 存储过程概述 1.产生背景 开发过程总,经常会遇到重复使用某一功能的情况 2.解决办法 MySQL引人了存储过程(Stored Procedure)这一技术 3.存储过程 存储过程就是一条或多条SQL语句的集合存储过程可将一系列复杂操作封装成一个代码块,以便…...

JavaScript的数组和字典的用法
JavaScript 中的数组是一种用于存储多个值的数据结构,它可以容纳不同类型的数据(例如数字、字符串、对象等)。以下是 JavaScript 数组的常见用法: 创建数组 // 创建一个空数组 let emptyArray [];// 创建一个包含元素的数组 le…...

中断和异常
1.什么是中断 CPU上会运行两种程序,一种是内核程序,一种是应用程序。在正常的情况,CPU上面会主动运行应用程序,中断就是操作系统内核夺回CPU执行权的唯一途径,也就是用户态——>内核态。 2.内中断和外中断 2.1内…...

【python】实现积分
借助sympy.integrate() 符号运算库,所以里面的exp(),sin()等都要使用sympy库中的函数,如果使用numpy库中的函数时没用的。 import sympy as sp import numpy as np x sp.symbols("x") print(sp.integrate(sp.exp(-x**2), (x, -s…...

微信仿H5支付
仿H5支付是指一种模拟原生H5支付流程的非官方支付方式。这种支付方式通常是由第三方支付服务提供商开发和维护的,目的是为了绕过官方支付渠道的限制,如费率、审核等问题。然而,由于仿H5支付并非官方授权和认可的支付方式,其安全性…...

数据结构——栈
栈 栈的理解 咱们先不管栈的数据结构什么,先了解栈是什么,栈就像一个桶一样,你先放进去的东西,被后放进的的东西压着,那么就需要把后放进行的东西拿出才能拿出来先放进去的东西,如图1,就像图1中…...

组件化开发之如何封装组件-react
组件化开发之如何封装组件-react 什么是组件为什么需要封装组件组件的分类函数组件(Functional Components):展示型组件:容器型组件:知道组件分类的意义是? 如何拆分组件,需要遵循什么原则1.保证…...

大数据HBase学习圣经:一本书实现HBase学习自由
学习目标:三栖合一架构师 本文是《大数据HBase学习圣经》 V1版本,是 《尼恩 大数据 面试宝典》姊妹篇。 这里特别说明一下:《尼恩 大数据 面试宝典》5个专题 PDF 自首次发布以来, 已经汇集了 好几百题,大量的大厂面试…...

Leetcode110. 平衡二叉树
力扣(LeetCode)官网 - 全球极客挚爱的技术成长平台 给定一个二叉树,判断它是否是高度平衡的二叉树。 本题中,一棵高度平衡二叉树定义为: 一个二叉树每个节点 的左右两个子树的高度差的绝对值不超过 1 。 题解ÿ…...

Swift的NSClassFromString转换
在swift 中使用NSClassFromString 从string 转换到 对象,报了Segmentation fault: 11 错误。 let ctrlClass: AnyClass NSClassFromString("HomeViewController")! let ctrl: UIViewController ctrlClass.init() as UIViewController 正确的写法&…...

linux上vim编辑器设置
linux上vim编辑器设置 减少tab缩进、显示行号等 在vimrc(一般在/etc/vim/vimrc中)末尾添加 set helplangcn "中文帮助文档(前提是下了中文包) syntax enable syntax on " 自动语法高亮 set number"显示行号 colorscheme desert" 设…...

SpringCloudAlibaba OpenFeign整合及详解
SpringCloudAlibaba OpenFeign 在前面,我们使用Nacos服务注册发现后,服务远程调用可以使用RestTemplateRibbon或者OpenFeign调用。实际开发中很少使用RestTemplate这种方式进行调用服务,每次调用需要填写地址,还要配置各种的参数&…...

Mysql--技术文档--MVCC(Multi-Version Concurrency Control | 多版本并发控制)
MVCC到底是什么 MVCC(Multi-Version Concurrency Control)是一种并发控制机制,用于解决并发访问数据库时的数据一致性和隔离性问题。MVCC允许多个事务同时读取数据库的同一数据,而不会相互干扰或导致冲突。 在传统的并发控制机制中…...

全网都在用的nnUNet V2版本改进了啥,怎么安装?(一)
nnUNet,这个医学领域的分割巨无霸!在论文和比赛中随处可见他的身影。大家对于nnUNet v1版本的教程都赞不绝口,因为它简单易懂、详细全面,让很多朋友都轻松掌握了使用方法。 最近,我也抽出时间仔细研究了nnUNet v2,并全…...

iOS开发Swift-4-IBAction,group,音乐播放器-木琴App
1.使用素材创建木琴App的UI。 2.连接IBAction。 其余按钮直接拖拽到play里边。 当鼠标置于1处时2处显示如图,表示成功。当用户按下任一按钮都会触发play中的内容。 3.将7个按钮的View中的Tag值分别调为1、2、3、4、5、6、7. 4.将音频文件拖入项目文件中。 Create gr…...

【linux】pid 文件的作用ing
文章目录 一. pid文件简介1. pid 文件是什么2. 作用 二. pid文件的使用 一. pid文件简介 1. pid 文件是什么 打开系统(Linux) 的 “/var/run/” 目录可以看到有很多已 “.pid” 为结尾的文件,只有一行,它记录的是相应进程的 pid,即进程号。…...

K8s简介之什么是K8s
目录 1.概述 2.什么是容器引擎? 3.什么是容器 4.什么是容器编排? 5.容器编排工具 6.到底什么是K8s? 7.为什么市场推荐K8s 8.K8s架构 9.K8s组件 Pods API 服务器 调度器 控制器管理器 Etcd 节点 Kubelet Kube代理 Kubectl 1.概述 Kub…...

说说Flink双流join
分析&回答 Flink双流JOIN主要分为两大类 一类是基于原生State的Connect算子操作另一类是基于窗口的JOIN操作。其中基于窗口的JOIN可细分为window join和interval join两种。 基于原生State的Connect算子操作 实现原理:底层原理依赖Flink的State状态存储&…...

I2C与I3C的对比
I2C与I3C的对比 电气特性 I2C 1.半双工 2.串行数据线(SDA)和串行时钟线(SCL) 3.数据线漏极开路,即I2C接口接上拉电阻 4.I2C总线运行速度:**标准模式100kbit/s,快速模式400kbit/s,快速模式plus 1Mbit/s,**高速模式…...

睿趣科技:抖音开小店大概多久可以做起来
随着移动互联网的快速发展,社交媒体平台成为了人们分享生活、交流信息的主要渠道之一。在众多社交平台中,抖音以其独特的短视频形式和强大的用户粘性受到了广泛关注。近年来,越来越多的人通过在抖音上开设小店来实现创业梦想,这种…...

CCF-CSP 26次 第三题【角色授权】
计算机软件能力认证考试系统 20分: #include<bits/stdc.h> using namespace std; const int N440; int n,m,q,nv,no,nn,ns,ng; struct Node {string name;map<string,int>op;map<string,int>res_kind;map<string,int>res_name; }role[N];…...

Ansible学习笔记11
Command和Shell模块: 两个模块都是用于执行Linux命令的,这个对于命令熟悉的工程师来说,用起来非常high。 Shell模块跟Command模块差不多(Command模块不能执行一类$HOME、> 、<、| 等符号,但是Shell是可以的。&…...

Vue中如何为Echarts统计图设置数据
在前端界面接收后端数据后,将数据赋值给ECharts中的data时出现了,数据读取失败的问题(可能是由于数据渲染的前后顺序问题)。后通过如下方式进行了解决: 1、接下来将介绍UserController中的countUsers方法,…...

力扣141. 环形链表
141. 环形链表 简单 2K 相关企业 给你一个链表的头节点 head ,判断链表中是否有环。 如果链表中有某个节点,可以通过连续跟踪 next 指针再次到达,则链表中存在环。 为了表示给定链表中的环,评测系统内部使用整数 pos 来表示链…...

4.1 链式栈StackT
C关键词:内部类/模板类/头插 C自学精简教程 目录(必读) C数据结构与算法实现(目录) 栈的内存结构 空栈: 有一个元素的栈: 多个元素的栈: 成员函数说明 0 clear 清空栈 clear 函数负责将栈的对内存释放…...

算法练习(10):牛客在线编程10 贪心算法
package jz.bm;import java.util.ArrayList; import java.util.Arrays;public class bm10 {/*** BM95 分糖果问题*/public int candy (int[] arr) {int res 0;int n arr.length;int[] nums new int[n];//每个人都分配一个糖果for (int i 0; i < n; i) {nums[i] 1;}//从…...

Java8新特性1——函数式接口lambda表达式
Java8新特性1——函数式接口&lambda表达式 注:以下内容基于Java 8,所有代码都已在Java 8环境下测试通过 目录: Java8新特性1——函数式接口&lambda表达式方法引用Stream 1. 函数式接口 如果在一个接口中,有且只有一个抽…...

文本标注技术方案(NLP标注工具)
Doccano doccano 是一个面向人类的开源文本注释工具。它为文本分类、序列标记和序列到序列任务提供注释功能。您可以创建用于情感分析、命名实体识别、文本摘要等的标记数据。只需创建一个项目,上传数据,然后开始注释。您可以在数小时内构建数据集。 支持…...

03-使用一个不可变对象作为key,红黑树怎么比较大小?
使用一个不可变对象作为key,红黑树怎么比较大小? 答:Java 中的红黑树是通过左旋、右旋的方式来维护树的平衡性,而左旋、右旋又依赖于节点大小的比较。对于使用不可变对象作为key实际上是可以的,因为比较key的大小本身…...