Transaction re-ordering
First Claim
1. An apparatus comprising:
- an I/O element to;
receive a plurality of transactions over a PCIe-compliant interconnect, wherein the plurality of transactions are to be received in a first order and include a subset of transactions each referencing a particular memory location;
identify a relaxed ordering value included in at least one of the plurality of transactions; and
reorder the plurality of transactions into a second, different order based at least in part on the relaxed ordering value, wherein a particular one of the plurality of transactions is to precede another of the plurality of transactions in the first order and is to follow the other transaction in the second order and priority of transactions within the subset of transactions is to be maintained in the second order.
0 Assignments
0 Petitions
Accused Products
Abstract
A method and apparatus for enhancing/extending a serial point-to-point interconnect architecture, such as Peripheral Component Interconnect Express (PCIe) is herein described. Temporal and locality caching hints and prefetching hints are provided to improve system wide caching and prefetching. Message codes for atomic operations to arbitrate ownership between system devices/resources are included to allow efficient access/ownership of shared data. Loose transaction ordering provided for while maintaining corresponding transaction priority to memory locations to ensure data integrity and efficient memory access. Active power sub-states and setting thereof is included to allow for more efficient power management. And, caching of device local memory in a host address space, as well as caching of system memory in a device local memory address space is provided for to improve bandwidth and latency for memory accesses.
83 Citations
27 Claims
-
1. An apparatus comprising:
an I/O element to; receive a plurality of transactions over a PCIe-compliant interconnect, wherein the plurality of transactions are to be received in a first order and include a subset of transactions each referencing a particular memory location; identify a relaxed ordering value included in at least one of the plurality of transactions; and reorder the plurality of transactions into a second, different order based at least in part on the relaxed ordering value, wherein a particular one of the plurality of transactions is to precede another of the plurality of transactions in the first order and is to follow the other transaction in the second order and priority of transactions within the subset of transactions is to be maintained in the second order. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11)
-
12. An apparatus comprising:
an I/O element to; generate a packet to be included in a plurality of transactions to include a relaxed ordering value to indicate that relaxed ordering applies to at least a particular one of the plurality of transactions, wherein the plurality of transactions are to include a subset of transactions each referencing a particular memory location; send the packet over a PCIe-compliant interconnect, wherein the plurality of transactions are to be sent in a first order and the relaxed ordering value allows the plurality of transactions to be completed according to a second, different order, wherein priority of transactions is the subset of transactions, as defined in the first order, is to be maintained in the second order. - View Dependent Claims (13, 14, 15, 16, 17, 18)
-
19. An apparatus comprising:
a root controller configured to; receive a plurality of transactions over a point-to-point PCIe-compliant interconnect, wherein the root controller includes an I/O module including a protocol stack including a transaction layer, a link layer, and a physical layer, and the plurality of transactions include transaction layer packets each including a transaction layer header, and wherein the plurality of transactions are to be received in a first order, a particular one of the plurality of transactions follows another one of the plurality of transactions in the first order, and the plurality of transactions includes a subset of transactions each referencing a particular memory location; identify that relaxed ordering applies to the particular transaction based at least in part on a value of an ordering attribute field of the particular transaction, wherein the ordering attribute field comprises a single bit; and reorder at least the particular transaction in the plurality of transactions, wherein the plurality of transactions are in a different second order following the reordering, the particular transaction precedes the other transaction in the second order, the reordering allows the particular transaction to be completed prior to the other transaction, and priority of transactions is the subset of transactions, as defined in the first order, is to be maintained in the second order. - View Dependent Claims (20)
-
21. A method comprising:
-
receiving a plurality of transactions over a PCIe-compliant interconnect, wherein the plurality of transactions are received in a first order; identifying a relaxed ordering value included in at least one of the plurality of transactions; identifying that a subset of the plurality of transactions each reference a particular memory location; and reordering the plurality of transactions into a second, different order based at least in part on the relaxed ordering value, wherein the plurality of transactions are in a second order following the reordering and priority of the subset of transactions in the first order is maintained in the second order. - View Dependent Claims (22, 23, 24)
-
-
25. A system comprising:
-
a first device; a second device, including an I/O module executed by at least one processor to; receive a plurality of transactions over a PCIe-compliant interconnect, wherein the plurality of transactions are received in a first order and at least one of the transactions is requested by the first device; identify a relaxed ordering value included in at least one of the plurality of transactions; identify that a subset of the plurality of transactions each reference a particular memory location; reorder the plurality of transactions into a second, different order based at least in part on the relaxed ordering value, wherein the plurality of transactions are in a second order following the reordering and priority of the subset of transactions in the first order is maintained in the second order; and cause the plurality of transactions to be completed according to the second order. - View Dependent Claims (26, 27)
-
Specification