Beruflich Dokumente
Kultur Dokumente
Rechnerarchitektur
[CS3100.010]
Wintersemester 2014/15
Heiko Falk
Rechnerarithmetik
Folie 3/36 Grundlagen der Rechnerarchitektur (GdRA) WS 2014/15
1. Einfhrung
2. Kombinatorische Logik
3. Sequentielle Logik
4. Technologische Grundlagen
5. Rechnerarithmetik
6. Grundlagen der Rechnerarchitektur
7. Speicher-Hardware
8. Ein-/Ausgabe
5. Rechnerarithmetik
Einleitung
Binre Addition
Ripple Carry Addierer
Serielles Addierwerk
Carry-Look-Ahead-Addierer
Carry-Select-Addierer
Carry-Save-Addierer
Binre Subtraktion
Zweierkomplement-Darstellung
Subtraktion im Zweierkomplement
...
5. Rechnerarithmetik
Binre Multiplikation
Vorzeichenlose Multiplikation
Serielles Schaltwerk
Array-Multiplizierer
Vorzeichenbehaftete Multiplikation
Booth-Algorithmus
Implementierung in VHDL
Binre Division
Restoring-Division
Non-Restoring-Division
BCD-Arithmetik
Einordnung
Unklar
Wie knnen die Algorithmen fr die Grundrechenarten effizient in
Hardware umgesetzt werden?
Wie sind Rechenwerke (arithmetical logical units, ALUs) intern
aufgebaut?
Erinnerung: Halbaddierer
c=a*b
s=a*b+a*b=ab (XOR)
Schaltung
Aufbau mit Halbaddierern
Paralleles Addierwerk
Serielles Addierwerk
Carry-Look-Ahead-Addierer (1)
Es gilt fr Stelle i
ci+1 = ai * bi + (ai + bi) * ci
= Gi + Pi * ci mit
Gi = ai * bi gibt an, ob Stelle i Carry generiert (Generate)
Pi = ai + bi gibt an, ob Stelle i Carry weitergeben muss (Propagate),
falls vorherige Stelle Carry generiert oder weitergibt
Schaltfunktionen fr bertrge
c1 = G0 + P0 * c0
c2 = G1 + P1 * c1 = G1 + P1 * G0 + P1 * P0 * c0
c3 = G2 + P2 * c2 = G2 + P2 * G1 + P2 * P1 * G0 + P2 * P1 * P0 * c0
H. Falk | 01.10.2014 5 - Rechnerarithmetik
Folie 13/36 Grundlagen der Rechnerarchitektur (GdRA) WS 2014/15
Carry-Look-Ahead-Addierer (2)
Kaskadierung mglich
Pro CLA-Addierer nur 4t Verzgerung
H. Falk | 01.10.2014 5 - Rechnerarithmetik
Folie 14/36 Grundlagen der Rechnerarchitektur (GdRA) WS 2014/15
Carry-Select-Addierer
Carry-Save-Addierer
Zweierkomplement-Darstellung
Binre Subtraktion
Addition
Einsatz von Standardaddierern fr Zahlen im Zweierkomplement
Subtraktion
Vorherige Komplementbildung eines Summanden erfordert
Invertierung der Ziffern
Addition von 1
kann durch gesetzten Carry-Eingang erzielt werden
Subtraktion im Zweierkomplement
Beim Subtrahieren
Invertieren der b-Eingnge durch XOR-Gatter
Addieren von 1 durch gesetztes Carry-in
berlauferkennung: cout cin
Bei Subtraktion ist gesetztes Carry-out der Normalfall
Binre Multiplikation
Lsche p (clear p)
n-mal:
Ermittle b0 (shift right b)
Addiere a auf (p2n-1, , pn+1, pn)2 oder nicht, je nach b0 (add)
Verschiebe p einschlielich cout der vorherigen Addition (shift right p)
Alternative B: Array-Multiplizierer
Schaltwerk fr das schriftliche Multiplikationsschema
Beispiel: n = 4
Alternative B: Array-Multiplizierer
Schaltwerk fr n = 4
Binre Division
Rest
Verfahren wird auch Restoring-Division genannt, da durch Korrektur
ursprnglicher Dividend wiederhergestellt wird
H. Falk | 01.10.2014 5 - Rechnerarithmetik
Folie 30/36 Grundlagen der Rechnerarchitektur (GdRA) WS 2014/15
Restoring-Division (1)
Restoring-Division (2)
Restoring-Division (3)
Non-Restoring-Division
Restoring-Division
Divisor wird subtrahiert
Falls Unterlauf (Ergebnis negativ): Divisor wird wieder addiert
Im nchsten Durchlauf wird die Hlfte des Divisors wieder subtrahiert
(wegen Links-Shift des Dividenden vor der Subtraktion)
BCD-Arithmetik (1)
BCD-Arithmetik (2)
Vorteil
Leichtes Umwandeln von Dezimalzahlen in BCD-codierte Zahlen
Rechnen mit BCD-codierten Zahlen
Spezielle Rechenwerke
Untersttzung in gngigen Prozessoren
Zumindest fr Addition und Subtraktion
Nachteil
Oft nicht alle Rechenoperationen in Hardware untersttzt
Rechenoperation in Software ineffizient
Verschwendung von Speicherplatz
Zusammenfassung
Binre Grundrechenarten
Addition und Subtraktion auf Grundlage von Volladdierern leicht
realisierbar
Addier-/Subtrahierwerke haben je nach Aufbau unterschiedlich lange
Gatterlaufzeiten
Multiplikation und Division sind im Vergleich zu Addition/Subtraktion
komplexer: bentigen mehr Aufwand in Hardware und/oder Rechenzeit
Multiplizierer/Dividierer sind in der Regel als serielle Rechenwerke auf
Grundlage von Schieberegistern und Addierern realisiert