[CALU] Re: decode stage: call/ret

  • From: Elshuber Martin <e9825286@xxxxxxxxxxxxxxxxxxxx>
  • To: calu-ss2010-tuwien@xxxxxxxxxxxxx
  • Date: Mon, 17 May 2010 08:44:52 +0200

Hallo

ret: ret liest from stack, daher gilt für stack-sel "don't care"
call: ich habe bewust stacksel preds gewählt. grund:
1) unser imem fast 4096 (2^12) wörter, der programm counter kan theoretisch 17 bit breit sein, wobei derzeit nur 12 genutzt werden. 2) stack-sel beeinflust nur die bits 17-31 (15 predikat bits) folglich ist es kein problem die rücksprung adresse und die predikate ein ein wort zu schreiben. 3) folglich glit eigentlich bei call für stack-sel eigentlich "don't-care" da die bits 0-16 immer von der alu kommen 4) für geringe zusatzkosten (statt dont-care ein stack-pred für calls) werden zusätzlich die predikate gespeichert. 5) eine funktion kann daher entscheiden ob sie invariant gegenüber den predikaten bleiben will oder nicht indem sie entweder ret oder iret ausführt.

g martin


Am 17.05.2010 00:30, schrieb Benedikt Huber:
Hi Martin,
frage zu call/ret in der Decode Stage:
>  type stack_sel_type is (STACK_ALU, STACK_PRED)
a) Beim call sollte es doch STACK_ALU (als Z + immediate/ret_addr) und nicht STACK_PRED sein, oder? Hab ich jetzt mal geaendert. b) Ich verstehe, dass bei ireturn eigentlich auch die predicates gepopped werden sollen, aber mit der aktuellen Architektur geht das so nicht, oder?

gute nacht,
benedikt


Other related posts: