Upload
byron-gardner
View
217
Download
2
Tags:
Embed Size (px)
Citation preview
- 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
- 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
- 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
- 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].
- 6 -EE898-HW/SW co-design
Iterative approach (1)
Guided by performance evaluation
Guided by performance evaluation
- 7 -EE898-HW/SW co-design
Essentially the same with our flow …
Map
ping
- 8 -EE898-HW/SW co-design
Iterative approach:SpecC model
- Allocation: selecting components
- Partitioning: mapping parts of
system spec to components
- Scheduling: serialize execution
- 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.
- 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.
- 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.
- 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.
- 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.
- 14 -EE898-HW/SW co-design
Automated rewriting of the task system- Example -
T2**
T2*
- 15 -EE898-HW/SW co-design
Attributes of a system that needs rewriting
Tasks blocking after they have already started running
- 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