01-System Architecture
01-System Architecture
Systems Approach
SOC architecture and design
• system-on-chip (SOC)
• processors: become components in a system
• SOC covers many topics
• processors, cache, memory, interconnect, design tools
• need to know
• user view: variety of processors
• basic information: technology and tools
• processor internals: effect on performance
• storage: cache, embedded and external memory
• interconnect: buses, network-on-chip
• evaluation: processor, cache, memory, interconnect
• advanced: specialized processors, reconfiguration
• design productivity: system modelling, design exploration
System on a Chip: driven by
semiconductor advances
SOC vs processors on chip
• with lots of transistors, designs move in 2 ways:
• complete system on a chip
• multi-core processors with lots of cache
Source: UC Berkeley
iPhone SOC
I/O
Processor
IF ID AG DF EX WB
Instruction #2
IF ID AG DF EX WB
Instruction #3
IF ID AG DF EX WB
Instruction #4
IF ID AG DF EX WB
Time
IF ID AG DF EX WB
Instruction #2
IF ID AG DF EX WB
Instruction #3
IF ID AG DF EX WB
Instruction #4
IF ID AG DF EX WB
Instruction #5
IF ID AG DF EX WB
Instruction #6
IF ID AG DF EX WB
Time
Superscalar
VLIW
Superscalar
VLIW
Parallel processors
• execution managed by programmer
• array processors
• single instruction stream, multiple data streams: SIMD
• vector processors
• SIMD
• multiprocessors
• multiple instruction streams, multiple data streams: MIMD
Array processors
• perform op if condition = mask
• operand can come from neighbour
one instruction
issued to all PEs
Vector processors
• vector registers, eg 8 regs x 64 words x 64 bits
• vector instructions: VR3 <- VR2 VOP VR1
Array Processors
Vector Processors
SOC multiprocessors
Memory and addressing
• many SOC memory designs use simple embedded
memory
• a single level cache
• real (rather than virtual) addressing
• as SOC become more complex
• their designs are expected to use more complex memory and
addressing configurations
Three levels of
addressing
User view of memory:
addressing
• a program: process address (offset + base + index)
• virtual address: process address + process id
• a process: assigned a segment base and bound
• system address: segment base + process address
• pages: active localities in main/real memory
• virtual address: translated by table lookup to real address
• page miss: virtual pages not in page table
• TLB (translation look-aside buffer): recent translations
• TLB entry: corresponding real and (virtual, id) address
• a few hashed virtual address bits address TLB entries
Labor costs
Software
Marketing,
sales,
administration
Manufacturing CAD
support
costs
Engineering
costs
Engineering
Mask costs
CAD Fixed
programs project costs
Product cost
Capital
equipment
Two scenarios
• fixed costs Kf, support costs 0.1 x fct(n), and
variable costs Kv*n, so
Costs Kf (0.1* Kf ) * 3 n Kv * n
Basic
Design time physical
and effort tradeoffs