1460727282-42c0799d-da35-4f4d-a968-68a05228dbca

1. A mud pulse telemetry system, comprising:
a surface located fluid supply line having a drilling fluid flowing therein;
a non-venting pulser disposed in said drilling fluid in said supply line, said non-venting pulser adapted to generate pressure fluctuations in said drilling fluid;
a downhole receiver in hydraulic communication with said pulser and adapted to detect said pressure fluctuations in said drilling fluid;
a downhole pressure pulser configured to send a signal to a surface location, wherein the non-venting pulser and the downhole pressure pulser perform a signal handshake having an uplink signal and a downlink signal between the surface location and the downhole location; and
a processor configured to determine a data reception rate at one of the surface location and the downhole location, compare the determined data reception rate to a predetermined data reception criterion for the one of the surface location and the downhole location, and instruct the other of the surface location and the downhole location to alter an encoding scheme of the at least one of said uplink signal and said downlink signal when the predetermined data reception rate is not achieved.
2. The mud pulse telemetry system of claim 1, wherein the non-venting pulser is one of: (i) an oscillating shear valve pulser; and (ii) a reciprocating poppet pulser.
3. The mud pulse telemetry system of claim 2, wherein the oscillating shear valve pulser includes:
i. a non-rotating stator;
ii. a rotor proximate said stator; and
iii. a drive system adapted to drive the rotor in a controllable rotationally oscillating manner for generating pressure fluctuations in the drilling fluid, said drive system controlling at least one oscillating characteristic of interest of the rotor.
4. The mud pulse telemetry system of claim 3, further comprising a controller for controlling the drive system.
5. The mud pulse telemetry system of claim 1, wherein the downhole receiver includes at least one pressure sensor.
6. The mud pulse telemetry system of claim 1, wherein the downhole receiver includes a downhole pulser for transmitting signals to a surface receiver.
7. The mud pulse telemetry system of claim 1, further comprising a surface receiver including at least one pressure sensor.
8. The mud pulse telemetry system of claim 3, wherein the at least one oscillating characteristic of interest of the rotor is at least one of: (i) an oscillating frequency of the rotor; (ii) an oscillating angle of the rotor; and (iii) an oscillating phase of the rotor.
9. The mud pulse telemetry system of claim 3, wherein the drive system is one of: (i) an electric motor; (ii) an electric motor driven gear system; (iii) an electric motor driven adjustable pin and crank system; and (iv) an electric motor driven cam system for converting continuous motor rotation to oscillating rotor motion.
10. The mud pulse telemetry system of claim 3, further comprising a torsion spring acting cooperatively with the drive system to reduce power required to drive said rotor in said controlled rotationally oscillating manner.
11. The mud pulse telemetry system of claim 10, wherein the torsion spring comprises:
i. an inner magnet assembly adapted to attach to the drive system distal from the rotor, and
ii. a non-rotating outer magnetic assembly concentric with said inner magnet assembly and axially moveable with respect to said inner magnet assembly, said axially moveable outer magnet assembly acting cooperatively with said inner magnet assembly to create a magnetic spring having an adjustable spring constant.
12. The mud pulse telemetry system of claim 10, wherein the torsion spring has a predetermined spring constant such that the torsion spring acts cooperatively with a plurality of rotating masses comprising the drive system and the rotor to create a torsional spring-mass system whose torsional resonant frequency is related to a predetermined pressure fluctuation frequency.
13. The mud pulse telemetry system of claim 3, further comprising an oil-filled pulser housing having a fluid seal for preventing intrusion of wellbore fluid, the fluid seal comprising a flexible elastomeric bellows.
14. The mud pulse telemetry system of claim 4, wherein the controller comprises circuitry to control the motion of the rotor, said circuitry including a programmable processor adapted to perform programmed instructions for controlling the motion of the rotor.
15. A method of selecting a transmission parameter for bi-directional signal transmission between a surface location and a downhole location in a drilling mud communication channel, comprising:
a. performing a signal handshake having an uplink signal and a downlink signal between said surface location and said downhole location;
b. determining a data reception rate at one of the surface location and the downhole location and comparing the determined data reception rate to a predetermined data reception criterion for the one of the surface location and the downhole location;
c. instructing the other of the surface location and the downhole location to alter an encoding scheme of at least one of said uplink signal and said downlink signal if the predetermined data reception rate is not achieved; and
d. repeating steps a-c until the determined data reception rate meets the predetermined data reception criterion.
16. The method of claim 15, wherein the at least one transmission parameter is chosen from a group consisting of: (i) a type of encoding scheme, (ii) a baseline pulse amplitude, and (iii) a baseline frequency.
17. The method of claim 15, further comprising:
disposing a non-venting pulser in a surface-located fluid supply line having a drilling fluid flowing therein;
actuating said non-venting pulser to generate pressure fluctuations according to a predetermined encoding scheme in said flowing drilling fluid; and
detecting said pressure fluctuations with a downhole receiver in hydraulic communication with said non-venting pulser.
18. The method of claim 17, wherein the non-venting pulser is one of (i) an oscillating shear valve pulser and (ii) a reciprocating poppet pulser.
19. The method of claim 17, wherein the step of actuating the non-venting pulser comprises controlling the actuation of the non-venting pulser with a controller.
20. The method of claim 17, further comprising modifying the actuation of a downhole pulser in response to said detected pressure fluctuations.
21. The method of claim 17, wherein the predetermined encoding scheme is at least one of (i) a phase shift key (PSK) encoding scheme, (ii) a frequency shift key (FSK) encoding scheme, (iii) an amplitude shift key (ASK) encoding scheme, (iv) a combination of an amplitude shift key (ASK) encoding scheme and a frequency shift key (FSK) encoding scheme, and (v) a combination of an amplitude shift key (ASK) encoding scheme and a phase shift key (PSK) encoding scheme.

The claims below are in addition to those above.
All refrences to claim(s) which appear below refer to the numbering after this setence.

1. A method implemented in a data processing system, the method comprising:
identifying a candidate instruction in a code of an application being loaded during load time, wherein the candidate instruction is specific to a hardware facility;
responsive to identifying the candidate instruction, determining whether the hardware facility is present in the data processing system to execute the candidate instruction; and
responsive to a determination that the hardware facility is absent from the data processing system, substituting the candidate instruction with a second set of instructions.
2. The method of claim 1 further comprising:
responsive to a determination that the hardware facility is present in the data processing system, retaining the first set of instructions.
3. The method of claim 1 wherein the second set of instructions comprises a no-op instruction.
4. The method of claim 1 wherein the candidate instruction is one of a single instruction and a plurality of instructions.
5. The method of claim 1 wherein the second set of instructions is one of a single instruction and a plurality of instructions.
6. The method of claim 1 wherein the candidate instruction is one of a single instruction and a plurality of instructions and wherein the second set of instructions is one of a single instruction and a plurality of instructions.
7. The method of claim 1 wherein the candidate instruction is identified by a fix-up type associated with the candidate instruction.