2013-06-25 17 views
7

Laut „Rechnerarchitektur und Organisation“ von Miles Murdoca und Vincent Heuring,Warum sind CISC-Prozessoren schwieriger zu pipeline? Inwiefern sind einige Anweisungen "komplexer" als andere?

CISC-Befehle Pipeline-Architekturen nicht sehr gut passen. Für Pipelining, um effektiv zu arbeiten, muss jeder Befehl Ähnlichkeiten mit anderen Anweisungen, zumindest in Bezug auf die relative Komplexität der Anweisung haben.

Warum ist das wahr? Was bedeutet eine Instruktionskomplexität, benötigen nicht alle Instruktionen einen Taktzyklus, um die Ausführung zu beginnen; Wenn der Befehl liest oder schreibt in den Speicher, dann würde es länger dauern, aber RISC-Prozessoren lesen sind auch in den Speicher schreiben (natürlich)?

+0

Der beste Weg, herauszufinden, was die Autoren des Buches gemeint haben, ist, sie direkt zu fragen. Was die anderen Teile Ihrer Frage betrifft, werden bei modernen Prozessoren einfache Anweisungen (ADD/SUB/MOV, logische Anweisungen, Verschiebungen) typischerweise in 1 Zyklus ausgeführt, die Ganzzahlmultiplikation wird in 3-4 Zyklen ausgeführt, die Gleitkommamultiplikation in 3-6, floating -Punktaddition in 2-5. –

+0

@MaratDukhan aber was ist ein Zyklus? Auch eine [Google-Suche] (https://www.google.com/search?q=define%3Acycle&ie=utf-8&oe=utf-8&aq=t&rls=org.mozilla:en-US:official&client=firefox-a#client = firefox-a & hs = Mig & rls = org.mozilla: de-USA: offiziell & q = Uhr + Zyklus & tbs = dfn: 1 & tbo = u & sa = X & ei = 9hfJUZvXLrD1igLztYHYDw & ved = 0CC0QkQ4 & bav = on.2, or.r_qf. & bvm = bv.48340889, d.cGE & fp = a6e1eebee3fff02f & biw = 1920 & bih = 956) entweder sagte es ist die grundlegendste Zeiteinheit oder die Menge an Zeit, die es dauert, um eine Anweisung zu vervollständigen, die eine zirkuläre Definition gibt. – Celeritas

+1

Ein Fließband, das ein Widget pro Minute produziert, bedeutet in keiner Weise, dass das Widget eine Minute benötigt, es kann Stunden oder Tage dauern, bis das Widget fertig ist. Diese Produktionslinie hat jedoch wahrscheinlich nur sehr wenige oder gar keine Variationen pro Widget, so dass sich die Fließbandlinie für jeden Augenblick reibungslos bewegen kann. Anweisungen nehmen offensichtlich eine Reihe von Taktzyklen von Anfang bis Ende auf modernen Computern oder alt. Sie bemühen sich, einen (oder mehrere) Befehl (e) zu absolvieren, die pro Taktzyklus für Anweisungsausbrüche ausgeführt werden, dann erhalten Sie einen Stillstand und versuchen es erneut. –

Antwort

10

Die "Komplexität" der Anweisungen hängt davon ab, wie groß ihre Größe und ihr Format sein kann. Nehmen Sie zum Beispiel x86 IA32 (Intel 32-Bit) Architektur, die CISC ist. Die Größe der Anweisungen kann zwischen 1 und 12 Byte liegen, und ihr Format variiert ebenfalls sehr (das Format ist, wie viele Bits für jedes Feld verwendet werden, wo diese Bits liegen und so weiter).

Das bedeutet, dass Sie erst dann wissen, wann Sie die Anweisung abgerufen haben, nachdem Sie mit der Decodierung begonnen haben. Einige Anweisungen benötigen nur einen Zyklus, um abgerufen zu werden, andere mehr, und dies erschwert den Pipeline-Prozess.

Alle ARM-Befehle (RISC-Architektur) haben dagegen genau 4 Bytes. Wenn Sie also 4 Bytes abgerufen haben, wissen Sie, dass Sie diese Bytes für die Dekodierungsphase der Pipeline senden können und Sie sofort mit dem Abrufen der nächsten Anweisung beginnen können.

1

Was damit gemeint ist, ist mit CISC-Architekturen, gibt es in der Regel Anweisungen, die relativ länger als RISC sind. Die Planung ist also schwieriger. In CISC gibt es oft Mischungen einfacherer Anweisungen und kompliziertere Anweisungen, die länger dauern. In einer Pipeline gibt es also sogenannte Gefahren, die Probleme für reibungsloses Pipelining verursachen können. X86 Fließkomma-Befehle wären beispielsweise länger als x86 laden oder speichern.

+0

Also wirklich einfach, was Sie sagen, ist mit CISC gibt es mehr Pipeline-Gefahren? – Celeritas

+0

Ja, je regulärer oder ähnlicher Ihr Befehlssatz ist, desto einfacher ist es zu planen. Anweisungen können nicht nur hinsichtlich der Länge, sondern auch hinsichtlich der Komplexität variieren. – BillH

+0

Was ist "Planung"? – Celeritas