Primitifs de synchronisation meilleurs écouteurs sans fil pour les jeux
Primitifs de synchronisation meilleurs écouteurs sans fil pour les jeux
Le jeu d'instructions Cortex-M3 comprend des paires de primitives de synchronisation. Ceux-ci fournissent un mécanisme non bloquant qu'un thread ou un processus peut utiliser pour obtenir un accès exclusif à un emplacement mémoire. Le logiciel peut les utiliser pour effectuer une lecture-modification-écriture garantie
séquence de mise à jour de la mémoire, ou pour un mécanisme de sémaphore.www.bjbjaudio.com
Une paire de primitives de synchronisation comprend :
Les paires d'instructions Load-Exclusive et Store-Exclusive sont :
● Les instructions de mot LDREX et STREX
● Les instructions de demi-mot LDREXH et STREXH
● Les octets d'instructions LDREXB et STREXB.
Le logiciel doit utiliser une instruction Load-Exclusive avec l'instruction Store-Exclusive correspondante. www.bjbjaudio.com
Pour effectuer une lecture-modification-écriture garantie d'un emplacement mémoire, le logiciel doit :
1. Utilisez une instruction Load-Exclusive pour lire la valeur de l'emplacement.
2. Mettez à jour la valeur, si nécessaire.
3. Utilisez une instruction Store-Exclusive pour tenter de réécrire la nouvelle valeur dans la mémoire, l'emplacement et testez le bit d'état renvoyé. Si ce bit est :
0 : La lecture-modification-écriture s'est terminée avec succès,
1 : Aucune écriture n'a été effectuée. Cela indique que la valeur renvoyée à l'étape 1 est peut-être obsolète. Le logiciel doit réessayer la séquence de lecture-modification-écriture. www.bjbjaudio.com
Une instruction Load-Exclusive Utilisée pour lire la valeur d'un emplacement mémoire, demandant un accès exclusif à cet emplacement.
Une instruction Store-Exclusive Utilisée pour tenter d'écrire dans le même emplacement mémoire,
renvoyer un bit d'état à un registre. Si ce bit est :
0 : cela indique que le thread ou le processus a obtenu un accès exclusif à la mémoire et que l'écriture a réussi
1 : cela indique que le thread ou le processus n'a pas gagné
accès exclusif à la mémoire, et aucune écriture n'est
Le logiciel exécuté peut utiliser les primitives de synchronisation pour implémenter un sémaphore comme suit :
1. Utilisez une instruction Load-Exclusive pour lire à partir de l'adresse du sémaphore afin de vérifier
si le sémaphore est libre.
2. Si le sémaphore est libre, utilisez un Store-Exclusive pour écrire la valeur de réclamation dans le
adresse sémaphore.
3. Si le bit d'état renvoyé à l'étape 2 indique que Store-Exclusive a réussi, alors
le logiciel a réclamé le sémaphore. Cependant, si Store-Exclusive a échoué, un autre processus peut avoir réclamé le sémaphore après que le logiciel a effectué l'étape www.bjbjaudio.com