From Wikipedia:

In computer engineering, microarchitecture, also called computer organization and sometimes abbreviated as µarch or uarch, is the way a given instruction set architecture (ISA), is implemented in a particular processor.

Computer architecture is the combination of microarchitecture and instruction set.

I kept reading some Q&A like this. Definition says that computer microarchitecture is how ISA is implemented in a processor, but tells nothing about how CPU, memory and I/O interact with each other. Does architecture defines this interaction? For example, which term defines this picture?

  • 1
    $\begingroup$ This seems too broad to me. Community votes, please? $\endgroup$ – Raphael Apr 20 '18 at 11:48
  • 1
    $\begingroup$ I'm not sure what you mean by "what defines". A computer is a physical device: it isn't powered by definitions. $\endgroup$ – David Richerby Apr 20 '18 at 16:54
  • 2
    $\begingroup$ Don't try to read too much into that one sentence on Wikipedia. It's just a first attempt to give you a sense of the field, not the final definition of what constitutes computer architecture. It's not like computer architects sit around and ask themselves "is what I'm working on microarchitecture? is it instruction set? oh crud it's not either, I better quit working on it". $\endgroup$ – D.W. Apr 20 '18 at 17:35
  • 1
    $\begingroup$ Go for example to the Intel website and look what documents they have. There is some good stuff there, usually 800 to 1200 pages per document, so you can't really expect any useful answer here. $\endgroup$ – gnasher729 Apr 21 '18 at 11:39

A microarchitecture is a high-level description (in contrast to a hardware-description or circuit-level) of an implementation of an ISA. This includes how instruction bytes get fetched, how many decorders there are and what instructions each can decode, how many functional units there are and for which instructions, the cache hierarchy, how all of these units are connected to each other, and it may also include the number of cores or hardware threads and how they interact with each other and what resources are shared between them.

Main memory and I/O devices are not part of the microarchitecture, but the microarchitecture description includes how it interfaces with components of the system. The term architecture is used to either refer to only an ISA or to both an ISA and a microarchitecture that implements it, depending on the context. Therefore, it also specifies how to communicate with memory and I/O devices, but only in terms of instructions and addresses. You can use the term computer or computer system to refer to the image you've attached. The term CPU may refer to either a single core, a multi-core processor design, or a physical processor package (which may include the DMA and interrupt controllers shown in the image).

| cite | improve this answer | |

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.