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

 
 
 
Reply to this topicStart new topic
> Avalon - арбитраж
DASM
сообщение Mar 2 2011, 09:06
Сообщение #1


Гуру
******

Группа: Свой
Сообщений: 3 644
Регистрация: 28-05-05
Пользователь №: 5 493



Что-то совсем я тормоз. Вот вопросик такой, работает ядро, считаем там что-то из SDRAM одной (будем считать, что кеши отключены.) Еще имеется две SDRAM, и запущена DMA передача из одной в другую. Эта передача будет тормозить ядро, т.к. занимает шину или не будет ? К data master эти SDRAM подключены.
Go to the top of the page
 
+Quote Post
vadimuzzz
сообщение Mar 2 2011, 09:17
Сообщение #2


Гуру
******

Группа: Свой
Сообщений: 2 291
Регистрация: 21-07-05
Пользователь №: 6 988



Цитата(DASM @ Mar 2 2011, 15:06) *
Эта передача будет тормозить ядро, т.к. занимает шину или не будет ? К data master эти SDRAM подключены.

должна тормозить, если шина общая
Go to the top of the page
 
+Quote Post
DASM
сообщение Mar 2 2011, 09:31
Сообщение #3


Гуру
******

Группа: Свой
Сообщений: 3 644
Регистрация: 28-05-05
Пользователь №: 5 493



эхх... а нельзя как-нить ее "отключать" от проца на время DMA ?
Go to the top of the page
 
+Quote Post
vetal
сообщение Mar 2 2011, 09:38
Сообщение #4


Гуру
******

Группа: Модераторы
Сообщений: 2 095
Регистрация: 27-08-04
Из: Россия, СПб
Пользователь №: 553



Цитата
эхх... а нельзя как-нить ее "отключать" от проца на время DMA ?

Если DMA свой, то arbiter lock заблокирует шину на всю транзакцию.
Go to the top of the page
 
+Quote Post
DASM
сообщение Mar 2 2011, 09:41
Сообщение #5


Гуру
******

Группа: Свой
Сообщений: 3 644
Регистрация: 28-05-05
Пользователь №: 5 493



и проц не сможет вообще ничего делать по data bus ? А ниизя какую-нить шину дополнительную между этими двумя SDRAM проложить, чтобы пока проц не нужен и идет DMA отключать их ШД проца, а по окончании DMA мультиплексировать ее назад к процу ?
Go to the top of the page
 
+Quote Post
vadimuzzz
сообщение Mar 2 2011, 09:52
Сообщение #6


Гуру
******

Группа: Свой
Сообщений: 2 291
Регистрация: 21-07-05
Пользователь №: 6 988



Цитата(DASM @ Mar 2 2011, 15:41) *
А ниизя какую-нить шину дополнительную между этими двумя SDRAM проложить, чтобы пока проц не нужен и идет DMA отключать их ШД проца, а по окончании DMA мультиплексировать ее назад к процу ?

пожалуй, можно сделать что-то типа моста для data master, который будет отключать этот участок шины для проца на время транзакции.
Go to the top of the page
 
+Quote Post
vetal
сообщение Mar 2 2011, 09:52
Сообщение #7


Гуру
******

Группа: Модераторы
Сообщений: 2 095
Регистрация: 27-08-04
Из: Россия, СПб
Пользователь №: 553



По простому - нет. Разве что в настройках арбитража соединения указать максимально возможный интервал(View->Show Arbitration)
Go to the top of the page
 
+Quote Post
alexPec
сообщение Mar 2 2011, 10:50
Сообщение #8


Профессионал
*****

Группа: Свой
Сообщений: 1 284
Регистрация: 9-04-06
Пользователь №: 15 968



Цитата(DASM @ Mar 2 2011, 12:41) *
и проц не сможет вообще ничего делать по data bus ? А ниизя какую-нить шину дополнительную между этими двумя SDRAM проложить, чтобы пока проц не нужен и идет DMA отключать их ШД проца, а по окончании DMA мультиплексировать ее назад к процу ?

В памяти после прочтения полгода назад про шины ниос осталось такое: было написано, что не надо бездумно соединять все устройства со всеми, поскольку для устройств ниос формирует несколько шин, чтобы максимизировать производительность системы.Так что в моем понимании прочитанного можно несколько шин сформировать, но на практике не пробовал. Хотя собирал систему, где проц, внутренняя память и внешняя память сидели на одной шине. Прога была во внутренней памяти. Измерял производительность процессора до включения DMA из внешней памяти в контроллер LCD и после (DMA на той же шине висел - все было на одной шине). Производительность не изменилась никак. В моем понимании если бы шина физически была одна, на время транзакции внешняяSRAM ->DMA->LCD шина должна бы забиться и исполнение команд из внутренней памяти приостановиться. А так похоже по отдельным шинам прокачивалось. На LCD шел поток 10 МБ/с, частота проца 80 МГц. Должно было повлиять на производительность, хоть на 5-10%, но не повлияло.

Хотя была еще program cache, может он цикл измерения производительности и кэшировал...
Go to the top of the page
 
+Quote Post
DASM
сообщение Mar 2 2011, 11:18
Сообщение #9


Гуру
******

Группа: Свой
Сообщений: 3 644
Регистрация: 28-05-05
Пользователь №: 5 493



ну вот у меня тоже примерно такие непонятки...
Go to the top of the page
 
+Quote Post
DASM
сообщение Mar 2 2011, 12:28
Сообщение #10


Гуру
******

Группа: Свой
Сообщений: 3 644
Регистрация: 28-05-05
Пользователь №: 5 493



Читаю вот " Unlike traditional
host-side arbitration architectures where each master must wait until it is granted
access to the shared bus, multiple Avalon-MM masters can simultaneously
perform transfers with independent slaves. Arbitration logic stalls a master only
when multiple masters attempt to access the same slave during the same cycle" То есть все OK выходит ?
Go to the top of the page
 
+Quote Post
vetal
сообщение Mar 2 2011, 14:32
Сообщение #11


Гуру
******

Группа: Модераторы
Сообщений: 2 095
Регистрация: 27-08-04
Из: Россия, СПб
Пользователь №: 553



Давайте уточним - программа обращается к одной из этих двух SDRAM? Если нет - торможения не будет, если да - будет.
Go to the top of the page
 
+Quote Post
DASM
сообщение Mar 2 2011, 15:34
Сообщение #12


Гуру
******

Группа: Свой
Сообщений: 3 644
Регистрация: 28-05-05
Пользователь №: 5 493



обращается но не в момент DMA . То есть к data master подключена, но транзакции со стороны DMA и ядра - по времени не пересекаются
Go to the top of the page
 
+Quote Post
vetal
сообщение Mar 2 2011, 16:19
Сообщение #13


Гуру
******

Группа: Модераторы
Сообщений: 2 095
Регистрация: 27-08-04
Из: Россия, СПб
Пользователь №: 553



Цитата
обращается но не в момент DMA .

Тогда прерываться не будет, т.к. прерывать просто некому.
Если это так важно - отключите все "лишние" прерывания, которые могут вызвать обращение к ОЗУ.
Go to the top of the page
 
+Quote Post
DASM
сообщение Mar 3 2011, 07:57
Сообщение #14


Гуру
******

Группа: Свой
Сообщений: 3 644
Регистрация: 28-05-05
Пользователь №: 5 493



Это все понятно, я просто по аналогии с системами с одной общей шиной, решил, что если шина занята - то никто ничего сделать не может.
Go to the top of the page
 
+Quote Post
murmel1
сообщение Mar 4 2011, 18:45
Сообщение #15


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

Группа: Свой
Сообщений: 166
Регистрация: 2-11-08
Из: Ростов-на-Дону
Пользователь №: 41 331



В SOPC арбитраж на стороне подчиненного. Поэтому пересечения и взаимные остановки будут только при одновременном обращении двух мастеров к одному подчиненному. Пока Ниос не полезет туда же, куда и ДМА, никто его останавливать не будет.
Go to the top of the page
 
+Quote Post

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

 


RSS Текстовая версия Сейчас: 21st July 2025 - 06:11
Рейтинг@Mail.ru


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