US2022350609A1PendingUtilityA1

Protection Against Timing-based Security Attacks on Re-order Buffers

Assignee: MICRON TECHNOLOGY INCPriority: Dec 5, 2018Filed: Jul 18, 2022Published: Nov 3, 2022
Est. expiryDec 5, 2038(~12.3 yrs left)· nominal 20-yr term from priority
G06F 2205/063G06F 21/52G06F 9/3836G06F 9/3814G06F 9/50G06F 21/55G06F 21/75G06F 9/3855G06F 21/71G06F 9/3856
66
PatentIndex Score
0
Cited by
0
References
0
Claims

Abstract

Methods, systems, and apparatuses related to re-order buffers and for protection from timing-based security attacks are described. A processor may have functional units configured to execute instructions out of order, a re-order buffer configured to buffer the execution results of instructions for output in order, and a controller configured to randomize data timing in the re-order buffer. For example, the controller can make random adjustments to the capacity of the re-order buffer in buffering and/or sorting execution results and thus randomize data timing in the re-order buffer.

Claims

exact text as granted — not AI-modified
What is claimed is: 
     
         1 . A device, comprising:
 a buffer having a full capacity;   a random number generator; and   a controller configured to adjust a currently usable capacity of the buffer as a random fraction of the full capacity based on an output of the random number generator.   
     
     
         2 . The device of  claim 1 , wherein the device includes a processor having the buffer, the controller, and one or more functional units. 
     
     
         3 . The device of  claim 2 , wherein the buffer is configured to store results of instructions executed in the one or more functional units out of order relative to a programmed order of the instructions. 
     
     
         4 . The device of  claim 3 , wherein the processor further includes registers; and the processor is further configured to write the results from the buffer to the registers according to the programmed order of the instructions. 
     
     
         5 . The device of  claim 4 , wherein the controller is configured to adjust the currently usable capacity periodically. 
     
     
         6 . The device of  claim 4 , wherein the controller is configured to update the random fraction periodically according to an output of the random number generator. 
     
     
         7 . The device of  claim 4 , wherein the controller is configured to update the random fraction after a random time period. 
     
     
         8 . The device of  claim 4 , wherein the controller is configured to change a timing pattern in results, generated by the instructions and stored in the buffer, by adjusting the random fraction. 
     
     
         9 . The device of  claim 8 , further comprising:
 an instruction buffer, wherein the processor is configured to fetch the instructions into the instruction buffer in accordance the programmed order of the instructions and issue instructions from the instruction buffer to the one or more functional units out of order relative to the programmed order of the instructions.   
     
     
         10 . A processor, comprising:
 a first buffer having a full capacity;   a random number generator; and   a controller configured to adjust a currently usable capacity of the first buffer as a random fraction of the full capacity based on an output of the random number generator.   
     
     
         11 . The processor of  claim 10 , further comprising:
 one or more functional units; and   a second buffer;   wherein the processor is configured to fetch instructions into the second buffer in a first order, and issue the instructions from the second buffer to the one or more functional units in a second order different from the first order; and   wherein the first buffer is configured to store results of execution of the instructions by the one or more functional units as issued from the second buffer.   
     
     
         12 . The processor of  claim 11 , further comprising:
 registers, wherein the processor is further configured to write the results from the first buffer to the registers according to the first order.   
     
     
         13 . The processor of  claim 12 , wherein the controller is configured to adjust the currently usable capacity periodically. 
     
     
         14 . The processor of  claim 12 , wherein the controller is configured to update the random fraction periodically according to an output of the random number generator. 
     
     
         15 . The processor of  claim 12 , wherein the controller is configured to update the random fraction after a random time period. 
     
     
         16 . The processor of  claim 12 , wherein the controller is configured to change a timing pattern in results, generated by execution of the instructions and stored in the first buffer, by adjusting the random fraction. 
     
     
         17 . A method, comprising:
 generating, using a random number generator of a device, an output; and   adjusting, by a controller of the device having a first buffer and based on the output of the random number generator, a currently usable capacity of the first buffer as a random fraction of a full capacity of the first buffer.   
     
     
         18 . The method of  claim 17 , further comprising:
 fetching instructions into a second buffer in a first order;   issuing the instructions from the second buffer to one or more functional units of the device in a second order different from the first order; and   storing, into the first buffer, results of execution of the instructions by the one or more functional units as issued from the second buffer.   
     
     
         19 . The method of  claim 18 , further comprising:
 writing the results from the first buffer to registers of the device according to the first order.   
     
     
         20 . The method of  claim 19 , further comprising:
 updating the random fraction periodically using the random number generator.

Join the waitlist — get patent alerts

Track US2022350609A1 — get alerts on status changes and closely related new filings.

We store only your email — no account needed. See our privacy policy.