Persistent pointers for programs running on NVRAM based computers
First Claim
1. A method for generating persistent pointers using NVRAM compiler directives in a program for non-volatile random access memory (NVRAM) based computing systems, comprising:
- generating a program including modified variables, wherein the modified variables include NVRAM compiler directives indicative of persistent pointer type;
generating assembly code, including persistent pointer enablers, using the program including the modified variables by a compiler;
mapping information of each NVRAM segment formed by the program with an associated physical address in an NVRAM by an NVRAM driver residing in the NVRAM or main memory;
maintaining an NVRAM registry including the mapped information, by the NVRAM driver;
determining valid virtual addresses of processes during runtime using the generated assembly code including the persistent pointer enablers and the NVRAM registry including the mapped information; and
generating, during runtime, the persistent pointers from the valid virtual addresses using the generated assembly code, wherein the information of each NVRAM segment comprises a unique NVRAM segment name, segment identifier, physical address of a NVRAM page that is part of the respective NVRAM segment and attributes assigned to the respective NVRAM segment by an operating system.
2 Assignments
0 Petitions
Accused Products
Abstract
In one example implementation, a method for generating persistent pointers using non-volatile random access memory (NVRAM) compiler directives in a program for NVRAM based computing systems includes generating a program including modified variables. The modified variables include NVRAM compiler directives indicative of persistent pointer type. The method further includes generating assembly code, including persistent pointer enablers, using the program including the modified variables by a compiler. Furthermore, the method includes mapping information of each NVRAM segment formed by the program with an associated physical address in NVRAM by an NVRAM driver residing in the NVRAM or main memory, maintaining an NVRAM registry including the mapped information by the NVRAM driver, determining valid virtual addresses of processes during runtime using the generated assembly code including the persistent pointer enablers and the NVRAM registry including the mapped information, and generating the persistent pointers from the valid virtual addresses during runtime.
-
Citations
13 Claims
-
1. A method for generating persistent pointers using NVRAM compiler directives in a program for non-volatile random access memory (NVRAM) based computing systems, comprising:
-
generating a program including modified variables, wherein the modified variables include NVRAM compiler directives indicative of persistent pointer type; generating assembly code, including persistent pointer enablers, using the program including the modified variables by a compiler; mapping information of each NVRAM segment formed by the program with an associated physical address in an NVRAM by an NVRAM driver residing in the NVRAM or main memory; maintaining an NVRAM registry including the mapped information, by the NVRAM driver; determining valid virtual addresses of processes during runtime using the generated assembly code including the persistent pointer enablers and the NVRAM registry including the mapped information; and generating, during runtime, the persistent pointers from the valid virtual addresses using the generated assembly code, wherein the information of each NVRAM segment comprises a unique NVRAM segment name, segment identifier, physical address of a NVRAM page that is part of the respective NVRAM segment and attributes assigned to the respective NVRAM segment by an operating system. - View Dependent Claims (2, 3, 4)
-
-
5. A system for generating persistent pointers using non-volatile random access memory (NVRAM) compiler directives in a program for NVRAM based computing systems comprising:
-
a server; and a computing system communicatively coupled to the server, wherein the computing system comprises; an NVRAM; and a main memory that is communicatively coupled with the NVRAM, wherein the NVRAM includes an NVRAM registry, wherein an NVRAM driver resides in the main memory or the NVRAM, wherein the server includes a compiler, and wherein the compiler includes an NVRAM compiler directive code generator to; generate a program including modified variables, wherein the modified variables include NVRAM compiler directives indicative of persistent pointer type; generate assembly code, including persistent pointer enablers, using the program including the modified variables, by the NVRAM compiler directive code generator; map information of each NVRAM segment formed by the program with an associated physical address in the NVRAM by the NVRAM driver; maintain the NVRAM registry including the mapped information, by the NVRAM driver; determine valid virtual addresses of processes during runtime using the generated assembly code including the persistent pointer enablers and the NVRAM registry including the mapped information, by the NVRAM driver; and generate the persistent pointers from the valid virtual addresses during runtime, by the generated assembly code. - View Dependent Claims (6, 7, 8, 9, 10)
-
-
11. A non-transitory computer readable storage medium comprising a set of instructions executable by at least one processor resource to:
-
generate a program including modified variables, wherein the modified variables include non-volatile random access memory (NVRAM) compiler directives indicative of persistent pointer type; generate assembly code, including persistent pointer enablers, using the program including the modified variables by a compiler; map information of each NVRAM segment formed by the program with an associated physical address in an NVRAM by an NVRAM driver residing in the NVRAM or main memory; maintain an NVRAM registry including the mapped information, by the NVRAM driver; determine valid virtual addresses of processes during runtime using the generated assembly code including the persistent pointer enablers and the NVRAM registry including the mapped information; and generate persistent pointers from the valid virtual addresses during runtime using the generated assembly code wherein the information of each NVRAM segment comprises a unique NVRAM segment name, segment identifier, physical address of a NVRAM page that is part of the respective NVRAM segment and attributes assigned to the respective NVRAM segment by an operating system. - View Dependent Claims (12, 13)
-
Specification