DE10307942B3 - Half adder for cryptographic applications has input stage for 3 input operands, switching stages for output bits and corresponding output stages - Google Patents

Half adder for cryptographic applications has input stage for 3 input operands, switching stages for output bits and corresponding output stages Download PDF

Info

Publication number
DE10307942B3
DE10307942B3 DE2003107942 DE10307942A DE10307942B3 DE 10307942 B3 DE10307942 B3 DE 10307942B3 DE 2003107942 DE2003107942 DE 2003107942 DE 10307942 A DE10307942 A DE 10307942A DE 10307942 B3 DE10307942 B3 DE 10307942B3
Authority
DE
Germany
Prior art keywords
output
stage
bit
potential
input
Prior art date
Legal status (The legal status 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 status listed.)
Expired - Fee Related
Application number
DE2003107942
Other languages
German (de)
Inventor
Astrid Dipl.-Phys. Dr. Elbe
Norbert Dipl.-Phys. Dr. Janssen
Holger Dipl.-Ing. Sedlak
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Infineon Technologies AG
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
Priority to DE2003107942 priority Critical patent/DE10307942B3/en
Priority to PCT/EP2004/001874 priority patent/WO2004077196A2/en
Application granted granted Critical
Publication of DE10307942B3 publication Critical patent/DE10307942B3/en
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

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

Abstract

The half adder adds the bits of at least 3 input operands via an input stage (10), with a switching stage (12a,12b,12c) for each output bit, delivering a supplied potential (16a,16b,16c) to its output (18a,18b,18c) which represents the output bit (22b,24b,26b) or an inverted version of the output bit (22a,24a,26a), the output of each switching stage is coupled to an output stage (14a,14b,14c), supplied with a pre-charge/pre-discharge potential.

Description

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.The present invention relates refer to half adder circuits and in particular to half adder circuits for adding bits of at least three input operands to at least to get two output bits.

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 Moduloperanden N, einen Multiplikanden-Operanden C und einen Zwischenergebnis-Operanden Z. Durch entsprechende Verschiebung/Gewichtung der drei Operanden vor der Addition kann eine durch einen Multiplikations-Look-Ahead-Algorithmus und einen Reduktions-Look-Ahead-Algorithmus beschleunigte Multiplikation/Reduktion durchgeführt werden.The DE 3631992 C2 discloses a cryptographic 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 comprise a module operand N, a multiplicand operand C and an intermediate result operand Z. By appropriate shifting / weighting of the three operands before the addition, one by means of a multiplication look-ahead algorithm and a reduction look-ahead algorithm Accelerated multiplication / reduction algorithm can be performed.

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 7 zwei aufeinanderfolgende Bit-Slices, um die zwei Summenbits i-1 und i zu berechnen, und zwar aus den drei Eingangsoperandenbits Ci, Ni, Zi bzw. Ci-1, Ni-1, Zi-1 bzw. aus Ci-2, Ni-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 xi, yi in die nachgeschalteten Zwei-Bit-Volladdierer so eingespeist werden, wie es in 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-1) 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. 7 shows a section of the adder, which represents the heart of the cryptographic processor, which is in the DE 3631992 C2 is shown. In detail shows 7 two consecutive bit slices to calculate the two sum bits i-1 and i, namely from the three input operand bits C i , N i , Z i and C i-1 , N i-1 , Z i-1 and from C i-2 , N i-2 and Z i-2 . The three-operand addition of C, N, Z is broken down into a two-stage operation when viewed at the bit level. To perform the first stage of the operation is a three bit half adder 80 provided, each three-bit half adder 80 a two-bit full adder 81 is connected downstream. The three-bits half adder produces two output bits x i, y i, wherein the output bits of x i, y i in the downstream two-bit full adders are fed as it in 7 Darge is. Specifically, in each two-bit full adder of a bit slice, the low-order bit y i at the output of the three-bit half adder with the high-quality bit of the one-order lower three-bit half adder stage (x i-1 ) in the two bit full adder 81 combined to one sum bit 82 as well as a carry bit 83 to calculate. 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.

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.In the second section, the two numbers are replaced in the usual way by the two-bit full adder 81 added. 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.

Der in 7 gezeigte Drei-Operanden-Addierer 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ß besonders 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.The in 7 The three-operand adder shown is problematic in that neither the input operands C, N, Z nor the "intermediate operands" x, y are provided. This is problematic in that particularly in the normal case in which all circuits are implemented in CMOS logic, the switching of a bit from 0 to 1 or from 1 to 0 leads to a current pulse which begins when a bit state is switched over, as is known, CMOS circuits do not consume any current in the static state However, they have a power consumption, which can be determined by a performance analysis, which in principle makes it 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.

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 bräuchte 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.An attacker could, for example, by admission of the current profile determine whether a switchover from 0 to 1 or from 1 to 0. With an unsecured circuit would always then a bit switch occurs when in the current profile a current peak is recognizable. An attacker can therefore do the whole Understand the switching behavior of an arithmetic unit based on the current profile. The attacker needed then just a single bit in a whole sequence to to be able to reconstruct from it, whether switching from a "1" to a "0" or vice versa.

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.Have certain CMOS circuits furthermore the property that the Switching from 0 to 1 entails a different power consumption than switching from 1 to 0. In this case, an attacker sees through a comparison of two different current peaks immediately, which bits have been processed in the arithmetic unit.

Als Abwehrmaßnahme gegen solche Leistungsanalyseangriffe wurde 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 daher 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 Stromprofil 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 Leistungsanalyseattacken immun.As a countermeasure against such performance analysis attacks, it was proposed to use a so-called dual-rail technique. In principle, with dual-rail technology, each signal path is carried out twice. For example, a signal x is processed normally on the first signal path. The signal x is not processed on the second signal path integrated in the same chip, but the complementary signal x , This means that whenever there is a transition from 0 to 1 in the signal line, for example, a complementary transition takes place in the other line, that is to say the second “rail”. For each bit transition, therefore, both transitions always take place on both lines This means that for scarf If the transition from 0 to 1 and 1 to 0 requires different amounts of current, it is no longer possible to determine whether a transition from 0 to 1 or from 1 to 0 has taken place. This is because the current profile contains a peak for each circuit transition, which is the superposition of the current consumption of the two rails. The dual-rail technology provides a high level of safety, but with the disadvantage that all circuits normally have to be carried out twice and that the power consumption of the entire circuit is also twice as high. However, the circuit is already somewhat immune to performance analysis attacks.

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 Precharge/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 Vorbereitungszyklus 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.If only dual-rail technology is used, it can still be seen from the current profile whether a certain bit has changed from 0 to 1 or from 1 to 0 or has remained the same as in the previous clock cycle. In the case of a bit transition, a peak in power can be seen. However, the peak power is not evident if a bit has remained from 1 cycle to the next, for example, at 1 or at 0, ie has not changed. To prevent attacks based on this effect, it was proposed to add a pre-charge / predischarge mode to the dual-rail technology. The circuit is operated alternately in a data mode and a preparation mode (pre-charge / predischarge). 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 then to feed complementary input signals to be processed in the two rails in the data mode. This means that, from one data cycle to one preparation cycle or from one preparation cycle to one data cycle, exactly the same number If the preparation mode is designed as a predischarge mode, all input data in the preparation mode are not initialized to 1, as in the pre-charge, but to "pre-discharge" to 0. Then exactly the same number of transitions takes place from a preparation cycle to a data cycle and vice versa.

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.As it has been done is, is for execution of modular operations such as B. addition or multiplication, for example in the context of cryptographic algorithms such as RSA or elliptic curves, a three-operand adder is required. These operations must be done the various reasons from the adder opposite Power attacks carried out become. Since cryptographic calculations are extremely computationally complex, must Adder have a high performance. Because especially in cryptography long operands must be processed, with the operand length at elliptic curves is in the range between 100 and 200 bits and in the range of RSA between 1,024 and 2,048 bits, that has Calculator itself a big one bit length, about the demands placed on the arithmetic unit for speed to reach.

Um das in 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.To do that in 7 shown arithmetic unit, which shows sections of two bit slices of a larger arithmetic unit with, for example, 2300 bit slices, to make them more secure against cryptographic attacks, it is first necessary to use the input operands C, N, Z in dual-rail technology half adders 80 supply.

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 C i bezeichnet wird, komplementär zu dem Bit Ci ist. In einem dem Datentakt nachgeordneten 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 C i 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.An even better security is not only to use a dual-rail technology, but to use a dual-rail technology with pre-charge or pre-discharge. Here, a data cycle alternates with a so-called preparation cycle. In a data cycle, for example, bit C i is 0 or 1, while the complementary bit that is fed on the “second rail” and with C i is called, is complementary to the bit C i . In a preparation clock downstream of the data clock, in the case of a pre-charge, a preparation of both lines on z. B. Vdd performed, which could correspond to the logical state "1", for example. Both dual rail lines thus have the same value in the preparation mode. In the case of a discharge, both lines C i and C i are brought to the potential Vss, which is typically the ground potential, the ground potential in the present example corresponding to a logical "0". Of course, Vss can also correspond to a logical "1". Then Vdd would correspond to a logical "0".

Konsequenterweise müßten dann die Bits xi und yi bzw. xi -1 und yi -1 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.Consequently, the bits x i and y i or x i -1 and y i -1 would then also have to be used in dual-rail technology with precharge to the corresponding downstream 2-bit full adders 81 are supplied, with a data cycle always following a preparation cycle. The carry bits C 83 and the sum bits 82 can also be led out of the 2-bit full adder using dual-rail technology with pre-charge / pre-discharge.

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 Zi rechnet, um xi und yi zu erhalten. Der zweite 3-Bit-Halbaddierer 80 für denselben Bit-Slice würde dann mit den invertierten Bits C i, N i und Z i 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 nicht-invertierten Eingangsbits die invertierten Ausgangsbits zu berechnen und umgekehrt.However, for optimal security it is not only sufficient that the input lines into the elements 80 and 81 and the output lines from the elements 80 and 81 are implemented in dual-rail technology. Instead, it is also important that the circuits 80 . 81 are designed as dual-rail circuits. This can be achieved by using the 3-bit half adder 80 and every 2-bit full adder 81 is present twice and is designed such that the first 3-bit half adder 80 for example, calculates with the non-inverted operand bits C i , N i and Z i in order to obtain x i and y i . The second 3-bit half adder 80 for the same bit slice would then have the inverted bits C i , N i and Z i work to z. B. the inverted output bits x i and y i get. Of course, any cross combinations are conceivable, so that the first 3-bit half adder is designed to convert the non-inverted input bits into the inverted output bits to calculate and vice versa.

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 Modullä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 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.The same would have to be done for the 2-bit full adder 81 be carried out in order to achieve an optimally secure circuit in a bit slice of a long number arithmetic unit for RSA calculation with module lengths of 1024 bits, 2048 bits etc. Such arithmetic units are used to carry out modular operations such. B. addition and multiplication, for example in the context of men cryptographic algorithms such as RSA or elliptic curves required. A 3-operand addition that the 3-operand adder, which in 7 is shown in sections, consists of adding a first summand C to a second summand Z, and finally adding or subtracting the module N depending on the look-ahead rule. As has been carried out, these operations must be carried out safely by the adder against power attacks.

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 Rechenzeit benötigt bzw. im Falle von begrenzten Ressourcen, wie beispielsweise auf einer Chipkarte, noch mit einer erträglichen Rechenzeit hochsichere Operationen ausführen kann.It is immediately obvious that cryptographic Calculations extremely complex are. Therefore, in addition to security, there is also a requirement the arithmetic unit that it has a high performance in that it requires as little computing time as possible or in the case of limited resources, such as on one Chip card, still with a tolerable Computing time can perform highly secure operations.

Da die Arithmetik kryptographischer Operationen eine Langzahlarithmetik 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.Because arithmetic is more cryptographic Operations is a long number arithmetic, as has been done is, the arithmetic unit itself has a large bit length in order to achieve any required performance to reach. So it is assumed that each bit slice is a digit corresponds to a module in that all digits are in corresponding Hardware bit slices "mapped" are. Only this maximum parallel design is guaranteed in most make adequate performance.

Im Hinblick auf die geforderte maximale Parallelität und andererseits 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.With regard to the required maximum parallelism and on the other hand in terms of the cost of the chip that is such Includes arithmetic unit, and also with regard to other limitations placed on the chip area it is imperative that the calculator is very space-saving to design. In principle, an arithmetic unit is required that has a high performance that as well is safe and that requires a minimal area.

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ß.The above three requirements contradict each other in that maximum security thanks to dual-rail technology with a double space requirement the calculator must be bought very expensive.

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.The object of the present invention is to create a half adder that is safe on the one hand is bearable and on the other hand area cost brings with it.

Diese Aufgabe wird durch einen Halbaddierer gemäß Anspruch 1 gelöst.This task is done by a half adder according to claim 1 solved.

Der vorliegenden Erfindung liegt die Erkenntnis zugrunde, daß der 3-Bit-Halbaddierer z. B. in einer Bit-Slice eines kompletten 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 ausgefü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 Version 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.The present invention lies based on the knowledge that the 3-bit half adder e.g. B. in a bit slice of a complete 3-operand adder not in complete dual-rail technology accomplished is implemented twice on a circuit, but that instead so to speak a "one-hot" implementation the half adder is used, which leads to the fact that the half adder saves space accomplished can still be an adequate security depending on the embodiment achieved against power attacks. A half adder according to the invention for adding from bits of at least three input operands to at least two To get output bits includes for each Output bit a switching stage, the switching stage being designed to according to a Half adder rule for the corresponding output bit depends a computing potential from the bits of the input operands to one Switch through the output of the switching stage, the computing potential at the output the output bit or an inverted version of the Represents output bits. The half adder further comprises an output stage for each output bit, that of the switching stage for this output bit is connected downstream. The output stage includes one first output and a second output, being in a data mode the output bit can be output at the first output, and wherein in an inverted version of the data mode at the second output Output bits can be output, and the output stage is also effective is to in a preparation mode the first output and the second To bring output to the same preparation potential, whereby the preparation potential differs from the computing potential.

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 Version des Ausgabebits liefert. Es ist einsichtig, daß die geforderte Information sowohl im Ausgabebit als auch im invertierten Ausgabebit enthalten ist.The half adder according to the invention is in this regard area-saving, that the Switching stage only has to calculate an output bit, whereby it depends on the implementation whether the switching stage the output bit itself or the inverted version of the output bit. It is understood that the information requested contained in both the output bit and the inverted output bit is.

Das entsprechende von der Schaltstufe nicht berechnete komplementä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.The corresponding complementary bit 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. Depending on the implementation, 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 which is calculated by the switching stage and has been reloaded 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 clock preceding the data clock.

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.The circuit according to the invention is in this regard area-saving, that the Switching level the inverted bit or the non-inverted bit depending on the implementation calculated, and does not have to calculate both bits. The second bit is then generated in the dual-rail pre-charge / pre-discharge output stage.

Die erfindungsgemäße Schaltung ist ferner dahingehend vorteilhaft, 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.The circuit according to the invention is also in this regard advantageous that they can be implemented with little transistor. This is the case if the switching stage is designed such that the computing potential dependent from the three input operands to an output on one of different paths turns on. For each path branch is preferred to have the same number of transistors to take so that everyone path of the computing potential that can be implemented by the switching stage an equal number of transistor switches to one output brings with it, so that from Outside it is not clear which path from the performance profile has taken the gear. It is therefore not based on electricity consumption you can see which input operands in the current calculation cycle were attached.

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 vorhanden sein. Daher können beliebige Halbaddierer-Vorschriften für einzelne Bits implementiert werden, ohne daß ein Transistor-Overhead dahingehend vorhanden ist, daß z. B. alle Schaltstufen dieselbe Anzahl von Transistoren haben müssen.The circuit according to the invention is also in this regard advantageous that they a high degree of flexibility allows. So for each output bit has its own switching stage. Electricity security is already reached when the number of transistors in one Path in a switching stage equal to the number of transistors from other paths in the same switching stage. However, it must no equality of the transistors from one switching stage to the next switching stage to be available. Therefore can any half-adder rules implemented for individual bits be without a Transistor overhead is present in that z. B. all switching stages must have the same number of transistors.

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.By implementing any half adder rules with regard to the output coding of the half adder result (binary weighting, Gray code, decimal weighting etc.) can therefore always be optimal switching stage designed with little transistor can be found.

Darüber hinaus ist die erfindungsgemäße Schaltung querstromarm 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.In addition, the circuit according to the invention Low cross-current and ideally even cross-current-free, since only ever Transhipment required from a single output stage exit node are. So there is always an output bit in preparation mode so to speak calculated on suspicion while in data mode only a single bit of the two output bits of an output stage must be reloaded. This Transhipment takes place without cross current from high potential (e.g. Vdd) to low potential (Vss) and also has low power consumption compared to the case where two output bits are always reloaded Need to become. The circuit according to the invention is therefore not only low in cross-flow but also in its total Low power consumption, what especially for Applications in which, for example, a chip card is advantageous has no self-sufficient power supply in the form of a battery, like z. B. Contactless applications.

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.The circuit according to the invention can also be implemented inexpensively, since the individual stages do not have to be implemented in full CMOS technology. It instead suffice for the individual stages either exclusively NMOS transistors or PMOS transistors. However, both transistor types are not necessarily used in all stages needed as opposed to a full one CMOS design is the case where a PMOS transistor is always on corresponding complementary transistor (NMOS transistor) is assigned.

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.The circuit according to the invention is also in this regard flexible that the Arithmetic potential, which by the switching stage according to the input operands an output is switched through, the high potential Vdd or the low potential can be Vss. Is the high for the computing potential Potential Vdd chosen, see above must for the preparation potential the other potential in the output stage, i.e. in the present case the low potential Vss can be used. In contrast, is in the Switching stage uses the low potential Vss as computing potential, so in a preparation potential can be used at the output stage differs from the computing potential. In the latter case this would be the high 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 Ausgabestufe 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.The half adder according to the invention thus contributes to a safe, powerful and area-minimal 3-operand adder. The operands that are applied to the 3-operand arithmetic unit are typically in memory elements, such as. B. SRAM cells are stored and are led in dual-rail execution to the arithmetic unit in order to achieve security against power attacks. Since the full adder that follows the half adder can be designed compactly in dual-rail pre-charge logic, the connections between the half and full adder in turn can also be implemented in dual-rail logic with pre-charge / pre-discharge technology his. 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 in order to calculate one bit each for the output stage, while the other bit is to a certain extent generated by the output stage itself, that is to say “taken over” from the previous preparation mode. The total sum of the capacities to be reloaded is the same for any bit pattern present at the input. This allows the bit pattern to be applied during the switching processes in the half adder are not recognizable from the outside.

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 Halbaddierervorschrift hat, gewissermaßen „diktiert".According to the invention it is preferred to achieve one if possible high power the paths to be switched with as few transistors as possible equip. This can be done individually for each switching stage depending on the half adder specification performed arbitrarily be so that not a switching stage that has a more complex semi-adder specification, the transistor number for another switching stage, which is a less complex semi-adder regulation has, so to speak, "dictated".

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 erzeugen. 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.The half adder according to the invention is in its preferred form as a 3-operand adder with three input operands used to generate two binary weighted output bits. By connecting several such 3-operand adders in series can any N-operand adder, for example, to execute a not only three times but an N times ZDN algorithm become. With such an N-operand adder, which consists of several 3-operand adders according to the invention connected in series is, can the performance per chip area increase again, with a surface overhead that is disproportionately low to gain performance.

Der erfindungsgemäße Halbaddierer hat jedoch auch das Potential, als direkter N-Operanden-Addierer ohne Verwendung von hintereinander geschalteten 3-Operanden-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 beispielsweise 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.However, 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 using 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. For example, a 7-operand adder has a maximum of seven 1's if all seven input operand bits are 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.

Bevorzugte Ausführungsbeispiele der vorliegenden Erfindung werden nachfolgend Bezug nehmend auf die beiliegenden Zeichnungen detailliert erläutert. Es zeigen:Preferred embodiments of the present Invention are hereinafter referred to with reference to the accompanying Drawings explained in detail. Show it:

1 ein Blockschaltbild eines Halbaddierers mit einer beliebigen Anzahl von Eingangsoperanden und einer entsprechenden Anzahl von Ausgabebits; 1 a block diagram of a half adder with any number of input operands and a corresponding number of output bits;

2 eine Tabelle zu möglichen Kombinationen des Rechenpotentials, des Vorbereitungspotentials und einer entsprechenden Transistortechnologie; 2 a table of possible combinations of the computing potential, the preparation potential and a corresponding transistor technology;

3 eine Wahrheitstabelle für einen 3-Operanden-Halbaddierer mit zwei Ausgabebits SUM1 und SUM0; 3 a truth table for a 3-operand half adder with two output bits SUM1 and SUM0;

4 eine schematische Darstellung von Schaltstufen mit unterschiedlichen Rechenpotentialen; 4 a schematic representation of switching stages with different computing potentials;

5a ein Beispiel für Pfade durch die Schaltstufen für ein bestimmtes Operanden-Bitmuster; 5a an example of paths through the switching stages for a particular operand bit pattern;

5b eine beispielhafte Darstellung verschiedener Pfade durch Schaltstufen für ein alternatives Operanden-Bitmuster; 5b an exemplary representation of different paths through switching stages for an alternative operand bit pattern;

6 ein Blockschaltbild auf Transistorebene für einen bevorzugten Halbaddierer gemäß der vorliegenden Erfindung mit Dual-Rail-Eingangsstufe, zwei Schaltstufen und zwei Ausgabestufen; und 6 a block diagram at transistor level for a preferred half adder according to the present invention with dual-rail input stage, two switching stages and two output stages; and

7 ein bekannter 3-Operanden-Addierer mit entsprechend verschalteten 3-Bit-Halbaddierern und 2-Bit-Volladdierern für Bit-Slices eines Langzahlrechenwerks. 7 a known 3-operand adder with correspondingly interconnected 3-bit half adders and 2-bit full adders for bit slices of a long number arithmetic unit.

1 zeigt ein schematisches Blockschaltbild eines erfindungsgemäßen Halbaddierers zum Addieren von Bits von mehreren Eingangsoperanden, die in 1 derart dargestellt sind, daß sie einer Eingangsstufe 10 zugeführt werden. Die Eingangsoperanden sind in 1 mit C, N, Z bezeichnet, wobei eine beliebige weitere Anzahl von Eingangsoperanden der Eingangsstufe 10 zugeführt werden können. Die Eingangsstufe ist primär wirksam, um die Eingangsoperanden an in 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 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 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 1 ebenfalls ausgangsseitig dargestellt. Jeder Schaltstufe 12a, 12b, 12c ist eine Ausgabestufe 14c zugeordnet, wie es aus 1 shows a schematic block diagram of a half adder according to the invention for adding bits of several input operands, which in 1 are shown such that they have an input stage 10 are fed. The input operands are in 1 denoted by C, N, Z, with any further number of input operands of the input stage 10 can be supplied. The input stage is primarily effective to turn the input operands on 1 shown n switching stages 12a . 12b . 12c to distribute. The switching stage 12a is the output bit 0 assigned, which is also referred to as bit SUM0. The complementary bit SUM0 is in 1 also shown on the output side. The switching stage 12b is the output bit 1 assigned, which is also referred to as bit SUM1. The complementary bit SUM 1 is in 1 also shown on the output side. The switching stage 12c is intended for the output bit n. This is also called bit SUMn. The complementary bit SUMn is in 1 also shown on the output side. Every gear level 12a . 12b . 12c is an output level 14c assigned how it out

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. 1 can be seen. In particular, the output level 14a the switching stage 12a downstream for bit 0. The output level 14b is the switching stage 12b downstream for bit 1. The output level 14c is the switching stage 12c subordinate for bit n.

Wie es aus 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 dasselbe 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.Like it out 1 it can be seen that each switching stage can be supplied with a computing potential for this switching stage, as is the case with the computing potential connections 16a . 16b and 16c is shown. In principle, 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. For reasons of circuit implementation, however, it is preferred that each switching stage have the same computing potential 16c . 16b . 16a which is either Vss or Vdd. If there is the possibility that the implemented circuit has more than two potentials, then computing potentials deviating from Vss or Vdd can also affect the switching stages 12a . 12b . 12c are fed.

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 invertierte Version des Ausgabebits darstellt.The switching stages 12a . 12b . 12c are effective, the computing potential supplied to them 16a . 16b . 16c to an exit 18a . 18b . 18c feed, which to the output 18a . 18b . 18c supplied voltage potential represents the output bit or an inverted version of the output bit.

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 invertierte Bit SUM0 darstellen, je nach gewählter Implementierung.At this point it should be pointed out that the output bit is interpreted as a logical bit, that is to say as a logical "0" or as a logical "1". Will the exit 18a the switching stage 12a the computing potential 16a due to one by the switching stage 12a formed conductive connection from the input 16a to the exit 18a fed, so that at the output 18a applied voltage value either the logical output bit SUM0 of the downstream output stage 14a represent or the inverted bit SUM0 depending on the chosen implementation.

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 nicht-invertierte Ausgabebit SUM0.The output level 14a receives the signal on the output as an input signal 18a the switching stage and as a further input signal a preparation potential at one connection 20a , The situation is similar for the output levels 14b and 14c that their preparation potentials via inputs 20b or 20c received. Each output stage has two outputs 22a . 22b , Accordingly, the output stage includes 14b also two outputs for bit 1 24a . 24b , Similarly, the output stage also includes 14c also two outputs for bit n 26a . 26b , The exit 22a the issue level 14a the inverted output bit provides for bit 0 SUM0 , The output delivers accordingly 22b the issue level 14a the non-inverted output bit SUM0.

Der in 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 Vorbereitungsmodus 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.The in 1 Half adder shown 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. The presence of a data mode or a preparation mode is determined by control lines 28a . 28b . 28c the output levels 14a . 14b respectively. 14c signaled. Optional is the entry level 10 can also be operated in data mode or preparation mode. This signals the control device 28 the input stage via another control line 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.In data mode, the output bit is in non-inverted form at an output of an output stage, i.e. SUM0, SUM1 or SUMn. In data mode, there is an inverted version of the output bit at the other output, ie SUM0 . SUM 1 respectively. SUMn ,

Die Ausgabestufen sind ferner wirksam, um in einem Vorbereitungsmodus an einem Ausgang und an dem anderen Ausgang dasselbe 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 1 gezeigten Ausführungsbeispiel den einzelnen Ausgabestufen von der Steuereinrichtung 28 über die Steuerleitungen 28a, 28b bzw. 28c signalisiert.The output stages are also effective to achieve the same preparation potential in one preparation mode at one output and at the other output as that of the output stage via the corresponding input 20a . 20b respectively. 20c is supplied to create, the preparation potential according to the invention, that of an output stage, for example, via the input 20a is supplied, differs from the computing potential that the switching stage upstream of the output stage under consideration, for. B. via the entrance 16a is fed. The preparation mode is in the in 1 Embodiment shown the individual output stages from the control device 28 over the control lines 28a . 28b respectively. 28c signaled.

Im nachfolgenden wird anhand von 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 Ausgabestufe 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.The following is based on 2 discussed preferred combinations of computing potential, preparation potential and transistor technology. Is used as the computing potential of a switching stage (input 16a ) the high potential Vdd is supplied to a circuit, the preparation potential different from the downstream output stage is the low potential Vss. The supply of the low potential Vss as preparation potential leads to a pre-discharge in the output stage (e.g. 14a ), so that in preparation mode both bits SUM0, SUM0 have a low voltage state and thus represent a logic “0” in the example shown here.

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 data mode, the switching stage 12a then the high computing potential Vdd of the 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, ie changed from the logic state "0" to the logic state "1".

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 durchschalten.In the case where as a computing potential Vdd is taken and Vss is used as preparation potential, PMOS technology is preferred as transistor technology because the PMOS transistors cheaper switch through a high computing potential.

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, dahingehend, daß die beiden Ausgabebits SUM0, SUM0 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 SUM0 oder SUM0 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.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, in that the two output bits SUM0, SUM0 the issue level 14a , represent, for example, a logical "1". The switching stage switches the low potential Vss either as a bit or bit the issue level 14a fed, which then only one of the two output bits SUM0 or SUM0 reloads into the low state, ie changed from a logical "1" to a logical "0". In this case, NMOS technology is preferred as the transistor technology in the switching stage, since it is best suited for switching through low voltage potentials.

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 SUM1, SUM0 zu berechnen. Die Halbaddierervorschrift in 3 ist als „Einsen-Zähler" ausgebildet, wobei die Anzahl von Einsen durch die Bits SUM0, SUM1 in binärer Gewichtung dargestellt werden. Die beiden Ausgangsbits SUM1 und SUM0 stellen somit eine binäre Zahl dar, wobei das Bit SUM1 das MSB dieser binären Zahl ist, und wobei das Bit SUM0 das LSB dieser Zahl ist. Die beiden Ausgangsbits SUM1 und SUM0 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 SUM1 und SUM0 gesetzt, was der binären Zahl „11" entspricht, die in dezimaler Darstellung gleich der Zahl 3 ist. 3 shows in table form a preferred half-adder rule for a 3-operand adder in order to calculate corresponding output bits SUM1, SUM0 for each bit pattern of the input operands C i , N i and Z i . The half adder rule in 3 is designed as a "ones counter", the number of ones being represented by the bits SUM0, SUM1 in binary weighting. The two output bits SUM1 and SUM0 thus represent a binary number, the bit SUM1 being the MSB of this binary number, and where bit SUM0 is the LSB of this number. The two output bits SUM1 and SUM0 therefore represent the number of ones of each bit pattern of the input operands in binary coding. Only in the case where all three input operands have a logical "1", both bits SUM1 and SUM0 are set, which corresponds to the binary number "11", which in decimal form equals the number 3 is.

Für Fachleute ist es offensichtlich, daß anhand der Systematik von 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.It is obvious to experts that based on the systematics of 3 any N-operand half adders can be built. If, for example, a 7-operand half adder is set up, a number of three output bits is required to represent the maximum case in which all seven operands have a logical "1", since the binary number "111" of the decimal number "7" equivalent.

Für Halbaddierer mit einer größeren Anzahl von sieben Operanden werden daher entsprechend mehr Ausgabebits benötigt, wenn die normale binäre Gewichtung eingesetzt wird.For Half adders with a larger number of seven operands are therefore correspondingly more output bits needed if the normal binary Weighting is used.

Aus der Systematik von 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 SUM1, SUM0 beliebig eingestellt werden, dahingehend, daß eine Bitkombination von SUM0 und SUM1 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.From the systematics of 3 it can also be seen that a different coding can also be used if it is favorable for a special case. The meaning of the bits SUM1, SUM0 can be set as desired, so that a bit combination of SUM0 and SUM1 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.

Beliebige weitere Vereinbarungen für die Bits SUM1, SUM0 können getroffen werden. Ferner können je nach Halbaddierervorschrift weitere (redundante) Bits, z. B. SUM2, SUM3,... verwendet werden.Any other agreements for the Bits SUM1, SUM0 can to be hit. Furthermore, each according to the half adder rule further (redundant) bits, e.g. B. SUM2, SUM3, ... can be used.

4 zeigt in schematischer Form eine bevorzugte Ausführungsform einer Schaltstufe 12a und 12b für einen 3-Operanden-Addierer. In 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 4 dargestellt, daß jeder Schaltstufe die Eingangsoperanden (erster Operand, zweiter Operand, dritter Operand) zugeführt werden. Je nach Gestaltung der in 3 gezeigten Halbaddierer-Vorschrift bewirkt ein Operand eine Abzweigung des Pfades oder nicht. Wie es rechts in 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 4 dargestellt ist, der Pfad in einer 45°-Richtung fortgesetzt. 4 shows in schematic form a preferred embodiment of a switching stage 12a and 12b for a 3-operand adder. In 4 the case is also shown that the two switching stages 12a . 12b different computing potentials 16a . 16b to have. So has the switching stage 12a the low potential Vss as a computing potential. The switching stage 12b on the other hand has the high potential Vdd as computing potential 16b , With dashed lines 41 . 42 . 43 is in 4 shown that the input operands (first operand, second operand, third operand) are supplied to each switching stage. Depending on the design of the 3 half adder rule shown, an operand causes a branching of the path or not. Like it right in 4 a path is continued horizontally if the operand is 0. If, however, the operand is equal to a logical "1", then, as is also the case in 4 is shown, the path continues in a 45 ° direction.

Für eine Kombination von Eingangsoperanden wird durch das in 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.For a combination of input operands, the in 4 Switchgear shown a conductive path from the potential z. B. 16a to the non-inverted output bit or to the inverted output bit switched through in such a way that the computing potential Vdd or Vss is present at the corresponding inverted output or non-inverted output. It should be pointed out that the computing potential can never be present at both outputs, since the switching stage is designed such that a clear path from the computing potential connection 16a for example to a single exit 18a is obtained.

Nachfolgend werden anhand der 5a und 5b zwei jeweils verschiedene Pfade durch die einzelnen Schaltstufen für unterschiedliche Bitmuster dargestellt.Below are based on the 5a and 5b two different paths each represented by the individual switching stages for different bit patterns.

In 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 nicht-invertierte 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 SUM0 (22b) in den niedrigen Zustand entlädt, während das invertierte Bit SUM0 22a im hohen Zustand bleibt.In 5a the example is shown in which the first operand is 1, the second operand is 0 and the third operand is 1. For the switching stage 14a this means that a first switching node 50a run through in such a way that a 45 ° branch is taken since the first operand is equal to 1. A second switching node 50b is processed in such a way that the path continues horizontally since the second operand is 0. A third switching node 50c is run in such a way that a 45 ° branch is taken again since the third operand is equal to 1. This leads to the fact that the computing potential Vss determines the non-inverted bit of the switching stage on the output side. In data mode, a voltage state Vss for the non-inverted bit leads to that of the switching stage 14a downstream output stage 14b that have both outputs 22a . 22b in a state of "1", the non-inverted bit SUM0 ( 22b ) discharges to the low state while the inverted bit SUM0 22a stays high.

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 Spannungspotential Vdd anliegt. Das hohe Spannungspotential am Ausgang 18b führt dazu, daß in der Ausgabestufe 14b von 1 das nicht-invertierte Bit SUM1 24b von seinem niedrigen Zustand, den es im Vorbereitungsmodus hatte, auf den logisch hohen Zustand gesetzt wird, während das invertierte Bit SUM1 in seinem bereits aus dem Vorbereitungsmodus heraus bestehenden Zustand, also dem niedrigen Zustand „0" gelassen wird.The switching stage 14b has the high potential Vdd as computing potential. In a first branch node 52a a 45 ° junction is taken. In a second branch node 52b that corresponds to the second operand, a horizontal branch is taken. In a third branch node 52c , which corresponds to the third operand, a 45 ° branch is taken, so that finally at the exit 18b , which corresponds to the non-inverted bit, the high voltage potential Vdd is present. The high voltage potential at the output 18b leads to that in the output stage 14b of 1 the non-inverted bit SUM1 24b from its low state, which it had in preparation mode, to the logic high state, while the inverted bit SUM 1 in its state already existing from the preparation mode, ie the low state "0" is left.

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.From the description above it can be seen that the Switching stage only one bit, i.e. the inverted or the non-inverted Bit must calculate while the second bit then through the output stage from the previous one Preparation mode adopted becomes.

Ferner ist ersichtlich, daß z. B. in der Schaltstufe 14a in 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 5a ersichtlich ist, führt in dem Fall, in dem bereits der erste Eingangsoperand und der zweite Eingangsoperand gleich 0 waren, 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öchstens 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 SUM1, 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 nicht-invertierte Bit gleich 0 ist, wie es durch die Wahrheitstabelle von 3 gefordert wird.It can also be seen that, for. B. in the switching stage 14a in 5a eight different paths can be chosen according to the eight different combinations of the three input operands. However, as from the switching stage 14b of 5a is evident in the case where the first input operand and the second input operand was 0, that is, at a branch node 52d the path is continued horizontally, so that the third operand is no longer assigned a separate branch point. This can easily be seen from the fact that in the case where the first and the second operand were already equal to 0, at most a single 1 among the three operands, namely the 1 of the third operand, can come out, which in any case leads to this that the bit SUM1, as can be seen from the truth table, is equal to 0. The high potential Vdd therefore determines the state of the inverted bit bit to a logical "1" such that in data mode the non-inverted bit is 0 as determined by the truth table of 3 is required.

In 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 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" darstellt, 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.In 5b shows an alternative bit combination of the three operands, namely the case in which all three operands are equal to 1. In the switching stage 14a will the in 5b drawn path, which includes only 45 ° branches. The path eventually ends in that the low potential Vss, which represents a logic "0", at the inverted bit bit is applied. In the switching stage 14b it is already clear from the first two operands that the bit must be set so that the result, namely Vdd at the non-inverted output 18b the switching stage no longer depends on the third operand, so that the third operand no longer has to be assigned a separate branch point.

Aus den 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.From the 5a and 5b it can also be seen that the number of branch points, namely four at the switching stage 14b and five at the switching stage 14a need not be identical for every switching stage. Rather, a switching stage with as few junction points as possible is sought, since the number of junction points ultimately determines the number of transistors in the switching stage and thus the valuable chip area. However, security against power attacks is already achieved in that each path through a switching stage comprises the same number of branch points, although 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 has been switched through in a switching stage in order to be able to draw conclusions from the values of the three input operands.

Der Übersichtlichkeit halber ist in den 5a und 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 Folge, 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.For the sake of clarity, the 5a and 5b the assigned preparation mode is shown 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. So has the switching stage 14b due to the high computing potential Vdd, 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.

Analog hierzu hat die Schaltstufe 14a aufgrund des niedrigen Rechenpotentials Vss ein hohes Vorbereitungspotential zur Folge.The switching stage has the same analogy 14a due to the low computing potential Vss a high preparation potential.

Nachfolgend wird anhand von 6 auf ein bevorzugtes Ausführungsbeispiel der vorliegenden Erfindung auf Transistorebene Bezug genommen.The following is based on 6 referred to a preferred embodiment of the present invention at transistor level.

6 zeigt modulweise bevorzugte Transistorimplementationen einer Dual-Rail-Eingangsstufe (Block 10 in 1), von Schaltstufen (Blöcke 12a, 12b von 1) und Ausgabestufen (Blöcke 14a, 14b von 1). 6 shows preferred transistor implementations of a dual-rail input stage (block 10 in 1 ), from switching stages (blocks 12a . 12b of 1 ) and output levels (blocks 14a . 14b of 1 ).

Nachfolgend wird auf die Implementierung der Dual-Rail-Eingangsstufe (Block 10 in 1) eingegangen. Die Dual-Rail-Eingangsstufe in 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 6 ersichtlich ist. Die Eingangsstufe enthält ferner, wie es in 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 6 ersichtlich ist, das hohe Potential, da die Dual-Rail-Eingangsstufe mit dem hohen Potential Vdd an verschiedenen Punkten versorgt wird.The implementation of the dual-rail input stage (block 10 in 1 ) received. The dual rail input stage in 6 initially comprises six inputs for the three operands Z, N and C as non-inverted bits and inverted bits. The bits are fed to the dual rail input stage as described in 6 can be seen. The input stage also contains, as in 1 through the line 28d is indicated, a precharge signal Vss to drive the input stage in the preparation mode into a precharge state in which all six inputs are brought to the same potential. This potential is as it is in the voltage supply situation in 6 the high potential can be seen, since the dual-rail input stage is supplied with the high potential Vdd at various points.

Zur Auslösung des Precharge-Zustands, also im Vorbereitungsmodus, werden die in 6 als PMOS-Transistoren ausgeführten Transistoren an ihrem Gate mit dem niedrigen Potential Vss versehen, damit sie durchschalten, wie es aus 6 ersichtlich ist, um alle Operanden-Bit-Knoten und alle Knoten für invertierte Operandenbits auf das Potential Vdd zu legen.To trigger the precharge state, i.e. in preparation mode, the in 6 Transistors designed as PMOS transistors are provided at their gate with the low potential Vss, so that they turn on as it is 6 can be seen to put all operand bit nodes and all nodes for inverted operand bits to the potential Vdd.

Im einzelnen umfaßt jede Dual-Rail-Eingangsstufe vier Transistoren 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.In particular, each dual-rail input stage comprises four transistors 600 . 601 . 602 and 603 , the input stage assigned to the first operand being set out below merely 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, i.e. in the Vss on the line 28d is present, the high voltage Vdd present on one side of the two transistors on the output nodes 604 . 605 for the inverted first operand bit and the non-inverted first operand bit. This immediately turns the two transistors 603 . 602 blocked because they have the high potential Vdd at their respective gate connection.

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 Ni 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 i 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.In contrast, the line is in data mode 28d at the high potential Vdd, which causes the two transistors 601 and 600 are ineffective. The two transistors 602 . 603 serve for stabilization the relationships in data mode. For example, if the operand bit N i is high, the transistor is 602 blocked so that the potential Vdd on one side of the transistor 602 not at the knot 604 can come. The knot 604 is because it has the inverted bit N i of the first operand is at a low potential. This low potential means that the transistor stor 603 is opened. In the ideal state, however, no current flows because of the node 605 is also on Vdd. The transistor 603 however, serves the high potential on the node 605 stabilize and, if necessary, reload if leakage currents occur at any point.

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.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. In addition, the dual-rail input stage serves to send the operand bits over distribution rails 611 . 612 and 613 to distribute to the switching stages.

Wie es in 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 (SUM0 22b oder SUM0 22a) aus insgesamt zehn Transistoren 620629, wobei immer zwei Transistoren zusammen einen Verzweigungspunkt der in 5a und 5b gezeigten Verzweigungspunkte bilden. Analog hierzu besteht die Schaltstufe für das Bit 1 (SUM1 24b bzw. SUM1 24a) aus lediglich acht Transistoren 630637, wobei ebenfalls paarweise angeordnete Transistoren immer einen Verzweigungspunkt definieren.Like it in 6 is shown, the two switching stages are designed such that they are supplied with the high potential Vdd as the computing potential, as is the case with the voltage supplies 16a for the first switching stage and 16b is shown for the second switching stage. So there is the switching stage for bit 0, or for the bit for generating bit 0 (SUM0 22b or SUM0 22a ) from a total of ten transistors 620 - 629 , where always two transistors together form a branch point of the in 5a and 5b form branch points shown. The switching stage for the bit is analogous to this 1 (SUM 1 24b respectively. SUM 1 24a ) from just eight transistors 630 - 637 , transistors arranged in pairs also always defining a branch point.

Ferner sei darauf hingewiesen, daß die Situation des Rechenpotentials 16a, 16b gleich dem hohen Potential Vdd der Situation entspricht, die die Schaltstufe 12b in den 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 5a. Die beiden Transistoren 634 und 635 entsprechen dem Verzweigungspunkt 52d in 5a. Schließlich entsprechen die Transistoren 636 und 637 dem Verzweigungspunkt 52c.It should also be noted that the situation of the computing potential 16a . 16b equals the high potential Vdd of the situation that the switching stage 12b in the 4 . 5a and 5b Has. The transistors correspond in detail 630 and 631 the branch point 52a , The transistors 632 . 633 correspond to the branch point 52b of 5a , The two transistors 634 and 635 correspond to the branch point 52d in 5a , Finally, the transistors match 636 and 637 the branch point 52c ,

Analog hierzu entsprechen in der Schaltstufe für das Bit 0 die beiden Transistoren 620 und 621 dem Verzweigungspunkt 50a von 5a. Die Transistoren 622, 623 entsprechen dem Verzweigungspunkt 50b von 5b. Die Transistor 626 und 627 entsprechen dem Verzweigungspunkt 50c von 5a.Analogously to this correspond in the switching stage for the bit 0 the two transistors 620 and 621 the branch point 50a of 5a , The transistors 622 . 623 correspond to the branch point 50b of 5b , The transistor 626 and 627 correspond to the branch point 50c of 5a ,

Die Schaltstufen umfassen ferner eine in 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.The switching stages also include an in 6 at 639 shown output rail, which also represents the input rail for the downstream output stages. The two right lines of the output rail 639 are the upper output level 14b assigned while the two left lines of the output rail 639 the lower output level 40a assigned. It should be noted that the transistors in the switching stages operate only one path from the terminal 16b respectively. 16b to one of the lines of the output rail 40 turn on. It can also be seen that each path comprises the same number of transistors, regardless of which path is set by a switching stage depending on the bit pattern.

Aus 6 ist ferner ersichtlich, daß bei dem gezeigten Ausführungsbeispiel ein Verzweigungspunkt durch Verwendung eines komplementären Operandenbits zusätzlich zu dem nicht-invertierten 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 eingangsseitigen Single-Rail-Daten abgeleitet worden sind.Out 6 it can also be seen that in the embodiment shown 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. Alternatively, although it is not preferred with regard to the implementation and possible safety losses, an implementation could also be used in which only single-rail operands are fed to the switching stages. In this case, each branch point would include additional means to examine whether the bit supplied is a 1 or a 0 to connect a corresponding path. In this case, the half adder according to the invention could also be used for single-rail-dual-rail conversion, in order to convert single-rail data present on the input side into dual-rail data on the output side, the dual-rail data on the output side also according to Half adder rule have been derived from the input-side single rail data.

Die Funktionalität der beiden als Schalter fungierenden Transistoren beispielsweise 620 und 621, die den Verzweigungspunkt 50a in 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 Vorbereitungsmodus 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 Rechenpotential (Vss in diesem Fall) auszuführen.The functionality of the two transistors acting as switches, for example 620 and 621 which is the branch point 50a in 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 one path is taken either up or down, but never two paths at the same time. After in data mode the two nodes 605 and 604 The transistors are the two bits that represent the first operand in data mode on Vdd 620 and 621 both blocked in preparation mode so that no cross currents can flow. The switching stage is thus automatically deactivated in the preparation mode in such a way that there are no cross currents from the node due to the fact that a precharge is used in the input stage and PMOS transistors are used in the switching stage 16a respectively. 16b can drain off. 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 a corresponding computing potential (Vss in this case).

Nachfolgend wird beispielhaft die transistormäßige Implementierung der Ausgabestufe 14a erörtert, die insgesamt vier Transistoren 640, 641, 642 und 643 aufweist. Da als Rechenpotential 16a, 16b das hohe Potential Vdd genommen wird, wird in 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.The following is an example of the transistor implementation of the output stage 14a discussed the total of four transistors 640 . 641 . 642 and 643 having. Because as a computing potential 16a . 16b the high potential Vdd is taken in 6 the preparation potential is the low potential Vss 20a used. The same applies to the second output stage 14b uses the low potential Vss as preparation potential, that is, a potential that differs from the computing potential Vdd.

Die Ausgabestufen 14a, 14b werden im Vorbereitungsmodus mit einem Pre-Discharge-Signal beaufschlagt, das aufgrund der Ausführung der Transistoren 640643 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.The output levels 14a . 14b are subjected to a pre-discharge signal in the preparation mode, which is due to the design of the transistors 640 - 643 is a high voltage signal Vdd in NMOS technology. In data mode lies on the line 28a . 28b contrast, the low potential Vss on to the discharge transistors 641 . 640 to lock.

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 aufgrund 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 SUM0 hoch ist, während das komplementäre Bit SUM0 niedrig ist.Will the issue stage 14a (just like the output level 14b ) on the other hand, operated in preparation mode, Vdd is on the lines 28a . 28b (which are implemented as a common line in the actual implementation. This leads to the two nodes 22a . 22b be placed on Vss since the two transistors 640 . 641 , which are implemented in NMOS technology, are switched through. This immediately leads to the transistor 643 is blocked as well as the transistor 642 , The transistors 643 . 642 therefore have no effect in the preparation mode. In contrast, in data mode, as has been explained, the discharge transistors 640 and 641 blocked. In data mode, one of the nodes 22a . 22b due to the fact that the switching stage has the potential Vdd 16a either on the knot 22a or on the knot 22b has switched through, high. To explain how the transistors work 642 and 643 it is assumed that the node 22b is high. This causes the transistor 642 is switched through to the node 22a to safely put on the low potential Vss. This also ensures that the transistor 643 is blocked, which in turn causes the potential Vss to be on one side of the transistor 643 not at the knot 22b may lie in that the knot 22b stays high while the knot 22a remains safely low so that a clear result is obtained, namely that the SUM0 bit is high while the complementary bit SUM0 is low.

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.The output level therefore has in addition of functionality in a way Delivery of the bit not determined by the switching stage in data mode (due to the previous preparation mode) also the functionality, in data mode both bits and especially that not supplied by the switching stage Bit opposite Stabilize charge leaks.

Ferner hat die erfindungsgemäß bevorzugte Implementierung der Ausgabestufen gemäß 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 Stromverbrauch hat.Furthermore, the preferred implementation of the output stages according to the invention has 6 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.

1010
Eingangstufedoorstep
12a–c12a-c
Schaltstufenswitching stages
14a–c14a-c
Ausgabestufenoutput levels
16a–c16a-c
RechenpotentialanschlüsseCalculating potential terminals
18a–c18a-c
Ausgängeoutputs
20a20a
AnschlußConnection
20b–c20b-c
Eingängeinputs
22a–b22a-b
Ausgängeoutputs
24a–b24a-b
Ausgängeoutputs
26a–b26a-b
Ausgängeoutputs
2828
Steuereinrichtungcontrol device
28a–d28a-d
Steuerleitungencontrol lines
4040
Ausgabeschieneoutput rail
41–4341-43
Linienlines
50a–c50a-c
Schaltknotenswitching node
50a–c50a-c
Verzweigungspunktebranch points
8080
Drei-Bit-HalbaddiererThree-bit half adder
8181
Zwei-Bit-VolladdiererTwo-bit full adder
8282
Summenbitsum bit
8383
Übertragbitcarry bit
600–603600-603
Transistorentransistors
604604
Ausgangsknotenoutput node
605605
Ausgangsknotenoutput node
611–613611-613
Verteilungsschienendistribution rails
620–629620-629
Transistorentransistors
630–637630-637
Transistorentransistors
640–643640-643
Transistorentransistors

Claims (15)

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 Eingangsoperanden 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.Half adder for adding bits of at least three input operands to obtain at least two output bits, with the following features: 12a . 12b . 12c ) for each output bit, the switching stage being designed to generate a computing potential depending on the bits of the input operands in accordance with a half adder rule for the output bit ( 16a . 16b . 16c ) to an exit ( 18a . 18b . 18c ) the switching stage ( 12a . 12b . 12c ) to switch through, the computing potential at the output being the output bit ( 22b . 24b . 26b ) or an inverted version ( 22a . 24a . 26a ) of the output bit; and for each output bit, one output level ( 14a . 14b . 14c ) with an input that matches the output ( 18a . 18b . 18c ) the switching stage ( 12a . 12b . 12c ) is connected, and to a first output and to a second output, the output bit being able to be output at the first output in a data mode, and an inverted version of the output bit being output at the second output in the data mode, the output stage ( 14a . 14b . 14c ) is furthermore effective in order to set the first output and the second output to the same preparation potential in a preparation mode ( 20a . 20b . 20c ), whereby the preparation potential ( 20a . 20b . 20c ) of the computing potential ( 16a . 16b . 16c ) differs. 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.Half adder according to Claim 1, in which the output stage ( 14a . 14b . 14c ) is trained to the preparation potential ( 20a . 20b . 20c ) so that it corresponds to a first logic state, and in which the switching stage ( 12a . 12b . 12c ) is designed to adjust the computing potential so that it corresponds to a second logical state that differs from the first logical state. Halbaddierer nach Anspruch 1 oder 2, bei dem das Rechenpotential 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.Half adder according to claim 1 or 2, wherein the computing potential is a high potential (Vdd), and the prep potential is low potential (Vss) compared to the computing potential, so the preparation mode a pre-discharge mode is. 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 Precharge-Modus ist.Half adder according to claim 1 or 2, wherein the computing potential is a low potential (Vss), and the preparation potential is a high potential (Vdd) compared to the computing potential, so that the Prep mode is a pre-charge mode. 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.Half adder according to one of the preceding claims, further comprising an input stage ( 10 ), which is designed to receive the bits of the input operands and inverted versions thereof, the input stage ( 10 ) is further configured to transfer the bits of the input operands to the switching stages in a data mode ( 12a . 12b . 12c ) and to put inputs for the bits of the input operands and inputs for the inverted bits of the input operands to the same potential in the preparation mode. 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.Half adder according to one of the preceding claims, in which the switching stage has a separate sub-stage for each input operand, and wherein each sub-stage has an even number of transistors ( 620 . 621 ; 622 . 623 . 624 . 625 ; 626 . 627 . 628 . 629 ) having. Halbaddierer nach Anspruch 6, bei dem die Unterstufen für die Eingangsoperanden in Kaskade geschaltet sind.A half adder according to claim 6, wherein the sub-stages for the input operands are cascaded. Halbaddierer nach einem der vorhergehenden Ansprüche, bei dem die Schaltstufe für jeden Eingangsoperanden eine eigene Unterstufe aufweist, wobei eine Unterstufe zwei Ausgangsknoten 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 Ausgangsknoten zu verbinden.Half adder according to one of the preceding claims, in which the switching stage has a separate sub-stage for each input operand, a sub-stage having two output nodes which are connected to input nodes of a downstream sub-stage, an input node of a first sub-stage having the computing potential ( 16a ) is connected, wherein an output node of a last sub-stage represents the output of the switching stage, and wherein a sub-stage is designed to connect the input node to the first or the second output node depending on a value of the bit of the operand which is assigned to the sub-stage , 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.Half adder according to claim 8, wherein the switching stage is formed is to switch from a path from the input node of the first stage to the output node of the last stage is to a different path from the input node of the first Level to which the output node of the last level is defined, one Consume electricity within a predetermined tolerance range lies. Halbaddierer nach Anspruch 9, bei dem sich der Toleranzbereich um +/–10% von einem Nennwert für alle Pfade erstreckt.Half adder according to claim 9, wherein the tolerance range by +/- 10% of a face value for everyone Paths extends. Halbaddierer nach einem der vorhergehenden Ansprüche, bei dem die Schaltstufe nur NMOS-Transistoren oder nur PMOS-Transistoren umfaßt.Half adder according to one of the preceding claims, which the switching stage comprises only NMOS transistors or only PMOS transistors. 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.Half adder according to Claim 11, in which the switching stage then, if the computing potential is high, only PMOS transistors and when the computing potential is low is or is equal to the ground potential, has only NMOS transistors. 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.Half adder according to one of the preceding claims, which the switching stage is designed to a half adder to use the counting a number of operand bits with the same state and that Convert to a value for includes a particular output bit. Halbaddierer nach Anspruch 13, bei dem das Umsetzen auf der Basis einer binären Codierung ausführbar ist.Half adder according to claim 13, wherein the conversion on the Base of a binary Coding executable is. 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 00340001
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 SUM1 ein höchstwertiges Ausgabebit ist, und wobei SUM0 ein niederstwertiges Ausgabebit ist.
Half adder according to one of the preceding claims, which is designed for exactly three input operands and has two switching stages and two output stages, the half adder specification being defined as follows:
Figure 00340001
where C i is an i order bit of a first operand, N i is an i order bit of the second operand, Z i is an i order bit of the third operand, SUM1 is a most significant output bit, and wherein SUM0 is a least significant output bit.
DE2003107942 2003-02-25 2003-02-25 Half adder for cryptographic applications has input stage for 3 input operands, switching stages for output bits and corresponding output stages Expired - Fee Related DE10307942B3 (en)

Priority Applications (2)

Application Number Priority Date Filing Date Title
DE2003107942 DE10307942B3 (en) 2003-02-25 2003-02-25 Half adder for cryptographic applications has input stage for 3 input operands, switching stages for output bits and corresponding output stages
PCT/EP2004/001874 WO2004077196A2 (en) 2003-02-25 2004-02-25 Adder for adding at least three input operands

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
DE2003107942 DE10307942B3 (en) 2003-02-25 2003-02-25 Half adder for cryptographic applications has input stage for 3 input operands, switching stages for output bits and corresponding output stages

Publications (1)

Publication Number Publication Date
DE10307942B3 true DE10307942B3 (en) 2004-03-11

Family

ID=31502583

Family Applications (1)

Application Number Title Priority Date Filing Date
DE2003107942 Expired - Fee Related DE10307942B3 (en) 2003-02-25 2003-02-25 Half adder for cryptographic applications has input stage for 3 input operands, switching stages for output bits and corresponding output stages

Country Status (2)

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

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
RU2505850C2 (en) * 2012-03-29 2014-01-27 Борис Михайлович Власов Methods of performing elementary computational operations and apparatus for realising said methods

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE3631992C2 (en) * 1986-03-05 1988-12-08 Holger 3300 Braunschweig De Sedlak

Family Cites Families (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
DE10130484B4 (en) * 2001-03-01 2005-08-18 Infineon Technologies Ag 7-to-3 bit carry-save adder and adder with it
US7392277B2 (en) * 2001-06-29 2008-06-24 Intel Corporation Cascaded domino four-to-two reducer circuit and method

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE3631992C2 (en) * 1986-03-05 1988-12-08 Holger 3300 Braunschweig De Sedlak

Also Published As

Publication number Publication date
WO2004077196A2 (en) 2004-09-10
WO2004077196A3 (en) 2005-02-10

Similar Documents

Publication Publication Date Title
DE102006004557A1 (en) Cryptographic logic circuit for simple power analysis (SPA) and differential power analysis (DPA) has first logic unit that executes logic operation for data, and second logic unit that executes logic operation for first logic unit results
DE10244738B3 (en) Dual-rail input conversion device providing one-hot output used for cryptographic applications operated in data mode or pre-charge or pre-discharge mode via control device
EP0051079A1 (en) Binary MOS ripple carry parallel adder/subtractor and appropriate adding/subtracting stage
DE60113721T2 (en) LOGICAL CIRCUIT WITH VARIABLE INTERNAL POLARITY
DE102009027086A1 (en) Apparatus and method for forming a signature
EP1324188A2 (en) Method for multiplying two Galois field factors and multiplier for carrying out the method
DE102005011374B3 (en) Computer drive for addition circuits of cryptographic processors, uses switching stage to switch computational potential through to output
DE69726248T2 (en) Conditional sum adder using pass transistor logic
DE10307942B3 (en) Half adder for cryptographic applications has input stage for 3 input operands, switching stages for output bits and corresponding output stages
DE10344647B3 (en) Dual-rail signal circuit device e.g. for chip card security applications, has dual-rail data input signals with similar values provided as pre-charge signal to obtain dual-rail data output signal having same values
DE10305849B3 (en) Carry-ripple adder for addition of bits of similar value has 3 inputs for input bits to be summated, carry inputs for carry bits, output for calculated sum bit and carry outputs for carry bits
DE10224742B4 (en) Data processing circuit and method for transmitting data
DE10202725B4 (en) Integrated circuit and circuit arrangement for converting a single-rail signal into a dual-rail signal
DE10324049B4 (en) Integrated circuit and method for operating the integrated circuit
EP1495542B1 (en) Circuit arrangement and method for generating a dual-rail output signal
EP1506473B1 (en) Modular inversion that is protected against espionage
DE102015116049B3 (en) ZERO DETECTION CIRCUIT AND MASKED BOOLECH OR CIRCUIT
DE10130484B4 (en) 7-to-3 bit carry-save adder and adder with it
WO2007012102A2 (en) Method and circuit for carrying out calculation operations secure from bugging
DE10201450B4 (en) Carry-skip adder for encrypted data
EP1466245B1 (en) Arithmetic-logic unit and method for combining a first operand with a second operand
DE10129241B4 (en) Multifunctional calculator
EP1556754A2 (en) Device and method for generating a pseudo-random sequence of numbers
DE10130483A1 (en) 6-to-3 bit carry-save adder
DE1449528B1 (en) Circuit arrangement for generating a carry result in a parallel adder

Legal Events

Date Code Title Description
8100 Publication of the examined application without publication of unexamined application
8364 No opposition during term of opposition
R119 Application deemed withdrawn, or ip right lapsed, due to non-payment of renewal fee