Skip to main content
CPE
368
Computer Organization
Digital systems design principles and techniques including modeling and simulation with HDLs. Performance metrics and Amdahl\'s Law. CPU organization of computers. Instructing set architecture. Register transfer logic. Computer arithmetic: fast adders, multipliers, dividers and floating-point arithmetic. Processor data path and control unit design. Introduction to pipelining and caches. An emphasis on hardware design methods, combined with increased discussion of performance and relevant software issues.
Prerequisites:
0612363,0612364
0612368
(3-0-3)

Credits and Contact Hours

3 credits, 43 hours

Course Instructor Name

Prof. Imtiaz Ahmad and Dr. Faridah Ali

Textbook

Computer Organization and Design RISC-V Edition: The Hardware Software Interface,1st Edition, David Patterson and John Hennessy, Morgan Kaufmann. ISBN: 978-0-12-812275-4, 2018.

Catalog Description

Digital systems design principles and techniques including modeling and simulation with HDLs. Performance metrics and Amdahl\'s Law. CPU organization of computers. Instructing set architecture. Register transfer logic. Computer arithmetic: fast adders, multipliers, dividers, and floating-point arithmetic. Processor data path and control unit design. Pipelining, data/control hazards, data forwarding, branch prediction techniques and instruction level parallelism. An emphasis on hardware design methods, combined with increased discussion of performance and relevant software issues.

Prerequisite

CpE-363 and CpE-364

Specific Goals for the Course

Upon successful completion of this course, students will be able to:

  • Understand instruction set architecture and its major components.
  • Recognize the importance of instruction formats and addressing modes in computer design.
  • Construct a data path composed of registers, function unit and a register file. (Student outcome: 2)
  • Understand algorithms for performing common arithmetic operations (such as multiplication and division) and their hardware implementation for the design of ALU. (Student outcome: 2)
  • Translate fractional numbers to/from IEEE standard format and understand floating-point operations such as addition, subtraction, multiplication and division. (Student outcome: 2)
  • Select and apply the most appropriate performance metric when evaluating a computer system. (Student outcome: 2)
  • Understand and analyze the implementation of a pipelined machine. (Student outcome: 2)
  • Identify and propose solutions to structural, data and control hazards in a given architecture. (Student outcome: 2)
  • Identify and propose branch prediction techniques in a given architecture. (Student outcome: 2)
  • Compare alternative architectural implementations (such as VLIW, Superscalar processors). (Student outcome: 2)

Topics to Be Covered

  • Computer performance metrics and Amdahl's law.
  • Digital systems design principles and techniques.
  • The instruction set architecture, instruction formats and addressing modes.
  • Computer arithmetic (Fast adders, multiplication and division algorithms, floating-point numbers).
  • Processor data path design and control unit design.
  • Introduction to pipelining and pipelined processor design.
  • Pipelining hazards: structural, data and control and their solution techniques (data forwarding, register renaming and branch predictors).
  • Instruction Level Parallelism (ILP) techniques (VLIW and Superscalar processors).