Data processing system including buffering mechanism for inbound and outbound reads and posted writes
First Claim
1. A data processing system, comprising:
- one or more processors;
one or more peripheral devices;
a plurality of buses connecting said one or more processors and said one or more peripheral devices through one or more bridges; and
one or more bridges for controlling transactions between a first bus and a second bus of said plurality of buses, each said bridge comprising;
a first data path for handling transactions from said first bus to said second bus;
a second data path for handling transactions from said second bus to said first bus;
a controller for controlling gating and sequence of transactions between said first bus and said second bus through said first data path and said second data path;
wherein said controller further comprises a state machine for controlling transactions through said first data path and said second data path;
wherein said state machine controls gating of transactions in said first and second data paths in accordance with a predetermined logic structure; and
wherein said predetermined logic structure further comprises means for controlling read transactions and write transactions to eliminate flushing write buffers prior to read transactions being gated through said controller.
1 Assignment
0 Petitions
Accused Products
Abstract
A data processing system includes a host processor, a number of peripheral devices, and one or more bridges which may connect between the host, peripheral devices and other hosts or peripheral devices such as in a network. Each bus to bus bridge connects between a primary bus and a secondary bus wherein for the purpose of clarity, the primary bus will be considered as the source for outbound transactions and the destination for inbound transactions and the secondary bus would be considered the destination for outbound transactions and the source for inbound transactions. Each bus to bus bridge includes an outbound data path, an inbound data path, and a control mechanism. The outbound data path includes a queued buffer for storing transactions in order of receipt from the primary bus where the requests in the queued buffer may be mixed as between read requests and write transactions, the outbound path also includes a number of parallel buffers for storing read reply data and address information. The inbound path is a minor image of the outbound path with read requests and write requests being stored in a sequential buffer and read replies being stored in a number of parallel buffers. Both the inbound path and the outbound path in the bus to bus bridge are controlled by a state machine which takes into consideration activity in both directions and permits or inhibits bypass transactions.
-
Citations
12 Claims
-
1. A data processing system, comprising:
-
one or more processors; one or more peripheral devices; a plurality of buses connecting said one or more processors and said one or more peripheral devices through one or more bridges; and one or more bridges for controlling transactions between a first bus and a second bus of said plurality of buses, each said bridge comprising; a first data path for handling transactions from said first bus to said second bus; a second data path for handling transactions from said second bus to said first bus; a controller for controlling gating and sequence of transactions between said first bus and said second bus through said first data path and said second data path; wherein said controller further comprises a state machine for controlling transactions through said first data path and said second data path; wherein said state machine controls gating of transactions in said first and second data paths in accordance with a predetermined logic structure; and wherein said predetermined logic structure further comprises means for controlling read transactions and write transactions to eliminate flushing write buffers prior to read transactions being gated through said controller. - View Dependent Claims (2, 3, 4, 5, 6)
-
-
7. A method for controlling a plurality of transactions from a first bus to a second bus through a bridge, in a data processing system comprising one or more processors, one or more peripheral devices, a plurality of busses connecting the one or more processors and the one or more peripheral devices through one or more bridges, and one or more bridges for controlling transactions between the first bus and the second bus of the plurality of busses, said method comprising the steps of:
-
providing a first data path for handling transactions from the first bus to the second bus; providing a second data path for handling transactions from the second bus to the first bus; providing a controller for controlling gating and sequence of transactions between the first bus and the second bus through the first data path and the second data path; and controlling, by the controller, read transactions and write transactions through the first and second data paths in accordance with a predetermined logic structure to eliminate flushing write buffers prior to read transactions being gated through the data paths. - View Dependent Claims (8, 9)
-
-
10. A data processing system, comprising:
-
one or more processors; one or more peripheral devices; a plurality of buses connecting said one or more processors and said one or more peripheral devices through one or more bridges; one or more bridges for controlling transactions between a first bus and a second bus of said plurality of buses, each said bridge comprising; a plurality of data paths for handling transactions between said first and second buses; buffer means for storing write transactions and for storing read transactions, with multiple read and write transactions being allowed to reside in said bridge at the same time; and a controller for controlling gating and sequence of said read and write transactions between said first and said second bus through said data paths without first flushing said write transactions from said buffer means.
-
-
11. A bus-to-bus bridge, comprising:
-
a plurality of data paths for handling transactions between a first bus and a second bus; buffer means for storing write transactions and for storing read transactions, with multiple read and write transactions being allowed to reside in said bridge at the same time; and a controller for controlling gating and sequence of said read and write transactions between said first bus and said second bus through said data paths without first flushing said write transactions from said buffer means.
-
-
12. A method for controlling a plurality of transactions between a first bus and a second bus through a bridge, said method comprising the steps of:
-
providing a plurality of data paths in the bridge for handling transactions between said first and second buses; storing write transactions in a plurality of buffers in the bridge; storing read transactions in said plurality of buffers, with multiple read and write transactions being allowed to reside in said bridge at the same time; and controlling gating and sequence of said read and write transactions between said first and second buses through said data paths without first flushing said write transactions from said buffers.
-
Specification