> существенно выше, чем 1, особенно если много потоков, в которых не
> нужна особая функциональность.В штуке типа M0 вот именно многозадачность делать - довольно душноватенько. Поэтому вот именно потоков на 2 ядрах скореее всего только 2 и будет. Именно полновесную ОС, именно с нормальными потоками на таких вещах редко подымают. От них оверхеда и потери предсказуемости много, если это было не надо, проще нормальный одноплатник с линем взять, и вот там потоков процессов и прочего будет дохрена и в лучшем виде, намного круче чем это реально на микроконтроллерном ядре. Однако отмерять ровно 100 наносекунд, а не 50, 200 или сколько там получится, вы этим все-таки не сможете, в отличие от микроконтроллера.
> Что сможет сделать компилятор, если simd нет? просто смириться и сделать как-то
> - а успеет там что-то раскодировать/закодировать, не успеет раскодировать/закодировать
> - вопрос.
До того как умничать - надо хоть немного в теме разобраться. От микроконтроллерного ядра вообще не требуется супер-производительность. Оно или успевает свою задачу окучивать в реалтайм, или нет. И если успевает, "на 20% быстрее" не дает вообще совсем ничего. А если не успевает, у вас уже сразу на старте большая проблема, "отсутствие запаса перфоманса". При этом вы уже залетели - а вдруг юзер еще и новую фичу попросит? А у вас уже ресурсов нет, вы то что есть едва впихали после камасутры с оптимизацией.
> В итоге тот же celt будет ядро на половину машинного времени грузить,
> а был бы simd, то вопросов простых кодеках вообще бы не возникало.
Ну так возьмите себе одноплатник какой-нибудь, ARM сжует его даже без simd. А микроконтроллеры так по жизни - не числокрушилки. Ну не их это, они для управляющих задач. Хотя у какого-нибудь STMicro можно найти и монстров типа старших F7/H7 которые где-то на границе направлений. Но вы, имхо, сойдете с ума пытаясь совладать с этой системой. Потому что линух там все же малость экзотика, а кастом на таком монстре подымать вы наверное все же опупеете с вашим уровнем.