Computer architecture is the science and art of selecting and interconnecting hardware components to create a computer that meets functional, performance and cost goals to run software. With the recent switch from uniprocessor to multicore microprocessors, it has become more important for the programmer to understand the hardware which will run their software. For programs to run fast now, they must become parallel. What this means to the programmer varies depending if they are dealing with an imbedded system, mobile smart phones, laptops or cloud servers. This class will introduce students to the architectural knowledge they need to write high performance software for modern systems.
The class will start with a review of modern computer architecture using a freshly updated classic book, Patterson and Henessy’s Computer Organization and Design. There will be written homeworks the first few weeks and a midterm. This material will give the programmer and system architect a through grounding in modern computer architecture.
The second part of the class will focus on creating a cloud driven distributed microcontroller project. We will use the wi-fi enabled Electric Imp (https://electricimp.com ) microcontroller. Students will write cloud server software and microcontroller software which will interact to create a distributed system for the management of local devices over wi-fi and the Internet. Since the security of the Internet of Things is looking as bad as everyone is expecting, we will also discuss the special security issues associated with such distributed systems.
- Computer Abstractions, Technology and Instructions, (P&H Chapter 1-2)
- Processors and Arithmetic units with a focus on parallesm. (P&H chapter 3.6-4)
- Memory Hierarchy (P&H Chapter 5)
- Memory in parallel, multicore and multiprocessor systems
- Midterm. Storage and I/O Topics
- Imbedded Systems. Cloud programming and microcontroller systems. UARTs, SPIs, DACs, PWM outputs. Intro to Electric Imp (https://electricimp.com)
- In class electric Imp demos and setup. Multi-cores
- Multiprocessors, Clusters, Graphics and GPUS
- Cloud and imbedded systems
- Security topics in the Internet of Things.
- Homework: 50%
- Midterm examination: 20%
- Final examination: 20%
- Class participation: 10%
The first half of the class will feature weekly homeworks and the second half of the class will focus on the final project.
Book: Computer Organization and Design (5th edition ) Patterson and Hennessy
In addition to the book, students will need to purchase an Electronic Imp Wi-Fi Microcontroller ($30) and developer board ($14) from Amazon, Digikey, Adafruit other resellers. Depending on the electronics maker skills the student brings to the class, other hardware may be used as part of the final project. However, no hardware or soldering skills are required for the class.