Fréquence du Z80 sur CPC Pourquoi dit-on dans certaines documentations que le Z80 du CPC est cadencé à 4MHz, et dans d'autres qu'il est à 3,33 MHz ? Les deux fréquences sont correctes ! Tout dépend du point de vue : Le CPC possède un quartz à 16 MHz dont la fréquence est divisée par 4 avant d'arriver au Z80. On a donc bien quatre Mhz. Cependant la RAM du CPC est utilisée à la fois par le CPU et le processeur vidéo (il faut bien qu'il lise les octets pour les afficher à l'écran). Pour des raisons techniques, le Z80 et le CRTC6845 ne peuvent accéder à la mémoire en même temps. Il a donc fallu faire un arbitrage : On a préféré privilégier l'affichage, le CRTC a donc la priorité sur le Z80. Si on avait choisi de privilégier le CPU par rapport au processeur vidéo, on aurait eu des clignotements d'affichage ou des point noirs, du genre de ceux qui se produisent sur le TRS-80. Comme sur CPC c'est le CRTC qui a la priorité, il peut lire les données au moment où il en a besoin. Le Z80 sera obligé d'attendre que le 6845 lui laisse le champ libre. Ainsi, la fréquence de 3,33 MHz est une moyenne calculée à partir des ralentissements que subit le Z80 à cause du CRTC. Epilogue La vitesse des programmes sur CPC sont mesuré en NOP, et non pas en cycles comme c'est le cas sur d'autres machines. Un NOP dure une microseconde, ce qui correspond à la largeur d'un caractère au point de vue du CRTC. Il y a 64 NOPs par ligne, et 312.5 lignes. On a donc 20000 NOPs par frame, et un million par seconde. Selon MadRam (Alias le Dieu du CPC), seules certaines instructions sont ralenties par le 6845. Il est donc possible de faire des programmes tournant réellement à 4 MHz. Remerciements Cet article a été rédigé par CSKi, d'après des indications de MadRam. |