Patents by Inventor Robert G. McDonald

Robert G. McDonald 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: 20210340972
    Abstract: A hydraulic pumping system can include a hydraulic actuator with a magnet that displaces with a piston, and a sensor that continuously detects a position of the magnet. A ferromagnetic wall of the hydraulic actuator is positioned between the magnet and the sensor. A hydraulic pumping method can include incrementally lowering a lower stroke extent of a rod string reciprocation over multiple reciprocation cycles of the rod string, and automatically varying the lower stroke extent or an upper stroke extent of the rod string reciprocation, in response to a measured vibration. Another hydraulic pumping method can include solving a wave equation in the rod string, and automatically varying a reciprocation speed of the rod string in response to a change in work performed during reciprocation cycles of the hydraulic actuator or a change in detected force versus displacement in different reciprocation cycles of the hydraulic actuator.
    Type: Application
    Filed: July 7, 2021
    Publication date: November 4, 2021
    Inventors: Kenneth J. SCHMITT, Clark E. ROBISON, Robert G. MCDONALD, James S. TRAPANI, Benson THOMAS
  • Patent number: 11098708
    Abstract: A hydraulic pumping system can include a hydraulic actuator with a magnet that displaces with a piston, and a sensor that continuously detects a position of the magnet. A ferromagnetic wall of the hydraulic actuator is positioned between the magnet and the sensor. A hydraulic pumping method can include incrementally lowering a lower stroke extent of a rod string reciprocation over multiple reciprocation cycles of the rod string, and automatically varying the lower stroke extent or an upper stroke extent of the rod string reciprocation, in response to a measured vibration. Another hydraulic pumping method can include solving a wave equation in the rod string, and automatically varying a reciprocation speed of the rod string in response to a change in work performed during reciprocation cycles of the hydraulic actuator or a change in detected force versus displacement in different reciprocation cycles of the hydraulic actuator.
    Type: Grant
    Filed: December 2, 2015
    Date of Patent: August 24, 2021
    Assignee: Weatherford Technology Holdings, LLC
    Inventors: Kenneth J. Schmitt, Clark E. Robison, Robert G. McDonald, James S. Trapani, Benson Thomas
  • Patent number: 10215012
    Abstract: A method for operating rod pumping unit for a wellbore includes measuring a parameter of the rod pumping unit at a first location; measuring the parameter of the rod pumping unit at a second location; and subtracting the measured parameters at the second location from the measured parameter at the first location.
    Type: Grant
    Filed: July 15, 2016
    Date of Patent: February 26, 2019
    Assignee: WEATHERFORD TECHNOLOGY HOLDINGS, LLC
    Inventors: Robert G. McDonald, Ross E. Moffett, Jeffrey John Lembcke, Clark E. Robison
  • Publication number: 20180016889
    Abstract: A method for operating rod pumping unit for a wellbore includes measuring a parameter of the rod pumping unit at a first location; measuring the parameter of the rod pumping unit at a second location; and subtracting the measured parameters at the second location from the measured parameter at the first location.
    Type: Application
    Filed: July 15, 2016
    Publication date: January 18, 2018
    Inventors: Robert G. MCDONALD, Ross E. MOFFETT, Jeffrey John LEMBCKE, Clark E. ROBISON
  • Publication number: 20170037714
    Abstract: A hydraulic pumping system can include a hydraulic actuator with a magnet that displaces with a piston, and a sensor that continuously detects a position of the magnet. A ferromagnetic wall of the hydraulic actuator is positioned between the magnet and the sensor. A hydraulic pumping method can include incrementally lowering a lower stroke extent of a rod string reciprocation over multiple reciprocation cycles of the rod string, and automatically varying the lower stroke extent or an upper stroke extent of the rod string reciprocation, in response to a measured vibration. Another hydraulic pumping method can include solving a wave equation in the rod string, and automatically varying a reciprocation speed of the rod string in response to a change in work performed during reciprocation cycles of the hydraulic actuator or a change in detected force versus displacement in different reciprocation cycles of the hydraulic actuator.
    Type: Application
    Filed: December 2, 2015
    Publication date: February 9, 2017
    Inventors: Kenneth J. SCHMITT, Clark E. ROBISON, Robert G. MCDONALD, James S. TRAPANI, Benson THOMAS
  • Publication number: 20030041302
    Abstract: A markup language accelerator is coupled to receive a pointer to markup language data (e.g. from software executing on a CPU) and is configured to perform at least some of the parsing of the markup language data. For example, the markup language accelerator may parse the markup language data into tokens delimited by delimiters defined in the markup language. The software may communicate with the markup language accelerator using one or more commands to determine the various token types in the markup language data and, in some cases, may receive pointers to the tokens within the markup language data.
    Type: Application
    Filed: August 3, 2001
    Publication date: February 27, 2003
    Inventor: Robert G. McDonald
  • Publication number: 20030028751
    Abstract: An acceleration engine may include a set of accelerators and a set of resources coupled to the accelerators. The resources may interface the accelerators to an interconnect, and may provide a programming interface to the accelerators. Since the resources handle interfacing the accelerators to a given interconnect, the accelerators may be insulated from the details of a given system. If more than one accelerator is included in the acceleration engine, some of the resources may be shared by the accelerators. For example, if the resources include a memory for storing data accessed by an accelerator, the memory may be shared between by the accelerators. A methodology for creating an acceleration engine is also described.
    Type: Application
    Filed: August 3, 2001
    Publication date: February 6, 2003
    Inventors: Robert G. McDonald, Barry D. Williamson, Micah R. McDaniel
  • Publication number: 20020156977
    Abstract: A system includes a virtual caching mechanism. A virtual cache is mapped to an address range separate from the main memory address range within a cacheable address space of the system. Regenerable data may be generated from source data and may be allocated space in the virtual cache. The CPU may fetch the data from the virtual cache (and the data may be supplied by a control circuit monitoring the CPU interface for addresses within the address range corresponding to the virtual cache). The data may be cached in a CPU cache, but may not be stored in the main memory. Thus, the CPU may have access to the regenerable data via the CPU cache, but main memory locations may not be required to store the regenerable data. If the regenerable data is replaced in the CPU cache and subsequently requested by the CPU, the regenerable data may be regenerated and supplied to the CPU.
    Type: Application
    Filed: April 23, 2001
    Publication date: October 24, 2002
    Inventors: John E. Derrick, Robert G. McDonald
  • Patent number: 6212542
    Abstract: A multiscalar processor and method of executing a multiscalar program within a multiscalar processor having a plurality of processing elements and a thread scheduler are provided. The multiscalar program includes a plurality of threads that are each composed of one or more instructions of a selected instruction set architecture. Each of the plurality of threads has a single entry point and a plurality of possible exit points. The multiscalar program further comprises thread code including a plurality of data structures that are each associated with a respective one of the plurality of threads. According to the method, a third data structure among the plurality of data structures is supplied to the thread scheduler. The third data structure, which is associated with a third thread among the plurality of threads, specifies a first data structure associated with a first possible exit point of the third thread and a second data structure associated with a second possible exit point of the third thread.
    Type: Grant
    Filed: December 16, 1996
    Date of Patent: April 3, 2001
    Assignee: International Business Machines Corporation
    Inventors: James A. Kahle, Soummya Mallick, Robert G. McDonald, Edward L. Swarthout
  • Patent number: 5961639
    Abstract: A processor and method of executing a program within a processor are provided. According to the method, a plurality of program instructions comprising a program and a set of auxiliary instructions are stored. An instruction stream including selected ones of the plurality of program instructions is supplied to the processor. In response to the processor processing a program instruction within the instruction stream that has an associated auxiliary instruction within the set of auxiliary instructions, the associated auxiliary instruction is automatically inserted within the instruction stream and the associated auxiliary instruction is executed within the processor.
    Type: Grant
    Filed: December 16, 1996
    Date of Patent: October 5, 1999
    Assignee: International Business Machines Corporation
    Inventors: Soummya Mallick, Robert G. McDonald, Edward L. Swarthout
  • Patent number: 5913925
    Abstract: A method and system for constructing a program are provided. According to the method, each of a plurality of instructions are assigned to at least one of a plurality of threads. The plurality of threads include first, second, and third threads, where the third thread follows the first thread and precedes the second thread in a logical program order. A data structure associated with the first thread is then constructed. The data structure includes an indication that execution of the second thread is to be initiated prior to initiation of execution of the third thread. According to one embodiment, the indication within the data structure is a pointer that specifies a second data structure associated with the second thread.
    Type: Grant
    Filed: December 16, 1996
    Date of Patent: June 22, 1999
    Assignee: International Business Machines Corporation
    Inventors: James A. Kahle, Soummya Mallick, Robert G. McDonald
  • Patent number: 5887166
    Abstract: A method and system are provided for constructing a program executable by a processor including one or more processing elements for executing threads and a thread scheduler for assigning threads to the processing elements for execution. According to the method, a plurality of threads are provided that each include at least one control flow instruction. From one or more control flow instructions within the plurality of threads, a condition upon which execution of a particular thread depends is determined. In response to the determination, at least one navigation instruction executable by the thread scheduler is created that indicates that the particular thread is to be assigned to one of the processing elements for execution in response to the condition.
    Type: Grant
    Filed: December 16, 1996
    Date of Patent: March 23, 1999
    Assignee: International Business Machines Corporation
    Inventors: Soummya Mallick, Robert G. McDonald, Edward L. Swarthout
  • Patent number: 5802386
    Abstract: Instructions are efficiently scheduled for execution based on a stored identification of the first processor cycle when a result of a previous instruction required as an operand for the instruction to be scheduled will become available. Examination of stored processor cycle identifications for the operands of an instruction reveals the earliest processor cycle when the instruction may be executed. By selecting the greater of the largest stored processor cycle identification for an operand of the instruction and the earliest available processor cycle for an execution unit required to execute the instruction, the instruction is efficiently scheduled for the earliest possible execution. Latency of previous instructions in generating an operand of the instruction being scheduled is automatically accommodated.
    Type: Grant
    Filed: November 19, 1996
    Date of Patent: September 1, 1998
    Assignee: International Business Machines Corporation
    Inventors: James A. Kahle, Soummya Mallick, Robert G. McDonald