6.004 - First Day Package
6.004 - First Day Package
Pre-requisite: MCT 310 (Computer Hardware Engineering); MCT 409 (Digital Systems and
PLCs).
Programming prerequisites: Some experience programming with MATLAB is recommended
(we will use MATLAB in this course.) MATLAB will require the use of a 64-bit computer.
Lectures: 12 Weeks [L].
Required Reading Material: MCT 505 Lecture Notes/Slides (to be provided).
Reference Book(s):
Computer Organization and Design: The Hardware/Software Interface" by David A. Patterson
and John L. Hennessy. 1
1
A number of other books and online materials were consulted in the process of preparing the lecture material.
1
Group Assignment/Presentation: Give a 15 minutes presentation on the following topics. The
topics for the various groups are as follows:
Groups Topic
Group A Virtual Memory
Group B Devices and Interrupts
Group C System Level Communication and Interfaces
Group D Parallel processing
Design Project: details to be decided.
Course Objectives:
On completion of this course, students will be able to
• Understand the role of abstraction in the design of large digital systems, and explain the
major software and hardware abstractions in contemporary computer systems.
• Analyze the performance of digital systems using measures such as latency and throughput.
• Design simple hardware systems based on a variety of digital abstractions such as ROMs
and logic arrays, logic trees, state machines, pipelining, and buses. synthesize digital
systems from a library of representative components and test the designs under simulation.
• Understand the operation of a moderately complex digital system – a simple RISC-based
computer – down to the gate level, and be able to synthesize, implement, and debug its
components.
• Appreciate the technical skills necessary to be a capable digital systems engineer.
Learning Outcomes:
Upon completion of this course, students will be able to
• Identify flaws and limitations in simple systems implemented using the static discipline
(noise assumptions, etc).
• Identify flaws and limitations in simple systems implemented using clocked registers with
asynchronous inputs (metastability issues).
• Identify flaws and limitations in simple systems implemented using pipelined processors
(pipeline hazards).
• Identify flaws and limitations in simple systems implemented using semaphores for
process synchronization (deadlocks).
• Identify flaws and limitations in simple systems implemented using shared-memory
multiprocessors (sequential inconsistency).
• Characterize the logic function of combinational devices using CMOS, ROM, or PLA
technologies.
• Explain synthesis issues for combinational devices using CMOS, ROM, or PLA
technologies from their functional specification.
• Explain synthesis of acyclic circuits from combinational components.
• Calculate performance characteristics of acyclic circuits with combinational components.
2
• Explain and calculate performance characteristics of single-clock sequential circuits.
• Design, debug, and test combinational circuits of the complexity of an arithmetic logic unit.
• Design, debug, and test a controller for a finite-state machine.
• Pipeline a combinational circuit for improved throughput.
• Understand issues affecting microprocessor instruction set design.
• Complete and debug the design of a simple CPU with a given RISC-based intruction set.
• Measure the memory access performance of a processor, and tune cache design parameters
to improve performance.
• Analyze the operation of page-based virtual memory systems.
• Translate simple programs from C to machine language.
• Deduce processor state from a memory snapshot during execution.
Course Content, Schedule and Calendar:
Week Mon. (13:00- 15:00) Wed. (12:00 – 13:00)
1 Basics of Information Digital Abstraction
2 CMOS Technology Combinational Logic
3 Combinational Logic
4 Sequential Logic Finite State Machines
5 Performance Measures Design Trade-Offs
6 Programmable Machines Mid-Term Test
7 Assembly Language Assembly Language
8 Compilers Compilers
9 Procedures and Stacks
10 Caches and The Memory Hierarchy Pipelining the Beta
11 GROUP PRESENTATION
12
EXAMINATION
13
******************************************************************************