1460741168-2df05746-31dd-41c3-86bc-d5c5bbf5969f

1. A compiler apparatus for converting a source program that includes a branching instruction into an object program that is a string of object codes, said apparatus comprising
an execution path designating device, a first execution path code generator, a guarantee code generator, a partial code generator, a first branch code generator, a first dependency analyzer and a parallelizing device, wherein:
said execution path designating device designates a single execution path from a plurality of execution paths in a partial instruction string including a branching instruction in a middle thereof, which constitutes said source program;
said first execution code generator generates a first execution path code obtained by replacing a variable, which is defined on an execution path designated by said execution path designating device and is necessary to be present at an entrance of said designated execution path, with another variable;
said guarantee code generator generates a guarantee code for restoring said another variable, which is replaced by said first execution path code generator and is necessary to be present also at an exit of said designated execution path, to an original variable;
said partial code generator generates a partial code that corresponds to said partial instruction string;
said first branch code generator generates a first branch code that branches to a start point of said partial code in said conditional branching instruction on said designated execution path, based on a condition of a conditional branching instruction on said designated execution path, when a branching condition for executing said designated execution path is not approved;
said first dependency analyzer calculates a dependency relation between instructions based on an analysis of a dependency relation performed between instructions on said designated execution path, adds a dependency between said guarantee code and said branch code that corresponds to said conditional branching instruction on said designated execution path so that said guarantee code is executed later than said conditional branching instruction of said designated execution path, and also adds a dependency between instructions so that no exception is generated; and
said parallelizing device rearranges instructions on said designated execution path based on said dependencies between said instructions added by said first dependency analyzer.
2. The compiler apparatus according to claim 1, which treats a loop included in said source program as a single instruction, said apparatus further comprising a loop unit processing device, wherein
said loop unit processing device starts up said execution path designating device, said first execution path code generator, said guarantee code generator, said first branch code generator, said first dependency analyzer and said parallelizing device from an innermost loop of said loop towards an outer loop.
3. The compiler apparatus according to claim 1, further comprising a first execution path conversion judging device, wherein said first execution path conversion judging device judges whether or not said program after executing said parallelizing device is taken as said object codes, based on an execution probability of said designated execution path.
4. The compiler apparatus according to claim 1, further comprising a second execution path conversion judging device, wherein said second execution path conversion judging device:
calculates average execution time of said partial code, based on an execution probability of said designated execution path and execution time of said partial code;
calculates average execution time of said designated execution path, based on execution time of said object codes in said designated execution path and said execution probability after executing said parallelizing device; and
judges whether or not said program after executing said parallelizing device is taken as said string of object codes, based on a comparison between said average execution time of said partial code and said average execution time of said designated execution path.
5. The compiler apparatus according to claim 1, further comprising a return point setting instruction code generator and a second dependency analyzer, wherein:
said return point setting instruction code generator adds an instruction code for specifying a return point on said designated execution path when an exception is generated during execution of said designated execution path; and
said second dependency analyzer adds a dependency between said guarantee code and said branch code that corresponds to said conditional branching instruction on said designated execution path so that said guarantee code is executed later than said conditional branching instruction on said designated execution path, based on an analysis of a dependency relation between instructions on said designated execution path; and
said second dependency analyzer does not add said dependency, that is added between said instructions by said first dependency analyzer lest an exception is generated.
6. The compiler apparatus according to claim 5, further comprising an processing routine adder at generation of interruption, wherein said processing routine adder at generation of interruption adds a processing routine for returning to said return point designated by said instruction code to said object codes, when an exception is generated.
7. The compiler apparatus according to claim 6, further comprising a third execution path conversion judging device, wherein said third execution path conversion judging device judges whether or not said program after executing said parallelizing device is taken as said object codes, based on an execution probability of said designated execution path and a probability of generating an exception on said execution path after executing said parallelizing device.
8. The compiler apparatus according to claim 7, further comprising a fourth execution path conversion judging device, wherein said fourth execution path conversion judging device:
calculates average execution time of said partial code, based on said execution probability of said designated execution path, said probability of generating an exception on said designated execution path and execution time of said partial code;
calculates average execution time of said designated execution path after executing said parallelizing device and average execution time of said processing routine, based on said execution probability of said designated execution path, said probability of generating said exception, execution time of said object codes on said execution path after executing said parallelizing device and execution time of said object codes in said processing routine added by said processing routine adder at generation of interruption; and
judges whether or not said program after executing said parallelizing device is taken as said object codes, based on a comparison between said average execution time of said execution path after executing said parallelizing device and said average execution time of said processing routine.
9. The compiler apparatus according to claim 8, further comprising a second execution path code generator, wherein:
said second execution path code generator replaces said variable with a value held by said variable when a variable referred to on said designated execution path often holds a specific value, and generates a second execution path code obtained by inserting a conditional branching instruction, where a condition is set to branch towards outside of said designated execution path, at a head of said designated execution path, when said variable holds a value different from said replaced value; and
said compiler apparatus performs redundancy eliminating optimization concerning a constant value, after said second execution path code generator is started up.
10. The compiler apparatus according to claim 9, further comprising a fifth execution path conversion judging device, wherein said fifth execution path conversion judging device judges whether or not said second execution path code generator is executed, based on said execution probability of said designated execution path and said probability wherein said variable on said designated execution path holds a specific value.
11. The compiler apparatus according to claim 10, further comprising a sixth execution path conversion judging device, wherein said sixth execution path conversion judging device:
calculates average execution time of said execution path after executing said parallelizing device, based on said execution probability of said designated execution path, said probability wherein said variable on said designated execution path holds a specific value and execution time of said object codes on said execution path after executing said parallelizing device; and
judges whether or not said program after executing said parallelizing device is taken as said object codes based on a comparison between said average execution time of said execution path after executing said parallelizing device and said average execution time of said partial code.
12. The compiler apparatus according to claim 11, further comprising a third execution path code generator and a second branch code generator, wherein:
said third execution path code generator copies instructions on said designated execution path and then replaces said variable that often takes a specific value on said copied execution path with a value held by said variable, when a variable referred to on said designated execution path often holds a specific value, and generates a third execution path code that is obtained by inserting a conditional branching instruction, where a condition is set to branch towards outside of said designated execution path, at a head of said designated execution path, when a variable referred to on said designated execution path holds a value different from said replaced value; and
said second branch code generator generates a second branch code that branches to a start point of said designated execution path code in said conditional branching instruction on said copied execution path, when a condition of a conditional branching instruction on said copied execution path is not approved to a conditional branching instruction in said designated execution path.
13. The compiler apparatus according to claim 12, further comprising a seventh execution path conversion judging device, wherein said seventh execution path conversion judging device:
calculates average execution time of said program after being modified, based on said probability wherein said variable on said designated execution path holds a specific value, or based on said execution time of said designated execution path and said probability wherein said variable on said designated execution path holds a specific value; and
judges whether or not said third execution path code generator and said second branch code generator are executed, based on said calculated average execution time of said modified program.
14. A compiler apparatus for converting a source program including a branching instruction into an object program that is a string of object codes, said apparatus comprising
an execution path designating device, an execution path code generator, a guarantee code generator, a partial code generator, a branch code generator, a dependency analyzer and a parallelizing device, wherein:
said execution path designating device designates a single execution path from a plurality of execution paths contained in a partial instruction string including a branching instruction in a middle thereof, that constitutes said source program;
said execution code generator generates an execution path code obtained by replacing a variable, that is defined on an execution path designated by said execution path designating device and is necessary to be present at an entrance of said designated execution path, with another variable;
said guarantee code generator generates a guarantee code for restoring said another variable, that is replaced by said execution path code generator and is necessary to be present also at an exit of said designated execution path, to an original variable;
said partial code generator generates a partial code that corresponds to said partial instruction string;
said branch code generator generates a branch code so that a branching destination of said conditional branching instruction on said designated execution path is designated to a branching destination of a case where said branching condition in said partial code is not approved, when said branching condition for executing said designated execution path is not approved, based on a condition of a conditional branching instruction on said designated execution path;
said dependency analyzer calculates a dependent relation between instructions based on an analysis of a dependent relation performed between instructions on said designated execution path, and simultaneously adds a dependency between an instruction present in a basic block and said conditional branching instruction so that processing cannot be shifted by going over said conditional branching instruction that is found towards an end direction of said execution path from an instruction in said designated execution path that is present in said basic block where controls interflow, and adds a dependency between said instruction and said conditional branching instruction so that processing cannot be moved by going over said conditional branching instruction from said instruction in said designated execution path that is not present in said basic block; and
said parallelizing device rearranges instructions in said designated execution path based on said dependencies between said instructions added by said dependency analyzer.
15. The compiler apparatus according to claim 14, further comprising a confluence definition variable replacing device and a confluence definition variable guarantee code generator, wherein:
said confluence definition variable replacing device replaces a defined point and a reference point of said variable with another variable, when there exists a variable defined in a basic block where controls interflow, in a partial instruction string containing a branch instruction in a middle thereof which constitutes said source program; and
said confluence definition variable guarantee code generator generates a guarantee code, at an exit of said partial instruction string, for restoring said another variable, which is replaced by said confluence definition variable replacing device and is necessary to be present at said exit of said partial instruction string, to an original variable.
16. The compiler apparatus according to claim 15, further comprising a first execution path conversion judging device, wherein said first execution path conversion judging device judges whether or not said program after executing said parallelizing device is taken as said object codes, based on said execution probability of said designated execution path.
17. The compiler apparatus according to claim 16, further comprising a second execution path conversion judging device, wherein said second execution path conversion judging device:
calculates average execution time of said partial code, based on an execution probability of said designated execution path and execution time of said partial code;
calculates average execution time of said execution path after executing said parallelizing device, based on said execution probability of said designated execution path and execution time of said object codes in said execution path after executing said parallelizing device; and
judges whether or not said program after executing said parallelizing device is taken as said string of object codes, based on a comparison between said average execution time of said partial code and said average execution time of said execution path after executing said parallelizing device.
18. A compiler apparatus for converting a source program including a branching instruction into an object program that is a string of object codes, said apparatus comprising
an execution path designating device, a first execution path code generator, a first guarantee code generator, a second execution path code generator, a confluence definition variable replacing device, a confluence definition variable guarantee code generator, a third execution path code generator, a second guarantee code generator, a partial code generator, a first branch code generator, a second branch code generator, a third branch code generator, a dependency analyzer and a parallelizing device, wherein:
said execution path designating device designates a single execution path from a plurality of execution paths in a partial instruction string including a branching instruction in a middle thereof, that constitutes said source program;
said first execution code generator generates a first execution path code that is an object code corresponding to an entire instruction string on an execution path designated by said execution path designating device, and obtained by replacing a variable, which is necessary to be present at an entrance of said designated execution path and is defined on an execution path designated by said execution path designating device, with first another variable;
said first guarantee code generator generates a first guarantee code for restoring said first another variable, which is necessary to be present at an exit of said designated execution path, to an original variable;
said second execution path code generator copies said code string and replaces said variable that often holds said specific value in said copied code string with a value held by said variable, when a variable referred in a code string that is generated by said first execution path code generator and by said first guarantee code generator often holds a specific value, and generates a second execution path code obtained by inserting a conditional branching instruction, at a head of said code string, where a condition is set to branch towards outside of said designated execution path, when said variable referred to in said code string holds a value different from said replaced value;
said confluence definition variable replacing device replaces a defined point and a reference point of a variable with second another variable, when there exists such variable defined in a basic block where controls interflow in said partial instruction string;
said confluence definition variable guarantee code generator generates a variable guarantee code, at an exit of said partial instruction string, for restoring said second another variable, which is necessary to be present at said exit of said partial instruction string, to an original variable;
said third execution path code generator generates a third execution path code that is an object code corresponding to an entire instruction string on said execution path designated by said execution path designating device after executing said confluence definition variable replacing device and said confluence definition variable guarantee code generator, and obtained by replacing a variable, which is necessary to be present at an entrance of said designated execution path and is defined on said designated execution path, with third another variable;
said second guarantee code generator generates a second guarantee code for restoring said third another variable, which is necessary to be present at an exit of said designated execution path, to an original variable;
said partial code generator generates a partial code that corresponds to said partial instruction string after executing said confluence definition variable replacing device and said confluence definition variable guarantee code generator;
said first branch code generator generates a first branch code so that a branching destination of said conditional branching instruction in said third execution path is designated to a branching destination of a case where said branching condition in said partial code is not approved, when said branching condition for executing said designated execution path is not approved, based on a condition of a conditional branching instruction in said third execution path code;
said second branch code generator generates a second branch code that branches to a start point of said third execution path code in said branching instruction within said first execution path code, when a branching condition for executing said designated execution path is not approved, based on a condition of a conditional branching instruction in said first execution path code;
said third branch code generator generates a third branch code that branches to a start point of said first execution path code in said branching instruction within said second execution path code, when a branching condition for executing said designated execution path is not approved, based on a condition of a conditional branching instruction in said second execution path code;
said dependency analyzer calculates a dependency relation between instructions based on an analysis of a dependency relation between said instructions in each of code strings which are generated by said first execution path code generator, said first guarantee code generator, said second execution path code generator, said third execution path code generator and said second guarantee code generator; and
said parallelizing device rearranges said instructions on said designated execution path based on said dependency relation between said instructions calculated by said dependency analyzer.
19. A compiler method for converting a source program including a branching instruction into an object program that is a string of object codes, said method comprising steps of:
an execution path designating step for designating a single execution path from a plurality of execution paths in a partial instruction string including a branching instruction in a middle thereof, that constitutes said source program;
a first execution code generating step for generating a first execution path code obtained by replacing a variable, which is defined on an execution path designated by said execution path designating step and is necessary to be present at an entrance of said designated execution path, with another variable;
a guarantee code generating step for generating a guarantee code for restoring said another variable, which is replaced by said first execution path code generating step and is necessary to be present also at an exit of said designated execution path, to an original variable;
a partial code generating step for generating a partial code that corresponds to said partial instruction string;
a first branch code generating step for generating a first branch code that branches to a start point of said partial code in said conditional branching instruction on said designated execution path, when a branching condition for executing said designated execution path is not approved, based on a condition of a conditional branching instruction on said designated execution path;
a first dependency analyzing step calculates a dependency relation between instructions based on an analysis of a dependent relation between instructions on said designated execution path, and also adds a dependency between said guarantee code and said branch code that corresponds to said conditional branching instruction on said designated execution path so that said guarantee code is executed later than said conditional branching instruction of said designated execution path, and adds a dependency between said instructions lest exception is generated; and
a parallelizing step for rearranging said instructions on said designated execution path based on said dependencies between said instructions added by said first dependency analyzing step.
20. The compiler method according to claim 19, further comprising steps of:
a return point setting instruction code generating step for adding an instruction code for specifying a return point on said designated execution path when an exception is generated during execution on said designated execution path; and
a second dependency analyzing step for adding a dependency between said guarantee code and said branch code that corresponds to said conditional branching instruction on said designated execution path so that said guarantee code is executed later than said conditional branching instruction on said designated execution path, based on an analysis of a dependent relation between said instructions on said designated execution path, wherein
said second dependency analyzing step does not add said dependency, which is added between said instructions by said first dependency analyzing step lest an exception is generated.
21. The compiler method according to claim 20, further comprising a processing routine adding step at generation of interruption, which adds a processing routine for returning to said return point designated by said instruction code, to said object codes, when an exception is generated.
22. A compiler method for converting a source program including a branching instruction into an object program that is a string of object codes, said method comprising steps of:
an execution path designating step for designating a single execution path from a plurality of execution paths in a partial instruction string including a branching instruction in a middle thereof, which constitutes said source program;
a first execution code generating step for generating a first execution path code that is an object code corresponding to an entire instruction string on an execution path designated by said execution path designating step, and obtained by replacing a variable, which is necessary to be present at an entrance of said designated execution path and is defined on said execution path designated by said execution path designating device, with first another variable;
a first guarantee code generating step for generating a first guarantee code for restoring said first another variable, which is necessary to be present at an exit of said designated execution path, to an original variable;
a second execution path code generating step copies said code string and replaces said variable that often holds said specific value in said copied code string with a value held by said variable, when a variable referred to in a code string that is generated by said first execution path code generating step and said first guarantee code generating step often holds a specific value, and generates a second execution path code that is obtained by inserting a conditional branching instruction, at a head of said code string, where a condition is set to branch towards outside of said designated execution path, when said variable referred to in said code string holds a value different from said replaced value;
a confluence definition variable replacing step for replacing a defined point and a reference point of a variable with second another variable, when there exists such variable defined in a basic block where controls interflow in said partial instruction string;
a confluence definition variable guarantee code generating step for generating a variable guarantee code for restoring said second another variable, which is said second another variable and is necessary to be present at said exit of said partial instruction string, to an original variable.
a third execution path code generating step for generating a third execution path code that is an object code corresponding to an entire instruction string on said designated execution path after execution of said confluence definition variable replacing step and said confluence definition variable guarantee code generating step, and obtained by replacing a variable, which is necessary to be present at an entrance of said designated execution path and is defined on said designated execution path, with third another variable;
a second guarantee code generating step for generating a second guarantee code for restoring said third another variable, which is necessary to be present at an exit of said designated execution path, to an original variable;
a partial code generating step for generating a partial code that corresponds to said partial instruction string after execution of said confluence definition variable replacing step and said confluence definition variable guarantee code generating step;
a first branch code generating step for generating a first branch code so that a branching destination of said conditional branching instruction in said third execution path code is designated to a branching destination of a case where said branching condition in said partial code is not approved, when said branching condition for executing said designated execution path is not approved, based on a condition of a conditional branching instruction in said third execution path code;
a second branch code generating step for generating a second branch code that branches to a start point of said third execution path code in said branching instruction in said first execution path code, when a branching condition for executing said designated execution path is not approved, based on a condition of a conditional branching instruction in said first execution path code;
a third branch code generating step for generating a third branch code that branches to a start point of said first execution path code in said branching instruction in said second execution path code, when a branching condition for executing said designated execution path is not approved, based on a condition of a conditional branching instruction in said second execution path code;
a dependency analyzing step for calculating a dependency relation between instructions based on an analysis of a dependency relation between said instructions in each of code strings which are generated by said first execution path code generating step, said first guarantee code generating step, said second execution path code generating step, said third execution path code generating step and said second guarantee code generating step; and
a parallelizing step for rearranging said instructions on said designated execution path based on said dependency relation between said instructions calculated by said dependency analyzing step.
23. A compiler program for converting a source program including a branching instruction into an object program that is a string of object codes, which makes a computer execute steps of:
an execution path designating step for designating a single execution path from a plurality of execution paths in a partial instruction string including a branching instruction in a middle thereof, which constitutes said source program;
a first execution code generating step for generating a first execution path code obtained by replacing a variable, which is defined on an execution path designated by said execution path designating step and is necessary to be present at an entrance of said designated execution path, with another variable;
a guarantee code generating step for generating a guarantee code for restoring said another variable, which is replaced by said first execution path code generating step and is necessary to be present also at an exit of said designated execution path, to an original variable;
a partial code generating step for generating a partial code that corresponds to said partial instruction string;
a first branch code generating step for generating a first branch code that branches to a start point of said partial code in said conditional branching instruction on said designated execution path, when a branching condition for executing said designated execution path is not approved, based on a condition of a conditional branching instruction on said designated execution path;
a first dependency analyzing step calculates a dependency relation between instructions based on an analysis of a dependency relation performed between said instructions on said designated execution path, and also adds a dependency between said guarantee code and said branch code that corresponds to said conditional branching instruction on said designated execution path so that said guarantee code is executed later than said conditional branching instruction on said designated execution path, and adds a dependency between instructions lest exception is generated; and
a parallelizing step for rearranging said instructions on said designated execution path based on said dependencies between said instructions added by said first dependency analyzing step.
24. The compiler program according to claim 23, further comprising, as steps for said computer to execute:
a return point setting instruction code generating step for adding an instruction code for specifying a return point on said designated execution path when an exception is generated during execution of said designated execution path; and
a second dependency analyzing step for adding a dependency between said guarantee code and said branch code that corresponds to said conditional branching instruction on said designated execution path so that said guarantee code is executed later than said conditional branching instruction on said designated execution path, based on an analysis of a dependency relation between said instructions on said designated execution path, wherein
said second dependency analyzing step does not add a dependency, which is added between said instructions by said first dependency analyzing step lest an exception is generated.
25. The compiler method according to claim 24, further comprising, as a step for making said computer execute, a processing routine adding step at generation of interruption for adding a processing routine for returning to said return point designated by said instruction code, to said object codes, when an exception is generated.
26. A compiler program for converting a source program including a branching instruction into an object program that is a string of object codes, which makes a computer execute steps of:
an execution path designating step for designating a single execution path from a plurality of execution paths in a partial instruction string including a branching instruction in a middle thereof, which constitutes said source program;
a first execution code generating step for generating a first execution path code that is an object code corresponding to an entire instruction string on an execution path designated by said execution path designating step, and obtained by replacing a variable, which is necessary to be present at an entrance of said designated execution path and is defined on an execution path designated by said execution path designating device, with first another variable;
a first guarantee code generating step for generating a first guarantee code for restoring said first another variable, which is necessary to be present at an exit of said designated execution path, to an original variable;
a second execution path code generating step for copying said code string and then replacing said variable that often holds said specific value in said copied code string with a value held by said variable, when a variable referred to in a code string that is generated by said first execution path code generating step and said first guarantee code generating step often holds a specific value, and generating a second execution path code that is obtained by inserting a conditional branching instruction, at a head of said code string, where a condition is set to branch towards outside of said designated execution path, when said variable referred to in said code string holds a value different from said replaced value;
a confluence definition variable replacing step for replacing a defined point and a reference point of a variable with second another variable, when there exists such variable defined in a basic block where controls interflow in said partial instruction string;
a confluence definition variable guarantee code generating step for generating a variable guarantee code for restoring said second another variable to an original variable, at an exit of said partial instruction string, with respect to said second another variable which is necessary to be present at said exit of said partial instruction string;
a third execution path code generating step for generating a third execution path code that is an object code corresponding to an entire instruction string on said designated execution path after executing said confluence definition variable replacing step and said confluence definition variable guarantee code generating step, and obtained by replacing a variable, which is necessary to be present at an entrance of said designated execution path and is defined on said designated execution path, with third another variable;
a second guarantee code generating step for generating a second guarantee code for restoring said third another variable, which is necessary to be present at an exit of said designated execution path, to an original variable;
a partial code generating step for generating a partial code that corresponds to said partial instruction string after execution of said confluence definition variable replacing step and said confluence definition variable guarantee code generating step;
a first branch code generating step which generates a first branch code so that a branching destination of said conditional branching instruction on said third execution path is designated to a branching destination of a case where said branching condition in said partial code is not approved, when said branching condition for executing said designated execution path is not approved, based on a condition of a conditional branching instruction in said third execution path code;
a second branch code generating step for generating a second branch code that branches to a start point of said third execution path code in said branching instruction in said first execution path code, when a branching condition for executing said designated execution path is not approved, based on a condition of a conditional branching instruction in said first execution path code;
a third branch code generating step for generating a third branch code that branches to a start point of said first execution path code in said branching instruction in said second execution path code, when a branching condition for executing said designated execution path is not approved, based on a condition of a conditional branching instruction in said second execution path code;
a dependency analyzing step for calculating a dependency relation between instructions based on an analysis of a dependency relation between said instructions in each of code strings which are generated by said first execution path code generating step, said first guarantee code generating step, said second execution path code generating step, said third execution path code generating step and said second guarantee code generating step; and
a parallelizing step for rearranging said instructions on said designated execution path based on said dependency relation between said instructions calculated by said dependency analyzing step.

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

We claim:

1. An ultra-low emission carbon material capable of removing impurities from a gas containing said impurities to produce an ultra-pure gas, wherein the concentrations of said impurities in said ultra-pure gas are less than 1 part-per-billion, and wherein said ultra-low emission carbon material is stored in a substantially non-contaminating environment until contacted with said gas containing said impurities.
2. The ultra-low emission carbon material of claim 1, wherein said impurities comprise water.
3. The ultra-low emission carbon material of claim 1, wherein said impurities comprise carbon dioxide.
4. The ultra-low emission carbon material of claim 1, wherein said impurities comprise carbon monoxide.
5. The ultra-low emission carbon material of claim 1, wherein said impurities comprise organic compounds.
6. The ultra-low emission carbon material of claim 5, wherein said organic compounds comprise straight chain or branched chain hydrocarbons.
7. The ultra-low emission carbon material of claim 1, wherein said organic compounds comprise aromatic hydrocarbons.
8. The ultra-low emission carbon material of claim 6, wherein said hydrocarbon is hexane.
9. The ultra-low emission carbon material of claim 7, wherein said aromatic hydrocarbon is benzene, or ethylbenzene.
10. The ultra-low emission carbon material of claim 1, wherein the concentration of said impurities in said ultra-pure gas is measured by Atmospheric Pressure Ion Mass Spectrometry.
11. A process of producing an ultra-low emission carbon material comprising:
a) placing a carbon material containing trace amounts of water in a reactor having a gas inlet and a gas outlet;
b) heating a carbon material in said reactor for at least twenty four hours at a temperature between about 300 C. and 800 C. under a flow of ultra-dry inert gas;
c) measuring the amount of water in said inert gas exiting said reactor;
d) terminating said heating when the concentration of water in said inert gas exiting said reactor is below about ten parts-per-million, whereby said ultra-low emission carbon material is produced; and
e) maintaining said ultra-low emission carbon material in a substantially non-contaminating environment.
12. The process of claim 11, further comprising:
f) providing a container having a gas inlet port, a gas outlet port, and a receiving port;
g) purging said container with an ultra-dry inert gas;
h) transferring a portion of said ultra-low emission carbon material from said reactor to said container while flowing an ultra-dry inert gas through said container; and
i) closing said receiving port while maintaining the flow of inert gas through said container; and
j) closing said inlet and outlet ports, whereby said ultra-low emission carbon material is maintained in said container in an ultra-dry inert atmosphere.
13. The process of claim 11, wherein said carbon material is a high hardness carbon material.
14. The process of claim 11, wherein the amount of water in said inert gas exiting said reactor is measured with a hygrometer.
15. The process of claim 11, wherein the amount of water in said inert gas exiting said reactor is measured with Atmospheric Pressure Ion Mass Spectrometry instrumentation.
16. The process of claim 11, wherein said heating is terminated when the concentration of water in said inert gas exiting said reactor is below one part-per-billion when said carbon material is at room temperature.
17. The process of claim 11, wherein said carbon material is heated for between about two days and five days.
18. The process of claim 11, wherein said carbon material is heated at a temperature between about 500 and 700 C.
19. The process of claim 11, wherein said ultra-low emission carbon material is capable of reducing trace amounts of impurities in a process gas to less than about one part-per-billion.
20. The process of claim 19, wherein said impurities are selected from organic compounds, carbon dioxide, carbon monoxide and water.
21. The ultra-low emission carbon material of claim 20, wherein said organic compounds comprise straight chain or branched chain hydrocarbons.
22. The ultra-low emission carbon material of claim 20, wherein said organic compounds comprise aromatic hydrocarbons.
23. The ultra-low emission carbon material of claim 21, wherein said hydrocarbon is hexane.
24. The ultra-low emission carbon material of claim 22, wherein said aromatic hydrocarbon is benzene, or ethylbenzene.
25. The process of claim 12, wherein said container is adapted for use in a gas purifying system.
26. An ultra-low emission carbon material produced according to the method comprising:
a) placing a carbon material containing trace amounts of water in a reactor having a gas inlet and a gas outlet;
b) heating a carbon material in said reactor for at least twenty four hours at a temperature between about 300 C. and 800 C. under a flow of ultra-dry inert gas;
c) measuring the amount of water in said inert gas exiting said reactor;
d) terminating said heating when the concentration of water in said inert gas exiting said reactor is below about one part-per-million, whereby said ultra-low emission carbon material is produced; and
e) maintaining said ultra-low emission carbon material in a substantially non-contaminating environment.
27. The ultra-low emission carbon material of claim 19, wherein said method farther comprises:
f) providing a container having a gas inlet port, a gas outlet port, and a receiving port;
g) purging said container with an ultra-dry inert gas;
h) transferring a portion of said ultra-low emission carbon material from said reactor to said container while flowing an ultra-dry inert gas through said container; and
i) closing said receiving port while maintaining the flow of inert gas through said container; and
j) closing said inlet and outlet ports, whereby said ultra-low emission carbon material is maintained in said container in an ultra-dry inert atmosphere.
28. The process of claim 27, wherein said container is adapted for use in a gas purifying system.
29. The process of claim 26, wherein said carbon material is heated for between about two days and five days.
30. The process of claim 26, wherein said carbon material is heated at a temperature between about 500 and 700 C.
31. The process of claim 26, wherein the amount of water in said inert gas exiting said reactor is measured with a hygrometer or Atmospheric Pressure Ion Mass Spectrometry instrumentation.
32. The process of claim 26, wherein said ultra-low emission carbon material is capable of reducing trace amounts of impurities in a process gas to less than about one part-per-billion.
33. The process of claim 32, wherein said impurities are selected from organic compounds, carbon dioxide, carbon monoxide and water.
34. The ultra-low emission carbon material of claim 33, wherein said organic compounds comprise straight chain or branched chain hydrocarbons.
35. The ultra-low emission carbon material of claim 33, wherein said organic compounds comprise aromatic hydrocarbons.
36. The ultra-low emission carbon material of claim 34, wherein said hydrocarbon is hexane.
37. The ultra-low emission carbon material of claim 35, wherein said aromatic hydrocarbon is benzene, or ethylbenzene.
38. A method for removing impurities from process gas stream comprising:
contacting the gas stream with an ultra-low emission carbon material, wherein said ultra-low emission carbon material reduces the concentration of the impurities to less than 1 part per billion by volume.
39. The method of claim 38, wherein the concentration of said impurities in said ultra-pure gas is less than 100 parts per trillion.
40. The method of claim 38, wherein said impurities comprise organic compounds.
41. The ultra-low emission carbon material of claim 40, wherein said organic compounds comprise straight chain or branched chain hydrocarbons.
42. The ultra-low emission carbon material of claim 40, wherein said organic compounds comprise aromatic hydrocarbons.
43. The ultra-low emission carbon material of claim 41, wherein said hydrocarbon is hexane.
44. The ultra-low emission carbon material of claim 42, wherein said aromatic hydrocarbon is benzene, or ethylbenzene.
45. The method of claim 38, wherein said impurities comprise carbon dioxide.
46. The method of claim 38, wherein said impurities comprise carbon monoxide.
47. The method of claim 38, wherein said impurities comprise water.
48. A gas purifier system comprising:
an ultra-low emission carbon material capable of removing impurities from a gas stream to less than 1 part-per-billion concentration by volume to produce an ultra-pure gas; and
a container for holding said carbon material, wherein said container comprises an gas stream inlet and a gas stream outlet to allow said gas stream to flow through said container, wherein said container maintains said ultra-low emission carbon material in a substantially non-contaminating environment until said carbon material is contacted with said gas stream.
49. The gas purifier system of claim 48, wherein the concentration of impurities in said ultra-pure gas is less than 100 parts per trillion.
50. The gas purifier system of claim 48, wherein said impurities comprise organic compounds.
51. The ultra-low emission carbon material of claim 50, wherein said organic compounds comprise straight chain or branched chain hydrocarbons.
52. The ultra-low emission carbon material of claim 50, wherein said organic compounds comprise aromatic hydrocarbons.
53. The ultra-low emission carbon material of claim 51, wherein said hydrocarbon is hexane.
54. The ultra-low emission carbon material of claim 52, wherein said aromatic hydrocarbon is benzene, or ethylbenzene.
55. The gas purifier system of claim 48, wherein said impurities comprise carbon dioxide.
56. The gas purifier system of claim 48, wherein said impurities comprise carbon monoxide.
57. The gas purifier system of claim 48, wherein said impurities comprise water.
58. A gas purifier system comprising:
a first container comprising a first gas inlet and a second gas inlet and containing a scavenger material capable of adsorbing oxygen andor moisture from a gas stream;
an ultra-low emission carbon material capable of removing impurities from a gas stream to less than 1 part-per-billion concentration by volume to produce an ultra-pure gas:;
a second container comprising a second gas stream inlet and a second gas stream outlet for holding said carbon material, wherein said second container is positioned downstream of said first container and said second gas inlet is connected to said first gas outlet, wherein said second container maintains said ultra-low emission carbon material in a substantially non-contaminating environment until said carbon material is contacted with said gas stream.
59. The gas purifier system of claim 58, wherein said scavenger material comprises a metallated macroreticular polymer, wherein said polymer is metallated with Group IA or Group IIB alkyl or aryl organometallic compounds.
60. The gas purifier system of claim 58, wherein said scavenger material is selected from the group consisting of Groups IIA, IVA, IIIB and IVB metal oxides.
61. The gas purifier system of claim 60, wherein said oxide is alumina or an alumina-based material.
62. The gas purifier system of claim 61, wherein said oxide is modified by a metal salt or a metal oxide.
63. The gas purifier system of claim 60, wherein said oxide is silica or a silica-based material.
64. The gas purifier system of claim 63, wherein said oxide is modified by a metal salt or a metal oxide.
65. The gas purifier system of claim 60, wherein the scavenger material is a zeolite molecular sieve.
66. The gas purifier system of claim 58, wherein the concentration of impurities in said ultra-pure gas is less than 100 parts per trillion.
67. The gas purifier system of claim 58, wherein said impurities comprise organic compounds.
68. The ultra-low emission carbon material of claim 67, wherein said organic compounds comprise straight chain or branched chain hydrocarbons.
69. The ultra-low emission carbon material of claim 67, wherein said organic compounds comprise aromatic hydrocarbons.
70. The ultra-low emission carbon material of claim 68, wherein said hydrocarbon is hexane.
71. The ultra-low emission carbon material of claim 69, wherein said aromatic hydrocarbon is benzene, or ethylbenzene.
72. The gas purifier system of claim 58, wherein said impurities comprise carbon dioxide.
73. The gas purifier system of claim 58, wherein said impurities comprise carbon monoxide.
74. The gas purifier system of claim 58, wherein said impurities comprise water.
75. A gas purifier system comprising:
a container for holding gas purifying materials, wherein said container comprises an gas stream inlet and a gas stream outlet to allow said gas stream to flow through said container, wherein said gas purifying materials comprise a scavenger material capable of adsorbing oxygen andor moisture from a gas stream, and an ultra-low emission carbon material capable of removing impurities from a gas stream to less than 1 part-per-billion concentration by volume to produce an ultra-pure gas, said carbon material located downstream of said scavenger material, wherein said container maintains said ultra-low emission carbon material in a substantially non-contaminating environment until said carbon material is contacted with said gas stream.
76. The gas purifier system of claim 75, wherein said scavenger comprises a metallated macroreticular polymer, wherein said polymer is metallated with Group IA or Group IIB alkyl or aryl organometallic compounds.
77. The gas purifier system of claim 75, wherein said scavenger material is selected from the group consisting of Groups IIA, IVA, IIIB and IVB metal oxides.
78. The gas purifier system of claim 77, wherein said oxide is alumina or an alumina-based material.
79. The gas purifier system of claim 78, wherein said oxide is modified by a metal salt or a metal oxide.
80. The gas purifier system of claim 77, wherein said oxide is silica or a silica-based material.
81. The gas purifier system of claim 80, wherein said oxide is modified by a metal salt or a metal oxide.
82. The gas purifier system of claim 75, wherein the scavenger material is a zeolite molecular sieve.
83. The gas purifier system of claim 75, wherein the concentration of impurities in said ultra-pure gas is less than 100 parts per trillion.
84. The gas purifier system of claim 75, wherein said impurities comprise organic compounds.
85. The ultra-low emission carbon material of claim 84, wherein said organic compounds comprise straight chain or branched chain hydrocarbons.
86. The ultra-low emission carbon material of claim 84, wherein said organic compounds comprise aromatic hydrocarbons.
87. The ultra-low emission carbon material of claim 85, wherein said hydrocarbon is hexane.
88. The ultra-low emission carbon material of claim 86, wherein said aromatic hydrocarbon is benzene, or ethylbenzene.
89. The gas purifier system of claim 75, wherein said impurities comprise carbon dioxide.
90. The gas purifier system of claim 75, wherein said impurities comprise carbon monoxide.
91. The gas purifier system of claim 75, wherein said impurities comprise water.
92. A gas purifier system comprising:
a bed comprising a mixture of an ultra-low emission carbon material capable of removing impurities from a gas stream to less than 1 part-per-billion concentration by volume and a scavenger material capable of adsorbing oxygen andor moisture from a gas stream to produce an ultra-pure gas;
a container for holding said bed, wherein said container comprises an gas stream inlet and a gas stream outlet to allow said gas stream to flow through said container, wherein said container maintains said ultra-low emission carbon material in a substantially non-contaminating environment until said carbon material is contacted with said gas stream.
93. The gas purifier system of claim 92, wherein said scavenger comprises a metallated macroreticular polymer, wherein said polymer is metallated with Group IA or Group IIB alkyl or aryl organometallic compounds.
94. The gas purifier system of claim 92, wherein said scavenger material is selected from the group consisting of Groups IIA, IVA, IIIB and IVB metal oxides.
95. The gas purifier system of claim 93, wherein said oxide is alumina or an alumina-based material.
96. The gas purifier system of claim 94, wherein said oxide is modified by a metal salt or a metal oxide.
97. The gas purifier system of claim 93, wherein said oxide is silica or a silica-based material.
98. The gas purifier system of claim 96, wherein said oxide is modified by a metal salt or a metal oxide.
99. The gas purifier system of claim 92, wherein the scavenger material is a zeolite molecular sieve.
100. The gas purifier system of claim 92, wherein the concentration of impurities in said ultra-pure gas is less than 100 parts per trillion.
101. The gas purifier system of claim 92, wherein said impurities comprise organic compounds.
102. The ultra-low emission carbon material of claim 101, wherein said organic compounds comprise straight chain or branched chain hydrocarbons.
103. The ultra-low emission carbon material of claim 101, wherein said organic compounds comprise aromatic hydrocarbons.
104. The ultra-low emission carbon material of claim 102, wherein said hydrocarbon is hexane.
105. The ultra-low emission carbon material of claim 103, wherein said aromatic hydrocarbon is benzene, or ethylbenzene.
106. The gas purifier system of claim 92, wherein said impurities comprise carbon dioxide.
107. The gas purifier system of claim 92, wherein said impurities comprise carbon monoxide.
108. The gas purifier system of claim 92, wherein said impurities comprise water.

1460741160-50ef0fcc-32e6-4a5d-aabc-ef298788d5ab

1. A method of adaptive synchronization of a data sink device to a data source device coupled by a USB, comprising the steps of:
receiving data at a buffer of said sink device at an average data rate representative of a data rate of said source device;
determining a data level for said buffer based on input packet size and output packet size;
comparing an accumulated data level for said buffer with a threshold level;
correcting a clock frequency for said sink device when said accumulated data level exceeds said threshold level, said correcting step correcting the clock frequency by an amount equal to a constant K divided by a drift time required for the accumulated data level to drift from a reference level to the threshold level; and
inhibiting a next execution of said comparing step and said correcting step for a predetermined period after said correcting step.
2. The method according to claim 1, wherein the predetermined period is between three or five times said drift time.
3. The method according to claim 1, wherein said predetermined period is reduced if said data level traverses said reference level or exceeds twice the threshold level.
4. The method according to claim 1, wherein the reference level is the data level measured over a first measurement period.
5. The method according to claim 1, wherein said comparing step is executed periodically.
6. The method according to claim 1, wherein the threshold level is set to be greater than three times a maximum data level jitter.
7. The method according to claim 1, wherein a size of the buffer is set to be greater than three times said threshold level.
8. A system for adaptive synchronization of a data sink device to a data source device, comprising:
a source device; and
a sink device coupled to said source device by a USB, and comprising a buffer, and
wherein said sink device stores data in said buffer at an average data rate representative of a data rate of said source device;
determines a data level for said buffer based on input packet size and output packet size;
compares an accumulated data level for said buffer with a threshold level; and
corrects a clock frequency for said sink device when said accumulated data level exceeds said threshold level by correcting the clock frequency by an amount equal to a constant K divided by a drift time required for the accumulated data level to drift from a reference level to the threshold level; and
wherein said sink device inhibits a next execution of said comparing operation and said correcting operation for a predetermined period after said correcting operation.
9. The system according to claim 8, wherein the predetermined period is between three or five times said drift time.
10. The system according to claim 8, wherein said predetermined period is reduced if said data level traverses said reference level or exceeds twice the threshold level.
11. The system according to claim 8, wherein the reference level is the data level measured over a first measurement period.
12. The system according to claim 8, wherein said comparing operation is executed periodically.
13. The method according to claim 8, wherein the threshold level is set to be greater than three times a maximum data level jitter.
14. The method according to claim 8, wherein a size of the buffer is set to be greater than three times said threshold level.
15. A sink device for receiving data from a USB-coupled source device, comprising:
a buffer;
receiving means for receiving data at said buffer of said sink device at an average data rate representative of a data rate of said source device;
determining means for determining a data level for said buffer based on input packet size and output packet size;
comparing means for comparing an accumulated data level for said buffer with a threshold level;
correcting means for correcting a clock frequency for said sink device when said accumulated data level exceeds said threshold level, wherein said correcting means corrects the clock frequency by an amount equal to a constant K divided by a drift time required for the accumulated data level to drift from a reference level to the threshold level; and
inhibiting means for inhibiting next execution of said comprising step and said correcting step for a predetermined period after said correcting step.
16. The sink device according to claim 15, wherein the predetermined period is between three or five times said drift time.
17. The sink device according to claim 15, wherein said predetermined period is reduced if said data level traverses said reference level or exceeds twice the threshold level.
18. The sink device according to claim 15, wherein the reference level is the data level measured over a first measurement period.
19. The sink device according to claim 15, wherein said comparing means is executed periodically.
20. The sink device according to claim 15, wherein the threshold level is set to be greater than three times a maximum data level jitter.
21. The sink device according to claim 15, wherein a size of the buffer is set to be greater than three times said threshold level.

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

What is claimed is:

1. A device for the controlled inhalation of therapeutic aerosols, comprising
means for providing individual patient parameters andor aerosol parameters for the inhalation; and
adjusting means for adjusting individual aerosol doses on the basis of the predetermined individual patient parameters andor aerosol parameters.
2. The inhalation device according to claim 1, wherein the provision means comprise a memory medium.
3. The inhalation device according to claim 2, wherein the memory medium is an active or passive memory medium.
4. The inhalation device according to claim 2, wherein the memory medium is a FlashCard, SmartCard or SmartLabel memory medium.
5. The inhalation device according to claim 1, wherein the provision means comprise a modem.
6. The inhalation device according to claim 1, wherein the provision means comprise input means for manually inputting individual parameters.
7. The inhalation device according to claim 2, wherein the individual patient parameters andor aerosol parameters are stored on the memory medium before the inhalation.
8. The inhalation device according to claim 2, wherein the memory medium stores the breathing maneuvers carried out.
9. The inhalation device according to claim 1, wherein the provision means are provided with manually operable control units andor switches.
10. The inhalation device according to claim 1, wherein the adjusting means for adjusting the individual aerosol doses reads out the individual patient parameters andor aerosol parameters for the inhalation from the provision means, evaluates them and, on the basis thereof, adjusts the respiratory flow and the tidal volume of the inhalation device.
11. Use of the inhalation device according to claim 1 for medicinal agents that become effective topically in the respiratory system or systemically.