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

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.

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

Students will be capable of:

  • performing numerical calculations in numerical systems and representation standards which are typical in the computer architecture domain.
  • designing, optimizing, analyzing and implementing complex logic and syncrhonous sequential circuits using various building blocks (gates, SSI/MSI integrated circuits, multiplexres, flip-flops etc).
  • evaluating the elements and blocks of the Arithmetic and Logic Unit (ALU) of the Central Processing Unit (CPU).
  • evaluating and comparing the performance of computer systems considering their organization, including the system memory hierarchy, caching efficiency and pipeline structures.
  • deciding the target organization of the memory system hierarchy contributing to performing optimization of a computer system, taking into account the associated cost.
  • efficient software programming using programming languages, considering their mapping on the computer architecture and hardware level.
  • implementing and analyzing assembly codes across different instruction sets (stack, accumulator, register-memory and register-register models).
  • implementing optimized assembly codes for CPUs with pipeline structures.

Course Contents

  • Digital systems history.
  • Numerical systems: binary, octal, hexadecimal, conversions from one system to the other.
  • Binary arithmetic operations, use of complements, binary codes
  • Logic Gates, Boolean algebra.
  • Truth tables, Karnaugh charts, examples of logic circuits design, design with NAND/NOR gates, SSI/MSI circuits and multiplexers.
  • Introduction to the synchronous sequential circuits, Flip – Flops (D, T, RS και JK-type), Design of counters, registers and shift registers.
  • Methodology for designing and analyzing synchronous sequential circuits.
  • Structure, organization and operation of computer systems, Von Neumann architecture.
  • Data representation (fixed and floating point formats)
  • Instruction sets, Assembly Language.
  • Organization and operation of the central processing unit, Control unit.
  • Memory hierarchy, memory cell, addressing modes, design of random access memory, interconnecting the memory and the central processing unit.
  • Virtual memory. Paging and segmentation.
  • Cache memory, cache memory organization.
  • Evaluation of computer performance.
  • Pipelining.

Recommended Readings

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