IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Autres architectures Assembleur Discussion :

[16F628A] temps d'exécution


Sujet :

Autres architectures Assembleur

  1. #1
    Membre à l'essai
    Homme Profil pro
    Développeur informatique
    Inscrit en
    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 : 21
    Points
    21
    Par défaut [16F628A] temps d'exécution
    Bonjour,

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

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    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?

  2. #2
    Modérateur
    Avatar de Obsidian
    Homme Profil pro
    Développeur en systèmes embarqués
    Inscrit en
    Septembre 2007
    Messages
    7 369
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Développeur en systèmes embarqués
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2007
    Messages : 7 369
    Points : 23 623
    Points
    23 623
    Par défaut
    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.

  3. #3
    Membre à l'essai
    Homme Profil pro
    Développeur informatique
    Inscrit en
    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 : 21
    Points
    21
    Par défaut
    merciiiiiiiiiiiiii

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 9
    Dernier message: 20/06/2005, 12h17
  2. [C#] Calcul du temps d'exécution.
    Par lozzko dans le forum Windows Forms
    Réponses: 4
    Dernier message: 12/06/2005, 16h12
  3. Réponses: 2
    Dernier message: 25/05/2004, 15h33
  4. Affichage du temps d'exécution d'une requête
    Par milka dans le forum PostgreSQL
    Réponses: 1
    Dernier message: 22/03/2004, 17h48
  5. Temps d'exécution des instructions FPU
    Par ubi dans le forum Assembleur
    Réponses: 2
    Dernier message: 24/10/2003, 18h39

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo