Replicating Data in a Data Storage System
US-2018239535-A1 · Aug 23, 2018 · US
US10684965B2 · US · B2
| Field | Value |
|---|---|
| Publication number | US-10684965-B2 |
| Application number | US-201715807151-A |
| Country | US |
| Kind code | B2 |
| Filing date | Nov 8, 2017 |
| Priority date | Nov 8, 2017 |
| Publication date | Jun 16, 2020 |
| Grant date | Jun 16, 2020 |
A practical reading order for non-experts. Skip the full description unless you need deep technical detail.
What the patent document calls the invention.
A short plain-language summary of the technical disclosure.
Who owns or filed the patent and who is credited as inventor.
Filing, priority, publication, and grant dates set the timeline.
The legal scope of protection — read this for what is actually claimed.
Technology tags used to group this patent with similar filings.
Prior art links and similar publications in this corpus.
Official abstract text for this publication.
Systems, apparatuses, and methods for routing traffic between clients and system memory are disclosed. A computing system includes system memory and one or more clients, each capable of generating memory access requests. The computing system also includes a communication fabric for transferring traffic between the clients and the system memory. The fabric includes master units for interfacing with clients and grouping write requests with a same target together. The fabric also includes slave units for interfacing with memory controllers and for sending a single write response when each write request in a group has been serviced. When the master unit receives the single write response for the group, it sends a respective acknowledgment response for each of the multiple write requests in the group to clients that generated the multiple write requests.
Opening claim text (preview).
What is claimed is: 1. A computing system, comprising: one or more clients configured to generate memory write requests; a slave unit; and a memory controller configured to interface with a memory; wherein the slave unit is configured to: receive a plurality of memory write requests generated by the one or more clients; determine the received memory write requests have both a same target and a same group identifier, wherein each of the memory write requests except a youngest memory write request of the received plurality of memory write requests generated by the one or more clients includes an indication within the respective write request that a corresponding write response is not to be sent from the slave unit; send the memory write requests to the memory controller to be serviced; and in response to determining that each memory write request of the memory write requests has been serviced, generate a write response for only the youngest memory write request of the received plurality of memory write requests generated by the one or more clients. 2. The computing system as recited in claim 1 , wherein the same group identifier identifies one or more clients and distinguishes from other groups with a separate group identifier identifying one or more clients. 3. The computing system as recited in claim 1 , wherein each write request of the memory write requests comprises a tag identifying a youngest write request of the memory write requests, and wherein the youngest write request does not include said indication. 4. The computing system as recited in claim 1 , wherein each write request of the memory write requests comprises a count of a number of write requests of the memory write requests. 5. The computing system as recited in claim 1 , wherein the system further comprises a master unit configured to: receive the plurality of memory write requests generated by the one or more clients; store a first group identifier in a received first memory write request of the plurality of memory write requests identifying a first group, in response to determining the first memory write request is one of multiple received memory write requests of the plurality of memory write requests having a same target; store in each memory write request in the first group, except one, an indication that a corresponding write response is not to be sent from the slave unit; and send each memory write request in the first group to the slave unit, in response to determining the memory controller controls access to the target; and receive write responses from the slave unit. 6. The computing system as recited in claim 5 , wherein the master unit is configured to send a separate write response for each of the plurality of memory write requests of the first group to clients of the one or more clients that generated the plurality of memory write requests of the first group, in response to: receiving a write response; and determining the write response includes the first group identifier, wherein the first group identifier indicates each of the plurality of memory write requests of the first group has been serviced. 7. The computing system as recited in claim 5 , wherein in response to receiving a second memory write request that has the target of the first group and determining a window of time for forming the first group has expired, the master unit is configured to store a second group identifier in the received second memory write request that identifies a second group different than the first group. 8. The computing system as recited in claim 5 , wherein in response to receiving a second memory write request that has the target of the first group and determining a size of the first group has reached a threshold, the master unit is further configured to store a second group identifier in the received second memory write request that identifies a second group different than the first group. 9. A method, comprising: receiving, by a slave unit in a data fabric, a plurality of memory write requests generated by one or more clients; determining the received memory write requests have both a same target and a same group identifier, wherein each of the memory write requests except a youngest write request of the received plurality of memory write requests generated by the one or more clients includes an indication within the respective write request that a corresponding write response is not to be sent from the slave unit; sending the memory write requests to a memory controller to be serviced; and in response to determining that each memory write request of the memory write requests has been serviced, generating a write response for only the youngest memory write request of the received plurality of memory write requests generated by the one or more clients. 10. The method as recited in claim 9 , wherein the same group identifier identifies one or more clients and distinguishes from other groups with a separate group identifier identifying one or more clients. 11. The method as recited in claim 9 , further comprising storing, by a master unit in a data fabric, a tag in each write request of the memory write requests, wherein the tag identifies a youngest write request of the memory write requests, and wherein the youngest write request is the only write request that does not store said indication. 12. The method as recited in claim 9 , further comprising storing, by a master unit in a data fabric, a count in each write request of the memory write requests, wherein the count is a number of write requests of the memory write requests. 13. The method as recited in claim 9 , further comprising: storing, by a master unit in a data fabric, a first group identifier that indicates a received first memory write request of the plurality of memory write requests is associated with a first group, in response to determining the first memory write request is one of multiple received memory write requests of the plurality of memory write requests having a same target; storing in each memory write request in the first group, except one, an indication that a corresponding write response is not to be sent from the slave unit; and sending each memory write request in the first group to the slave unit, in response to determining that the memory controller controls access to the target; and receiving write responses from the slave unit. 14. The method as recited in claim 13 , further comprising sending a separate write response for each of the plurality of memory write requests of the first group to clients of the one or more clients that generated the plurality of memory write requests of the first group, in response to: receiving a write response; and determining the write response includes the first group identifier, wherein the first group identifier indicates each of the plurality of memory write requests of the first group has been serviced. 15. The method as recited in claim 13 , wherein in response to receiving a second memory write request that has the target of the first group and determining a window of time for forming the first group has expired, the method further comprises storing, by the master unit, a second group identifier in the received second memory write request that identifies a second group different than the first group. 16. The method as recited in claim 13 , wherein in response to receiving a second memory write request that has the target of the first group and determining a size of the first group has reached a threshold, the method further comprises storing, by the master unit, a second group ident
Energy efficient computing, e.g. low power processors, power management or thermal management · CPC title
with priority control · CPC title
Synchronisation and timing concerns (synchronisation on a memory bus G06F13/4234) · CPC title
with request queuing · CPC title
being a memory bus · CPC title
Related publications grouped by family.
Answers are generated from the same data shown on this page.