Я понимаю, почему необходимы барьеры памяти, но я не понимаю его в случае Uniprocessor.Является ли барьер памяти значимым только в SMP?
Должен ли я иметь дело с барьерами, даже когда я использую UP? Каждый документ объясняет их SMP, но не UP.
В следующем коде есть ли вероятность, что r2 == 0
в точке a?
// 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: Я так не думаю - правило железа - выполнение одного потока на одном процессоре всегда имеет следствием следующую причину. –