Неожиданно образовалось развитие ядра Горыныч. Горыныч оказался полезен тем, что
1. Позволяет без дополнительных затрат делить процессорное время от 1 до 8 потоков выполнения. Для низкоскоростных периферийных устройств запредельная частота работы ядра вобщем-то не требуется, а вот одновременная работа нескольких подпрограмм (или почти одновременная) гораздо полезнее.
2. Горыныч не навязывает именно стековый режим работы. Точнее, при стековой вычислительной модели он вполне программируется на Си-подобной языке (от true-grue), имея соответствующую поддержку, ненужную Форту, но полезную для кода, генерируемого таким компилятором.
Технически, в ряду моих ядер, Горыныч был 7-го поколения (если считать именно принципиальные изменения микроархитектуры, а не просто версии). Соответственно, следующая версия - 8-я, а что у нас главное при работе с программами и вообще САПР? Правильно, выбрать имя
Ну и чтобы была хотя бы притянутая за уши ассоциация, восьмерка после поворота превратилась в символ бесконечности, после чего проекты в САПР можно называть Infinity.
Какой следующий шаг оказалось возможно сделать после Горыныча. Раз в Горыныче поддержан "двойной" режим программирования с точки зрения компилятора, новое ядро логично сделать с поддержкой такого режима в аппаратуре - чтобы при необходимости процессор мог работать как обычный регистровый, не занимаясь лишними перемещениями данных из стека/в стек. Отсюда получилась архитектура с двумя выделенными регистрами данных, которые схемотехнически подключены к памяти данных и могут являться продолжением стека... но могут и не являться. Поэтому та же команда сложения может выполнять два варианта действий:
1. RegA = RegA + RegB
2. A, B -- A+B , с соответствующим изменением указателя стека и догрузкой нового значения B из памяти данных
Ожидаемый эффект - некоторое повышение рабочей частоты из-за устранения блока памяти из критического пути. Блоки памяти в ПЛИС вообще достаточно быстрые, но очен любят быть конвейеризованными. Поэтому послать данные из памяти сразу в АЛУ можно, но частота будет... приемлемой. А вот схемотехника, основанная на регистров, позволяет поднять частоту до довольно больших значений. Главное, чтобы из памяти данные поступали сразу в регистры, а не "в регистры через арифметические операции".
После завершения составления списка требуемых транзакций будет попробован RTL.