Patents by Inventor Trishul A. Chilimbi

Trishul A. Chilimbi 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).

  • Publication number: 20070083856
    Abstract: A temporal profiling framework useful for dynamic optimization with hot data stream prefetching provides profiling of longer bursts and lower overhead. For profiling longer bursts, the framework employs a profiling phase counter, as well as a checking phase counter, to control transitions to and from instrumented code for sampling bursts of a program execution trace. The temporal profiling framework further intelligently eliminates some checks at procedure entries and loop back-edges, while still avoiding unbounded execution without executing checks for transition to and from instrumented code. Fast hot data stream detection analyzes a grammar of a profiled data reference sequence, calculating a heat metric for recurring subsequences based on length and number of unique occurrences outside of other hot data streams in the sequence with sufficiently low-overhead to permit use in a dynamic optimization framework.
    Type: Application
    Filed: October 5, 2006
    Publication date: April 12, 2007
    Applicant: Microsoft Corporation
    Inventors: Trishul Chilimbi, Martin Hirzel
  • Publication number: 20060265694
    Abstract: A dynamic analysis tool uses anomaly detection to find heap-based bugs. In spite of the evolving nature of the heap, programs generally exhibit several of properties of their heap usage that remain stable. Periodically, during the execution of the program, the analysis tool computes a suite of metrics which are sensitive to the state of the heap. These metrics track heap behavior, and the stability of the heap reflects quantitatively in the values of these metrics. The ranges of stable metrics, obtained by running a program on a multiple input training set, are then treated as indicators of correct behavior, and are used in conjunction with an anomaly detector to find heap-based bugs.
    Type: Application
    Filed: May 20, 2005
    Publication date: November 23, 2006
    Applicant: Microsoft Corporation
    Inventors: Trishul Chilimbi, Vinod Ganapathy
  • Publication number: 20060265438
    Abstract: A program analysis tool leverages the garbage collection process to dynamically infer invariants of objects or data structures created by a program on the heap during execution. During execution of the program in a garbage-collected execution environment, the program analysis tool tracks object allocations made by the program, and records some meta data relating to invariants tracked for the type of the object, which are initially assumed satisfied by the object. Whenever a garbage collection pass visits the object, the tool checks whether the object still satisfies the invariants, and updates the meta data accordingly. The tool finally reports the invariants reflected by the meta data upon the object's death or at termination of the program. The invariants can then be used to annotate the program source code and/or detect bugs that violate the invariants.
    Type: Application
    Filed: May 20, 2005
    Publication date: November 23, 2006
    Applicant: Microsoft Corporation
    Inventors: Ajeet Shankar, Trishul Chilimbi
  • Patent number: 7140008
    Abstract: A temporal profiling framework useful for dynamic optimization with hot data stream prefetching provides profiling of longer bursts and lower overhead. For profiling longer bursts, the framework employs a profiling phase counter, as well as a checking phase counter, to control transitions to and from instrumented code for sampling bursts of a program execution trace. The temporal profiling framework further intelligently eliminates some checks at procedure entries and loop back-edges, while still avoiding unbounded execution without executing checks for transition to and from instrumented code. Fast hot data stream detection analyzes a grammar of a profiled data reference sequence, calculating a heat metric for recurring subsequences based on length and number of unique occurrences outside of other hot data streams in the sequence with sufficiently low-overhead to permit use in a dynamic optimization framework.
    Type: Grant
    Filed: November 25, 2002
    Date of Patent: November 21, 2006
    Assignee: Microsoft Corporation
    Inventors: Trishul A. Chilimbi, Martin Hirzel
  • Publication number: 20060242636
    Abstract: A run time software test tool instruments a program to perform a low overhead profiling of the program's execution, which records the execution time of frequent acyclic control flow paths using hardware performance counters. An analysis of the profiling data is performed to identify those program paths that have significant variation in execution time across different dynamic traversals in the same program run. This variation (measured as the difference between the fastest execution of that path and slower executions) represents the potential speedup that potentially could be achieved if the paths were optimized (such as by the addition of simple pre-fetch optimizations) to do away with these variations. The variational paths are identified to the programmer to guide optimization.
    Type: Application
    Filed: April 26, 2005
    Publication date: October 26, 2006
    Applicant: Microsoft Corporation
    Inventors: Trishul Chilimbi, Erez Perelman
  • Patent number: 7089389
    Abstract: A system and method for analyzing data accesses to determine data accessing patterns is provided. Data address accesses are traced and transformed into Whole Program Data Accesses (WPDAs). WPDAs may then be used to discover higher-level data abstractions, such as hot data blocks. Hot data blocks provide information related to sequences of data addresses that are repeatedly accessed together. Hot data blocks may then be used to improve program performance.
    Type: Grant
    Filed: July 14, 2004
    Date of Patent: August 8, 2006
    Assignee: Microsoft Corporation
    Inventor: Trishul Chilimbi
  • Patent number: 7073032
    Abstract: A system and method for analyzing data accesses to determine data accessing patterns is provided. Data address accesses are traced and transformed into Whole Program Data Accesses (WPDAs). WPDAs may then be used to discover higher-level data abstractions, such as hot data blocks. Hot data blocks provide information related to sequences of data addresses that are repeatedly accessed together. Hot data blocks may then be used to improve program performance.
    Type: Grant
    Filed: July 14, 2004
    Date of Patent: July 4, 2006
    Assignee: Microsoft Corporation
    Inventor: Trishul Chilimbi
  • Publication number: 20060123417
    Abstract: Described herein is an implementation of a technology for the construction, identity, and/or optimization of operating-system processes. At least one implementation, described herein, constructs an operating-system process having the contents as defined by a process manifest. Once constructed, the operating-system process is unalterable.
    Type: Application
    Filed: December 6, 2004
    Publication date: June 8, 2006
    Applicant: Microsoft Corporation
    Inventors: Galen Hunt, James Larus, John DeTreville, Edward Wobber, Martin Abadi, Michael Jones, Trishul Chilimbi
  • Publication number: 20060123418
    Abstract: Described herein is an implementation of a technology for the construction, identification, and/or optimization of operating-system processes. At least one implementation, described herein, constructs an operating-system process having the contents as defined by a process manifest. Once constructed, the operating-system process is unalterable.
    Type: Application
    Filed: April 29, 2005
    Publication date: June 8, 2006
    Applicant: Microsoft Corporation
    Inventors: Galen Hunt, James Larus, John DeTreville, Edward Wobber, Martin Abadi, Michael Jones, Trishul Chilimbi
  • Publication number: 20060123430
    Abstract: Described herein is an implementation of a technology for the construction, identification, and/or optimization of operating-system processes. At least one implementation, described herein, constructs an operating-system process having the contents as defined by a process manifest. Once constructed, the operating-system process is unalterable.
    Type: Application
    Filed: April 29, 2005
    Publication date: June 8, 2006
    Applicant: Microsoft Corporation
    Inventors: Galen Hunt, James Larus, John DeTreville, Edward Wobber, Martin Abadi, Michael Jones, Trishul Chilimbi
  • Patent number: 7058936
    Abstract: A method and system for creating and injecting code into a running program that identifies a hot data stream, and prefetching data elements in the stream so they are available when needed by the processor. The injected code identifies the first few elements in a hot data stream (i.e. the prefix), and prefetches the balance of the elements in the stream (i.e., the suffix). Since the hot data stream identification code and prefetch code is injected at run time, pointer related time-dependencies inherent in earlier prefetch systems are eliminated. A global deterministic finite state machine (DFSM) is used to help create conceptual logic used to generate the code injected into the program for prefix detection.
    Type: Grant
    Filed: November 25, 2002
    Date of Patent: June 6, 2006
    Assignee: Microsoft Corporation
    Inventors: Trishul Chilimbi, Martin Hirzel
  • Publication number: 20060070040
    Abstract: A method and system for creating and injecting code into a running program that identifies a hot data stream, and prefetching data elements in the stream so they are available when needed by the processor. The injected code identifies the first few elements in a hot data stream (i.e. the prefix), and prefetches the balance of the elements in the stream (i.e., the suffix). Since the hot data stream identification code and prefetch code is injected at run time, pointer related time-dependencies inherent in earlier prefetch systems are eliminated. A global deterministic finite state machine (DFSM) is used to help create conceptual logic used to generate the code injected into the program for prefix detection.
    Type: Application
    Filed: November 15, 2005
    Publication date: March 30, 2006
    Applicant: Microsoft Corporation
    Inventors: Trishul Chilimbi, Martin Hirzel
  • Publication number: 20050091645
    Abstract: Techniques described herein provide low-overhead adaptive instrumentation runtime monitoring and analysis of software. A method of instrumenting a program to provide instrumentation data creates instrumentation versions comprising duplicate versions of original procedures in the program with instrumentation code for capturing instrumentation data, and adaptively decreases the sampling rate of the instrumented version of a procedure as the frequency of execution of the procedure increases. Additionally, the instrumentation methods can be used to build runtime tools that monitor the correctness of a program with very little overhead.
    Type: Application
    Filed: October 24, 2003
    Publication date: April 28, 2005
    Inventors: Trishul Chilimbi, Matthias Hauswirth
  • Publication number: 20050091646
    Abstract: A method of detecting memory leaks. The method of detecting memory leaks comprises, adaptively bursty tracing a program execution to track accesses to heap objects with low overhead and using this information identify stale heap objects, which are reported as leaks.
    Type: Application
    Filed: July 15, 2004
    Publication date: April 28, 2005
    Applicant: Microsoft Corporation
    Inventors: Trishul Chilimbi, Matthias Hauswirth
  • Publication number: 20050091644
    Abstract: A system and method for determining where bottlenecks in a program's data accesses occur and providing information to a software developer as to why the bottlenecks occur and what may be done to correct them. A stream of data access references is analyzed to determine data access patterns (also called data access sequences). The stream is analyzed to find frequently repeated data access sequences (called hot data streams). Properties of the hot data streams are calculated and upon selection of a hot data stream are displayed in a development tool that associates lines of code with the hot data streams.
    Type: Application
    Filed: November 16, 2004
    Publication date: April 28, 2005
    Applicant: Microsoft Corporation
    Inventor: Trishul Chilimbi
  • Publication number: 20040261062
    Abstract: A system and method for analyzing data accesses to determine data accessing patterns is provided. Data address accesses are traced and transformed into Whole Program Data Accesses (WPDAs). WPDAs may then be used to discover higher-level data abstractions, such as hot data blocks. Hot data blocks provide information related to sequences of data addresses that are repeatedly accessed together. Hot data blocks may then be used to improve program performance.
    Type: Application
    Filed: July 14, 2004
    Publication date: December 23, 2004
    Applicant: Microsoft Corporation
    Inventor: Trishul Chilimbi
  • Publication number: 20040255083
    Abstract: A system and method for analyzing data accesses to determine data accessing patterns is provided. Data address accesses are traced and transformed into Whole Program Data Accesses (WPDAs). WPDAs may then be used to discover higher-level data abstractions, such as hot data blocks. Hot data blocks provide information related to sequences of data addresses that are repeatedly accessed together. Hot data blocks may then be used to improve program performance.
    Type: Application
    Filed: July 14, 2004
    Publication date: December 16, 2004
    Applicant: Microsoft Corporation
    Inventor: Trishul Chilimbi
  • Patent number: 6813693
    Abstract: A system and method for analyzing data accesses to determine data accessing patterns is provided. Data address accesses are traced and transformed into Whole Program Data Accesses (WPDAs). WPDAs may then be used to discover higher-level data abstractions, such as hot data blocks. Hot data blocks provide information related to sequences of data addresses that are repeatedly accessed together. Hot data blocks may then be used to improve program performance.
    Type: Grant
    Filed: December 11, 2000
    Date of Patent: November 2, 2004
    Assignee: Microsoft Corporation
    Inventor: Trishul Chilimbi
  • Publication number: 20040215880
    Abstract: Techniques and tools for coallocating objects and/or object fields for the sake of cache performance are described. For example, a tool improves cache performance by coallocating contemporaneously accessed heap objects. The tool analyzes object accesses to identify hot data streams in a profile run of a program. The tool directs allocations for objects in a given hot data steam to the same sequentially allocated arena, separating intervening allocations coming from other allocation sites. The tool enforces the solution by redirecting heap allocations to a run-time coallocation library. The tool and analysis extend to coallocation at object field granularity. The resulting field coallocation solution generalizes common data restructuring techniques and provides insight into object restructuring by breaking down the coallocation benefit on a per-technique basis.
    Type: Application
    Filed: December 15, 2003
    Publication date: October 28, 2004
    Applicant: Microsoft Corporation
    Inventors: Trishul Chilimbi, Ran Shaham
  • Publication number: 20040103408
    Abstract: A method and system for creating and injecting code into a running program that identifies a hot data stream, and prefetching data elements in the stream so they are available when needed by the processor. The injected code identifies the first few elements in a hot data stream (i.e. the prefix), and prefetches the balance of the elements in the stream (i.e., the suffix). Since the hot data stream identification code and prefetch code is injected at run time, pointer related time-dependencies inherent in earlier prefetch systems are eliminated. A global deterministic finite state machine (DFSM) is used to help create conceptual logic used to generate the code injected into the program for prefix detection.
    Type: Application
    Filed: November 25, 2002
    Publication date: May 27, 2004
    Applicant: Microsoft Corporation
    Inventors: Trishul Chilimbi, Martin Hirzel