Theorie
 
 
 
 
 
Computertechnik
 
 
 
 
 
.. Stichwort: Addierwerk
 
 
 
 
 

 
 
 
 

 

Die Frage wie man mit digitalen elektrischen Signalen addieren kann, lässt sich klären, wenn man akzeptiert, dass die logischen Signalbeschreibungen 0 und 1 für Spannungen 0V bzw. 5V 1) stehen und dass man in einem Zahlensystem mit zwei Ziffern, genauso rechnen kann, wie im dezimalen Zahlensystem.
Das Binäre- Duale-oder Zweier-Zahlensystem besitzt zwei Ziffern und man zählt ..
          0 => 00
          1 => 01
          2 => 10
          3 => 11 .. usw.
Bei der Addition zweier einstelliger Binärzahlen müssen sich dieser Zählweise entsprechend folgende Ergebnisse einstellen ..
          0 + 0 = 0
          0 + 1 = 1
          1 + 0 = 1
          1 + 1 = 0 Übertrag 1
Der Übertrag wird wie im dezimalen Zahlensystem bei der nächst höheren Stelle berücksichtigt. So ergibt 01+01 = 10 .. oder untereinander geschrieben ..
           01               1
          +01              +1
          +1 Übertrag
          ----             --
          =10              =2
Das Ergebnis von 1+1 = 2 oder binär 01 + 01 = 10 wird also bei Beachtung des Übertrags erreicht.

 

 

Die nachfolgende Schaltung, die Halbaddierer genannt wird, liefert in ihren beiden Ausgängen, S für Summe und C für Carry (Übertrag), genau die Signale, die als Summe zweier einstelliger Binärzahlen benötigt werden.

 

 

 

 

 

Das Halbaddierwerk

 

 

 

 

Die Wahrheitstabelle der Schaltung verdeutlicht dies ..

Wird auf ihre Eingänge E1 und E2 ein 0-Signal gegeben, so ergibt sich für den Ausgangs S eine 0 und der Ausgang C ist ebenfalls 0. Bei E1=0 und E2=1 ergeben sich S=1 und C=0, gleiches gilt bei E1=1 und E2=0. Erst bei E1=1 und E2=1 ändert sich das Bild, für die Summe beider Zahlen wird S=0 und der Ausgang C zeigt mit C=1 einen Übertrag an. Übertrag und Summe ergeben 10, was der erwarteten 2 entspricht.

 

 

 

 

 

Der Volladdierer

 

 

Nun sollen in einem Prozessor aber nicht nur einstellige Zahlen addiert werden, sondern solche aus 4, 8 oder 16 Stellen und mehr. Dazu benötigt man zunächst ein Addierwerk, dass auch den Übertrag bei der Addition berücksichtigt. Eine solches Addierwerk nennt man Volladdierer. Es besitzt einen zusätzlichen Eingang für den Übertrag C der vorhergehenden Additionsschaltung. Dadurch wird seine Wahrheitstabelle doppelt so lang ..

Im oberen Teil findet sich wieder die Wahrheitstabelle des Halbaddierers, wenn man von dem Eingang Ci=0 mal absieht, dann folgt der Tabellenteil, bei dem der Übertrag der vorherigen Stufe Ci=1 wurde.
Dieser unterscheidet sich vom Halbaddierwerk insofern, als bei der Addition immer eine 1 auftritt. Andererseits setzt sich die Logik des Addierens fort, denn 1+0= 1, Übertrag 1, 1+1= 0, Übertrag 1 .. nur bei 1+1+1=1, Übertrag 1 muss noch einmal nachgedacht werden. Dezimal wäre das Ergebnis von 1+1+1=3 diese Zahl wird binär als 11 dargestellt, was das Addierwerk ja auch tatsächlich mit Übertrag und Summe anzeigt. Diese lauten C=1 und S=1.

 

 

 

 

 

Wer mit Boolscher Algebra umgehen kann, findet schnell eine Digitalschaltung, welche diese Wahrheitstabelle erfüllt. Sie könnte wie nachfolgend gezeigt aussehen.

(Die Zahlen der obersten Zeile im Bild beziehen sich auf die Zeilen der Wahrheitstabelle, bei denen für S oder C eine 1 herauskommen muss. Durch Invertierung der 0-Signale wird dies erreicht)

 

 

 

 

 

 

 

 

 

 

Benutzt man anstelle der obigen Schaltung das unten gleich vier mal auftretende Symbol, und verschaltet dieses wie gezeigt, ergibt sich ein Addierwerk für vier Bits. Diese Schaltung kann beliebig zu einem 8, 16, 32 ..Bit Addierwerk erweitert werden, um dann Teil der ALU eines Prozessors zu werden.

 

 

 

 

 

Volladdierwerk für 4 Bit mit Carry-Flag

 

 

 

 

 

 

 

 

 

 

Im obigen Bild steht die Abkürzung Ac für Akkumulatur. Das ist das Hauptrechenregister2) einer CPU. Hr steht für Hilfsregister3). Das Ergebnis einer numerischen Berechnung wird bei CPUs in der Regel wieder im Akkumulator abgelegt, wodurch dessen ehemaliger Inhalt überschrieben wird. Tritt so wie es oben gezeigt ist, im höchsten Bit ein Übertrag auf, so kann der nicht mehr im Akkumulator aufgehoben werden. Die ALU legt ihn im Carry-Flag (der Übertragsflagge) ab.
Im niederwertigen Bit wird bei einer Addition normalerweise der Übertragswert 0 erwartet. Oben im Bild wurde deswegen der Übertragseingang auf Bezugspotential gelegt. In einem Prozessor stammt dieses Bit aus dem Carry-Flag, das vor einer Addition sinnvollerweise auf 0 gesetzt werden sollte.

 

 

 

 

 

1) Diese Angabe betrifft TTL-Logik. Anstelle von 0V und 5V sollten besser Spannungsbereiche verwendet werden 0 => 0V-0,7V .. 1 => 2,0V-5V

 

 

2) Register sind Speicherzellen innerhalb der CPU. Anders als die Speicherzellen im Arbeitsspeicher besitzen sie einen Namen, mit dem ein Programmierer sie ansprechen kann.

 

 

3) Das Hilfsregister kann ein Register der CPU sein, es kann aber auch eine Speicherzelle des Arbeitsspeichers sein.

 

 

 

 

 

 

 

 

Interpretation der Rechnung (Zahlen ohne Vorzeichen)
Würde ein Programmierer die Zahlen in Akkumulator Ac=11 und Hifsregister Hr=7 als solche ohne Vorzeichen deuten, dann wären die auf vier Bit begrenzten Zahlen 11 und 7 addiert worden. Das Ergebnis 18 passt nicht mehr in den Akkumulator, denn die höchste mit vier Bit darstellbare Zahl ist 15. Der tatsächliche Inhalt des Akkumulators, die Zahl 2 stellt also nicht das Ergebnis dar. Tatsächlich fand ja auch ein Übertrag statt, so dass die Carry-Flagge auf C=1 gesetzt wurde. Interpretiert man die Carry-Flagge als höchstes Bit des Ergebnisses so ergibt sich endlich das Ergebnis 18.
Für einen Programmierer ist es also notwendig, die Carry-Flagge nach einer Addition zu betrachten. Ist die Carry-Flagge C=0 so steht das komplette Ergebnis im Akkumulator. Ist C=1, so ist das Ergebnis im Akkumulator falsch, denn ein Bit von ihm ist in die Carry-Flagge übertragen worden. Der Programmierer kann nun das Ergebnis im Akkumulator verwerfen, oder er muss für die Ablage des Ergebnisses einen Speicher benutzen, der mehr Bits umfasst als vier.

 

 

 

 

 

Interpretation der Rechnung (Zahlen mit Vorzeichen)
Würde ein Programmierer die Zahlen in Akkumulator Ac= -5 und Hifsregister Hr= +7 als solche mit Vorzeichen deuten, dann wären die auf vier Bit begrenzten Zahlen -5 und +7 addiert worden. Das Ergebnis +2 stünde richtig im Akkumulator und die Aussage des Carry-Flags wäre falsch. Tatsächlich haben sich zwei Überträge abgespielt, was die vorzeichenbehaftete Addition zu einer richtigen Addition macht. Dies spiegelt die Overflow- oder Überlaufflagge wieder, welche die Überträge aus dem 6. ins 7. Bit und dem 7.ins 8.Bit durch ein exklusives ODER zusammenfasst. Diese Flagge ist 0, was bedeutet, dass der Akkumulator ein richtiges Ergebnis enthält, wenn man die beiden Zahlen als vorzeichenbehaftete Zahlen interpretiert. Das folgende Bild zeigt einen Volladdierer mit Carry- (C) und Overflowflagge (OV).

 

 

 

 

 

Volladdierwerk für 4Bit mit Carry- und Overflowflag

 

 

 

 

 

 

 

 

 

 

Zusammenfassung
Zur Addition und zur Subtraktion ganzer Zahlen in der Computertechnik genügt eine digitale Schaltung, die sich Volladdierer nennt und die durch eine Kaskadierung zu einem Addierwerk von 4,8,16,32 und mehr Bit erweitert werden kann.
Diese Schaltung verfügt im Ausgang über ein Ergebnisregister, den Akkumulator und zwei Flaggen die sich Übertrags- und Überlaufflagge nennen. Je nach Interpretation der im Eingang der Schaltung anliegenden Dualzahlen als Zahlen mit oder ohne Vorzeichen, geben diese Flaggen darüber Auskunft, ob das Ergebnis im Akkumulator als richtig oder falsch zu bewerten ist.


  • Bei Zahlen ohne Vorzeichen ist das Ergebnis richtig, wenn die Übertragsflagge C=0 ist. Die Überlaufflagge OV ist unerheblich.

  • Bei Zahlen mit Vorzeichen ist das Ergebnis richtig, wenn die Überlaufflagge OV=0 ist. In diesem Fall ist die Übertragsflagge C unerheblich.

 

 

 

 

www..de