Method to reduce write responses to improve bandwidth and efficiency

US10684965B2 · US · B2

Patent metadata
FieldValue
Publication numberUS-10684965-B2
Application numberUS-201715807151-A
CountryUS
Kind codeB2
Filing dateNov 8, 2017
Priority dateNov 8, 2017
Publication dateJun 16, 2020
Grant dateJun 16, 2020

How to read this patent

A practical reading order for non-experts. Skip the full description unless you need deep technical detail.

  1. Title

    What the patent document calls the invention.

  2. Abstract

    A short plain-language summary of the technical disclosure.

  3. Assignees and inventors

    Who owns or filed the patent and who is credited as inventor.

  4. Key dates

    Filing, priority, publication, and grant dates set the timeline.

  5. First independent claim

    The legal scope of protection — read this for what is actually claimed.

  6. CPC / IPC classifications

    Technology tags used to group this patent with similar filings.

  7. Citations and related patents

    Prior art links and similar publications in this corpus.

Abstract

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.

First claim

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

Assignees

Inventors

Classifications

  • 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

Patent family

Related publications grouped by family.

External sources

Frequently asked questions

Answers are generated from the same data shown on this page.

What does patent US10684965B2 cover?
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 w…
Who is the assignee on this patent?
Advanced Micro Devices Inc
What technology area does this patent fall under?
Primary CPC classification G06F13/1642. Mapped technology areas include Physics.
When was this patent published?
Publication date Tue Jun 16 2020 00:00:00 GMT+0000 (Coordinated Universal Time) (B2). Legal status and post-grant events are not shown on this page.
What related patents are in patentsdb?
We list 7 related publications on this page (citations in our corpus or others sharing the same primary CPC).