WO2004077196A2 - Addierer zum addieren von zumindest drei eingangsoperanden - Google Patents

Addierer zum addieren von zumindest drei eingangsoperanden Download PDF

Info

Publication number
WO2004077196A2
WO2004077196A2 PCT/EP2004/001874 EP2004001874W WO2004077196A2 WO 2004077196 A2 WO2004077196 A2 WO 2004077196A2 EP 2004001874 W EP2004001874 W EP 2004001874W WO 2004077196 A2 WO2004077196 A2 WO 2004077196A2
Authority
WO
WIPO (PCT)
Prior art keywords
output
stage
bit
potential
input
Prior art date
Application number
PCT/EP2004/001874
Other languages
English (en)
French (fr)
Other versions
WO2004077196A3 (de
Inventor
Astrid Elbe
Norbert Janssen
Holger Sedlak
Original Assignee
Infineon Technologies Ag
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Infineon Technologies Ag filed Critical Infineon Technologies Ag
Publication of WO2004077196A2 publication Critical patent/WO2004077196A2/de
Publication of WO2004077196A3 publication Critical patent/WO2004077196A3/de

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/60Methods or arrangements for performing computations using a digital non-denominational number representation, i.e. number representation without radix; Computing devices using combinations of denominational and non-denominational quantity representations, e.g. using difunction pulse trains, STEELE computers, phase computers
    • G06F7/607Methods or arrangements for performing computations using a digital non-denominational number representation, i.e. number representation without radix; Computing devices using combinations of denominational and non-denominational quantity representations, e.g. using difunction pulse trains, STEELE computers, phase computers number-of-ones counters, i.e. devices for counting the number of input lines set to ONE among a plurality of input lines, also called bit counters or parallel counters
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/38Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
    • G06F7/48Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using non-contact-making devices, e.g. tube, solid state device; using unspecified devices
    • G06F7/50Adding; Subtracting
    • G06F7/501Half or full adders, i.e. basic adder cells for one denomination
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2207/00Indexing scheme relating to methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F2207/38Indexing scheme relating to groups G06F7/38 - G06F7/575
    • G06F2207/3804Details
    • G06F2207/386Special constructional features
    • G06F2207/3872Precharge of output to prevent leakage
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2207/00Indexing scheme relating to methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F2207/72Indexing scheme relating to groups G06F7/72 - G06F7/729
    • G06F2207/7219Countermeasures against side channel or fault attacks
    • G06F2207/7266Hardware adaptation, e.g. dual rail logic; calculate add and double simultaneously

Definitions

  • the present invention relates to half adder circuits, and more particularly to half adder circuits for adding bits from at least three input operands to obtain at least two output bits.
  • DE 3631992 C2 discloses a cryptography processor for performing the RSA public key cryptosystem.
  • a modular exponentiation with a base, an exponent and a module is broken down into a multitude of three-operand additions.
  • the three operands include a moduloperand N, a multiplicand operand C and an intermediate result operand Z.
  • By appropriate shifting / weighting of the three operands before the addition one can be achieved by a multiplication look-ahead algorithm and a reduction algorithm. Look-ahead algorithm accelerated multiplication / reduction can be performed.
  • FIG. 7 shows a section of the adder, which to a certain extent represents the heart of the cryptography processor, which is shown in DE 3631992 C2. 7 shows two successive bit slices to calculate the two sum bits i-1 and i, namely from the three input operand bits Ci, Nj . , Zi or Ci_ ⁇ , Ni_ ⁇ , Z ⁇ _ ⁇ or from C_ 2 , Nj . - 2 and
  • the three-operand addition of C, N, Z is broken down into a two-stage operation when viewed at the bit level.
  • a three-bit half adder 80 is provided for carrying out the first stage of the operation, a two-bit full adder 81 being connected downstream of each three-bit half adder 80.
  • the three-bit half adder delivers two output bits Xi, yi, the output bits x if y being fed into the downstream two-bit full adders as shown in FIG. represents is.
  • the low-order bit yi at the output of the three-bit half adder becomes the high-quality bit of the one-order lower three-bit half adder stage (xi-i) in the two-bit Full adder 81 combined to calculate a sum bit 82 and a carry bit 83.
  • the three-operand addition is therefore divided into two sections. In the first section, a sum of the three bits of the operands is formed at each binary position. The sum can take the values from 0 to 3 (in decimal notation). The sum can therefore be represented in binary form with the two bits x, y. Since the sum is formed at every point, two new numbers can be put together from the two sum bits.
  • the two numbers are added in the usual way by the two-bit full adder 81.
  • the interconnection such that a two-bit full adder always receives two output bits from two different three-bit half adders as input, leads to an extension of the arithmetic unit by one bit.
  • the three-operand ⁇ ddierer shown in Fig. 7 is problematic in that neither a fuse of the input operands C, N, Z, y intended nor a backup of the "intermediate operands" x. This is problematic in that BE ⁇ Sonders in the In the normal case in which all circuits are implemented in CMOS logic, switching a bit from 0 to 1 or from 1 to 0 results in a current pulse which begins when a bit state is switched over Static state no current, but in the switched state they have a current consumption. This current consumption can be determined by a performance analysis. In this way, it is basically possible to derive information about C, N, Z, for example in order to draw conclusions about the secret key that is used in an RSA Operation is used.
  • An attacker could determine, for example, by recording the current profile whether a switch from 0 to 1 or from 1 to 0 has taken place. In the case of an unsecured circuit, a bit changeover would always occur if a current peak can be seen in the current profile. An attacker can therefore understand the entire switching behavior of an arithmetic unit using the current profile. The attacker then only needed a single bit in an entire sequence in order to be able to reconstruct from it whether the switchover from a "1" to a "0" or vice versa took place.
  • CMOS circuits also have the property that switching from 0 to 1 entails a different current consumption than switching from 1 to 0. In this case, an attacker can immediately see which bits are processed in the arithmetic unit by comparing two different current peaks have been.
  • each signal path is carried out twice.
  • a signal x is processed normally on the first signal path.
  • the second signal path integrated in the same chip does not process the signal x, but the complementary signal * x. This means that whenever there is a transition from 0 to 1 in the signal line, for example, there is a complementary transition in the other line, that is to say the second “rail”.
  • Each data cycle is preceded by a preparation cycle in which, in the case of precharge, both rails, for example x and x, are precharged to "1" in order to then feed complementary input signals to be processed in the data mode into the two rails. that exactly the same number of transitions takes place from a data cycle to a preparation cycle or from a preparation cycle to a data cycle. If the preparation mode is executed as predischarge mode, all input data are not set to 1 in the preparation mode as in the pre-charge initialized, but "pre-discharged" to 0. Then exactly the same number of transitions takes place from a preparation cycle to a data cycle and vice versa.
  • a data cycle alternates with a so-called preparation cycle.
  • bit Ci is equal to 0 or 1
  • Ci is complementary to bit C.
  • preparation cycle that follows the data cycle in the case of a pre-charge as preparation mode, both lines are charged to, for example, Vdd, which could, for example, correspond to the logic state “1”. Both dual-rail lines therefore have the same value in preparation mode.
  • both lines Ci and Ci may be brought to the potential of Vss, which typically is the ground potential, the ground potential corresponds to 'the present example, a logic "0".
  • VSS typically is the ground potential
  • Vdd would correspond to a logical "0".
  • bits x A and yi or ij would have to be . and yi-i are also fed in dual-rail technology with precharge to the corresponding downstream 2-bit full adders 81, with a data clock always following a preparation clock. On the output side, the carry bits C 83 and the sum bits 82 would then also be led out of the 2-bit full adder using dual-rail technology with pre-charge / pre-discharge.
  • a 3-operand addition which is carried out by the 3-operand adder, which is shown in detail in FIG. 7, consists in adding a first summand C to a second summand Z and finally the module N depending on the look - add or subtract ahead rule. As has been carried out, these operations must be carried out safely by the adder against power attacks.
  • the object of the present invention is to provide a half adder which is safe on the one hand and on the other hand involves a tolerable amount of space.
  • the present invention is based on the finding that the 3-bit half adder z. B. in a bit slice of a complete 3-operand adder is not carried out in complete dual-rail technology, that is to say it is implemented twice on a circuit, but instead a "one-hot" implementation of the half adder instead is used, which leads to the fact that the half adder can be made more space-saving and, depending on the embodiment, nevertheless achieves adequate security against power attacks.
  • the output stage comprises a first output and a second output, wherein the output bit can be output at the first output in a data mode, and an inverted version of the output bit can be output at the second output in the data mode, and the output stage is also effective to to bring the first output and the second output to the same preparation potential in a preparation mode, the preparation potential differing from the computing potential.
  • the half adder according to the invention is space-saving in that the switching stage only has to calculate an output bit, and it depends on the implementation whether the switching stage supplies the output bit itself or the inverted version of the output bit. It is clear that the requested information is contained in both the output bit and the inverted output bit.
  • the corresponding complementary bit which is not calculated by the switching stage, is then generated in the output stage, specifically in the preparation mode, that is to say in the pre-charge or pre-discharge mode.
  • the output stage specifically in the preparation mode, that is to say in the pre-charge or pre-discharge mode.
  • only one output bit of the output stage namely either the output bit itself or the inverted version of the output bit compared to the precharge state, is then reloaded in the data mode, so that in the data mode the half adder outputs a bit that has been calculated by the switching stage and compared to the precharge mode, while the other bit in the data mode has the same value as in the preparation mode and has already been generated in the preparation cycle preceding the data cycle.
  • the circuit according to the invention saves space in that the switching stage calculates the inverted bit or the non-inverted bit depending on the implementation and does not have to calculate both bits.
  • the second bit is then generated in the dual-rail pre-charge / pre-charge output stage.
  • the circuit according to the invention is also advantageous in that it can be implemented with few transistors.
  • the circuit according to the invention is also advantageous in that it enables high flexibility.
  • a separate switching stage is provided for each output bit.
  • Current security is already achieved when the number of transistors in one path in one switching stage is equal to the number of transistors in other paths in the same switching stage.
  • the transistors do not have to be identical from one switching stage to the next switching stage. Any half-adder rules for individual bits can therefore be implemented without there being a transistor overhead to the effect that e.g. B. all switching stages must have the same number of transistors.
  • the circuit according to the invention is low in cross-current and, in the ideal case, even free of cross-current, since only recharges from a single output node of the output stage are required.
  • an output bit is always calculated to a certain extent in the preparation mode, whereas in data mode only a single bit of the two output bits of an output stage has to be reloaded.
  • This transshipment is det without cross current from high potential (e.g. Vdd) to low potential (Vss) and also has a low power consumption compared to the case in which two output bits always have to be reloaded.
  • the circuit according to the invention is therefore not only low in cross-current but also low in terms of its overall power consumption, which is particularly advantageous for applications in which, for example, a chip card has no self-sufficient voltage supply in the form of a battery, such as, for. B. Contactless applications.
  • the circuit according to the invention can also be implemented inexpensively since the individual stages do not have to be implemented using complete CMOS technology. Instead, only NMOS transistors or PMOS transistors are sufficient for the individual stages. However, both transistor types are not absolutely required in all stages, as is the case with a complete CMOS design, in which a corresponding complementary transistor (NMOS transistor) is always assigned to a PMOS transistor.
  • the circuit according to the invention is also flexible in that the computing potential which is switched through to the output by the switching stage in accordance with the input operands can be the high potential Vdd or the low potential Vss. If the high potential Vdd is selected for the computing potential, the other potential, that is to say the low potential Vss, must be used for the preparation potential in the output stage. If, on the other hand, the low potential Vss is used as the computing potential in the switching stage, then a preparation potential must be used in the output stage that differs from the computing potential. In the latter case, this would be the high potential Vdd.
  • the half adder according to the invention thus contributes to a safe, powerful and area-minimal 3-operand adder.
  • the operands on the 3-operand Arithmetic unit are typically in memory elements such.
  • B. SRAM cells are stored and are led in dual-rail execution to the arithmetic unit to achieve security against power attacks. Since the full adder that follows the half adder is compact in dual
  • Rail pre-charge logic can be executed, the connections between the half and full adder can in turn be implemented in dual rail logic with pre-charge / pre-discharge technology.
  • the area-minimal and safe half-adder according to the invention is based on the "one-hot" implementation. Exactly one path is switched for each bit pattern present in each switching stage. In the case of two output bits, two paths are therefore switched for each bit pattern of the three operands present. These two Paths are necessary to calculate one bit for the output stage, while the other
  • Bit is generated to a certain extent by the output stage itself, i. H. is "taken over” from the previous preparation mode. For any bit pattern present at the input, the total sum of the capacities to be reloaded is the same. This means that the bit pattern present cannot be recognized from the outside during the switching processes in the half adder.
  • the paths to be switched with as few transistors as possible in order to achieve the highest possible power can be done individually for each switching stage, depending on the half adder specification, so that not one switching stage that has a more complex half adder specification "dictates" the transistor number for another switching stage that has a less complex half adder specification.
  • the half-adder according to the invention is used in its preferred form as a 3-operand adder with three input operands in order to generate two output bits in binary weighting.
  • any N-operand adders can be used, for example, for execution one not just three times but an N-fold ZDN algorithm can be used.
  • an N-operand adder which is constructed from a plurality of 3-operand adders according to the invention connected in series, the performance per chip area can be increased once again, with an area overhead that is disproportionate to the performance gain.
  • the half adder according to the invention also has the potential to be used as a direct N-operand adder without the use of 3-operand adder elements connected in series by other half adder regulations for e.g. B. more than two output bits e.g. B. according to corresponding truth tables for a 7-operand adder, for example.
  • a 7-operand adder has a maximum of seven ones if all seven input operand bits are equal to 1.
  • the decimal number 7 can be represented by a total of three output bits in binary weighting.
  • a 7-operand half adder would therefore only need three output bits.
  • 1 shows a block diagram of a half adder with an arbitrary number of input operands and a corresponding number of output bits
  • 4 shows a schematic illustration of switching stages with different computing potentials
  • 5a shows an example of paths through the switching stages for a specific operand bit pattern
  • 5b shows an exemplary representation of different paths through switching stages for an alternative operand bit pattern
  • FIG. 6 shows a block diagram at transistor level for a preferred half adder according to the present invention with a dual-rail input stage, two switching stages and two output stages;
  • FIG. 1 shows a schematic block diagram of a half adder according to the invention for adding bits from a plurality of input operands, which are shown in FIG. 1 in such a way that they are fed to an input stage 10.
  • the input operands are designated by C, N, Z in FIG. 1, it being possible for any further number of input operands to be supplied to the input stage 10.
  • the input stage is primarily effective in order to distribute the input operands to n switching stages 12a, 12b, 12c shown in FIG. 1.
  • Switching stage 12a is assigned to output bit 0, which is also referred to as bit SUM0.
  • the complementary bit SUM0 is also shown on the output side in FIG. 1.
  • Switching stage 12b is assigned to output bit 1, which is also referred to as bit SUM1.
  • the complementary bit SUM1 is also shown on the output side in FIG. 1.
  • the switching stage 12c is provided for the output bit n. This is also called bit SUMn.
  • the complementary bit SUMn is also shown on the output side in FIG. 1.
  • Each switching stage 12a, 12b, 12c is assigned an output stage 14c, as is known from Fig. 1 can be seen.
  • the output stage 14a is arranged downstream of the switching stage 12a for bit 0.
  • the output stage 14b is arranged downstream of the switching stage 12b for bit 1.
  • the output stage 14c is arranged downstream of the switching stage 12c for the bit n.
  • each switching stage can also be supplied with a computing potential for this switching stage, as is represented by the computing potential connections 16a, 16b and 16c.
  • each switching stage can be supplied with its own computing potential, which in a preferred exemplary embodiment is either a high potential Vdd or a low potential Vss.
  • Vdd high potential
  • Vss low potential
  • the switching stages 12a, 12b, 12c are effective in feeding the arithmetic potential 16a, 16b, 16c supplied to them to an output 18a, 18b, 18c, the voltage potential supplied to the output 18a, 18b, 18c being the output bit or an inverted version of the Represents output bits.
  • the output bit is interpreted as a logical bit, that is to say as a logical "0" or as a logical "1". If the computing potential 16a is supplied to the output 18a of the switching stage 12a due to a conductive connection formed by the switching stage 12a from the input 16a to the output 18a, then the voltage value present at the output 18a can either represent the logical output bit SUM0 of the downstream output stage 14a or that display inverted bits SUM0, depending on the selected implementation.
  • the output stage 14a receives the signal at the output 18a of the switching stage as an input signal and as a further input signal a preparation potential at a connection 20a.
  • each output stage comprises two outputs 22a, 22b.
  • the output stage 14b for bit 1 also comprises two outputs 24a, 24b.
  • the output stage 14c for the bit n also comprises two outputs 26a, 26b.
  • the output 22a of the output stage 14a for the bit 0 supplies the inverted output bit SUM0.
  • the output 22b of the output stage 14a supplies the non-inverted output bit SUM0.
  • the half adder shown in FIG. 1 further comprises a control device 28 for setting a data mode and a preparation mode, wherein either a pre-charge mode or a pre-discharge mode can be operated in the preparation mode.
  • a control device 28 for setting a data mode and a preparation mode wherein either a pre-charge mode or a pre-discharge mode can be operated in the preparation mode.
  • the presence of a data mode or a preparation mode is signaled to the output stages 14a, 14b and 14c by control lines 28a, 28b, 28c.
  • the input stage 10 can also be operated in the data mode or preparation mode. This signals the control device 28 of the input stage via a further control line 28d.
  • the output bit is in non-inverted form at an output of an output stage, i.e. SUM0, SUM1 or SUMn.
  • an output bit In data mode, there is an inverted version of the output bit at the other output, i.e. SUM0, SUM1 or SUMn.
  • the output stages are also effective in order to apply the same preparation potential to one output and to the other output in a preparation mode, which potential is supplied to the output stage via the corresponding input 20a, 20b or 20c. al, which is supplied to an output stage, for example via the input 20a, differs from the computing potential which the switching stage which is connected upstream of the output stage under consideration, e.g. B. is supplied via the input 16a.
  • the preparation mode is signaled to the individual output stages by the control device 28 via the control lines 28a, 28b or 28c.
  • Vss The supply of the low potential Vss as a preparation potential leads to a pre-discharge in the output stage (e.g. 14a), so that both in the preparation mode
  • Bits SUM0, SUM0 have a low voltage state and thus represent a logic “0” in the example shown here.
  • switching stage 12a then supplies the high computing potential Vdd to output stage 14a as bit SUM0 or bit SUM0, depending on the bit pattern of the three input operand bits, so that then, in data mode, only one output bit SUM0 or SUM0 is reloaded , H. is changed from the logical state "0" to the logical state "1".
  • Vdd is taken as the computing potential and Vss is taken as the preparation potential
  • PMOS technology is preferred as transistor technology, since the PMOS transistors switch through a high computing potential more favorably. If, on the other hand, the low potential Vss is taken as the computing potential and the high potential Vdd is consequently taken as the preparation potential, a precharge mode takes place in the output stage, so that the two output bits SUMO, SUMO of the output stage 14a , represent, for example, a logical "1".
  • the switching stage supplies the low potential Vss either as a bit or bit to the output stage 14a, which then only reloads one of the two output bits SUMO or SUMO into the low state, ie from a logical "1" changed to a logical "0".
  • NMOS technology is preferred in the switching stage as transistor technology, since this is best suited for switching through low voltage potentials.
  • 3 shows in table form a preferred half-adder rule for a 3-operand adder in order to calculate corresponding output bits SUM1, SUMO for each bit pattern of the input operands Ci, Ni and Zi. 3 is designed as a "ones counter", the number of ones being represented by the bits SUMO, SUM1 in binary weighting.
  • the two output bits SUM1 and SUMO thus represent a binary number, the bit SUM1 is the MSB of this binary number, and where the bit SUMO is the LSB of this number, the two output bits SUMl and SUMO therefore represent the number of ones of each bit pattern of the input operands in binary coding. Only in the case in which all three input operands have a logical "1", both bits SUM1 and SUMO are set, which corresponds to the binary number "11", which is equal to the number 3 in decimal representation.
  • Half adder is built, so to represent the maximum case in which all seven operands have a logical "1", requires a number of three output bits, since the binary number "111" corresponds to the decimal number "7".
  • bits SUM1, SUMO can be set as desired, so that a bit combination of SUMO and SUMl as "11" indicates, for example, that the number of zeros in the input bits C, N, Z is 3, which is equivalent to the fact that the number of ones in C, N, Z is 0 for the particular bit combination under consideration.
  • bits SUM1, SUMO can be made.
  • further (redundant) bits e.g. B. SUM2, SUM3, ... can be used.
  • Fig. 4 shows in schematic form a preferred embodiment of a switching stage 12a and 12b for a 3-operand adder. 4 also shows the case in which the two switching stages 12a, 12b have different computing potentials 16a, 16b.
  • the switching stage 12a has the low potential Vss as the computing potential.
  • the switching stage 12b has the high potential Vdd as the computing potential 16b.
  • the input operands first operand, second operand, third operand
  • an operand causes a branching of the path or not. As shown on the right in FIG. 4, a path is continued horizontally if the operand is 0. If, on the other hand, the operand is equal to a logical "1", as is also shown on the right in FIG. 4, the path continues in a 45 ° direction.
  • the computing potential can never be present at both outputs, since the switching stage is designed in such a way that a clear path is obtained from the computing potential connection 16a, for example, to a single output 18a.
  • 5a shows the example in which the first operand is 1, the second operand is 0 and the third operand is 1.
  • a first switching node 50a is traversed in such a way that a 45 "branch is taken since the first operand is 1.
  • a second switching node 50b is processed in such a way that the path is continued horizontally since the second operand is 0.
  • a third switching node 50c is passed through in such a way that a 45 ° branch is taken again, since the third operand is 1. This leads to the fact that the computing potential Vss determines the non-inverted bit of the switching stage on the output side.
  • a voltage state Vss for the non-inverted bit causes the output stage 14b downstream of the switching stage 14a, which had both outputs 22a, 22b in a "1" state, to discharge the non-inverted bit SUMO (22b) to the low state, while the inverted bit SUMO 22a remains high.
  • the switching stage 14b has the high potential Vdd as the computing potential.
  • a 45 ° branch is taken in a first branching node 52a.
  • a second branch node 52b which corresponds to the second operand, a horizontal branch is taken.
  • a 45 ° branch is taken in a third branch node 52c, which corresponds to the third operand, so that finally the high voltage potential Vdd is present at output 18b, which corresponds to the non-inverted bit.
  • the high voltage potential at the output 18b means that in the output stage 14b of FIG. 1 the non-inverted bit SUMl 24b is set from its low state, which it had in the preparation mode, to the logic high state, while the inverted bit SUMl in its state already existing from the preparation mode, ie the low state "0" is left.
  • the switching stage only has to calculate one bit, that is to say the inverted or the non-inverted bit, while the second bit is then taken over by the output stage from the previous preparation mode.
  • 5b shows an alternative bit combination of the three operands, namely the case in which all three operands are equal to 1.
  • path 14a the path shown in FIG. 5b is taken, which is only 45 °
  • each path includes a shift stage by the same number of branching points, but the number of branch points from switching stage to switching stage need not necessarily be the same.
  • Such an inequality only provides the attacker with the information that switching has taken place in two switching stages. However, this information is of no use to the attacker, since this fact is clear anyway. However, an attacker cannot recognize which path in a switching stage has been switched through in order to be able to draw conclusions from the values of the three input operands.
  • FIGS. 5a and 5b also show the assigned preparation mode on the right, which is determined by the preparation potential assigned to an output stage, which differs according to the invention from the computing potential. Because of the high computing potential Vdd, the switching stage 14b has the consequence that the assigned output stage has a different preparation potential, namely the low potential Vss, if the circuit only provides two different potentials.
  • the switching stage 14a results in a high preparation potential due to the low computing potential Vss.
  • Figure 6 shows module preferred transistor implementations of a dual rail input stage (block 10 in Figure 1), switching stages (blocks 12a, 12b of Figure 1) and output stages (blocks 14a, 14b of Figure 1).
  • the dual rail input stage in FIG. 6 initially comprises six inputs for the three operands Z, N and C as non-inverted bits and inverted bits. The bits are thus fed to the dual-rail input stage, as can be seen in FIG. 6.
  • the input stage also includes, as indicated by line 28d in FIG. 1, a precharge signal Vss to drive the input stage into a precharge state in the preparation mode in which all six inputs are the same Potential. This potential is, as can be seen from the voltage supply situation in FIG. 6, the high potential, since the dual rail input stage is supplied with the high potential Vdd at various points.
  • the transistors in FIG. 6, which are designed as PMOS transistors, are provided with the low potential Vss at their gate, so that they switch through, as can be seen from FIG. To put bit nodes and all nodes for inverted operand bits to the potential Vdd.
  • each dual-rail input stage comprises four transistor disturbances 600, 601, 602 and 603, the input stage assigned to the first operand being set out below only by way of example and representative of the second and third operands.
  • the two transistors 601, 600 are used, in the preparation mode in which the precharge signal is active, in which Vss is present on line 28d, the high voltage Vdd present on one side of the two transistors to the output nodes 604, 605 for to set the inverted first operand bit and the non-inverted first operand bit. This immediately blocks the two transistors 603, 602, since they have the high potential Vdd at their respective gate connection.
  • line 28d is at high potential Vdd, which means that the two transistors 601 and 600 have no effect.
  • the two transistors 602, 603 serve to stabilize the conditions in the data mode. For example, if the operand bit N is high, the transistor 602 is blocked so that the potential Vdd on the one side of the transistor 602 cannot reach the node 604. Namely, node 604 is because it has the inverted bit
  • N of the first operand Represents N of the first operand, at a low potential.
  • This low potential means that the transit stor 603 is opened. In the ideal state, however, no current flows because node 605 is also at Vdd. However, transistor 603 serves to stabilize the high potential on node 605 and, if necessary, to recharge it if leakage currents occur at any point.
  • the dual-rail input stage thus serves to generate equal potentials on the bit lines in the preparation mode and to stabilize the states on the bit lines in the data mode.
  • the dual-rail input stage serves to distribute the operand bits to the switching stages via distribution rails 611, 612 and 613.
  • the two switching stages are designed such that they are supplied with the high potential Vdd as the computing potential, as shown by the voltage leads 16a for the first switching stage and 16b for the second switching stage.
  • the switching stage for bit 0, or for the bit for generating bit 0 (SUMO 22b or SUMO 22a), consists of a total of ten transistors 620-629, two transistors always forming a branch point of the branch points shown in FIGS. 5a and 5b form.
  • the switching stage for bit 1 is analogous to this
  • transistors 630 and 631 correspond to branch point 52a.
  • Transistors 632, 633 correspond to branch point 52b of FIG. 5a.
  • the two transistors 634 and 635 correspond to the branch point 52d in FIG. 5a.
  • transistors 636 and 637 correspond to branch point 52c.
  • the two transistors 620 and 621 correspond to the branch point 50a of FIG. 5a.
  • Transistors 622, 623 correspond to branch point 50b of FIG. 5a.
  • Transistors 626 and 627 correspond to branch point 50c of FIG. 5a.
  • the switching stages further comprise an output rail shown at 639 in FIG. 6, which at the same time represents the input rail for the downstream output stages.
  • the two right lines of the output rail 639 are the top one
  • Output stage 14b assigned, while the two left lines of the output rail 639 are assigned to the lower output stage 40a. It should be noted that the transistors in the switching stages are effective to only move a path from the connection 16b or 16b to one of the lines of the
  • each path comprises the same number of transistors, regardless of which path is set by a switching stage depending on the bit pattern.
  • a branch point is implemented by using a complementary operand bit in addition to the non-inverted operand bit.
  • This enables simple implementation in that only two transistors are used and that no examination of the bit is necessary to determine whether the bit has a 0 or a 1.
  • an implementation could also be used in which only single-rail operands are fed to the switching stages.
  • each branch point would include additional means to examine whether the bit supplied is a 1 or a 0 to switch a corresponding path.
  • the half adder according to the invention could also be used for single-rail-dual-rail conversion on the input side convert existing single-rail data into output-side dual-rail data, the output-side dual-rail data also being derived from the input-side single-rail data in accordance with the half adder rule.
  • the functionality of the two transistors acting as switches, for example 620 and 621, which represent the branch point 50a in FIG. 5a, can be seen if it is assumed that in data mode only one transistor switches through while the other transistor blocks, so that only ever a path is taken either up or down, but never two paths at a time.
  • the transistors 620 and 621 are both blocked in the preparation mode, so that no cross currents can flow. Due to the fact that a precharge is used in the input stage and PMOS transistors are used in the switching stage, the switching stage is thus automatically deactivated in the preparation mode to the effect that none
  • Cross currents can flow from the nodes 16a and 16b. If the dual-rail input stage were subjected to a discharge operation, it would be preferred to implement the transistors of the switching stages in NMOS technology with the appropriate computing potential (Vss in this case).
  • the transistor implementation of the output stage 14a which has a total of four transistors 640, 641, 642 and 643, is discussed below as an example. Since the high potential Vdd is taken as the computing potential 16a, 16b, the low potential Vss 20a is used in FIG. 6 as the preparation potential. Accordingly, the low potential Vss is also used as the preparation potential in the second output stage 14b, that is to say a potential which differs from the computing potential Vdd.
  • the output stages 14a, 14b are supplied with a pre-discharge signal in the preparation mode, which is a high voltage signal Vdd due to the design of the transistors 640-643 in NMOS technology. In the data mode, on the other hand, the low potential Vss is present on the line 28a, 28b in order to block the discharge transistors 641, 640.
  • Vdd is present on the lines 28a, 28b (which in the actual implementation are designed as a common line).
  • the transistors 643, 642 are therefore in the preparation mode
  • the discharge transistors 640 and 641 are blocked.
  • one of the nodes 22a, 22b is closed due to the fact that the switching stage has the potential Vdd 16a either on the nodes 22a or turned on to node 22b, high.
  • node 22b is high results in transistor 642 being turned on to safely set node 22a to the low potential Vss.
  • transistor 643 is blocked, which in turn means that the potential Vss, which is present on one side of transistor 643, cannot be present at node 22b in that node 22b remains high during the Node 22a certainly remains low so that a clear result is obtained, namely that the SUMO bit is high while the complementary SUMO bit is low.
  • the output stage therefore has, in addition to the functionality of delivering to a certain extent the bit not determined by the switching stage in data mode (due to the preceding preparation tion mode) also the functionality to stabilize both bits and in particular the bit not supplied by the switching stage against charge leaks in data mode.
  • the preferred implementation of the output stages according to FIG. 6 according to the invention has the advantage that no cross currents flow, so that the half-adder circuit according to the invention, in addition to its property of area efficiency and the property of high performance, also has low power consumption.

Landscapes

  • Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Pure & Applied Mathematics (AREA)
  • Computational Mathematics (AREA)
  • Mathematical Analysis (AREA)
  • Mathematical Optimization (AREA)
  • General Engineering & Computer Science (AREA)
  • Computing Systems (AREA)
  • Mathematical Physics (AREA)
  • Logic Circuits (AREA)
  • Detection And Correction Of Errors (AREA)

Abstract

Ein erfindungsgemäßer Halbaddierer zum Addieren von Bits von zumindest zwei Eingangsoperanden, um zumindest zwei Ausgabebits zu erhalten, umfaßt neben einer Eingangsstufe (10) eine Mehrzahl von Schaltstufen (12a, 12b, 12c) und jeder Schalstufe nachgeordnet eine Ausgabestufe (14a, 14b, 14c). In einem Datenmodus sind die Schaltstufen betreibbar, um entweder ein Bit oder ein invertiertes Bit an einem Ausgang (18a, 18b, 18c) zu der Ausgabestufe liefert, die der entsprechenden Schaltstufe nachgeordnet ist. Die Ausgabestufe ändert dann auf der Basis des von der entsprechenden Schaltstufe erhaltenen Bits ein Ausgabebit gegenüber dem vorausgehenden Vorbereitungsmodus und ergänzt das komplementäre Bit aus dem vorausgehenden Vorbereitungsmodus. Die Halbaddiererschaltung ist flächeneffizient, da sie ohne komplette Dual-Rail-Logik auskommt und dennoch sicher gegen kryptographische Attacken ist.

Description

Beschreibung
Halbaddierer
Die vorliegende Erfindung bezieht sich auf Halbaddiererschaltungen und insbesondere auf Halbaddiererschaltungen zum Addieren von Bits von zumindest drei Eingangsoperanden, um zumindest zwei Ausgabebits zu erhalten.
Die DE 3631992 C2 offenbart einen Kryptographieprozessor zum Durchführen des RSA-Public-Key-Kryptosystems . Hierbei wird eine modulare Exponentiation mit einer Basis, einem Exponenten und einem Modul in eine Vielzahl von Drei-Operanden- Additionen zerlegt. Die drei Operanden umfassen einen Modulo- peranden N, einen Multiplikanden-Operanden C und einen Zwischenergebnis-Operanden Z. Durch entsprechende Verschie- bung/Gewichtung der drei Operanden vor der Addition kann eine durch einen Multiplikations-Look-Ahead-Algorithmus und einen Reduktions-Look-Ahead-Algorithmus beschleunigte Multiplikati- on/Reduktion durchgeführt werden.
Fig. 7 zeigt einen Ausschnitt aus dem Addierwerk, das gewissermaßen das Herz des Kryptographieprozessors darstellt, der in der DE 3631992 C2 dargestellt ist. Im einzelnen zeigt Fig. 7 zwei aufeinanderfolgende Bit-Slices, um die zwei Summenbits i-1 und i zu berechnen, und zwar aus den drei Eingangsoperandenbits Ci, Nj., Zi bzw. Ci_ι, Ni_ι, Zι_ι bzw. aus C_2, Nj.-2 und
Zi-2-
Die Drei-Operanden-Addition von C, N, Z wird, auf Bitebene betrachtet, in eine zweistufige Operation zerlegt. Zur Ausführung der ersten Stufe der Operation ist ein Drei-Bit- Halbaddierer 80 vorgesehen, wobei jedem Drei-Bit-Halbaddierer 80 ein Zwei-Bit-Volladdierer 81 nachgeschaltet ist. Der Drei- Bit-Halbaddierer liefert zwei Ausgangsbits Xi, yi, wobei die Ausgangsbits xif y in die nachgeschalteten Zwei-Bit- Volladdierer so eingespeist werden, wie es in Fig. 7 darge- stellt ist. Im einzelnen wird in jedem Zwei-Bit-Volladdierer eines Bit-Slices das niederwertige Bit yi am Ausgang des Drei-Bit-Halbaddierers mit dem hochwertigen Bit der um eine Ordnung niedrigeren Drei-Bit-Halbaddiererstufe (xi-i) in dem Zwei-Bit-Volladdierer 81 kombiniert, um ein Summenbit 82 sowie ein Übertragbit 83 zu berechnen. Die Drei-Operanden- Addition wird also in zwei Abschnitte unterteilt. Im ersten Abschnitt wird an jeder binären Stelle eine Summe der drei Bits der Operanden gebildet. Die Summe kann die Werte von 0 bis 3 (in Dezimaldarstellung) annehmen. Die Summe ist also binär mit den zwei Bits x, y darstellbar. Da die Summe an jeder Stelle gebildet wird, können aus den zwei Summenbits zwei neue Zahlen zusammengestellt werden.
Im zweiten Abschnitt werden die beiden Zahlen auf übliche Art und Weise durch den Zwei-Bit-Volladdierer 81 addiert. Die Verschaltung, derart, daß ein Zwei-Bit-Volladdierer immer zwei Ausgangsbits von zwei unterschiedlichen Drei-Bit- Halbaddierern als Eingabe erhält, führt zu einer Verlängerung des Rechenwerks um ein Bit.
Der in Fig. 7 gezeigte Drei-Operanden-Äddierer ist dahingehend problematisch, daß weder eine Sicherung der Eingangsoperanden C, N, Z noch eine Sicherung der „Zwischenoperanden" x, y vorgesehen ist. Dies ist dahingehend problematisch, daß be¬ sonders in dem normalen Fall, in dem alle Schaltungen in CMOS-Logik ausgeführt sind, das Umschalten eines Bits von 0 auf 1 bzw. von 1 auf 0 zu einem Stromimpuls führt, der beginnt, wenn ein Bit-Zustand umgeschaltet wird. Bekanntlich verbrauchen CMOS-Schaltungen im statischen Zustand keinen Strom. Im Umschaltzustand haben sie jedoch einen Stromverbrauch. Dieser Stromverbrauch ist durch eine Leistungsanalyse eruierbar. Damit ist es grundsätzlich möglich, Informationen über C, N, Z abzuleiten, um beispielsweise auf den geheimen Schlüssel Rückschlüsse zu ziehen, der in einer RSA-Operation verwendet wird. Ein Angreifer könnte beispielsweise durch Aufnahme des Stromprofils ermitteln, ob eine Umschaltung von 0 auf 1 oder von 1 auf 0 stattgefunden hat. Bei einer ungesicherten Schaltung würde immer dann eine Umschaltung eines Bits auftreten, wenn im Stromprofil eine Stromspitze erkennbar ist. Ein Angreifer kann daher das gesamte Umschaltverhalten eines Rechenwerks anhand des Stromprofils nachvollziehen. Der Angreifer brauchte dann lediglich noch ein einziges Bit in einer ganzen Sequenz, um daraus rekonstruieren zu können, ob die Umschaltung von einer „1" auf eine „0" oder umgekehrt stattgefunden hat.
Bestimmte CMOS-Schaltungen haben ferner die Eigenschaft, daß die Umschaltung von 0 auf 1 einen anderen Stromverbrauch mit sich zieht als die Umschaltung von 1 auf 0. In diesem Fall sieht ein Angreifer durch einen Vergleich von zwei unterschiedlichen Stromspitzen unmittelbar, welche Bits im Rechenwerk verarbeitet worden sind.
Als Abwehrmaßnahme gegen solche Leistungsanalyseangriffe wur- de vorgeschlagen, eine sogenannte Dual-Rail-Technik einzusetzen. Bei der Dual-Rail-Technik wird prinzipiell betrachtet jeder Signalweg doppelt ausgeführt. Auf dem ersten Signalweg wird beispielsweise ein Signal x normal verarbeitet. Auf dem zweiten, in demselben Chip integrierten, Signalweg wird nicht das Signal x verarbeitet, sondern das komplementäre Signal *x . Dies führt dazu, daß immer dann, wenn in der Signalleitung ein Übergang von beispielsweise 0 auf 1 stattfindet, in der anderen Leitung, also der zweiten „Rail", ein komplementärer Übergang stattfindet. Für jeden Bitübergang finden da- her auf beiden Leitungen immer beide Übergänge statt. Dies führt dazu, daß für Schaltungen, bei denen Übergänge von 0 auf 1 und 1 auf 0 unterschiedlich viel Strom brauchen, nicht mehr eruierbar ist, ob ein Übergang von 0 auf 1 oder von 1 auf 0 stattgefunden hat. Dies liegt daran, daß das Strompro- fil für jeden Schaltungsübergang eine Spitze enthält, die die Überlagerung des Stromverbrauchs der beiden Rails ist. Die Dual-Rail-Technik liefert eine hohe Sicherheit, jedoch mit dem Nachteil, daß alle Schaltungen normalerweise doppelt ausgeführt werden müssen und daß der Leistungsverbrauch der gesamten Schaltung ebenfalls doppelt so hoch ist. Dafür ist die Schaltung jedoch bereits in gewissem Umfang gegenüber Lei- stungsanalyseattacken immun.
Wird lediglich eine Dual-Rail-Technik eingesetzt, so ist anhand des Stromprofils immer noch zu erkennen, ob ein bestimmtes Bit von 0 auf 1 bzw. von 1 auf 0 übergegangen ist oder im Vergleich zum vorigen Taktzyklus gleichgeblieben ist. Im Falle eines Bitübergangs ist nämlich eine Leistungsspitze ersichtlich. Die Leistungsspitze ist jedoch nicht ersichtlich, wenn ein Bit von einem Zyklus zum nächsten beispielsweise auf 1 oder auf 0 geblieben ist, sich also nicht verändert hat. Zur Abwehr von Angriffen, die auf diesem Effekt basieren, wurde vorgeschlagen, die Dual-Rail-Technik um einen Prechar- ge/Predischarge-Modus zu ergänzen. Die Schaltung wird abwechselnd in einem Datenmodus und einem Vorbereitungsmodus (Precharge/Predischarge) betrieben. Jedem Datenzyklus geht ein Vorbereitungszyklus voraus, in dem im Falle von Precharge beide Rails, also beispielsweise x und x auf „1" vorgeladen werden, um dann, in dem Datenmodus, zu verarbeitende komplementäre Eingangssignale in die beiden Rails zu speisen. Dies führt dazu, daß immer, von einem Datenzyklus zu einem Vorbe- reitungszyklus oder von einem Vorbereitungszyklus zu einem Datenzyklus, genau die gleiche Anzahl von Übergängen stattfindet. Ist der Vorbereitungsmodus als Predischarge-Modus ausgeführt, so werden im Vorbereitungsmodus alle Eingangsdaten nicht, wie im Precharge, auf 1 initialisiert, sondern auf 0 „vorentladen". Dann findet ebenfalls von einem Vorbereitungszyklus zu einem Datenzyklus und umgekehrt genau dieselbe Anzahl von Übergängen statt.
Wie es bereits ausgeführt worden ist, wird für die Ausführung von modularen Operationen, wie z. B. Addition oder Multiplikation, beispielsweise im Rahmen kryptographischer Algorithmen, wie RSA oder elliptische Kurven, ein Drei-Operanden- Addierer benötigt. Diese Operationen müssen aus den verschiedenen Gründen vom Addierwerk sicher gegenüber Power-Attacken ausgeführt werden. Da kryptographische Berechnungen äußerst rechenaufwendig sind, muß das Addierwerk eine hohe Leistung haben. Da insbesondere in der Kryptographie lange Operanden verarbeitet werden müssen, wobei die Operandenlänge bei elliptischen Kurven im Bereich zwischen 100 und 200 Bits liegt und im Bereich von RSA zwischen 1.024 und 2.048 Bits liegt, hat das Rechenwerk selbst eine große Bitlänge, um die an das Rechenwerk gestellten Anforderungen nach Schnelligkeit zu erreichen.
Um das in Fig. 7 gezeigte Rechenwerk, das ausschnittweise zwei Bit-Slices eines größeren Rechenwerks mit beispielsweise 2300 Bit-Slices zeigt, gegenüber kryptographischen Attacken sicherer zu machen, ist es zunächst erforderlich, die Eingangsoperanden C, N, Z in Dual-Rail-Technik den 3-Bit- Halbaddierern 80 zuzuführen.
Eine noch bessere Sicherheit besteht darin, nicht nur eine
Dual-Rail-Technik anzuwenden, sondern eine Dual-Rail-Technik mit Precharge bzw. Pre-Discharge zu verwenden. Hierbei wechselt immer ein Datentakt mit einem sogenannten Vorbereitungstakt ab. In einem Datentakt ist beispielsweise das Bit Ci gleich 0 oder 1, während das komplementäre Bit, das auf der „zweiten Rail" zugeführt wird, und mit Ci bezeichnet wird, komplementär zu dem Bit C ist. In einem dem Datentakt nach- geordneten Vorbereitungstakt wird im Falle eines Precharge als Vorbereitungsmodus eine Aufladung beider Leitungen auf z. B. Vdd durchgeführt, was beispielsweise dem logischen Zustand „1" entsprechen könnte. Beide Dual-Rail-Leitungen haben im Vorbereitungsmodus somit den gleichen Wert. Im Falle eines Discharge könnten beide Leitungen Ci und Ci auf das Potential Vss gebracht werden, das typischerweise das Erdungspotential ist, wobei das Erdungspotential bei' dem vorliegenden Beispiel einer logischen „0" entspricht. Selbstverständlich kann Vss auch einer logischen „1" entsprechen. Dann würde Vdd einer logischen „0" entsprechen.
Konsequenterweise müßten dann die Bits xA und yi bzw. i-j. und yi-i ebenfalls in Dual-Rail-Technik mit Precharge zu den entsprechenden nachgeschalteten 2-Bit-Volladdierern 81 zugeführt werden, wobei wieder immer ein Datentakt einem Vorbereitungstakt folgt. Ausgangsseitig würden dann die Übertragbits C 83 und die Summenbits 82 ebenfalls in Dual-Rail-Technik mit Precharge/Pre-Discharge aus dem 2-Bit-Volladdierer herausgeführt werden.
So genügt es jedoch für eine optimale Sicherheit nicht nur, daß die Eingangsleitungen in die Elemente 80 und 81 und die Ausgangsleitungen aus den Elementen 80 und 81 in Dual-Rail- Technik ausgeführt sind. Statt dessen ist es ferner wichtig, daß auch die Schaltungen 80, 81 selbst als Dual-Rail- Schaltungen ausgeführt sind. Dies kann dadurch erreicht werden, daß der 3-Bit-Halbaddierer 80 und jeder 2-Bit- Volladdierer 81 doppelt vorhanden ist und so ausgebildet ist, daß der erste 3-Bit-Halbaddierer 80 beispielsweise mit den nicht-invertierten Operandenbits Ci, Ni und Z rechnet, um und y zu erhalten. Der zweite 3-Bit-Halbaddierer 80 für denselben Bit-Slice würde dann mit den invertierten Bits Ci, Ni und Zi arbeiten, um z . B. die invertierten Ausgangsbits x"i und y~i zu erhalten. Selbstverständlich sind jegliche
Kreuzkombinationen denkbar, so daß der erste 3-Bit- Halbaddierer so ausgebildet ist, um aus den nichtinvertierten Eingangsbits die invertierten Ausgangsbits zu berechnen und umgekehrt.
Dasselbe müßte für den 2-Bit-Volladdierer 81 durchgeführt werden, um eine optimal sichere Schaltung in einem Bit-Slice eines Langzahlrechenwerks für eine RSA-Berechnung mit Mo- dullängen von 1024 Bits, 2048 Bits etc. zu erreichen. Solche Rechenwerke werden zur Ausführung von modularen Operationen, wie z. B. Addition und Multiplikation, beispielsweise im Rah- men kryptographischer Algorithmen wie RSA oder elliptische Kurven benötigt. Eine 3-Operanden-Addition, die der 3- Operanden-Addierer, der in Fig. 7 ausschnittweise gezeigt ist, ausführt, besteht darin, einen ersten Summand C zu einem zweiten Summand Z hinzu zu addieren, und schließlich den Modul N je nach Look-Ahead-Vorschrift zu addieren oder zu subtrahieren. Diese Operationen müssen, wie es ausgeführt worden ist, vom Addierwerk sicher gegenüber Power-Attacken ausgeführt werden.
Es ist unmittelbar einsichtig, daß kryptographische Berechnungen äußerst rechenaufwendig sind. Daher besteht neben der Sicherheit auch die Anforderung an das Rechenwerk, daß es eine hohe Leistung hat, dahingehend, daß es möglichst wenig Re- chenzeit benötigt bzw. im Falle von begrenzten Ressourcen, wie beispielsweise auf einer Chipkarte, noch mit einer erträglichen Rechenzeit hochsichere Operationen ausführen kann.
Da die Arithmetik kryptographischer Operationen eine Lang- zahlarithmetik ist, hat, wie es ausgeführt worden ist, das
Rechenwerk selbst eine große Bitlänge, um überhaupt eine geforderte Leistung zu erreichen. So wird davon ausgegangen, daß jeder Bit-Slice einer Stelle eines Moduls entspricht, dahingehend, daß alle Stellen in entsprechende Hardware-Bit- Slices „abgebildet" sind. Lediglich diese maximal parallele
Ausführung garantiert in den meisten Fällen eine ausreichende Performance.
Im Hinblick auf die geforderte maximale Parallelität und an- dererseits im Hinblick auf die Kosten für den Chip, der ein solches Rechenwerk umfaßt, und auch im Hinblick auf andere an die Chipfläche angelegten Begrenzungen ist es zwingend notwendig, das Rechenwerk sehr flächensparend zu entwerfen. Es wird also prinzipiell ein Rechenwerk benötigt, das eine hohe Leistung hat, das außerdem sicher ist, und das eine minimale Fläche benötigt. Die vorstehenden drei Anforderungen widersprechen sich jedoch dahingehend, daß eine maximale Sicherheit durch Dual-Rail- Technik mit einem doppelten Flächenaufwand des Rechenwerks sehr teuer erkauft werden muß.
Die Aufgabe der vorliegenden Erfindung besteht darin, einen Halbaddierer zu schaffen, der einerseits sicher ist und andererseits einen erträglichen Flächenaufwand mit sich bringt.
Diese Aufgabe wird durch einen Halbaddierer gemäß Anspruch 1 gelöst .
Der vorliegenden Erfindung liegt die Erkenntnis zugrunde, daß der 3-Bit-Halbaddierer z. B. in einer Bit-Slice eines kom- pletten 3-Operanden-Addierers nicht in kompletter Dual-Rail- Technik ausgeführt wird, also doppelt auf einer Schaltung implementiert wird, sondern daß statt dessen gewissermaßen eine „One-Hot"-Realisierung des Halbaddierers eingesetzt wird, welche dazu führt, daß der Halbaddierer flächensparender aus- geführt werden kann und dennoch eine je nach Ausführungsform adäquate Sicherheit gegen Power-Attacken erreicht. Ein erfindungsgemäßer Halbaddierer zum Addieren von Bits von zumindest drei Eingangsoperanden, um zumindest zwei Ausgabebits zu erhalten, umfaßt für jedes Ausgabebit eine Schaltstufe, wobei die Schaltstufe ausgebildet ist, um gemäß einer Halbaddierervorschrift für das entsprechende Ausgabebit abhängig von den Bits der Eingangsoperanden ein Rechenpotential an einen Ausgang der Schaltstufe durchzuschalten, wobei das Rechenpotential an dem Ausgang das Ausgabebit oder eine invertierte Ver- sion des Ausgabebits darstellt. Der Halbaddierer umfaßt ferner für jedes Ausgabebit eine Ausgabestufe, die der Schaltstufe für dieses Ausgabebit nachgeschaltet ist. Die Ausgabestufe umfaßt einen ersten Ausgang und einen zweiten Ausgang, wobei in einem Datenmodus an dem ersten Ausgang das Ausgabebit ausgebbar ist, und wobei in dem Datenmodus an dem zweiten Ausgang eine invertierte Version des Ausgabebits ausgebbar ist, und wobei die Ausgabestufe ferner wirksam ist, um in einem Vorbereitungsmodus den ersten Ausgang und den zweiten Ausgang auf dasselbe Vorbereitungspotential zu bringen, wobei sich das Vorbereitungspotential von dem Rechenpotential unterscheidet .
Der erfindungsgemäße Halbaddierer ist dahingehend flächensparend, daß die Schaltstufe lediglich ein Ausgabebit berechnen muß, wobei es von der Implementierung abhängt, ob die Schaltstufe das Ausgabebit selbst oder die invertierte Versi- on des Ausgabebits liefert. Es ist einsichtig, daß die geforderte Information sowohl im Ausgabebit als auch im invertierten Ausgabebit enthalten ist.
Das entsprechende von der Schaltstufe nicht berechnete kom- plementäre Bit wird dann in der Ausgabestufe erzeugt, und zwar bereits im Vorbereitungsmodus, also im Precharge- bzw. Pre-Discharge-Modus . Je nach Implementierung wird dann im Datenmodus lediglich ein Ausgabebit der Ausgabestufe, nämlich entweder das Ausgabebit selbst oder die invertierte Version des Ausgabebits gegenüber dem Precharge-Zustand umgeladen, so daß in dem Datenmodus der Halbaddierer ein Bit ausgibt, das durch die Schaltstufe berechnet worden ist und gegenüber dem Precharge-Modus umgeladen worden ist, während das andere Bit im Datenmodus denselben Wert hat wie im Vorbereitungsmodus und bereits in dem dem Datentakt vorhergehenden vorbereitungstakt erzeugt worden ist.
Die erfindungsgemäße Schaltung ist dahingehend flächensparend, daß die Schaltstufe das invertierte Bit oder das nicht- invertierte Bit je nach Implementierung berechnet, und nicht beide Bits berechnen muß. Das zweite Bit wird dann in der Dual-Rail-Precharge/Pre-DisCharge-Ausgangsstufe erzeugt .
Die erfindungsgemäße Schaltung ist ferner dahingehend vor- teilhaft, daß sie transistorarm implementiert werden kann.
Dies ist dann der Fall, wenn die Schaltstufe derart ausgebildet wird, daß durch sie das Rechenpotential abhängig von den _
drei Eingangsoperanden an einen Ausgang auf einem von verschiedenen Pfaden durchschaltet. Für jede Pfad-Verzweigung wird es bevorzugt, dieselbe Anzahl von Transistoren zu nehmen, so daß jeder durch die Schaltstufe implementierbare Pfad von dem Rechenpotential zu einem Ausgang eine gleiche Anzahl von Transistorumschaltungen mit sich bringt, so daß von außen anhand des Leistungsprofils nicht ersichtlich ist, welchen Pfad die Schaltstufe genommen hat. Es ist daher anhand des Stromverbrauchs nicht ersichtlich, welche Eingangsoperanden im aktuellen Rechenzyklus anliegend waren.
Die erfindungsgemäße Schaltung ist ferner dahingehend vorteilhaft, daß sie eine hohe Flexibilität ermöglicht. So wird für jedes Ausgabebit eine eigene Schaltstufe vorgesehen. Eine Stromsicherheit ist bereits dann erreicht, wenn die Anzahl von Transistoren in einem Pfad in einer Schaltstufe gleich der Anzahl von Transistoren von anderen Pfaden in derselben Schaltstufe ist. Es muß jedoch keine Gleichheit der Transistoren von einer Schaltstufe zur nächsten Schaltstufe vorhan- den sein. Daher können beliebige Halbaddierer-Vorschriften für einzelne Bits implementiert werden, ohne daß ein Transi- stor-Overhead dahingehend vorhanden ist, daß z. B. alle Schaltstufen dieselbe Anzahl von Transistoren haben müssen.
Durch Implementation beliebiger Halbaddierer-Vorschriften im Hinblick auf die ausgangsseitige Codierung des Halbaddierer- Ergebnisses (binäre Gewichtung, Gray-Code, Dezimalgewichtung etc. ) kann daher immer eine optimal transistorarm entworfene Schaltstufe gefunden werden.
Darüber hinaus ist die erfindungsgemäße Schaltung querstro- marm und im idealen Fall sogar querstromfrei, da immer nur Umladungen von einem einzigen Ausgangsknoten der Ausgabestufe erforderlich sind. So wird bereits immer ein Ausgabebit im Vorbereitungsmodus gewissermaßen auf Verdacht berechnet, während im Datenmodus nur ein einziges Bit der zwei Ausgabebits einer Ausgabestufe umgeladen werden muß. Diese Umladung fin- det ohne Querstrom vom hohen Potential (z. B. Vdd) zum niedrigen Potential (Vss) statt und hat zudem einen geringen Stromverbrauch im Vergleich zu dem Fall, bei dem immer zwei Ausgabebits umgeladen werden müssen. Die erfindungsgemäße Schaltung ist somit nicht nur querstromarm sondern auch in ihrem insgesamten Stromverbrauch günstig, was insbesondere für Anwendungen von Vorteil ist, bei denen beispielsweise eine Chipkarte keine autarke Spannungsversorgung in Form einer Batterie hat, wie z. B. Kontaktlosanwendungen.
Die erfindungsgemäße Schaltung ist ferner günstig implementierbar, da die einzelnen Stufen nicht in vollständiger CMOS- Technik implementiert werden müssen. Es reichen statt dessen für die einzelnen Stufen entweder ausschließlich NMOS- Transistoren oder PMOS-Transistoren. Es werden jedoch nicht unbedingt in allen Stufen beide Transistorsorten benötigt, wie es dagegen bei einem vollständigen CMOS-Design der Fall ist, bei dem einem PMOS-Transistor immer ein entsprechender Komplementärtransistor (NMOS-Transistor) zugeordnet ist.
Die erfindungsgemäße Schaltung ist ferner dahingehend flexibel, daß das Rechenpotential, das durch die Schaltstufe gemäß den Eingangsoperanden an einen Ausgang durchgeschaltet wird, das hohe Potential Vdd oder das niedrige Potential Vss sein kann. Wird für das Rechenpotential das hohe Potential Vdd gewählt, so muß für das Vorbereitungspotential in der Ausgabestufe das andere Potential, also im vorliegenden Fall das niedrige Potential Vss verwendet werden. Wird dagegen in der Schaltstufe als Rechenpotential das niedrige Potential Vss verwendet, so muß in der Ausgabestufe ein Vorbereitungspotential verwendet werden, das sich von dem Rechenpotential unterscheidet. Im letzteren Fall wäre dies das hohe Potential Vdd.
Der erfindungsgemäße Halbaddierer trägt somit zu einem sicheren, leistungskräftigen und flächenminimalen 3-Operanden- Addierer bei. Die Operanden, die an dem 3-Operanden- Rechenwerk anliegen, sind typischerweise in Speicherelementen, wie z. B. SRAM-Zellen gespeichert und werden in Dual- Rail-Ausführung zu dem Rechenwerk geführt, um eine Sicherheit gegenüber Power-Attacken zu erreichen. Da der Volladdierer, der sich an den Halbaddierer anschließt, kompakt in Dual-
Rail-Precharge-Logik ausgeführt werden kann, können auch die Verbindungen zwischen dem Halb- und Volladdierer ihrerseits in Dual-Rail-Logik mit Precharge/Pre-Discharge-Technik ausgeführt sein. Der flächenminimale und sichere erfindungsgemäße Halbaddierer basiert auf der „One-Hot"-Realisierung. Für jedes anliegende Bitpattern wird in jeder Schaltstufe genau ein Pfad geschaltet. Im Falle von zwei Ausgabebits wird daher für jedes Bitpattern der drei anliegenden Operanden zwei Pfade geschaltet. Diese zwei Pfade sind notwendig, um für die Aus- gabestufe jeweils ein Bit zu berechnen, während das andere
Bit durch die Ausgabestufe selbst gewissermaßen erzeugt wird, d. h. aus dem vorausgehenden Vorbereitungsmodus „übernommen" wird. Für jedes beliebige anliegende Bitpattern am Eingang ist die insgesamte Summe der umzuladenden Kapazitäten gleich. Damit läßt sich das anliegende Bitpattern während der Schaltvorgänge im Halbaddierer nicht von außen erkennen.
Erfindungsgemäß wird es bevorzugt, zur Erreichung einer möglichst hohen Leistung die zu schaltenden Pfade mit möglichst wenig Transistoren auszustatten. Dies kann individuell für jede Schaltstufe je nach Halbaddierervorschrift beliebig durchgeführt werden, so daß nicht eine Schaltstufe, die eine komplexere Halbaddierervorschrift hat, die Transistorzahl für eine andere Schaltstufe, die eine weniger komplexe Halbaddie- rervorschrift hat, gewissermaßen „diktiert".
Der erfindungsgemäße Halbaddierer wird in seiner bevorzugten Form als 3-Operanden-Addierer mit drei Eingangsoperanden verwendet, um zwei Ausgabebits in binärer Gewichtung zu erzeu- gen. Durch Hintereinanderschalten von mehreren solchen 3- Operanden-Addierern können beliebige N-Operanden-Addierer beispielsweise zur Ausführung eines nicht nur drei-fachen sondern eines N-fachen ZDN-Algorithmus eingesetzt werden. Mit einem solchen N-Operanden-Addierer, der aus mehreren hintereinander geschalteten erfindungsgemäßen 3-Operanden-Addierern aufgebaut ist, läßt sich die Performance pro Chipfläche noch einmal steigern, und zwar mit einem Flächen-Overhead, der unterproportional zum Performance-Gewinn ist.
Der erfindungsgemäße Halbaddierer hat jedoch auch das Potential, als direkter N-Operanden-Addierer ohne Verwendung von hintereinander geschalteten 3-0peranden-Addiererelementen eingesetzt zu werden, indem andere Halbaddierer-Vorschriften für z. B. mehr als zwei Ausgabebits z. B. gemäß entsprechender Wahrheitstabellen für einen beispielsweise 7-Operanden- Addierer eingesetzt werden. Ein 7-Operanden-Addierer bei- spielsweise hat maximal sieben Einsen, wenn alle sieben Eingangsoperandenbits gleich 1 sind. Die dezimale Zahl 7 ist durch insgesamt drei Ausgabebits in binärer Gewichtung darstellbar. Ein 7-Operanden-Halbaddierer würde daher bereits mit drei Ausgabebits auskommen.
Bevorzugte Ausführungsbeispiele der vorliegenden Erfindung werden nachfolgend Bezug nehmend auf die beiliegenden Zeichnungen detailliert erläutert. Es zeigen:
Fig. 1 ein Blockschaltbild eines Halbaddierers mit einer beliebigen Anzahl von Eingangsoperanden und einer entsprechenden Anzahl von Ausgabebits;
Fig. 2 eine Tabelle zu möglichen Kombinationen des Rechen- Potentials, des Vorbereitungspotentials und einer entsprechenden Transistortechnologie;
Fig. 3 eine Wahrheitstabelle für einen 3-Operanden-
Halbaddierer mit zwei Ausgabebits SUM1 und SUM0;
Fig. 4 eine schematische Darstellung von Schaltstufen mit unterschiedlichen Rechenpotentialen; Fig. 5a ein Beispiel für Pfade durch die Schaltstufen für ein bestimmtes Operanden-Bitmuster;
Fig. 5b eine beispielhafte Darstellung verschiedener Pfade durch Schaltstufen für ein alternatives Operanden- Bitmuster;
Fig. 6 ein Blockschaltbild auf Transistorebene für einen bevorzugten Halbaddierer gemäß der vorliegenden Erfindung mit Dual-Rail-Eingangsstufe, zwei Schaltstufen und zwei Ausgabestufen; und
Fig. 7 ein bekannter 3-Operanden-Addierer mit entsprechend verschalteten 3-Bit-Halbaddierern und 2-Bit-
Volladdierern für Bit-Slices eines Langzahlrechenwerks .
Fig. 1 zeigt ein schematisches Blockschaltbild eines erfin- dungsgemäßen Halbaddierers zum Addieren von Bits von mehreren Eingangsoperanden, die in Fig. 1 derart dargestellt sind, daß sie einer Eingangsstufe 10 zugeführt werden. Die Eingangsoperanden sind in Fig. 1 mit C, N, Z bezeichnet, wobei eine beliebige weitere Anzahl von Eingangsoperanden der Eingangsstu- fe 10 zugeführt werden können. Die Eingangsstufe ist primär wirksam, um die Eingangsoperanden an in Fig. 1 gezeigte n Schaltstufen 12a, 12b, 12c zu verteilen. Die Schaltstufe 12a ist dem Ausgangsbit 0 zugeordnet, das auch als Bit SUM0 bezeichnet wird. Das dazu komplementäre Bit SUM0 ist in Fig. 1 ebenfalls ausgangsseitig dargestellt. Die Schaltstufe 12b ist dem Ausgangsbit 1 zugeordnet, das auch als Bit SUM1 bezeichnet wird. Das dazu komplementäre Bit SUM1 ist in Fig. 1 ebenfalls ausgangsseitig dargestellt. Die Schaltstufe 12c ist für das Ausgangsbit n vorgesehen. Dies wird auch als Bit SUMn bezeichnet. Das hierzu komplementäre Bit SUMn ist in Fig. 1 ebenfalls ausgangsseitig dargestellt. Jeder Schaltstufe 12a, 12b, 12c ist eine Ausgabestufe 14c zugeordnet, wie es aus Fig. 1 ersichtlich ist. Insbesondere ist die Ausgabestufe 14a der Schaltstufe 12a für das Bit 0 nachgeordnet. Die Ausgabestufe 14b ist der Schaltstufe 12b für das Bit 1 nachgeordnet. Die Ausgabestufe 14c ist der Schaltstufe 12c für das Bit n nachgeordnet .
Wie es aus Fig. 1 ersichtlich ist, ist ferner jeder Schaltstufe ein Rechenpotential für diese Schaltstufe zuführbar, wie es durch die Rechenpotentialanschlüsse 16a, 16b und 16c dargestellt ist. Prinzipiell ist jeder Schaltstufe ein eigenes Rechenpotential zuführbar, das bei einem bevorzugten Ausführungsbeispiel entweder ein hohes Potential Vdd oder ein niedriges Potential Vss ist. Aus Gründen der Schaltungsimplementierung wird es jedoch bevorzugt, jeder Schaltstufe das- selbe Rechenpotential 16c, 16b, 16a zuzuführen, das entweder Vss oder Vdd ist. Existiert die Möglichkeit, daß die implementierte Schaltung mehr als zwei Potentiale hat, so können auch von Vss bzw. Vdd abweichende Rechenpotentiale den Schaltstufen 12a, 12b, 12c zugeführt werden.
Die Schaltstufen 12a, 12b, 12c sind wirksam, das ihnen zugeführte Rechenpotential 16a, 16b, 16c an einen Ausgang 18a, 18b, 18c zuzuführen, wobei das zu dem Ausgang 18a, 18b, 18c zugeführte Spannungspotential das Ausgabebit oder eine inver- tierte Version des Ausgabebits darstellt.
An dieser Stelle sei darauf hingewiesen, daß das Ausgabebit als logisches Bit aufgefaßt wird, also als logische „0" oder als logische „1". Wird dem Ausgang 18a der Schaltstufe 12a das Rechenpotential 16a aufgrund einer durch die Schaltstufe 12a gebildeten leitfähigen Verbindung von dem Eingang 16a zu dem Ausgang 18a zugeführt, so kann der an dem Ausgang 18a anliegende Spannungswert entweder das logische Ausgabebit SUM0 der nachgeschalteten Ausgabestufe 14a darstellen oder das in- vertierte Bit SUM0 darstellen, je nach gewählter Implementierung. Die Ausgabestufe 14a empfängt als Eingangssignal das Signal auf dem Ausgang 18a der Schaltstufe sowie als weiteres Eingangssignal ein Vorbereitungspotential an einem Anschluß 20a. Entsprechend ist die Situation für die Ausgabestufen 14b und 14c, die ihre Vorbereitungspotentiale über Eingänge 20b bzw. 20c empfangen. Jede Ausgabestufe umfaßt zwei Ausgänge 22a, 22b. Entsprechend umfaßt die Ausgabestufe 14b für das Bit 1 ebenfalls zwei Ausgänge 24a, 24b. Analogerweise umfaßt auch die Ausgabestufe 14c für das Bit n ebenfalls zwei Ausgänge 26a, 26b. Der Ausgang 22a der Ausgabestufe 14a für das Bit 0 liefert das invertierte Ausgabebit SUM0. Entsprechend liefert der Ausgang 22b der Ausgabestufe 14a das nichtinvertierte Ausgabebit SUM0.
Der in Fig. 1 gezeigte Halbaddierer umfaßt ferner eine Steuereinrichtung 28 zum Einstellen eines Datenmodus und eines Vorbereitungsmodus, wobei im Vorbereitungsmodus entweder ein Precharge-Modus oder ein Pre-Discharge-Modus gefahren werden kann. Das Vorhandensein eines Datenmodus bzw. eines Vorberei- tungsmodus wird durch Steuerleitungen 28a, 28b, 28c den Ausgabestufen 14a, 14b bzw. 14c signalisiert. Optionalerweise ist die Eingangsstufe 10 ebenfalls im Datenmodus bzw. Vorbereitungsmodus betreibbar. Dies signalisiert die Steuereinrichtung 28 der Eingangsstufe über eine weitere Steuerleitung 28d.
Im Datenmodus liegt an einem Ausgang einer Ausgabestufe das Ausgabebit in nicht-invertierter Form an, also SUM0, SUM1 bzw. SUMn. An dem anderen Ausgang liegt im Datenmodus eine invertierte Version des Ausgabebits an, also SUM0 , SUM1 bzw. SUMn.
Die Ausgabestufen sind ferner wirksam, um in einem Vorbereitungsmodus an einem Ausgang und an dem anderen Ausgang das- selbe Vorbereitungspotential, das der Ausgabestufe über den entsprechenden Eingang 20a, 20b bzw. 20c zugeführt wird, anzulegen, wobei sich erfindungsgemäß das Vorbereitungspotenti- al, das einer Ausgabestufe beispielsweise über den Eingang 20a zugeführt wird, von dem Rechenpotential unterscheidet, das der Schaltstufe, die der betrachteten Ausgabestufe vorgeschaltet ist, z. B. über den Eingang 16a zugeführt wird. Der Vorbereitungsmodus wird bei dem in Fig. 1 gezeigten Ausführungsbeispiel den einzelnen Ausgabestufen von der Steuereinrichtung 28 über die Steuerleitungen 28a, 28b bzw. 28c signalisiert .
Im nachfolgenden wird anhand von Fig. 2 auf bevorzugte Kombinationen von Rechenpotential, Vorbereitungspotential und Transistortechnologie eingegangen. Wird als Rechenpotential einer Schaltstufe (Eingang 16a) das hohe Potential Vdd einer Schaltung zugeführt, so ist das der nachgeschalteten Ausgabe- stufe unterschiedliche Vorbereitungspotential das niedrige
Potential Vss. Das Zuführen des niedrigen Potentials Vss als Vorbereitungspotential führt zu einem Pre-Discharge in der Ausgabestufe (z. B. 14a), so daß im Vorbereitungsmodus beide
Bits SUM0, SUM0 einen niedrigen Spannungszustand haben und damit bei dem hier dargestellten Beispiel eine logische „0" darstellen.
Im Datenmodus wird von der Schaltstufe 12a dann das hohe Rechenpotential Vdd der Ausgabestufe 14a als Bit SUM0 oder Bit SUM0 zugeführt, und zwar je nach Bitmuster der drei Eingangsoperandenbits, so daß dann, im Datenmodus, lediglich ein Ausgangsbit SUM0 bzw. SUM0 umladen wird, d. h. von dem logischen Zustand „0" in den logischen Zustand „1" umgeändert wird.
In dem Fall, in dem als Rechenpotential Vdd genommen wird, und als Vorbereitungspotential Vss genommen wird, wird als Transistortechnologie die PMOS-Technologie bevorzugt, da die PMOS-Transistoren günstiger ein hohes Rechenpotential durch- schalten. Wird dagegen im anderen Fall als Rechenpotential das niedrige Potential Vss genommen, und wird dann konsequenterweise als Vorbereitungspotential das hohe Potential Vdd genommen, so findet in der Ausgabestufe ein Precharge-Modus statt, dahin- gehend, daß die beiden Ausgabebits SUMO, SUMO der Ausgabestufe 14a, beispielsweise eine logische „1" darstellen. Durch die Schaltstufe wird das niedrige Potential Vss entweder als Bit oder Bit der Ausgabestufe 14a zugeführt, die dann lediglich eines der beiden Ausgangsbits SUMO oder SUMO in den niedrigen Zustand umlädt, also von einer logischen „1" in eine logische „0" verändert. In diesem Fall wird in der Schaltstufe als Transistortechnologie die NMOS-Technologie bevorzugt, da diese am besten dafür geeignet ist, niedrige Spannungspotentiale durchzuschalten.
Fig. 3 zeigt in Tabellenform eine bevorzugte Halbaddierervorschrift für einen 3-Operanden-Addierer, um für jedes Bitmuster der Eingangsoperanden Ci, Ni und Zi entsprechende Ausgangsbits SUMl, SUMO zu berechnen. Die Halbaddierervorschrift in Fig. 3 ist als „Einsen-Zähler" ausgebildet, wobei die Anzahl von Einsen durch die Bits SUMO, SUMl in binärer Gewich- tung dargestellt werden. Die beiden Ausgangsbits SUMl und SUMO stellen somit eine binäre Zahl dar, wobei das Bit SUMl das MSB dieser binären Zahl ist, und wobei das Bit SUMO das LSB dieser Zahl ist. Die beiden Ausgangsbits SUMl und SUMO stellen daher in binärer Codierung die Anzahl von Einsen eines jeden Bit-Patterns der Eingangsoperanden dar. Lediglich in dem Fall, in dem alle drei Eingangsoperanden eine logische „1" haben, sind beide Bits SUMl und SUMO gesetzt, was der bi- nären Zahl „11" entspricht, die in dezimaler Darstellung gleich der Zahl 3 ist.
Für Fachleute ist es offensichtlich, daß anhand der Systematik von Fig. 3 beliebige N-Operanden-Halbaddierer aufgebaut werden können. Wird beispielsweise ein 7-Operanden-
Halbaddierer aufgebaut, so wird zur Darstellung des maximalen Falls, in dem alle sieben Operanden eine logische „1" haben, eine Anzahl von drei Ausgabebits benötigt, da die binäre Zahl „111" der dezimalen Zahl „7" entspricht.
Für Halbaddierer mit einer größeren Anzahl von sieben Operan- den werden daher entsprechend mehr Ausgabebits benötigt, wenn die normale binäre Gewichtung eingesetzt wird.
Aus der Systematik von Fig. 3 ist ferner ersichtlich, daß auch eine andere Codierung eingesetzt werden kann, wenn es für einen speziellen Fall günstig ist. So kann die Bedeutung der Bits SUMl, SUMO beliebig eingestellt werden, dahingehend, daß eine Bitkombination von SUMO und SUMl als „11" z. B. darauf hindeutet, daß die Anzahl von Nullen in den Eingabebits C, N, Z gleich 3 ist, was gleichbedeutend damit ist, daß die Anzahl von Einsen in C, N, Z bei der bestimmten betrachteten Bitkombination gleich 0 ist.
Beliebige weitere Vereinbarungen für die Bits SUMl, SUMO können getroffen werden. Ferner können je nach Halbaddierervor- schritt weitere (redundante) Bits, z. B. SUM2, SUM3, ... verwendet werden.
Fig. 4 zeigt in schematischer Form eine bevorzugte Ausführungsform einer Schaltstufe 12a und 12b für einen 3- Operanden-Addierer. In Fig. 4 ist ferner der Fall gezeigt, daß die beiden Schaltstufen 12a, 12b unterschiedliche Rechenpotentiale 16a, 16b haben. So hat die Schaltstufe 12a das niedrige Potential Vss als Rechenpotential. Die Schaltstufe 12b hat dagegen das hohe Potential Vdd als Rechenpotential 16b. Durch gestrichelte Linien 41, 42, 43 ist in Fig. 4 dargestellt, daß jeder Schaltstufe die Eingangsoperanden (erster Operand, zweiter Operand, dritter Operand) zugeführt werden. Je nach Gestaltung der in Fig. 3 gezeigten Halbaddierer- Vorschrift bewirkt ein Operand eine Abzweigung des Pfades oder nicht. Wie es rechts in Fig. 4 dargestellt ist, wird ein Pfad waagrecht weitergeführt, wenn der Operand gleich 0 ist. Ist der Operand dagegen gleich einer logischen „1", so wird, wie es ebenfalls rechts in Fig. 4 dargestellt ist, der Pfad in einer 45°-Richtung fortgesetzt.
Für eine Kombination von Eingangsoperanden wird durch das in Fig. 4 gezeigte Schaltwerk ein leitfähiger Pfad von dem Potential z. B. 16a zu dem nicht-invertierten Ausgang Bit oder zu dem invertierten Ausgang Bit durchgeschaltet, derart, daß das Rechenpotential Vdd bzw. Vss an dem entsprechenden invertierten Ausgang oder nicht-invertierten Ausgang anliegt. Es sei darauf hingewiesen, daß das Rechenpotential nie an beiden Ausgängen anliegen kann, da die Schaltstufe derart ausgebildet ist, daß ein eindeutiger Pfad von dem Rechenpotentialanschluß 16a beispielsweise zu einem einzigen Ausgang 18a erhalten wird.
Nachfolgend werden anhand der Fig. 5a und 5b zwei jeweils verschiedene Pfade durch die einzelnen Schaltstufen für unterschiedliche Bitmuster dargestellt.
In Fig. 5a ist beispielhaft der Fall gezeigt, bei dem der erste Operand gleich 1, der zweite Operand gleich 0 ist, und der dritte Operand gleich 1 ist. Für die Schaltstufe 14a bedeutet dies, daß ein erster Schaltknoten 50a dahingehend durchlaufen wird, daß eine 45 "-Abzweigung genommen wird, da der erste Operand gleich 1 ist. Ein zweiter Schaltknoten 50b wird dahingehend verarbeitet, daß der Pfad waagrecht fortgeführt wird, da der zweite Operand gleich 0 ist. Ein dritter Schaltknoten 50c wird dahingehend durchlaufen, daß wieder eine 45°-Abzweigung genommen wird, da der dritte Operand gleich 1 ist. Dies führt dazu, daß das Rechenpotential Vss ausgangsseitig das nicht-invertierte Bit der Schaltstufe bestimmt. Im Datenmodus führt ein Spannungszustand Vss für das nichtinvertierte Bit dazu, daß die der Schaltstufe 14a nachgeschaltete Ausgabestufe 14b, die beide Ausgängen 22a, 22b in einem Zustand „1" hatte, das nicht-invertierte Bit SUMO (22b) in den niedrigen Zustand entlädt, während das invertierte Bit SUMO 22a im hohen Zustand bleibt. Die Schaltstufe 14b hat als Rechenpotential das hohe Potential Vdd. In einem ersten Verzweigungsknoten 52a wird eine 45°- Abzweigung genommen. In einem zweiten Verzweigungsknoten 52b, die dem zweiten Operanden entspricht, wird eine waagrechte Abzweigung genommen. In einem dritten Verzweigungsknoten 52c, die dem dritten Operanden entspricht, wird eine 45°- Abzweigung genommen, so daß schließlich am Ausgang 18b, der dem nicht-invertierten Bit entspricht, das hohe Spannungspo- tential Vdd anliegt. Das hohe Spannungspotential am Ausgang 18b führt dazu, daß in der Ausgabestufe 14b von Fig. 1 das nicht-invertierte Bit SUMl 24b von seinem niedrigen Zustand, den es im Vorbereitungsmodus hatte, auf den logisch hohen Zustand gesetzt wird, während das invertierte Bit SUMl in sei- nem bereits aus dem Vorbereitungsmodus heraus bestehenden Zustand, also dem niedrigen Zustand „0" gelassen wird.
Aus der vorstehenden Beschreibung ist ersichtlich, daß die Schaltstufe lediglich ein Bit, also das invertierte bzw. das nicht-invertierte Bit berechnen muß, während das zweite Bit dann durch die Ausgabestufe aus dem vorausgehenden Vorbereitungsmodus übernommen wird.
Ferner ist ersichtlich, daß z. B. in der Schaltstufe 14a in Fig. 5a acht verschiedene Pfade gemäß den acht verschiedenen Kombinationen der drei Eingangsoperanden gewählt werden können. Wie es jedoch aus der Schaltstufe 14b von Fig. 5a ersichtlich ist, führt in dem Fall, in dem bereits der erste Eingangsoperand und der zweite Eingangsoperand gleich 0 wa- ren, in dem also an einem Verzweigungsknoten 52d der Pfad waagrecht fortgesetzt wird, dazu, daß dem dritten Operanden kein eigener Verzweigungspunkt mehr zugeordnet ist. Dies ist ohne weiteres daraus ersichtlich, daß in dem Fall, in dem bereits der erste und der zweite Operand gleich 0 waren, höch- stens noch eine einzige 1 unter den drei Operanden, nämlich die 1 des dritten Operanden herauskommen kann, was auf jeden Fall dazu führt, daß das Bit SUMl, wie es aus der Wahrheits- tabelle ersichtlich ist, gleich 0 ist. Das hohe Potential Vdd bestimmt daher den Zustand des invertierten Bits Bit zu einer logischen „1", derart, daß im Datenmodus das nichtinvertierte Bit gleich 0 ist, wie es durch die Wahrheitsta- belle von Fig. 3 gefordert wird.
In Fig. 5b ist eine alternative Bitkombination der drei Operanden dargestellt, und zwar der Fall, bei dem alle drei Operanden gleich 1 sind. In der Schaltstufe 14a wird der in Fig. 5b eingezeichnete Pfad genommen, der lediglich 45°-
Abzweigungen umfaßt. Der Pfad endet schließlich dahingehend, daß das niedrige Potential Vss, das eine logische „0" dar¬ stellt, am invertierten Bit Bit anliegt. In der Schaltstufe 14b ist bereits anhand der ersten beiden Operanden klar, daß das Bit gesetzt werden muß, so daß das Ergebnis, nämlich Vdd am nicht-invertierten Ausgang 18b der Schaltstufe, nicht mehr vom dritten Operanden abhängt, so daß dem dritten Operanden kein eigener Verzweigungspunkt mehr zugeordnet zu werden braucht .
Aus den Fig. 5a und 5b ist ferner ersichtlich, daß die Anzahl der Verzweigungspunkte, nämlich vier bei der Schaltstufe 14b und fünf bei der Schaltstufe 14a nicht für jede Schaltstufe identisch zu sein braucht. Vielmehr wird eine Schaltstufe mit möglichst wenig Abzweigungspunkten angestrebt, da die Anzahl der Abzweigungspunkte letztendlich die Anzahl der Transistoren in der Schaltstufe und damit die wertvolle Chipfläche bestimmt. Eine Sicherheit gegenüber Leistungsattacken wird jedoch bereits dadurch erreicht,' daß jeder Pfad durch eine Schaltstufe dieselbe Anzahl von Verzweigungspunkten umfaßt, wobei jedoch die Anzahl von Verzweigungspunkten von Schaltstufe zu Schaltstufe nicht zwingend gleich zu sein braucht. Eine solche Ungleichheit liefert dem Angreifer lediglich die Information, daß in zwei Schaltstufen geschaltet worden ist. Diese Information nützt dem Angreifer jedoch nichts, da dieser Sachverhalt ohnehin klar ist. Ein Angreifer kann jedoch nicht erkennen, welcher Pfad in einer Schaltstufe durchgeschaltet worden ist, um daraus unter Umständen auf die Werte der drei Eingangsoperanden schließen zu können.
Der Übersichtlichkeit halber ist in den Fig. 5a und Fig. 5b rechts noch der zugeordnete Vorbereitungsmodus dargestellt, der durch das einer Ausgangsstufe zugeordnete Vorbereitungspotential bestimmt wird, das sich erfindungsgemäß von dem Rechenpotential unterscheidet. So hat die Schaltstufe 14b aufgrund des hohen Rechenpotentials Vdd die Konsequenz zur Fol- ge, daß die zugeordnete Ausgabestufe ein anderes Vorbereitungspotential hat, nämlich das niedrige Potential Vss, wenn die Schaltung lediglich zwei verschiedene Potentiale zur Verfügung stellt.
Analog hierzu hat die Schaltstufe 14a aufgrund des niedrigen Rechenpotentials Vss ein hohes Vorbereitungspotential zur Folge.
Nachfolgend wird anhand von Fig. 6 auf ein bevorzugtes Aus- führungsbeispiel der vorliegenden Erfindung auf Transistorebene Bezug genommen.
Fig. 6 zeigt modulweise bevorzugte Transistorimplementationen einer Dual-Rail-Eingangsstufe (Block 10 in Fig. 1), von Schaltstufen (Blöcke 12a, 12b von Fig. 1) und Ausgabestufen (Blöcke 14a, 14b von Fig. 1) .
Nachfolgend wird auf die Implementierung der Dual-Rail- Eingangsstufe (Block 10 in Fig. 1) eingegangen. Die Dual- Rail-Eingangsstufe in Fig. 6 umfaßt zunächst sechs Eingänge für die drei Operanden Z, N und C als nicht-invertierte Bits und invertierte Bits. Die Bits werden so der Dual-Rail- Eingangsstufe zugeführt, wie es in Fig. 6 ersichtlich ist. Die Eingangsstufe enthält ferner, wie es in Fig. 1 durch die Leitung 28d angedeutet ist, ein Precharge-Signal Vss, um die Eingangsstufe in dem Vorbereitungsmodus in einen Precharge- Zustand zu fahren, bei dem alle sechs Eingänge auf dasselbe Potential gebracht werden. Dieses Potential ist, wie es anhand der Spannungsversorgungssituation in Fig. 6 ersichtlich ist, das hohe Potential, da die Dual-Rail-Eingangsstufe mit dem hohen Potential Vdd an verschiedenen Punkten versorgt wird.
Zur Auslösung des Precharge-Zustands, also im Vorbereitungsmodus, werden die in Fig. 6 als PMOS-Transistoren ausgeführten Transistoren an ihrem Gate mit dem niedrigen Potential Vss versehen, damit sie durchschalten, wie es aus Fig. 6 ersichtlich ist, um alle Operanden-Bit-Knoten und alle Knoten für invertierte Operandenbits auf das Potential Vdd zu legen.
Im einzelnen umfaßt jede Dual-Rail-Eingangsstufe vier Transi- stören 600, 601, 602 und 603, wobei nachfolgend lediglich beispielhaft und repräsentativ für den zweiten und den dritten Operand die dem ersten Operand zugeordnete Eingangsstufe dargelegt wird. Die beiden Transistoren 601, 600 dienen dazu, im Vorbereitungsmodus, in dem das Precharge-Signal aktiv ist, in dem also Vss auf der Leitung 28d anliegt, die auf der einen Seite der beiden Transistoren anliegende hohe Spannung Vdd auf die Ausgangsknoten 604, 605 für das invertierte erste Operandenbit und das nicht-invertierte erste Operandenbit zu legen. Damit werden unmittelbar die beiden Transistoren 603, 602 gesperrt, da sie das hohe Potential Vdd an ihrem jeweiligen Gate-Anschluß haben.
Im Datenmodus ist dagegen die Leitung 28d auf dem hohen Potential Vdd, was dazu führt, daß die beiden Transistoren 601 und 600 wirkungslos sind. Die beiden Transistoren 602, 603 dienen zur Stabilisierung der Verhältnisse im Datenmodus. Ist beispielsweise das Operandenbit N hoch, so ist der Transistor 602 gesperrt, so daß das Potential Vdd auf der einen Seite des Transistors 602 nicht an den Knoten 604 kommen kann. Der Knoten 604 ist nämlich, da er das invertierte Bit
N des ersten Operanden darstellt, auf einem niedrigen Potential. Dieses niedrige Potential führt dazu, daß der Transi- stor 603 geöffnet wird. Es fließt jedoch im Idealzustand kein Strom, da der Knoten 605 ebenfalls auf Vdd ist. Der Transistor 603 dient jedoch dazu, das hohe Potential auf dem Knoten 605 zu stabilisieren und gegebenenfalls nachzuladen, falls an irgendeiner Stelle Leckströme auftreten.
Die Dual-Rail-Eingangsstufe dient somit dazu, im Vorbereitungsmodus gleiche Potentiale auf den Bitleitungen zu erzeugen, und im Datenmodus die Zustände auf den Bitleitungen zu stabilisieren. Darüber hinaus dient die Dual-Rail- Eingangsstufe dazu, die Operandenbits über Verteilungsschienen 611, 612 und 613 an die Schaltstufen zu verteilen.
Wie es in Fig. 6 gezeigt ist, sind die beiden Schaltstufen derart ausgebildet, daß sie als Rechenpotential das hohe Potential Vdd zugeführt bekommen, wie es durch die Spannungszuführungen 16a für die erste Schaltstufe und 16b für die zweite Schaltstufe gezeigt ist. So besteht die Schaltstufe für das Bit 0, bzw. für das Bit zur Erzeugung des Bits 0 (SUMO 22b oder SUMO 22a) aus insgesamt zehn Transistoren 620-629, wobei immer zwei Transistoren zusammen einen Verzweigungspunkt der in Fig. 5a und 5b gezeigten Verzweigungspunkte bilden. Analog hierzu besteht die Schaltstufe für das Bit 1
(SUMl 24b bzw. SUMl 24a) aus lediglich acht Transistoren 630-637, wobei ebenfalls paarweise angeordnete Transistoren immer einen Verzweigungspunkt definieren.
Ferner sei darauf hingewiesen, daß die Situation des Rechenpotentials 16a, 16b gleich dem hohen Potential Vdd der Situa- tion entspricht, die die Schaltstufe 12b in den Fig. 4, 5a und 5b hat. Im einzelnen entsprechen die Transistoren 630 und 631 dem Verzweigungspunkt 52a. Die Transistoren 632, 633 entsprechen dem Verzweigungspunkt 52b von Fig. 5a. Die beiden Transistoren 634 und 635 entsprechen dem Verzweigungspunkt 52d in Fig. 5a. Schließlich entsprechen die Transistoren 636 und 637 dem Verzweigungspunkt 52c. Analog hierzu entsprechen in der Schaltstufe für das Bit 0 die beiden Transistoren 620 und 621 dem Verzweigungspunkt 50a von Fig. 5a. Die Transistoren 622, 623 entsprechen dem Verzweigungspunkt 50b von Fig. 5a. Die Transistor 626 und 627 entsprechen dem Verzweigungspunkt 50c von Fig. 5a.
Die Schaltstufen umfassen ferner eine in Fig. 6 bei 639 gezeigte Ausgangsschiene, die gleichzeitig die Eingangsschiene für die nachgeschalteten Ausgabestufen darstellt. Die beiden rechten Leitungen der Ausgangsschiene 639 sind der oberen
Ausgabestufe 14b zugeordnet, während die beiden linken Leitungen der Ausgabeschiene 639 der unteren Ausgabestufe 40a zugeordnet sind. Es sei darauf hingewiesen, daß die Transistoren in den Schaltstufen wirksam sind, um lediglich einen Pfad vom Anschluß 16b bzw. 16b zu einer der Leitungen der
Ausgabeschiene 40 durchzuschalten. Es ist ferner ersichtlich, daß jeder Pfad dieselbe Anzahl von Transistoren umfaßt, unabhängig davon, welcher Pfad durch eine Schaltstufe abhängig von dem Bitmuster eingestellt wird.
Aus Fig. 6 ist ferner ersichtlich, daß bei dem gezeigten Ausführungsbeispiel ein Verzweigungspunkt durch Verwendung eines komplementären Operandenbits zusätzlich zu dem nichtinvertierten Operandenbit implementiert wird. Dies ermöglicht eine einfache Implementierung dahingehend, daß lediglich zwei Transistoren verwendet werden, und daß keine Untersuchung des Bits dahingehend erforderlich ist, ob das Bit eine 0 oder eine 1 hat. Alternativ könnte jedoch auch, obgleich es im Hinblick auf die Implementation und mögliche Sicherheitseinbußen nicht bevorzugt wird, eine Implementierung eingesetzt werden, bei der lediglich Single-Rail-Operanden den Schaltstufen zugeführt werden. In diesem Fall würde jeder Verzweigungspunkt eine zusätzliche Einrichtung dahingehend umfassen, um zu untersuchen, ob das zugeführte Bit eine 1 oder eine 0 ist, um einen entsprechenden Pfad durchzuschalten. In diesem Fall könnte der erfindungsgemäße Halbaddierer auch zur Single- Rail-Dual-Rail-Konversion verwendet werden, um eingangsseitig vorliegende Single-Rail-Daten in ausgangsseitige Dual-Rail- Daten zu konvertieren, wobei die ausgangsseitigen Dual-Rail- Daten ferner gemäß der Halbaddierervorschrift von den ein- gangsseitigen Single-Rail-Daten abgeleitet worden sind.
Die Funktionalität der beiden als Schalter fungierenden Transistoren beispielsweise 620 und 621, die den Verzweigungspunkt 50a in Fig. 5a darstellen, ist ersichtlich, wenn davon ausgegangen wird, daß im Datenmodus immer nur ein Transistor durchschaltet, während der andere Transistor sperrt, so daß immer nur ein Pfad entweder nach oben oder nach unten genommen wird, jedoch nie zwei Pfade gleichzeitig. Nachdem im Datenmodus die beiden Knoten 605 und 604, also die beiden Bits, die im Datenmodus den ersten Operanden darstellen, auf Vdd liegen, sind die Transistoren 620 und 621 im Vorbereitungsmodus beide gesperrt, so daß keine Querströme fließen können. Die Schaltstufe wird somit aufgrund der Tatsache, daß in der Eingangsstufe ein Precharge verwendet wird und in der Schaltstufe PMOS-Transistoren verwendet werden, im Vorberei- tungsmodus automatisch dahingehend deaktiviert, daß keine
Querströme von dem Knoten 16a bzw. 16b abfließen können. Würde die Dual-Rail-Eingangsstufe einer Discharge-Operation unterzogen werden, würde es bevorzugt, die Transistoren der Schaltstufen in NMOS-Technik mit entsprechendem Rechenpoten- tial (Vss in diesem Fall) auszuführen.
Nachfolgend wird beispielhaft die transistormäßige Implementierung der Ausgabestufe 14a erörtert, die insgesamt vier Transistoren 640, 641, 642 und 643 aufweist. Da als Rechenpo- tential 16a, 16b das hohe Potential Vdd genommen wird, wird in Fig. 6 als Vorbereitungspotential das niedrige Potential Vss 20a verwendet. Entsprechend wird auch bei der zweiten Ausgabestufe 14b als Vorbereitungspotential das niedrige Potential Vss verwendet, also ein Potential, das sich von dem Rechenpotential Vdd unterscheidet. Die Ausgabestufen 14a, 14b werden im Vorbereitungsmodus mit einem Pre-Discharge-Signal beaufschlagt, das aufgrund der Ausführung der Transistoren 640-643 in NMOS-Technik ein hohes Spannungssignal Vdd ist. Im Datenmodus liegt auf der Leitung 28a, 28b dagegen das niedrige Potential Vss an, um die Discharge-Transistoren 641, 640 zu sperren.
Wird die Ausgabestufe 14a (genauso wie die Ausgabestufe 14b) dagegen im Vorbereitungsmodus betrieben, so liegt Vdd auf den Leitungen 28a, 28b (die in der tatsächlichen Implementierung als gemeinsame Leitung ausgeführt sind, an. Dies führt dazu, daß die beiden Knoten 22a, 22b auf Vss gelegt werden, da die beiden Transistoren 640, 641, die in NMOS-Technik ausgeführt sind, durchgeschaltet werden. Dies führt unmittelbar dazu, daß der Transistor 643 ebenso gesperrt ist wie der Transistor 642. Die Transistoren 643, 642 haben daher im Vorbereitungsmodus keine Wirkung. Im Datenmodus sind dagegen, wie es ausgeführt worden ist, die Discharge-Transistoren 640 und 641 gesperrt. Im Datenmodus wird einer der Knoten 22a, 22b auf- grund der Tatsache, daß die Schaltstufe das Potential Vdd 16a entweder auf den Knoten 22a oder auf den Knoten 22b durchgeschaltet hat, hoch. Zur Erläuterung der Funktionsweise der Transistoren 642 und 643 wird davon ausgegangen, daß der Knoten 22b hoch ist. Dies führt dazu, daß der Transistor 642 durchgeschaltet wird, um den Knoten 22a sicher auf das niedrige Potential Vss zu legen. Damit wird gleichzeitig sichergestellt, daß der Transistor 643 gesperrt ist, was wiederum bewirkt, daß das Potential Vss, das auf der einen Seite des Transistors 643 anliegt, nicht an dem Knoten 22b anliegen kann, dahingehend, daß der Knoten 22b hoch bleibt, während der Knoten 22a sicher niedrig bleibt, so daß ein eindeutiges Ergebnis erhalten wird, nämlich daß das Bit SUMO hoch ist, während das komplementäre Bit SUMO niedrig ist.
Die Ausgabestufe hat daher neben der Funktionalität des gewissermaßen Lieferns des nicht durch die Schaltstufe bestimmten Bits im Datenmodus (aufgrund des vorausgehenden Vorberei- tungsmodus) auch die Funktionalität, im Datenmodus beide Bits und insbesondere das nicht durch die Schaltstufe gelieferte Bit gegenüber Ladungslecks zu stabilisieren.
Ferner hat die erfindungsgemäß bevorzugte Implementierung der Ausgabestufen gemäß Fig. 6 den Vorteil, daß keine Querströme fließen, so daß die erfindungsgemäße Halbaddiererschaltung neben ihrer Eigenschaft der Flächeneffizienz und der Eigenschaft der hohen Performance auch einen niedrigen Stromver- brauch hat.
Bezugs zeichenliste
10 Eingangstufe
12 a - c Schaltstufen
14 a - c Ausgabestufen
16 a - c Rechenpotentialanschlüsse
18 a - c Ausgänge
20 a Anschluß
20 b - c Eingänge
22 a - b Ausgänge
24 a - b Ausgänge
26 a - b Ausgänge
28 Steuereinrichtung
28 a - d Steuerleitungen
40 Ausgabeschiene
41 - 43 Linien
50 a - c Schaltknoten
52 a - c Verzweigungspunkte
80 Drei-Bit-Halbaddierer
81 Zwei-Bit-Volladdierer
82 Summenbit
83 Übertragbit
600 - - 603 Transistoren
604 Ausgangsknoten
605 Ausgangsknoten
611 - - 613 Verteilungsschienen
620 - - 629 Transistoren
630 - 637 Transistoren
640 - - 643 Transistoren

Claims

Patentansprüche
1. Halbaddierer zum Addieren von Bits von zumindest drei Eingangsoperanden, um zumindest zwei Ausgabebits zu erhalten, mit folgenden Merkmalen:
einer Schaltstufe (12a, 12b, 12c) für jedes Ausgabebit, wobei die Schaltstufe ausgebildet ist, um gemäß einer Halbaddierervorschrift für das Ausgabebit abhängig von den Bits der Ein- gangsoperanden ein Rechenpotential (16a, 16b, 16c) an einen Ausgang (18a, 18b, 18c) der Schaltstufe (12a, 12b, 12c) durchzuschalten, wobei das Rechenpotential an dem Ausgang das Ausgabebit (22b, 24b, 26b) oder eine invertierte Version (22a, 24a, 26a) des Ausgabebits darstellt; und
für jedes Ausgabebit, eine Ausgabestufe (14a, 14b, 14c) mit einem Eingang, der mit dem Ausgang (18a, 18b, 18c) der Schaltstufe (12a, 12b, 12c) verbunden ist, und mit einem ersten Ausgang und mit einem zweiten Ausgang, wobei in einem Datenmodus an dem ersten Ausgang das Ausgabebit ausgebbar ist, und wobei in dem Datenmodus an dem zweiten Ausgang eine invertierte Version des Ausgabebits ausgebbar ist,
wobei die Ausgabestufe (14a, 14b, 14c) ferner wirksam ist, um in einem Vorbereitungsmodus den ersten Ausgang und den zweiten Ausgang auf dasselbe Vorbereitungspotential (20a, 20b, 20c) zu bringen, wobei sich das Vorbereitungspotential (20a, 20b, 20c) von dem Rechenpotential (16a, 16b, 16c) unterscheidet.
2. Halbaddierer nach Anspruch 1, bei dem die Ausgabestufe (14a, 14b, 14c) ausgebildet ist, um das Vorbereitungspotential (20a, 20b, 20c) so einzustellen, daß es einem ersten logischen Zustand entspricht, und
bei dem die Schaltstufe (12a, 12b, 12c) ausgebildet ist, um das Rechenpotential so einzustellen, daß es einem zweiten lo- gischen Zustand entspricht, der sich von dem ersten logischen Zustand unterscheidet.
3. Halbaddierer nach Anspruch 1 oder 2, bei dem das Rechenpo- tential ein hohes Potential (Vdd) ist, und das Vorbereitungspotential ein im Vergleich zu dem Rechenpotential niedriges Potential (Vss) ist, so daß der Vorbereitungsmodus ein Pre- Discharge-Modus ist.
4. Halbaddierer nach Anspruch 1 oder 2, bei dem das Rechenpotential ein niedriges Potential (Vss) ist, und das Vorbereitungspotential ein im Vergleich zum Rechenpotential hohes Potential (Vdd) ist, so daß der Vorbereitungsmodus ein Prechar- ge-Modus ist.
5. Halbaddierer nach einem der vorhergehenden Ansprüche, der ferner eine Eingabestufe (10) aufweist, die ausgebildet ist, um die Bits der Eingangsoperanden und invertierte Versionen derselben zu erhalten, wobei die Eingabestufe (10) ferner ausgebildet ist, um die Bits der Eingangsoperanden in einem Datenmodus zu den Schaltstufen (12a, 12b, 12c) durchzuleiten, und um in dem Vorbereitungsmodus Eingänge für die Bits der Eingangsoperanden und Eingänge für die invertierten Bits der Eingangsoperanden auf dasselbe Potential zu legen.
6. Halbaddierer nach einem der vorhergehenden Ansprüche, bei dem die Schaltstufe für jeden Eingangsoperanden eine eigene Unterstufe aufweist, und wobei jede Unterstufe eine gerade Anzahl von Transistoren (620, 621; 622, 623, 624, 625; 626, 627, 628, 629) aufweist.
7. Halbaddierer nach Anspruch 6, bei dem die Unterstufen für die Eingangsoperanden in Kaskade geschaltet sind.
8. Halbaddierer nach einem der vorhergehenden Ansprüche, bei dem die Schaltstufe für jeden Eingangsoperanden eine eigene Unterstufe aufweist, wobei eine Unterstufe zwei Aus¬ gangsknoten hat, die mit Eingangsknoten einer nachgeschalteten Unterstufe verbunden sind,
wobei ein Eingangsknoten einer ersten Unterstufe mit dem Rechenpotential (16a) verbunden ist,
wobei ein Ausgangsknoten einer letzten Unterstufe den Ausgang der Schaltstufe darstellt, und
wobei eine Unterstufe ausgebildet ist, um abhängig von einem Wert des Bits des Operanden, der der Unterstufe zugeordnet ist, den Eingangsknoten mit dem ersten oder dem zweiten Aus- gangsknoten zu verbinden.
9. Halbaddierer nach Anspruch 8, bei dem die Schaltstufe ausgebildet ist, um zum Umschalten von einem Pfad, der von dem Eingangsknoten der ersten Stufe zu dem Ausgangsknoten der letzten Stufe definiert ist, zu einem anderen Pfad, der von dem Eingangsknoten der ersten Stufe zu dem Ausgangsknoten der letzten Stufe definiert ist, einen Strom zu verbrauchen, der innerhalb eines vorbestimmten Toleranzbereichs liegt.
10. Halbaddierer nach Anspruch 9, bei dem sich der Toleranzbereich um +/- 10% von einem Nennwert für alle Pfade erstreckt .
11. Halbaddierer nach einem der vorhergehenden Ansprüche, bei dem die Schaltstufe nur NMOS-Transistoren oder nur PMOS- Transistoren umfaßt.
12. Halbaddierer nach Anspruch 11, bei dem die Schaltstufe dann, wenn das Rechenpotential ein hohes Potential ist, nur PMOS-Transistoren aufweist, und dann, wenn das Rechenpotential ein niedriges Potential ist oder gleich dem Massepotential ist, nur NMOS-Transistoren aufweist.
13. Halbaddierer nach einem der vorhergehenden Ansprüche, bei dem die Schaltstufe ausgebildet ist, um eine Halbaddierervorschrift zu verwenden, die das Zählen einer Anzahl von Operandenbits mit dem gleichen Zustand und das Umsetzen in einen Wert für ein bestimmtes Ausgabebit umfaßt.
14. Halbaddierer nach Anspruch 13, bei dem das Umsetzen auf der Basis einer binären Codierung ausführbar ist.
15. Halbaddierer nach einem der vorhergehenden Ansprüche, der für genau drei Eingangsoperanden ausgebildet ist und zwei Schaltstufen und zwei Ausgabestufen aufweist, wobei die Halbaddierer-Vorschrift folgendermaßen definiert ist:
Figure imgf000036_0001
wobei Ci ein Bit mit der Ordnung i eines ersten Operanden ist, wobei Ni ein Bit mit der Ordnung i des zweiten Operanden ist, wobei Zi ein Bit der Ordnung i des dritten Operanden ist, wobei SUMl ein höchstwertiges Ausgabebit ist, und wobei SUMO ein niederstwertiges Ausgabebit ist.
PCT/EP2004/001874 2003-02-25 2004-02-25 Addierer zum addieren von zumindest drei eingangsoperanden WO2004077196A2 (de)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
DE2003107942 DE10307942B3 (de) 2003-02-25 2003-02-25 Halbaddierer
DE10307942.4 2003-02-25

Publications (2)

Publication Number Publication Date
WO2004077196A2 true WO2004077196A2 (de) 2004-09-10
WO2004077196A3 WO2004077196A3 (de) 2005-02-10

Family

ID=31502583

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/EP2004/001874 WO2004077196A2 (de) 2003-02-25 2004-02-25 Addierer zum addieren von zumindest drei eingangsoperanden

Country Status (2)

Country Link
DE (1) DE10307942B3 (de)
WO (1) WO2004077196A2 (de)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
RU2505850C2 (ru) * 2012-03-29 2014-01-27 Борис Михайлович Власов Способы выполнения элементарных вычислительных операций (эво) и устройство для его осуществления

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6265923B1 (en) * 2000-04-02 2001-07-24 Sun Microsystems, Inc. Dual rail dynamic flip-flop with single evaluation path
DE10130484A1 (de) * 2001-03-01 2002-09-19 Infineon Technologies Ag 7-zu-3 Bit Carry-Save Addierer
US20030014459A1 (en) * 2001-06-29 2003-01-16 Fletcher Thomas D. Cascaded domino four-to-two reducer circuit and method

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE3631992A1 (de) * 1986-03-05 1987-11-05 Holger Sedlak Kryptographie-verfahren und kryptographie-prozessor zur durchfuehrung des verfahrens

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6265923B1 (en) * 2000-04-02 2001-07-24 Sun Microsystems, Inc. Dual rail dynamic flip-flop with single evaluation path
DE10130484A1 (de) * 2001-03-01 2002-09-19 Infineon Technologies Ag 7-zu-3 Bit Carry-Save Addierer
US20030014459A1 (en) * 2001-06-29 2003-01-16 Fletcher Thomas D. Cascaded domino four-to-two reducer circuit and method

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
RU2505850C2 (ru) * 2012-03-29 2014-01-27 Борис Михайлович Власов Способы выполнения элементарных вычислительных операций (эво) и устройство для его осуществления

Also Published As

Publication number Publication date
WO2004077196A3 (de) 2005-02-10
DE10307942B3 (de) 2004-03-11

Similar Documents

Publication Publication Date Title
DE69731700T2 (de) Arithmetischer Schaltkreis und arithmetisches Verfahren
DE102020113922A1 (de) Multipliziererschaltungsanordnung mit reduzierter latenz für sehr grosse zahlen
DE69132540T2 (de) Programmierbare logische Schaltung
EP1677185B1 (de) Vorrichtung und Verfahren zum Umsetzen und Addiererschaltung
DE4101004A1 (de) Paralleler multiplizierer mit sprungfeld und modifiziertem wallac-baum
EP1324188A2 (de) Verfahren zum Multiplizieren zweier Faktoren aus dem Galois-Feld sowie Multiplizierer zum Durchführen des Verfahrens
DE102005011374B3 (de) Sicheres und schnelles Rechenwerk für Addiereschaltungen von Kryptographieprozessoren
DE10307942B3 (de) Halbaddierer
DE10305849B3 (de) Carry-Ripple Addierer
DE10324049B4 (de) Integrierte Schaltung und Verfahren zum Betreiben der integrierten Schaltung
DE10106085B4 (de) Verfahren und Anordnung zur Finiten Feld Multiplikation
EP1506473B1 (de) Ausspähungsgeschützte modulare inversion
DE10201450B4 (de) Carry-Skip-Addierer für verschlüsselte Daten
DE10130484B4 (de) 7-zu-3 Bit Carry-Save Addierer und Addierer damit
WO2007012102A2 (de) Verfahren und schaltung zur abhörsicheren durchführung von rechenoperationen
EP1466245B1 (de) Rechenwerk und verfahren zum kombinieren eines ersten operanden mit einem zweiten operanden
DE19717970B4 (de) Schaltungsanordnung einer digitalen Baugruppe zur Multiplikation und Addition von Binärzahlen
DE10129241B4 (de) Multifunktionaler Rechner
DE102005033812B3 (de) Paralleler skalierbarer und konfigurierbarer Addierer
DE10206830A1 (de) Verfahren und Anordnung zum Zusammenführen von Daten aus parallelen Datenpfaden
EP1556754A2 (de) Vorrichtung und verfahren zum erzeugen einer pseudozufälligen folge von zahlen
EP1485779A1 (de) Rechenwerk und verfahren zum addieren
DE1449528B1 (de) Schaltungsanordnung zur Erzeugung eines Übertragsergebnisses bei einem Paralleladdierer
DE10130483A1 (de) 6-zu-3 Bit Carry-Save Addierer
EP1283463A2 (de) Carry-Ripple-Addierer

Legal Events

Date Code Title Description
AK Designated states

Kind code of ref document: A2

Designated state(s): AE AG AL AM AT AU AZ BA BB BG BR BW BY BZ CA CH CN CO CR CU CZ DK DM DZ EC EE EG ES FI GB GD GE GH GM HR HU ID IL IN IS JP KE KG KP KR KZ LC LK LR LS LT LU LV MA MD MG MK MN MW MX MZ NA NI NO NZ OM PG PH PL PT RO RU SC SD SE SG SK SL SY TJ TM TN TR TT TZ UA UG US UZ VC VN YU ZA ZM ZW

AL Designated countries for regional patents

Kind code of ref document: A2

Designated state(s): BW GH GM KE LS MW MZ SD SL SZ TZ UG ZM ZW AM AZ BY KG KZ MD RU TJ TM AT BE BG CH CY CZ DE DK EE ES FI FR GB GR HU IE IT LU MC NL PT RO SE SI SK TR BF BJ CF CG CI CM GA GN GQ GW ML MR NE SN TD TG

121 Ep: the epo has been informed by wipo that ep was designated in this application
122 Ep: pct application non-entry in european phase
DPEN Request for preliminary examination filed prior to expiration of 19th month from priority date (pct application filed from 20040101)