Micro Architecture

AllPages
RecentChanges
Links to this page
Edit this page
Search
Entry portal
Advice For New Users

After MicroElectronics we come to MicroArchitecture.

This is the level at which we take our gates, representing tiny fragments of logic, and build them into larger units of computation. First you build circuits that can do simple arithmetic ("adders" and "multipliers") and memory cells that can hold a single "yes" or "no" (a "bit", as it's known), then you build those up into larger systems like Arithmetic Logic Units, Floating Point Units, branch predictors, caches, Load-Store units, registers and so on. Then you build those into a complete microprocessor capable (in theory) of handling any computation you might throw at it.

Universities generally teach this level over two courses: Computer Design[->], which takes you from gates up to the larger systems I mentioned, and Computer Architecture[->], which talks about how to organise your chip design to extract better performance out of it.

Microelectronics isn't the only possible substrate for this level: much of Lovelace and Babbage's work in the 1800s was at this level, only built on top of gears rather than circuits. The notations Babbage developed in some ways strikingly anticipate[->] modern hardware design notations.

Application programmers rarely need to care about what goes on at this level, but occasionally they get bitten by how branch prediction[->] or caching affects the performance of their code. Programmers working on cryptographic software need to care more, because what's going on at the microarchitectural level[->] can leak secret information to an attacker.

After this comes:


Lower level:
Root node:
Higher level:

Links to this page / Page history / Last change to this page
Recent changes / Edit this page (with sufficient authority)
All pages / Search / Change password / Logout