Legal claims defining the scope of protection, as filed with the USPTO.
1. A method of combining write transactions of a large write, the method comprising: storing, in a queue, a plurality of write transactions including a first write transaction, a second write transaction, and a third write transaction, wherein the first and second write transactions have a same fabric identifier, and the third write transaction has a different fabric identifier than the first and second write transactions; combining the first write transaction and the second write transaction; and transmitting the combined write transactions.
2. The method of claim 1, further comprising identifying the first write transaction and the second write transaction in the queue as candidates for combination, the identifying including: determining whether a fabric identifier of an incoming write transaction matches a fabric identifier of an existing write transaction in the queue; and determining whether an offset entry of the incoming write transaction and an offset entry of the existing write transaction are consecutive.
3. The method of claim 2, wherein the fabric identifier includes a transmit identifier and a tag, wherein the tag identifies a block of target memory locations.
4. The method of claim 3, wherein the offset entry of the incoming write transaction and the offset entry of the existing write transaction each identify a target memory location in the block.
5. The method of claim 1, wherein the combined write transactions are transmitted in a command, wherein the command includes at least: a first control flag indicating that the command includes a combined write transaction; and a second control flag indicating a number of write transactions that have been combined.
6. The method of claim 1 further comprising: receiving a command for a combined write transaction; determining a number of write transactions represented by the combined write transaction; and iteratively servicing the combined write transaction for each write transaction represented by the combined write transaction.
7. The method of claim 6, wherein iteratively servicing the combined write transaction for each write transaction represented by the combined write transaction includes: selecting the command for output from an output queue; incrementing an offset in a queue entry for the command; updating a pointer to a data buffer the queue entry for the command; and reselecting the command for output from the output queue.
8. The method of claim 6, wherein the command for the combined write transaction includes: a first control flag indicating that the command includes a combined write transaction; and a second control flag indicating the number of write transactions that have been combined.
9. The method of claim 1, further comprising identifying the first write transaction and the second write transaction in the queue as candidates for combination, the identifying including: determining whether a target memory block an incoming write transaction is identical to the target memory block of an existing write transaction in the queue.
10. The method of claim 1, further comprising identifying the first write transaction and the second write transaction in the queue as candidates for combination, the identifying including: determining whether a target memory address an incoming write transaction is sequential to the target memory address of an existing write transaction in the queue.
11. An apparatus for combining write transactions of a large write comprising: a processor including at least a first die and a second die; a link coupling the first die and the second die; and a link interface on the first die configured to transmit packets over the link, wherein the link interface is further configured to: store, in a queue, a plurality of write transactions including a first write transaction, a second write transaction, and a third write transaction, wherein the first and second write transactions have a same fabric identifier and the third write transaction has a different fabric identifier than the first and second write transactions; combine the first write transaction and the second write transaction; and transmit the combined write transactions.
12. The apparatus of claim 11, wherein the link interface is further configured to identify the first write transaction and the second write transaction in the queue as candidates for combination by: determining whether a fabric identifier of an incoming write transaction matches a fabric identifier of an existing write transaction in the queue; and determining whether an offset entry of the incoming write transaction and an offset entry of the existing write transaction are consecutive.
13. The apparatus of claim 12, wherein the fabric identifier includes a transmit identifier and a tag, wherein the tag identifies a block of target memory locations.
14. The apparatus of claim 13, wherein the offset entry of the incoming write transaction and the offset entry of the existing write transaction each identify a target memory location in the block.
15. The apparatus of claim 11, wherein combining the at least two write transactions further includes creating a data structure including pointers to a plurality of data buffers associated with each write transaction.
16. The apparatus of claim 11, wherein the combined write transactions are transmitted in a command, wherein the command includes at least: a first control flag indicating that the command includes a combined write transaction; and a second control flag indicating a number of write transactions that have been combined.
17. The apparatus of claim 10, wherein the link interface is further configured to: receive a command for a write transaction; determine, in response to identifying that the command indicates a combined write transaction, a number of write transactions represented by the combined write transaction; and iteratively service the combined write transaction for each write transaction represented by the combined write transaction.
18. The apparatus of claim 17, wherein iteratively servicing the combined write transaction for each write transaction represented by the combined write transaction includes: selecting the command for output from an output queue; incrementing an offset in a queue entry for the command; updating a pointer to a data buffer the queue entry for the command; and reselecting the command for output from the output queue.
19. A system for combining write transactions of a large write comprising: a processor including at least a first die and a second die; a link coupling the first die and the second die; and a link interface on the first die configured to transmit and receive packets over the link, wherein the link interface is further configured to: store, in a queue, a plurality of write transactions including a first write transaction, a second write transaction, and a third write transaction, wherein the first and second write transactions have a same fabric identifier and the third write transactions has a different fabric identifier than the first and second write transactions; combine the first write transaction and the second write transaction; and transmit the combined write transactions.
20. The system of claim 19, wherein the link interface is further configured to: receive a command for a write transaction; determine, in response to identifying that the command indicates a combined write transaction, a number of write transactions represented by the combined write transaction; and iteratively service the combined write transaction for each write transaction represented by the combined write transaction.
Unknown
January 28, 2025
Browse 5M+ US patents with plain-English claim translations and AI-generated analysis.