COE 301
Computer Organization

Catalog Description

Introduction to computer organization, machine instructions, addressing modes, assembly language programming, integer and floating-point arithmetic, CPU performance and metrics, non-pipelined and pipelined processor design, datapath and control unit, pipeline hazards, memory system and cache memory.

Prerequisite(s)

COE 200 and ICS 201

Textbook(s) and/or other Required Material

Computer Organization & Design: The Hardware/Software Interface, 4th edition, David A. Patterson and John L. Hennessy, Morgan Kaufmann, 2009.

Course Objectives

  • Describe the instruction set architecture of a MIPS processor
  • Analyze, write, and test MIPS assembly programs
  • Describe organization and operation of integer and floating-point arithmetic units
  • Design the datapath and control of a single-cycle (non-pipelined) CPU
  • Design the datapath and control of a pipelined CPU and handle hazards
  • Describe the organization and operation of memory and caches
  • Analyze the performance of processors and caches.

Topics Covered

  • Introduction to computer organization, high-level, assembly, and machine languages, components of a computer system, processor datapath, control, memory hierarchy, disk storage, technology improvements, chip manufacturing process.
  • Review of signed/unsigned integers, binary addition and subtraction, carry and overflow. Instruction set architecture, registers, instruction formats, arithmetic instructions, immediate operands, bit manipulation.
  • Load and store instructions, flow control instructions, pseudo-instructions, and addressing modes.Translating expressions, if-else statements, loops, array indexing and traversal.
  • MIPS assembly language programming, tools, program template, directives, text, data, and stack segments, defining data, arrays, and strings, symbol table, memory alignment, byte ordering, and console input and output.
  • Defining procedures, procedure calls and return address, nested procedure calls, passing arguments in registers, runtime stack, stack frames, local variables, value and reference parameters, saving and restoring registers.
  • Integer multiplication, unsigned and signed multiplication, sequential multiplier hardware, faster (tree) hardware multiplier, integer division, sequential divide hardware, integer multiplication and division in MIPS.
  • Floating point representation, IEEE 754 standard, normalized and de-normalized numbers, zero, infinity, NaN, FP comparison, FP addition, FP multiplication, rounding and accurate arithmetic. Floating-point instructions.
  • CPU performance and metrics, CPI, performance equation, MIPS as a metric, Amdahl's law, benchmarks and performance of recent processors.
  • Designing a processor, register transfer level, datapath components, clocking methodology, singlecycle datapath, implementing a register file and multifunction ALU.Control signals and control unit, ALU control.
  • Pipelining versus serial execution, MIPS 5-stage pipeline, pipelined datapath, pipelined control, pipeline performance.Pipeline hazards: structural, data, and control hazards, load delay, hazard detection, stall and forwarding unit, and delayed branching.
  • Main memory organization and performance, SRAM, DRAM, latency and bandwidth, memory
    hierarchy, cache memory, locality of reference.Cache memory organization: direct-mapped, fullyassociative, and set-associative caches, write policy, and replacement policy.Cache performance, memory stall cycles, and average memory access time.

Prepared by: Dr. Mayez Al-Mouhamed, March 7, 2014.