Forth
http://www.fforum.winglion.ru/

Forth-процессор от whiteTigr-а
http://www.fforum.winglion.ru/viewtopic.php?f=3&t=2867
Страница 1 из 1

Автор:  Hishnik [ Чт авг 16, 2012 16:25 ]
Заголовок сообщения:  Forth-процессор от whiteTigr-а

whiteTigr развлекается. Развлекается, надо сказать, довольно продвинуто, так что необходимость тех или иных технических решений будет понятна только при наличии определенного практического опыта.
http://habrahabr.ru/post/149686/

Автор:  diver [ Ср дек 12, 2018 08:51 ]
Заголовок сообщения:  Re: Forth-процессор от whiteTigr-а

после некоторого шаманства (в основном распределение выводов, разбора принципа работы, перенаправления "отладочных/визуальных" сигналов) процессор успешно завёлся на плате Terasic DE0-CV.

В процессе разборок с кодом и внутренними сигналами добавлен стек счетчиков циклов (да, решение спорное, но.....теперь работает)), на его основе добавлены простейшие команды DO .. LOOP.

Для удобства работы на ассемблере данного процессора добавлены BEGIN ... UNTIL.

Модификация операций с 1/2 операндами достаточно проста и оставлена на "для конкретной задачи".

Проц уместился в 3% от Cyclon V. В силу полного в этом незнания никакие оптимизации и пр. не настраивались и не проводились (да пока и ни к чему).

как говорится - решение рабочее, интересное, рекомендую )))

Автор:  Victor__v [ Ср дек 12, 2018 13:00 ]
Заголовок сообщения:  Re: Forth-процессор от whiteTigr-а

С LIT весьма интересное решение на мой непрофессиональный взгляд.

Автор:  diver [ Ср дек 12, 2018 14:08 ]
Заголовок сообщения:  Re: Forth-процессор от whiteTigr-а

Victor__v писал(а):
С LIT весьма интересное решение на мой непрофессиональный взгляд.


согласен - очень элегантно. а главное - можно любую разрядность делать (ну в пределах 32 бит без корректировки кода)

Автор:  Hishnik [ Чт дек 13, 2018 01:20 ]
Заголовок сообщения:  Re: Forth-процессор от whiteTigr-а

Есть несколько моментов:
1. WhiteTigr использовал 9-битную команду, и это хорошо ложится на 18-разрядную память в ПЛИС. Тогда одна команда загружает 8 бит, а не 7, как было бы в 8-битной команде. Если память будет не 1-2 блока, а больше, синтезатор может переупаковать блоки, сделав, к примеру, 8 блоков по 1 биту. Если блоков получается мало, экономии не будет, потому что 9-й бит будет просто пропадать. Сколько разрядов отдавать на команду, и сколько там будет разрядов для литерала - вопрос оптимизации.
2. Есть вариант разделения литералов с помещением на стек "затравки" (проще всего 0) специальной "не литеральной" командой. После этого следующие литералы вдвигают себя в вершину стека, не пытаясь что-то положить. Затравок может быть несколько. Тогда варианты такие

0 NOP 0 - кладем два нуля, между ними придется ставить NOP, чтобы завершить формирование первого литерала
LIT0 LIT0 - две команды-затравки, нет NOP между ними, потому что каждая кладет новое число на стек

Однако
0x123 NOP 0x1FF - положили два числа тремя командами

LIT0 0x23 LIT0 0x1FF - нужны четыре команды, потому что в предыдущем варианте короткие литералы кладутся сразу, а в этом литерал всегда начинается с нуля

Нулями, кстати, удобно включать-выключать флаги в периферийных регистрах, если добавить еще LIT1, кладущий в качестве затравки 1.

Автор:  diver [ Ср фев 27, 2019 06:08 ]
Заголовок сообщения:  Re: Forth-процессор от whiteTigr-а

В рамках эксперимента после продолжительных плясок с бубном (немного вру, ибо есть только "посох дождя", а бубен надо таки сделать/купить)) и терзаний мэтров тупыми вопросами (благо география страны не позволяет им меня так просто побить))) к Форт-процессору от WhiteTiger (со всеми модификациями, указанными выше, плюс пара-тройка новых) был прикручен/адаптирован маленький, но мощный и интересный питоновский компилятор.
Отчёт/статья о деталях процесса - в работе, следите за рекламой)
Os/ если конечно мэтрами не будет наложен запретина распространение тайных знаний))))

Автор:  Hishnik [ Ср фев 27, 2019 12:35 ]
Заголовок сообщения:  Re: Forth-процессор от whiteTigr-а

Так тайное знание не потому тайное, что какие-то простые вещи держат в секрете, а потому что этим оперировать на практике оказывается нетривиально. Собственно, процесс разработки это же и показал :) И это в процессоре уже давно убраны всякие "маленькие хитрости", которые могут казаться приятными, а на деле все просто будет неустойчиво работать.

Автор:  diver [ Ср фев 27, 2019 13:47 ]
Заголовок сообщения:  Re: Forth-процессор от whiteTigr-а

Возможно "маленькие хитрости" в процессор невольно вернулись))))

По поводу нетривиальности....возникают сложности при реализации проекта, написанного на языке, который не знаешь, да ещё и забыл), плюс недостаток ПЛИСовой практики сказывается.

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


В целом же....приключение сродни "Хоббит. Туда и обратно" )))

Автор:  Hishnik [ Ср фев 27, 2019 13:55 ]
Заголовок сообщения:  Re: Forth-процессор от whiteTigr-а

Хорошая иллюстрация к вопросу "а давайте везде сделаем open source, и тогда сразу все во всем разберутся и улучшат". Вот вывалил бы я процессор на гитхаб - там бы он благополучно и застрял, с десятком скачиваний "посмотрим-посмотрим" и парой долгостроев.

Автор:  diver [ Ср фев 27, 2019 17:59 ]
Заголовок сообщения:  Re: Forth-процессор от whiteTigr-а

На самом деле той заготовки, что представлена была вполне хватает (ну плюс если ещё литературы почитать и первоисточники потерзать))).

Подход - рисуем кружочек, рисуем остальную сову - вот самое оно. Особенно, когда не привязан особо ни к требованиям по системе команд, ни по скорости. (Для ПЛИС, софт-ядро же вещь вспомогательная, ибо все что надо что б было быстро - делается логикой аппаратно...).
Совместимость по коду...зачем? Все проще вынести на уровень компилятора - или фортовского, или любого другого ЯВУ.

Тем более, что реально забавно и здорово, когда есть возможность и проц к компилятору, и компилятор к процу....(не без побочных эффектов, конечно))), но опыт-то нарабатывается)))

Автор:  KPG [ Чт фев 28, 2019 07:07 ]
Заголовок сообщения:  Re: Forth-процессор от whiteTigr-а

Где будет опубликована статья?
Если на хабр, то логично продолжение статьи от whiteTigr.

P.S. Интересно посмотреть и полученные Форт-Бенчмарки на данном решении.
На хабр добавили возможность монетного поощрения автора статьи (Яндекс деньги, Paypal, Webmoney)

Автор:  diver [ Чт фев 28, 2019 10:27 ]
Заголовок сообщения:  Re: Forth-процессор от whiteTigr-а

Данный вопрос пока не обсуждался, но хотелось бы учесть и политические и коммерческие интересы авторов)))
Ну и не пожертвовать при этом доступностью статьи)

Автор:  Hishnik [ Сб мар 02, 2019 02:00 ]
Заголовок сообщения:  Re: Forth-процессор от whiteTigr-а

KPG писал(а):
P.S. Интересно посмотреть и полученные Форт-Бенчмарки на данном решении.

Форт-процессор нужен, чтобы управлять аппаратурой. Бенчмарки для него в принципе неважны, поскольку в ПЛИС основная работа выполняется аппаратными ускорителями, а процессор должен заниматься управлением. Затягивать данные в процессорное ядро, обрабатывать их там и выдавать наружу - тупиковый путь, он упрется в предельные частоты. Как насчет 100-120 Gop/s? У процессора сегодня не может быть частоты 120 ГГц, но именно столько операций выполняется в одной из систем, которой управляет форт-процессор. Поэтому его бенчмарки ни о чем не скажут.

Автор:  diver [ Вт мар 10, 2020 09:27 ]
Заголовок сообщения:  Re: Forth-процессор от whiteTigr-а

В общем, решил спробовать так:

https://habr.com/ru/post/491604/

Страница 1 из 1 Часовой пояс: UTC + 3 часа [ Летнее время ]
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
http://www.phpbb.com/