Module7 System Partitioning

You might also like

Download as ppt, pdf, or txt
Download as ppt, pdf, or txt
You are on page 1of 46

BITS Pilani

presentation
BITS Pilani Swapnil Patil
Pilani Campus
BITS Pilani
Pilani Campus

Hardware Software Codesign


BITS Pilani
Pilani Campus

Chapter 7 System Partitioning


Reference

Chapter 6 : System partitioning

BITS Pilani, Pilani Campus


Chapter 7. System
Partitioning
– Partitioning Issues
– Partitioning algorithms
– Functional partitioning for Hardware
– Hardware and Software Partitioning Algorithms

BITS Pilani, Pilani Campus


Partitioning

Objective :
Task of finding the way to partition the systems
functionality among various system components so that
all the design constraints will be satisfied.

System components:
processor, microcontroller, ASIC chips, Memories,
buses, encoders , decoders, register file, custom
hardware

BITS Pilani, Pilani Campus


selecting set of system components and partition
systems functionality among them

Allocation:
selected set of components is called allocation

Partition:
partitioned functionality is called partition

BITS Pilani, Pilani Campus


Partitioning Approaches

• Structural Partitioning

• Functional Partitioning

BITS Pilani, Pilani Campus


Structural Partitioning

• First Implement system with structure


Structure is a interconnect of hardware objects, where
each object may be a Boolean gate, flip flop, RT level
counter or complex combinational logic

• Second Partition system into groups where in each


group represents a system component

BITS Pilani, Pilani Campus


Advantages:
• Simple approach
• Straight forward estimate

Disadvantages:
• Difficult size & performance trade-offs
• Large no of objects
• Hardware only solution

BITS Pilani, Pilani Campus


Functional partitioning

First :
decompose system into non divisible pieces called
function objects

Second:
Partition these objects among system components and
then implement each component’s functionality either as
hardware or software

BITS Pilani, Pilani Campus


Advantages

• Size and performance trade-offs are made with full


knowledge of partitioning which enables components to be
shared more effectively within system components

• Small no of objects since there are lesser functional


objects than RT level structure objects

• Hardware/software solution:
functional objects which mapped to processor can be
compiled into instruction set while objects mapped to
hardware can be implanted with structure

BITS Pilani, Pilani Campus


BITS Pilani
Pilani Campus

7.1 Partitioning Issues


Partition issues

BITS Pilani, Pilani Campus


1 Specification abstraction
level
• Task level dataflow graph
• Tasks
• Athematic level DFG
• FSM with Datapath
• Resister interface
• Structure

BITS Pilani, Pilani Campus


2 Granularity

Granularity of functional objects into which functionality is


decomposed. Granularity of decomposition is a measure of
size of specification in each object

• Task level DFG will be decomposed in to tasks


• Athematic DFG will be decomposed in arithmetic operations
• Coarse granularity objects will have less objects with large
specifications
• Fine course granularity will lead to more objects with small
amount of specifications
• More difficult estimation with fine level objects

BITS Pilani, Pilani Campus


Example : estimation of hardware
area during partitioning

granularity is instruction level

System = >10000 Instructions

Accurate size estimator with complexity of (N2)

To calculate size of each partition computations require will


be 100,000,000

BITS Pilani, Pilani Campus


3 System component
allocation

BITS Pilani, Pilani Campus


4 Metrics & estimation

• Technique must define attributes of a partition that


determines partition’s goodness
• Such attributes are called metrics.
• Common metrics are cost, exaction time, communication
bitrates, power consumption, area, pins , testability, reliability,
program size, memory size etc
• Difficulty arise since all these metrics are in terms of
structure(hardware or software) that implements these
function objects, whereas, during partitioning no such
implementation exists
• 2 approaches : implement & count (not practical),
• Start with rough estimates & then optimize it

BITS Pilani, Pilani Campus


5.Objective functions &
closeness function

BITS Pilani, Pilani Campus


6. Partitioning algorithms

BITS Pilani, Pilani Campus


7 Output

BITS Pilani, Pilani Campus


8 flow of control & designer
interaction

BITS Pilani, Pilani Campus


BITS Pilani
Pilani Campus

7.2 Partitioning Algorithms


Random mapping

BITS Pilani, Pilani Campus


Hierarchical clustering

BITS Pilani, Pilani Campus


Hierarchical clustering

BITS Pilani, Pilani Campus


BITS Pilani, Pilani Campus
Multistage clustering

BITS Pilani, Pilani Campus


BITS Pilani, Pilani Campus
Local Minimum

BITS Pilani, Pilani Campus


Group Migration

BITS Pilani, Pilani Campus


BITS Pilani
Pilani Campus

7.3 Functional Partitioning for


hardware
Functional partitioning for
hardware

BITS Pilani, Pilani Campus


Yorktown silicon compiler

BITS Pilani, Pilani Campus


BITS Pilani, Pilani Campus
BITS Pilani, Pilani Campus
BITS Pilani, Pilani Campus
BITS Pilani
Pilani Campus

7.4 Hw SW Partitioning
Algorithms
Hardware/Software
Partitioning
Definition
– The process of deciding, for each subsystem, whether the required functionality
is more advantageously implemented in hardware or software
Goal
– To achieve a partition that will give us the required performance within the overall
system requirements (in size, weight, power, cost, etc.)

BITS Pilani, Pilani Campus


HW/SW Partitioning Issues

Partitioning into hardware and software affects overall


system cost and performance

Hardware implementation
– Provides higher performance via hardware speeds and parallel execution of
operations
– Incurs additional expense of fabricating ASICs

Software implementation
– May run on high-performance processors at low cost (due to high-volume
production)
– Incurs high cost of developing and maintaining (complex) software

BITS Pilani, Pilani Campus


Partitioning Approaches

• Start with all functionality in software and move portions


into hardware which are time-critical and can not be
allocated to software (software-oriented partitioning)

• Start with all functionality in hardware and move portions


into software implementation (hardware-oriented
partitioning)

BITS Pilani, Pilani Campus


Greedy Algorithm (cost reduction/ All
hardware approach)

BITS Pilani, Pilani Campus


BITS Pilani, Pilani Campus
Hill Climbing algorithm

BITS Pilani, Pilani Campus


BITS Pilani, Pilani Campus

You might also like