The invention relates to electronic logic gates.
A substantial amount of research in electronic microsystems has focused on bringing more computing power to smaller devices. Traditional approaches to increase computing bandwidth has often focused on exploiting concurrency, such as by allocating increasingly more gates to specific tasks, or by performing instructions faster, such as operating gates at higher speeds. These traditional approaches are expected to have diminishing returns, and may bump up against technological barriers, such as for example limitations on power dissipation.
Another technological barrier has to do with the substantial increase in the number of transistors built in modern devices, which increases by approximately a factor of two every 18 to 24 months, and which is predicted by Moore's Law. As the number of devices increases, more and more area on a chip needs to be devoted to interconnects. At some point, the portion of the chip devoted to interconnects becomes excessive, possibly exceeding the area of the chip devoted to transistors or active devices.
Also known in the prior art is Adler et al., U.S. Pat. No. 4,463,344, issued Jul. 31, 1984, which is said to disclose an algorithm and the hardware embodiment for producing a run length limited code useful in magnetic recording channels. The system described produces sequences which have a minimum of 2 zeros and a maximum of 7 zeros between adjacent 1's. The code is generated by a sequential scheme that maps 1 bit of unconstrained into 2 bits of constrained data. The encoder is a finite state machine whose internal state description requires 3 bits. It possesses the attractive feature of reset data blocks which reset it to a fixed state. The decoder requires a look ahead of three future channel symbols (6 bits) and its operation is channel state independent. The error propagation due to a random error is 3 bits. The hardware implementation is extremely simple and can operate at very high data speeds.
Also known in the prior art is Deogun et al., U.S. Pat. No. 7,088,141, issued Aug. 8, 2006, which is said to disclose a multi-threshold complementary metal-oxide semiconductor (MTCMO) bus circuit reduces bus power consumption via a reduced circuit leakage standby and pulsed control of standby mode so that the advantages of MTCMOS repeater design are realized in dynamic operation. A pulse generator pulses the high-threshold voltage power supply rail standby switching devices in response to changes detected at the bus circuit inputs. The delay penalty associated with leaving the standby mode is overcome by reducing cross-talk induced delay via a cross-talk noise minimization encoding and decoding scheme. A subgroup of bus wires is encoded and decoded, simplifying the encoding, decoding and change detection logic and results in the bus subgroup being taken out of standby mode only when changes occur in one or more of the subgroup inputs, further reducing the power consumption of the overall bus circuit.
Also known in the prior art is Rijavec, U.S. Patent Application Publication No. 2007/0176800 A1, published Aug. 2, 2007, which is said to disclose methods and systems for improving performance of data decoding using a priori information about the data steam. In one aspect a decoder may determine the degree of lossiness inherent in the data or in the application of the data as a maximum resolution of data to be decoded and may thereby streamline entropy decoding of the data. For example, in DCT-based image data compression coupled with Huffman or other entropy encoding, a priori data may be analyzed to determine the maximum required resolution in bits of the DCT encoded data so as to simplify the entropy decoding. Other aspects optimize DCT decoding computation with faster approximations where the quantization values indicate a higher degree of lossiness or noise in the DCT encoded data. A priori information may generally comprise values in the quantization table of a DCT encoded image and may be analyzed to determine the maximum symbol size and/or degree of lossiness.
Also known in the prior art is Noda, U.S. Pat. No. 7,339,500, issued Mar. 4, 2008, which is said to disclose two different block codes that can be encoded by one-type of encoding section. A first-point-fixed encoding section divides m-bit data into a first-half code and a second-half code, and encodes them into an n-bit provisional code with fixed start-point state. A code A/B counter receives a reset-signal and outputs a code selection signal to a code-order reversing section and a top-code correction section. The code-order reversing section receives a codeword excluding the top code from the start-point-fixed encoding section; and outputs the codeword as is, when the code selection signal indicates a code B, and reverses the order of the codeword to generate a new codeword, and outputs the new codeword to a latch, when the code selection signal indicates a code A. The top-code correction section determines whether the top code needs to be modified, and modifies the top code, if necessary.
Also known in the prior art is Motoyama, U.S. Patent Application Publication No. 2008/0094260 A1, published Apr. 24, 2008, which is said to disclose a logic circuit that executes a prescribed arithmetic processing that includes a decoder that converts one or more binary input data into a first plurality of bit data of a constant hamming weight regardless of a hamming weight of the input data, an interconnect network that is connected to the decoder, changes a bit pattern of the first plurality of bit data and generates a second plurality of bit data, according to receiving the first plurality of bit data converted according to the decoder, and substituting a bit position of the received first plurality of bit data for the purpose of the prescribed arithmetic operation, and an encoder connected to the interconnect network and converts the second plurality of bit data generated in the interconnect network into one or more binary output data.
Also known in the prior art is Motoyama, U.S. Patent Application Publication No. 2008/0212776 A1, published Sep. 4, 2008, which is said to disclose an encryption processing circuit that includes a decoder configured to convert a binary input data used for predetermined encryption computing into a first plurality of bit data of a constant hamming weight independently of a hamming weight of the input data; a wiring network configured to receive the first plurality of bit data converted by the decoder, the wiring network further configured, for the purpose of the predetermined encryption computing, to change a bit pattern of the received first plurality of bit data by replacing bit positions of the first plurality of bit data, and to generate a second plurality of bit data; and an encoder configured to convert the second plurality of bit data generated in the wiring network into a binary output data.
Mechanical computation systems that rely on a plurality of states, including machines that operate using N=10 states, such as Babbage's Difference Engine, have been known for many years. However, electronic computation systems use two states (e.g., binary logic).
There is a need for electronic logic gates and electronic computational systems that use more logic states than two binary logic states.
According to one aspect, the invention features an electronic logic gate. The electronic logic gate comprises at least a first input terminal and a second input terminal, each input terminal configured to receive a respective electrical input logic signal having one logic state selected from a number N of logic states, and an output terminal configured to provide an electrical output logic signal having one logic state selected from a number N of logic states, where N is an integer greater than two; the electronic logic gate configured to perform a logic operation using the electrical input logic signals received at the at least the first input terminal and the second input terminal, the logic operation defined by a truth table.
In one embodiment, the electronic logic gate further comprises a selector input configured to receive a selector signal having a plurality of logic states, the logic gate configured to perform a plurality of different logic functions using the electrical input logic signals received at the at least the first input terminal and the second input terminal in response to the selector signal.
In another embodiment, the truth table is a NAND/NAND truth table.
In yet another embodiment, the truth table is a NOR/NOR truth table.
In still another embodiment, the truth table is an OR/OR truth table.
In a further embodiment, the truth table is an XOR/XOR truth table.
In yet a further embodiment, the truth table is a NOT/NOT truth table.
In an additional embodiment, the truth table is an AND/AND truth table.
In one more embodiment, the N logic states correspond to N monotonic logic signal levels.
In one embodiment, the electronic logic gate further comprises a binary to N logic level encoder.
In another embodiment, the electronic logic gate further comprises an N logic level driver.
In yet another embodiment, the electronic logic gate further comprises an N logic level to binary decoder.
In still a further embodiment, the N monotonic logic signal levels are equally spaced signal levels.
According to another aspect, the invention relates to a method of processing electronic signals.
The method comprises the steps of: providing an electronic logic gate; providing a truth table; applying at least first and second electrical input logic signals each having one logic state selected from a number N of logic states to the at least the first input terminal and the second input terminal; sensing the electrical output signal; and performing at least one of recording the result, transmitting the result to a data handling system, or to displaying the result to a user. The electronic logic gate, comprises at least a first input terminal and a second input terminal, each input terminal configured to receive a respective electrical input logic signal having one logic state selected from a number N of logic states, and an output terminal configured to provide an electrical output logic signal having one logic state selected from a number N of logic states, where N is an integer greater than two; the electronic logic gate configured to perform a logic operation using the electrical input logic signals received at the at least the first input terminal and the second input terminal, the logic operation is defined by a truth table.
In one embodiment, the truth table is selected from the group of truth tables consisting of a NAND/NAND truth table, a NOR/NOR truth table, an OR/OR truth table, an XOR/XOR truth table, a NOT/NOT truth table, and an AND/AND truth table.
In another embodiment, the number N of logic states correspond to N monotonic logic signal levels.
In yet another embodiment, the N monotonic logic signal levels are equally spaced signal levels.
In a further aspect, the invention provides an optical logic gate. The optical logic gate comprises at least a first input terminal and a second input terminal, each input terminal configured to receive a respective optical input logic signal having one logic state selected from a number N of logic states, and an output terminal configured to provide an optical output logic signal having one logic state selected from a number N of logic states, where N is an integer greater than two; said optical logic gate configured to perform a logic operation using said optical input logic signals received at said at least said first input terminal and said second input terminal, said logic operation defined by a truth table.
In one embodiment, the optical logic gate further comprises a selector input configured to receive a selector signal having a plurality of logic states, said logic gate configured to perform a plurality of different logic functions using said optical input logic signals received at said at least said first input terminal and said second input terminal in response to said selector signal.
In another embodiment, said N logic states correspond to N monotonic logic signal levels.
The disclosed subject matter describes a method to provide an input-output relationship to process K input multi-level logic signals into an output signal. The method comprises the steps of choosing a decoding scheme to decode the K input multi-level logic signals into a set of M′ bits on each channel of M channels; choosing Boolean functions for each channel; and choosing an encoding scheme to encode the output of the Boolean functions into the output signal.
In one embodiment, M′=M.
In another embodiment, the decoding scheme applies the same decoding function to each of the K input multi-level logic signals.
The disclosed subject matter describes a logic gate to provide an output signal y in response to K input signals xkk=1, 2, . . . , K. The logic gate comprises M channels Cm′m=1, 2 , . . . , M to propagate data signals to perform M Boolean functions fm′m=1, 2, . . . , M, where for each k=1, 2, . . . , K, input signal xk maps into an M′-tuple of bits (xk(M′),xk(M′−1), . . . , xk(2), xk(1)), where each xk(m) is a binary logic signal, where a subset of the set of K M′-tuples {(xk,M′), xk(M′−1), . . . , xk(2), xk(1)), k=1, 2, . . . , K)} is transmitted over the M channels, and where the output signal y is a function of the M-tuple of binary signals (fN{CM}, fM−1{CM−1}, . . . , f2{C2}, f1{C1}), where for each m=1, 2, . . . , M, {Cm} is the subset of the set of K M′-tuples {(xk(M′), xk(M′−1), . . . , xk(2), xk(1)), k=1, 2, . . . , K} that is transmitted over the channel Cm, and fm{Cm} is an output of Boolean function fm for the set of binary logic signals {Cm}. The input signals can be multi-level logic signals.
In one embodiment, M′=M, where for each k=1, 2, . . . , K, xk(m) is sent over channel Cm for each m=1, 2, . . . , M, where for each m=1, 2, . . . , M, {Cm} is the set of binary logic signals {x1(m),x2(m), . . . , x2(m)}.
In yet another embodiment, a same mapping is applied to each signal xk.
The disclosed subject matter describes a method to synthesize a simul-gate logic circuit given a logic circuit comprising a set of Boolean logic gates {Bi, i=1, 2, . . . ,N}. The method comprises the steps of replacing, for each i=1, 2, . . . , N, the Boolean logic gate Bi in the logic circuit with the simul-gate (Bi, Bi, . . . , Bi) where Bi is repeated M times.
In one embodiment, for each i=1, 2, . . . , N, the simul-gate (Bi, Bi, . . . , Bi) is i=1, 2, . . . , N, such that in response to K(f) input signals xk(f), k=1, 2, . . . , k(f), the the simul-gate Bi, Bi, . . . , Bi) comprises M channels Cm(t), m=1, 2, . . . , M to propagate data signals to perform the Boolean function Bi M times, where for each k=1, 2, . . . , K(f), input signal xk(f) maps into an M-tuple of bits (xk(f, M), xk(f, M−1), . . . , xk(f, 2), xk(f, 1)), where each xk(t,m) is a binary logic signal, where xk(t,m) is sent over channel Cm(f) for each m=1, 2, . . . , M, and where an output signal y(f) is a function of the M-tuple of binary signals (Bi{CM(f)}, Bi{CM−1(f)}, . . . , Bi{C2(f)}, Bi{C1(f)}), where for each k=1, 2, . . . , K(f), xk(f,m) is sent over channel Cm(f) for each m=1,2, . . . M, where for each m=1, 2, . . . , M, {Cm(f)} is the set of binary logic signals {x1(f,m),xk(f,m, . . . , xk(f,m)}, and Bi{Cm(f)} is the output of Boolean function Bi for the set of binary logic signals [Cm(f)].
The foregoing and other objects, aspects, features, and advantages of the invention will become more apparent from the following description and from the claims.
The objects and features of the invention can be better understood with reference to the drawings described below, and the claims. The drawings are not necessarily to scale, emphasis instead generally being placed upon illustrating the principles of the invention. In the drawings, like numerals are used to indicate like parts throughout the various views.
In the description that follows, the scope of the term “some embodiments” is not to be so limited as to mean more than one embodiment, but rather, the scope may include one embodiment, more than one embodiment, or perhaps all embodiments.
A methodology is presented for describing an input-output behavior of a multi-level logic gate to process simultaneously a multiplicity of independent Boolean logic functions, with each Boolean function processing signals carried on an individual, separate channel. An embodiment may simultaneously process the same data with the same function or with different functions, multiple data with the same function, or multiple data with different functions. In addition, multi-level logic signals (having more than two levels) may be processed, so that a higher communication bandwidth may be obtained without necessarily increasing the number of traces (wires).
Embodiments increase functional density at the logic gate level by combining multiple functions within a single gate. Embodiments may process simultaneously a multiplicity of independent Boolean logic functions, with each Boolean function processing signals carried on an individual, separate channel. An embodiment may simultaneously process the same data with the same function or with different functions, multiple data with the same function, or multiple data with different functions. In addition, multi-level logic signals (having more than two levels) may be processed, so that a higher communication bandwidth may be obtained without necessarily increasing the number of traces (wires). Such an embodiment may be referred to as a simul-gate.
Embodiments may be described by their input-output behavior. The input signals, and the output signal, may each in general have more than two logic levels, or values. For example, an input or output signal may have logic levels in the set {0,(1/3)v,(2/3)v,v}, where v is some voltage scale. A correspondence between the binary symbols 0 and 1 and these logic voltage levels may be taken as: 000; 01(1/3)v; 10(2/3)v; and 11v. Other embodiments may have more than four logic levels. It is not necessary that the number of logic levels in a set of logic levels be a power of two.
Referring to
In describing the input-output behavior of the embodiment in
Embodiments may be described in more detail by introducing additional notation. Decoder 104 maps input signal xk into the M-tuple of bits (xk(M),xk(M−2), . . . , xk(2),xk(1)) for each k=1, 2, . . . , K, where each xk(m) is a binary logic signal, and where xk(m) is sent over channel Cm for each m=1, 2, . . . , M and for each k. In this way, for each m=1, 2, . . . . , M, channel Cm carries the set of binary signals {x1(m),x2(m), . . . , xk(m)}. For each m=1, 2, . . . , M, Boolean gate fm operates on the set of binary signals {x1, (m),x2(m), . . . , xK(m)} to provide an output binary signal that may be expressed as fm{x1(m), x2(m), . . . , xK(m)}. This output binary signal may be written more compactly as fm{Cm}, where when Cm is the argument of fm, it stands for the set of binary signals carried on channel Cm. Encoder 112 has as its input the M-tuple of binary signals (fM{CM},FM−1{CM−1}, . . . , f2{C2}, f1≡C1}), and maps this into a multi-level logic output signal y.
For some embodiments, the output of each Boolean gate does not depend upon the ordering of its input signals. This was the motivation for using set notation in describing the input and output relationship of a Boolean gate. For example, the output binary signal of Boolean gate fm was written as fm{Cm}. For some embodiments, the decoding scheme is separable in the sense that the same decoding scheme is applied separately to each xk. If each Boolean gate does not depend upon the ordering of its input signals, and if the decoding scheme is separable so that the same decoding scheme is applied to each xk, then because each channel Cm carries the set of binary signals {x1(m),x2(m), . . . , xK(m)} for each m=1, 2, . . . , M the output of the simul-gate is independent of the ordering of the input signals xk.
For some embodiments the output of encoder 110 depends upon the ordering of its input signals. This was the motivation for using M-tuple notation for the encoder. As a result, for some embodiments the output signal y may depend upon the ordering of the correspondence between the Boolean gates and the channels. With this in mind, the input-output behavior for the embodiment of
For some embodiments, the signals xk for k=1, 2, . . . , K may be such that a decoder maps input signal xk into the M′-tuple of bits (xk(M′),xk(M′−1), . . . , xk(2),xk(1)) for each k−1, 2, . . . , K, where each xk(m) is a binary logic signal, but where M′=M. For example, if M′>M, then not all of the binary signals may be carried by the channels. As another example, if M′<M, then some channels may carry the same set of binary signals, but to different logic gates. In general, a subset of the set of K M′-tuples {(xk(M′),xk(M′−1), . . . , xk(2),xk(1)), k=1, 2, . . . , K} is transmitted over the M channels. A subset may not be a proper subset. That is, a subset of a set may be the set itself.
To provide a specific example of a simul-gate, an (AND, OR) simul-gate embodiment is illustrated in
Associated with channel C1, denoted by data flows 210 and 212, is the Boolean OR function, represented by OR gate 214. Associated with channel C2, denoted by data flows 216 and 218, is the Boolean AND function, represented by AND gate 220. Encoder 222 performs the inverse of decoders 206 and 208. That is, 00→0; 01→(1/3); 10→(2/3); and 11→1, where the lowest and highest order bits in 00, 01, 10, and 11 refer to, respectively, the outputs of OR gate 214 and AND gate 220.
With the decoding and encoding schemes so defined, it is straightforward to develop the truth table for the (AND, OR) simul-gate of
The data flows and logic gates in
The methodology described herein may also be used to provide embodiments to increase the number of bits that are processed in a conventional system of conventional logic gates by replacing the conventional gates with simul-gates that perform the same function but on multiple channels. A particular example is illustrated in
In
For some embodiments, because the CARRY OUT signal isn't available for higher order bits until the lower order bits have been added, parts of the numbers to be added by an adder with simul-gates are time shifted so that the CARRY OUT signal is available when needed. The following example makes this clear. Suppose the numbers U and V are to be added, the numbers W and X are to be added, and the numbers Y and Z are to be added. Let the first and second bits of U be denoted as U[1] and U[2], respectively. Similar notation applies to the other numbers. Then for the first addition cycle, only one half of the adder is adding the two one-bit numbers U[1] and V[1]. At the second addition cycle, W[1] and X[1] are being added while at the same time U[2] and V[2] are being added. Because the part of the CARRY OUT signal associated with U[1] and V[1] is available at the beginning of the second addition cycle, it may be used in the CARRY IN signal for adding U[2] and V[2]. At the third addition cycle, Y[1] and Z[1] are being added, and W[2] and X[2] are being added. Because the part of the CARRY OUT signal associated with W[1] and X[1] is available at the beginning of the third addition cycle, it may be used in the CARRY IN signal for adding W[2] and X[2]. At the fourth addition cycle, only one half of the adder is adding the two one-bit numbers Y[2] and Z[2], and the part of the CARRY OUT signal associated with Y[1] and Z[1] is available to be used in the CARRY IN signal for adding Y[2] and Z[2].
In general, once a logic circuit has been specified comprising a set of N Boolean logic gates (Bi, i=1, 2, . . . , N), along with their interconnections, then a logic circuit comprising sirnul-gates may synthesized in which each logic gate Bi is replaced with the simul-gate (Bi,Bi, . . . , Bi), where B, is repeated M times.
The embodiments described here are applicable to sequential logic as well as to combinational logic. Various modifications may be made to the disclosed embodiments without departing from the scope of the invention as claimed below.
In the flowing description, the term “logic gate” will be used to refer to simu-gates in which N monotonic levels of signal are processes, where N is greater than 2. Conventionally, the term “logic gate” is ordinarily applied to systems in which there are only two logic levels. Since the invention of digital computers in the 1940's, there have been systems using conventional binary digital signals with two states (e.g., TRUE or FALSE, “1” or “0”, “on” or “off”, HIGH or LOW). Here, the simu-gates can be considered either to process simultaneously M binary signals that have been combined into signals with 2M logic levels, or they can be considered to process signals with N discrete monotonic logic levels, where N is greater than 2.
We now describe a number of exemplary logic gates that can operate according to principles of the invention. While the examples employ logic having four states, it should be understood that analogous logic having N logic states, where N is at least three distinct logic states, are contemplated. In particular, N does not have to be an integer that is a power of 2, but N can be a power of 2 in some embodiments. N does not need to be an even number. The logic gates can be characterized by respective truth tables. As is understood in the computer logic arts, a truth table relates one or more input variables of a logic gate to one or more output variables of the logic gate. For the embodiments that will be illustrated, a plurality of input variables each of which can take a number N of input states can be provided to a logic gate, and at least one output is provided by the logic gate, which output can have a value selected from at least some of the N logic states, as described by a corresponding truth table. While the present disclosure will not discuss the relationship between using positive logic and negative logic, those relationships are well known (for example as DeMorgan's laws) in the logical arts. Any logic gate described in one of positive or negative logic can also be understood to operate in the other logic, after application of DeMorgan's laws.
In describing logic gates, there will be shown circuit diagrams that include a number of transistors, some of which can be configured as diodes to provide predetermined voltage shifts (e.g., by having the base connected to the collector in a p-n-p transistor or the gate terminal connected to the drain in an FET). While these circuits can be fabricated using the transistors as shown in standard MOS technology, it is expected that one can design a chip in which the entire logic gate is fabricated as a single device having only the required number of input terminals, output terminals and reference voltage terminals.
As will become apparent from the following description and the drawings, in some embodiments, the N logic states can correspond to a sequence of N monotonically increasing voltage levels (or electronic signal levels), which can be, but do not have to be, N equally spaced voltage levels.
We now explain the rules that govern the operation of the NAND/NAND gate of
Vp is the bias level for the PMOS transistors. Its value is a threshold voltage below the positive supply. For the sake of discussion, we will take this supply to provide VDD volts.
One implementation of the NAND/NAND function is shown in
These are used in combination to sense multiple input logic levels and provide voltage distinct output logic levels.
As may be seen in the above circuit the Y node is a wired “OR” with a PFET pull up. In multilevel terms this is a “wired minimum” since the node with pull down to the lowest part of the decode tree.
From the truth table it can be seen that there are many “3” levels on the output, i.e., no decode branches are active and the Y node pulls up to VDD (level 3). Note that there is just one “0” code on the output when A=3 and B=3. On the bottom right part of the circuit the decode circuit can be seen. The B transistor has a 2 in its source, and so does not turn on unless B>2. The A transistor is in series and so has the same property.
When both A and B equal 3 the Y node is pulled to zero through the inverter and pull down transistor. The other codes are designed in a similar way.
The input signals to the circuit in
In
We now describe the operation of the circuit from left to right.
The first branch (referred to as Input 1) is similar to a NOR gate. This branch responds to any value for A or B that is higher than the 2 state. In this branch we are using the transistors programmed to have a 1.0V threshold. The output of this branch is either a 3 or 1 because the output clamping nature of the programmable transistor. For any 2 or higher at either A or B input it produces an output 1. If A and B are both less than 2, both the A and B transistors are “off” and the output of this circuit is 3.
The output of Input 1 is fed into the next portion of the circuit. This portion of the circuit comprises three branches labeled S1, S2 and S3, respectively. These three branches are three input NAND gates that are connected by being logically “NOR”ed together. Each branch is a three input NAND.
The first branch, S1, is in an off state (producing a 3). It will produce a logic 2 only if both A and B are greater than logic 1 and the output of the prior stage is a logic 3 (meaning one of them is less than logic 2).
The second branch S2 produces an output of logic 3 (2V) if B has a value greater than 1 (1=0.5V or Vth) and A is at state 3 (e.g., a value greater than 2V).
The third branch S3 produces an output of logic 3 (2V) if A is at logic level 2 (1V) and B has a value greater than logic 3 or 2V.
The 4th branch S4 produces an output of 2 (1V) if A is a value greater than 1 and B has a value greater than 2 (1V).
The circuit referred to as the “input 2” produces a zero output if B is in logic state 3, and A is at a logic level higher than state 1.
This is to be compared to the truth table given in
The two input NAND/NAND has two inputs and one output but performs the function of two conventional NAND gate in parallel. This is achieved by mapping the input and output pins into four states, rather than binary. The following table illustrates this for the A input of the two NAND gates.
This is repeated for all terminals of the function. When this is done it is possible to map the two NAND gates into a four level function given by the truth table in
Other logic circuits can be designed to operate according to any of an AND/AND truth table (for example, the logical negative of a NAND/NAND truth table), a NOR/NOR truth table (for example, the logical negative of an OR/OR truth table), or other truth tables.
Circuitry corresponding to the device shown in
While the description and embodiments provided here have been presented in terms of electronic devices, it is also contemplated that similar systems can be constructed using optical methods instead of electronic methods, in which the monotonic signal levels (such as voltages or currents) are replaced with monotonic optical signals, such as intensity of illumination signals, or are replaced with a plurality of closely spaced optical signals of known wavelengths, so that N monotonic levels can be distinguished.
Unless otherwise explicitly recited herein, any reference to an electronic signal or an electromagnetic signal (or their equivalents) is to be understood as referring to a non-volatile electronic signal or a non-volatile electromagnetic signal.
Recording the results from an operation or data acquisition, such as for example, recording results at a particular frequency or wavelength, is understood to mean and is defined herein as writing output data in a non-transitory manner to a storage element, to a machine-readable storage medium, or to a storage device. Non-transitory machine-readable storage media that can be used in the invention include electronic, magnetic and/or optical storage media, such as magnetic floppy disks and hard disks; a DVD drive, a CD drive that in some embodiments can employ DVD disks, any of CD-ROM disks (i.e., read-only optical storage disks), CD-R disks (i.e., write-once, read-many optical storage disks), and CD-RW disks (i.e., rewriteable optical storage disks); and electronic storage media, such as RAM, ROM, EPROM, Compact Flash cards, PCMCIA cards, or alternatively SD or SDIO memory; and the electronic components (e.g., floppy disk drive, DVD drive, CD/CD-R/CD-RW drive, or Compact Flash/PCMCIA/SD adapter) that accommodate and read from and/or write to the storage media. Unless otherwise explicitly recited, any reference herein to “record” or “recording” is understood to refer to a non-transitory record or a non-transitory recording.
As is known to those of skill in the machine-readable storage media arts, new media and formats for data storage are continually being devised, and any convenient, commercially available storage medium and corresponding read/write device that may become available in the future is likely to be appropriate for use, especially if it provides any of a greater storage capacity, a higher access speed, a smaller size, and a lower cost per bit of stored information. Well known older machine-readable media are also available for use under certain conditions, such as punched paper tape or cards, magnetic recording on tape or wire, optical or magnetic reading of printed characters (e.g., OCR and magnetically encoded symbols) and machine-readable symbols such as one and two dimensional bar codes. Recording image data for later use (e.g., writing an image to memory or to digital memory) can be performed to enable the use of the recorded information as output, as data for display to a user, or as data to be made available for later use. Such digital memory elements or chips can be standalone memory devices, or can be incorporated within a device of interest. “Writing output data” or “writing an image to memory” is defined herein as including writing transformed data to registers within a microcomputer.
“Microcomputer” is defined herein as synonymous with microprocessor, microcontroller, and digital signal processor (“DSP”). It is understood that memory used by the microcomputer, including for example instructions for data processing coded as “firmware” can reside in memory physically inside of a microcomputer chip or in memory external to the microcomputer or in a combination of internal and external memory. Similarly, analog signals can be digitized by a standalone analog to digital converter (“ADC”) or one or more ADCs or multiplexed ADC channels can reside within a microcomputer package. It is also understood that field programmable array (“FPGA”) chips or application specific integrated circuits (“ASIC”) chips can perform microcomputer functions, either in hardware logic, software emulation of a microcomputer, or by a combination of the two. Apparatus having any of the inventive features described herein can operate entirely on one microcomputer or can include more than one microcomputer.
General purpose programmable computers useful for controlling instrumentation, recording signals and analyzing signals or data according to the present description can be any of a personal computer (PC), a microprocessor based computer, a portable computer, or other type of processing device. The general purpose programmable computer typically comprises a central processing unit, a storage or memory unit that can record and read information and programs using machine-readable storage media, a communication terminal such as a wired communication device or a wireless communication device, an output device such as a display terminal, and an input device such as a keyboard. The display terminal can be a touch screen display, in which case it can function as both a display device and an input device. Different and/or additional input devices can be present such as a pointing device, such as a mouse or a joystick, and different or additional output devices can be present such as an enunciator, for example a speaker, a second display, or a printer. The computer can run any one of a variety of operating systems, such as for example, any one of several versions of Windows, or of MacOS, or of UNIX, or of Linux. Computational results obtained in the operation of the general purpose computer can be stored for later use, and/or can be displayed to a user. At the very least, each microprocessor-based general purpose computer has registers that store the results of each computational step within the microprocessor, which results are then commonly stored in cache memory for later use.
Many functions of electrical and electronic apparatus can be implemented in hardware (for example, hard-wired logic), in software (for example, logic encoded in a program operating on a general purpose processor), and in firmware (for example, logic encoded in a non-volatile memory that is invoked for operation on a processor as required). The present invention contemplates the substitution of one implementation of hardware, firmware and software for another implementation of the equivalent functionality using a different one of hardware, firmware and software. To the extent that an implementation can be represented mathematically by a transfer function, that is, a specified response is generated at an output terminal for a specific excitation applied to an input terminal of a “black box” exhibiting the transfer function, any implementation of the transfer function, including any combination of hardware, firmware and software implementations of portions or segments of the transfer function, is contemplated herein, so long as at least some of the implementation is performed in hardware.
Although the theoretical description given herein is thought to be correct, the operation of the devices described and claimed herein does not depend upon the accuracy or validity of the theoretical description. That is, later theoretical developments that may explain the observed results on a basis different from the theory presented herein will not detract from the inventions described herein.
Any patent, patent application, or publication identified in the specification is hereby incorporated by reference herein in its entirety. Any material, or portion thereof, that is said to be incorporated by reference herein, but which conflicts with existing definitions, statements, or other disclosure material explicitly set forth herein is only incorporated to the extent that no conflict arises between that incorporated material and the present disclosure material. In the event of a conflict, the conflict is to be resolved in favor of the present disclosure as the preferred disclosure.
While the present invention has been particularly shown and described with reference to the preferred mode as illustrated in the drawing, it will be understood by one skilled in the art that various changes in detail may be affected therein without departing from the spirit and scope of the invention as defined by the claims.
This application claims priority to and the benefit of co-pending U.S. provisional patent application Ser. No. 61/383,488 filed Sep. 16, 2010 and is a continuation-in-part of co-pending U.S. patent application Ser. No. 12/393,562, filed Feb. 26, 2009, which application claimed the priority and benefit of U.S. provisional patent application Serial No. 61/067,666 filed Feb. 29, 2008, each of which applications is incorporated herein by reference in its entirety.
The invention claimed herein was made in the performance of work under a NASA contract, and is subject to the provisions of Public Law 96-517 (35 USC 202) in which the Contractor has elected to retain title.
Number | Date | Country | |
---|---|---|---|
61383488 | Sep 2010 | US | |
61067666 | Feb 2008 | US |
Number | Date | Country | |
---|---|---|---|
Parent | 12393562 | Feb 2009 | US |
Child | 13235188 | US |