IP Library › Granted Patent US 11,836,276
Granted Patent B2
US 11,836,276 · App. 17/898,035 · Granted Dec 5, 2023

Peripheral device with resource isolation

Inventors: Stavros Volos (Bellevue, WA); Kapil Vaswani (Cambridge, GB)
Assignee: Microsoft Technology Licensing, LLC
G06F21/73G06F9/4413G06F21/805
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,836,276
App. No.
17/898,035
Granted
Dec 5, 2023
Kind
B2
Abstract

A peripheral device package for use in a host computing device has a plurality of compute elements and a plurality of resources shared by the plurality of compute elements. A datastructure is stored in a hidden memory of the peripheral device package. The data structure holds metadata about ownership of resources of the peripheral device package by a plurality of user runtime processes of the host computing device which use the compute elements. At least one of the user runtime processes is a secure user runtime process. The peripheral device package has a command processor configured to use the datastructure to enforce isolation of the resources used by the secure user runtime process.

Claims (44)

1. A peripheral device package for use in a host computing device, the peripheral device package comprising:

a datastructure stored in a hidden memory of the peripheral device package;

a command processor configured to:

receive a channel page directory entry command;

perform checks on the datastructure;

in response to determining that the checks on the datastructure succeeded, unmap an existing page table and map a new page table at a specified index in the page directory of a specified channel resulting in trusted execution of a secure user runtime process on the peripheral device package.

2. The peripheral device package of claim 1 , wherein the checks include, before unmapping, ensuring the existing page table is unlocked.

3. The peripheral device package of claim 1 , wherein the checks include, before unmapping, ensuring the existing page table has a user-signed authorization.

4. The peripheral device package of claim 1 , wherein the checks include, before mapping a new page table, checking whether the new page table is allocated on pages in a protected region of memory that is not accessible directly by the host.

5. The peripheral device package of claim 1 , wherein the checks include, before mapping a new page table, checking whether the new page table is free.

6. The peripheral device package of claim 1 , wherein the peripheral device package further includes:

a plurality of compute elements;

a plurality of resources shared by the plurality of compute elements; and

wherein the datastructure holds metadata about ownership of resources of the plurality of resources of the peripheral device package by a plurality of user runtime processes of the host computing device which use compute elements of the plurality of compute elements, at least one of the user runtime processes being the secure user runtime process.

7. A method for a secure user runtime process having instructions for execution on a peripheral device package of a host computing device, the method comprising:

receiving, at a command processor, a channel page directory entry command;

performing, at the command processor, checks on a datastructure stored in a hidden memory of the peripheral device package;

in response to determining that the checks on the datastructure succeeded, unmapping an existing page table and mapping a new page table at a specified index in the page directory of a specified channel resulting in trusted execution of a secure user runtime process on the peripheral device.

8. The method of claim 7 , wherein the checks include, before unmapping, ensuring the existing page table is unlocked.

9. The method of claim 7 , wherein the checks include, before unmapping, ensuring the existing page table has a user-signed authorization.

10. The method of claim 7 , wherein the checks include, before mapping a new page table, checking whether the new page table is allocated on pages in a protected region of memory that is not accessible directly by the host.

11. The method of claim 7 , wherein the checks include, before mapping a new page table, checking whether the new page table is free.

12. A peripheral device package for use in a host computing device, the peripheral device package comprising:

a datastructure stored in a hidden memory of the peripheral device package;

a command processor configured to:

receive a channel page table entry command;

remove existing mappings from a specified page table entry;

perform checks on the datastructure;

in response to determining that the checks on the datastructure succeeded, create new mappings according to a specified array resulting in trusted execution of a secure user runtime process on the peripheral device.

13. The peripheral device package of claim 12 , wherein creating new mappings includes starting from a specified virtual address and spanning over a specified range.

14. The peripheral device package of claim 12 , wherein the checks include, before removing an existing page table entry, checking if the physical page is in an unlocked state.

15. The peripheral device package of claim 12 , wherein the checks include, if the existing mappings to be removed are for a locked page, checking for the presence of a message authentication code (MAC) over the channel page table entry command.

16. The peripheral device package of claim 15 , wherein the MAC is generated using a channel encryption key formed from a root of trust integrated in silicon of the peripheral device package.

17. The peripheral device package of claim 12 , wherein the peripheral device package further includes:

a plurality of compute elements;

a plurality of resources shared by the plurality of compute elements; and

wherein the datastructure holds metadata about ownership of resources of the plurality of resources of the peripheral device package by a plurality of user runtime processes of the host computing device which use compute elements of the plurality of compute elements, at least one of the user runtime processes being the secure user runtime process.

18. A method for a secure user runtime process having instructions for execution on a peripheral device package of a host computing device, the method comprising:

receiving, at a command processor, a channel page table entry command;

removing existing mappings from a specified page table entry;

performing, at the command processor, checks on a datastructure stored in a hidden memory of the peripheral device package;

in response to determining that the checks on the datastructure succeeded, creating new mappings according to a specified array resulting in trusted execution of a secure user runtime process on the peripheral device.

19. The method of claim 18 , wherein creating new mappings includes starting from a specified virtual address and spanning over a specified range.

20. The method of claim 18 , wherein the checks include, before removing an existing page table entry, checking if the physical page is in an unlocked state.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Sep 13, 2022
From: VOLOS, STAVROS; VASWANI, KAPIL
To: MICROSOFT TECHNOLOGY LICENSING, LLC
Reel/Frame 061079/0314 →
Continuity (2)
Continuation 16023965 · Jun 29, 2018
Related Publication 20230073426A1 · Mar 9, 2023