IP Library Granted Patent US 11,409,671
Granted Patent B2
US 11,409,671 · App. 16/720,635 · Granted Aug 9, 2022

Artificial reality system having multi-bank, multi-port distributed shared memory

Inventors: Alok Kumar Mathur (Cupertino, CA); Ennio Salemi (St-Egreve, IT); Drew Eric Wingard (Palo Alto, CA); Valerio Catalano (San Francisco, CA)
Assignee: Facebook Technologies, LLC
G06F13/1626G02B27/0172G06F3/011G06F13/1642G06T19/006G06V20/20
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 11,409,671
App. No.
16/720,635
Granted
Aug 9, 2022
Kind
B2
Abstract

This disclosure describes various examples of a system which uses a multi-bank, multi-port shared memory system that may be implemented as part of a system on a chip. The shared memory system may have particular applicability in the context of an artificial reality system, and may be designed to have distributed or varied latency for one or more memory banks and/or one or more components or subsystems within the system on a chip. The described shared memory system may be logically a single entity, but physically may have multiple memory banks, each accessible by any of a number of components or subsystems. In some examples, the memory system may enable concurrent, common, and/or shared access to memory without requiring, in some situations, full locking or arbitration.

Claims (67)

1. An integrated circuit comprising:

a plurality of shared memory banks including a first bank and a second bank;

a plurality of subsystems, including a first subsystem and a second subsystem, the first subsystem having access to each of the shared memory banks through a first port, the second subsystem having access to each of the shared memory banks through a second port, and wherein latency to the first bank by the first port is lower than latency to the first bank by the second port; and

a network connecting the first port and the second port to each of the shared memory banks, wherein the network is configured within the integrated circuit to connect the first port to the first bank through a first switch, connect the second port to the second bank through a second switch, and enable concurrent access to the first bank by the first subsystem and the second bank by the second subsystem, and wherein the network:

connects the first port to the second bank through the first switch and the second switch so that access latency from the first port to the second bank is higher than access latency from the first port to the first bank; and

connects the second port to the first bank through the second switch and the first switch so that access latency from the second port to the first bank is higher than access latency from the second port to the second bank.

2. The integrated circuit of claim 1 ,

wherein accessing the first bank from first port involves a single hop route to the first bank, and

wherein accessing the second bank from the first port involves a route that includes at least two hops to the second bank.

3. The integrated circuit of claim 1 , wherein:

the first switch is positioned physically closer to the first port than the second port on the integrated circuit, and

the second switch is positioned physically closer to the second port than the first port on the integrated circuit.

4. The integrated circuit of claim 1 , wherein:

the first switch is positioned physically closer to the first bank than the second bank on the integrated circuit, and

the second switch is positioned physically closer to the second bank than the first bank on the integrated circuit.

5. The integrated circuit of claim 1 , wherein the network:

enables the first subsystem to access the first bank through the first switch without arbitration, and

enables the second subsystem to access the second bank through the second switch without arbitration.

6. The integrated circuit of claim 1 , further comprising a controller configured to:

receive, from the first subsystem, a request to allocate memory;

determine, based on a cost assessment, which of the plurality of banks from which to allocate memory; and

allocate, by the controller, memory from one or more of the banks.

7. The integrated circuit of claim 6 , wherein the cost assessment includes:

evaluating latency to each of the plurality of memory banks, power requirements associated with accessing each of the memory banks, sensitivity of the first subsystem to latency, expected data flow patterns within the integrated circuit, expected frequency of access for the first subsystem, whether one or more of the shared memory banks is in a sleep mode, and power consumption information associated with bringing the one or more memory banks out of the sleep mode.

8. The integrated circuit of claim 1 , wherein the network is configured to:

receive, from the first port, a request to access memory in the first bank of memory; and

enable the first port to access memory in the first bank of memory without arbitration by routing the request through the first switch.

9. The integrated circuit of claim 1 , wherein the network is further configured to:

receive, from the first port, a request to access memory in the second bank of memory; and

enable the first port to access memory in the second bank by routing the request through the first switch and the second switch, and performing arbitration to avoid contention with other requests to access the second bank.

10. The integrated circuit of claim 1 ,

wherein the first port has a different latency than the second port.

11. The integrated circuit of claim 1 ,

wherein the network connects the first port to the first bank and first port to the second bank so that access latency from the second port to the second bank is lower than access latency from the first port to the second bank.

12. The integrated circuit of claim 1 ,

wherein one or more of the plurality of memory banks, the plurality of subsystems, and the network are arranged on the integrated circuit to reduce power consumption.

13. The integrated circuit of claim 1 ,

wherein one or more of the plurality of memory banks, the first port, the second port, the plurality of subsystems, and the network are arranged on the integrated circuit to reduce latency of accessing the shared memory.

14. The integrated circuit of claim 1 ,

wherein one or more of the plurality of memory banks, the first port, the second port, the plurality of subsystems, and the network are arranged on the integrated circuit to reduce the number and length of connections between components on the integrated circuit.

15. The integrated circuit of claim 1 ,

wherein one or more of the plurality of memory banks, the first port, the second port, the plurality of subsystems, and the network are arranged based on information about which subsystems in the plurality of subsystems are more tolerant of memory latency.

16. The integrated circuit of claim 1 ,

wherein the memory banks are uniform and are each optimized for density.

17. The integrated circuit of claim 1 ,

wherein the memory banks are configured to enter a sleep mode when not being used.

18. The integrated circuit of claim 1 ,

wherein the first switch and the second switch each operates on a different clock domain.

19. The integrated circuit of claim 1 ,

wherein the first switch and the second switch operate on the same clock domain, but are tolerant of clock misalignments.

20. The integrated circuit of claim 1 , further comprising a computing system on the integrated circuit that is configured to carry out operations comprising:

receiving, by the computing system on the integrated circuit and from one of the plurality of subsystems on the integrated circuit, a request to allocate memory from the shared memory banks, wherein power consumption attributes associated with accessing each of the plurality of shared memory banks differs for each of the plurality of subsystems;

determining, by the computing system, which of the plurality of shared memory banks from which to allocate memory based on an assessment that includes information about expected memory access patterns of each of the plurality of subsystems, and further based on the latency and power consumption attributes of each of the plurality of shared memory banks; and

allocating, by the computing system, memory from one or more of the plurality of shared memory banks.

21. An artificial reality system comprising:

an image capture system configured to capture image data representative of a physical environment; and

a head-mounted display (HMD) configured to output artificial reality content, wherein the head-mounted display includes an integrated circuit comprising:

a plurality of shared memory banks including a first bank and a second bank;

a plurality of subsystems, including a first subsystem and a second subsystem, the first subsystem having access to each of the shared memory banks through a first port, the second subsystem having access to each of the shared memory banks through a second port, and wherein latency to the first bank by the first port is lower than latency to the first bank by the second port; and

a network connecting the first port and the second port to each of the shared memory banks, wherein the network is configured within the integrated circuit to connect the first port to the first bank through a first switch, connect the second port to the second bank through a second switch, and enable concurrent access to the first bank by the first subsystem and the second bank by the second subsystem, wherein the network is configured to:

connect the first port to the second bank through the first switch and the second switch so that access latency from the first port to the second bank is higher than access latency from the first port to the first bank; and

connect the second port to the first bank through the second switch and the first switch so that access latency from the second port to the first bank is higher than access latency from the second port to the second bank.

22. The artificial reality system of claim 21 , wherein the plurality of subsystems includes:

a camera subsystem and a host subsystem.

23. The artificial reality system of claim 22 ,

wherein the network is configured so that the camera subsystem is capable of reaching a first subset of the plurality of shared memory banks through a first hop in the network, and

wherein the network is configured so that the host subsystem is capable of reaching a second subset of the plurality of shared memory banks through a first hop in the network.

Assignments (2)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Nov 4, 2022
From: MATHUR, ALOK KUMAR; SALEMI, ENNIO; WINGARD, DREW ERIC; CATALANO, VALERIO
To: FACEBOOK TECHNOLOGIES, LLC
Reel/Frame 061656/0716 →
CHANGE OF NAME Recorded Jul 21, 2022
From: FACEBOOK TECHNOLOGIES, LLC
To: META PLATFORMS TECHNOLOGIES, LLC
Reel/Frame 060802/0799 →
Continuity (2)
Provisional Application 62902783 · Sep 19, 2019
Related Publication 20210089475A1 · Mar 25, 2021