Assembly language and machine language;
example: a subset of these languages for the MIPS processor.
Elementary Assembly programming:
if-then-else, loops, arrays, pointers,
and introduction to the run-time stack and procedure call.
Processor implementation using
registers, multiplexors, adders, ALU's,
memories, combinatorial logic, and FSM:
datapath and control unit design, interrupts-exceptions.
Introduction to pipelining.
Processor performance, CPI and related equations.
introduction to cache memories, virtual memory,
user-kernel mode, system call, protection.
and their communication with the central unit:
memory-mapped I/O, polling, interrupts, DMA,
disk and flash memory systems.
Multicore processors, elementary ideas of their organization,
coherence/consistency and synchronization.
Assembly programming on the SPIM simulator
of the MIPS architecture;
processor performance analysis and/or energy consumption exercises;
a design and simulation project
of a subset of the MIPS processor at the register transfer level
using the Verilog hardware description language;
memory (cache, virtual), I/O, and multicore processor exercises.
Book: The Greek Translation of:
D. Patterson, J. Hennessy:
"Computer Organization and Design: the Hardware/Software Interface",
translated from the
3rd Edition, 2004, Morgan Kaufmann Publishers, ISBN 1558606041:
Chapters 2, 5, 7, 8, and Appendix A.