Patent ID: 9009452
Filing Date: 2015-04-14
Classification: G06F

Abstract:
1. A method for managing memory access to a physical shared memory location for transaction data of a first thread, the shared memory location being accessible by the first thread and a second thread, the method comprising; executing a string of instructions to complete a transaction of said first thread, beginning with one instruction of said string of instructions; determining that said one instruction is part of an active atomic instruction group (AIG) of instructions associated with said transaction of said first thread, the AIG having a BEGIN_AIG instruction to indicate the beginning of the AIG and an END_AIG instruction to indicate the end of the AIG, and the BEGIN_AIG and END_AIG are marking code in the form of instructions representing any chosen equivalent function instruction; entering a millicode mode and assisting a computing system to enter an AIG mode based on said one instruction being part of an active AIG, the millicode creating required transaction tables which provides for entries in an active mode for said AIG, each data entry having a physical address of a shared memory location that is being inspected or updated and is involved in the AIG inspected or modified by instructions of said active AIG and all storage locations inspected or modified by instructions of said active AIG remain pending until the computing system indicates that the storage locations should be committed, the millicode mode invoked to perform load and store processing, each shared memory location being an increment of a main memory of the computing system, each increment of main memory having a respective private to transaction (PTRAN) bit directly addressable as part of each increment of the main memory, wherein each PTRAN bit is configured to indicate whether or not a data entry in the shared memory location in which the PTRAN bit is located is part of a speculative memory state of an uncommitted transaction that is currently active in the computing system; and executing a next instruction under normal execution mode based on said one instruction not being part of an active AIG.