Text preview for : C20-1641-1_Core_Requirements_for_1130_FORTRAN.pdf part of IBM C20-1641-1 Core Requirements for 1130 FORTRAN IBM 1130 lang C20-1641-1_Core_Requirements_for_1130_FORTRAN.pdf



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