Computer Architecture

Semester A 2003-2004 (Fall 2003)

(* UNDER CONSTRUCTION *)

BGU Computer Science Department


Description of the course

It is extremely important for a student of computing to understand some of the machine-dependent aspects of computers, and how they might impinge on embedded software, and on systems software. This course covers the ground from a subsystem-level description of computers (also known as "computer organization"), through programmer-visible aspects of the machines ("computer architecture"), to assembly language issue. As such, the course is a bridge between the hardware and assembly language courses on our curriculum (Digital Systems and Introduction to Computers), and the pure programming courses, such as Systems Programming and Operating Systems.

As one of the goals of the course is to enable the student to quickly learn to use any newly encountered architecture, we focus mostly on principles, rather than on a particular machine. Nevertheless, as a case studies (and in order to provide hands-on experience), the course will discuss one CISC machine (Intel series 80X86). Machine-specific assembly language, and advanced issues in low-level programming will be the main topic of the exercise sessions. Special lab sessions on interaction of low-level programs with the LINUX system are a new feature of this course.

At and after the turn of the millenium, special performance enhancments, once the province of mainframe or supercomuters, have become commonplace, even in cheap personal computers. Thus, the course also focuses on such aspects not covered in the prerequisite course, such as pipelining, and how they affect programmer-visible aspects of the machine.

Administrative Details and Online Material

  1. Course Reference: (201-13041) - Semester A 2003-2004 (Fall 2003).
  2. Credits: 3 (for 2 lecture hours, 2 exercise/lab sessions)
  3. Class Hours:
  4. Instructor: Dr. Eyal Shimony.
  5. Teaching assistants:
  6. Online course material.
    1. Syllabus and requirements
    2. Lecture sessions
    3. Exercise and lab sessions
    4. Practical session web site and bulletin board
    5. Homework exercises
      • Exercise 1: simplified RPN complex number calculator. Due November 27, 2003.
      • Exercise 2: co-routines and system calls, Due December 25, 2003.
      • Exercise 3: merging ELF executable files, Due January 15, 2004. Grace period: can submit until Tuesday, January 20.
        1. Further information about this assignment.
        2. Additional bonus tasks in assignment 3 (for extra credit in final grade):
          • Write a program (in C or assembley - not PIC) that checks if the code of program A appears in an executable file B.
          • Write a program (again, in C or assembley) that REMOVES a copy of A from executable B and RESTORES IT to normal operation.

Back to BGU - CS HomePage