Forth
http://fforum.winglion.ru/

Мультизадачный форт-процессор: Предпосылки, идеи, обсуждение
http://fforum.winglion.ru/viewtopic.php?f=3&t=2778
Страница 2 из 2

Автор:  dynamic-wind [ Ср ноя 30, 2011 16:05 ]
Заголовок сообщения:  Re: Мультизадачный форт-процессор: Предпосылки, идеи, обсужд

На "виртуальных" ядрах можно сделать аппаратный обмен сообщениями.
Например в Форте сообщением будут несколько верхних уровней стека.
Одно ядро выполняет команду ПОСЛАТЬ, диаграмма выглядит как ( n --).
Второе ядро выполняет ПРИНЯТЬ, диаграмма выглядит как ( -- n).
Так пара команд мгновенно передает n слов от потока к потоку и обеспечивает синхронизацию.
Только нужно ещё как-то указать адресата.

Автор:  Hishnik [ Ср ноя 30, 2011 16:55 ]
Заголовок сообщения:  Re: Мультизадачный форт-процессор: Предпосылки, идеи, обсужд

dynamic-wind писал(а):
На "виртуальных" ядрах можно сделать аппаратный обмен сообщениями.
Например в Форте сообщением будут несколько верхних уровней стека.
Одно ядро выполняет команду ПОСЛАТЬ, диаграмма выглядит как ( n --).
Второе ядро выполняет ПРИНЯТЬ, диаграмма выглядит как ( -- n).
Так пара команд мгновенно передает n слов от потока к потоку и обеспечивает синхронизацию.
Только нужно ещё как-то указать адресата.

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

Автор:  WingLion [ Ср ноя 30, 2011 18:52 ]
Заголовок сообщения:  Re: Мультизадачный форт-процессор: Предпосылки, идеи, обсужд

По поводу скорости, имеет место следующие соотношения (для Альтеры).

Скорость работы чистых триггеров примерно в 2 раза выше, чем частота работы памяти.
Когда к триггерам добавляется логическое ядро процессора, скорость падает в эти самые 2 раза, поэтому скорость работы ядра процессора сравнима с рабочей частотой (но не скоростью!) работы памяти. Загнать процессор на двойную частоту памяти и подать сразу несколько команд - возможно, но сложно (не получилось с одного наскока).

Поэтому пока такой вариант откладывается в долгий ящик.

Частота памяти - это частота, с которой она выдает данные на выходе и принимает адреса на входе (синхронная память). Данные из конкретного адреса появляются через 2 такта, поэтому процессор с такой памятью требует 3 такта на один цикл (2 на память + 1 на ядро). Мультиплексировать доступ к памяти можно на ее предельной частоте, поэтому и возможна организация нескольких процессов на одном блоке памяти.

Надеюсь, что-то прояснил такой сумбурной информацией.

Память для процессоров - необходима потому что ячеек ПЛИС на все не хватит.
Я планирую для начала, что количество задач будет порядка 256. При условии, что на одноядерный вариант процессора надо порядка 300 ячеек (при нахождении стека в этих же ячейках), то на 256 процессов надо уже почти 750000 LCELL, а это уже дорого. Поэтому состояния процессов хранятся во внутренней памяти ПЛИС. Перевод их в логические ячейки нецелесообразен, или количество процессов надо серьезно ограничить.

Автор:  вопрос [ Чт дек 01, 2011 19:53 ]
Заголовок сообщения:  Re: Мультизадачный форт-процессор: Предпосылки, идеи, обсужд

Цитата:
Надеюсь, что-то прояснил такой сумбурной информацией.

В общем, можно даже так описать - есть некие комманды, которые не может микросхема выполнить за такт - подряд и потому нужно сделать очередь (замкнутую) таких комманд, чтобы такты не простаивали (не были пустыми)

и ведь такие комманды могут быть не только обращением с памятью

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

Но зато при этом многое автоматизируется и экономятся многие затраты, которые имеют место при обычной многозадачности вследствие
1. предсказуемости перехода
2. отсутствия необходимости перезагружать регистры (они у кажого ядра свои)
3. экономии на автоматизации и железной реализации процессов, связанных с очередью

Автор:  chess [ Пт дек 02, 2011 13:19 ]
Заголовок сообщения:  Re: Мультизадачный форт-процессор: Предпосылки, идеи, обсужд

вопрос писал(а):
В общем, можно даже так описать - есть некие комманды, которые не может микросхема выполнить за такт - подряд и потому нужно сделать очередь (замкнутую) таких комманд, чтобы такты не простаивали (не были пустыми)

и ведь такие комманды могут быть не только обращением с памятью

Проще всё - есть набор команд процессора, которые выполняются за один такт. Кроме них никаких команд у процессора нет.
Необходимо эмулировать систему команд определенной виртуальной машины(например фортВМ).
Часть команд для этой ВМ будут из набора команд процессора(то есть однотактные), а часть будут последовательностью
команд процессора. Все как обычно - ничего нового.

Автор:  WingLion [ Вс янв 08, 2012 13:33 ]
Заголовок сообщения:  Re: Мультизадачный форт-процессор: Предпосылки, идеи, обсужд

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

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

Поэтому мчаться и гнать схему на предельную скорость, не отработав ее хотя бы на какой-либо частоте пониже, большого смысла нет, так как время будет убито в гонках за блохами вместо решения более глобальных общих вопросов. За блохами погоняться можно и потом, когда будет ясно с главными алгоритмами.

Автор:  Hishnik [ Вс янв 08, 2012 14:19 ]
Заголовок сообщения:  Re: Мультизадачный форт-процессор: Предпосылки, идеи, обсужд

Если память оказывается медленнее, но при этом она двупортовая, можно попробовать такой эксперимент: берем тактовый генератор и вытаскиваем из него обычный и инверсный сигналы. Прямой подаем на первый порт, инверсный - на второй, получаем удвоенное количество операций.

Автор:  WingLion [ Вс янв 08, 2012 14:38 ]
Заголовок сообщения:  Re: Мультизадачный форт-процессор: Предпосылки, идеи, обсужд

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

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