# US 2021/0240637 A1 · Methods, apparatus, and systems for secure demand paging and paging operations for processor devices

> Agents: this data is available as JSON from the patentgrep API and MCP server — see https://patentgrep.com/llms.txt

- Number: US 2021/0240637 A1
- Document ID: US20210240637A1
- Status: Published application
- Kind: A1
- Application number: 17/106,372
- Filed: 2020-11-30
- Published: 2021-08-05
- Earliest claimed: 2006-06-27
- Assignees: Texas Instruments Incorporated
- Applicants: Texas Instruments Incorporated
- Inventors: Steven C. Goss; Gregory Remy Philippe Conti; Narendar M. Shankar; Mehdi-Laurent Akkar; Aymeric Vial
- Web page: https://patentgrep.com/patent/US20210240637A1

## CPC

- G06F 12/1408: {by using cryptography (for digital transmission H04L9/00)}
- G06F 9/45558: {Hypervisor-specific management and integration aspects}
- G06F 9/461: {Saving or restoring of program or task context}
- G06F 12/0246: {in block erasable memory, e.g. flash memory}
- G06F 12/145: {the protection being virtual, e.g. for virtual blocks or segments before a translation mechanism}
- G06F 12/1483: {using an access-table, e.g. matrix or list}
- G06F 21/575: {Secure boot}
- G06F 21/79: in semiconductor storage media, e.g. directly-addressable memories
- H04L 9/0897: {involving additional devices, e.g. trusted platform module [TPM], smartcard or USB}
- H04L 9/3236: {using cryptographic hash functions}
- H04L 63/18: {using different networks or channels, e.g. using out of band channels (cryptographic mechanisms or cryptographic arrangements for key distribution involving distinctive intermediate devices or communication paths H04L9/0827; cryptographic mechanisms or cryptographic arrangements for authentication using a plurality of channels H04L9/3215)}
- H04L 63/20: {for managing network security; network security policies in general (filtering policies H04L63/0227)}
- H04W 12/069: using certificates or pre-shared keys
- H04W 12/102: Route integrity, e.g. using trusted paths
- G06F 12/08: in hierarchically structured memory systems, e.g. virtual memory systems
- G06F 2009/45583: {Memory management, e.g. access or allocation}
- G06F 2009/45587: {Isolation or security of virtual machine instances}
- G06F 2212/171: Portable consumer electronics, e.g. mobile phone
- G06F 2212/402: Encrypted data
- G06F 2212/7201: Logical to physical mapping or translation of blocks or pages
- H04L 63/123: {received data contents, e.g. message integrity}
- Y02D 10/00: Energy efficient computing, e.g. low power processors, power management or thermal management
- G06F: ELECTRIC DIGITAL DATA PROCESSING (computer systems based on specific computational models G06N)
- H04L: TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION (arrangements common to telegraphic and telephonic communication H04M)
- H04W: WIRELESS COMMUNICATION NETWORKS (broadcast communication H04H; communication systems using wireless links for non-selective communication, e.g. wireless extensions H04M1/72)
- Y02D: CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE

## Abstract

A secure demand paging system (1020) includes a processor (1030) operable for executing instructions, an internal memory (1034) for a first page in a first virtual machine context, an external memory (1024) for a second page in a second virtual machine context, and a security circuit (1038) coupled to the processor (1030) and to the internal memory (1034) for maintaining the first page secure in the internal memory (1034). The processor (1030) is operable to execute sets of instructions representing: a central controller (4210), an abort handler (4260) coupled to supply to the central controller (4210) at least one signal representing a page fault by an instruction in the processor (1030), a scavenger (4220) responsive to the central controller (4210) and operable to identify the first page as a page to free, a virtual machine context switcher (4230) responsive to the central controller (4210) to change from the first virtual machine context to the second virtual machine context; and a swapper manager (4240) operable to swap in the second page from the external memory (1024) with decryption and integrity check, to the internal memory (1034) in place of the first page.

## Claims

### Claim 1

A system comprising:
an internal memory;
an external memory; and
a processor coupled to the internal memory and to the external memory the processor configured to:
wipe a first page from a page slot of the internal memory;
read a second page from the external memory;
decrypt the second page, to produce a decrypted page;
overwrite the page slot with the decrypted page;
perform a hash on the decrypted page; and
in response to determining that the decrypted page fails the hash, wipe the decrypted page from the page slot of the internal memory.

### Claim 2 (depends on 1)

The system of claim 1, wherein the processor is further configured to record an entry in a table identifying whether the page slot is empty.

### Claim 3 (depends on 1)

The system of claim 1, wherein the processor is further configured to record an entry in a table identifying swap status for the page slot.

### Claim 4 (depends on 1)

The system of claim 1, wherein the processor is further configured to record an entry in a table identifying whether a page slot is swapped in the page slot, a page is swapped out of the page slot, or a page is swapped in after a page was swapped out of the page slot.

### Claim 5 (depends on 1)

The system of claim 1, wherein the processor if further configured to:
read the first page from the internal memory;
encrypt the first page, to produce an encrypted page; and
write the encrypted page to the external memory.

### Claim 6

A method comprising:
wiping, by a processor, a first page from a page slot of an internal memory;
reading, by the processor, a second page from an external memory;
decrypting, by the processor, the second page, to produce a decrypted page;
overwriting, by the processor, the page slot with the decrypted page;
performing, by the processor, a hash on the decrypted page; and
in response to determining that the decrypted page fails the hash, wiping the decrypted page from the page slot of the internal memory.

### Claim 7 (depends on 6)

The method of claim 6, further comprising recording an entry in a table identifying whether the page slot is empty.

### Claim 8 (depends on 6)

The method of claim 6, further comprising recording an entry in a table identifying swap status for the page slot.

### Claim 9 (depends on 6)

The method of claim 6, further comprising recording an entry in a table identifying whether a page slot is swapped in the page slot, a page is swapped out of the page slot, or a page is swapped in after a page was swapped out of the page slot.

### Claim 10 (depends on 6)

The method of claim 6, further comprising:
reading the first page from the internal memory;
encrypting the first page, to produce an encrypted page; and
writing the encrypted page to the external memory.

### Claim 11

A non-transitory computer readable storage medium storing a program for execution by a processor, the program configured to, when executed by the processor, cause the processor to:
wipe a first page from a page slot of an internal memory;
read a second page from an external memory;
decrypt the second page, to produce a decrypted page;
overwrite the page slot with the decrypted page;
perform a hash on the decrypted page; and
in response to determining that the decrypted page fails the hash, wipe the decrypted page from the page slot of the internal memory.

### Claim 12 (depends on 11)

The non-transitory computer readable storage medium of claim 11, wherein the program is further configured to cause the processor to record an entry in a table identifying whether the page slot is empty.

### Claim 13 (depends on 11)

The non-transitory computer readable storage medium of claim 11, wherein the program is further configured to cause the processor to record an entry in a table identifying swap status for the page slot.

### Claim 14 (depends on 11)

The non-transitory computer readable storage medium of claim 11, wherein the program is further configured to cause the processor to record an entry in a table identifying whether a page slot is swapped in the page slot, a page is swapped out of the page slot, or a page is swapped in after a page was swapped out of the page slot.

### Claim 15 (depends on 11)

The non-transitory computer readable storage medium of claim 11, wherein the program is further configured to cause the processor to:
read the first page from the internal memory;
encrypt the first page, to produce an encrypted page; and
write the encrypted page to the external memory.
