Frage

In unserer computer-Systeme-Vorlesung wurden wir eingeführt, um den MIPS-Prozessor.Es war (wieder)entwickelte sich im Laufe der Amtszeit und hat in der Tat Recht einfach zu verstehen.Es verwendet ein RISC design, das ist seine Elementare Befehle sind regelmäßig kodiert und es gibt nur wenige von Ihnen, in Auftrag zu halten die Drähte einfache.

Es wurde erwähnt, dass CISC folgt einer anderen Philosophie.Ich schaute kurz auf die x86 instruction set und war schockiert.Ich kann mir nicht vorstellen, wie jemand wollen würde, um zu bauen einen Prozessor, der verwendet wird, ein so Komplexes Befehl set!

So dass ich vermute, es haben gute Argumente, warum große Teile der Prozessor-Markt CISC-Architekturen.Was sind Sie?

War es hilfreich?

Lösung

Es gibt einen allgemeinen historischen Trend.

In den alten Tagen waren die Erinnerungen klein, und so waren die Programme kleiner. Außerdem waren Compiler nicht sehr schlau, und viele Programme wurden in Assembler geschrieben, daher wurde es als eine gute Sache angesehen, ein Programm mit wenigen Anweisungen schreiben zu können. Anweisungsleitungen waren einfach und die Prozessoren schnappten sich jeweils eine Anweisung, um sie auszuführen. Die Maschinerie im Prozessor war sowieso ziemlich komplex; Die Dekodierung von Anweisungen war nicht eine große Belastung.

In den 1970er Jahren erkannten CPU- und Compiler -Designer, dass es doch nicht so hilfreich war, solche komplexen Anweisungen zu haben. Es war schwierig, Prozessoren zu entwerfen, bei denen diese Anweisungen wirklich effizient waren, und es war schwierig, Compiler zu entwerfen, die diese Anweisungen wirklich ausnutzten. Chip Area und Compiler-Komplexität wurden besser für generische Aktivitäten wie allgemeinere Register ausgegeben. Das Wikipedia -Artikel über RISC erklärt dies ausführlicher.

MIPS ist die ultimative RISC -Architektur, weshalb sie so oft unterrichtet wird.

Das x86 Die Familie ist etwas anders. Es war ursprünglich eine CISC -Architektur für Systeme mit sehr kleinem Gedächtnis (kein Raum für große Anweisungen) und hat viele aufeinanderfolgende Versionen erfahren. Der heutige X86 -Anweisungssatz ist nicht nur kompliziert, da er CISC ist, sondern weil es wirklich ein 8088 mit einem 80386 mit einem Pentium mit einem X86_64 -Prozessor ist.

In der heutigen Welt sind RISC und CISC nicht mehr die schwarz-weiße Unterscheidung, die sie vielleicht einmal gewesen sein könnten. Die meisten CPU -Architekturen haben sich zu verschiedenen Graustufen entwickelt.

Auf der RISC-Seite haben einige moderne MIPS-Varianten Multiplikations- und Teilungsanweisungen mit einer ungleichmäßigen Kodierung hinzugefügt. ARM Prozessoren sind komplexer geworden: Viele von ihnen haben einen 16-Bit Daumen Zusätzlich zu den "Original" 32-Bit-Anweisungen, ganz zu schweigen davon Jazelle Ausführen von JVM -Anweisungen auf der CPU. Moderne Armprozessoren haben auch Simd Anweisungen für Multimedia -Anwendungen: Einige komplexe Anweisungen zahlen doch.

Auf der CISC -Seite sind alle jüngsten Prozessoren in gewissem Maße RISC im Inneren. Sie haben Mikrocode Definieren Sie all diese komplexen Makroanweisungen. Die bloße Komplexität des Prozessors dauert das Design jedes Modells, selbst mit einem RISC -Design, was mit der großen Anzahl von Komponenten, mit Pipelining und prädiktiver Ausführung und so weiter.

Warum bleiben die schnellsten Prozessoren draußen CISC? Ein Teil davon ist im Fall der Familie X86 (32-Bit- und 64-Bit) historische Kompatibilität. Aber das ist nicht das Ganze. In den frühen 2000er Jahren versuchte Intel, das zu schieben Itanium die Architektur. Itanium ist ein extremer Fall komplexer Anweisungen (nicht wirklich CISC: Sein Design wurde bezeichnet EPOS). Es macht sogar die altmodische Idee, Anweisungen nacheinander auszuführen: Alle Anweisungen werden parallel bis zur nächsten Barriere ausgeführt. Einer der Gründe, warum Itanium es nicht einnahm, ist, dass niemand, ob bei Intel oder anderswo, einen anständigen Compiler dafür schreiben könnte. Jetzt ein guter alter, größtenteils sequentieller Prozessor wie x86_64, das ist etwas, das wir verstehen.

Andere Tipps

Der X86 -Befehlssatz ist ein Sonderfall. Ich denke, dass Motorolas 68K- und Dec's Vax etwas bessere Beispiele für CISC sind. In den Tagen vieler montagsprachiger Code dachten die Leute, dass ein sehr regelmäßiger, sehr integrativer ISA besser war: Ich glaube, sie nannten den Unterschied zwischen Montagecode und der Art und Weise, wie die Leute dachten "Semantische Lücke"Theoretisch wollten Sie einen Anweisungssatz, der so entspricht, wie Sie gedacht haben.

Der andere große Designtreiber für CISC scheint "Orthogonalität" zu sein: Jede Anweisung würde mit jedem Adressmodus funktionieren (Register, absolute Adresse, relativer Offset usw. usw.). Sie können sehen, wie der Bogey Man of Orthogonality in API -Design in Distributed Computing Environment (DCE) und in CORBA angezeigt wird. Diese Idee ist nicht auf das Design der Anweisungssatz beschränkt.

Ein Grund für CISC war es, eine dichte Codierung für Anweisungen zu haben (Speicher war teuer). Die gesamte RISC -Idee bestand darin, die CPU zu beschleunigen, indem die gleiche Größe dieselbe Größenanleitung (kein komplexer, langsamer "Anweisungsgröße finden") und einfach einfache Dinge (also schnell herauszufinden, was zu tun ist). . Die Erinnerung war billig. Dieser Schaltungsbereich auf der CPU für andere Dinge (mehr Register, mehr Verarbeitungseinheiten, sodass mehrere Anweisungen parallel erfolgen können, wenn sie unabhängig waren). Da die CPU viel langsamer als RAM war, zahlte sich dies aus. Aber CPUs wurde schneller (und mehr parallel und ...), während RAM nicht schneller wurde (zumindest nicht mit dem Datenverbrauch der CPU aufgrund einer erhöhten Parallelität durch die CPU). Treffen Sie den Cache -Speicher, schnell wie die CPU, aber klein. Jetzt ist der Speicher wieder eine Prämie, nicht aus Kostengründen, sondern aus Geschwindigkeit. CISC -Wiederbelebungszeit. In der Zwischenzeit wurde CPUs komplexer, bis zu dem Punkt, dass der heutige Mikroprozessor viel von dem tut, was ein RISC -Compiler getan hat: Operationen in Elementarteile aufzuteilen, interne Riscy -Anweisungen neu zu bestellen, damit sie nach Möglichkeit gleichzeitig ausgeführt werden können. RISC war aus einem bestimmten Grund als "Wichtige Zeug zum Compiler" schlecht gestaltet ...

Der eigentliche Vorteil von CISC ist ein reduzierter Speicher und den Cache -Druck, und das ist allein besser, um Hochleistungsanwendungen zu fordern, da ein großer Engpass in solchen Systemen die Speicherbandbreite ist. Bei gleich großem Cache -Speicher können CISC -Prozessoren mehr Informationen als RISC beschreiben. Da CISC-Anweisungen mehrere Mikrooperationen umfassen, können architektonische Verbesserungen möglich sein, die den schnellsten Ausführungspfad für diese Anweisung bieten können, die einzelne Anweisungen jemals liefern könnten. Kurz gesagt, CISC -Prozessoren nutzen die Speicherbandbreite effizienter, was häufig zu Leistungsgewinnen für Speicherintensivanwendungen führt.

Zum Beispiel zur Ausführung R1 = R2 + R3 + R4 + R5 + R6 und schieben Sie das Ergebnis auf Stack, sagen Sie, der RISC -Code wird als.

ADD  R1, R2, R3 (4-byte)
ADD  R1, R4, R5 (4-byte)
ADD  R1, R6, R0 (4-byte, R0=0)
PUSH R1         (4-byte)

und als solches benötigen 16 Bytes Raum.

Aufgrund der Möglichkeit unterschiedlicher Codierungsstile können die gleichen Informationen wie folgt dargestellt werden ...

ADD R1, R2, R3 (4-byte)
ADD R1, R4, R5 (4-byte)
ADD R1, R6     (2-byte)
PUSH R1        (1-byte) 

Das dauert nur 12 Bytes Speicher. Daher wird die Speicherauslastung verbessert, sodass der Prozessor mehr Anweisungen sehen und somit die Leerlaufzyklen reduzieren kann.

Ein wichtiger Aspekt, den niemand erhoben hat, ist, dass fast alle CIC -CPUs mikrokodierte Architekturen sind. Ein Mikrosequenzer und ein Steuergeschäft konsumieren weit weniger Immobilien als ein fest verdrahteter Controller, und der Befehlssatz kann geändert werden, ohne die Hardware zu ändern.

Mikroprozessoren waren neuartige Geräte, als ich in das Feld eintrat. In den siebziger und frühen achtziger Jahren war es eine sehr häufige Praxis, eine CPU mit Bit-Slice-Alus, einer auf Mikrosequenzbasis basierenden Steuereinheit und einem Steuerspeicher zusammenzustellen, in den der mikrokodierte Befehlssatz entweder geladen oder geblasen wurde. Diese Computer basierten auf Transistor-Transistor-Logik der Serie 7400 (TTL). Der 78181 4-Bit Alu wurde verwendet, um viele Prozessoren zu konstruieren, darunter die COMPER DEC PDP-11 und Early VAX 11, die Daten General Nova, Xerox Alto und den Wang-Desktop-Computer.

Sie haben eine harte Zeit der Suche nach einem desktop-computer ist nicht mit einem x86-kompatiblen Prozessor.Dass Befehlssatz hat geschlagen MIPS, es hat geschlagen Sparc, es hat geschlagen Alpha, hat es geschlagen Titanic (vielleicht habe ich geschrieben, dass der name falsch ist).MIPS auf der anderen Seite wird kaum vorhandenen heute.Also egal, was Sie heute denken, sehr kluge Leute gedacht, die den x86-Befehlssatz war eine wirklich gute Idee, und Sie haben eine Tonne von Geld.

Computer begann als RISC, da ein complex instruction set wurde nur über die Fähigkeiten implementors.Wenn Sie wollen, um zu sehen, eine RISC-Befehlssatz, Blick auf die CDC 6400-6600 und CDC Cyber-170-175-Befehlssatz.Das ist die richtige RISC.Über 10 Jahren habe ich gebeten, einige chip-Designern, wie viel Raum erfordern würde, dass (in der Ecke eines angemessenen erweiterte GPU-chip).Sie erzählte mir von 1mm2 - einschließlich der Maschine (RAM), das 99% des Raumes.

Wenn Menschen könnte bauen CISC-Maschinen, Sie waren tatsächlich im Vorteil.Denken Sie daran, dass x86 veröffentlicht wurde, lange bevor MIPS, 1978 vs.1985.In dieser Zeit, die Sie benötigten Prozessorzyklen für die Anweisungen gelesen haben, Entschlüsselung, Sie auszuführen.MIPS 1978 genommen haben vier Zyklen pro Befehl und pro Betrieb.Wenn Sie ein x86-Befehl wie "hinzufügen, sich registrieren, um Speicher", das würde vielleicht 7 Zyklen für die Anleitung, aber die Durchführung 3 Operationen.Das war ein großer Vorteil.Und je mehr verschiedene Anweisungen, die Sie haben, und desto stärker die einzelnen Anweisungen, die größer ist der Vorteil.

Und wenn Sie die x86-64-bit-Befehlssatz, der mit seiner albtraumhaften Präfix-codes entwickelt wurde, die Komplexität der Befehlssatz war nicht mehr wichtig.CISC ist heute, übersetzt in RISC, und die gesamte übersetzung Unternehmen ist etwa ein Prozent der chip.

Diese Frage hat viel mit den jüngsten Trends bei der Berechnung zu tun, die eine massive Verschiebung zum Mobil- und Tablet-Computing bevorzugen, wodurch die RISC-CPUs begünstigt werden und Intel (wahrscheinlich weltweit größter CISC-Anbieter) in einem sogenannten Nachteil gefangen hat "Wendepunkt" Genau wie die Art Hain machte darauf aufmerksam und warnte vor. Die Kurzgeschichte ist, dass CISC anfängt, unter dem massiven zu schmelzen Paradigmenverschiebung/GameChanging -Ansturm des mobilen Computing aufgrund seines scheinbar intrinsisch hohen Energieverbrauchs.

CISC wird vermutlich immer auf dem Desktop in der Nähe sein, aber Mobile wird allgemein als neue Zukunft des Computers angesehen. Viele Entwicklungsländer (mit großen potenziellen computerübergreifenden Populationen) überspringen die Desktop-Phase tatsächlich größtenteils. Siehe zum Beispiel, Aufstieg und Fall des Desktop Computing

Eine hervorragende Fallstudie dieser Frage besteht darin, über Mike Bell zu lesen, der in einer neuen Position für Intel arbeitet und versucht, Intel auf dem Mobilfunkmarkt über die Atom-CPU über ein "Skunkworks"-ähnliches Projekt/Initiative mit sehr starker Exekutive besser zu positionieren Unterstützung. Der mobile Markt ist sehr eng mit der RISC -Architektur und hauptsächlich ARM -Prozessoren gekoppelt, was hauptsächlich auf ihre hohe Energieeffizienz (Stromverbrauch) zurückzuführen ist, ein neues Schlüsselkriterium für die Berechnung der Frage und keine weiteren Antworten erwähnt. Hier sind zwei neuere Artikel in dieser Richtung, die viel von dem internen Unternehmensdenken (und sich daraus erfolgen!) Zu diesem Thema zeigen:

Ein Faktor, der in anderen Antworten nicht erwähnt wird, ist wirtschaftlich. Es geht auch um Intel. Die CISC -Architektur wird größtenteils durch die Familien X86 und X64 dargestellt. Diese alle stammen aus dem bescheidenen 8088, das im ursprünglichen IBM -PC verwendet wird. Die frühe Marktdominanz dieser Computerreihe bedeutete, dass Intel einen soliden Einnahmequellen für F & E hatte. In Verbindung mit der Tatsache, dass Intel in der Lage war, den Wettbewerb durch das Neuen der zweiten Quellvereinbarungen durchzuziehen/abzubrechen, konnten die CPU -Preise auf extreme Niveaus steigen, um sehr reichhaltige Bruttogewinnmargen zu gewährleisten.

Während andere CPU -Hersteller Schwierigkeiten hatten, Schritt zu halten, konnte Intel Milliarden von Dollar in die Entwicklung neuerer, schnellerer Produkte gießen. Der RISC -Wettbewerb konnte nicht annähernd so viel Geld ausgeben. Viele RISC -Prozessoren gingen vom Markt. Irgendwo:

Dec Alpha, Fairchild Clipper, AMD 29000, SPARC, MIPS, Power (für PC -Verwendung), Hitachi Superh ...

Ich erinnere mich, dass Experten dieser Zeit angekündigt wurden, dass der RISC gegen CISC -Krieg vorbei war und CISC gewonnen hatte. Es hatte nicht. Es hat alle anderen übertroffen.

Kann sich diese Dynamik jemals ändern? Es ist schon. Kein wirtschaftlicher Vorteil ist absolut.

Der eine Achillesferse des X86 ist der unersättliche Appetit auf Strom. Dies hat es einem kleineren, flinkeren Konkurrenten (Arm) in Märkten (wie Telefonen/Tablets/etc) gedeihen, in denen die Energiespanne wichtig war.

Ein tolles Video darüber von einem Mitglied des ARM -Teams ist ARM -Prozessor - Säen des Erfolgssamen - Computerphile Gegen 8:30 Uhr

Das zweite Problem für X86 ist der Erfolg der Intel -Strategie. Sie haben es geschafft, fast alle Konkurrenz zu beseitigen. Sie wurden verlangsamt. Seit Jahren haben neue Intel -Prozessoren nur sehr bescheidene Verbesserungen bereitgestellt. Schlimmer noch, superreiche Margen sind eine schwierige Diät für jedes Unternehmen.

Heute machen die ARM -basierten Systeme auf Chip (SOC) und konkurrierenden X64 -Chips von AMD den CPU -Markt erneut zu einem interessanten Ort. (MEINER BESCHEIDENEN MEINUNG NACH)

Es gibt viele Gründe, die man wählen würde, zu implementieren, eine CISC.Der prominenteste Grund für die binäre Kompatibilität mit einem vorhandenen CISC-Befehlssatz.Während software-binary translation-Technologie hat sich verbessert, die hardware-basierte Kompatibilität hat einige technische Vorteile (sowie den Nachteil der weniger übersetzung caching) und die weniger technischen Vorteil, der scheinbar mehr zuverlässig.

Code-Dichte ist vielleicht die zweite wichtigste Grund für die Wahl CISC.Die Renesas RX wurde entwickelt, als ein CISC-speziell für die code-Dichte, wie es Ziele mikrocontroller, in dem code-Speicher Größe ist ein bedeutender Kostenfaktor.Variable Länge Anweisungen, komplexe Anweisungen (vor allem mehr Adressierung Modi), implizite Operanden und unteren register zählen alle profitieren code-Dichte.

Eine historische (und meiner Meinung nach verfehlten) Grund für die Wahl CISC wurde zu schließen die semantische Lücke zwischen Programmierern, mit einer Sprache auf höherer Ebene und den Prozessor.Da komplexe Anweisungen können in der Regel ersetzt werden durch eine Folge einfacher Anweisungen, die Komplexität einer Sprache auf höherer Ebene-compiler für RISC müssen nicht viel komplexer als die für eine Sprache-matching-CISC.RISC vermeidet "semantischen Kampf" (wo ein-Prozessor-Anweisung nicht mehr oder weniger Arbeit als eine entsprechende Sprachanweisung) und ermöglicht die Kraft-Reduktion und scheduling-Optimierungen.(Siehe "Was sind die vor-und Nachteile in der compiler-Entwicklung Aufwand im Zusammenhang zu CISC vs.RISC?" für mehr details).

Es kann eine erhebliche fixe Kosten im Zusammenhang mit der Ausführung einer Anweisung.Dies fördert die Verwendung von relativ komplexen Anweisungen, um die Verteilung dieser Gemeinkosten über weitere aktuelle Arbeit;die Reduzierung der dynamischen Unterricht zählen die Leistung verbessern können.Wenn die Kosten der Logik und der RAM viel höher war als die Kosten für ROM ist, ist der Anreiz für komplexe Anweisungen war erheblich, da eine Anweisung decodiert, von der Suche bis microcode.

Ein Grund für die Verwendung von CISC-das ist vielleicht widerlegt durch historische Beweise, dass die microcode-optimiert für jeden Mikroarchitektur, während standard-Bibliotheken möglicherweise langsam nutzen Funktionen von eine neue Umsetzung.Die Ebene der Optimierung von software-Implementierungen der memcopy im Vergleich zu den microcode für REP MOVSB bedeutet, dass Bibliotheken können erhalten mehr Aufmerksamkeit als Mikrocode.Teil dieses kann aus dem Prozessor-Hersteller targeting eine breiter Benutzer-Basis, so die Begründung von Aufwand kann schwieriger sein, im Vergleich zu open-source-oder internen software, wo lokalisierte Interessen der Entwickler oder der Benutzer kann bias implementierungsaufwand.

Werden in der Lage zu Schiff eine optimierte standard-Bibliothek mit der Prozessor hat bedeutende Sehenswürdigkeiten.Die Speicherung und Ausführung einer standard-Plattform-Bibliothek kann deutlich optimiert werden, indem software-hardware codesign.Die Unterscheidung zwischen einem komplexen Lehr-und Plattform-Abstraktionsschicht nennen kann subtil (oder nicht existent).Ein RISC-design, könnte verwenden die gleiche Umsetzung Techniken zum Umgang mit PAL-Aufrufe als ein CISC-tut für komplexe Anweisungen, einschließlich der Verwendung von Operationen, die nicht in der Allgemeinen Anleitung mit spezialisierter hardware mit intelligenten caching-und Entschlüsselung, und die Angabe register-Operanden (obwohl eine CISC-oft mit den speziellen Registern, ähnlich wie eine pro-Funktion, ABI).Das mentale Modell im Zusammenhang mit CISC ermutigen können, solche Optimierungen.Zusätzlich, Benutzer können werden weniger beleidigt, durch die erzwungene Aufnahme von "hardware" - standard-Bibliothek (CISC), als durch die erzwungene Aufnahme einer bestimmten Kamerad-Bibliothek.

Decodierung relativ komplexe Anweisungen können haben weniger Aufwand (und möglicherweise mehr zuverlässig richtig erkennenden Absicht) als die vergleichbaren RISC Technik idiom recognition, wo eine Abfolge von Anweisungen, die ist anerkannt als eine semantische Einheit.Dieser overhead-Unterschied wäre am deutlichsten in einem kleineren Umsetzung, aber der Aufwand, um diese Informationen benutzen, verringert sich die Bedeutung der Dekodieren Einsparungen.

Zusätzliche Kontextinformationen erleichtern können hardware-Optimierung.Zum Beispiel, wenn Inkrementieren einen Wert im Speicher, hardware erkennen konnte, dass der Speicher-Adresse zweimal verwendet wird (für das load-und store) bietet eine Gelegenheit für die cache-Weg memoization und übersetzung caching.Komplexe Anweisungen können solche Informationen ausdrücklich vor.In einer komplexen Lehr -, Zwischenwerte explizite Lebensdauer (der Unterricht);mit einem traditionellen RISC-register Werte müssen explizit überschrieben, um anzugeben, die Ende ausführen, um liveness.(Hinweis:Ein RISC angeben konnte ein register, das ist immer genullt nach jedem Gebrauch, bietet ein Mittel, um geben Sie eine single-use temporären Wert.Solche Anweisungen würden mäßig komplexer.)

Wenn die Umsetzung im Detail nicht versteckt hinter einer Abstraktionsschicht, schwieriger wird es, die Verwendung unterschiedlicher microarchitectures zur Optimierung für verschiedene Nachteile.Aussetzen mikroarchitektonische details, als architektonische garantiert sperrt die Mikroarchitektur in die Kompatibilität garantieren.Während PAL-software optimiert werden konnten dieselben als komplexe Anweisungen, so erfordert hardware-software-codesign.Organisatorische Trennung und Vielfalt machen codesign schwieriger.

Komplexe Anweisungen können bieten bewacht den Zugang zu privilegierten Status.Zum Beispiel, komplexe Anleitungen und Anweisungen werden oft atomic mit Bezug auf interrupts.Während ein RISC-Befehlssatz könnte ein user-level-Mechanismus, vorübergehend unterbricht, vielleicht sogar so etwas wie linked-Last, so dass die software explizit wiederholt die operation, wenn unterbrochen, die solche ist nicht typisch für RISCs.

Ebenso eine komplexe Anweisung kann den kontrollierten Zugriff und/oder Nutzung von vertraulichen Informationen.Da die operation ausgeführt hat kontrolliert, Semantik, eigentliche Privileg Verletzung vermieden werden kann.RISC-orientierte alternativen sind PAL-code (die in der Regel erheblichen overhead) und maskiert den Zugriff auf Konfigurations-Register (oder Schattenkopien von Registern), die eine gewisse privilegierten Status.Bietet eine Allgemeine Lösung (RISC) ist schwieriger als die Bereitstellung einer Lösung für ein oder ein paar speziellen Fällen (CISC), ist jedoch leistungsfähiger und weniger anfällig für die Ansammlung von besonderen Fällen.Wenn man glaubt, dass die wichtigsten Sonderfälle sind wenige, CISC attraktiver sein können.

Komplexe Anweisungen können auch ausblenden von software.Ein prominenter Vorteil solcher wäre für den Kontext speichern und wiederherstellen.Mit Anweisungen, die Sie speichern und wiederherstellen Zustand, die Architektur nur kommunizieren muss, die Rahmen Größe auf der OS nicht die spezifischen Mechanismen für die übertragung von Staat zu Speicher.Dies ermöglicht Anwendungen, die auf einer älteren OS zu verwenden, ISA-Erweiterungen hinzufügen Staat.(Wieder, PAL software könnte bieten die gleiche Funktionalität.)


Viel von der Komplexität der x86 kommt von der Kompatibilität über viele Erweiterungen.Mit komplexen und weniger orthogonal Anweisungen (nützlich für die code-Dichte), entfernen Sie einige arbeiten, die sich nicht Häufig nötig ist, und vermeidet unnötige Abhängigkeit Ketten (z.B. nur ein carry-bit ist, nur eine dynamische Verschiebung Betrag register), indem einige Arbeit, stellte sich heraus, Häufig verwendet und kann optimiert werden innerhalb der komplexen Lehr — alle diese würden, benötigen Sie eine neue Anweisung, und das ISA weniger ästhetisch.

In vielen Fällen ist eine RISC nicht begegnen würde, solche Fragen, weil die Anweisungen sind sehr orthogonalen und primitiv.In einigen Fällen ist eine RISC könnte hinzufügen müssen neue primitive, aber solche würden in der Regel gelten, um mehr als einen verwenden.

Außerdem, sobald die Infrastruktur vorhanden ist, um komplexe Anweisungen, die Barrieren reduzieren sich für zusätzliche komplexe Anweisungen.Das ist, viel von den Kosten für komplexe Anweisungen in non-recurring.Stark-RISC-ISA leiden, eine Ergänzende Hinderung der Einführung CISCy Funktionen.

Die Häufigkeit der Erweiterung der x86-kann auch teilweise zurückzuführen auf seine Popularität für general-purpose-computing und der Kaufmann Prozessor-Modell (auch diese erhöhen die Bedeutung der Binär-Kompatibilität).RISC-ISA wurden oft gebunden an sysem Anbieter, die ermutigt, ein enger Fokus auf Anwendungen und das fehlen von Wettbewerb für Implementierungen von einer bestimmten RISC-ISA etwas entmutigt die Verwendung von Befehlssatz-Erweiterungen für marketing.Popularität macht auch die Kosten für die Entwicklung von Erweiterungen, weniger wichtige (nicht-wiederkehrende Aufwendungen sind weniger wichtig bei höherer Lautstärke).

Die x86-Kompatibilität Philosophie wohl auch Verzerrungen in Richtung Ausweitung der bestehenden Mechanismen statt, die mehr sauber zu brechen, was bedeutet, dass neue features, die sind beeinflusst durch die vorhandenen Funktionen.Höhere Frequenz der Erweiterung fördert auch mehr inkrementelle änderungen, die Sie fördert die Wiederverwendung von Mechanismen, der dazu neigt, Orthogonalität reduzieren.

Vergleicht man eine Akademische Präsentation classic MIPS (die eine Teilmenge des modernen Versionen von MIPS und schließt verschiedene optionale ISA-Erweiterungen) in modernen x86 (die Spuren Binär-Kompatibilität zurück in die 16-bit-8086-und Montage-Ebene quasi-Kompatibilität noch weiter zurück) mit all seinen historischen Gepäck nicht den besten Fall für CISC noch ein realistischer Fall für RISC.

Einfach bevor es reduzierte Anweisungssatzkonfigurationen gab, gab es Anweisungssatzkonfigurationen. Sie haben ihre Anwendungen. Insbesondere in sehr großen Speicherblocktransfers mit Chipsets mit hoher Kapazität, die nur 4-16 Bytes benötigen, um eine gesamte Videoseite anstelle einer Lange für immer Schleife zu übertragen. Das ändert sich und RISC wird zum Status Quo, da die Chip -Sets anspruchsvoller werden, wie die unglaublichen GPUs in den High -End -Grafikkarten.

Die CISC -CPU hat mehr Vorteile als RISC. Weil CISC weniger Hardware -Register und Xnor/Xor Gates als RISC verwendet !!!! Stellen Sie sich vor, die Anweisungsbytes in CISC werden ausgeführt-Sequenz, es gibt nur ein logisches Tor und Register wird verwendet. Wenn 1 Bilion -Transistoren etwa 300 Millionen Logik -Tore produzieren können, sodass Sie 300 Millionen Operatoren oder Prozesse verarbeiten können (wenn gleich, mathematisch, variabel, adressiert ... usw.) und mehr Programm in CISC ausgeführt werden kann. In RISC dauert es jedoch Dutzend Zeiten von Logik -Toren, um ein Programm im pipelierten Design auszuführen. Also 300 mil x 50 mal (50 Anweisungen) + 15000000000 Bit Counters !!! in sogenannten RISC. CISC verwendet mehr Hardware, um Softwarealgothrim zu reduzieren, die die CPU verlangsamen.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit cs.stackexchange
scroll top