Exemplary embodiments of the present invention are explained below in detail with reference to accompanying drawings. In the following embodiment, an address crossbar switch functions as a request transmitting device.
Upon receiving, for example, retried address requests from system boards (SB#0 to SB#4) with a main control unit such as CPU and a main storage unit such as a memory mounted thereon, and I/O units (I/OU#0 to I/OU#4) that control connection between the computer system and external devices, the address crossbar switch suspends broadcasting of the retried address requests for a predetermined time period.
Specifically, the address crossbar switch temporarily buffers the received address requests while monitoring them, and counts address requests of a predetermined type (for example, long-packet address requests). If the count of address requests of the type exceeds a threshold value (for example, if the count of long packets exceeds 100), the address crossbar switch suspends broadcasting retried address requests for a predetermined time period. When the broadcast-suspension period ends, the address crossbar switch restarts broadcasting the address requests in the order in which they were received.
For example, as shown in
Similarly, the address request B transmitted from the system board SB#1 and broadcasted from the address crossbar switch is returned to be retried because the system board SB#0 has already transmitted the address request A specifying the same address. In such a situation, the system board SB#1 retries (retransmits) the address request B. The address crossbar switch receives the retried address request B, and, if it is during a broadcast-suspension period, suspends broadcasting the retried address request B for a predetermined time period.
When the broadcast-suspension period ends, the address crossbar switch broadcasts the address request A, which was received first, as well as broadcasting a response to the address request A (for example, notification of an address in response to the address request). The system board SB#0 performs the next process such as data request based on the response received from the address crossbar switch.
Similarly, the address crossbar switch broadcasts the address request B, which was received after the address request A, as well as broadcasting a response to the address request B. The system board SB#1 performs the next process such as data request based on the response received from the address crossbar switch.
As described above, the address crossbar switch according to the embodiment adjusts the timing for transmitting, for example, retried address requests for the same address, thereby avoiding livelock and preventing system shutdown.
The storage unit 32 stores therein data and programs required for various processes performed by the control unit 33. Specifically related to the present invention, the storage unit 32 includes a buffer 32a. The buffer 32a temporarily stores therein information such as an address request received by a receiving unit 33a, described later.
The control unit 33 includes an internal memory that stores therein predetermined control programs, and programs specifying processing procedures and required data. The control unit 33 performs various processes according to the programs and the data. Specifically related to the present invention, the control unit 33 further includes the receiving unit 33a and a transmission control unit 33b.
The receiving unit 33a receives various information such as an address request from the system board 10 and the I/O unit 20 via the communication control I/F 31, and stores the information in the buffer 32a.
The transmission control unit 33b controls transmission (broadcast) of the information. Specifically, the transmission control unit 33b monitors address requests received by the receiving unit 33a, and counts address requests of a predetermined type (for example, long-packet address requests). If the count of address requests of the type exceeds a predetermined threshold value (for example, if the count of long packets exceeds 100), the transmission control unit 33b suspends broadcasting the address requests for a predetermined time period. When the broadcast-suspension period ends, the transmission control unit 33b restarts broadcasting the address request stored in the buffer 32a in the order in which they were received.
Then, the transmission control unit 33b checks whether an address-request counter value exceeds a threshold value (step S403). If the counter value exceeds the threshold value (Yes at step S403), the transmission control unit 33b suspends broadcasting the address request for a predetermined time period (step S404). On the other hand, if the counter value does not exceed the threshold value (No at step S403), the transmission control unit 33b broadcasts the address request (step S405).
Each of the constituent elements of the address crossbar switch 30 shown in
In addition, all or a part of processing functions of the address crossbar switch 30 (transmission control function, etc.) can be realized by a computer program. That is, a computer program can be stored in a predetermined memory or the like, and executed on a computer to realize the same function as the address crossbar switch 30. The process procedures, control procedures, and information including specific names mentioned in the above description and the drawings can be arbitrarily changed unless otherwise specified.
As set forth hereinabove, according to an embodiment of the present invention, address requests received from various devices (for example, CPU on the system board) in a computer system and from various external devices (for example, PCI card connected via an I/O unit) that are connected to the computer system are temporarily stored (buffered). The transmission of stored address requests is controlled to be suspended for a predetermined time period at a predetermined timing (for example, not fixed and variable or random timing). That is, the timing is adjusted to transmit, for example, retried address requests for the same address. Thus, it is possible to avoid livelock and prevent system shutdown.
Moreover, address requests received from the various devices are monitored to count address requests of a predetermined type (for example, long-packet address requests). The transmission of the address requests is suspended for a predetermined time period every time the counter value reaches a threshold value. The timing is adjusted to transmit the address requests according to the timing at which the counter value reaches the threshold value. Thus, livelock can be avoided without complicated circuitry.
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 |
---|---|---|---|
2006-223490 | Aug 2006 | JP | national |