Computer Architecture

Professors Apostolos Meliones
Konstantinos Lambrinoudakis
Eleni-Laskarina Makri
Course category Core
Course ID DS-201
Credits 5
Lecture hours 3 hours
Lab hours 2 hours
Digital resources View on Aristarchus (Open e-Class)

Learning Outcomes

At the end of the course, students will be equipped with fundamental knowledge in computer architecture and organization which allows the critical deepening in the broad scientific domain of computer architecture, including microprocessor and micro-computing systems.

Upon successful completion of the course, students will be in position to:

• Perform numerical calculations in numerical representation standards which are typical in the computer architecture domain.
• Evaluate and compare the performance of computer systems considering their organization, including the system memory hierarchy, caching efficiency and pipeline structures.
• Decide the target organization of the memory system hierarchy contributing to performance optimization of a computer system, considering the associated cost.
• Use best practices for efficient software programming across programming languages, considering their mapping on the computer architecture and hardware level.
• Implement and analyze assembly programs across different instruction sets and evaluate in detail their computational performance.
• Design, optimize, analyze and implement complex elements of the Arithmetic and Logic Unit (ALU) of the Central Processing Unit (CPU).
• Implement optimized assembly programs for CPUs with pipeline structures.

Course Contents

The main objective of the course is the familiarization of the students with the binary logic, the digital design methodologies and the basic architectural characteristics and structure of a computer system.

More specifically, the course content is the following:
1. Structure, organization and operation of computer systems, Von Neumann architecture, CISC/RISC processors, CPU evolution, memory system hierarchy, Moore Law.
2. Evaluation of computer performance, program execution time, MIPS.
3. Data representation, fixed- and floating-point formats.
4. Instruction sets, memory addressing, assembly language.
5. Data representation in memory.
6. Assembly language of a real CPU (e.g. 6502 which implements the accumulator model and is an entry-level instrument suitable for beginners), example assembly programs, assembly laboratory.
7. Organization and operation of the central processing unit, Control unit, CPU design.
8. Pipeline CPUs, pipeline dependencies (structural, data, procedural).
9. Memory technology, memory hierarchy, design of Random Access Memory, CPU-memory interconnection.
10. Virtual memory, Paging and segmentation.
11. Cache memory, cache memory organization.

Recommended Readings

1. Patterson D. & Hennessy J. (2010): Computer Orginization and Design, 4th Edition, Elsevier, Inc.
2. Nikolos D. (2017): Computer Architecture, Papakonstantinou Publications (in Greek).
3. Harris S. & Harris D. (2022), Digital Design and Computer Architecture, Elsevier.
4. M. Mano (2018): Digital Desing, 6th Edition, Pearson Education, Inc.
5. Hennessy J. and Patterson A.: Computer Architecture: A Quantitative Approach, 4th Edition, Elsevier, Inc.
6. Stallings W.: Computer Organization and Architecture: Designing for Performance, 10th Edition, Pearson Education, Inc.
7. C. Hammacher, Z. Vranesic, S. Zaky (2002): Computer Organization. McGraw-Hill.
8. Hayes J.: Computer Architecture and Organization (1997), 3rd Edition, McGraw-Hill.
9. V. Nelson, H.T. Nagle, J.D. Irwin, B. Carrol (1995): Digital Logic Circuit Analysis and Design, Prentice Hall