Structured Computer Organization
A digital computer is a machine that can solve problems for people by carrying out instructions given to it. A computer's primitive instructions form a language in which people can communicate with the computer. This language is called machine language.
When we entered the era of designing computers, people faced a big problem: there was a large gap between what is convenient for people and what is convenient for computers. This problem leads to structuring the computer as a series of abstractions, each abstraction building on the one below it.
By this approach, the complexity can control, and the computer system can be designed systematically and organized. This approach is called Structured Computer Organization.
They try to make the primitive instructions as simple as possible in its machine language that is reliable with the computer's use and performance requirements to reduce the complexity and cost of the electronics needed.
For example, people want to do X tasks, but computers can only do Y tasks. This leads to a problem for people, and that's why people decide to design a new computer known as a structured computer organization.
Ways to Solve this Problem
The problem can solve in two ways. Both the solutions involve designing a new set of instructions that is more convenient for people to use built-in machine instructions.
Let suppose there are two languages, L0 (machine language) and L1 (machine language that is non-understandable by machine). Now we have two methods by which L1 can also execute on the machine.
1st Method: Execute a program written in L1 and replace each instruction with an equivalent sequence of instructions in L0. Now the resulting program consists of L0 instructions completely. Then the computer executes the new L0 program instead of the old L1 program. This technique is called translation.
2nd Method: In this method, write a program in L0 that takes programs in L1 as input data and carries them out by examining each instruction in turn and directly executes the equivalent sequence of L0 instructions. It does not require generating a new program in L0. This technique is called interpretation, and the program that carries it out is called an interpreter.
Translation and interpretation are similar. In both methods, the computer carries out instructions in L1 by executing equivalent sequences of instructions in L0. The main difference is that, in translation, the entire L1 program is first converted to an L0 program, and the L1 program is thrown away, then the new L0 program is loaded into the computer's memory. During execution, the newly generated L0 program is running in control of the computer.
In interpretation, after each L1 instruction is examined and decoded, it is carried out immediately. No translated program is generated. Here, the interpreter is in control of the computer, and the L1 program is just data. Both methods and the combination of both methods are widely used.
Rather than thinking in terms of translation or interpretation, we imagine a hypothetical computer or virtual machine whose machine language is L1. Let's call the virtual machine M1 and the virtual machine corresponding to L0, M0.
People could simply write their programs in L1 and computer execute them directly. Even if the virtual machine whose language is L1 is too expensive or complicated to construct out of electronic circuits, people can still write programs for it. These programs can either be interpreted or translated by a program written in L0.
In a certain case, a computer with n levels can be regarded as n different virtual machines, each with a different machine language. The electronic circuits can directly carry only programs written in language L0 without translation or interpretation. Programs are written in L1, L2, ..., Ln must either be interpreted by an interpreter running on a lower level or translated to another language corresponding to a lower level.
Contemporary Multilevel Machines
Six levels exist in contemporary multilevel machines, as shown in the below image. Level 0, at the bottom, is the machine's true hardware, and its circuits carry out the machine-language programs of level 1.