Patent ID: 7797329
Filing Date: 2010-09-14
Classification: G06F

Abstract:
1. A method for committing memory transactions in an application comprising: compiling the application to create executable code, wherein compiling the application comprises: parsing the executable code to create instrumented code, wherein parsing the executable code comprises: executing the plurality of sections of the application in parallel; creating a first plurality of temporary results, wherein the first plurality of temporary results is created from executing a first section of the plurality of sections; creating a first log, wherein the first log comprises a first plurality of memory transactions associated with the flagged indeterminable variable that occur during execution of the first section, wherein the first plurality of memory transactions comprises a first plurality of writes to a first memory location in the first plurality of temporary results; replacing a value in the first plurality of temporary results when executing the first section comprises first repetitive writes to the first memory location in the first plurality of temporary results; creating a second plurality of temporary results, wherein the second plurality of temporary results is created from executing a second section of the plurality of sections; creating a second log, wherein the second log comprises a second plurality of memory transactions that occur during execution of the second section, wherein the second plurality of memory transactions comprises a second plurality of writes to a second memory location in the second plurality of temporary results; replacing a value in the second plurality of temporary results when executing the second section comprises second repetitive writes to the second memory location in the second plurality of temporary results; comparing, after executing the first section and the second section, the first log with the second log to: committing, when the dependency violation does not exist, memory transactions corresponding to a subset of the first plurality of temporary results and a subset of the second plurality of temporary results, wherein the subset of the first plurality of temporary results and the subset of the second plurality of temporary results is identified by the optimal list of writes, wherein committing memory transactions occurs after executing the plurality of sections in parallel.