A digital signal processor configurable for either serial or parallel operation on source data from a source I/O port, for performing digital signal processing to produce processed signals, and for coupling said processed signals to said source I/O port, said digital signal processor comprising:
- a plurality of first signal processing means, each of said first signal processing means including;
- (a) memory means including at least a data input-output port, for temporarily storing data applied to said input-output port of said memory means, and for reading stored data to said input-output port of said memory means;
- (b) arithmetic processing means including at least a data input port, a data output port, and a control port, for performing mathematical processes on input data under the control of commands applied to said control port, and for generating processed data at said output port of said arithmetic processing means;
- (c) switching means including at least a command input port and first, second, and third bidirectional input-output ports, a fourth output-only port, and a fifth input-only port, said second input-output port being coupled to said data port of said memory means, said fourth output port and said fifth input port being coupled to said input and output ports, respectively, of said arithmetic processing means,
- for, in a first mode of operation, coupling signals from said first input-output port of said switching means to said fourth output port of said switching means, for thereby coupling signals between said first input-output port of said switching means and said arithmetic processing means, and coupling signals from said fifth input port of said switching means to said second input-output port of said switching means, for thereby coupling signals from said arithmetic processing means to said memory means,
- for, in a second mode of operation, coupling signals from said first input-output port of said switching means to said fourth output port of said switching means, for thereby coupling signals from said first input-output port of said switching means to said input port of said arithmetic processing means, and for coupling signals from said fifth input port of said switching means to said third input-output port of said switching means, thereby coupling signals from said output port of said arithmetic processing means to said third input-output port of said switching means,
- for, in a third mode of operation, coupling signals from said second input-output port of said switching means to said fourth output port of said switching means, and from said fifth input port of said switching means to said second input-output port of said switching means, thereby coupling signals from said memory means to said input port of said arithmetic processing means, and from said output port of said arithmetic processing means to said memory means,
- for, in a fourth mode of operation, coupling signals from said second input-output port of said switching means to said fourth output port of said switching means, thereby coupling said memory means to said input port of said arithmetic processing means, and for coupling said fifth input port of said switching means to said third input-output port of said switching means, thereby coupling said output port of said arithmetic processing means to said third input-output port of said switching means;
- a plurality of second signal processing means, each of said second signal processing means including;
- (a) memory means including at least a data input-output port, for temporarily storing data applied to said input-output port of said memory means, and for reading stored data to said input-output port of said memory means;
- (b) arithmetic processing means including at least a data input port, a data output port, and a control port, for performing mathematical processes on input data under the control of commands applied to said control port of said arithmetic processing means, and for generating processed data at said output port of said arithmetic processing means;
- (c) switching means including at least a command input port and first, second, and third bidirectional input-output ports, a fourth output-only port, a fifth input-only port, and a sixth input-output port, said second input-output port being coupled to said data port of said memory means, said fourth output port and said fifth input port being coupled to said input and output ports, respectively, of said arithmetic processing means,
- for, in a first mode of operation, coupling signals from said first input-output port of said switching means to said fourth output port of said switching means, for thereby coupling signals between said first input-output port of said switching means and said input port of said arithmetic processing means, and coupling signals from said fifth input port of said switching means to said second input-output port of said switching means, for thereby coupling signals from said arithmetic processing means to said memory means,
- for, in a second mode of operation, coupling signals from said first input-output port of said switching means to said fourth output port of said switching means, for thereby coupling signals from said first input-output port of said switching means to said input port of said arithmetic processing means, and for coupling signals from said fifth input port of said switching means to said third input-output port of said switching means, thereby coupling signals from said output port of said arithmetic processing means to said third input-output port of said switching means,
- for, in a third mode of operation, coupling signals from said second input-output port of said switching means to said fourth output port of said switching means, and from said fifth input port of said switching means to said second input-output port of said switching means, thereby coupling signals from said memory means to said input port of said arithmetic processing means, and from said output port of said arithmetic processing means to said memory means,
- for, in a fourth mode of operation, coupling signals from said second input-output port of said switching means to said fourth output port of said switching means, thereby coupling said memory means to said input port of said arithmetic processing means, and for coupling signals from said fifth input port of said switching means to said third input-output port of said switching means, thereby coupling said output port of said arithmetic processing means to said third input-output port of said switching means;
- for, in a fifth mode of operation, coupling signals between said sixth input-output port of said switching means and said second input-output port of said switching means, for thereby transducing signals between said memory means and said sixth input-output port;
- group local interconnection means for coupling together the signal processing means of a group of said signal processing means, each said group of signal processing means including a plurality of said first signal processing means and at least one of said second signal processing means, said group local interconnection means connecting said first input-output port of each of said signal processing means of said group to said third input-output port of another signal processing means of said group, whereby said signal processing means of each of said groups are coupled in a ring;
- system interconnection means coupled to said source I/O port and to said sixth input-output ports of said second signal processing means of each of said groups of signal processing means;
- a plurality of group control means, each of which is associated with one of said groups of signal processing means, each of said group control means being coupled to said control input port of said arithmetic processing means and to said control input port of said switching means of each of said signal processing means of the associated group of said signal processing means, for selecting, for each one of said switching means of said signal processing means, at least one of said first, second, third, and fourth modes of operation in the case of said first signal processing means, and one of said first, second, third, fourth, and fifth modes of operation in the case of said second signal processing means, independently of the mode of operation selected for any other of said switching means of said signal processing means, and for selecting the mathematical operations to be performed by each of said arithmetic processing means of said signal processing means, independently of the mathematical operations selected to be performed for any others of said arithmetic processing means of said signal processing means, all under the control of stored instructions associated with said group control means, which stored instructions are selected by command external to said group control means, said stored instructions causing said group control means to
- (a) when data is to coupled between said source I/O port and said memory of a second signal processing means of said group, select said fifth mode of operation;
- (b) in a serial processing mode, select said fourth mode of operation for at least one of said second signal processing means, and said second mode of operation for at least one of said first signal processing means next adjacent to said second signal processing means in said ring, and said fourth mode of operation for at least one of said first signal processing means more remote from said second signal processing means than said next adjacent first signal processing means;
- (c) in a parallel processing mode, select said third mode of operation for all said first and second signal processing means.