Computer Architecture (and Low-Level Programming)

Syllabus and Detailed Description


Topics Covered in the Course

  1. Review of basic architecture
  2. Machine and assembly languages (generic)
  3. The process of assembly and linking
  4. Special assembly language programming issues
    1. Parameter passing: assembly language and "external"
    2. Return addresses and co-routines
    3. Traps and interrupts: mechanism and handling
  5. Architecture design considerations - CISC vs. RISC
  6. Architecture - the RISC approach
    1. MIPS organization and architecture
    2. MIPS assembly language
    3. The arithmetical and logical operations unit (ALU)
    4. Advanced data formats: floating point standards
    5. The control unit and the datapath
    6. Processor bus interface
    7. Control unit: Microprogramming
  7. (Introduction to) issues in modern architectures
    1. Associative memory and caches
    2. Address mapping (paging, segmentation, virtual memory)
    3. Pipelining
    4. Co-processor and multiprocessor systems
  8. Special miscellaneous topics
    1. Operating system interface: traps and interrupts *
    2. Access to IO devices: display, keyboard, real-time clocks, DMA *
    3. Communications (serial and parallel), simple error detection and correction codes (parity, Hamming), handshakes.

    Note: items marked with an asterisk (*) will be covered in exercise sessions.

    Course Requirements

    1. Prerequisites: Digital Systems (361-13591), Introduction to Computers, Systems Programming.
    2. Credits: 3 (for 2 lecture hours, 2 exercise sessions)
    3. Grading (approximate): 70% final exam, 30% homework assignments.

      No cheating! You are required to get a non-zero grade on all assignments in order to pass the course. An unsubmitted assignment gets 1/100. An assignment too similar to someone else's assignment (i.e. cheating) gets you 0/100 and no credit in the course.

    Sourcebooks and Written Material

    1. D. A. Patterson and J. L. Hennessey, Computer Organization & Design: The Hardware Software Interface, Morgan Kauffman, second edition 1998.
    2. IBM PC Assembly Language Programming, Peter Abel, Prentice Hall (second edition 1991)
    3. Advanced Microprocessors, Daniel Tabak, McGraw-Hill Inc., 1991.

    Back to BGU CS HomePage