Komplizierte Befehlssatz-Computerwissenschaft

Ein komplizierter Befehlssatz-Computer (CISC), ist ein Computer, wo einzelne Instruktionen mehrere auf niedriger Stufe Operationen (wie eine Last auswendig, eine arithmetische Operation und ein Speicherlager) durchführen können und/oder zu Mehrschritt-Operationen oder Wenden-Weisen innerhalb von einzelnen Instruktionen fähig sind. Der Begriff wurde im Gegensatz zum reduzierten Befehlssatz-Computer (RISC) rückwirkend ins Leben gerufen.

Beispiele von CISC Befehlssatz-Architekturen sind System/360 durch z/Architecture, PDP-11, VAX, Motorola 68k und x86.

Historischer Designzusammenhang

Aufhetzungen und Vorteile

Bevor die RISC Philosophie prominent geworden ist, haben viele Computerarchitekten versucht, die so genannte semantische Lücke, d. h. zu Designbefehlssätzen zu überbrücken, die direkt Programmierkonstruktionen auf höchster Ebene wie Verfahren-Anrufe, Schleife-Kontrolle und komplizierte Wenden-Weisen unterstützt haben, Datenstruktur und Reihe-Zugängen erlaubend, in einzelne Instruktionen verbunden zu werden. Instruktionen werden auch normalerweise hoch verschlüsselt, um weiter die Codedichte zu erhöhen. Die Kompaktnatur solcher Befehlssätze läuft auf kleinere Programm-Größen und weniger (langsame) Hauptspeicherzugänge hinaus, die zurzeit (Anfang der 1960er Jahre und vorwärts) auf enorme Ersparnisse auf den Kosten des Computergedächtnisses und der Scheibe-Lagerung, sowie der schnelleren Ausführung hinausgelaufen sind. Es hat auch gute Programmierproduktivität sogar auf der Zusammenbau-Sprache bedeutet, weil hohe Sprachen wie Fortran oder Algol nicht immer verfügbar oder passend waren (Mikroprozessoren in dieser Kategorie werden manchmal noch auf der Zusammenbau-Sprache für bestimmte Typen von kritischen Anwendungen programmiert).

Neue Instruktionen

In den 1970er Jahren hat die Analyse von hohen Sprachen einige komplizierte Maschinensprachdurchführungen angezeigt, und sie wurde beschlossen, dass neue Instruktionen Leistung verbessern konnten. Einige Instruktionen wurden hinzugefügt, die nie beabsichtigt waren, um auf der Zusammenbau-Sprache verwendet, aber gut mit kompilierten hohen Sprachen passend zu werden. Bearbeiter wurden aktualisiert, um diese Instruktionen auszunutzen. Die Vorteile semantisch reicher Instruktionen mit kompaktem encodings können in modernen Verarbeitern ebenso besonders im hohen Leistungssegment gesehen werden, wo geheime Lager ein Hauptbestandteil (im Vergleich mit am meisten eingebetteten Systemen) sind. Das ist, weil diese schnell, aber kompliziert und teuer werden Erinnerungen in der Größe von Natur aus beschränkt, Kompaktcode vorteilhaft machend. Natürlich besteht der grundsätzliche Grund sie sind erforderlich, darin, dass Haupterinnerungen (d. h. dynamischer RAM heute) langsam im Vergleich zu (hohe Leistung) Zentraleinheitskern bleiben.

Designprobleme

Während viele Designs das Ziel des höheren Durchflusses an niedrigeren Kosten erreicht haben und auch Konstruktionen der höheren Programmiersprache erlaubt haben, durch weniger Instruktionen ausgedrückt zu werden, wurde es bemerkt, dass das nicht immer der Fall war. Zum Beispiel konnten Versionen des niedrigen Endes von komplizierten Architekturen (d. h. weniger Hardware verwendend), zu Situationen führen, wo es möglich war, Leistung zu verbessern, indem es eine komplizierte Instruktion (wie ein Verfahren-Anruf nicht verwendet worden ist oder in Instruktion einzugehen), aber stattdessen das Verwenden einer Folge von einfacheren Instruktionen.

Ein Grund dafür bestand darin, dass Architekten (mikrocodieren Schriftsteller), manchmal "überentworfene" Assembler-Instruktionen, d. h. einschließlich Eigenschaften, die nicht möglich waren, effizient auf der grundlegenden verfügbaren Hardware durchzuführen. Das konnte zum Beispiel "Nebenwirkungen" (über herkömmlichen Fahnen), wie die Einstellung eines Registers oder Speicherposition sein, die vielleicht selten verwendet wurde; wenn das über den gewöhnlichen (nicht kopiert) innere Busse oder sogar der Außenbus getan würde, würde es Extrazyklen jedes Mal fordern, und ist so ziemlich ineffizient.

Sogar in erwogenen hohen Leistungsdesigns konnten hoch verschlüsselte und Instruktionen (relativ) auf höchster Ebene kompliziert werden, um zu decodieren und effizient innerhalb eines beschränkten Transistor-Budgets durchzuführen. Solche Architekturen haben deshalb sehr viel Arbeit seitens des Verarbeiter-Entwerfers in Fällen verlangt, wo ein einfacherer, aber (normalerweise) langsamer decodiert Lösung, die darauf gestützt ist, Tische und/oder mikrocodiert sequencing, nicht passend ist. Als Transistoren und andere Bestandteile eine beschränkte Quelle waren, hat das auch weniger Bestandteile und weniger Gelegenheit für andere Typen von Leistungsoptimierungen verlassen.

Die RISC Idee

Das Schaltsystem, das die Handlungen durchführt, die durch den Mikrocode in vielen (aber nicht alle) CISC Verarbeiter definiert sind, ist an sich, ein Verarbeiter, der auf viele Weisen in der Struktur an sehr frühen Zentraleinheitsdesigns erinnernd ist. Am Anfang der 1970er Jahre hat das Ideen verursacht, zu einfacheren Verarbeiter-Designs zurückzukehren, um es mehr ausführbar zu machen, ohne (dann relativ groß und teuer) ROM-Tische und/oder PLA Strukturen für sequencing und/oder Entzifferung gewachsen zu sein. Der erste (rückwirkend) RISC-etikettierte Verarbeiter (IBM 801 - IBMs Forschungszentrum von Watson, Mitte der 1970er Jahre) war dicht pipelined einfache Maschine hat ursprünglich vorgehabt, als ein innerer Mikrocodekern oder Motor in CISC Designs verwendet zu werden, sondern auch ist der Verarbeiter geworden, der die RISC Idee zu einem etwas größeren Publikum eingeführt hat. Einfachheit und Regelmäßigkeit auch im sichtbaren Befehlssatz würden es leichter machen, überlappende Verarbeiter-Stufen (pipelining) am Maschinencodeniveau durchzuführen (d. h. das durch Bearbeiter gesehene Niveau.) Jedoch, pipelining an diesem Niveau wurde bereits in etwas hoher Leistung CISC "Supercomputer" verwendet, um die Instruktionszykluszeit (trotz der Komplikationen des Einführens innerhalb der beschränkten Teilzählung und der Verdrahtung der Kompliziertheit ausführbar zurzeit) zu reduzieren. Die innere Mikrocodeausführung in CISC Verarbeitern konnte andererseits mehr oder weniger pipelined abhängig vom besonderen Design, und deshalb mehr oder weniger verwandt mit der grundlegenden Struktur von RISC Verarbeitern sein.

Superskalar

In einem moderneren Zusammenhang macht die komplizierte durch einige der typischen CISC Architekturen verwendete Verschlüsselung der variablen Länge sie hat kompliziert, aber noch ausführbar, um eine Superskalardurchführung eines CISC zu bauen, der Modell direkt programmiert; um ursprünglicher Superskalarpentium und in Unordnung Superskalarcyrix 6x86 weithin bekannte Beispiele davon sind. Die häufigen Speicherzugänge für operands einer typischen CISC Maschine können den Instruktionsniveau-Parallelismus beschränken, der aus dem Code herausgezogen werden kann, obwohl das durch die schnellen Strukturen des geheimen Lagers stark vermittelt wird, die in modernen Designs, sowie durch andere Maßnahmen verwendet sind. Wegen von Natur aus kompakter und semantisch reicher Instruktionen ist der durchschnittliche Betrag der Arbeit, die pro Maschinencodeeinheit (d. h. pro Byte oder Bit) durchgeführt ist, für einen CISC höher als ein RISC Verarbeiter, der es geben kann, hat ein bedeutender Vorteil in einem modernen geheimen Lager Durchführung gestützt. (Ob die Kehrseiten gegen die Oberseiten ein kompliziertes Design oder nicht rechtfertigen Essen für eine endlose Debatte in bestimmten Kreisen sind.)

Transistoren für die Logik, PLAs und den Mikrocode sind nicht mehr knappe Mittel; nur große Hochleistungserinnerungen des geheimen Lagers werden durch die maximale Zahl von Transistoren heute beschränkt. Obwohl Komplex, die Transistor-Zählung von CISC Decodern exponential wie die Gesamtzahl von Transistoren pro Verarbeiter (die Mehrheit nicht wächst, die normalerweise für geheime Lager verwendet ist). Zusammen mit besseren Werkzeugen und erhöhten Technologien hat das zu neuen Durchführungen hoch verschlüsselten und Designs der variablen Länge ohne Lastladen-Beschränkungen (d. h. non-RISC) geführt. Das regelt Wiederdurchführungen von älteren Architekturen wie der allgegenwärtige x86 (sieh unten) sowie die neuen Designs für Mikrokontrolleure für eingebettete Systeme und der ähnliche Gebrauch. Die Superskalarkompliziertheit im Fall von modernem x86 wurde mit dynamisch ausgegebenen und gepufferten Mikrooperationen, d. h. indirekter und dynamischer Superskalarausführung gelöst; der Pentium Pro und AMD K5 ist frühe Beispiele davon. Es erlaubt einem ziemlich einfachen Superskalardesign, nach den (ziemlich komplizierten) Decodern (und Puffer), das Geben gelegen zu werden, um so, die beste von beiden Welten in vieler Hinsicht zu sprechen.

CISC und RISC-Begriffe

Die Begriffe CISC und RISC sind weniger bedeutungsvoll mit der fortlaufenden Evolution sowohl von CISC als auch von RISC Designs und Durchführungen geworden. Das erste hoch (oder dicht) pipelined x86 Durchführungen, die 486 Designs von Intel, AMD, Cyrix, und IBM, hat jede Instruktion unterstützt, dass ihre Vorgänger getan haben, aber maximale Leistungsfähigkeit nur auf einer ziemlich einfachen x86 Teilmenge erreicht haben, die nur etwas mehr als ein typische RISC Befehlssatz (d. h. ohne typische RISC Lastladen-Beschränkungen) war. Die Generation von Intel P5 Pentium war eine Superskalarversion dieser Grundsätze. Jedoch decodieren moderne x86 Verarbeiter auch (normalerweise) und spalten Instruktionen in dynamische Folgen innerlich gepufferter Mikrooperationen, der nicht nur hilft, eine größere Teilmenge von Instruktionen in einem pipelined (überlappende) Mode durchzuführen, sondern auch fortgeschrittenere Förderung des Parallelismus aus dem Codestrom für die noch höhere Leistung erleichtert.

Gegen populäre Vereinfachungen (Gegenwart auch in einigen akademischen Texten) werden nicht alle CISCs mikrocodiert oder haben "komplizierte" Instruktionen. Da CISC ein allumfassender Begriff geworden ist, der irgendetwas bedeutet, was es nicht ein Lastladen (RISC) Architektur ist, ist es nicht die Zahl von Instruktionen, noch die Kompliziertheit der Durchführung oder der Instruktionen selbst, die CISC, aber die Tatsache definieren, dass arithmetische Instruktionen auch Speicherzugänge durchführen. Im Vergleich zu einem CISC kleinen 8-Bit-Verarbeiter ist eine RISC Schwimmpunkt-Instruktion kompliziert. CISC braucht komplizierte Wenden-Weisen nicht sogar zu haben; 32 oder 64 Bit RISC Verarbeiter kann kompliziertere Wenden-Weisen gut haben als CISC kleine 8-Bit-Verarbeiter.

Ein PDP-10, ein PDP-8, Intel 386, Intel 4004, Motorola 68000, ein System z Großrechner, ein Burroughs B5000, ein VAX, Zilog Z80000 und 6502 ändern sich alle wild in der Zahl, den Größen und den Formaten von Instruktionen, der Zahl, den Typen, und den Größen von Registern und den verfügbaren Datentypen. Einige haben Hardware-Unterstützung für Operationen wie Abtastung für eine Teilkette, willkürliche Präzision BCD Arithmetik oder transzendente Funktionen, während andere nur 8 Bit Hinzufügung und Subtraktion haben. Aber sie sind alle in der CISC Kategorie, weil sie "Last haben - bedienen" Instruktionen, die laden und/oder Speicherinhalt innerhalb derselben Instruktionen versorgen, die die wirklichen Berechnungen durchführen. Zum Beispiel ist der PDP-8, nur 8 Instruktionen der festen Länge und keinen Mikrocode überhaupt habend, ein CISC wegen, wie die Instruktionen, PowerPC arbeiten, der mehr als 230 Instruktionen (mehr hat als ein VAXes) und Komplex internals wie Register-Umbenennung, und ein Wiederordnungspuffer ein RISC ist, während Minimal, hat CISC 8 Instruktionen, aber ist klar ein CISC, weil es Speicherzugang und Berechnung in denselben Instruktionen verbindet.

Einige der Probleme und Widersprüche in dieser Fachsprache werden vielleicht als systematischere Begriffe, solcher verschwinden, weil (nicht)/versorgen laden, wird populärer und ersetzt schließlich die ungenauen und ein bisschen gegenintuitiven RISC/CISC-Begriffe.

Siehe auch

Referenzen

  • Tanenbaum, Andrew S. (2006) strukturierte Computerorganisation, die fünfte Ausgabe, Pearson Education, Inc. Oberer Sattel-Fluss, New Jersey

Links


Capella / CISC
Impressum & Datenschutz