• Keine Ergebnisse gefunden

I op code register 1 register 21 flag I

Im Dokument SPRI NG JOI NT COMPUTER CONFERENCE (Seite 175-191)

Figure 2-Machine-code type micro-instruction format

compact and efficient. A multiplicity of fields in a micro-instruction which is executed in one machine cycle permits the microprogrammer to specify and use fully the parallel processable opportunities available in the system control. This type of microprogram control is useful particularly in specifying the operating system functions of a large computer because (1) efficient and compact implementation of highly active operating system functions can reduce in time the wasteful oyerhead and (2) such functions once imple-mented become building blocks for others.

In the other type (the machine code type) , the micro-instructions, or for our discussion, "mini" -instructions are sequences of commonly occurring elementary func-tions (Figure 2). The format of a mini-instruction is similar to that of conventional machine code instruc-tion: one operation code field, one or more operand fields, and, optionally, a flag field for special conditions.

Operands in mini-instructions are, in general, origi-nating and/or destination registers of some information to be transfered. A mini-instruction may be character-ized as follows: each mini-instruction represents an elementary functional task, and any macro-instruction (i.e., machine code) can be built up from mini-instruc-tions. A mini-operation differs from a micro-operation in that the former represents a sequence of gating operations requiring a number of basic clock cycles while the latter requires one clock cycle. The mini-operation may be considered as consisting of a few micro-operations. In fact many mini-instructions re-semble basic machine instructions in some simple computers such as an IB1\1 650. The "ADD" mini-instruction of the Interdata lVlodel 4 computer, for example, is performed in three micro-steps as follows:1 (1) transfer to the adder the contents of the A register;

(2) transfer to the adder the contents of the register specified by the Source (S) field of the instruction;

(3) transfer the contents of the adder (i.e., sum) to the register specified by the Destination (D) field of the instruction.

In the instruction, the registers are designated by alphanumeric names which, in turn, are translated into

A Study of User-lVlicroprogrammable Computers 167

and represented by the four-bit S- and D-fields (Figure 8). l\1ini-operations are either wired in the machine or activate micro-programs in the control memory. Iri the case of the latter, the instruction execution time is longer simply because of additional memory refer-ences. Although mini-instructions are not suit.able for flpecifying overlapping operations, data flows within an individual mini-instruction may be performed in parallel. The mini-programs are generally user-oriented and easier to write and debug. As in the case of high level languages, the storage requirement for mini-programs are smaller than their microprogram counter-parts (up to 20 per cent) but additional control memory or \vired-in logic is necessary for their interpretation.

Users

The motives for the user to use microprogramming are many. In order to discuss problems from the user's viewpoint, we classify computer users largely into two categories according to their main motives and inter-ests in using microprograms. The first, called the owner-user, consists of those who own the computer system, maintain, manage and schedule its use. The administrator of a computer center, systems program-mer, etc. are in this category. They do not necessarily design or run application programs. They are mainly interested in the maximum utilization of the computer resources by the customer programs.

The second is called the customer-user who actually uses the computer to run his programs. Anyone in-dividual could be both owner-user and application-user depending on his interest and the type of job he runs at the moment. This includes those who use the system to perform computational tasks not related to the management and upkeep of the computer system.

The customer-user is mainly interested in the maximum convenience and dependability such as better turn around time or response time etc., for processing his jobs.

The difference of purpose and interest in computer usage necessarily differentiates the users' interests in microprogramming.

:;\UCROPROGRAl\llVIING SITUATIONS

The two types of users try to restructure the com-puting system in two different ways; the owner-user tries to maximize the utilization of his equipment by the customers and the customer-user tries to maximize the performance of the equipment in solving his problem.

168 Spring Joint Computer Conference, 1970

M icroprogrammin,g for owner-user

The primary motive for the user-owner wanting access to microprogram store for its content modifica-tion is to accommodate system expansion or change.

EIllulation

One primary area is emulation which reduces the reprogramming costs due to change over to new systems having many similar instructions and addressing structures.13 Emulation can be loosely defined as a combined software/hardware interpretation of the machine instruction of one machine by another. In a conventional non-microprogrammed machine, the emu-lation to be successful requires that the instruction formats and repertoire must be very similar. A micro-programmed machine, on the other hand, can emulate a wider variety of machines. In particular however, experience indicates that word lengths of the host com-puter must be same or some convenient multiple of the target computer being emulated. It has been found desirable that the number of arithmetic registers in the host· machine must at least be equal to or greater than that of the target machine simulated for efficient emulation. Another desirable feature to have in the host microprogrammable machine is that there be a number of toggles (flip flops) which can be used for setting and branching by appropriate conditional micro-operations.

Expansion of 1-0 and MeIllory

Possibly the greatest benefit to the owner-user is ac-crued when microprogramming is used to accommodate the addition of new 1-0 devices, or systems adjuncts like associative memories or additional memory capacity.

One can categorize the added chores that the system has to accommodate due to the expansion of 1-0 and memory.

In the case of added 1-0, they can be increased interrupt activities, special 1-0 formating, manipulation of variable length fields, new 1-0 commands (if new de-vices are added), and special error recovery procedures.

In the case of increased-memory capacity, there is the problem of addressing associated with the increase in the number of pages in the paging schemes. New microprograms can be written to reinterpret old 1-0 commands to take into account the change.

Adding New Processing Versatility to SysteIll The owner-user to accommodate scientific customers may provide specialized array of new commands or

fast subroutines (which can be partly microprogram-med) not provided originally in the system architec-ture of the computer, e.g., commands for multiprecision, floating-point arithmetic, radex conversion, etc.

Redistribution of Operating System Functions Occasionally a redistribution of system functions between hardware, software and firmware may be in order. Principal reasons may be new applications and new devices added into the system. For example, the introduction of a real time control system may require periodic monitoring and instant servicing of high priority interrupts. Frequent use of a function or the immediacy of response can be good reasons for microprogramming part or whole of the function, rather than leaving it in the software.

System reconfiguration due to an application need or failure of some system device is another instance where redistribution of operating system functions may be desirable. Incurring changes can also be met by modifying microprograms of some functions.

Microprogramming for customer-user

To the customer user, access to microprogram control has many advantages which are fraught with head~

aches to owner-user and the system. We shall· briefly outline a few avenues of benefit to the customer-user.

Real time environment

Microprogramming may be a solution when machine instructions and assembly language programming can not keep up with process, where the process is primarily CPU limited.

Application orientation

Where it is desirable to execute the problem in a manner naturaLto the process such as in certain problem oriented machine languages,6 . it becomes desirable to interpret application languages and data structures in their natural form to facilitate on-line debugging, modifying and program building. In these cases, the statements in application language may be executed directly via microprogrammed interpretation. To carry this further, by having access to a dynamically alterable microprogram store, one can particularize the computer dynamically to match with the varying problem types and environments as encountered, for example, in

a

jobshop environment. In this manner, the

process-oriented, higher-level language can be executed easily via a microprogram interpreter.

PerforlDance enhancelDent of production ProgralDs

When some procedures of a production-type program which is run frequently on different sets of data, e.g., payroll, are executed time and again, they can be microprogrammed to enhance the performance of the program and reduce the overall execution time. Sta-tistics gathering for the usage frequency and execution time of procedures can be performed concurrently with execution processes again by the use of micropro-grammed adjuncts. Thus by analyzing the usage sta-tistics it is possible to microprogram selected parts of the program as well as selectively storing machiil-e language instruction strings in high speed control memories to improve the execution time of the program.

In the second part of this paper, we shall develop an algorithm for this purpose.

ADJUNCTS FOR USER APPLICATIONS

We shall review some key user applications and con-sider what other hardware-software aids needed in addition to dynamically alterable microprogram storage.

Realtime environment

In the area of real-time control applications where vigilance to high priority interrupts and immediacy of response are essential, the detection and classifica-tion of interrupts is conveniently performed by a fast associative memory. An associative memory is pre-dicated here since it provides the flexibility of assigning any priority to the interrupt lines and having so as-signed, the identification and servicing can proceed accordingly. Real time applications also need an access to clock (timer) for purposes of sampling, etc. Amongst the software adjuncts there is a ne~d for a local monitor (executive) to provide "a better collaboration" and communication between the real time process and the system executive. Interrupt monitoring and control of associative memory could be more beneficially micro-programmed.

Simulation

In the area of simulation of dynamic processes, fre-quently used subroutines such as function generators,

A Study of User-Microprogrammable Computers 169

random number generators and transcendental function generators are best microprogrammed. Real time clocks and associative memories form useful hardware ad-juncts iIi this area also.

Pattern recognition

The area of pattern/ symbol recognition has de-veloped many picture processing languages. Many of them require extensive matching and bit manipula-tions. In particulat, they involve neighborhood process-ing of clusters and adjacent bits. Here again, micro-programming with associative processing could ease the task.

Alterable microprogram store

Best benefits of microprogramming are accrued when the user has access to certain specified portions of microprogram store and has ability to modify its con-tents. The system can use a relatively fast possibly unalterable read-only memory to interpret basic machine operation codes and certaiIi frequently used subroutines like radex converters, etc. The dynamically alterable microprogrammed memory can be shared between the system (owner-user) and the customer-user. Most preferably the customer user portion must be paged. For most common functions, the system with a modest instruction repertoire would need about in the order of 106 bits or 2K words of approximately 48 to 64 bits per word. The access time of the micropro-gram memory must be at least between ~ and

%

times

that of the main memory. The user microprogram store must be paged or otherwise it may impose costly alloca-tion and garbage collecalloca-tion problems with multiple concurrent users. The cost of renting of the micropro-gram memory must be reasonable to the customer user.

Of course, because of its very nature, the user must be knowledgable at least to the extent of using it to better cost performance ratio. It is obvious that its use will be favored by production-type processor-oriented prob-lems rather than otherwise. Also, the system owner must allow larger quantum of computational time to the users using microprogramming for the very reason that since theIr memories are expensive their cost advantage lies in their frequent usage.

Micro-instruction structure

To be readily usable, the micro-instruction structure must be simple. Some third generation machines such as an IBM 360/50 require so much knowledge of the

170 Spring Joint Computer Conference, 1970

sophisticated, internal organization of the machine control that micro-programming for them is a night-mare. It is essential for easier microprogramming that the microprocessor of the "visible" machine which the microprogrammer sees and uses be simple.

This also brings up a need for an assembly language or a higher level language for microcode. The customer-user, unlike the owner-customer-user, would use the microcode only if it is simple and convenient to write and debug.

l\1icro-instructions must be syntactically sound and should not contain any "unnatural" funnies. Assemblers and compilers, on the other hand, tend to reduce the

"tightness" or compactness of the final microprograms.

Thus, there is a possibility of writing microprograms at two levels: micro-level and mini-level. The micro-level operations are the most elemental operations beyond which the machine cannot be controlled. They may represent basic gate level controls. Microprogramming is the method of describing these micro-level operations to execute certain computational tasks. This mode is beneficial to system owner-user in implementing 1-0 controls, and certain frequent operating system func-tions. The key issue is that efficient code is essential here and programs once written become building blocks for others. The mini-operations are sequences of com-monly occurring micro-operations which are character-ized by the following: (a) Each mini-operation repre-sents an elemental functional task that the system can perform, and (b) any general purpose instruction repertoire can be built up from combinations of mini-operations. Specifically, the mini-operations will be user-oriented. The motive for introducing mini-opera-tions is twofold. Mini-programs are easier to write than microprograms and hence easier to debug. Just as in the case of higher level language, the amount of storage space needed to store mini-programs will be vastly smaller than that required by microprograms as much as 20 per cent. Of course, the execution time for mini-programs will be longer than execution of microprograms due to an additional level of interpreta-tion. lVlini-level operations could provide parallel processing capabilities whereas microprograms can only be sequential. One version of mini-instructions can be subsets of Iverson's AP L operators which make array representation and parallel manipulation possible.

This again provides economy in notation and storage.

It appears that re-entrant types of microprograms with physically separate high speed scratch pad storage area may be advantageous in the future. To summarize, the goodies required for multi-user microprogram sharing and use are similar to thofle in a conventional multi-programmed area.

Another requirement would be the addressing of arrays and instructional information stored in the

microprogram memory. Since it is believed 80 per cent of all numerical calculations involve matrix manipula-tion such processor limited computamanipula-tions can benefit by matrix type addressing facilities and reduce the user storage requirements of microprogram memory. Since most of the addressing within a microprogram memory is always within the close proximity of the address of micro-instruction, method of "proximity" addressing (e.g., incremental addressing) can be helpful. Since logic is cheap, arithmetic transformation of addresses may be very helpful as against a random transformation as in paging. privilege mode, the customer-user will not have access to:

(1) Any micro-operations dealing with address transformation, memory or I -0 barricades;

(2) Any micro-operation dealing with hardware functions of the executive, like interrupt handling and polling mechanisms, etc.

Let us now consider the approaches for implementa-tion of these. One obvious soluimplementa-tion is to have two micro-program memories, one which can execute the un-restricted operations of the system and the other the restricted subset allowed to the user. The operation decoder will not execute any system micro-operations which come from user portions of a program memory.

Parallel surveillance and debugging

When multiple users are using the microprogrammed control memory concurrently, it is essential for the system to provide close surveillance. The possibility of one program clobbering another program uninten-tionally is high when the program being executed is new or being debugged. The tangible approaches to the problem include any or all of the following:

(1) Restricting the users to a subflet (unprivileged) of micro-operations;

(2) Sequencing each machine instruction in two modes: normal mode and debugging mode. In the debugging mode each instruction will be scanned for possible syntax errors and conft.icts in address space, etc. Also sentinels, breakpoints and test address in-formation ,vill be serviced. Any desired intermediate

computations will be saved. In the normal mode the surveillance operations will be suppressed.

In the second approach instead of interweaving the surveillance and execution sequences, one can have two distinct micro-program sequencing units, one unit for normal instruction execution and the other for over-seeing and interrogating the execution sequence. This, of course, involves the availability of multiple program control units. The use of a supervisory micro-program monitoring each machine code operation is equivalent to each program having its own individual supervisor.

Relocatability

Relocatability of a program implies that it can be put into any contiguous set of addresses in a memory and executed with minor reinterpretation of its address fields .. Specifically, it implies that the addressing is relative to a reference. By having relocatable features, the micro or mini-programs can be stored contiguously in the microprogram memory and hence it is possible to serve a number of users of microprograms by swap-ping them in and out of the expensive microprogra;m-storage.

PERIPHERAL AREA

The first good use of microprograms came in the peripheral area when IBM developed the I/O channel for their pre-System 360 computers. The channel isa small microprogrammed computer itself; it communi-cates with the central processor and controls the various I/O devices. The channel transfers the required amount of data between locations in main memory and I/O devices, protects against unauthorized transfer of information into main memory, signals the processor units of I/O operation status by means of interuption and permits concurrent activities of the central proces-sor and I/O devices (i.e., multiprogramming). :Micro-programs of the channels thus provide flexibility since they handle a wide variety of I/O devices as well as complex communications with memory and the processor.

Microprograms are also used in satellite computers of a large computer system. The satellite computer is

Microprograms are also used in satellite computers of a large computer system. The satellite computer is

Im Dokument SPRI NG JOI NT COMPUTER CONFERENCE (Seite 175-191)