ETI-Praktikum: Mikroprogrammierung Vorzeichenlose 32-Bit-Division Gruppe 27: Jakob Klein Arne Wirtz Gerrit Blöss SS 2006
Gruppe 27: Jakob Klein, Arne Wirtz, Gerrit Blöss Mikroprogrammierung: Vorzeichenlose 32-Bit-Division Folie 2 von 15 Aufgabenstellung Mögliche Algorithmen: „Stupide“ Subtraktion Schuldivision weitere Alternativen Schuldivision (unsere Umsetzung) Beschreibung des Mikroprogramms Quellen Übersicht
Gruppe 27: Jakob Klein, Arne Wirtz, Gerrit Blöss Mikroprogrammierung: Vorzeichenlose 32-Bit-Division Folie 3 von 15 Aufgabenstellung Mögliche Algorithmen: „Stupide“ Subtraktion Schuldivision weitere Alternativen Schuldivision (unsere Umsetzung) Beschreibung des Mikroprogramms Quellen Übersicht
Gruppe 27: Jakob Klein, Arne Wirtz, Gerrit Blöss Mikroprogrammierung: Vorzeichenlose 32-Bit-Division Folie 4 von 15 Aufgabenstellung Vorzeichenlose ganzzahlige Division: udiv Dividend: 32 Bit (höherer Teil in R0, niedrigerer in RA) Divisor: 16 Bit (in RB) Ergebnis: 16 Bit (Rückgabe in RB) Rest: 16 Bit (Rückgabe in R0)
Gruppe 27: Jakob Klein, Arne Wirtz, Gerrit Blöss Mikroprogrammierung: Vorzeichenlose 32-Bit-Division Folie 5 von 15 Aufgabenstellung Mögliche Algorithmen: „Stupide“ Subtraktion Schuldivision weitere Alternativen Schuldivision (unsere Umsetzung) Beschreibung des Mikroprogramms Quellen Übersicht
Gruppe 27: Jakob Klein, Arne Wirtz, Gerrit Blöss Mikroprogrammierung: Vorzeichenlose 32-Bit-Division Folie 6 von 15 Mögliche Algorithmen: „Stupide“ Subtraktion So oft wie möglich Divisor von Dividend abziehen Divisionsergebnis: Anzahl der Subtraktionen Sehr einfach zu implementieren Unökonomisch für große Dividenden und kleine Divisoren, Beispiel: (2 15 : 1) würde 2 15 Subtraktionen erfordern!
Gruppe 27: Jakob Klein, Arne Wirtz, Gerrit Blöss Mikroprogrammierung: Vorzeichenlose 32-Bit-Division Folie 7 von 15 Mögliche Algorithmen: Schuldivision 784 : 11 = Rest 3 Shiften des Divisors Multiplikation (für binär unerheblich) Subtraktion Additions des Faktors zum Ergebnis Max. 16 Durchgänge für 16 Stellen
Gruppe 27: Jakob Klein, Arne Wirtz, Gerrit Blöss Mikroprogrammierung: Vorzeichenlose 32-Bit-Division Folie 8 von 15 Mögliche Algorithmen: weitere Alternativen Division mit Hilfe von Tabellen Eingesetzt u.a. im Intel Pentium (Tabellenfehler: „FDIV-Bug“) Ganzzahlige Division nach Jebelean schneller als Schuldivision wesentlich komplizierter zu implementieren
Gruppe 27: Jakob Klein, Arne Wirtz, Gerrit Blöss Mikroprogrammierung: Vorzeichenlose 32-Bit-Division Folie 9 von 15 Aufgabenstellung Mögliche Algorithmen: „Stupide“ Subtraktion Schuldivision weitere Alternativen Schuldivision (unsere Umsetzung) Beschreibung des Mikroprogramms Quellen Übersicht
Gruppe 27: Jakob Klein, Arne Wirtz, Gerrit Blöss Mikroprogrammierung: Vorzeichenlose 32-Bit-Division Folie 10 von 15 Schuldivision (unsere Umsetzung) Shiften des Dividenden anstelle des Divisors vermeidet Berechnung an Registergrenze Abbruch, falls obere Hälfte des Dividenden ≥ Divisor, da sonst Ergebnis > 16 Bit Besondere Fälle: Obere Hälfte des Dividenden ≥ Divisor Divisor = 0 Ergebnis = 0 mit Rest
Gruppe 27: Jakob Klein, Arne Wirtz, Gerrit Blöss Mikroprogrammierung: Vorzeichenlose 32-Bit-Division Folie 11 von 15 Schuldivision (unsere Umsetzung) II 2. Falls obere 16 Bit des Dividenden ≥ Divisor: Abbruch 3. Dividenden einmal nach links shiften: µ c A H A L 0 4. Falls [µ c |A H ] ≥ Divisor: a. Divisor von [µ c |A H ] abziehen, Erg. in A H b. Schleifenzähler zu Gesamterg. (in RB) addieren 5. Schleifenzähler einmal nach rechts shiften 6. Falls Schleifenzähler = 0: Abbruch; sonst springe zu Rücksprung (Ergebnis in RB, Rest in R0) 1. Schleifenzähler: 16 Bit lang, nur MSB auf 1
Gruppe 27: Jakob Klein, Arne Wirtz, Gerrit Blöss Mikroprogrammierung: Vorzeichenlose 32-Bit-Division Folie 12 von 15 Schuldivision (unsere Umsetzung) III Beispiel mit 4-Bit-Registern : | 0000Erg.: Zähler: Ende! 1101 R: 0100 (Dezimal: 147 : 11 = 13 R 4)
Gruppe 27: Jakob Klein, Arne Wirtz, Gerrit Blöss Mikroprogrammierung: Vorzeichenlose 32-Bit-Division Folie 13 von 15 Aufgabenstellung Mögliche Algorithmen: „Stupide“ Subtraktion Schuldivision weitere Alternativen Schuldivision (unsere Umsetzung) Beschreibung des Mikroprogramms Quellen Übersicht
Gruppe 27: Jakob Klein, Arne Wirtz, Gerrit Blöss Mikroprogrammierung: Vorzeichenlose 32-Bit-Division Folie 14 von 15 Beschreibung des Mikroprogramms
Gruppe 27: Jakob Klein, Arne Wirtz, Gerrit Blöss Mikroprogrammierung: Vorzeichenlose 32-Bit-Division Folie 15 von 15 Quellen Carter, Nicholas P. Computerarchitektur. mitp-Verlag, Bonn, Margret Bauer, Andreas Dehne, Tobias Jahn. Schnelle ganzzahlige Division und ggT-Berechnung in Computeralgebra-Systemen. Technische Universität München. Division_und_ggt-Berechnung.pdf (Stand: ) Division_und_ggt-Berechnung.pdf