Method and apparatus for performing bus transactions in a computer system
First Claim
Patent Images
1. A method for performing bus transaction in a computer system having an address bus and a data bus that allow a plurality of bus transactions to be performed in a pipelined manner, the method comprising steps of:
- initiating a bus request as part of a bus operation, wherein the step of initiating a bus request comprises driving an address on the address bus, wherein the step of driving the address is performed by a first agent;
driving a first token on the data bus in response to the address, wherein the step of driving a first token is performed by a second agent;
receiving the first token from the data bus, wherein the first token is received by the first agent;
driving a second token on the address bus, wherein the second token is driven by the second agent;
sending a deferred reply, wherein the deferred reply is sent by the second agent;
receiving the second token from the address bus, wherein the second token is received by the first agent, such that the first agent identifies the second token as corresponding to the address; and
receiving the deferred reply to complete the bus operation, wherein the deferred reply is received by the first agent after identifying the second token as corresponding to the bus request.
1 Assignment
0 Petitions
Accused Products
Abstract
A method and apparatus of performing bus transactions on the external bus of the computer system. The present invention includes a method and apparatus for permitting out-of-order replies in a pipelined bus system. The out-of-order responses include the sending of tokens between both the requesting agents and the responding agents in the computer system without the use of dedicated token buses.
61 Citations
33 Claims
-
1. A method for performing bus transaction in a computer system having an address bus and a data bus that allow a plurality of bus transactions to be performed in a pipelined manner, the method comprising steps of:
-
initiating a bus request as part of a bus operation, wherein the step of initiating a bus request comprises driving an address on the address bus, wherein the step of driving the address is performed by a first agent; driving a first token on the data bus in response to the address, wherein the step of driving a first token is performed by a second agent; receiving the first token from the data bus, wherein the first token is received by the first agent; driving a second token on the address bus, wherein the second token is driven by the second agent; sending a deferred reply, wherein the deferred reply is sent by the second agent; receiving the second token from the address bus, wherein the second token is received by the first agent, such that the first agent identifies the second token as corresponding to the address; and receiving the deferred reply to complete the bus operation, wherein the deferred reply is received by the first agent after identifying the second token as corresponding to the bus request. - View Dependent Claims (2, 3, 4, 5, 6)
-
-
7. A method for performing bus transactions in a computer system having an address bus and a data bus that allow a plurality of bus transactions to be performed in a pipelined manner, the method comprising steps of:
-
initiating a bus request as part of a bus operation wherein the step of initiating a bus request comprises driving an address on the address bus, wherein the step of driving the address is performed by a first agent; driving a first token on the data bus in response to the address if a second agent is unable to complete the bus operation, wherein the step of driving a first token is performed by a second agent; receiving the first token from the data bus, wherein the first token is received by the first agent; driving a second token on the address bus, wherein the second token is driven by the second agent; sending a deferred reply, wherein the deferred reply is sent by the second agent; receiving the second token from the address bus, wherein the second token is received by the first agent; comparing the second token to the first token; and latching the deferred reply wherein the deferred reply is received by the first agent if the second token and the first token match, such that the bus operation is complete. - View Dependent Claims (8, 9, 10, 12, 13)
-
-
11. A computer system comprising:
-
a first bus means for communicating address information; a second bus means for communicating data information; at least one requesting agent coupled to the first bus and the second bus, wherein said at least one requesting agent is capable of initiating a bus operation; at least one responding agent coupled to the first bus means and the second bus means, wherein said at least one responding agent is capable of responding to a request from said at least one requesting agent, such that a response is sent on the second bus means in response to said request; wherein said at least one responding agent drives a first token on the second bus means as its response when said at least one responding agent is not ready to fulfill the bus request, and wherein said at least one requesting agent receives the first token from the second bus means, and wherein said at least one responding agent drives a second token on the first bus means and a deferred reply when ready to fulfill the bus request, wherein said at least one requesting agent receives the second token from the first bus means, and further wherein the second token is identified by said at least one requesting agent as corresponding to the bus request, such that said at least one requesting agent latches the deferred reply to complete the bus transaction.
-
-
14. A method for performing bus transactions in a computer system having an address bus and a data bus that allow a plurality of bus transactions to be performed in a pipelined manner, the method comprising steps of:
-
driving an address on the address bus, wherein the step of driving the address is performed by a first agent; sending a deferred response in response to the address, wherein the step of sending a deferred response is performed by a second agent; receiving the deferred response, wherein the deferred response is received by the first agent; sending a deferred reply, wherein the deferred reply is sent by the second agent; driving data corresponding to the address on the data bus, wherein the data is driven by the second agent; receiving the deferred reply, wherein the deferred reply is received by the first agent, such that the first agent identifies the deferred reply as corresponding to the address; and receiving the data from the data bus, wherein the data is received by the first agent after identifying the deferred reply as corresponding to the address. - View Dependent Claims (15, 16)
-
-
17. A method for performing bus transactions in a computer system having an address bus and a data bus that allow a plurality of bus transactions to be performed in a pipelined manner, the method comprising steps of:
-
driving an address on the address bus, wherein the step of driving the address is performed by a first agent; driving a first token on the data bus; driving a deferred response, wherein the first token and the deferred response are sent in response to the address and are performed by a second agent; receiving the first token from the data bus; receiving the deferred response, wherein the first token and the deferred response are received by the first agent; sending a deferred reply; driving a second token on the address bus, wherein the deferred reply and the second token are sent by the second agent; driving data on the data bus, wherein the data is driven by the second agent; receiving the deferred reply; receiving the second token from the address bus, wherein the deferred reply and the second token are received by the first agent, such that the first agent identifies the second token as corresponding to the address; and receiving the data from the data bus, wherein the data is received by the first agent after identifying the second token as corresponding to the address. - View Dependent Claims (18, 19)
-
-
20. A method for performing bus transactions in a computer system having an address bus and a data bus that allows a plurality of bus transactions to be performed in a pipelined manner, the method comprising steps of:
-
driving an address on the address bus as part of a bus request of a first bus transaction, wherein the step of driving the address is performed by a first agent; sending a first token on the data bus and a deferral response in response to the request, wherein the step of sending is performed by a second agent; receiving the deferral response and the first token to complete the first bus transaction, wherein the deferral response and first token are received by the first agent; sending a second token on the address bus and a deferred reply as part of a second bus transaction, wherein the deferred reply is sent by the second agent; and identifying the deferred reply as corresponding to the request, wherein the step of identifying comprises the first agent receiving the deferred reply to complete the second bus transaction, such that the request is completed in two bus transactions. - View Dependent Claims (21, 22)
-
-
23. A method for performing bus transactions in a computer system having an address bus and a data bus that allow a plurality of bus transactions to be performed in a pipelined, manner, the method comprising steps of:
-
driving an address on the address bus, wherein the step of driving the address is performed by a first agent; driving a token on the data bus, wherein the step of driving is performed by a second agent; driving a deferral response in response to the address, wherein the step of driving the deferral response is performed by a second agent; receiving the token from the data bus, wherein the token is received by the first agent; receiving the deferral response, wherein the deferral response is received by the first agent to complete a first bus transaction; sending a deferred reply as part of a second bus transaction; resending the token on the address bus, wherein the deferred reply and the token are sent by the second agent; receiving the token from the address bus, wherein the token are received by the first agent; and receiving the deferral reply to complete a second bus transaction. - View Dependent Claims (24)
-
-
25. A computer system comprising:
-
an address bus; a data bus; a control bus; a first bus agent coupled to the address bus, the data bus, and the control bus for performing a bus operation, wherein the first bus agent initiates the bus operation by initiating a first bus transaction by driving a request address of a request onto the address bus during a first clock cycle, and terminates the first bus transaction upon receiving an immediate response to satisfy the request or upon receiving a deferral response indication on the control bus indicating response to the request is to be deferred and request identification information on the data bus. - View Dependent Claims (26, 27, 28, 29, 30, 31)
-
-
32. A method of performing bus transactions in a computer system having a requesting agent and a responding agent each coupled to a bus which includes a response bus, on address bus, and a data bus, wherein the bus is ordered and pipelined such that each bus transaction has a predetermined response phase and such that the bus transactions complete in a same order in which requested, the method comprising the steps of:
-
the requesting agent requesting a first bus transaction by issuing an address onto the address bus; and if the responding agent is ready to complete the first bus transaction, the responding agent driving an in-order completion response onto the response bus in a response phase of the first bus transaction; and if the responding agent is not ready to complete the first bus transaction, then the responding agent driving a deferral response onto the response bus in the response phase of the first bus transaction and a token on the data bus, and when the responding agent becomes ready to respond, then the responding agent initiating a second bus transaction and driving the token onto the address bus, a deferred reply and any requested data onto the data bus, in a response phase of the second bus transaction.
-
-
33. A computer system comprising:
-
a bus including; an address bus; a response bus; a data bus; a requesting agent coupled to the bus, wherein the requesting agent issues a bus request on the address bus, handles deferral responses in response to requests, and maintains the bus request as pending until receiving a deferred reply; and a responding agent coupled to the bus, wherein the responding agent issues a token on the data bus and generates a deferral response when unable to complete a transaction during a predetermined time of the transaction, and generates the deferred reply and sends the token on the address bus when the responding agent is subsequently able to complete the transaction.
-
Specification