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.
Pipelining: the classical 5-stage in-order pipeline,
with dependence detection and internal forwarding.
Processor performance, CPI and related equations.
Memory System:
introduction to cache memories, virtual memory,
user-kernel mode, system call, protection.
Peripheral devices
and their communication with the central unit:
memory-mapped I/O, polling, interrupts, DMA.
Assembly programming on the SPIM simulator
of the MIPS architecture;
design and simulation visualization
for a subset of the MIPS processor at the register transfer level,
in single-cycle and 5-stage pipelined versions;
processor performance, memory (cache, virtual), and I/O exercises.
Book: The Greek Translation of:
D. Patterson, J. Hennessy:
"Computer Organization and Design: the Hardware/Software Interface",
translated from the
4th Edition, 2011, Elsevier Morgan Kaufmann Series,
ISBN-13: 978-0123747501 -
large parts of chapters: 2, 4, 5, 6, 7, and
the Appendix on Assembly and SPIM.