You are on page 1of 16

BITS Pilani

Hardware Software Co-


design
BITS Pilani Ashish Mishra
ashishmishra@pilani.bits-pilani.ac.in
Pilani Campus
BITS Pilani
Pilani Campus

Lecture-12
Partitioning
Partitioning :Basic Definition

The method of dividing the specified functionality so as


map on a set of interconnected components.
The guidelines for partitioning are based on design
constraints(cost , performance , size , power
consumption etc.).
For co-design : The process of deciding and finding
whether the required functionality is more
advantageously implemented in hardware or software.
Definition: The partitioning problem is to assign n objects
O ={o1, ..., on} to m blocks (also called partitions) P={p1, ..., pm},
such that p1 p2 ... pm = O pi pj = { } i,j: i j and cost c(P)
are minimized.

BITS Pilani, Pilani Campus


HW/SW Partitioning
Formal Definition
A hardware/software partition is defined using two sets H
and S, where H O, S O, H S = O, H S = f
Associated metrics:
Hsize(H) is the size of the hardware needed to implement the functions in H (e.g.,
number of transistors)
Performance(G) is the total execution time for the group of functions in G for a
given partition {H,S}
Set of performance constraints, Cons = (C1, ... Cm), where Cj = {G, timecon},
indicates the maximum execution time allowed for all the functions in group G
and G O

4
BITS Pilani, Pilani Campus
Performance Satisfying
Partition
A performance satisfying partition is one for which
performance(Cj.G) Cj.timecon, for all j=1m

Given O and Cons, the hardware/software partitioning


problem is to find a performance satisfying partition {H,S}
such that Hsize(H) is minimized

The all-hardware size of O is defined as the size of an all


hardware partition (i.e., Hsize(O))

5
BITS Pilani, Pilani Campus
Partitioning Approaches for
Co-design
Start with all functionality in software and move portions
into hardware which are time critical.
(software-oriented partitioning)

Start with all functionality in hardware and move portions


into software implementation
(hardware-oriented partitioning)

BITS Pilani, Pilani Campus


Partitioning Strategies

Hardware implementation
+ Provides higher performance via hardware speeds
and parallel execution of operations
Incurs additional expense of fabricating ASICs or implemented
on configurable logic

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

BITS Pilani, Pilani Campus


Structural vs. Functional
Partitioning
Structural: Implement structure, then partition
Good for the hardware (size & pin) estimation.
Size/performance tradeoffs are difficult.
Suffer for large possible number of objects.
Difficult for HW/SW tradeoff.

Functional: Partition function, then implement


Enables better size/performance tradeoffs
Uses fewer objects, better for algorithms/humans
Permits hardware/software solutions
But, its harder than graph partitioning

8
BITS Pilani, Pilani Campus
System Partitioning
(Functional Partitioning)
System partitioning in the context of hardware/software
co-design is also referred to as functional partitioning
Partitioning functional objects among system
components is done as follows
The systems functionality is described as collection of indivisible functional
objects
Each system components functionality is implemented in either hardware or
software

An important advantage of functional partitioning is that it


allows hardware/software solutions

9
BITS Pilani, Pilani Campus
Eight Partitioning Issues: 1. Abstraction levels

Low level of abstraction means high number of low complex objects.


Software
I. Modules
II. Functions
III. Basic Blocks
IV. Instructions

Hardware
I. Modules
II. FSM with datapath
III. Register Transfer
IV. Structure : netlist

System Level/ Board Level/ Chip level

BITS Pilani, Pilani Campus


2.Granularity

The granularity of the decomposition is a measure of the


size of the specification in each object
The specification is first decomposed into functional
objects, which are then partitioned among system
components
Coarse granularity means that each object contains a large amount of the
specification.
Fine granularity means that each object contains only a small amount of the
specification
Many more objects
More possible partitions
Better optimizations can be achieved

BITS Pilani, Pilani Campus


3. System-component allocation :
Recognize the system components to which functional objects can be
mapped.
Done manually.

4.Metrics and Estimation :


Attributes that determine the quality of a partition are called metrics.
ex. Cost, delay, bitrates, power, area, reliability, memory.
Closeness metrics define the benefit of grouping any two objects.
Estimation is determining metrics values from a rough implementation.

5.Output : representation format and potential use

6. Flow of control and Designer Interaction

BITS Pilani, Pilani Campus


7. Objective function and Closeness function :

An expression combining multiple metric values into a single value


that defines a partitions goodness is called objective function. Value
returned is called the cost.

Obj fct = k1area + k2delay + k3power k1 > k2 , k3


Obj fct = k1F(area , area_constr) + k2F(delay , delay_constr) +
k3F(power , power_constr)

Function fct indicates how close the metrics estimate is to the given
constraints .A common form of fct returns the amount by which the
metrics estimate violates the constraints , returning zero when there
is no violation.

Hence this makes the objective function to return zero ,hence


making the goal of partitioning to obtain a cost of zero.
BITS Pilani, Pilani Campus
Cost Function may vary in presentation according
to metrics in consideration

BITS Pilani, Pilani Campus


Example of cost function area
constraint

BITS Pilani, Pilani Campus


Find objfct(f1)

k1=1000 and k2=1

Refer Class notes to calculate f1


BITS Pilani, Pilani Campus

You might also like