Summary
Computer architecture studies how hardware and low-level software cooperate to execute programs. Core pieces:
ISA (instructions, registers, addressing),
microarchitecture (pipelines, execution units), and the
memory hierarchy (caches, RAM, storage). It also covers
I/O, interconnects, and parallelism from SIMD to multicore. Key goals are correctness, performance, efficiency, and cost. Designers analyze latency, throughput, locality, and energy, using techniques like caching, branch prediction, pipelining, out-of-order execution, and virtualization to balance tradeoffs across workloads.