Dynamic memory allocation
US-2015127916-A1 · May 7, 2015 · US
US2016011992A1 · US · A1
| Field | Value |
|---|---|
| Publication number | US-2016011992-A1 |
| Application number | US-201514681003-A |
| Country | US |
| Kind code | A1 |
| Filing date | Apr 7, 2015 |
| Priority date | Jul 14, 2014 |
| Publication date | Jan 14, 2016 |
| Grant date | — |
A practical reading order for non-experts. Skip the full description unless you need deep technical detail.
What the patent document calls the invention.
A short plain-language summary of the technical disclosure.
Who owns or filed the patent and who is credited as inventor.
Filing, priority, publication, and grant dates set the timeline.
The legal scope of protection — read this for what is actually claimed.
Technology tags used to group this patent with similar filings.
Prior art links and similar publications in this corpus.
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.
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
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
Related publications grouped by family.
Answers are generated from the same data shown on this page.