COMPUTER ENGINEERING (ENGLISH, PHD)
PhD TR-NQF-HE: Level 8 QF-EHEA: Third Cycle EQF-LLL: Level 8

Course Introduction and Application Information

Course Code Course Name Semester Theoretical Practical Credit ECTS
CMP5203 High Performance Computer Architecture Fall 3 0 3 12
This catalog is for information purposes. Course status is determined by the relevant department at the beginning of semester.

Basic information

Language of instruction: English
Type of course: Departmental Elective
Course Level:
Mode of Delivery: Face to face
Course Coordinator : Assist. Prof. ECE GELAL SOYAK
Course Objectives: The course aims to provide students with a comprehensive understanding of modern computer architecture and systems. Students will explore fundamental topics such as computer organization, instruction set design, and memory system design, while gaining insights into advanced techniques like pipelining, cache coherence protocols, and instruction-level parallelism. The course will also cover system-level concepts, including the design of storage subsystems, and will provide practical exposure through case studies on the design of modern microprocessors. By the end of the course, students will have a deep understanding of both the hardware and system-level components that drive the performance and efficiency of contemporary computing systems.

Learning Outcomes

The students who have succeeded in this course;
- Understand key concepts in computer architecture including processor design, pipelining, and memory systems.
- Analyze and optimize performance through techniques like instruction-level parallelism, cache management, and compiler optimizations.
- Design and evaluate modern microprocessor systems using advanced concepts such as superscalar and VLIW architectures.
- Gain expertise in multiprocessor and distributed systems including synchronization, memory consistency, and cluster computing.
- Explore alternative computing models through non-Von Neumann architectures like data flow and systolic systems.
- Apply theoretical knowledge through case studies on real-world microprocessor design.

Course Content

1. Review of basic computer architecture and quantitative techniques in computer design
2. CISC and RISC processors
3. Pipelining, hazards and exception handling
4. Hierarchical Memory, Inclusion, coherence, and locality properties
5. Cache memory organizations and techniques for reducing cache misses
6. Virtual memory organization, mapping, and management techniques
7. Midterm
8. I/O system design, bus structures
9. Thread level parallelism; Centralized vs. distributed shared memory, multicore architecture, cache coherence problem
10. Process level parallelism; distributed computers, clusters, grid
11. Centralized shared-memory architecture: synchronization, memory consistency, interconnection networks.
12. Non von Neumann architectures: data flow computers, reduction computer architectures, systolic architectures.

Weekly Detailed Course Contents

Week Subject Related Preparation

Sources

Course Notes / Textbooks:
References: * John L. Hennessy and David A. Patterson, Computer Architecture: A Quantitative Approach, Morgan Kaufmann.
* D. A. Patterson and J. L. Hennessy, Computer Organization and Design, 4th Ed.
* Computer Architecture, Berhooz Parhami.
* John Paul Shen and Mikko H. Lipasti, Modern Processor Design: Fundamentals of Superscalar Processors, Tata McGraw-Hill.
* M. J. Flynn, Computer Architecture: Pipelined and Parallel Processor Design, Narosa Publishing House.
* Kai Hwang, Advanced Computer Architecture: Parallelism, Scalability, Programmability, McGraw-Hill.

Evaluation System

Semester Requirements Number of Activities Level of Contribution
Quizzes 3 % 30
Midterms 1 % 30
Final 1 % 40
Total % 100
PERCENTAGE OF SEMESTER WORK % 60
PERCENTAGE OF FINAL WORK % 40
Total % 100

ECTS / Workload Table

Activities Number of Activities Duration (Hours) Workload
Course Hours 14 3 42
Homework Assignments 5 6 30
Quizzes 3 3 9
Paper Submission 1 20 20
Final 1 15 15
Total Workload 116

Contribution of Learning Outcomes to Programme Outcomes

No Effect 1 Lowest 2 Low 3 Average 4 High 5 Highest
           
Program Outcomes Level of Contribution
1) Ability to identify and apply advanced concepts in computer engineering
2) Cooperate efficiently in intra-disciplinary and multi-disciplinary teams.
3) Have theoretical and practical basis in computer engineering and science to be able to conduct related academic research independently.
4) Ability to apply advanced mathematical and engineering knowledge on real problems.
5) Ability to search the scientific literature related to a research project and find the relationships with own research
6) Ability to interprete scientific research and use the findings
7) Ability to work efficiently in interdisciplinary research teams
8) Ability to attain scientific knowledge
9) Ability find ways to improve upon current knowledge
10) Ability to present research findings in seminars and conferences
11) Ability to write research progress reports by referring to published theses and papers.
12) Ability to show the responsibility of professional and ethical behavior