Double Degree in International Computer Engineering and Management of Business and Technology

Computer Architecture

Description
This unit describes the techniques involved in computer architecture. From a basic processor, the techniques that increase its performance are introduced until an up-to-date processor is reached.
Type Subject
Tercer - Obligatoria
Semester
First
Course
4
Credits
5.00
Objectives

The graduates in our Computer Architecture program will learn and develop the knowledge and abilities listed below:
1. To have the minimum knowledge to understand how instructions are executed in a processor so that later they can understand the possible points of improvement.
2. Design and use different parts of a processor to reach the established goals and to analyze and interpret the results.
3. Identify, formulate and resolve design problems of a processor in a multidisciplinary environment either individually or with a group.
4. Understand the impact of computer architecture in society and the importance of working in a professional and ethically responsible environment.
5. Communicate efficiently both orally and written.

Contents

1. Introduction to computer architecture
1.1. Historical perspective
1.2. Methods to increase performance
1.3. RISC and CISC architectures
1.4. Parallel execution computers
1.5. Other classification of architectures
1.6. Definitions and measures
1.7. Evolution of the architecture, technology and performance
2. Pipelined processors.
2.1. Basic principles
2.2. Classification of pipelined processors
2.3. Limits of pipelining
2.4. Managing exceptions and interruptions.
2.5. Floating-Point operations
2.6. Multicycle instructions
3. Dynamic scheduling of instructions
3.1. Introduction
3.2. Scoreboarding
3.3. Tomasulo
4. Advanced computer architecture topics
4.1. Cache memories
4.2. Speculative execution
4.3. Branch prediction
4.4. Memory disambiguation
5. Two commercial processors (Alpha 21264 and Pentium 4)
6. Microarchitecture-conscious programming
6.1. Interaction program/code generator/architecture
6.2. Impact in performance
7. Advanced architectures
7.1. Multithreading processors
7.2. VLIW processors
7.3. Vector processors
7.4. Multiprocessors and SIMD
7.5. Embedded processors

Methodology

The unit contains some theory lectures as well as some group work.

Evaluation

The course assessment is made at the end of semester by an exam. There is another exam in July. The course can be followed in the form of continuous assessment through the completion and delivery of the proposed work in the virtual campus.
In this case the final grade of the course is the greatest of: The final exam or (60% of the final exam + 40% of the continuous assessment), if the final exam grade is greater or equal than 3.5. Otherwise, the final grade of the course is the exam.

Evaluation Criteria

The graduates in our Computer Architecture program will learn and develop the knowledge and abilities listed below:
1. To have the minimum knowledge to understand how instructions are executed in a processor so that later they can understand the possible points of improvement.
o The graduate has to show that it knows all the stages of execution of an instruction [A][F][G].
o The graduate has to show that he/she can introduce improvements in the stages and that the whole keeps working [A][F][G].
2. Design and use different parts of a processor to reach the established goals and to analyze and interpret the results.
o The graduate has to show that in understands the functionality of each part of the processor [A][F][G][I].
o The graduate has to show that he/she can foresee the results of changes introduced in the configuration of some parts [A][F][G][I].
3. Identify, formulate and resolve design problems of a processor in a multidisciplinary environment either individually or with a group.
o The graduate has to show that he/she can understand and solve different design an alternatives alone an in a group [A][F][G][I].
4. Understand the impact of computer architecture in society and the importance of working in a professional and ethically responsible environment.
o The graduate has to show that he/she understands the social implications (economy, social inequalities and environment) of computer science and especially of processors. [I]
5. Communicate efficiently both orally and written.
o The graduate has to show that he/she can make both an oral or written communication over computer architecture [A][F][G][I].

Basic Bibliography

[1] J.L.Hennessy and D.A.Patterson, Computer Architecture: A Quantitative Approach, Fourth Edition, Morgan Kaufmann Publishers, 2007.
[2] D.A.Patterson and J.L.Hennessy, Estructura y diseño de computadores: La interfaz hardware/software, Cuarta edición, Editorial Reverté, 2011.
[3] D.A.Patterson and J.L.Hennessy, Computer Organization and design: The Hareware/Software Interface, Third Edition, Morgan Kaufmann Publishers, 2007.
[4] J.P.Shen and M.H.Lipasti, Modern Processor Design, Fundamentals of Superscalar Processors, McGrawHill, 2005.