Arbitrating memory accesses via a shared memory fabric

US9535860B2 · US · B2

Patent metadata
FieldValue
Publication numberUS-9535860-B2
Application numberUS-201313743795-A
CountryUS
Kind codeB2
Filing dateJan 17, 2013
Priority dateJan 17, 2013
Publication dateJan 3, 2017
Grant dateJan 3, 2017

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.

In an embodiment, a shared memory fabric is configured to receive memory requests from multiple agents, where at least some of the requests have an associated deadline value to indicate a maximum latency prior to completion of the memory request. Responsive to the requests, the fabric is to arbitrate between the requests based at least in part on the deadline values. Other embodiments are described and claimed.

First claim

Opening claim text (preview).

What is claimed is: 1. An apparatus comprising: a fabric coupled between a plurality of intellectual property (IP) blocks of a semiconductor device and a memory controller, the fabric configured to provide global timing information to at least some of the plurality of IP blocks and receive a plurality of memory requests from the plurality of IP blocks, wherein the fabric is configured to receive a memory request of the plurality of memory requests from a first IP block of the plurality of IP blocks, the memory request having a plurality of fields including a deadline field to provide a deadline value based at least in part on the global timing information, the deadline value communicated by the first IP block to indicate a maximum latency before completion of the memory request, the maximum latency determined by the first IP block and wherein the fabric is configured to arbitrate between the plurality of memory requests based at least in part on the deadline value included in the deadline field of the memory request. 2. The apparatus of claim 1 , wherein the fabric comprises: an admit arbiter to receive the plurality of memory requests and to select one of the plurality of memory requests to provide to a memory scheduler arbiter; and the memory scheduler arbiter coupled to the admit arbiter to select a first memory request from a group of memory requests to provide to the memory controller. 3. The apparatus of claim 2 , wherein the admit arbiter includes a first arbiter to receive memory requests from a first subset of the plurality of IP blocks and a first portion of the plurality of memory requests from a second subset of the plurality of IP blocks, and a second arbiter to receive a second portion of the plurality of memory requests from the second subset of the plurality of IP blocks. 4. The apparatus of claim 3 , wherein the second subset of the plurality of IP blocks comprise latency sensitive devices, the fabric to couple to the second subset of the plurality of IP blocks via a first interface and a second interface. 5. The apparatus of claim 4 , wherein the second arbiter is further to receive a deadline value included in each of the second portion of the plurality of memory requests received from the second subset of the plurality of IP blocks. 6. The apparatus of claim 3 , wherein the admit arbiter is controllable to operate in a first mode in which memory requests from the second arbiter are selected over memory requests from the first arbiter, and a second mode in which M memory requests from the first arbiter are selected after N memory requests from the second arbiter are selected, wherein M and N are obtained from a configuration register. 7. The apparatus of claim 3 , wherein the admit arbiter further includes a third arbiter coupled to an output of the first arbiter and the second arbiter and to arbitrate between the outputs of the first and second arbiters. 8. The apparatus of claim 2 , wherein the memory scheduler arbiter is to reorder the group of memory requests out of order based at least in part on address information of the memory requests. 9. The apparatus of claim 8 , wherein the memory scheduler arbiter is to reorder the group of memory requests out of order based at least in part on page hit status information associated with a memory request stored in an entry of a scoreboard of the fabric. 10. The apparatus of claim 1 , further comprising an interface logic coupled to a second IP block, the interface logic including a deadline logic to generate the deadline value based on a latency requirement for a first memory request of the second IP block and a global timer value of the global timing information provided from the fabric to the second IP block. 11. The apparatus of claim 10 , further comprising a deadline checker to receive the deadline value from the second IP block and to route the first memory request to a first arbiter or to a second arbiter based on the deadline value and a value of a global timer. 12. The apparatus of claim 1 , further comprising resource allocation logic to reserve virtual entries in a plurality of shared resources of the fabric for each of the plurality of IP blocks. 13. The apparatus of claim 12 , wherein the resource allocation logic is further to limit each of the plurality of IP blocks to a predetermined number of the plurality of shared resources. 14. The apparatus of claim 12 , wherein the plurality of shared resources includes a flush pool having a plurality of entries each to store a write request, wherein the resource allocation logic is to limit the plurality of entries to a flush limit, and wherein the admit arbiter is to block incoming write requests when a size of the flush pool equals the flush limit. 15. A method comprising: receiving a memory request from a device of a plurality of devices coupled to a shared memory fabric of a system on chip (SoC), the memory request having a plurality of fields including a deadline field based at least in part on global timing information to provide a deadline value determined by the device, the deadline value to indicate a latency requirement for completion of the memory request, wherein the shared memory fabric provides the global timing information to at least some of the plurality of devices; forwarding the memory request to a first arbiter of the shared memory fabric responsive to determining in the shared memory fabric that the deadline value is less than a latency threshold; performing an arbitration in the first arbiter between a first plurality of memory requests including the memory request based at least in part on age values of the plurality of devices and forwarding a winner memory request of the first plurality of memory requests to a final arbiter of the shared memory fabric; and performing a final arbitration in the final arbiter to select a final memory request for storage in a scoreboard of the shared memory fabric. 16. The method of claim 15 , further comprising: forwarding the memory request to a second arbiter responsive to determining in the shared memory fabric that the deadline value is greater than the latency threshold; performing an arbitration in the second arbiter between a second plurality of memory requests including the memory request based at least in part on the age values of the plurality of devices; and forwarding a winner memory request of the second plurality of memory requests to the final arbiter. 17. The method of claim 15 , further comprising determining whether a weight value of a device associated with the final memory request equals a predetermined value, and if so updating the weight value to a configured value and updating the age values for others of the plurality of devices. 18. The method of claim 17 , further comprising when the weight value of the device associated with the final memory request does not equal the predetermined value, decrementing the weight value of the device associated with the final memory request. 19. The method of claim 15 , further comprising: selecting via a memory scheduler of the shared memory fabric a memory request from the scoreboard for delivery to a memory controller; and if a weight value of a device associated with the selected memory request equals a predetermined value, masking the device from further arbitration within the memory scheduler. 20. The method of claim 19 , further comprising determining whether a weight value of each of the plurality of devices equals the predetermined value and if so, updating the weight valu

Assignees

Inventors

Classifications

  • with latency improvement · CPC title

  • based on arbitration (arbitration in handling access to a common bus or bus system G06F13/36) · CPC title

  • Latency reduction in handling transfers · CPC title

  • Access to shared memory · CPC title

  • Latency reduction · 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 US9535860B2 cover?
In an embodiment, a shared memory fabric is configured to receive memory requests from multiple agents, where at least some of the requests have an associated deadline value to indicate a maximum latency prior to completion of the memory request. Responsive to the requests, the fabric is to arbitrate between the requests based at least in part on the deadline values. Other embodiments are descr…
Who is the assignee on this patent?
Intel Corp
What technology area does this patent fall under?
Primary CPC classification G06F13/1663. Mapped technology areas include Physics.
When was this patent published?
Publication date Tue Jan 03 2017 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 8 related publications on this page (citations in our corpus or others sharing the same primary CPC).