Compute node security

US10565129B2 · US · B2

Patent metadata
FieldValue
Publication numberUS-10565129-B2
Application numberUS-201715637685-A
CountryUS
Kind codeB2
Filing dateJun 29, 2017
Priority dateMay 26, 2017
Publication dateFeb 18, 2020
Grant dateFeb 18, 2020

How to read this patent

A practical reading order for non-experts. Skip the full description unless you need deep technical detail.

  1. Title

    What the patent document calls the invention.

  2. Abstract

    A short plain-language summary of the technical disclosure.

  3. Assignees and inventors

    Who owns or filed the patent and who is credited as inventor.

  4. Key dates

    Filing, priority, publication, and grant dates set the timeline.

  5. First independent claim

    The legal scope of protection — read this for what is actually claimed.

  6. CPC / IPC classifications

    Technology tags used to group this patent with similar filings.

  7. Citations and related patents

    Prior art links and similar publications in this corpus.

Abstract

Official abstract text for this publication.

In various examples a compute node is described. The compute node has a central processing unit which implements a hardware transactional memory using at least one cache of the central processing unit. The compute node has a memory in communication with the central processing unit, the memory storing information comprising at least one of: code and data. The compute node has a processor which loads at least part of the information, from the memory into the cache. The processor executes transactions using the hardware transactional memory and at least the loaded information, such that the processor ensures that the loaded information remains in the cache until completion of the execution.

First claim

Opening claim text (preview).

The invention claimed is: 1. A compute node comprising: at least one cache which implements a hardware transactional memory; a memory in communication with the at least one cache, the memory storing information associated with a victim process, the information comprising at least one of code and data; and a processor that loads the information from the memory into the at least one cache and executes the victim process as transactions using the hardware transactional memory and at least the loaded information, such that the processor ensures that the loaded information remains in the cache until the execution of the victim process either aborts or completes, wherein the processor separates sequentially accessed read cache lines of the cache by a page boundary from write cache lines and provides safety margins between read and write cache lines on the same page. 2. The compute node of claim 1 wherein the hardware transactional memory is configured to abort the transactions if at least part of the information is evicted from the cache. 3. The compute node of claim 1 wherein the cache is shared by the victim process and another process which is an attacker process seeking to infer the information through a cache-based side-channel attack. 4. The compute node of claim 1 wherein the cache writes back a result of the victim process to the memory on completion of the execution. 5. The compute node of claim 1 wherein the processor loads the information from the memory into the cache in an oblivious manner. 6. The compute node of claim 1 wherein the processor is instructed to load the information from the memory into the cache by instructions added to the victim process. 7. The compute node of claim 6 wherein the processor is instructed to load the information from the memory into the cache by taking into account a size of a working set. 8. The compute node of claim 1 wherein the processor loads the information from the memory into a read set and a write set of the cache. 9. The compute node of claim 1 wherein the information comprises data and wherein the processor loads the data into a write set of the cache. 10. The compute node of claim 1 wherein the information comprises code and wherein the processor loads the code into a read set of the cache. 11. The compute node of claim 1 wherein the information comprises code and wherein the processor is instructed by instructions added to the victim process to restrict the amount of code in individual ones of the transactions to the size of a first level of the cache and to load the restricted amount of code into the first level cache via execution of the instructions added to the victim process. 12. The compute node of claim 1 wherein the processor is instructed by instructions added to the victim process to reserve a plurality of cache sets in the cache for a write set of the hardware transactional memory. 13. The compute node of claim 1 wherein the victim process comprises instructions added by a compiler which do not change the behavior of the victim process but which enables a cache line to be loaded into an instruction cache without side effects. 14. The compute node of claim 1 comprising an enclave and an untrusted operating system, and wherein the victim process is executed in the enclave and an attacker process is executed by the processor outside the enclave and wherein the victim thread requests, from the untrusted operating system, control over threads running on the processor, and wherein the victim process checks that the untrusted operating system correctly completes the request. 15. The compute node of claim 14 which is a secure processing unit comprising an enclave in an isolated execution environment. 16. A compute node comprising: at least one cache which implements a hardware transactional memory; a memory in communication with the at least one cache, the memory storing information associated with a victim process, the information comprising at least one of code and data; a processor that loads the information from the memory into the at least one cache and executes the victim process as transactions using the hardware transactional memory and at least the loaded information, such that the processor ensures that the transactions abort if any of the information is evicted from the cache; and an enclave that executes a thread and writes a marker to an associated state save area in the enclave when the thread is interrupted and leaves the enclave, wherein the victim process inspects markers written by the enclave to ensure that the thread has not been interrupted and migrated outside the enclave. 17. A computer-implemented method at a compute node, the method comprising: implementing a hardware transactional memory at a cache of the compute node; at a memory in communication with the at least one cache, storing information associated with a victim process, the information comprising code and data; loading the information, from whole regions of the memory into the at least one cache; and executing the victim process as transactions using the hardware transactional memory and at least the loaded information so as to ensure that the loaded information remains in the cache until the execution of the victim process either aborts or completes, wherein sequentially accessed read cache lines of the cache are separated by a page boundary from write cache lines and safety margins are provided between read and write cache lines on the same page.

Assignees

Inventors

Classifications

  • Instruction code · CPC title

  • with main memory updating (G06F12/0806 takes precedence) · CPC title

  • for a range · CPC title

  • operating in dual or compartmented mode, i.e. at least one secure mode · CPC title

  • by executing in a restricted environment, e.g. sandbox or secure virtual machine · CPC title

Patent family

Related publications grouped by family.

External sources

Frequently asked questions

Answers are generated from the same data shown on this page.

What does patent US10565129B2 cover?
In various examples a compute node is described. The compute node has a central processing unit which implements a hardware transactional memory using at least one cache of the central processing unit. The compute node has a memory in communication with the central processing unit, the memory storing information comprising at least one of: code and data. The compute node has a processor which l…
Who is the assignee on this patent?
Microsoft Technology Licensing Llc
What technology area does this patent fall under?
Primary CPC classification G06F21/71. Mapped technology areas include Physics.
When was this patent published?
Publication date Tue Feb 18 2020 00:00:00 GMT+0000 (Coordinated Universal Time) (B2). Legal status and post-grant events are not shown on this page.
What related patents are in patentsdb?
We list 4 related publications on this page (citations in our corpus or others sharing the same primary CPC).