ECE3055 - Computer Architecture and Operating Systems

Instructor

Dr. George F. Riley
Office: CoC 351
Office hours: MWF 11-12 and MWF 2-3pm in CoC 351
Email: riley@ece.gatech.edu

Course Summary

ECE3055 is designed to give students a detailed understanding of computer architecture, and a basic understanding of the functions and design of computer operating systems. The hardware architecture portion of the class focuses on the MIPS chip design and implementation, which are discussed in detail. However, the principles covered are applicable to most modern architectures. The operating systems portion of the class discusses basic functions that must be provided by all operating systems, without covering any one specific OS in detail.

Teaching Philosophy

The class web page will give an description of the material for each lecture. The class lectures will cover the material in a discussion format, where the instructor will explain how things are done, and then we will discuss in detail why things are done in certain ways. I encourage (and expect) you to participate actively in the learning process. In particular, I welcome your comments and questions as we cover material in class. One-way lectures quickly becoming boring, both for you and for me. Also, I have found that students often learn more from other students comments than from the instructor! By asking lots of questions, your understanding of the material will be deepened significantly, and the course will be much more fun!

Teaching/Learning Goals

The purpose of this course is for you to understand the fundamentals of what is happening in inside a computer when you as a computer user ask the computer to do something for you. Very few of us will actually design or implement an computer system in our careers, but a good solid understanding of what is going on inside the computer is invaluable in overall system design. In particular, we will learn and understand (at a minimum):

Textbooks (Required)


Getting Help

There will be four teaching assistant for this course. They will do all grading of lab projects and should be your first point of contact when you have questions about assignments or grading.


TA Office Hours

The office hours for the 3055 Teaching Assistants will be in the ECE computer labs on third floor of College of Computing. Hours for each TA are in the table below.


Mon Tue Wed Thu Fri
10-11 AM


11-12 PM


12-1 PMWY



1-2 PMWY

WY
2-3 PMMVWYMVWYMV
3-4 PMMVWYMVWYMV
4-5 PMMVWYMVWYMV
5-6 PM

MVWY
6-7 PMSSSSSS
7-8 PMSSSSSS
8-9 PMSSSSSS


Grading

Six Projects (Project 5 counts DOUBLE!) 36%
Midterm 1 15%
Midterm 2 15%
Final 24%
Class Participation 10%
Total 100%

Syllabus

Day Month Date Topic Reading
Mon Jan 5 Introduction, Overview, Instruction Set Architecture PH, Ch1 and Ch3
Wed Jan 7 Instruction Set Architecture (cont) PH Ch3
Fri Jan 9 Using the SPIM MIPS simulator



SPIM, the MIPS Simulator (Linux Source)



SPIM, the MIPS Simulator (Windows Zip File)



MIPS Instruction Summary



Sample SPIM/MIPS Program
Mon Jan 12 Design of a simple ALU PH, Sec 4.5, pp 230-241



Project 1 Assigned



Project 1 Skeleton Program



Project 1 Expected Results



Project 1 Expected Results (Better)



Project 1, Solution with only one branch
Wed Jan 14 Single Cycle Datapath PH, Sec 5, pp 338-372



Interesting Reading, Pentium Floating Point Divide Bug PH, Sec 4.10 pp 305(last para)-308
Fri Jan 16 Multi-Cycle Datapath PH, Sec 5, pp 377-398
Mon Jan 19 HOLIDAY! No Class
Wed Jan 21 INSTRUCTOR OUT OF TOWN! No Class
Fri Jan 23 Pipelining PH, pp434-504



Lab2 Assignment



Lab2 VHDL Files



Lab2 VHDL Files (revised)
Mon Jan 26 Pipelining (continued)
Wed Jan 28 Memory PH pp 540 - 579
FriJan30 Memory (continued)
Memory Feb 2 Holiday. No Class
Wed Feb 4 Memory
Fri Feb 6 Memory
Mon Feb 9 LAB Assignment 2 DUE
Wed Feb 11 MIDTERM EXAM 1
Fri Feb 13 Memory
Mon Feb 16 Virtual Memory



Lab3 Assignment



program-data-hazard.mifMIF file for part 1 program



program-branch-hazard.mifMIF file for part 2 program



Lab2 Solution, for Lab 3 starting point
WedFeb18 Virtual Memory
Fri Feb 20 Virtual Memory (continued)
MonFeb23 Operating Systems Overview Silberschatz-Galvin, Ch 1
Wed Feb 25 Operating Systems Overview (continued) Silberschatz-Galvin, Ch 2
Fri Feb 27 Operating Systems Overview (continued) Silberschatz-Galvin, Ch 3
Mon Mar 1 Threads and Thread Synchronization testpt0.c testpt1.c testpt2.c
Wed Mar 3 Threads and Thread Synchronization (continued) Silberschatz-Galvin, Ch 4 and 5
Fri Mar 5 Threads and Thread Synchronization (continued)
Mon Mar 8 SPRING BREAK!
Wed Mar 10 SPRING BREAK!
Fri Mar 12 SPRING BREAK!
Mon Mar 15 Lab4 Assignment Silberschatz-Galvin, Ch 7, pps 239-241



dining-c.tar.gz



dining-java.tar.gz
WedMar17 Synchronization Algorithms Silberschatz and Galvin, Chapter 7
FriMar19 Leslie Lamport's Bakery Algorithm



Sample Java Threads Program Testjt0.java Philosopher.java
MonMar22 Barriers BuggyBarrier BuggyBarrier2 Sense-Reversing Barrier
Wed Mar 24 Midterm Exam Review
Fri Mar 26 MIDTERM EXAM 2
MonMar29 File Systems
WedMar31 File Systems Continued
FriApr2 Lab 5/6 Assigned Due April 18, 2003



lab5.tar.gz



lab5-java.tar.gz
MonApr5 File Systems Continued
WedApr7 File Systems Continued



Java Byte Array Conversion



Java Directory Entry class
FriApr17 Input-Output Systems Silberschatz and Galvin, Chapter 12
MonApr19 Managing Secondary Storage Silberschatz and Galvin, Chapter 14
WedApr21 The Banker's Algorithm Silberschatz and Galvin, Chapter 8, pp 299 - 303
FriApr23 FINAL EXAM REVIEW

Grades

Student ID (anonymous)ParticipationLab 1Lab 2Lab 3Lab 4Lab 5Lab 6Midterm 1Midterm 2Final ExamFinal AvgGrade
12806.470
69708155.1D
2509101010
68858778.2B
3260000





41010101089.4
931059095.4A
510107999
701059089.7A
66101010109.4
92859390.2A
7101091010.410
991058897.4A
8690000
15504632.2F
910107101010
68989591.9A
1084.579810
931009588.9A
11093.5471.6
76807356.9D
1210125101110
901059596.9A
13101065100
85756367.7C
141010971010
971059997.7A
1510106.41001
73958773.1C
16910108.505
951007278.6B
175101041
52754645.3F
1810977910
87949390.7A
19910891010
741008489.5A
2010100099.6
731057677.9B
2110105.47105
9310510089.1A
228936010
56858371.9C
2310111010106.4
641008487.0B
24109109109.4
93806385.2B
251096.59.5106
931007986.1B
26101010109.7510
1001009498.4A
27109101099.4
921059997.4A
281092008
69658266.0C
2910128101111
921009298.7A
30101079.5106
711009286.8B

Contact Information:

riley@ece.gatech.edu
School of Electrical and Computer Computing
Georgia Institute of Technology
Atlanta, GA 30332-0250

Last Modified: Jan 5, 2004