Introduction to computer architecture. Digital logic, combinatorial and sequential logical circuits. Instruction set architectures. Instruction types, machine cycle and instruction execution. CISC and RISC architectures. Central Processing Unit (CPU). Performance and benchmarking. Instruction level parallelism and pipelining. Superscalar and VLIW processors. Main memory technologies. Memory hierarchies and cache memories. Virtual memory. Input-Output devices, buses and controllers. Interrupts and DMA techniques.