Sunday, May 20, 2018

Koprozessor - Wikipedia


AM9511-1 arithmetischer Coprozessor

Ein Coprozessor ist ein Computerprozessor, der die Funktionen des primären Prozessors (der CPU) ergänzt. Vom Koprozessor ausgeführte Vorgänge können Gleitkomma-Arithmetik, Grafik, Signalverarbeitung, String-Verarbeitung, Kryptographie oder E / A-Schnittstelle mit Peripheriegeräten sein. Durch das Entladen von prozessorintensiven Aufgaben vom Hauptprozessor können Coprozessoren die Systemleistung beschleunigen. Coprozessoren ermöglichen die Anpassung einer Reihe von Computern, so dass Kunden, die keine zusätzliche Leistung benötigen, nicht dafür bezahlen müssen.

Funktionalität [ edit ]

Coprozessoren variieren in ihrem Autonomiegrad. Einige (wie FPUs) basieren auf der direkten Steuerung über Coprozessoranweisungen, die in den Befehlsstrom der CPU eingebettet sind. Andere sind eigenständige Prozessoren, die asynchron arbeiten können. Sie sind immer noch nicht für Mehrzweckcode optimiert oder aufgrund eines begrenzten Befehlssatzes, der auf die Beschleunigung bestimmter Aufgaben ausgerichtet ist, nicht in der Lage. Es ist üblich, dass diese von DMA gesteuert werden, wobei der Hostprozessor eine Befehlsliste erstellt. Die Emotion-Engine der PlayStation 2 enthielt eine ungewöhnliche, DSP-ähnliche SIMD-Vektoreinheit, die für beide Betriebsarten geeignet ist.

History [ edit ]

Um die Prozessorzeit des Mainframe-Computers optimal zu nutzen, wurden Ein- / Ausgabe-Aufgaben an separate Systeme mit der Bezeichnung "Channel I / O" delegiert. Der Mainframe würde überhaupt keine E / A-Verarbeitung erfordern, sondern stattdessen einfach Parameter für eine Eingabe- oder Ausgabeoperation einstellen und dann dem Kanalprozessor signalisieren, die gesamte Operation auszuführen. Durch die Bereitstellung relativ einfacher Subprozessoren für die Verarbeitung zeitaufwändiger E / A-Formatierung und -Verarbeitung wurde die Systemleistung insgesamt verbessert.

Coprozessoren für die Fließkomma-Arithmetik wurden in den 1970er Jahren erstmals auf Desktop-Computern veröffentlicht und wurden in den 1980er und frühen 1990er Jahren verbreitet. Frühe 8-Bit- und 16-Bit-Prozessoren verwendeten Software zum Ausführen von Gleitkomma-Arithmetikoperationen. Wenn ein Coprozessor unterstützt wurde, konnten Gleitkommaberechnungen um ein Vielfaches schneller durchgeführt werden. Mathematische Coprozessoren waren beliebte Käufe für Benutzer von Computer-Aided-Design (CAD) -Software und für wissenschaftliche und technische Berechnungen. Einige Floating-Point-Einheiten wie AMD 9511, Intel I8231 und Weitek FPUs wurden als Peripheriegeräte behandelt, während andere wie Intel 8087, Motorola 68881 und National 32081 enger in die CPU integriert waren.

Eine andere Form des Coprozessors war ein Videoanzeige-Coprozessor, wie er in der Atari-8-Bit-Familie verwendet wird, die Texas Instruments TI-99 / 4A und MSX-Heimcomputer, die als "Video Display Controller" bezeichnet wurden. Der Commodore Amiga Custom-Chipsatz enthielt eine als Kupfer bekannte Einheit sowie einen Blitter zur Beschleunigung der Bitmap-Bearbeitung im Speicher.

Mit der Entwicklung von Mikroprozessoren sanken die Kosten für die Integration der Gleitkomma-Arithmetikfunktionen in den Prozessor. Hohe Prozessorgeschwindigkeiten machten die Implementierung eines eng integrierten Koprozessors ebenfalls schwierig. Separat verpackte mathematische Coprozessoren sind in Desktop-Computern heute ungewöhnlich. Die Nachfrage nach einem dedizierten Grafik-Coprozessor ist jedoch insbesondere aufgrund der steigenden Nachfrage nach realistischer 3D-Grafik in Computerspielen gewachsen.

i8087 und i80287 microarchitecture

Der ursprüngliche IBM-PC enthielt einen Sockel für den Intel 8087-Gleitkommacoprozessor (auch FPU genannt), der für Leute sehr beliebt war, die den PC für CAD- oder mathematikintensive Berechnungen verwendeten. In dieser Architektur beschleunigt der Coprozessor die Fließkomma-Arithmetik um das Fünfzigfache. Benutzer, die den PC beispielsweise nur für die Textverarbeitung verwendeten, konnten die hohen Kosten des Coprozessors einsparen, was die Leistung von Textbearbeitungsvorgängen nicht beschleunigt hätte.

Die 8087 war eng in die 8086/8088 integriert und reagierte auf Gleitcode-Maschinencode-Operationscodes, die in den 8088-Befehlsstrom eingefügt wurden. Ein 8088-Prozessor ohne 8087 konnte diese Anweisungen nicht interpretieren, was separate Versionen von Programmen für FPU- und Nicht-FPU-Systeme oder zumindest einen Test zur Laufzeit zur Erkennung der FPU und zum Auswählen geeigneter mathematischer Bibliotheksfunktionen erfordert.

Intel 80386DX-CPU mit mathematischem Coprozessor 80387DX

Ein weiterer Coprozessor für den Zentralprozessor 8086/8088 war der 8089-Coprozessor mit Ein- und Ausgang. Es verwendete die gleiche Programmiertechnik wie 8087 für Eingabe- / Ausgabeoperationen, z. B. für die Übertragung von Daten vom Speicher an ein Peripheriegerät, um so die Belastung der CPU zu reduzieren. IBM hat sie jedoch nicht im IBM PC-Design verwendet, und Intel hat die Entwicklung dieses Coprozessortyps eingestellt.

Der Intel 80386-Mikroprozessor verwendete einen optionalen "mathematischen" Coprozessor (den 80387), um Fließkommaoperationen direkt in der Hardware auszuführen. Der Intel 80486DX-Prozessor enthielt auf dem Chip Fließkomma-Hardware. Intel brachte einen kostenreduzierten Prozessor, den 80486SX, heraus, der über keine Fließkomma-Hardware verfügte, und verkaufte außerdem einen 80487SX-Coprozessor, der den Hauptprozessor bei der Installation im Wesentlichen deaktivierte, da der 80487SX ein kompletter 80486DX mit einem anderen Satz von Pin-Verbindungen war. [1]

Intel-Prozessoren, die später als die 80486-Gleitkomma-Hardware auf dem Hauptprozessorchip integriert waren; Die Fortschritte bei der Integration beseitigten den Kostenvorteil des Verkaufs des Fließkomma-Prozessors als optionales Element. Es wäre sehr schwierig, Leiterplattentechniken, die bei einer Prozessorgeschwindigkeit von 75 MHz angemessen sind, an die Zeitverzögerung, den Stromverbrauch und die Funkfrequenzinterferenznormen anzupassen, die bei Taktraten im Gigahertz-Bereich erforderlich sind. Diese chipinternen Floating-Point-Prozessoren werden immer noch als Coprozessoren bezeichnet, da sie parallel zur Haupt-CPU arbeiten.

Während der Ära der 8- und 16-Bit-Desktopcomputer war Weitek eine weitere Quelle für Floating-Point-Coprozessoren. Diese Koprozessoren hatten einen anderen Befehlssatz als die Intel-Koprozessoren und verwendeten einen anderen Sockel, der nicht von allen Motherboards unterstützt wurde. Die Weitek-Prozessoren stellten keine transzendentalen mathematischen Funktionen (z. B. trigonometrische Funktionen) wie die Intel x87-Familie bereit und erforderten spezielle Softwarebibliotheken, um ihre Funktionen zu unterstützen. [2]

Motorola [ edit

] Die Motorola 68000-Familie hatte die 68881/68882-Coprozessoren, die eine ähnliche Fließkomma-Geschwindigkeitsbeschleunigung wie die Intel-Prozessoren bereitstellten. Computer, die die 68000-Familie verwenden, jedoch nicht mit dem Hardware-Gleitkomma-Prozessor ausgestattet sind, könnten die Gleitkomma-Anweisungen in der Software einfangen und emulieren, wodurch, obwohl langsamer, eine binäre Version des Programms für beide Fälle verteilt werden konnte. Der 68451-Speicherverwaltungs-Koprozessor wurde entwickelt, um mit dem 68020-Prozessor zusammenzuarbeiten. [3]

Moderne Coprozessoren [ edit ]

Ab 2001 dedizierte Graphics Processing Units (GPUs) in Die Form von Grafikkarten ist alltäglich. Einige Soundkartenmodelle wurden bereits von 1990 bis 1994 mit dedizierten Prozessoren für digitales Multichannel-Mixing und Echtzeit-DSP-Effekten ausgestattet (die Gravis Ultrasound und Sound Blaster AWE32 sind typische Beispiele), der Sound Blaster Audigy und der Sound Blaster X -Fi sind neuere Beispiele.

Im Jahr 2006 kündigte AGEIA eine Zusatzkarte für Computer an, die PhysX PPU genannt wurde. PhysX wurde entwickelt, um komplexe physikalische Berechnungen durchzuführen, sodass CPU und GPU diese zeitaufwändigen Berechnungen nicht durchführen müssen. Es wurde für Videospiele entwickelt, obwohl theoretisch andere mathematische Anwendungen entwickelt werden könnten. 2008 kaufte Nvidia das Unternehmen und stellte die PhysX-Kartenlinie ein; Die Funktionalität wurde durch Software hinzugefügt, die es den GPUs ermöglichte, PhysX auf Kernen zu rendern, die normalerweise für die Grafikverarbeitung verwendet werden, und zwar unter Verwendung ihrer Nvidia PhysX Engine-Software.

2006 stellte BigFoot Systems eine PCI-Add-In-Karte vor, die als KillerNIC bezeichnet wurde, die einen eigenen speziellen Linux-Kernel auf einem FreeScale-PowerQUICC mit 400 MHz lief und den FreeScale-Chip als Network Processing Unit oder NPU bezeichnet.

Die SpursEngine ist eine medienorientierte Add-In-Karte mit einem Coprozessor, der auf der Cell-Mikroarchitektur basiert. Die SPUs sind selbst Vektor-Coprozessoren.

Im Jahr 2008 veröffentlichte die Khronos Group das OpenCL mit dem Ziel, Universal-CPUs, ATI / AMD- und Nvidia-GPUs (und andere Beschleuniger) mit einer einzigen gemeinsamen Sprache für Rechenkernel zu unterstützen.

In den 2010er Jahren hatten einige mobile Rechengeräte den Sensor-Hub als Coprozessor implementiert. Beispiele für Coprozessoren, die zur Handhabung der Sensorintegration in Mobilgeräten verwendet werden, sind die Bewegungscoprozessoren Apple M7 und M8, der Qualcomm Snapdragon-Sensorkern und Qualcomm Hexagon sowie die Holographic Processing Unit für die Microsoft HoloLens.

Im Jahr 2012 kündigte Intel den Intel Xeon Phi Coprozessor an. [4]

Ab 2016 entwickeln verschiedene Unternehmen Coprozessoren, um künstliche neuronale Netzwerke für visuelle und andere kognitive Aufgaben zu beschleunigen (z. B. Bildverarbeitungsgeräte, TrueNorth und Zeroth) und ab 2018 sind solche KI-Chips in Smartphones wie Apple und mehreren Android-Telefonherstellern enthalten.

Andere Coprozessoren [ edit ]

  • Die MIPS-Architektur unterstützt bis zu vier Coprozessoreinheiten, die für die Speicherverwaltung, die Gleitkomma-Arithmetik und zwei undefinierte Coprozessoren für andere Aufgaben wie Grafiken verwendet werden Beschleuniger. [5]
  • Mithilfe von FPGA (Field Programmable Gate Arrays) können benutzerdefinierte Coprozessoren zur Beschleunigung bestimmter Verarbeitungsaufgaben wie z. B. der digitalen Signalverarbeitung erstellt werden (z. B. Zynq kombiniert ARM-Kerne mit FPGA auf einem einzigen Chip).
  • TLS / SSL-Beschleuniger, die auf Servern verwendet werden; Solche Beschleuniger waren früher Karten, aber heutzutage gibt es Anweisungen für Krypto in Mainstream-CPUs.
  • Einige Multi-Core-Chips können so programmiert werden, dass einer ihrer Prozessoren der Primärprozessor ist und die anderen Prozessoren Coprozessoren unterstützen. 19659039] Der chinesische PCI-e-Coprozessor Matrix 2000 128-Core ist ein proprietärer Beschleuniger, für den eine CPU erforderlich ist. Er wurde bei einem Upgrade des 17.792-Knoten-Tianhe-2-Supercomputers (je 2 Intel Knights Bridge + 2 Matrix 2000) eingesetzt 2A genannt, verdoppelte etwa die Geschwindigkeit bei 95 Petaflops und übertraf damit den schnellsten Supercomputer der Welt. [6]
  • Eine Reihe von Coprozessoren war für Acorn BBC Micro-Computer erhältlich. Anstelle von Grafik- oder Arithmetikgeräten für spezielle Zwecke handelt es sich um Universal-CPUs (z. B. 8086, Zilog Z80 oder 6502), denen vom Betriebssystem bestimmte Aufgabentypen zugewiesen wurden, die sie von der Haupt-CPU des Computers entladen was zu einer Beschleunigung führt. Darüber hinaus konnte ein mit einem Coprozessor ausgestatteter BBC Micro Maschinencodesoftware für andere Systeme wie CP / M und DOS ausführen, die für 8086-Prozessoren entwickelt wurden.

Im Laufe der Zeit neigten die CPUs dazu, die Funktionalität zu übernehmen der beliebtesten Koprozessoren. FPUs gelten heute als wesentlicher Bestandteil der Hauptpipeline von Prozessoren. SIMD-Einheiten beschleunigten das Multimedia und übernahmen die Rolle verschiedener DSP-Beschleunigerkarten. und sogar GPUs wurden auf CPU-Chips integriert. Nichtsdestotrotz bleiben spezialisierte Einheiten weit entfernt von Desktop-Computern und für zusätzliche Leistung und ermöglichen eine kontinuierliche Entwicklung unabhängig von den Hauptproduktlinien des Prozessors.

Siehe auch [ edit ]

Literaturhinweise [ edit

  1. Scott Mueller, Upgrading and repairing PCs 15. Auflage, Que Publishing, 2003 ISBN 0-7897-2974-1, Seiten 108–110
  2. ^ Scott Mueller, Aufrüsten und Reparieren von PCs, Zweite Auflage Que Publishing, 1992 ISBN 0-88022-856-3, Seiten 412-413
  3. ^ William Ford, William R. Topp Assemblersprache und Systemprogrammierung für die M68000-Familie Jones & Bartlett Learning, 1992 ISBN 0-7637-0357-5 Seite 892 und ff.
  4. ^ "Intel Delivers Neue Architektur für die Entdeckung mit Intel® Xeon Phi ™ Coprocessors ". Newsroom.intel.com. 2012-11-12. Archiviert aus dem Original am 03.06.2013 . 2013-06-16 .
  5. ^ Erin Farquhar, Philip Bunce, Das Handbuch des MIPS-Programmierers Morgan Kaufmann, 1994 ISBN 1-55860-297 -6, Anhang A3 Seite 330
  6. ^ "Chinas Tianhe-2A wird proprietären Beschleuniger und 95 Petaflops Peak verwenden". hpcwire.com . 25. September 2017 . 7. April 2018
abgerufen.

No comments:

Post a Comment