US2022269607A1PendingUtilityA1
Multi-processor, multi-domain, multi-protocol, cache coherent, speculation aware shared memory and interconnect
Est. expiryOct 15, 2038(~12.2 yrs left)· nominal 20-yr term from priority
G06F 12/084G06F 3/0604G06F 11/1004G06F 12/10G06F 2212/452G06F 2212/1008G06F 3/0658G06F 3/0659G06F 2212/1048G06F 12/0846G06F 12/0811H03M 13/276G06F 12/0862G06F 3/0679G06F 12/0607G06F 13/124G06F 2212/1024G06F 9/5016G06F 12/0831G06F 9/30101G06F 13/1663H03M 13/1575G06F 9/30123G06F 3/064G06F 12/0833G06F 12/0855G06F 9/4881G06F 12/1009G06F 13/4027G06F 3/0632G06F 3/0673G06F 2212/304G06F 12/0828G06F 2212/6024G06F 13/1668G06F 13/1642G06F 12/0815H03M 13/098G06F 2212/657G06F 12/0851G06F 12/0875G06F 2212/1016G06F 9/3897G06F 12/0857H03M 13/015G06F 12/0891H03M 13/2785G06F 3/0607
82
PatentIndex Score
0
Cited by
0
References
0
Claims
Abstract
A device includes an interconnect and a plurality of devices connected to the interconnect. The plurality of devices includes a first interface connected to the interconnect and a second interface connected to the interconnect. The plurality of devices further includes a first memory bank connected to the interconnect and a second memory bank connected to the interconnect. The plurality of devices further includes an external memory interface connected to the interconnect and a controller configured to establish virtual channels among the plurality of devices connected to the interconnect.
Claims
exact text as granted — not AI-modifiedWhat is claimed is:
1 . A method comprising:
receiving, at a controller, a memory request associated with an address of a data element; determining, by the controller, a physical memory address associated with the address; determining, by the controller, a tag associated with the physical memory address; applying, by the controller, the tag to a cache tag bank to determine a cache tag result and a memory bank result; and determining, by the controller, based on the cache tag result and the memory bank result whether to access a cached value of the data element or access the data element at the physical memory address of the data element.
2 . The method of claim 1 , wherein:
the memory request is received by an arbitration and data path manager of the controller.
3 . The method of claim 1 , wherein:
the address is a virtual address; and the controller is configured to determine the physical memory address from the virtual address.
4 . The method of claim 1 , wherein:
the controller determines the tag by masking out one or more least significant bits of the physical memory address.
5 . The method of claim 1 , wherein:
an entry in the cache tag bank corresponds to an entry in a filter bank and an entry in a memory bank.
6 . The method of claim 1 , wherein:
the cache tag result includes a stored first value for the tag; and the memory bank result includes a stored second value for the tag.
7 . The method of claim 6 , wherein:
the controller determines whether to issue snoop requests based on the cache tag result.
8 . The method of claim 6 , wherein:
the cache tag result includes a first status indicator associated with the stored first value for the tag; and the memory bank result includes a second status indicator associated with the stored second value for the tag.
9 . A controller comprising:
a cache tag bank; a memory bank; and a snoop filter coupled to the cache tag bank and the memory bank by a cache line,
wherein the cache line includes:
a cache tag address associated with a data element;
a state of the cache tag address; and
a value of the memory bank associated with the cache tag address.
10 . The controller of claim 9 , wherein:
an entry in the snoop filter corresponds to an entry in the cache tag bank and an entry in the memory bank.
11 . The controller of claim 9 , wherein:
the state of the cache tag address indicates a cache of a master peripheral stores a value associated with cache tag address.
12 . The controller of claim 9 , wherein:
the state of the cache tag address includes one of shared, unique, invalid, modified, owned, and exclusive.
13 . A device comprising:
memory; a controller coupled to the memory, wherein the controller is configured to:
receive a memory request associated with an address of a data element;
determine a physical memory address associated with the address;
determine a tag associated with the physical memory address;
apply the tag to a cache tag bank to determine a cache tag result and a memory bank result; and
determine, based on the cache tag result and the memory bank result, whether to access a cached value of the data element or access the data element at the physical memory address in the memory of the data element.
14 . The device of claim 13 , wherein:
the memory request is received by an arbitration and data path manager of the controller.
15 . The device of claim 13 , wherein:
the address is a virtual address; and the controller is configured to determine the physical memory address from the virtual address.
16 . The device of claim 13 , wherein:
the controller determines the tag by masking out one or more least significant bits of the physical memory address.
17 . The device of claim 13 , wherein:
an entry in the cache tag bank corresponds to an entry in a filter bank and an entry in a memory bank.
18 . The device of claim 13 , wherein:
the cache tag result includes a stored first value for the tag; and the memory bank result includes a stored second value for the tag.
19 . The device of claim 18 , wherein:
the controller determines whether to issue snoop requests based on the cache tag result.
20 . The device of claim 18 , wherein:
the cache tag result includes a first status indicator associated with the stored first value for the tag; and the memory bank result includes a second status indicator associated with the stored second value for the tag.Join the waitlist — get patent alerts
Track US2022269607A1 — get alerts on status changes and closely related new filings.
We store only your email — no account needed. See our privacy policy.