LES HORLOGES DES MC68040 ET MC68040V

Certaines personnes et certaines societes, en particulier
francaises, annoncent que le 68040 est a 64 MHz sur
l'AFTERBURNER 040 ou l'HADES 040.
Ceci est FAUX et n'est que le reflet d'une ignorance
technique du 68040 !

Le 040 est cadence par deux horloges : la BCLK et la PCLK.
La BCLK (Bus CLocK) cadence le processeur, son controleur de
bus, ainsi que l'unite entiere de calcul (et l'unite flottante
dans le cas de la version 'full' du 040, cad avec un FPU (copro)).
Le DATA BOOK Motorola du 040 est d'ailleurs tres clair a ce sujet
puisque page 10-4, on peut lire : 'All timings are related to 
BCLK cycles...'
De ce fait, quand vous lisez les tableaux de timings des
instructions du 040, et que par exemple, on vous indique que 
l'instruction TRUC fait 4 cycles, cela signifie qu'elle est
executee en 4 cycles d'horloge BCLK !!
Quant a la PCLK (Processor CLocK), elle est necessaire au
040 pour cadencer sa logique interne, en particulier ses
pipelines. Cette horloge pourrait etre a 200 ou 500 MHz, que
ca ne changerait rien aux performances du 040 !! Pour le cas
present, la PCLK est le double de la BCLK avec un decalage de 
phase de + ou - 250 a 500 ps selon le generateur d'horloge utilise.
En design, on peut fournir une PCLK que l'on divise par 2 pour obtenir
la BCLK. L'inverse est plus souvent utilise avec au depart une BCLK
que l'on multiplie par 2 avec un circuit pour obtenir une PCLK.
Motorola propose un circuit MC88915 a cet usage et ce circuit est
utilise par l'Afterburner.
Une remarque : la version 3.3v du 040 n'existe qu'en deux versions :
- le 68040V qui ne contient PAS de FPU !
- le 68EC040V qui ne contient NI de FPU, NI de PMMU !
Ces deux versions sont identiques a la version 5V au niveau des
performances (sinon ou sont les tableaux des timings d'instructions
de cette version 3.3v dans le DATABOOK qui traite de TOUS les modeles
de 040 ?!!).
Les seules differences portent sur les possibilites 'LOW POWER' de
cette version 3.3v qui sont decrites dans l'appendix C du 040 DATA
BOOK. Sur la version V (comme sur le 060 !!), il n'y a plus qu'une
seule horloge injectee sur le processeur : CLK (CLocK).
Bien evidemment, cette horloge equivaut a la BCLK et est d'ailleurs
a la meme position sur le boitier que la BCLK !
Mais pourquoi une seule horloge et qu'est devenue la PCLK ?
Il faut savoir que la technologie 'STATIC' permet de cadencer ce 040
(et le 060 !) a des frequences plus basses, voir 0 MHz (plus aucun
cadencement) dans le cas d'une reduction maximum de consommation...
Mais, le moyen de sortir de ce mode est d'envoyer une interruption non
masquee au 040. Ainsi, le 040 (et le 060) est pourvu d'une 
logique de controle de l'horloge ('clock control logic') interne qui
est elle meme cadencee par une horloge interne qui, elle, fonctionne en
permanence ! En effet, c'est cette logique qui recoit l'interruption et
sort le 040 de son 'low power mode'. C'est aussi cette logique qui 
stop ou redemarre la PLL (boucle a verouillage de phase chargee de
synchroniser la clock externe avec l'horloge interne !), qui 
surveille en permanence cette PLL et sort en cas de perte de phase, un
signal externe LOC/ (Loss Of Clock; actif a l'etat bas). Ce signal est 
par exemple envoye en cas de variation de la CLK envoyee sur le 
processeur. La clock ne peut etre modifiee que pendant un RESET ou le
LOW POWER MODE ! Dans le cas d'un LOC active, il est necessaire
d'envoyer un RESET au processeur pour le redemarrer en mode NORMAL.
De ce fait, le 040, comme le 060 ne permettent pas (en temps reel) 
le DX2 externe, comme il a ete pratique sur des cartes acceleratrices
(CENTurbo I 20/40 (premiere generation), Speed Resolution
Card, HI-SPEED 40, 50, etc...).

Apres la theorie, passons a du concret :
Il s'agit de vous faire une petite demonstration avec un FALCON equipe
d'une Afterburner 040 et de GEMBENCH 4.03 avec son test INTEGER DIV 
qui consiste en un DIVU.W dx,dx.
On prends les timings de CE DIVU dans les DATABOOK Motorola du 030 et 
du 040.
Pour le 030 : 44 cycles d'horloge.
Pour le 040 : 27 cycles d'horloge.
On lance GEMBENCH 4.03 et le test INTEGER DIV (ref. FALCON) sur :
FALCON STANDARD 16 MHz : 100 % (normal !).
FALCON + AB40 a 32 MHz : 320 % (411 % a 40 MHz).

Voici l'equation qui se passe de commentaire :

68040 a 32 MHz = (44/27) x (32/16) = 3,26, soit 326 %

D'un cote, nous avons la theorie avec les DATABOOK (si certains 
veulent leur faire dire autre chose, nous sommes toute ouie !)
qui donne 326 et de l'autre un test reel sur machine qui donne 320 !
Donc l'hypothese du 040 a 32 MHz est bonne.
Si le 040 etait a 64 MHz, comme certains veulent le faire croire,
le resultat gembench aurait du etre proche de 
652 = (44/27) x (64/16) !

Petite remarque de BON SENS : pourquoi un fabriquant de processeur 
indiquerait sur ses processeurs une horloge qui ne serait que la
moitie de ce que le processeur calcule reellement ?!! Vous avez deja 
vu, vous, un fabricant sous estimer de 50% ses produits face a la
concurrence et, de plus, n'en rien dire dans ses documentations ??!!!
Nous, jamais !

CONCLUSION : le 68040 est cadence par sa BCLK !

Rodolphe Czuba
Sacha Hnatiuk
David Godec

Mon seul regret est d'avoir fait confiance aux propos d'une personne
et d'un 'magazine' et d'avoir annonce ces memes idioties dans la 
premiere version du fichier de presentation du PHENIX 040/060 avant de
constater par moi-meme (lors de l'etude du PHENIX) la verite...
Malheureusement, de nombreuses personnes continuent de subir cette
information mensongere ! Certains en ont fait les frais en achetant...
Moralite : avant de croire et/ou repeter betement les propos des autres,
verifiez par vous meme, ou faites verifier aupres de VRAIS 
professionnels !
Rodolphe Czuba

A CENTEK, nous n'aimons pas les tricheurs !
