1. Field of the Invention
The present invention relates to an apparatus and a method for controlling data transfer with a computer that is connected to a bus which transfers data in one direction.
2. Description of the Related Art
In recent years, due to progress in semiconductor packaging technology, it has become possible to package a higher computing capacity in a smaller computer node. For example, due to high-density of semiconductors, processing capacity per CPU (Central Processing Unit) LSI (Large Scale Integration) is increasing every year. Therefore, larger amount of data is input to and output from even smaller computer node.
In other words, with an increase in an amount of transfer data, a data signal line (such as bus) having even bigger band was needed for even smaller computer nodes, thereby creating a problem of a relative increase in the implementation cost of the data path.
In view of this problem, Japanese Patent Application Laid-open Publication No. H8-63429 discloses a bidirectional bus and an apparatus connected to a bus through which data flows in and out (hereinafter, “bidirectional bus”), in which an amount of data transfer of the bidirectional bus is monitored, and a ratio of a transfer capacity of an amount of data that is input to the apparatus and an amount of data that is output from the apparatus is controlled, thereby eliminating a need to increase a data band width of the bidirectional bus, and suppressing the implementation cost of the data path.
However, because the bidirectional bus according to the conventional technology mentioned above switches a direction of transmission, physical transmission-conditions are strict, and hence, it has become difficult to sufficiently increase the transfer rate. Therefore, in recent buses that require high-rate transmission, the one directional bus needs to be used in most cases.
However, many of one directional buses that are used for data transfer between a CPU and a memory, such as an input bus and an output bus, are separate data transfer paths respectively. Therefore, using a method such as that disclosed in Japanese Patent Application Laid-open Publication No. H8-63429, it was not possible to change a data bandwidth of each bus. Consequently, with an improvement in a processing capacity of the CPU, it was necessary to increase a data band width of the one directional bus, and path cost was enormous.
Moreover, as mentioned in PC WATCH IMPRESS, [online], [searched on Aug. 23, 2005], the Internet<URL: http//pc.watch.impress.co.jp/docs/2005/0211/kaigai155.htm>, setting a data bandwidth of the output bus to be greater than a data bandwidth of the input bus is effective for some kind of computer application. However, usually, the amount of the input data in a general computer node (particularly, a computer node that has a swap type data cache) tends to be greater than the amount of the output data, this method is not effective in a general computer node.
In other words, suppressing the implementation cost of the data path and performing efficient data transfer between the computer nodes becomes an extremely important issue for the computer node connected to the one directional bus.
It is an object of the present invention to at least solve the problems in the conventional technology.
According to an aspect of the present invention, an apparatus for controlling data transfer performed with a computer connected to a data bus, which performs data transfer in one direction, the apparatus includes a data transfer controlling unit that controls the data transfer with the computer by setting a data bandwidth of an input bus to be greater than a data bandwidth of an output bus, where the input bus transfers data to be input to the computer, and the output bus transfers data output by the computer.
According to another aspect of the present invention, a method for controlling data transfer performed with a computer connected to a data bus, which performs data transfer in one direction, the method including acquiring data to be input to the computer; and transmitting acquired data to the computer by setting a data bandwidth of an input bus to be greater than a data bandwidth of an output bus, where the input bus transfers data to be input to the computer, and the output bus transfers data output by the computer.
According to still another aspect of the present invention, a method for controlling data transfer performed with a computer connected to a bus, which performs data transfer in one direction, the method includes acquiring data output from the computer; and transmitting acquired data to other equipment by setting a data bandwidth of an output bus to be smaller than a data bandwidth of an input bus, wherein the input bus transfers data to be input to the computer, and the output bus transfers data output by the computer.
The above and other objects, features, advantages and technical and industrial significance of this invention will be better understood by reading the following detailed description of presently preferred embodiments of the invention, when considered in connection with the accompanying drawings.
Exemplary embodiments of the present invention are described below in detail with reference to the accompanying diagrams.
To start with, characteristics of the present invention are described. In the present invention, a data bandwidth of an input bus for transferring data to be input to a computer node and an output bus for transferring data that is output from the computer node is let to be asymmetric. Specifically, the data bandwidth of the input bus is kept greater than the data bandwidth of the output bus.
Here, the reason for letting the data band width of the input/output bus to be asymmetric is that a data band required in the computer node is not equal for an input and an output, and normally, there is a strong tendency that the amount of data input is more than the amount of data output. Furthermore, in a case where the computer node has a swap type data cache, this tendency is obvious.
Thus, focusing attention on data band of the input/output data that is required at the computer node, by setting the data band width of the input bus to be greater than the data band width of the output bus, it is possible to use effectively resources required for a data path, as well as to suppress an implementation cost of the data path.
Next, a structure of a computer system according to the present embodiment is described with reference to
The computer node 10 acquires data that is transferred from the input bus 30a, performs a predetermined calculation, and transfers output data such as calculation result either to the main storage unit 70 or to the computer node 20 using the output bus 40a. Similar to the computer node 10, the computer node 20 acquires data that is transferred from the input bus 30b, performs a predetermined calculation, and transfers output data such as calculation result either to the main storage unit 70 or to the computer node 10 using the output bus 40b.
The input buses 30a to 30c and the output buses 40a to 40c are buses for which a direction of transfer of data is one directional. Concretely, the input bus 30a transfers data from the cross bar mechanism 60 to the computer node 10, the input bus 30b transfers data from the cross bar mechanism 60 to the computer node 20, and the input bus 30c transfers data from the main storage unit 70 to the cross bar mechanism 60.
Moreover, the output bus 40a transfers data from the computer node 10 to the cross bar mechanism 60, the output bus 40b transfers data from the computer node 20 to the cross bar mechanism 60, and the output bus 40c transfers data from the cross bar mechanism 60 to the main storage unit 70.
The cross bar mechanism 60 switches the path dynamically while exchanging data between the computer nodes 10 and 20, and the main storage unit 70. The main storage unit 70 stores user data and programs that are used in the computer nodes 10 and 20. Although omitted in
Further, if a data band width of the input bus 30a is w_ain and a data band width of the output bus 40a is w_aout, in the present invention, each data bandwidth is set such that w_ain>w_aout. Moreover, if a data bandwidth of the input bus 30b is w_bin and a data bandwidth of the output bus 40b is w_bout, in the present invention, each data band width is set such that w_bin>w_bout.
Furthermore, focusing attention on a data transfer path of the computer system shown in
Moreover, because data output from the computer node 10 and the main storage unit 70 is sometimes transferred to the computer node 20, in the present invention, the data band width of the input bus 30c is set as w_bin>w_aout+w_mout.
In the present embodiment, as an example, a ratio of each data bandwidth is set as
The buffer sections 50a to 50f store data output from each unit. Further, the buffer sections 50a to 50d include a mechanism that absorbs an inconsistency due to asymmetric data bandwidth of the input buses 30a and 30b, and the output buses 40a and 40b.
A structure of the buffer section 50a is described next. Buffer sections 50b to 50d are similar to the buffer section 50a, and the description thereof is omitted.
The switch 51 assigns data acquired from the cross bar mechanism 60 to various recording areas of the data buffer 52. The data buffer 52 has a plurality of storage areas, and stores data temporarily in the storage areas. Each storage area with a respective entry is indicated below. Moreover, as shown in
The selector 53 selects an entry that is subjected to data acquisition, from a plurality of entries included in the data buffer 52 and acquires data from the entry selected. The selector 53 transfers the data acquired from the entry to the packet creating unit 54.
The packet creating unit 54 creates a packet based on the data received from the selector 53, and sends the packet created to the computer node 10. Further, the packet creating unit 54 changes a transfer rate of a packet based on a data storage condition of the data buffer 52, and transfers the packet whose transfer rate is changed, to the computer node. The controlling section 55 continuously monitors the data storage condition of the data buffer 52, and the packet creating unit 54 acquires information related to the data storage condition of the data buffer 52 from the controlling section 55.
The controlling section 55 controls various units of the buffer section 50a; that is, the switch 51, the selector 53, and the packet creating unit 54. In other words, the switch 51 assigns data to each entry that is a destination for data recording, based on an instruction from the controlling section 55. The selector 53 acquires data from an entry selected, based on an instruction of the controlling section 55, and transfers the data acquired to the packet creating unit 54.
A packet created by the packet creating unit 54 is described next. In the present embodiment, the packet creating unit 54 creates two types of packets. Specifically, when no data is stored in each entry of the data buffer 52, and the switch 51 records new data in an entry, the packet creating unit 54 converts the newly recorded data as is into packets, and transmits the packets converted to the computer node 10 one after another.
For example, when the switch 51 records data as a 4 byte cycle in the entry, the packet creating unit 54 creates packets that has data of 4 byte per packet and transmits the packets created to the computer node 10. Transmission of a packet group that includes 4 byte data per packet is referred to below as a long version transfer.
Moreover, at the beginning of each of the first to the ninth packets, identification information for identifying information stored in the packet is added. In other words, according to the identification information, the receiving side can judge whether data stored in the packet is header information or user data.
Another type of packet is described next. When data is stored in each entry of the data buffer 52, and the switch 51 records new data in an entry, the packet creating unit 54 increases a transfer rate of the packet.
For example, when the switch 51 records data as a 4 byte cycle in the entry (data is supposed to be stored in this entry), the packet creating unit 54 creates packets with 5 byte data per packet, and transmits the packets created to the computer node 10. Transmission of a packet group that includes 5 byte data per packet is referred to below as a short version transfer.
Moreover, at the beginning of each of the first to the seventh packets, identification information for identifying the information stored in the packet is added. In other words, according to the identification information, the receiving side can judge whether data stored in the packet is header information or user data (sometimes data includes header information and user data, as in packets shown in
For example, in
Further, although a detail description is omitted here, the buffer sections 50b and 50d use a mechanism similar to the mechanism of the buffer section 50a, and transfer the data output from the computer nodes 10 and 20 to the cross bar mechanism 60.
In other words, the buffer sections 50b and 50d record into the data buffer the data output from the computer node 10 or 20, and based on the data storage condition of the data buffer, the packet creating unit 54 changes the transfer rate of the packet transferred to the cross bar mechanism 60.
As mentioned above, the computer system according to the present embodiment controls the data transfer in each unit by setting the data bandwidth of the input bus 30a to be greater than the data bandwidth of the output bus 40a, and the data bandwidth of the input bus 30b to be greater than the data bandwidth of the output bus 40b. Moreover, by providing the buffer section 50a and 50d to absorb the inconsistency caused due to asymmetrically setting the data bandwidth of each bus, effective use of the data path that has limited resources, and efficient data transfer with the computer node is possible.
According to an aspect of the present invention, it is possible to perform cost-effective and efficient data transmission to a computer connected to a one-directional data bus.
Moreover, it is possible to perform normal data transmission to the computer.
Furthermore, it is possible to deal appropriately with an inconsistency in the data transfer due to asymmetric data bandwidth of the input bus and the output bus.
Moreover, even when the input data is not accumulated and data to be input to the computer is acquired newly, it is possible to perform efficient data transmission to the computer.
Furthermore, even when the input data is accumulated and data to be input to the computer is acquired newly, it is possible to perform efficient data transmission to the computer.
According to another aspect of the present invention, it is possible to perform the data transmission normally from the computer to other equipment.
Moreover, in case of data transfer to the other equipment, it is possible to deal appropriately with an inconsistency in the data transfer due to asymmetric data bandwidth of the input bus and the output bus.
Furthermore, even when the input data is not accumulated and data to be input to the computer is acquired newly, it is possible to perform efficient data transmission from the computer to the other equipment.
Moreover, even when the input data is accumulated and data to be input to the computer is acquired newly, it is possible to perform efficient data transmission from the computer to the other equipment.
Although the invention has been described with respect to a specific embodiment for a complete and clear disclosure, the appended claims are not to be thus limited but are to be construed as embodying all modifications and alternative constructions that may occur to one skilled in the art that fairly fall within the basic teaching herein set forth.
Number | Date | Country | Kind |
---|---|---|---|
2005-252744 | Aug 2005 | JP | national |