вот, кстати, не понял я одну штуку. У RISC-V в priveleged спецификации есть описание нескольких команд типа FENCE, но само описание настолько туманное, что я читал и перечитывал, но пока не понял, как это всё должно работать, хотя и понял, что это всё именно про управление памятью - сохранение когерентности и всё такое.
Например, непонятно, как реализовать точное управление кэшем. Ну, например, в ситуации, когда система только включилась и в кэше мусор - причём флажки valid могут быть установлены (ибо - мусор). Т.е. кэш сначала надо сбросить весь, но если записи в память ещё не было, то FENCE не имеет смысла (или я чего-то не понял?), а вот конкретно как инвалидизировать весь кэш или, что ещё интереснее, отдельные его куски - ващщще непонятно.