previous | contents | next

16 Part 1 ½ Fundamentals Section 1 ½ Abstraction and Notation

will be neither useful nor used. On the other hand, there is a tremendous variety and quantity of information that potentially must be capable of being written into a description: word size, capacity, flow, operation rate, data-types, variations of operation rate for different classes of instructions, parity checking, technology, and on and on. Thus one needs a notation that responds to both these demands-and without being hopelessly complex and difficult to learn. Our attempt at a solution involves a basically simple language with comprehensive (and we think natural) ways of systematic abbreviation and abstraction. The FMS notation will be discussed in Chap. 3.

One advantage to viewing a computer system as a hierarchy of levels is that standard interfaces can be established. If the information flow across the interface is carefully specified, then interchangeable systems can be built on both sides of the interface. One classical standardized interface has been the ISP level. With the machine language precisely defined, hardware implementors have been able to produce machines with a marketable price and performance range while assuring program implementors that their software would execute correctly on any hardware implementation without modification. Thus the soft ware effort can be limited to producing one system. The ISP-level interface also allows hardware designers to incorporate the instruction set in newer, more cost-effective technology without invalidating existing software.

In their paper announcing the IBM System/360 computer, Amdahl, Blaauw, and Brooks [19641 identified three interfaces: architecture, implementation, and realization. They defined computer architecture as the attributes of a computer as seen by a machine language programmer. This definition includes the instruction set, instruction format, operation codes, addressing modes, and all registers and memory locations that may be directly manipulated or tested by a machine language program. Implementation is defined as the actual hardware structure, logic design, and data-path organization. Realization encompasses the logic technologies, packaging, and interconnection.

The terms architecture (when used to connote function), implementation, and realization can also be used at the program level in Fig. 1. Several standard architectures (interfaces) may be enforced at one time. Typical examples include the ISP, operating-system, high-level-language, and application-system levels. As hardware becomes less expensive, it is used to provide more functions. A prime example is the migration of operating- system primitives from software into microcode. Eliminating standard interfaces and bypassing levels of abstraction usually leads to improved system performance by eliminating the intervening levels of interpretation of information. (A decrease in performance may result if the higher-level functionality does not match its application. In such a case, the user has to generate lower-level primitives by applying more costly, functionally complex primitives. Consequently, incorporating new functions into hardware is carefully evaluated and adopted only after a standardized software interface has become stabilized through exposure to many diverse application environments.)

The concepts of hierarchical levels and levels of abstraction will appear repeatedly throughout the book. Chapter 8 illustrates these levels with respect to a simple computer, the PDP-8. Several systems are described at the register-transfer level (e.g., in Part 2, Sec. 1, on microprogrammed processors; Chaps. 18 and 19, on parallelism in the IBM System/360 Model 91; Chap. 33, on the Alto; Chap. 34, on the TMS1000; Chap. 35, on the PIC1650; Chap. 38, on the PDP-II; and Chaps. 48 and 49, on the evolution of HP calculators) in order to give the reader a firm understanding of design at this level. Because of a lack of space, more complex systems cannot be described in as much detail. The ISP and PMS levels are extensively used for these other systems. It is hoped that with the background gained from the register-transfer-level designs the reader can extrapolate such designs for these more complex systems.

 

References

Amdahl, Blaauw, and Brooks [1964].

previous | contents | next