COMPUTER ORGANIZATION AND ARCHITECTURE DESIGNING FOR PERFORMANCE

ORGANIZATION AND ARCHITECTURE

In describing computers, a distinction is often made between computer architecture and
computer organization. Although it is difficult to give precise definitions for these
terms, a consensus exists about the general areas covered by each (e.g., see [VRAN80],
[SIEW82], and [BELL78a]); an interesting alternative view is presented in [REDD76].
            Computer architecture refers to those attributes of a system visible to a programmer
or, put another way, those attributes that have a direct impact on the logical
execution of a program. Computer organization refers to the operational units
and their interconnections that realize the architectural specifications. Examples of
architectural attributes include the instruction set, the number of bits used to represent
various data types (e.g., numbers, characters), I/O mechanisms, and techniques
for addressing memory. Organizational attributes include those hardware details
transparent to the programmer, such as control signals; interfaces between the computer
and peripherals; and the memory technology used.
              For example, it is an architectural design issue whether a computer will have a
multiply instruction. It is an organizational issue whether that instruction will be implemented
by a special multiply unit or by a mechanism that makes repeated use of
the add unit of the system.The organizational decision may be based on the anticipated
frequency of use of the multiply instruction, the relative speed of the two approaches,
and the cost and physical size of a special multiply unit.
             Historically, and still today, the distinction between architecture and organization
has been an important one. Many computer manufacturers offer a family of
computer models, all with the same architecture but with differences in organization.
Consequently, the different models in the family have different price and performance
characteristics. Furthermore, a particular architecture may span many years
and encompass a number of different computer models, its organization changing

with changing technology. A prominent example of both these phenomena is the IBM System/370 architecture. This architecture was first introduced in 1970 and included
a number of models. The customer with modest requirements could buy a
cheaper, slower model and, if demand increased, later upgrade to a more expensive,
faster model without having to abandon software that had already been developed.
Over the years, IBM has introduced many new models with improved technology to
replace older models, offering the customer greater speed, lower cost, or both.These
newer models retained the same architecture so that the customer’s software investment
was protected. Remarkably, the System/370 architecture, with a few enhancements,
has survived to this day as the architecture of IBM’s mainframe product line.
               In a class of computers called microcomputers, the relationship between architecture
and organization is very close. Changes in technology not only influence organization
but also result in the introduction of more powerful and more complex
architectures. Generally, there is less of a requirement for generation-to-generation
compatibility for these smaller machines. Thus, there is more interplay between organizational
and architectural design decisions. An intriguing example of this is the
reduced instruction set computer (RISC), which we examine in Chapter 13.
                This book examines both computer organization and computer architecture.
The emphasis is perhaps more on the side of organization. However, because a computer
organization must be designed to implement a particular architectural specification,
a thorough treatment of organization requires a detailed examination of
architecture as well.

STRUCTURE AND FUNCTION

Acomputer is a complex system; contemporary computers contain millions of elementary
electronic components.How, then,can one clearly describe them?The key is to recognize
the hierarchical nature of most complex systems, including the computer
[SIMO96].Ahierarchical system is a set of interrelated subsystems, each of the latter, in
turn, hierarchical in structure until we reach some lowest level of elementary subsystem.
            The hierarchical nature of complex systems is essential to both their design and
their description.The designer need only deal with a particular level of the system at
a time. At each level, the system consists of a set of components and their interrelationships.
The behavior at each level depends only on a simplified, abstracted characterization
of the system at the next lower level. At each level, the designer is
concerned with structure and function:
            • Structure: The way in which the components are interrelated
            • Function: The operation of each individual component as part of the structure
           In terms of description, we have two choices: starting at the bottom and building
up to a complete description, or beginning with a top view and decomposing the
system into its subparts. Evidence from a number of fields suggests that the topdown
approach is the clearest and most effective [WEIN75].
            The approach taken in this book follows from this viewpoint. The computer
system will be described from the top down.We begin with the major components of
a computer, describing their structure and function, and proceed to successively
lower layers of the hierarchy. The remainder of this section provides a very brief

overview of this plan of attack.


Function
Both the structure and functioning of a computer are, in essence, simple. Figure 1.1
depicts the basic functions that a computer can perform. In general terms, there are
only four:
              • Data processing
              • Data storage
              • Data movement
              • Control
             The computer, of course, must be able to process data.The data may take a wide
variety of forms, and the range of processing requirements is broad. However, we shall
see that there are only a few fundamental methods or types of data processing.
              It is also essential that a computer store data. Even if the computer is processing
data on the fly (i.e., data come in and get processed, and the results go out immediately),
the computer must temporarily store at least those pieces of data that are being


worked on at any given moment.Thus, there is at least a short-term data storage function.
Equally important, the computer performs a long-term data storage function.
Files of data are stored on the computer for subsequent retrieval and update.
            The computer must be able to move data between itself and the outside world.
The computer’s operating environment consists of devices that serve as either sources or destinations of data.When data are received from or delivered to a device
that is directly connected to the computer, the process is known as input–output
(I/O), and the device is referred to as a peripheral.When data are moved over longer
distances, to or from a remote device, the process is known as data communications.
             Finally, there must be control of these three functions. Ultimately, this control
is exercised by the individual(s) who provides the computer with instructions.Within
the computer, a control unit manages the computer’s resources and orchestrates the
performance of its functional parts in response to those instructions.
             At this general level of discussion, the number of possible operations that can
be performed is few. Figure 1.2 depicts the four possible types of operations. The
computer can function as a data movement device (Figure 1.2a), simply transferring
data from one peripheral or communications line to another. It can also function as
a data storage device (Figure 1.2b), with data transferred from the external environment
to computer storage (read) and vice versa (write). The final two diagrams
show operations involving data processing, on data either in storage (Figure 1.2c) or
en route between storage and the external environment (Figure 1.2d).
            The preceding discussion may seem absurdly generalized. It is certainly possible,
even at a top level of computer structure, to differentiate a variety of functions,
but, to quote [SIEW82],
             There is remarkably little shaping of computer structure to fit the
              function to be performed.At the root of this lies the general-purpose
              nature of computers, in which all the functional specialization occurs
              at the time of programming and not at the time of design.
                     Structure
Figure 1.3 is the simplest possible depiction of a computer. The computer interacts
in some fashion with its external environment. In general, all of its linkages to the
external environment can be classified as peripheral devices or communication
lines.We will have something to say about both types of linkages.


itself, which is shown in Figure 1.4.There are four main structural components:
           • Central processing unit (CPU): Controls the operation of the computer and
              performs its data processing functions; often simply referred to as processor.
           • Main memory: Stores data.
           • I/O: Moves data between the computer and its external environment.
        • System interconnection: Some mechanism that provides for communication among CPU, main memory, and I/O. A common example of system interconnection is by means of a system bus, consisting of a number of conducting wires to which all the other components attach.
          There may be one or more of each of the aforementioned components.Traditionally,
there has been just a single processor. In recent years, there has been increasing
use of multiple processors in a single computer. Some design issues relating
to multiple processors crop up and are discussed as the text proceeds; Part Five
focuses on such computers.
Each of these components will be examined in some detail in Part Two. However,
for our purposes, the most interesting and in some ways the most complex
component is the CPU. Its major structural components are as follows:
                • Control unit: Controls the operation of the CPU and hence the computer
                • Arithmetic and logic unit (ALU): Performs the computer’s data processing
                  functions
               • Registers: Provides storage internal to the CPU
               • CPU interconnection: Some mechanism that provides for communication
among the control unit,ALU, and registers
Each of these components will be examined in some detail in Part Three, where we
will see that complexity is added by the use of parallel and pipelined organizational
techniques. Finally, there are several approaches to the implementation of the control
unit; one common approach is a microprogrammed implementation. In essence,
a microprogrammed control unit operates by executing microinstructions that define
the functionality of the control unit.With this approach, the structure of the control
unit can be depicted, as in Figure 1.4.This structure will be examined in Part Four.




Newest
Previous
Next Post »