CENG 321 Computer Architecture



Fatih University, Computer Engineering Department
Fall Semester 2003
Monday 13:00 - 17:00, E303

Instructor: Halûk Gümüşkaya Teaching Assistant: Engin Tozal
Office: EA301 Office: .....
Office Hours: Mon, Wed, Thur, 13:00-14:00 Office Hours: ...
Office Phone: 0.212.889 0810-1036 Office Phone: 1027
E-mail: haluk@fatih.edu.tr E-mail: engintozal@fatih.edu.tr
Mostly Static Information: Mostly Dynamic Information:
bulletCourse Description
bullet Lecture Announcements
bullet Prerequisites

Course Materials

bullet Lecture Schedule

Homeworks, Exams and Solutions

bullet Textbooks


bullet Grading
bullet Grades
bullet Academic Integrity

Course Description

Short Description:
The design of computer systems and components. Processor design, instruction set design, and addressing; control structures and microprogramming; memory management, caches, and memory hierarchies; interrupts and I/O structures.

Long Description:
This is a course on the organization and architecture of computer hardware using the "layered" approach, with emphasis on CPU (central processing unit) design and programming. After a crash course on logic design, we begin by looking at computer architecture at the digital logic layer. At this layer, we develop the basic components and tools required to design a CPU. The second layer then explores the "micro" or interior organization of the CPU using the tools developed in the first layer. Our study of this second layer will center around a specific example of a microarchitecture. We'll then move on to the "software" layer, in which the CPU is programmed to interact with the rest of the computer system. The emphasis of this layer will be on assembly language programming. We will be writing several programs on IBM PC compatibles using Intel "x86" assembly language. Finally, we shall explore how CPU design is related to higher-level programming languages and issues. This will involve a discussion of the RISC v.s. CISC architecture controversy. Advanced topics will be covered as time allow.

Important Announcement for This Semester:
The descriptions given above are mainly for coming years. The course descriptions of CENG 252 Computer Organization and CENG 321 Computer Architecture were changed this semester, so we are in the transient year for these courses.

Starting from 2004, CENG 252 will mainly teach ISA (Instruction Set Architecture) level. That course will be an introduction to computer organization using assembly and machine language. In CENG 252 the hardware and software components of computers, number representation, computer arithmetic, instruction sets, I/O interrupts, and programming interrupts are presented. Projects involve detailed study and use of a specific computer hardware and software system.

In this semester mainly the topics of new CENG 252 will be presented using Intel x86 microprocessor family. The Intel x86 microprocessor family hardware and software architecture will be introduced. The emphasis of the course in this year will be on x86 assembly language programming and x86 hardware architecture.


EE 273 Fundamentals of Logic Design, CENG 252 Computer Organization, CENG 101 Computer Programming I or CENG 102 Computer Programming II.

Lecture Schedule

Week Topics Covered


Course Overview , Review of Microprocessor Based Systems (1): Memory Basics and Memory System Design


Review of Microprocessor Based Systems (2): Microprocessor Architecture and Operation


Introduction to Intel 80x86 Architecture: External Architecture of 8088/8086, Internal Architecture, Memory Architecture, I/O Operations


Review of what we have learned so far and introduction to assembly programming tools


Elements of Assembly Language Programming: Assembly Language Statements, How to Assembly, Link, and Run a Program, Where are the Operands?: An Introduction to Addressing Modes


Addressing Modes: 32-Bit and 16-Bit Addressing, Simple Addressing Modes, Direct Addressing Mode, Register Indirect Addressing Mode, Based and Indexed Addressing Modes, Based-Indexed Addressing Mode


Basic Instructions: Data Transfer Instructions, Integer Addition and Subtraction, Multiplication, Division, Addition and Subtraction of Larger Numbers


Review before the midterm exam.


Branching and Looping: Unconditional Jumps, Conditional Jumps, Compare Instructions and If Structures, Implementing Loop Structures, For Loops in Assembly Language, Arrays


Midterm Exam I (postponed exam)
11 Midterm Exam I solutions and Introduction to Procedures
12 Procedures (1): The 80x86 Stack, Procedure Body, Call and Return, Parameters and Local Variables
13 Procedures (2): Call and Return, Parameters and Local Variables
14 Midterm Exam 2


The Road Map of CENG 252 Computer Organization and CENG 321 Computer Archtitecture

CENG 252

Introduction to Computer Systems Organization

CENG 321
CENG 252

Digital Logic Level
- Quick Overview of Combinational and Sequential Circuits and Logic Design
- Registers and Counters
- Memory
- Register Transfers and Datapaths
- CPU Chips and Buses

CENG 321

Microarchitecture and Microprogramming: The Interior of the CPU
- An Example Microarchitecture
- Microinstruction sequencing and Microprogramming
- Other microarchitecture issues (interrupts, pipelines)

CENG 252

Macroarchitecture: Instruction Set Architecture Level and Assembly Language Programming
- Overview of the ISA Level
- Data Types
- Instruction Formats
- Addressing
- Instruction Types
- Flow of Control
- Interrupts and context switches
- RISC, CISC design choices

CENG 321

Operating Systems Level
- Virtual Memory
- Virtual I/O Instructions
- Comparison of Operating Systems


There is no single textbook that adequately covers such a diverse range of topics that are taught in this course. Buying multiple textbooks is clearly not very appealing financially. I therefore will try to prepare my own lecture handouts and slides available as course notes and they will be available at the photocopy center or on the web site of the course. Here are some textbooks that are helpful for various parts of the course:



Introduction to 80x86 Assembly Language and Computer Architecture, Richard C. Detmer, Jones & Bartlett Pub, 512 pages, 2001.

Recommended Books


Structured Computer Organization, Andrew S. Tannenbaum, Prentice Hall, 1998.


Computer Organization and Design: The Hardware/Software Interface, John L. Hennessy & David A. Patterson, Morgan Kaufmann Publishers, Inc., 1998.


Computer Organization & Architecture: Designing for Performance, William Stallings, Prentice Hall, 2003.


Computer Organization, Carl Hamacher, Zvonko Vranesic, and Safwat Zaky, 5th Edition, Mc Graw Hill, 2002.


Computer Systems: A Programmer's Perspective, R. E. Bryant and D. R. O'Hallaron, Prentice Hall, 2003.


Logic and Computer Design Fundementals, 2nd Edition, M. Morris Mano, C. R. Kime, Prentice Hall, 2001.


Computer System Architecture, M. Morris Mano, Prentice Hall, 1992.


Mikroişlemciler ve Bilgisayarlar, 3. Basım, H. Gümüşkaya, ALFA, 2002.

Grading (tentative)
20 % : Homework Assignments
25 % : Midterm 1
25 % : Midterm 2
30 % : Final Exam (a comprehensive exam which covers all lectures at the end of the course)

Homework: There will be homework in every 2 or 3 weeks. The purpose of the homework is to give you a chance to exercise the knowledge gained from the recent class material. Some exam questions will closely resemble homework problems. Most homework problems will come from the main text book.

Attendance: Attendance is important in order to learn the topics in a timely manner. Attendance will be forced by taking attendance and by making quizzes at random times.

Quizzes: There will be short quizzes at random times. We may not inform you about the quizzes. A quiz may be done at any time during a lecture period.

Midterm Exam: There will be one midterm exam that will be given around the mid of the semester.

Final Exam: There will be one final exam that will be given during final exams period of the semester.

Makeup Exam: Depending on the need (for officially reported or extraordinary cases) I may make a makeup exam. But I should warn you that makeup exam will be much more difficult than the other exams in order to provide fairness for students who work on time and take the exam on time, and discourage students from unnecessarily omitting the exams.

Academic Integrity

We will be very careful in grading the projects, homeworks, exams so that everybody gets the grade that he/she deserves. Copying will not be tolerated and will be checked and punished rigorously.

The Fatih University has a very strict policy on academic dishonesty. All work on homeworks and examinations must be strictly individual.  Violations of this policy will result in an F grade for the class and may result in suspension/expulsion from the university.