Introduction to Computer Organization
Summer, 2008
CDA 3101
Topics
The following is a rough outline of the subjects we will cover during the semester:
Chapter 1: computer technologies
abstract computer systems
motherboards and peripherals
integrated circuits
Number systems [presentation interleaved with chapters 2 & 3]
unsigned, variable width: binary, octal, decimal, hexadecimal
base conversions
signed, fixed width: sign-magnitude, 1's complement, 2's complement
binary arithmetic
IEEE 754 floating point representation and arithmetic
Chapters 2-3: MIPS assembly language
MIPS assembly programming
translating C to MIPS assembly code
supporting function calls with stackframes
hand execution
instruction encoding
pseudo instruction -> native instruction(s)
two-pass hand assembly
Chapter 4: performance
performance measurement: Time_exec = CPI * IC * Time_cycle
benchmarking: types and theory
Amdahl's law
Chapters 3, 5, and Appendix B: building blocks
logic gates
multiplexors, encoders, decoders, adders, d flip-flop
sequential and combinational logic circuits
inner working of the ALU
inner workings of the register file
Chapter 5: single & multicycle datapaths
functional units
how instructions propagate through the datapath
control lines and the MC control state machine
adding support for new instructions
Chapter 6: pipelined datapath
the theory of pipelining
building a pipelined datapath
understanding the pipeline registers fields: which instructions use what fields.
how a single instruction propagates through the datapath
identifying dependencies and hazards in a sequence of instructions
mitigating the impact of dependencies: forwarding and hazards detection
adding support for new instructions
Chapter 7: memory hierarchy
caches and why they are used
types of caches: associativity
cache size/topology v. performance
the common framework for memory hierarchies: the 4 questions
virtual memory
This website is an original work, Copyright © 2008 by Dave Small. All rights reserved.