Back to : C20-1641-1_Core_Requireme | Home

C20-1641-1

IBM Data PrDcessing Techniques

Core Requirements for 1130 FORTRAN

This manual provides information and techniques necessary to

evaluate problems in terms of the approximate amount of 1130

object code required for legitimate FORTRAN source text.

Initial discussion views the punched card and paper tape IBM

1130 Computing Systems. Later discussion is directed to the

disk-oriented 1130.

Programming

CONTENTS

Punched Card and Paper Tape Systems 1

Object Time Core Analysis 4

Code Generated by Source Text 4

Data Storage Requirements 5

Subroutine Requirements 5

Overhead 6

Example 7

1130 Disk Systems 8

Program Size Implications 8

Program Speed Implications 12

This publication is a minor revision of the earlier edition,

C20-1641-0, which is obsolete. Revisions to the text are

indicated with a vertical line to the left of the change.

Copies of this and other IBM publications can be obtained through IBM branch

offices. Address comments concerning the contents of this publication to

IBM, Technical Publications Department, 112 East Post Road, White Plains, N. Y. 10601

PUNCHED CARD AND PAPER TAPE SYSTEMS

The accompanying chart contains information about each subroutine that

can be used in running 1130 FOR TRAN object programs. An 1130

FOR TRAN obj ect program subroutine is utilized if the nature of the

source text requires it.

Thus, for example, a program with the multiply symbol (*) surrounded

by two floating-point operands will have the floating-point multiply

subroutine in object core. In addition, this subroutine may require

others for proper operation. A full discu~sion of these requirements

is given here.

On the other hand, once the compiler determines that a requirement for

an object time subroutine exists, the subroutine is loaded only once and

may be used repeatedly from any point in the code generated from the

source text.

Note that in the discussion that follows, certain separate subroutines use

other subroutines in common. For instance both floating multiply and

floating divide use a multiply routine of 66 words. These secondary

routines should not be doubly counted. They appear only once in the

object program even if all the primary subroutines that use them are

employed.

Subroutine Name Size in Words Notes

1. Floating Add/Subtract - adds (subtracts) one

floating-point number to (from) a second. 110 a,l

X=A+B

X=A-B

2. Floating Multiply - multiplies one floating-point

number by a second. 58 b,l

X=A*B

3. Floating Divide - divides one floating-point

number by a second. 90 c,l

X=A/B

4. Floating Subtract Reverse - reverses order of

operands in a floating subtract if required

(determined by the sequence of evaluation). 26 d

X=A-B*C

5. Floating Divide Reverse - reverses order of

operands in a floating divide if required

(determined by the sequence of evaluation). 30 e,m

X=(A+B) / ( C+ D)

1

Subroutine Name Size in Words Notes

6. Load/Store - moves data to and from an internal

obj ect time accumulator. Most frequently used

subroutine. Should be included in every estimate. 60

X=A

7. Float/Fix - converts data from integer to real and

vice versa. 50 a

A=I

I=A

A=B + FLOAT (I)

I=J + IFIX (B)

8. Reverse Sign - changes sign of object accumulator. 8

9. Subscription - calculates relative object time addresses

of subscripted variables. Used only when one or more

subscripts are variables. Not used, for example, in

case of A (2, 5,9). Required in cases such as: 34

A(I,J)

A(2, 3, K)

A(I, 2)

10. Natural Logarithm 150 b,d,e,

B=ALOG(C) f,m,n

1I. Sine/Cosine 130 d,f,m,n

A=SIN(B)

A=COS(B)

12. Arctangent 150 b,d,e,

B=ATAN(C) f, n

13. Square Root 80 d, e,f,

A=SQRT(B) m,n

14. Exponential (ex) 140 b, 1, n

A=EXP(B)

15. Exponentiation (A ~ 60 f, g

A=B**C

16. Exponentiation (AI) 86 f,j

A=B**I

17. Exponentiation (IJ) 76

I=J**K

18. Absolute Value (Fl. Pt. ) 10

A=ABS(B)

19. Absolute Value (Fx. Pt. ) 16

I=IABS(J)

2

Subroutine Name Size in Words Notes

20. Card I/O - handles physical device. 56 h, k,o,

p

21. Keyboard/Typewriter I/O - handles physical device. 80 h,k,o,

P

22. Typewriter I/O 58 k,p

23. Paper Tape I/O - handles physical device. 216 k

24. Printer I/O - handles physical device. 200

25. FORTRAN Format Interpreter - used to analyze format,

convert decimal-binary-decimal, and control I/O sub-

routines. Called only if I/O operations are performed. 840 i

26. Subprogram Initializer - used to pass parameters to

function subprograms, subroutine subprograms, and

arithmetic statement functions. 32

27. Hyperbolic Tangent 60 d,e,m,

A = TANH(X) n,q

28. SIGN

A = SIGN(B,C) 38

29. ISIGN

IA = ISIGN(IB,IC) 24

----

NOTES

a. Requires normalizing routine of 42 words

b. Requires multiply routine of 66 words

c. Requires divide routine of 80 words

d. Requires subroutine 1

e. Requires subroutine 3

f. Requires subroutine 2

g. Requires subroutines 10, 14

h. Requires conversion routine of 60 words

i. Requires subroutines 6, 7

j. Requires subroutines S, 6

k. Requires get-address routine of 16 words

1. Requires floating arithmetic range check routine of 34 words

m. Requires subroutine 6

n. Requires floating get parameter routine of 22 words

o. Requires Hollerith table of S4 words

p. Requires printer/EBCDIC table of S4 words

q. Requires subroutine 14

3

Object Time Core Analysis

The storage requirements for an object program involve four factors:

1. The code generated by the source text

2. The data storage required through the use of variable names,

constants, and data declarations

3. The subroutines required to allow proper interaction of items

1 and 2

4. Overhead

Thus the FORTRAN statement

X=A+B

requires object code to add A to B and store the result in X (item 1),

data cells for the variables X, A, and B (item 2), and the presence of

subroutines 1 and 6 listed in the chart (item 3). In addition, certain

overhead requirements (to be discussed) should be noted (item 4).

These four factors determine whether an object program is capable of

residing in core.

Code Generated by Source Text

An accepted position regarding the average expansion factor from source

text to 1130 object code is 14 words per FORTRAN source statement.

While short statements (X=2., Y=A+ B, GO TO 7, etc.) generate much

less than this average, longer statements can generate more. While no

definitive proof of this supposition exists, analogous expansion factors.

on a variety of other IBM equipment support this hypothesis. Thus a

100-statement, non-trivial source program may be said to generate 1400

words of 1130 object code.

Considering this problem as a retrofit, if data, subroutine, and overhead

storage of an 8192-word 1130 require 2004 words of object core, a

FORTRAN program consisting of 442 source statements