From Structural Computer Organization by Tanenbuam

enter image description here

  1. In a certain sense, a computer with n levels can be regarded as n different virtual machines, each one with a different machine language. We will use the terms ‘‘level’’ and ‘‘virtual machine’’ interchangeably. However, please note that like many terms in computer science, ‘‘virtual machine’’ has other meanings as well.

    There is an important relation between a language and a virtual machine. Each machine has a machine language, consisting of all the instructions that the machine can execute. In effect, a machine defines a language. Similarly, a language defines a machine—namely, the machine that can execute all programs written in the language.

    The machine languages of levels 1, 2, and 3 are numeric. Programs in them consist of long series of numbers, which are fine for machines but bad for people. Starting at level 4, the languages contain words and abbreviations meaningful to people.

    What are the terminologies/names for the machine languages of level 0, 1 and 3? (The languages for the other levels are apparent to me)

  2. In summary, the key thing to remember is that computers are designed as a series of levels, each one built on its predecessors. Each level represents a distinct abstraction, with different objects and operations present. By designing and analyzing computers in this fashion, we are temporarily able to suppress irrelevant detail and thus reduce a complex subject to something easier to understand.

    The set of data types, operations, and features of each level is called its architecture. The architecture deals with those aspects that are visible to the user of that level. Features that the programmer sees, such as how much memory is available, are part of the architecture.

    What are the "objects", "operations", "data types", "operations" and "features" for level 0, 1 and 3?



Level 0 is the digital logic level, or basically all of the circuitry. Operations are on-off switches, data types are boolean values and numbers. Features are logic gates, clocks, traces, semiconductor wafers, and so forth. The machine language is simple binary.

Level 1 is the Micro-Architecture level. If you look at a micro photograph of the die in an Intel microprocessor (actual size is about the size of the nail on your little finger), you start to see higher-level features or "modules" on the landscape:

enter image description here

The data types are numbers, specifically integers having a width corresponding to the architecture (e.g. 32 bit numbers or 64 bit numbers), although communication can still occur between modules that is strictly binary. Operations are defined by the boundaries between modules, and by the functions of the modules themselves. The machine language is still pure binary, although the makings of a microcode language that implements the instruction set become apparent at this level.

Level 3 is the Operating System Machine Level. Tanenbuam defines the OSM level as the “complete set of instructions available to the application programmer.” The machine language contains nearly all the ISA level (2) instructions and new instructions for “system calls”. Data types are expanded to include strings, floating point numbers, binary images and user-defined types. Operations include process control, memory control, file control and device control. Operating systems can contain many features which hopefully are obvious, but include some sort of user interface, configuration management, device drivers, etc.

Further Reading

Microarchitecture on Wikipedia
Notes on the Operating System Machine Level
Presentation on the Operating System Machine Level

| improve this answer | |
  • Thanks! Is there any level where cpu, main memory, and secondary storage are viewed as atomic, i.e. their inner structures are not visible? – Tim Feb 10 '15 at 14:06
  • Is there a name for the language in which the microprogram is written? – Tim Feb 10 '15 at 14:46
  • @Tim The only way you will ever know that is if you work for Intel on the microcode. Probably it's the same team that designs the actual CPU. – user253751 Jan 18 '19 at 4:29

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.