Forth и другие саморасширяющиеся системы программирования Locations of visitors to this page
Текущее время: Вс окт 17, 2021 19:03

...
Google Search
Forth-FAQ Spy Grafic

Часовой пояс: UTC + 3 часа [ Летнее время ]




Ответить
Имя пользователя:
Заголовок:
Текст сообщения:
Введите текст вашего сообщения. Длина сообщения в символах не более: 60000

Размер шрифта:
Цвет шрифта
Настройки:
BBCode ВКЛЮЧЕН
[img] ВЫКЛЮЧЕН
[flash] ВЫКЛЮЧЕН
[url] ВКЛЮЧЕН
Смайлики ВЫКЛЮЧЕНЫ
Отключить в этом сообщении BBCode
Не преобразовывать адреса URL в ссылки
Вопрос
Теперь гостю придется вводить здесь пароль. Не от своей учетной записи, а ПАРОЛЬ ДЛЯ ГОСТЯ, получить который можно после регистрации на форуме через ЛС.:
Этот вопрос предназначен для выявления и предотвращения автоматических регистраций.
   

Обзор темы - A FPGA based Forth microprocessor
Автор Сообщение
  Заголовок сообщения:  Re: A FPGA based Forth microprocessor  Ответить с цитатой
Это все вокруг одной идеи - гетерогенная система на кристалле, собираемая под конкретный набор периферийных устройств и задач. В статье два ядра. Может быть три разных архитектуры, четыре или пять. Зависит от того, когда сложность программирования и поддержки превысит положительный эффект от специализации.
Сообщение Добавлено: Чт июл 08, 2021 22:05
  Заголовок сообщения:  Re: A FPGA based Forth microprocessor  Ответить с цитатой
Hishnik писал(а):
В FPGA как раз и следует собирать систему для конкретной задачи. Не "массив исполнителей", а набор ядер под конкретные периферийные устройства и алгоритмы. При этом имеет смысл заранее создать такой набор ядер, чтобы не придумывать каждый раз сверхспециализированный процессор.
Я имел в виду что-то подобное:
https://www.researchgate.net/publication/254037228_Active_Cells_A_Computing_Model_for_Rapid_Construction_of_On-Chip_Multi-core_Systems
Сообщение Добавлено: Чт июл 08, 2021 12:04
  Заголовок сообщения:  Re: A FPGA based Forth microprocessor  Ответить с цитатой
В FPGA как раз и следует собирать систему для конкретной задачи. Не "массив исполнителей", а набор ядер под конкретные периферийные устройства и алгоритмы. При этом имеет смысл заранее создать такой набор ядер, чтобы не придумывать каждый раз сверхспециализированный процессор.
Сообщение Добавлено: Ср июл 07, 2021 18:45
  Заголовок сообщения:  Re: A FPGA based Forth microprocessor  Ответить с цитатой
Hishnik писал(а):
Если создавать оригинальную систему из нескольких ядер с произвольно разрабатываемой схемой соединений, то можно устранить потенциально узкие места. Если одно ядро не справляется - ему добавляется второе, забирающее часть работы.
Я имел в виду структуру "железа", определяемую задачей, а не "просто универсальный массив исполнителей". Что-то вроде Active Cells. Понятно, что FPGA сейчас кучу всего промоделировать способны, но там, всё же - "тупо-универсальный подход" - "на все случаи жизни, в рамках ресурсов".
Сообщение Добавлено: Ср июл 07, 2021 01:52
  Заголовок сообщения:  Re: A FPGA based Forth microprocessor  Ответить с цитатой
Wlad писал(а):
Напоминает решения Parallax (Propeller-ы ихние), ну и - GreenArray...

Они оба немного другие. Propeller - это "толстые" ядра, разделяющие одну системную шину. Общая часть, с точки зрения логической структуры, у них довольно мала. GreenArray - это... array. Из этого вытекает, что у него есть периферийные ядра и внутренние, а значит, возникает задача передачи данных от периферии.

Если создавать оригинальную систему из нескольких ядер с произвольно разрабатываемой схемой соединений, то можно устранить потенциально узкие места. Если одно ядро не справляется - ему добавляется второе, забирающее часть работы. Софт-ядра в этом плане отличаются от систем, предназначенных для широкого круга разработчиков, потому что тут всех ситуаций не учесть. Но если уж в наличии конфигурируемая элементная база, то странно отказываться ее конфигурировать, а вместо этого начинать воспроизводить аппаратные решения массового назначения.
Сообщение Добавлено: Ср июн 30, 2021 13:34
  Заголовок сообщения:  Re: A FPGA based Forth microprocessor  Ответить с цитатой
Hishnik писал(а):
Добавление независимых процессоров для работы с такими критичными кусками кода, или же просто для облегчения работы программиста - вполне перспективное направление.
Напоминает решения Parallax (Propeller-ы ихние), ну и - GreenArray...

Вообще, самое понятие прерывания - "от бедности" прижилось. Когда все (даже "элементарные") "подзадачи", могут выполняться каждая - на отдельном "ядре", понятие "прерывание" - просто исчезает, "как класс" из программирования. :)
Сообщение Добавлено: Ср июн 30, 2021 12:18
  Заголовок сообщения:  Re: A FPGA based Forth microprocessor  Ответить с цитатой
KPG писал(а):
Может в этом варианте будет эффективнее сразу переложить выполнение части кусков кода программы, например, при возникновении прерываний на дополнительный контроллер.

В самую точку! Это одна из объективных и существенных проблем сегодня. Для программиста вообще очень неудобно, что в критическом куске кода может внезапно возникнуть прерывание. Запретить - может возникнуть проблема с периферией, которую не обработают. А уж понятие "шторм прерываний" попросту показывает, что проблема получила собственное название.

Добавление независимых процессоров для работы с такими критичными кусками кода, или же просто для облегчения работы программиста - вполне перспективное направление. Если работа с собственным процессором не воспринимается как что-то запредельно сложное, жизнь внезапно облегчается. Программисту не нужно думать, хватит ли ему производительности. Ему не нужно думать, не нарушит ли добавляемый в основной цикл вызов функции нормальную работу предыдущих кусков проекта. Ему не нужно думать, что делать, когда прерывания перекрываются (а также как это проверить и хотя бы воспроизвести для тестирования). Вобщем, сплошные плюсы :) Из минусов цена.... но это цена одного компонента, и важно это будет разве что для пресловутого массового производства, до которого еще нужно добраться. А на сегодня +10-20 $ к спецификации далеко не всегда непреодолимая проблема. Тем более если это ускоряет выпуск нормально работающего изделия.

Кстати, kf732 был разработан именно с целью влезть в ПЛИС подешевле. Там-то как раз была серия.
Сообщение Добавлено: Чт дек 10, 2020 23:25
  Заголовок сообщения:  Re: A FPGA based Forth microprocessor  Ответить с цитатой
Hishnik писал(а):
В принципе мысль технически реализуема, но вопросы начнутся потом..

Спасибо за развёрнутый ответ.
Думаю да, если не попробовать такой вариант сделать или смоделировать, то нет полной ясности.
К, тому же, например у части контроллеров есть интерфейс к памяти расширения поддержанный аппаратно и он быстрее чем IO через порты.

P.S. Может в этом варианте будет эффективнее сразу переложить выполнение части кусков кода программы, например, при возникновении прерываний на дополнительный контроллер.

Кстати, интересно, что на AVR в ассемблере есть реализованные проекты микропроцессора 6502. :)
Сообщение Добавлено: Чт дек 10, 2020 22:53
  Заголовок сообщения:  Re: A FPGA based Forth microprocessor  Ответить с цитатой
KPG писал(а):
Знаю, что, например на микроконтроллере делали в одном проекте микросхему памяти,
но в подобном применении можно сделать FIFO/LIFO а также возможно и возможность выполнения стековой арифметики или сразу или по мере необходимости (как то, наверное, можно и этим управлять - как быстро нужен, если нужен результат стековой арифметики следующим тактом или позже) какой нибудь и AVR может для этого сгодится. (часть стэка разместить в регистрах микроконтроллера)

В принципе мысль технически реализуема, но вопросы начнутся потом.

Сама по себе связка МК+ПЛИС очень хороша и жизнеспособна. Эти микросхемы друг друга хорошо дополняют, потому что в МК обычно больше периферии, ну и стартовать проще именно оттуда, а в ПЛИС реализовать как раз недостающее по цифровой части. Это обычно или параллельное DSP, или коммутатор цифровой периферии, или какая-то схема, которой нет в МК - вот как раз вариант со стеком. Связать можно довольно просто через GPIO у МК. Да, он получит стек данных и команды по вкусу.

Первое наблюдение будет состоять в том, что постоянный обмен со стеком через порты МК будет медленным. В ПЛИС-то он будет быстрым, а вот МК придется постоянно забрасывать числа на стек, инициировать команды и забирать данные. Да, оно будет выполнять стековые операции за один такт внутри ПЛИС, но вот сколько тактов понадобится на обмен? Второе - такое ускорение стека, возможно, будет и быстрее, чем эмуляция стека в МК. Но будет ли она быстрее, чем просто программа для МК, написанная с учетом его архитектуры? Это уже очень неоднозначный вопрос. Скорее всего, нет - код на Си/ассемблере будет быстрее, чем код на Форте в связке МК+ускоритель стека.

Для форт-процессоров в ПЛИС смысл в основном в том, что они имеют компактный код. С учетом дефицита памяти на кристалле ПЛИС (сколько бы ни было, всегда не хватает, потому что от большой ПЛИС хочется и решения более серьезных задач). Сравнение с "официальными" софт-процессорами, конечно же, проводилось. Для реальных проектов упрямство не прокатывает :) Но оказалось, что аналогичный по функциям код имеет размер в 2-3 раза больше, если создается с помощью gcc. Это еще данные для kf332, у которого команда 18-битная. А уж kf532 делает такие вещи, что страшно с ARM-подобными ядрами сравнивать.

Второй важный момент - тесное сопряжение с периферией. 1 0 OUTPORT на форт-процессоре - это 3 такта. Если литералы получаются больше, то больше. Но многие МК на такой обмен с устройствами на шине тратят гораздо больше. Плюс добавляются игры с кэшем (если есть), прерываниями и прочими радостями... и получается, что очень удобно работать с каким-то собственным ядром, которое занимается одним процессом в системе, а на другие процессы при необходимости ставятся другие ядра. К примеру, kf732 - это прямой ответ на такую потребность, у него 8 аппаратных потоков, запускаемых по очереди (в произвольном порядке).

Так что в целом, форт-процессоры - это не про "очень быстро". Это скорее "очень удобно по совокупности свойств и маршруту разработки".
Сообщение Добавлено: Чт дек 10, 2020 22:24
  Заголовок сообщения:  Re: A FPGA based Forth microprocessor  Ответить с цитатой
Появилась такая мысль.

Знаю, что, например на микроконтроллере делали в одном проекте микросхему памяти,
но в подобном применении можно сделать FIFO/LIFO а также возможно и возможность выполнения стековой арифметики или сразу или по мере необходимости (как то, наверное, можно и этим управлять - как быстро нужен, если нужен результат стековой арифметики следующим тактом или позже) какой нибудь и AVR может для этого сгодится. (часть стэка разместить в регистрах микроконтроллера)

А, если вместо МК использовать FPGA для подобной идеи например в дополнении такой памяти к МК общего применеия
через управление по портам, то получится ли регистровый МК общего применения сделать более эффективным к выполнению
поддержки Форт кода?

P.S. Насколько жизнеспособна такая идея? (типа дополнительная микросхема к МК, как небольшой стековый "сопроцессор" управляемый из вне)
Выпускаются или выпускались, конечно, микросхемы памяти LIFO/FIFO https://www.digchip.com/datasheets/part ... 0P-pdf.php
(M66250P, M66252P может и ещё есть, но они только для организации стэковой памяти)
Сообщение Добавлено: Чт дек 10, 2020 21:42
  Заголовок сообщения:  Re: A FPGA based Forth microprocessor  Ответить с цитатой
KPG писал(а):
А, были ли какие то замеры улучшения характеристик Форт ядер от версии к версии.

Примерно вот так. Размер в ресурсах ПЛИС зависит от параметризации.


Вложения:
ForthCPU.png
ForthCPU.png [ 40.91 Кб | Просмотров: 4396 ]
Сообщение Добавлено: Ср дек 09, 2020 23:22
  Заголовок сообщения:  Re: A FPGA based Forth microprocessor  Ответить с цитатой
Hishnik писал(а):
2012 года. Оно уже устарело окончательно, даже kf532 редко применяем.

А, были ли какие то замеры улучшения характеристик Форт ядер от версии к версии.
Сообщение Добавлено: Ср дек 09, 2020 22:07
  Заголовок сообщения:  Re: A FPGA based Forth microprocessor  Ответить с цитатой
2012 года. Оно уже устарело окончательно, даже kf532 редко применяем.
Сообщение Добавлено: Чт ноя 26, 2020 00:08
  Заголовок сообщения:  Re: A FPGA based Forth microprocessor  Ответить с цитатой
KF 332 - конфигурируемое процессорное ядро

https://msyst.ru/index.php/activities/forth/114-kf-3xx

P.S. Картинки на странице пропали. :)
и нет обновления новостей.
Сообщение Добавлено: Ср ноя 25, 2020 13:33
  Заголовок сообщения:  Re: A FPGA based Forth microprocessor  Ответить с цитатой
Проект для M02mini: Процессор языка Forth в FPGA
https://marsohod.org/projects/proekt-m0 ... 0-forth-j1

Проект для M02mini: Простейший интерпретатор Forth в плате M02mini
https://marsohod.org/411-prostejshij-in ... te-m02mini
Сообщение Добавлено: Вс ноя 15, 2020 14:00

Часовой пояс: UTC + 3 часа [ Летнее время ]


Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
phpBB сборка от FladeX // Русская поддержка phpBB