Introduction to Computer Engineering I Course ECSE-221 Winter 2006 Material covered as of April 3rd 2006 (for a lecture by lecture list of topics, see WebCT) 1. Data Representation (lecture slides, Chapter 4, Patterson & Hennessy) -
Number systems, base representations, conversions, numerical approximation, precision. Floating point number systems (IEEE 754), isomorphism, range and precision. Symbolic representations (i.e. non-numeric data), ASCII, alpha-numeric data, comparison, sorting. Fundamental operations (required to support common operations on the above). Basic "C" language programming.
2. Combinational Logic (lecture slides, Appendix B, Patterson & Hennessy) -
Truth tables and canonical forms. Boolean algebra, identities. Minimization techniques (algebraic, Karnaugh maps). Gate-level and ROM implementations. Fundamental gate structures (active/passive pullup/pulldown, wired logic). Combinational logic building blocks (multiplexors, encoders/decoders, ROMSs, etc.) and their applications.
3. Sequential Logic (lecture slides, Appendix B, Patterson & Hennessy) -
Latches and flip-flops (basic structures). Logical descriptions (state transition tables, state diagrams, S-R, D, T, J-K flip-flops). Timing behaviour (timing parameters: set-up, hold, propagation delay; characteristics: clocked latch, master-slave, edge triggering, etc.). Analysis of sequential circuits (flip-flop equations, derivation of state transition tables, annotated timing diagrams, maximum frequency determination, etc.). Fundamental building blocks (counters, registers, shift-registers and their applications). ROM-based implementation of state transition tables.
4. Computer Structure and Assembly Language Programming (Chapter 3, 2nd Ed., Patterson & Hennessy) -
Sections 3.1 to 3.11 inclusive. Translation of "C" to assembly language. Argument passing mechanisms (registers, stacks). Preservation of context. Arrays, pointers, stack frames.
5. Arithmetic for Computers (Chapter 4, Patterson & Hennessy) -
Sections 4.1 to 4.7 inclusive. ALU's, carry generation and propagation (definition in terms of pi's and gi's for 1-bit full adders, Pi's and Gi's for n-bit full adders). Multiplication and division (datapaths, Booth's algorithm, non-restoring division). Assembly language implementations of multiplication and division.
6. Computer Architecture (Chapter 5, Patterson & Hennessy) -
Sections 5.1 to 5.6 inclusive. Simple architecture, support for basic operations and instruction formats. Practical implementation - instruction, fetch and execution across multiple clock cycles. Understanding of microinstructions and microprograms relative to the above. Finite state machines and datapath control. Exceptions.