IP Library › Granted Patent US 11,816,227
Granted Patent B2
US 11,816,227 · App. 16/624,474 · Granted Nov 14, 2023

Interrupting export of memory regions

Inventors: Gareth Rhys Stockwell (Cambridge, GB); Jason Parker (Sheffield, GB); Djordje Kovacevic (Hitchin, GB); Matthew Lucien Evans (Cambridge, GB)
Assignee: Arm Limited
G06F21/602G06F9/45558G06F9/4812G06F12/1491G06F21/79G06F2009/45583G06F2009/45587G06F2212/1052
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,816,227
App. No.
16/624,474
Granted
Nov 14, 2023
Kind
B2
Abstract

An apparatus for processing data comprises memory access circuitry to enforce ownership rights of a plurality of memory regions within a first memory. The memory access circuitry is responsive to a first export command received from a first export command source to perform a first export operation to encrypt the given owned data to form given encrypted data and to store the given encrypted data in a second memory. The memory access circuitry is responsive to a second export command for the given memory region received from a second export command source while the first export operation is being performed to determine whether said second export command source has higher priority than the first export command source and, when the second export command source has a higher priority, to interrupt the first export operation and to perform a second export operation specified by the second export command.

Claims (58)

1. Apparatus for processing data comprising:

memory access circuitry to enforce ownership rights of a plurality of memory regions within a first memory, a given owning process from among a plurality of processes having access to given owned data stored within a given memory region from among said plurality of memory regions;

wherein said memory access circuitry is responsive to a first export command for said given memory region received from a first export command source to perform a first export operation to encrypt said given owned data to form given encrypted data and to store said given encrypted data in a second memory;

said memory access circuitry is responsive to a second export command for said given memory region received from a second export command source while said first export operation is being performed to determine whether said second export command source has higher priority position within a control hierarchy than said first export command source;

when said second export command source has a higher priority:

to interrupt said first export operation for encrypting said given owned data and storing said given encrypted data in the second memory,

to store a partially-completed state of said first export operation in a buffer, and to perform a second export operation specified by said second export command, wherein the partially-completed state comprises partially-encrypted data, and

to store metadata associated with said partially-completed state of said first export operation in said buffer;

when said second export operation having the higher priority is completed:

to verify, by said memory access circuitry, said metadata associated with said partially-completed state of said first export operation; and

to restore, by said memory access circuitry in response to said metadata being verified, the partially-completed state of said first export operation and resume said first export operation; and

when said second export command source has a lower priority:

to continue to perform said first export operation for encrypting said given owned data and storing said given encrypted data in the second memory, and

to block performing of said second export operation until completion of said first export operation;

wherein prior to the performing of said first export operation, said memory access circuitry is configured to determine whether the buffer, pointed by a generated pointer, is not empty, indicating that said first export operation was previously interrupted, and when the buffer is not empty, to resume said first export operation.

2. The apparatus as claimed in claim 1 , wherein said plurality of processes comprises a hierarchy of processes including a parent process with at least one child process, said parent process having a higher priority position within said control hierarchy than said at least one child process.

3. The apparatus as claimed in claim 1 , wherein said plurality of processes have respective privilege levels within a hierarchy of privilege levels independent of said ownership rights.

4. The apparatus as claimed in claim 3 , wherein said control hierarchy corresponds to said hierarchy of privilege levels.

5. The apparatus as claimed in claim 1 , wherein said first export operation comprises forming first metadata specifying one or more characteristics of said given owned data and storing said first metadata within a metadata memory region of said first memory that is private to said memory access circuitry so as to be accessible to said memory access circuitry and to be inaccessible to said plurality of processes.

6. The apparatus as claimed in claim 5 , wherein a memory region accessible to said plurality of processes is registered under software control as said metadata memory region to become inaccessible to said plurality of processes.

7. The apparatus as claimed in claim 5 , wherein said metadata memory region is part of a metadata memory region tree having a branching pattern determined under software control.

8. The apparatus as claimed in claim 5 , wherein said memory access circuitry is responsive to an import command for said given encrypted data to perform an import operation to use said first metadata to validate integrity of said given encrypted data, to decrypt said given encrypted data to form said given owned data and to restore said given owned data to said given memory region.

9. The apparatus as claimed in claim 5 , wherein said memory access circuitry is responsive to an export command for said metadata memory region to encrypt said first metadata data to form encrypted metadata and to store said encrypted metadata in said second memory.

10. The apparatus as claimed in claim 9 , wherein said memory access circuitry is responsive to an import command for said encrypted metadata to perform an import operation to decrypt said encrypted metadata to form said first metadata and to restore said first metadata to said metadata memory region.

11. The apparatus as claimed in claim 10 , wherein said export command for said metadata and said import command for said metadata are issued by a software process.

12. The apparatus as claimed in claim 1 , wherein access to said second memory storing said given encrypted data is outside control by said memory access circuitry.

13. The apparatus as claimed in claim 1 , wherein said first export operation overwrites said given owned data with values uncorrelated with said given owned data before said given memory region is made accessible to a process other than said given owning process.

14. The apparatus as claimed in claim 1 , wherein the first memory is an on-chip memory, and the second memory is an off-chip memory.

15. The apparatus as claimed in claim 1 , wherein said buffer is established in a memory region.

16. The apparatus as claimed in claim 1 , wherein said memory access circuitry is configured to enforce said ownership rights based on an ownership table comprising one or more entries, said given owning process having exclusive rights to control access to said given owned data stored within said given memory region, and wherein said memory access circuitry is configured to reject an access request from a current process to access data at a target physical address when a corresponding entry of said ownership table corresponding to said target physical address indicates that said current process is not permitted to access said target physical address.

17. A method of processing data comprising:

enforcing ownership rights of a plurality of memory regions within a first memory, a given owning process from among a plurality of processes having access to given owned data stored within a given memory region from among said plurality of memory regions;

wherein in response to a first export command for said given memory region received from a first export command source, performing a first export operation to encrypt said given owned data to form given encrypted data and to store said given encrypted data in a second memory;

in response to a second export command for said given memory region received from a second export command source while said first export operation is being performed, determining whether said second export command source has higher priority position within a control hierarchy than said first export command source;

in response to said second export command source having a higher priority:

interrupting said first export operation for encrypting said given owned data and storing said given encrypted data in the second memory,

storing a partially-completed state of said first export operation in a buffer,

performing a second export operation specified by said second export command, wherein the partially-completed state comprises partially-encrypted data; and

storing metadata associated with said partially-completed state of said first export operation in said buffer;

in response to completion of said second export operation having the higher priority:

verifying said metadata associated with said partially-completed state of said first export operation, and in response to said metadata being verified, restoring the partially-completed state of said first export operation and resuming said first export operation; and

in response to said second export command source having a lower priority;

continuing to perform said first export operation for encrypting said given owned data and storing said given encrypted data in the second memory, and blocking performing of said second export operation until completion of said first export operation;

wherein prior to the performing of said first export operation, determining whether the buffer, pointed by a generated pointer, is not empty, indicating that said first export operation was previously interrupted, and accordingly resuming said first export operation.

18. A non-transitory storage medium storing a computer program for controlling a host data processing apparatus to provide an instruction execution environment comprising:

memory access program logic to enforce ownership rights of a plurality of memory regions within a first memory, a said given owning process from among a plurality of processes having access to given owned data stored within a given memory region from among said plurality of memory regions;

wherein said memory access program logic is responsive to a first export command for said given memory region received from a first export command source to perform a first export operation to encrypt said given owned data to form given encrypted data and to store said given encrypted data in a second memory; and

said memory access program logic is responsive to a second export command for said given memory region received from a second export command source while said first export operation is being performed to determine whether said second export command source has higher priority position within a control hierarchy than said first export command source, and

in response to said second export command source having a higher priority:

to interrupt said first export operation for encrypting said given owned data and storing said given encrypted data in the second memory,

to store a partially-completed state of said first export operation in a buffer, and to perform a second export operation specified by said second export command, wherein the partially-completed state comprises partially-encrypted data, and

to store metadata associated with said partially-completed state of said first export operation in said buffer;

in response to completion of said second export operation having the higher priority:

to verify said metadata associated with said partially-completed state of said first export operation; and

to restore, in response to said metadata being verified, the partially-completed state of said first export operation and resume said first export operation; and

in response to said second export command source having a lower priority:

to continue to perform said first export operation for encrypting said given owned data and storing said given encrypted data in the second memory, and to block performing of said second export operation until completion of said first export operation, and

prior to the performing of said first export operation, to determine whether the buffer, pointed by a generated pointer, is not empty, indicating that said first export operation was previously interrupted, and accordingly, to resume said first export operation.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 19, 2019
From: STOCKWELL, GARETH RHYS; PARKER, JASON; KOVACEVIC, DJORDJE; EVANS, MATTHEW LUCIEN
To: ARM LIMITED
Reel/Frame 051376/0317 →
Priority Claims (1)
GB 1710344 · Jun 28, 2017 · national
Continuity (1)
Related Publication 20200117809A1 · Apr 16, 2020
Cited By (1)
US 12,657,342