[CALU] Re: Instruction Set Encoding

  • From: Benedikt Huber <benedikt@xxxxxxxxxxxxxxxxxx>
  • To: calu-ss2010-tuwien@xxxxxxxxxxxxx
  • Date: Fri, 9 Apr 2010 18:21:18 +0200


On 09.04.2010, at 17:57, Martin Elshuber wrote:

David Markvica wrote:
Zu schnell auf senden geklickt..

On 2010-04-09, at 14:35, David Markvica wrote:

d) Wie schaut es jetzt bit byteweisen und halfword load/store operationen aus?

wir sollten us mal über addressing modes einigen


Die Frage hab ich vorher ueberlesen.
Was genau ist da noch offen?

welche addressieurngs modi machen wir genau (passen diese 2)
machen wir byte, word. Weiß jemand ob unser Sram uns beu byte zugriffen hilft?
Laut http://www.altera.com/literature/ds/ds_cyc.pdf, Seite 28, ist es moeglich einzelne Bytes beim schreiben zu masken. Beim Lesen kann man die entsprechende Logik im Prozessor implementieren, denke ich.
Also prinzipiell kein Problem.

mir fällt dazu noch ein weiterer punkt ein:
unsere boards haben ein flash, was machen wir damit?

ich fände es eigentlich recht nützlich wenn wir byte/word addressing auch machen würden. probiert mal (nur das padding) von hash algorithmen zb. SHA1, MD5 ohne byte addressing zu implementieren
und (noch schlimmer ohne shift mit zwei registern als als operatoren)
Ok, das ist ein starkes plus fuer shift mit zwei registern.

für mein programm hätte ich die idee gehabt SHA1 zu implementieren.

noch eine grundsatz frage:
wenn wir nur mit relativ kurzen immedates arbeiten. wie bekomme ich eine addresse zb im sram halbwegs sinnvoll in ein register?
Spricht sehr fuer eine LDI Operation mit moeglichst vielen immediate bits. Beim XMOS ist es so, dass man relativ zu einem Stack, Heap oder Constant Pointer Register addressiert.
Aber es stimmt schon, absolute Addressen sollte man schon laden koennen.

e) add LOADPAGE: Ich bin mir nicht sicher, ob eine Softwareimplementierung nicht ausreichen wuerde, aber wir koennen es ja vorerst mal drinnenlassen, oder?

man braucht auf jeden fall eine LDinstruction operation. Egal ob diese nur ein oder mehrere Words lädt. Das leise sich aber auch über Addressen lösen
Zb:
ADDR<=0x1000 == ROM
ADDR<=0x2000 == Instructions
rest SDRAM
anmerkung die zahlen sind hausnummern

Oder wir verwenden den XMOS Trick und fetchen bei allen Instruktionen, die das Memory nicht brauchen im Memory Access stage eine Instruktion in den Buffer. (Oder besser gesagt 1 1/2 Instruktionen bei 24bit Instruktionen, 32bit Speicher Interface)
Sollte natuerlich 1 1/3 heissen.
Wegen dem Load Delay geht das nur, wenn wir mindestens 64-bit pro fetch bekommen (Beim XMOS ist es uebrigens ohne delay 64/16).

benedikt

Other related posts: