HardwareSoftware Codesign Outline Background and Rationale Architecture design
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 • The required text book for a similar course: A Rational Design Process: How and Why To Fake It. • Nortel Work Terms In the Compile Department: – Included everything from the operating system to the routing of 1 -800 numbers. – 23 Million lines of code. – A single compile took 3 days And you thought the computers in the lab were slow.
In the 90’s • Moore’s Law (1965) exposed the woeful inadequacy of the available design strategies. • IC technology focused the attention on hardware/software co-design.
In the new millennium • A call went out for a Unified Modeling Language: – Embedded System Design: A Unified Hardware/Software Introduction. (Vahid and Givargis 2002) – A Decade of Hardware/Software 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 Hardware Software Digital User Memory Signal Interface Processing Access
Can We At Least Talk The Same Language? n n Software Description Language (SDL) People know C, so how about languages built on C/C++? q q q n Hardware Description Language (HDL) System. C Has no tool support. Only useful for influencing other languages. Lacks CAD tool support Spec. C Handel-C Proprietary: Not universally available
Design Strategy
Example: TV Switcher • Problem: Create a video driver to handle OTS rotation and movement. • Primary constraint: Time!
Partitioning Software Hardware ► Create ► Use coefficients rotation/translation generated in software matrix to calculate each pixel ► Calculate coefficients for equation to be used by the hardware.
Problem 1 ► Problem: Jaggies in lines. ► Solution: New post filter in hardware.
Problem 2 ► Problem: New hardware configuration caused the video to appear upside-down and shifted. ► Solution: Obviously a hardware bug. Hardware team fix it! ► New problem: The hardware team has been looking at this bug for over a month with no progress. The project will fail! … or maybe we should talk to the software side? ► New solution: Add an initial flip and offset to counteract the bug. Fix time 20 minutes. ► Conclusion: Hardware/Software team communication is beneficial.
Problem 3 ► Problem: The boss’s son updated the requirements to expand the universe by 1000 times. § That would require 32 bit coefficients. We can only do 16 bit multiplication in the given time constraints. ► Solution: Learning from our past problems, let’s get the hardware and software teams together to discuss it.
Summary of meeting minutes Hardware Team ► It can’t be done! We can’t give you 32 bits on all your variables. ► Well, A is added in at the end. We can do up to a 64 bit add. Software Team ► We don’t need all of them. We just need A, B, and C. ► A gives us unlimited translation, but not scaling. Wait a second, can we simulate scaling by translating so it LOOKS scaled? Let’s see what we can do.
The Next Meeting (Two weeks later) ► Test Team: Translating is indistinguishable from scaling. You can use either. ► Development Teams: We can expand the universe to 950 times the original. It is just short of the 1000 times goal when every buffer overflows. ► Boss’s Kid: Close enough! Great job! 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.
- Slides: 20