PowerPC
Vector 32 (with AltiVec) | |
![](http://upload.wikimedia.org/wikipedia/commons/thumb/7/7d/IBM_PowerPC601_PPC601FD-080-2_top.jpg/220px-IBM_PowerPC601_PPC601FD-080-2_top.jpg)
PowerPC (with the
Originally intended for
PowerPC was the cornerstone of AIM's
History
The history of RISC began with IBM's
The
Apple and Motorola involvement
Apple had already realized the limitations and risks of its dependency upon a single CPU vendor at a time when Motorola was falling behind on delivering the 68040 CPU. Furthermore, Apple had conducted its own research and made an experimental quad-core CPU design called Aquarius,[2]: 86–90 which convinced the company's technology leadership that the future of computing was in the RISC methodology.[2]: 287–288 IBM approached Apple with the goal of collaborating on the development of a family of single-chip microprocessors based on the POWER architecture. Soon after, Apple, being one of Motorola's largest customers of desktop-class microprocessors,[3] asked Motorola to join the discussions due to their long relationship, Motorola having had more extensive experience with manufacturing high-volume microprocessors than IBM, and to form a second source for the microprocessors. This three-way collaboration between Apple, IBM, and Motorola became known as the AIM alliance.
In 1991, the PowerPC was just one facet of a larger alliance among these three companies. At the time, most of the personal computer industry was shipping systems based on the Intel 80386 and 80486 chips, which have a
For Motorola, POWER looked like an unbelievable deal. It allowed the company to sell a widely tested and powerful RISC CPU for little design cash on its own part. It also maintained ties with an important customer, Apple, and seemed to offer the possibility of adding IBM too, which might buy smaller versions from Motorola instead of making its own.
At this point Motorola already had its own RISC design in the form of the 88000, which was doing poorly in the market. Motorola was doing well with its 68000 family and the majority of the funding was focused on this. The 88000 effort was somewhat starved for resources.
The 88000 was already in production, however; Data General was shipping 88000 machines and Apple already had 88000 prototype machines running. The 88000 had also achieved a number of embedded design wins in telecom applications. If the new POWER one-chip version could be made bus-compatible at a hardware level with the 88000, that would allow both Apple and Motorola to bring machines to market far faster since they would not have to redesign their board architecture.
The result of these various requirements is the PowerPC (performance computing) specification. The differences between the earlier POWER instruction set and that of PowerPC is outlined in Appendix E of the manual for PowerPC ISA v.2.02.[1]
Operating systems
Since 1991, IBM had a long-standing desire for a unifying operating system that would simultaneously host all existing operating systems as personalities upon one microkernel. From 1991 to 1995, the company designed and aggressively evangelized what would become Workplace OS, primarily targeting PowerPC.[2]: 290–291
When the first PowerPC products reached the market, they were met with enthusiasm. In addition to Apple, both IBM and the Motorola Computer Group offered systems built around the processors.
Ultimately, demand for the new architecture on the desktop never truly materialized. Windows, OS/2, and Sun customers, faced with the lack of application software for the PowerPC, almost universally ignored the chip. IBM's Workplace OS platform (and thus, OS/2 for PowerPC) was summarily canceled upon its first developers' release in December 1995 due to the simultaneous buggy launch of the PowerPC 620. The PowerPC versions of Solaris and Windows were discontinued after only a brief period on the market. Only on the Macintosh, due to Apple's persistence, did the PowerPC gain traction. To Apple, the performance of the PowerPC was a bright spot in the face of increased competition from Windows 95 and Windows NT-based PCs.
With the cancellation of Workplace OS, the general PowerPC platform (especially AIM's Common Hardware Reference Platform) was instead seen as a hardware-only compromise to run many operating systems one at a time upon a single unifying vendor-neutral hardware platform.[2]: 287–288
In parallel with the alliance between IBM and Motorola, both companies had development efforts underway internally. The PowerQUICC line was the result of this work inside Motorola. The 4xx series of embedded processors was underway inside IBM. The IBM embedded processor business grew to nearly US$100 million in revenue and attracted hundreds of customers.
The development of the PowerPC is centered at an Austin, Texas, facility called the Somerset Design Center. The building is named after the site in Arthurian legend where warring forces put aside their swords, and members of the three teams that staff the building say the spirit that inspired the name has been a key factor in the project's success thus far.
— MacWeek[4]
Part of the culture here is not to have an IBM or Motorola or Apple culture, but to have our own.
— Motorola's Russell Stanphill, codirector of Somerset[4]
Breakup of AIM
Toward the close of the decade, manufacturing issues began plaguing the AIM alliance in much the same way they did Motorola, which consistently pushed back deployments of new processors for Apple and other vendors: first from Motorola in the 1990s with the PowerPC 7xx and 74xx processors, and IBM with the 64-bit PowerPC 970 processor in 2003. In 2004, Motorola exited the chip manufacturing business by spinning off its semiconductor business as an independent company called
IBM continues to develop PowerPC microprocessor cores for use in their application-specific integrated circuit (ASIC) offerings. Many high volume applications embed PowerPC cores.
The PowerPC specification is now handled by Power.org where IBM, Freescale, and AMCC are members. PowerPC, Cell and POWER processors are now jointly marketed as the
Generations
Many PowerPC designs are named and labeled by their apparent technology generation. That began with the "G3", which was an internal project name inside
At the time the G4 was launched, Motorola categorized all their PowerPC models (former, current and future) according to what generation they adhered to, even renaming the older 603e core "G2". Motorola had a G5 project that never came to fruition, and Apple later used the name when the 970 family launched in 2003, though it was designed and built by IBM.
- PowerPC generations according to Motorola, c. 2000.[8]
- G1: The 601, 500 and 800 family processors
- G2: The 602, 603, 604, 620, 8200 and 5000 families
- G3: The 750 and 8300 families
- G4: The 7400 and 8400* families
- G5: The 7500* and 8500 families (Motorola abandoned the G5 name after Apple applied it to the 970)
- G6: The 7600*
- (*) These designs didn't become real products.
Design features
POWER, PowerPC, and Power ISA architectures |
---|
NXP (formerly Freescale and Motorola) |
IBM |
|
IBM/Nintendo |
Other |
Related links |
Cancelled in gray, historic in italic |
The PowerPC is designed along
- Support for operation in both big-endian and little-endian modes; the PowerPC can switch from one mode to the other at run-time (see below). This feature is not supported in the PowerPC 970.
- Single-precision forms of some floating-pointinstructions, in addition to double-precision forms
- Additional floating-point instructions at the behest of Apple
- A complete 64-bit specification that is backward compatible with the 32-bit mode
- A fused multiply–add
- A paged memory managementarchitecture that is used extensively in server and PC systems.
- Addition of a new memory management architecture called Book-E, replacing the conventional paged memory management architecture for embedded applications. Book-E is application software compatible with existing PowerPC implementations but needs minor changes to the operating system.
Some instructions present in the POWER instruction set were deemed too complex and were removed in the PowerPC architecture. Some removed instructions could be emulated by the operating system if necessary. The removed instructions are:
- Conditional moves
- Load and store instructions for the quad-precision floating-point data type
- String instructions.
Endian modes
Most PowerPC chips switch endianness via a bit in the MSR (
In little-endian mode, the three lowest-order bits of the effective address are exclusive-ORed with a three bit value selected by the length of the operand. This is enough to appear fully little-endian to normal software. An operating system will see a warped view of the world when it accesses external chips such as video and network hardware. Fixing this warped view requires that the motherboard perform an unconditional 64-bit byte swap on all data entering or leaving the processor. Endianness thus becomes a property of the motherboard. An OS that operates in little-endian mode on a big-endian motherboard must both swap bytes and undo the exclusive-OR when accessing little-endian chips.
AltiVec operations, despite being 128-bit, are treated as if they were 64-bit. This allows for compatibility with little-endian motherboards that were designed prior to AltiVec.
An interesting side effect of this implementation is that a program can store a 64-bit value (the longest operand format) to memory while in one endian mode, switch modes, and read back the same 64-bit value without seeing a change of byte order. This will not be the case if the motherboard is switched at the same time.
Mercury Systems and Matrox ran the PowerPC in little-endian mode. This was done so that PowerPC devices serving as co-processors on PCI boards could share data structures with host computers based on x86. Both PCI and x86 are little-endian. OS/2 and Windows NT for PowerPC ran the processor in little-endian mode while Solaris, AIX and Linux ran in big endian.[9]
Some of IBM's embedded PowerPC chips use a per-page endianness bit. None of the previous applies to them.
Implementations
![](http://upload.wikimedia.org/wikipedia/commons/thumb/a/a7/IBM_PPC604e_200.jpg/220px-IBM_PPC604e_200.jpg)
![](http://upload.wikimedia.org/wikipedia/commons/thumb/d/de/XPC855TZP66D4_3K20A.jpg/220px-XPC855TZP66D4_3K20A.jpg)
The first implementation of the architecture was the
Accelerator cards based on the first-generation PowerPC chips were created for the Amiga in anticipation for a move to a possible new Amiga platform designed around the PowerPC. The accelerator cards also included either a Motorola 68040 or 68060 CPU in order to maintain backwards compatibility, as very few apps at the time could run natively on the PPC chips. However, the new machines never materialized, and Commodore subsequently declared bankruptcy. Over a decade later, AmigaOS 4 would be released, which would put the platform permanently on the architecture. OS4 is compatible with those first-generation accelerators, as well as several custom motherboards created for a new incarnation of the Amiga platform.
IBM also had a full line of PowerPC based desktops built and ready to ship; unfortunately, the operating system that IBM had intended to run on these desktops—Microsoft Windows NT—was not complete by early 1993, when the machines were ready for marketing. Accordingly, and further because IBM had developed animosity toward Microsoft, IBM decided to port OS/2 to the PowerPC in the form of Workplace OS. This new software platform spent three years (1992 to 1995) in development and was canceled with the December 1995 developer release, because of the disappointing launch of the PowerPC 620. For this reason, the IBM PowerPC desktops did not ship, although the reference design (codenamed Sandalbow) based on the PowerPC 601 CPU was released as an RS/6000 model (Byte's April 1994 issue included an extensive article about the Apple and IBM PowerPC desktops).
Apple, which also lacked a PowerPC based OS, took a different route. Utilizing the portability platform yielded by the secret
The second generation was "pure" and includes the "low end"
In 1993, developers at IBM's Essex Junction, Burlington, Vermont facility started to work on a version of the PowerPC that would support the Intel x86 instruction set directly on the CPU. While this was just one of several concurrent power architecture projects that IBM was working on, this chip began to be known inside IBM and by the media as the PowerPC 615. Profitability concerns and rumors of performance issues in the switching between the x86 and native PowerPC instruction sets resulted in the project being canceled in 1995 after only a limited number of chips were produced for in-house testing. Aside the rumors, the switching process took only 5 cycles, or the amount of time needed for the processor to empty its instruction pipeline. Microsoft also aided the processor's demise by refusing to support the PowerPC mode.[12]
The first 64-bit implementation is the
IBM's
IBM developed a separate product line called the "4xx" line focused on the embedded market. These designs included the 401, 403, 405, 440, and 460. In 2004, IBM sold their 4xx product line to Applied Micro Circuits Corporation (AMCC). AMCC continues to develop new high performance products, partly based on IBM's technology, along with technology that was developed within AMCC. These products focus on a variety of applications including networking, wireless, storage, printing/imaging and industrial automation.
Numerically, the PowerPC is mostly found in controllers in cars. For the automotive market, Freescale Semiconductor initially offered many variations called the
Networking is another area where embedded PowerPC processors are found in large numbers. MSIL took the
Honda also uses PowerPC processors for its ASIMO robot.[14]
In 2003, BAE Systems Platform Solutions delivered the Vehicle-Management Computer for the F-35 fighter jet. This platform consists of dual PowerPCs made by Freescale in a triple redundant setup.[15]
Aeronautical Development Establishment tested a high-performance digital flight control computer, powered by a quadraplex PowerPC-based processor setup on a HAL Tejas Mark 1A in 2024.[16]
Operating systems
Operating systems that work on the PowerPC architecture are generally divided into those that are oriented toward the general-purpose PowerPC systems, and those oriented toward the embedded PowerPC systems.
Native
- AmigaOS 4
- Classic Mac OS from System 7.1.2; and Copland
- BeOS R5 Pro
- IBM i; formerly named i5/OS, originally OS/400
- MorphOS
- Plan 9
- Inferno
- POSIX: Unix, Unix-like
- Rhapsody through Mac OS X Leopard 10.5.8
- AIX
- Workplace OS, including a port of OS/2
- FreeBSD[18]
- NetBSD
- OpenBSD, 32-bit macppc[19]
- Linux
- Arch Linux, supported in unofficial port[20]
- CRUX PPC through 2.0.1.1
- Debian:
- Fedora
- Gentoo Linux, with 32-bit ppc releases and 64-bit ppc64 releases[23]
- MintPPC, support for Old World and New World 32/64-bit Macs based on Linux Mint LXDE and Debian[24]
- MkLinux, Mach-kernel based distribution for older Macs, officially launched by Apple
- openSUSE
- Red Hat Enterprise Linux[25]
- SUSE Linux Enterprise Server
- Ubuntu[26]
- Yellow Dog Linux, full support for 32/64-bit; PS3
- Void Linux, support in third-party fork[27] for 32-bit and 64-bit (big-endian and little-endian)
- Solaris2.5.1 PowerPC edition on the PReP platform
- OpenSolaris, experimental[28][29]
- JavaOS
- Windows NT 3.5,[30] 3.51 and 4.0
- ReactOS, PowerPC port no longer under active development[31]
- GameCube, Wii, and Wii U system software
- Xbox 360 system software
- CellOS for PlayStation 3
- HelenOS
Embedded
- M-RTOS
- VxWorks
- VxWorks 653
- Nucleus RTOS
- LiveDevices RTA-OSEKLive
- Microware OS-9
- MikroTik RouterOS
- MontaVista Linux
- Wind River Linux
- QNX
- Cisco IOS
- Cisco AireOS
- LynxOS
- PikeOS RTOS and virtualization platform from SYSGO
- ELinOS embedded Linux
- eCos
- Broadcom BCM Tech
- RTEMS
- BlueCat embedded LynuxWorks
- Operating System Embedded (OSE) from ENEA AB
- Integrity
- Junosrouter and switch OS
- FreeRTOS
- Deos[32]
- SCIOPTAIEC61508, EN50128 and ISO26262
- Embedded PowerPC Operating System by IBM[34]
Licensees
Companies that have licensed the 64-bit POWER or 32-bit PowerPC from IBM include:
32-bit PowerPC
- Altera, field-programmable gate array (FPGA) manufacturer now Intel
- Apple ('A' in original AIM alliance), switched to Intel in early 2006
- Applied Micro Circuits Corporation (AMCC)
- Avago Technologies
- BAE Systems for RAD750 processor, used in spacecraft and planetary landers
- Cisco Systemsfor routers
- Culturecom for V-Dragon CPU
- Exponential Technology
- Kumyoung used in karaokeplayer CPU (Muzen and Vivaus series)
- LSI Logic
- NXP), as part of the original AIM alliance
- Rapport for Kilocore 1025 core CPU
- Samsung
- STMicroelectronics for the SPC5xx series
- Xilinx, FPGA maker, embedded PowerPC in the Virtex-II Pro, Virtex-4, and Virtex-5 FPGAs
64-bit PowerPC
- P.A. Semi
- Microsoft
- Hindustan Computers Ltd.
- Sony
- Freescale Semiconductor
- Toshiba
Game consoles
PowerPC processors were used in a number of now-discontinued video game consoles:
- Apple Computer(1995)
- Microsoft, for the Xbox 360 processor, Xenon[35]
- Nintendo for the GameCube,[35] Wii, and Wii U processors
- Cell processor (inside the PlayStation 3 and other devices)[35]
Desktop computers
The Power architecture is currently used in the following desktop computers:
- Sam440ep, Sam440epFlex, based on an AMCC 440ep SoC, built by ACube Systems
- Sam460ex, based on an AMCC 460ex SoC, built by ACube Systems
- Nemo motherboard based around PA6T-1682M found in the AmigaOne X1000 from A-EON Technology
- Cyrus motherboard based around Freescale Qoriq P5020 found in the AmigaOne X5000 from A-EON Technology
- Tabor motherboard based around Freescale QorIQ P1022 found in the forthcoming AmigaOne A1222 from A-EON Technology
- Talos II and Blackbird mainboards/workstations, based around the IBM Power9 Sforza architecture, built by Raptor Computing Systems
Embedded applications
The Power architecture is currently used in the following embedded applications:
- National Instruments Smart Cameras for machine vision
- Mars rover Curiosity - uses RAD750
- Mars rover Perseverance - uses RAD750
See also
- Common Hardware Reference Platform (CHRP)
- OpenPOWER Foundation
- Power ISA
- Power Architecture
- Power Architecture Platform Reference (PAPR)
- PowerOpen Environment
- PowerPC Reference Platform (PReP)
- RTEMS real-time operating system
- List of PowerPC processors
- List of PowerPC-based game consoles
References
- ^ a b "PowerPC Architecture Book, Version 2.02". IBM. November 16, 2005. Archived from the original on November 29, 2020.
- ^ OCLC 925000937.
- ^ "Tech Files Columns, 1987–1990". Archived from the original on June 6, 2013.
- ^ MacWeek. Vol. 7, no. 12. March 22, 1993. p. 38. Retrieved October 3, 2017.
- from the original on September 1, 2021. Retrieved September 1, 2021.
- ^ Gwennap, Linley (November 16, 1998). "G4 Is First PowerPC with AltiVec - Due Mid-1999, Motorola's Next Chip Aims at Macintosh, Networking" (PDF). Microprocessor Report. Archived (PDF) from the original on April 23, 2016.
- ^ Seale, Susan (2001). "PowerPC G4 Architecture White Paper" (PDF). NXP Semiconductors. Archived (PDF) from the original on April 18, 2016.
- ^ "Fact Sheet - Motorola PowerPC Processor" (PDF). NXP Semiconductors. Archived (PDF) from the original on April 19, 2016.
- ^ Necasek, Michal (November 16, 2012). "OS/2 for PowerPC Tidbits". OS/2 Museum. Archived from the original on January 31, 2016.
- S2CID 51808955. Archived from the original(PDF) on July 30, 2018.
The 603's tiny 8K caches were notoriously poor for Mac OS software, particularly for 68K emulation; even the 603e's caches cause a significant performance hit at higher clock speeds. Given Arthur's design target of 250 MHz and up, doubling the caches again made sense.
- ^ Jansen, Daniel (2014). "CPUs: PowerPC 603 and 603e". Low End Mac. Archived from the original on October 30, 2018. Retrieved July 29, 2018.
- ^ "Microsoft killed the PowerPC 615". The Register. October 1, 1998. Archived from the original on February 7, 2009. Retrieved August 16, 2009.
- ^ Adam T. Stallman; Frank G. Soltis (July 1, 1995). "Inside the PowerPC AS". System iNEWS Magazine. Archived from the original on August 31, 2013.
- ^ Hara, Yoshiko (November 28, 2000). "Latest robots fill helper, entertainer roles". EETimes.com. Archived from the original on September 1, 2021. Retrieved September 1, 2021.
- ^ "First Lockheed Martin F-35 Joint Strike Fighter Vehicle-Management Computer Delivered" (Press release). Lockheed Martin. May 16, 2003. Archived from the original on January 15, 2018. Retrieved January 14, 2018.
- ISSN 0971-8257. Retrieved February 22, 2024.
- ^ "PowerPC - Unsupported Builds". Haiku Files. Archived from the original on January 14, 2022. Retrieved January 14, 2022.
- ^ "FreeBSD/ppc Project". Freebsd.org. Archived from the original on August 13, 2009. Retrieved August 16, 2009.
- ^ "OpenBSD/macppc". Openbsd.org. Archived from the original on July 6, 2009. Retrieved August 16, 2009.
- ^ "ArchPOWER - an unofficial port of Archlinux to powerpc64le and riscv64". archlinuxpower.org. Retrieved March 1, 2024.
- ^ "PowerPC Port". Debian. Archived from the original on August 30, 2009. Retrieved August 16, 2009.
- ^ "Debian PPC64 Port". Debian. Archived from the original on June 27, 2012. Retrieved July 4, 2012.
- ^ "Project:PowerPC". Gentoo Wiki. Archived from the original on January 15, 2018. Retrieved January 14, 2018.
- ^ "MintPPC". Archived from the original on October 13, 2010. Retrieved October 3, 2010.
- ^ "Chapter 1. Architectures". access.redhat.com. Archived from the original on December 8, 2015. Retrieved December 6, 2015.
- ^ "PowerPCFAQ - Ubuntu Wiki". Wiki.ubuntu.com. Archived from the original on February 25, 2011. Retrieved August 16, 2009.
- ^ "Void Linux for PowerPC/Power ISA (unofficial)". Archived from the original on October 30, 2020. Retrieved October 27, 2020.
- ^ "Embedded Solaris on PowerPC". Research.sun.com. June 14, 2006. Archived from the original on August 7, 2011. Retrieved August 16, 2009.
- ^ "Solaris PowerPC Port at OpenSolaris.org". Opensolaris.org. October 2, 2006. Archived from the original on August 7, 2011. Retrieved August 16, 2009.
- ^ "Windows NT 3.5 for PowerPC". November 9, 1994.
- ^ "ReactOS ports - ReactOS Wiki". www.reactos.org. Archived from the original on February 27, 2016. Retrieved December 6, 2015.
- ^ "DO-178C Certifiable Avionics RTOS with ARINC 653 & FACE Support". DDC-I. Archived from the original on August 8, 2018. Retrieved January 14, 2018.
- ^ "Supported CPUs". SCIOPTA Systems AG. Archived from the original on January 1, 2018. Retrieved January 14, 2018.
- ^ "PowerPC 750FX Evaluation Kit Quick Setup for Windows" (PDF). Archived (PDF) from the original on April 4, 2017. Retrieved January 14, 2018.
- ^ a b c "POWER To The People". IBM. March 30, 2004. Archived from the original on February 4, 2013.
Further reading
- Weiss, Shlomo; Smith, James Edward (1994). POWER and PowerPC. Morgan Kaufmann. ISBN 978-1558602793.
- May, Cathy; et al. (1994). The PowerPC Architecture: A Specification for A New Family of RISC Processors (2nd ed.). Morgan Kaufmann Publishers. ISBN 978-1-55860-316-5.
- Hoxey, Steve; et al., eds. (1996). The PowerPC Compiler Writer's Guide. Warthman Associates. ISBN 0-9649654-0-2. Archivedfrom the original on April 8, 2021.
- Programming Environments Manual for 32-bit Implementations of the PowerPC Architecture (PDF). Motorola. Archived from the original (PDF) on May 14, 2005. A 640-page PDF manual.
- Book E: Enhanced PowerPC Architecture (3rd ed.). IBM. 2000.
- Duntemann, Jeff; Pronk, Ron (1994). Inside the PowerPC Revolution. Coriolis Group Books. ISBN 978-1-883577-04-9.
- "PowerPC Architecture". Archived from the original on February 14, 2008. An IBM article giving POWER and PowerPC history.
- Chakravarty, Dipto; Cannon, Casey (1994). PowerPC: Concepts, Architecture, and Design. McGraw Hill. ISBN 9780070111929.
External links
- OpenPOWER Foundation
- Evolution of PowerPC Architecture, lecture by Michael W. Blasgen and Richard Oehler
- PPC Overview - an overview of PowerPC processors
- OS/2 Warp, PowerPC Edition review by Michal Necasek
- PowerPC Architecture History Diagram
- A quite an extensive list of operating systems supporting PowerPC processors