a cobol oriented high level language machine

7
A COBOL ORIENTED HIGH LEVEL LANGUAGE MACHINE Masahiro Yamamoto Katsuya Hakozaki Nippon Electric Co., Ltd. Central Research Laboratories, Abstract A high level language machine architecture, COMBAT (Cobol Oriented Machine Basic ArchiTecture), hardware configuration and some evaluation results are presented. COMBAT is a COBOL oriented machine architecture with many facilities for efficient COBOL program execution. Most COBOL source statements are translated into a single COMBAT instruction. Many types of internal data, accessing capabilities for indexing and sub- scripting operations, data type conversion and decimal point alignment function have been provided. COMBAT machine consists of three processors. COMBAT machine instructions are executed in pipeline mode at their processors, which are organized of bit-slice-microprocessors, high speed register files, functional memories and special hardware modules built in PLAs or ROMs. It is obtained that COMBAT architecture IPF (Instructions Per Function), which indicates how many machine instructions correspond to a source statement, is about 1.O3. Moreover, average statement execution speed is about 5 ~ sec. i. INTRODUCTION (3) Many high level language machine arthitectures have been proposed and implemented by effective- ly using firmware techniques and/or hardware components for various high level languages. Almost all of them are built with micro- programming techniques on the conventional computer or organized of small scale semi- conductor devices, ICs or MSIs. A COBOL oriented high level language machine architecture(2), COMBAT (Cobol Oriented M~chine Basic ArchiTecture) and machine structt~e(I) presented in this paper are designed to be implemented using a mixture of microprograming techniques and large scale, powerful hardware components, like high speed RAMs, micro- processors, programmable logic arrays (PLAs) and special hardware units made of LSI or VLSI devices. COBOL programs are translated into high level COMBAT instructions by a software translator similar to a conventional compiler. User assigned COBOL processing in a source program can be manipulated at the COMBAT machine instruction level. The high level language translation process for a COMBAT machine is simpler than for a con- ventional machine, since COMBAT machine in- 4-1-1 Miyazaki, Takatsu, Kawasaki, 213, Japan structions are close to source statements. It is possible %o make program debugging at the source statement level. COMBAT machine instructions are efficiently executed with the aid of microprogram techniques and special hardware components dedicated t~ high level function processing. This high level machine is adopted to a con- ventional computer system as a special processor for language processing, or can be used as a stand-alone language processor in a distributed system. A COMBAT machine architecture, hardware structure, and some performance evaluation results are explained in the following sections. 2. MACHINE ARCHITECTURE COMBAT i s a COBOL o r i e n t e d h i g h - l e v e l language machine architecture. The architecture is characterized with many facilities for accessing to complex data structure, for intensive data manipulation and for table handling frequently used in COBOL programs. It is also intended to be effectively implemented with both micro- program techniques and higher functional hardware modules. Most COBOL statements can be translated into a s i n g l e COMBAT i n s t r u c t i o n . Complex state- ments are corresponded to a series of basic COMBAT i n s t r u c t i o n s , which perform an element- ary function. Moreover, many types of internal data formats corresponding to all the user defined data in COBOL DATA DIVISION have been provided. In order to cope with various data structures and types, data descriptors for accessing compli- cated data with complex data attributes are introduced. Data format conversion, decimal point align- ment and indexing or subscripting operations for array data accessing are automatically performed at the machine instruction level. 2.1 DATA FOR/MAT and DATA DESCRIPTOR A typical conventional computer involves only one or two decimal data types directly manipulated; zoned decimal and packed decimal formats. However, a COBOL user can specify other decimal data for displaying (e.g. leading-signed-decimal, separate-trailing- signed decimal formats, etc.). COMBAT provides six decimal types covering all the form@t~ required in the ANS COBOL specification (4j. References can be made to an individual element within a table of elements, by specifying index 58

Upload: masahiro-yamamoto

Post on 21-Jun-2016

215 views

Category:

Documents


2 download

TRANSCRIPT

Page 1: A COBOL oriented high level language machine

A COBOL ORIENTED HIGH LEVEL LANGUAGE MACHINE

Masahiro Yamamoto Katsuya Hakozaki

Nippon Electric Co., Ltd.

Central Research Laboratories,

Abstract

A high level language machine architecture, COMBAT (Cobol Oriented Machine Basic ArchiTecture), hardware configuration and some

evaluation results are presented. COMBAT is a COBOL oriented machine

architecture with many facilities for efficient COBOL program execution. Most COBOL source statements are translated into a single COMBAT instruction. Many types of internal data, accessing capabilities for indexing and sub- scripting operations, data type conversion and decimal point alignment function have been provided.

COMBAT machine consists of three processors. COMBAT machine instructions are executed in pipeline mode at their processors, which are organized of bit-slice-microprocessors, high speed register files, functional memories and special hardware modules built in PLAs or ROMs.

It is obtained that COMBAT architecture IPF (Instructions Per Function), which indicates how many machine instructions correspond to a source statement, is about 1.O3. Moreover, average statement execution speed is about 5 ~ sec.

i. INTRODUCTION (3)

Many high level language machine arthitectures have been proposed and implemented by effective- ly using firmware techniques and/or hardware components for various high level languages.

Almost all of them are built with micro- programming techniques on the conventional computer or organized of small scale semi- conductor devices, ICs or MSIs.

A COBOL oriented high level language machine architecture(2), COMBAT (Cobol Oriented M~chine Basic ArchiTecture) and machine structt~e(I) presented in this paper are designed to be implemented using a mixture of microprograming techniques and large scale, powerful hardware components, like high speed RAMs, micro- processors, programmable logic arrays (PLAs) and special hardware units made of LSI or VLSI devices.

COBOL programs are translated into high level COMBAT instructions by a software translator similar to a conventional compiler. User assigned COBOL processing in a source program can be manipulated at the COMBAT machine instruction level.

The high level language translation process for a COMBAT machine is simpler than for a con- ventional machine, since COMBAT machine in-

4-1-1 Miyazaki, Takatsu, Kawasaki, 213, Japan

structions are close to source statements. It is possible %o make program debugging at the source statement level.

COMBAT machine instructions are efficiently executed with the aid of microprogram techniques and special hardware components dedicated t~ high level function processing.

This high level machine is adopted to a con- ventional computer system as a special processor for language processing, or can be used as a stand-alone language processor in a distributed system.

A COMBAT machine architecture, hardware structure, and some performance evaluation results are explained in the following sections.

2. MACHINE ARCHITECTURE

COMBAT i s a COBOL o r i e n t e d h i g h - l e v e l language machine a r c h i t e c t u r e . The a r c h i t e c t u r e i s c h a r a c t e r i z e d w i t h many f a c i l i t i e s f o r a c c e s s i n g to complex d a t a s t r u c t u r e , f o r i n t e n s i v e da t a m a n i p u l a t i o n and f o r t a b l e h a n d l i n g f r e q u e n t l y used i n COBOL programs . I t i s a l s o i n t e n d e d to be e f f e c t i v e l y implemented w i t h bo th m i c r o - program t e c h n i q u e s and h i g h e r f u n c t i o n a l hardware modules .

Most COBOL s t a t e m e n t s can be t r a n s l a t e d i n t o a s i n g l e COMBAT i n s t r u c t i o n . Complex s t a t e - ments a re c o r r e s p o n d e d to a s e r i e s of b a s i c COMBAT i n s t r u c t i o n s , which pe r fo rm an e l e men t - a r y function.

Moreover, many types of internal data formats corresponding to all the user defined data in COBOL DATA DIVISION have been provided. In order to cope with various data structures and types, data descriptors for accessing compli- cated data with complex data attributes are introduced.

Data format conversion, decimal point align- ment and indexing or subscripting operations for array data accessing are automatically performed at the machine instruction level.

2.1 DATA FOR/MAT and DATA DESCRIPTOR

A typical conventional computer involves only one or two decimal data types directly manipulated; zoned decimal and packed decimal formats. However, a COBOL user can specify other decimal data for displaying (e.g. leading-signed-decimal, separate-trailing- signed decimal formats, etc.). COMBAT provides six decimal types covering all the form@t~ required in the ANS COBOL specification (4j. References can be made to an individual element within a table of elements, by specifying index

58

Page 2: A COBOL oriented high level language machine

A COBOL ORIENTED HIGH LEVEL LANGUAGE MACHINE 59

operation using a n index-name o r an index-data- item. COMBAT prepares two internal data types corresponding to them. Figure i shows six decimal data, index-name and index-data-item formats.

COBOL programs manipulate data for complex structures and attributes, and perform sophisticated operations, like picture driven editing. As a powerful means to accomplish these operations, there are two data descriptors, in which data format and character code conversion, address boundary checking for array data, zero or space character filling for BLANK WHEN ZERO clause, round off or up and edit operations can be assigned. Figure 2 shows data descriptor formats.

DATA TYPE DATA FORMAT

2.2 COMBAT INSTRUCTION

COMBAT instructions are composed of operation code, variant and multiple operand syllables.

It is important to provide powerful data accessing facilities in order to efficiently execute COBOL programs. COMBAT has some simple operand syllable types for simple data accessing and other intensive ones for complex data. There are four operand syllable types. A literal syllable, involving immediate data, is used for short numeric and character constants or for all figurative constants in COBOL source programs. When a COBOL source program is translated into several COMBAT instructions, intermediate data between them are required. A ~orking register syllable, whose content is stored in a high speed memory, is used for

COBOLUSE

(i) Signed Packed Decimal

(2) Signed Unpacked Decimal

(3) Unsigned Unpacked Decimal

(4) Leading Signed Unpacked Decimal

(5) Trailing Separate Signed Unpacked Decimal

(6) Leading Separate Signed Unpacked Decimal

(7) Index Name

(8) Index D a t a Item

W h e r e

I°',°' I °~, °'] " ) °°, ~' I

;J

I z, e'l ~ ,~'I . I~ ,°4

' I~,°4

Iz,D, Iz,o21 '~ I z,Dol s~ I

" I z P.,] z Do I I ~,Iz o,I ,,

2 b y t e 2 4 2

I LIMIT, siZE, ( i -1) . s iz~ , i ~ z x [ i~EX N~,,~

I (I-l).SIZE INDEX I INDEX DATA IT~

D : SI : $2 : LIMIT : SIZE : tab INDEX (I) :

Figure 1

n=l-]l COMP-3

n=l~18 COMP/DISPLAY(SIGN IS TRAILING)

" DISPLAY (NO SIGN)

" DISPLAY (SIGN IS LEADING)

" DISPLAY (SIGN IS TRAILING SEPARATE)

" DISPLAY (SIGN IS LEADING SEPARATE)

Digit (0~9), Z: Zone (11112) , 4 bit sign code (11002; positive, 11012; negative) 8 bit sign code (010011002; positive, 010000002 : negative) table or list size table element size

o c c u r e n c e n u m b e r

COMBAT D e c i m a l D a t a a n d I n d e x D a t a F o r m a t

0 3 5 8 13 14 19 20 24

STZ D I S P

(a) arithmetic data descriptor

0 34 6 8 12 20 24

D B C LI STN STN, D I S P

(b) character data desciptor

Where ; TYPE : Data Type LIMIT: DIM : Dimension Number SIZE : LENGTH : Data Length KEY : SCALE : Integer Part Length J : BWZ _. Blank When Zero CC : STN, STE: Segment Specification C :

47 48 63 64 79 ----4F - ~ .... 1/'- --I

L I M I T I S I Z E I 1 ~ 3 I 1 ~ 3 I

---II-- __ L_ _ _¢]._ _ _I

47 48 63 64 79 - - - - - ~ - - T - - - - f ~ - - - - - ~

L I M I T I S I Z E I 1 ~ 3 I 1 ~ 3 (

Table Size Element Size Ascending or Descending Key Justify Code Conversion ALL clause specification

Figure 2 Data Descriptor Format

Page 3: A COBOL oriented high level language machine

60 M. YAMAMOTO and K. HAKOZAKI

temporarily holding their common data. A direct operand syllable, specifying simple attribute data in a main memory, corresponds to usual accessing mechanism the same as in conventional computers. An indirect operand syllable is used f o r a c c e s s i n g complex da t a th rough a da t a d e s c r i p t o r i n the f o l l o w i n g cases ; 1) Decimal p o i n t a l ignmen t 2) S u b s c r i p t i n g 3) E d i t i n g o p e r a t i o n 4) Round off or up, justify clauses 5) Variable size table An operand syllable, commonly used through more than two consecutive instructions, is specified only once, since a variant syllable has an operand chaining function to omit operand syllables.

Indexing and subscripting operations frequently used in COBOL programs are resolved at the machine instruction level merely by writing index or subscript data for each dimension after the operand syllable for the entire table. For example, an element in a 2- dimension array, A(I, J) is manipulated by executing a series of machine instructions in a conventional computer. A COBOL compiler for a system/360-like computer, for example, may produce an object code sequence as shown in Fig. 3a. On the other hand, A(I, J) can be simply expressed in a COMBAT instruction, as shown in Fig. 3b. Array bound check, as well

LH RI, D1 (BI) CH RI, D2 (BI) j Test ILl BC LH R1, D3 (BI) CH RI, ])4 (BI) j Test J~L2

BC L RI, D5 (BI) DISPI--*RI A RI, D6 (BI) DISP + DISP2-*RI MVC LOC4(5 , BI) , LOCI, (RI)

3 (a) System/360 like architecture

A (I, J)

A I J B

I / I°dex-name J

index-name I i

[ __ ~ ~ Table A

A(I, J) 3 (b) COMBAT Machine

Figure 3 Indexing Operation

as address computation with table origin address and index data items specified in the instruction, is performed in accessing to an A(I, J).

There a re about 50 COMBAT. i n s t r u c t i o n s , ranging from a simple one, like a conventional machine instruction, to high level macro instructions in response to COBOL source statements.

Arithmetic and data transfer statements correspond to a two-, three- or multi- operand COMBAT instruction. Figure 4 shows a COMBAT instruction example corresponding to a COBOL ADD statement. COBOL SEARCH and PERFORM operations are very complex. This results in too complicated a handware design to translate them into a single COMBAT instruction. In COMBAT architecture, they are translated into several instructions, which perform their basic operations. For example, a SEARCH statement can be divided into two types of functions; one is element address updating and table limit checking, and the other is testing to determine whether or not a current element is the desired one. A SEARCH statement is translated into a COMBAT SEARCH instruction, executing the former function and conditional instructions, performing the latter function.

A PERFORM statement is also translated into a COMBAT PE~FORM instruction and conditional instructions. The COMBAT PERFORM instruction accomplishes changing loop control parameters and transferring control to the specified procedure. Conditional instructions evaluate loop termination conditions.

Complex data manipulation statements, INSPECT, STRING and UNSTRING, are translated into a

COMBOL Source Statement

ADD A(I) TO B(b)

I : Index Name

b : Subscript Datum

Corresponding COMBAT instruction

IADD2 [Aii IB~ " ~ D .... iptor

FiNe 4 l COMBAT instruction example (ADD)

l Index

Page 4: A COBOL oriented high level language machine

A COBOL ORIENTED HIGH LEVEL LANGUAGE MACHINE 61

series of basic COMBAT instructions similar to a SEARCH statement.

Figure 5 shows an INSPECT statement example, which consists of several COMBAT TALLY instructions, executing a simple INSPECT operation for only one of the scanning opcrands in it.

3. HAEDWARE CONFIGURATION

As functionality of an architecture becomes high, several different implementation methods are required, in order to obtain better price/

performance. A COMBAT machine is composed mainly of three

major processors, Instruction Fetcher (IF), Operand Fetcher (OF) and instruction EY~cutor (~X), as shown in Figure 6. COMBAT machine instructions are executed in pipeline mode at their processors.

While the EX processor is executing the first instruction, the OF processor fetches the operand needed for the second instruction and the IF processor fetches the third instruction, as drawn in Figure 7.

Their processors are implemented with special execution units used solely in their processing, since COMBAT architecture is more complex and intensive than that of a conventional machine. These execution units can he made of powerful and low cost bipolar microprocessors or PLAs, as well as special hardware modules, (e.g,, control information generator, data convertor and decimal point alignment unit).

3.1 INSTRUCTION FETCHER

The IF Processor gets an operation code and variant and consecutive operand syllables through an Instruction Buffer Register (IBR)

operations to prefetch the following instruction stream into an IBR vacant area.

An operation code, variant and operand number involved in this instruction are transferred to the OF Processor through interface First-In- First-Out (FIFO) memory for this purpose.

The main Instruction Fetcher work is an operand address development and internal descriptor generation for each operand in an instruction. Different bits of operand information in an operand syllable and data descriptor are merged into an internal descriptor, which consists of data type, data

COBOL Source S tstement

INSPECT S TALLYING N I FORALL B I B]~ORED I

N 2 FOR CHARAFTER D 2.

Corresponding cOMBAT instructions

rAL i LVll i lIB,'I i_L

I i°g t° . . . . . . . . . . i l L Ixt i

', ' - " - -qar et

u . . . . . . . . . . . . . -~ I I

|

Figure 5 A COMBAT instruction example (TALLY)

from the Main Memory. It initiates memory read lJ~vance ,I

I 1 - - l I i t '

• ~ ~U Processor ~ocessor ocessor I n i • J ~ • t ' , ]

o

~.~ ~ C ~

~ Note : S~ Scratch Pad Unit

Main FIF0-In-First Out Memory Memory

/

Fibre 6 C0~T machine confi~ration

Page 5: A COBOL oriented high level language machine

62 • YAMAMOTO and K. HAKOZAKI

length, decimal point scaling factor, operand access type and logical address. An operand access type, indicating either read, store or read-store, aids in determining whether operand data are to be fetched or transferred in the OF Processor. Table 1 shows operand access type examples.

Using this operand access type, an operand fetching and transfer operation in the OF Processor is possible with no attention directed to the operation code.

When an operand is an element in a table and indexed or subscripted up to three dimensions, it is checked to determine whether this element is in it. By using a ~able size in an index datum or descriptor, its effective element address is calculated.

Another important Instruction Fetcher work is to determine the next instruction address to be executed.

A conditional jump instruction is performed in the IF Processor and the instruction indicated in the branch address field is pre- fetched to be executed next.

A SEARCH statement is used to search a table for an element that satisfies a specified condition. Therefore, a COMBAT SEARCH instruction and conditional instructions corre- sponding to a SEARCH statement are usually executed repeatedly. After processing the last conditional instruction of a SEARCH statement, the specific previous COMBAT SEARCH instruction is Irrefetched to be executed again in the IF Processor.

The SEARCH statement is used to transfer control explicitly to one or more procedures and to return control implicitly for the normal sequence whenever execution of the specified procedure is complete.

After execution of a COMBAT PERFORM instruction, the IF Processor controls prefetching the target COBOL procedures to be executed next. At the completion of their execution, control is returned to the normal sequence using hardware stacks.

This processor is organized of eight 4-bit- slice microprocessors, FIFO memories and arithmetic logic units. FIFO memories are used to hold internal descriptors for up to eight operands.

Operand number and operand access type generation logic construction involves PLAs and ROMs for microprogram control support.

3.2 0PERAND FETCHER

The OF Processor reads out operand data from the main memory and performs a data type con- version, depending on an internal descriptor sent from the IF Processor, so that the EX Processor easily manipulates them.

When arithmetic data are fetched, a test is made to determine whether digit number and sign code are legal and their contents equal to zero. A sign bit is generated depending on a decimal data sign code.

Character strings less than thirty-two bytes long are read out and examined to determine whether all of them consist of only spaces or alphabetic characters. A data format conversion in the OF Processor is performed as follows. l) In arithmetic and compare instructions, all

arithmetic data are converted into either 32-bit signed binary or unsigned packed decimal numbers.

2) Transfer operation sending data are con- verted into either signed binary, unsigned packed decimal, unsigned zoned decimal, or character string depending on receiving d a t a type.

3) POINTER items in the INSPECT instruction and COUNT data in the STRING or UNSTRING instruction are constantly converted into signed binary numbers.

As a result of the above data conversion, many kinds of data in COMBAT instructions are reduced to a few internal data types and the number of data types, mainpulated in the EX P r o c e s s o r , becomes s m a l l .

The d a t a t r a n s l a t e d i n t h e OF P r o c e s s o r a r e s t o r e d i n t o 0pe rand R e g i s t e r F i l e s i n t h e EX P r o c e s s o r .

Above t e s t r e s u l t s and new d a t a t y p e a r e added i n t o an i n t e r n a l d e s c r i p t o r from t h e IF Processor.

The OF processor is mainly composed of three 4-bit-slice sequence controllers, a micro- program memory, 32 bit ALU, a data converter, a shifter and high speed temporary register files. As determination of the data con- version type is very complex, PLAs are utilized to generate the entry address for a microprogram routine performing this conversion.

TABLE 1 Operand Acces s Type Examples

0PERAND ACCESS TYPE

INSTRUCTION 0PERAND OPERAND OPERAND A B C

READ- ADD A T0 B READ STORE

ADD A B READ READ STORE GIVING C

EX

OF

IF

Processor

I i 2 3 4 [

m

1 2 3 4

I 2 3 4

Figure 7 Slice-time diagram

Time

Page 6: A COBOL oriented high level language machine

A COBOL ORIENTED HIGH LEVEL LANGUAGE MACHINE 63

3.3 INSTRUCTION EXECUTOR

According to an internal descriptor received from the OF processor through the interface FIF0 Memory, operand data for execution are obtained either from an operand register file or the main memory.

Processing presented in an operation-code takes place and resulting data are stored into the appropriate main memory location after data type conversion, decimal point alignment, and round up or round off operation, corre- sponding %o the receiving operand. Edit and blank-when-zero operations are also performed, if and as necessary.

MOVE operations are frequently used in trans- ferring result data of arithmetic instructions, data manipulation and table handling in addition to the MO%~ instruction.

In MO%~ operations, only decimal point alignment, sign insertion and space or zero filling operations are performed, since source data have been converted into receiving data type in the OF Processor. A special hardware unit supporting transfer operation is provided. It performs determination of data address to be obtained next, shift number for decimal point alignment, sign insertion byte address and filling or deleting character length.

In decimal addition and subtraction, unsigned decimal data are brought into a high speed working register file, which has a fixed decimal point and a 64-digit length. Using this special register file, the decimal operation is performed with no attention paid to the decimal point. In order to make rapid processing for short length data, the execution of the address words, whose contents are zero, is skipped. For this purpose, a control logic to detect their words is provided in the register file.

COBOL programs provide many kinds of editing operations; fixed insertion, floating insertion and zero suppression and replacement editing. Effective execution of these complex editing functions is attained in the form of a micro- operator with the aid of special hardware built with PLAs for generation of editing control information.

When a conditional branch instruction is %o be executed in the EX Processor, branch address and control signals are transferred to both IF and OF processors for their control state initial- ization. The IF Processor cancels prefetched instructions and starts manipulation of new instructions indicated in branch address. The OF Processor becomes an initial state and waits until new instructions are sent from the IF Processor.

The data processing to he performed in this processor is complex. The EX Processor is microprogram controlled by its precise and general control capabilities. It is not quite efficient enough to serially execute these operations step by step in mieroprogram control. Powerful hardware components for data type conversion, decimal point alignment and editing control are attached in order to sufficiently

support the microprogram control. The EX processor is organized of four 4-bit-

slice conventional sequence controllers 32-bit binary adders, a 8-digit decimal adder and high speed working register files.

4. PERFORMANCE EVALUATION

4.1 COMBAT ARCHITECTURE EVALUATION

As a measure to evaluate language proximity of machine architecture, instructions per function (IPF) are used which indicate how many machine instructions correspond on the average to a source statement.

COMBAT architecture IPF was measured in cases of simple business application programs and complex data processing. The IPF of NEAC ACOS series 77 computer, which is highly individualized for COBOL langusge processing, and IBM System 370 was also calculated for comparison.

These IPFs are shown in Table 2, which shows high COBOL language proximity of COMBAT. This means thai the high level isnguage translator for a COMBAT machine has become simple. The memory capacity required to hold the object programs is another important evaluation factor. COMBAT is found to be 15 or 50 % less in size than ACOS in each of the above eases.

COMBAT IPF improvement and compact object program generation are mainly due to the prepa- ration of high-level COMBAT instructions suitable for COBOL source statements, many types of internal data, directly corresponding %o user-defined data and powerful indexing or subseripting specification capabilities in the machine instruction.

4.2 HARDWARE EVALUATION

The performance of the pipelining, multi- processor system strongly depends on whether or not the processing volume in each processor is balanced.

Microprogram steps are estimated for each of the above mentioned processors, necessary to execute COMBAT instructions which are frequently used in a simple business application. It is found that the load of each processor is nearly balanced. The execution step ratio required in IF, OF, and EX processors is about 1 to 1 to 0.8. This ratio indicates the value of a simple case without indexing operation, decimal point ~lignmen% and editing function. When character

TABLE 2 IPF Comparison

COMBAT ACOS IBM 370

Simple Business Application

1.03 1.87 3.50

Complex Data Processing 1.2 10.9 97.8

Page 7: A COBOL oriented high level language machine

64 M. YAMAMOTO and K. HAKOZAKI

s t r i n g m a n i p u l a t i o n , t a b l e h a n d l i n g and a r i t h m e t i c i n s t r u c t i o n s w i t h complex d a t a a t t r i b u t e s and many k inds of o p t i o n s ( e . g . ROUNDED, SIZE ERROR or GIVING) a re execu ted , t he EX P r o c e s s o r p r o c e s s i n g becomes more complex. I n t h e s e c a s e s the IF and OF P r o c e s s o r e x e c u t i o n t imes i n c r e a s e l e s s t h a n the EX P r o c e s s o r . The e x e c u t i o n t imes t aken i n t h r e e p r o c e s s o r s a re n e a r l y equa l to each o t h e r .

For COMBAT machine pe r fo rmance eva lue . t i on , t o t a l e x e c u t i o n speed i s o b t a i n e d i n the f o l l o w i n g t h r e e c a s e s : (1) Each COMBAT i n s t r u c t i o n i s to be s e r i a l l y

execu ted t h r o u g h t h r e e p r o c e s s o r s . COMBAT machine e x e c u t i o n speed becomes t o t a l mic roprogram s t e p s t a k e n i n t h r e e p r o c e s s o r s . This f i g u r e g i v e s the w o r s t case v a l u e , as no o v e r l a p p e d o p e r a t i o n i s p o s s i b l e .

(2) Each COMBAT i n s t r u c t i o n i s to be execu ted i n p a r a l l e l and a l l c o n d i t i o n a l i n - s t r u c t i o n s a r e u n s u c c e s s f u l l y pe r fo rmed w i t h o u t b ranch o p e r a t i o n s .

COMBAT machine e x e c u t i o n t ime i s c o n s i d e r e d to be a summation of maximum v a l u e s among e x e c u t i o n t imes t aken i n t h r e e p r o c e s s o r s f o r each i n s t r u c t i o n . Th i s g i v e s t he b e s t c a s e . A l l t he p r o c e s s o r s o p e r a t e i n maximum p a r a l l e l i s m .

(3) Each COMBAT i n s t r u c t i o n i s execu ted the same as (2) excep t f o r c o n d i t i o n a l i n - s t r u c t i o n s b e i n g s u c c e s s f u l l y pe r fo rmed a t a 50 % r a t i o . This g i v e s a modera te v a l u e , which i s expec ted to be c l o s e to an a c t u a l speed . Table 3 shows COMBAT machine e x e c u t i o n speed i n a s imple b u s i n e s s a p p l i c a t i o n .

As a r e s u l t of d e t a i l e d e v a l u a t i o n , t he major r e a s o n s f o r COMBAT machine pe r fo rmance improve- ment a r e c o n s i d e r e d as f o l l o w s : (i) COMBAT instructions, dedicated for COBOL

user programs, are provided. (2) Straight data format conversion, depending

on source and destination data types, is considered.

(3) Internal descriptors describe all data attributes for user-defined data items

(4) Special hardware components support high level language processing.

(5) Multi-processor configuration is based on high speed micro processors.

TABLE 3 C(~IBAT machine execution speed

e x e c u t i o n speed in ~ sec

Case (i) 9.3

Case (2) 4.0

Case (3) 4.6

1 Machine Cycle = 200 n sec

5. CONCLUSION

COMBAT a r c h i t e c t u r e , h igh l e v e l language machine c o n f i g u r a t i o n and some pe r fo rmance e v a l u a t i o n r e s u l t s were d e s c r i b e d .

The COMBAT sys tem i s a h igh l e v e l language p r o c e s s i n g sys tem, c o n s i d e r e d to become optimum from b o t h machine a r c h i t e c t u r e and hardware d e s i g n s i d e s . The COMBAT a r c h i t e c t u r e i s h i g h l y d e d i c a t e d f o r COBOL program e x e c u t i o n . The COMBAT machine i s implemented w i t h low c o s t , h i g h pe r fo rmance LSI and VLSI d e v i c e s . In the COMBAT machine, b e t t e r p e r f o r m a n c e / c o s t t han a c o n v e n t i o n a l computer a t the same hardware l e v e l i s t o be a t t a i n e d . I t was found t h a t COBOL programs can be more e f f i c i e n t l y t r a n s - l a t e d i n t o COMBAT a r c h i t e c t u r e t h a n i n t o a c o n v e n t i o n a l machine one.

Complex COMBAT a r c h i t e c t u r e i s implemented on a COMBAT machine composed of main ly low c o s t and c o m p a r a t i v e l y s low m i c r o p r o c e s s o r s . However, i t was found t h a t h i g h p r o c e s s i n g pe r fo rmance can be a t t a i n e d by i n t r o d u c i n g m u l t i - m i c r o p r o c e s s o r complex and s p e c i a l hardware s u p p o r t i n g f o r mic roprogram a r c h i t e c t u r e .

A COMBAT a r c h i t e c t u r e has been d e f i n e d and d e t a i l s of i t s hardware components a re be ing d e s i g n e d .

Ac tua l e x e c u t i o n speed w i l l be de te rmined a f t e r t he d e t a i l e d d e s i g n and i m p l e m e n t a t i o n .

ACKNOWLEDGEMENT

The authors would like to express their grate- ful thanks to Dr. K. Fujino and Mr. K. Nezu for their encouragement, and to Messrs Y. Nagai, M. Umemura, K. Kumano and R. Nakazaki, who designed the COMBAT architecture and hardware system.

The research reported in this paper is being done as a p a r t of a r e s e a r c h p r o j e c t of P a t t e r n I n f o r m a t i o n P r o c e s s i n g System by the Agency of I n d u s t r i a l Sc ience and Technology of t he M i n i s t r y of I n t e r n a t i o n a l Trade and I n d u s t r y .

REFERENCES

1. R. Nakazaki , e t . a l . , A COBOL machine hardware c o n f i g u r a t i o n , P roceed ings of the 1 7 t h A n n u a l Convent ion , I n f o r m a t i o n P r o c e s s i n g Soc. of J apan , 19769 PP.309-310 ( i n J a p a n e s e )

2. M. Yamamoto, e t . a l . , A COBOL machine a r c h i t e c t u r e , P roceed ings of the 17th Annual Conven t ion , I n f o r m a t i o n P r o c e s s i n g Soc. of J a pa n , 1976, PP.307-308 ( i n J a p a n e s e )

3. H. Weber, A microprogrammed i m p l e m e n t a t i o n of EULER on IBM System 360 Model 30, Commu. ACM 10, 9, 1967, PP.549-558

4. American National Standard Programming Language COBOL, X3.23 1974, American National Standards Institute, Inc., 1974