Method and apparatus for data transfer between processor elements
First Claim
1. A method of data transfer from a first to a second processing element over an external data bus, said first processing element including a processor, a memory and a data transfer controller, such data transfer controller connected to said external data bus, said processor, memory and data transfer controller mutually coupled to an internal data bus, the method comprising:
- (a) supplying a transfer command signal from said processor to the data transfer controller, for designating that a datum is to be transferred from the first to the second processing element;
(b) concurrent with step (a), supplying the datum from one of either the processor and the memory to the internal data bus in response to a control signal from the processor; and
(c) initiating the transfer of the datum from said internal data bus to said second processing element on said external data bus, under the control of the data transfer controller of said first processing element, in response to the transfer command signal.
1 Assignment
0 Petitions
Accused Products
Abstract
A method of data transfer applicable to processing elements which are interconnected by a network to form a multiprocessor system, whereby when a datum is to be transferred from a processing element to the network, the datum is sent to a transfer controller of the processing element at the same time that it is being read out from memory to be used by the processor of the processing element, or as it is being generated from the processor and written into memory. Thus, the system performance can be substantially improved, since the time required to execute each data transfer can be "hidden" within the processor execution time.
55 Citations
8 Claims
-
1. A method of data transfer from a first to a second processing element over an external data bus, said first processing element including a processor, a memory and a data transfer controller, such data transfer controller connected to said external data bus, said processor, memory and data transfer controller mutually coupled to an internal data bus, the method comprising:
-
(a) supplying a transfer command signal from said processor to the data transfer controller, for designating that a datum is to be transferred from the first to the second processing element; (b) concurrent with step (a), supplying the datum from one of either the processor and the memory to the internal data bus in response to a control signal from the processor; and (c) initiating the transfer of the datum from said internal data bus to said second processing element on said external data bus, under the control of the data transfer controller of said first processing element, in response to the transfer command signal. - View Dependent Claims (2, 3, 4)
-
-
5. In a processing element formed of at least a processor, a memory and a data transfer controller respectively coupled to an internal data bus and address bus, the improvement whereby the data transfer controller comprises:
-
read address counter means for holding a value of a memory address in which is stored a datum corresponding to datum to be transferred in response to a most recently issued transfer command signal from the processor, and means for updating the address value each time that a transfer command signal is issued by the processor; and status counter means for maintaining a count of a total number of transfer command signals issued by the processor for which data transfers have not been respectively initiated by the data transfer controller; in which said processor includes means for supplying a transfer command signal responsive to an internal bus availability signal from said processor while the data transfer controller is in an internal operating condition whereby said internal data internal bus is indicated to be available for an initiation of data transfer by said data transfer controller, the data transfer controller including means for initiating the data transfer and incrementing the address value held in the read address counter means, said data transfer controller including incrementing means, responsive to said internal bus availability signal, whereby each time that a transfer command signal is issued by the processor while the data transfer controller is in an internal operating condition in which initiation of data transfer is not possible, said incrementing means of the data transfer controller increments the count in the status counter means, and responsive to said internal bus availability signal indicating an availability of said internal data bus, said data transfer controller initiates a data transfer upon release of the internal data bus by the processor, said data transfer controller including means for supplying successive address values from the read address counter means to execute read-out from the memory of successive ones of the data for which transfer was designated while transfer initiation was not possible, and in which the data transfer controller includes means for incrementing the address value held in the read address counter means and decrementing the count in the status counter means each time that such a memory read access is executed. - View Dependent Claims (6)
-
-
7. A processing element which includes a processor, a memory, and a data transfer controller respectively coupled to a data bus, in which the processor includes means for generating, concurrent with generation of a transfer command signal for designating to the data transfer controller that a datum is to be transferred from the processing element to an external system, control signals for executing a memory access for accessing the datum in a predetermined address of the memory while the processor is supplying the datum to the data bus, the data transfer controller comprising:
-
an output data buffer coupled to the data bus for transferring the datum to the external system; a status counter; a read address counter; and a control circuit; in which the control circuit includes means for controlling the read address counter to maintain therein the address value of the datum which is currently designated to be transferred, and in which the control circuit includes means responsive to the transfer command signal for loading the datum from the data bus into said output data buffer during the memory access by the processor and incrementing the address value in the read address counter, unless the output data buffer is currently full, and in which if the output data buffer is full, the control circuit includes means responsive to the transfer command signal for incrementing the status counter from a predetermined initial count value and subsequently, responsive to the buffer ceasing to be full and a cessation of memory accessing by the processor for detecting that the value in the status counter is other than the initial count value and responding to that condition by generating control signals for reading out to the data bus the datum from the address generated and held in the read address counter and for loading the datum into the output data buffer, while incrementing the read address counter and decrementing the status counter.
-
-
8. A multiprocessor system comprising a plurality of processing elements interconnected by a network for mutual interchange of data, each processing element comprising a processor and a memory linked by an internal data bus, a data transfer controller, a first input/output port coupled between the data transfer controller and the internal data bus, and a second input/output port coupled between the data transfer controller and the network, in which when a datum is to be transferred from an ith one of said processing elements to a jth one of said processing elements of the multiprocessor system, the processor of the ith processing element including means for generating a transfer command signal while at the same time executing a memory access operation, the data transfer controller of the ith processing element including means responsive to that transfer command signal for loading the datum into the first input/output port of the ith processing element while the datum is being transferred between the processor and memory of the ith processing element, and the datum is then transferred to the network from the second input/output port of the ith processing element, and in which the data transfer controller of the jth processing element includes means for loading the datum into the second input/output port of the jth processing element from the network, and then transferring the datum from the first input/output port of the jth processing element to the memory of the jth processing element to be written therein.
Specification