Access and Alignment of Data in an Array Processor

This paper discusses the design of a primary memory system for an array processor which allows parallel, conflict-free access to various slices of data (e.g., rows, columns, diagonals, etc.), and subsequent alignment of these data for processing. Memory access requirements for an array processor are discussed in general terms and a set of common requirements are defined. The ability to meet these requirements is shown to depend on the number of independent memory units and on the mapping of the data in these memories. Next, the need to align these data for processing is demonstrated and various alignment requirements are defined. Hardware which can perform this alignment function is discussed, e.g., permutation, indexing, switching or sorting networks, and a network (the omega network) based on Stone's shuffle-exchange operation [1] is presented. Construction of this network is described and many of its useful properties are proven. Finally, as an example of these ideas, an array processor is shown which allows conflict-free access and alignment of rows, columns, diagonals, backward diagonals, and square blocks in row or column major order, as well as certain other special operations.

[1]  Solomon W. Golomb,et al.  Permutations by Cutting and Shuffling , 1961 .

[2]  V. Benes,et al.  Mathematical Theory of Connecting Networks and Telephone Traffic. , 1966 .

[3]  Karl N. Levitt,et al.  Cellular Interconnection Arrays , 1968, IEEE Transactions on Computers.

[4]  ILLIAC IV Software and Application Programming , 1968, IEEE Transactions on Computers.

[5]  Kenneth E. Batcher,et al.  Sorting networks and their applications , 1968, AFIPS Spring Joint Computing Conference.

[6]  Abraham Waksman,et al.  A Permutation Network , 1968, JACM.

[7]  Marshall C. Pease,et al.  An Adaptation of the Fast Fourier Transform for Parallel Processing , 1968, JACM.

[8]  Kenneth J. Thurber Programmable indexing networks , 1970, AFIPS '70 (Spring).

[9]  Yoichi Muraoka,et al.  Parallelism exposure and exploitation in programs , 1971 .

[10]  Paul Budnik,et al.  The Organization and Use of Parallel Memories , 1971, IEEE Transactions on Computers.

[11]  Harold S. Stone,et al.  Parallel Processing with the Perfect Shuffle , 1971, IEEE Transactions on Computers.

[12]  D. C. Opferman,et al.  On a class of rearrangeable switching networks part I: Control algorithm , 1971 .

[13]  J. O. Eklundh,et al.  A Fast Computer Method for Matrix Transposing , 1972, IEEE Transactions on Computers.

[14]  Robert E. Millstein,et al.  Control structures in Illiac IV Fortran , 1973, CACM.

[15]  Duncan Hamish Lawrie,et al.  Memory-processor connection networks , 1973 .

[16]  Kenneth E. Batcher STARAN parallel processor system hardware , 1974, AFIPS '74.

[17]  David J. Kuck,et al.  A model for masking rotational latency by dynamic disk allocation , 1974, CACM.

[18]  David J. Kuck,et al.  Time and Parallel Processor Bounds for Linear Recurrence Systems , 1975, IEEE Transactions on Computers.

[19]  Tomás Lang,et al.  Interconnections Between Processors and Memory Modules Using the Shuffle-Exchange Network , 1976, IEEE Transactions on Computers.