Data transfer apparatus

Abstract: A data transfer apparatus (1) includes a plurality of channels (111 to 11n) and a transfer speed control circuit. A plurality of channels are connected to input/output devices (31 to 3n), respectively. Each channel number is assigned to the corresponding channel. The transfer speed control circuit is arranged between the channels and a memory (2). The transfer speed control circuit includes a monitor for monitoring a rate of data transfer from the input/output devices (31 to 3n) to the memory (2), and a controller for controlling and decreasing a difference in speed between data sent from the input/output devices (31 to 3n) and memory access when the monitor result represents a predetermined difference.

Description: The present invention relates to a data transfer apparatus for a data processing system. A conventional data transfer apparatus of this type includes a plurality of memory access flags used to perform memory access. Each memory access is assigned to the corresponding channel. As shown in Fig. 2, a memory access time slot of one channel is assigned to a specific machine cycle of one period at the time of memory access. For example, in the memory access, data having a specific data length, e.g., 8-byte data, is exchanged between a memory and an input/output device within a predetermined period, e.g., four machine cycles each assigned to four channels. A memory access buffer is arranged for only one memory access cycle corresponding to, e.g., 8-byte data. In such a data transfer apparatus, an upper limit of memory access performance of one channel is determined. It is generally considered that the memory access speed is high, and is not lower than a transfer speed of an input/output device. However, an input/output device such as a semiconductor disk has been developed, and generations of a main frame and a peripheral system apparatus do not coincide with each other. Therefore, an input/output device having a transfer speed higher than the memory access speed has been required. In such a case, speed matching is performed between the input/output device and the data transfer apparatus through an adapter such as a local memory for buffering one block of a data record of the input/output device. However, this speed matching causes an increase in hardware, and a delay of an I/O time period occurs by an access time of the local memory. Therefore, the high-performance input/output device cannot be efficiently used. It is a principal object of the present invention to perform a data transfer operation more efficiently than a conventional apparatus. It is another object of the present invention to perform a data transfer operation at a higher speed than a conventional apparatus. These objects are achieved with the features of the claims. Preferred embodiments of the present invention will be described hereinafter with reference to the accompanying drawings. Fig. 1 is a block diagram showing an arrangement of a data processing system which includes a data transfer apparatus according to the first embodiment of the present invention; Fig. 2 is a timing chart for explaining an operation of a conventional data transfer apparatus; Fig. 3 is a block diagram showing an arrangement of a data transfer apparatus according to the second embodiment of the present invention; Fig. 4 is a timing chart for explaining an operation of the data transfer apparatus according to the second embodiment of the present invention; and Fig. 5 is a block diagram showing an arrangement of a data transfer apparatus according to the third embodiment of the present invention. Referring to Fig. 1, a data transfer apparatus 1 according to the first embodiment of the present invention is connected to input/output devices 31 to 3n through connecting lines 501 to 50n, respectively. This data transfer apparatus includes channels 111 to 11n to which channel numbers are respectively assigned, memory request flags (MRF) 131 to 13n for controlling memory access to a memory 2 in units of the channels, a plurality of memory access buffers 121 to 12n (4W x 8B) which correspond to the channels and are used to perform memory access to the memory 2, a memory-side buffer pointer (PTM) 16 for counting the access count between the memory 2 and the buffers 121 to 12n, a channel-side buffer pointer (PTH) 15 for counting the access count between the channels 111 to 11n and the buffers 121 to 12n, an arithmetic circuit (DELT) 17 for calculating a difference between the content of the memory-side buffer pointer 16 and that of the channel-side buffer pointer 15 to output a difference signal representing this difference, and a memory request control circuit 14 for changing a correspondence between each memory request flag and the corresponding channel number when the difference signal exceeds a predetermined value. The data transfer apparatus performs data transfer between the input/output devices 31 to 3n and the memory 2. When the input/output device 32 receives an input/output instruction to perform data transfer, first, the pointers PTM 16 and PTH 15 are reset, and an output from the DELT 17 is set at "0". Assume that the PTH 15 is "+1" when 8-byte data is transferred from the channel 112 to the buffer 122. Since an input operation is performed, an output from the DELT 17 corresponds to PTH - PTM, i.e., goes to "1". The control circuit 14 turns the memory request flag 132 on, and starts memory access to store the 8-byte data in the memory 2. When the end condition of this memory request is returned from the memory 2, the PTM 16 is incremented by one, and an output from the DELT 17 returns to "0" again. When the next 8-byte data is transferred from the input/output device 32 to increment the PTH 15 by one, the PTH 15 goes to "2". When 8-byte data is fetched again from the channel to the buffer 122 during memory access of the memory request flag 132 = "1", DELT = 2 since PTH = 3, and PTM = 1. The control circuit 14 determines from an output of the DELT = 2 that the transfer speed of the input/output device 32 is higher than the memory access speed, and assigns the memory request flag corresponding to the channel number which is not used, e.g., assigns the memory request flag 131 to the channel 112, thus starting memory access. Thus, when memory access is performed at a lower speed than that of the input/output device, a multiplexed memory request which can be stored in the buffer 122 can be output. More specifically, since the buffer in this embodiment can store four words, the multiplexed memory request can be output up to a difference between the PTH and PTM, i.e., DELT = 4. When the memory request end condition is returned, the DELT 17 is sequentially decremented, and various memory access modes can be performed in accordance with a transfer speed of the input/output device. Note that although the above description can be applied to an input operation, an output operation can be performed completely in the same manner as in the above description when an output from the DELT 17 is PTM - PTH,. The second embodiment of the present invention is shown in Fig. 3. The second embodiment has the same arrangement as in the first embodiment except for the following arrangement. In the second embodiment, a memory request timing control circuit 24 is used in place of the memory request control circuit 14 in Fig. 1 to change a timing of memory access when a difference signal exceeds a predetermined value, and memory access slot flip-flops (MAF) 231 to 23n are used in place of the memory request flags 131 to 13n. Fig. 4 is a timing chart for explaining memory access in the second embodiment. Fig. 4 represents that the memory access for the channels (CH0 to CH3) is time-divisionally output during the 4T cycles, normally, and reply is returned during 4T cycles. When an input/output device 31 is started in response to an input/output instruction, a PTM 16 and a PTH 15 are reset, and a DELT 17 goes to "0". In an input operation, since DELT = PTH - PTM. Therefore, when 8B data is transferred from a channel 111 to a buffer 121, PTH = 1, and DELT = 1. At this time, if an MAF 231 is set at "1", memory access can be performed. Therefore, memory access is performed, and the PTM is incremented by one in the next cycle, thus returning to DELT = 0. When the transfer speed of the input/output device 31 is high, and the next 8B data are continuously supplied from the channel 111, as shown in Fig. 4, DELT = 2 may often be obtained. At this time, the timing control circuit 24 keeps the MAF 231 on during 2T cycles to skip the succeeding memory access slot of the CH1 (MAF1). Therefore, the memory access of the channel 111 (CHO) is continuously performed during the 2T cycles, and hence the PTM 16 is continuously incremented by one, thus returning to DELT = 0. Thus, since the access cycles of the channel which requires high-speed memory access are time-divisionally multiplexed, in this embodiment, one channel access cycle can be performed by a maximum of a 4W buffer capacity, i.e., by DELT = 4. All the above operations are input operations. In an output operation, DELT = PTM - PTH is calculated, and the same operations as in the input operations can be performed until the PTM 16 is updated for reply. As described above, according to this embodiment, when the channel number correspondence of the memory request flag is changed, and the multiplexed memory request is supplied by the data count in the buffer, the flexibility with respect to a transfer speed can be improved, and a high-efficiency data transfer apparatus can be provided. According to this embodiment, in a data transfer apparatus for performing time-divisional memory access in correspondence with the channels, the memory access buffer count is used, and the multiplexed memory access time slot corresponding to the channel is output. Therefore, a high efficient high-speed data transfer apparatus can be provided. Fig. 5 shows the third embodiment of the present invention. The same reference numerals in Fig. 5 denote the same parts as in Fig. 1. Referring to Fig. 5, a data transfer apparatus 1 is connected to input/output devices 31 to 3n through connecting lines 51 to 5n, respectively. The data transfer apparatus 1 includes channels 111 to 11n to which channel numbers are respectively assigned, memory request flags 131 to 13n, set to be "1" during memory access, for controlling the memory access to a memory 2 in units of channels, a memory access decoder 61 for decoding the contents of the memory request flags 131 to 13n, measuring circuits 751 to 75n for measuring transfer speeds of the input/output devices 31 to 3n, and a change circuit 72 for changing the correspondence between the memory request flags 131 to 13n and the channel numbers on the basis of the measurement result of the measuring circuits 751 to 75n. The data transfer apparatus 1 performs a data transfer operation between the input/output devices 31 to 3n and the memory 2. The measuring circuits 751 to 75n respectively consist of 4-bit flip-flops (F/Fs), for holding the access counts between the channels and the input/output devices during one memory access cycle. Assume that an input/output instruction is output from a central processing unit (not shown) to the data transfer apparatus 1 of this embodiment, and a specific channel, e.g., the channel 112, starts the data transfer from/to the input/output device 32 using a connection path 52, and the data transfer from/to the memory 2 using the memory request flag 132. When the transfer speed of the input/output device 52 is high, and the access count between the channel and the input/output device which exceeds the predetermined value (when a difference occurs with respect to the predetermined value) is measured by the measuring circuit 752 while the memory request flag 132 is ON, the change circuit 72 causes the memory request flag corresponding to the channel which does not perform memory access, e.g., the memory request flag 131, to correspond to the channel 112, thus performing the operation of the memory request. At this time, if the channel 111 starts memory access, the change circuit 72 sequentially changes the correspondence between the memory request flag and the channel, and the memory access of the high-speed input/output device is preferentially processed. When the preceding memory access is completed, the memory request flag 132 is reset. At the same time, a predetermined value is subtracted in the measuring circuit 752, and the measuring circuit 752 is completely reset when the memory request flag 131 is reset. Thus, since the high-speed input/output device can perform multiplexed memory access corresponding to a multiple of the predetermined value of the measuring circuit, high-speed memory access can be expected. As described above, according to the present invention, in the data transfer apparatus including a plurality of memory request flags, when a plurality of memory request flags are assigned to perform memory access of the high-speed input/output device, hardware can be decreased, thus providing a highly efficient data transfer apparatus.

Claims: A data transfer apparatus for connection between a plurality of input/output devices (31 to 3n) and a memory (2) for performing data transfers between said input/output devices (31 to 3n) and said memory (2), said data transfer apparatus comprising: a plurality of channel devices (111 to 11n) , and each being for connection to a respective one of said input/output devices (31 to 3n) and for transferring data from/to said memory (2) at a respective input/output transfer speed; and transfer speed control means arranged between each of said channel devices (111 to lln) and said memory for transferring data from/to said memory (2) at a respective memory access speed; said transfer speed control means including means for monitoring for each channel device said respective input/output transfer speed and said respective memory access speed; and means for controlling and decreasing for each of the plurality of channel devices a difference in speed between the respective input/output transfer speed and the respective memory access speed when the monitor result represents a predetermined difference for said channel device. An apparatus according to claim 1, wherein said control means includes a plurality of respective memory access buffers (121 to 12n), each buffering data transferred between said memory (2) and a respective one of said channel devices (111 to 11n); said monitoring means includes a plurality of respective memory request flags (131 to 13n) for controlling memory access to said memory (2) by said channel devices and each being assigned to a channel device, and for each channel device a memory-side buffer pointer (16) for counting an access-count between said memory (2) and said respective memory access buffer (121 to 12n), and a channel-side buffer pointer (15) for counting an access count between said channel device (111 to 11n) and said respective memory access buffer (121 to 12n); and said control means further includes an arithmetic circuit (17) for calculating for each channel device a difference between the content of said memory-side buffer pointer (16) and that of said channel-side buffer pointer (15) to output a difference signal, and changing means for changing for each channel device assignement of said memory access flags (131 to 13n) to said channel devices when the difference signal exceeds a predetermined value. An apparatus according to claim 1, wherein said control means includes a plurality of respective memory access buffers (121 to 12n), each buffering data transferred between said memory (2) and a respective one of said channel devices (111 to 11n) ; said monitoring means includes a plurality of respective memory access slot flip-flops (231 to 23n) for controlling time slots for memory access to said memory (2) by said channel devices and each being assigned to a channel device, and for each channel device a memory-side buffer pointer (16) for counting an access count between said memory (2) and said respective memory access buffer (121 to 12n), and a channel-side buffer pointer (15) for counting an access count between said channel device (111 to 11n) and said respective memory access buffer (121 to 12n), and said control means further includes an arithmetic circuit (17) for calculating for each channel device a difference between the content of said memory-side buffer pointer (16) and that of said channel-side buffer pointer (15) to output a difference signal, and changing means (24) for changing for each channel device assignement of said memory access slot flip-flops (231 to 23n) to said channel devices when the difference signal exceeds a predetermined value. An apparatus according to claim 1, wherein said monitoring means includes a plurality of respective memory request flags (131 to 13n, 61) for controlling memory access to said memory (2) by said channel devices (111 to 11n) and each being assigned to channel device, and for each channel device measuring means (751 to 75n) for measuring said input/output transfer speed from/to said respective input/output device (31 to 3n); and said controlling means includes changing means (72) for changing for each channel device assignement of said memory access flags (131 to 13n) to said channel devices on the basis of the measurement result of said respective measuring means (751 to 75n), when said input/output transfer speed of said input/output device (31 to 3n) exceeds a predetermined value.

Inventors: OYADOMARI HAJIME, OYADOMARI, HAJIME
Applicants: NIPPON ELECTRIC CO, NEC CORPORATION
Application year: 1989
Main classification: G06F13
IPC codes: G06F13