3
$\begingroup$

I am studying computer architecture. I would like to know the difference between the terms "computer architecture" and "microarchitecture".

$\endgroup$
  • $\begingroup$ What material do you study and where have you looked for definitions? (I.e. where do answerers not have to look?) $\endgroup$ – Raphael Aug 28 '14 at 12:44
7
$\begingroup$

The term architecture was popularized by the paper "Architecture of the IBM System/360", IBM Journal of Research and Development, 8(2):87-101, April 1964 by Gene M Amdahl, Gerrit A Blaauw, and Frederick P Brooks, Jr. They say,

The term architecture is used here to describe the attributes of a system as seen by the programmer, i.e., the conceptual structure and functional behavior, as distinct from the organization of the data flow and controls, the logical design, and the physical implementation.

According to the Wikipedia page on computer architecture the terminology was probably introduced inside IBM in 1959.

Today we would use the term instruction set architecture to describe the syntax and semantics of the interface of a computer, including the type and size of the operands, programmer visible register state, the memory model, how interrupts and exceptions are handled, the available instructions and the meaning of each instruction. The instruction set architecture is the boundary between software and hardware, and is the contract between the programmer and the hardware designer.

The term microarchitecture is used to refer to the organization, or highest level of implementation, of a particular processor. The study of microarchitecture would include topics like pipelining, instruction-level parallelism, out-of-order execution, speculative execution, branch prediction and caching.

I'm not sure about the etymology of microarchitecture. I can find it used as early as 1975 (in the title of the EUROMICRO Workshop on the Microarchitecture of Computer Systems), but it could certainly be older than that.

Currently the term computer architecture or just architecture typically encompasses both instruction set architecture and microarchitecture, as well as broader system-level issues like network connectivity on multiprocessors.

$\endgroup$
  • 1
    $\begingroup$ Brooks and Blaauw in their Computer Architecture are also using implementation for what is usually called micro-architecture and realization when the same implementation is done several times (a process shrink for instance). It's a nomemclature I'ven't seen elsewhere and I've no clue if the choice of words is more tied to the place (IBMspeak?) or the time. $\endgroup$ – AProgrammer Sep 1 '14 at 8:55
1
$\begingroup$

Computer architecture is the combination of microarchitecture and instruction set.

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.A given ISA may be implemented with different microarchitectures;implementations may vary due to different goals of a given design or due to shifts in technology.

Source : https://en.wikipedia.org/wiki/Microarchitecture

$\endgroup$
  • 3
    $\begingroup$ This is just copied from Wikipedia verbatim. It is better to rephrase this in your own words, and perhaps to include some examples. $\endgroup$ – Yuval Filmus Apr 12 '18 at 11:01

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.