System On Chip
System On Chip
• The term architecture denotes the operational structure and the user ’ s view of the system.
• it has evolved to include both the functional specification and the hardware implementation.
• The system architecture defines the system - level building blocks, such as processors and
memories, and the interconnection between them.
• The processor architecture determines the processor ’ s instruction set, the associated
programming model, its detailed implementation, which may include hidden registers, branch
prediction circuits and specific details concerning the ALU (arithmetic logic unit).
• The implementation of a processor is also known as microarchitecture
• As an example, an SOC for a smart phone would need to support, in addition to audio input
and output capabilities for a traditional phone, Internet access functions and multimedia
facilities for video communication, document processing, and entertainment such as games
and movies.
• If all the elements cannot be contained on a single chip, the implementation is probably best
referred to as a system on a board, but often is still called a SOC.
HARDWARE AND SOFTWARE
HARDWARE AND SOFTWARE
• A fundamental decision in SOC design is to choose which components in the system are to be implemented in
hardware and in software. The major benefits and drawbacks of hardware and software implementations are
summarized in Table .
• A software implementation is usually executed on a general - purpose processor (GPP), which interprets instructions
at run time. This architecture offers flexibility and adaptability, and provides a way of sharing resources among
different applications;
• the hardware implementation of the ISA is generally slower and more power hungry than implementing the
corresponding function directly in hardware without the overhead of fetching and decoding instructions.
• Given that hardware and software have complementary features, many SOC designs aim to combine the individual
benefits of the two. The obvious method is to implement the performance - critical parts of the application in
hardware, and the rest in software.
• Custom ASIC hardware and software on GPPs can be seen as two extremes in the technology spectrum with
different trade - offs in programmability and performance;
• there are various technologies that lie between these two extremes (Figure 1.6 ). The two more well - known ones
are application - specific instruction processors (ASIPs) and field - programmable gate arrays (FPGAs).
A simplifi ed technology comparison: programmability
versus performance. GPP, general - purpose processor;
CGRA, coarse - grained reconfi gurable architecture.
Programmability vs performance
• The requirements space of an application is often large, and there is a range of implementation
options. Thus, it is usually difficult to associate a particular architecture with a particular application.
• In addition, some architectures combine different implementation approaches as seen in the
PlayStation example of Section 1.1 . There, the graphics processor consists of a four - element SIMD
array of vector processing functional units (FUs). Other SOC implementations consist of
multiprocessors using very long instruction word (VLIW) and/or superscalar processors.
• From the programmer ’ s point of view, sequential processors execute one instruction at a time.
• many processors have the capability to execute several instructions concurrently in a manner that is
transparent to the programmer, through techniques such as pipelining, multiple execution units, and
multiple cores. Pipelining is a powerful technique that is used in almost all current processor
implementations.
• Pipelining is a powerful technique that is used in almost all current processor implementations.
• Instruction - level parallelism (ILP) means that multiple operations can be executed in parallel within a
program. ILP may be achieved with hardware, compiler, or operating system techniques.
Processor: A Functional View
• SOC designs and the processor used in each design. For these examples, we can characterize
them as general purpose, or special purpose with support for gaming or signal processing
applications.
Processor: An Architectural View
• Applications
• Simple Embedded Systems – Used in microcontrollers
for basic tasks.
• Educational Purposes – Teaching basic computer
architecture concepts.
Pipelined Processor
• A pipeline processor refers to a processing architecture where multiple stages (or steps) are arranged in a
sequence to handle a stream of data. Each stage performs a specific operation and passes the result to the
next stage, allowing for parallel execution and efficient processing.
• Advantages of Pipeline Processing
• Increased Throughput: Multiple operations can be executed in parallel.
• Efficient Resource Utilization: Hardware or software resources are used effectively.
• Faster Execution: Overall execution time is reduced due to concurrent processing.
• Key Features of a Pipelined Processor Model
• Instruction-Level Parallelism (ILP) – Multiple instructions are processed simultaneously in different
pipeline stages.
• Stages of Execution – The instruction cycle is divided into stages such as Fetch, Decode, Execute,
Memory Access, and Write Back.
• Increased Throughput – While an individual instruction still takes the same time, multiple instructions are
in progress at once, reducing overall execution time.
• Potential Hazards – Pipeline execution introduces challenges like data hazards, control hazards, and
structural hazards.
Example: Instruction Execution in a Pipeline
Cycle IF ID EX MEM WB
1 I1
2 I2 I1
3 I3 I2 I1
4 I4 I3 I2 I1
5 I5 I4 I3 I2 I1
6 I6 I5 I4 I3 I2
... .. .. .. .. ..
Pipelined processor model
• Vector Processors
• Vector processors process vectors (arrays of data) in a single operation, rather than
working on individual elements.
MEMORY AND ADDRESSING
SOC Memory Examples
• Table 1.12 shows a number of different SOC designs and their cache and memory confi
guration. It is important for SOC designers to consider whether to put RAM and ROM on - die
or off - die.
• 1. Real Memory (Physical Memory)
• Definition:
• Real memory refers to the actual physical RAM (Random Access
Memory) installed in a computer.
• It consists of hardware-based memory modules that store active
data and programs.
• Characteristics:
✔️Limited in size (depends on installed RAM).
✔️Directly accessed by the CPU.
✔️Faster but expensive.
✔️If a system runs out of real memory, it relies on virtual memory.
• 2. Virtual Memory
• Definition:
• Virtual memory is a technique that allows a computer to use a part
of the storage (HDD/SSD) as additional memory when RAM is full.
• Managed by the operating system using a page file (Windows) or
swap space (Linux/macOS).
• Characteristics:
✔️Provides the illusion of a larger memory space.
✔️Slower than real memory (because it uses the disk).
✔️Helps run large programs with limited RAM.
✔️Uses paging and swapping techniques.
SYSTEM - LEVEL INTERCONNECTION
• Two important ideas in a design process are fi guring out the requirements and specifications, and
iterating through different stages of design toward an effi cient and effective completion .
• Requirements and Specifi cations
• Requirements and specifi cations are fundamental concepts in any system design situation. There
must be a thorough understanding of both before a design can begin.
• Requirements and specifi cations are fundamental concepts in any system design situation. There
must be a thorough understanding of both before a design can begin.
• The system requirements are the largely externally generated criteria for the system. They may
come from competition, from sales insights, from cus tomer requests, from product profi tability
analysis, or from a combination.
• compatibility with previous designs or published standards,
• reuse of previous designs,
AN APPROACH FOR SOC DESIGN
• customer requests/complaints,
• sales reports,
• cost analysis,
• competitive equipment analysis, and
• trouble reports (reliability) of previous products and competitive products
• The designer can also introduce new requirements based on new technology, new
ideas, or new materials that have not been used in a similar systems environment.
• The specifi cation does not complete any part of the design process; it initial izes
the process. Now the design can begin with the selection of components and
approaches, the study of alternatives, and the optimization of the parts of the
system.
Design Iteration
• Design is always an iterative process. So, the obvious question is how to get the very fi
rst, initial design.
• Initial Design: This is the fi rst design that shows promise in meeting the key
requirements, while other performance and cost criteria are not considered. For
instance, processor or memory or input/output (I/O) should be sized to meet high -
priority real - time constraints. Promising components and their parameters are
selected and analyzed to provide an understanding of their expected idealized
performance and cost.