Why learn computer organization? (forthcoming)
- How this course is being organized (forthcoming)
Being a Better Student
- Active learning in the classroom (3/12/03)
- How to read a book (4/05/03)
- The "web" and geek web sites (3/16/03)
- Thoughts on Programming (3/16/03)
- Virtual Bookshelf: What's on Your Shelf? (3/16/03)
- Student Manifesto: What I'm Owed (4/05/03)
- Big Ideas in Computer Science NEW (6/18/03)
- Teaching and Learning: Explaining To Yourself
- Attention to Detail
Baby Computer Organization
- Quick overview of a computer system REVISED (6/24/03) (6/9/03)
- Abstaction and Computer Organization (forthcoming)
- What's a Wire (6/9/03)
- What's a Bus? (3/17/03) (6/9/03)
- What's a Clock? (4/12/03)
- What's a Register? (4/12/03)
- What's a Tri-State Buffer? NEW (7/1/03)
- Black Boxes
- Simple Model of Memory (3/30/03)
- What's in Your CPU? (forthcoming)
- What's an ISA? (3/17/03)
- Quick overview of MIPS architecture (forthcoming)
- A Toy MIPS program (forthcoming)
- Fetch, Execute, Decode UPDATED, 6 steps (7/1/03) (3/16/03)
Baby Combinational Circuits
- Overview of Baby Combinational Circuits
- Baby MUX
- Baby DeMUX
- Baby Encoder
- Baby Decoder
Data Representation/Number Conversion
- Overview of Data Representation
- Representation Vs. Value REVISED (2/7/04) [REVISED (6/17/03),(7/1/03)] (2/24/03)
- Information = Bits + Context NEW (6/17/03)
- Overview of Converting Integer Representations
- Converting from Base K to Base 10 (2/8/03)
- Converting from Base 10 to Base K (2/9/03)
- Converting Fractions from Base 10 to Base K (2/9/03)
- Bits, Bytes, and Nybbles (6/2/03) (was (2/9/03))
- Big and Little Endian (2/9/03) (3/10/03)
- Word Alignment (2/22/03)
- Integer Representations
- Unsigned Binary (2/24/03)
- Overview of Signed Integers (2/24/03)
- Signed Integers: Signed Magnitude (2/24/03)
- Signed Integers: One's Complement (2/24/03)
- Signed Integers: Two's Complement [REVISED (2/7/04)] (2/24/03)
- Signed Integers: Excess/Bias Representation (2/24/03) (3/15/03)
- Sign Extension (3/5/03)
- Overflow (3/5/03)
- Rob's View of Right-Shifting in 2C (3/16/03)
- Fixed Point Representation (forthcoming)
- IEEE 754: Floating Point (3/8/03)
- Underflow (3/16/03)
- Character Representation: ASCII, EBCDIC, and Unicode (3/6/03)
- The dual nature of char (3/15/03)
Low-Level C Operators and More
- Writing numbers in hex and octal in C
- Bitwise Operators
- The "magic" of XOR
- Bitshift Operators
- Code Example: Is a Bit i Set?
- Code Example: Is Any Bit Set Within a Range?
- Code Example: How to Set a Bit
- Ascii vs Binary Files
- Casting
- Pointer Arithmetic
Binary Arithmetic
- Adding Unsigned Numbers
- Adding Two's Complement Numbers
- Creating a One Byte Floating Point Number
- Adding Floating Point Numbers
- Multiplying Floating Point Numbers
MIPS ISA Programming
- Introduction to MIPS
- Instructions
- Instruction Format overview
- add, sub
- addi
- MIPS Bitwise instructions
- MIPS Bitshift instructions (sll, sllv, slr, slrv)
- load and store
- Pseudoinstructions
- Conditional and Unconditional Jumps
- Pseudoinstructions and Branches
- How to Load a 32 bit Immediate
- Integer Multiplication and Division
- Summary of Instruction Encoding
- Summary of Addressing Modes in MIPS
- Translating C-code to MIPS
- Why Translate C to MIPS Assembly?
- Implementing Conditional Statements (
- Implementing Loops
- Understanding 1D Arrays (forthcoming)
- Understanding 2D and Higher Dimensional Arrays (forthcoming)
- Subroutines in MIPS
- How a MIPS Assembler Handles Labels (forthcoming)
- MIPS View of Memory (forthcoming)
Building a Computer
- Fetch, Execute, Decode in Detail (forthcoming)
- Register File as a Black Box
- Implementing a Register File
- ALU
- Executing R-type instructions (forthcoming)
- Executing I-type instructions (forthcoming)
- Executing J-type instructions (forthcoming)
- Control Units (forthcoming)
Combinational Logic
- Boolean Functions/Truth Tables
- Basic Logic Gates
- Implementing Boolean Functions
- Functional Completeness
- Black Boxes
- Multiplexers/Demultiplexers
- Half Adders/Full Adders/Ripple Carry Adders
- MUX trick: Implemeting Truth Tables
- ROM trick: Implemeting Truth Tables with Multiple Outputs
- Overflow Detection for Adders
- Fast Addition: Carry Lookahead Adders
- Implementing a 1-bit ALU
- Encoders/Decoders
- Decoder/Encoder Trick: Implementing Permutations, etc.
- MUX Case Studies
- Summary of Output Equations for Common Combinational Logic Circuits
- Shifters/Circular Shifters (forthcoming)
- Programmable Logic Array (PLA)
Sequential Logic
- What is State?
- Difference between Combinational and Sequential Logic
- Introduction to Flip Flops: D and T
- Parallel Load Registers
- Asynchronous Counters
- Finite State Machines with Output (Mealy and Moore Machines)
- Excitation Tables for D and T Flip Flops
- Implementing Mealy and Moore Machines
- Why Finite State Machines?
- Case Study: Three State Synchronous Counters
- Equivalence of D and T flip flops
Memory
- Interleaved Memory
- Cache
- Page and Offset (forthcoming)
- Introduction to Caches
- Fully Associative Caches
- Direct Mapped Caches
- Set Associative Caches
- Avoiding Pitfall: Addresses vs. Slots
- Direct Memory Access (DMA)
- Virtual Memory
No comments:
Post a Comment