Leksykon IT › Sprzęt › Monitor wyłączny (LDREX/STREX)

Monitor wyłączny (LDREX/STREX)

Sprzęt Svenska → Zaktualizowano: 2026-11-04

Sprzętowy mechanizm ARM do atomowego odczytu-modyfikacji-zapisu: odczyt znakuje adres, a zapis się udaje tylko wtedy, gdy nikt w międzyczasie go nie ruszył.

LDREX czyta wartość i każe monitorowi obserwować ten adres. Program oblicza nową wartość, a STREX próbuje ją zapisać. Jeśli w międzyczasie coś się stało — inny rdzeń tam zapisał albo wtrąciło się przerwanie — zapis zawodzi, STREX zwraca 1, a kod zawraca i próbuje od nowa. Zasada nazywa się load-linked/store-conditional i istniała już w MIPS; ARM przejął ją wraz z ARMv6.

W Cortex-M3 i wyższych każde wejście w wyjątek czyści monitor, więc inkrementacja w pętli głównej nie zderzy się z tą samą inkrementacją w ISR. Cortex-M0 w ogóle nie ma tych instrukcji, dlatego operacje atomowe robi się tam przez maskowanie przerwań wewnątrz sekcji krytycznej.

← Wróć do leksykonu