CSE 604 Computer Architecture (3 credits)

Catalog description:

Principles of Von Neumann computer architecture. Data representation and computer arithmetic. Memory hierarchy. CPU structure and instruction sets. Assembly language programming to better understand and illustrate computer architecture concepts. Performance considerations and alternative computer architectures.

Prerequisites:

Graduate standing in the Certificate in Software Development program, or permission of instructor. 

Objectives:

  • Describe basic concepts of a computer system.
  • Describe the organization and structuring of the major hardware components of computers.
  • Describe basic computer architecture.
  • Describe the interrelationships between a computer's architecture and an assembly language executed on the computer.
  • Describe the interrelationships between a machine-level language and higher-level languages.
  • Describe the assembly process.
  • Program effectively in an assembly language.
  • Understand the basic functions of an operating system.

Required topics (approximate weeks allocated):

  • Overview of computer architecture (1)
    • components of a computer
    • registers (instruction register, instruction pointer, memory address register, etc.) and their uses
    • hardware/software interface concepts: operating systems, hierarchy of language translators
    • historical perspective
  • Representation of numbers and arithmetic for computers (1.5)
    • number systems (decimal, binary, hexadecimal, octal, etc.)
    • one's and two's complement notation
    • representation of integer numbers
    • representation of floating point numbers
    • computer arithmetic using two's complement notation (multi. and div. are optional)
    • floating point arithmetic (optional)
  • Machine instructions and memory addressing modes (3)
    • stored program concept
    • instructions formats, opcode and operands
    • addressing modes
    • phases of instruction execution
    • virtual memory and physical memory connection
    • measuring performance
  • Assembly process (3.5)
    • symbolic machine language to machine language translation
    • passes and fundamental data structures (symbol table and machine operation table) of an assembler
    • assembler directives
    • program debugging and tracing in assembly language programming
    • linking and loading processes
  • CPU structure (3)
    • decomposing machine instructions into smaller (micro) instructions
    • use of system registers by micro instructions
    • microprogramming
    • interrupt handling
    • reduced/complex instruction set computer concepts
  • Pipelining concepts (1)
    • concepts
    • synchronization of pipeline stages
    • measuring performance
  • Large/parallel processors (1)
    • categorization of computers: SISD, SIMD, MISD, MIMD
    • processor examples
    • network connection