Patents Examined by Hoang-Vu Antony Nguyen-Ba
  • Patent number: 6662356
    Abstract: An application program interface (API) into an hierarchical intermediate representation (IR) of a heterogeneous program enables the navigation and modification of the IR at all levels of the hierarchy. Additional functions provide information about the IR that can be employed by a user in understanding the logic flow of the program and by an output translator to convert the IR into blocks of platform-specific instructions for a new version of the heterogeneous program. The API functions are also utilized by pre-defined program tools to instrument and optimize the IR, and thus the heterogeneous program created from the IR.
    Type: Grant
    Filed: June 30, 1999
    Date of Patent: December 9, 2003
    Assignee: Microsoft Corporation
    Inventors: Andrew J. Edwards, Ken B. Pierce, Amitabh Srivastava
  • Patent number: 6658657
    Abstract: A method including compiling a method bar having a virtual method call. The virtual method call is eliminated. The method bar is inlined without generating checking code, and dynamically loading a class.
    Type: Grant
    Filed: March 31, 2000
    Date of Patent: December 2, 2003
    Assignee: Intel Corporation
    Inventor: Guei-Yuan Lueh
  • Patent number: 6658647
    Abstract: A system for accessing resources, such as bitmaps, fonts and sound files is provided. Typically, resources of this type are accessed as files from Java code. The data is read into dynamic (RAM) memory as a byte array in a Java object, and at least one other copy of the byte array is made in order to process the resource data, such as rendering an image to a display. The invention provides a mechanism for accessing the resource data directly from ROM, without making intermediate copies in RAM. Each resource can have a unique key or string in a logical table. Values associated with the keys are pointers to the data stored in ROM. The pointers are passed directly to the methods for processing the data on the hardware, bypassing the need to have the data become a temporary Java object. The saving in memory use is particularly advantageous for constrained memory devices.
    Type: Grant
    Filed: August 12, 1999
    Date of Patent: December 2, 2003
    Assignee: International Business Machines Corporation
    Inventors: Carolyn Ruth MacLeod, Patrick James Mueller, Philip Charles Rubesin
  • Patent number: 6654948
    Abstract: A technique for monitoring events generated by an object-oriented system comprises the steps/operations of: (i) monitoring events which describe executed operations associated with the object-oriented system; and (ii) applying one or more sequencing rules when reporting a subset of the monitored events, the one or more sequencing rules substantially ensuring consistent reporting of the subset of monitored events. Preferably, monitoring continues when event reporting is at least partially disabled. Further, the monitoring step/operation may include dividing the monitored events into categories. One category may include entity events, an entity event defining an existence status of a given event. Another category may include activity events, an activity event defining an operation associated with a given event.
    Type: Grant
    Filed: October 12, 1999
    Date of Patent: November 25, 2003
    Assignee: International Business Machines Corporation
    Inventors: Ravi B. Konuru, Olivier Gruber, Wim De Pauw
  • Patent number: 6647545
    Abstract: A processor includes a host interface unit capable of generating at least one branch trace message (BTM), the host interface unit is coupled to a memory so as to store the at least one BTM in the memory and the processor is embodied on an integrated circuit (IC).
    Type: Grant
    Filed: February 14, 2000
    Date of Patent: November 11, 2003
    Assignee: Intel Corporation
    Inventors: Tsvika Kurts, Roman Surgutchik, Oded Lempel, Ittai Anati, Haim Lustig
  • Patent number: 6634024
    Abstract: The present invention integrates data prefetching into a modulo scheduling technique to provide for the generation of assembly code having improved performance. Modulo scheduling can produce optimal steady state code for many important cases by sufficiently separating defining instructions (producers) from using instructions (consumers), thereby avoiding machine stall cycles and simultaneously maximizing processor utilization. Integrating data prefetching within modulo scheduling yields high performance assembly code by prefetching data from memory while at the same time using modulo scheduling to efficiently schedule the remaining operations. The invention integrates data prefetching into modulo scheduling by postponing prefetch insertion until after modulo scheduling is complete. Actual insertion of the prefetch instructions occurs in a postpass after the generation of appropriate prologue-kernel-epilogue code.
    Type: Grant
    Filed: June 27, 2001
    Date of Patent: October 14, 2003
    Assignee: Sun Microsystems, Inc.
    Inventors: Partha Pal Tirumalai, Rajagopalan Mahadevan
  • Patent number: 6634022
    Abstract: A method for optimizing and enhancing Java programs to run more efficiently on specific hardware platforms, with a focus on increased execution performance and a reduction of the amount of memory the Java program ultimately requires for its functionality, includes steps for using new classes which define constants and specialization functions to identify and modify existing classes associated with a Java program. The method depends on the evaluation and analysis of the constants, with the results of such evaluation and analysis determining what kind of code specialization occurs. As an optional step, the resulting platform enhanced Java classes overwrite the original Java classes, which permits the modified classes to be utilized by the same Java program or other Java programs running on the same hardware platform when the Java programs are run in the future. A software product is also described.
    Type: Grant
    Filed: October 28, 1999
    Date of Patent: October 14, 2003
    Assignee: Koninklijke Philips Electronics N.V.
    Inventor: Rene Leermakers
  • Patent number: 6629317
    Abstract: A method providing for programming reprogramming at least some software into flash memory of a postage machine or other mailing apparatus. The method calls for providing the software to be programmed into the flash memory in at least two builds, with one build providing kernel software that includes the functionality needed for programming/reprogramming (including functionality for linking to a personal computer by which the software to be programmed may be provided), and the other build providing non-kernel software, usually routines providing application-oriented functionality, and not essential to programming the flash memory. The first build, of the at least two builds, is written into sectors of the flash memory that are then locked. The system provides, in some applications, for writing the non-kernel software using a paging algorithm that writes several sectors worth of non-kernel software at a time.
    Type: Grant
    Filed: July 30, 1999
    Date of Patent: September 30, 2003
    Assignee: Pitney Bowes Inc.
    Inventors: Wesley A. Kirschner, Louis J. Loglisci, George T. Monroe, Richard A Rudolph
  • Patent number: 6625807
    Abstract: Apparatus and method are described for register optimization during code translation and utilizes a technique that removes the time overhead for analyzing register usage, and eliminates fixed restraints on the compiler register usage. The present invention for register optimization utilizes a compiler to produce a bit vector for each program unit (i.e., subroutine, function, and/or procedure). Each bit in the bit vector represents a particular caller-saved register. A bit is set if the compiler uses the corresponding register within that program unit. During the translation, the translator examines the bit vector to very quickly determine which registers are free, and therefore can be used during register optimization without having to save and restore the register values.
    Type: Grant
    Filed: August 10, 1999
    Date of Patent: September 23, 2003
    Assignee: Hewlett-Packard Development Company, L.P.
    Inventor: Ding-Kai Chen
  • Patent number: 6611955
    Abstract: A method for on-line monitoring and testing the behavior of middleware based, distributed application software during run-time of such software is disclosed. In order to automatize the monitoring of the behavior of the application software, the monitoring method comprises: defining events capturing the behavior of the software execution, the events being based on an abstraction of the application software, the abstraction being provided by middleware; using code generating means and an instrumentation technique for automatically adding code to the implementation of the software code suitable for generating traces suitable to be sent to an observer, the information carried by the added code including information on the order of occurrence of the events and on the application software part location where each event occurs; and using a monitoring mechanism based on sending of trace reports to the observer, which ensures or takes into account the time order of the reported traces.
    Type: Grant
    Filed: June 3, 1999
    Date of Patent: August 26, 2003
    Assignees: Swisscom AG, Alcatel, Ecole Polytechnique Federale de Lausanne (EPFL)
    Inventors: Xavier Logean, Falk Dietrich, Jean-Pierre A. Hubaux, Sylvain Grisouard, Pierre-Alain Etique, Shawn E. Koppenhoefer
  • Patent number: 6609247
    Abstract: A method and an apparatus for re-creating a trace of instructions from an emulated instruction set when running on hardware optimized for a different instruction set, such as IA-32 instructions running on an IA-64 machine, are disclosed. An execution trace buffer is created that maintains desired information about instructions as they are executed and retired. The invention may be configured such that certain desired information helpful to debugging the system may be written to the buffer as the instructions are retired. This information may include the addresses of sequential or branch instructions, or other relevant information that can be gathered continuously and non-intrusively as instructions are executed. The information may be read from the buffer and output in a machine-visible form at the user's convenience.
    Type: Grant
    Filed: February 18, 2000
    Date of Patent: August 19, 2003
    Assignee: Hewlett-Packard Development Company
    Inventors: Anuj Dua, Russell Clarence Brockmann, Susith Rohana Fernando, Kevin David Safford
  • Patent number: 6564375
    Abstract: A method for altering a wizard-based application, which is usually created using an object-oriented language with a base class, includes utilizing one or more alternative base classes, one or more alternative base classes derived from one or more base classes and defining a backbone for integrating a hierarchy window, attribute window, and wizard page window; and linking the hierarchy window, the attribute window, and the wizard page window to a database and to each other so that changes made to one window are reflected in all the others and in the database, and so that selecting a particular wizard page in one window acts to select that same page in the others. This approach allows a software developer to easily create and modify a wizard, and allows an intermediate stage user, such as an Internet Service Provider, to easily modify the wizard to skip pages and enter known data so that the end user need not go through unnecessary steps in the installation wizard when installing a software program.
    Type: Grant
    Filed: July 23, 1999
    Date of Patent: May 13, 2003
    Assignee: Cisco Technology, Inc.
    Inventor: Yansheng Jiang
  • Patent number: 6557169
    Abstract: A method and system of changing a current operating system to a new operating system in a workstation connected to a data transmission network interconnecting a plurality of workstations each having a storage device and a plurality of servers providing services to the workstations through the network, at least one of the plurality of servers being a software distribution server providing one of the plurality of workstations with updated application code.
    Type: Grant
    Filed: March 23, 1999
    Date of Patent: April 29, 2003
    Assignee: International Business Machines Corporation
    Inventor: Bernard Erpeldinger
  • Patent number: 6539540
    Abstract: A method for optimizing the detection of a change in MIB information, the method including the steps of creating a MIB information request, sending the request to a SNMP agent, receiving a first response to the request from the SNMP agent, wherein the first response includes MIB information encoded as a byte array, and comparing the first response byte array to a comparison byte array to determine a difference therebetween.
    Type: Grant
    Filed: May 24, 1999
    Date of Patent: March 25, 2003
    Assignee: 3Com Corporation
    Inventors: Ariel Noy, Sharon Barkai, Zeev Vax, Paul Hardak
  • Patent number: 6536040
    Abstract: The system, method, and program of this invention enables a developer to write a platform independent program that can read, create, modify, delete, and enumerate registry type of information regardless of whether or not a targeted operating system supports a registry or registry equivalent functionality. More specifically, as disclosed herein, there is a global registry object for carrying out, i.e., mapping, registry functions or registry equivalent functions across multiple operating systems. A system independent registry, referred to as a registryDB object, is created for those systems that do not have a registry equivalent. In a preferred embodiment, the registryDB object provides a registry equivalent store for any operating system by using a text file that resembles a Java properties file; although any database or file system could be used to save the registry information.
    Type: Grant
    Filed: March 29, 1999
    Date of Patent: March 18, 2003
    Assignee: International Business Machines Corporation
    Inventor: Bryce Allen Curtis
  • Patent number: 6536036
    Abstract: A method and apparatus for code coverage management is provided, wherein code coverage data, which may be stored in a database, is updated or resequenced with the code changes. This resequencing eliminates the need to freeze the program code while collecting the code coverage data. When a code change is incorporated into the system the resequencing routine makes the necessary adjustments to the code coverage data. Furthermore, building a table in a database to store code coverage data for every test case may not be feasible. Thus, in accordance with the present invention, the last column of the table may contain a pointer to a file. The file then contains the list of test cases that exceeded the table.
    Type: Grant
    Filed: April 6, 1999
    Date of Patent: March 18, 2003
    Assignee: International Business Machines Corporation
    Inventor: Thomas J. Pavela
  • Patent number: 6532588
    Abstract: A user centric approach to program product distribution, including a complementary multi-vendor code control system (MVCCS) suitable for use to practice the user centric distribution approach is disclosed. Under the user centric approach, versioning control information of the source/object files of various program products to be installed on various user computer systems are maintained on a user computer system by user computer system basis. Each user computer system or its proxy is provided with a portion or an entire MVCCS to facilitate receipt and storage into a common repository for the user computer system versioning control information of different source/object files of different software vendors, and to facilitate retrieval of selective versions of the different source/object files for the user computer system using versioning control information stored in the common repository for the user computer system.
    Type: Grant
    Filed: June 1, 1999
    Date of Patent: March 11, 2003
    Assignee: Xoucin, Inc.
    Inventor: Swain W. Porter
  • Patent number: 6530075
    Abstract: The present invention provides a method and apparatus in a data processing system for optimizing running of bytecode. An application programming interface is called for compilation of bytecode. The bytecode just in time compiling is enabled or disabled using the application programming interface. Compiling the bytecode is optimized by the programmer before compiling using pre-compile keywords. Compiling the bytecode is optimized during compiling using dynamic application programming interface calls. Dynamic runtime APIs enable or disable the just in time compiling of objects based on compiling errors, execution performance and frequency of execution.
    Type: Grant
    Filed: December 3, 1998
    Date of Patent: March 4, 2003
    Assignee: International Business Machines Corporation
    Inventors: Bruce Anthony Beadle, Michael Wayne Brown, Michael Anthony Paolini, Douglas Scott Rothert
  • Patent number: 6526571
    Abstract: A method and system for identifying calls in a Java package whose targets are guaranteed to belong to the package. According to the method an inheritance graph and access permissions of respective components in the package are determined, both of which are used in combination with the knowledge that the package is seared and signed to determine whether all the targets of a call are guaranteed to belong to the package. The identification of calls according to the invention can be performed at the time the package is sealed and signed or as a separate phase thereafter and allows for better compiler optimization.
    Type: Grant
    Filed: March 16, 1999
    Date of Patent: February 25, 2003
    Assignee: International Business Machines Corporation
    Inventors: Nava Aizikowitz, Vitaly Feldman, Ayal Zaks
  • Patent number: 6523173
    Abstract: Register allocation during computer program code compilation is accomplished by determining a set of spill candidates, by evaluating a cost function for each spill candidate using a plurality of spill strategies, and by selecting the spill candidate having the lowest cost function value. Preferably, the set of possible spill candidates is determined by the Chaitin method of constructing an interference graph of all live ranges of symbolic registers, and iteratively removing nodes and placing them on a stack. Preferably, multiple spill strategies are represented as varying numbers of deaths N of live ranges of other symbolic registers, a spill strategy N signifying that spill code is introduced whenever the number of deaths occurring between two successive uses of a symbolic register equals or exceeds N. In the preferred embodiment, the cost is a function of the number, type and frequency of each operation introduced by the spill, and is divided by a benefit factor represented as the degree of the node.
    Type: Grant
    Filed: January 11, 2000
    Date of Patent: February 18, 2003
    Assignee: International Business Machines Corporation
    Inventors: Peter Edward Bergner, Edward Curtis Prosser