Précédent   Forum du club des développeurs et IT Pro > Autres langages > Assembleur > Autres architectures
Autres architectures Toutes les autres architectures (PIC, MIPS, ARM, 68K, Z80...) et leurs outils
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse
 
Outils de la discussion
Publicité
'
Vieux 09/05/2012, 11h40   #1
Need you
Invité régulier
 
Homme
Développeur informatique
Inscription : avril 2012
Messages : 24
Détails du profil
Informations personnelles :
Sexe : Homme

Informations professionnelles :
Activité : Développeur informatique
Secteur : High Tech - Électronique et micro-électronique

Informations forums :
Inscription : avril 2012
Messages : 24
Points : 6
Points : 6
Par défaut [16F628A] temps d'exécution

Bonjour,

Je voudrais savoir comment a été calculé le temps que la boucle suivante :

Code :
1
2
3
4
5
6
7
 
CYCLE4m VB1= 40
BOUC1 	VB2=32
BOUC2 	DECFSZ VB2,1
		GOTO 	BOUC2
		DECFSZ 	VB1,1
		GOTO 	BOUC1
C'est une boucle qui prends 4ms avec un Pic16F628A de 4Mhz. j'ai cherché un document qui donne les cycle d'horloge de chaque instruction mais j'ai rien trouvé, pouvez vous m'aider s'il vous plait?
Need you est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 09/05/2012, 15h56   #2
Obsidian
Modérateur
 
Avatar de Obsidian
 
Homme
Chercheur d'emploi
Inscription : septembre 2007
Messages : 4 612
Détails du profil
Informations personnelles :
Sexe : Homme
Âge : 36
Localisation : France, Essonne (Île de France)

Informations professionnelles :
Activité : Chercheur d'emploi
Secteur : High Tech - Éditeur de logiciels

Informations forums :
Inscription : septembre 2007
Messages : 4 612
Points : 11 082
Points : 11 082
Hello,

Les PICs sont des processeurs RISC dont toutes les instructions s'exécutent en un seul cycle. Toutefois, le PIC16F628 a l'air suffisamment développé pour que l'on puisse remettre en doute cette assertion, mais la datasheet lève toute ambiguïté et apporte les précisions nécessaires :
Citation:
Envoyé par Datasheet PIC16F628, section 1.0 page 5
The two-stage instruction pipeline allows all instructions to execute in a single-cycle, except for program branches (which require two cycles).
En outre, beaucoup de micro-processeurs fonctionnent comme des « moteurs à quatre temps ». Donc, sur un circuit cadencé à 4 Mhz, un cycle dure en général une micro-seconde. De là :
  1. 1 cycle pour initialiser VB1 ;
  2. 1 cycle pour initialiser VB2 ;
  3. 32 fois 1 cycle pour décrémenter VB2 ;
  4. 32 fois 2 cycles pour faire le premier goto ;
  5. 40 fois 1 cycle pour décrémenter VB1 ;
  6. 40 fois 2 cycles pour faire le goto, et donc recharger VB2 et refaire la boucle interne.

Ça donne donc :

1 + 40 × [ 1 + 32 × ( 1 + 2 ) + 1 + 2 ] =
1 + 40 × [ 1 + 32 + 64 + 1 + 2 ] =
1 + 40 × [ 100 ] =
4001

Si on fait abstraction du premier chargement de VB1 et du temps qu'il faut sauter dans la routine, ça fait 4000 cycles donc 4 millisecondes.
Obsidian est actuellement connecté   Envoyer un message privé Réponse avec citation 10
Vieux 14/05/2012, 09h16   #3
Need you
Invité régulier
 
Homme
Développeur informatique
Inscription : avril 2012
Messages : 24
Détails du profil
Informations personnelles :
Sexe : Homme

Informations professionnelles :
Activité : Développeur informatique
Secteur : High Tech - Électronique et micro-électronique

Informations forums :
Inscription : avril 2012
Messages : 24
Points : 6
Points : 6
merciiiiiiiiiiiiii
Need you est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Cette discussion est résolue.
Outils de la discussion

Navigation rapide


Fuseau horaire GMT +2. Il est actuellement 22h22.


 
 
 
 
Partenaires

Hébergement Web