An Exynos 4 Quad (4412), on the circuit board of aSamsung Galaxy S III smartphone
Asystem on a chip, orsystem on chip (SoC), is anintegrated circuit that combines most or all key components of a computer or electronic system onto a singlemicrochip.[1] Typically, an SoC includes acentral processing unit (CPU) withmemory,input/output, anddata storage control functions, along with optional features like agraphics processing unit (GPU),Wi-Fi connectivity, and radio frequency processing. This high level of integration minimizes the need for separate, discrete components, thereby enhancingpower efficiency and simplifying device design.
High-performance SoCs are often paired with dedicated memory, such asLPDDR, and flash storage chips, such aseUFS oreMMC, which may be stacked directly on top of the SoC in apackage-on-package (PoP) configuration or placed nearby on the motherboard. Some SoCs also operate alongside specialized chips, such ascellular modems.[2]
Fundamentally, SoCs integrate one or moreprocessor cores with critical peripherals. This comprehensive integration is conceptually similar to how amicrocontroller is designed, but providing far greater computational power. This unified design delivers lower power consumption and a reducedsemiconductor die area compared to traditional multi-chip architectures, though at the cost of reduced modularity and component replaceability.
SoCs are ubiquitous in mobile computing, where compact, energy-efficient designs are critical. They powersmartphones,tablets, andsmartwatches, and are increasingly important inedge computing, where real-time data processing occurs close to the data source. By driving the trend toward tighter integration, SoCs have reshaped modern hardware design, reshaping the design landscape for modern computing devices.[3][4]
SoCs can be applied to any computing task. However, they are typically used in mobile computing such as tablets, smartphones, smartwatches, and netbooks as well asembedded systems and in applications where previouslymicrocontrollers would be used.
Mobile computing based SoCs always bundle processors, memories, on-chipcaches,wireless networking capabilities and oftendigital camera hardware and firmware. With increasing memory sizes, high end SoCs will often have no memory and flash storage and instead, the memory andflash memory will be placed right next to, or above (package on package), the SoC.[7] Some examples of mobile computing SoCs include:
In 1992,Acorn Computers produced theA3010, A3020 and A4000 range of personal computers with the ARM250 SoC. It combined the original Acorn ARM2 processor with a memory controller (MEMC), video controller (VIDC), and I/O controller (IOC). In previous AcornARM-powered computers, these were four discrete chips. The ARM7500 chip was their second-generation SoC, based on the ARM700, VIDC20 and IOMD controllers, and was widely licensed in embedded devices such as set-top-boxes, as well as later Acorn personal computers.
Tablet and laptop manufacturers have learned lessons from embedded systems and smartphone markets about reduced power consumption, better performance and reliability from tighterintegration of hardware andfirmwaremodules, andLTE and otherwireless network communications integrated on chip (integratednetwork interface controllers).[10]
On modern laptops and mini PCs, the low-power variants ofAMD Ryzen andIntel Core processors use SoC design integrating CPU, IGPU, chipset and other processors in a single package. However, such x86 processors still require external memory and storage chips.
When needed, SoCs includeanalog interfaces includinganalog-to-digital anddigital-to-analog converters, often forsignal processing. These may be able to interface with different types ofsensors oractuators, includingsmart transducers. They may interface with application-specificmodules or shields.[nb 1] Or they may be internal to the SoC, such as if an analog sensor is built in to the SoC and its readings must be converted to digital signals for mathematical processing.
SoCs comprise manyexecution units. These units must often send data andinstructions back and forth. Because of this, all but the most trivial SoCs requirecommunications subsystems. Originally, as with othermicrocomputer technologies,data bus architectures were used, but recently designs based on sparse intercommunication networks known asnetworks-on-chip (NoC) have risen to prominence and are forecast to overtake bus architectures for SoC design in the near future.[13]
Historically, a shared globalcomputer bus typically connected the different components, also called "blocks" of the SoC.[13] A very common bus for SoC communications is ARM's royalty-free Advanced Microcontroller Bus Architecture (AMBA) standard.
Wire delay is not scalable due to continuedminiaturization,system performance does not scale with the number of cores attached, the SoC'soperating frequency must decrease with each additional core attached for power to be sustainable, and long wires consume large amounts of electrical power. These challenges are prohibitive to supportingmanycore systems on chip.[13]: xiii
In the late 2010s, a trend of SoCs implementingcommunications subsystems in terms of a network-like topology instead ofbus-based protocols has emerged. A trend towards more processor cores on SoCs has caused on-chip communication efficiency to become one of the key factors in determining the overall system performance and cost.[13]: xiii This has led to the emergence of interconnection networks withrouter-basedpacket switching known as "networks on chip" (NoCs) to overcome thebottlenecks of bus-based networks.[13]: xiii
Many SoC researchers consider NoC architectures to be the future of SoC design because they have been shown to efficiently meet power and throughput needs of SoC designs. Current NoC architectures are two-dimensional. 2D IC design has limitedfloorplanning choices as the number of cores in SoCs increase, so asthree-dimensional integrated circuits (3DICs) emerge, SoC designers are looking towards building three-dimensional on-chip networks known as 3DNoCs.[13]
A system on a chip consists of both thehardware, described in§ Structure, and the software controlling the microcontroller, microprocessor or digital signal processor cores, peripherals and interfaces. Thedesign flow for an SoC aims to develop this hardware and software at the same time, also known as architectural co-design. The design flow must also take into account optimizations (§ Optimization goals) and constraints.
SoCs components are also often designed inhigh-level programming languages such asC++,MATLAB orSystemC and converted toRTL designs throughhigh-level synthesis (HLS) tools such asC to HDL orflow to HDL.[14] HLS products called "algorithmic synthesis" allow designers to use C++ to model and synthesize system, circuit, software and verification levels all in one high level language commonly known tocomputer engineers in a manner independent of time scales, which are typically specified in HDL.[15] Other components can remain software and be compiled and embedded ontosoft-core processors included in the SoC as modules in HDL asIP cores.
Once thearchitecture of the SoC has been defined, any new hardware elements are written in an abstracthardware description language termedregister transfer level (RTL) which defines the circuit behavior, or synthesized into RTL from a high level language through high-level synthesis. These elements are connected together in a hardware description language to create the full SoC design. The logic specified to connect these components and convert between possibly different interfaces provided by different vendors is calledglue logic.
With high capacity and fast compilation time, simulation acceleration and emulation are powerful technologies that provide wide visibility into systems. Both technologies, however, operate slowly, on the order of MHz, which may be significantly slower – up to 100 times slower – than the SoC's operating frequency. Acceleration and emulation boxes are also very large and expensive at over US$1 million.[citation needed]
FPGA prototypes, in contrast, use FPGAs directly to enable engineers to validate and test at, or close to, a system's full operating frequency with real-world stimuli. Tools such as Certus[20] are used to insert probes in the FPGA RTL that make signals available for observation. This is used to debug hardware, firmware and software interactions across multiple FPGAs with capabilities similar to a logic analyzer.
In parallel, the hardware elements are grouped and passed through a process oflogic synthesis, during which performance constraints, such as operational frequency and expected signal delays, are applied. This generates an output known as anetlist describing the design as a physical circuit and its interconnections. These netlists are combined with theglue logic connecting the components to produce the schematic description of the SoC as a circuit which can beprinted onto a chip. This process is known asplace and route and precedestape-out in the event that the SoCs are produced asapplication-specific integrated circuits (ASIC).
SoCs must optimizepower use, area ondie, communication, positioning forlocality between modular units and other factors. Optimization is necessarily a design goal of SoCs. If optimization was not necessary, the engineers would use amulti-chip module architecture without accounting for the area use, power consumption or performance of the system to the same extent.
Common optimization targets for SoC designs follow, with explanations of each. In general, optimizing any of these quantities may be a hardcombinatorial optimization problem, and can indeed beNP-hard fairly easily. Therefore, sophisticatedoptimization algorithms are often required and it may be practical to useapproximation algorithms orheuristics in some cases. Additionally, most SoC designs containmultiple variables to optimize simultaneously, soPareto efficient solutions are sought after in SoC design. Oftentimes the goals of optimizing some of these quantities are directly at odds, further adding complexity to design optimization of SoCs and introducingtrade-offs in system design.
SoCs are optimized to minimize theelectrical power used to perform the SoC's functions. Most SoCs must use low power. SoC systems often require longbattery life (such assmartphones), can potentially spend months or years without a power source while needing to maintain autonomous function, and often are limited in power use by a high number ofembedded SoCs beingnetworked together in an area. Additionally, energy costs can be high and conserving energy will reduce thetotal cost of ownership of the SoC. Finally,waste heat from high energy consumption can damage other circuit components if too much heat is dissipated, giving another pragmatic reason to conserve energy. The amount of energy used in a circuit is theintegral ofpower consumed with respect to time, and theaverage rate of power consumption is the product ofcurrent byvoltage. Equivalently, byOhm's law, power is current squared times resistance or voltage squared divided byresistance:
In particular, most SoCs are in a small physical area or volume and therefore the effects of waste heat are compounded because there is little room for it to diffuse out of the system. Because of hightransistor counts on modern devices, oftentimes a layout of sufficient throughput and hightransistor density is physically realizable fromfabrication processes but would result in unacceptably high amounts of heat in the circuit's volume.[21]: 1
These thermal effects force SoC and other chip designers to apply conservativedesign margins, creating less performant devices to mitigate the risk ofcatastrophic failure. Due to increasedtransistor densities as length scales get smaller, eachprocess generation produces more heat output than the last. Compounding this problem, SoC architectures are usually heterogeneous, creating spatially inhomogeneousheat fluxes, which cannot be effectively mitigated by uniformpassive cooling.[21]: 1
This sectionneeds expansion. You can help byadding to it.(October 2018)
SoCs are optimized to minimizelatency for some or all of their functions. This can be accomplished bylaying out elements with proper proximity andlocality to each-other to minimize the interconnection delays and maximize the speed at which data is communicated between modules,functional units and memories. In general, optimizing to minimize latency is anNP-complete problem equivalent to theBoolean satisfiability problem.
Fortasks running on processor cores, latency and throughput can be improved withtask scheduling. Some tasks run in application-specific hardware units, however, and even task scheduling may not be sufficient to optimize all software-based tasks to meet timing and throughput constraints.
This sectionneeds expansion. You can help byadding to it.(October 2018)
Systems on chip are modeled with standard hardwareverification and validation techniques, but additional techniques are used to model and optimize SoC design alternatives to make the system optimal with respect tomultiple-criteria decision analysis on the above optimization targets.
Task scheduling is an important activity in any computer system with multipleprocesses orthreads sharing a single processor core. It is important to reduce§ Latency and increase§ Throughput forembedded software running on an SoC's§ Processor cores. Not every important computing activity in a SoC is performed in software running on on-chip processors, but scheduling can drastically improve performance of software-based tasks and other tasks involvingshared resources.
SoC chips are typicallyfabricated usingmetal–oxide–semiconductor (MOS) technology.[22] The netlists described above are used as the basis for the physical design (place and route) flow to convert the designers' intent into the design of the SoC. Throughout this conversion process, the design is analyzed with static timing modeling, simulation and other tools to ensure that it meets the specified operational parameters such as frequency, power consumption and dissipation, functional integrity (as described in the register transfer level code) and electrical integrity.
When all known bugs have been rectified and these have been re-verified and all physical design checks are done, the physical design files describing each layer of the chip are sent to the foundry's mask shop where a full set of glass lithographic masks will be etched. These are sent to a wafer fabrication plant to create the SoC dice before packaging and testing.
SoCs can be fabricated by several technologies, including:
ASICs consume less power and are faster than FPGAs but cannot be reprogrammed and are expensive to manufacture. FPGA designs are more suitable for lower volume designs, but after enough units of production ASICs reduce the total cost of ownership.[23]
SoC designs consume less power and have a lower cost and higher reliability than the multi-chip systems that they replace. With fewer packages in the system, assembly costs are reduced as well.
When it is not feasible to construct an SoC for a particular application, an alternative is asystem in package (SiP) comprising a number of chips in a singlepackage. When produced in large volumes, SoC is more cost-effective than SiP because its packaging is simpler.[24] Another reason SiP may be preferred iswaste heat may be too high in a SoC for a given purpose because functional components are too close together, and in an SiP heat will dissipate better from different functional modules since they are physically further apart.
^"Difference between Verification and Validation".Software Testing Class. August 26, 2013. RetrievedApril 30, 2018.In interviews most of the interviewers are asking questions on "What is Difference between Verification and Validation?" Many people use verification and validation interchangeably but both have different meanings.
^Rittman, Danny (January 5, 2006)."Nanometer prototyping"(PDF).Tayden Design. RetrievedOctober 7, 2018.
^abcdOgrenci-Memik, Seda (2015).Heat Management in Integrated circuits: On-chip and system-level monitoring and cooling. London, United Kingdom: The Institution of Engineering and Technology.ISBN978-1-84919-935-3.OCLC934678500.