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

 
 
 
Reply to this topicStart new topic
> Ожидание события процессорм, На ПЛИС надо сделать ядро с командой ожидания события
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
des00
сообщение May 24 2015, 16:51
Сообщение #2


Вечный ламер
******

Группа: Модераторы
Сообщений: 7 248
Регистрация: 18-03-05
Из: Томск
Пользователь №: 3 453



выкинуть такой процессор и заменить на программируемый секвенсер, с детерменированным поведением (см. ref design на альтере)


--------------------
Go to the top of the page
 
+Quote Post
Golikov A.
сообщение May 24 2015, 16:56
Сообщение #3


Гуру
******

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



что-то мне говорит что условные ветвления и реакции на входные воздействи не очень ложатся на работу секвенсеров, я не прав?
Go to the top of the page
 
+Quote Post
des00
сообщение May 25 2015, 05:25
Сообщение #4


Вечный ламер
******

Группа: Модераторы
Сообщений: 7 248
Регистрация: 18-03-05
Из: Томск
Пользователь №: 3 453



Цитата(Golikov A. @ May 25 2015, 00:56) *
что-то мне говорит что условные ветвления и реакции на входные воздействи не очень ложатся на работу секвенсеров, я не прав?

Все зависит от секвенсера. По сути секвесер это control path микропроца + минимальное АЛУ. Зато он полностью детеременирован. Если секвенсер самодельный, то можно вообще сделать таблицу кодирования событий, выходы которого подать на offset program counter. Тогда у вас будет минимальнейшее время на обработку событий, быстрее только КА.


--------------------
Go to the top of the page
 
+Quote Post
Golikov A.
сообщение May 25 2015, 05:50
Сообщение #5


Гуру
******

Группа: Свой
Сообщений: 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
alxkon
сообщение May 25 2015, 05:53
Сообщение #6


Частый гость
**

Группа: Участник
Сообщений: 90
Регистрация: 16-11-10
Пользователь №: 60 920



Цитата(des00 @ May 24 2015, 19:51) *
выкинуть такой процессор и заменить на программируемый секвенсер, с детерменированным поведением (см. ref design на альтере)

А Вы могли бы подкинуть ссылку на реф. дизайн, пожалуйста? На сайте Альтеры я к сожалению не нешел ничего подобного...
Go to the top of the page
 
+Quote Post
des00
сообщение May 25 2015, 06:10
Сообщение #7


Вечный ламер
******

Группа: Модераторы
Сообщений: 7 248
Регистрация: 18-03-05
Из: Томск
Пользователь №: 3 453



Цитата(Golikov A. @ May 25 2015, 12:50) *
А про секвенсеры с АЛУ где поглядеть можно? Лучше для ксалинкса, но не принципиально.


Цитата(antsu88 @ May 25 2015, 12:53) *
А Вы могли бы подкинуть ссылку на реф. дизайн, пожалуйста? На сайте Альтеры я к сожалению не нешел ничего подобного...

http://www.alterawiki.com/wiki/Avalon_State_Sequencer


--------------------
Go to the top of the page
 
+Quote Post
alxkon
сообщение May 25 2015, 06:15
Сообщение #8


Частый гость
**

Группа: Участник
Сообщений: 90
Регистрация: 16-11-10
Пользователь №: 60 920



Цитата(des00 @ May 25 2015, 09:10) *

Спасибо, я искал по "programmable sequencer" - ничего внятного не получил.
Надеюсь автору пример тоже подсобит
Go to the top of the page
 
+Quote Post

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

 


RSS Текстовая версия Сейчас: 17th June 2025 - 11:58
Рейтинг@Mail.ru


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