IP Library Granted Patent US 11,580,026
Granted Patent B2
US 11,580,026 · App. 17/578,392 · Granted Feb 14, 2023

Systems and methods for efficient data buffering

Inventors: Vlad Fruchter (Los Altos, CA); Richard Lawrence Greene (Redmond, WA); Hideo Tamama (Kirkland, WA)
Assignee: Meta Platforms Technologies, LLC
G06F12/0871G06F3/061G06F3/0656G06F3/0673G06F12/0238G06F12/0284G06F12/1441
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,580,026
App. No.
17/578,392
Granted
Feb 14, 2023
Kind
B2
Abstract

In one embodiment, a system may include a memory unit, a first processing unit configured to write data into a memory region of the memory unit, a second processing unit configured to read data from the memory region, a first control unit configured to control the first processing unit's access to the memory unit and, and a second control unit configured to control the second processing unit's access to the memory unit. The first control unit may be configured to obtain, from the second control unit, a first memory address associated with a data reading process of the second processing unit, receive a write request from the first processing unit, the read request having an associated second memory address, and write data into the memory region based on the write request in response to a determination that the second memory address falls outside of the guarded reading region.

Claims (35)

1. A system comprising:

a memory unit;

a first processing unit configured to write data into a memory region of the memory unit;

a second processing unit configured to read data from the memory region;

a first control unit configured to control the first processing unit's access to the memory unit; and

a second control unit configured to control the second processing unit's access to the memory unit;

wherein the first control unit is further configured to:

obtain, from the second control unit, a first memory address associated with a guarded reading region in the memory region of the memory unit, wherein the second processing unit reads data from the guarded reading region of the memory region of the memory unit using a first memory accessing pattern;

receive a write request from the first processing unit, the write request having an associated second memory address for the first processing unit to write data into the memory region; and

write data into the memory region based on the write request in response to a determination that the second memory address falls outside of the guarded reading region, wherein the first control unit writes data into the memory region using a second memory accessing pattern different from the first memory accessing pattern.

2. The system of claim 1 , wherein the memory region corresponds to a linear buffer or a circular buffer dynamically allocated in the memory unit, and wherein the memory unit is a shared memory unit accessed by one or more other functional modules of the system.

3. The system of claim 1 , wherein the first processing unit is configured to serve as a data producing unit, and wherein the second processing unit is configured to serve as a data consuming unit.

4. The system of claim 1 , wherein the first memory address is a starting address of the guarded reading region.

5. The system of claim 4 , wherein the first control unit is configured to delay execution of the write request in response to a determination that the second memory address is greater than or equal to the starting address of the guarded reading region.

6. The system of claim 4 , wherein the first control unit is configured to determine the guarded reading region based on the first memory address, and wherein the first control unit is configured to delay execution of the write request in response to a determination that the second memory address falls within the guarded reading region.

7. The system of claim 6 , wherein the first control unit is configured to delay the execution of the write request by temporarily preventing the first processing unit from writing data into the memory region using the second memory address.

8. The system of claim 1 , wherein the first control unit, the second control unit, and the memory unit are connected to a network on chip through respective interfaces based on a communication protocol, and wherein the memory unit is configured to be accessed by the first processing unit and the second processing via the network on chip and the respective interfaces as controlled by respective control units.

9. The system of claim 1 , wherein the first control unit and the second control unit are connected through a communication link for exchanging memory address information, and wherein the first memory address is obtained by the first control unit via the communication link.

10. The system of claim 9 , wherein the second processing unit is configured to read data from a guarded reading region in the memory region.

11. The system of claim 1 , wherein the first memory accessing pattern is a raster scanning pattern, and wherein the second memory accessing pattern is a tile-row scanning pattern.

12. The system of claim 1 , wherein the second memory accessing pattern is a random memory accessing pattern.

13. A method comprising:

obtaining, by a first control unit associated with a first processing unit and from a second control unit associated with a second processing unit, a first memory address associated with a guarded reading region in a memory region of a memory unit, wherein the second processing unit reads data from the guarded reading region of the memory region of the memory unit using a first memory accessing pattern;

receiving, by the first control unit and from the first processing unit, a write request having an associated second memory address for the first processing unit to write data into the memory region; and

writing, by the first control unit, data into the memory region based on the write request in response to a determination that the second memory address falls outside of the guarded reading region, wherein the first control unit writes data into the memory region using a second memory accessing pattern different from the first memory accessing pattern.

14. The method of claim 13 , wherein the memory region corresponds to a linear buffer or a circular buffer dynamically allocated in the memory unit, and wherein the memory unit is a shared memory unit accessed by one or more other functional modules of the system.

15. The method of claim 13 , wherein the first processing unit is configured to serve as a data producing unit, and wherein the second processing unit is configured to serve as a data consuming unit.

16. The method of claim 13 , wherein the first memory address is a starting address of the guarded reading region.

17. One or more computer-readable non-transitory storage media embodying software that is operable when executed to:

obtain, by a first control unit associated with a first processing unit and from a second control unit associated with a second processing unit, a first memory address associated with a guarded reading region in a memory region of a memory unit, wherein the second processing unit reads data from the guarded reading region of the memory region of the memory unit using a first memory accessing pattern;

receive, by the first control unit and from the first processing unit, a write request having an associated second memory address for the first processing unit to write data into the memory region; and

write, by the first control unit, data into the memory region based on the write request in response to a determination that the second memory address falls outside of the guarded reading region, wherein the first control unit writes data into the memory region using a second memory accessing pattern different from the first memory accessing pattern.

18. The media of claim 17 , wherein the memory region corresponds to a linear buffer or a circular buffer dynamically allocated in the memory unit, and wherein the memory unit is a shared memory unit accessed by one or more other functional modules of the system.

19. The media of claim 17 , wherein the first processing unit is configured to serve as a data producing unit, and wherein the second processing unit is configured to serve as a data consuming unit.

20. The media of claim 17 , wherein the first memory address is a starting address of the guarded reading region.

Assignments (2)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Mar 7, 2024
From: FRUCHTER, VLAD; GREENE, RICHARD LAWRENCE; TAMAMA, HIDEO
To: FACEBOOK TECHNOLOGIES, LLC
Reel/Frame 066678/0499 →
CHANGE OF NAME Recorded Jul 6, 2022
From: FACEBOOK TECHNOLOGIES, LLC
To: META PLATFORMS TECHNOLOGIES, LLC
Reel/Frame 060591/0848 →