Home Computer Science
Computer System Organisation
The operation of a digital computer is based on the storage and processing of data submitted by a user in the form of a set of instructions to be executed. This chapter gives an overview of a computer system when looked at from the end of a user and follows a level hierarchy: i.e. from the top up to certain levels, the user participation continues, and beyond that, the system's involvement starts and then follows a level hierarchy down to the digital logic level - the computer's own real hardware. From this point, the design process for digital systems begins with mainly three basic levels of abstraction in the descending order: the processor level, the register level, and the gate level. The main thrust of this chapter is to explain the characteristics of the design process, examine the design at the processor and register levels, and provide many aspects of digital logic as a building block that may facilitate the study of higher levels to implement the various functions of the computer. The basic elements (different gates) from which all digital computers are constructed are amazingly simple. This chapter describes how these different elements are used to construct various combinational and sequential circuits in the digital logic.
Modular Design Levels
Digital computer system design invariably follows a modular approach consisting of mainly three major levels which are in the descending order: the processor level, the register-transfer level, and the gate level or digital logic level. There is also another level under the gate level, which is called the device level consisting of individual components, like the working principle of a transistor, resistor, capacitor, etc. The boundaries between the levels are not truly well defined, and hence, it is quite natural that while describing a particular level, it may include components from more than one level. These concepts and techniques of constructing machines as a series of levels, and the details of some important levels, will ultimately guide the designer in formulating and constructing new computers, or designing further new levels.
With the level concept, the type of information processed becomes more complex as one moves gradually from a lower level to a higher level. In fact, the higher the level, the more will be the complexity. At the lowest level, i.e. at the gate level, the fundamental unit is bit, and the processing is carried out on individual or random bits. Here, the fundamental operation is only switching the gate, which is typically measured in nanoseconds. At the register level, the information is organised in the unit of word (consisting of a number of bits) into words, representing instructions, numbers, character strings (literals), etc. Here, for an elementary operation, the time taken is of the order of microseconds. At the next higher level, i.e. at the processor level, the unit of information is block of words, representing programs, sets of data, etc. Here, the time taken is of the order of milliseconds.
We can now elaborate this level concept to get a clear understanding how a computer works. Right from the time of submission of a program from a user's end up to the completion of its execution, it passes through these different levels Sv S2,..., Sk, step by step, where each level is performing its specific responsibility. The lowest level, of course, of any computer is the electronic circuit that can execute a limited set of simple, easy basic operations. To each such operation, there must have one or more related instructions. These primitive instructions form a language by which it is possible to communicate with the computer at this level. Such a language is called the machine language. At the time of designing a computer, it should be decided what instructions (operations) need to be included in its machine language, and as this level is the bottom-most level called the machine level, in our discussion, this level can also be termed as the digital logic level. Each of the levels above this digital logic level is on the top of another and is entrusted with certain respective operations to be executed. Hence, each such level Sk has a new set of instructions of the corresponding level based on its predecessor, which is more convenient to use than the set of instructions of a level lying beneath it. The set of instructions used by a particular level Sk form a language Lk of that level. A hypothetical design of a computer using this approach as a series of levels (layers) is depicted in Figure 2.1. The top-most level is the highest language level, which is most sophisticated and complex. This level-wise arrangement in designing a computer system can now be accomplished either by a top-down or by a bottom-up approach. Here, we will use a top-down approach for the sake of convenience and for better understanding.
In Figure 2.1, the highest level (level 6) at this moment is the user who writes programs using high-level languages such as C, COBOL, C++, FORTRAN, etc. which need to be translated (or interpreted) to the languages of level 4 or level 5, by suitable translators, popularly known as compilers (interpreters). Next lower level, level 5, is known as the assembly language level, a symbolic form for one of the underlying languages found in lower
Level-wise structure of computer design. Most of the modern computers follow this concept.
levels that needs a translator used for the translation of the assembly language program, which is called an assembler. The next lower level, level 4, is basically a hybrid level and can be considered as a bridge between the user of the outside world and the machine's own world. Most of the instructions in the language of level 4 are also found in the language of the level just below this, i.e. the level 3, and are directly interpreted by the level
3 interpreter. Other instructions of level 4 are interpreted at level 4, and this interpreter executing at level 4 is historically called an operating system. Since the instructions available at this operating system level are a mixture of two types of instructions that is why, this level is called a hybrid level. Level 3 describes each machine's own instruction set, and an interpreter available at this level essentially injects various types of instructions into the already-translated version of the source program. Numerous types of new sets of instructions to provide different types of facilities are available at this level. The distinct feature of this level is that more variations in level 3 exist between different computer systems from different manufactures, but have more similarities than differences. Commonly, the language used in this level is called the machine language but we call it conventional machine language for certain obvious reasons. The level 2 is broadly categorized as the microprogramming level. The inclusion of level 2 is merely a choice to support only the level 1 design, and not a mandatory one. If the design of one machine omits level 2 and makes direct communication from level 3 to level 1, nothing will go wrong; at best, the flexibility in designing level 1 may be affected. Level 1 is a small set of basic logic components combined in various ways to store binary data and to perform the required arithmetic and logic operations on that data. Once this design of level 1 is over, it is very difficult and sometimes almost impossible to add/modify any other types of computation, even if it is required. All the connections together with the components are essentially dedicated and customized for a predefined set of different types of computations. Since the resulting "program" is generated by means of its wiring, and is in the form of hardware, it is rightly termed as a hardwired program.
The presence of level 2 in between level 3 and level 1 opens a new horizon, thereby releasing (relieving) the designer of level 1 from the hard and fast rules of complex interconnections to be followed between the various components in level 1. Instead, the level 1 is realized with a general-purpose configuration of arithmetic and logic operations with no concept of any hardwired program. The set of hardware now will perform various functions on data, depending on the control signals sent from level 2 and applied to the level 1 hardware. The signal sent from level 2 is in the form of a new sequence of codes. Each code, in effect, is an instruction. The instructions used in level 2 are a true machine language level. A segment of general-purpose hardware (level 1) accepts this code, and another segment of hardware interprets each code (instruction) and generates corresponding signals. These signals along with the data are then executed by hardware to produce the results. To distinguish this new method of programming, a sequence of codes or instructions at this low level is called a microprogram. The concept of language, program, and instruction in the design of computers ultimately came to an end here at this level 2. The microprogram is basically an interpreter, whose responsibility is to interpret each instruction of level 3 and then execute a corresponding microprogram. The introduction of this level is to relieve the designer from direct handshaking between an instruction at the conventional machine level (level 3) and actual hardware circuits (level 1); the circuits are found to be gradually more and more complex as newer instructions (level 3) are constantly added to handle numerous upcoming situations. Moreover, there is no flexibility between level 3 and level 1; i.e., any change in an instruction in the conventional level when the hardware circuit design is over, even if it is truly required, is absolutely impossible to incorporate. Computers from different manufacturers have identical microprogramming levels; several similarities exist in the design of this level, but they differ in implementation, depending mostly on the design of the underlying hardware circuit. The format of these instructions and the way they are being expressed also differ substantially from one machine to another machine.
All these levels together facilitate the design to be more modular, and present the computer Organisation and architecture in a lucid structured framework. From the computer designer's point of view, the lowest level, level 1, is the digital logic level or gate level, which consists of fundamental hardware objects like gates. Building of gates with fundamental analog components such as transistors ICs (integrated circuits) etc. is not within the scope of our discussion of design concepts. We are only concerned about whether each gate has one or more digital inputs (either 0 or 1) and provides some output after executing some simple function over this input. For the sake of convenience, we just mention our level concept up to level 0, which one can consider as the fundamental component level, like the working principle of a transistor, resistor, capacitor, etc. while forming a gate, but any more details on this are beyond the scope of our present discussion.