Frage

Ich bin mit einem Embedded-RISC-Prozessor. Es ist eine einfache Sache, ich habe ein Problem herauszufinden.

Das CPU Handbuch stellt klar, dass die Anweisung ld r1, [p1] (in C: r1 = * p1) einen Zyklus dauert. Größe des Registers r1 ist 32 Bit. Jedoch ist der Speicherbus nur 16 Bit breit. Wie kann es also alle Daten in einem Zyklus holen?

War es hilfreich?

Lösung

Die Taktzeiten werden unter der Annahme, vollen Breite Null-Wartezustand-Speicher. Die Zeit, die für den Kern nimmt diesen Befehl auszuführen ist, ein Taktzyklus.

Es gab eine Zeit, wenn jeder Befehl eine unterschiedliche Anzahl von Taktzyklen nahm. Speicher war relativ schnell dann auch in der Regel Null Wartezustand. Es gab eine Zeit, bevor Pipelines als auch, wo Sie hatte einen Taktzyklus fetching zu brennen, dann einen Taktzyklus-Decodierung, dann einen Taktzyklus ausführen, plus extra Taktzyklen für Befehle mit variabler Länge und zusätzliche Taktzyklen, wenn der Befehl eine Speicheroperation hatte.

Heute Taktfrequenzen hoch sind, Chip Immobilien ist relativ billig, so ein einen Taktzyklus Additions- oder Multiplikations ist die Norm, wie Pipelines und Caches sind. Prozessor Taktrate ist nicht mehr der bestimmende Faktor für die Leistung. Der Speicher ist relativ teuer und langsam. So Caches (Konfiguration, Anzahl und Größe), Busgrße, die Speichergeschwindigkeit, bestimmt Umfangsgeschwindigkeit, die Gesamtleistung eines Systems. Normalerweise die Prozessor-Taktgeschwindigkeit erhöht wird, aber nicht der Speicher oder Peripheriegeräte minimal zeigen, wenn eine Leistungssteigerung, in einigen Fällen sie es langsamer machen kann.

Speichergröße und Wartezustände sind nicht Teil der Uhr Ausführungs spec im Referenzhandbuch, sie reden nur, was der Kern selbst Sie in Einheiten von Uhren für jeden der Befehle kostet. Wenn es sich um eine Harvard-Architektur ist, wo die Befehls- und Daten-Bus getrennt sind, dann ein Takt ist mit dem Speicherzyklus. Der Abruf der Instruktion geschieht zumindest den vorherigen Takt wenn nicht vorher, so zu Beginn des Taktzyklus der Anweisung bereit ist, zu dekodieren und auszuführen (die Lesezyklus-Speicher) passieren, während des einem Taktes am Ende der einen Taktzyklus das Ergebnis der Lese in das Register verriegelt. Wenn die Befehls- und Daten-Bus gemeinsam genutzt werden, dann könnte man argumentieren, dass es nach wie vor in einem Taktzyklus beendet ist, aber bekommt man nicht den nächsten Befehl zu holen, so gibt es ein bisschen wie einen Stall ist, könnten sie betrügen und Anruf, dass eine Uhr Zyklus.

Andere Tipps

Mein Verständnis ist: wenn ich sagt einig Befehl einen Zyklus nimmt, ist es nicht, dass der Befehl in einem Zyklus abgeschlossen sein wird. Wir sollten in Zählung von Anleitung Rohrleitung . Angenommen, der CPU 5 weist Rohrleitungsstufe, dieser Befehl würde dauert 5 Zyklen, wenn sie sequentiell exectued wurden.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top