Patent US5535340A successfully refreshed from Google Patents.
← Back to Patent Explorer
US5535340A Expired / Lapsed US ⏱️ 0.0 years remaining

Method and apparatus for maintaining transaction ordering and supporting deferred replies in a bus bridge

Assignee: Intel Corp
•
Filing: 1994-05-20
•
Granted: 1996-07-09
•
Expires: 2014-05-20
📄 Original PDF 🌐 Google Patents 🔄 Sync Now

Abstract

Abstract A bus bridge situated between two buses includes two queues: an outbound request queue and an inbound request queue. Requests originating on the first bus which target a destination on the second bus are placed into the outbound request queue. Decoding circuitry within the bridge issues a deferred response if the request can be deferred. This deferred response is returned to the originating agent on the first bus, thereby informing the originating agent that the request will be serviced at a later time. Bus control circuitry coupled to the outbound request queue removes requests from the outbound request queue and executes them on the second bus. The bus control circuitry receives a response from the destination agent on the second bus in response to the execution of the outbound request. This response is returned to the originating agent either immediately or after passing through an inbound request queue. Both the outbound request queue and the inbound request queue have data buffers associated therewith for transferring data between the two buses. In addition, requests may originate on the second bus which target a device on the first bus (i.e., inbound requests). These inbound requests are placed in the inbound request queue and are executed on the first bus when removed from the inbound request queue.

Inventors

  • 👤 D. Michael Bell
  • 👤 Mark A. Gonzales
  • 👤 Susan S. Meredith

Bibliographic Details

Application Number —
Jurisdiction US
Data Source google_patents
Last Synchronized 2026-10-27 11:22
CPC Classifications
G; G06; G06F; G06F13/00; G06F13/38; G06F13/40; G06F13/4004; G06F13/4027

Claims Analysis

Total Claims: 43
Claim 1
Independent Claim 148 words
A bus bridge for transferring data between a first bus and a second bus in a computer system, the bus bridge comprising: a first bus interface coupled to the first bus for receiving data from and placing data onto the first bus; a second bus interface coupled to the second bus for receiving data from and placing data onto the second bus; an inbound request queue and an outbound request queue coupled to the first bus interface and the second bus interface; decoding circuitry coupled to the inbound request queue and the outbound request queue for placing requests in the outbound request queue and for issuing a deferred response to the first bus interface to be placed on the first bus based on available space in the inbound request queue; and an inbound queue allocation unit for determining whether an outbound request may be given the deferred response.
Claim 2
Dependent Claim 148 words
A bus bridge for transferring data between a first bus and a second bus in a computer system, the bus bridge comprising: a first bus interface coupled to the first bus for receiving data from and placing data onto the first bus; a second bus interface coupled to the second bus for receiving data from and placing data onto the second bus; an inbound request queue and an outbound request queue coupled to the first bus interface and the second bus interface; decoding circuitry coupled to the inbound request queue and the outbound request queue for placing requests in the outbound request queue and for issuing a deferred response to the first bus interface to be placed on the first bus based on available space in the inbound request queue; and an inbound queue allocation unit for determining whether an outbound request may be given the deferred response.
Claim 3
Dependent Claim 26 words
The bus bridge as defined in claim 1 further comprising at least one data buffer coupled to the inbound request queue and the outbound request queue.
Claim 4
Dependent Claim 74 words
The bus bridge as defined in claim 1 wherein the inbound request queue has a plurality of inbound slots and the inbound queue allocation unit determines whether the outbound request may be given the deferred response based on a total number of inbound slots, a number of inbound slots in the inbound request queue currently holding information, and a number of inbound slots in the inbound request queue currently labeled as deferred reply slots.
Claim 5
Dependent Claim 96 words
The bus bridge as defined in claim 1 further comprising bus control circuitry coupled to the first bus interface and the second bus interface, the bus control circuitry for determining whether an outbound request has been deferred, transferring the outbound request to the second bus interface, receiving response information from the second bus interface generated in response to the outbound request, and returning the response information to the first bus interface if the outbound request has not been deferred, and transferring the response information to the inbound request queue if the outbound request has been deferred.
Claim 6
Dependent Claim 33 words
The bus bridge as defined in claim 4 further comprising a deferred reply generator for receiving response information from the bus control circuitry and transferring the response information to the inbound request queue.
Claim 7
Dependent Claim 32 words
The bus bridge as defined in claim 1 further comprising bus target circuitry for receiving inbound requests from the second bus interface and transferring the inbound requests to the inbound request queue.
Claim 8
Dependent Claim 42 words
The bus bridge as defined in claim 1 wherein the outbound request queue has a plurality of outbound slots, and wherein each slot of the plurality of outbound slots contains information corresponding to requests issued by agents coupled to the first bus.
Claim 9
Dependent Claim 46 words
The bus bridge as defined in claim 1 wherein the inbound request queue has a plurality of inbound slots, and wherein each slot of the plurality of inbound slots stores information corresponding to requests issued by agents coupled to the first bus or the second bus.
Claim 10
Dependent Claim 23 words
The bus bridge as defined in claim 8 wherein at least one of the plurality of inbound slots is a deferred reply slot.
Claim 11
Dependent Claim 44 words
The bus bridge as defined in claim 1, wherein: the first bus has a first command protocol; the second bus has a second command protocol; and the second bus interface is for translating commands between the first command protocol and the second command protocol.
Claim 12
Dependent Claim 32 words
The bus bridge as defined in claim 7, wherein each slot of the plurality of outbound slots comprises a tag portion, a command portion, an address portion, and a data pointer portion.
Claim 13
Dependent Claim 29 words
The bus bridge as defined in claim 8 wherein each slot of the plurality of inbound slots comprises a command portion, an address portion, and a data pointer portion.
Claim 14
Dependent Claim 219 words
A bus bridge for transferring data between a first bus and a second bus in a computer system, the bus bridge comprising: a first bus interface coupled to the first bus for receiving data from and placing data onto the first bus; a second bus interface coupled to the second bus for receiving data from and placing data onto the second bus; an inbound request queue and an outbound request queue coupled to the first bus interface and the second bus interface, wherein the inbound request queue has a plurality of inbound slots, and wherein each slot of the plurality of inbound slots stores information corresponding to requests issued by agents coupled to the first bus or the second bus; and decoding circuitry coupled to the inbound request queue and the outbound request queue for placing requests in the outbound request queue and for issuing a deferred response to the first bus interface to be placed on the first bus based on available space in the inbound request queue, wherein the decoding circuitry determines whether to issue the deferred response to the first bus interface based on whether each inbound slot of the plurality of inbound slots contains information, the decoding circuitry issuing the deferred response to the first bus interface if an inbound slot does not contain information.
Claim 15
Dependent Claim 219 words
A bus bridge for transferring data between a first bus and a second bus in a computer system, the bus bridge comprising: a first bus interface coupled to the first bus for receiving data from and placing data onto the first bus; a second bus interface coupled to the second bus for receiving data from and placing data onto the second bus; an inbound request queue and an outbound request queue coupled to the first bus interface and the second bus interface, wherein the inbound request queue has a plurality of inbound slots, and wherein each slot of the plurality of inbound slots stores information corresponding to requests issued by agents coupled to the first bus or the second bus; and decoding circuitry coupled to the inbound request queue and the outbound request queue for placing requests in the outbound request queue and for issuing a deferred response to the first bus interface to be placed on the first bus based on available space in the inbound request queue, wherein the decoding circuitry determines whether to issue the deferred response to the first bus interface based on whether each inbound slot of the plurality of inbound slots contains information, the decoding circuitry issuing the deferred response to the first bus interface if an inbound slot does not contain information.
Claim 16
Dependent Claim 19 words
The bus bridge as defined in claim 11 wherein the tag portion identifies whether a request has been deferred.
Claim 17
Independent Claim 153 words
A method for transferring a command between a first bus and a second bus using a bus bridge, the bus bridge including an inbound request queue and an outbound request queue, the method comprising the steps of: (a) transferring a first outbound request from a source agent on the first bus to the outbound request queue; (b) determining whether the first outbound request is to be deferred; (c) issuing a deferred response to the source agent and reserving a slot in the inbound request queue when the first outbound request is deferred; (d) transferring the first outbound request from the outbound request queue to a target agent on the second bus; and (e) returning response information from the target agent to the source agent if the first outbound request is not deferred, and placing the response information from the target agent into the inbound request queue if the first outbound request is deferred.
Claim 18
Independent Claim 153 words
A method for transferring a command between a first bus and a second bus using a bus bridge, the bus bridge including an inbound request queue and an outbound request queue, the method comprising the steps of: (a) transferring a first outbound request from a source agent on the first bus to the outbound request queue; (b) determining whether the first outbound request is to be deferred; (c) issuing a deferred response to the source agent and reserving a slot in the inbound request queue when the first outbound request is deferred; (d) transferring the first outbound request from the outbound request queue to a target agent on the second bus; and (e) returning response information from the target agent to the source agent if the first outbound request is not deferred, and placing the response information from the target agent into the inbound request queue if the first outbound request is deferred.
Claim 19
Dependent Claim 31 words
The method of claim 15 wherein the step (d) comprises removing the first outbound request from the outbound request queue and transferring the first outbound request to a second bus interface.
Claim 20
Dependent Claim 84 words
The method of claim 15 wherein the step (c) comprises: determining a number of slots in the inbound request queue; determining a number of slots in the inbound request queue which are not currently in use; determining a number of slots in the inbound request queue which are currently labeled as deferred reply slots; and issuing the deferred response if an inbound slot exists which is not in use and fewer than a predetermined number of inbound slots are labeled as deferred reply slots.
Claim 21
Dependent Claim 25 words
The method of claim 15 wherein the step (d) comprises translating the first outbound request from a first command protocol to a second command protocol.
Claim 22
Dependent Claim 55 words
The method of claim 15 further comprising transferring a second outbound request from the outbound request queue to a second target agent on the second bus and transferring response information for the second outbound request to the source agent before the response information for the first outbound request is transferred to the inbound request queue.
Claim 23
Dependent Claim 38 words
The method of claim 15 wherein the step (e) comprises placing response data in a data buffer if the target agent returns response data, the inbound request queue containing an indicator denoting a location of the data buffer.
Claim 24
Dependent Claim 40 words
The method of claim 15 wherein the step (c) comprises determining whether a deferred reply slot in the inbound request queue is available and issuing the deferred response if the deferred reply slot in the inbound request queue is available.
Claim 25
Dependent Claim 187 words
A computer system comprising: a bus bridge for transferring data between a first bus and a second bus; the first bus for transferring data between a first agent coupled to the first bus and the bus bridge; the second bus for transferring data between a second agent coupled to the second bus and the bus bridge; and the bus bridge including, a first bus interface coupled to the first bus for receiving data from and placing data onto the first bus, a second bus interface coupled to the second bus for receiving data from and placing data onto the second bus, an inbound request queue and an outbound request queue coupled to the first bus interface and the second bus interface, decoding circuitry coupled to the inbound request queue and the outbound request queue for placing requests in the outbound request queue and for issuing a deferred response to the first bus interface to be placed on the first bus based on available space in the inbound request queue, and an inbound queue allocation unit for determining whether an outbound request may be given the deferred response.
Claim 26
Dependent Claim 187 words
A computer system comprising: a bus bridge for transferring data between a first bus and a second bus; the first bus for transferring data between a first agent coupled to the first bus and the bus bridge; the second bus for transferring data between a second agent coupled to the second bus and the bus bridge; and the bus bridge including, a first bus interface coupled to the first bus for receiving data from and placing data onto the first bus, a second bus interface coupled to the second bus for receiving data from and placing data onto the second bus, an inbound request queue and an outbound request queue coupled to the first bus interface and the second bus interface, decoding circuitry coupled to the inbound request queue and the outbound request queue for placing requests in the outbound request queue and for issuing a deferred response to the first bus interface to be placed on the first bus based on available space in the inbound request queue, and an inbound queue allocation unit for determining whether an outbound request may be given the deferred response.
Claim 27
Dependent Claim 74 words
The computer system as defined in claim 22 wherein the inbound request queue has a plurality of inbound slots and the inbound queue allocation unit determines whether the outbound request may be given the deferred reply based on a total number of inbound slots, a number of inbound slots in the inbound request queue currently holding information, and a number of inbound slots in the inbound request queue currently labeled as deferred reply slots.
Claim 28
Dependent Claim 101 words
The computer system as defined in claim 22 wherein the bus bridge further comprises bus control circuitry coupled to the first bus interface and the second bus interface, the bus control circuitry being for determining whether an outbound request has been deferred, transferring the outbound request to the second bus interface, receiving response information from the second bus interface generated in response to the outbound request, and returning the response information to the first bus interface if the outbound request has not been deferred, and transferring the response information to the inbound request queue if the outbound request has been deferred.
Claim 29
Dependent Claim 35 words
The computer system as defined in claim 22 wherein the bus bridge further comprises bus target circuitry for receiving inbound requests from the second bus interface and transferring the requests to the inbound request queue.
Claim 30
Dependent Claim 42 words
The computer system as defined in claim 22 wherein the outbound request queue has a plurality of outbound slots, and wherein each slot of the plurality of outbound slots holds information corresponding to requests issued by agents coupled to the first bus.
Claim 31
Dependent Claim 32 words
The computer system as defined in claim 26, wherein each slot of the plurality of outbound slots comprises a tag portion, a command portion, an address portion, and a data pointer portion.
Claim 32
Dependent Claim 46 words
The computer system as defined in claim 22 wherein the inbound request queue has a plurality of inbound slots, and wherein each slot of the plurality of inbound slots stores information corresponding to requests issued by agents coupled to the first bus or the second bus.
Claim 33
Dependent Claim 29 words
The computer system as defined in claim 28 wherein each slot of the plurality of inbound slots comprises a command portion, an address portion, and a data pointer portion.
Claim 34
Dependent Claim 258 words
A computer system comprising: a bus bridge for transferring data between a first bus and a second bus; the first bus for transferring data between a first agent coupled to the first bus and the bus bridge; the second bus for transferring data between a second agent coupled to the second bus and the bus bridge; and the bus bridge including, a first bus interface coupled to the first bus for receiving data from and placing data onto the first bus, a second bus interface coupled to the second bus for receiving data from and placing data onto the second bus, an inbound request queue and an outbound request queue coupled to the first bus interface and the second bus interface, wherein the inbound request queue has a plurality of inbound slots, and wherein each slot to the plurality of inbound slots stores information corresponding to requests issued by agents coupled to the first bus or the second bus, and decoding circuitry coupled to the inbound request queue and the outbound request queue for placing requests in the outbound request queue and for issuing a deferred response to the first bus interface to be placed on the first bus based on available space in the inbound request queue, wherein the decoding circuitry determines whether to issue the deferred response to the first bus interface based on whether each inbound slot of the plurality of inbound slots contains information, the decoding circuitry issuing the deferred response to the first bus interface if an inbound slot does not contain information.
Claim 35
Dependent Claim 258 words
A computer system comprising: a bus bridge for transferring data between a first bus and a second bus; the first bus for transferring data between a first agent coupled to the first bus and the bus bridge; the second bus for transferring data between a second agent coupled to the second bus and the bus bridge; and the bus bridge including, a first bus interface coupled to the first bus for receiving data from and placing data onto the first bus, a second bus interface coupled to the second bus for receiving data from and placing data onto the second bus, an inbound request queue and an outbound request queue coupled to the first bus interface and the second bus interface, wherein the inbound request queue has a plurality of inbound slots, and wherein each slot to the plurality of inbound slots stores information corresponding to requests issued by agents coupled to the first bus or the second bus, and decoding circuitry coupled to the inbound request queue and the outbound request queue for placing requests in the outbound request queue and for issuing a deferred response to the first bus interface to be placed on the first bus based on available space in the inbound request queue, wherein the decoding circuitry determines whether to issue the deferred response to the first bus interface based on whether each inbound slot of the plurality of inbound slots contains information, the decoding circuitry issuing the deferred response to the first bus interface if an inbound slot does not contain information.
Claim 36
Independent Claim 149 words
An apparatus for transferring commands between a first bus and a second bus, the apparatus including an inbound request queue and an outbound request queue, the apparatus comprising: means for transferring a first outbound request from a source agent on the first bus to the outbound request queue; means for determining whether the first outbound request is to be deferred; means for issuing a deferred response to the source agent and reserving a slot in the inbound request queue when the first outbound request is deferred; means for transferring the first outbound request from the outbound request queue to a target agent on the second bus; and means for returning response information from the target agent to the source agent if the first outbound request is not deferred, and placing the response information from the target agent into the inbound request queue if the first outbound request is deferred.
Claim 37
Independent Claim 149 words
An apparatus for transferring commands between a first bus and a second bus, the apparatus including an inbound request queue and an outbound request queue, the apparatus comprising: means for transferring a first outbound request from a source agent on the first bus to the outbound request queue; means for determining whether the first outbound request is to be deferred; means for issuing a deferred response to the source agent and reserving a slot in the inbound request queue when the first outbound request is deferred; means for transferring the first outbound request from the outbound request queue to a target agent on the second bus; and means for returning response information from the target agent to the source agent if the first outbound request is not deferred, and placing the response information from the target agent into the inbound request queue if the first outbound request is deferred.
Claim 38
Dependent Claim 36 words
The apparatus as defined in claim 31 wherein the means for transferring comprises means for removing the first outbound request from the outbound request queue and transferring the first outbound request to a second bus interface.
Claim 39
Dependent Claim 98 words
The apparatus as defined in claim 31 wherein the means for issuing a deferred response comprises: means for determining a number of slots in the inbound request queue; means for determining a number of slots in the inbound request queue which are not currently in use; means for determining a number of slots in the inbound request queue which are currently labeled as deferred reply slots; and means for issuing the deferred response if an inbound slot exists which is not in use and fewer than a predetermined number of inbound slots are labeled as deferred reply slots.
Claim 40
Dependent Claim 47 words
The apparatus as defined in claim 31 wherein the means for transferring the first outbound request from the outbound request queue to a target agent on the second bus comprises means for translating the first outbound request from a first command protocol to a second command protocol.
Claim 41
Dependent Claim 59 words
The apparatus as defined in claim 31 further comprising means for transferring a second outbound request from the outbound request queue to a second target agent on the second bus, and transferring response information for the second outbound request to the source agent before the response information for the first outbound request is transferred to the inbound request queue.
Claim 42
Dependent Claim 44 words
The apparatus as defined in claim 31 wherein the means for returning further comprises means for placing response data in a data buffer if the target agent returns response data, the inbound request queue containing an indicator denoting a location of the data buffer.
Claim 43
Dependent Claim 48 words
The apparatus as defined in claim 31 wherein the means for issuing a deferred response comprises means for determining whether a deferred reply slot in the inbound request queue is available and issuing the deferred response if the deferred reply slot in the inbound request queue is available.

References Cited (Backward Citations)

US5124981A Cited
US5327570A Cited
US5369748A Cited
US5333276A Cited

USPTO Annuity & Maintenance Windows

Annuity Stage Window Opens Payment Deadline Surcharge Period Until Estimated Fee Status
3.5 Years (Year 4) 1999-07-09 2000-01-08 2000-07-09 $2000.00 Window Closed / Lapsed
7.5 Years (Year 8) 2003-07-09 2004-01-08 2004-07-09 $3760.00 Window Closed / Lapsed
11.5 Years (Year 12) 2007-07-09 2008-01-08 2008-07-09 $7700.00 Window Closed / Lapsed

Assigned Categories & Tags

No categories assigned to this patent yet.

Assign Category Tag