Karli
Erklären Sie den Unterschied zwischen Pipelining und Vektorverarbeitung
1. Pipeline ist ein Satz von Datenverarbeitungselementen, die in Reihe geschaltet sind, sodass die Ausgabe eines Elements die Eingabe des nächsten ist, wobei der Vektorprozessor (Array-Prozessor) ein CPU-Design ist, bei dem die Anweisung set enthält Operationen, die mathematische Operationen an mehreren Datenelementen gleichzeitig ausführen können.
2. Die Elemente einer Pipeline werden oft parallel oder in Zeitschlitzen ausgeführt, was bedeutet, dass sie mehrere Elemente verarbeiten kann, während der Vektorprozessor ein Element gleichzeitig mit mehreren Anweisungen verarbeiten kann.
Kelly
Ein Vektorprozessor oder Array-Prozessor ist ein CPU-Design, bei dem der Befehlssatz
Operationen enthält, die mathematische Operationen an mehreren Datenelementen
gleichzeitig ausführen
können. Dies steht im Gegensatz zu einem Skalarprozessor, der jeweils ein
Element unter Verwendung mehrerer Befehle verarbeitet. Die überwiegende Mehrheit der CPUs ist skalar (oder
nahe daran). Vektorprozessoren waren im wissenschaftlichen Computing-Bereich weit verbreitet, wo
sie in den 1980er und bis in die 1990er Jahre die Grundlage der meisten Supercomputer bildeten,
aber allgemeine Leistungssteigerungen und Prozessordesigns führten dazu, dass
der Vektorprozessor als Universalprozessor fast
verschwunden war
Heutzutage enthalten die meisten
handelsüblichen CPU-Designs Einzelbefehle für einige Vektorverarbeitungen
auf mehreren (vektorisierten) Datensätzen, die normalerweise als SIMD (Single
Instruction, Multiple Data) bekannt sind. Häufige Beispiele sind SSE und AltiVec. Moderne Videospielkonsolen
und Computergrafikhardware für Verbraucher verlassen sich
in ihrer Architektur stark auf die Vektorverarbeitung
. Im Jahr 2000 arbeiteten IBM, Toshiba und Sony an der Entwicklung
des Cell-Prozessors, bestehend aus einem Skalarprozessor und acht Vektorprozessoren, der
unter anderem in der Sony PlayStation 3 Verwendung fand.
Andere CPU-Designs können mehrere Anweisungen für die Vektorverarbeitung enthalten
mehrere (vektorisierte) Datensätze, typischerweise bekannt als MIMD (Multiple Instruction, Multiple
Data), solche Designs sind sehr spezielle und empfindliche Rassen für spezielle Zwecke und
werden nicht allgemein für allgemeine Anwendungen vermarktet.
Der fortschrittlichere Ansatz ist nicht die aktive Vielzahl von Befehlen parallel, sondern die aktive Vielzahl von Anweisungen
, die zum Pipelining-Konzept geführt haben.
In der Softwareentwicklung besteht eine Pipeline aus einer Kette von Verarbeitungselementen (Prozesse,
Threads, Coroutinen usw.), die so angeordnet sind, dass die Ausgabe jedes Elements die Eingabe des
nächsten ist. Normalerweise wird eine gewisse Pufferung zwischen aufeinanderfolgenden Elementen bereitgestellt. Die
Informationen, die in diesen Pipelines fließen, sind oft ein Strom von Datensätzen, Bytes oder Bits.
Das Konzept wird auch als Designmuster für Rohre und Filter bezeichnet. Es wurde analog
zu einer physischen Pipeline benannt