test-cpu-week8 : Jamais de "Executing"

test-cpu-week8 : Jamais de "Executing"

by Roy Shoham -
Number of replies: 1
Bonjour,

Nous sommes en train de retester les tests test-cpu-week8 et nous recevons les messages suivants :

Waiting to execute: 0x33 (2 cycle(s))
Waiting to execute: 0x33 (2 cycle(s))
Waiting to execute: 0x33 (2 cycle(s))
Waiting to execute: 0x33 (2 cycle(s))
Waiting to execute: 0x33 (2 cycle(s))
Waiting to execute: 0x23 (2 cycle(s))
Waiting to execute: 0x23 (2 cycle(s))
Waiting to execute: 0x23 (2 cycle(s))

Au lieu d’avoir :
 
Executing: 0x33 (2 cycle(s))
Waiting to execute: 0x33 (2 cycle(s))
Executing: 0x33 (2 cycle(s))
Waiting to execute: 0x33 (2 cycle(s))
Executing: 0x33 (2 cycle(s))
Waiting to execute: 0x33 (2 cycle(s))
Executing: 0x33 (2 cycle(s))
Waiting to execute: 0x33 (2 cycle(s))
Executing: 0x33 (2 cycle(s))

On pense que notre problème provient de la valeur d’idle_time.
Pour préciser :
Dans cpu_cycle on décrémente la valeur par 1 si idle_time n’est pas égal 0
Dans cpu_dispatch à la fin nous mettons la valeur d’idle_time à lu->cycles-1
Dans cpu_do_cycle nous ajoutons 5 à la valeur d’idle_time si IME est 1 et qu’une interruption a été levée.

Avons nous oublié quelque chose?

Merci et bon weekend !
In reply to Roy Shoham

Re: test-cpu-week8 : Jamais de "Executing"

by Jean-Cédric Chappelier -

Ce n'est pas à nous de répondre sur l'algorithme précis de gestion de l'idle_time.
Mais le cas que vous identifiez est assez précis (endroit précis dans un code assembleur simple) pour que vous puissiez debuguer par vous mêmes (p.ex. avec un débuger) pourquoi l'instruction n'est pas exécutée : suivez pas à pas ce qui se passe juste avant et voyez ce qui, dans votre code, fait que l'instruction n'est pas exécutée.