forked from matmill5/ken-batcher-pp-ocr
-
Notifications
You must be signed in to change notification settings - Fork 0
/
results.txt
1710 lines (1107 loc) · 44.8 KB
/
results.txt
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
======================================================== PAGE 1 ========================================================
A production implementation of an
associative array processor—STARAN
by JACK A. RUDOLPH
Goodyear Aerospace Corporation
Akron, Ohio
INTRODUCTION
The associative or content-addressed memory has
been an attractive concept to computer designers ever
since Slade and McMahon’s 1957 paper! described a
“catalog” memory. Associative memories offered relief
from the continuing problem presented by the typical
coordinate-addressed memory which requires that an
“address” be obtained or calculated before data stored
at that address may be retrieved. The associative
memory could acquire in a single memory access any
data from memory without pre-knowledge of its loca-
tion. Ordered files and sorting operations could be
eliminated. Unfortunately, early associative memories
were expensive, hence none found their way as the
“main frame’ memory into any commercial computer
design. . .
The organization of an associative memory (AM)
requires that each n-bit physical word of the memory
be connected to a dedicated processing element (PE)
which performs the compare function between a bit
read non-destructively from the word and a corre-
sponding input bit from a query word. The PE’s for
all words are driven by a central controller, thus a
single query bit is simultaneously compared with the
corresponding stored bit in every word of the AM.
With the ability to simultaneously write back the
state of each PE into a specified bit position of each
word it became possible to perform bit-serial arith-
metic between fields of bits within each physical
memory word. An array of associative memory words
could then be viewed as an array of simple computers—
an associative array processor—with all the simple
computers in the array simultaneously executing the
same instruction obtained from a common control unit
as is done in the more complex ILLIAC-IV design.
An alternative AP design provides a PE at each bit
229
of each physical memory word. This design, though
complex in terms of logic and interconnection require-
ments, permits a simultaneous compare of all bits in a
query word with all bits of the memory word rather
than the serial-by-bit operation described earlier.
Due to the early high cost of semi-conductor mem-
ory and logic elements none of the many associative
processor designs described in the literature were
attractive enough to warrant development. However,
it has now become commercially feasible to construct
a computing system embodying “main frame” memory
content addressability coupled with array arithmetic
capability operating under a more or less conventional
stored program control system.
Several proprietary versions of the associative pro-
cessor (AP) are being developed. The first working
engineering model? known to the author, built for
USAF by Goodyear Aerospace Corporation, was
demonstrated during a Tri-Service contract review in
June, 1969 at Akron, Ohio. The same machine, modi-
fied to include a larger instruction memory, was loaned®
by USAF in 1971 to the FAA for conflict detection
tests in a live air traffic control terminal environment
at Knoxville, Tennessee operating in a multi-computer
configuration with a Univac 1230 conventional com-
puter. The original test objectives were achieved by
December, 1971 and additional experiments involving
terrain avoidance processing were completed success-
fully in June, 1972.
The lessons learned in programming and testing the
USAF AP model resulted in a new design called
STARAN S§ which was committed to production in
1971. This first commercial AP was publicly. intro-
duced in a series of live demonstrations in May, 1972
at the TRANSPO exhibit in Washington, D.C. and
in June, 1972 at Boston, Mass.
This paper describes STARAN § and its program-
======================================================== ========================= ========================================================
======================================================== PAGE 2 ========================================================
230 Fall Joint Computer Conference, 1972
ming language, provides examples of its applications,
and discusses measures of AP cost-effectiveness.
STARAN* DESCRIPTION
A configuration diagram of STARAN S is shown
in Figure 1. Studies have shown that initial uses of
AP’s would be weighted toward real-time applications
involving interface with a wide variety of sensors,
conventional computers, signal processors, interactive
displays, and mass storage devices. To accommodate
all such interfaces the STARAN system was divided
into a standardized main frame design and a custom
interface unit. A variety of I/O options implemented
in the custom interface unit include conventional
direct memory access (DMA), buffered I/O (BIO)
channels, external function channels (EXF) and a
unique interface called parallel I/O (PIO).
DIRECT
MEMORY
ACCESS
7
BUFFERED
INPUT/
oureuT
STARAN
ASSOCIATIVE
ARRAY
PROCESSOR
TYPICAL
USER
| EQUIPMENT
custom
INTERFACE
UNIT
|
|
|
|
|
|
| ‘COMPUTERS
MAIN PERIPHERALS
EXTERNAL J
FRAME
FUNCTION
OMMANDS.
@ DISPLAYS
@ SENSORS
PARALLEL
INPUT/
ouTeuT,
|
|
|
|
|
L___]
Figure 1—STARAN system configuration
A top-cut diagram of the STARAN main frame is
shown in Figure 2. It consists of a conventionally
addressed control memory for program storage and
data buffering, a control logic unit for sequencing and
decoding instructions from control memory and from
one to thirty-two modular AP arrays.
A typical AP array is also shown in Figure 2. This
key element of the STARAN S computer system is
the “main frame’ memory which provides content
addressability and. parallel processing capabilities.
Each array consists of 65,536 bits organized as a
multi-dimensional access memory matrix of 256 words
*T. M. Goodyear Aerospace Corporation, Akron, Ohio
ASSOCIATIVE
PROCESSOR
rm"
CONTROL,
MEMORY
ASSOCIATIVE PROCESSOR ARRAY
TO/FROM CONTROL
CONVENTIONAL
courage INPUT-OUTPUT
Losic
ASSOCIATIVE
PROCESSOR
ARRAYS:
PARALLEL
INPUT-OUTPUT
PARALLEL INPUT-OUTPUT
256 PE's
256 WORDS x 256 BITS PER ARRAY
Figure 2—Associative processor diagrams
by 256 bits with parallel access to up to 256 bits at a
time in either the word or bit direction. In addition
to the storage elements, each array contains 256 bit-
serial PE’s often referred to in associative memory
literature as the response store. The unique PIO capa-
bility is provided by the response store, where every
PE has an independent external device I/O path.
Control signals generated by the control logic unit are
fed to the processing elements in parallel and all pro-
cessing elements execute the instruction simultane-
ously. As additional arrays are added to the system
these are also connected in parallel to the control logic
unit, thus application programs need not be modified
as the capacity of the system increases.
Major elements of the STARAN block diagram
shown in Figure 3 are described below:
SOLID STATE CORE
ormect
micro progRam Mewony
ap. MEMORY access
conTRot PRGE O
weMon
instaucrion | rnstaucrion | mon speed } pmocnam
MEMORY memory” | oara aurrer | weMony
Pace? Pace 2 MEMORY
siz a2 siz x32 siz x32 svzxs2 | tex x32
WEMORY PORT LOGIC
Surreres
INPUT?
oureut
PROGRAM
Pacer
rosie
‘SEQUENTIAL
CONTROL
PROCESSOR
EXTERNAL FUNCTION
rosie
ap CONTROL
Lose
extennar
FUNCTION
coMMaNos
associative
ARRAY
256 «786
one
Figure 3—STARAN basic block diagram
======================================================== ========================= ========================================================
======================================================== PAGE 3 ========================================================
AP control memory
The conventionally addressed and indexed AP con-
trol memory is used to store assembled AP application
programs. It is also used for data storage and to act
as a buffer between AP control and other elements of
STARAN 8. The AP control memory and associative
array cycles are overlapped.
Control memory is divided into several memory
blocks. Three fast “page” memories contain the current
AP program segments; the slower core memory con-
tains the remainder of the AP program. A program
pager transfers program segments from the slow to
the fast memory blocks. Control memory words con-
tain 32 bits of either data or instructions.
The “page” memories use volatile, bipolar, semi-
conductor elements. A page contains 512 words but
can be doubled to 1024 words each on an optional
basis. Page 0 may contain a library of microprograms
such as arithmetic subroutines. Pages 1 and 2 are used
in ping-pong fashion, with AP control executing in-
structions out of one page while the other is being
loaded by the program pager. This permits use of the
page memories for selected segments of the program
or for the entire program if fast execution is required.
The high-speed data buffer (HSDB), like the page
memories, uses volatile, bipolar, semi-conductor ele-
ments. It contains 512 words but also can be doubled
to 1024 words. All buses can access the HSDB to
store data or instruction items that need to be accessed
quickly by the different STARAN elements.
The bulk core memory uses nonvolatile core storage.
It contains 16,384 words and is optionally expandable
to 32,768 words. It is used for storing complete AP
application programs. Since the bulk core memory is
accessible to all buses it is useful as a buffer for data
items that do not require the high-speed of the HSDB.
A block of up to 30,720 AP control memory ad-
dresses is reserved for the direct memory access (DMA)
channel to external memory. All buses can access the
DMA block, thus it is possible to operate the AP
solely from programs stored on external memory as,
for example, the main frame memory of a conventional
computer.
AP control logic
Executing instructions from control memory, AP
control logic directly manipulates data within the
associative arrays and is the data communication
path between control memory and the arrays.
STARAN = 231
Program pager logic
The program pager loads the fast page memories
from the slow core memory. While the AP control is
executing a program segment out of one page, the
pager can be loading the other page with a future
program segment.
External function logic
External function (EXF) logic enables the AP
control, sequential control, or an external device to
control the STARAN § operation. By issuing external
function codes to EXF a STARAN S§S element can
interrogate and control the status of the other ele-
ments.
Sequential control processor
The sequential control (SC) portion of STARAN S
consists of a sequential processor having an 8K 16-bit
memory, a keyboard-printer, a perforated tape reader/
punch unit, and logic capability to interface the se-
quential processor with other STARAN § elements.
SC is used for system software programs such as
assembler, operating system, diagnostic programs,
debugging, and housekeeping routines. SC peripherals
which may be useful programming aids are available
as options.
Input/output options
A custom interface unit (not shown in Figure 3) can
provide any required combination of DMA, BIO,
EXF, or PIO channels. A DMA channel to a conven-
tional computer, for example, would permit rapid
interchange of data between the systems in the com-
mon memory bank. The unique parallel I/O (PIO)
channel, with a width of up to 256 bits per array,
provides an extreme width channel up to 8192 bits
wide at transfer rates in the sub-microsecond region.
For example, a four-array STARAN S can input or
output 1024-bit word or bit slices at an average slice
rate exceeding 3 megacycles/sec providing an I/O
bandwidth many times wider than that of a conven-
tional computer. PIO provides a unique capability
for large data base processing when used with wide
bandwidth mass storage devices.
A photograph of a six array (model S-1500)
STARAN is shown in Figure 4.
======================================================== ========================= ========================================================
======================================================== PAGE 4 ========================================================
232 Fall Joint Computer Conference, 1972
i ——————
Figure 4-STARAN §-1500
ASSOCIATIVE PROCESSOR SOFTWARE
The STARAN software system consists of a sym-
bolic assembler called APPLE (for Associative Pro-
cessor Programming LanguagE), and a set of super-
visor, utility, debug, diagnostic, and subroutine library
program packages. An associative compiler has not
yet been developed for STARAN. Early applications
of STARAN must therefore be accomplished by assem-
bly language programmers. Programmers find APPLE
a convenient language to use, however, and write
significantly fewer instructions to program a suitable
application on STARAN than would have to be written
for a conventional machine since APPLE’s command
structure reflects the content addressability and pro-
cessing characteristics of the associative arrays the
language controls. For example, although the pro-
grammer must explicitly define his record formats via
field definition statements, he usually need not be con-
cerned with physical record location in the arrays.
Also, he need not order data tables by key, since any
desired datum may be located in one parallel search
operation. A third example of APPLE convenience is
the elimination of the conventional programming loop
which requires advancing a list pointer, examination
of an exit criterion, and making a decision for each pass
over different data sets. The APPLE array instruction
processes all pertinent data sets simultaneously and
does not require initialization of an index register with
the count of data sets to be processed.
Internally, all software packages with the exception
of array diagnostics and the subroutine library operate
on the SC. In the minimum STARAN configuration
the software packages are furnished on paper tape for
jnput via the SC tape reader. Where STARAN is
installed with interface to a conventional computer
system in a multicomputer configuration, APPLE and
supporting software can be input to STARAN using
the existing peripherals of the conventional computer.
The usual load, store, test, branch, and control
instructions required for sequential execution of an
application program are present in APPLE. Where
APPLE departs most from conventional assemblers
is in the search and arithmetic array instructions. A
representative set of fixed point standard instructions
is shown in Table I with the approximate timing for-
mulas. Hardware floating point is available on special —
order.
Associative search and arithmetic instructions are
of two types, “argument register’ and “field”. In the
first an operand (32 bits max) stored in the argument
register of AP control is used as the search or arith-
metic argument against a specified field in all array
words simultaneously. Instructions of the field type
perform similar operations but between specified
fields within each array word.
Instruction execution times are dependent upon n,
the number of bits in the operands (fields) involved
in the instruction executions, but are not functions of
the number of operands being processed, which rela-
tionship is exactly the opposite of that existing in the
conventional computer. This characteristic dependence
of execution time on operand or field length is a con-
sequence of the word-parallel bit-serial design of the
associative arrays discussed earlier.
From the programmer’s point of view, Table I has
interesting connotations; some of which are:
1. in real time applications the programmer can
easily time out his initial flow diagram since
programming loops in the conventional sense
are eliminated. This single consequence of
associative processing can save much of the
reprogramming effort invariably found neces-
sary during the testing phase of conventional
attacks on real-time problems;
2. he can conserve on execution time (and array
memory space) by defining fields to use only as
many bits as are required by the application;
and
3. he has no need for overhead-generating tech-
niques such as indexed file constructions, linked
lists, or sort and merge operations usually
needed in a conventional computer. This capa-
======================================================== ========================= ========================================================
======================================================== PAGE 5 ========================================================
STARAN — 233
TABLE I—Typical APPLE Associative Fixed Point Instructions
APPROX. EXECUTION TIME as)
roma [ete
MIPS* ane ARRAY
INSTRUCTION
FOR n=
MNEMON IC
ARGUMENT REGISTER INSTRUCTIONS
0.6+0.15n
0.7+0.15n
0.7+0.15n
2. 8+0, 85n
EXACT MATCH COMPARAND
GREATER THAN COMPARAND
LFSS THAN COMPARAND
ADD AR TO FIELD
FIELD INSTRUCTIONS
0.6+0.43n
2.3+0.43n
2.3+0.43n
EXACT MATCH FIFLDS
PREATER THAN FIELDS
LESS THAN FIELDS
MAX FIELDS 0.6+0.68n
MIN PIELDS 0.6+0.68n
ADD FIELD TO FIELD 2. 8+0.85n
MULTIPLY FIELD BY FIELD 5.8+2.9m+
0. 85mn+0.4
* Max execution rate of specified instructions for single array with all 256 PE's active.
** n or m equal number of bits in operand
bility results in a significant reduction both in
the number of instructions which must be
written and executed and the amount of mem-
ory required.
ARRAY STORAGE ALLOCATION
The concept of a file of related records as used in
associative processing requires some discussion. In
conventional approaches to file generation one thinks
of the distinction between a logical file and a corre-
sponding physical file; that is, a logical collection of
records, usually ordered by some key, is placed as a
block of contiguous addresses in a physical file. The
conventional operating system keeps track of the
beginning address and the block length for the file
whether stored in core or on external stores. Thus in
most cases logically different files are stored in physi-
cally separate areas of store.
The associative approach differs from the conven-
tional approach in several ways: the records within
the logical file need not and usually are not ordered
by any key; records within a logical file usually are
not stored in contiguous locations in an area of the
array or on external devices; and the operating system
generally is not required to keep track of individual
file beginning addresses and block lengths.
In STARAN, records belonging to different logical
files may be physically intermixed in the array as
well as being logically unordered. Within each record
format, in addition to defining the item fields, the pro-
grammer defines a set of control tag fields. How these
tags are used is described below.
When new records are added to a logical file the
update program writes the new, properly formatted
record into the first available empty array location.
Since empty array locations usually are not contigu-
ously located within the array, records belonging to a
specific file are scattered throughout the array in
random locations. This characteristic is illustrated in
the array map example of Figure 5.
Empty array memory locations are identified by
executing an EQC on a one-bit activity tag field using
an “OQ” as the search criteria. The execution time for
this search (see Table I) is less than one microsecond
at the end of which time all processing elements for
physical memory words containing a 0 in the activity
field will be in the “ON” state. At the conclusion of
the search a hardware pointer automatically points to
======================================================== ========================= ========================================================
======================================================== PAGE 6 ========================================================
234 Fall Joint Computer Conference, 1972
INTERMIXED, UNORDERED RECORDS FROM THREE FILES
PerowT | | _1
JONES
SECTION
IDENT.
TAG *
FILE DESCRIPTOR TAG
[pawn TAG
a SALES RECORD
po
ee eo
fo sft ols]
EMPTY ARRAY WORD
PHYSICAL ARRAY WORD ADDRESS
+ BIT ADDRESS ——»>
* PARENT RECORD IDENTIFIER IN TWO-SECTION PERSONNEL RECORD
1S EMPLOYEE NAME
Figure 5—Associative array map example
the PE having the lowest physical address in the array
(or arrays). The new record, with its activity field set
to a “1,” is written into this first empty location. The
hardware pointer then moves to the next available
empty memory location for writing another record if a
batch of new entries must be loaded. If no empty loca-
tions are found the program will exit to whatever
routine the programmer has chosen for handling this
type of error—for example, if appropriate to a specific
application, the program may select an age test of all
records in a particular file, purging the oldest to make
room for the newest. A record once located may be
deleted from a file by merely setting the activity bit
to an “O.”
When a specific file is to be processed in some man-
ner, the scattered locations containing the file’s records
are activated by performing EQC’s on both the ac-
tivity field and an n-bit “file descriptor” tag field. If,
as in the example of Figure 5, the file descriptor field
is two bits long, the entire selected file will be ready
for processing in less than 2 microseconds (<1 us for
the activity bit search, <1 ys for the file descriptor
field search).
Where record lengths are greater than the 256-bit
length of the associative array word, several non-
contiguous associative array words may be used to
store the single record in sections, one section per
array word. The format for each record section must
contain the same activity and file descriptor fields as
are used in all record formats, and in addition it must
contain a parent record identifier and an n-bit “sec-
tion identifier” tag field. The scattered locations
containing the desired section of all records in the
specific file may be activated by performing EQC’s on
the activity, file descriptor, and section identifier
fields. All three searches can be completed in approxi-
mately 2 or 3 microseconds.
These two or three tag search operations in the AP
======================================================== ========================= ========================================================
======================================================== PAGE 7 ========================================================
STARAN — 235
OC n— ee
permit random placement of records in the physical
file and eliminate the bookeeping associated with file
structuring and control required in conventional
systems. The same approach is used for files which
exceed the capacity of the associative arrays—the
records of such files are stored in a similar manner on
external mass storage devices and are paged into the
arrays as required.
The strategy used to allocate array storage space
can have a significant effect on program execution
time. An example is shown in Figure 6 where the
products of three operand pairs are required. In A,
the operands are stored in a single array word. For
20-bit fixed point operands the three MPF instructions
would execute in a total of 1175 microseconds. All
similar data sets stored in other array words would
be processed during the same instruction execution.
However, an alternative storage scheme (B) which
utilizes three PE’s per data set requires only one MPF
execution to produce the three products in 392 micro-
seconds. If one thousand data sets were involved in
each case the average multiply times per product
would be 392 and 131 nanoseconds, respectively, but
at the expense, in B, of using 3000 processing elements.
Unused bits in B may be assigned to other functions’
A last example of how array storage allocation can
affect program execution time is shown in Figure 7
where the columns represent fields. Here the sum
é:, of 16 numbers is required. If the 16 numbers are
directly or as a result of a previous computation stored
in the same field of 16 physically contiguous array
words, the near-neighbor relationships between the
processing elements can be used to reduce the number
of ADF executions to four. All similar 16 number sets
would be processed at the same time.
STARAN APPLICATIONS
While many papers have appeared (see Minker*
for a comprehensive bibliography) which discuss the
application of AM’s and AP’s in information retrieval,
PROBLEM: gj , bj, ci , dj ,ei , fj ARE 20 BIT OPERANDS.
FORM PRODUCTS ajbj, cjdj , ejfj FOR n DATA SETS
METHOD A- ALLOCATE ONE ARRAY WORD (PROCESSING ELEMENT) PER DATA SET
FIELD NAME—= A B c od E F
6 H J f
Patt | cdi | ati GY i [orl
Lon | bm [en] dn [en | fn] ontn | cnén | enfn YY 2 lori]
FILE
SET IDENT ACTIVE
PROGRAM A-1. MPF A,B,G
2. MPF C,D,H n sets processed in 1175 «s (fixed point)
3. MPF E,F,J
METHOD B - ALLOCATE THREE ARRAY WORDS (PROCESSING ELEMENTS) PER DATA SET
FIELD NAME—= A
PROGRAM B — MPF A,B,C
Figure 6—Effect of array memory allocation on execution time
n sets processed in 392 ws (fixed point)
======================================================== ========================= ========================================================
======================================================== PAGE 8 ========================================================
236 Fall Joint Computer Conference, 1972
Og by fq
as bs,
Qe be
a7 b
ag bg
a9
40
On
2
O43 16
a .
‘4 e,= Dai
5 1
N46 NUMBER OF OPERATIONS 1S
Pan = #0216 = 4
Figure 7—Tree-sum example
text editing, matrix computations, management in-
formation systems and sensor data processing systems,
there are none yet published which describe actual
results with operating AP equipment in any applica-
tion. (But see Stillman: for a recent AM application
result.)
Recent actual applications of the AP have been in
real time sensor related surveillance and control sys-
tems. These initial applications share several common
characteristics:
1. a highly active data base;
2. operations upon the data base involve multiple
key searches in complex combinations of equal,
greater, between-limits, etc., operations;
3. identical processing algorithms may be per-
formed on sets of records which satisfy a com-
plex search criterion;
4. one or more streams of input data must be
processed in real time; and
5. there is a requirement for real time data output
in accordance with individual selection criteria
for multiple output devices.
A portion of the processing inherent in these applica-
tions is parallel-oriented and well suited to the array
processing capability of the AP. On the other hand
these same applications also involve a significant
amount of sequentially-oriented computation which
would be inefficient to perform upon any array pro-
cessor, a simple example being coordinate conversion
of serially occurring sensor reports.
Air traffic control
An example of an actual AP application in an air
traffic control environment is shown in Figure 8. In
this application a two array (512 processing elements)
STARAN S-500 model was interfaced via leased tele-
phone lines with the output of the FAA ARSR long
range radar at Suitland, Maryland. Digitized radar
and beacon reports for all air traffic within a 55 mile
radius of Philadelphia were transmitted to STARAN
in real time. An FAA air traffic controller’s display
of the type used in the new ARTS-III terminal ATC
system and a Metrolab Digitalk-400 digital voice
generator were interfaced with STARAN to provide
real-time data output. The controller’s keyboard was
used to enter commands, call up various control pro-
grams and select display options.
Although a conventional computer is not shown
explicitly in Figure 8 the sequentially oriented portions
of the overall data processing load were programmed.
for and executed in the STARAN sequential controller
as shown in Figure 9. Sequential and associative pro-
grams and instruction counts for STARAN are shown
in Table II. In a larger system involving multiple
sensors and displays, and more ATC functions such as
metering and spacing, flight plan processing, and
digital communications, the sequential and parallel
workloads would increase to the point where a separate
conventional computer system interfaced with the
AP would be required.
The STARAN system was sized to process 400
tracks. Since the instantaneous airborne count in the
55 mile radius of Philadelphia was not expected to
exceed 144 aircraft, a simulation program was de-
veloped to simultaneously generate 256 simulated
STARAN
$-500
TELEPHONE LINES