Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Burst Read для Avalon MM Slave
Форум разработчиков электроники ELECTRONIX.ru > Программируемая логика ПЛИС (FPGA,CPLD, PLD) > Системы на ПЛИС - System on a Programmable Chip (SoPC)
Kuzmi4
Здравствуйте.

Есть периферия - Memory-Mapped Slave - и есть процессор - нужно считаь данные с неё.
Есть 2 варианта - читать процесором , тобто макросами IODR - но так тогда будет долго, или можно организовать Burst transfer (раздел 3.5.4 спецификации Avalon).
Диаграмма даботы в Burst моде такова:
Нажмите для просмотра прикрепленного файла
Тут всё понятно вроде. Реализовать это будет не трудно.
НО есть вопрос - как мне в моей программе врубить этот самый Burst ?

В принципе в разделе 3.5.4.3. Line–Wrapped Bursts я наткнулся на интересный момент с кешем и процессором. На сколько я понял процессор организует Burst , когда у него есть кеш и её надо заполнить данными - ну типа как примерв 3.5.4.3 с чтением в дата-кеш.
То есть Burst возможен только для процессоров с кешем, чтоб заливать туда данные - так? И как его стартануть для выборки именно моих данных и менно всего кол-ва за раз ??
torik
Что значит считать данные-то, просто переписать из памяти в память? Тогда нужен DMA, который ранее уже, насколько помню, обсуждался с вашим же участием.
Kuzmi4
2 torik - понимаете, зачем городить DMA, если процессор сам может взять всё и переписать за 1 обращение в Burst моде sad.gif
Пока читая литературу не нашёл как можно принудительно заставить его стартануть Burst моду и прочитать что-то.
В принципе есть размышления по этому вопросу - на сколько я понял из раздела 3.5.4.3. Line–Wrapped Bursts спецификации авалона, то пока единственным вариантом, когда он может стартануть - это когда есть датакеш и ему надо заполнить линию - тогда он в Burst моде обращается к периферии и считывает столько байт сколько ему нужно для заполнения линии кеша. Вот...
То есть нужно чтобы я сделал дата-кеш равным объёму данных, которые нужно трансферить и перед трансфером очищать кеш полностью - вот пока единственный вариант который образовался в голове в результате размышлений.
help.gif
vetal
В процессоре с кэшем при включенной аппаратной поддержке burst режима для шины данных burst циклы будут всегда при общении с памятью.
Kuzmi4
2 vetal - ага , спасибо - я так в принципе и думал. А как указать чтоб за 1 Burst подход так сказать, процессор прочитал определённое кол-во байт? И если нельзя , то как он выбирает сколько ему нужно за 1 Burst присест прочитать ? Чтоб заполнить линию данных кеша ?
vetal
Цитата
А как указать чтоб за 1 Burst подход так сказать, процессор прочитал определённое кол-во байт?

Это выставляется статично и зависит от длины линии кэша.

Цитата
И если нельзя , то как он выбирает сколько ему нужно за 1 Burst присест прочитать ?

Аппарат выгрузит/загрузит все, даже если вы запросите 1 байт - будет читаться массив, размером с линию. В документации описано в каком порядке будут вычитываться данные.

По моему вы идете по неверному пути smile.gif Если высокие требования по быстродействию подсистемы память-периферия, то нужно либо ставить DMA контроллер, либо учить периферию самостоятельно выгружать нужные данные из памяти.
Kuzmi4
2 vetal - спасибо.
Вырисовалась вроде картинка - или играться с кешем, или дма или мастер на выгрузку данных (тогда тут надо будет есчё ввести 2-а 32-х битных регистра - адрес начал и кол-во байт - ну как в дма)- то есть сделать эдакий свой дма внутри.
torik
Собственно, я об этом и старался сказать изначально. Зато ниос можно будет упростить сильно, дабы снизить потребление и занимаемые ресурсы...
Kuzmi4
2 torik - всмысле занимаемые ресурсы? По моему, минимальные ресурсы будут в варианте, когда я с кешем играться буду - никаких тебе дма и встроенных мастеров..
torik
Да ПДП места занимает копейки. а ниос можно "ужать" более чем на тыщу цифер...
Kuzmi4
2 torik - аа.. ну с этим я не поспорю конечно. Я просто отталкивался от того что у меня проц Full.
Хотя кеша иногда помогает жонглировать с циферками в проге biggrin.gif
torik
Kuzmi4, вынужден также признать, что просто жадность и желание наворотить не позволят упростить ниос... smile.gif
Kuzmi4
2 torik
+1 biggrin.gif
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.