As you start learning more about computers and doing various projects, you’ll come across the term “architecture.” You may have some vague notion about the type of CPU you have, but aren’t sure what the term really means. Well, okay, I had some vague notion but didn’t know what it really meant. You are possibly much smarter than I am and know more about this.
If, though, you happen to have as little knowledge as I on the subject, I did some digging and found out what, exactly, architecture is and what you need to know about it.
We all know the definition of architecture when talking about buildings. It’s the style and form of a building, which is largely dependent on the requirements and taste of the inhabitants. Really good architecture satisfies both needs and wants of the people using it.
How does this definition transfer over to computers? Well, actually, it’s not exactly transferable. You’ll see as you continue reading.
The scholarly definition of computer architecture is “the combination of microarchitecture and instruction set.” Now we need to know what microarchitecture and instruction set mean. Before I get into the definitions, I need to clarify what elements of the hardware are included in the definition of computer architecture. Generally, the parts that add together to make the architecture include: the CPU, RAM, parts of the motherboard, and the GPU.
Instruction Set Architecture
This is the programming model of a computer. It defines how software communicates with hardware. I like to think of a model as the napkin drawing. Inventors famously draw their ideas for their inventions on napkins because they think of them randomly at any time and have to use whatever is at hand to write them down. They get a bolt from the blue while they’re drinking coffee at a cafe and have to write down the brilliant idea on their napkin. Since the napkin is so small, they have to distill the idea down to only its essential parts, which is a model. That’s what an ISA (Instruction Set Architecture) is, in general: it is the napkin drawing of a computer. Specifically, the ISA defines the rules of interaction between the software and the hardware.
The microarchitecture is how an ISA is implemented in a processor. Any one ISA can be implemented by more than one microarchitecture. The microarchitecture can be thought of as the flow of the operations through the computer. It is how the constituent parts interact to implement the ISA. If you think of design vs. function, you might think of the microarchitecture as the design that implements the function of the ISA.
Typically, the computer architecture involves five steps when performing tasks:
- Fetch instruction
- Decode instruction and Read operands
- Memory access
- Write back
It sounds like computer architecture is pretty invisible to the average computer user – unlike building architecture. My desire above to transfer the definition of architecture from buildings to computers remains unfulfilled. Whereas building architects work with the building owners to design the architecture, computer “architects” work hidden away in labs making their designs. Then, the other hardware and software designers must cater to the architecture.
Here, I could throw around fancy computer architecture names like Von Neumann, or Harvard, or RISC, and you could be impressed by my depth of knowledge.
Oh, you were expecting more to that statement? That’s all. I was done.
Haha, I’m just messing with you! But, seriously, why do you need to know all this? Well, you don’t. Unless you want to better understand how computers work (Eh?, nudge, nudge, wink, wink)!
Actually, if you program software for a living, as I mentioned above, you need to take into account the architecture of the processor the software will be running on when writing your software. Then, you need to make sure everyone knows what architecture your program runs on, so people with different architectures don’t install your program. Otherwise, your customers will be very put out.
You can learn about various architectures from Wikipedia. Otherwise, nearly any computer you’ll use in the present and near future are similar architectures. Assuming you aren’t a programmer, what do you really need to know about your computer’s architecture? The first place to start is to find out what CPU you have in your computer. Most of the time, it will be an Intel brand CPU. The rest of the time it will be an AMD brand CPU. At the same time, you can also find out the name of the CPU, i.e. its model number (or name). Then simply search for “architecture of <Brand> <Model>”. That will give you links that describe your computer’s architecture.
Finally, when installing an operating system or software, there are only 2 different architectures to be aware of. The names will differ with operating systems, but that is the only thing that differs. You can have 32-bit architecture, or 64-bit architecture. That’s it. And, really, most everyone with a computer less than 5-8 years old will have 64-bit. But, what is 32-bit and 64-bit?? This refers to the amount of memory the computer can access at any one time.
In Linux, 32-bit architecture is called x86, and 64-bit architecture is called x86_64. In a terminal window, type
to see which architecture you have.