IP Library Granted Patent US 12,468,644
Granted Patent B2
US 12,468,644 · App. 18/742,597 · Granted Nov 11, 2025

Invalidation of permission information stored by another processor

Inventors: Gaurav Garg (San Jose, CA); Bernard J. Semeria (Palo Alto, CA); James Vash (San Ramon, CA); Jeff Gonion (Campbell, CA); Richard F. Russo (San Jose, CA); Peter A. Lisherness (Los Gatos, CA); Roy G. Moss (Palo Alto, CA); Rohit K. Gupta (Santa Clara, CA)
Assignee: Apple Inc.
G06F13/28G06F12/1027G06F2212/68G06F2213/28
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 12,468,644
App. No.
18/742,597
Granted
Nov 11, 2025
Kind
B2
Abstract

Techniques are disclosed relating to performing remote invalidation of memory access permission information. In some embodiments, primary processor circuitry is configured to, based on execution of a remote permission table invalidate instruction (e.g., an ISA-defined instruction), send a remote invalidate command to secondary processor circuitry. The secondary processor circuitry includes secondary processor permission circuitry and is configured to, in response to the remote invalidate command sent by the primary processor, invalidate one or more entries in the secondary processor permission circuitry. In some embodiments, the secondary processor performs the invalidate without executing any instructions on the secondary processor circuitry.

Claims (66)

1 . An apparatus, comprising:

primary processor circuitry that includes an execution pipeline; and

secondary processor circuitry that includes:

translation lookaside buffer circuitry that includes multiple entries configured to store translation information, wherein a given entry includes first-level permission information;

permission circuitry configured to store second-level permission information specified by the primary processor circuitry; and

wherein:

the secondary processor circuitry is configured to determine whether a given memory access is permitted based on both the first-level permission information and the second-level permission information;

the primary processor circuitry is configured to send, based on execution of a remote-permission-table-invalidate instruction by the execution pipeline, a permission invalidate command to the secondary processor circuitry; and

the secondary processor circuitry is configured to, in response to the permission invalidate command, invalidate one or more entries in the permission circuitry that store second-level permission information.

2 . The apparatus of claim 1 , further comprising:

memory circuitry configured to store second-level permission information specified by the primary processor circuitry;

wherein the permission circuitry is configured to store second-level permission information retrieved from the memory circuitry.

3 . The apparatus of claim 2 , wherein the secondary processor circuitry is configured to perform direct memory address (DMA) operations to the memory circuitry.

4 . The apparatus of claim 1 , wherein the primary processor circuitry is configured to execute secure software to generate the second-level permission information.

5 . The apparatus of claim 1 , wherein a given entry of the permission circuitry includes second-level permission information for a region of memory that is greater in size than the size of memory access operations that the secondary processor circuitry is configured to perform.

6 . The apparatus of claim 5 , wherein:

the permission circuitry is a direct mapped cache; and

the secondary processor circuitry is configured to index into the permission circuitry based on a set of upper bits of a given memory address.

7 . The apparatus of claim 1 , wherein the secondary processor circuitry is configured to perform the permission invalidation without executing any instructions on the secondary processor circuitry.

8 . The apparatus of claim 1 , wherein:

the secondary processor circuitry further includes power management circuitry configured to place the secondary processor circuitry in a low-power state; and

the apparatus is configured to guarantee, when operating in a low-power state, the invalidation of the one or more entries in permission circuitry.

9 . The apparatus of claim 8 , wherein:

the secondary processor circuitry further includes buffer circuitry configured to store, when operating in the low-power state, the permission invalidate command; and

the secondary processor circuitry is configured to retrieve and perform the permission invalidate command in response to exiting the low-power state.

10 . The apparatus of claim 1 , wherein:

the primary processor circuitry is further configured to send a barrier command in conjunction with the permission invalidate command, wherein the barrier command ensures completion of older memory access operations that access at least one entry specified by the invalidate command to determine respective access permission.

11 . The apparatus of claim 1 , wherein:

the permission invalidate command is included in a packet transmitted on a communication fabric, wherein the packet includes at least the following:

information that specifies one or more addresses whose corresponding permissions are to be invalidated; and

an identifier of the secondary processor circuitry.

12 . The apparatus of claim 1 , wherein the apparatus is a computing device that further includes:

a display; and

network interface circuitry.

13 . A method, comprising:

storing, by secondary processor circuitry, first-level permission information;

storing, in permission circuitry of the secondary processor circuitry, second-level permission information;

determining, by the secondary processor circuitry, whether a given memory access is permitted based on both the first-level permission information and the second-level permission information;

sending, by primary processor circuitry based on execution of a remote-permission-table-invalidate instruction, a permission invalidate command to the secondary processor circuitry; and

invalidating, by the secondary processor circuitry in response to the permission invalidate command, one or more entries in the permission circuitry that store second-level permission information.

14 . The method of claim 13 , wherein:

the permission invalidate command is included in a packet transmitted on a communication fabric, wherein the packet includes at least the following:

information that specifies one or more addresses whose corresponding permissions are to be invalidated; and

an identifier of the secondary processor circuitry.

15 . The method of claim 13 , further comprising:

sending, by the primary processor circuitry, a barrier command in conjunction with the permission invalidate command, wherein the barrier command ensures completion of older memory access operations that access at least one entry specified by the invalidate command to determine respective access permission.

16 . The method of claim 13 , further comprising:

storing, in buffer circuitry of the secondary processor circuitry, the permission invalidate command when the secondary processor circuitry is in a low-power state; and

retrieving and performing, by the secondary processor circuitry in response to exiting the low-power state, the stored permission invalidate command.

17 . A non-transitory computer-readable medium having instructions of a hardware description programming language stored thereon that, when processed by a computing system, program the computing system to generate a computer simulation model, wherein the model represents a hardware circuit that includes:

primary processor circuitry that includes an execution pipeline; and

secondary processor circuitry that includes:

translation lookaside buffer circuitry that includes multiple entries configured to store translation information, wherein a given entry includes first-level permission information;

permission circuitry configured to store second-level permission information specified by the primary processor circuitry; and

wherein:

the secondary processor circuitry is configured to determine whether a given memory access is permitted based on both the first-level permission information and the second-level permission information;

the primary processor circuitry is configured to send, based on execution of a remote-permission-table-invalidate instruction by the execution pipeline, a permission invalidate command to the secondary processor circuitry; and

the secondary processor circuitry is configured to, in response to the permission invalidate command, invalidate one or more entries in the permission circuitry.

18 . The non-transitory computer-readable medium of claim 17 , wherein the hardware circuit further includes:

memory circuitry configured to store second-level permission information specified by the primary processor circuitry;

wherein the permission circuitry is configured to store second-level permission information retrieved from the memory circuitry.

19 . The non-transitory computer-readable medium of claim 17 , wherein the secondary processor circuitry is configured to perform the permission invalidation without executing any instructions on the secondary processor circuitry.

20 . The non-transitory computer-readable medium of claim 17 , wherein:

the secondary processor circuitry further includes power management circuitry configured to place the secondary processor circuitry in a low-power state;

the secondary processor circuitry further includes buffer circuitry configured to store, when operating in the low-power state, the permission invalidate command; and

the secondary processor circuitry is configured to retrieve and perform the permission invalidate command in response to exiting the low-power state.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jun 13, 2024
From: GARG, GAURAV; SEMERIA, BERNARD J.; VASH, JAMES; GONION, JEFF; RUSSO, RICHARD F.; LISHERNESS, PETER A.; MOSS, ROY G.; GUPTA, ROHIT K.
To: APPLE INC.
Reel/Frame 067720/0739 →
Continuity (2)
Provisional Application 63627495 · Jan 31, 2024
Related Publication 20250245179A1 · Jul 31, 2025
References Cited (37)
US 5752264A · Blake · 1998 [cited by examiner]
US 9218289B2 · Rychlik et al. · 2015 [cited by applicant]
US 9836411B2 · Gschwind · 2017 [cited by examiner]
US 10042762B2 · Jayasena et al. · 2018 [cited by applicant]
US 10558590B2 · Parker et al. · 2020 [cited by applicant]
US 10915466B2 · Hagersten et al. · 2021 [cited by applicant]
US 11327890B1 · Mukherjee · 2022 [cited by applicant]
US 11681531B2 · Burger et al. · 2023 [cited by applicant]
US 11782849B2 · Rozas et al. · 2023 [cited by applicant]
US 20040030843A1 · Arimilli et al. · 2004 [cited by applicant]
US 20040088496A1 · Glasco et al. · 2004 [cited by applicant]
US 20070156972A1 · Uehara et al. · 2007 [cited by applicant]
US 20080005794A1 · Inoue · 2008 [cited by examiner]
US 20090083496A1 · Stevens, Jr. · 2009 [cited by applicant]
US 20110093646A1 · Koka et al. · 2011 [cited by applicant]
US 20120089808A1 · Jang · 2012 [cited by examiner]
US 20120137079A1 · Ueda · 2012 [cited by examiner]
US 20120216002A1 · Moyer · 2012 [cited by examiner]
US 20130005794A1 · Kaemmerer et al. · 2013 [cited by applicant]
US 20130262814A1 · Asaro et al. · 2013 [cited by applicant]
US 20140156960A1 · Simoncelli · 2014 [cited by examiner]
US 20180089094A1 · Clancy et al. · 2018 [cited by applicant]
US 20180165215A1 · Kumar · 2018 [cited by examiner]
US 20200117609A1 · Finkbeiner et al. · 2020 [cited by applicant]
US 20200142838A1 · Rozas et al. · 2020 [cited by applicant]
US 20200264973A1 · Lee · 2020 [cited by applicant]
US 20200351370A1 · Radi · 2020 [cited by examiner]
US 20210149763A1 · Ranganathan et al. · 2021 [cited by applicant]
US 20210200687A1 · Durham · 2021 [cited by examiner]
US 20220261351A1 · Vasudevan et al. · 2022 [cited by applicant]
CN 112148424A · 2020 [cited by applicant]
CN 114721722B · 2022 [cited by applicant]
CN 114721726B · 2022 [cited by applicant]
CN 117472802A · 2024 [cited by applicant]
DE 112011103433B4 · 2019 [cited by applicant]
TW 1653532B · 2019 [cited by applicant]
International Search Report and Written Opinion in PCT Appl. No. PCT/US2025/012791 mailed May 15, 2025, 8 pages. [cited by applicant]