Diskussion:X87

Letzter Kommentar: vor 4 Monaten von 84.158.120.82 in Abschnitt Widersprüche

Widersprüche

Bearbeiten

Hier ist gestanden: "[i387] wurde im Jahr 1986 eingeführt und war sowohl für den i386DX als auch für den i386SX geeignet". Auf en.wp steht "Released in 1987" und "The i387 was compatible only with the standard i386 chip, which had a 32-bit processor bus. The later cost-reduced i386SX, which had a narrower 16-bit data bus, could not interface with the i387's 32-bit bus.".

Ohne Quellen kann man schlecht nachvollziehen, was stimmt. Das (auf Pictures und dann auf das unterste Bild klicken) belegt zumindest, dass die 80387DX nur mit einer 80386DX funktionierte. Entsprechend kann wohl davon ausgegangen werden, dass die 80387SX nur mit einem 80386SX funktionierte (diese hat übrigens ein anderes Gehäuse, passt also schon mechanisch nicht zusammen). Bleibt die Frage offen, ob der erste 80387 mit einer SX-CPU funktionierte... --BerntieDisk. 18:16, 26. Aug. 2010 (CEST)Beantworten

Erg.: Siehe auch en:Talk:X87#Intel_80387. --BerntieDisk. 18:18, 26. Aug. 2010 (CEST)Beantworten
Im von mir verlinkten PC Mag Artikel steht es drin. Der 386SX hat einen schmaleren Datenbus mit nur 16 Bit, weswegen man für den einen eigenen 80387SX entworfen hat. Der 386DX hat einen 32 Bit breiten Datenbus, deswegen gibt es für den einen 80387 mit 32 Bit Breite. Intern ist die FPU Einheit in beiden aber weitgehend identisch. Es ist also nur der Busanteil, der verändert wurde. --84.158.120.82 04:10, 12. Aug. 2024 (CEST)Beantworten

Rechengenauigkeit

Bearbeiten

Mit wieviel Bit Rechengenauigkeit arbeiten die Coprozessoren für Gleit- und Festkommaaufgaben? --Baureihe156 18:14, 13. Okt. 2010 (CEST)Beantworten

Bei Gleitkommaberechnungen verwendet der Coprozessor 80 Bit-Zahlen. Festkommaberechnungen gehören nicht hierher, sonder ggf. nach SSE oder MMX (der X87-Befehlssatz unterstützt meines Wissens kein Festkomma). -- PaterMcFly Diskussion Beiträge 16:16, 5. Jan. 2011 (CET)Beantworten

untermenge, erweiterug

Bearbeiten

"x87 bezeichnet eine Untermenge des Befehlssatzes der x86-Architektur für Gleitkommaberechnungen. Wie andere Befehlssatzerweiterungen sind deren Befehle nicht notwendig" was denn nun untermenge oder erweiterung? 91.15.160.74 14:25, 5. Jan. 2011 (CET)Beantworten

Kommt auf die Sichtweise an. Es ist eine Untermenge des gesamten Befehlssatzes aber eine Erweiterung der X86-Befehle. -- PaterMcFly Diskussion Beiträge 15:32, 5. Jan. 2011 (CET)Beantworten
Es ist eine Erweiterung des ursprünglichen x86-Befehlssatzes, als eben die FPU noch ein separater Chip war, der nicht immer vorhanden war.
In alten x86-Dokumentationen von Intel wurden diese Befehle auch nur als ESC-0 bis ESC-7 bezeichnet, da sie in der CPU schlicht eine Exception auslösten, wenn nicht der CPU über einen separaten Pin mitgeteilt wurde, dass eine FPU vorhanden ist, dann hat die CPU nur die Adressen dekodiert, ggf. noch die Parameter für die FPU aus dem RAM geholt und dann die Regie an die FPU abgetreten...
Seit dem 486er ist die FPU fester Bestandteil der CPU und damit "versteht" der Prozessor nun auch die x87-Befehle selber, sie gehören seit dem zum x86-Befehlssatz dazu; die ehemals von der FPU verarbeiteten Befehle sind nun zu einer Teilmenge des x86-Befehlssatzes geworden.
Alle Klarheiten beseitigt? --RokerHRO 20:09, 5. Jan. 2011 (CET)Beantworten

80287 mit Prozessortakt oder Bustakt?

Bearbeiten

Läuft der 80287 (und Derivate) mit Prozessortakt oder Bustakt? Beim Betrieb mit Prozessortakt würden 80286-Prozessoren mit 16, 20 oder 25 MHz den Koprozessor hoffnungslos übertakten. Beim Betrieb mit Bustakt hingegen wäre keine Übertaktung (z.B. 80287-8 mit 80286-16, Bustakt = Prozessortakt/2 = 8 MHz ODER 80287-12 mit 80286-25, Bustakt = Prozessortakt/2 = 12,5 MHz) oder zumindest keine starke Übertaktung (z.B. 80287-8 mit 80286-25, Bustakt = Prozessortakt/3 ≈ 8,33 MHz) notwendig.--Arnulf zu Linden (Diskussion) 00:08, 27. Sep. 2012 (CEST)Beantworten

Der Takt war an den Oszillator des Hauptprozessors gekoppelt aber der 80287 läuft asynchron zum Hauptprozessor 80286 und verfügt über einen internen Teiler, weshalb er in der Regel etwas langsamer getaktet ist. Es gab aber auch Mainboards, die eigene Oszillatoren für den 80287 hatten. Viel wichtiger ist aber, dass der 80287 grundsätzlich nicht über den normalen Bus mit dem Hauptprozessor verbunden ist, sondern es dafür eine spezielle Verbindung gibt. Nur bei Prozessoren von Weitek ist das anders. In dem PC Mag Artikel vom 12 Februar 1991, den ich im Artikel verlinkt habe, ist das auf Seite 312 genauer beschrieben. --84.158.120.82 04:05, 12. Aug. 2024 (CEST)Beantworten

Grottige Formulierung

Bearbeiten

Im Artikel heißt es:

Bevor die x87-Befehle von den Prozessoren verarbeitet werden konnten, mussten Compiler oder Programmierer langsame Software-Bibliotheksprozeduren aufrufen, um derartige Gleitkommaoperationen durchzuführen. Diese Vorgehensweise ist in vielen preiswerten eingebetteten Systemen noch immer häufig notwendig. Alternativ wird in Systemen, die keine Gleitkommaeinheit aufweisen, Festkommaarithmetik eingesetzt, da diese in Integer-Recheneinheiten effizient implementiert werden kann.

Zum ersten Satz. Der 8087 wurde von Anfang als Kombination mit dem Hauptprozessor 8086 und später 8088 geplant, er erschien 1980 lediglich etwas später aber vor dem IBM PC. Vom Design her war das aber von Anfang an eingeplant, was sich auch daraus ergibt dass der 8086 eine direkte Verbindung zum 8087 am normalen Bussystem vorbei besitzt. Das kann man hier auf S. 309 nachlesen:

Die obige Formulierung suggeriert, dass es die x87 Befehle schon vorher gab und man diese dann in Software emulieren musste. Das war aber nicht der Fall, denn als der IBM PC erschien, gab es den 8087 Koprozessor bereits. Es war eher so, dass der Kunde diesen dann meist nicht in seinem PC hatte und nachkaufen musste und nur dann, wenn dieser noch nicht zur Verfügung stand, weil der konkrete Computer keinen Koprozessor hatte, musste man auf langsame Software Bibliotheken ausweichen, die die x87 Befehle dann in Software emulierten. Der Kunde hatte also die Möglichkeit gleich einen Koprozessor einzubauen, von einer Vergangenheitsform, im Sinne von früher, bevor Prozessoren x87 Befehle verarbeiten konnten wie es der obige Satz behauptet, kann man also nicht sprechen.

Man könnte meinen, der Satz ist aus dem Hauptartikel Koprozessor kopiert. Wenn man das ganz allgemein betrachtet und nicht x87 spezifisch, dann mag das so sein, dass man früher auf vielen verschiedenen Computer Architekturen eine Softwarelösung nutzen musste, weil es dort keine Möglichkeit mit Koprozessoren gab und die auch nicht eingeplant waren,aber gerade für den x86/x87 gilt das halt nicht und um genau den geht es hier im Artikel. Ich schlage daher folgende Änderung des ersten Satzes vor, damit das x87 spezifischer wird:

Wenn der Computer über keinen x87 Koprozessor verfügte mussten die x87-Befehle von dem Hauptprozessor in Software emuliert werden, weshalb es für Programmierer Compiler mit Software-Bibliotheken gab, die sie in ihrem Programmcode verwenden konnten, um derartige Gleitkommaoperationen auch ohne x87 Koprozessor durchzuführen.

Und was den nächsten Satz betrifft:

Diese Vorgehensweise ist in vielen preiswerten eingebetteten Systemen noch immer häufig notwendig. Alternativ wird in Systemen, die keine Gleitkommaeinheit aufweisen, Festkommaarithmetik eingesetzt, da diese in Integer-Recheneinheiten effizient implementiert werden kann.

So gehört der komplett gestrichen. Denn das bezieht sich nicht auf x87 Koprozessoren, sondern auf Koprozessoren allgemein und gehört daher, wenn es dort nicht ohnehin schon steht, in den allgemeinen Koprozessorartikel in den dortigen Geschichteabschnitt. --84.158.120.82 03:56, 12. Aug. 2024 (CEST)Beantworten