파워PC

fpr = IBM PowerPC 601 마이크로프로세서 PPC601FD-080-2 **파워PC**(PowerPC, Performance Optimization With Enhanced RISC – Performance Computing의 약어, 간단히 **PPC**)는 1991년 애플, IBM, 모토로라 등이 제휴한 AIM 연합에서 발표한 RISC 방식의 명령 집합 아키텍처(Instruction Set Architecture)를 말한다. PowerPC 명령 집합은 지속적으로 진화하고 있으며, 2006년에 Power ISA로 이름을 바꾸었으나, 그 이후에도 파워PC는 파워 아키텍처 기반의 몇몇 프로세서를 통칭하는 명칭으로 사용되고 있다. 파워PC 아키텍처 자체는 동작의 기본이 되는 명령 집합이나 레지스터 집합, 메모리 어드레싱, 캐시 모델 등을 규정하고 있지만 이들의 구현 방법에 대한 규정은 없다. 그러므로 극단적으로 파워 피씨 아키텍처에서 내부적으로 CISC 또는 소프트웨어를 구현해도 파워 피씨 프로세서라고 부를 수 있다. 이러한 특징으로 실제로 제조되는 모델은 고속화를 위해서 아키텍처 수준에서는 규정되어 있지 않은 부품(2차, 3차 캐시나 관련 레지스터 등)을 갖추고 있는 것이 보통이다. 원래는 AIM(애플, IBM, 모토로라) 플랫폼의 CPU가 이런 의미로 개발된 것이지만, CPU 말고는 개발된 것이 없으므로 오늘날까지 남아 있는 파워피씨 계열 프로젝트의 유일한 성과물이기도 하다. 파워피씨는 애플 컴퓨터사의 파워맥에 사용되었다. 그 밖에는 IBM의 일부 워크스테이션, 서버나 BlueGene/L뿐만 아니라 슈퍼 컴퓨터에도 사용된다. 또한 기판 크기가 작고 소비 전력이 낮으며 자일링스 FPGA용 IP 코어도 제공한다. 현재는 모토로라에서 분리된 프리스케일 세미컨덕터와 IBM에서 개발하여 제조하고 있다.
# 특징
POWER, 파워PC, 파워 ISA 파워 피씨는 RISC 개념으로 만들어져 있으며 슈퍼 스칼라 방식으로 명령을 실행한다. 기본적인 파워의 특징에 몇 가지 수정 사항이 추가되었다. * 빅 엔디언 및 리틀 엔디언 지원 (G5 제외) * 단정밀도 부동소수점 연산에 배정밀도 부동소수점 연산 추가 * 32비트 명령과 64 비트 명령 집합이 완전하게 하위 호환 * 32개의 GPR (범용 레지스터)과 32 개의 FPR(부동소수점 레지스터) * 파워 아키텍처 가운데 복잡한 것을 생략한 명령 집합 * 명령은 기본적으로 하드 와이어 (Hard-Wired) 논리로 구현(일부는 마이크로 코드로 구현) * G4(제4 세대) 시리즈에서는128 비트 단위로 벡터 연산을 실시하는 AltiVec( 애플 컴퓨터는 벨로시티 엔진(Velocity Engine)이라고 부른다)를 적용 * G5의 벡터 연산 장치는 슈퍼 스칼라나 슈퍼 파이프 라인으로 200개의 명령을 동시에 처리할 수 있도록 향상됨
# 역사
1970년대 후반, 존 콕의 RISC 아이디어를 착안한 미 IBM사의 801 프로토타입 칩으로 시작되었다. 801을 기본으로 한 코어는 수많은 IBM 제품에 채용되어 최종적으로는 16개의 레지스터를 가진 ROMP 프로세서인 IBM RT까지 발전했다. 그러나 RT 프로세서의 성능은 충분하다고 말할 수 없었기 때문에 IBM은 미국 프로젝트라고 불리는 시장에서 가장 고속의 프로세서를 개발할 프로젝트를 시작했다. 이렇게 하여 개발된 것이 POWER 아키텍처이며, 1990년 초에 RISC System/6000과 함께 발표되었다. 본래 POWER 마이크로프로세서는 슈퍼 스칼라를 실현한 최초의 프로세서의 하나이며, 높은 성능으로 멀티 프로세서에 대응하고 있었다. 하지만 IBM의 RS/6000의 제품군을 저성능 제품에서부터 고성능 제품으로 확대할 즈음 POWER 프로세서로부터 몇 개의 구성 요소를 없애 싱글 칩 프로세서로 할 필요가 생겼기 때문에 IBM는 RSC(RISC 싱글 칩)의 개발에 착수했다. RSC는 개발의 초기 단계에서는 개인부터 공업용으로까지 폭넓게 사용할 수 있을 가능성을 가진 고기능의 프로세서가 될 것이라고 여겨졌다. 1991년 IBM은 애플 컴퓨터에 POWER 아키텍처를 기반으로 한 싱글 칩 마이크로프로세서 개발을 공동협력 하자고 제안한다. 애플컴퓨터는 그 당시 사무용 컴퓨터용 프로세서의 최대 공급 업체인 모토로라에 이 사실을 제안한다. 이 이유는 모토로라가 IBM보다 마이크로프로세서의 대량생산 경험이 풍부하고 마이크로프로세서에 대한 2차 공급자가 필요했기 때문이다. 이로써 IBM, 애플 컴퓨터, 모토로라라는 AIM 연합이 탄생한다. 1991년 PowerPC는 AIM 연합에게 가장 큰 요소의 하나가 되었다. 당시 개인용 컴퓨터 시장에서는 마이크로소프트 윈도우를 개발하고 있었으며, 인텔 프로세서가 시장을 지배하고 있었다. 또한 CISC 아키텍처의 인텔 80386 및 80486이 대부분의 컴퓨터에 채용되고 있어 다음의 펜티엄 프로세서의 개발도 순조롭게 진행되고 있었다. PowerPC 프로세서는 모험적인 요소를 포함하고 있었지만, 확대되고 있는 마이크로소프트와 인텔에게 지배 당하지 않으려고 개발을 계속 진행하였다. POWER 계열 프로세서의 개발에 참가하는 일은 모토로라에게는 다시 없을 기회였다. 이 시점에서 모토로라는 이미 자사 제품의 RISC 프로세서 MC88000을 시장에 투입하고 있었다. 그러나 이 프로세서는 빈약한 설계 수법과 제조상의 문제로 인해 시장에서는 낮은 평가를 받았고, 판매는 침체하고 있었다. 이 때문에 모토로라는 MIPS나 SPARC 경합 제품에 의해 시장을 잃고 있었다. 그러나 신형 POWER 계열 프로세서의 개발에 참가하면 캐시 부분을 설계하기만 해도 잘 테스트된 고성능 RISC 프로세서를 판매할 수 있게 되므로 RISC 프로세서 시장에서의 반격이 기대되었다. 또한 중요한 고객인 애플 컴퓨터와의 관계의 개선이나 IBM에 제한 버전을 공급할 수 있을 가능성도 있었다. 한편 평가를 낮게 받았던 MC88000 프로세서는 이미 생산되고 있었고 애플사는 이미 이 프로세서를 이용한 프로토타입의 컴퓨터를 사용하고 있었다. 이 때문에 개발 중인 POWER 아키텍처 단일 칩 버스에 하드웨어의 단계에서 MC88000의 버스와의 호환성을 갖게 하면 논리 기판을 다시 설계하는 것보다 더 빠르게 신형 프로세서를 시장에 투입할 수 있었다. 최종적으로 신형 프로세서 PowerPC에 대한 요구를 설계에 포함시키게 되었다. 그러나 PowerPC가 시장에 투입되기 직전 큰 움직임이 있었다. 애플 컴퓨터에 가세한 IBM과 모토로라의 양 회사는 PowerPC 프로세서에 적용한 시스템을 제안했다. 마이크로소프트는 모토로라의 PowerPC 서버 전용의 윈도우 NT 3.51을 발표하고 선마이크로시스템도 솔라리스 OS의 PowerPC 판을 발표했다. 또한 IBM은 자사 제품의 AIX 유닉스를 이식하고, OS/2의 이식도 계획하고 있었다. 또한 90년대 중순 PowerPC 프로세서는 벤치마크에 최고 속도의 x86 계열 프로세서와 맞먹거나 능가하는 성능을 발휘했다. 그러나 이러한 움직임은 얼마 안 되는 기간에 끝나고 결국 PowerPC 신형 아키텍처에 기대되고 있던 이상이 실현되는 일은 없었다. 윈도, OS/2, 그리고 썬의 고객은 PowerPC 용 소프트웨어의 부족을 이유로 PowerPC 프로세서는 거의 돌아보지 않았다. 이러한 운영 체제의 후계가 시장에 투입되는 일은 없고, PowerPC로부터 완전하게 떨어져 갔다. 최종적으로는 애플의 Mac OS 그리고 상용이 아닌 PPC 리눅스 만이 남았다. 2005년 PowerPC 계열 CPU에 큰 변화가 찾아왔다. 우선 2005년의 E3에 전시된 차세대 게임기(레볼루션(코드네임, 현재의 Wii), 플레이 스테이션3, 엑스박스 360)의 CPU가 모두 PowerPC 계열 아키텍처가 탑재된 것이다. 한편 지금까지 PowerPC를 채용하고 있었던 애플 컴퓨터 회사의 매킨토시가 2006년부터 인텔사의 CPU로 전면적으로 바꾸어 가는 것이 발표되었다. 현재 애플은 인텔 아키텍처를 완전하게 받아들이는 작업이 끝났으므로 PowerPC의 PC를 위한 프로세서로서의 역사는 끝났다. 현재는 게임기, 서버나 슈퍼 컴퓨터 그리고 군사용 장비에 채용되고 있다.
# PowerPC의 프로세서

## G1
PowerPC 계열은 IBM의 기존의 POWER 프로세서를 기반으로 설계되었다. 그러므로 정식으로는 PowerPC의 세대에 대한 숫자가 없다. * PowerPC 601 - 50,66,80,90 MHz, POWER 명령도 구현 * PowerPC 601+ - 외부 버스의 3배 클럭 그리고 동작, 저전원 전압화(+2.5V) 100, 110, 120 MHz * PowerPC 602 - 저가격판 3DO의 후계 M2에 채용될 예정이었다. M2를 기반으로 했다. 코나미의 업무용 게임기에 사용되었다.
## G2
알루미늄 배선 603, 604 G2가 1세대이고, 2세대의 경우 IBM이 문서에서 603e와 604e 모두 같은 배선을 적용하였다고 하였으나 250 MHz 이상에 대한 문서가 흩어져 있어서 확실한 정보는 없다. 다만 어느 쪽이나 서로 버스가 완전하게 호환되었기 때문에 굳이 구별하는 것은 중요하지 않았다. * PowerPC 603 - 소비 전력이 낮음 ** PowerPC 603e - 소비 전력이 낮고 속도가 개선됨 ** PowerPC 603ev - PowerPC 603e보다 속도가 개선됨 * PowerPC 604 - SMP 호환, 인라인 L2 캐시, 고속의 부동소수점 연산 ** PowerPC 604e - 604의 낮은 소비 전력, 작아지고 속도가 개선됨 ** PowerPC 604ev - 604e의 낮은 소비 전력, 작아지고 속도가 개선됨 * PowerPC 615 - x86과 PowerPC 명령의 양립을 목표로 한 프로세서. 펜티엄 호환 소켓에 장착 가능. x86 프로세서로서는 당시의 펜티엄 등에 대항할 수 있는 성능을 유지할 것으로 전망되었지만 명령의 변환할 때 성능이 떨어진다. 다이 크기가 330 제곱 밀리미터와 파워피씨 계열으로서는 마이크로소프트 등이 지원하지 않을 가능성이 커서 개발이 중지되었다. * PowerPC 620 - 64 비트판. 그 설계는 POWER3에 인계된다 * x0704 - exponential technology 사에 의한 호환 칩. BiCMOS가 제조한 것. 클럭 수는 당시의 PowerPC를 웃돌고 있었다.(433/500/533 MHz)
## G3
XPC7400 XPC7455 G3(제3 세대) 이후는 일반적으로 PowerPC를 채용한 대표적인 제품이 있다. 파워 매킨토시 시리즈로 애플 표기에 함께 사용함으로써 구분이 일반적으로 명확하게 되었다. 성능에 비해 소비 전력이 낮은 것이 특징으로 현재는 주로 임베디드 시스템에 이용된다. * PowerPC 75x,74x - PowerPC G3 시리즈로 불린다. 603e의 계열이며, PowerPC 75x에는 백 사이드 캐시를 채용하였다. 정수 연산 장치를 2개가 기본이다. ** PowerPC 750L -750 라인 ** PowerPC 750CX/CXe -256KB L2 캐시를 내장 ** PowerPC 750FX/FL -130나노미터 SOI L2 캐시 512KB ** PowerPC 750GX -90나노미터 SOI, 200 MHz FSB 대응, L2 캐시 1메가바이트, 1.1 GHz 까지 ** PowerPC 750CL -L2 캐시 256KB, 400 MHz ~1 GHz, PowerPC 750GX의 약 50% 절전 * Gekko - 닌텐도 게임 큐브용으로 개발된 것(PowerPC 750CXe를 기반으로 배정밀도 부동소수(실수) 연산 대응, SIMD를 추가한 설계) * Broadway - 90나노미터 SOI, 닌텐도의 Wii 용으로 개발(게코와 호환되며 PowerPC 750CL 기반이라고 여겨지지만 자세한 것은 공개되어 있지 않음)
## G4
파워PC G4 G3을 기반으로 부동소수점 연산 기능을 강화, SIMD와 대칭형 멀티 프로세서(SMP) 기능을 추가. 기존의 60x 버스보다 높은 수준의 제어 기능을 가졌다. MPX 버스와도 호환된다. * MPC 74xx - G4 시리즈로 불린다. 모토로라 및 프리스케일 세미컨덕터에서 개발. ** AltiVec ( Velocity Engine ) 탑재 ** CPU 버스에 MPX 버스 ( MaxBus ) 채용 ** SMP 호환 * MPC 7400 ** MPC 7410 - 저전력판. 180 나노미터 공정으로 제조. * MPC 7450 - L2 캐시 256 킬로바이트 내장, L3 캐시 대응, 정수 연산 장치를 4개 기본으로 파이프 라인의 단계를 높여 속도를 빠르게 함. ** MPC 7451 - 저전력판 ** MPC 7445 - 7455의 L3 캐시 인터페이스 제거 제품. ** MPC 7455 - 180 나노미터 공정,SOI를 채용. 클록은1GHz 에 다다름. ** MPC 7457 - 130 나노미터 공정,L2 캐시를512KB 에 ** MPC 7447 - 7457의 L3 캐시 인터페이스 생략 타입. 전력 절약. ** MPC 7448 - 90나노미터 공정으로 제조,1메가바이트의 L2 캐시, e600 코어를 채용. ** MPC 8641 - e600 코어를 채용. 메모리 컨트롤러, PCI 익스프레스 컨트롤러를 내장. ** MPC 8641D - MPC 8641의 듀얼 코어판.
## G5
PowerPC 970 - POWER4 기반으로 설계. G5로 불린다. * 64 비트 * 파이프라인이 많아지고 더 높은 클럭으로 동작한다. * FSB 고속화(1 GHz 초) * 고속의 부동소수점 연산 * AltiVec 호환의 VMX를 탑재 * 리틀 엔디언(little endian)과 호환되지 않는다. PowerPC 970은 다음과 같이 나뉜다. * PowerPC 970FX - 90 나노미터 공정으로 속도가 빨라졌다. 전력 절약 기능 파워 튠(PowerTune) 포함. * PowerPC 970MP - 듀얼 코어, 각 코어에 L2 캐시 1메가바이트 내장 * PowerPC 970GX - PowerPC 970MP의 싱글 코어·저전력판, L2 캐시 1메가바이트 내장 PWRficient PA6T는 P.A. 반도체로 설계한 64비트 호환 G5 제품이다. * 절전 (2 GHz , 듀얼 코어로 평균 소비 전력 13와트 소비) * 멀티 코어 CONEXIUM 버스를 채용하였다. * 엔디언(endian)에 대응