System-on-a-Chip

With system-on -a-chip (SoC, dt one-chip system ), and system -on-chip or system on a chip is defined as the integration of all or a large part of the functions of a system on a chip (die ), that is an integrated circuit (IC) on a semiconductor substrate, also referred to as monolithic integration. With the use of silicon as a substrate material is also called System-on- Silicon ( SoS ). As a system doing a combination of different elements ( logical circuits, clocking, independent start-up, micro- technical sensors, etc.) is seen, which together provide a certain functionality, such as an accelerometer along with evaluation electronics. SoCs are typically used in embedded systems.

While systems initially consisted of a microprocessor or microcontroller IC and many other ICs for specific functions that were soldered to a circuit board, allows for the possible integration density today to unite almost all functions on a single IC. This digital, analog and mixed-signal functional units are integrated. The primary advantages are cost savings, lower energy consumption or power loss and comprehensive miniaturization. Today, for example, in mobile phones, the digital function, optionally with the exception of memory implemented on an IC. The interfaces, for example, to the keypad, SIM card or the display are included in this IC.

A similar technique to achieve high integration densities of component parts of very different technique is the so-called system -in-package (SiP ). Several chips are combined in one housing.

  • 3.1 bus
  • 3.2 clock
  • 3.3 Processor
  • 3.4 Other processors
  • 3.5 memory
  • 3.6 peripherals
  • 3.7 graphics
  • 3.8 audio
  • 3.9 interfaces

Area of ​​application

Design process

SoCs are usually not developed from scratch today, but the designs are based - at least in part - on existing or acquired components, the so-called IP cores. These are for example macros for full CPU cores or peripheral blocks such as Ethernet or Bluetooth controller. Many standard components are also included for free with EDA tools from the chip manufacturers. Other components may be licensed by the chip manufacturer or other IP suppliers such as ARM or Transmeta. Often those IPs can generate customized via parameters to the use, for example in the form of pipeline length, the cache size or the bus widths.

Other components have been developed, for example, in previous projects and can be used directly in the ideal case, or it need to be made, possibly even in the form of a parameterization. Another possibility is the use of "free hardware ". Also arise in the hardware sector more and more open source projects (eg on OpenCores.org ), often still in the development stage. What is missing here, where appropriate, the user has to develop itself or can be developed. The transitions what and what is implemented in hardware in software, here are fluid, see Software Defined Radio.

Debugging Interface

Usually SoCs have a debug interface (English interface). This is often a simple RS232 interface, but increasingly is also USB, for example. Error messages and general information about these debug interface then the operation will be issued, for example, a terminal, so a console application. In more complex environments, this feature often also assumes a JTAG interface. This is typically used not only for the transmission of error messages, but to communicate with a hardware or software debugging module in SoC. Such a module that allows the user, for example the SoC to "pause " and the processing in the CPU core in single step mode (" Step-by- Step" ) to carry out, all the while if needed, change some registry values ​​or, for example, to shorten a loop or jump instruction to deal.

Another application of this interface is the programming of programmable portions of an SoC, such as RAM, EEPROM, Flash, or even of individual circuit components to the entire SoC (only in an FPGA or similar).. Most attach other external devices as a " chain " in the same JTAG interface, which are accessed from a so-called Boundary Scan.

Components

Bus

The system is internally connected via one or more buses. In more complex SoCs often comes a hierarchical or at least segmented bus system is used. This typically consists of a fast system, a slower peripheral bus, and a register or control bus. Fast peripherals but also related directly to the system. Between the system bus and the peripheral bus provides a bridge. In addition, each bus requires an arbiter with multiple masters. Particularly important for the connection between the processor and its cache or its ( S) and a small local memory is often used a proprietary especially faster processor. An example of this is the LMB Xilinx.

CoreConnect from IBM: As a system, for example by AMBA arm (AHB or ASB / APB buses) are in SoCs (buses: PLB / OPB / DCR) or, more recently, the Wishbone of Silicore / OpenCores.org strongly represented. Widely used today are bus widths from 32 to 128 bits. Given efficient SoCs is often found a DMA controller on the system to relieve the CPU of memory accesses.

The specifications of these buses are physically all the implementation in ASICs (application- specific integrated circuits ) and / or FPGAs designed (English Field Programmable Gate Array), but otherwise sit heavily on common system buses such as PCI.

Clock

As a clock and timer function groups are included, which emit pulses at a certain frequency. This will be simple physical transducer and other electronic functions to stabilize the cycle rate act, which are necessary for the flow control, and optionally a synchronization.

A real time clock (physical clock ) receives or measures and is locally a physical time and can also be included. These precise physical oscillators are usually located externally to the SoC.

In a broader sense are included with the clock except the clock and the real time clock, special power-saving Weckschaltungen that retain and perpetuate a time after you turn off the system. The one or more clock then also control the standby or sleep mode.

Processor

Usually, a SoC of a processor, which is connected via a bus system to memory and other peripherals. This processor can be both a very simple 8 -bit microcontroller, as well as a very powerful multi-core CPU. Multiprocessor systems are also possible. Depending on the performance, application requirements and other criteria such as power consumption, size and price, the SoC has possibly alongside its registers only a small internal memory, or ( usually also ) one or more much larger external memory. This can be, for example, SDRAM or Flash memory. For this purpose, then usually depends on the system, a memory controller, which provides an appropriate interface for the memory available.

Other processors

To relieve the actual main processor SoCs, even specialty processors are included depending on application. This can, for example processors for digital signal processing may be (DSPs ) or, for example Ver-/Entschlüsselungseinheiten or other hardware accelerators such as physics accelerators. For this, several calculations or any part thereof may be " outsourced ". These are either incorporated in full by the coprocessor, or the main processor is only sufficient individual, compute- intensive commands on. This will no longer be executed under circumstances as software on a general purpose CPU or DSP, but implemented directly in hardware. This is common practice at least in FPGAs and ASICs, and therefore is also accordingly directly supported by EDA tools. Many modern FPGAs as Virtex4 / 5 or StratixII / III contain so-called DSP macros, which very rapidly in many parallel paths so-called MAC commands can be executed.

Memory

Also very important in a SoC is memory. This is used either for storage and execution of the program ( program memory ) or for filing and processing of data ( data storage ). Is the memory in a cache, so this is often carried out in two separate memories as a Harvard architecture. Normal RAM is, however, usually implemented in a Von Neumann architecture. Memory Technically, internally mostly fast SRAM, with external memory which is connected via a memory controller, mostly to slower, but cheaper DRAM or Flash.

Periphery

What other peripherals are integrated depends very much on the actual application, but of course also by many other factors such as those mentioned in the processor type criteria from. These peripheral blocks usually do not depend directly on the system, but rather via a so-called Bridge to a separate peripheral bus. This is usually clocked much slower, but satisfies the requirements of most peripherals. Thus, the capacitive load of the system bus is primarily used in addition to some other positive effects reduced, and this can therefore be clocked faster, of course, only so long helps until the CPU actually has to wait on a peripheral unit; then both buses are in use, without transferring anything under normal circumstances. In addition, a peripheral bus facilitates the development of simpler components, because the integration bus type as opposed to the system is generally much easier for and by its often smaller bit width and slower clock rate is significantly lower requirements.

Depending on the type and number of peripheral blocks and intended use of the SoC this sometimes includes a dedicated interrupt controller. In simpler or smaller or particularly favorable systems but is often waived such. Here then the software has to determine the interrupt source. Advanced Interrupt Controller not only offer many channels to accept the assignment of interrupts, but also offer channels with different interrupt priorities to. This is important, for example, when parts of the system in real-time demands are made that are with interrupts never simple or sometimes impossible to solve, since interrupts are indeed not very predictable. This problem can often be solved on an individual basis by an intelligent prioritization.

Graphic

Many SoCs also include a graphics processor, which is used to control one or more displays. For this purpose, a separate graphics card or chipset integrated graphics core ( GPU) in an ordinary PC for example responsible. But even here the trend to an ever increasing integration goes. So for several years already planning big CPU manufacturers such as AMD / ATI (see), Intel and VIA / Nvidia to manufacture CPUs with integrated GPUs. While some embedded systems are very demanding on the graphics output ( game consoles, Blu-ray/DVD, medical imaging equipment or the military ), often rich in other cases from some LCDs or LEDs for status output. Depending on the application, can be dispensed with entirely graphical output. The realization of the graphics capability is particularly often a difficult task especially rigid specifications at maximum power, the maximum chip area or by an extreme price pressure, unless it is mass produced.

Audio

Also to be found are special audio cores in many SoCs. These are used for example in mobile phones, MP3, DVD players, and similar multimedia devices. Here come depending on the requirement, quantity, financial resources, space limitations, etc. but often external hardware audio codecs are used, which are then connected only over a relatively small IP block to the SoC internal bus. Unless a particularly high demands are placed on the audio quality, an AC97 codec, for example, are used. You can save money with such external components but only in small quantities, as it frequently has an impact here, the cost of developing an integrated or even self- developed solution disproportionately.

Interfaces

SoCs typically communicate much more with their technical environment than with an operator. To this end, various interfaces are implemented as required. This often occurs which is connected depending on the speed and latency requirements of the internal system, or by incorporating peripheral ready IP blocks. To back operator comes in addition to the aforementioned audio and graphics interfaces mainly a keyboard controller ( eg for matrix keyboards, serial keyboards or touch pads ) or a USB interface for corresponding devices in question. For communication with other systems mainly Serial interfaces such as USB, RS232, CAN bus, LIN bus, MOST bus, ARINC429 and Ethernet come into question. These sometimes only the MAC layer in the SoC is integrated, but sometimes the PHY. Another possibility is parallel interfaces such as Centronics port IO, IDE / CF etc.

System-on -a- programmable - chip

In an increasing number of SoCs can be implemented on programmable chips, so-called system -on-a - programmable - chip. This is usually to FPGAs. These come as a processor either so-called hardcore (existing as a macro in the silicon CPU cores ) or so-called soft core ( synthesizable source code of CPU cores ) are used. As HardCore example, there are PowerPC or ARM cores, soft cores than most vendor-specific processors such as the MicroBlaze from Xilinx or Altera NIOS II. However, there are also platform-independent synthesizable cores from ARM, Lattice and others who either sold commercially as IP or as open source are available. Not to be confused this is, however, with solutions such as the PSoC from Cypress or other companies, in which only a classic microcontroller is programmable, but not its ALU and the whole system buses, memory and other peripherals.

The usual components of a SoC are:

  • Processor register
  • ALU
  • RAM
  • ROM, for example, as a Flash memory, or OTP
  • Memory and DMA controller
  • Timer
  • Counter
  • Interrupt
  • Watchdog Timer
  • Debug interfaces such as JTAG
  • Specific processing units, such as in the DSP SoC
  • Cryptography
  • Keyboard controller, eg for matrix keyboards, serial keyboards and touchpads
  • Graphical interfaces, such as LVDS, LCD, VGA, DVI, MPEG, HD / SDMI
  • Serial interfaces, eg USB, RS232, CAN bus
  • Parallel interfaces, eg after Centronics port IO
  • Pulse- width modulation, for example the DC-DC converter or the motor control
  • Modulators, such as the GSM coding QAM, PSK
  • Other interfaces, such as Ethernet, MAC or USB
  • Analog- to-digital converter

Manufacturer

On the market there are numerous offers for system-on- a-chip semiconductors. Major providers of this are: ( in alphabetical order, not by size )

  • ARM and Intel with the ARM architecture and the development XScale
  • Altera, Lattice and Xilinx with various SoC platforms in FPGAs
  • Broadcom chips with different communication
  • Cypress Semiconductor Corporation for PSoC programmable system-on- chip
  • Infineon and NXP SoC ICs for mobile devices such as mobile phones or xDSL modem
  • LSI Logic chips for networking and storage products
  • MIPS and licensees such as AMD Au1000 with the series
  • Motorola / Freescale and IBM PowerPC with various derivatives
  • STMicroelectronics
  • Texas Instruments OMAP with, DSPs and RF modules (eg ZigBee module μTiny )

More suppliers can be found at List of system-on -a-chip suppliers

256988
de