EE 361 Fall 2003 Lecture Schedule and Notes
What's New
- Aug. 21, 2003. This page has been set up. Lecture
schedule is set for the week of Aug. 25, 27, and 29.
- Aug. 27, 2003. Updated lecture note list to include
the "B" stuff.
- Aug. 28, 2003: Added MIPSc notes, and updated lecture
note list to include the "C" stuff.
- Sept. 5, 2003: Added Arith and IO Notes, and updated
lecture note list to include "D" stuff.
- Sept. 17, 2003: Added CircRev notes which is a review
of digital hardware (EE 260 material) and an introduction to verilog HDL.
This for the "E" stuff.
- Sept. 21, 2003: Added SingleMIPS notes which covers the
single cycle MIPS architecture from the first half of Chapter 5. This
is "F" stuff.
- Oct. 20, 2003: Added MultiMIPS notes, which covers the multicycle
MIPS architecture from the latter half of Chapter 5. This is "G" and
"H" stuff. Added ALU notes, which covers the ALU design. This
is the "I" and "J" stuff (I didn't update the reading assignment for the
ALU topic just yet.)
- Oct. 31, 2003. Updated the reading assignments for I and J
stuff.
- Nov. 10, 2003. Updated reading assignments for K stuff
- Nov. 16, 2003. Added Memory Notes. Updated reading assignments
for L stuff.
Overview
This is an overview of the topics to be covered.
- I. Instruction Set Architecture (and Assembly Language):
(Approximately 4 weeks). Sub-topics to be covered
- Instructions that a computer can execute.
- Assembly language
- Compiling, and other related operating system software.
- Data representation
- Subroutines and Stacks
- Exceptions (interrupts)
- II. MIPs Processor Design: (Approximately 3.5
weeks). Sub-topics to be covered
- Review of digital circuit parts and design techniques.
- Parts: registers, register files, RAM, combinational
circuits, sequential circuits (Mealy machines), multiplexers,
demultiplexers, and tri-states.
- Design Techniques: modular design, ASM charts,
state diagrams, design procedure from state diagrams or ASM
charts to sequential circuits.
- Verilog HDL -- structural Verilog.
- Single-Cycle MIPS Processor
- Multi-Cycle MIPS Processor
- Performance: critical paths, propagation delays,
set-up times, holding times.
- III. Processor Component Design: (3.5 weeks).
- ALU: implementing integer arithmetic, iterative partitioning
in space and time, multiplication, division, and Booth's
algorithm.
- Controller: design techniques such as one-hot encoding
and microprogramming.
- Performance.
- IV. Other Important Stuff: (2 weeks).
- Memory Hierarchy: caching, virtual memory.
- Floating point
Lecture Notes
Instruction Set Architecture - Assembly Language (MIPS)
A.
- Introduction and machine performance. [Aug. 25, mon]
- Reading:
- Textbook: Chap. 2 and in particular
Secs. 2.1-2.3, (skip 2.4), 2.5-2.7. [Optional: Read Chap.
1 and the rest of Chap. 2.].
- Notes: Intro 1-17..
- Instructions and operands. [Aug. 27, wed]
- Reading:
- Textbook: Sec. 3.1-3.3.
- Notes: MIPSa 1-15.
- Review: C language and in particular, simple data
types, variables, if-else, while-loops, for-loops, and switch.
- Instruction format, assembly language and branching/jumping.
[Aug. 29, fri, this lecture may spill over to the next lecture session]
- Reading:
- Textbook: Sec. 3.4-3.5.
- Notes: MIPSa 16-36.
- Labor day September 1, Mon.
B.
- C functions and stacks. [9/3]
- Reading:
- Textbook: Sec. 3.6.
- Notes: MIPSb 1-18
- Addressing modes, immediate addressing, PC-relative
adressing. [9/3, 9/5]
- Reading:
- Textbook: Sec. 3.7 (this section is about
text characters, which will be discussed later in the course),
3.8.
- Notes: MIPSb 19-29
- Passing parameters through registers and stack. [9/8]
- Reading:
- Textbook: Sec. 3.9, and A.1. Note
that the topics of Sec 3.9 will be discussed in a later lecture.
- Notes: MIPSc 1-11
C.
- Function calls in MIPs, stack frames, some details
about the MIPs assembly language. [9/10,9/12]
- Reading:
- Textbook: Sec. A.2, A.5, and A.6.
- Notes: MIPSc 12-19
- Big picture: assemblers, linkers, and loaders. [9/15,9/17]
- Reading:
- Texbook: Sec. A.3, A.4.
- Notes: MIPSc 20-30
- Mopping up: arrays versus pointers, properties and rules
of thumb, CISC. [9/17]
- Reading:
- Textbook: Secs. 3.11, 3.12 (optional), 3.13 (optional).
- Notes: .MIPSc 31-33
D.
- Review positional number systems, addition, conversion
from binary to octal and hex, unsigned integers, signed numbers. [9/17]
- Reading:
- Textbook: Sec. 4.1-4.2.
- Notes: Arith 1-14
- Signed numbers, twos complement, negation, addition
[9/19]
- Reading:
- Textbook: Sec. 4.3.
- Notes: Arith 15-28
- Exceptions [9/19, 9/22]
- Reading:
- Textbook: Sec. 5.6. but from page 410 to the
middle of page 413.
- Notes: IO 1-18
MIPS Processor Design
E. Review of Digital Circuit Design and Verilog. No reading assignments
except ones given in homeworks.
- Review of Basic Parts: combinational circuits, truth
tables, logic operations, and Verilog HDL and modules. [9/22, 9/24]
- Sequential circuits and verilog. [9/24, 9/26]
- Sequential Circuits, Mealy machines, ASM charts,
and state diagrams. [9/29]
- Overview of FPGAs [Oct. 4]
- Reading
- Notes: to be posted later or handed out by
lecturer in class
F. Single-Cycle MIPS Processor
- Overview of datapath [Oct 6]
- Reading:
- Textbook: Sec. 5.1-5.2.
- Notes: SingleMIPS 1-13
- Complete overview of datapath [Oct 8]
- Reading:
- Textbook: Sec. 5.3.
- Notes: SingleMIPS 14-26
- Single cycle architecture: control [Oct 13,15]
G.Multi-Cycle MIPS Processor
- A multiple clock cycle implementation. [Oct. 15]
- Reading:
- Textbook: Sec. 5.4.
- Notes: MultiMIPS 1-8
- A multiple clock cycle implementation -- datapath. [Oct.
15,17]
- Reading:
- Textbook: Sec. 5.4.
- Notes: MultiMIPS 9-15
- A multiple clock cycle implementation -- state diagram
of controller. [Oct 20]
H. Controller Design []
- Controller design -- One-hot encoding [Oct. 27]
- Reading
- Notes: MultiMIPS 25-34,47-48
- Microprogramming. [Oct. 29,31]
- Reading:
- Textbook: Sec. 5.5. and App. C.
- Notes: MultiMIPS 35-48.
Processor Component Design
I. ALU Design
- Logic operations (AND, OR, Compl., XOR), simple ALU
by iterative partitioning in space. [Oct. 31]
- Reading:
- Textbook: Sec. 4.4.
- Notes: ALU 1-4
- Carry-lookahead and carry-save, shifting, barrel shifter,
cross-bar switch. [Nov. 3,5 ]
- Reading:
- Textbook: Sec. 4.5.
- Notes: ALU 5-19
J. ALU Design
- Three versions of unsigned multiplying. Booth's algorithm
for signed multiply. [Nov. 5,7]
- Reading:
- Textbook: Sec. 4.6.
- Notes: ALU 20-43
- Division. [Nov. 10]
- Reading:
- Textbook: Sec. 4.7.
- Notes: ALU 44-54
K. Floating Point
- Floating point definitions and hardware [Nov 12, 14]
- Reading:
- Textbook: Sec. 4.8.
- Notes: ALU 55-69.
Other Important Stuff
L. Memory Hierarchy
- RAM -- dynamic and static [Nov 17]
- Reading:
- Textbook Sec. 7.1-7.2
- Notes: Memory 1-14
- Caches [Nov. 21, 24]
- Virtual Memory [Nov. 26]
- Reading:
- Textbook: Sec. 7.3.
- Notes: 44-49
- Common framework for memory hierarchies (we will not
get to this. I want to discuss a little about networks and other
things.)
- Optional Reading: Sec. 7.4.
Everything below the line is under construction
M. Other stuff we may cover
- Direct memory access
- Synchronization, e.g., handshaking