Difference between computer architecture and computer organization

This is a commonly asked question that sadly confuses many computer science students.  Confusion comes from the fact that the literal meaning of the two terms is very close. Also, the historical context of the two terms does not help much as different people use the terms differently.

Computer Architecture vs Computer Organization
In this post I am going to summarize the differences between computer architecture and computer organization in an easy to memorize tabular form as shown below:
Computer OrganizationComputer Architecture
Often called microarchitecture (low level)Computer architecture (a bit higher level)
Transparent from programmer (ex. a programmer does not worry much how addition is implemented in hardware)Programmer view (i.e. Programmer has to be aware of which instruction set used)
Physical components (Circuit design, Adders, Signals, Peripherals)Logic (Instruction set, Addressing modes, Data types, Cache optimization)
How to do ? (implementation of the architecture)What to do ? (Instruction set)


Computer Architecture and Computer Organization Examples

  • Intel and AMD make X86 CPUs where X86 refers to the computer architecture used. X86 is an example on a CISC architecture (CISC stands for Complex Instruction Set Computer). CISC instructions are complex and may take multiple CPU cycles to execute. As you can see, one architecture (X86) but two different computer organizations (Intel and AMD flavors).
  • nVidia and Qualcomm on the other hand make GPUs (graphics processing unit as opposed to a CPU central processing unit). These GPUs are based on the ARM (Advanced RISC Machines) architecture. ARM is an example on a RISC architecture (RISC stands for Reduced Instruction Set Computer). Instructions in an ARM architecture are relatively simple and typically execute in one clock cycle. Similarly, ARM here is the computer architecture while both nVidia and Qualcomm develop their own flavor of computer organization (i.e architecture implementation)

Summary

Can we tell the difference between computer architecture and computer organization in one line ? Here is my take on that:
Computer architecture roughly refers to instruction set design while computer organization refers to the corresponding circuit design. Feedback is welcome. Please use the comments section below. Thanks for reading.

Search Terms...
One Comment

Leave a Reply