Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Avalon - арбитраж
Форум разработчиков электроники ELECTRONIX.ru > Программируемая логика ПЛИС (FPGA,CPLD, PLD) > Системы на ПЛИС - System on a Programmable Chip (SoPC)
DASM
Что-то совсем я тормоз. Вот вопросик такой, работает ядро, считаем там что-то из SDRAM одной (будем считать, что кеши отключены.) Еще имеется две SDRAM, и запущена DMA передача из одной в другую. Эта передача будет тормозить ядро, т.к. занимает шину или не будет ? К data master эти SDRAM подключены.
vadimuzzz
Цитата(DASM @ Mar 2 2011, 15:06) *
Эта передача будет тормозить ядро, т.к. занимает шину или не будет ? К data master эти SDRAM подключены.

должна тормозить, если шина общая
DASM
эхх... а нельзя как-нить ее "отключать" от проца на время DMA ?
vetal
Цитата
эхх... а нельзя как-нить ее "отключать" от проца на время DMA ?

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

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

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

Хотя была еще program cache, может он цикл измерения производительности и кэшировал...
DASM
ну вот у меня тоже примерно такие непонятки...
DASM
Читаю вот " 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 выходит ?
vetal
Давайте уточним - программа обращается к одной из этих двух SDRAM? Если нет - торможения не будет, если да - будет.
DASM
обращается но не в момент DMA . То есть к data master подключена, но транзакции со стороны DMA и ядра - по времени не пересекаются
vetal
Цитата
обращается но не в момент DMA .

Тогда прерываться не будет, т.к. прерывать просто некому.
Если это так важно - отключите все "лишние" прерывания, которые могут вызвать обращение к ОЗУ.
DASM
Это все понятно, я просто по аналогии с системами с одной общей шиной, решил, что если шина занята - то никто ничего сделать не может.
murmel1
В SOPC арбитраж на стороне подчиненного. Поэтому пересечения и взаимные остановки будут только при одновременном обращении двух мастеров к одному подчиненному. Пока Ниос не полезет туда же, куда и ДМА, никто его останавливать не будет.
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.