реклама на сайте
подробности

 
 
> Ожидание события процессорм, На ПЛИС надо сделать ядро с командой ожидания события
Golikov A.
сообщение May 24 2015, 16:27
Сообщение #1


Гуру
******

Группа: Свой
Сообщений: 4 256
Регистрация: 17-02-06
Пользователь №: 14 454



Всем привет!
Нужно интеллектуальное усилениеsm.gif... возможно будет длинно, но не знаю как изложить короче... простите

Есть 2 исполнительных модуля, которые принимают, входные воздействия с определенной временной дискретностью 1 мкСек. Для этого на них заведен синхросигнал и все заданные до сигнала данные по фронту в обоих устройствах защелкиваются.

Есть идея ядра процессора, работающего на частоте 100 МГц, управляющего модулями. Устройства висят на его шине как периферия. Процессор без конвейера, работает так
1 такт проверка флага прерывания
1 такт выбор команды (в случае прерывания подмена на переход в обработчик)
4-12 тактов обращение в периферию или регистры (чтение операнда 1)
4-12 тактов обращение в периферию или регистры (чтение операнда 2)
2 такта декодирвание и выполнение команды
4-12 тактов обращение в перефирию или регистры (запись результата)
1 такт перестановка счетчика команд

и того на выполнение команды может уйти от 17 до 41 такта, то есть процессор имеет все возможности в 1 временной дискрет задать значение обоих модулей для обеспечения их синхронной работы. Но проблема заключается в том что может так получиться что в 1 модуль он запишет до синхросигнала, а в другой после, и модули разойдутся, начнут работать не синхронно.

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

Если эту команду сделать как и прочие, то она может быть очень долгой и ничего из нее хорошего не выйдет, фронт может случиться в начале команды, аузнаем о нем через 40 тактов, и оставшихся 60 может не хватить на задачу 2 модулей.

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

Опять же выделение особенной команды требует перенести такт декодирования команды выше чтения 2 операндов, и получается что команды становятся все разные, а это усложнит ядро процессора и сожрет все ЛУТы, сейчас же все команды отрабатываются одинаково.

В общем прошу поделиться своими мыслями, по этому вопросы. Как бы сделали вы. И так далее... мне кажется что настало время просто с кем-то поговорить, потому что все решения что я придумал мне не нравятся, не изящные они какие-то

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





Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
Golikov A.
сообщение May 25 2015, 05:50
Сообщение #2


Гуру
******

Группа: Свой
Сообщений: 4 256
Регистрация: 17-02-06
Пользователь №: 14 454



Шина имеет доступ 4-12 тактов, из-за ее организации. Некоторые модули имеют право отвечать не за 1 такт, и там нужно еще несколько тактов, на то чтобы занять интерфейс. По этой шине доступ имеется еще извне.

Раньше у меня было работа проца синхронно с тактами, по 1 команде за такт. Но там надо было одним процом олопачивать 1 модуль, и все ехало синхронно. А сейчас хочу 2 модуля на 1 проц, и протому хотел "ускорить" проц до нескольких тактов на синхросигнал, чтобы одновременно можно было задать 2 модуля.

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

А про секвенсеры с АЛУ где поглядеть можно? Лучше для ксалинкса, но не принципиально.
Go to the top of the page
 
+Quote Post



Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 8th August 2025 - 22:46
Рейтинг@Mail.ru


Страница сгенерированна за 0.01376 секунд с 7
ELECTRONIX ©2004-2016