Maîtrise du tempsbornat.vvv.enseirb.fr/wiki/lib/exe/fetch.php?media=mi100:...Timer périodique...

17
Maîtrise du temps... Un processeur ne permet pas de maîtriser naturellement le temps exception : processeur RISC, en assembleur, sans IT Raisons: Beaucoup d’optimisations matérielles sont difficilement prédictibles Méconnaissance des instructions assembleur derrière une ligne en C Méconnaissance du nombre de cycles machine par instruction assembleur Si interruptions, impossibilité d’en prévoir le déclenchement Solution : Utilisation d’un compteur matériel : un timer (pour compter le nombre de cycles de l’horloge système) Le processeur consulte ce compteur comme une horloge.

Transcript of Maîtrise du tempsbornat.vvv.enseirb.fr/wiki/lib/exe/fetch.php?media=mi100:...Timer périodique...

Page 1: Maîtrise du tempsbornat.vvv.enseirb.fr/wiki/lib/exe/fetch.php?media=mi100:...Timer périodique Timer spécifique fait pour avoir une période précise et stable… – Uniquement

Maîtrise du temps...

● Un processeur ne permet pas de maîtriser naturellement le tempsexception : processeur RISC, en assembleur, sans IT

● Raisons:– Beaucoup d’optimisations matérielles sont difficilement prédictibles– Méconnaissance des instructions assembleur derrière une ligne en C– Méconnaissance du nombre de cycles machine par instruction assembleur– Si interruptions, impossibilité d’en prévoir le déclenchement

● Solution :– Utilisation d’un compteur matériel : un timer (pour compter le nombre de cycles de

l’horloge système)– Le processeur consulte ce compteur comme une horloge.

Page 2: Maîtrise du tempsbornat.vvv.enseirb.fr/wiki/lib/exe/fetch.php?media=mi100:...Timer périodique Timer spécifique fait pour avoir une période précise et stable… – Uniquement

Maîtrise du temps...

● Le timer : 2 usages– Générer un évènement à venir d’ici une durée pré-définie

mode décompteur– Mesurer une durée.

mode compteur

Selon les séries et la configuration, le timer s’arrête de lui-même ou boucle indéfiniement.

● Prescaler : la vitesse de comptage est prédivisée par une puissance de 2 (configurable)

cas particulier : le chien de garde

Page 3: Maîtrise du tempsbornat.vvv.enseirb.fr/wiki/lib/exe/fetch.php?media=mi100:...Timer périodique Timer spécifique fait pour avoir une période précise et stable… – Uniquement

Le Chien de garde / Watchdog

● Uniquement dédié à garantir la fonctionnalité du système● Durée d’attente fixe, à quelques options près (postscaler)

● Actions possibles– du watchdog sur le processeur (lorsque la durée est atteinte):

● Réveil du processeur (si en sommeil)● Reset du système

– Du processeur sur le watchdog :● Reinitialiser le temps d’attente● Démarrer le watchdog (mais impossible de l’arrêter !! )

Page 4: Maîtrise du tempsbornat.vvv.enseirb.fr/wiki/lib/exe/fetch.php?media=mi100:...Timer périodique Timer spécifique fait pour avoir une période précise et stable… – Uniquement

Le Chien de garde / Watchdog

● Usages :– Immédiat : blocage des fenêtres windows (logiciel uniquement)

● (cette fenêtre ne répond pas)

– Equipements réseaux (téléphonique) ou satellites…– Informatique embarquée au sens large…– Cas particulier : transports...

Page 5: Maîtrise du tempsbornat.vvv.enseirb.fr/wiki/lib/exe/fetch.php?media=mi100:...Timer périodique Timer spécifique fait pour avoir une période précise et stable… – Uniquement

Timer périodique

● Timer spécifique fait pour avoir une période précise et stable…– Uniquement utilisable comme base de temps pour des durées lentes…– Impossibilité de gérer précisément la phase (synchroniser le timer sur

d’autres évènements)

● Utilisé en TP car accès facile…● 1 bit de statut :

– passe à 1 en fin de période– remis à 0 par le processeur

Page 6: Maîtrise du tempsbornat.vvv.enseirb.fr/wiki/lib/exe/fetch.php?media=mi100:...Timer périodique Timer spécifique fait pour avoir une période précise et stable… – Uniquement

Interruptions...

choix de la prochaine instruction éxécutée par le processeur

● Si une interruption est demandée

– La prochaine instruction est à une adresse prédéterminée, quoi qu'il arrive (l'emplacement de l'instruction qui aurait du être la suivante est sauvegardé)

● Sinon

– Si c'est un branchement● Éxécuter l'instruction indiquée par le branchement

– Sinon● Si c'est un test

– La prochaine instruction est la suivante, ou celle juste après, selon le résultat du test● Sinon

– La prochaine instruction est la suivante

Page 7: Maîtrise du tempsbornat.vvv.enseirb.fr/wiki/lib/exe/fetch.php?media=mi100:...Timer périodique Timer spécifique fait pour avoir une période précise et stable… – Uniquement

Interruptions

● Concept : Un processeur n'obéit pas QUE aux instructions de son programme…

– Il répond également aux entrées d'interruption– Chaque ligne d'interruption est associée à l'adresse d'une fonction à éxécuter

(vecteur d'interruption)– Le vecteur contient un branchement vers une fonction complète (configurable)

● Chaque périphérique parle sur un seul vecteur, mais plusieurs périphériques peuvent se partager un vecteur...

● Déclenchement asynchrone (d'un point de vue algorithmique)

=> doit fonctionner sans perturber le fonctionnement de base.

Page 8: Maîtrise du tempsbornat.vvv.enseirb.fr/wiki/lib/exe/fetch.php?media=mi100:...Timer périodique Timer spécifique fait pour avoir une période précise et stable… – Uniquement

Interruptions

● Déroulement temporel

Page 9: Maîtrise du tempsbornat.vvv.enseirb.fr/wiki/lib/exe/fetch.php?media=mi100:...Timer périodique Timer spécifique fait pour avoir une période précise et stable… – Uniquement

Interruptions

● Déroulement temporel

Page 10: Maîtrise du tempsbornat.vvv.enseirb.fr/wiki/lib/exe/fetch.php?media=mi100:...Timer périodique Timer spécifique fait pour avoir une période précise et stable… – Uniquement

Interruptions

● Déroulement temporel

Page 11: Maîtrise du tempsbornat.vvv.enseirb.fr/wiki/lib/exe/fetch.php?media=mi100:...Timer périodique Timer spécifique fait pour avoir une période précise et stable… – Uniquement

Interruptions

● Déroulement temporel

Page 12: Maîtrise du tempsbornat.vvv.enseirb.fr/wiki/lib/exe/fetch.php?media=mi100:...Timer périodique Timer spécifique fait pour avoir une période précise et stable… – Uniquement

Interruptions

● Déroulement temporel

Page 13: Maîtrise du tempsbornat.vvv.enseirb.fr/wiki/lib/exe/fetch.php?media=mi100:...Timer périodique Timer spécifique fait pour avoir une période précise et stable… – Uniquement

Interruptions

● Déroulement temporel

Page 14: Maîtrise du tempsbornat.vvv.enseirb.fr/wiki/lib/exe/fetch.php?media=mi100:...Timer périodique Timer spécifique fait pour avoir une période précise et stable… – Uniquement

Interruptions

● Déroulement temporel

Page 15: Maîtrise du tempsbornat.vvv.enseirb.fr/wiki/lib/exe/fetch.php?media=mi100:...Timer périodique Timer spécifique fait pour avoir une période précise et stable… – Uniquement

Interruptions

● Déroulement temporel

● L'état du processeur est rigoureusement identique avant et après l'interruption

● Première approche multitâche : les opérations du système s'effectuent en arrière plan

Page 16: Maîtrise du tempsbornat.vvv.enseirb.fr/wiki/lib/exe/fetch.php?media=mi100:...Timer périodique Timer spécifique fait pour avoir une période précise et stable… – Uniquement

Utiliser les interruptions...

● Très spécifique, dépend de :– à l’environnement de compilation– au processeur cible

● Machines simples : – On ajoute le mot-clé interrupt devant la fonction…

ex: void interrupt fct_it(void)

– Le compilateur s’occupe● d’ajouter la sauvegarde et la restauration du contexte en début et fin de fonction● de placer le code de la fonction à l’endroit qui va bien (ou de faire un lien)

Page 17: Maîtrise du tempsbornat.vvv.enseirb.fr/wiki/lib/exe/fetch.php?media=mi100:...Timer périodique Timer spécifique fait pour avoir une période précise et stable… – Uniquement

Utiliser les interruptions...

● Sur AT91:– Un sous-système (en assembleur) prend tout en charge…– La/Les fonction(s) n’ont techniquement rien de différent

– L’initialisation indique au système où se trouve la fonction

=> il suffit d’écrire l’adresse de la fonction dans le registre qui va bien...

– La configuration se fait vecteur par vecteur– Une même fonction peut être associée à plusieurs vecteur