나는 메모리 장벽이 필요한 이유를 이해하지만, 유니 프로세서의 경우에는 이해하지 못한다.메모리 장벽은 SMP에서만 의미가 있습니까?
내가 UP을 사용할 때도 장벽을 해결해야합니까? 모든 문서는 SMP로 설명하지만 UP는 아닙니다.
다음 코드에서 r2 == 0
은?
// the location 0xdeadbeef has a zero initial value
ldr r0, =0xdeadbeef
ldr r1, =0xdeadbeef
ldr r2, =1
str r2, [r0]
ldr r2, [r1]
// point a
슈퍼 스칼라 순서가 잘못된 단일 프로세서와 관련이 있습니다. 프로세서의 메모리 모델과 명령어 세트에 의해 실제로 지정되어야합니다. (악은 세부 사항에있다). –
@Basile : 나는 그렇게 생각하지 않습니다. 철칙은 단일 프로세서에서 단일 스레드를 실행하면 항상 다음 원인을 초래합니다. –