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

 
 
 
Reply to this topicStart new topic
> Burst Read для Avalon MM Slave
Kuzmi4
сообщение Jul 5 2008, 09:05
Сообщение #1


Гуру
******

Группа: Свой
Сообщений: 3 304
Регистрация: 13-02-07
Из: 55°55′5″ 37°52′16″
Пользователь №: 25 329



Здравствуйте.

Есть периферия - 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 возможен только для процессоров с кешем, чтоб заливать туда данные - так? И как его стартануть для выборки именно моих данных и менно всего кол-ва за раз ??
Go to the top of the page
 
+Quote Post
torik
сообщение Jul 7 2008, 04:48
Сообщение #2


Гуру
******

Группа: Свой
Сообщений: 2 113
Регистрация: 1-11-05
Пользователь №: 10 359



Что значит считать данные-то, просто переписать из памяти в память? Тогда нужен DMA, который ранее уже, насколько помню, обсуждался с вашим же участием.


--------------------
Быть. torizin-liteha@yandex.ru
Go to the top of the page
 
+Quote Post
Kuzmi4
сообщение Jul 7 2008, 08:15
Сообщение #3


Гуру
******

Группа: Свой
Сообщений: 3 304
Регистрация: 13-02-07
Из: 55°55′5″ 37°52′16″
Пользователь №: 25 329



2 torik - понимаете, зачем городить DMA, если процессор сам может взять всё и переписать за 1 обращение в Burst моде sad.gif
Пока читая литературу не нашёл как можно принудительно заставить его стартануть Burst моду и прочитать что-то.
В принципе есть размышления по этому вопросу - на сколько я понял из раздела 3.5.4.3. Line–Wrapped Bursts спецификации авалона, то пока единственным вариантом, когда он может стартануть - это когда есть датакеш и ему надо заполнить линию - тогда он в Burst моде обращается к периферии и считывает столько байт сколько ему нужно для заполнения линии кеша. Вот...
То есть нужно чтобы я сделал дата-кеш равным объёму данных, которые нужно трансферить и перед трансфером очищать кеш полностью - вот пока единственный вариант который образовался в голове в результате размышлений.
help.gif
Go to the top of the page
 
+Quote Post
vetal
сообщение Jul 7 2008, 08:56
Сообщение #4


Гуру
******

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



В процессоре с кэшем при включенной аппаратной поддержке burst режима для шины данных burst циклы будут всегда при общении с памятью.
Go to the top of the page
 
+Quote Post
Kuzmi4
сообщение Jul 7 2008, 09:10
Сообщение #5


Гуру
******

Группа: Свой
Сообщений: 3 304
Регистрация: 13-02-07
Из: 55°55′5″ 37°52′16″
Пользователь №: 25 329



2 vetal - ага , спасибо - я так в принципе и думал. А как указать чтоб за 1 Burst подход так сказать, процессор прочитал определённое кол-во байт? И если нельзя , то как он выбирает сколько ему нужно за 1 Burst присест прочитать ? Чтоб заполнить линию данных кеша ?
Go to the top of the page
 
+Quote Post
vetal
сообщение Jul 7 2008, 10:15
Сообщение #6


Гуру
******

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



Цитата
А как указать чтоб за 1 Burst подход так сказать, процессор прочитал определённое кол-во байт?

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

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

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

По моему вы идете по неверному пути smile.gif Если высокие требования по быстродействию подсистемы память-периферия, то нужно либо ставить DMA контроллер, либо учить периферию самостоятельно выгружать нужные данные из памяти.
Go to the top of the page
 
+Quote Post
Kuzmi4
сообщение Jul 7 2008, 12:01
Сообщение #7


Гуру
******

Группа: Свой
Сообщений: 3 304
Регистрация: 13-02-07
Из: 55°55′5″ 37°52′16″
Пользователь №: 25 329



2 vetal - спасибо.
Вырисовалась вроде картинка - или играться с кешем, или дма или мастер на выгрузку данных (тогда тут надо будет есчё ввести 2-а 32-х битных регистра - адрес начал и кол-во байт - ну как в дма)- то есть сделать эдакий свой дма внутри.
Go to the top of the page
 
+Quote Post
torik
сообщение Jul 7 2008, 12:34
Сообщение #8


Гуру
******

Группа: Свой
Сообщений: 2 113
Регистрация: 1-11-05
Пользователь №: 10 359



Собственно, я об этом и старался сказать изначально. Зато ниос можно будет упростить сильно, дабы снизить потребление и занимаемые ресурсы...


--------------------
Быть. torizin-liteha@yandex.ru
Go to the top of the page
 
+Quote Post
Kuzmi4
сообщение Jul 8 2008, 07:41
Сообщение #9


Гуру
******

Группа: Свой
Сообщений: 3 304
Регистрация: 13-02-07
Из: 55°55′5″ 37°52′16″
Пользователь №: 25 329



2 torik - всмысле занимаемые ресурсы? По моему, минимальные ресурсы будут в варианте, когда я с кешем играться буду - никаких тебе дма и встроенных мастеров..
Go to the top of the page
 
+Quote Post
torik
сообщение Jul 8 2008, 12:46
Сообщение #10


Гуру
******

Группа: Свой
Сообщений: 2 113
Регистрация: 1-11-05
Пользователь №: 10 359



Да ПДП места занимает копейки. а ниос можно "ужать" более чем на тыщу цифер...


--------------------
Быть. torizin-liteha@yandex.ru
Go to the top of the page
 
+Quote Post
Kuzmi4
сообщение Jul 8 2008, 14:27
Сообщение #11


Гуру
******

Группа: Свой
Сообщений: 3 304
Регистрация: 13-02-07
Из: 55°55′5″ 37°52′16″
Пользователь №: 25 329



2 torik - аа.. ну с этим я не поспорю конечно. Я просто отталкивался от того что у меня проц Full.
Хотя кеша иногда помогает жонглировать с циферками в проге biggrin.gif
Go to the top of the page
 
+Quote Post
torik
сообщение Jul 9 2008, 06:30
Сообщение #12


Гуру
******

Группа: Свой
Сообщений: 2 113
Регистрация: 1-11-05
Пользователь №: 10 359



Kuzmi4, вынужден также признать, что просто жадность и желание наворотить не позволят упростить ниос... smile.gif


--------------------
Быть. torizin-liteha@yandex.ru
Go to the top of the page
 
+Quote Post
Kuzmi4
сообщение Jul 9 2008, 07:14
Сообщение #13


Гуру
******

Группа: Свой
Сообщений: 3 304
Регистрация: 13-02-07
Из: 55°55′5″ 37°52′16″
Пользователь №: 25 329



2 torik
+1 biggrin.gif
Go to the top of the page
 
+Quote Post

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

 


RSS Текстовая версия Сейчас: 22nd July 2025 - 10:03
Рейтинг@Mail.ru


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