16
Topics Task-level partitioning. Hardware/software partitioning. Bus-based systems.

© 2004 Wayne Wolf Topics Task-level partitioning. Hardware/software partitioning. Bus-based systems

Embed Size (px)

Citation preview

Page 1: © 2004 Wayne Wolf Topics Task-level partitioning. Hardware/software partitioning.  Bus-based systems

Topics

Task-level partitioning. Hardware/software partitioning.

Bus-based systems.

Page 2: © 2004 Wayne Wolf Topics Task-level partitioning. Hardware/software partitioning.  Bus-based systems

System partitioning Lagnese et al: partition a large description based

on functional information, not initial allocation. Thomas et al:

developed Verilog-based simulation system for performance evaluation

assumes bus-based CPU-ASIC model provides several types of communication primitives design evaluation based on both static evaluation

(time for single execution) and dynamic evaluation

Page 3: © 2004 Wayne Wolf Topics Task-level partitioning. Hardware/software partitioning.  Bus-based systems

Hardware-software partitioning Partitioning methods usually allow more than

one ASIC. Typically ignore CPU memory traffic in bus

utilization estimates. Typically assume that CPU process blocks while

waiting for ASIC.

CPU

ASIC

ASIC

mem

Page 4: © 2004 Wayne Wolf Topics Task-level partitioning. Hardware/software partitioning.  Bus-based systems

Gupta and De Micheli Target architecture: CPU + ASICs on bus Break behavior into threads at nondeterministic delay

points; delay of thread is bounded Software threads run under RTOS; threads

communicate via queues

Page 5: © 2004 Wayne Wolf Topics Task-level partitioning. Hardware/software partitioning.  Bus-based systems

Specification and modeling Specified in Hardware C. Spec divided into threads

at non-deterministic delay points. Hardware properties: size, # clock cycles. CPU/software thread properties:

thread latency thread reaction rate processor utilization bus utilization

CPU/ASIC execution are non-overlapping.

Page 6: © 2004 Wayne Wolf Topics Task-level partitioning. Hardware/software partitioning.  Bus-based systems

HW/SW allocation Start with unbounded-delay threads in CPU, rest

of threads in ASIC. Optimization:

test one thread for move if move to SW does not violate performance

requirement, move the thread feasibility depends on SW, HW run times, bus utilization if thread is moved, immediately try moving its successor

threads

Page 7: © 2004 Wayne Wolf Topics Task-level partitioning. Hardware/software partitioning.  Bus-based systems

COSYMA Ernst et al.: moves operations from

software to hardware. Operations are moved to hardware in

units of basic blocks. Estimates communication overhead

based on bus operations and register allocation.

Hardware and software communicate by shared memory.

Page 8: © 2004 Wayne Wolf Topics Task-level partitioning. Hardware/software partitioning.  Bus-based systems

COSYMA design flowC*

ES graph

partitioning

cost estimation

gnu C

run timeanalysis

CDFG

high-levelsynthesis

Page 9: © 2004 Wayne Wolf Topics Task-level partitioning. Hardware/software partitioning.  Bus-based systems

Cost estimation Speedup estimate for basic block b:

c(b) = w(tHW(b) - tSW(b) + tcom(Z) - tcom(Z + b)) * It(b)

w = weight, It(b) = # iterations taken on b

Sources of estimates: Software execution time (tSW ) is estimated from source code.

Hardware execution time (tHW ) is estimated by list scheduling.

Communiation time (tcom ) is estimated by data flow analysis of adjacent basic blocks.

Page 10: © 2004 Wayne Wolf Topics Task-level partitioning. Hardware/software partitioning.  Bus-based systems

COSYMA optimization Goal: satisfy execution time. User specifies

maximum number of function units in co-processor.

Start with all basic blocks in software. Estimate potential speedup in moving a basic

block to software using execution profiling. Search using simulated annealing. Impose high

cost penalty for solutions that don’t meet execution time.

Page 11: © 2004 Wayne Wolf Topics Task-level partitioning. Hardware/software partitioning.  Bus-based systems

Two-phase optimization Inner loop uses estimates to search through

design space quickly. Outer loop uses detailed measurements to check

validity of inner loop assumptions: code is compiled and measured ASIC is synthesized

Results of detailed estimate are used to apply correction to current solution for next run of inner loop.

Page 12: © 2004 Wayne Wolf Topics Task-level partitioning. Hardware/software partitioning.  Bus-based systems

Vahid et al. Uses binary search to minimize hardware cost

while satisfying performance. Cost and performance compete—to reduce

competition, accept any solution with cost below Csize.

Cost function: kperf( performance violations) + kareaf(hardware

size). k

Page 13: © 2004 Wayne Wolf Topics Task-level partitioning. Hardware/software partitioning.  Bus-based systems

Kalavade et al. Uses both local and global measures to meet

performance objectives and minimize cost. Global criterion: degree to which performance is critically

affected by a component. Local criterion: heterogeneity of a node = implementation

cost. a function which has a high cost in one mapping but low cost in

the other is an extremity

two functions which have very different implementation requirements (precision, etc.) repel each other into different implementations

Page 14: © 2004 Wayne Wolf Topics Task-level partitioning. Hardware/software partitioning.  Bus-based systems

GCLP algorithm Schedule one node at a time:

compute critical path select node on critical path for assignment evaluate effect of change in allocation of this node if performance is critical, reallocate for performance, else

reallocate for cost Extremity value helps avoid assigning an operation

to a partition where it clearly doesn’t belong. Repellers help reduce implementation cost.

Page 15: © 2004 Wayne Wolf Topics Task-level partitioning. Hardware/software partitioning.  Bus-based systems

D’Ambrosio et al. Use general-purpose optimizer for HW/SW

assignment. Can model both hard and soft deadlines. Measure expandability of system as difference

between upper and lower performance bounds. Loose upper bound on CPU utilization leads to

excessive hardware cost in final result. Use simulation to estimate execution time of each

process.

Page 16: © 2004 Wayne Wolf Topics Task-level partitioning. Hardware/software partitioning.  Bus-based systems

Binary search algorithm If zero-cost solution is found for given hardware size, zero-

cost solution is guaranteed to exist for larger hardware size. Therefore, can use binary search to select satisfying solution.

Evaluate cost of point when it is tested, rather than generate costs of all points in advance.

Sufficient to look for a zero-cost solution:

100 80 50 30 10 0 0 0