Schwimmpunkt-Einheit

Eine Schwimmpunkt-Einheit (FPU, umgangssprachlich ein Mathecoprozessor) ist ein Teil eines Computersystems besonders hat vorgehabt, Operationen auf Schwimmpunkt-Zahlen auszuführen. Typische Operationen sind Hinzufügung, Subtraktion, Multiplikation, Abteilung und Quadratwurzel. Einige Systeme (besonders ältere, mikrocodebasierte Architekturen) können auch verschiedene transzendente Funktionen wie trigonometrische oder Exponentialberechnungen durchführen, obwohl in den meisten modernen Verarbeitern diese mit Softwarebibliotheksroutinen getan werden.

In den meisten modernen allgemeinen Zweck-Computerarchitekturen werden ein oder mehr FPUs mit der Zentraleinheit integriert; jedoch haben viele eingebettete Verarbeiter, besonders ältere Designs, Hardware-Unterstützung für Schwimmpunkt-Operationen nicht.

In der Vergangenheit haben einige Systeme Schwimmpunkt über ein Coprozessor aber nicht als eine einheitliche Einheit durchgeführt; im Mikrocomputerzeitalter war das allgemein ein einzelner einheitlicher Stromkreis, während in älteren Systemen es eine komplette Leiterplatte oder ein Kabinett sein konnte.

Nicht alle Computerarchitekturen haben eine Hardware FPU. Ohne einen FPU kann mit vielen FPU-Funktionen wettgeeifert werden, der die zusätzlichen Hardware-Kosten eines FPU spart, aber bedeutsam langsamer ist. Wetteifer kann auf einigen von mehreren Niveaus durchgeführt werden: in der Zentraleinheit als Mikrocode, als eine Betriebssystemfunktion, oder im Benutzerraumcode.

In den meisten modernen Computerarchitekturen gibt es eine Abteilung von Schwimmpunkt-Operationen von Operationen der ganzen Zahl. Diese Abteilung ändert sich bedeutsam durch die Architektur; einige, wie Intel x86 haben Schwimmpunkt-Register gewidmet, während einige ihn so weit unabhängige Abstoppen-Schemas nehmen.

Schwimmpunkt-Operationen sind häufig pipelined. In früheren Superskalararchitekturen ohne General in Unordnung Ausführung waren Schwimmpunkt-Operationen manchmal pipelined getrennt von Operationen der ganzen Zahl. Seit dem Anfang der 1990er Jahre und Mitte der 1990er Jahre haben viele Mikroprozessoren für Arbeitsflächen und Server mehr als einen FPU.

Wenn eine Zentraleinheit ein Programm durchführt, das nach einer Schwimmpunkt-Operation verlangt, gibt es drei Weisen, sie auszuführen:

  • Ein Schwimmpunkt-Einheitsemulator (eine Schwimmpunkt-Bibliothek)
  • Erweiterung FPU
  • Integrierter FPU

Schwimmpunkt-Bibliothek

Eine Schwimmpunkt-Hardware unterstützt nur die einfachsten Operationen — Hinzufügung, Subtraktion und Multiplikation.

Aber sogar die kompliziertste Schwimmpunkt-Hardware hat eine begrenzte Zahl von Operationen, die sie — zum Beispiel unterstützen kann, unterstützt keiner von ihnen direkt Arithmetik der willkürlichen Präzision.

Wenn eine Zentraleinheit ein Programm durchführt, das nach einer Schwimmpunkt-Operation verlangt, die nicht direkt durch die Hardware unterstützt ist, verwendet die Zentraleinheit eine Reihe von einfacheren Schwimmpunkt-Operationen.

In Systemen ohne jede Schwimmpunkt-Hardware eifert die Zentraleinheit damit mit einer Reihe von einfacheren Festkommaarithmetik-Operationen wett, die auf der Arithmetik der ganzen Zahl Logikeinheit führen.

Die Software, die die notwendige Reihe von Operationen verzeichnet, um mit Schwimmpunkt-Operationen wettzueifern, wird häufig in einer Schwimmpunkt-Bibliothek paketiert.

Integrierter FPUs

In einigen Fällen kann FPUs spezialisiert, und zwischen einfacheren Schwimmpunkt-Operationen (hauptsächlich Hinzufügung und Multiplikation) und mehr komplizierten Operationen wie Abteilung geteilt werden. In einigen Fällen können nur die einfachen Operationen in der Hardware und/oder dem Mikrocode durchgeführt werden, während die komplizierteren Operationen als Maschinencoderoutinen durchgeführt (d. h. auf der Zusammenbau-Sprache oder einer kompilierten hohen Sprache geschrieben werden).

In einigen aktuellen Architekturen wird die FPU Funktionalität mit Einheiten verbunden, um SIMD Berechnung durchzuführen; ein Beispiel davon ist der Ersatz des x87 Instruktionssatzes mit dem SSE Befehlssatz in der x86-64 Architektur, die in neuerem Intel und AMD Verarbeitern verwendet ist.

Erweiterung FPUs

In den 1980er Jahren war es in Mikrocomputern von IBM PC / vereinbaren Mikrocomputern für den FPU üblich, von der Zentraleinheit völlig getrennt, und normalerweise als eine fakultative Erweiterung verkauft zu sein. Es würde nur wenn erforderlich gekauft, um zu beschleunigen oder matheintensive Programme zu ermöglichen.

IBM PC, XT und der grösste Teil von compatibles, der auf den 8088 oder 8086 gestützt ist, hatten eine Steckdose für das fakultative 8087 Coprozessor. AN und 80286-basierte Systeme waren allgemein socketed für die 80287, und 80386/80386SX hat Maschinen für die 80387 und 80387SX beziehungsweise gestützt, obwohl frühe socketed für die 80287 waren, seitdem die 80387 noch nicht bestanden haben.

Als man

mit den 80486 in x86 Chips angefangen hat, wurde die Schwimmpunkt-Einheit mit der Zentraleinheit, etwas Wahrem für fast alle späteren X86-Architektur-Verarbeiter integriert. Eine bemerkenswerte Ausnahme ist 80486SX; es war auch in diesem keinem wirklichen Coprozessor ungewöhnlich war verfügbar - die 80487 waren eine volle Zentraleinheit mit einem einheitlichen FPU; wenn installiert, würde das Original 80486SX arbeitsunfähig sein.

Zusätzlich zur Reihe von Intel x87 haben mehrere andere Gesellschaften Coprozessoren für die x86 Reihe verfertigt. Diese haben Cyrix eingeschlossen, der seine Reihe von FasMath als höhere Leistung auf den Markt gebracht hat, aber völlig x87 vereinbar, und Weitek, der einen Hochleistungs-, aber nicht völlig x87 vereinbare Reihe von Coprozessoren angeboten hat.

Zusätzlich zu den Architekturen von Intel FPUs weil waren Coprozessoren für Motorola 68000 Familienlinie verfügbar. Diese FPUs, die 68881 und 68882, waren in Motorola 68020/68030-based Arbeitsplätze wie die Sonne 3 Reihen üblich. Sie wurden auch zu Modellen des höheren Endes der Reihe der Apple Macintosh und Kommodores Amiga allgemein hinzugefügt, aber verschieden von Systemen von IBM PC-compatible waren Steckdosen, für das Coprozessor hinzuzufügen, nicht als üblich in niedrigeren Endsystemen. Mit den 68040 hat Motorola den FPU und die Zentraleinheit integriert, aber wie die x86 Reihe waren niedrigere Kosten 68LC040 ohne einen einheitlichen FPU auch verfügbar.

Außerdem gibt es Erweiterung FPUs Coprozessor-Einheiten für Mikrokontrolleur-Einheiten (MCUs/µCs)/single-board Computer (SBCs)', die dienen, um Fließkommaarithmetik-Fähigkeit in Systemen zur Verfügung zu stellen, die nicht sonst besitzen könnten, hat Funktionalität gesagt. Der Unterschied in diesen Typen von FPU Coprozessoren, wenn im Vergleich zu traditionelleren Schwimmpunkt-Coprozessoren solcher als 80x87 Reihe, ist, dass diese Erweiterung FPUs sind "unabhängiger Gastgeber-Verarbeiter", ihre eigenen Programmiervoraussetzungen besitzen Sie, und häufig mit ihren eigenen einheitlichen Entwicklungsumgebungen (IDE) s versorgt werden.

Siehe auch

  • ALU
  • Ausführungseinheit
  • IEEE Schwimmpunkt-Standard (auch bekannt als IEEE 754)
  • IBM Floating Point Architecture

Jess (Programmiersprache) / Denkfabrik
Impressum & Datenschutz