METHOD AND APPARATUS FOR SIMULTANEOUS PROCESSING OF MULTIPLE FUNCTIONS
20170244410 · 2017-08-24
Assignee
Inventors
Cpc classification
G06F7/49
PHYSICS
G06F7/00
PHYSICS
International classification
Abstract
Electronic logic gates that operate using N logic state levels, where N is greater than 2, and methods of operating such gates. The electronic logic gates operate according to truth tables. At least two input signals each having a logic state that can range over more than two logic states are provided to the logic gates. The logic gates each provide an output signal that can have one of N logic states. Examples of gates described include NAND/NAND gates having two inputs A and B and NAND/NAND gates having three inputs A, B, and C, where A, B and C can take any of four logic states. Systems using such gates are described, and their operation illustrated. Optical logic gates that operate using N logic state levels are also described.
Claims
1-20. (canceled)
21. A method to provide an input-output relationship to process K input multi-level logic signals into an output signal, the method comprising: 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, each of said multi-level logic signals spanning more than 2 logic levels; choosing Boolean functions for each channel; and choosing an encoding scheme to encode the output of the Boolean functions into the output signal.
22. The method of claim 21, where M′=M.
23. The method of claim 21, wherein the decoding scheme applies the same decoding function to each of the K input multi-level logic signals.
24. A logic gate to provide an output signal y in response to K input signals x.sub.k, k=1, 2, . . . , K, the logic gate comprising: M channels C.sub.m, m=1, 2, . . . , M to propagate data signals to perform M Boolean functions ƒ.sub.m, m=1, 2, . . . , M, where for each k=1, 2, . . . , K, input signal x.sub.k maps into an M′-tuple of bits (x.sub.k(M′), x.sub.k(M′−1), . . . , x.sub.k(2), x.sub.k(1)), each of said input signals x.sub.k spans more than two logic levels; each x.sub.k(m) is a binary logic signal, where a subset of the set of K M′-tuples {(x.sub.k(M′), x.sub.k(M′−1), . . . , x.sub.k(2), x.sub.k(1)), k=1, 2, . . . , K} is transmitted over the M channels; and the output signal y is a function of the M-tuple of binary signals (ƒ.sub.M{C.sub.M}, ƒ.sub.M-1{C.sub.M-1}, . . . , ƒ.sub.2{C.sub.2}, ƒ.sub.1{C.sub.1}, where for each m=1, 2, . . . , M, {C.sub.m} is the subset of the set of K M′-tuples {(x.sub.k(M′), x.sub.k(M′−1), . . . , x.sub.k(2), x.sub.k(1)), k=1, 2, . . . , K} that is transmitted over the channel C.sub.m, and ƒ.sub.m{C.sub.m} is an output of Boolean function ƒ.sub.m for the set of binary logic signals {C.sub.m}.
25. The logic gate of claim 24, where M′=M, where for each k=1, 2, . . . , K, x.sub.k(m) is sent over channel C.sub.m for each m=1, 2, . . . , M, where for each m=1, 2, . . . , M, {C.sub.m} is the set of binary logic signals {x.sub.1(m), x.sub.2(m), . . . , x.sub.K(m)}.
26. The logic gate of claim 24, wherein a same mapping is applied to each signal x.sub.k.
27. A method to synthesize a simul-gate logic circuit that can process a plurality K(i) of multi-level input signals x.sub.k(i), k=1, 2, . . . , K (i), each of said multi-level input signals spanning more than 2 logic levels, said simul-gate logic circuit equivalent to a given binary logic circuit comprising a set of Boolean logic gates {B.sub.i, i=1, 2, . . . , N}, the method comprising: replacing, for each i=1, 2, . . . , N, the Boolean logic gate B.sub.i in the logic circuit with the simul-gate (B.sub.i, B.sub.1, . . . , B.sub.1), where B.sub.i is repeated M times.
28. The method of claim 27, where for each i=1, 2, . . . , N, the simul-gate (B.sub.i, B.sub.i, . . . , B.sub.i) is such that in response to K(i) input signals x.sub.k(i), k=1, 2, . . . , K(i), the the simul-gate (B.sub.i, B.sub.1, . . . , B.sub.i) comprises M channels C.sub.m(i), m=1, 2, . . . , M to propagate data signals to perform the Boolean function B.sub.i M times, where for each k=1, 2, . . . , K(i), input signal x.sub.k(i) maps into an M-tuple of bits (x.sub.k(i, M), x.sub.k(i, M−1), . . . , x.sub.k(i, 2), x.sub.k(i, 1)), where each x.sub.k(i, m) is a binary logic signal, where x.sub.k(i, m) is sent over channel C.sub.m(i) for each m=1, 2, . . . , M, and where an output signal y(i) is a function of the M-tuple of binary signals (B.sub.i{C.sub.M(i)}, B.sub.i{C.sub.M-1(i)}, . . . , B.sub.i{C.sub.2(i)}, B.sub.i{C.sub.1(i)}), where for each k=1, 2, . . . , K(i), x.sub.k(i, m) is sent over channel C.sub.m(i) for each m=1, 2, . . . , M, where for each m=1, 2, . . . , M, {C.sub.m(i)} is the set of binary logic signals {x.sub.1(i, m), x.sub.2(i, m), . . . , x.sub.K(i, m)}, and B.sub.i{C.sub.m(i)} is the output of Boolean function B.sub.i for the set of binary logic signals {C.sub.m(i)}.
Description
BRIEF DESCRIPTION OF THE DRAWINGS
[0044] 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.
[0045]
[0046]
[0047]
[0048]
[0049]
[0050]
[0051]
[0052]
[0053]
[0054]
[0055]
[0056]
[0057]
[0058]
[0059]
[0060]
[0061]
[0062]
[0063]
[0064]
[0065]
[0066]
[0067]
[0068]
[0069]
[0070]
[0071]
DETAILED DESCRIPTION
[0072] 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.
[0073] 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).
[0074] 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.
[0075] 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,
where ν is some voltage scale. A correspondence between the binary symbols 0 and 1 and these logic voltage levels may be taken as:
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.
[0076] Referring to
[0077] In describing the input-output behavior of the embodiment in
[0078] Embodiments may be described in more detail by introducing additional notation. Decoder 104 maps input signal x.sub.k into the M-tuple of bits (x.sub.k(M), x.sub.k(M−1), . . . , x.sub.k(2), x.sub.k(1)) for each k=1, 2, . . . , K, where each x.sub.k(m) is a binary logic signal, and where x.sub.k(m) is sent over channel C.sub.m for each m=1, 2, . . . , M and for each k. In this way, for each m=1, 2, . . . , M, channel C.sub.m carries the set of binary signals {x.sub.1(m), x.sub.2(m), . . . , x.sub.K(m)}. For each m=1, 2, . . . , M, Boolean gate ƒ.sub.m operates on the set of binary signals {x.sub.1(m), x.sub.2(m), . . . , x.sub.K(m)} to provide an output binary signal that may be expressed as ƒ.sub.m{x.sub.1(m), x.sub.2(m), . . . , x.sub.K(m)}. This output binary signal may be written more compactly as ƒ.sub.m{C.sub.m}, where when C.sub.m is the argument of ƒ.sub.m, it stands for the set of binary signals carried on channel C.sub.m. Encoder 112 has as its input the M-tuple of binary signals (ƒ.sub.M{C.sub.M}, ƒ.sub.M-1{C.sub.M-1}, . . . , ƒ.sub.2{C.sub.2}, ƒ.sub.1{C.sub.1}), and maps this into a multi-level logic output signal y.
[0079] 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 ƒ.sub.m was written as ƒ.sub.m{C.sub.m}. For some embodiments, the decoding scheme is separable in the sense that the same decoding scheme is applied separately to each x.sub.k. 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 x.sub.k, then because each channel C.sub.m carries the set of binary signals {x.sub.1(m), x.sub.2(m), . . . , x.sub.K(m)} for each m=1, 2, . . . , M, the output of the simul-gate is independent of the ordering of the input signals x.sub.k.
[0080] 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
[0081] For some embodiments, the signals x.sub.k for k=1, 2, . . . , K may be such that a decoder maps input signal x.sub.k into the M′-tuple of bits (x.sub.k(M′), x.sub.k(M′−1), . . . , x.sub.k(2), x.sub.k(1)) for each k=1, 2, . . . , K, where each x.sub.k(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 {(x.sub.k(M′), x.sub.k(M′−1), . . . , x.sub.k(2), x.sub.k(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.
[0082] To provide a specific example of a simul-gate, an (AND, OR) simul-gate embodiment is illustrated in
or for simplicity,
where ν is taken as unity. The decoding scheme is separable, where decoder 206 decodes input signal x.sub.1, decoder 208 decodes input signal x.sub.2, and decoders 206 and 208 each perform the identical decoding function:
[0083] Associated with channel C.sub.1, denoted by data flows 210 and 212, is the Boolean OR function, represented by OR gate 214. Associated with channel C.sub.2, 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,
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.
[0084] With the decoding and encoding schemes so defined, it is straightforward to develop the truth table for the (AND, OR) simul-gate of
[0085] The data flows and logic gates in
[0086] 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
[0087] In
[0088] 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].
[0089] In general, once a logic circuit has been specified comprising a set of N Boolean logic gates {B.sub.i, i=1, 2, . . . , N}, along with their interconnections, then a logic circuit comprising simul-gates may synthesized in which each logic gate B.sub.i is replaced with the simul-gate (B.sub.i, B.sub.1, . . . , B.sub.1), where B.sub.i is repeated M times.
[0090] 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.
Logic Gates
[0091] 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 2.sup.M logic levels, or they can be considered to process signals with N discrete monotonic logic levels, where N is greater than 2.
[0092] 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.
[0093] 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.
[0094] 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.
NAND-NAND Gate
[0095]
[0096] We now explain the rules that govern the operation of the NAND/NAND gate of
[0097] 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 V.sub.DD volts.
[0098] One implementation of the NAND/NAND function is shown in
[0099] These are used in combination to sense multiple input logic levels and provide voltage distinct output logic levels.
[0100] 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.
[0101] 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 V.sub.DD (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.
[0102] 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.
[0103] The input signals to the circuit in
[0104] In
[0105] We now describe the operation of the circuit from left to right.
[0106] 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.
[0107] 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.
[0108] 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).
[0109] 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).
[0110] 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.
[0111] The 4.sup.th 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).
[0112] 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.
[0113] This is to be compared to the truth table given in
[0114] 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.
TABLE-US-00001 Value of A Nand1 A Input Value Nand2 A Input Value 0 0 0 1 1 0 2 0 1 3 1 1
[0115] 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
[0116]
Decoder Primitives
[0117]
[0118]
[0119]
[0120]
[0121]
[0122]
[0123]
[0124]
[0125]
[0126]
[0127]
[0128]
[0129] 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.
Simultaneous Arithmetic Logic Unit
[0130]
[0131]
[0132] Circuitry corresponding to the device shown in
[0133]
[0134]
[0135]
[0136] 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.
DEFINITIONS
[0137] 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.
[0138] 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.
[0139] 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.
[0140] “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.
[0141] 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.
[0142] 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.
Theoretical Discussion
[0143] 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.
[0144] 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.
[0145] 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.