Patents by Inventor Jong-Deok Choi
Jong-Deok Choi has filed for patents to protect the following inventions. This listing includes patent applications that are pending as well as patents that have already been granted by the United States Patent and Trademark Office (USPTO).
-
Patent number: 7356653Abstract: A method of optimizing memory synchronization through software in a multi-threaded computer system using a read-initiated memory synchronization process is described. One or more embodiments of the invention may operate in a computer system capable of executing at least one computational activity needing exclusive access shared memory. In the method of one or more embodiments, a multi-field lock may be associated with shared memory to reserved it for exclusive use by a first processor, and where the multi-field lock is already reserved by a second processor, synchronizing the shared memory by the second processor, updating the multi-field lock reservation information; and performing instruction synchronization for the first processor.Type: GrantFiled: June 3, 2005Date of Patent: April 8, 2008Assignee: International Business Machines CorporationInventors: Christoph von Praun, Jong-Deok Choi
-
Publication number: 20070288908Abstract: Computer implemented method, system and computer usable program code for profiling the execution of an application that is both space-and time-efficient and highly accurate. A computer implemented method for profiling the execution of an application includes sampling execution characteristics of the application at a plurality of sampling points to provide samples, and deriving a calling context of the samples. The application is continuously executed between sampling points while additional profiling data is gathered.Type: ApplicationFiled: June 9, 2006Publication date: December 13, 2007Applicant: International Business Machines CorporationInventors: Harold Wade Cain, Jong-Deok Choi, Mauricio Jose Serrano, Xiaotong Zhuang
-
Publication number: 20070239974Abstract: An information processing system includes a branch target buffer (BTF) comprising the last next address for the instruction and for receiving an indirect instruction address and providing a BTB predicted target; and next branch target table (NBTT) for storing potential branch targets based on a history of the branch and for providing an NBTT when the a BTB predicted target is not successful. In another embodiment a system comprising a plurality of branch prediction resources dynamically predicts the best resource appropriate for a branch. The method includes predicting a target branch for an indirect instruction address using a resource chosen among the plurality of branch prediction resources; and selectively inhibiting updates of the branch prediction resources whose prediction accuracy does not meet a threshold.Type: ApplicationFiled: April 7, 2006Publication date: October 11, 2007Inventors: II Park, Mauricio Serrano, Jong-Deok Choi
-
Patent number: 7275241Abstract: The present invention provides a method, apparatus, and computer instructions for dynamic intermediate code transformation in a mixed mode compiler. In an exemplary embodiment, an object code compiler of a virtual-machine, such as the just-in-time (JIT) compiler (415) of a Java virtual machine (JVM), takes loaded classes and compiles these into object code (416). A JIT-enabled dynamic instrumentation (JEDI) interface (420) provides information to an application (e.g., a tool with a GUI), and passes requests for transformation to the JIT (415) and class-loader (410). If loaded, JEDI controls the JIT compiler (415) to compile and transform the class into object code. Thus, dynamically transformed object code is produced without transformation or re-loading of the loaded classes.Type: GrantFiled: November 21, 2003Date of Patent: September 25, 2007Assignee: International Business Machines CorporationInventors: Jong-Deok Choi, Flavio Alvarenga Bergamaschi
-
Publication number: 20070198973Abstract: A computer-implemented method, system, and program product for optimizing a distributed (software) application are provided. Specifically, a configuration of a target computing environment, in which the distributed application is deployed, is discovered upon deployment of the distributed application. Thereafter, based on a set of rules and the discovered configuration, one or more optimization techniques are applied to optimize the distributed application. In a typical embodiment, the set of rules can be embedded in the distributed application, or they can be accessed from an external source such as a repository.Type: ApplicationFiled: February 2, 2006Publication date: August 23, 2007Applicant: International Business Machines CorporationInventors: Jong-Deok Choi, Manish Gupta, Parviz Kermani, Kang-Won Lee, Kyung Ryu, Dinesh Verma, Peng Wu
-
Publication number: 20060277374Abstract: A method of optimizing memory synchronization through software in a multi-threaded computer system using a read-initiated memory synchronization process is described. One or more embodiments of the invention may operate in a computer system capable of executing at least one computational activity needing exclusive access shared memory. In the method of one or more embodiments, a multi-field lock may be associated with shared memory to reserved it for exclusive use by a first processor, and where the multi-field lock is already reserved by a second processor, synchronizing the shared memory by the second processor, updating the multi-field lock reservation information; and performing instruction synchronization for the first processor.Type: ApplicationFiled: June 3, 2005Publication date: December 7, 2006Inventors: Christoph von Praun, Jong-Deok Choi
-
Publication number: 20060272005Abstract: A method for determining whether to provide a requested service includes steps of receiving a current request for at least one secure service; searching a cache for a stored decision on whether to provide the at least one secure service, wherein the stored decision was made responsive to a prior request that is equivalent to the current request; using the stored decision when the stored decision is found; and performing a security check to determine whether a requested secure service can be granted, if the stored decision is not found. According to other embodiments, the method can be implemented as a computer readable medium including program instructions for performing the method or as an information processing system comprising a processor and memory for performing the method.Type: ApplicationFiled: May 24, 2005Publication date: November 30, 2006Inventors: Glenn Ammons, Jong-Deok Choi, Manish Gupta, Nikhil Swamy
-
Publication number: 20060242393Abstract: An information processing system for branch target prediction is disclosed. The information processing system includes a memory for storing entries, wherein each entry includes a plurality of target addresses representing a history of target addresses for a multi-target branch and logic for reading the memory and identifying a repeated pattern in a plurality of target addresses for a multi-target branch. The information processing system further includes logic for predicting a next target address for the multi-target branch based on the repeated pattern that was identified.Type: ApplicationFiled: April 20, 2005Publication date: October 26, 2006Inventors: Il Park, Pratap Pattnaik, Jong-Deok Choi
-
Publication number: 20050114848Abstract: The present invention provides a method, apparatus, and computer instructions for dynamic intermediate code transformation in a mixed mode compiler. In an exemplary embodiment, an object code compiler of a virtual-machine, such as the just-in-time (JIT) compiler (415) of a Java virtual machine (JVM), takes loaded classes and compiles these into object code (416). A JIT-enabled dynamic instrumentation (JEDI) interface (420) provides information to an application (e.g., a tool with a GUI), and passes requests for transformation to the JIT (415) and class-loader (410). If loaded, JEDI controls the JIT compiler (415) to compile and transform the class into object code. Thus, dynamically transformed object code is produced without transformation or re-loading of the loaded classes.Type: ApplicationFiled: November 21, 2003Publication date: May 26, 2005Inventors: Jong-Deok Choi, Flavio Bergamaschi
-
Patent number: 6865730Abstract: A method is provided for analyzing an object oriented program that supports dynamic class loading. A set A of classes in the program is identified, wherein each class within set A is capable of, during execution of the program, causing the loading of a class outside of set A. A first set of method calls belonging to the classes in set A are identified that, during execution of the program, are capable of calling only methods belonging to a class within set A. A second set of method calls belonging to the classes in set A are identified that, during execution of the program, are capable of calling methods belonging to a class outside set A. Data that identifies the first and the second set of method calls is stored for subsequent use.Type: GrantFiled: May 26, 2000Date of Patent: March 8, 2005Assignee: International Business Machines CorporationInventors: Michael G. Burke, Jong-Deok Choi, Vugranam C. Sreedhar
-
Patent number: 6854108Abstract: A method (and apparatus) of determinstically replaying an observable run-time behavior of distributed multi-threaded programs on multiprocessors in a shared-memory multiprocessor environment, wherein a run-time behavior of the programs includes sequences of events, each sequence being associated with one of a plurality of execution threads, includes identifying an execution order of critical events of the program, wherein the program includes critical events and non-critical events, generating groups of critical events of the program, generating, for each given execution thread, a logical thread schedule that identifies a sequence of the groups associated with the given execution thread, and storing the logical thread schedule for subsequent reuse.Type: GrantFiled: May 11, 2000Date of Patent: February 8, 2005Assignee: International Business Machines CorporationInventor: Jong-Deok Choi
-
Patent number: 6832367Abstract: A method for recording and replaying execution of distributed programs on a computer system in a distributed environment, includes identifying an execution order of critical events of a program, generating groups of critical events of the program, wherein for each group, critical events belonging to the group belong to a common execution thread, and generating for each execution thread a logical thread schedule that identifies a sequence of the groups so as to allow deterministically replaying a non-deterministic arrival of stream socket connection requests, a non-deterministic number of bytes received during message reads, and a non-deterministic binding of stream sockets to local ports.Type: GrantFiled: March 6, 2000Date of Patent: December 14, 2004Assignee: International Business Machines CorporationInventors: Jong-Deok Choi, Ravi Konuru, Harini Srinivasan
-
Publication number: 20030236951Abstract: A method of detecting a datarace between first and second memory accesses within a program, including: determining whether the first and second memory accesses are to the same memory location; determining whether the first and second memory accesses are executed by different threads in the program; determining whether the first and second memory accesses are guarded by a common synchronization object; and determining whether there is an execution ordering enforced between the first and second memory accesses.Type: ApplicationFiled: June 25, 2002Publication date: December 25, 2003Applicant: International Business Machines CorporationInventors: Jong-Deok Choi, Keunwoo Lee, Robert W. O'Callahan, Vivek Sarkar, Manu Sridharan
-
Patent number: 6530079Abstract: A method and several variants for using information about the scope of access of objects acted upon by mutual exclusion, or mutex, locks to transform a computer program by eliminating locking operations from the program or simplifying the locking operations, while strictly performing the semantics of the original program. In particular, if it can be determined by a compiler that the object locked can only be accessed by a single thread it is not necessary to perform the “acquire” or “release” part of the locking operation, and only its side effects must be performed. Likewise, if it can be determined that the side effects of a locking operation acting on a variable which is locked in multiple threads are not needed, then only the locking operation, and not the side effects, needs to be performed.Type: GrantFiled: June 2, 1999Date of Patent: March 4, 2003Assignee: International Business Machines CorporationInventors: Jong-Deok Choi, Manish Gupta, Mauricio J. Serrano, Vugranam C. Sreedhar, Samuel Pratt Midkiff
-
Publication number: 20020188651Abstract: A static datarace detection method (and apparatus) for multithreaded applications includes inputting a set of input information including a multithreaded context graph (MCG) representation of a multithreaded application, processing the set of input information, and outputting a statement conflict set (SCS). The SCS is a set of statement pairs that may exhibit dataraces. The processing of the set of information includes initializing a synchronization object set for each of a plurality of MCG nodes, performing a nested traversal on the MCG to identify pairs of MCG nodes which are not mutually synchronized, and examining each pair of MCG nodes which are not mutually exclusive to determine if pairs of statements in the nodes represent a datarace by considering objects that can be accessed by the statements.Type: ApplicationFiled: January 2, 2002Publication date: December 12, 2002Applicant: International Business Machines CorporationInventors: Jong-Deok Choi, Alexey Loginov, Vivek Sarkar
-
Patent number: 6487716Abstract: A method and several variants are provided for analyzing and transforming a computer program such that instructions may be reordered even across instructions that may throw an exception, while strictly preserving the precise exception semantics of the original program. The method uses program analysis to identify the subset of program state that needs to be preserved if an exception is thrown. Furthermore, the method performs a program transformation that allows dependence constraints among potentially excepting instructions to be completely ignored while applying program optimizations. This transformation does not require any special hardware support, and requires a compensation code to be executed only if an exception is thrown, i.e., no additional instructions need to be executed if an exception is not thrown. Variants of the method show how one or several of the features of the method may be performed.Type: GrantFiled: October 8, 1999Date of Patent: November 26, 2002Assignee: International Business Machines CorporationInventors: Jong-Deok Choi, Manish Gupta, Michael Hind
-
Patent number: 6381738Abstract: Information is computed about the reachability relationships among objects and pointers to enable transformation of a computer program for optimizing the creation and destruction of objects, while strictly performing the semantics of the original program. An interprocedural analysis is used to determine whether an object that is allocated on the heap during the execution of a procedure is not reachable from any global variable, parameter, or the return value of the procedure after it returns. If so, that object can be allocated on the stack frame of the procedure in which it is otherwise heap-allocated. This simplifies the memory allocation and deallocation operations, as allocation on the stack can be done more efficiently than allocation on the heap, and objects allocated on the stack frame of a procedure are automatically deallocated when the procedure returns, without incurring the overhead of garbage collection.Type: GrantFiled: July 16, 1999Date of Patent: April 30, 2002Assignee: International Business Machines CorporationInventors: Jong-Deok Choi, Manish Gupta, Mauricio J. Serrano, Vugranam C. Sreedhar, Samuel Pratt Midkiff
-
Patent number: 6301700Abstract: Given a class hierarchy (a collection of classes and inheritance relations among them) and a program P that uses the hierarchy, a slice of the class hierarchy is computed with respect to the program by eliminating from the hierarchy those data members, member functions, classes, and inheritance relations that are unnecessary for ensuring that the semantics of P is maintained.Type: GrantFiled: April 7, 1999Date of Patent: October 9, 2001Assignee: International Business Machines CorporationInventors: Jong-Deok Choi, John H. Field, Ganesan Ramalingam, Frank Tip
-
Patent number: 6179491Abstract: Given a class hierarchy (a collection of classes and inheritance relations among them) and a program P that uses the hierarchy, a slice of the class hierarchy is computed with respect to the program by eliminating from the hierarchy those data members, member functions, classes, and inheritance relations that are unnecessary for ensuring that the semantics of P is maintained.Type: GrantFiled: February 5, 1997Date of Patent: January 30, 2001Assignee: International Business Machines CorporationInventors: Jong-Deok Choi, John H. Field, Ganesan Ramalingam, Frank Tip
-
Patent number: 6101524Abstract: A multithreaded program includes sequences of events wherein each sequence is associated with one of a plurality of execution threads. In a record mode, the software tool of the present invention records a run-time representation of the program by distinguishing critical events from non-critical events of the program and identifying the execution order of such critical events. Groups of critical events are generated wherein, for each group G.sub.i, critical events belonging to the group G.sub.i belong to a common execution thread, critical events belonging to the group G.sub.i are consecutive, and only non-critical events occur between any two consecutive critical events in the group G.sub.i. In addition, the groups are ordered and no two adjacent groups include critical events that belong to a common execution thread. For each execution thread, a logical thread schedule is generated that identifies a sequence of said groups associated with the execution thread.Type: GrantFiled: October 23, 1997Date of Patent: August 8, 2000Assignee: International Business Machines CorporationInventors: Jong-Deok Choi, Harini Srinivasan