What is Computer Architecture?
Computer Organization + Instruction Set Design (TODO)
- Computer Architect (building architect)
- high-level design
- organization
- functionality
- performace
- power/security/…
- Hardware Designer (builder, construction engineer)
- materials
- implementation details Can also think of it as:
- First computer science discipline
- the first computer scientists, eckert and machly, John von Neumann, maurice wilkes, and alan turing — were computer architects.
- The part of the machine that is visible to the user (programmer/compiler-write/ OS writer/user)
- software interface (instruction Set Design)
- performance(Computer Org)
- power, energy, security, etc(Computer Org)
Goals of Good Instruction Set Design and Computer Organization
PERFORMANCE!!! and power / energy / fault tolerance / fault avoidance / security
Why is Computer Architecture important?
- You may actually do computer architecture someday
- You may actually care about software performance someday
- ability of application programs, compilers, OS, etc to deliver perf depends on understanding computer organization
The Forces on Computer Architecture
- TODO: image
Instruction Set Architecture
- That part of the program …
- Examples:
- Intel x86
- RISC v
- MIPS
- ARM
- TODO (image)
- ISA provides a level of abstraction for both the hardware and the software
Machine Organization
- After deciding on ISA → design hardware to execute those programs as fast as possible
- must be done every time a new implementation of the architecture is released, with typically very different technological constraints??? (TODO)
Challenges of Computer Architecture
- TODO