Patents by Inventor Lacky V. Shah

Lacky V. Shah 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: 6115809
    Abstract: A method and apparatus varies branch prediction strategy associated with branch instructions in a trace of program code. The present invention first profiles branch instructions within a trace to record branching behavior. Next, the present invention partitions branch instructions into groups of branch instructions that can be statically predicted and groups of branch instructions that can be dynamically predicted. Branch instructions that are profiled to have "strong" branching behavior (e.g., the same branch direction is taken 80% of the time) are placed in the group of branch instruction that are statically predicted. Branch instructions that are profiled to have "weak" branching behavior (e.g., the same branch direction is taken 60% of the time) are placed in the group of branch instruction that are dynamically predicted. Finally, branch instructions are adjusted by associating an indication of prediction strategy with each profiled branch instruction.
    Type: Grant
    Filed: April 30, 1998
    Date of Patent: September 5, 2000
    Assignee: Hewlett-Packard Company
    Inventors: James S. Mattson, Jr., Lacky V. Shah, William B. Buzbee
  • Patent number: 6112280
    Abstract: There is disclosed a dynamic cache which is divided into sections, or chunks, for the storage of optimized code. The optimized code may contain pointers to code in other chunks. When a cache chunk is to be reused, then the pointers to other caches, as well as the pointers from other caches to code contained with the cache that is to be removed, are changed to point to either code contained in a victim chunk of the cache, or, alternatively, to point back to the translator. The system can dynamically change the number and size of the cache chunks and the number and size of the victim chunks, if any.
    Type: Grant
    Filed: January 6, 1998
    Date of Patent: August 29, 2000
    Assignee: Hewlett-Packard Company
    Inventors: Lacky V. Shah, James S. Mattson, Jr., William B. Buzbee
  • Patent number: 6052530
    Abstract: A dynamic translation system is configured to translate existing code into translated code which is compatible with a particular computer system. As the dynamic translation system translates the existing code, the computer system executes the translated code. Once a synchronous fault occurs, the dynamic translation system retranslates the block of code containing the synchronous fault and saves the instruction and state mappings for each instruction capable of causing the synchronous fault. Once the instruction causing the synchronous fault is reached during the retranslation process, the dynamic translation system combines the saved instruction and state mappings of the instruction causing the synchronous error with the current machine state of the computer system to form a simulated machine state. This simulated machine state represents the machine state that would have existed at the time of the synchronous fault if the original code were executing, instead of the translated code.
    Type: Grant
    Filed: February 25, 1998
    Date of Patent: April 18, 2000
    Assignee: Hewlett-Packard Co.
    Inventors: William B. Buzbee, James S. Mattson, Lacky V. Shah, David A. Dunn
  • Patent number: 5911073
    Abstract: A method and apparatus for improving the process of software development by a dynamic software development tool. The present invention allows the execution of an emulation tool to occur under the control of the original user process and preserves the execution flow of the user process instructions. The present invention manages the execution of the emulation tool within the computer memory. The present invention uses the user process code as data to direct the execution of the emulation tool. The present invention enables the use of other software development tools such as monitoring and profiling tools, program analysis tools, simulation tools, and software debugging tools.
    Type: Grant
    Filed: December 23, 1997
    Date of Patent: June 8, 1999
    Assignee: Hewlett-Packard Company
    Inventors: James S. Mattson, Jr., Lacky V. Shah, William B. Buzbee
  • Patent number: 5721893
    Abstract: An untagged branch prediction cache is exploited by relocating branches during a final pass in the compilation process, after all other optimizations have been applied, where a pass is made over the instructions in each subprogram, and all branches that use the branch prediction cache (BPC) are placed into buckets, where each bucket corresponds to a position in the BPC. Recorded with each branch is its expected direction (taken, not taken), based either on profiling data or on static heuristics. Each bucket is then inspected. For buckets containing branches whose predicted directions conflict, an attempt is made to move some of those branches to another bucket. If other branches' positions are affected, the bucket inspection process is restarted, after recalculation of the bucket positions of all BPC branches. Branches that have matching predicted directions, but that currently fall into separate buckets, may be moved into the same bucket, so that the histories of branches can reinforce one another.
    Type: Grant
    Filed: May 14, 1996
    Date of Patent: February 24, 1998
    Assignee: Hewlett-Packard Company
    Inventors: Anne M. Holler, Lacky V. Shah