Concept of Computational Model
Concept of Computational Model
The computer architecture and language classes must have a common foundation or paradigm
called a Computational Model. The concept of a computational model represents a higher level
of abstraction than either the computer architecture or the programming language alone, and
covers both, as show below -
The problem description style specified how problems in a particular computational model are
described. The style is either procedural or declarative, as shown –
In a procedural style the algorithm for solving the problem is stated. A particular solution is
then declared in the form of an algorithm.
In a declarative style all the facts and relationships relevant to the given problem have to be
stated. There are two methods for expressing these relationships and facts. The first uses
functions, as in the applicative model of computation, while the second states the relationships
and facts in the form of predicates, as in the predicate-logic-based computational model.
The other component of the problem description model is the problem description method. It is
interpreted differently for the procedural and the declarative style. When using the procedural
style the problem description model states how a solution of the given problem has to be
described. In contrast, while using the declarative style, it specifies how the problem itself has to
be described.
The third and the last element of computational model outlines the execution model. It consists
of three components as shown –
The first component declares the interpretation of the computation, which is strongly related
to the problem description method. The choice of problem description method and the
interpretation of the computation mutually determine and presume each other.
The next component of the execution model specifies the execution semantics. This can be
interpreted as a rule that prescribes how a single execution step is to be performed. This rule is,
of course, associated with the chosen problem description method and how the execution of the
computation is interpreted. The different kinds of execution semantics applied by the
computational models are summarized below –
The last component of the model specifies the control of the execution sequences. In the basic
models, execution is either control driven or data driven or demand driven as shown –
For Control-driven execution it is assumed that there exists a program consisting of a sequence
of instructions. The execution sequence is then implicitly given by the order of the instructions.
However, explicit control instructions can also be used to specify a departure from the implied
execution sequence.
Data-driven execution is characterized by the rule that an operation is activated as soon as all
the needed input data is available. Data-driven execution control is characteristic of the dataflow
model of computation.
In Demand-driven execution the operations will be activated only when their execution is
needed to achieve the final result. Demand-driven execution control is typically used in the
applicative computational model.
Relationships between the concepts of computational model, programming language and
architecture
The concept of a computational model is a higher level abstraction than the concepts of
programming language and computer architecture. A programming language can be thought of
as a specification tool making possible the formulation of a computational task whereby a
particular computational model is presumed. A computer architecture may be looked upon as a
tool to implement a computational model, or to execute a given computational task expressed by
means of a programming language, whereby a particular computational model is given.
In order to illustrate these relationships we will examine the basic features of the programming
languages and computer architectures that correspond to the von Neumann computational model.
A programming language corresponding to this model should allow variables to be declared and
their values to be manipulated by means of a proper set of instructions as many times as required
during computation. Furthermore, the language should provide control instructions to allow
explicit control of the execution sequence. Languages fulfilling these requirements are called
imperative languages. The most widely used languages, such as C, PASCAL, FORTRAN and
soon, are all imperative languages.
Description
Assumed
Execution
model
As far as the evolution of the concept of computer architecture is concerned, there are four major
steps to be emphasized, which will be overviewed as follows –
The term ‘computer architecture’ was coined in 1964 by the ‘chief architects’ of the IBM
System/360 in a paper announcing the most successful family of computers ever built. They
interpreted computer architecture as ‘the structure of a computer that a machine language
programmer must understand to write a correct program for a machine’. Essentially, their
interpretation comprises the definition of registers and memory as well as of the instruction set,
instruction formats, addressing modes and the actual coding of the instructions excluding
implementation and realization. By implementation they understood the actual hardware
structure and by realization the logic technology, packaging and interconnections.
Bell and Newell made an important contribution to the concept of computer architecture by
introducing a hierarchical, multilevel description (Bell and Newell, 1970). They identify four
levels that can be used for describing a computer. These are the electronic circuit level, the logic
design level, the programming level and the processor-memory-switch level. The third level
refers to the concept of architecture mentioned above. The fourth level is a top-level description
of a computer system based on the specification of the basic units like the processor, memory
and so on, as well as their interconnections.
The next step in refining the concept of computer architecture was to extend the concept of
architecture equally to both the functional specification and the hardware implementation (Sima
1977, Dasgupta 1981).
Since the authors’ just quote also made use of the multilevel description approach, they
introduced a ‘two dimensional’ interpretation. Here, one of the ‘dimensions’ is the level of
abstraction, in much the same way as introduced by Bell and Newell (1970). The other,
orthogonal ‘dimension’ is the scope of interest. Here, they differentiate at each level between a
black-box-like functional specification and the description of the implementation.
Correspondingly, they distinguish between ‘logical’ and ‘physical’ architecture (Sima 1977) and
endo-and exo- architecture (Dasgupta 1981), respectively.
As pointed out later in this section, the two dimensions considered by these authors, constitute
(cuk ysuk] cuk gksuk) single, hierarchical description framework with increasing levels of
abstraction.
Although this interpretation of the architecture concept is quite useful for abroad range of
computers, it assumes the use of the von Neumann model of computation. Therefore, in order to
generalize the concept of computer architecture, we shall include in its definition a ‘third
dimension’, the model of computation.
Concerning the level of consideration, there are mainly three levels of interest (in increasing
degree of abstraction):
• The micro - machine level (in micro - programmed processors),
•the processor level, and
•the computer-system level
The term ‘architecture’ can be used at each level of consideration with two distinct scopes of
interest. If we are interested in the functional specification of a computer, we are dealing with its
abstract architecture. Or, if we are interested in its implementation, we are concerned with its
concrete architecture. Evidently, the abstract architecture reflects the black-box view whereas
the concrete architecture covers the description of the internal structure and operation.
The abstract architecture is also referred to as an exo-architecture, an external or logical
architecture, a black-box description, or in certain contexts as a programming model and
behavioral description