20
Hardware/Software Hardware/Software Codesign Codesign

Hardware/Software Codesign

Embed Size (px)

DESCRIPTION

Hardware/Software Codesign. Outline. Background and Rationale Architecture design constraints and issues Architecture design strategies Example of generic architectures Perspectives. Background and Rationale. Ancient History More Recent History. Back in the 80’s. - PowerPoint PPT Presentation

Citation preview

Hardware/Software Hardware/Software CodesignCodesign

Outline

• Background and Rationale • Architecture design constraints

and issues • Architecture design strategies • Example of generic architectures • Perspectives

Background and Rationale

• Ancient History

• More Recent History

Back in the 80’s

• The required text book for a similar course:The required text book for a similar course:A Rational Design Process:A Rational Design Process:

How and Why To Fake It.How and Why To Fake It.

• Nortel Work Terms In the Compile Nortel Work Terms In the Compile Department:Department:– Included everything from the operating system Included everything from the operating system

to the routing of 1-800 numbers.to the routing of 1-800 numbers.– 23 Million lines of code.23 Million lines of code.– A single compile took 3 daysA single compile took 3 days

And you thought the computers in the lab were slow.And you thought the computers in the lab were slow.

In the 90’s

• Moore’s Law (1965) exposed the Moore’s Law (1965) exposed the woeful inadequacy of the available woeful inadequacy of the available design strategies.design strategies.

• IC technology focused the attention IC technology focused the attention on hardware/software co-design. on hardware/software co-design.

In the new millennium

• A call went out for a Unified Modeling A call went out for a Unified Modeling Language:Language:– Embedded System Design: A Unified Embedded System Design: A Unified

Hardware/Software Introduction. (Vahid Hardware/Software Introduction. (Vahid and Givargis 2002)and Givargis 2002)

– A Decade of Hardware/Software A Decade of Hardware/Software Codesign (Wolf 2003)Codesign (Wolf 2003)

Issues

• Abstracting so the big picture is not lost in the details

• Language

• Split of Hardware/Software

In an Ideal World

Hard-Soft-O-Matic

User InterfaceMemory AccessDigital Signal Processing

Hardware Software

Can We At Least Talk The Same Language?

Hardware Description Language (HDL)

Software Description Language (SDL)

People know C, so how about languages built on C/C++? SystemC SpecC Handel-C

Has no tool support. Only useful for influencing other languages.

Lacks CAD tool support

Proprietary: Not universally available

Design Strategy

Example: TV Switcher

• Problem: Create a video driver to handle OTS rotation and movement.

• Primary constraint: Time!

PartitioningPartitioning

SoftwareSoftware► Create Create

rotation/translation rotation/translation matrixmatrix

► Calculate Calculate coefficients for coefficients for equation to be used equation to be used by the hardware.by the hardware.

HardwareHardware► Use coefficients Use coefficients

generated in generated in software to software to calculate each pixelcalculate each pixel

Problem 1Problem 1

►Problem: Jaggies in lines. Problem: Jaggies in lines.

►Solution: New post filter in hardware.Solution: New post filter in hardware.

Problem 2Problem 2

► Problem: New hardware configuration Problem: New hardware configuration caused the video to appear upside-down caused the video to appear upside-down and shifted.and shifted.

► Solution: Obviously a hardware bug. Solution: Obviously a hardware bug. Hardware team fix it!Hardware team fix it!

► New problem: The hardware team has been New problem: The hardware team has been looking at this bug for over a month with no looking at this bug for over a month with no progress. The project will fail! … or maybe progress. The project will fail! … or maybe we should talk to the software side?we should talk to the software side?

► New solution: Add an initial flip and offset to New solution: Add an initial flip and offset to counteract the bug. Fix time 20 minutes.counteract the bug. Fix time 20 minutes.

► Conclusion: Hardware/Software team Conclusion: Hardware/Software team communication is beneficial.communication is beneficial.

Problem 3Problem 3

►Problem: The boss’s son updated the Problem: The boss’s son updated the requirements to expand the universe requirements to expand the universe by 1000 times.by 1000 times. That would require 32 bit coefficients. We That would require 32 bit coefficients. We

can only do 16 bit multiplication in the can only do 16 bit multiplication in the given time constraints.given time constraints.

►Solution: Learning from our past Solution: Learning from our past problems, let’s get the hardware and problems, let’s get the hardware and software teams together to discuss it.software teams together to discuss it.

Summary of meeting Summary of meeting minutesminutes

Hardware TeamHardware Team► It can’t be done! We It can’t be done! We

can’t give you 32 bits can’t give you 32 bits on all your variables.on all your variables.

► Well, A is added in at Well, A is added in at the end. We can do up the end. We can do up to a 64 bit add.to a 64 bit add.

Software TeamSoftware Team

► We don’t need all of We don’t need all of them. We just need A, them. We just need A, B, and C.B, and C.

► A gives us unlimited A gives us unlimited translation, but not translation, but not scaling. Wait a second, scaling. Wait a second, can we simulate scaling can we simulate scaling by translating so it by translating so it LOOKS scaled? Let’s LOOKS scaled? Let’s see what we can do.see what we can do.

The Next Meeting (Two weeks The Next Meeting (Two weeks later) later)

►Test Team: Translating is Test Team: Translating is indistinguishable from scaling. You can indistinguishable from scaling. You can use either.use either.

►Development Teams: We can expand Development Teams: We can expand the universe to 950 times the original. the universe to 950 times the original. It is just short of the 1000 times goal It is just short of the 1000 times goal when every buffer overflows.when every buffer overflows.

►Boss’s Kid: Close enough! Great job! Boss’s Kid: Close enough! Great job! Let’s ship it.Let’s ship it.

A Better Design Strategy

Conclusions

• We have come a long way.• Integration of Hardware/Software design is

key.• Human intuition will be needed to partition

hardware and software.• Both groups must learn to communicate.• Don’t let the boss’s kid see what you are

working on.