IP Library Granted Patent US 12670106
Granted Patent B2
US 12670106 · App. 18/908,345 · Granted Jun 30, 2026

System and method of exclusive memory access among multiple processing devices

Inventors: Quyen Pho (Pflugerville, TX); Ujwala Malwade (Austin, TX); Martin Mienkina (Bystrice Nad Olsi, CZ)
Assignee: NXP USA, Inc.
G06F12/126G06F12/0292
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 12670106
App. No.
18/908,345
Granted
Jun 30, 2026
Kind
B2
Abstract

A processing system including processing cores, a shared memory, a shift table that stores a maximum number of reservations to locations in the memory, and an exclusive monitor that uses the shift table and an eviction policy to enforce core synchronization. The eviction policy is based on priority, age of valid reservations, shift table fullness state, and reservation memory conflict. The shift table may include a memory address and a size value indicative of a flexible amount of reserved memory at the memory address. The exclusive monitor evicts an oldest reservation in the shift table having a same or lower priority level as the new reservation. The exclusive monitor rejects the new reservation when the shift table is full of higher priority reservations. Reservations are shifted to maintain age status. Stale reservations may be invalidated or have their priority lowered. Conflicting reservations may be made with the same priority level.

Claims (29)

1 . A processing system, comprising:

a plurality of processing cores;

a memory that is shared by the plurality of processing cores;

a shift table configured to store up to a predetermined maximum number of reservations to addressed locations in the memory; and

an exclusive monitor configured to use the shift table to enforce synchronization between the plurality of processing cores sharing the memory, wherein the exclusive monitor uses an eviction policy which evicts one or more valid reservations from the shift table based on a plurality of priority levels, an age of valid reservations, a fullness state of the shift table, and any reservation memory conflict when a new reservation is received, wherein, when the shift table is full such that every entry of the shift table stores a valid reservation when the new reservation is received, the eviction policy selects which valid reservation of the shift table to replace with the new reservation.

2 . The processing system of claim 1 , wherein each reservation of the shift table includes a memory address and a size value indicative of a flexible amount of reserved memory at the memory address.

3 . The processing system of claim 2 , wherein the size value comprises a plurality of size values up to a predetermined maximum memory size.

4 . The processing system of claim 2 , wherein the size value comprises a number of bytes up to a predetermined maximum number of bytes.

5 . The processing system of claim 1 , wherein the exclusive monitor is configured to evict an oldest valid reservation in the shift table having a same or lower priority level as a priority level of the new reservation, wherein the oldest valid reservation is evicted by being replaced with the new reservation.

6 . The processing system of claim 1 , wherein the exclusive monitor is configured to reject the new reservation when the new reservation has a lower priority level than each valid reservation in the shift table when the shift table is full.

7 . The processing system of claim 1 , wherein the exclusive monitor is configured to shift reservations in the shift table that are newer than an invalidated reservation by one entry to replace the invalidated reservation.

8 . The processing system of claim 1 , wherein the exclusive monitor is configured to detect and invalidate a stale reservation in the shift table.

9 . The processing system of claim 1 , wherein the exclusive monitor is configured to detect and change a priority of the stale reservation to a lowest priority level.

10 . The processing system of claim 1 , wherein the exclusive monitor is configured to enter multiple reservations at conflicting memory addresses in the shift table when at the same priority level, and to evict any lower priority reservations in the shift table that have a memory conflict with the new reservation having a higher priority level.

11 . The processing system of claim 1 , wherein, when the shift table is not full and a second new reservation is received which includes a reservation memory conflict with an existing valid entry of the shift table but has a lower priority than the second new reservation, the eviction policy evicts the existing valid entry by invalidating the existing valid entry, and enters the second new reservation into an empty entry.

12 . A method of enforcing synchronization between a plurality of processing cores sharing a memory in a processing system, the method comprising:

providing a shift table that is configured to store up to a predetermined maximum number of reservations to addressed locations in the memory; and

applying a reservation eviction policy which evicts one or more valid reservations from the shift table based on a plurality of priority levels, an age of valid reservations, a fullness state of the shift table, and any reservation memory conflict when a new reservation is received, wherein applying the reservation eviction policy comprises:

when the shift table is full such that every entry of the shift table stores a valid reservation when the new reservation is received, applying the eviction policy to select which valid reservation of the shift table to evict in favor of the new reservation; and

replacing the valid reservation selected for eviction with the new reservation.

13 . The method of claim 12 , wherein the providing a shift table comprises providing a shift table including a memory address and a size value indicative of a flexible amount of reserved memory at the memory address.

14 . The method of claim 13 , wherein the size value comprises a plurality of size values up to a predetermined maximum memory size.

15 . The method of claim 13 , wherein the size value comprises a number of bytes up to a predetermined maximum number of bytes.

16 . The method of claim 12 , further comprising evicting an oldest valid reservation in the shift table having a same or lower priority level as a priority level of the new reservation, wherein the oldest valid reservation is evicted by being replaced with the new reservation.

17 . The method of claim 12 , further comprising rejecting the new reservation when the new reservation has a lower priority level than each valid reservation in the shift table when the shift table is full.

18 . The method of claim 12 , further comprising shifting reservations in the shift table that are newer than an invalidated reservation by one entry to replace the invalidated reservation.

19 . The method of claim 12 , further comprising detecting and invalidating a stale reservation in the shift table.

20 . The method of claim 12 , further comprising detecting and changing a priority of the stale reservation to a lowest priority level.

21 . The method of claim 12 , further comprising entering multiple reservations at conflicting memory addresses in the shift table when at the same priority level, and evicting any lower priority reservations in the shift table that have a memory conflict with the new reservation having a higher priority level.