IP Library Granted Patent US 11,100,254
Granted Patent B2
US 11,100,254 · App. 16/210,605 · Granted Aug 24, 2021

Processors with security levels adjustable per applications

Inventor: Steven Jeffrey Wallach (Dallas, TX)
Assignee: Micron Technology, Inc.
G06F21/74G06F9/30043G06F9/30076G06F12/1036G06F21/602G06F21/72
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,100,254
App. No.
16/210,605
Granted
Aug 24, 2021
Kind
B2
Abstract

Methods, systems, and apparatuses related to adjustable security levels in processors are described. A processor may have functional units and a register configured to control security operations of the functional units. The register configures the functional units to operate in a first mode of security operations when the register contains a first setting; and the register configures the functional units to operate in a second mode of security operations when the register contains a second setting (e.g., to skip/bypassing a set of security operation circuit for enhanced execution speed).

Claims (56)

1. A processor, comprising:

functional units configured to execute instructions of a program; and

a register configured to control security operations of the functional units;

wherein the functional units are configurable by the register to operate in a first mode of security operations when the register contains a first setting;

wherein the functional units are configurable by the register to operate in a second mode of security operations when the register contains a second setting;

wherein a set of security operations in the first mode is different from a set of security operations in the second mode; and

wherein the functional units are configurable to execute an instruction faster in the second mode than in the first mode.

2. The processor of claim 1 , wherein the functional units are configurable by the register to bypass a logic circuit that is active in the first mode when the register contains the second setting.

3. The processor of claim 1 , further comprising:

a cache;

wherein the functional units include:

a data path selector;

execution units;

a first data path between the data path selector and the execution units;

a second data path between the data path selector and the execution units; and

wherein the data path selector connects the cache to the execution units via the first data path when in the first mode; and

wherein the data path selector connects the cache to the execution units via the second data path when in the second mode.

4. The processor of claim 3 , wherein the first data path includes a security circuit; and the second data path bypasses the security circuit; and wherein the security circuit includes a scrambler and a unscrambler, an encryption and decryption circuit, or an inversion circuit, or any combination thereof.

5. The processor of claim 4 , wherein the scrambler and the unscrambler includes multiplexers configured to change data by rearranging the orders of bits according to keys; the inversion circuit inverts values of bits according to keys; and the encryption and decryption circuit combines values of bits according to keys.

6. The processor of claim 1 , wherein the register contains the first setting when the processor is executing instructions of a first program; and the register contains the second setting when the processor is executing instructions of a second program.

7. The processor of claim 6 , wherein an instruction of the first program loads the first setting into the register during execution of the first program; and an instruction of the second program loads the second setting into the register during execution of the second program.

8. The processor of claim 6 , wherein the processor is configured to load a security preference setting associated with an object identified by an identifier provided in a virtual address of an instruction when the instruction is being executed in the processor.

9. A method, comprising:

loading a first setting associated with a first program into a register of a processor, the processor having functional units controlled by the register;

configuring the functional units in a first mode of security operations in accordance with the first setting loaded in the register;

executing instructions of the first program in the processor in the first mode of security operations;

loading a second setting associated with a second program into the register;

configuring the functional units in a second mode of security operations in accordance with the second setting loaded in the register; and

executing instructions of the second program in the processor in the second mode of security operations;

wherein at least one security operation performed in the first mode is not performed in the second mode; and the functional units execute a same instruction faster in the second mode than in the first mode.

10. The method of claim 9 , further comprising:

selecting a data path between a cache of the processor and execution units of the processor based on a content in the register.

11. The method of claim 10 , wherein a first data path is selected by the register when in the first mode; and a second data path is selected by the register when in the second mode; and the second data path bypasses a logic circuit.

12. The method of claim 11 , wherein the first data path includes a scrambler and an unscrambler; the second data path bypasses the scrambler and the unscrambler; and

the method further comprises:

unscrambling and scrambling data on the first data path between the cache and the executing units when in the first mode.

13. The method of claim 12 , further comprising:

identifying the first setting based on a virtual address of an instruction of the first program to load the first setting into the register; and

identifying the second setting based on a virtual address of an instruction of the second program to load the second setting into the register.

14. The method of claim 12 , further comprising:

executing a first instruction of the first program to load the first setting into the register; and

executing a second instruction of the second program to load the second setting into the register.

15. A non-transitory computer readable medium storing instructions which, when executed in a processor having a register and functional units, cause the processor to perform a method, the method comprising:

loading a first setting associated with a first application into the register of the processor;

operating the functional units in a first mode of security operations in accordance with the first setting loaded in the register;

executing instructions of the first application in the processor in the first mode of security operations;

loading a second setting associated with a second application into the register;

operating the functional units in a second mode of security operations in accordance with the second setting loaded in the register; and

executing instructions of the second application in the processor in the second mode of security operations;

wherein the functional units execute a same instruction faster in the second mode than in the first mode.

16. The non-transitory computer readable medium of claim 15 , the method further comprising:

identifying the first setting based on an object identifier provided in a virtual address of an instruction of the first application to load the first setting into the register; and

identifying the second setting based on an object identifier provided in a virtual address of an instruction of the second application to load the second setting into the register.

17. The non-transitory computer readable medium of claim 16 , the method further comprising:

executing a first instruction of the first application to load the first setting into the register; and

executing a second instruction of the second application to load the second setting into the register.

Assignments (5)
RELEASE OF SECURITY INTEREST Recorded Nov 15, 2019
From: JPMORGAN CHASE BANK, N.A., AS COLLATERAL AGENT
To: MICRON TECHNOLOGY, INC.
Reel/Frame 051041/0317 →
RELEASE OF SECURITY INTEREST Recorded Oct 14, 2019
From: MORGAN STANLEY SENIOR FUNDING, INC., AS COLLATERAL AGENT
To: MICRON TECHNOLOGY, INC.
Reel/Frame 050724/0392 →
SUPPLEMENT NO. 12 TO PATENT SECURITY AGREEMENT Recorded Apr 19, 2019
From: MICRON TECHNOLOGY, INC.
To: MORGAN STANLEY SENIOR FUNDING, INC., AS COLLATERAL AGENT
Reel/Frame 048948/0677 →
SUPPLEMENT NO. 3 TO PATENT SECURITY AGREEMENT Recorded Apr 19, 2019
From: MICRON TECHNOLOGY, INC.
To: JPMORGAN CHASE BANK, N.A., AS COLLATERAL AGENT
Reel/Frame 048951/0902 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 5, 2018
From: WALLACH, STEVEN JEFFREY
To: MICRON TECHNOLOGY, INC.
Reel/Frame 047724/0401 →