2017-04-21 3 views
3

Ich habe gerade MIPS Architektur in der Klasse gelernt. Ich lese andere Instruction Set Architekturen (ARM derzeit) und fand einige Unterschiede zwischen ARM und MIPS. Beide haben unterschiedliche Befehlsformate, Registersatz, usw.Unterschied zwischen MIPS und ARM Datenpfade

Gibt es einen Unterschied in Datenpfad von ARM von MIPS? weil der Datenpfad das Holen, Dekodieren und Ausführen der Anweisung beinhaltet und für alle Befehlssatzarchitekturen gleich sein muss.

Ich konnte die Informationen über den ARM-Datenpfad nicht finden, von wo ich das lese.

+1

ARM und MIPS können sowohl mit unterschiedlichen Mikroarchitekturen implementiert werden (und sie waren), so gibt es etwa so viele Unterschiede, wie Sie wollen, je nachdem, welches Paar von Implementierungen Sie vergleichen. – harold

+1

Ein wichtiger Unterschied ist, dass ARM viele bedingte Ausführungen hat, während MIPS Verzögerungs-Slots hat. Außerdem hat ARM ein Condition-Register, das speziell für eine anständige Performance behandelt werden muss. ARM hat auch ziemlich komplizierte Adressierung, vorverschobene arithmetische Operationen und sequentielle Lade-/Speicheroperationen. OTOH, MIPS hat eine schreckliche Multiplikations-/Divisionseinheit, die ein spezielles Gehäuse benötigt. – EOF

+0

@EOF Würden Sie mir bitte einen Link geben, von dem ich über den ARM-Datenpfad erfahren kann? Ich habe viel versucht, konnte aber kein hilfreiches Material finden. –

Antwort

4

Die MIPS, die Sie gelernt haben, sind zweifellos eine pädagogische aus den Lehrbüchern (Patterson und Hennessey). Die realen MIPS-Kerne sowie die ARM-Kerne können/können von Kern zu Kern variieren, Sie können mehrere armv7-m-Kerne haben, die eine andere Implementierung in Bezug auf die Pipeline-Stufen haben. Hinweis: ARM und MIPS und RISC sind im Allgemeinen nicht mikrocodiert. Sie können nicht zulassen, dass x86-Implementierungen Ihr Verständnis beeinflussen.

So gibt es keine eine Antwort auf diese, und es gibt keine eine Antwort auf welche Datenpfade tun MIPS-Prozessoren verwenden, was Datenpfade tun ARM-Prozessoren in Bezug verwenden zu holen, zu dekodieren, auszuführen, Writeback, ...

Die KONZEPTE holen, dekodieren, ausführen, ...werden von allen RISC-Prozessoren verwendet oder nicht, wie und wann sie dies tun, sie können diese Schritte in kleinere Schritte aufteilen und diese in einer längeren Pipeline implementieren oder sie parallel ausführen und eine breitere Pipeline haben.

Für MIPS etwas MIPS gehen und ihre Dokumentation herunterladen. Für Arm zu Arm möchten Sie das architektonische Referenzhandbuch und das technische Referenzhandbuch für eine bestimmte Architekturfamilie und einen spezifischen Kern, an dem Sie interessiert sind. Sie haben einige neue Programmiererhandbuch oder Entwicklerhandbuch, überspringen das oder verstehen es die obigen zwei Handbücher mit Löchern darin. Sie können auch die amba/AXI-Dokumentation zu bekommen, um zu verstehen, wie die Busse arbeiten, könnten Sie einen Arm mit einem anderen Bus-Design, aber es ist lehrreich, wenn Sie die traditionelle Adresse bidirektionale Daten gelehrt wurden, schreibt Strobe, lesen Strobe, Chip-Freigabe Typ Bus (der immer noch in Querlenker ein beliebter Bus in offenen Kernen und anderen Orten lebt, ein wenig komplizierter, aber viel näher an den alten Schulbus).

+0

ARM32 ist heute * stark * mikrocodiert. Sie müssen sich nur das Architekturhandbuch anschauen, um viele Anweisungen zu sehen, die nicht in ein Superskalar/OoO-Paradigma passen, beispielsweise durch das Ändern mehrerer Register. Aarch64 räumt das Schlimmste auf (LDM/STM, SMULL/UMULL, VTRN/VZIP/VUZP/VSWP ...). – EOF

+0

definieren: heute, beginnend mit welcher Architektur glaubst du, dass dies passiert ist? ldm/stm trivial zu state machine, multiplizieren, kein microcoding benötigt für die ziemlich einfach zu implementieren. –

+0

macht keinen Sinn wäre eine riesige Verschwendung von Immobilien, mehrere Register, Superscaler erfordern keine Mikrocodierung ... –

2

Beide sind RISC (reduzierte Befehlssatzarchitektur).

Nach D.Patterson und L.Hennessy

Der Hauptunterschied ist, dass MIPS mehr Register und ARM hat mehr Adressierungsmodi aufweist. Es gibt einen ähnlichen Kern von Befehlssätzen für arithmetisch-logische Anweisungen und Datenübertragungsinstruktionen für MIPS und ARM.

Im Gegensatz zu MIPS reserviert ARM kein Register, das 0 enthält. Obwohl MIPS nur drei einfache Datenadressierungsmodi hat, hat ARM neun.

bedingte Verzweigungs

MIPS verwendet den Inhalt von Registern bedingte Verzweigungen zu bewerten. ARM verwendet die traditionellen vier Bits Bedingungscode in dem Programmstatuswort gespeichert: negativ, Null, tragen und Überlauf. Sie können auf jede arithmetische oder logische Anweisung gesetzt werden; Im Gegensatz zu früheren Architekturen ist diese Einstellung für jede Anweisung optional. Eine explizite Option führt zu weniger Problemen in einer Pipeline-Implementierung. ARM verwendet bedingte Verzweigungen Bedingungscodes zu testen alle möglichen unsigned und unterzeichneten Beziehungen zu bestimmen. [Computer Organisation und Gestaltung von D.Patterson und L.Hennessey]

ich nicht die Informationen über ARM-Datenpfad finden konnte, von wo aus Ich lese das?

Ich empfehle Ihnen das Buch Computer-Organisation und Design von D.Patterson und L.Hennessey ARM-Ausgabe.

Verwandte Themen