Fair arbitration technique for a split transaction bus in a multiprocessor computer system
First Claim
1. In a computer system comprising a plurality of modules and bus means commonly connected to all of the modules for conducting information signals between the modules, each module including means for transmitting information signals as a transfer over the bus means and while doing so functioning as a master module, each module also including means for receiving the transfer of information signals from the bus means and while doing so functioning as a slave module, a predetermined number less than all of the plurality of modules including means for initiating a transfer over the bus means in response to exogenous or internally generated events and thereby functioning as an initiator module, each module of the plurality other than the initiator modules including means for transmitting a transfer on the bus means only in response to a previous transfer transmitted by an initiator module and thereby functioning as a responder module, means associated with each module for assigning a predetermined priority to each module, the priorities of each module being different from one another, each responder module having a higher priority than any initaitor module, mnans associated with each module for asserting a request signal indicative of the predetermined priority of that module upon that module desiring to become a master module for transmitting a transfer over the bus means, and an improved arbitration means connected to the bus means and responsive to the request signals and operative during each of a plurality of sequential arbitration time periods for determining which of the plurality of modules asserting request signals is to be granted exclusive access to the bus means as a master module for a bus predetermined time period to transmit a transfer to an addressed slave module, said improved arbitration means further comprising:
- means responsive to a plurality of request signals and operative for issuing a pending signal upon receipt of two request signals asserted during one arbitration period;
means associated with each initiator module not previously asserting a request signal and operative in response to the assertion fo the pending signal for inhibiting and assertion of its request signal until the pending signal is negated;
means associated with each one responder module for asserting a re-try signal upon detecting an attempt by an initiator module to transmit a transfer to the one responder module while the one responder module is busy processing a previously transmitter transfer, each responder module asserting a re-try signal becoming a busy responder module;
means associated with each initiator module which unsuccessfully attempted a transfer to a busy responder module for recognizing the re-try signal asserted by the busy responder module, each initiator module recognizing the re-try signal becoming a waiting initiator module;
means associated with each busy responder module for asserting a ready signal when the busy responder module ceases being busy upon completing the processing of the previously transmitted transfer;
means associated with each waiting initiator module for asserting its request signal upon receipt of the ready signal;
means associated with each initiator module which is not a waiting initiator module for rescinding any request signal it may have been asserting upon the receipt of the ready signal; and
means operative during each predetermined arbitration period and responsive to the request, pending and ready signals for first granting exclusive access to the bus means to responder modules asserting request signals in the order of their predetermined priorities without regard to the assertion of the request and pending signals from initiator modules, and for thereafter granting exclusive access to the bus means to those initiator modules asserting request signals in the order of their predetermined priorities durigg the predetermined arbitration period when no request signals from responder modules are asserted to thereby give priority to waiting initiator modules over the other initiator modules and to give priority to the non-waiting initiator modules on the basis of precedence in time of their asserted requests while the pending signal is asserted.
5 Assignments
0 Petitions
Accused Products
Abstract
An arbitration techique for a split transaction bus of a computer system obtains higher data throughput as a result of giving responders (e.g. memories) absolute priority over initiators (e.g. processors and I/O adapters), as a result of assigning all responders a higher priority than any initiator. Precedence is also given to retrying initiators which failed to complete a transaction because the module to which the transfer was addressed was busy. The requests from non-retrying initiators are temporarily rescinded to give precedence to the requests from retrying initiators. There is an absolute limit or bound to the number of requests which a retrying module may make before it is granted mastership of the bus to accomplish its transfer. To accomplish test and set and memory scrub transactions with a minimum time loss, the bus of the computer system creates a null conductivity cycle immediately following the cycle in which the address of the memory location to be tested and set or scrubbed is transferred.
-
Citations
22 Claims
-
1. In a computer system comprising a plurality of modules and bus means commonly connected to all of the modules for conducting information signals between the modules, each module including means for transmitting information signals as a transfer over the bus means and while doing so functioning as a master module, each module also including means for receiving the transfer of information signals from the bus means and while doing so functioning as a slave module, a predetermined number less than all of the plurality of modules including means for initiating a transfer over the bus means in response to exogenous or internally generated events and thereby functioning as an initiator module, each module of the plurality other than the initiator modules including means for transmitting a transfer on the bus means only in response to a previous transfer transmitted by an initiator module and thereby functioning as a responder module, means associated with each module for assigning a predetermined priority to each module, the priorities of each module being different from one another, each responder module having a higher priority than any initaitor module, mnans associated with each module for asserting a request signal indicative of the predetermined priority of that module upon that module desiring to become a master module for transmitting a transfer over the bus means, and an improved arbitration means connected to the bus means and responsive to the request signals and operative during each of a plurality of sequential arbitration time periods for determining which of the plurality of modules asserting request signals is to be granted exclusive access to the bus means as a master module for a bus predetermined time period to transmit a transfer to an addressed slave module, said improved arbitration means further comprising:
-
means responsive to a plurality of request signals and operative for issuing a pending signal upon receipt of two request signals asserted during one arbitration period; means associated with each initiator module not previously asserting a request signal and operative in response to the assertion fo the pending signal for inhibiting and assertion of its request signal until the pending signal is negated; means associated with each one responder module for asserting a re-try signal upon detecting an attempt by an initiator module to transmit a transfer to the one responder module while the one responder module is busy processing a previously transmitter transfer, each responder module asserting a re-try signal becoming a busy responder module; means associated with each initiator module which unsuccessfully attempted a transfer to a busy responder module for recognizing the re-try signal asserted by the busy responder module, each initiator module recognizing the re-try signal becoming a waiting initiator module; means associated with each busy responder module for asserting a ready signal when the busy responder module ceases being busy upon completing the processing of the previously transmitted transfer; means associated with each waiting initiator module for asserting its request signal upon receipt of the ready signal; means associated with each initiator module which is not a waiting initiator module for rescinding any request signal it may have been asserting upon the receipt of the ready signal; and means operative during each predetermined arbitration period and responsive to the request, pending and ready signals for first granting exclusive access to the bus means to responder modules asserting request signals in the order of their predetermined priorities without regard to the assertion of the request and pending signals from initiator modules, and for thereafter granting exclusive access to the bus means to those initiator modules asserting request signals in the order of their predetermined priorities durigg the predetermined arbitration period when no request signals from responder modules are asserted to thereby give priority to waiting initiator modules over the other initiator modules and to give priority to the non-waiting initiator modules on the basis of precedence in time of their asserted requests while the pending signal is asserted. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14)
-
-
15. In a computer system comprising initiator modules including at least one which is processor, responder modules including at least one which is a memory, a bus commonly connecting the modules, means for establishing bus cycles during which separate transfers of information signals are communicated between the modules, and means for arbitrating exclusive access of the bus to establish selected communication paths between a selected initiator and a responder addressed by the selected initiator;
- and improved means for accomplishing test and set operations in the memory, comprising in combination;
means for transferring a command for a read/modify/write operation to the memory during one bus cycle; said memory further includes means for performing a read/modify/write operation in response to the read/modify/write command to read the original data at an addressed memory location and write predetermined data to the addressed location and write the original data back, the writing of the original data back occurring during a bus cycle subsequent to the one bus cycle; and said bus arbitrating means inhibiting communication over the bus for a bus cycle after the one bus cycle to allow the memory to write the predetermined data to the addressed location during the read/modify/write operation without being addressed by another command until after the predetermined data has been written to the addressed memory location. - View Dependent Claims (16, 17)
- and improved means for accomplishing test and set operations in the memory, comprising in combination;
-
18. ln a computer system comprising a plurality of modules and bus means commonly connected to all of the modules for conducting information signals between the modules, each module including means for transmitting information signals as a transfer over the bus means and while doing so functioning as a master module, each module also including means for receiving the transfer of information signals from the bus means and while doing so functioning as a slave module, a predetermined number less than all of the plurality of modules including means for initiating a transfer over the bus means in response to exogenous or internally generated events and thereby functioning as an initiator module, each module of the plurality other than the initiator modules including means for transmitting a transfer on the bus means only in response to a previous transfer transmitted by an initiator module and thereby functioning as a responder module, means associated with each module for assigning a predetermined priority to each module, the priorities of each module being different from one another, each responder module having a higher priority than any initiator module, means associated with each module for asserting a request signal indicative of the predetermined priority of that module upon that module desiring to become a master module for transmitting a transfer over the bus means, and an improved arbitration means connected to the bus means and responsive to the request signals and operative during each of a plurality of sequential arbitration time periods for determining which of the plurality of modules asserting request signals is to be granted exclusive access to the bus means as a master module for a predetermined time period to transmit a transfer to an addressed slave module, said improved arbitration means further comprising:
-
means responsive to a plurality of request signals from initiator modules for issuing a pending signal upon receipt of two request signals asserted during one arbitration period; means associated with each initiator module not previously asserting a request signal and operative in response to the assertion of the pending signal for inhibiting the assertion of its request signal until the pending signal is negated; means associated with each responder module for asserting its request signal without regard to the assertion of the pending signal; means operative during each predetermined arbitration period and responsive to the request and pending signals for first granting exclusive access to the bus means to responder modules asserting request signals in the order of their predetermined priorities without regard to the assertion of the pending signal or request signals from initiator modules, and for thereafter granting exclusive access to the bus means to each of a plurality of initiator modules asserting request signals during the one arbitration period in the order of their predetermined priorities until all of the initiator modules asserting request signals during the one arbitration period have been granted bus exclusive access and before request signals from any other initiator modules are asserted. - View Dependent Claims (19, 20)
-
-
21. In a computer system comprising a plurality of modules and bus means commonly connected to all of the modules for conducting information signals between the modules, each module including means for transmitting information signals as a transfer over the bus means and while doing so functioning as a master module, each module also including means for receiving the transfer of information signals from the bus means and while doing so functioning as a slave module, a predetermined number less than all of the plurality of modules including means for initiating a transfer over the bus mans in response to exogenous or internally generated events and thereby functioning as an initiator module, each module of the plurality other than the initiator modules including means for transmitting a transfer on the bus means only in response to a previous transfer transmitted by an initiator module and thereby functioning as a responder module, means associated with each module for assigning a predetermined priority to each module, the priorities of each module being different from one another, each responder module having a higher priority than any initiator module, means associated with each module for asserting a request signal indictive of the predetermined priority of that module upon that module desiring to become a master module for transmitting a transfer over the bus means, and an improved arbitration means connected to the bus means and responsive to the request signals and operative during eaoh of a plurality of sequential arbitrtion time periods for determining which the plurality of modules asserting request signals is to be granted exclusive access to the bus means as a master module for a predetermined time period to transmit a transfer to an addressed slave module, said improved arbitration means further comprising:
-
means associated with each one responder module for asserting a re-try signal upon detecting an attempt by an initiator module to transmit a transfer to the one responder module while that one responder module is busy processing a previously transmitted transfer, each responder module asserting a re-try signal becoming a busy responder module; means associated with each initiator module which unsuccessfully attempted to transfer to a busy responder module for recognizing the re-try signal asserted by the busy responder module, each initiator module recognizing the re-try signal becoming a waiting initiator module; means associated with each busy responder module for asserting a ready signal when the busy responder module ceases being busy upon completing the processing of the previously transmitted transfer; means associated with each waiting initiator module for asserting its request signal upon receipt of the ready signal; means associated with each initiator module which is a non-waiting initiator module for rescinding any request signal it may have been asserting upon the receipt of the ready signal to allow waiting initiator modules precedence in the order of their predetermined priorities over non-waiting initiator modules. - View Dependent Claims (22)
-
Specification