test-cpu-week08 : "Waiting to execute..." en trop

test-cpu-week08 : "Waiting to execute..." en trop

by Niels Marco Lachat -
Number of replies: 3

Bonjour,

Après avoir lancé le test-cpu-week08, on remarque que l'output est différent de l'output fourni.

On comprend le problème de la façon suivante (voir commentaires sur l'output ci-dessous):

Starting running CPU for 85 cycles

DEBUG: cpu->idle_time = 0 //normal, après initialisation

Executing: 0x00 (1 cycle(s)) //donc après le dispatch, idle_time augmente de 1 (durée du NOP)

REGS: 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00

REGPAIRS: 0x0000, 0x0000, 0x0000, 0x0000

PC: 0

SP: 0

DEBUG: cpu->idle_time = 1 // Comme dit ci-dessus

Waiting to execute: 0x7F (1 cycle(s)) //problème: Ici, il devrait y avoir un "Executing: 0x7F..."

DEBUG: cpu->idle_time = 0 // Le wait décrémente idle_time, comme prévu

Executing: 0x7F (1 cycle(s))

Le problème est qu'on ne sait pas comment faire que l'idle_time soit à 0 avant l'execution de 0x7F, parce qu'on incrémente idle_time à la fin du dispatch. Il faudrait en théorie que idle_time = -1 avant le dispatch du premier NOP pour que ça fonctionne (mais ça semble farfelu).

Merci d'avance

In reply to Niels Marco Lachat

test-cpu-week08 : "Waiting to execute..." en trop

by Sebastian Velez De Villa -
Salut, j’ai eu ce problème aussi, et je crois qu’au lieu de faire que idle_time = cycles; il faudrait plutôt faire idle_time=cycles -1. Le -1 venant du fait qu’on a pris un cycle pour lire l’instruction dans cpu_dispatch
In reply to Sebastian Velez De Villa

Re: test-cpu-week08 : "Waiting to execute..." en trop

by Jean-Cédric Chappelier -

en effet : le temps d'attente est 1 de moins que le nombre de cycles.