Qu'est-ce qu'un registre fantôme?


Réponses:


11

Je suppose que vous avez rencontré cela en termes de programmation PIC. Les PIC avaient à l'origine des ports d'E / S gérés de manière très directe - vous pouviez lire quelles valeurs ils avaient en externe, ou écrire quelles valeurs vous sortez, les deux sur la même adresse. L'inconvénient de cela était que la valeur que vous tentiez de sortir pourrait ne pas correspondre à l'état sur la broche - quelque chose d'autre pourrait la conduire plus fortement, ou elle pourrait ne pas avoir encore terminé le changement. Cela signifiait qu'une variable distincte était nécessaire pour suivre l'état que vous vouliez, plutôt que d'obtenir, si vous vouliez mettre à jour uniquement certaines parties d'un port. Si je me souviens, cette variable distincte est ce que l'on appelle généralement un registre fantôme, car vous l'avez toujours utilisée pour stocker une copie du registre de sortie (invisible). Les PIC plus récents évitent cela en ajoutant les adresses de "verrouillage", où le registre de sortie peut être lu. Cela est également courant dans d'autres microcontrôleurs, tels que les adresses de port vs broches sur AVR.

Il existe un terme similaire dans l'architecture PC pour la mémoire fantôme; dans ce cas, cela signifie généralement une section de RAM utilisée pour stocker une copie d'une ROM plus lente et mappée à la même adresse. Encore une fois, il stocke une copie d'un autre stockage, qui est masqué car la copie le remplace dans l'espace d'adressage.

Edit: Voyant que c'est un TMS320, le registre fantôme fournit un double tampon; cette technique est utilisée pour garantir que les mises à jour se produisent en temps opportun. Comparez l'utilisation des échanges de tampons d'images dans les graphiques. Le manuel de données montre les versions shadow et active de plusieurs registres. Considérons par exemple un registre indiquant la fin d'une impulsion; si vous deviez la modifier en une impulsion plus courte, le faire alors que l'impulsion n'est pas encore terminée pourrait empêcher une impulsion de se terminer (car elle n'a jamais été égale à la valeur de fin de ce cycle). Mais si vous écrivez dans le registre fantôme, le matériel peut le copier dans le registre actif à un point connu pour être sûr - par exemple, exactement lorsque le minuteur se termine. Cela n'est pas décrit dans le manuel de données, qui couvre des paramètres particuliers pour une puce donnée; connaissant TI, il y a probablement unmanuel séparé décrivant la fonction de chaque bloc; celui-ci a une mention du mode Shadow dans la section 2.2.


3
Une autre utilisation du terme "shadow" appliqué en particulier aux registres est le mappage des noms de registres architecturaux à différents registres physiques pour permettre un changement de contexte rapide complet ou partiel. («Registre en banque» est parfois utilisé comme synonyme.) Il est généralement destiné à accélérer les interruptions.
Paul A. Clayton

1

les registres miroir et miroir font tous référence à des registres accessibles à partir de plusieurs adresses. Par exemple, dans le matériel, un registre donné a une instance située à F00h. Cependant, s'il a un alias à 1F00h, la lecture ou l'écriture sur F00h est identique à la lecture ou l'écriture sur 1F00h et vice versa.


2
Ce serait un ajout intéressant si vous expliquez à quoi servent ces registres fantômes.
Rev1.0

0

En termes simples, le registre fantôme est un registre conçu dans le microcontrôleur dans le but de conserver certaines données à utiliser ultérieurement. Le nom "Shadow" implique de dupliquer une valeur et de l'utiliser à nouveau - donc elle ne se perdra pas.

En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.