Я хочу поменять местами две переменные. и я хотел бы сделать это через конвейер, используя опасность чтения после записи в моих интересах.
Конвейер:
OPERXXXXXX FetchXXXXX DecodeXXXX ExecuteXXX WriteBkXXX
STORE X, Y ---------- ---------- ---------- ----------
STORE Y, X STORE X, Y ---------- ---------- ----------
---------- STORE Y, X STORE X, Y ---------- ----------
---------- ---------- STORE Y, X STORE X, Y ----------
---------- ---------- ---------- STORE Y, X STORE X, Y
---------- ---------- ---------- ---------- STORE Y, X
как мне сказать компилятору сделать это (и именно это) без автоматических блокировок и предупреждающих флагов? вы можете предложить любую литературу / ключевые слова?
спецификации:
-> цель: современные архитектуры, поддерживающие многостанционный (более 4) конвейерную обработку
-> это не связано с какой-либо конкретной «проблемой». просто ради науки.
текущие препятствия: