Archiv Prozessoren 8.660 Themen, 54.742 Beiträge

Fließkommaberechnung? was genau ist das?

Hausmeister Krause / 6 Antworten / Baumansicht Nickles

hallo!

ich würde gerne wissen was genau eine fließkommaberechnung ist. o.k., ich weiß, das das auf englisch fpu (floating point unit) heißt, und das die cyrix´s und die alten amds (k5/k6) in sachen fließkommaberechnung ziemlich lahm waren, und das intel fast immer die nase vor hatte, aber was genau verbirgt sich hinter dieser fließkommaberechnung???
bitte erklärt mir das so einfach und verständlich wie möglich.

viele dank im voraus von

Hausmeister Krause

pco (Anonym) Hausmeister Krause „Fließkommaberechnung? was genau ist das?“
Optionen

Gleitkommazahlen auch REAL getauft.

Bis zum 386 waren Rechner nur in der Lage INTEGER-Werte (Das sind Zahlen ohne Komma, grob gesagt) zu berechnen. Berechnungen mit "Komma"-Werten wurden also aufwendig auf ganzzahlige Operationen zurückgeführt (Division ist nur eine kürzere Subtraktion usw.).

Beim 286er konnte man mit dem "Mathematischen Coprozessor 80287" eine FPU (sprich Flies-Komma-Einheit) nachrüsten, beim 486er war sie schon drin.

Diese FPU ist jetzt verantwortlich für das Berechnen von REAL (sprich gebrochenen) Zahlen.

Wenn man sich die heutigen Spiele ansieht, kann man sich vorstellen, wie viele Fliesskommaberechnungen notwendig sind um solche Grafikpracht auf den Monitor zu zaubern. Deshalb ist die FPU ausschlaggebender Faktor für die Geschwindigkeit eines Prozessors.

Steht auch übrigens alles da, wenn Du mal auf das Wörtchen FPU clickst.

Hausmeister Krause pco (Anonym) „Gleitkommazahlen auch REAL getauft.Bis zum 386 waren Rechner nur in der Lage...“
Optionen

hi!

danke erstmal. also die FPU ist aussschließlich für das berechnen von zahlen, mit komma bzw. nachkommastellen?
konnte dann ein 286er keine kommaberechnungen ausführen?

also kurz gesagt: die fpu berechnet kommazahlen...?!


danke nochmal und viele grüße von

Hausmeister Krause

(Anonym) Hausmeister Krause „hi!danke erstmal. also die FPU ist aussschließlich für das berechnen von...“
Optionen

die fpu ist für gleitkommaop. optimiert.
auch die 286er konnten gleitkommaop. ausführen - nur eben über "umwege", was sich in der fp-leistung deutlich zeigte.

(Anonym) Hausmeister Krause „Fließkommaberechnung? was genau ist das?“
Optionen

Tach, Herr Krause!

Wie ja bekannt ist, kann die CPU eigentlich nur eins: Bits (also Nullen und Einsen) sehr schnell bearbeiten.

Um Zahlen darstellen zu können, hat man einfach mehrere dieser Bits zusammen gefasst (zu Bytes). Mehrere dieser Bytes werden nun zu Gruppen zusammengestellt und dort kann man dann ganzzahlige Zahlen (Integer) kodieren.

Wie rechnen aber nicht nur mit ganzen zahlen, sondern häufig mit Bruchzahlen (also Zahlen, die Nachkommastellen haben).

OK, wie bekommt kann man die mit Hilfe von Integerwerten darstellen?

Im Prinzip kann man aus einer Bruchzahl eine kommalosen Wert machen, indem man die Bruchzahl einige Male mit 10 multipliziert. Mit jeder Multiplikation wandert das Komma um eine Stelle nach hinten.

-> Es "fliesst" durch die Ziffern

Ok, man zählt wie oft man multipliziert hat und speichert diesen Wert (= Exponent). Den Wert, der sich durch das Multiplizieren ergeben hat wird ebenfalls als Integerwert gespeichert (= Mantisse).

Im Prinzip muss man das Kommaverschieben auch machen, wenn zwei so kodierte Werte verrechnen werden. Und das dauert - jedenfalls im Verhältnis zu einenfachen Integer-Berechnungen (da entfällt ja das Kommageschubse). ;-)

Deshalb hat man die FPU entwickelt, die solche Operationen schneller ausführen können als die normale CPU.

Alle Klarheiten beseitigt?

Bis denn
Andreas

PS: Da die CPU ja nur 0 und 1 lkennt, multipliziert sie nicht mit dem Dezimalwert 10, sondern mit dem 2 - aber das Prinzip ändert sich deshalb nicht.

Hausmeister Krause (Anonym) „Tach, Herr Krause!Wie ja bekannt ist, kann die CPU eigentlich nur eins: Bits...“
Optionen

hi!

also das nenn ich mal ne ausführliche antwort. ich hoffe, ich hab das jetzt kapiert.
die fpu ist also dafür da, sich den multiplikator zu merken (wie oft die kommazahl multipliziert wurde, damit sie zu einer ganzen zahl wird), und den wert, der als ergebnis der multiplikation rausgekommen ist! und rechnet dann mit diesen werten weiter!
also dafür und NUR dafür ist die FPU zuständig! und um den anderen rechenkram kümmert sich der rest der cpu!

könnte man das so sagen?

also herzlichen dank nochmal für die ausführliche antwort

viele grüße von Hausmeister Krause

andreas (Anonym) Hausmeister Krause „hi!also das nenn ich mal ne ausführliche antwort. ich hoffe, ich hab das jetzt...“
Optionen

Hi!

Nö, ganz so einfach ist nun doch nicht - bzw. das merken des Multiplikators (eigentlich die ganze Wandlung) kann
(und macht) die CPU selbst.

Ich hab' erstmal erklärt, wie Fliesskommrechnung eigentlich aussieht. ;-)

Es ist nur so: bei ganzen zahlen (Integer-Werte) kann die CPU zwei Werte direkt addieren oder multiplizieren, die
beiden Werte brauchen vorher (und i.d.R. nachher) nicht mehr besonders behandelt oder umkodiert werden.

Bei den Fliesskommazahlen ist das nicht so. Da muss man z.B. beim Addieren dafuer sorgen, das die beiden Exponenten den gleichen Wert haben. Dafür muss dann der Wert mit dem kleineren Exponenten sooft multipliziert werden, bis er den Exponenten des groesseren erreicht hat.
-> Also wird vor einer einfachen Addition wieder ein Komma geschubst, also man muss sehr viel mehr Aufwand treiben als bei normalen ganzzahligen Werten.

Das kann natürlich auch die normale CPU machen. Eine FPU ist speziell für solche Operationen entwickelt worden, solche Kommaschbsereien sind ihre Spezialität. Sie kann eine Fliesskomma-Addition oder Multiplikation sehr viel schneller erledigen, als das eine normale CPU kann.
Wenn ich sage, die FPU ist etwa 10 bis 100mal schneller, dürfte ich nicht sehr falsch liegen.
Ist genau der gleiche Trick, den man heute bei den 3D-Grafikkarten einsetzt. Die nehmen der CPU einen Teil der 3D-Berechnungen ab, weil sie einfach viel schneller sind....

:-)

Übrigends wird gerade bei den beliebten 3D-Games sehr viel mit der FPU gerechnet. Wenn die CPU dann eine etwas "schwächere" FPU hat, dann gibt's deshalb weniger Frames pro Sekunde.
Kennt man ja beim AMD K6-2 und beim Intel Celeron.

Bis denn
Andreas