게임을 위한 최고의 무선 이어버드 동기화 프리미티브
게임을 위한 최고의 무선 이어버드 동기화 프리미티브
Cortex-M3 명령어 세트에는 동기화 프리미티브 쌍이 포함되어 있습니다. 이들은 스레드나 프로세스가 메모리 위치에 대한 단독 액세스를 얻는 데 사용할 수 있는 비차단 메커니즘을 제공합니다. 소프트웨어는 이를 사용하여 보장된 읽기-수정-쓰기
메모리 업데이트 시퀀스를 수행하거나 세마포어 메커니즘에 사용할 수 있습니다.www.bjbjaaudio.com
동기화 프리미티브 쌍은 다음과 같이 구성됩니다.
Load-Exclusive 및 Store-Exclusive 명령어 쌍은 다음과 같습니다.
● 워드 명령어 LDREX 및 STREX
● 하프워드 명령어 LDREXH 및 STREXH
● 명령어 바이트 LDREXB 및 STREXB.
소프트웨어는 해당 Store-Exclusiveinstruction.www.bjbjaaudio.com과 함께 Load-Exclusive 명령을 사용해야 합니다.
메모리 위치의 보장된 읽기-수정-쓰기를 수행하려면 소프트웨어가 다음을 수행해야 합니다.
1. 위치 값을 읽기 위해 Load-Exclusive 명령을 사용합니다.
2. 필요에 따라 값을 업데이트합니다.
3. Store-Exclusive 명령을 사용하여 새 값을 메모리, 위치에 다시 쓰려고 시도하고 반환된 상태 비트를 테스트합니다. 이 비트가 다음과 같을 경우:
0: 읽기-수정-쓰기가 성공적으로 완료됨,
1: 쓰기가 수행되지 않았습니다. 이는 1단계에서 반환된 값이 오래되었을 수 있음을 나타냅니다. 소프트웨어는 읽기-수정-쓰기 시퀀스를 재시도해야 합니다. www.bjbjaaudio.com
Load-Exclusive 명령어 메모리 위치의 값을 읽고 해당 위치에 대한 단독 액세스를 요청하는 데 사용됩니다.
A Store-Exclusive 명령어 동일한 메모리 위치에 쓰기를 시도
하고 레지스터에 상태 비트를 반환하는 데 사용됩니다. 이 비트가
0이면 스레드 또는 프로세스가 메모리에 대한 독점 액세스 권한을 얻었고 쓰기가 성공
했음을 나타냅니다. 1: 스레드 또는 프로세스가
메모리에 대한 독점 액세스 권한을 얻지 못했고 쓰기가
수행 되지 않았음을 나타냅니다. 동기화 프리미티브를 사용하여 다음과 같이 세마포어를 구현합니다.
1. Load-Exclusive 명령어를 사용하여 세마포어 주소에서 읽어
세마포어가 사용 가능한지 확인합니다.
2. 세마포어가 비어 있으면 Store-Exclusive를 사용하여 청구 값을
세마포어 주소에 씁니다.
3. 2단계에서 반환된 상태 비트가 Store-Exclusive가 성공했음을 나타내면
소프트웨어가 세마포어를 요구한 것입니다. 그러나 Store-Exclusive가 실패하면 소프트웨어가 stepwww.bjbjaaudio.com을 수행한 후 다른 프로세스가 세마포어를 요구했을 수 있습니다.