Как стать автором
Обновить
10
-2
Руслан Аликберов @Alikberov

Оператор ЭВМ

Идея симулятора появилась тогда, когда появилась необходимость переделать мой старый MMX-алгоритм под SSE для третьего лица, не имея под рукой среды разработки/отладки. И нужно было понять, почему у третьего лица конкретно этот фрагмент кода падал.
В онлайн-эмуляторах отлаживать SSE-код, переделанный из MMX - удовольствие так себе.
Пришлось наспех набросать симулятор с поддержкой только конкретных инструкций. Что, в итоге, помогло дистанционно интуитивно отладить код.

О высокой производительности речи не шло, так как главное было - понять, что где происходит.

onlinegdb.com, например, работает больше как реальный, а следовательно, имеет множество бюрократических нюансов (программа компилируется и т.д.).
А в случае, когда на пальцах нужно показать, как взаимодействует пяток-другой инструкций третьему лицу, такое средство не подходит.

Вот и пришла мысль сделать именно бутафорский симулятор, чтобы наглядно показывал что и где в конкретном коде подводит.

P.S.: Verilog, конечно, для инженеринга незаменим вместе с GTK-wave, но Logisim позволяет более наглядно увидеть весь процесс в целом.
Просто, дело вкуса! ;-)
Это симулятор - своеобразный Logisim для изучения ассемблера.

Гарвардская архитектура разделяла не только код от данных, но и стек (сам i8080 сигнализирует о доступе к стеку, например, позволяя строить, хотя не "гарвардский"). Но Принстонская взяла вверх.

Почему тогда в отладчиках, на ряду с раскруткой стека, не имеем и раскрутку регистрового файла? (Хотя, на сегодняшний день это уже не актуально.)

Bochs был моим основным эмулятором до установки VMware.

Инженеры не предусматривали непосредственного произвольного программного доступа ко всему Регистровому Файлу.

Спасибо!

Отдельно github ещё не открывал. Пока только в gist как эксперимент для личных нужд.

Кaк бы вдохновлялся такими поделками, как Pico-8, Gigatron, MegaProcessor или MyCPU. И просто хотелось проверить себя…

Насчёт Tang-Nano — дело не в цене: Приглянулась DE2-115, но не освоился с Quartus/ModelSim…

А Verilog-модель расписал, но интереснее было бы именно в реальном ТТЛ… :)
Набросaл черновой вариант в Verilog — примерно 386 строк чистого кода (исключая «task show»).
(Локально отлаживаю в Icarus Verilog)
Правда, отлаживать нужно ещё много, так как написал всё за два дня буквально с потолка.
(И писал спонтанно, так как саму архитектуру легко восстановить без документации прямо с потолка, придерживаясь концептуальных принципов: A2 — регистр A₂; 00 — останов; и т.д…)
Но, сам общий размер файлов в 386 строк уже говорит в пользу, что интуитивно-понятный и приветливый машинный байт-код не требует сверхъестественных технологий.

Недостаток черновика — лишний ряд десяти регистров D₀…D₉, так как архитектурно он задумывался как периферийный (Devices) с обменом по I²C-шине и достаточно сложен в реализации с моей стороны…
Иногда пересматривал свой код спустя лет 10 и находил строчек 20, которые можно сократить до 5-10. И всегда мучал вопрос «Как я тогда не додумался?»…

Информация

В рейтинге
Не участвует
Откуда
Ташкент, Ташкентская обл., Узбекистан
Дата рождения
Зарегистрирован
Активность