Kapitel 3 Arithmetische Schaltkreise

Slides:



Advertisements
Ähnliche Präsentationen
(Zweistufige) Logiksynthese
Advertisements

3.2 Subtraktion, Multiplikation, ALU
Motivation Bisher: Codes mit möglichst kurzer Codelänge.
Systemarchitektur Sommersemester 2009 Universität des Saarlandes
Kapitel 1 Der Boolesche Kalkül
Rekursion: Rekurrenz: Algorithmen rufen sich selbst (rekursiv) auf.
Falls Algorithmen sich selbst rekursiv aufrufen, so kann ihr Laufzeitverhalten bzw. ihr Speicherplatzbedarf in der Regel durch eine Rekursionsformel (recurrence,
Multiplizierer Gesucht: Schaltkreis zur Multiplikation zweier Binärzahlen , Beispiel: RW-Systemarchitektur Kap. 3.
Asymptotische Notation
Programmierung 1 - Repetitorium WS 2002/2003 Programmierung 1 - Repetitorium Andreas Augustin und Marc Wagner Homepage:
2.3 Kodierung von Zeichen 2.4 Kodierung von Zahlen
Algebraische Zahlen: Exaktes Rechnen mit Wurzeln
Wiederholung TexPoint fonts used in EMF.
Schnelle Matrizenoperationen von Christian Büttner
Wiederholung TexPoint fonts used in EMF.
Wiederholung: Ziehen von Elementen
Übungsbetrieb Di neuer Raum HZO 60
Das LCA – Problem in Suffixbäumen
Wiederholung Operationen auf Mengen Relationen, Abbildungen/Funktionen
Christian Schindelhauer
BCD Ripple Carry Adder von Enrico Billich.
Algorithmentheorie 04 –Hashing
Vorlesung Informatik 2 Algorithmen und Datenstrukturen (19 - Analyse natürlicher Bäume) Prof. Th. Ottmann.
Vorlesung Informatik 2 Algorithmen und Datenstrukturen (27 – Kürzeste Wege) Prof. Th. Ottmann.
Kapitel 3 Elementare Datenstrukturen TexPoint fonts used in EMF.
Wiederholung Formale Potenzreihen
Christian Schindelhauer
Addierwerke.
Rechnen im Binärsystem
Basisinformationstechnologie HK-Medien
Black Box Algorithmen Hartmut Klauck Universität Frankfurt SS
Effiziente Algorithmen Hartmut Klauck Universität Frankfurt SS
Effiziente Algorithmen
Effiziente Algorithmen Hartmut Klauck Universität Frankfurt SS
Black Box Algorithmen Hartmut Klauck Universität Frankfurt SS
Effiziente Algorithmen
Quantum Computing Hartmut Klauck Universität Frankfurt WS 04/
Quantum Computing Hartmut Klauck Universität Frankfurt WS 05/ /23.1.
Black Box Algorithmen Hartmut Klauck Universität Frankfurt SS
Effiziente Algorithmen Hartmut Klauck Universität Frankfurt SS
Effiziente Algorithmen Hartmut Klauck Universität Frankfurt SS
Effiziente Algorithmen
Information und Kommunikation Hartmut Klauck Universität Frankfurt SS
Beweissysteme Hartmut Klauck Universität Frankfurt WS 06/
Information und Kommunikation Hartmut Klauck Universität Frankfurt SS
Beweissysteme Hartmut Klauck Universität Frankfurt WS 06/
Information und Kommunikation
Information und Kommunikation Hartmut Klauck Universität Frankfurt SS
Information und Kommunikation
Hartmut Klauck Universität Frankfurt WS 06/
Hartmut Klauck Universität Frankfurt WS 06/
Halfadder a =1 s & cout b.
Institut für Theoretische Informatik
Institut für Theoretische Informatik
Institut für Theoretische Informatik
Institut für Theoretische Informatik
Rechnen im Binärsystem
Information und Kommunikation
Institut für Theoretische Informatik
Black Box Algorithmen Hartmut Klauck Universität Frankfurt SS
Drwm©2k3..2k61 Schaltnetze Aufbau an wichtigen Beispielen.
Technische Informatik II
Technische Informatik II (INF 1211) Aufgabenteil (Mit Unterlagen)
Grundlagen der Algorithmen und Datenstrukturen Kapitel
Syntax, Semantik, Spezifikation - Grundlagen der Informatik R. Hartwig Kapitel 3 / 1 Algebraische Hülle und Homomorphie A = [A, F ] sei  -Algebra. Eine.
Vertiefungsstoff zum Thema „Darstellung von Zahlen“
Übung zu Grundlagen der Technischen Informatik
Wiederholung Größte gemeinsame Teiler Satz von Bezout:
Christian Scheideler WS 2008
Kleiner Schreibfehler
 Präsentation transkript:

Kapitel 3 Arithmetische Schaltkreise 3.1 Addierer 3.2 Subtrahierer Multiplizierer ALU TexPoint fonts used in EMF. Read the TexPoint manual before you delete this box.: AAAAAAAAA

Wiederholung: Sei a = an-1 ... a0 eine Folge von Ziffern, ai Î {0,1} Binärdarstellung: <a> = ai 2i Zweierkomplement: [anan-1 ... a0] = ai2i – an2n Rechenregel: mit RW-Systemarchitektur Kap. 3

3.1 Addierer Gegeben: 2 positive Binärzahlen <a> = <an-1 ... a0>, <b> = <bn-1 ... b0>, Eingangsübertrag c Î {0,1} Gesucht: Schaltkreis, der Binärdarstellung s von <a> + <b> +c berechnet Wegen <a> + <b> + c £ 2×(2n – 1) + 1 = 2n+1 - 1 genügen n+1 Stellen für s, d.h. ein Schaltkreis mit n+1 Ausgängen RW-Systemarchitektur Kap. 3

Definition 3.1 Ein n-Bit Addierer ist ein Schaltkreis, der die folgende Boolesche Funktion berechnet: +n : B2n+1 ® B2n+1 , (an-1, ..., a0 , bn-1, ..., b0 , c) ® (sn, ..., s0) mit <s> = <sn ... s0> = <an-1 ... a0> + <bn-1 ... b0> + c n+1 n a b c s Schaltbild eines n-Bit-Addierers: ADDn RW-Systemarchitektur Kap. 3

Beispiel Addieren nach der Schulmethode: 1 0 1 1 + 0 1 1 0 + 0 ¾¾¾¾¾ + 0 1 1 0 + 0 ¾¾¾¾¾ 1 1 1 0 1 0 0 0 1 Eingangsübertrag RW-Systemarchitektur Kap. 3

Der Halbaddierer (HA) Der Halbaddierer dient zur Addition zweier 1-Bit-Zahlen ohne Eingangsübertrag. Er berechnet die Funktion: ha : B2 ® B2 mit ha(a0, b0) = (s1, s0) mit 2s1 + s0 = a0 + b0 RW-Systemarchitektur Kap. 3

Funktionstabelle des HA 1 1 1 1 1 1 1 Folglich: RW-Systemarchitektur Kap. 3

Schaltkreis eines Halbaddierers Å a0 b0 s0 s1 dabei: C(HA) = 2, depth(HA) = 1 RW-Systemarchitektur Kap. 3

Der Volladdierer (FA) Der Volladdierer dient zur Addition zweier 1-Bit-Zahlen mit Eingangsübertrag. Er berechnet die Funktion: fa : B3 ® B2 mit fa(a0, b0, c) = (s1, s0) mit 2s1 + s0 = a0 + b0 + c RW-Systemarchitektur Kap. 3

Funktionstabelle des FA 1 fa0 fa1 c b0 a0 RW-Systemarchitektur Kap. 3

Volladdierer als Funktion von HAs b0 c s0 s1 Aus der Tabelle folgt: FA a0 b0 c s1 s0 Kosten und Tiefe eines FA: C(FA) = 5, depth(FA) = 3 RW-Systemarchitektur Kap. 3

Schaltkreis eines Volladdierers b0 c s0 s1 FA a0 b0 c s1 s0 RW-Systemarchitektur Kap. 3

Realisieren der Schulmethode: Carry Ripple Addierer (CR ) cn-1 = sn FA bn-1 an-1 bn-2 an-2 cn-2 sn-1 sn-2 cn-3 FA b1 a1 s1 c0 FA b0 a0 s0 c-1

Realisieren der Schulmethode: Carry Ripple Addierer (CR ) Hierarchisches Vorgehen: (induktive Definition) Für n=1: CR1 = FA Für n>1: Schaltkreis CRn wie folgt definiert Bezeichnung: Bezeichne den Eingangsübertrag mit c-1, den Übertrag von Stelle i nach i+1 mit ci . RW-Systemarchitektur Kap. 3

Aufbau des n-Carry Ripple Addierers (CRn) (rekursiv) FA c0 a0 b0 c-1 s0 CR n-1 an-1 a1 ... bn-1 b1 ...... sn s1

Satz 3.1 Der Schaltkreis CRn ist ein n-Bit-Addierer. D.h. er berechnet die Funktion +n : B2n+1 ® B2n+1 , (an-1, ..., a0 , bn-1, ..., b0 , c) ® (sn, ..., s0) mit <s> = <sn ... s0> = <an-1 ... a0> + <bn-1 ... b0> + c RW-Systemarchitektur Kap. 3

Satz 3.1 (ff) Beweis durch Induktion: n=1: ü n-1  n: Eingabe an CRn: (an-1, ..., a0, bn-1, ... b0, c-1) Zeige für Ausgabe (sn, ..., s0) von CRn <s> = <sn ... s0> = <an-1 ... a0> + <bn-1 ... b0> +c-1 Nach I.V.: <c0, s0> = a0 + b0 + c-1 (FA) Für CRn-1: <sn ... s1> = <an-1 ... a1> + <bn-1 ... b1> + c0 Insgesamt: <sn ... s0> = 2 × <sn ... s1> + s0 I.V.b) = 2 × (<an-1 ... a1> + <bn-1 ... b1> + c0) + s0 I.V.a) = 2 × <an-1 ... a1> + a0 + 2 × <bn-1 ... b1> + b0 + c-1 = <a> + <b> + c-1 RW-Systemarchitektur Kap. 3

Komplexität und Tiefe eines Carry Ripple-Addierers cn-1 = sn FA bn-1 an-1 bn-2 an-2 cn-2 sn-1 sn-2 cn-3 FA b1 a1 s1 c0 FA b0 a0 s0 c-1 Kosten eines CRn: C(CRn) = n × C(FA) = 5n Tiefe eines CRn: depth(CRn) = 3 + 2(n-1) RW-Systemarchitektur Kap. 3

Komplexität und Tiefe eines Carry Ripple-Addierers (rekursiv) FA c0 a0 b0 c-1 s0 CR n-1 an-1 a1 ... bn-1 b1 ...... sn s1 Kosten eines CRn: C(CRn) = C(FA) + C(CRn-1) = 5 + C(CRn-1) Tiefe eines CRn: depth(CRn) = 3 + depth(CRn-1) = 3 + 2(n-1) RW-Systemarchitektur Kap. 3

Einige weitere wichtige Schaltkreise: Der n-Bit Inkrementer Der n-Bit Multiplexer RW-Systemarchitektur Kap. 3

Definition 3.2 Ein n-Bit Inkrementer berechnet die Funktion: incn : Bn+1 ® Bn+1 , (an-1, ..., a0 , c) ® (sn, ..., s0) mit <sn ... s0> = <a> + c RW-Systemarchitektur Kap. 3

Inkrementer Ein Inkrementer ist ein Addierer mit bi = 0 i  Ersetze in CRn die FA durch HA. Kosten und Tiefe: C(INCn) = n × C(HA) = 2n depth(INCn) = n × depth(HA) = n RW-Systemarchitektur Kap. 3

Definition 3.3 Ein n-Bit-Multiplexer (MUXn) ist ein Schaltkreis, der die folgende Funktion berechnet: seln : B2n+1 ® Bn mit a b s sel 1 n Schaltbild RW-Systemarchitektur Kap. 3

Schaltbild zum n-Bit Multiplexer Prinzip der Konstruktion: an-1 bn-1 a0 b0 s Kosten und Tiefe eines MUX: C(MUXn) = 3n + 1 depth(MUXn) = 3 ... seln-1 sel0

Rückkehr zum Addierer Gibt es billigere Addierer als CRn ? Untere Schranken: C(+n) ³ 2 × n, depth(+n) ³ log(n) + 1 Binäre Bäume mit 2n+1 Blättern haben 2n innere Knoten. Binäre Bäume mit n Blättern haben mindestens Tiefe élog nù. Im folgenden sei n = 2k. RW-Systemarchitektur Kap. 3

Der Conditional Sum Addierer (CSA) Idee: Nutze Parallelverarbeitung, um Tiefe zu reduzieren! RW-Systemarchitektur Kap. 3

Schaltbild des CSAn ah bh al bl c-1 1 sh sl n/2 n/2 n/2 CSAn/2 CSAn/2 1 CSAn/2 CSAn/2 CSAn/2 (n/2)+1 (n/2)+1 n/2 1 MUX sh sl

Zur Komplexität des CSAn Ein CSAn besteht aus 3 CSAn/2 Dabei steht xh für die n/2 höchstwertigen Bits, xl für die n/2 niederwertigen Bits der Eingabe Es gilt: CSA1 = FA RW-Systemarchitektur Kap. 3

Satz 3.2. Der CSAn hat Tiefe £ 3 log n + 3. Beweis: n=1: depth(CSA1) = depth(FA) = 3 n>1: depth(CSAn) £ depth(CSAn/2) + depth(MUX(n/2)+1) £ depth(CSAn/2) + 3 £ depth(CSAn/4) + 3 + 3 £ depth(CSAn/8) + 3 + 3 + 3 ...... £ depth(CSAn/(2k )) + k × 3 £ 3 × (k + 1) = 3 log(n) + 3 RW-Systemarchitektur Kap. 3

Kosten eines CSAn C(CSA1) = C(FA) = 5 C(CSAn) = 3 × C(CSAn/2) + C(MUX(n/2)+1) = 3 × C(CSAn/2) + 3 × n/2 + 4 Zu lösen ist also ein Gleichungssystem der Form und Betrachte dabei nur RW-Systemarchitektur Kap. 3

Kosten eines CSAn (ff) RW-Systemarchitektur Kap. 3

Kosten eines CSAn (ff) RW-Systemarchitektur Kap. 3

Lemma 3.1 Sei f : N ® N mit Dann gilt wegen Beweis durch Induktion über k. RW-Systemarchitektur Kap. 3

Beispiel zu Lemma 3.1 Wir erinnern uns: C(CSA1) = 3 × C(CSAn/2) + 3 × n/2 + 4 d.h. a = 3, c = 5, und Also sagt das Lemma mit RW-Systemarchitektur Kap. 3

Beispiel (ff) geometrische Reihe: RW-Systemarchitektur Kap. 3

Beispiel (ff) Bemerkung: Man kann CSAn in einfacher Weise modifizieren, so dass Tiefe = O(log n) und Kosten = O(n log n). RW-Systemarchitektur Kap. 3

Ausblick Gibt es Addierer mit linearen Kosten und logarithmischer Tiefe?  Carry Lookahead Addierer Idee: Schnelle Vorberechnung der Übertragsbits ci. Sind die ci bekannt, so ergibt sich si durch ai Å bi Å ci-1. Berechnung der ci durch parallele Präfix-Berechnung: Sei M eine Menge und 0 assoziative Operation 0: MM M parallele Präfix-Funktion PPn: Mn  Mn mit PPn (xn-1, …, x0) = (xn-1 0 xn-2 … 0 x0, xn-2 0 xn-3 0 … 0 x0,…, x0) Ergebnis: C(CLAn) £ 11n und depth(CLAn) £ 4 log(n) + 2 RW-Systemarchitektur Kap. 3

Addition von Zweierkomplementzahlen Wiederholung: Formale Darstellung: RW-Systemarchitektur Kap. 3

Behauptung Zur Addition von (n+1)-Bit-Zweierkomplementzahlen kann man (n+1)-Bit-Binäraddierer benutzen. Der Test, ob das Ergebnis durch eine (n+1)-Bit- Zweierkomplementzahl darstellbar ist, d.h. ob das Ergebnis aus Rn = {-2n, ..., 2n-1} ist, läßt sich zurückführen auf die Betrachtung von an, bn und sn. RW-Systemarchitektur Kap. 3

n-Bit Addierer an bn a0 b0 c ADDn+1 Å cn sn sn-1 s0 Å an = bn  sn RW-Systemarchitektur Kap. 3 Überlauf

Satz 3.3 Seien a,b Î Bn+1, c-1 Î {0,1} und s Î {0,1}n+1, so dass <cn,s> = <a> + <b> + c-1. Dann gilt: Beweis durch Fallunterscheidung [a], [b] beide positiv, beide negativ bzw. o.E. [a] negativ, [b] positiv und Nachrechnen ... Alternativ kann man den folgenden Überlauftest verwenden. RW-Systemarchitektur Kap. 3