TU Delft
print this page print this page     
2016/2017 Electrical Engineering, Mathematics and Computer Science Bachelor Electrical Engineering
Computer Architecture and Organisation
Responsible Instructor
Name E-mail
S. Hamdioui    S.Hamdioui@tudelft.nl
Name E-mail
Dr.ir. Z. Al-Ars    Z.Al-Ars@tudelft.nl
X. van Rijnsoever    X.vanRijnsoever@tudelft.nl
Contact Hours / Week x/x/x/x
0/0/4/0 hc; 0/0/4/0 prac
Education Period
Start Education
Exam Period
Course Language
Expected prior knowledge
Digital systems or equivalent course on logic design
Basic concepts of programming in C
Course Contents
This course provides an overview of the architecture and organization of a computer hardware system and the important principles of computer organization. In addition, the course addresses also object-oriented programming techniques. The course demonstrates the interrelation between hardware and software, and illustrates how the computers operates and how they can be programmed, with the emphasis on processor design and implementation.

Topics discussed are Computer system overview, Measuring and comparing performance, ISA: instruction set architecture (MIPS, x86, 8051, JVM), Computer arithmetic, processor implementation, fast processor implementation, Memory hierarchy and caching, Interfacing, Modern architectures and organizations (superscalar, VLIW/IA64/Itanium), etc.

Study Goals
The main aims of the course are:
1. Understand the basics of computer abstraction and performance: what are the different computers? How to evaluate performance? What is the impact of technology scaling? Etc.
2. Understand and use the computer language: What is an ISA and how to write and extend it? How does it support procedures in hardware? Impact of language selection of hardware design? Etc.
3. Understand and perform computer arithmetic: how to perform addition, subtraction, multiplication and division for integers and floating point? What is the impact of the algorithm on hardware implementation? Etc.
4. Understand and use the principle and techniques used to design a processor: how does hardware execute instructions? What are the performance characteristics and limitations? How to accelerate the performance? Etc.
5. Understand the memory hierarchy and its impact on performance: What is the memory hierarchy? What are the characteristics and limitations of each hierarchy level? What are the different alternatives to improve the performance? Etc.
6. I/O systems and their interaction with the processor: what are the different I/O? How does the communication take place? How are the dependability, reliability and availability requirements for each I/O? etc.
7. Understand and describes the trends and the challenges in the field of computer architecture.
8. Use object-oriented programming techniques in C++ such as: classes and objects (definition and implementation) and inheritance (types, multiple inheritance, redefinition).
Education Method
Lectures + lab
Literature and Study Materials
Lecture Notes
Computer Organization & Design: The Hardware/Software Interface, by David A. Patterson &John L. Hennessy; 5th Edition; Morgan Kaufmann
E-book "C++ Language Tutorial," Juan Soulie, www.cplusplus.com/doc/tutorial
The assessment consists of the following parts:
7 Lab assignments: Pass/Fail
5 homework: HW1, HW2, HW3, HW4 and HW5 (weekly).
1 written exam: WE

Final grade of the first exam
If [(Lab passed) AND(HW>=6)] then:
'Finale grade' = max( (0.20*HW + 0.80*WE), WE)

Where HW is the weighted average grade of all homework;
HW = (HW1 + HW2 + HW3 + 2*HW4 + 2*HW5)/ 7.
WE is the grade of the written exam.

Final grade of retake exam:
If (Lab passed) then:
'Finale grade' = WE

Name E-mail
Dr.ir. Z. Al-Ars    Z.Al-Ars@tudelft.nl