Method of controlling data transfer

Abstract: In a data processing method of this invention, data having an amount of a designated total data transfer length is transferred from a data buffer in a data mover to a designated start address of a control memory at a data transfer rate of a control data transfer control unit. Data having an amount of a designated block data transfer length is transferred from the buffer in the data mover to a designated start address of a high-speed arithmetic memory at a data transfer rate of a high-speed data transfer control unit.

Description: The present invention relates to a method of controlling data transfer between a high-speed arithmetic memory used by a high-speed arithmetic processor and an input/output device. In general, a supercomputer has a capability for performing arithmetic processing at very high speed as compared with general purpose computers. The supercomputers allow high-speed solutions of various equations which represent natural phenomena using a large amount of data to achieve various technical studies and developments in scientific and technological fields. For example, in an aircraft manufacturer, a supercomputer is used to analyze an air whirl formed around each wing. This analysis has been conventionally performed by experiments using a wind tunnel. In such a supercomputer for performing a large amount of scientific and technological calculations, many problems are involved, and a very large amount of data are required. A large amount of data, therefore, are stored in a secondary memory device such as a magnetic disk unit, and the data are input/output between the magnetic disk and a high-speed arithmetic memory, as needed, thus performing calculations. More specifically, the larger a ratio of a transfer period of time between the secondary memory device and the high-speed arithmetic memory is, as compared with a transfer period of time executed between an arithmetic processor and the high-speed arithmetic memory at high speed, the larger an adverse effect to an execution performance of an entire program becomes. Conventionally, a supercomputer of this type includes a system control unit, an input/output processor connected to the system control unit, a control processor, a control memory mainly used for these processors, a high-speed arithmetic processor, and a high-speed arithmetic memory mainly used for the high-speed arithmetic processor. In a data transfer operation between the secondary memory device and the high-speed arithmetic memory in a conventional data processing apparatus of this type, the control processor serves as a main unit, and the data contents transferred from the input/output processor to the control memory are transferred to the high-speed arithmetic memory, or the contents are directly transferred from the input/output processor to the high-speed arithmetic memory. In this method, however, a rate of transfer to the high-speed arithmetic memory is undesirably limited by a rate of transfer from the control processor or the input/output processor to the control memory. In general, the rate of transfer from the control processor or the input/output processor to the control memory is considerably lower than that between the high-speed arithmetic processor and the high-speed arithmetic memory. As a result, a ratio of an input/output period of time between the secondary memory device and the high-speed arithmetic memory is undesirably larger than a transfer period of time between the high-speed arithmetic processor and the high-speed arithmetic memory. More specifically, in the above-mentioned conventional data processing apparatus, a transfer period of time between the secondary memory device and the high-speed arithmetic memory is undesirably longer than that between the high-speed arithmetic processor and the high-speed arithmetic memory, and an execution period of time of the entire program may also be increased, thus degrading performance of the apparatus. Electro Vol. 12, No. 4, 1987, Los Angeles US, Seltzer et al "No-fall-through FIFO solves high-speed applications" relates to interfacing systems using FIFO buffers. The present invention has been made in consideration of the above situation, and has as its principal object to provide a data processing apparatus in which an execution period of time of an entire program is decreased, and performance thereof is improved. This object is solved by the features defined in method claim 1 and apparatus claim 3. Preferred embodiments of the present invention will be described hereinafter with reference to the accompanying drawings, in which: Fig. 1 is a block diagram showing first and second embodiments of the present invention; Fig. 2 is a view showing instruction specifications instructed to a mover in the first embodiment; Fig. 3 is a diagram of data transfer from an input/output device to a high-speed arithmetic memory shown in the first and second embodiments; Fig. 4 is a view showing a data transfer image in the first embodiment; Fig. 5 is a view showing instruction specifications instructed to a mover in the second embodiment; and Fig. 6 is a view showing a data transfer image in the second embodiment. (First Embodiment) Referring to Fig. 1, a data processing apparatus according to the present invention includes a system controller 6, input/output processors 11 and 12 for controlling an input/output operation of a system connected to the system controller 6, secondary memory devices 13 and 14, high-speed arithmetic processors 8 and 9 for executing a user program, in which vector calculation is mainly performed at very high speed, a control processor 10, a control data transfer control unit 3 for controlling data transfer between the input/output processors 11 and 12 or the control processor 10 and a control memory 1, a high-speed data transfer control unit 7 for controlling data transfer between the high-speed arithmetic processors 8 and 9 and a high-speed arithmetic memory 2, a control unit 5 for controlling data communication between the high-speed arithmetic processor side and the control processor side and data communication between the processors, and a data mover 4 for enabling data transfer between the control memory 1 and the high-speed arithmetic memory 2, which is designated by the control processor 10 or the input/output processors 11 and 12. In addition, the data mover 4 sequentially transfers data each having a designated total data transfer length from a data buffer 4a in the data mover 4 to the designated start address of the control memory 1 at a transfer rate of the control data transfer control unit 3. This transfer operation is controlled by the data mover 4. The data mover 4 sequentially transfers, at high speed, data having a designated total data transfer length from the data buffer 4a in the data mover 4 to the designated start address of the high-speed arithmetic memory 2 at a data transfer rate between the high speed arithmetic processors 8 and 9 and the high speed arithmetic memory 2, i.e. of the high-speed data transfer control unit 7. An operation of this embodiment will be described below. An operation performed when data must be transferred from the secondary memory device 13 to the high-speed arithmetic memory 2 will be described hereinafter. The high-speed arithmetic processor 8 stores in the control memory 1 a channel program which includes data required for data transfer, and signals this storage to the control processor 10 through communication between the processors. The control processor 10 which received data of this storage starts the input/output processor 11. Then, the input/output processor 11 reads out the channel program from the control memory 1, and signals the start of data transfer to the secondary memory device 13. Desired data is read out from the secondary memory device 13, and is stored in the buffer in the control memory 1. After all the designated data are transferred from the secondary memory device 13 to the control memory 1, the end of the data transfer by the I/O start is signaled from the input/output processor 11 to the control processor 10. The control processor 10 which received data representing the end of the data transfer reads out the channel program stored in the control memory 1, and produces data for starting the data mover 4. Fig. 2 shows contents of data for starting the data mover 4. A transfer target designates a data transfer direction between the control memory 1 and the high-speed arithmetic memory 2. An output format represents that a request source for starting the data mover 4 is the control processor 10 or the input/output processors 11 and 12, and that a transfer scheme is synchronous or asynchronous. A control memory address represents that a start address or a logical/physical address of the control memory 1 is a target for data transfer. In this embodiment, the control memory address is defined by 8-byte boundaries. A high-speed arithmetic memory address represents that a start address or a logical/physical address of the high-speed arithmetic memory is a target for data transfer. In this embodiment, the high-speed arithmetic memory address is defined by 8-byte boundaries. The total data transfer length represents a total number of transfer data when each 8-byte transfer data is defined as one element. In this embodiment, the control processor 10 sequentially designates the above-mentioned data shown in Fig. 2 to the data mover 4. Finally, the data mover 4 is started. In this embodiment, the started data mover 4 reads out data from the start address of the control memory 1 in the large-capacity buffer 4a in the data mover 4 in accordance with the data shown in Fig. 2. In this embodiment, the total data transfer length does not exceed the capacity of the large-capacity buffer 4a. If the total data transfer length exceeds the capacity of the buffer 4a, the data mover 4 divides the total data transfer length into some data to control data transfer of the control memory 1 and the high-speed arithmetic memory 2. Data transfer from the control memory 1 to the large-capacity buffer 4a in the data mover 4 is performed at a data transfer rate of the control data transfer control unit 3. Then, data transfer is executed from the large-capacity data buffer 4a in the data mover 4 to the high-speed arithmetic memory 2 under the control of the data mover 4. At this time, the transfer operation is controlled in accordance with the data shown in Fig. 2 such as the high-speed arithmetic memory address and the total data transfer length. In this embodiment, data transfer from the large-capacity buffer 4a in the data mover 4 to the high-speed arithmetic memory 2 is executed at a transfer rate between the high speed arithmetic processors 8 or 9 and the high speed arithmetic memory 2, i.e. of the high-speed data transfer control unit 7. However, if a well-balanced ratio can be achieved from a point of view as a system, this transfer rate may be 1/n ( n is an integer) the data transfer rate between the high-speed arithmetic processor 8 and the high-speed arithmetic memory 2. When the data mover 4 completes transfer of all the data according to the above-mentioned procedures, the data representing the end of transfer is supplied from the data mover 4 to the control processor 10 serving as the request source, and the data representing the end of transfer is supplied from the control processor 10 to the high-speed arithmetic processor 8 through communication between the processors. Therefore, the data transfer from the secondary memory device to the high-speed arithmetic memory is completed. Although the high-speed arithmetic processor 8 and the secondary memory device 13 are used in this embodiment, another high-speed arithmetic processor and another secondary memory device can be similarly used. Fig. 3 shows a transfer operation from the input/output device to the high-speed arithmetic memory in the first embodiment of the present invention. Fig. 4 shows a data transfer image. (Second Embodiment) A second embodiment will be described below with reference to Fig. 1, in the same manner as in the first embodiment. In the second embodiment, the data mover 4 sequentially transfers data each having a designated total data transfer length from a data buffer 4a in the data mover 4 to the designated start address of the control memory 1 at a transfer rate of the control data transfer control unit 3. This transfer operation is controlled by the data mover 4. The data mover 4 sequentially transfers, at high speed, data having a designated block data transfer length from the data buffer 4a in the data mover 4 to the designated start address of the high-speed arithmetic memory 2 at a data transfer rate between the high speed arithmetic processor and the high speed arithmetic memory 2, i.e. of the high-speed data transfer control unit 7, in accordance with a designated interelement distance. Note that when the interelement distance is "0", data each having a designated total data transfer length are sequentially transferred in the same manner as in the first embodiment. An operation of this embodiment is the same as that in the first embodiment. Fig. 5 shows contents of data for starting the data mover 4. A transfer target designates a data transfer direction between the control memory 1 and the high-speed arithmetic memory 2. An output format represents that a request source for starting the data mover 4 is the control processor 10 or the input/output processors 11 and 12, and that a transfer scheme is synchronous or asynchronous. A control memory address represents that a start address or a logical/physical address of the control memory 1 is a target for data transfer. In this embodiment, the control memory address is defined by 4-byte boundaries. A high-speed arithmetic memory address represents that a start address or a logical/physical address of the high-speed arithmetic memory is a target for data transfer. In this embodiment, the high-speed arithmetic memory address is defined as 4-byte boundaries. The total data transfer length represents a total number of transfer data when each 4-byte transfer data is defined as one element. The interelement distance designates the distance between the block data in units of bytes. The block data transfer length represents the length of data processed as block data by the number of elements obtained when 4-byte data is defined as one element in this embodiment. In this embodiment, the control processor 10 sequentially designates the above-mentioned data shown in Fig. 5 to the data mover 4, in the same manner as in the first embodiment. Finally, the data mover 4 is started. In this embodiment, the started data mover 4 reads out data from the start address of the control memory 1 in the large-capacity buffer 4a in the data mover 4 in accordance with the data shown in Fig. 5. In this embodiment, the total data transfer length does not exceed the capacity of the large-capacity buffer 4a. If the total data transfer length exceeds the capacity of the buffer 4a, the data mover 4 divides the total data transfer length into some data to control data transfer between the control memory 1 and the high-speed arithmetic memory 2. Data transfer from the control memory 1 to the large-capacity buffer 4a in the data mover 4 is performed at a data transfer rate of the control data transfer control unit 3. Then, data transfer is executed from the large-capacity data buffer 4a in the data mover 4 to the high-speed arithmetic memory 2 under the control of the data mover 4, as shown in Fig. 6. At this time, the transfer operation is controlled in accordance with the data shown in Fig. 5 such as the high-speed arithmetic memory address, the total data transfer length, the interelement distance, and the block data transfer length. As described above, in this invention, data transfer between the control memory and the high-speed arithmetic memory designated by the control processor to the data mover is performed as follows. Data having a designated amount is transferred from the large-capacity buffer in the data mover to the designated start address of the control memory at a data transfer rate of the control memory and the control processor. In addition, the data having a designated transfer amount is transferred, at high speed, from the buffer in the data mover to the designated start address of the high-speed arithmetic memory at a data transfer rate between the high-speed arithmetic memory and the high-speed arithmetic processor. Therefore, a ratio of a transfer period of time between the secondary memory device and the high-speed arithmetic memory to that of a transfer period of time between the high-speed arithmetic processor and the high-speed arithmetic memory can be decreased, and an execution period of time of the entire program can be decreased, thus effectively improving the performance. In addition, according to the present invention, data each having a designated block data transfer length are sequentially transferred from the buffer in the data mover to the designated start address of the high-speed arithmetic memory in accordance with the designated interelement distance. Furthermore, data each having a designated total data length are sequentially transferred, at high speed, from the buffer in the data mover to the designated start address of the high-speed arithmetic memory at a data transfer rate between the high-speed arithmetic memory and the high-speed arithmetic processor. Therefore, a ratio of a transfer period of time between the secondary memory device and the high-speed arithmetic memory to that of a transfer period of time between the arithmetic processor and the high-speed arithmetic memory can be decreased, and the execution period of time of the entire program can be decreased, thus effectively improving the performance. Moreover, data can be optimally developed from the secondary memory device so that a high-speed arithmetic operation can be directly performed in the high-speed arithmetic memory, and the execution period of time for the program can be effectively reduced.

Claims: A method of performing data transfers in a data processing apparatus, said data processing apparatus comprising a first processor group including at least one secondary memory device (13, 14), processors (10, 11, 12) and a main memory unit (1) mainly used by the processors of said first processor group via a control data transfer control unit (3), a second processor group including at least one high-speed arithmetic processor (8, 9), a high-speed memory unit (2) mainly used by said at least one high-speed arithmetic processor of said second processor group via a high-speed data transfer control unit (7), and data mover means (4) for enabling and controlling data transfer between said main memory unit (1) and said high-speed memory unit (2) in accordance with control data designated by one of said processors included in said first processor group, comprising the steps of: transferring data from said secondary memory device (13, 14) to said main memory unit (1); transferring data having an amount of a designated total data transfer length between a data buffer (4a) comprised in said data mover means (4) and a designated start address of said main memory unit (1) at the data transfer rate of said control data transfer control unit; and transferring data having an amount of a designated total data transfer length from said data buffer (4a) in said data mover means (4) to a designated start address of said high-speed memory unit (2) at the data transfer rate of said high-speed data transfer control unit (7), this data transfer rate being 1/n the data transfer rate between said high-speed arithmetic processor of said second processor group and said high-speed memory unit, n being an integer and such that the ratio of a transfer period of time between said at least one secondary memory device and the high-speed memory unit to that of a transfer period of time between said high-speed arithmetic processor and the high-speed memory unit can be decreased. A method of performing data processing as claimed in claim 1, further comprising the step of sequentially transferring data having an amount of a designated block data transfer length between said buffer (4a) in said data transfer control means (5) and a designated start address of said second main memory unit (2) in accordance with a designated interelement distance at a data transfer rate between said second processor group and said second main memory unit (2), said designated interelement distance designating the distance between the block data in units of bytes. Apparatus for carrying out the method according to claim 1 or 2, comprising a first processor group including at least one second memory device (13, 14), processors (10, 11, 12) and a main memory unit (1) mainly used by the processors of said first processor group via a control data transfer control unit (3), a second processor group including at least one high-speed arithmetic processor (8, 9), a high-speed memory unit (2) mainly used by said at least one high-speed arithmetic processor of said second processor group via a high-speed data transfer control unit (7), and data mover means (4) for enabling and controlling data transfer between said main memory unit (1) and said high-speed memory unit (2) in accordance with control data designated by one of said processors included in said first processor group, said data control units (3, 7) and said data mover means (4) being provided for transferring data from said secondary memory device (13, 14) to said main memory unit (1); for transferring data having an amount of a designated total data transfer length between a data buffer (4a) comprised in said data mover means (4) and a designated start address of said main memory unit (1) at the data transfer rate of said control data transfer control unit; and for transferring data having an amount of a designated total data transfer length from said data buffer (4a) in said data mover means (4) to a designated start address of said high-speed memory unit (2) at the data transfer rate of said high-speed data transfer control unit (7), this data transfer rate being 1/n the data transfer rate between said high-speed arithmetic processor of said second processor group and said high-speed memory unit, n being an integer and such that the ratio of a transfer period of time between said at least one secondary memory device and the high-speed memory unit to that of a transfer period of time between said high-speed arithmetic processor and the high-speed memory unit can be decreased.

Inventors: JIPPO AKIRA, JIPPO, AKIRA, JIPPO, AKIRA C/O NEC CORPORATION
Applicants: NIPPON ELECTRIC CO, NEC CORPORATION
Application year: 1989
Main classification: G06F5
IPC codes: G06F5, G06F15, G06F13, G06F17