EECE 337 - Introduction to Computer Architecture and Organization

Texts:

Goals: This course builds on previous assembly language programming experience, high-level language programming experience, and a basic understanding of computer hardware to give a junior-level student a more complete understanding of how all the levels of computer systems work together.

Topics:

  1. Introduction: Languages, virtual machines, hierarchical and modular design, multi-level computer concepts.
  2. Computer System Organization: Processors, memory, input/output, networks and distributed systems.
  3. Processor Design: Extend the simple computer designed in EECE238L and add simple microprogramming. Details of a specific processor.
  4. Conventional Machine Level: Instruction types, addressing modes and instruction formats, extend the knowledge of machine language.
  5. Operating System at the Machine Level: Virtual input/output, concurrency, virtual memory, interfacing assembly language to the operating system.
  6. Compilation/Assembly Process: Linking, loading, symbol tables, and basic data structures.
  7. Multi-level Machines: Program portablility and design strategies.

Computer Projects: There will be several programming projects in assembly language and C.

Additional Readings: