March 2007
CSE 378: Machine Organization and Assembly Language
Purpose:
Fundamentals of instruction set design. CPU implementation,
pipelining. Memory hierarchy. Assembly language programming.
Compiler and Operating System interfaces.
Precondition concepts:
- basics of computation
- abstraction
- modularity, encapsulation
- interface vs. implementation
- basic Boolean logic
- simple abstract data types (stacks, queues) and their implementations
- combinational and sequential logic
- finite-state machines and implementations
Precondition Abilities:
- design and implement medium-sized programs (up to about 1000 lines),
consisting of several (4-12) modules
- understand and extend medium-sized (500+ lines) programs
- map a problem statement to a digital logic solution including combinational and sequential (FSM) logic
Precondition Skills:
- familiarity with C and/or C++
- use of a hardware description language
- use of synthesis tools to generate and map logic to programmable logic devices
- of digital logic
Post condition concepts:
- basic computer organization
- CPU, memory, I/O
- representation of data in memory
- performance metrics for computer systems
- instruction set design
- registers
- arithmetic-logical instructions
- load-store instructions and operand addressing
- flow of control instructions
- instruction encoding
- instruction formats
- RISC vs. CISC
- translation of HLL programs into assembler
- registers, user stack, static data area, heap
- procedure call conventions
- basics of statement translation and optimization
- basic processor implementation
- functional behavior of basic building blocks
- simple data path
- multiple cycle implementation
- simple control unit
- pipelining
- ideal pipeline
- data hazards & forwarding
- control hazards & branch prediction
- instruction-level parallelism
- memory hierarchy
- caches
- cache organizations
- performance metrics for caches, taxonomy of cache misses
- parameters for cache design
- write strategies
- memory management
- virtual memory translation, page tables
- TLB's
- busing structures
- input-output
- devices
- interrupts (interaction with operating system)
Postcondition Abilities:
- design at the black box level a simple CPU
- evaluate varied cache and TLB organizations
- understand the underlying factors affecting and metrics for the performance of a single processor computer system
Postcondition Skills
- program and debug assembly language routines for a simple
RISC ISA (MIPS 2000/3000)
- basic knowledge of microarchitecture and memory hierarchy