나는 메모리 장벽 후 이후의에로 이전과 명령의 재정렬을 방지 함을 알고있는 메모리 장벽 전에, 예를 들어, 나는 다음과 같은 지시 사항이있는 경우 :이 지침에서 실행할 수 있습니다지침의 순서 변경을 방지하는 것 이외에 메모리 배리어는 어떤 작업을 수행합니까?
instruction 1
instruction 2
instruction 3
memory barrier
instruction 4
instruction 5
instruction 6
을 다음과 같은 순서 :
instruction 3
instruction 1
instruction 2
memory barrier
instruction 6
instruction 5
instruction 4
는하지만 그들은 다음과 같은 순서로 실행되지 않습니다 :
instruction 1
instruction 2
instruction 5
memory barrier
instruction 4
instruction 3
instruction 6
하지만 다음 작업이 메모리 장벽에 의해 시행되는지 확실하지 않습니다.
- 메모리 장벽이 완료되기 전에 보류중인 모든 작업이 완료되었습니다.
- 메모리 배리어 이전에 쓰기 작업으로 캐시에 남아있는 모든 데이터는 플러시됩니다.
이것은 흥미로운 질문이지만 매우 광범위합니다. 각 아키텍처에는 고유 한 장벽이 있습니다. 일반적으로 열거 된 작업 중 어느 것도 장벽에 필수 사항은 아닙니다. –