Was ist Superscalar?

Ein superscalar Prozessor kann mehrfache Anweisungen während eines einzelnen Taktgeberzyklus unabhängig sofort durchführen. Er schließt überflüssige Durchführungsbetriebsmittel, wie mehrfache Gleitkommamaßeinheiten, arithmetisch-logische Einheiten und Zahlschieber ein. Diese Art des Prozessors ist für die parallele Datenverarbeitung und spekulative Durchführung ohne die Notwendigkeit an der speziellen Software bestimmt. Sie kann die Durchführungsgeschwindigkeit vieler Prozessor-intensiven Anwendungen verbessern, indem sie Code manipulieren und neu ordnen. Sie wird häufig in einigen Kategorien Computer, einschließlich Bediener, Schreibtische und sogar Laptope verwendet.

Obgleich einige Aspekte der Architektur in den Prozessoren seit den sechziger Jahren verwendet worden sind, wurden zutreffende superscalar Prozessoren nicht bis viel später freigegeben. Einige Behandlung mit reduziertem Befehlsset (RISC)prozessoren, die Ende der Achtzigerjahre und des Anfangs der 90er verkauft wurden, waren superscalar. Ihre einfachen Kerne und längenkonstanten Anweisungen bildeten das Verschicken und die Terminplanung von den parallelen einfachen Anweisungen verhältnismäßig. Viele Prozessoren nicht-RISC stellten her, da das Ende der 90en Jahre superscalar Architektur außerdem haben. Eingebettete, Niederleistungs- und andere Spezialgebietsprozessoren sind häufig die Ausnahmen und optimieren andere Aspekte ihrer Entwürfe anstelle von der parallelen Durchführung.

Einige Prozessoren können ein einbahniges mit Anweisungen von den mehrfachen Durchführungsgewinden teilen, bekannt als Super-verlegend. Wenn eine Funktionseinheit untätig ist, weil sie auf das gegenwärtig-Durchführung Gewinde wartet, kann sie eine Anweisung von einem anderen Gewinde mittlerweile durchführen. Diese Technik hilft, den Prozessor völlig zu verwenden aber ist nicht so leistungsfähig wie simultanes multithreading (SMT). Ein einzelner superscalar Prozessor kann mehrfache Anweisungen von den mehrfachen Gewinden using SMT gleichzeitig durchführen. Gewinde gleichzeitig durchführen kann für Systems- und Prozessorbetriebsmittel konkurrieren jedoch die das System verlangsamen können.

Prozessoren mit Mehrstufenrohrleitungen können mehrfache Anweisungen gleichzeitig durchführen, solange sie in verschiedenen Stadien der Durchführung sind. Demgegenüber können einige Anweisungen im gleichen Stadium in einem superscalar Prozessor gleichzeitig durchführen. Während es viele Ähnlichkeiten zwischen dieser Art des Prozessors und einem Mehraderprozessor gibt, sind sie nicht die selben. Ein Mehraderprozessor enthält einige komplette Prozessoren, genannt Kerne, in einer Vorrichtung. Jeder Kern eines Mehraderprozessors ist normalerweise superscalar und kann einige parallele Rohrleitungen mit einschließen.

Ein Hauptmerkmal eines superscalar Prozessors ist seine Fähigkeit, den Programmcode durchzuführen, der aus Leistungsfähigkeits-Gründen außer Betrieb ist. Um dies zu tun, muss es Abhängigkeiten jeder möglicher Anweisung nach anderen berücksichtigen. Wenn eine Anweisung die Resultate beeinflußt oder die Betriebsmittel von anderen benutzt, ist es in hohem Grade wahrscheinlich, dass die zwei nicht parallel durchgeführt werden dürfen. Techniken existieren, um eine Arten Abhängigkeiten zu beseitigen, aber andere müssen zu verarbeiten verzögern, bis Betriebsmittel vorhanden sind.

Außer Betriebdurchführung muss auch in der Lage sein, korrektem Inhalt der Register, der Markierungsfahnen und anderer Betriebsmittel zu garantieren, wenn eine Systemsunterbrechung auftritt. In diesem Fall muss der Systemszustand die selben schauen, als ob der Code der Reihe nach durchgeführt worden war, wie entworfen. Eine andere Betrachtung ist, wieviele Anweisungen der Prozessor überprüfen sollten, um Gelegenheiten für parallele Durchführung zu finden. Das grösser die Zahl, kann die Durchführung das leistungsfähiger sein. Dieses schließt auch spekulative Durchführung von Anweisungen in der anderen Seite jeder Niederlassung im überprüften Code ein.