Introduction to Computer Architecture
The architecture of computer systems including concepts such as CPU, memory, buses, I/O, cache, instruction sets, interrupt processing, pipelining, performance. Families of processors, CISC, RISC. Memory organization and management (including virtual memory, protection, segmentation and paging). Computer arithmetic. The use of assemblers, linkers and loaders. Assembly language programming and its interface with a high-level language (C).