Comments 7
Странно,что ничего не сказано про ядро Hazard3 (RV32IMAC) в новых RP2350.
Здорово, хотя из чтения других источников кажется, что тон статьи чрезмерно оптимистичен ;)
RISC-V никогда не будет пригоден для серьёзных применений из-за одной мелочи, гвоздя, которого не было в кузнице. Впрочем, это свойство всех «открытых проектов», сделанных методом муравейника.
У risk-v очень долгое сохранение контекста. Для этого придумали костыль: соглашение, что контекст сохраняется в ВЫЗЫВАЮЩЕЙ цепочке команд. Типа клмпилятор всё наоптимизирует, и будет сохранять только те регистры, которые нужны вызывающему потоку И изменяются в подпрограмме. И будет типа щастье.
Только вот ламеры забыли, что есть такие подпрограммы - называются обработчики прерываний. Место вызова которых неизвестно. А они, в свою очередь, могут вызывать обычные функции. И что мы имеем в итоге? Если обработчик трапа/прерывания чуть сложнее, чем дрыганье выводом порта - компилятор просто НЕ МОЖЕТ предсказать, какие регистры нужно созранять. И СОХРАНЯЕТ ВСЕ. В обработчике, требующем максимальной скорости реакции на событие 🤦🏻♂️🤦🏻♂️. Тратя на это до десятка микросекунд (на типичных для встраиваемых систем частотах ядра около 100МГц) 🤦🏻♂️🤦🏻♂️🤦🏻♂️.
А вот профессионально разработанные Cortex-M-ядра на тех же частотах начинают обработку трапа/прерывания через доли или единицы микросекунд.
Ну например ядро AVR входит в прерывание за 6 тактов. Ну и собственно моментальность реагирования на прерывание нужно только в жестком реалтайме который как правило вообще не предусматривает какой либо операционной системы.
"Профессионально разработанные" cortex-m аппаратно пушат кучу (но не все) регистров и точно так же тратят на это время, но только уже безусловно и всегда. А потом ещё и компитятор ручками сохраняет оставшиеся, если функция обработчика сложная с кучей расчётов, не лезущих в сохранённые аппаратно. Ну и наконец, никто и ничто не мешает впилить в конкретную эмбедскую risc-v корку расширение, подменяющее caller-saved регистры при входе в обработчик.
Извините, если это нельзя писать.
Но, опыт сотрудничества США и КНР (очень удачного для КНР) показал, что открытый мир уже почти умер.
RISC-V против x86 и ARM: когда открытая архитектура становится новым железным стандартом