Method and system for gathering and buffering sequential data for a transaction comprising multiple data access requests
First Claim
1. A method of processing a transaction involving the transfer of data between an agent and a target device, comprising:
- processing the transaction as a plurality of data access requests;
gathering data for at least one data access request involved in the transaction at a plurality of sequential addresses and storing said data into a buffer until the addresses of said gathered data reach a boundary address; and
transferring said gathered data between the agent and target device to complete the transaction.
2 Assignments
0 Petitions
Accused Products
Abstract
Disclosed is a bridge system for processing read and write transactions over a bus in which in a preferred embodiment continuous read data obtained from a target device in a number of separate read operations over a secondary bus may be gathered by the bridge and assembled into a larger block of data before forwarding the data over the primary bus to the requesting agent. As a consequence, the transmission of optimal, address boundary-aligned bursts of read data over the primary bus may be increased and conversely, the transmission of fractionated, nonaligned read data over the primary bus may be reduced. Because each agent is assigned particular buffers, read data may be gathered concurrently in the assigned bridge buffers without assertion of a read request by one agent causing the flushing of the data being gathered for a different agent. In a similar manner, in delayed write operations, the write data may also be gathered from several write operations and assembled into an address boundary-aligned block of write data before the bridge circuit forwards the write data to the target device.
65 Citations
49 Claims
-
1. A method of processing a transaction involving the transfer of data between an agent and a target device, comprising:
-
processing the transaction as a plurality of data access requests;
gathering data for at least one data access request involved in the transaction at a plurality of sequential addresses and storing said data into a buffer until the addresses of said gathered data reach a boundary address; and
transferring said gathered data between the agent and target device to complete the transaction. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 41, 42, 43)
buffering a last address of data gathered in response to a previous data access request stored into a buffer;
receiving a subsequent data access request to a target address;
determining whether said target address is adjacent to said last address; and
if said target address is adjacent to said last address, then gathering data for the subsequent data access request at a plurality of sequential addresses and storing said data into said buffer until the addresses of said gathered data reaches said boundary address.
-
-
42. The method of claim 1, further comprising:
continuing to gather data subject to the read request if all of the data for the read request was not fetched before determining that the address of the gathered data reached the boundary data and transferring the buffered data.
-
43. The method of claim 1, wherein sequential data gathered from multiple read requests is stored in the buffer before the boundary address is reached and the data is transferred between the agent and the target device.
-
11. A method of processing transactions involving the transfer of data between a first agent and a second agent and a target device, comprising:
-
gathering data involved in a first transaction at a plurality of sequential addresses and storing said data into a first buffer until the addresses of said gathered data reach a boundary address, wherein the first buffer is assigned to store data exclusively for transactions involving the first agent;
gathering data involved in a second transaction at a plurality of sequential addresses and storing said data into a second buffer wherein said second buffer is assigned to store data exclusively for said second agent;
transferring at least a portion of said gathered data in said first buffer when said gathered data in said first buffer reaches a predetermined limit; and
transferring at least a portion of said gathered data in said second buffer when said gathered data in said second buffer reaches a predetermined limit. - View Dependent Claims (12)
-
-
13. A bridge system for processing transactions involving the transfer of data between an agent and a target device over a bus, comprising:
-
a buffer for storing data involved in transactions having a plurality of sequential addresses;
a logic circuit for processing the transaction as a plurality of data access requests;
gathering data for at least one data access request involved in the transaction at a plurality of sequential addresses and storing said data into a buffer until the addresses of said gathered data reach a boundary address; and
transferring said gathered data between the agent and target device to complete the transaction.- View Dependent Claims (14, 15, 16, 17, 18, 19, 20, 21, 22, 44, 45, 46)
buffering a last address of data gathered in response to a previous data access request stored into a buffer;
receiving a subsequent data access request to a target address;
determining whether said target address is adjacent to said last address; and
if said target address is adjacent to said last address, then gathering data for the subsequent data access request at a plurality of sequential addresses and storing said data into said buffer until the addresses of said gathered data reaches said boundary address.
-
-
45. The bridge system of claim 13, wherein the logic circuit further performs:
continuing to gather data subject to the read request if all of the data for the read request was not fetched before determining that the address of the gathered data reached the boundary address and transferring the buffered data.
-
46. The bridge system of claim 13, wherein sequential data gathered from multiple read requests is stored in the buffer before the address boundary is reached and the data is transferred between the agent and the target device.
-
23. A bridge system for processing transactions involving the transfer of data between a first agent and a second agent and a target device over a bus, comprising:
-
a first buffer for storing data involved in transactions having a plurality of sequential addresses, wherein the first buffer is assigned to store data exclusively for transactions involving the first agent;
a second buffer for storing data involved in transactions having a plurality of sequential addresses, wherein said second buffer is assigned to store data exclusively for the second agent;
a logic circuit for gathering data involved in a transaction at a plurality of sequential addresses and storing said data into the first buffer until the addresses of said gathered data reach a boundary address;
transferring said gathered data between the first agent and target device to complete the transaction;
wherein the logic circuit further gathers data involved in a second transaction at a plurality of sequential addresses and stores said data into the second buffer, and wherein the logic circuit transfers said gathered data by transferring at least a portion of said gathered data in said first buffer when said gathered data in said first buffer reaches a predetermined limit and transferring at least a portion of said gathered data in said second buffer when said gathered data in said second buffer reaches a predetermined limit.- View Dependent Claims (24)
-
-
25. An article of manufacture for use in programming a bridge system to process a transaction involving the transfer of data between an agent and a target device, the article of manufacture comprising computer useable media accessible to the bridge system, wherein the computer usable media includes at least one computer program that is capable of causing the bridge system to perform:
-
processing the transaction as a plurality of data access requests;
gathering data for at least one data access request involved in the transaction at a plurality of sequential addresses and storing said data into a buffer until the addresses of said gathered data reach a boundary address; and
transferring said gathered data between the agent and target device to complete the transaction. - View Dependent Claims (26, 27, 28, 29, 30, 31, 32, 33, 34, 47, 48, 49)
buffering a last address of data gathered in response to a previous data access request stored into a buffer;
receiving a subsequent data access request to a target address;
determining whether said target address is adjacent to said last address; and
if said target address is adjacent to said last address, then gathering data for the subsequent data access request at a plurality of sequential addresses and storing said data into said buffer until the addresses of said gathered data reaches said boundary address.
-
-
48. The article of manufacture method of claim 25, further comprising:
continuing to gather data subject to the read request if all of the data for the read request was not fetched before determining that the address of the gathered data reached the boundary address and transferring the buffered data.
-
49. The article of manufacture method of claim 25, wherein sequential data gathered from multiple read requests is stored in the buffer before the address boundary is reached and the data is transferred between the agent and the target device.
-
35. An article of manufacture for use in programming a bridge system to process transactions involving the transfer of data between a first agent and a second agent and a target device, the article of manufacture comprising computer useable media accessible to the bridge system, wherein the computer usable media includes at least one computer program that is capable of causing the bridge system to perform:
-
gathering data involved in a first transaction at a plurality of sequential addresses and storing said data into a first buffer until the addresses of said gathered data reach a boundary address, wherein the first buffer is assigned to store data exclusively for transactions involving the first agent;
gathering data involved in a second transaction at a plurality of sequential addresses and storing said data into a second buffer wherein said second buffer is assigned to store data exclusively for a second agent;
transferring at least a portion of said gathered data in said first buffer when said gathered data in said first buffer reaches a predetermined limit; and
transferring at least a portion of said gathered data in said second buffer when said gathered data in said second buffer reaches a predetermined limit. - View Dependent Claims (36)
-
-
37. A data processing system for processing a transaction involving the transfer of data;
- comprising;
an adaptor for receiving the transaction;
a processor including processor memory;
a bridge system for processing transactions involving the transfer of data between the adaptor and the processor memory over a bus, comprising;
(i) a buffer for storing data involved in transactions having a plurality of sequential addresses; and
(ii) a logic circuit for processing the transaction as a plurality of data access requests;
gathering data for at least one data access request involved in the transaction at a plurality of sequential addresses and storing said data into a buffer until the addresses of said gathered data reach a boundary address; and
transferring said gathered data between the processor memory and the adaptor to complete the transaction.- View Dependent Claims (38, 39)
- comprising;
-
40. A data processing system for processing transactions involving the transfer of data, comprising:
-
a first adaptor;
a second adaptor;
a processor including processor memory;
a bridge system for processing transactions involving the transfer of data between the first and second adaptors and the processor memory over a bus, comprising;
(i) a first buffer for storing data involved in transactions having a plurality of sequential addresses, wherein the first buffer is assigned to store data exclusively for transactions involving the first adaptor;
(ii) a second buffer for storing data involved in transactions having a plurality of sequential addresses, wherein said second buffer is assigned to store data exclusively for the second adaptor;
(iii) a logic circuit for gathering data involved in a first transaction at a plurality of sequential addresses and storing said data into the first buffer until the addresses of said gathered data reach a boundary address; and
transferring said gathered data between the processor memory and the first adaptor to complete the first transaction wherein the logic circuit further gathers data involved in a second transaction at a plurality of sequential addresses and stores said data into the second buffer, and wherein the logic circuit transfers said gathered data by transferring at least a portion of said gathered data in said first buffer when said gathered data in said first buffer reaches a predetermined limit and transferring at least a portion of said gathered data in said second buffer when said gathered data in said second buffer reaches a predetermined limit.
-
Specification