CS71028: Hardware Software Co-Design
| Semester: second | Year: postgraduate | Duration of Final Exam: 3 hours |
| Lecture Hours/Wk: 4 | Tutorial Hours/Wk: 0 | Lab Hours/Wk: 0 |
Marks:
| Semester work: 40ish | Final: 60ish | Total: 100 |
Instructor:
Dr Ahmed El-Mahdy
Computer Dep. 2nd floor Admin. Bldg
Course Scope
Traditional approaches to accelerate uni-processor speed invest on building complex hardware structures to exploit instruction-level parallelism. Those approaches have nearly reached their gain limits and are unlikely to provide any more substantial acceleration. The state-of-the art in research focuses on combining the design of software and hardware to achieve acceleration. In that view an application runs on a virtual machine. The traditional instruction set contract is thus relaxed and now moved to the virtual-machine level. This provides freedom for the processor architect to choose a suitable instruction set architecture (no legacy code that needs supporting) to match the processor implementation technology and support dynamic software optimisations that runs on top, and vice versa from the software point of view.
Objectives
A student completing this course should:
- Have an understanding of the virtual machine concept
- Have an understanding of processor structures used in current microprocessors and their utility in the virtual machine frame-work
- Have a knowledge of advanced compilation and run-time software optimisations.
Course Outline
- Overview of virtual machines
- Processor architecture
- Dynamic compilation - JIKES (IBM research Java virtual machine) as an example
- Case study-1 DAISY
- Case study-2 CRUSOE
Examinations
There as one final exam.
There is one main assignment with details later on in sha Allah.
Lectures Plan
Lectures Log
Course Work
To carry on a term project. Some suggestions:
- Implement a hardware-based optimisation on an existing simulator. Implement a software-based optimisation and run on top of an existing machine or simulator.
- Provide a detailed analysis and profiling information, for example, for a Java virtual machine instruction mix and its execution characteristics.
Textbooks
- John L. Hennessy and David A. Patterson, Computer Architecture: A Quantitative Approach, 3rd Edition, Morgan Kaufmann Publishers, 2003.
- Steven S. Muchnick, Advanced Compiler Design and Implementation, Morgan Kaufmann Publishers, 1997.
- James E. Smith and Ravi Nair, Virtual Machines: versatile platforms for systems and processes, Morgan Kaufmann Publishers, 2005.
Internet Resources