RISC-V

Для начала документация скорее напоминает какую-то диссертацию. Такие ощущения, что люди хотели себе ученую степень получить, а не создать коммерческий продукт. Бонусом еще code of conduct - главный признак ебанатов. Во вторых железо. Я вот у нормальных производителей ни у кого не увидел. Все плотно сидят на ARM, MIPS и слазить не хотят. Слазить хотят только китайцы и наши. И вот это второй предмет для беспокойства.
Поковырявшись слегка в документации, выясняется, что с RTOS будут проблемы. Ссылки на документы Berkeley 1963 года это только подтверждают. 32 регистра общего назначения, плюс 32 регистра FPU. Если я правильно понимаю, сохранить при переключении контекста придется 63 регистра (нулевой регистр нагло спизжен с MIPS). Т.е. 126 регистров при полноценном переключении. Судя по обрывкам документации - компиляторы оптимизируют до половины этих регистров в nested прерывании.
При этом нет возможности загрузки/выгрузки пачки регистров, как у ARM. Мало того, это преподносится еще как конкурентную особенность в виде компактного набора инструкций! Оптимизированная работа с памятью тоже пойдет по пизде. ARM мог за один такт перекинуть пачку слов, тут - увы. Прощай оптимизированное копирование из FIFO, криптография и быстрое переключение контекста.
Также я не увидел в спецификациях и расширениях NVIC. Нет, я, конечно, портирую с ARM7, уже реализовывал. Но блин. Программный NVIC это печально.
Бонусом есть непонятные, которые либо устарели, либо вообще не пойми какой велосипед авторов. 3 или 4 контекста исполнения. USER, SUPERVISOR - это понятно. MACHINE на кой хер нужен? Thread pointer - это вообще что? Кто из современных компиляторов это поддерживает.
Или я не умею их готовить? Расскажите, может я чего-то неправильно совсем понимаю и мозг нужно вывернуть в другую сторону?
|
</> |