CMP5203 High Performance Computer ArchitectureBahçeşehir UniversityDegree Programs INFORMATION TECHNOLOGIES (ENGLISH, NON-THESIS)General Information For StudentsDiploma SupplementErasmus Policy StatementBologna CommissionNational Qualifications
INFORMATION TECHNOLOGIES (ENGLISH, NON-THESIS)
Master TR-NQF-HE: Level 7 QF-EHEA: Second Cycle EQF-LLL: Level 7

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) Uses basic Software Engineering knowledge and competencies.
2) Applies the software development ability that is necessary for software engineering applications.
3) Uses data structures and applies information about algorithm development.
4) Develops system programs on operating systems.
5) Defines computer organization, design and architectures.
6) Creates the structure of computer networks and network security.
7) Uses business intelligence, data mining and data analysis tools, applies techniques about them.
8) Develops database applications and WEB based programs.
9) Defines, analyzes, designs and manages information technologies projects.
10) Uses and develops technology-based environments and tools in education.
11) Detects, identifies and solves information technology needs of the business environment.
12) Uses the capabilities of information technologies within the rules of professional responsibility and ethics.