Project

General

Profile

Краткое описание организации исполнения параграфов для процессора MultiClet P1.

Выполнение параграфа процессором P1 включает в себя следующие параллельные процессы:
  • Выборка команд.
  • Исполнение команд клетками.

Процесс выборки команд начинается сразу после того, как стал известен адрес начала очередного параграфа и выполнены все команды записи в текущем параграфе. Он протекает независимо от процесса исполнения команд клетками до тех пор, пока весь параграф не будет выбран. Память программ организована таким образом, что команды каждого параграфа последовательно распределяются между клетками на этапе компиляции. Таким образом первая команда каждого параграфа всегда выполняется первой клеткой, вторая команда — второй клеткой, пятая команда — снова 1 клеткой и тд. На каждом такте все клетки одновременно выбирают по одной команде. Выбранные команды размещаются в буферах команд клеток.
Исполнение команд клетками происходит по мере готовности их аргументов и исполнительных устройств. Т.е. команда будет извлечена из буфера и отправлена в исполнительное устройство, если готовы аргументы команды и выбраны все команды, которые используют результат исполняемой команды. После того, как клеткой достигнут конец параграфа, она не может приступить к исполнению следующего до тех пор, пока не будет закончена запись в регистры, а также в память, если опция контроля очередности чтения — записи не отключена.

Рекомендации по структурной организации параграфов.

  1. В начале параграфа следует собирать команды, аргументы которых не содержат ссылок в коммутатор.
  2. Соседние команды не должны зависеть друг от друга, в противном случае велика вероятность того, что соответствующие клетки перейдут к исполнению этих команд одновременно, однако одна из клеток будет вынуждена ожидать результата от другой клетки. Рекомендуется по возможности избегать ссылок, длиной менее четырёх.
  3. Команды перехода размещать в параграфе как можно раньше, что позволит производить выборку команд с максимальным опережением. Таким образом исключается задержка в исполнении команд клетками по причине ожидания выборки команд, потребляющих результат текущей операции.
  4. Размещать команды записи в регистр как можно раньше наряду с командами перехода, поскольку невыполненные команды записи в регистр препятствуют выборке очередного параграфа. Избегать неоправданно частой записи в регистры.
  5. Писать как можно большими параграфами, что позволит минимизировать простои, связанные с ожиданием записей в регистры по окончанию параграфа, и контролем очередности чтения записи в память.
  6. Организовывать доступ к памяти с учётом особенностей её организации. Одновременная работа клеток с памятью допускается, только если выполняются обращения производятся к различным блокам памяти данных (см. «Руководство пользователя. Программное обеспечение мультиклеточного процессора MultiClet P1», раздел 4.1.2). В противном случае доступ к памяти будет осуществляться поочередно, что приведет к дополнительным задержкам.
  7. Избегать чрезмерно длинных ссылок. Использование таких ссылок приведет к простоям в работе клеток при выполнении команды, на которую указывает ссылка, если команды будут выбираться с недостаточным опережением.