Patents by Inventor Patrick O'Brien

Patrick O'Brien 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: 8032873
    Abstract: The present invention provides for a system for computer program code size partitioning for multiple memory multi-processor systems. At least one system parameter of a computer system comprising one or more disparate processing nodes is identified. Computer program code comprising a program to be run on the computer system is received. A program representation based on received computer program code is generated. At least one single-entry-single-exit (SESE) region is identified based on the whole program representation. At least one SESE region of less than a certain size (store-size-specific) is identified based on identified SESE regions and the at least one system parameter. Each store-size-specific SESE region is grouped into a node-specific subroutine. The non node-specific parts of the computer program code are modified based on the partitioning into node-specific subroutines. The modified computer program code including each node-specific subroutine is compiled based on a specified node characteristic.
    Type: Grant
    Filed: December 17, 2008
    Date of Patent: October 4, 2011
    Assignee: International Business Machines Corporation
    Inventors: Kathryn M. O'Brien, John Kevin Patrick O'Brien
  • Patent number: 8010957
    Abstract: A computer implemented method, apparatus, and computer usable program code for eliminating redundant read-modify-write code sequences in non-vectorizable code. Code is received comprising a sequence of operations. The sequence of operations includes a loop. Non-vectorizable operations are identified within the loop that modifies at least one sub-part of a storage location. The non-vectorizable operations are modified to include a single store operation for the number of sub-parts of the storage location.
    Type: Grant
    Filed: August 1, 2006
    Date of Patent: August 30, 2011
    Assignee: International Business Machines Corporation
    Inventors: John Kevin Patrick O'Brien, Kathryn M. O'Brien
  • Patent number: 8006238
    Abstract: A process, compiler, computer program product and system for workload partitioning in a heterogeneous system. The process includes determining heterogeneous alignment constraints in the workload, partitioning a portion of tasks to a processing element sensitive to alignment constraints, and partitioning a remaining portion of tasks to a processing element not sensitive to alignment constraints.
    Type: Grant
    Filed: September 26, 2006
    Date of Patent: August 23, 2011
    Assignee: International Business Machines Corporation
    Inventors: Alexandre E. Eichenberger, John Kevin Patrick O'Brien, Kathryn M. O'Brien, Tong Chen
  • Publication number: 20110180667
    Abstract: A tether continuous energy supply system for an unmanned aerial vehicle comprising: a ground station, a ground station energy system, a spool coupled to the ground station energy system at a rotating joint, a tether that is wound about the spool, wherein a first end of the tether is coupled to the rotating joint, a tension control motor coupled to both the spool and the ground station energy system, an unmanned aerial vehicle coupled to a second end of the tether, a UAV energy system, a fluid that moves throughout the tether continuous energy supply system, a tension control system that receives and transmits signals from a plurality of sensors contained within the tether continuous energy supply system, and a distributed controls system that receives and transmits signals from the plurality of sensors contained within the tether continuous energy supply system.
    Type: Application
    Filed: March 10, 2009
    Publication date: July 28, 2011
    Applicant: HONEYWELL INTERNATIONAL INC.
    Inventors: Patrick O'BRIEN, Emray R. GOOSSEN, Steven D. MARTINEZ
  • Publication number: 20110179068
    Abstract: A total fitness system uses a virtual trainer and/or a database of health information. Based upon certain information provided by a user, the virtual trainer can generate a workout routine and provide detailed guidance and instruction on how to carry out the routine. The database of health information can provide a user with supplement, diet, nutrition and other information, as well as, alternative exercises to perform based upon targeted muscles. A healthcare provider can access the system as part of patient treatment, or an insurance carrier can access the system for purposes of evaluating medical risk in underwriting medical or life policies. Furthermore, an individual's overall wellness can be evaluated by compiling and storing in the database a multitude of parameters which covers all aspects of one's life. This information can then be retrieved and evaluated by various organizations or users.
    Type: Application
    Filed: January 20, 2011
    Publication date: July 21, 2011
    Inventor: John Patrick O'Brien
  • Publication number: 20110161641
    Abstract: An application thread executes a direct branch instruction that is stored in an instruction cache line. Upon execution, the direct branch instruction branches to a branch descriptor that is also stored in the instruction cache line. The branch descriptor includes a trampoline branch instruction and a target instruction space address. Next, the trampoline branch instruction sends a branch descriptor pointer, which points to the branch descriptor, to an instruction cache manager. The instruction cache manager extracts the target instruction space address from the branch descriptor, and executes a target instruction corresponding to the target instruction space address. In one embodiment, the instruction cache manager generates a target local store address by masking off a portion of bits included in the target instruction space address. In turn, the application thread executes the target instruction located at the target local store address accordingly.
    Type: Application
    Filed: December 29, 2009
    Publication date: June 30, 2011
    Applicant: INTERNATIONAL BUSINESS MACHINES CORPORATION
    Inventors: TONG CHEN, BRIAN FLACHS, BRAD WILLIAM MICHAEL, MARK RICHARD NUTTER, KATHRYN M. O'BRIEN, JOHN KEVIN PATRICK O'BRIEN
  • Publication number: 20110147533
    Abstract: A morphing duct of a ducted fan for a vertical take-off and landing (VTOL) vehicle is configured to change shape as function of the flight mode of the vehicle to improve the thrust per unit energy input for the ducted fan. Additionally, the morphing duct may be configured to change shape to change the flight path of the VTOL vehicle.
    Type: Application
    Filed: December 21, 2009
    Publication date: June 23, 2011
    Applicant: HONEYWELL INTERNATIONAL INC.
    Inventors: Emray Goossen, Paul Alan Cox, Patrick O'Brien
  • Publication number: 20110145503
    Abstract: A method for computing includes executing a program, including multiple cacheable lines of executable code, on a processor having a software-managed cache. A run-time cache management routine running on the processor is used to assemble a profile of inter-line jumps occurring in the software-managed cache while executing the program. Based on the profile, an optimized layout of the lines in the code is computed, and the lines of the program are re-ordered in accordance with the optimized layout while continuing to execute the program.
    Type: Application
    Filed: December 16, 2009
    Publication date: June 16, 2011
    Applicant: International Business Machines Corporation
    Inventors: Revital Erez, Brian Flachs, Mark Richard Nutter, John Kevin Patrick O'Brien, Ulrich Weigand, Ayal Zaks
  • Patent number: 7962906
    Abstract: A compiler includes a mechanism for employing multiple synergistic processors to execute long vectors. The compiler receives a single source program. The compiler identifies vectorizable loop code in the single source program and extracts the vectorizable loop code from the single source program. The compiler then compiles the extracted vectorizable loop code for a plurality of synergistic processors. The compiler also compiles a remainder of the single source program for a principal processor to form an executable main program such that the executable main program controls operation of the executable vectorizable loop code on the plurality of synergistic processors.
    Type: Grant
    Filed: March 15, 2007
    Date of Patent: June 14, 2011
    Assignee: International Business Machines Corporation
    Inventors: John Kevin Patrick O'Brien, Kathryn M. O'Brien, Daniel Arthur Prener
  • Patent number: 7879942
    Abstract: A hypoallergenic adhesive article employing a switchable pressure sensitive adhesive (PSA) composition comprising one or more amphiphilic polyesters in physical mixture with a humectant. When contacted with a liquid of low-ion content, the adhesive undergoes a reduction in peel strength, which allows for easy removal, but remains strongly adhered when contacted with ionic liquids, such as blood, sweat, and other bodily fluids. The adhesive composition can be employed in a variety of medical articles or in other similar applications.
    Type: Grant
    Filed: October 5, 2006
    Date of Patent: February 1, 2011
    Assignee: Eastman Chemical Company
    Inventors: Emmett Patrick O'Brien, Douglas Grant Atkins
  • Patent number: 7870544
    Abstract: A “kill” intrinsic that may be used in programs for designating specific data objects as having been “killed” by a preceding action is provided. The concept of a data object being “killed” is that the compiler is informed that no operations (e.g., loads and stores) on that data object, or its aliases, can be moved across the point in the program flow where the data object is designated as having been “killed.” The “kill” intrinsic limits the reordering capability of an optimization scheduler of a compiler with regard to operations performed on “killed” data objects. The “kill” intrinsic may be used with DMA operations. Data objects being DMA'ed from a local store of a processor may be “killed” through use of the “kill” intrinsic prior to submitting the DMA request. Data objects being DMA'ed to the local store of the processor may be “killed” after verifying the transfer completes.
    Type: Grant
    Filed: April 5, 2006
    Date of Patent: January 11, 2011
    Assignee: International Business Machines Corporation
    Inventors: Daniel A. Brokenshire, John Kevin Patrick O'Brien
  • Patent number: 7784037
    Abstract: A compiler implemented software cache is provided in which non-aliased explicitly fetched data are excluded are provided. With the mechanisms of the illustrative embodiments, a compiler uses a forward data flow analysis to prove that there is no alias between the cached data and explicitly fetched data. Explicitly fetched data that has no alias in the cached data are excluded from the software cache. Explicitly fetched data that has aliases in the cached data are allowed to be stored in the software cache. In this way, there is no runtime overhead to maintain the correctness of the two copies of data. Moreover, the number of lines of the software cache that must be protected from eviction is decreased. This leads to a decrease in the amount of computation cycles required by the cache miss handler when evicting cache lines during cache miss handling.
    Type: Grant
    Filed: April 14, 2006
    Date of Patent: August 24, 2010
    Assignee: International Business Machines Corporation
    Inventors: Tong Chen, John Kevin Patrick O'Brien, Kathryn O'Brien, Byoungro So, Zehra N. Sura, Tao Zhang
  • Patent number: 7765360
    Abstract: Mechanisms for performing useful computations during a software cache reload operation are provided. With the illustrative embodiments, in order to perform software caching, a compiler takes original source code, and while compiling the source code, inserts explicit cache lookup instructions into appropriate portions of the source code where cacheable variables are referenced. In addition, the compiler inserts a cache miss handler routine that is used to branch execution of the code to a cache miss handler if the cache lookup instructions result in a cache miss. The cache miss handler, prior to performing a wait operation for waiting for the data to be retrieved from the backing store, branches execution to an independent subroutine identified by a compiler. The independent subroutine is executed while the data is being retrieved from the backing store such that useful work is performed.
    Type: Grant
    Filed: October 1, 2008
    Date of Patent: July 27, 2010
    Assignee: International Business Machines Corporation
    Inventors: John Kevin Patrick O'Brien, Kathryn O'Brien
  • Publication number: 20100112250
    Abstract: Disclosed are hot-melt adhesives prepared from polyesters containing 1,4-cyclohexane-dicarboxylic acid as a diacid component and a diol component containing at least two diols chosen from 1,4-cyclohexanedimethanol, triethylene glycol, and diethylene glycol. These adhesives set up rapidly within a well-defined temperature window. The hot-melt adhesives can be used in a variety of applications, but are especially suited as seaming adhesives for roll-applied labels. These adhesives have melting temperatures and crystallization properties that allow their application at temperatures cool enough to prevent curling and premature shrinkage of the shrink label during seaming, and yet produce strong label seams that can withstand the elevated temperatures of a shrink tunnel without sacrificing line speed. Also disclosed are labeled containers and a process for applying a roll-on, shrink label to a container using the hot-melt adhesives of the invention.
    Type: Application
    Filed: October 12, 2009
    Publication date: May 6, 2010
    Applicant: EASTMAN CHEMICAL COMPANY
    Inventors: Marcus David Shelby, Scott Ellery George, Gary Robert Robe, Freddie Wayne Williams, Michael Eugene Donelson, Joshua Seth Cannon, Emmett Patrick O'Brien, Jeremy Richard Lizotte, Anthony Joseph Pasquale
  • Publication number: 20100043262
    Abstract: A card holder is disclosed which has: a) a front and a back panel connected by a central hinge; the holder having a closed position in which the front panel at least partially overlies the back panel, generally in a single plane, and an open position in which the panels are pivoted about the central hinge for viewing material positioned between the panels; and b) a pop-up connected to both panels, the pop-up panel being connected to at least one of the panels by a foldable extension. Opening the holder along the central hinge unfolds the foldable extension rotating the pop-up panel and moving the pop-up out of the plane of the panels.
    Type: Application
    Filed: August 21, 2008
    Publication date: February 25, 2010
    Inventors: Patrick O'Brien, John O'Mara, David Kamyk
  • Publication number: 20090158019
    Abstract: The present invention provides for a system for computer program code size partitioning for multiple memory multi-processor systems. At least one system parameter of a computer system comprising one or more disparate processing nodes is identified. Computer program code comprising a program to be run on the computer system is received. A program representation based on received computer program code is generated. At least one single-entry-single-exit (SESE) region is identified based on the whole program representation. At least one SESE region of less than a certain size (store-size-specific) is identified based on identified SESE regions and the at least one system parameter. Each store-size-specific SESE region is grouped into a node-specific subroutine. The non node-specific parts of the computer program code are modified based on the partitioning into node-specific subroutines. The modified computer program code including each node-specific subroutine is compiled based on a specified node characteristic.
    Type: Application
    Filed: December 17, 2008
    Publication date: June 18, 2009
    Applicant: International Business Machines Corporation
    Inventors: Kathryn M. O'Brien, John Kevin Patrick O'Brien
  • Publication number: 20090119652
    Abstract: The present invention provides for a system for computer program functional partitioning for heterogeneous multi-processing systems. At least one system parameter of a computer system comprising one or more disparate processing nodes is identified. Computer program code comprising a program to be run on the computer system is received. A whole program representation is generated based on received computer program code. At least one single-entry-single-exit (SESE) region is identified based on the whole program representation. At least one node-specific SESE region is identified based on identified SESE regions and the at least one system parameter. Each node-specific SESE region is grouped into a node-specific subroutine. Each node-specific subroutine is compiled based on a specified node characteristic. The computer program code is modified based on the node-specific subroutines and the modified computer program code is compiled.
    Type: Application
    Filed: January 8, 2009
    Publication date: May 7, 2009
    Applicant: International Business Machines Corporation
    Inventors: Kathryn M. O'Brien, John Kevin Patrick O'Brien
  • Patent number: 7512699
    Abstract: A method for managing position independent code using a software framework is presented. A software framework provides the ability to cache multiple plug-in's which are loaded in a processor's local storage. A processor receives a command or data stream from another processor, which includes information corresponding to a particular plug-in. The processor uses the plug-in identifier to load the plug-in from shared memory into local memory before it is required in order to minimize latency. When the data stream requests the processor to use the plug-in, the processor retrieves a location offset corresponding to the plug-in and applies the plug-in to the data stream. A plug-in manager manages an entry point table that identifies memory locations corresponding to each plug-in and, therefore, plug-ins may be placed anywhere in a processor's local memory.
    Type: Grant
    Filed: November 12, 2004
    Date of Patent: March 31, 2009
    Assignee: International Business Machines Corporation
    Inventors: Michael Stan Gowen, Barry L Minor, Mark Richard Nutter, John Kevin Patrick O'Brien
  • Patent number: 7512745
    Abstract: Garbage collection in heterogeneous multiprocessor systems is provided. In some illustrative embodiments, garbage collection operations are distributed across a plurality of the processors in the heterogeneous multiprocessor system. Portions of a global mark queue are assigned to processors of the heterogeneous multiprocessor system along with corresponding chunks of a shared memory. The processors perform garbage collection on their assigned portions of the global mark queue and corresponding chunk of shared memory marking memory object references as reachable or adding memory object references to a non-local mark stack. The marked memory objects are merged with a global mark stack and memory object references in the non-local mark stack are merged with a “to be traced” portion of the global mark queue for re-checking using a garbage collection operation.
    Type: Grant
    Filed: April 28, 2006
    Date of Patent: March 31, 2009
    Assignee: International Business Machines Corporation
    Inventors: Michael K. Gschwind, John Kevin Patrick O'Brien, Kathryn M. O'Brien
  • Publication number: 20090055588
    Abstract: Mechanisms for performing useful computations during a software cache reload operation are provided. With the illustrative embodiments, in order to perform software caching, a compiler takes original source code, and while compiling the source code, inserts explicit cache lookup instructions into appropriate portions of the source code where cacheable variables are referenced. In addition, the compiler inserts a cache miss handler routine that is used to branch execution of the code to a cache miss handler if the cache lookup instructions result in a cache miss. The cache miss handler, prior to performing a wait operation for waiting for the data to be retrieved from the backing store, branches execution to an independent subroutine identified by a compiler. The independent subroutine is executed while the data is being retrieved from the backing store such that useful work is performed.
    Type: Application
    Filed: October 1, 2008
    Publication date: February 26, 2009
    Applicant: International Business Machines Corporation
    Inventors: John Kevin Patrick O'Brien, Kathryn O'Brien