Patents by Inventor William B. Buzbee

William B. Buzbee 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: 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: 5933622
    Abstract: A method for operating a computer to allow the running of a source program written for a first computer on a second computer. The second computer is assumed to include a branch taken trap. The method defines a plurality of collection points in the source program. A trap handling routine is supplied for processing traps. The trap handling routine determines whether execution has halted because of a branch taken trap at one of the collection points, and if so, retrieves information identifying an event from a queue and transferring the information and control to a handler in the source code. If execution has halted because of a branch taken trap at a location other than one of the collection points, execution of the source program is resumed with the branch taken trap armed. If execution has halted because of an asynchronous event, information specifying the event is stored in the queue, the branch taken trap is armed, and execution of the source program is resumed at the point at which execution was halted.
    Type: Grant
    Filed: November 8, 1997
    Date of Patent: August 3, 1999
    Assignee: Hewlett-Packard Company
    Inventors: William B. Buzbee, James S. Mattson, Jr., Lacky Vasant Shah
  • 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: 5909578
    Abstract: A method and system for burst profiling an application program. The native application executes free and unfettered for a first time period. Then, the native application is halted and is instrumented by a dynamic translator. The dynamic translator translates and instruments code blocks of the application as the application is executing. The instrumented application executes and gathers profile data for a second time period. When the second time period expires, the dynamic translator continues to execute the instrumented application until it reaches a known state. Then, the instrumented application is halted at that known state. Next, the native application resumes execution from the known state. This process repeats until either the application finishes execution or enough profile data has been collected.
    Type: Grant
    Filed: September 30, 1996
    Date of Patent: June 1, 1999
    Assignee: Hewlett-Packard Company
    Inventor: William B. Buzbee
  • Patent number: 5854928
    Abstract: In a computer system, programming code includes speculative code. The speculative code is code which is executed early based on speculation that the results from execution of the speculative code will be needed in the future. When executing instructions within a speculative sequence of code which includes memory accesses, any memory faults are ignored. When utilizing data generated during the speculative sequence of code a determination is made as to whether any memory fault occurred when the speculative sequence of code was executed. If it is determined that a memory fault occurred when the speculative sequence of code was executed, recovery code is generated which when executed performs a recovery from the memory fault.
    Type: Grant
    Filed: October 10, 1996
    Date of Patent: December 29, 1998
    Assignee: Hewlett-Packard Company
    Inventor: William B. Buzbee
  • Patent number: 5838810
    Abstract: A method and system of controlling the frequency and duration of bursts made by a burst profiler profiling an application in a computer system. A burst profiler profiles the application by running the application free and unfettered for a first time period. Then, the profiler instruments the application with instructions that produce profile information and runs the instrumented application for a second time period. This process repeats as necessary and generates bursts of profile data. The profiler converts the bursts of profile data into images. This conversion is performed by mapping each attribute of the profile data to an image attribute. Next, an image processing subsystem within the computer system compares an image with an image generated from a previous burst. This image processing subsystem preferably implements the MPEG standard. From the information gathered by comparing the two images, the profiler can adjust the frequency and duration of the bursts to account for profile stabilization.
    Type: Grant
    Filed: October 10, 1996
    Date of Patent: November 17, 1998
    Assignee: Hewlett-Packard Company
    Inventor: William B. Buzbee
  • Patent number: 5838978
    Abstract: A method and system of dynamically translating code that uses code annotations to determine whether the dynamic translator must fully materialize machine state. At compilation time, annotations are placed in an application's executable file indicating the number of formal parameters expected by each of the application's entry points. When the application is dynamically translated, the dynamic translation system (DTS) aggressively translates the application. Therefore, the DTS does not generate instructions for materializing the machine state at potential stopping points. When the application makes a system call that arms an exception handler, the DTS looks to the annotations to determine the number of formal parameters expected by the handler. If an exception handler expects two or fewer parameters, then that handler does not use the machine state. Conversely, if a handler expects three or more parameters, then that handler may use the machine state.
    Type: Grant
    Filed: October 9, 1996
    Date of Patent: November 17, 1998
    Assignee: Hewlett-Packard Company
    Inventor: William B. Buzbee
  • Patent number: 5815720
    Abstract: Dynamic translation is used to produce profile information used to optimize object code for an application. In order to produce optimized object code for the application, source code for the application is compiled to produce first object code for the application. The first object code is used in the generation of profile information about the application. This is done by dynamically translating the first object code to produce second object code. The second object code includes profiling code which, when executed, produces the profile information. The second object code is executed to produce the profile information. The source code for the application is recompiled to produce the optimized object code. The recompiling includes using the profile information in the production of the optimized object code.
    Type: Grant
    Filed: March 15, 1996
    Date of Patent: September 29, 1998
    Assignee: Institute for the Development of Emerging Architectures, L.L.C.
    Inventor: William B. Buzbee
  • Patent number: 5764962
    Abstract: A method facilitates transfer of control from normal emulation in an emulation system to an asynchronous signal handler in the emulation system. A branch-target register is globally allocated with an address used to transfer control to the asynchronous signal handler. A predicate register is globally allocated to serve as a Boolean flag. Within each of a plurality of blocks of code within the emulation system there is placed a transfer of control operation. The transfer of control operation uses as a predicate the globally allocated predicate register. The transfer of control operation branches to an address stored in the globally allocated branch-target register. Where allowed in the architecture, a prefetch hint for the transfer of control operation can indicate the control operation is not to be prefetched. The control operation is placed in the block of code a point at which state may be recovered, generally at the end of the block of code.
    Type: Grant
    Filed: July 31, 1996
    Date of Patent: June 9, 1998
    Assignee: Hewlett-Packard Company
    Inventor: William B. Buzbee
  • Patent number: 5732210
    Abstract: Dynamic translation is used during debugging of a computer application process. During runtime, the first application is dynamically translated to produce translated code. Debugging code, such as a conditional breakpoint, may then be added to the translated code.
    Type: Grant
    Filed: March 15, 1996
    Date of Patent: March 24, 1998
    Assignee: Hewlett-Packard Company
    Inventor: William B. Buzbee
  • Patent number: 5713010
    Abstract: Source code is compiled into intermediate code which includes object code instructions. Logical line markers are inserted within the intermediate code. Each logical line marker identifies a source code line from which originated object code instructions immediately adjacent to the logical line marker. Each logical line marker is associated with a specific basic block. Also, actual line markers are inserted so that an actual line marker is associated with every object code instruction. The actual line marker identifies a source code line from which originated the object code instruction associated with the actual line marker. The intermediate code is optimized to produce the optimized object code. During optimization, object code instructions are freely moved relative to the logical line markers; however, the logical line markers are not moved relative to each other. When an object code instruction is moved, the actual line marker associated with the moved object code instruction is also moved.
    Type: Grant
    Filed: February 10, 1995
    Date of Patent: January 27, 1998
    Assignee: Hewlett-Packard Company
    Inventors: William B. Buzbee, Michelle A. Ruscetta
  • Patent number: 5133072
    Abstract: A method for efficient generation of complied code is presented. In order to gain significant performance advantage with a minimum of code expansion, out-of-line code sequences are used. An out-of-line code sequence is a series of instructions that are invoked by a simplified calling mechanism in which almost no state-saving is required. Additionally, out-of-line code sequences is designed so that a single copy can exist on a system and all processes running on that system can access it. A series of out-of-line code sequences can be generated, each member of the series being tailored to a particular combination of compile-time information.
    Type: Grant
    Filed: November 13, 1986
    Date of Patent: July 21, 1992
    Assignee: Hewlett-Packard Company
    Inventor: William B. Buzbee