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: 7356653
    Abstract: 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: Grant
    Filed: June 3, 2005
    Date of Patent: April 8, 2008
    Assignee: International Business Machines Corporation
    Inventors: Christoph von Praun, Jong-Deok Choi
  • Publication number: 20070288908
    Abstract: 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: Application
    Filed: June 9, 2006
    Publication date: December 13, 2007
    Applicant: International Business Machines Corporation
    Inventors: Harold Wade Cain, Jong-Deok Choi, Mauricio Jose Serrano, Xiaotong Zhuang
  • Publication number: 20070239974
    Abstract: 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: Application
    Filed: April 7, 2006
    Publication date: October 11, 2007
    Inventors: II Park, Mauricio Serrano, Jong-Deok Choi
  • Patent number: 7275241
    Abstract: 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: Grant
    Filed: November 21, 2003
    Date of Patent: September 25, 2007
    Assignee: International Business Machines Corporation
    Inventors: Jong-Deok Choi, Flavio Alvarenga Bergamaschi
  • Publication number: 20070198973
    Abstract: 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: Application
    Filed: February 2, 2006
    Publication date: August 23, 2007
    Applicant: International Business Machines Corporation
    Inventors: Jong-Deok Choi, Manish Gupta, Parviz Kermani, Kang-Won Lee, Kyung Ryu, Dinesh Verma, Peng Wu
  • Publication number: 20060277374
    Abstract: 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: Application
    Filed: June 3, 2005
    Publication date: December 7, 2006
    Inventors: Christoph von Praun, Jong-Deok Choi
  • Publication number: 20060272005
    Abstract: 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: Application
    Filed: May 24, 2005
    Publication date: November 30, 2006
    Inventors: Glenn Ammons, Jong-Deok Choi, Manish Gupta, Nikhil Swamy
  • Publication number: 20060242393
    Abstract: 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: Application
    Filed: April 20, 2005
    Publication date: October 26, 2006
    Inventors: Il Park, Pratap Pattnaik, Jong-Deok Choi
  • Publication number: 20050114848
    Abstract: 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: Application
    Filed: November 21, 2003
    Publication date: May 26, 2005
    Inventors: Jong-Deok Choi, Flavio Bergamaschi
  • Patent number: 6865730
    Abstract: 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: Grant
    Filed: May 26, 2000
    Date of Patent: March 8, 2005
    Assignee: International Business Machines Corporation
    Inventors: Michael G. Burke, Jong-Deok Choi, Vugranam C. Sreedhar
  • Patent number: 6854108
    Abstract: 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: Grant
    Filed: May 11, 2000
    Date of Patent: February 8, 2005
    Assignee: International Business Machines Corporation
    Inventor: Jong-Deok Choi
  • Patent number: 6832367
    Abstract: 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: Grant
    Filed: March 6, 2000
    Date of Patent: December 14, 2004
    Assignee: International Business Machines Corporation
    Inventors: Jong-Deok Choi, Ravi Konuru, Harini Srinivasan
  • Publication number: 20030236951
    Abstract: 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: Application
    Filed: June 25, 2002
    Publication date: December 25, 2003
    Applicant: International Business Machines Corporation
    Inventors: Jong-Deok Choi, Keunwoo Lee, Robert W. O'Callahan, Vivek Sarkar, Manu Sridharan
  • Patent number: 6530079
    Abstract: 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: Grant
    Filed: June 2, 1999
    Date of Patent: March 4, 2003
    Assignee: International Business Machines Corporation
    Inventors: Jong-Deok Choi, Manish Gupta, Mauricio J. Serrano, Vugranam C. Sreedhar, Samuel Pratt Midkiff
  • Publication number: 20020188651
    Abstract: 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: Application
    Filed: January 2, 2002
    Publication date: December 12, 2002
    Applicant: International Business Machines Corporation
    Inventors: Jong-Deok Choi, Alexey Loginov, Vivek Sarkar
  • Patent number: 6487716
    Abstract: 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: Grant
    Filed: October 8, 1999
    Date of Patent: November 26, 2002
    Assignee: International Business Machines Corporation
    Inventors: Jong-Deok Choi, Manish Gupta, Michael Hind
  • Patent number: 6381738
    Abstract: 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: Grant
    Filed: July 16, 1999
    Date of Patent: April 30, 2002
    Assignee: International Business Machines Corporation
    Inventors: Jong-Deok Choi, Manish Gupta, Mauricio J. Serrano, Vugranam C. Sreedhar, Samuel Pratt Midkiff
  • Patent number: 6301700
    Abstract: 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: Grant
    Filed: April 7, 1999
    Date of Patent: October 9, 2001
    Assignee: International Business Machines Corporation
    Inventors: Jong-Deok Choi, John H. Field, Ganesan Ramalingam, Frank Tip
  • Patent number: 6179491
    Abstract: 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: Grant
    Filed: February 5, 1997
    Date of Patent: January 30, 2001
    Assignee: International Business Machines Corporation
    Inventors: Jong-Deok Choi, John H. Field, Ganesan Ramalingam, Frank Tip
  • Patent number: 6101524
    Abstract: 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: Grant
    Filed: October 23, 1997
    Date of Patent: August 8, 2000
    Assignee: International Business Machines Corporation
    Inventors: Jong-Deok Choi, Harini Srinivasan