1461160256-7bb95a7d-2491-4528-a0ed-d68a85338df7

1. A data error correction circuit, comprising:
a plurality of one-bit registers;
a data error detection unit configured to detect whether all data values respectively stored in the plurality of the registers are equal to each other; and
a data correction unit configured to determine correct data values based upon each of the stored data values, and configured to store the correct data values into the registers, respectively, if the data values are not equal,
wherein the data error detection circuit comprises:
a first AND-gate receiving all bits output by the one-bit registers;
a plurality of inverters receiving the all bits, wherein each inverter receives a corresponding one of the all bits to generate inverted bits;
a second AND-gate, all inputs of the second AND-gate receiving the inverted bits from the inverters; and
an OR-gate receiving an output of the first AND-gate and an output of the second AND-gate,
wherein an output of the OR-gate is a first logical value when all of the bits output by the one-bit registers are the same and a second and different logical value otherwise,

wherein the data correction unit comprises:
a logic gate receiving all bits output by the one-bit registers as inputs to output a value;
a first selection unit receiving the value as a first input, an external data value as a second input, and a first selection signal based on the output of the OR-gate, wherein the first selection unit outputs one of its inputs to data terminals of the one-bit registers based on the first selection signal; and
a second selection unit receiving an external clock signal as a first input, a clock signal based on the output of the OR-gate as a second input, and a second selection signal based on the output of the OR-gate, wherein the second selection unit outputs one of its inputs to clock terminals of the one-bit registers based on the second selection signal.
2. The data error correction circuit of claim 1, wherein the data error detection unit detects whether the data values are equal to each other when the output of the OR-gate is the first logical value.
3. The data error correction circuit of claim 1, wherein the value corresponds to a selected one of a result of a logical AND operation performed upon the all bits and a result of a logical OR operation performed upon the all bits.
4. The data error correction circuit of claim 1, wherein the logic gate is a logical OR-gate configured to perform a logical OR operation upon the all bits.
5. The data error correction circuit of claim 1, wherein the logic gate is a logical AND-gate configured to perform a logical AND operation upon the all bits.
6. The data error correction circuit of claim 1, further comprises:
a third logical AND-gate configured to perform a logical AND operation upon the all bits; and
a third selection circuit configured to select one of the output value of the logic gate and the output value of the third logical AND-gate, wherein the logic gate is a second logical OR-gate.
7. The data error correction circuit of claim 6, wherein the third selection circuit selects one of the output value of the second logical OR-gate and the output value of the third logical AND-gate based upon an external event signal.
8. The data error correction circuit of claim 1, wherein the first selection unit outputs the value to the plurality of the registers if the all bits are not equal, and the external data value to the plurality of the registers if the all bits are equal.
9. The data error correction circuit of claim 1, wherein the output of the second selection unit provides a clock for indicating a time point when the value is stored if the all bits are not equals and the first selection unit provides the value if the all bits are not equal.
10. The error correction circuit of claim 1, wherein the data correction unit determines the correct data values based upon each of the stored data values and when an external event is received that is indicative of a user of a mobile communication device performing an action to the device.
11. An integrated circuit (IC), comprising:
an event detection circuit configured to detect an event generated from the exterior; and
a data error correction circuit configured to correct a data error if the event is detected, the data error correction circuit comprising:
a plurality of one-bit registers;
a data error detection unit configured to detect whether data values respectively stored in the plurality of the registers are equal to each other,
wherein the error detection unit is configured to output a first logical value when all the data values are equal to each other and output a second logical value when the data values are not all equal to each other,
wherein the first logical value is different from the second logical value; and
a data correction unit configured to determine correct data values based upon each of the stored data values if the event is detected, and to correct each of the data values into the determined correct data value to store the corrected data values into the registers, respectively, when the output of the error detection unit is the second value,
wherein the data correction unit comprises:
a selection unit receiving an external clock signal as a first input, a clock signal based on an output of the data error detection unit as a second input, and a selection signal based on the output of the data error detection unit, wherein the selection unit outputs one of its inputs to clock terminals of the one-bit registers based on the selection signal.
12. The IC of claim 11, wherein the data error detection unit detects whether the data values are equal to each other based upon a logical AND value of the data values and a logical AND value of inverted data values the inverted data values being obtained by inverting the data values.
13. The IC of claim 11, wherein the data correction unit comprises:
a correct value determination unit configured to calculate the correct data value based upon the stored data values; and
a correct value selection unit configured to select one of the calculated correct data value and an external data value based upon the detected result of the data error detection unit, if the event is detected.
14. The IC of claim 13, wherein the correct value selection unit selects one of the result of a logical AND operation performed upon the data values and the result of a logical OR operation performed upon the data values if the event is detected.
15. The IC of claim 14, wherein the data error detection unit comprises:
a first AND-gate receiving each bit output by the one-bit registers;
a plurality of inverters receiving each bit output by the one-bit registers, wherein each inverter receives a corresponding one of the bits to generate inverted bits;
a second AND-gate receiving all of the inverted bits; and
an OR-gate receiving an output of the first AND-gate and an output of the second AND-gate,
wherein an output of the OR-gate is the first logical value when all of the bits output by the one-bit registers are the first logical value or the second logical value, and
wherein the output of the OR-gate is the second logical value when at least one of the bits output by the one-bit registers is the first logical value and at least one of the bits output by the one bit registers is the second logical value.
16. A method of performing data error correction, the method comprising:
checking for an event generated from the exterior; and
upon encountering the event,
detecting whether a plurality of data values stored in a plurality of one-bit registers are all equal to each other;
determining a correct data value based upon each of the stored data values; and

correcting each of the data values into the determined correct data value if the data values are not equal,
wherein detecting whether the data values are all equal to each other comprises:
performing a logical AND on all bits output by the registers to generate a first result;
performing a logical inversion on all of the bits to generated inverted bits;
performing a logical AND on all the inverted bits to generate a second result; and
performing a logical OR on the first result and the second result to generate a third result,
wherein the third result is a first logical value when the data values are all equal to each other,
wherein the third result is a second logical value when the data values are not all equal to each other, and
wherein the first logical value is different from the second logical value,

wherein the event is indicative of a user of a mobile communication device performing a physical action to the device.
17. The method of claim 16, wherein determining the correct data value comprises performing a logical OR operation upon the data values.
18. The method of claim 16, wherein determining the correct data value comprises performing a logical AND operation upon the data values.
19. The method of claim 16, wherein determining the correct data value comprises:
performing a logical OR operation upon the data values to output the logical OR operation result;
performing a logical AND operation upon the data values to output the logical AND operation result; and
selecting one of the logical OR operation result and the logical AND operation result based upon the event.

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 downhole three phase separation process within a well-bore for processing water, oil, and gas phases in three separate streams and injecting of the water downhole, and providing the oil and gas as two separate streams up-hole comprising:
a) extending a casing into a formation of a well-bore and penetrating the casing;
b) allowing oil, gas or water to flow from the formation into an annulus of the casing and wherein the casing is of sufficient length to allow separation of the gas, oil and water;
c) forming a gas liquid interface within the annulus;
d) installing a pump comprising an oil bypass cavity below the gas liquid interface wherein the pump can provide a downward discharge;
e) providing a back pressure regulator for gas wherein the gas regulator controls back pressure to maintain the gas liquid interface above the pump; and
f) providing a tubing back pressure regulator for oil.
2. The method of claim 1 wherein the pump comprises an electric submersible pump.
3. The method of claim 1 wherein the pump comprises a modified plunger rod pump.
4. The method of claim 1 wherein the pump comprises a progressive cavity pump.
5. A downhole three phase separation process within a well-bore extending from a surface for processing water, oil, and gas into three separate streams so as to inject the water downhole, and provide the oil and gas as two separate streams uphole comprising:
extending a casing into an oil, gas and water formation of a well-bore, the casing having a casing annulus;
perforating the casing so that the oil, gas and water may flow into the casing from the formation;
allowing a gas-liquid interface to form within a first vertical length of the casing annulus;
providing a pump below the gas-liquid interface wherein the pump can provide a downward liquid discharge;
providing a packing within the annulus below the pump wherein the packing is penetrated by a pump discharge pipe and by an oil bypass tubing;
allowing an oil phase to form within a second vertical length of the casing annulus;
allowing a water phase to form within the second vertical length of the casing annulus;
providing an oil bypass cavity in the pump wherein the oil bypass cavity routes the oil through the pump to an upper tubing;
providing a gas annulus back pressure regulator wherein the gas annulus back pressure regulator controls a back pressure to maintain the gas-liquid interface above the pump;
providing an oil tubing back pressure regulator for the oil wherein the oil tubing back pressure regulator controls back pressure so as to produce oil to the surface and to produce water to the discharge zone to maintain the oil water phase interface; and
perforating the casing below the water-oil interface and sizing a plurality of perforation orifices to provide an intended back pressure to produce the oil through the upper tubing to the surface, large enough to discharge the water into a disposal zone, and placed at a low enough depth to allow the second vertical length of the casing to gravity separate the oil and the water.
6. The method of claim 5 wherein the pump comprises an electric submersible pump.
7. The method of claim 5 wherein the pump comprises a modified plunger rod pump.
8. The method of claim 5 wherein the pump comprises a progressive cavity pump.

1461160244-d713f380-f2c7-41bb-aad1-da550b286ad5

1. A method of controlling execution of a dataflow program that defines one or more actors and one or more connections, wherein each connection passes a token from an output port of any one of the actors to an input port of any one of the actors, and wherein each of the actors has an actor state, the method comprising:
causing one or more processors to access and execute instructions of the dataflow program, wherein execution of the instructions of the dataflow program causes a plurality of events to be generated, wherein each event is a token produced onto a connection, a token consumed from a connection, or an instance of an actor state after an action firing;
in response to generation of an event, ascertaining whether there exists a sequence of events that matches a breakpoint condition, and if a sequence of events that matches the breakpoint condition exists, then causing execution of the dataflow program to halt,
wherein the breakpoint condition is at least partially a function of an extended history of related events, wherein two events are considered to be related to one another if they pertain to a same connection or if they pertain to a same actor state, and wherein the extended history comprises at least two related events.
2. The method of claim 1, comprising:
for each generated event, adding a trace record to a set of trace records that represents a sequence of generated events, wherein the added trace record represents the generated event,
wherein ascertaining whether there exists a sequence of events that matches a breakpoint condition comprises processing the set of trace records to ascertain whether there exists in the set of trace records a representation of a sequence of events represented by the set of trace records that matches the breakpoint condition.
3. The method of claim 2, wherein adding the trace record to the set of trace records that represents the sequence of events comprises:
causing the one or more processors to execute trace record creating instructions that have been merged into a set of program instructions that were generated by a dataflow program build tool.
4. The method of claim 1, wherein ascertaining whether there exists a sequence of events that matches a breakpoint condition comprises:
causing the one or more processors to execute breakpoint ascertaining instructions that have been merged into a set of program instructions that were generated by a dataflow program build tool.
5. The method of claim 1, wherein ascertaining whether there exists a sequence of events that matches a breakpoint condition comprises:
concurrent with causing the one or more processors to access and execute instructions of the dataflow program, causing the one or more processors to trap execution of dataflow program instructions that create tokens or consume tokens, and as part of trap processing to add a trace record to the set of trace records.
6. The method of claim 1, wherein at least one of the breakpoint conditions is at least partly a function of a predicate that is satisfied when there exists at least a minimum number of unconsumed tokens that are associated with one of the connections, wherein the minimum number of tokens is greater than 1.
7. The method of claim 1, wherein at least one of the breakpoint conditions is at least partly a function of a predicate that is satisfied based on a comparison of a value of a first token produced onto a connection with a value of a second token produced onto the connection, wherein the second token is older than the first token.
8. The method of claim 1, wherein at least one of the breakpoint conditions is at least partly a function of a predicate that is satisfied based on a comparison between a specified sequence of values and a historical sequence of two or more token values produced onto a connection.
9. The method of claim 8, wherein the historical sequence of two or more token values produced onto the connection comprises as many token values as were produced onto the connection since a most recent resumption of dataflow program execution following a halting of the dataflow program.
10. The method of claim 1, wherein causing the one or more processors to access and execute instructions of the dataflow program comprises causing the one or more processors to simulate execution of the dataflow program.
11. The method of claim 1, wherein:
causing the one or more processors to access and execute instructions of the dataflow program comprises causing the one or more processors to access and execute a set of program instructions that have been generated by a dataflow program build tool; and
ascertaining whether there exists a sequence of events that matches a breakpoint condition comprises causing the one or more processors to execute breakpoint ascertaining instructions that have been generated by a dataflow program build tool.
12. An apparatus for controlling execution of a dataflow program that defines one or more actors and one or more connections, wherein each connection passes a token from an output port of any one of the actors to an input port of any one of the actors, and wherein each of the actors has an actor state, the apparatus comprising:
circuitry configured to cause one or more processors to access and execute instructions of the dataflow program, wherein execution of the instructions of the dataflow program causes a plurality of events to be generated, wherein each event is a token produced onto a connection, a token consumed from a connection, or an instance of an actor state after an action firing;
circuitry configured to respond to generation of an event by ascertaining whether there exists a sequence of events that matches a breakpoint condition, and if a sequence of events that matches the breakpoint condition exists, then causing execution of the dataflow program to halt,
wherein the breakpoint condition is at least partially a function of an extended history of related events, wherein two events are considered to be related to one another if they pertain to a same connection or if they pertain to a same actor state, and wherein the extended history comprises at least two related events.
13. The apparatus of claim 12, comprising:
circuitry configured to add, for each generated event, a trace record to a set of trace records that represents a sequence of generated events, wherein the added trace record represents the generated event,
wherein ascertaining whether there exists a sequence of events that matches a breakpoint condition comprises processing the set of trace records to ascertain whether there exists in the set of trace records a representation of a sequence of events represented by the set of trace records that matches the breakpoint condition.
14. The apparatus of claim 13, wherein the circuitry configured to add the trace record to the set of trace records that represents the sequence of events comprises:
circuitry configured to cause the one or more processors to execute trace record creating instructions that have been merged into a set of program instructions that were generated by a dataflow program build tool.
15. The apparatus of claim 12, wherein ascertaining whether there exists a sequence of events that matches a breakpoint condition comprises:
causing the one or more processors to execute breakpoint ascertaining instructions that have been merged into a set of program instructions that were generated by a dataflow program build tool.
16. The apparatus of claim 12, wherein ascertaining whether there exists a sequence of events that matches a breakpoint condition comprises:
concurrent with causing the one or more processors to access and execute instructions of the dataflow program, causing the one or more processors to trap execution of dataflow program instructions that create tokens or consume tokens, and as part of trap processing to add a trace record to the set of trace records.
17. The apparatus of claim 12, wherein at least one of the breakpoint conditions is at least partly a function of a predicate that is satisfied when there exists at least a minimum number of unconsumed tokens that are associated with one of the connections, wherein the minimum number of tokens is greater than 1.
18. The apparatus of claim 12, wherein at least one of the breakpoint conditions is at least partly a function of a predicate that is satisfied based on a comparison of a value of a first token produced onto a connection with a value of a second token produced onto the connection, wherein the second token is older than the first token.
19. The apparatus of claim 12, wherein at least one of the breakpoint conditions is at least partly a function of a predicate that is satisfied based on a comparison between a specified sequence of values and a historical sequence of two or more token values produced onto a connection.
20. The apparatus of claim 19, wherein the historical sequence of two or more token values produced onto the connection comprises as many token values as were produced onto the connection since a most recent resumption of dataflow program execution following a halting of the dataflow program.
21. The apparatus of claim 12, wherein causing the one or more processors to access and execute instructions of the dataflow program comprises causing the one or more processors to simulate execution of the dataflow program.
22. The apparatus of claim 12, wherein:
the circuitry configured to cause the one or more processors to access and execute instructions of the dataflow program comprises circuitry configured to cause the one or more processors to access and execute a set of program instructions that have been generated by a dataflow program build tool; and
ascertaining whether there exists a sequence of events that matches a breakpoint condition comprises causing the one or more processors to execute breakpoint ascertaining instructions that have been generated by a dataflow program build tool.
23. A computer readable storage medium having stored thereon instructions that, when executed by processing equipment, cause the processing equipment to perform a method of controlling execution of a dataflow program that defines one or more actors and one or more connections, wherein each connection passes a token from an output port of any one of the actors to an input port of any one of the actors, and wherein each of the actors has an actor state, the method comprising:
causing one or more processors to access and execute instructions of the dataflow program, wherein execution of the instructions of the dataflow program causes a plurality of events to be generated, wherein each event is a token produced onto a connection, a token consumed from a connection, or an instance of an actor state after an action firing;
in response to generation of an event, ascertaining whether there exists a sequence of events that matches a breakpoint condition, and if a sequence of events that matches the breakpoint condition exists, then causing execution of the dataflow program to halt,
wherein the breakpoint condition is at least partially a function of an extended history of related events, wherein two events are considered to be related to one another if they pertain to a same connection or if they pertain to a same actor state, and wherein the extended history comprises at least two related events.

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 composite shut-off means for casting moulds, including a sliding closure with at least one passageway passing through it, wherein in use, when in a first open position the passageway is positioned so as to allow the passage of molten metal there through, into the mould, and in a second closed position, the molten metal is unable to pass through the passageway and the sliding closure seals the mould, preventing the entry of molten metal into the mould.
2. A composite shut-off means for casting moulds, including a sliding closure that includes sealing means, and molten metal filtering means, wherein said shut-off means is the interface between the metal source and the mould.
3. The composite shut-off means for casting moulds of claim 1, further characterised in that the sliding closure is operable by way of sliding it substantially transverse to metal flow.
4. The composite shut-off means for casting moulds of claim 1, further characterised in that the sliding closure, and the means for retaining said sliding closure, are attached to the mould, so that in use, the mould can be closed and sealed by the sliding closure, and removed from the launder.
5. The composite shut-off means for casting moulds of claim 1, further characterised in that the sliding closure is a rectangular plate element having an aperture or passageway passing there through.
6. The composite shut-off means for casting moulds of claim 1, further characterised in that the sliding closure is a composite construction of sand, binding agent and compressive refractory material.
7. The composite shut-off means for casting moulds of claim 1, further characterised in that the sliding closure sealing means includes a gasket made of compressive refractory material.
8. The composite shut-off means for casting moulds of claim 1, further characterised in that the sliding closure utilises the compressive properties of the composite refractory material, such that in use, the pressure from the launder compresses the sliding closure, thereby effecting a seal.
9. The composite shut-off means for casting moulds of claim 1, further characterised in that the filtering means uses either a stainless steel or fibreglass screen covering the aperture or passageway in the sliding closure.
10. The composite shut-off means for casting moulds of claim 1, further characterised in that the sliding closure is actuated by a pneumatic or hydraulic cylinder.
11. A method of actuating a composite shut-off means for casting moulds that includes a sliding closure, wherein there is a production system utilising a carousel that retains the mould, in which the motion of the carousel indexing is used rotate the carousel and the mould relative to the sliding closure, which is held in a fixed position via interference with the launder.
12. A method of actuating a composite shut-off means for casting moulds that includes a sliding closure, wherein the launder is attached to a positionable, and programmable three-axis gantry, and the launder actuates the sliding closure via an interference with the sliding closure.
13. A method of actuating a composite shut-off means for casting moulds that includes a sliding closure, wherein a robot retains, and moves the mould relative to the sliding closure, which is held in a fixed position via interference with the launder.
14. (canceled)
15. (canceled)
16. The composite shut-off means for casting moulds of claim 2, further characterised in that the sliding closure is operable by way of sliding it substantially transverse to metal flow.
17. The composite shut-off means for casting moulds of claim 2, further characterised in that the sliding closure, and the means for retaining said sliding closure, are attached to the mould, so that in use, the mould can be closed and sealed by the sliding closure, and removed from the launder.
18. The composite shut-off means for casting moulds of claim 2, further characterised in that the sliding closure is a rectangular plate element having an aperture or passageway passing there through.
19. The composite shut-off means for casting moulds of claim 2, further characterised in that the sliding closure is a composite construction of sand, binding agent and compressive refractory material.
20. The composite shut-off means for casting moulds of claim 2, further characterised in that the sliding closure sealing means includes a gasket made of compressive refractory material.
21. The composite shut-off means for casting moulds of claim 2, further characterised in that the sliding closure utilises the compressive properties of the composite refractory material, such that in use, the pressure from the launder compresses the sliding closure, thereby effecting a seal.
22. The composite shut-off means for casting moulds of claim 2, further characterised in that the filtering means uses either a stainless steel or fibreglass screen covering the aperture or passageway in the sliding closure.
23. The composite shut-off means for casting moulds of claim 2, further characterised in that the sliding closure is actuated by a pneumatic or hydraulic cylinder.