CPEN 303:Computer Architecture

Main block


History and general overview of computer architecture and organization, including reasons for studying computer architecture, the contrast between computer organization and computer architecture, and the role of computer architecture in computer engineering. Basics of computer architecture: Von Neumann machine structure, instruction formats, fetch and execute cycle, registers, instruction types and addressing, Interrupts and I/O. Programming in assembly language. Computer arithmetic: integer and real number representations, algorithm for basic mathematical operations, algorithm for floating-point operations, hardware and software implementation of arithmetic unit. Memory system and architecture: memory types and hierarchy, main memory organization and its performance, cache memory, virtual memory, reliability of memory systems. Interfacing and communication: I/O systems and handshaking, I/O techniques of programmed I/O, interrupt-driven I/O and DMA, interrupt structures, memory system design and interfacing, system buses and protocols. Processor system design: CPU interface – clock, control bus, data bus, and address bus; address decoding, memory interfacing, serial and parallel interfaces, timers. CPU organization: single and multiple bus datapaths, instruction set architecture, implementing instructions, instruction pipelining, pipeline hazards and reducing effects of hazards, trends in computer architecture – CISC, RISC, VLIW. Performance: metrics for computer performance – clock rate, MIPS, etc, strengths and weaknesses of performance metrics, averaging metrics – arithmetic, geometric, harmonic, role of Amdahl’s law in computer performance.