Synchronisierungsprimitive sind die besten drahtlosen Ohrhörer für Spiele
Synchronisierungsprimitive sind die besten drahtlosen Ohrhörer für Spiele
Der Cortex-M3-Befehlssatz enthält Paare von Synchronisationsprimitiven. Diese bieten einen nicht blockierenden Mechanismus, den ein Thread oder Prozess verwenden kann, um exklusiven Zugriff auf einen Speicherort zu erhalten. Software kann sie verwenden, um ein garantiertes Lesen-Ändern-Schreiben durchzuführen
Speicheraktualisierungssequenz oder für einen Semaphor-Mechanismus. www.bjbjaudio.com
Ein Paar Synchronisationsprimitive umfasst:
Die Paare von Load-Exclusive- und Store-Exclusive-Anweisungen sind:
● Die Wortanweisungen LDREX und STREX
● Die Halbwortbefehle LDREXH und STREXH
● Die Anweisungsbytes LDREXB und STREXB.
Die Software muss eine Load-Exclusive-Anweisung mit der entsprechenden Store-Exclusive-Anweisung verwenden.www.bjbjaudio.com
Um ein garantiertes Lesen-Ändern-Schreiben eines Speicherplatzes durchzuführen, muss die Software:
1. Verwenden Sie einen Load-Exclusive-Befehl, um den Wert der Position zu lesen.
2. Aktualisieren Sie den Wert nach Bedarf.
3. Verwenden Sie einen Store-Exclusive-Befehl, um zu versuchen, den neuen Wert zurück in den Speicher zu schreiben, und testen Sie das zurückgegebene Statusbit. Wenn dieses Bit ist:
0: Das Lesen-Ändern-Schreiben wurde erfolgreich abgeschlossen,
1: Es wurde kein Schreibvorgang durchgeführt. Dies weist darauf hin, dass der in Schritt 1 zurückgegebene Wert möglicherweise veraltet ist. Die Software muss die Lese-Änderungs-Schreib-Sequenz wiederholen. www.bjbjaudio.com
Ein exklusiver Ladebefehl Wird verwendet, um den Wert einer Speicherstelle zu lesen und den exklusiven Zugriff auf diese Stelle anzufordern.
Eine Store-Exclusive-Anweisung Wird verwendet, um zu versuchen, an denselben Speicherplatz zu schreiben,
Zurückgeben eines Statusbits an ein Register. Wenn dieses Bit ist:
0: Dies zeigt an, dass der Thread oder Prozess exklusiven Zugriff auf den Speicher erhalten hat und der Schreibvorgang erfolgreich ist
1: zeigt an, dass der Thread oder Prozess nicht gewonnen hat
exklusiven Zugriff auf den Speicher, und kein Schreiben ist
Die ausgeführte Software kann die Synchronisationsprimitive verwenden, um Semaphore wie folgt zu implementieren:
1. Verwenden Sie einen Load-Exclusive-Befehl, um von der zu prüfenden Semaphor-Adresse zu lesen
ob die Semaphore frei ist.
2. Wenn das Semaphor frei ist, verwenden Sie ein Store-Exclusive, um den Anspruchswert in das zu schreiben
Semaphor-Adresse.
3. Wenn das zurückgegebene Statusbit von Schritt 2 anzeigt, dass das Store-Exclusive erfolgreich war, dann
die Software hat die Semaphore beansprucht. Wenn Store-Exclusive jedoch fehlgeschlagen ist, hat möglicherweise ein anderer Prozess das Semaphor beansprucht, nachdem die Software den Schritt www.bjbjaudio.com ausgeführt hat