Patents by Inventor Gavin Barraclough

Gavin Barraclough 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: 20110320450
    Abstract: Methods and systems that present URLs from a history of records organized by locations are described. Each record may be stored to represent a URL accessed for retrieving a web page by a browser hosted in a device at a certain point in time. Additionally, the record may include a location data indicating a physical location of the device at the certain point in time. Optionally, a timestamp indicating the certain point in time may be included in the record. Groups of the records may be clustered according to the locations. In one embodiment, at least one of the groups may be selected for presentation on a display according to where the display is currently located.
    Type: Application
    Filed: June 29, 2010
    Publication date: December 29, 2011
    Inventors: Alice Liu, Gavin Barraclough
  • Patent number: 8020154
    Abstract: Precise exception handling relies on a precise subject state including an accurate program counter and register values of a subject processor. Subject code (17) is translated into target code (21) executable by a target processor (13). The generated target code (17) includes counterpart target instructions (214) associated with fault-vulnerable subject code instructions (174). Further, each of the counterpart target code instruction (214) is associated with recovery information (195). When an exception (e.g. a fault) occurs, the recovery information (195) is retrieved and used to recover a precise subject state, in particular by taking account of optimizations to generate the common-case target code (21). The precise subject state is then used to precisely handle the exception.
    Type: Grant
    Filed: November 14, 2005
    Date of Patent: September 13, 2011
    Assignee: International Business Machines Corporation
    Inventors: Gavin Barraclough, Kit Man Wan, Abdul Rahman Hummaida
  • Patent number: 7962900
    Abstract: A dynamic binary translator 19 converts a subject program 17 into target code 21 on a target processor 13. For a multi-threaded subject environment, the translator 19 provides a global token 501 common to each thread 171, 172, and one or more sets of local data 502, which together are employed to coordinate access to a memory 18 as a shared resource. Adjusting the global token 501 allows the local datastructures 502a,b in each thread to detect potential interference with the shared resource 18.
    Type: Grant
    Filed: September 2, 2005
    Date of Patent: June 14, 2011
    Assignee: International Business Machines Corporation
    Inventors: Gavin Barraclough, Paul Knowles
  • Patent number: 7895407
    Abstract: A method and apparatus to protect memory consistency in a multiprocessor computing system are described, in particular relating to program code conversion such as dynamic binary translation. The exemplary system provides a memory, processors and a controller/translator unit (CTU) arranged to convert subject code into at least first and second target code portions executable on the processors. The CTU comprises an address space allocation unit to provide virtual address space regions and direct the target code portions to access the memory therethough; a shared memory detection unit to detect a request to access a shared memory area, accessible by both target code portions, and to identify at least one group of instructions in the first target code portion which access the shared memory area; and a memory protection unit to selectively apply memory consistency protection in relation to accesses to the shared memory area by the identified group of instructions.
    Type: Grant
    Filed: November 19, 2007
    Date of Patent: February 22, 2011
    Assignee: International Business Machines Corporation
    Inventors: Gisle Dankel, Geraint M. North, Miles Philip Howson, Gavin Barraclough
  • Patent number: 7536682
    Abstract: A translator apparatus is provided with both program code interpreting and translating functionality, where subject program code is interpreted rather than being translated in those situations where interpretation of the subject program code is determined to be more beneficial. The translator applies an interpreting algorithm to determine whether a basic block of subject program code should be interpreted or translated. A particular subject of instructions supported by the interpreter functionality is initially selected from an entire instruction set for the subject program code. A basic block will be interpreted 1) if all of the instructions within a basic block are determined to be within the subset of instructions supported by the interpreter functionality, and 2) if an execution count of the basic block is below a translation threshold.
    Type: Grant
    Filed: December 10, 2003
    Date of Patent: May 19, 2009
    Assignee: International Business Machines Corporation
    Inventors: Gisle Dankel, Gavin Barraclough, Matthew L. Evans
  • Publication number: 20080244241
    Abstract: A computing system capable of handling floating point operations during program code conversion is described, comprising a processor including a floating point unit and an integer unit. The computing system further comprises a translator unit arranged to receive subject code instructions including at least one instruction relating to a floating point operation and in response to generate corresponding target code for execution on said processor. To handle floating point operations a floating point status unit and a floating point control unit are provided within the translator. These units are cause the translator unit to generate either: target code for performing the floating point operations directly on the floating point unit; or target code for performing the floating point operations indirectly, for example using a combination of the integer unit and the floating point unit. In this way the efficiency of the computing system is improved.
    Type: Application
    Filed: February 28, 2008
    Publication date: October 2, 2008
    Applicant: Transitive Limited
    Inventors: Gavin Barraclough, James R. Mulcahy, David J. Rigby
  • Publication number: 20080140971
    Abstract: A method and apparatus to protect memory consistency in a multiprocessor computing system are described, in particular relating to program code conversion such as dynamic binary translation. The exemplary system provides a memory, processors and a controller/translator unit (CTU) arranged to convert subject code into at least first and second target code portions executable on the processors. The CTU comprises an address space allocation unit to provide virtual address space regions and direct the target code portions to access the memory therethough; a shared memory detection unit to detect a request to access a shared memory area, accessible by both target code portions, and to identify at least one group of instructions in the first target code portion which access the shared memory area; and a memory protection unit to selectively apply memory consistency protection in relation to accesses to the shared memory area by the identified group of instructions.
    Type: Application
    Filed: November 19, 2007
    Publication date: June 12, 2008
    Applicant: Transitive Limited
    Inventors: Gisle Dankel, Geraint M. North, Miles P. Howson, Gavin Barraclough
  • Publication number: 20080005724
    Abstract: A target computing system performs program code conversion from subject code, executable by a subject computing architecture, into target code executable by the target computing system, and then executes the target code. The target system handles exceptions during binding to native code. Native code binding executes a portion of native code in place of translating a portion of the subject code into the target code. Upon an exception during execution of the portion of native code, the target system saves a target state representing a current point of execution for the portion of native code, and creates a subject state representing an emulated point of execution in the subject architecture. A subject exception handler handles the exception with reference to the subject state. Upon resuming execution from the exception using the subject state, the saved target state is restored to resume execution in the section of portion of native code.
    Type: Application
    Filed: June 19, 2007
    Publication date: January 3, 2008
    Applicant: Transitive Limited
    Inventors: Gavin Barraclough, Kit Wan, Abdul Hummaida
  • Publication number: 20070294675
    Abstract: A method of handling exceptions during native binding under program code conversion from subject code (17) executable by a subject computing architecture to target code (21) executable by a target computing architecture. Performing native binding executes a portion of native code (28) in place of translating a portion of the subject code (17) into the target code (21). When an exception occurs during the portion of native code (28), the method comprises saving a target state (T?) which represents a current point of execution in the target computing architecture for the portion of native code (28), and creating a subject state (S?) which represents an emulated point of execution in the subject computing architecture.
    Type: Application
    Filed: October 10, 2006
    Publication date: December 20, 2007
    Applicant: Transitive Limited
    Inventors: Gavin Barraclough, Kit M. Wan, Abdul R. Hummaida
  • Patent number: 7200841
    Abstract: An improved method and apparatus for performing program code conversion is provided and, more particularly, for generating improved intermediate representations for use in program code conversion. During program code conversion, a partial dead code elimination optimization technique is implemented to identify partially dead register definitions within a block of program code being translated. The partial dead code elimination is an optimization to the intermediate representation in the form of code motion for blocks of program code ending in non-computed branches or computed jumps, where target code for all dead child nodes of a partially dead register definition is prevented from being generated and target code for partially dead child nodes of a partially dead register definition is delayed from being generated until after target code is generated for all fully live child nodes for the partially dead register definition.
    Type: Grant
    Filed: December 12, 2003
    Date of Patent: April 3, 2007
    Assignee: Transitive Limited
    Inventors: William Owen Lovett, Alex Brown, Gavin Barraclough
  • Publication number: 20060277532
    Abstract: A dynamic binary translator 19 converts a subject program 17 into target code 21 on a target processor 13. For a multi-threaded subject environment, the translator 19 provides a global token 501 common to each thread 171, 172, and one or more sets of local data 502, which together are employed to coordinate access to a memory 18 as a shared resource. Adjusting the global token 501 allows the local datastructures 502a,b in each thread to detect potential interference with the shared resource 18.
    Type: Application
    Filed: September 2, 2005
    Publication date: December 7, 2006
    Applicant: Transitive Limited
    Inventors: Gavin Barraclough, Paul Knowles
  • Publication number: 20060253691
    Abstract: Precise exception handling relies on a precise subject state including an accurate program counter and register values of a subject processor. Subject code (17) is translated into target code (21) executable by a target processor (13). The generated target code (17) includes counterpart target instructions (214) associated with fault-vulnerable subject code instructions (174). Further, each of the counterpart target code instruction (214) is associated with recovery information (195). When an exception (e.g. a fault) occurs, the recovery information (195) is retrieved and used to recover a precise subject state, in particular by taking account of optimizations to generate the common-case target code (21). The precise subject state is then used to precisely handle the exception.
    Type: Application
    Filed: November 14, 2005
    Publication date: November 9, 2006
    Applicant: Transitive Limited
    Inventors: Gavin Barraclough, Kit Wan, Abdul Hummaida
  • Publication number: 20060206880
    Abstract: An execution control method is described for use in a translator (19) which converts subject code (17) into target code (21). The translator (19) includes a translator trampoline function (191) which is called from a translator run loop (190) and which in turn calls either to a translator code generator (192) to generate target code, or else calls previously generated target code (212) for execution. Control then returns to the translator trampoline function (191) to make a new call, or returns to the translator run loop (190). Other aspects include making context switches through the trampoline function (191) and setting first and second calling conventions either side of the trampoline function (191). Jumping directly or indirectly between target code blocks (212) during execution is also described.
    Type: Application
    Filed: May 27, 2005
    Publication date: September 14, 2006
    Inventors: Gavin Barraclough, Kit Wan, Alexander Brown, David Mackintosh
  • Publication number: 20040221278
    Abstract: A translator apparatus is provided with both program code interpreting and translating functionality, where subject program code is interpreted rather than being translated in those situations where interpretation of the subject program code is determined to be more beneficial. The translator applies an interpreting algorithm to determine whether a basic block of subject program code should be interpreted or translated. A particular subject of instructions supported by the interpreter functionality is initially selected from an entire instruction set for the subject program code. A basic block will be interpreted 1) if all of the instructions within a basic block are determined to be within the subset of instructions supported by the interpreter functionality, and 2) if an execution count of the basic block is below a translation threshold.
    Type: Application
    Filed: December 10, 2003
    Publication date: November 4, 2004
    Inventors: Gisle Dankel, Gavin Barraclough, Matthew L. Evans
  • Publication number: 20040221279
    Abstract: An improved method and apparatus for performing program code conversion is provided and, more particularly, for generating improved intermediate representations for use in program code conversion. During program code conversion, a partial dead code elimination optimization technique is implemented to identify partially dead register definitions within a block of program code being translated. The partial dead code elimination is an optimization to the intermediate representation in the form of code motion for blocks of program code ending in non-computed branches or computed jumps, where target code for all dead child nodes of a partially dead register definition is prevented from being generated and target code for partially dead child nodes of a partially dead register definition is delayed from being generated until after target code is generated for all fully live child nodes for the partially dead register definition.
    Type: Application
    Filed: December 12, 2003
    Publication date: November 4, 2004
    Inventors: William Owen Lovett, Alex Brown, Gavin Barraclough