Computer Architecture

Semester A 2005-2006 (Fall 2005)


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 issues. 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. In particular, a special new feature of this course examines malicious programming and how understanding machine code helps us prevent it or detect it. We will examine basic worm-holes, and executable virus operation techniques, and how to help prevent their attacks.

At and after the turn of the millenium, special performance enhancments, once the province of mainframe or supercomputers, 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 2005-2006 (Fall 2005).
  2. Credits: 2.5 (for 2 lecture hours, 1 exercise/lab sessions)
  3. Class Hours:
  4. Exercise and lab sessions: Weeks 2/3, 6/7, and 9/10 will have 2-hour lab sessions (starting at the same time as the respective exercise session) instead of exercise sessions, and will be held in the 3rd floor labs in building 34, rather than the designated exercise classroom. The lab week are split according to group, thus, e.g. if your group visits the lab on week 2, then you have week 3 off (and vice versa).
  5. Instructor: Prof. Eyal S. Shimony.
  6. Teaching assistant:
  7. 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 (details will appear):
      • Exercise 1: an octal number calculator.
      • Exercise 2: TBA
      • Exercise 3: TBA

    Back to BGU - CS HomePage