[CALU] Re: Isa Encodings

  • From: Elshuber Martin <e9825286@xxxxxxxxxxxxxxxxxxxx>
  • To: calu-ss2010-tuwien@xxxxxxxxxxxxx
  • Date: Wed, 21 Apr 2010 10:49:05 +0200

Gibt es schon eine Einigung, darauf wie unser finales encoding aussehen sollte? Der Fehler in meinem Vorschlag (LD/ADD) konflikt, war ganz einfach zu lösen, der opcode '01101' war nicht genutzt, ein problem existiert aber noch: es gibt kein predi

ich hätte gerade zeit ein pdf zu bauen
hab das ausgebesserte gerade comitted.

g martin

Am 19.04.2010 22:32, schrieb Günther Wimpassinger:
Schönen Abend,

Ich habe Benedikts Encodings etwas kompakter in isa-spec-3short.txt zusammen gefasst. Des weiteren hab ich versucht ein ähnliches/darauf basierendes Encoding zu finden, dass bei den Shift-Operationen immer noch 5bit Immediates (schieben um 0-31 Stellen) erlaubt.

Eine kurze Zusammenfassung von meinem Encoding:

[LOADPAGE] Diese Operation ist so spezielle, da kann man auch erlauben
ein Register vorher entsprechend zu laden. Dafür kann man auf einen
größeren Speicherbereich zugreifen. Einschränkung: Es gibt nur max. 16
Pages. Für die LU mehr als ausreichend.

[MUL/DIV] Es gibt: MUL/DIV/DIVS. Diese Operationen setzen keine Flags.
Da es sich um "langsame" Operationen handelt, finde ich es vertretbar,
die Zustände "händisch" nach dem Ausführen von MUL/DIV abzufragen.

[RET/IRET] Leider musste ich da einen Teil des Opcodes in den Operanden-
teil verschieben, um zwischen RET und IRET unterscheiden zu können.

[LOG/ARITH] Bei den log./arithm. Operationen habe ich darauf geachtet,
dass die selben Bits im OPCODE die Funktion bestimmen. Ging leider
nicht immer.

[PRED] Es ist ein Register-Register, ein Predicate-Predicate, ein
Register-4bit Immediate und ein Predicate-Immediate vergleich möglich.
Mal schauen wie sich das auf die Logik im FPGA auswirkt.

Es gibt noch Platz für einige Instruktionen mit keinem, einem oder zwei
expliziten Operanden.

lg
Günther




Other related posts: