Course Outline MSc - Microprocessors 2007 Overall Aim and Objectives The aim of this course is to introduce students to microprocessors for embedded system applications. By the end of the course students should be able to write and understand detailed embedded system specifications, develop applications on embedded processors (ARM) using assembly and/or high-level languages, be familiar with existing programming techniques for performance, code size and power optimization, use programme traces and emulation tools to estimate performance, memory area and power consumption. Week 1: Introduction to microprocessors for general purpose and embedded systems – Embedded microprocessor evolution – Design metrics and constraints (performance, power, cost, time-to-market) and design optimization challenges Week 2: Key embedded system technologies – Integrated Circuit technology – Microprocessor technology – CAD tool technology. Comparison of embedded system implementation options (Microprocessor/ DSP/FPGA/ASIC/Embedded platform) in terms of performance, cost (NRE and total), power consumption and time-to-market Week 3: Embedded system specification specification (UML/C++) and modeling – Object-oriented Week 4: Computer Architecture – Instruction sets – RISC vs. CISC – pipelining The ARM microprocessor architecture Week 5: ARM assembly – ARM mode – Thumb mode - ARM and Thumb instruction set - ARM conditional execution Week 6: Processor I/O – Serial I/O – Busy/wait I/O – Interrupts – Exceptions – Traps – ARM memory mapped I/O Week 7: Caches – Memory Management Units – Protection Units – ARM cache and MMU Week 8: Programme design and analysis – DFGs – CDFGs – Compilers – Assemblers – Linkers – Basic compiler optimizations/code transformations – Measuring programme speed – Trace-driven performance analysis – Energy optimization – programme size optimization Week 9: High-level transformations for embedded computing – Dependence analysis – Loop reordering and loop restructuring transformations – Writing optimal C code for ARM Week 10: Case study – Assignment assessment Main textbooks Wayne Wolf, “Computers as components: Principles of embedded computing design”, Morgan Kaufmann Publishers, 2000 Frank Vahid, Tony D. Givargis, “Embedded System Design: A Unified Hardware/ Software Introduction”, Wiley, 2001 References Wayne Wolf, “High-Performance Embedded Computing: Applications, and Methodologies”, Morgan Kaufmann, 2006 Architectures, Andrew Sloss, Dominic Symes, Chris Wright, “ARM System Developer's Guide: Designing and Optimizing System Software”, Morgan Kaufmann, 2004 P. Marwedel, “Embedded System Design”, Springer, 2005 Prakash Rashinkar, Peter Paterson, Leena Singh, Verification - Methodology and Techniques”, Springer, 2000 “System-on-a-Chip Michael Keating, Russell John Rickford, Pierre Bricaud, “Reuse Methodology Manual for System-On-A-Chip Designs”, Springer, 2006