+ All Categories
Home > Documents > PASM: A Partitionable System for Image Processing and ...hj/journals/8.pdf · SIEGEL et al.: PASM...

PASM: A Partitionable System for Image Processing and ...hj/journals/8.pdf · SIEGEL et al.: PASM...

Date post: 14-Aug-2020
Category:
Upload: others
View: 0 times
Download: 0 times
Share this document with a friend
14
IEEE TRANSACTIONS ON COMPUTERS, VOL. c-30, NO. 12, DECEMBER 1981 PASM: A Partitionable SIMD/MIMD System for Image Processing and Pattern Recognition HOWARD JAY SIEGEL, MEMBER, IEEE, LEAH J. SIEGEL, MEMBER, IEEE, FREDERICK C. KEMMERER, MEMBER, IEEE, PHILIP T. MUELLER, JR., MEMBER, IEEE, HAROLD E. SMALLEY, JR., MEMBER, IEEE, AND S. DIANE SMITH, MEMBER, IEEE Abstract-PASM, a large-scale multimicroprocessor system being designed at Purdue University for image processing and pattern rec- ognition, is described. This system can be dynamically reconfigured to operate as one or more independent SIMD and/or MIMD machines. PASM consists of a parallel computation unit, which contains N processors, N memories, and an interconnection network; Q micro- controllers, each of which controls N/Q processors; N/Q parallel secondary storage devices; a distributed memory management system; and a system control unit, to coordinate the other system components. Possible values for N and Q are 1024 and 16, respectively. The control schemes and memory management in PASM are explored. Examples of how PASM can be used to perform image processing tasks are given. Index Terms-Image processing, memory management, MIMD machines, multimicroprocessor systems, multiple-SIMD machines, parallel processing, partitionable computer systems, PASM, recon- figurable computer systems, SIMD machines. I. INTRODUCTION A s a result of the microprocessor revolution, it is now feasible to build multimicroprocessor systems capable of performing image processing tasks more rapidly than pre- viously possible. There are many image processing tasks which can be performed on a parallel processing system, but are prohibitively expensive to perform on a conventional computer system due to the large amount of time required to do the tasks [37]. In addition, a multimicroprocessor system can use par- allelism to perform the real-time image processing required Manuscript received September 11, 1979; revised May 8, 1980 and March 4, 1981. This work was supported by the Air Force Office of Scientific Re- search, Air Force Systems Commiand, USAF, under Grant AFOSR-78-3581, and the Defense Mapping Agency, monitored by the US Air Force Rome Air Development Center Information Sciences Division, under Contract F30602-78-C-0025 through the University of Michigan. H. J. Siegel and L. J. Siegel are with the School of Electrical Engineering, Purdue University, West Lafayette, IN 47907. F. C. Kemmerer was with the School of Electrical Engineering, Purdue University, West Lafayette, IN 47907. He is now with Bell Laboratories, Whippany, NJ 07981. P. T. Mueller, Jr. was with the School of Electrical Engineering, Purdue University, West Lafayette, IN 47907. He is now with Geophysical Services, Inc., Dallas, TX 75265. H. E. Smalley, Jr. was with the School of Electrical Engineering, Purdue University, West Lafayette, IN 47907. He is now with Hitachi America, Ltd., Atlanta, GA 30360. S. D. Smith was with the School of Electrical Engineering, Purdue Uni- versity, West Lafayette, IN 47907. She is now with the Department of Elec- trical and Computer Engineering, University of Wisconsin, Madison, WI 53706. for such applications as robot (machine) vision, automatic guidance of air and spacecraft, and air traffic control. There are several types of parallel processing systems. An SIMD (single instruction stream-multiple data stream) machine [18] typically consists of a set of N processors, N memories, an interconnection network, and a control unit (e.g., Illiac IV [10]). The control unit broadcasts instructions to the processors and all active ("turned on") processors execute the same instruction at the same time. Each processor executes instructions using data taken from a memory with which only it is associated. The interconnection network allows inter- processor communication. An MSIMD (multiple-SIMD) system is a parallel processing system which can be structured as one or more independent SIMD machines (e.g., MAP [31 ], [32]). The Illiac IV was originally designed as an MSIMD system [3]. An MIMD (multiple instruction stream-multiple data stream) machine [ 18] typically consists of N processors and N memories, where each processor can follow an inde- pendent instruction stream (e.g., C.mmp [60]). As with SIMD -architectures, there is a multiple data stream and an inter- connection network. A partitionable SIMD/MIMD system is a parallel processing system which can be structured as one or more independent SIMD and/or MIMD machines. In this paper PASM [47], [48], a partitionable SIMD/MIMD sys- tem being designed at Purdue University for image processing and pattern recognition, is described. Many designers have discussed the possibilities of building large-scale parallel processing systems, employing 214 to 216 microprocessors, in SIMD (e.g., binary n-cube array [34]) and MIMD (e.g., CHoPP [54], [55]) configurations. Without the presence of such a large number of processors, the concept of partitioning the system into smaller machines which can op- erate as SIMD or MIMD machines was unnecessary. Nutt [31] has suggested a machine which is a multiple-SIMD sys- tem. Lipovski and Tripathi [27] have considered the idea of combining the SIMD and MIMD modes of operation in one system. In addition, developments in recent years have shown the importance of parallelism to image processing, using both cellular logic arrays (e.g., CLIP [50], BASE 8 [35]) and SIMD systems (e.g., STARAN [36]). A variety of such sys- tems are discussed in [19]. Thus, the time seems right to in- vestigate how to construct a computer system such as PASM: a machine which can be dynamically reconfigured as one or more SIMD and/or MIMD machines, optimized for a variety of important image processing and pattern recognition tasks. 0018-9340/81/1200-0934$00.75 © 1981 IEEE 934
Transcript
Page 1: PASM: A Partitionable System for Image Processing and ...hj/journals/8.pdf · SIEGEL et al.: PASM dress of the desired data in the processor connected to the memoryto be accessed

IEEE TRANSACTIONS ON COMPUTERS, VOL. c-30, NO. 12, DECEMBER 1981

PASM: A Partitionable SIMD/MIMD Systemfor Image Processing and Pattern Recognition

HOWARD JAY SIEGEL, MEMBER, IEEE, LEAH J. SIEGEL, MEMBER, IEEE,FREDERICK C. KEMMERER, MEMBER, IEEE, PHILIP T. MUELLER, JR., MEMBER, IEEE,HAROLD E. SMALLEY, JR., MEMBER, IEEE, AND S. DIANE SMITH, MEMBER, IEEE

Abstract-PASM, a large-scale multimicroprocessor system beingdesigned at Purdue University for image processing and pattern rec-ognition, is described. This system can be dynamically reconfiguredto operate as one or more independent SIMD and/orMIMD machines.PASM consists of a parallel computation unit, which contains Nprocessors, N memories, and an interconnection network; Q micro-controllers, each of which controls N/Q processors; N/Q parallelsecondary storage devices; a distributed memory management system;and a system control unit, to coordinate the other system components.Possible values forN and Q are 1024 and 16, respectively. The controlschemes and memory management in PASM are explored. Examplesof how PASM can be used to perform image processing tasks aregiven.

Index Terms-Image processing, memory management, MIMDmachines, multimicroprocessor systems, multiple-SIMD machines,parallel processing, partitionable computer systems, PASM, recon-figurable computer systems, SIMD machines.

I. INTRODUCTION

As a result of the microprocessor revolution, it is nowfeasible to build multimicroprocessor systems capable

of performing image processing tasks more rapidly than pre-viously possible. There are many image processing tasks whichcan be performed on a parallel processing system, but areprohibitively expensive to perform on a conventional computersystem due to the large amount of time required to do the tasks[37]. In addition, a multimicroprocessor system can use par-allelism to perform the real-time image processing required

Manuscript received September 11, 1979; revised May 8, 1980 and March4, 1981. This work was supported by the Air Force Office of Scientific Re-search, Air Force Systems Commiand, USAF, under Grant AFOSR-78-3581,and the Defense Mapping Agency, monitored by the US Air Force Rome AirDevelopment Center Information Sciences Division, under ContractF30602-78-C-0025 through the University of Michigan.

H. J. Siegel and L. J. Siegel are with the School of Electrical Engineering,Purdue University, West Lafayette, IN 47907.

F. C. Kemmerer was with the School of Electrical Engineering, PurdueUniversity, West Lafayette, IN 47907. He is now with Bell Laboratories,Whippany, NJ 07981.

P. T. Mueller, Jr. was with the School of Electrical Engineering, PurdueUniversity, West Lafayette, IN 47907. He is now with Geophysical Services,Inc., Dallas, TX 75265.

H. E. Smalley, Jr. was with the School of Electrical Engineering, PurdueUniversity, West Lafayette, IN 47907. He is now with Hitachi America, Ltd.,Atlanta, GA 30360.

S. D. Smith was with the School of Electrical Engineering, Purdue Uni-versity, West Lafayette, IN 47907. She is now with the Department of Elec-trical and Computer Engineering, University of Wisconsin, Madison, WI53706.

for such applications as robot (machine) vision, automaticguidance of air and spacecraft, and air traffic control.

There are several types of parallel processing systems. AnSIMD (single instruction stream-multiple data stream)machine [18] typically consists of a set of N processors, Nmemories, an interconnection network, and a control unit (e.g.,Illiac IV [10]). The control unit broadcasts instructions to theprocessors and all active ("turned on") processors execute thesame instruction at the same time. Each processor executesinstructions using data taken from a memory with which onlyit is associated. The interconnection network allows inter-processor communication. An MSIMD (multiple-SIMD)system is a parallel processing system which can be structuredas one or more independent SIMD machines (e.g., MAP [31 ],[32]). The Illiac IV was originally designed as an MSIMDsystem [3]. An MIMD (multiple instruction stream-multipledata stream) machine [ 18] typically consists ofN processorsand N memories, where each processor can follow an inde-pendent instruction stream (e.g., C.mmp [60]). As with SIMD-architectures, there is a multiple data stream and an inter-connection network. A partitionable SIMD/MIMD systemis a parallel processing system which can be structured as oneor more independent SIMD and/or MIMD machines. In thispaper PASM [47], [48], a partitionable SIMD/MIMD sys-tem being designed at Purdue University for image processingand pattern recognition, is described.Many designers have discussed the possibilities of building

large-scale parallel processing systems, employing 214 to 216microprocessors, in SIMD (e.g., binary n-cube array [34]) andMIMD (e.g., CHoPP [54], [55]) configurations. Without thepresence of such a large number of processors, the concept ofpartitioning the system into smaller machines which can op-erate as SIMD or MIMD machines was unnecessary. Nutt[31] has suggested a machine which is a multiple-SIMD sys-tem. Lipovski and Tripathi [27] have considered the idea ofcombining the SIMD and MIMD modes of operation in onesystem. In addition, developments in recent years have shownthe importance of parallelism to image processing, using bothcellular logic arrays (e.g., CLIP [50], BASE 8 [35]) andSIMD systems (e.g., STARAN [36]). A variety of such sys-tems are discussed in [19]. Thus, the time seems right to in-vestigate how to construct a computer system such as PASM:a machine which can be dynamically reconfigured as one ormore SIMD and/or MIMD machines, optimized for a varietyof important image processing and pattern recognitiontasks.

0018-9340/81/1200-0934$00.75 © 1981 IEEE

934

Page 2: PASM: A Partitionable System for Image Processing and ...hj/journals/8.pdf · SIEGEL et al.: PASM dress of the desired data in the processor connected to the memoryto be accessed

SIEGEL et al.: PASM

The use of parallel processing in image processing has beenlimited in the past due to cost constraints. Most systems usedsmall numbers of processors (e.g., Illiac IV [10]), processorsof limited capabilities (e.g., STARAN [36]), or specializedlogic modules (e.g., PPM [24]). With the development ofmicroprocessors and related technologies it is reasonable toconsider parallel systems using a large number of completeprocessors.SIMD machines can be used for "local" processing of seg-

ments of images in parallel. For example, the image can besegmented and each processor assigned a segment. Then fol-lowing the same set of instructions, such tasks as line thinning,threshold dependent operations, and gap filling can be donein parallel for all segments of the image simultaneously. Alsoin SIMD mode, matrix arithmetic used for such tasks as sta-tistical pattern recognition can be done efficiently. MIMDmachines can be used to perform different "global" patternrecognition tasks in parallel, using multiple copies of the imageor one or more shared copies. For example, in cases where thegoal is to locate two or more distinct objects in an image, eachobject can be assigned a processor or set of processors to searchfor it. An SIMD/MIMD application might involve using thesame set of microprocessors for preprocessing an image inSIMD mode and then doing a pattern recognition task inMIMD mode.PASM, a partitionable SIMD/MIMD machine, is a

large-scale dynamically reconfigurable multimicroprocessorsystem [43], [46]-[48]. It is a special purpose system beingdesigned to exploit the parallelism of image processing andpattern recognition tasks. It can also be applied to related areassuch as speech processing and biomedical signal processing.In this paper the architecture of PASM is presented and ex-amples of its use in performing image processing tasks aregiven.

Computer system designers have been considering variousmultimicrocomputer architectures, such as [9], [11], [23],[26], [27], [34], [54], [58], and [59]. PASM combines thefollowing features:

1) it can be partitioned to operate as many independentSIMD and/or MIMD machines of varying sizes, and

2) it is being developed using a variety of problems in imageprocessing and pattern recognition to guide the designchoices.The purpose of PASM is to serve as a vehicle for experi-

menting with parallel image processing and pattern recogni-tion. It is not meant to be a production-line machine, but rathera research tool. The design attempts to incorporate the neededflexibility for studying large-scale SIMD and MIMD paral-lelism, while keeping system costs "reasonable."

In this paper the overall organization of PASM is presented.In particular, the control structure and secondary storagesystems are described, and some application examples aregiven. The purpose here is to present design concepts that willallow a system to exploit the parallelism that, for example,1024 processors can provide. Implementation details arecurrently under study and are beyond the scope and length ofthis paper.

Fig. 1 is a block diagram of the basic components of PASM.The parallel computation unit (PCU) contains N = 2n pro-

MANAGE- PARALLEL MICROMENT COMPUTATION CONTROL-SYSTEM UNIT LERS

Fig. 1. Block diagram overview of PASM.

cesors, N memory modules, and an interconnection network.The PCU processors are microprocessors that perform theactual SIMD and MIMD computations. The PCU memorymodules are used by the PCU processors for data storage inSIMD mode and both data and instruction storage in MIMDmode. The interconnection network provides a means ofcommunication among the PCU processors and memorymodules. Two possible ways to organize the PCU and differenttypes of partitionable networks which can be used are describedin Section II.The microcontrollers (MC's) are a set of microprocessors

which act as the control units for the PCU processors in SIMDmode and orchestrate the activities of the PCU processors inMIMD mode. There are Q = 2" MC's. Each MC controlsN/Q PCU processors. A virtual SIMD machine (partition) ofsize RN/Q, where R = 2r and 0 < r < q, is obtained by loadingR MC memory modules with the same instructions simulta-neously. Similarly, a virtual MIMD machine of size RN/Q isobtained by combining the efforts of the PCU processors ofR MC's. Q is therefore the maximum number of partitionsallowable, and N/Q is the size of the smallest partition. Possiblevalues for N and Q are 1024 and 16, respectively. Controlstorage contains the programs for the MC's. The MC's arediscussed in more detail in Section III.The memory storage system provides secondary storage

space for the data files in SIMD mode, and for the data andprogram files in MIMD mode. The memory managementsystem controls the transferring of files between the memorystorage system and the PCU memory modules. It employs aset of cooperating dedicated microprocessors. Multiple storagedevices are used in the memory storage system to allow paralleldata transfers. The secondary memory system is described inSection IV.The system control unit is a conventional machine, such as

a PDP-1 1, and is responsible for the overall coordination of theactivities of the other components of PASM. Examples of thetasks the system control unit will perform include programdevelopment, job scheduling, and coordination of the loadingof the PCU memory modules from the memory storage systemwith the loading of the MC memory modules from controlstorage. By carefully choosing which tasks should be assignedto, the system control unit and which should be assigned toother system components, the system control unit can-workeffectively and not become a bottleneck. Examples of this in-clude using the MC's to act as the control units for virtualSIMD machines, controlling the interconnection network withrouting tags generated by each PCU processor, and having thememory management system supervise primary/secondarymemory transfers.

935

Page 3: PASM: A Partitionable System for Image Processing and ...hj/journals/8.pdf · SIEGEL et al.: PASM dress of the desired data in the processor connected to the memoryto be accessed

IEEE TRANSACTIONS ON COMPUTERS, VOL. C-30, NO. 12, DECEMBER 1981

Together, Sections II, III, and IV present the overall ar-chitecture of PASM. Particular attention is paid to the waysin which the control structure and secondary memory schemeallow PASM to be efficiently partitioned into independentvirtual machines. Variations in the design of PASM's PCUwhich still support these control and secondary memory ideasare examined. This examination demonstrates how the con-cepts underlying PASM can be used in the design of differentsystems.

In Section V image processing algorithms using PASM arepresented. In particular, smoothing and histogram calculationsare examined. Using these examples, the potential improve-ment a system such as PASM can provide over serial machinesis demonstrated.

II. P^ARALLEL COMPUTATION UNIT

A. PCU Organization

The parallel computation unit (PCU) contains processors,memories, and an interconnection network. One configurationof these components is to connect a memory module to eachprocessor to form a processor-memory pair called a processingelement (PE) (e.g., Illiac IV [10]). The interconnection net-work is used for communications among PE's. This "PE-to-PE" configuration is shown in Fig. 2. A pair of memory unitsis used for each memory module. This double-buffering schemeallows data to be moved between one memory unit and sec-ondary storage (the memory storage system) while the pro-cessor operates on data in the other memory unit. In the PE-to-PE configuration, "local" memory references are relativelyfast, however, the transfer of large blocks of data from PE toPE is delayed by the memory fetching and storing which mustbe done.The "P-to-M" (processor-to-memory) configuration, shown

in Fig. 3, uses the interconnection network to connect theprocessors to the memory modules. Again, double-bufferingis employed. There is no "local" memory. To fetch an operandfrom memory, the processor must first send the address of theoperand through the interconnection network to a memory.Then the processor receives the operand from the memory viathe interconnection network. Advantages of the P-to-M con-figuration are that a memory connected to a processor can bereconnected to another processor, effectively transferring theentire contents of the memory from one processor to another,and that the number of memories does not have to be equal tothe number of processors (e.g., BSP [ 12]). A disadvantage isthat all memory references must go through the interconnec-tion network.A more detailed analysis reveals some of the tradeoffs in-

volved in these two cdnfigurations. If Tmr is the time requiredfor a memory access (either a read or a write), and Tin is thetime to send a data item through the interconnection network,then the time required for a memory reference in the P-to-Mconfiguration, TP-M, is given by

TP-M = Tin + Tmr + Tin- (1)

Tin must be included twice, once for the processor to send the

Fig. 2. PE-to-PE configuration of the parallel computation unit.

Fig. 3.

A~~~~~MEM. N-iA MICRO-

MEM. N-iB PROC.

LU

MEM I A_ _______J

Processor-to-memory configuration of the parallel computation

unit.

address to the memory and once for transferring the data. (Thetime required for controlling the network is omitted sincecontrol methods vary.)

For the PE-to-PE configuration the time required for amemory reference, TPE, depends on the location of the memorywhich is to be used. If the memory is local, then

TPE = Tmr. (2)If the memory is connected to some other processor, then

TPE = Tin + Tmr+ Tin. (3)Tinr represents the time required for the PE which has the dataitem to recognize and service the data request. This may re-quire a significantly longer'delay than Tmr. Ifp is the proba-bility of a local memory reference, then (2) and (3) can becombined to give the expected memory reference time

E[TPE] =PTmr + (1- p)(Tin + Tmr + Tin). (4)Comparing (1) and (4)

TP-M E[TPE] (5)

for p sufficiently large. Thus, the "best" configuration is taskdependent.When operating in SIMD mode with the PE-to-PE con-

figuration, it is often possible to omit one occurrence of Tin in(3) and reduce Ti,r to Tmr. This is done by computing the ad-

936

Page 4: PASM: A Partitionable System for Image Processing and ...hj/journals/8.pdf · SIEGEL et al.: PASM dress of the desired data in the processor connected to the memoryto be accessed

SIEGEL et al.: PASM

dress of the desired data in the processor connected to thememory to be accessed (e.g., see the algorithms in SectionV-B). Thus, (4) reduces to

E[TPE] = pTmr + (1 -p)(Tmr + Tin). (6)

Therefore, when operating in SIMD mode the PE-to-PEconfiguration is preferable.When operating in MIMD mode, the PE-to-PE configu-

ration requires that two processors be involved in every non-local memory reference. The efforts of two processors involvedin a data transfer can be coordinated by having the processorwhich initiates the transfer interrupt the other processor or bydedicating one of these processors to handling data transfers.In the P-to-M configuration the memories are shared by theprocessors, i.e., more than one processor can access the samememory for either data or instructions. However, for the imageprocessing tasks that have been examined, most data and in-structions can be stored in the local memory, reducing theimpact of this consideration.The PE-to-PE configuration will be used in PASM. De-

pending on the application for which a different partitionableSIMD/MIMD system is intended, the P-to-M configurationmay be preferable. The interconnection networks, controlstructure, and secondary memory system described below canbe used in conjunction with either.

B. Interconnection NetworksTwo types of multistage interconnection networks are being

considered for PASM: the Generalized Cube and the Aug-mented Data Manipulator (ADM). Both of these networkshave the following properties: 1) a logical structure consistingof n stages of N/2 (Cube) or N (ADM) switches [49]; 2)distributed control by routing tags generated by each processor[25], [28]; 3) the ability to operate in SIMD mode (N simul-taneous transfers) and MIMD mode [44], [45]; and 4) theability to be partitioned into independent subnetworks [42].As discussed in [49], the Cube network is equivalent or directlyrelated to other networks in the literature (e.g., [5], [6], [25],[33], and [34]). The ADM is an extension of the data ma-nipulator [16].

Both the Cube and ADM networks can be implemented assingle stage networks [38], [40], [41] instead of as multistagenetworks. These single stage implementations can also bepartitioned [42], are compatible with the PASM control andmemory management schemes, and may be appropriate forMSIMD systems, depending on the intended applications.However, since there is only a single stage of switches, for theMIMD mode of operation intermediate processors may haveto be interrupted to transfer data. (See [40] for more infor-mation.) Thus, single stage networks are not appropriate forPASM, but might be for an MSIMD system based on thedesign concepts of PASM.The tradeoffs between the Cube and ADM multistage

networks for PASM are currently under study. The ADMnetwork is more flexible and fault tolerant [40], [44], but ismore complex. The Cube may be more cost effective and suf-ficient for the system's needs. In the following sections it willbe assumed that the processors will be partitioned such that

the addresses of all of the processors in a partition agree in theirlow-order bit positions. This constraint will allow either theCube or ADM network to be used as the partitionable inter-connection network in PASM. Details of these networks arebeyond the scope of this paper, and readers are referred to thereferences indicated.

C. PCU Processors

The PCU processors will be specially designed for parallelimage processing. Simulation studies are currently beingconducted to aid in determining an efficient instruction set.A PASM prototype will most likely be based on user micro-programmable components to obtain needed flexibility, whilethe final system will employ custom VLSI processors.

III. MICROCONTROLLERSA. Introduction

In this section the microcontrollers (MC's) are discussed.It is the MC's that enable PASM to operate as an MSIMDsystem.

In general, the possible advantages of an MSIMD systemover an SIMD system with a similar number of PE's includethe following.

1) Fault Detection: For situations where high reliabilityis needed, three partitions can run the same program on thesame data and compare results.

2) Fault Tolerance: If a single PE fails, only those logicalSIMD machines (partitions) which must include the failed PEneed to be disabled. The rest of the system can continue tofunction.

3) Multiple Simultaneous Users: Since there can bemultiple independent virtual SIMD machines, there can bemultiple simultaneous users of the system, each executing adifferent SIMD program.

4) Program Development: Rather than trying to debug anSIMD program on, for example, 1024 PE's, it can be debuggedon a smaller size virtual SIMD machine of 32 or 64 PE's.

5) Variable Machine Sizefor Efficiency: If a task requiresonly N/2 ofN available PE's, the other N/2 can be used foranother task.

6) Subtask Parallelism: Two independent SIMD subtasksthat are part of the same job can be executed in parallel,sharing results if necessary.

For PASM's intended application as a tool for experi-menting with the use of parallelism in image processing andpattern recognition, points 2)-6) above will be significant.B. Microcontroller Organization and AddressingConventions

In order to have a partitionable system, some form of mul-tiple control units must be provided. In PASM this is done byhaving Q = 2q MC's, physically addressed (numbered) from0 to Q - 1. Each MC controls N/Q PCU processors, as shownin Fig. 4.An MC is a microprocessor which is attached -to a memory

module. Each memory module consists of a pair of memoryunits so that memory loading and computations can be over-lapped. This double-buffering reduces the likelihood of MC's

937

Page 5: PASM: A Partitionable System for Image Processing and ...hj/journals/8.pdf · SIEGEL et al.: PASM dress of the desired data in the processor connected to the memoryto be accessed

IEEE TRANSACTIONS ON COMPUTERS, VOL. C-30, NO. 12, DECEMBER 1981

FROM SYSTEM CONTROL UNITAND CONTROL STORAGE

MC MEMORY MODULES

PROC. 0 N

PROC. Q

PROC. N-QPROC. 1 N

PROC. Q+l

PROC. N-Q+I _

PROC. Q-1 N

PROC. 2Q-l1

PROC. N-I

MC MC MEM. ~

MICRO- OA_APROC. O MC MEM.

_ MC > ~~MC MEM.MICRO- IAPROC. 1 MC MEM.

0

3 ; MC MEM.MICRO- Q-1 APROC Q- 1 \MC MEM._

IQ-1 B

ii'-MCMEMORYSYSTEMSWI TCH

Fig. 4. PASM microcontrollers (MC's).

being idle while waiting for a program to be loaded. In SIMDmode, each MC fetches instructions from its memory module,executing the control flow instructions (e.g., branches) andbroadcasting the data processing instructions to its PCUprocessors. The physical addresses of the N/Q processors whichare connected to an MC must all have the same low-order qbits so that the network can be partitioned. The value of theselow-order q bits is the physical address of the MC. A virtualSIMD machine of size RN/Q, where R = 2r and 0 < r < q,is obtained by loading R MC's with the same instructions andsynchronizing the MC's. The physical addresses of these MC'smust have the same low-order q - r bits so that all of the PCUprocessors in the partition have the same low-order q - r

physical address bits. Similarly, a virtual MIMD machine ofsize RN/Q is obtained by c-ombining the efforts of the PCUPE's associated with R MC's which have the same low-orderq - r physical address bits. In MIMD mode the MC's may beused to help coordinate the activities of their PCU PE's.The approach of permanently assigning a fixed number of

PCU PE's to each MC has several advantages over allowinga varying assignment, such as in [11] and [31]. One advantageis that the operating system need only schedule (and monitorthe "busy" status of) Q MC's, rather than N PCU PE's. WhenQ = 16 (or even 32) andN = 1024, this is a substantial savings.Another advantage is that no crossbar switch is needed forconnecting processors and control units (as proposed in [ 11]

and [31 ]). Also, this fixed connection scheme allows the effi-cient use of multiple secondary storage devices, as is discussedin Section IV-B. The main disadvantage of this approach isthat each virtual machine size must be a power of two, with a

minimum value of N/Q. However, for PASM's intended ex-

perimental environment, flexibility at reasonable cost is thegoal, not maximum processor utilization.

This basic MC organization can be enhanced to allow thesharing of memory modules by the MC's in a partition. TheMC's can be connected by a shared reconfigurable ("shorta-ble") bus such as described in [2], as shown in Fig. 5. The MC'smust be ordered on the bus in terms of the bit reverse of theiraddresses due to the partitioning rules. (The sharing of

MC PROCESSORS

"THROUGH" "SHORT''

Fig. 5. Reconfigurable shared bus scheme for interconnecting microcon-troller (MC) processors and MC memory modules, for Q = 8. Each boxcan be set to "through" or "short."

memories using a reconfigurable bus is employed in [22].) Thisenhanced MC connection scheme would provide more programspace for jobs using multiple MC's and would also provide adegree of fault tolerance, since known-faulty MC memorymodules could be ignored. These advantages come at the ex-pense of additional system complexity, and the inclusion of theenhanced scheme in PASM will depend on cost constraints atimplementation time.

In each partition the PCU processors and memory modulesare assigned logical addresses. Given a virtual machine of sizeRN/Q, the processors and memory modules for this partitionhave logical addresses (numbers) 0 to (RN/Q) - 1, R = 2r,0 < r < q. Assuming that the MC's have been assigned asdescribed above, then the logical number of a processor ormemory module is the high-order r + n - q bits of the physicalnumber. Similarly, the MC's assigned to the partition arelogically numbered (addressed) from 0 to R - 1. For R > 1,the logical number of an MC is the high-order r bits of itsphysical number. The PASM language compilers and oper-ating system will be used to convert from logical to physicaladdresses, so a system user will deal only with logical ad-dresses.

C. Communications with the System Control Unit

SIMD programs are stored in control storage (see Fig. 1),which is the secondary storage for the MC's. The loading ofthese programs from control storage into the MC memoryunits is controlled by the system control unit. When largeSIMD jobs are run, that is, jobs which require more than N/Qprocessors, more than one MC executes the same set of in-structions. With the basic scheme in the previous section, eachMC has its own memory, so if more than one MC is to be used,then several memories must be loaded with the same set ofinstructions.The fastest way to load several MC memories with the same

set of instructions is to load all of the memories at the sametime. This can be accomplished by connecting the controlstorage to all of the MC memory modules via a bus. Eachmemory module is either enabled or disabled for loading fromcontrol storage, depending on the contents of the Q-bit MC

938

Page 6: PASM: A Partitionable System for Image Processing and ...hj/journals/8.pdf · SIEGEL et al.: PASM dress of the desired data in the processor connected to the memoryto be accessed

SIEGEL et al.: PASM

memory load register. The Q-bit MC memory select registerselects for each MC processor which memory unit of itsmemory module it should use for instructions. An enabledmemory unit not being used by an MC processor receives thedata from control storage. Both of these registers are set by thesystem control unit.The Q-bit MC status register contains the go/done status

of the MC's. When the system control unit sets the ith bit toa " 1," MC i sets its program counter to zero and begins exe-cuting the contents of the memory unit that is specified by theMC memory select register. When the MC is done, it resetsits bit of the MC status register to "0" and sends an interruptto the system control unit to inform it that an MC has fin-ished.

Further details about the communications between theMC's and the system control unit are in [47].D. Communications Among Microcontrollers

Instructions which examine the collective status of all of thePE's of a virtual SIMD machine include "if any," "if all," and"if none." These instructions change the flow of control of theprogram at execution time depending on whether any or allprocessors in the SIMD machine satisfy some condition. Forexample, if each PE is processing data from a different radarunit, but all PE's are looking for enemy planes, it is desirablefor the control unit to know "if any" of the PE's has discovereda possible attack.The task of computing an "if any" type of statement that

involves several MC's can be handled using the existinghardware. This can be accomplished by having the PCU pro-cessors associated with these MC's use a recursive doubling[53] type of algorithm.

Specialized hardware to handle this task can be added in-expensively and will result in a faster solution than the softwareapproach. Each MC will have a q + 1 bit job identificationnumber (ID) for the job it is running (there can be at most onejob in each of the 2Q memory units). The MC's will share anMC communication bus, consisting of an ID bus and a databus. When an "if any" type instruction is encountered, eachMC associated with the job determines the result of the "ifany" type of statement for its N/Q PE's and sends a requestto use the communication bus. When an MC receives per-mission to use the bus, it broadcasts its job ID to all of the MC's(including itself) via the ID bus. If an MC is running the jobwith the ID which is on the ID bus it then puts its local resultsonto the data bus. The data bus is one bit wide and will beconstructed as a Q input "wired and" gate. This allows all ofthe MC's associated with a job to put their data on the bus si-multaneously and read the result. Each MC serviced removesitself from the queue. The MC's will then execute the condi-tional branch in the common instruction stream. All MC's ina partition will be synchronized, executing the "if any" typeof instruction at the same time. None of the MC's will continuepast that instruction until after its job ID has appeared on theID bus.The system control unit is not burdened under this method.

More details about this communications scheme are in[47].

E. Enabling and Disabling PCU Processors

In SIMD mode all of the active PCU PE's will execute in-structions broadcast to them by their MC. A masking schemeis a method for determining which PCU PE's will be active ata given point in time. An SIMD machine may have severaldifferent masking schemes.The general masking scheme uses an N-bit vector to de-

termine which PCU PE's to activate. PE i will be active if theith bit of the vector is a 1, for 0 < i < N. A mask instructionis executed whenever a change in the active status of the PE'sis required. The Illiac IV, which has.64 processors and 64-bitwords, uses general masks [51 ]. However, when N is larger,say 1024, a scheme such as this becomes less appealing.The PE address masking scheme [38] uses an n-position

mask to specify which of the N PCU PE's are to be activated.Each position of the mask corresponds to a bit position in theaddresses of the PE's. Each position of the mask will containeither a 0, 1, orX (DON'T CARE) and the only PE's that willbe active are those whose address matches the mask: 0 matches0, 1 matches 1, and either 0 or 1 matches X. Square bracketsdenote a mask. Superscripts are used as repetition factors. Forexample, MASK [Xn- O] activates all even numbered PE's;MASK [On-iXi] activates PE's 0 to 2i- 1.A negative PE address mask [39] is similar to a regular PE

address mask, except that it activates all those PE's which donot match the mask. Negative PE address masks are prefixedwith a minus sign to distinguish them from regular PE addressmasks. For example, forN = 8, MASK [-OOX] activates allPE's except 0 and 1. This type of mask can activate sets of PE'sa single regular PE address mask cannot.

Like general masks, PE address masks are specified in theSIMD program. PE address masks are more restictive thangeneral masks, in that a general mask can activate any arbi-trary set of PE's and a PE address mask cannot. However, forN >> 64, general masks are impractical in terms of storagerequirements and ease of programming, and so system archi-tects must consider alternatives. Together, regular and nega-tive PE address masks provide enough flexibility to allow theeasy programming of a variety of image processing tasks.

For ease of encoding and decoding, two bits are used torepresent each PE address mask position and one bit for thesign, as shown in Fig. 6. The 2(n - q) high-order bits pertainto the PCU PE's in an MC group, while the low-order 2q bitspertain to the MC addresses. The entire mask word is aphysical mask and is used with the physical addresses of thePCU PE's and the MC's. For a partition of size 2P, thep po-sition logical mask forms the p high-order positions of thephysical mask and "X"s are used in the low-order n-p posi-tions. Each MC contains a mask decoder, as shown in Fig. 7,which transforms the 2n + 1 bit physical mask into an N/Q bitgeneral mask vector for PE's connected to that MC. This is allthat is required to translate a logical mask into enable sig-nals.

939

Page 7: PASM: A Partitionable System for Image Processing and ...hj/journals/8.pdf · SIEGEL et al.: PASM dress of the desired data in the processor connected to the memoryto be accessed

IEEE TRANSACTIONS ON COMPUTERS, VOL. C-30, NO. 12, DECEMBER 1981

J j[ Kg K8 K8 S Ill

MASK 0 1 X

KI 0 1 1 S= 0 POSITIVE MASKS= 1 NEGATIVE MASK

KO 0 1 0

Fig. 6. PE address mask binary encoding for N = 1024.

s ,-

Fig. 7. PE address mask decoder for the microcontroller whose physicaladdress is 0, for N = 1024 and Q = 16.

The system of Fig. 8 allows an arbitrary general mask vectoror the output of the PE address mask decoder to be sent to themask vector register of each MC. If the general maskingscheme were implemented on PASM, a reformatting operationwould be needed. Assume that the mask is being used in a

partition of size RN/Q. The system compiler can rearrange theprogrammer's logical general mask to form a physical generalmask. The PCU PE whose logical address is (R * j) + i willbe the jth PE controlled by the ith logical MC, 0 ' i < R, 0

< j < N/Q. The logical mask bit (R * j) + i is moved to thephysical mask position (N/Q)i + j. Then the MC whose logicaladdress is i will load its N/Q-bit mask register with bits i * N/Qthrough ((i + 1) * N/Q) - I of the physical mask. (Thetranslation of logical MC addresses to physical addresses was

described in Section III-B.) This method of loading will sendthe ith bit of the logical general mask to the ith logical PCUPE.

Based on the intended size and applications of PASM,general mask vectors will not be used. However, the previousparagraph shows how they can be used on a PASM-type sys-tem designed for a different size and/or application do-main.As a compromise between the flexibility of general mask

vectors and the conciseness of PE address masks, the MC isallowed to fetch the N/Q-bit vector from the mask vectorregister, perform various logical operations on the vector, andthen reload it. A logical OR of two (or more) vectors generatedby PE address masks is equivalent to taking the union of thesets of processors activated by the masks. A logical AND iS

PROC. \ 6l

L3tl ~VECTOR 7LDE- ' M CROREG ISTER CODER . CLONRTROL-

PROC .

N-Q+i | CONTROL LINES

Fig. 8. Masking portion of microcontroller i, for N = 1024 and Q = 16."e" is PCU processor enable bit.

equivalent to the intersection. The complement operation canbe used to implement negative PE address masks instead ofusing the EXCLUSIVE-OR gates shown in Fig. 7. This is theway in which the PE address masking scheme will be imple-mented on PASM. This same scheme could be used in anySIMD or MSIMD system.

Thus, PE address masks are concise, easily converted fromlogical to physical masks, and can be combined using Booleanfunctions for additional flexibility. Examples of how PE ad-dress masks can be used in algorithms for image processingtasks are presented in Section V. More information about thesemasks and their use is in [38], [39], and [41].

Both general mask vectors and PE address masks are set atcompile time. Data conditional masks will be implemented inPASM for use when the decision to enable and disable PE'sis made at execution time.

Data conditional masks are the implicit result of performinga conditional branch dependent on local data in an SIMDmachine environment, where the result of different PE'sevaluations may differ. As a result of a conditional wherestatement of the form

where (data condition) do * elsewhere

each PE will set its own internal flag to activate itself for eitherthe "do" or the "elsewhere," but not both. The execution ofthe "elsewhere" statements must follow the "do" statements,i.e., the "do" and "elsewhere" statements cannot be executedsimultaneously. For example, as a result of executing thestatement

whereA > Bdo C - A elsewhere C - B

each PE will load its C register with the maximum of its A andB registers, i.e., some PE's will execute "C - A," and then therest will execute "C -B." This type of masking is used in suchmachines as the Illiac IV [3] and PEPE [13]. "Where"statements can be nested using a run-time control stack, asdiscussed in [46].

IV. SECONDARY MEMORY SYSTEM

A. Introduction

The memory management system in PASM will have itsown intelligence and will use the parallel secondary storagedevices of the memory storage system. Giving the memorymanagement system its own intelligence will help prevent thesystem control unit from being overburdened. The parallelsecondary storage devices will allow fast loading and unloadingof the N double-buffered PCU memory modules and willprovide storage for system image data and MIMD pro-grams.

940

Page 8: PASM: A Partitionable System for Image Processing and ...hj/journals/8.pdf · SIEGEL et al.: PASM dress of the desired data in the processor connected to the memoryto be accessed

SIEGEL et al.: PASM

B. Memory Storage System

Secondary storage for the PCU memory modules is providedby the memory storage system. The memory storage systemwill consist of N/Q independent memory storage units, whereN is the number of PCU PE's and Q is the number of MC's.The memory storage units will be numbered from 0 to (N/Q)- 1. Each memory storage unit is connected to Q PCUmemory modules. For 0 < i < N/Q, memory storage unit i isconnected to those memory modules whose physical addressesare of the form (Q * i) + k, 0 < k < Q. Recall that for 0 < k< Q, MC k is connected to those PE's whose physical ad-dresses are of the form (Q * i) + k, 0 < i < N/Q. This is shownfor N = 32 and Q = 4 in Fig. 9.The two main advantages of this approach for a partition

of size N/Q are that: 1) all of the memory modules can beloaded in parallel, and 2) the data is directly available no

matter which partition (MC group) is chosen. This is done bystoring in memory storage unit i the data for a task which isto be loaded into the ith logical memory module of the virtualmachine of size N/Q, 0 < i < N/Q. Memory storage unit i isconnected to the ith memory module in each MC group so thatno matter which MC group of N/Q processors is chosen, thedata from the ith memory storage unit can be loaded into theith logical memory module, 0 < i < N/Q, simultaneously.

Thus, for virtual machines of size N/Q, this secondarystorage scheme allows all N/Q memory modules to be loadedin one parallel block transfer. This same approach can be takenif only (N/Q)/2d distinct memory storage units are available,where 0 < d < n - q. In this case, however, 2d parallel blockloads will be required instead of just one.

Consider the situation where a virtual machine of size RN/Qis desired, 1 < R < Q, and there are N/Q memory storageunits. In general, a task needing RN/Q PE's, logically num-bered 0 to RN/Q - 1, will require R parallel block loads if thedata for the memory module whose high-order n - q logicaladdress bits equal i is loaded into memory storage unit i. Thisis true no matter which group ofR MC's (which agree in theirlow-order q - r address bits) is chosen.

For example, consider Fig. 9, and assume that a virtualmachine of size 16 is desired. The data for the memory moduleswhose logical addresses are 0 and 1 is loaded into memorystorage unit 0, for memory modules 2 and 3 into unit 1, etc.Assume that the partition of size 16 is chosen to consist of theprocessors connected to MC's 0 and 2. Given this assignmentof MC's, the PCU memory module whose physical address is2 * i has logical address i, 0 < i < 16. The memory storageunits first load memory modules physically addressed 0, 4, 8,12, 16, 20, 24, and 28 (simultaneously), and then load memorymodules 2, 6, 10, 14, 18, 22, 26, and 30 (simultaneously). Nomatter which pair of MC's is chosen, only two parallel blockloads are needed.

Thus, for a virtual machine of size RN/Q, this secondarystorage scheme allows all RN/G memory modules to be loadedin R parallel block transfers, 1 < R < Q. If only (N/Q)/2ddistinct memory storage units are available, 0 < d < n -,

then R * 2d parallel block loads will be required instead ofjustR.

The actual devices that will be used as memory storage unitswill depend upon the speed requirements of the rest ofPASM,

PCUPE#

2MMC 23S _ bM MC 3

4

Fig. 9. Organization of the memory storage system for N = 32 and Q = 4,where "MSU" is memory storage unit, "MC" is microcontroller, "PCU"is parallel computation unit, and "PE" is processing element.

cost constraints, and the state of the art of storage technologyat implementation time. This memory organization conceptcould be employed in any SIMD, MSIMD, MIMD, or parti-tionable SIMD/MIMD system that uses the PASM (or sim-ilar) addressing conventions for partitioning.

C. Handling Large Data Sets

The memory management system makes use of the dou-ble-buffered arrangement of the memory modules to enhancesystem throughput. The scheduler, using information from thesystem control unit such as the number of PCU PB's neededand maximum allowable run time, will sequence tasks waitingto execute [48]. Typically, all of the data for a task will beloaded into the appropriate memory units before executionbegins. Then while a processor is using one of its memory units,the memory management system can be unloading the otherunit and then loading it for the next task. When the task cur-rently being executed is completed, the PCU processor canswitch to its other memory unit to begin the next task.

There may be some cases where all of the data will not fitinto the PCU memory space allocated. Assume that a memoryframe is the amount of space used in the PCU memory unitsfor the storage of data from secondary storage for a particulartask. There are tasks where many memory frames are to beprocessed by the same program (e.g., maximum likelihoodclassification of satellite data [57]). The double-bufferedmemory modules can be used so that as soon as the data in onememory unit are processed, the processor can switch to theother unit and continue executing the same program. Whenthe processor is ready to switch memory units, it signals thememory management system that it has finished using the datain the memory unit to which they are currently connected.

941

Page 9: PASM: A Partitionable System for Image Processing and ...hj/journals/8.pdf · SIEGEL et al.: PASM dress of the desired data in the processor connected to the memoryto be accessed

IEEE TRANSACTIONS ON COMPUTERS, VOL. C-30, NO. 12, DECEMBER 1981

Hardware to provide this signaling capability can be providedin different ways, such as using interrupt lines from the pro-

cessors or by using logic to check the address lines between theprocessor and its memory modules for-a special address code.The processor switches memory units, assuming that the datais present, and then checks a data identification tag to ensurethat the new memory frame is available. The memory man-

agement system can then unload the "processed" memory unitand load it with the next memory frame or next task. Such a

scheme, however, requires some mechanism which can makevariable length portions of programs or data sets (its localdata) stored in one unit of a memory module available to theother unit when the associated processor switches to access thenext memory frame.One method to do this maintains a copy of local data in both

memory units associated with a given processor so thatswitching memory units does not alter the local variable stor-age associated with the processor. A possible hardware ar-

rangement to implement this makes use of two characteristicsof the PASM memory access requirements: 1) secondarymemory will not be able to load a given memory unit at themaximum rate it can accept data, and 2) PCU processors willnot often be able (or desire) to write to memory on successivememory cycles. (An exception to the second characteristic ismultiple precision data, but this can be handled by a simplebuffering'scheme.) Because of these two characteristics, pro-

cessor stores to local variable storage locations in an activememory unit can be trapped by a bus interface register andstored in the inactive memory unit by stealing an access cyclefrom the secondary memory bus. In essence, this techniquemakes use of the conventional store-through concept as de-scribed in [21]. This scheme would be used only when multiplememory frames are to be processed.The method described is applicable to any system which

allows its processing tasks to utilize several separate memoriesand which requires that identical copies of variable amountsof certain data be maintained in all memories so used. Furtherinformation about this scheme and a discussion of other pos-

sible methods for providing local data storage are presentedin [43].

D. Altering Loading Sequences

A task may alter the sequence of data processed by it duringexecution. As an example, consider a task which is attemptingto identify certain features in a series of images. The task mightexamine a visible spectrum copy of an image and, based on

features identified in the image, choose to examine an infraredspectrum copy of the same image. Rather than burden thesystem control unit to perform data loading sequence alter-ations, the task is allowed to communicate directly with thememory management system.

For SIMD mode this can be handled by allowing each MCto interrupt and pass the necessary information to the memorymanagement system. Alternatively, a PE (e.g., logical PE 0)can signal the memory management system (as mentioned inSection IV-C), which would read the loading sequence infor-mation stored in the PE's memory module. More details aboutthis are in [43].

The same hardware arrangement described for SIMD tasksis used for MIMD tasks. With each group of N/Q MIMDPE's, there is associated a memory supervisor which is logicalPE 0 within the group. This is less costly than providinghardware for each PE to communicate with the memorymanagement system. All PE's associated with a given memorysupervisor make requests for loading sequence changes throughthe memory supervisor, without involving the MC(s) or systemcontrol unit. This reduces system control unit contentionproblems and helps prevent the MC(s), possibly busy orches-trating the activities of the virtual MIMD machine, from be-coming overburdened.E. Memory Management SystemA set of microprocessors is dedicated to performing the

memory management system tasks in a distributed fashion,i.e., one processor handles memory storage system bus control,one handles the peripheral device I/O, etc. This distributedprocessing approach is chosen in order to provide the memorymanagement system with a large amount of processing powerat low cost. Requests coming from different devices (e.g.,system control unit, PCU PE) can be handled simultaneously.In addition, dedicating specific microprocessors to certain taskssimplifies both the hardware and software required to performeach task.The division of tasks chosen is based on the main functions

which the memory management system must perform, in-cluding: 1) generating tasks based on PCU memory moduleload/unload requests from the system control unit, 2) interrupthandling and generating tasks for data loading sequencechanges, 3) scheduling of memory storage system datatransfers, 4) control of input/output operations involving pe-ripheral devices and the memory storage system, 5) mainte-nance of the memory management system file directory in-formation, and 6) control of the memory storage system bussystem. These are all tasks with which the system control unitmight otherwise be burdened. Further details are in [43].

V. IMAGE PROCESSING ON PASM

A. IntroductionIn this section an example of how PASM can be used to

expedite image processing tasks is presented. A high levellanguage algorithm to smooth an image and build a histogramdemonstrates some of the features of a programming languagefor PASM. Implementation of this algorithm demonstratesthe ways in which PASM's parallelism may be used to obtainsignificant reductions of execution time on computationallyintensive tasks.

Ideally, a high level language for image processing will allowalgorithms for image processing tasks to be expressed easily.The language being designed for PASM is a procedure basedstructured language which allows the use of index sets similarto those in TRANQUIL [1]. The characteristics of the imageprocessing problem domain are being used to facilitate com-piling. Analyses of image processing tasks (e.g., [15], [30], and[56]) are being employed to identify efficient techniques foiperforming common tasks and to define storage allocationstrategies.

942

Page 10: PASM: A Partitionable System for Image Processing and ...hj/journals/8.pdf · SIEGEL et al.: PASM dress of the desired data in the processor connected to the memoryto be accessed

SIEGEL et al.: PASM

B. Smoothing and Histogram Algorithms

An M X M image is represented by an array of M2 pixels(picture elements), where the value of each pixel is assumedto be an eight bit unsigned integer representing one of 256possible gray levels. In image smoothing each pixel is assigneda gray level equal to the average of the gray levels of the pixeland its eight nearest neighbors in the unsmoothed image. Thisoperation is performed for each pixel in the image, with thepossible exception of the edge pixels. The 256-bin histogramof the image contains aj in bin i if exactly j of the pixels haveagraylevelofi,0 < i < 256.The high level language algorithm "picture," shown in Fig.

10, performs smoothing on a 512 X 512 image, and also pro-duces a 256-bin histogram, "hist," of the smoothed image. Thelanguage constructs used are described in [29].To implement image smoothing on PASM, assume N = S2

and that the PE's are logically configured as an s X s grid, onwhich anM X M image is superimposed, i.e., each processorholds a Mls X M/s subimage. This is shown in Fig. 11(a). ForN = 1024 andM = 512, each PE stores a 16 X 16 blockof theimage. Let each PE consider its 16 X 16 block as a matrix mwith elements m(i, j), 0 < i, j < 16. Also, let the subscripts ofm(i, j) extend to -1 and 16, in order to aid in calculationsacross boundaries of two adjacent blocks in different PE's. Forexample, the pixel to the left of m(0, 0) is m(0, -1), and thepixel below m(15, 15) is m(16, 15). Therefore, -1 < i, j <16.

In the 1024-PE SIMD algorithm, smoothing will be per-formed on the 1024 subimages in parallel. At the boundariesof each 16 X 16 array, data must be transmitted between PE's,as shown in Fig. 11(b), in order to calculate the smoothed valuems. For example, m(i, 16), 0 < i < 16, must be transferredfrom the PE "to the right of' the local PE, except for PE's 31,63, 95, * *-, 1023, those at the "right edge" of the logical arrayof PE's.The compiler generated code to transfer data from PE k +

1 to PE k can be expressed as follows.

SETICNto PE- 1;

DTRin -m(0-- - 15, 0);TRANSFER;MASK [-X515] m(O -0 15, 16) DTRout;

"Set ICN to PE ± d" sets the interconnection network so thatPE P sends data to PE P i: d mod N, 0 < P < N. PE's transferdata through data transfer registers. First, the data are loadedinto the DTRin of each PE, then the TRANSFER commandmoves the data through the network, and finally the data areretrieved from DTRout. The notation "I -1 u" denotes thatthe operation is performed for each subscript value i in therange I < i < u. The set of three statements "DTRin *- m(0

15, 0), TRANSFER, m(0 - 15, 16) <- DTRout" willcause a block transfer of 16 elements, using the current net-work setting. This may occur one word at a time, dependingupon the network implementation. The command MASK[address set] is a PE address mask that determines which PE'swill execute the instructions that follow. The absence of a mask

PROCEDURE picture

/* define pixin and pixout to be 512x512arrays of unsigned eight bit integers */

UNSIGNED BYrE pixinC5125t12), pixout[51235123;

J* define hist to be a 256 word array of integers */

INTEGER histE256J;

/* define x and y to be index sets */

INDEX x, y;

/* decLare pixin to be Loaded by input data andpixout and hist to be unloaded as output data */

DATA INPUT pixin;DATA OUTPUT pixout, hist;

/* define the sets of indices which x and y represent, i.e.,x and y represent the integers between 1 and 510 inclusive */

x = y = {1 * 510);

/* compute average of each point and its eightnearest neighbors (simuLtaneously if possible) */

pixoutCx]Cy3 = (pixinCx-13Cy-1J+pixinEx-1l3y3+pixinCx-1][y+1l+pixinlx3Ey-1 +pixin[xJEy)+pixinEx3Ey+13+pixinEx+1JEy-13+pixintx+1JCy3+pixin[x+13[y+1])/9;

/* initialize each bin to zero */

histCO * 2553 = 0;

/* compute histogram *1

histEpixoutEx3CyJ) = hist[pixoutlx)Ey33 + 1;

END picture

Fig. 10. High level language algorithm for smoothing and computing his-togram. Keywords are in upper case for ease of identification; however, inactual use they need not be.

M pixels

PE 0 PE PE s-i

PE s . . . ixel M/s pixels pixel

M | M/s IPE/s pixels PE J c=M/s pixelspixels pixels

M1/s

pixel M/s pixels pixel

PE N-s PE N-1 (b)

(a)Fig. 11. (a) Data allocation for smoothing anM X M image usingN PE's,

where N = s2. (b) Data transfers needed to smooth edge pixels in eachPE.

implies that all PE's are active. The mask [-X515] deactivatesthe PE's on the right side of the image, i.e., PE's 31, 63, -*,1023.The transfers of data for the remaining three sides of the

array m, i.e., from PE's k - 1, k + 32, and k - 32, are ac-complished in a similar manner. Smoothing of the four pointsm(0, 0), m(0, 15), M(15, 0), and m(15, 15) requires datatransfers from PE's k - 33, k - 31, k + 31, and k + 33, re-spectively. Both the multistage Cube and ADM networks canperform each of these connections in a single pass.

In order to perform a smoothing operation on a 512 X 512image by the parallel smoothing of blocks of size 16 X 16, thetotal number of parallel word transfers is (4 * 16) + 4 = 68.The corresponding sequential algorithm needs no data trans-fers between PE's, but calculates ms for 512 * 512 = 262,144points. If no data transfers were needed, the parallel algorithmwould be faster than the sequential algorithm by a factor of

943

Page 11: PASM: A Partitionable System for Image Processing and ...hj/journals/8.pdf · SIEGEL et al.: PASM dress of the desired data in the processor connected to the memoryto be accessed

IEEE TRANSACTIONS ON COMPUTERS, VOL. C-30, NO. 12, DECEMBER 1981

PE

0 (0,1,2,3) (0,1) (0)Block 1 (0,1,2,3) (0,1) ) (1)

0 2 (0,1,2,3) (2,3)-..(2)3 (0,1,2,3) (2,3) (3)

4 (0,1,2,3) (0,1i ) ><(0)Block 5 (0,1,2,3) (0,1) (1)'

6 (0,1,2,3) (2,3) (2))

7 (0,1,2,3) (2,3) "(3)

8 (0,1,2,3) (0,1) -,.-'(0)Block 9 (0,1,2,3) (0,1)> (1 )

2 10 (0,1,2,3) (2,3) <(2)11 (0,1,2,3) (2,3) (3)

12 (0,1,2,3) (0,1 (0)Block 13 (0,1,2,3) g (0,1) (1)

-3 14 (0,1,2,3) 'X"(2,3) (2)15 (0,1,2,3) (2,3)-" (3)

Fig. 12. Histogram calculation for N = 16 PE's, B = 4 bins. (w, *--, z)denotes that bins w through z of the partial histogram are in the PE.

262,144/(16 * 16) = 1024. If it is assumed that each paralleldata transfer requires at most as much time as one smoothingoperation, then the time factor is 262,144/324 = 809. Thatis, the parallel algorithm is about three orders of magnitudefaster than the sequential algorithm executed on a single PCUPE. The approximation is a conservative one, since calculatingthe addresses of the nine pixels involves nine multiplicationsusing the subscripts [20].Now consider implementing the histogram calculation.

Since the image ms is distributed over 1024 PE's, each PE willcalculate a 256-bin histogram based on its 16 X 16 segmentof the image. Then these "local" histograms will be combinedusing the algorithm described below. This algorithm is dem-onstrated forN = 16 and B = 4 bins, instead ofN = 1024 andB = 256 bins, in Fig. 12. Both the Cube and ADM multistagenetworks can perform each of the needed transfers in a singlepass.

In the first b = log2B steps, each block of B PE's performsB simultaneous recursive doublings [53] to compute the his-togram for the portion of the image contained in the block. Atthe end of the b steps, each PE has one bin of this partial his-togram. This is accomplished by first dividing the B PE's ofa block into two groups. Each group accumulates the sums forhalf of the bins, and sends the bins it is not accumulating to thegroup which is accumulating those bins. At each step of thealgorithm, each group of PE's is divided in half such that thePE's with the lower addresses form one group, and the PE'swith the higher addresses form another. The accumulated sumsare similarly divided in half based on their indices in the his-togram. The groups then exchange sums, so that each PEcontains only sum terms which it is accumulating. The newlyreceived sums are added to the sums already in the PE. Afterb steps, each PE has the total value for one bin from the portionof the image contained in the B PE's in its block.The next n - b steps combine the results of these blocks to

yield the histogram of the entire image distributed over B PE's,with the sum for bin i in PE i, 0 < i < B. This is done by per-

forming n - b steps of a recursive doubling algorithm to sumthe partial histograms from the N/B blocks, shown by the lasttwo steps of Fig. 12. A general algorithm to compute the B-binhistogram for an image distributed overN PE's is shown in Fig.13.

/*aLgorithm to combine "Local" histograms. b' = (log2B)-1; n = log2N;

keep is the index of the first bin which to be kept.send is the index of the first bin which is to be sent to another PE *f

keep - 0;/*form histogram for each group of B PEs *ffor i 0O to b' do

/*group of PEs with higher addresses prepares to send first halfof remaining bins to group of PEs with Lower addresses *f

MASK EXn (b -i)-1 b_;send + keep;

b'-ikeep ' send + 2

SET ICN to PE - 2b i

/*group of PEs with tower addresses prepares- to send second halfof remaining bins to group of PEs with higher addresses. *1

MASK EXn-(b'- i)-l oxb'-i I

send #. keep,+ 2b ;

SET ICN to PE +2b

/*transfer 2b'-i bins, add received data to kept data *f

MASK IXn)

DTRin - hist[send - send + 2b i_11;

TRANSFER;

histCkeep * keep + 2b i-1 1

4 hist[keep * keep + 2b-1_1) + DTRout;

/*Combine N/B partial histograms to form histogram of entire image. */

for i + 0 to log2(N/B)-1

MASK Xn-b'-i ixb'+1+i:

SET ICN to PE + 2bI11i;DTRin + histtkeep];TRANSFER;

MASK [Xn-b-i oxb+1+iIhist[keep] * histCkeep] + DTRout

Fig. 13. Algorithm to perform the B-bin histogram calculation for imagedistributed over N PE's.

A sequential algorithm to compute the histogram of an MX M image requires M2 additions. The SIMD algorithm usesM2/N additions for each PE to compute its local histogram.At step i in the merging of the partial histograms, 0 < i < b,the number of data transfers and additions required is B/2i+ 1.A total ofB - 1 transfers are therefore performed in the firstb steps of the algorithm. n - b parallel transfers and additionsare needed to combine the block histograms. This techniquetherefore requires B - 1 + n - b parallel transfer/add oper-ations, plus the M2/N additions needed to compute the localPE histograms. For the example considered, the sequentialalgorithm would require 262144 additions; the parallel algo-rithm uses 256 addition steps plus 257 transfer/add steps. Theresult of the algorithm, i.e., the histogram, is distributed overthe first B PE's. This distribution may be efficient for furtherprocessing on the histogram, e.g., finding the maximum orminimum, or for smoothing the histogram. If it is necessaryfor the entire histogram to be in a single PE, B - 1 additionalparallel data transfers are required.

VI. CONCLUSIONSPASM, a large-scale partitionable SIMD/MIMD mul-

timicroprocessor system for image processing and patternrecognition, has been presented. Its overall architecture wasdescribed and examples of how PASM can realize significantcomputational improvements over conventional systems was

944

Page 12: PASM: A Partitionable System for Image Processing and ...hj/journals/8.pdf · SIEGEL et al.: PASM dress of the desired data in the processor connected to the memoryto be accessed

SIEGEL et al.: PASM

demonstrated.PASM differs from other large-scale parallel processing

systems whose capabilities include the ability to operate in

SIMD mode in terms of its balance of flexibility and com-

plexity. PASM is more complex than the CLIP4 [14], DAP

[17], MPP [8], and BASE 8 processsors [35] in the sense that

these systems use bit-serial processors connected in a four or

eight nearest neighbor pattern. The PASM design is more

flexible than the STARAN [4], [7], which uses bit serial

processors and can only operate in the SIMD mode. The in-

terconnection network in STARAN is a multistage Cube

network, but it differs from the networks proposed for PASM

in that it has a limited control scheme [5]. PASM is also more

flexible than the Illiac IV [10], which has a four nearest

neighbor interconnection network, and can only operate in

SIMD mode. (The original Illiac design had four control units

and could operate in MSIMD mode [3].) PASM differs from

the BSP organization [52] in that the BSP uses 16 processors

(a smaller scale of parallelism) and is limited to just the SIMD

mode of operation. The MAP [31] system is an MSIMD

machine design in which the control units are connected to

groups of processors via a crossbar switch, making its control

unit to processor connection abilities more flexible than

PASM's. However, the processors in MAP communicate with

each other via a bus system, so all processors cannot send data

in parallel, and there are no provisions for the system to operate

in MIMD mode.Two other microprocessor based systems capable of both

MSIMD and MIMD modes are the Reconfigurable Varist-

ructure Array Processor [27] (now called TRAC) and PM4

[1I1 ]. TRAC does not have any explicit control units; SIMDprocessing is achieved by having more than one processor fetch

instructions from the same memory. In addition, TRAC can

combine the effects of processors to vary its machine word size.

In PM4, the control units are connected to the processors via

a crossbar type of switch, so any processor can be driven by any

control unit. Also, in addition to a network for interprocessor

communications, there is a different multistage network be-

tween the processors and shared -memory. Another system

capable of operating in the MSIMD and MIMD modes is the

dc group system [22]. This is a dynamically reconfigurable

system, capable of creating virtual machines of different word

sizes. PASM is, in general, less complex and less flexible than

each of these three systems. However, for the image processing

tasks studied thus far, the PASM design has had sufficient

flexibility.In summary, the objective of the PASM design is to achieve

a system which attains a compromise between flexibility and

cost-effectiveness for a specific problem domain. Future work

on PASM includes choosing a microprocessor architecture

suitable for PASM, investigating system reliability and fault

tolerance, designing an "intelligent" compiler for a high level

parallel image processing language, specifying the hardware

design details, and developing the operating system and pro-

gramming languages for a prototype system. A dynamically

reconfigurable system such as PASM should be a valuable tool

for both image processing/pattern recognition and parallel

processing. research.

ACKNOWLEDGMENT

The authors would like to thank R. J. McMillen, G. B.Adams, III, P. A. England, J. Bogdanowicz, and M. Washburnfor their contributions to the design of PASM, and L. Wittiefor many useful conversations. They also gratefully ac-knowledge the comments of the referees.

REFERENCES

[1] N. E. Abel et al., "TRANQUIL: A language for an array processingcomputer," in Proc. AFIPS 1969 SJCC, May 1969, pp. 57-68.

[2] R. Arnold and E. Page, "A hierarchical, restructurable multimicro-processor architecture," in Proc. 3rd Annu. Symp Comput. Arch., Jan.1976, pp. 40-45.

[3] G. Barnes etal., "The Illiac IV computer," IEEE Trans. Comput., vol.C-17, pp. 746-757, Aug. 1968.

[4] K. E. Batcher, "STARAN parallel processor system hardware," in Proc.AFIPS 1974 Nat. Comput. Conf., vol. 43, May 1974, pp. 405-410.

[5] , "The flip network in STARAN," in Proc. 1976 Int. Conf. Par-allel Processing, Aug. 1976, pp. 65-71.

[6] , "The multidimensional access memory in STARAN," IEEETrans. Comput., vol. C-26, pp. 174-177, Feb. 1977.

[7] "STARAN series E," in Proc. 1977 Int. Conf. Parallel Pro-cessing, Aug. 1977, pp. 140-152.

[8] , "MPP-A massively parallel processor," in Proc. 1979 Int. Conf.Parallel Processing, Aug. 1979, p. 249.

[9] J. Bogdanowicz and H. J. Siegel, "A partitionable multi-micropro-grammable-microprocessor system for image processing," in Proc. IEEEComput. Soc. Workshop Pattern Recdg. Artificial Intell., Apr. 1978,pp. 141-144.

[10] W. J. Bouknight etal., "The Illiac IV system," Proc. IEEE, vol. 60, pp.369-388, Apr. 1972.

[11] F. Briggs, K. S. Fu, K. Hwang, andJ. Patel, "PM4-A reconfigurablemultimicroprocessor system for pattern recognition and image pro-cessing," in Proc. AFIPS 1979 Nat. Comput. Conf, vol. 48, June 1979,pp. 255-265.

[12] Burroughs, BSP-Burroughs Scientific Processor, Burroughs Corp.,June 1977.

[13] B. A. Crane etal., "PEPE computer architecure," in Proc. COMPCON1972, IEEE Comput. Soc. Conf., Sept. 1972, pp. 57-60.

[14] M. J. B. Duff, "CLIP 4: A large scale integrated circuit array parallelprocessor," in Proc. 3rd Int. Joint Conf. Pattern Recog., 1976, pp.728-732.

[15] A. E. Feather, L. J. Siegel, and H. J. Siegel, "Image correlation usingparallel processing," in Proc.Sth Int. Conf Pattern Recog., Dec. 1980,pp. 503-507.

[16] T. Feng, "Data manipulating functions in parallel processors and theirimplementations," IEEE Trans. Comput., vol. C-23, pp. 309-318, Mar.1974.

[17] P. M. Flanders et al., "Efficient high speed computing with the dis-tributed array processor," in Proc. Symp. High Speed Comput. Algo-rithm Organization, Apr. 1977, pp. 11 3-128.

[18] M. J. Flynn, "Very high-speed computing systems," Proc. IEEE, vol.54, pp. 1901-1909, Dec. 1966.

[19] K. S. Fu, "Special computer architectures for pattern recognition andimage processing-An overview," in Proc. AFIPS 1978 Nat. Comput.Conf, vol. 47, June 1978, pp. 1003-1013.

[20] D. Gries, Compiler Construction for Digital Computers. New York:Wiley, 1971.

[211 J. Hayes, Computer Architecture and Organization. New York:McGraw-Hill, 1978.

[22] S.I. Kartashev and S. P. Kartashev, "A multicomputer system withdynamic architecture," IEEE Trans. Comput., vol. C-28, pp. 704-720,Oct. 1979.

[23] J. Keng and K. S. Fu, "A special computer architecture for image pro-cessing," in Proc. 1978 IEEE Comput. Soc. Conf Pattern Recog. ImageProcessing, June 1978, pp. 287-290.

[24] B. Kruse, "A parallel picture processing machine," IEEE Trans.Comput., vol. C-22, pp. 1075-1087, Dec. 1973.

[25] D. H. Lawrie, "Access and alignment of data in array processor," IEEETrans. Comput., vol. C-24, pp. 1145-1155, Dec. 1975.

[26] G. J. Lipovski, "On a varistructured array of microprocessors," IEEETrans. Comput., vol. C-26, pp. 125-138, Feb. 1977.

945

Page 13: PASM: A Partitionable System for Image Processing and ...hj/journals/8.pdf · SIEGEL et al.: PASM dress of the desired data in the processor connected to the memoryto be accessed

IEEE TRANSACTIONS ON COMPUTERS, VOL. C-30, NO. 12, DECEMBER 1981

[27] G. J. Lipovski and A. Tripathi, "A reconfigurable varistructure arrayprocessor," in Proc. 1977 Int. Conf. Parallel Processing, Aug. 1977,pp. 165-174.

[28] R. J. McMillen and H. J. Siegel, "MIMD machine communication usingthe augmented data manipulator network," in Proc. 7th Annu. Symp.Comput. Arch., May 1980, pp. 51-58.

[29] P. T. Mueller, Jr., L. J. Siegel, and H. J. Siegel, "A parallel languagefor image and speech processing," in Proc. COMPSAC 1980, Oct. 1980,pp. 476-483.

[30] - , "Parallel algorithms for the tw.ob4ipnsional FFF," in Proc. 5thInt. Conf. Pattern Recog., Dec. 1980,.pp,t4?97t-59X.,

[311 G. J. Nutt, "Microprocessor implementation of a parallel processor,"in Proc. 4th Annu. Symp. Comput. Arch., Mar. 1977, pp. 147-152.

[32] -, "A parallel processor operating system comparison," IEEETrans. Software Eng., vol. SE-3, pp. 467-475, Nov. 1977.

[33] J. H. Patel, "Processor-memory interconnections for multiprocessors,"in Proc. 6th Annu. Symp. Comput. Arch., Apr. 1979, pp. 168-177.

[34] M. C. Pease, "The indirect binary n-cube microprocessor array," IEEETrans. Comput., vol. C-26, pp. 458-473, May 1977.

[35] A. P. Reeves and R. Rindfuss, "The BASE 8 binary array processor,"in Proc. 1979 IEEE Comput. Soc. Conf. Pattern Recog. Image Pro-cessing, Aug. 1979, pp. 250-255.

[361 D. Rohrbacker and J. L. Potter, "Image processing with the Staranparallel computer," Computer, vol. 10, pp. 54-59, Aug. 1977.

[37] S. Ruben, R. Faiss, J. Lyon, and M.Quinn, "Application of a parallelprocessing computer in LACIE," in Proc. 1976 Int. Conf. ParallelProcessing, Aug. 1976, pp. 24-32.

[38] H. J. Siegel, "Analysis techniques for SIMD machine interconnectionnetworks and the effects of processor address masks," IEEE Trans.Comput., vol. C-26, pp. 153-161, Feb. 1977.

[39] , "Controlling the active/inactive status of SIMD machine pro-cessors," in Proc. 1977 Int. Conf. Parallel Processing, Aug. 1977, p.183.

[40] , "Interconnection networks for SIMD machines," Computer,vol. 12, pp. 57-65, June 1979.

[41] , "A model of SIMD machines and a comparison of various in-terconnection networks," IEEE Trans. Comput., vol. C-28, pp.907-917,Dec. 1979.

[42] , "The theory underlying the partitioning of permutation net-works," IEEE Trans. Comput., vol. C-29, pp. 791-801, Sept. 1980.

[43] H. J. Siegel, F. Kemmerer, and M. Washburn, "Parallel memory systemfor a partitionable SIMD/MIMD machine," in Proc. 1979 Int. Conf.Parallel Processing, Aug. 1979, pp. 212-221.

[44] H. J. Siegel and R. J. McMillen, "Using the augmented data manipu-lator network in PASM," Computer, vol. 14, pp. 25-33, Feb. 1981.

[45] , "The cube network as a distributed processing test bed switch,"in Proc. 2nd Int. Conf. Distributed Comput. Syst., Apr. 1981, pp.377-387.

[46] H. J. Siegel and P. T. Mueller, Jr., "The organization and languagedesign of microprocessors for an SIMD/MIMD system," in Proc. 2ndRocky Mt. Symp. Microcomput., Aug. 1978, pp. 311-340.

[47] H. J. Siegel, P. T. Mueller, Jr., and H. E. Smalley, Jr., "Control of apartitionable multimicroprocessor system," in Proc. 1978 Int. Conf.Parallel Processing, Aug. 1978, pp. 9-17.

[48] H. J. Siegel, L. J. Siegel, R. J. McMillen, P. T. Mueller, Jr., and S. D.Smith, "An SIMD/MIMD multimicroprocessor system for imageprocessing and pattern recognition," in Proc. 1979 IEEE Comput. Soc.Conf. Pattern Recog. Image Processing, Aug. 1979, pp. 214-224.

[49] H. J. Siegel and S. D. Smith, "Study of multistage SIMD intercon-nection networks," in Proc. 5th Annu. Symp. Comput. Arch., Apr. 1978,pp. 223-229.

[50] C. D. Stamopoulous, "Parallel algorithms for joining two points by astraight line segment," IEEE Trans. Comput., vol. C-23, pp. 642-646,June 1974.

[51] K. G. Stevens, Jr., "CFD-A Fortran-like language for the Illiac IV,"in Proc. ACM Conf.,Programming Lang. Compilersfor Parallel andVector Mach., Mar. 1975, pp. 72-76.

[52] R. A. Stokes, "Burroughs scientific processor," in Proc. Symp. HighSpeed Comput. Algorithm Organization, Apr. 1977, pp. 71-75.

[53] H. S. Stone, "Parallel computers," in Introduction to Computer Ar-chitecture, H. S. Stone, Ed. Chicago, IL: SRA, Inc., 1975, pp. 318-374.

[54] H. Sullivan, T.-R. Bashkow, and K. Klappholz, "A large scale homo-geneous, fully distributed parallel machine," in Proc. 4th Annu. Symp.Comput. Arch., Mar. 1977, pp. 105-124.

[55] H. Sullivan et al., "The node kernel: Resource management in a self-organizing parallel processor," in Proc. 1977 Int. Conf. Parallel Pro-cessing, Aug. 1977, pp. 157-162.

[56] P. H. Swain, H. J. Siegel, and J. El-Achkar, "Multiprocessor imple-

mentation of image pattern recognition: A general approach," in Proc.5th Int. Conf. Pattern Recog., Dec. 1980, pp. 309-317.

[57] P. H. Swain, H. J. Siegel, and B. W. Smith, "Contextual classificationof multispectral remote sensing data using a multiprocessor system,"IEEE Trans. Geosci. Remote Sensing, vol. GE- 18, pp. 197-203, Apr.1980.

[58] R. J. Swan, S. H. Fuller, and D. P. Siewiorek, "Cm*: A modular,multi-microprocessor," in Proc. AFIPS 1977 Nat. Comput. Conf:, June1977, pp. 637-644.

[59] R. J. Swan et al., "The implementation of the Cm* multi-micropro-cessor," in Proe. AFIPS 1977 Nat. Comput. Conf, June 1977, pp.645-655.

[60] W. A. Wulf and C.G. Bell, "C.mmp-A multi-miniprocessor," in Proc.AFIPS 1972 Fall Joint Comput. Conf., Dec. 1972, pp. 765-777.

Howard Jay Siegel (M'77) was born in New Jer-sey on January 16, 1950. He received the S.B. de-gree in electrical engineering and the S.B. degreein management from the Massachusetts Instituteof Technology, Cambridge, in 1972, the M.A. andM.S.E. degrees in 1974, and the Ph.D. degree in1977, all in electrical engineering and computerscience from Princeton University, Princeton, NJ.

In 1976 he-joined the School of Electrical Engi-neering, Purdue University, West Lafayette, IN,where he is currently an Associate Professor.

Since January 1979 he has also been affiliated with Purdue's Laboratory forApplications of Remote Sensing. His research interests include parallel/distributed processing, multimicroprocessor systems, image processing, andspeech processing.

Dr. Siegel was Chairman of the Workshop on Interconnection Networksfor Parallel and Distributed Processing held in April 1980, which was co-

sponsored by the IEEE Computer Society and the Association for ComputingMachinery. He is currently a Vice Chairman of both the IEEE ComputerSociety TCCA-(Technical Committee on Computer Architecture) and TCDP(Technical Committee on Distributed Processing), the Vice Chairman ofACM SIGARCH (Special Interest Group on Computer Architecture), anIEEE Computer Society Distinguished Visitor, and the General Chairmanof the Third International Conference on Distributed Computing Systems,to be held in October 1982. He is a member of Eta Kappa Nu and Sigmaxi.

Leah J. Siegel (S'75-M'77) was born in Trenton,NJ, on August 27, 1949. She received the S.B. de-gree in mathematics in 1972 from the Massachu-setts Institute of Technology, Cambridge, theM.A. and M.S.E. degrees in 1974, and the Ph.D.degree in 1977, all in electrical engineering andcomputer science, from Princeton University,Princeton, NJ.

Since 1976 she has been an Assistant Professorin the School of Electrical Engineering, PurdueUniversity, West Lafayette, IN. Her research in-

terests include speech analysis and recognition, and the design of parallelprocessing algorithms for digital speech, signal, and image processing. AtPurdue she has been involved in the development of the Laboratory for One-Dimensional Signal Processing.

Dr. Siegel is a member of the Administrative Committee of the IEEEAcoustics, Speech, and Signal Processing Society. She is also a member ofthe Association for Computing Machinery, Eta Kappa Nu, and Sigma Xi.

Frederick C. Kemmerer (S'78-M'79) was born inAllentown, PA, on July 21, 1956. He received theB.S. degree in electrical engineering from thePennsylvania State University, University Park, in1978 and the M.S. degree in electrical engineeringfrom Purdue University, West Lafayette, IN, in

In 1978 he joined Bell Laboratories, Whippany,~~ .~jii NJ, where he is currently a member of the Techni-

cal Staff. His research interests include parallelprocessing, distributed processing, operating sys-

tems, and distributed computer architecture.Mr. Kemmerer is a member of Phi Kappa Phi.

946

Page 14: PASM: A Partitionable System for Image Processing and ...hj/journals/8.pdf · SIEGEL et al.: PASM dress of the desired data in the processor connected to the memoryto be accessed

IEEE TRANSACTIONS ON COMPUTERS, VOL. c-30, NO. 12, DECEMBER 1981

Philip T. Mueller, Jr. (S'79-M'80) was born in St.* Louis, MO, on August 31, 1956. He received the* B.S. degree in electrical engineering in 1977 and* the M.S. degree in electrical engineering in 1979,* both from Purdue University, West Lafayette,* IN.

Currently, he is pursuing a Ph.D. degree in elec-trical engineering from Purdue University, whileworking for Geophysical Services, Inc., Dallas,TX. His research interests include parallel/dis-tributed processing, multimicroprocessor systems,and artificial intelligence.

* Harold E. Smalley, Jr. (S'75-M'78) was born inWillimantic, CT, in 1953. He received the B.E.E.degree from Auburn University, Auburn, AL, in1975 and the M.S.E.E. degree from Purdue Uni-versity, West Lafayette, IN, in 1978.From 1978 to 1980 he was a member of the

Technical Staff of Bell Laboratories, Holmdel,NJ. From 1980 to 1981 he worked at the GeorgiaInstitute of Technology, Atlanta, as a ResearchEngineer. Presently, he is with Hitachi AmericaLtd., Atlanta, GA, in the Telecommunications

Research and Development Division. His interests include distributed pro-cessing, parallel processing, and interprocess communication.

Mr. Smalley is a member of Tau Beta Pi and Eta Kappa Nu.

S. Diane Smith (S'73-M'79) was born in Danville,IL, on June 19, 1952. She received the B.S. degreein computer engineering in 1973 and the M.S. de-gree in electrical engineering in 1974 from the,University of Illinois, Urbana-Champaign, andthe Ph.D. degree in electrical engineering fromPurdue University, West Lafayette, IN, in 1979.

In 1979 she joined the Department of Electricaland Computer Engineering at the University ofWisconsin, Madison as an Assistant Professor.Her research interests include parallel and distrib-

uted processing and computer architecture.Dr. Smith is a Past President of the Alpha Chapter of Eta Kappa Nu and

a member of the Association for Computing Machinery.

An Approach for Error Detection and ErrorCorrection in Distributed Systems Computing

Numerical FunctionsMARK KARPOVSKY, MEMBER, IEEE

Abstract-We consider methods of error detection and/or errorcorrection in software and hardware of a distributed system computingvalues of numerical functions. These methods are based on softwareand hardware redundancy for the computation of additional checkfunctions. The check functions are easily derived for any given multi-plicity of errors. The redundancy does not depend on the number ofprocessors in the original system and depends only on the multiplicityof errors. We describe methods for the construction of optimal checks,required software and hardware redundancy, and implementation ofthe corresponding error detecting/correcting procedures by a dis-tributed system.

hidex Terms-Distributed systems, error-correcting codes, errorcorrection, error detection, numerical computations.

Manuscript received July 22, 1980; revised April 28,1981. This work wassupported in part by the National Science Foundation under Grant MCS-8008339.The author is with the Department of Computer Science, School of Ad-

vanced Technology, State University of New York, Binghamton, NY13901.

I. INTRODUCTION

SINCE technology moves toward very large-scale inte-gration and distributed computer systems find more and

more applications, the problem of testing and error correctionfor software and hardware of these systems begins to be ex-tremely important.

In this paper we shall consider error detection and errorcorrection for the case of distributed computer systems witherrors of an arbitrary but a given multiplicity both in softwareand in hardware.We -shall describe one approach to the solution of these

problems for distributed systems computing numerical func-tions (functions whose values are integer numbers, vectors, ormatrices), where all processors of a system have the same inputdata (single input data string). The typical example of thesecomputations are polynomial computations when the processorPi computes values of a polynomial

0018-9340/81/1200-0947$00.75 © 1981 IEEE

947


Recommended