Frage

Kennt jemand eine Website, wo ich eine Liste von 32-Bit-MIPS Anweisungen / OP-Codes, mit den folgenden Features finden:

  • unterscheidet klar zwischen realen OP-Codes und Assemblersprachen- Makros
  • Beschreibt die Anweisung Verhalten einschließlich Unterschiede auf Berechtigungsebene abhängig.
  • Gibt an, in dem Befehlssatz der Befehl Revision eingeführt / überarbeitet (z.B. MIPS I, II MIPS, MIPS32, etc.)
  • Enthält privilegierte Anweisungen wie syscall.

Ich bin mir bewusst, zahlreiche Web-Sites, welche Dokument „Teil“ der Befehlssatz, vor allem für Lehrzwecke. Sie neigen dazu, auszulassen oder nur teilweise beschreiben Gleitkommazahlen und privilegierte Befehle.

Falls Sie mich fragen, ich bin für eine MIPS-Prozessor Teilmenge an Verilog-Code suchen, und zu versuchen, genau herauszufinden, inwieweit sie mit den Befehlssätzen von irgendwelchen realen MIPS-Prozessoren entspricht! Vielen Dank für alle Hinweise.

War es hilfreich?

Lösung

Ich kann nur teilweise die Frage beantworten: Ich würde empfehlen, Siehe MIPS Run von Dominic Sweetman, wenn Sie beziehen sich nicht bereits auf sie. Ich habe die erste Ausgabe des Buches, die zweite Auflage ist jetzt aktuell.

  • Tabelle 8.2 listet alle Opcode und erwartete Verhalten, Assembler-Makros differenzieren und die Auflistung der Anweisungen, die sie zersetzen. Leider ist es nicht unterscheiden Benutzer vs Kernel-Modus.
  • Tabelle 8.6 listet die ISA-Ebene, wo jeder Befehl eingeführt wurde, einschließlich obskuren Varianten wie die LSI MiniRISC
  • syscall ist in der Tabelle, obwohl viel Beschreibung fehlt

Die erste Ausgabe erwähnt den Kernel. Supervisor und Benutzerberechtigungsebene, aber nicht diskutieren, welche Operationen in jedem erlaubt sind. Ich weiß nicht, welche Änderungen wurden in der zweiten Auflage gemacht.

Andere Tipps

Okay, habe ich etwas gefunden!

MIPS bietet eine Reihe von "MIPS 32 Referenzhandbücher", die auf den neuesten, Satz standardisierten Anweisung beziehen (MIPS32v2): hier

Dazu gehören fast alles, mit Ausnahme der Informationen darüber, welche Version die Anweisungen ihren Ursprung in: - (

A SEC WARTEN ...

Diese Klasse Website an der Cornell enthält Links zu dem, was erscheint das gleiche Handbuch sein, ist aber in Wirklichkeit eine ältere Version davon und

Das aktuelle Befehlssatz Referenzhandbuch ist kostenlos online: MIPS® Architektur für Programmierer Volume II-A: Die MIPS32® Instruction Set-Handbuch . Diese Verbindung ist Revision 6.06 15. Dezember 2016. (dh es dokumentiert MIPS32 Release 6 ).

Es dokumentiert alle Benutzer und Supervisor / Kernel-Modus-Anweisungen und alle Floating-Point, in allen Einzelheiten einschließlich der Maschinencode-Codierung und mit einem Betriebsabschnitt, der zeigt, was sie tun. Es ist immer noch Dokumente alle Anweisungen, die in MIPS32 Release 6. (MIPS32 Release 6 auch um eine Menge von Opcodes bewegt, und das ist gut dokumentiert) entfernt wurden.


Siehe https://www.mips.com/products/architectures/mips32/ für die neueste Version. mips.com hat einen Abschnitt für „klassischen Kern“, aber das scheint immer noch nur auf MIPS32 zurück zu gehen, nicht um historische Sachen.


Probe der "Verfügbarkeit und Kompatibilität" Abschnitt für balc (Branch and Link-Compact: kein Verzweigungsverzögerungsschlitz und GRP31 ist die implizite Bestimmung, 26 Bits für einen offset<<2 Freisetzung):

  

Diese Anweisung wird eingeführt durch und benötigt ab Version 6.   Release 6 Anweisung BALC nimmt die gleiche Codierung wie Pre-Release 6   Anweisung SWC2. Die SWC2 Anweisung wurde dem COP2 bewegt   Haupt Opcode in MIPS Release 6

oder für LDXC1 fd, index(base) (Load-Doppel indexiert Floating Point)

  

Diese Anweisung wurde in Release 6 entfernt.   Erforderlich in allen Versionen von MIPS64 seit MIPS64 Veröffentlichung 1. Darf nicht in MIPS32 Release 1 erforderlich   MIPS32 Release 2 und alle nachfolgenden Versionen von MIPS32. Wenn es erforderlich ist, erforderlich, wenn FPU vorhanden ist,   ob ein 32-Bit- oder 64-Bit-FPU, ob in 32-Bit- oder 64-Bit-Register FP-Modus (FIRF64 = 0 oder 1, StatusFR = 0 oder 1).


Aus historischen Sachen fand ich die MIPS IV Instruction Set Revision 3.2 September 1995 auf einer cmu.edu Webseite. Es listet wenn Befehle wurden eingeführt, zum Beispiel MIPS I für div, MIPS III für dmult und andere 64-Bit-Befehle, MIPS II für ll / sc.

Diese Website den MIPS-Befehl beschreibt gesetzt und deren Kodierung. Ich glaube nicht, es abgeschlossen ist though.

Das MIPS Website hat auch technische Unterlagen über die verschiedenen Kerne.
Zum Beispiel habe ich heruntergeladen das Handbuch für den MIPS 4KE Kern (Dokument # MD00103) „MIPS32 4KE ™ Prozessors Core Familie Software Benutzerhandbuch“ und Kapitel 10 eine detaillierte Beschreibung des Befehlssatzes enthält. Beachten Sie, dass Sie die Dokumente registrieren zugreifen zu können.

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