Variable handles

US2016011992A1 · US · A1

Patent metadata
FieldValue
Publication numberUS-2016011992-A1
Application numberUS-201514681003-A
CountryUS
Kind codeA1
Filing dateApr 7, 2015
Priority dateJul 14, 2014
Publication dateJan 14, 2016
Grant date

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.

According to one technique, a virtual machine generates an object configured to provide secure access to memory through one or more memory fencing operations. Through the object, the virtual machine receives a call that indicates a memory location and specifies a particular memory fencing operation of the one or more memory fencing operations to perform with respect to the memory location. The virtual machine causes performance of the particular memory fencing operation with respect to the memory location.

First claim

Opening claim text (preview).

What is claimed is: 1 . A method comprising: generating an object configured to provide secure access to memory through one or more memory fencing operations; through the object, receiving a call that indicates a memory location and specifies a particular memory fencing operation of the one or more memory fencing operations to perform with respect to the memory location; causing performance of the particular memory fencing operation with respect to the memory location; and wherein the method is performed by one or more processors. 2 . The method of claim 1 , wherein the object is related to a class that defines the one or more memory fencing operations, but without including an implementation of the one or more memory fencing operations for any particular variable kind of a plurality of different variable kinds. 3 . The method of claim 2 , wherein the plurality of different variable kinds includes one or more of: instance field variable, static field variable, array element variable, or off-heap variable. 4 . The method of claim 2 , wherein the object is an instance of a sub-class that extends from the class and implements the one or more memory fencing operations with respect to a particular variable kind of the plurality of different variable kinds. 5 . The method of claim 2 , further comprising: generating a second object that is an instance of the class; through the second object, receiving a second call that indicates a second memory location and specifies a second particular memory fencing operation of the one or more memory fencing operations to perform with respect to the second memory location, wherein the memory location in memory represents a first variable type and the second memory location represents a second variable type, wherein the first variable type is different than the second variable type; and causing performance of the particular memory fencing operation with respect to the second memory location. 6 . The method of claim 5 , wherein the first variable type and the second variable type are one or more of: int, long, float, double, or object reference. 7 . The method of claim 1 , wherein generating the object binds the object to a first variable type, wherein the call specifies to access the memory location to perform the particular memory fencing operation based on a second variable type, and the method further comprising: determining whether the first variable type matches the second variable type, wherein causing performance of the particular memory fencing operation with respect to the memory location is performed in response to determining that the first variable type matches the second variable type; in response to determining that the first variable type does not match the second variable type performing one or more of: generating an error or conforming the first variable type to the second variable type then causing performance of the particular memory fencing operation with respect to the memory location. 8 . The method claim 1 , wherein generating the object comprises performing a check to determine whether access to the location is permissible, and the method further comprising receiving multiple calls through the object to perform memory fencing operations without repeating the check. 9 . The method claim 1 , wherein the particular memory fencing operation is performed by at least issuing one or more memory barrier instructions natively supported by the one or more processors in addition to one or more load or store instructions to the memory location. 10 . The method of claim 9 , wherein the particular memory fencing operation is performed by combining two or more of the one or more memory barrier instructions natively supported by the one or more processors. 11 . The method of claim 1 , further comprising: receiving a second call through the object that specifies a second memory fencing operation that is different than the particular memory fencing operation to perform with respect to the memory location; and causing performance of the second memory fencing operation with respect to the memory location. 12 . The method of claim 1 , wherein causing performance of the particular memory fencing operation involves invoking code associated with the object that performs one or more safety checks including one or more of: determining that one or more parameters passed into the call match a set of parameters expected by the object, determining whether a reference to the memory location passed into the call is null, or determining whether an array index passed into the call is valid. 13 . The method of claim 1 , wherein the memory fencing operations include operations for one or more access modes including one or more of: relaxed read, relaxed write, volatile read, volatile write, atomic read, atomic write, or atomic update. 14 . A non-transitory computer-readable storage medium storing one or more instructions which, when executed by one or more processors, cause the one or more processors to perform steps comprising: generating an object configured to provide secure access to memory through one or more memory fencing operations; through the object, receiving a call that indicates a memory location and specifies a particular memory fencing operation of the one or more memory fencing operations to perform with respect to the memory location; and causing performance of the particular memory fencing operation with respect to the memory location. 15 . The non-transitory computer-readable storage medium of claim 14 , wherein the object is related to a class that defines the one or more memory fencing operations, but without including an implementation of the one or more memory fencing operations for any particular variable kind of a plurality of different variable kinds. 16 . The non-transitory computer-readable storage medium of claim 15 , wherein the plurality of different variable kinds includes one or more of: instance field variable, static field variable, array element variable, or off-heap variable. 17 . The non-transitory computer-readable storage medium of claim 15 , wherein the object is an instance of a sub-class that extends from the class and implements the one or more memory fencing operations with respect to a particular variable kind of the plurality of different variable kinds. 18 . The non-transitory computer-readable storage medium of claim 15 , wherein the steps further comprise: generating a second object that is an instance of the class; through the second object, receiving a second call that indicates a second memory location and specifies a second particular memory fencing operation of the one or more memory fencing operations to perform with respect to the second memory location, wherein the memory location in memory represents a first variable type and the second memory location represents a second variable type, wherein the first variable type is different than the second variable type; and causing performance of the particular memory fencing operation with respect to the second memory location. 19 . The non-transitory computer-readable medium of claim 18 , wherein the first variable type and the second variable type are one or more of: int, long, float, double, or object reference. 20 . The non-transitory computer-readable medium of claim 18 , wherein generating the object binds the object to a first variable type, wherein the call specifies to access the memory location to perform the particular memory fencing oper

Assignees

Inventors

Classifications

  • Security improvement · CPC title

  • with dedicated cache, e.g. instruction or stack · CPC title

  • In-line storage system · CPC title

  • Command handling arrangements, e.g. command buffers, queues, command scheduling · CPC title

  • in relation to access · 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 US2016011992A1 cover?
According to one technique, a virtual machine generates an object configured to provide secure access to memory through one or more memory fencing operations. Through the object, the virtual machine receives a call that indicates a memory location and specifies a particular memory fencing operation of the one or more memory fencing operations to perform with respect to the memory location. The …
Who is the assignee on this patent?
Oracle Int Corp
What technology area does this patent fall under?
Primary CPC classification G06F12/0875. Mapped technology areas include Physics.
When was this patent published?
Publication date Thu Jan 14 2016 00:00:00 GMT+0000 (Coordinated Universal Time) (A1). Legal status and post-grant events are not shown on this page.
What related patents are in patentsdb?
We list 1 related publication on this page (citations in our corpus or others sharing the same primary CPC).