CENG 311 COMPUTER ARCHITECTURE
2018-2019 Fall Semester

A.1. Homepage: http://www.iyte.edu.tr/~tolgaayav/courses/ceng311
A.2. Lecture: Wednesday 9:45 - 12:30 (Course), Thursday 8:45 - 10:15 (Lab)
A.3. Credits: 3+2
A.4. Instructor: Assoc. Prof. Tolga AYAV, Ph.D. (Telephone: 750 7878)
A.5. Syllabus
A.6. Lab Assistants: Didem Genē, Orhan Bayraktar

B.1. Objective of the Course:

Basic computer organization and design. MIPS architecture. Microprocessor design and implementation using FPGAs. VHDL. Assembly. Pipelining and other performance issues.

B.2. Prerequisites:

CENG214 Logic Design.

C.1. Course Contents:

  1. Introduction to Computer Architecture and Basic Computer Organization (Lab: Introduction)
  2. Arithmetic for Computers (Lab: Fundamentals of VHDL language)
  3. MIPS architecture and Assembly (Lab: VHDL programming and simulation)
  4. Design of Dedicated and General-Purpose Datapath (Lab: Datapath implementation and simulation with Modelsim - I )
  5. VHDL, Introduction to FPGA (Lab: Datapath implementation and simulation with Modelsim - II )
  6. Design of a very simple microprocessor: µ311 (week 1) (Lab: Implementation and integration of µ311 units)
  7. Design of a very simple microprocessor: µ311 (week 2) (Lab: Testing µ311 microprocessor)
  8. Design and Connection of I/O units, Interrupt Mechanism (Lab: Application of interrupt mechanism with µ311)
  9. Pipelining, µ311 Assembly (Lab: Development of assembler and linker for µ311)
  10. 8086 Based Computer Design (Lab: 8086 Assembly Programming - I )
  11. 8086 Assembly Programming - I (Lab: 8086 Assembly Programming - II )
  12. 8086 Assembly Programming - II (Lab: 8086 Assembly Programming - III )
  13. Segmentation and Paging, Real and Protected modes, Memory Organization (Lab: Fundamentals of Kernel Design)
  14. Multitasking (Lab: µOSx311 Micro-Kernel Design)

C.2. Course Schedule:

3/10: Lecture 1 - Introduction
10/10: Lecture 2 - VHDL Programming Language
17/10: Lecture 3 - MIPS architecture and Assembly
24/10: Lecture 4 - Data Path Design
31/10: Design of µ311 microprocessor-1
7/11: Design of µ311 microprocessor-2
14/11: Control Unit Design
21/11: µ311 I/O communication
28/11: µ311 Interrupt mechanism
5/12: 80x86 Architecture
12/12: Assembly Programming in 80x86/Linux - 1
19/12: Assembly Programming in 80x86/Linux - 2
26/12: Kernel Development for 80x86
2/1/2019: Preliminaries of kernel µOSx311

 

D. Lecture Notes:

Lecture -1 Introduction

Lecture -2 Intro to VHDL

Lecture -3 Datapath Design

Lecture -6 I/O Communication

Design Notes of Microprocessor µ311

Assembler for µ311
Executable: as311 (for Linux 64 bit) Source: as311.c

80x86 architecture (by Suresh.P, MEA Engineering College)

Lecture - 8-9-10 80x86 Assembly Programming on Linux

Kernel Development for 80x86

 

E. Grading:

Written Midterm Exam I: %30
Written Final Exam: %45
Laboratory work: %25

Old exam questions: 2013, 2014 , 2015Final , 2013 Final with answers

Midterm Results (New)

 


F. Books:

David A. Patterson, John L. Hennessy. Computer Organization and Design . 3rd Ed. 2005. Morgan Kaufmann Pub


G. Laboratory:

Date Work Presentation to instructor
4/10 Presentation of the lab environment and tools. Read the feuille.  
11/10 Implementation of the fundamental parts: Full adder, 8 bit FA  
18/10 ALU Design. Read the feuille.
 
25/10 DataPath Design (RF,register,buffers,addsub,etc.) Read the feuille.  
1/11 Simulation Datapath simulation
8/11 Control Unit  
15/11

Midterm I

 
22/11 Assembling datapath and control unit design  
29/11

Completing the processor with datapath and control unit (upabs3.vhd=dp.vhd+cu.vhd).

Setting up a test bench with upabs3, clock circuit and 1k ROM (testbench.vhd=clock.vhd+upabs3.vhd+ROM.vhd).

Simulation of the processor. Put this simple program into the ROM:

movi a, 82H
mov b, a

Demonstrate that your microprocessor executes the above program.

6/12

Adding a RAM to the configuration (testbench.vhd=clock.vhd+upabs3.vhd+ROM.vhd+RAM.vhd).

 

13/12 Interrupt mechanism. (Connect a ROM as a program memory and a 1k RAM for ISRs and stack. You can use partial address decoding)

20/12   Demonstrate your project with the assembly program provided by the lab instructor during the lab session.

Simulation and Testing of your microprocessor.

27/12 Assembly Programming - Linking C and Assembly files . (Read the feuille.)

Demonstrate your program

03/01/2019

OSx311. Download the initial kernel. Read Lab work here.

 
   

 


H. Bibliography:


Brey, B.B. (1991). The Intel Microprocessors. 3rd Ed. New York and Toronto : Macmillan.
Mano, M. (1988). Computer Engineering: Hardware Design. Englewood Cliffs, NJ:  Prentice-Hall .
Tanenbaum, A.S. (1999). Structured Computer Organization. 4th Ed. Englewood Cliffs, NJ:  Prentice- Hall.
Herman Lam, John O'Malley, Fundamentals of Computer Engineering: Logic Design and Microprocessors, Wiley.
Enoch O. Hwang, Digital Logic and Microprocessor Design with VHDL.


I. Materials and Useful Links

There might be some other materials in password protected area . Please ask the instructor for the username and password of this course.