Эльбрус мог бы иметь по 2 потока на каждое ядро (аналог Intel Hyper-Threading или AMD Simultaneous Multi-Threading), ведь в каждом ядре имеются по 6 АЛУ, разделённых на 2 блока (т.е. 3 АЛУ разного типа, и в обоих блоках они одинаковые). Вот тут уже вопрос в финансах, т.к., как я понял, придётся потратить очень много денег и полностью перелопатить процессор, чтобы реализовать мультипоточность в рамках одного ядра. На данный момент грамотное задействование всех этих АЛУ – задача программиста и компилятора, т.к. никакого оптимизатора исполняемого кода внутри самого процессора у Эльбруса нет. Предсказатель переходов должен был появиться в Эльбрус 32С, однако, когда теперь выйдет этот процессор – неизвестно. Он должен был быть произведён по 6 нм техпроцессу TSMC, только теперь из-за санкций тайваньский TSMC не будет работать с МЦСТ, а китайский SMIC ещё не освоил техпроцесс менее 14 нм.
Тут возникает вопрос: зачем Эльбрусу по 2 потока на каждое ядро, если у него компилятор отвечает за более грамотное использование ресурсов каждого из ядер процессора? Нужно это затем, чтобы другие языки, помимо C, C++ и Fortran, т.е. те языки программирования, которые не оптимизируются компилятором LCC, могли задействовать как можно больше АЛУ (арифметико-логических устройств) каждого из ядер процессора. В других языках программирования у нас сильно меньше методов оптимизации ПО под Эльбрус, и там распараллелить операции, по большому счёту, можно лишь распределив эти самые задачи по разным ядрам. Виртуальная многоядерность позволила бы больше этих самых АЛУ задействовать в рамках каждого из ядер процессора. Но да, в случае с языками C, C++ и Fortran это попросту не требуется, т.к. компилятор LCC у Эльбруса и так делает свою работу, как надо, если вы программу пишете с расчётом на оптимизацию под Эльбрус.