16
- 1 - EE898-HW/SW co-design Hardware/Software Codesign “Finding right combination of HW/SW resulting in the most efficient product meeting the specification”

- 1 - EE898-HW/SW co-design Hardware/Software Codesign “Finding right combination of HW/SW resulting in the most efficient product meeting the specification”

Embed Size (px)

Citation preview

Page 1: - 1 - EE898-HW/SW co-design Hardware/Software Codesign “Finding right combination of HW/SW resulting in the most efficient product meeting the specification”

- 1 -EE898-HW/SW co-design

Hardware/Software Codesign

“Finding right combination of HW/SW resulting in the most efficient product meeting the specification”

Page 2: - 1 - EE898-HW/SW co-design Hardware/Software Codesign “Finding right combination of HW/SW resulting in the most efficient product meeting the specification”

- 2 -EE898-HW/SW co-design

Design productivity gap

Page 3: - 1 - EE898-HW/SW co-design Hardware/Software Codesign “Finding right combination of HW/SW resulting in the most efficient product meeting the specification”

- 3 -EE898-HW/SW co-design

© L

auro

Riz

zatt

iM

arke

tin

g V

ice

Pre

sid

ent

Em

ula

tio

n &

Ver

ific

atio

n

En

gin

eeri

ng

(E

VE

)la

uro@

eve-

usa.

com

Page 4: - 1 - EE898-HW/SW co-design Hardware/Software Codesign “Finding right combination of HW/SW resulting in the most efficient product meeting the specification”

- 4 -EE898-HW/SW co-design

Reuse as a way out

- Plus: Increasing ES complexity, time-to-market requirements

- Pre-designed standard components to be used.• Standard software components • Standard hardware components

Platform-based design

- Plus: Increasing ES complexity, time-to-market requirements

- Pre-designed standard components to be used.• Standard software components • Standard hardware components

Platform-based design

Page 5: - 1 - EE898-HW/SW co-design Hardware/Software Codesign “Finding right combination of HW/SW resulting in the most efficient product meeting the specification”

- 5 -EE898-HW/SW co-design

Platform-based design

A platform is a family of architectures satisfying a set of constraints imposed to allow the reuse of hardware and software components. However, a hardware platform is not enough. Quick, reliable, derivative design requires using a platform application programming interface (API) to extend the platform toward application software. In general, a platform is an abstraction layer that covers many possible refinements to a lower level. Platform-based design is a meet-in-the-middle approach: In the top-down design flow, designers map an instance of the upper platform to an instance of the lower, and propagate design constraints [Sangiovanni-Vincentelli, 2002].

A platform is a family of architectures satisfying a set of constraints imposed to allow the reuse of hardware and software components. However, a hardware platform is not enough. Quick, reliable, derivative design requires using a platform application programming interface (API) to extend the platform toward application software. In general, a platform is an abstraction layer that covers many possible refinements to a lower level. Platform-based design is a meet-in-the-middle approach: In the top-down design flow, designers map an instance of the upper platform to an instance of the lower, and propagate design constraints [Sangiovanni-Vincentelli, 2002].

Page 6: - 1 - EE898-HW/SW co-design Hardware/Software Codesign “Finding right combination of HW/SW resulting in the most efficient product meeting the specification”

- 6 -EE898-HW/SW co-design

Iterative approach (1)

Guided by performance evaluation

Guided by performance evaluation

Page 7: - 1 - EE898-HW/SW co-design Hardware/Software Codesign “Finding right combination of HW/SW resulting in the most efficient product meeting the specification”

- 7 -EE898-HW/SW co-design

Essentially the same with our flow …

Map

ping

Page 8: - 1 - EE898-HW/SW co-design Hardware/Software Codesign “Finding right combination of HW/SW resulting in the most efficient product meeting the specification”

- 8 -EE898-HW/SW co-design

Iterative approach:SpecC model

- Allocation: selecting components

- Partitioning: mapping parts of

system spec to components

- Scheduling: serialize execution

Page 9: - 1 - EE898-HW/SW co-design Hardware/Software Codesign “Finding right combination of HW/SW resulting in the most efficient product meeting the specification”

- 9 -EE898-HW/SW co-design

Overview of design activities

• Task level concurrency managementWhich tasks in the final system?

• High level transformationsTransformation that are outside the scope of traditional compilers (fixed-point arithmetic floating-point arithmetic)

• Hardware/software partitioningWhich operation mapped to hardware, which to software?

• Compilation (software)Hardware- aware compilation (efficient improved if knowing the hardware)

• SchedulingPerformed several times, with varying precision

• Design space explorationSet of possible designs meeting specifications, chose one.

• Task level concurrency managementWhich tasks in the final system?

• High level transformationsTransformation that are outside the scope of traditional compilers (fixed-point arithmetic floating-point arithmetic)

• Hardware/software partitioningWhich operation mapped to hardware, which to software?

• Compilation (software)Hardware- aware compilation (efficient improved if knowing the hardware)

• SchedulingPerformed several times, with varying precision

• Design space explorationSet of possible designs meeting specifications, chose one.

Page 10: - 1 - EE898-HW/SW co-design Hardware/Software Codesign “Finding right combination of HW/SW resulting in the most efficient product meeting the specification”

- 10 -EE898-HW/SW co-design

Task-level concurrency management

Break into small tasks. Granularity: size of tasks (e.g. in instructions)

Readable specifications and efficient implementations can possibly require different task structures.Granularity changesTask partitioning does not necessary aim to maximize implementation efficiency.Not one-to-one corresponding between task and spec.Merging or splitting tasks.

Break into small tasks. Granularity: size of tasks (e.g. in instructions)

Readable specifications and efficient implementations can possibly require different task structures.Granularity changesTask partitioning does not necessary aim to maximize implementation efficiency.Not one-to-one corresponding between task and spec.Merging or splitting tasks.

Page 11: - 1 - EE898-HW/SW co-design Hardware/Software Codesign “Finding right combination of HW/SW resulting in the most efficient product meeting the specification”

- 11 -EE898-HW/SW co-design

Merging of tasks

Reduced overhead of context switches,

More global optimization of machine code,

Reduced overhead for inter-process/task communication.

Reduced overhead of context switches,

More global optimization of machine code,

Reduced overhead for inter-process/task communication.

Page 12: - 1 - EE898-HW/SW co-design Hardware/Software Codesign “Finding right combination of HW/SW resulting in the most efficient product meeting the specification”

- 12 -EE898-HW/SW co-design

Splitting of tasks

No blocking of resources while waiting for input,

more flexibility for scheduling, possibly improved result.

No blocking of resources while waiting for input,

more flexibility for scheduling, possibly improved result.

Page 13: - 1 - EE898-HW/SW co-design Hardware/Software Codesign “Finding right combination of HW/SW resulting in the most efficient product meeting the specification”

- 13 -EE898-HW/SW co-design

Merging and splitting of tasks

The most appropriate task graph granularity depends upon the context merging and splitting may be required.

Merging and splitting of tasks should be done automatically, depending upon the context.

The most appropriate task graph granularity depends upon the context merging and splitting may be required.

Merging and splitting of tasks should be done automatically, depending upon the context.

Page 14: - 1 - EE898-HW/SW co-design Hardware/Software Codesign “Finding right combination of HW/SW resulting in the most efficient product meeting the specification”

- 14 -EE898-HW/SW co-design

Automated rewriting of the task system- Example -

T2**

T2*

Page 15: - 1 - EE898-HW/SW co-design Hardware/Software Codesign “Finding right combination of HW/SW resulting in the most efficient product meeting the specification”

- 15 -EE898-HW/SW co-design

Attributes of a system that needs rewriting

Tasks blocking after they have already started running

Page 16: - 1 - EE898-HW/SW co-design Hardware/Software Codesign “Finding right combination of HW/SW resulting in the most efficient product meeting the specification”

- 16 -EE898-HW/SW co-design

High-level optimization:Floating-point to fixed point conversion

• Pros– Lower cost– Faster (75%)– Lower power consumption (76%??)– Sufficient SQNR, if properly scaled– Suitable for portable applications

• Cons– Decreased dynamic range– Finite word-length effect, unless properly

scaled• Overflow and excessive quantization

noise– Extra programming effort

© Ki-Il Kum, et al. (Seoul National University): A Floating-point To Fixed-point C Converter For Fixed-point Digital Signal Processors, 2nd SUIF Workshop, 1996