The present 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.
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.
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
where v 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.
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−1), . . . , 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
or for simplicity,
where v is taken as unity. The decoding scheme is separable, where decoder 206 decodes input signal x1, decoder 208 decodes input signal x2, and decoders 206 and 208 each perform the identical decoding function
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,
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 simul-gates may synthesized in which each logic gate Bi is replaced with the simul-gate (Bi, Bi, . . . , Bi), where Bi 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.
This application claims the benefit of U.S. Provisional Application No. 61/067,666, filed 29 Feb. 2008.
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 | |
---|---|---|---|
61067666 | Feb 2008 | US |