Forth и другие саморасширяющиеся системы программирования Locations of visitors to this page
Текущее время: Вс дек 16, 2018 20:55

...
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  Ответить с цитатой
KPG писал(а):
Насколько формат подобной упаковки процессорных Форт команд позволяет проводить локальные действия по ускорению кода?

Однозначного ответа тут нет. Формат команды тесно связан с микроархитектурой процессора. Можно ведь такого накрутить, что схема станет медленнее просто из-за необходимости разобраться в сложной команде с разной ролью одних и тех же битов в разных случаях.
Сообщение Добавлено: Вс июн 24, 2018 21:22
  Заголовок сообщения:  Re: A FPGA based Forth microprocessor  Ответить с цитатой
QUARK

QUARK is a simple dual-stack CPU instruction set architecture (ISA) that can be extended.
QUARK uses Head-and-tail instruction format, described in Hedi01.pdf

Насколько формат подобной упаковки процессорных Форт команд позволяет проводить локальные действия по ускорению кода?
Сообщение Добавлено: Вс июн 24, 2018 14:36
  Заголовок сообщения:  Re: A FPGA based Forth microprocessor  Ответить с цитатой
KPG писал(а):
Социальные сети обсуждения, зачастую, все такие. Автор "тянет" лямку один в этом проекте.

Тогда нам-то это зачем? :D

KPG писал(а):
А в чём несамостоятельная ценность Форт?

Ценность у него появляется в составе проекта, когда Форт или форт-процессор позволяют эффективно решать конкретные технические задачи. Под задачами я имею в виду не только и не столько "вывести в порт", сколько достижение определенных характеристик в плане размера проекта, требуемого объема памяти, интеграции в систему и общий маршрут проектирования. В этих вопросах Форт показывает себя как раз хорошо. Когда же на Форте делается "как и везде, но на Форте", резонный встречный вопрос "ну и чем вам не нравилось как и везде?". Если изначально не ставилась задача сделать не как везде, а в чем-то лучше, то очередная форт-поделка будет благополучно похоронена и удостоится разве что ностальгических воспоминаний вида "да-да, я тоже в 198x году что-то подобное делал".

KPG писал(а):
P.S. Чем, по существу, плох данный проект?

Разбираем "общий вид".

1. Адрес 13 бит и это жестко задано в системе команд. Т.е. больше 16 к ячеек он адресовать не может. Это уровень embedded-устройства.
2. 16 бит - опять же embedded. При этом что-то из периферии даже в embedded сейчас ориентировано на обмен 32-битными данными. Общая тенденция - 16-битные системы заменяются на 8-битные с целью удешевления и снижения потребления или 32-битные, поскольку добавка в цене невысока, а средства программирования удобнее.
3. Нет умножения (если добавить умножение, частота упадет, да) - это именно чтобы сохранить частоту на 100+ МГц (зачем? кто просит именно высокой частоты, кроме общих соображений "я сделал быстрый процессор"?), или ориентация на простые операции с манипулированием данными без особенной обработки.
4. Стек возвратов 64 ячейки - зачем это в embedded (см. выше - характеристики выглядят как embedded).
5. Стек переменных на 65 ячеек - это вообще что? Так назван стек данных?
6. Нет вычитания, потребуется эмуляция через инверсию и инкремент. При этом синтезатор в ISE прекрасно строит комбинированный элемент adder/subtractor, так что вычитание лишних ресурсов не требует.
7. Система прерываний просто скопирована с решений общего характера. Не решена проблема обработки нескольких одновременно приходящих запросов, хотя именно это является сильной стороной FPGA-решений и софт-процессоров.
8. Сброс асинхронный - человек не в теме. Spartan-6 такое может быть и позволит с точки зрения запуска на чипе, но хотя бы в базовых вещах писать надо с учетом требований элементной базы.

0. Что на этом сделано, кроме демонстрации работы периферии? Или сделать должны мифические последователи, которые бились-бились без этого процессора, а он им вдруг раскрыл глаза, и все сразу стало хорошо? Если автор не знает, куда его применить, или у него нет каких-то реальных запросов (уровня "вот есть датчик, надо его показания вывести на VGA-монитор"), проект можно считать в лучшем случае тренировкой в проектировании.
Сообщение Добавлено: Пт май 04, 2018 15:43
  Заголовок сообщения:  Re: A FPGA based Forth microprocessor  Ответить с цитатой
Hishnik писал(а):
Подобный процессор "проще написать самому, чем разобраться в этом".

Что и продемонстрировано в частном проекте на Github. В чём противоречие?
Hishnik писал(а):
Комментарии довольно показательные - вместо преобладания вопросов "а как на нем сделать...", все умиляются очередному музейному экспонату.

Социальные сети обсуждения, зачастую, все такие. Автор "тянет" лямку один в этом проекте. :)
Постов, на этом ресурсе с тегом Forth достаточно мало, что бы делать какие то выводы о целевой группе заинтересовавшихся людей.
Hishnik писал(а):
Происходит такое потому, что Форт представляется в виде религиозного фетиша и ему приписывается самостоятельная ценность. Вроде бы сделали что-то с приставкой "форт-", и тут же сотни последователей должны подхватить идею и написать тысячи библиотек и проектов.

А в чём несамостоятельная ценность Форт?
Hishnik писал(а):
Вместо этого форт-процессор должен разрабатываться как ответ на поставленные задачи проектирования, при условии, что сами задачи формулируются с прицелом на Форт. И там уж сколько будет разрядов, где стек, какие команды, какая шина - это все становится предметом обсуждения, и получиться должно так, чтобы с этим потом было максимально удобно работать.

А, если и такое решение перекрывает предполагаемые потребности? Автор дурак?
Книг по проектированию "правильных" Forth CPU всё равно нет.

P.S. Чем, по существу, плох данный проект?
Генератор бредовых ответов - OFF :)
Сообщение Добавлено: Пт май 04, 2018 15:19
  Заголовок сообщения:  Re: A FPGA based Forth microprocessor  Ответить с цитатой
Подобный процессор "проще написать самому, чем разобраться в этом". Комментарии довольно показательные - вместо преобладания вопросов "а как на нем сделать...", все умиляются очередному музейному экспонату. Происходит такое потому, что Форт представляется в виде религиозного фетиша и ему приписывается самостоятельная ценность. Вроде бы сделали что-то с приставкой "форт-", и тут же сотни последователей должны подхватить идею и написать тысячи библиотек и проектов. Вместо этого форт-процессор должен разрабатываться как ответ на поставленные задачи проектирования, при условии, что сами задачи формулируются с прицелом на Форт. И там уж сколько будет разрядов, где стек, какие команды, какая шина - это все становится предметом обсуждения, и получиться должно так, чтобы с этим потом было максимально удобно работать.
Сообщение Добавлено: Пт май 04, 2018 14:57
  Заголовок сообщения:  Re: A FPGA based Forth microprocessor  Ответить с цитатой
+ Ещё один Форт ЦПУ на Github

P.S.Обсуждение на площадке hackaday February 22, 2018
Сообщение Добавлено: Пт май 04, 2018 11:24
  Заголовок сообщения:  Re: A FPGA based Forth microprocessor  Ответить с цитатой
Нет, не очень интересно.

Цитата:
Обе эти крайности имеют существенные изъяны: в случае стека фиксированного размера, мы имеем проблемы с компилятором и/или операционной системой, которые обязаны думать о том, что произойдет, если стек переполнится или опустеет и как отработать соответствующее прерывание.

Это уже выглядит явной натяжкой, вокруг которой начинают строиться дальнейшие рассуждения. А почему вдруг аппаратный стек должен внезапно кончаться? Это вобщем-то аварийная ситуация, которая не должна возникать при корректно написанной программе. Что касается переполнения, то стеки, выделяемые современными компиляторами, теоретически тоже могут переполниться - они же не бесконечные. Но что-то никто не делает из этого глобальную проблему.

Цитата:
в результате мы имеем непредсказуемое поведение программы, не позволяющее использовать такой процессор, например, в системах реального времени,


Черт... у меня многолетние комплексные галлюцинации? :D Стек - это ведь не обезьяна с гранатой, хаотично меняющий глубину. Обычно работа со стеком идет по принципу "положили - посчитали - записали", и числа на нем не копятся. Всяческие глубокие рекурсии - это уже экзотика, а вложенные вызовы вполне можно контролировать компилятором. В ebmedded не переполняются не то что 32 ячейки, а даже и 16. В PC стек то ли 1024, то ли 4096, и его переполнение - это практически однозначно результат некорректной программы.

Далее, прерывание. Ну а что в нем, собственно, такого страшного? Да, вызывали прерывание и сбросили стек в память, если уж особенности работы таковы, что на стеке копится много чисел. Но не помню, чтобы это хоть раз пригодилось.

В остальном статьи написаны исключительно с точки зрения программиста и программной модели. Оно, конечно, чуть лучше, чем от лица схемотехника. игнорирующего компилятор и его проблемы, но еще лучше - рассматривать процесс разработки в комплексе, учитывая особенности используемой аппаратной платформы. Это не так просто (иначе мы бы каждую неделю читали про очередную революционную архитектуру, "гораздо лучше, чем все, что было до нас".
Сообщение Добавлено: Вт май 01, 2018 17:26
  Заголовок сообщения:  Re: A FPGA based Forth microprocessor  Ответить с цитатой
Не совсем FPGA (скорее совсем не FPGA, но кто знает)
Цикл статей на хабрахбр (2016г):
Суперскалярный стековый процессор: скрещиваем ужа и ежа
Суперскалярный стековый процессор: продолжаем скрещивать ужа и ежа
Суперскалярный стековый процессор: подробности
Суперскалярный стековый процессор: оптимизация

Код:
...
Эпилог

Вот мы и подошли к предварительному финишу.
Разобрались почему нужно новая архитектура, предложили вариант решения.
Изначально стоял вопрос, а отвечает ли эта архитектура поставленным требованиям.
И теперь можем ответить, да, по крайней мере в той небольшой части С, которую удалось проверить, мы получили

    ожидаемое упрощение аппаратной части
    внешне незаметную масштабируемость по числу регистров
    а также и по числу функциональных устройств
    потенциальное упрощение компиляторов

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

Мы намеренно не рассматривали такие вещи, как:

    вычисления с плавающей точкой, нужен ли для них отдельный стек, ...
    сохранение состояния процессора при переключении контекста
    прерывания
    ...

Всё это вопросы важные, но менее принципиальные.
А на данный момент автор считает свою задачу выполненной.
Сообщение Добавлено: Вт май 01, 2018 15:18
  Заголовок сообщения:  Re: A FPGA based Forth microprocessor  Ответить с цитатой
Видео
N.I.G.E. Machine design

P.S. На видео ещё Nexus2 плата. У меня такая пылится без дела :) (почти раритет)
Можно попробовать "оживить"
Репозиторий проекта но похоже уже на Nexus4

Mark 1 FORTH Computer :)
A Forth-like CPU

Статья
Forth CPU. Что это такое? (Часть 1)
Forth CPU. Что это такое? (Часть 2)
Сообщение Добавлено: Ср мар 14, 2018 03:34
  Заголовок сообщения:  Re: A FPGA based Forth microprocessor  Ответить с цитатой
KPG писал(а):
Похоже уже почти "любой" процессор можно уложить в современные FPGA

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

KPG писал(а):
P.S. Может имеет смысл данный топик дополнить известными реализациями софт Форт процессоров?
(типа MicroCore, b16 и других).

Ну разве что если кому-то будет интересно. Но ПЛИС развиваются, смещаются приоритеты, поэтому тот же b16 уже мало интересен. В форт-процессоре интересны не какие-то "суперспособности", а (с точки зрения ПЛИС) компактный код, потому что памяти на кристалле маловато, а за пределами кристалла - много вопросов с трассировкой печатной платы. Достигать максимальной частоты для ПЛИС тоже не так важно, потому что "кремниевый" процессор все равно не догнать, да и параллельные ресурсы ПЛИС тоже не догнать. Поэтому смысл софт-процессора в составе проекта на ПЛИС в основном заключается в том, чтобы избавиться от постоянных итераций переписывания кода на HDL, вызывающих для больших ПЛИС многочасовые синтез+трассировку проекта. Как от этого избавиться? Разделить проект на аппаратную (настраиваемую) часть и программную, которая собственно все это и настраивает. Настройкой занимается софт-процессор, а основной работой - аппаратные компоненты. С процессором изменение схемы ради мелких нюансов заменяется на программирование софт-процессора.

Можно сделать еще один шаг - в ряде случаев заменить постоянные перекомпиляции-программирование на посылку управляющих кодов, которые для Форта внутри системы легко можно расширить до текстовых команд, которые существенно проще для использования - просто потому, что голова часто занята уже проблемами проекта, а не какими-то синтаксическими правилами в стиле "да тут все просто, надо только привыкнуть и избавиться от барьеров в голове". Надо сказать, что голова в таких проектах занята схемами и проблемами предметной области, а не синтаксисом языка, используемого для вспомогательного "настройщика аппаратуры" :)
Сообщение Добавлено: Ср мар 14, 2018 02:59
  Заголовок сообщения:  Re: A FPGA based Forth microprocessor  Ответить с цитатой
Похоже уже почти "любой" процессор можно уложить в современные FPGA :)
Propeller ядро на DEO Nano от разработчика кристалов данной архитекуры

P.S. Может имеет смысл данный топик дополнить известными реализациями софт Форт процессоров?
(типа MicroCore, b16 и других).
Сообщение Добавлено: Ср мар 14, 2018 02:38
  Заголовок сообщения:  Re: A FPGA based Forth microprocessor  Ответить с цитатой
В конце страницы по ссылке есть таблица с частотами. Частоты, правда, после трассировки, но тут надо, тем не менее, сделать поправку на то, что процессор в ПЛИС не висит в воздухе, а с чем-то взаимодействует. По описанию процессор "переконвейеризирован" - у него CPI 3-6. То есть по сравнению с однотактным циклом мы все равно выходим на 80-150, что в целом характерно для ПЛИС, в которой пара регистров замкнута на себя через АЛУ. Максимальные частоты в ПЛИС достигаются путем тщательного отслеживания logic levels - чтобы ни одно выражение не строилось путем последовательного включения нескольких LUT. Но это сложно на практике, что и видно в PicoRV - там даже АЛУ с конвейером. В итоге это положить в ПЛИС, конечно, можно, но боюсь, что пользоваться будет не так однозначно.
Сообщение Добавлено: Ср мар 14, 2018 01:51
  Заголовок сообщения:  Re: A FPGA based Forth microprocessor  Ответить с цитатой
Видимо, 250. В серии 7 есть разделение по подклассам техпроцессов, где Artix - это недорого, умеренно потребляющее и умеренно быстрое, а Kintex и Virtex - быстро, дорого и достаточно горячо. Однако нужно делать поправку на трассировку всего проекта, где частота, показанная синтезатором, может еще упасть из-за подключения к ядру процессора растянутой по кристаллу периферии.
Сообщение Добавлено: Вт мар 13, 2018 23:31
  Заголовок сообщения:  Re: A FPGA based Forth microprocessor  Ответить с цитатой
Hackaday
Open Source FPGA Toolchain Builds CPU J1A CPU for the iCEstick and HX8K development boards.(James Bowman)

P..S. Интересно, а какие примерно частоты синтезированного процессора можно получить, например,
на плате Artix-7 35T Arty FPGA Evaluation Kit?
Здесь для проекта PicoRV32 - A Size-Optimized RISC-V CPU указаны 250-450 MHz on 7-Series Xilinx FPGAs
Сообщение Добавлено: Вт мар 13, 2018 23:18
  Заголовок сообщения:  Re: A FPGA based Forth microprocessor  Ответить с цитатой
Статья на xabraxabr от 14 июля 2014г.
Микроконтроллер своими руками
Сообщение Добавлено: Вт сен 16, 2014 18:52

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


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