Abstract:
Mitigating or managing an effect known as “rowhammer” upon a DRAM device may include a memory controller receiving an activation count threshold value from the DRAM device. The memory controller may detect row activation commands directed to the DRAM device and count the number of the row activation commands. The memory controller may send a mitigative refresh command to the DRAM device based on the result of comparing the counted number of row activation commands with the received activation count threshold value.
Abstract:
Managing row hammering in a DRAM device may include maintaining per-row activation command counts. A next aggressor row may be determined based on the counts. A victim queue may be maintained. A refresh operation may be directed to a row indicated by the victim queue when conditions include that the victim queue is not empty when the refresh command is received. The current aggressor row may be updated with the next aggressor row when conditions include that the victim queue is empty when the refresh command is received. Following updating the current aggressor row, the count of the next aggressor row may be updated. A victim row corresponding to the current aggressor row may be added to the victim queue if the victim queue is empty when the refresh command is received.
Abstract:
Several features pertain to computing systems equipped to perform speculative processing and configured to access device memory (e.g. non-speculative or unspeculatable memory) and non-device memory (e.g. speculative or speculatable memory). Malicious attacks may seek to obtain sensitive information from such systems by exploiting speculative code execution. Herein, techniques are described whereby sensitive data is protected from such attacks by placing the data in a page of memory not ordinarily used as device memory, and then designating or marking the page as device memory (e.g. marking the page as unspeculatable). By designating the page as unspeculatable device memory, the processor does not speculatively access the sensitive information (e.g. speculation stops once a branch is invoked that would access the page) and so certain types of attacks can be mitigated. In some examples, additional malicious attack defenses or mitigations are performed such as address space un-mapping, address space layout randomization, or anti-replay-protection.
Abstract:
A DRAM memory controller is provided that identifies a marker command directed to a given row in a DRAM. If a threshold probability is satisfied in response to an identification of the marker command, the DRAM memory controller commands the DRAM to refresh a neighboring row in the DRAM. The neighboring row may be a neighboring of the given row or of a recently-closed row.
Abstract:
Techniques for protecting software in a computing device are provided. A method according to these techniques includes receiving a request from a non-secure software module to execute an instruction of a secure software module comprising encrypted program code, determining whether the instruction comprises an instruction associated with a controlled point of entry to the secure software module accessible outside of the secure software module, executing one or more instructions of the secure software module responsive to the instruction comprising an instruction associated with the controlled point of entry to the secure software module, and controlling exit from the secure software module to return execution to the non-secure software module.
Abstract:
In an aspect, an apparatus defines a group of registers that includes at least one of a plurality of registers in an integrated circuit. Each of the plurality of registers in the integrated circuit may be constrained to one of a plurality of fixed groups of registers. The apparatus applies a first set of access control rules to the group of registers, the first set of access control rules configured to override any of a second set of access control rules applied to the one or more fixed groups of registers.