52884.fb2
In this chapter, we present some basic information to help you navigate the huge sea of embedded processor choices. We look at some of the processors on the market and the types of features they contain. Stand-alone processors are highlighted first. These tend to be the most powerful processors and require external chipsets to form complete systems. Next we present some of the many integrated processors that are supported under Linux. Finally, we look at some of the common hardware platforms in use today.
Literally dozens of embedded processors are available to choose from in a given embedded design. For the purposes of this chapter, we limit the available discussion to those that contain a hardware memory-management unit and, of course, to those that are supported under Linux. One of the fundamental architectural design aspects of Linux is that it is a virtual memory operating system.[16] Employing Linux on a processor that does not contain an MMU gives up one of the more valuable architectural features of the kernel and is beyond the scope of this book.
Stand-alone processors refer to processor chips that are dedicated solely to the processing function. As opposed to integrated processors, stand-alone processors require additional support circuitry for their basic operation. In many cases, this means a chipset or custom logic surrounding the processor to handle functions such as DRAM controller, system bus addressing configuration, and external peripheral devices such as keyboard controllers and serial ports. Stand-alone processors often offer the highest overall CPU performance.
Numerous processors exist in both 32-bit and 64-bit implementations[17] that have seen widespread use in embedded systems. These include the IBM PowerPC 970FX, the Intel Pentium M, and the Freescale MPC74xx Host Processors, among others.
Here we present a sample from each of the major manufactures of stand-alone processors. These processors are well supported under Linux and have been used in many embedded Linux designs.
The IBM 970FX processor core is a high-performance 64-bit capable stand-alone processor. The 970FX is a superscalar architecture. This means the core is capable of fetching, issuing, and obtaining results from more than one instruction at a time. This is done through a pipelining architecture, which provides the effect of multiple streams of instruction simultaneously. The IBM 970FX contains up to 25 stages of pipelining, depending on the instruction stream and operations contained therein.
Some of the key features of the 970FX are as follows:
• A 64-bit implementation of the popular PowerPC architecture
• Deeply pipelined design, for very-high-performance computing applications
• Static and dynamic power-management features
• Multiple sleep modes, to minimize power requirements and maximize battery life
• Dynamically adjustable clock rates, supporting lower-power modes
• Optimized for high-performance, low-latency storage management
The IBM 970FX has been incorporated into a number of high-end server blades and computing platforms, including IBM's own Blade Server platform.
Certainly one of the most popular architectures, x86 in both 32- and 64-bit flavors (more properly called IA32 and IA64, respectively) has been employed for embedded devices in a variety of applications. In the most common form, these platforms are based on a variety of commercial off-the-shelf (COTS) hardware implementations. Numerous manufacturers supply x86 single-board computers and complete platforms in a variety of form factors. See Section 3.2, "Integrated Processors: Systems on Chip," later in this chapter for a discussion of the more common platforms in use today.
The Intel Pentium M has been used in a wide variety of laptop computers and has found a niche in embedded products. Like the IBM 970FX processor, the Pentium M is a superscalar architecture. These characteristics make it attractive in embedded applications:
• The Pentium M is based on the popular x86 architecture, and thus is widely supported by a large ecosystem of hardware and software vendors.
• It consumes less power than other x86 processors.
• Advanced power-management features enable low-power operating modes and multiple sleep modes.
• Dynamic clock speed capability enhances battery-powered operations such as standby.
• On chip thermal monitoring enables automatic transition to lower power modes, to reduce power consumption in overtemperature conditions.
• Multiple frequency and voltage operating points (dynamically selectable) are designed to maximize battery life in portable equipment.
Many of these features are especially useful for embedded applications. It is not uncommon for embedded products to require portable or battery-powered configurations. The Pentium M has enjoyed popularity in this application space because of its power- and thermal-management features.
The Freescale MPC7448 contains what is referred to as a fourth-generation PowerPC core, commonly called G4.[18] This high-performance 32-bit processor is commonly found in networking and telecommunications applications. Several companies manufacture blades that conform to an industry-standard platform specification, including this and other similar stand-alone Freescale processors. We examine these platforms in Section 3.3, "Hardware Platforms," later in this chapter.
The MPC7448 has enjoyed popularity in a wide variety of signal-processing and networking applications because of the advanced feature set highlighted here:
• Operating clock rates in excess of 1.5GHz
• 1MB onboard L2 cache
• Advanced power-management capabilities, including multiple sleep modes
• Advanced AltiVec vector-execution unit
• Voltage scaling for reduced-power configurations
The MPC7448 contains a Freescale technology called AltiVec to enable very fast algorithmic computations and other data-crunching applications. The AltiVec unit consists of a register file containing 32 very wide (128-bit) registers. Each value within one of these AltiVec registers can be considered a vector of multiple elements. AltiVec defines a set of instructions to manipulate this vector data effectively in parallel with core CPU instruction processing. AltiVec operations include such computations as sum-across, multiply-sum, simultaneous data distribute (store), and data gather (load) instructions.
Programmers have used the AltiVec hardware to enable very fast software computations commonly found in signal-processing and network elements. Examples include fast Fourier Transform, digital signal processing such as filtering, MPEG video coding and encoding, and fast generation of encryption protocols such as DES, MD5, and SHA1.
Other chips in the Freescale lineup of stand-alone processors include the MPC7410, MPC7445, MPC7447, MPC745x, and MPC7xx family.
Stand-alone processors such as those just described require support logic to connect to and enable external peripheral devices such as main system memory (DRAM), ROM or Flash memory, system busses such as PCI, and other peripherals, such as keyboard controllers, serial ports, IDE interfaces, and the like. This support logic is often accomplished by companion chipsets, which may even be purpose-designed specifically for a family of processors.
For example, the Pentium M is supported by one such chipset, called the 855GM. The 855GM chipset is the primary interface to graphics and memorythus, the suffix-GM. The 855GM has been optimized as a companion to the Pentium M. Figure 3-1 illustrates the relationship between the processor and chipsets in this type of hardware design.
Figure 3-1. Processor/chipset relationship
Note the terminology that has become common for describing these chipsets. The Intel 855GM is an example of what is commonly referred to as a northbridge chip because it is directly connected to the processor's high-speed front side bus (FSB). Another companion chip that provides I/O and PCI bus connectivity is similarly referred to as the southbridge chip because of its position in the architecture. The southbridge chip (actually, an I/O controller) in these hardware architectures is responsible for providing interfaces such as those shown in Figure 3-1, including Ethernet, USB, IDE, audio, keyboard, and mouse controllers.
On the PowerPC side, the Tundra Tsi110 Host Bridge for PowerPC is an example of a chipset that supports the stand-alone PowerPC processors. The Tsi110 supports several interface functions for many common stand-alone PowerPC processors. The Tundra chip supports the Freescale MPC74xx and the IBM PPC 750xx family of processors. The Tundra chip can be used by these processors to provide direct interfaces to the following peripherals:
• DDR DRAM, integrated memory controller
• Ethernet (the Tundra provides four gigabit Ethernet ports)
• PCI Express (supports 2 PCI Express ports)
• PCI/X (PCI 2.3, PCI-X, and Compact PCI [cPCI])
• Serial ports
• I2C
• Programmable interrupt controller
• Parallel port
Many manufacturers of chipsets exist, including VIA Technologies, Marvell, Tundra, nVidia, Intel, and others. Marvell and Tundra primarily serve the PowerPC market, whereas the others specialize in Intel architectures. Hardware designs based on one of the many stand-alone processors, such as Intel x86, IBM, or Freescale PowerPC, need to have a companion chipset to interface to system devices.
One of the advantages of Linux as an embedded OS is rapid support of new chipsets. Linux currently has support for those chipsets mentioned here, as well as many others. Consult the Linux source code and configuration utility for information on your chosen chipset.
In the previous section, we highlighted stand-alone processors. Although they are used for many applications, including some high-horsepower processing engines, the vast majority of embedded systems employ some type of integrated processor, or system on chip (SOC). Literally scores, if not hundreds, exist to choose from. We examine a few from the industry leaders and look at some of the features that set each group apart. As in the section on stand-alone processors, we focus only on those integrated processors with strong Linux support.
Several major processor architectures exist, and each architecture has examples of integrated SOCs. PowerPC has been a traditional leader in many networking- and telecommunications-related embedded applications, while MIPS might have the market lead in lower-end consumer-grade equipment.[19] ARM is used in many cellular phones. These represent the major architectures in widespread use in embedded Linux systems. However, as you will see in Chapter 4, "The Linux Kernel: A Different Perspective," Linux supports more than 20 different hardware architectures today.
PowerPC is a Reduced Instruction Set Computer (RISC) architecture jointly designed by engineers from Apple, IBM, and Motorola's semiconductor division (now an independent entity spun off as Freescale Semiconductor). Many good documents describe the PowerPC architecture in great detail. Consult the " Suggestions for Additional Reading " at the end of this chapter as a starting point.
PowerPC processors have found their way into embedded products of every description. From automotive, consumer, and networking applications to the largest data and telecommunications switches, PowerPC is one of the most popular architectures for embedded applications. Because of this popularity, there exists a large array of hardware and software solutions from numerous manufacturers targeted at PowerPC.
Some of the examples later in this book are based on the AMCC PowerPC 440EP Embedded Processor. The 440EP is a popular integrated processor found in many networking and communications products. The following list highlights some of the features of the 440EP:
• On-chip dual-data-rate (DDR) SDRAM controller
• Integrated NAND Flash controller
• PCI bus interface
• Dual 10/100Mbps Ethernet ports
• On-chip USB 2.0 interface
• Up to four user-configurable serial ports
• Dual I 2 C controllers
• Programmable Interrupt Controller
• Serial Peripheral Interface (SPI) controller
• Programmable timers
• JTAG interface for debugging
This is indeed a complete system on chip (SOC). Figure 3-2 is a block diagram of the AMCC PowerPC 440EP Embedded Processor. With the addition of memory chips and physical I/O hardware, a complete high-end embedded system can be built around this integrated microprocessor with minimal interface circuitry required.
Figure 3-2. AMCC PPC 440EP Embedded Processor (Courtesy AMCC Corporation)
Many manufacturers offer reference hardware platforms to enable a developer to explore the capabilities of the processor or other hardware. The examples later in this book (Chapters 14, "Kernel Debugging Techniques"; and 15, "Debugging Embedded Linux Applications") were executed on the AMCC Yosemite board, which is the company's reference platform containing the 440EP shown in Figure 3-2.
Numerous product configurations are available with PowerPC processors. As demonstrated in Figure 3-2, the AMCC 440EP contains sufficient I/O interfaces for many common products, with very little additional circuitry. Because this processor contains an integrated floating-point unit (FPU), it is ideally suited for products such as network-attached imaging systems, general industrial control, and networking equipment.
AMCC's PowerPC product lineup includes several configurations powered by two proven cores. Their 405 core products are available in configurations with and without Ethernet controllers. All 405 core configurations include integrated SDRAM controllers, dual UARTs for serial ports, I 2 C for low-level onboard management communications, general-purpose I/O pins, and integral timers. The AMCC 405 core integrated processors provide economical performance on a proven core for a wide range of applications that do not require a hardware FPU.
The AMCC 440-based core products raise the performance level and add peripherals. The 440EP featured in some of our examples includes a hardware FPU. The 440GX adds two triple-speed 10/100/1000MB Ethernet interfaces (in addition to the two 10/100Mbps Ethernet ports) and TCP/IP hardware acceleration for high-performance networking applications. The 440SP adds hardware acceleration for RAID 5/6 applications. All these processors have mature Linux support. Table 3-1 summarizes the highlights of the AMCC 405xx family.
Table 3-1. AMCC PowerPC 405xx Highlights Summary
Feature | 405CR | 405EP | 405GP | 405GPr |
---|---|---|---|---|
Core/speeds | PowerPC 405 133-266MHz | PowerPC 405 133-333MHz | PowerPC 405 133-266MHz | PowerPC 405 266-400MHz |
DRAM controller | SDRAM/133 | SDRAM/133 | SDRAM/133 | SDRAM/133 |
Ethernet 10/100 | N | 2 | 1 | 1 |
GPIO lines | 23 | 32 | 24 | 24 |
UARTs | 2 | 2 | 2 | 2 |
DMA controller | 4 channel | 4 channel | 4 channel | 4 channel |
I2C controller | Y | Y | Y | Y |
PCI host controller | N | Y | Y | Y |
Interrupt controller | Y | Y | Y | Y |
See the AMCC website, at www.amcc.com/embedded, for complete details.
Table 3-2 summarizes the features of the AMCC 440xx family of processors.
Table 3-2. AMCC PowerPC 440xx Highlights Summary
Feature | 440EP | 440GP | 440GX | 440SP |
---|---|---|---|---|
Core/speeds | PowerPC 440 333-667MHz | PowerPC 440 400-500MHz | PowerPC 440 533-800MHz | PowerPC 440 533-667MHz |
DRAM controller | DDR | DDR | DDR | DDR |
Ethernet 10/100 | 2 | 2 | 2 | via GigE |
Gigabit Ethernet | N | N | 2 | 1 |
GPIO lines | 64 | 32 | 32 | 32 |
UARTs | 4 | 2 | 2 | 3 |
DMA controller | 4 channel | 4 channel | 4 channel | 3 channel |
I2C controller | 2 | 2 | 2 | 2 |
PCI host controller | Y | PCI-X | PCI-X | three PCI-X |
SPI controller | Y | N | N | N |
Interrupt controller | Y | Y | Y | Y |
Freescale Semiconductor has a large range of PowerPC processors with integrated peripherals. The manufacturer is currently advertising its PowerPC product portfolio centered on three broad vertical-market segments: networking, automotive, and industrial. Freescale PowerPC processors have enjoyed enormous success in the networking market segment. This lineup of processors has wide appeal in a large variety of network equipment, from the low end to the high end of the product space.
In a recent press release, Freescale Semiconductor announced that it had shipped more than 200 million integrated communications processors.[20] Part of this success is based around the company's PowerQUICC product line. The PowerQUICC architecture has been shipping for more than a decade. It is based on a PowerPC core integrated with a QUICC engine (also called a communications processor module or CPM in the Freescale literature). The QUICC engine is an independent RISC processor designed to offload the communications processing from the main PowerPC core, thus freeing up the PowerPC core to focus on control and management applications. The QUICC engine is a complex but highly flexible communications peripheral controller.
[5] In its current incarnation, PowerQUICC encompasses four general families. For convenience, as we discuss these PowerQUICC products, we refer to it as PQ.
The PQ I family includes the original PowerPC-based PowerQUICC implementations and consists of the MPC8xx family of processors. These integrated communications processors operate at 50-133MHz and feature the embedded PowerPC 8xx core. The PQ I family has been used for ATM and Ethernet edge devices such as routers for the home and small office (SOHO) market, residential gateways, ASDL and cable modems, and similar applications.
The CPM or QUICC engine incorporates two unique and powerful communications controllers. The Serial Communication Controller (SCC) is a flexible serial interface capable of implementing many serial-based communications protocols, including Ethernet, HDLC/SDLC, AppleTalk, synchronous and asynchronous UARTs, IrDA, and other bit stream data.
The Serial Management Controller (SMC) is a module capable of similar serial-communications protocols, and includes support for ISDN, serial UART, and SPI protocols.
Using a combination of these SCCs and SMCs, it is possible to create very flexible I/O combinations. An internal time-division multiplexer even allows these interfaces to implement channelized communications such as T1 and E1 I/O.
Table 3-3 summarizes a small sampling of the PQ I product line.
Table 3-3. Freescale Select PowerQUICC I Highlights
Feature | MPC850 | MPC860 | MPC875 | MPC885 |
---|---|---|---|---|
Core/speeds | PowerPC 8xx | PowerPC 8xx | PowerPC 8xx | PowerPC 8xx |
Up to 80MHz | Up to 80MHz | Up to 133MHz | Up to 133MHz | |
DRAM controller | Y | Y | Y | Y |
USB | Y | N | Y | Y |
SPI controller | Y | Y | Y | Y |
I2C controller | Y | Y | Y | Y |
SCC controllers | 2 | 4 | 1 | 3 |
SMC controllers | 2 | 2 | 1 | 1 |
Security engine | N | N | Y | Y |
Dedicated Fast Ethernet controller | N | N | 2 | 2 |
The next step up in the Freescale PowerPC product line is PowerQUICC II. PQ II incorporates the company's G2 PowerPC core derived from the 603e embedded PowerPC core. These integrated communications processors operate at 133-450MHz and feature multiple 10/100Mbps Ethernet interfaces, security engines, and ATM and PCI support, among many others. The PQ II encompasses the MPC82xx products.
PQ II adds two new types of controllers to the QUICC engine. The FCC is a full-duplex fast serial communications controller. The FCC supports high-speed communications such as 100Mbps Ethernet and T3/E3 up to 45Mbps. The MCC is a multichannel controller capable of 128KB x 64KB channelized data.
Table 3-4 summarizes the highlights of selected PowerQUICC II processors.
Table 3-4. Freescale Select PowerQUICC II Highlights
Feature | MPC8250 | MPC8260 | MPC8272 | MPC8280 |
---|---|---|---|---|
Core/speeds | G2/603e 150-200MHz | G2/603e 100-300MHz | G2/603e 266-400MHz | G2/603e 266-400MHz |
DRAM controller | Y | Y | Y | Y |
USB | N | N | Y | Via SCC4 |
SPI controller | Y | Y | Y | Y |
I2C controller | Y | Y | Y | Y |
SCC controllers | 4 | 4 | 3 | 4 |
SMC controllers | 2 | 2 | 2 | 2 |
FCC controllers | 3 | 3 | 2 | 3 |
MCC controllers | 1 | 2 | 0 | 2 |
Based on the Freescale PowerPC e300 core (evolved from the G2/603e), the PowerQUICC II Pro family operates at 266-667MHz and features support for Gigabit Ethernet, dual data rate (DDR) SDRAM controllers, PCI, high-speed USB, security acceleration, and more. These are the MPC83xx family of processors. The PQ II and PQ II Pro families of processors have been designed into a wide variety of equipment, such as LAN and WAN switches, hubs and gateways, PBX systems, and many other systems with similar complexity and performance requirements.
The PowerQUICC II Pro contains three family members without the QUICC engine, and two that are based on an updated version of the QUICC engine. The MPC8358E and MPC8360E both add a new Universal Communications Controller, which supports a variety of protocols.
Table 3-5 summarizes the highlights of select members of the PQ II Pro family.
Table 3-5. Freescale Select PowerQUICC II Pro Highlights | ||||
---|---|---|---|---|
Feature | MPC8343E | MPC8347E | MPC8349E | MPC8360E |
Core/speeds | e300 266-400MHz | e300 266-667MHz | e300 400-667MHz | e300 266-667MHz |
DRAM controller | Y-DDR | Y-DDR | Y-DDR | Y-DDR |
USB | Y | 2 | 2 | Y |
SPI controller | Y | Y | Y | Y |
I2C controller | 2 | 2 | 2 | 2 |
Ethernet 10/100/1000 | 2 | 2 | 2 | Via UCC |
UART | 2 | 2 | 2 | 2 |
PCI controller | Y | Y | Y | Y |
Security engine | Y | Y | Y | Y |
MCC | 0 | 0 | 0 | 1 |
UCC | 0 | 0 | 0 | 8 |
At the top of the PowerQUICC family are the PQ III processors. These operate between 600MHz and 1.5GHz. They are based on the e500 core and support Gigabit Ethernet, DDR SDRAM, RapidIO, PCI and PCI/X, ATM, HDLC, and more. This family incorporates the MPC85xx product line. These processors have found their way into high-end products such as wireless base station controllers, optical edge switches, central office switches, and similar equipment.
Table 3-6 highlights some of the PQ III family members.
Table 3-6. Freescale Select PowerQUICC III Highlights | ||||
---|---|---|---|---|
Feature | MPC8540 | MPC8548E | MPC8555E | MPC8560 |
Core/speeds | e500 Up to 1.0GHz | e500 Up to 1.5GHz | e500 Up to 1.0GHz | e500 Up to 1.0GHz |
DRAM controller | Y-DDR | Y-DDR | Y-DDR | Y-DDR |
USB | N | N | Via SCC | N |
SPI controller | N | N | Y | Y |
I2C controller | Y | Y | Y | Y |
Ethernet 10/100 | 1 | Via GigE | Via SCC | Via SCC |
Gigabit Ethernet | 2 | 4 | 2 | 2 |
UART | 2 | 2 | 2 | Via SCC |
PCI controller | PCI/PCI-X | PCI/PCI-X | PCI | PCI/PCI-X |
Rapid IO | Y | Y | N | Y |
Security engine | N | Y | Y | N |
SCC | 3 | 4 | ||
FCC | 2 | 3 | ||
SMC | 2 | 0 | ||
MCC | 0 | 2 |
You might be surprised to learn that 32-bit processors based on the MIPS architecture have been shipping for more than 20 years. The MIPS architecture was designed in 1981 by a Stanford University engineering team led by Dr. John Hennessey, who later went on to form MIPS Computer Systems, Inc. That company has morphed into the present-day MIPS Technologies, whose primary role is the design and subsequent licensing of MIPS architecture and cores.
The MIPS core has been licensed by many companies, several of which have become powerhouses in the embedded processor market. MIPS is a Reduced Instruction Set Computing (RISC) architecture with both 32-bit and 64-bit implementations shipping in many popular products. MIPS processors are found in a large variety of products, from high-end to consumer devices. It is public knowledge that MIPS processors power many popular well-known consumer products, such as Sony high definition television sets, Linksys wireless access points, and the popular Sony PlayStation 2 game console.[21]
The MIPS Technology website lists 73 licensees who are currently engaged in manufacturing products using MIPS processor cores. Some of these companies are household names, as with Sony, Texas Instruments, Cisco's Scientific Atlanta (a leading manufacturer of cable TV set-top boxes), Motorola, and others. Certainly, one of the largest and most successful of these is Broadcom Corporation.
Broadcom is a leading supplier of SOC solutions for markets such as cable TV set-top boxes, cable modems, HDTV, wireless networks, Gigabit Ethernet, and Voice over IP (VoIP). Broadcom's SOCs have been very popular in these markets. We mentioned earlier that you likely have Linux in your home even if you don't know it. Chances are, if you do, it is running on a Broadcom MIPS-based SOC.
In 2000, Broadcom acquired SiByte Inc., which resulted in the communications processor product lineup the company is currently marketing. These processors currently ship in single-core, dual-core, and quad-core configurations. The company still refers to them as SiByte processors.
The single-core SiByte processors include the BCM1122 and BCM1125H. They are both based on the MIPS64 core and operate at clock speeds at 400-900MHz. They include on-chip peripheral controllers such as DDR SDRAM controller, 10/100Mbps Ethernet, and PCI host controller. Both include SMBus serial configuration interface, PCMCIA, and two UARTs for serial port connections. The BCM1125H includes a triple-speed 10/100/1000Mbps Ethernet controller. One of the more striking features of these processors is their power dissipation. Both feature a 4W operating budget at 400MHz operation.
The dual-core SiByte processors include the BCM1250, BCM1255, and BCM1280. Also based on the MIPS64 core, these processors operate at clock rates from 600MHz (BCM1250) to as high as 1.2GHz (BCM1255 and BCM1280). These dual-core chips include integrated peripheral controllers such as DDR SDRAM controllers, various combinations of Gigabit Ethernet controllers, 64-bit PCI-X interfaces, and SMBus, PCMCIA, and multiple UART interfaces. Like their single-core cousins, these dual-core implementations also feature low power dissipation. For example, the BCM1255 features a 13W power budget at 1GHz operation.
The quad-core SiByte processors include the BCM1455 and BCM1480 communications processors. As with the other SiByte processors, these are based on the MIPS64 core. The cores can be run from 800MHz to 1.2GHz. These SOCs include integrated DDR SDRAM controllers, four separate Gigabit Ethernet MAC controllers, and 64-bit PCI-X host controllers, and also contain SMBus, PCMCIA, and four serial UARTs.
Table 3-7 summarizes select Broadcom SiByte processors.
Table 3-7. Broadcom Select SiByte Processor Highlights
Feature | BCM1125H | BCM1250 | BCM1280 | BCM1480 |
---|---|---|---|---|
Core/speeds | SB-1 | Dual SB-1 | Dual SB-1 | Quad SB-1 |
MIPS64 | MIPS64 | MIPS64 | MIPS64 | |
400-900MHz | 600-1000MHz | 800-1200MHz | 800-1200MHz | |
DRAM controller | Y-DDR | Y-DDR | Y-DDR | Y-DDR |
Serial interface | 2-55Mbps | 2-55Mbps | 4 UART | 4 UART |
SMBus interface | 2 | 2 | 2 | 2 |
PCMCIA | Y | Y | Y | Y |
Gigabit Ethernet (10/100/1000Mbps) | 2 | 3 | 4 | 4 |
PCI controller | Y | Y | Y PCI/PCI-X | Y PCI/PCI-X |
Security engine | N | N | N | |
High-speed I/O (HyperTransport) | 1 | 1 | 3 | 3 |
Advanced Micro Devices also plays a significant role in the embedded MIPS controller market. The company's 2002 acquisition of Alchemy Semiconductor garnered several popular single-chip integrated SOCs based on the MIPS32 core and architecture. The Alchemy line from AMD is based on the popular MIPS32 core. All feature relatively low power dissipation and a high level of onboard system integration.
The Au1000 and Au1100 operate at clock rates of 266-500MHz. Both feature onboard SDRAM controllers and separate bus controllers for attachment to external devices such as Flash and PCMCIA. Table 3-8 summarizes the current Alchemy product line.
Table 3-8. AMD Alchemy MIPS Highlights Summary
Feature[22] | Au1000 | Au1100 | Au1200 | Au1500 | Au1550 |
---|---|---|---|---|---|
Core/speeds | MIPS32 266-500MHz | MIPS32 333-500MHz | MIPS32 333-500MHz | MIPS32 333-500MHz | MIPS32 333-500MHz |
DRAM controller | SDRAM | SDRAM | DDR SDRAM | SDRAM | DDR SDRAM |
Ethernet 10/100 | 2 | 1 | 2 | 2 | |
GPIO lines | 32 | 48 | 48 | 39 | 43 |
UARTs | 4 | 3 | 2 | 2 | 3 |
USB 1.1 | Host + device | Host + device | USB 2.0 | Host + device | Host + device |
AC-97 audio | 1 | 1 | Via SPC | 1 | Via SPC |
I2S controller | 1 | 1 | Via SPC | Via SPC | |
SD/MMC | N | 2 | 2 | N | N |
As we pointed out earlier, nearly 100 current MIPS licensees are shown on the MIPS Technologies licensees web page, at www.mips.com/content/Licensees/ProductCatalog/licensees. Unfortunately, it is not possible in the space provided here to cover them all. Start your search at the MIPS technologies website for a good cross-section of the MIPS processor vendors.
For example, ATI Technologies uses a MIPS core in its Xilleon set-top box family of chipsets. Cavium Network's Octeon family uses MIPS64 cores in a variety of multicore processor implementations. Integrated Device Technology, Inc., (IDT) has a family of integrated communications processors called Interprise, based on the MIPS architecture. PMC-Sierra, NEC, Toshiba, and others have integrated processors based on MIPS. All of these and more are well supported under Linux.
The ARM architecture has achieved a very large market share in the consumer electronics marketplace. Many popular and now ubiquitous products contain ARM cores. Some well-known examples include the Sony PlayStation Portable (PSP), Apple iPod Nano,[23] Nintendo Game Boy Micro and DS, TomTom GO 300 GPS, and the Motorola E680i Mobile Phone, which features embedded Linux. Processors containing ARM cores power a majority of the world's digital cellular phones, according to the ARM Corporate Backgrounder at www.arm.com/miscPDFs/3822.pdf.
The ARM architecture is developed by ARM Holdings, plc and licensed to semiconductor manufacturers around the globe. Many of the world's leading semiconductor companies have licensed ARM technology and are currently shipping integrated processors based on one of the several ARM cores.
Texas Instruments uses ARM cores in the OMAP family of integrated processors. These processors contain many integrated peripherals intended to be used as single-chip solutions for various consumer products, such as cellular handsets, PDAs, and similar multimedia platforms. In addition to the interfaces commonly found on integrated processors, such as UARTs and I2C, the OMAP devices contain a wide range of special-purpose interfaces, including the following:
• LCD screen and backlight controllers
• Buzzer driver
• Camera interface
• MMC/SD card controller
• Battery-management hardware
• USB client/host interfaces
• Radio modem interface logic
• Integrated 2D or 3D graphics accelerators
• Integrated security accelerator
• S-Video outputs
• IrDA controller
• DACs for direct TV (PAL/NTSC) video output
• Integrated DSPs for video and audio processing
Many popular cellular handsets and PDA devices have been marketed based on the TI OMAP platform. Because they are based on an ARM core, these processors are supported by Linux today. Table 3-9 compares some of the more recent members of the TI OMAP family.
Table 3-9. TI ARM OMAP Highlights Summary
Feature | OMAP1710 | OMAP2420 | OMAP2430 | OMAP3430 |
---|---|---|---|---|
Core/speeds | ARM926 TEJ | ARM11 | ARM1136 | ARM Cortex A8 |
Up to 200MHz | 330MHz | 330MHz | 550MHz | |
DRAM controller | Y | Y | Y | Y |
UARTs | Y | Y | Y | Y |
USB | Client + host | Client + host | Client + host | Client + host |
I2C controller | Y | Y | Y | Y |
MMC-SD interface | Y | Y | Y | Y |
Keypad controller | Y | Y | Y | Y |
Camera interface | Y | Y | Y | Y |
Graphics accelerator | 2D | 2D/3D | 2D/3D | Y |
Integrated DSP | TM320C55x | TM320C55x | N | N |
Video acceleration hardware | N | Imaging Video Accelerator (IVA) | Imaging Video Accelerator (IVA 2) | Imaging Video Accelerator (IVA 2 +) |
Security accelerator | Y | Y | Y | Y |
Audio codec support | Y | Y | Y | Y |
Bluetooth & RF modem support interface | Y | Y | Y | Y |
LCD controller | Y | Y | Y | Y |
Display controllers | N | PAL/NTSC VGA/QVGA | PAL/NTSC VGA/QVGA | PAL/NTSC QVGA/XGA |
The success of the ARM architecture is made more evident by the fact that leading manufacturers of competing architectures have licensed ARM technology. As a prime example, Freescale Semiconductor has licensed ARM technology for its line of i.MX application processors. These popular ARM-based integrated processors have achieved widespread industry success in multimedia consumer devices such as portable game platforms, PDAs, and cellular handsets.
The Freescale ARM product portfolio includes the i.MX21 and i.MX31 application processors. The i.MX21 features an ARM9 core, and the i.MX31 has an ARM11 core. Like their TI counterparts, these SOCs contain many integrated peripherals required by portable consumer electronics devices with multimedia requirements. The i.MX21/31 contain some of the following integrated interfaces:
• Graphics accelerator
• MPEG-4 encoder
• Keypad and LCD controllers
• Camera interface
• Audio multiplexer
• IrDA infrared I/O
• SD/MMC interface
• Numerous external I/O, such as PCMCIA, USB, DRAM controllers, and UARTs for serial port connection
Intel manufactures and markets several integrated processors based on the ARM v5TE architecture. Intel uses the XScale name for the architecture. These products are grouped into several application categories. Table 3-10 summarizes the XScale families by application type.
Table 3-10. Intel XScale Processor Summary
Category | Application | Example Processors |
---|---|---|
Application processors | Cellular handsets and PDAs | PXA27x, PXA29x |
I/O processors | High-speed data processing used in storage, printing, telematics, and so on | IOP331/332/333 |
Network processors | Networking and communications data plane processing, fast packet processing, and so on | IXP425, IXP465 IXP2350, IXP2855 |
Many consumer and networking products have been developed using Intel XScale architecture processors. Some well-known examples include the GPS iQue M5 from Garmin, the iPAQ by Hewlett-Packard, smart phones from Palm (Treo) and Motorola (A760), and many others. Linux currently supports all these processors.
Intel's network processors are found in high-performance networking equipment where requirements exist for fast data-path processing. Examples include deep packet inspection, data encryption/decryption, packet filtering, and signal processing. These network processors each contain an ARM core coupled with one or more dedicated processing engines, called a network processing engine (NPE). These NPEs are dedicated to specific data-path manipulation in real time at wire speeds. The NPE is a microprocessor, in the sense that it can execute microcoded algorithms in parallel with the thread of execution in the ARM core. Refer to the Intel website, at www.intel.com, for additional information on this powerful family of integrated processors.
More than 100 semiconductor companies are developing integrated solutions based on ARM technologyfar too many to list here. Many offer specialized application processors serving vertical markets such as the handset market, storage area networking, network processing, and the automotive market, as well as many more. These companies include Altera, PMC-Sierra, Samsung Electronics, Philips Semiconductor, Fujitsu, and more. See the ARM Technologies website at www.arm.com for additional ARM licensees and information.
We have covered the major architectures in widespread use in embedded Linux systems. However, for completeness, you should be aware of other architectures for which support exists in Linux. A recent Linux snapshot revealed 25 architecture branches (subdirectories). In some instances, the 64-bit implementation of an architecture is separated from its 32-bit counterpart. In other cases, ports are not current or are no longer maintained.
The Linux source tree contains ports for Sun Sparc and Sparc64, the Xtensa from Tensilica, and the v850 from NEC, to name a few. Spend a few minutes looking through the architecture branches of the Linux kernel to see the range of architectures for which Linux has been ported. Beware, however, that not all these architectures might be up-to-date in any given snapshot. You can be reasonably certain that the major architectures are fairly current, but the only way to be certain is to follow the development in the Linux community or consult with your favorite embedded Linux vendor. Appendix E, "Open Source Resources," contains a list of resources you can consult to help you stay current with Linux developments.
The idea of a common hardware reference platform is not new. The venerable PC/104 and VMEbus are two examples of hardware platforms that have withstood the test of time in the embedded market.[24] More recent successful platforms include CompactPCI and its derivatives.
The CompactPCI (cPCI) hardware platform is based on PCI electrical standards and Eurocard physical specifications. cPCI has the following general features:
• Vertical cards of 3U or 6U heights
• Latch system for securing and ejecting cards
• Front- or rear-panel I/O connections supported
• High-density backplane connector
• Staggered power pins for hot-swap support
• Support by many vendors
• Compatibility with standard PCI chipsets
You can view highlights of and obtain specifications for the cPCI architecture at the PCI Industrial Computer Manufacturers Group (PICMG) cPCI web page, at www.picmg.org/compactpci.stm.
A successor to the successful cPCI, Advanced Telecommunications Computing Architecture is the name given to the architecture and platforms designed around the PICMG 3. x series of specifications. Many top-tier hardware manufacturers are shipping or developing new ATCA-based platforms. The primary applications for ATCA platforms are carrier-class telecommunications switching and transport equipment, and high-end data-center server and storage equipment.
ATCA platforms are leading the industry trend away from in-house proprietary hardware and software platforms. Many of the largest equipment manufacturers in the telecommunications and networking markets have been slowly moving away from the custom, in-house-designed hardware platforms. This trend is also evident in the software platforms, from operating systems to so-called middleware such as high-availability and protocol stack solutions. Downsizing and time-to-market pressures are two key factors driving this trend.
ATCA is defined by several PICMG specifications. Table 3-11 summarizes these specifications.
Table 3-11. ATCA PICMG 3.x Specification Summary
Specification | Summary |
---|---|
PICMG 3.0 | Mechanical specifications, including interconnects, power, cooling, and base system management |
PICMG 3.1 | Ethernet and Fiber Channel switching fabric interface |
PICMG 3.2 | Infiniband switching fabric interface |
PICMG 3.3 | StarFabric interface |
PICMG 3.4 | PCI Express interface |
PICMG 3.5 | RapidIO Interface |
The platforms described in this section are the most relevant in any discussion of embedded Linux platforms today. Especially with ATCA, the industry is increasingly moving toward commercial off-the-shelf (COTS) technology. Both ATCA and Linux play increasingly important roles in this industry trend.
• Many stand-alone processors are supported under Linux. The most widely supported of these are IA32/IA64 and PowerPC architectures. These stand-alone processors are used as building blocks to build very-high-performance computing engines. We presented several examples from Intel, IBM, and Freescale.
• Integrated processors, or systems on chip (SOCs), dominate the embedded Linux landscape. Many vendors and several popular architectures are used in embedded Linux designs. Several of the most popular are presented in this chapter by architecture and manufacturer.
• An increasingly popular trend is to move away from proprietary hardware and software platforms, toward commercial off-the-shelf (COTS) solutions. Two popular platforms in widespread use in embedded Linux systems: cPCI and ATCA.
PowerPC 32-bit architecture reference manual:
Programming Environments Manual for 32-Bit Implementations of the PowerPC
ArchitectureRevision 2
Freescale Semiconductor, Inc.
www.freescale.com/files/product/doc/MPCFPE32B.pdf
PowerPC 64-bit architecture reference:
The Programming Environments Manual for 64-Bit MicroprocessorsVersion 3.0
International Business Machines, Inc.
Short summary of PowerPC architecture:
A Developer's Guide to the POWER Architecture
Brett Olsson, Processor Architect, IBM Corp.
Anthony Marsala, Software Engineer, IBM Corp.
www-128.ibm.com/developerworks/linux/library/l-powarch/
Intel XScale summary page
www.intel.com/design/intelxscale/
Linux has support for some basic processors that do not contain MMUs, but this is not considered a mainstream use of Linux.
32-bit and 64-bit refer to the native width of the processor's main facilities, such as its execution units, register file and address bus.
32-bit and 64-bit refer to the native width of the processor's main facilities, such as its execution units, register file and address bus.
These are the author's own opinions based on market observation and not based on any scientific data.
On the Freescale website, navigate to Media Center, Press Releases. This one was dated 10/31/2005 from Austin, Texas.
Source: www.mips.com/content/PressRoom/PressReleases/2003-12-22
Other peripherals include IrDA controller, LCD controller, 2 SPCs, Power management, DMA engine, RTC, Camera interface, LCD controller, h/w hardware acceleration of encryption/decryption, PCI host controller, 4 SPCs, and Security engine.
Reported by ARM to be the top-selling toy during the Christmas 2005 shopping season in the United States.
VMEbus isn't really a hardware reference platform, per se, but based on Eurocard physical standards, the level of compatibility among multiple vendors qualifies it for the label.