============================================== Midterm 3 Exam Wednesday, December 10, in-class ============================================== The exam, by nature, is cumulative. So be sure to review the material from the first two-thirds of the class and know the questions of the prior two exams. Here are a list of topics that you should be familiar with. Be sure to complete the assigned reading (listed on the class webpage); it is likely that some exam questions will come directly from the reading and the example problems in the book. (0) Buffer Attacks - know how buffer attacks originate and how to prevent them (1) Pipelines - be able to explain the basic ideas of pipeline performance - explain the nature of diminishing returns on adding more pipeline stages - be able to compute latency, clock rate, and throughput for different pipelines - be familiar with basic hazards and how to overcome them (2) Caching - know the basics of a memory hierarchy - be able to articulate how a memory hierarchy can be used to enhance memory performance - be familiar with the different cache types and structures - be able to translate a series of addresses into hits/misses by simulating a cache performance - understand thrashing and how to prevent it - know different cache eviction policies as well as cache writing policies (3) Exception Control Flow - be able to list various sources and kinds of exceptions - know how to create new processes - be familiar with basic signals, how to send and receive them (4) Floating Point - know the IEEE floating point format - be able to convert between decimal numbers and floating point bit representation - know the special cases and limits of each case (5) Hardware Labs - know the basics of servo motor control - know the basics of stepper motor control - know the basics of using interrupts on the Arduino We will not cover multiplication algorithms on this midterm exam. They may be part of the final exam.