Aller au contenu
Phosphoneowiki
Sommaire

L'horloge et le temps

Le temps de Phosphoneo est un nombre de cycles. Aucune horloge de l’ordinateur n’y entre : c’est pourquoi un essai se répète à l’identique.

Les constantes

QuoiValeur
fréquence du 65C026,25 MHz
une trame109 226 cycles, soit 60 Hz
un tick du minuteur62 500 cycles, soit 100 Hz
une seconde de machine6 250 000 cycles

Le minuteur à 100 Hz du firmware est dérivé des cycles émulés, et non de l’horloge murale comme dans l’émulateur officiel : un programme qui attend le minuteur donne donc le même résultat à chaque exécution.

Fenêtre ou pas

Sans fenêtre, Phosphoneo va aussi vite que possible. En fenêtre (--sdl) ou avec --realtime, une trame émulée dure 1/60 s de temps mural : l’émulation est identique, seulement ralentie.

Combien coûte un appel d’API ?

Par défaut, 0 cycle : le 65C02 reprend la main dès que l’appel est traité, comme dans l’émulateur officiel. Avec --api-latency, il est gelé du nombre de cycles calibré en co-simulation, par fonction :

AppelOrdre de grandeur
2,6 écrire un caractère≈ 31 cycles
5,2 tracer une ligne≈ 1 200 cycles
5,3 rectangle pleinjusqu’à 30 000 cycles (≈ 5 ms)
5,4 ellipse pleinejusqu’à 70 000 cycles (≈ 11 ms)

Ce sont des moyennes par fonction, dans une unité construite (24,4 pas ARM par cycle) qui n’a pas été mesurée sur la carte : un pas ARM n’est pas un cycle ARM, et la latence réelle dépend des paramètres (la taille d’un rectangle). Le protocole de mesure sur la carte est écrit (docs/PROTOCOLE-MESURE-CARTE.md) ; il attend d’être déroulé.

Sources dans le dépôt : docs/ACCURACY.md, include/neo.