Documente Academic
Documente Profesional
Documente Cultură
by W. T. WILNER
Burroughs Corporation
Goleta, California
INTRODUCTION
Burroughs B1700 (described elsewhere in these Proceedings 4) is the only information-processing system
(known to the author) which almost attains these ideals.
The B1700 is specifically designed (a) to manipulate
fields from zero to 65,535 bits long equally adeptly
(which is a requirement of its defined-field design), (b) to
interpret arbitrary "soft" machine language, or S-language, faster than a hard-wired system in the same price
class could execute identical functions (which is a
requirement of its generalized language interpretation
design), and (c) to automatically move information in
and out of memory according to any scheme (which is a
requirement of its throughput objectives). As a result,
the information content of fields in B1700 memory is
exceptionally high, and memory is often utilized twice
as efficiently as on other systems.
COMPACTION TECHNIQUES
A rbitrary field size
580
instructions, viz.:
Opcode
1
0111
0110
0101
0100
0011
Instruction
#1
#2
#3
#4
#5
#6
Occurrence
Total Bits
1000
200
200
200
200
200
1000
800
800
800
800
800
5000
Frequency-based encoding
6000 - 5000
1 01
6000
X 00 /0
Frequency
#1
#2-#6
1000
5@200
Total
2000
16 701
(1)
/0
A better encoding would use two bits for one of the five
less frequent instructions, since the remaining four
could still be encoded in four bit opcodes, viz.:
Opcode
1
01
0000-0011
Instruction
Occurrence
Total Bits
#1
#2
#3-#6
1000
200
@ 200
1000
400
3200
4600
Fourteen hundred bits are eliminated, increasing memory utilization by 23.3 percent. Note that this encoding
has no unused bit combinations; it can be used for
exactly six instructions. More redundant codes have
room for other opcodes.
Time-based representation
In addition to representing information in fields
according to occurrence frequency, one may improve
memory utilization by rearranging fields according to
dynamic frequency. That is, fields which are needed
most often in memory may be collected into a common
segment, in a time-analogy to minimum spatial redundancy. The B1700's interpreters are equipped to
record program profile statistics6 which determine what
pieces of code spend the most time being executed. By
designing S-languages which allow arbitrary grouping of
data or program pieces into segments, one may permit
program representations in which most-often-used
constructs appear in short, coherent segments while
relatively unused portions reside in large, discontinuous
(from the standpoint of flow of control) segments. Bits
in each segment have similar time-utilization, just as the
varying length of fields in Huffman encoding grant
similar space-utilization to the bits in a particular field.
581
Encoding
Method
Huffman
SDL 4-6-10
8-bit field
Total Bits
for MCP's Utilization Decoding
Opcodes Improvement Penalty Redundancy
172,346
184,966
301,248
.0059
.0196
.4313
17.2%
2.6%
43%
39%
0%
o. %
SDL opcodes
Opcodes are encoded into three lengths: four, six, and
ten bits. Of the sixteen four-bit combinations, ten name
the most frequent instructions, five indicate that two
more bits specify the remainder of a six-bit instruction
field, and one signifies that six more bits are needed to
define the operation. The design trade-off between space
and time in opcode representations does not vary
linearly between the extremes of Huffman encoding and
fixed container size. One fixed field length allows
Huffman enCOding""
57%,--+----+--~~--------------------~
50%+---~----r_------~r_------~--_r----_+
1.00
1.026
1.05
LlO
1.15
1.17
Decoding time
1.20
582
Redundancy
L Pi log Pi
H= -
(2)
Technique
binary Huffman
SDL 4-6-10
8-bit field
1-
(3)
583
TABLE II-Occurrence of Actual Field Lengths Required by B1700 MCP Data Addresses
Level Field
Size
0
1
'2
3
4
Relative
Level
Contents
0
-1
-2
-3
-4
-5
-6 to -15
Total
67
762
223
64
0
130
1182
408
44
0
189
1116
107
7
0
345
701
13
0
0
635
0
0
0
0
0
0
0
0
0
1574
5619
1611
370
0
1026
1116
1764
1419
1059
635
9174
Total
411
178
159
1
0
0
501
354
136
35
0
0
409
567
102
29
9
0
342
871
454
93
3
1
231
689
329
146
24
0
108
439
167
305
40
0
46
205
300
41
41
2
0
0
0
0
0
0
2985
3672
1714
663
133
7
0
136
478
162
56
0
31
355
143
45
0
12
397
272
68
0
29
628
283
86
0
832
574
749
521
234
44
13
16
4
416
135
23
0
0
0
SD L code addresses
Program points are addressed by a pair of integers'
one giving a segment name and the other specifying the
starting bit of an instruction in the segment, relative to
the start of the segment. Program segments are stored
separately from data segments. * As a consequence, code
584
TABLE III-Occurrence of Actual Field Lengths Required for B1700 MCP Code Addresses
Segment
Field Size
0
1
2
3
4
5
6
7
8
12
13
14
15
Total
0
0
0
5
42
32
110
78
12
153
0
2
9
12
36
37
132
5
1
1
1
6
42
66
80
147
40
39
0
0
9
28
25
166
168
26
33
5
0
0
0
5
36
9
0
102
1
0
0
0
0
0
0
0
332
7
28
42
147
309
502
603
120
268
376
389
461
88
103
2090
0-2
4
0
14
0
7
4
4
5
6
0
0
0
0
0
0
2
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
2
0
0
0
0
0
6
0
0
1
2
0
0
0
0
0
0
3
4
18
4
0
0
2
0
0
140
13
5
4
0
0
4
7
16
19
47
39
23
44
29
164
155
displacement
0,5 or
10 bits
0,12, 16 or
20 bits
While an SDL program is running, the SDL interpreter records each segment transition in an array which is
automatically allocated to each program. This monitoring, performed by microcode, adds less than 7.4: percent
to the running time. At the end of the run, SDL code is
interpreted which prints the number of times each
segment was entered, a compiler-estimated traversal
time for each segment, and . the product of the two,
giving an indication of which segments used the most
execution time. SDL programmers can also indicate at
compile-time which sections of their program should be
monitored closely, down to each conditional expression,
so that exact frequency counts can be obtained for each
bit of code in the program. Subsequent monitoring
involves additional code, but the amount is always less
than a 1 percent increase. Assuming segment and
procedure frequency counts have been utilized to focus
one's attention on c;mly a few procedures, execution
overhead for conditional expression monitoring is under
72 percent in most cases. Thus, the B1700 can indicate
to programmers what the time-utilization of their
program sections is, at very low cost. By grouping
similarly utilized sections into segments so that segment
transitions are lessened, temporal memory utilization
can be increased.
Other S-languages
':
I
1.1
585
586
DISCUSSION
Inherent limitations
CONCLUSION
Defined-field design permits the definition of S-languages which are more efficient at memory utilization
than contemporary machine structure. Because accessing and manipulation of arbitrarily-sized bit strings is
handled al;ltomatically by B1700 hardware, various
encodings may be selected solely on their inherent merit,
with respect to program storage and decoding time;
their suitability to the B1700 is irrelevant because the
hardware is uniformly adept at manipulating all sizes of
fields. One is free to choose problem representations
which equalize the information content of fields in
memory. Experience with compaction techniques, such
as variable-length, frequency-based encodings, indicate
that memory requirements can be reduced from 25
percent to 75 percent, compared to byte-oriented
systems.
BIBLIOGRAPHY
1 Burroughs B5500 information processing systems reference
User optimization
manual
Burroughs Corporation Business Machines Group Sales
Technical Services Systems Documentation Detroit
Michigan 1964
P J DENNING
The working-set model for program behavior
Comm ACM 11 5 May 1968 p 323ff
E G COFFMAN JR T A RYAN
A study of storage partitioning using a mathematical model
of locality
Comm ACM 15 3 March 1972
W T WILNER
Design of the Burroughs B1700
Proc FJCC72 Vol 41
D A HUFFMAN
A method for the construction of minimum redundancy codes
Proc IRE 40 September 1952 pp 1098-1101
D EKNUTH
An empirical study of FORTRAN programs
Software-Practice and Experience 11971 pp 105-133
C E SHANNON W WEAVER
The mathematical theory of communication
The University of Illinois Press Urbana Illinois 1949