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

 
 
 
Reply to this topicStart new topic
> PCI Burst Memory Write Master Transaction, Altera
AlexTim
сообщение Dec 20 2006, 21:15
Сообщение #1





Группа: Новичок
Сообщений: 5
Регистрация: 20-12-06
Пользователь №: 23 721



Собственно сделано устройство, альтеровская корка 4.0. Передаю пакетами по 32 слова в режиме Burst Memory Write Master Transaction данные в выделенный сегмент памяти размером 4 Мбайта.
Точнее хотелось бы, но когда мои донные должны были бы попасть в адреса на границе 4 кбайт, мост выставляет ошибку и корка выдает 'Disconnect Without Data'. И если обработать ошибку, то уходишь в цикл и крутишся до посинения.
Если дампить память данные действительно иногда теряются.
Go to the top of the page
 
+Quote Post
voffka
сообщение Dec 21 2006, 16:53
Сообщение #2





Группа: Новичок
Сообщений: 14
Регистрация: 8-08-06
Пользователь №: 19 409



Спецификация PCI 2.3 (page 66):

This might be because the burst crosses a resource boundary or a resource conflict occurs.

Если транзакция пересекает границу 4 KB (resource boundary), то это и вызывает Disconnect (в соответствии со спецификацией). Необходимо избегать таких пакетов (варьировать размер/адрес таким образом, чтобы не пересекалась граница 4KB).
Go to the top of the page
 
+Quote Post
AlexTim
сообщение Dec 21 2006, 17:24
Сообщение #3





Группа: Новичок
Сообщений: 5
Регистрация: 20-12-06
Пользователь №: 23 721



Похоже, но
- почему граница проходит через каждые 4КВ
- и я перередаю пакетами по 32 слова т.е. 128 байт и границу, если она есть, не пересекаю
Go to the top of the page
 
+Quote Post
voffka
сообщение Dec 21 2006, 17:41
Сообщение #4





Группа: Новичок
Сообщений: 14
Регистрация: 8-08-06
Пользователь №: 19 409



1. 4KB - размер страницы памяти. Транзакция может работать с данными, располагающимися в одной странице.

2.Здесь имеет значение не размер транзакции,а совокупность адреса и размера. Т.е. если транзакция размером 128 байт обращается по адресу, удаленному от границы меньше,чем на 128 байт, то происходит пересечение границы.
Go to the top of the page
 
+Quote Post
AlexTim
сообщение Dec 21 2006, 18:03
Сообщение #5





Группа: Новичок
Сообщений: 5
Регистрация: 20-12-06
Пользователь №: 23 721



Спасибо, что Вы подтвердили мои мысли.
Когда система выделяет раздел памяти он выравнивает границу до 2 КБ, но мы не верили и проверяли - не обнанывает.
Чтобы хоть как то, пришлось последнюю посылку сокращать на 2 слова. В результате в дампе последние 2 слова пустые.

Сложившаяся ситуация совершенно не устраивает, и вообще все как то абсурдно получается.
Go to the top of the page
 
+Quote Post
voffka
сообщение Dec 21 2006, 18:08
Сообщение #6





Группа: Новичок
Сообщений: 14
Регистрация: 8-08-06
Пользователь №: 19 409



не за что)

А почему бы не выровнять адрес обращений?тогда не пришлось бы обрезать посылку.
Go to the top of the page
 
+Quote Post
AlexTim
сообщение Dec 21 2006, 18:25
Сообщение #7





Группа: Новичок
Сообщений: 5
Регистрация: 20-12-06
Пользователь №: 23 721



Я ж говорю - выровнено.

И загружаю адреса: ххххххх00 либо ххххххх80.
Go to the top of the page
 
+Quote Post
Tosha
сообщение Dec 25 2006, 09:46
Сообщение #8


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

Группа: Свой
Сообщений: 97
Регистрация: 10-09-04
Пользователь №: 633



У меня было такое, что bridge обрывал чтение на половине, даже без выравнивания. Заменил команду чтения на Memory Read Multiple, частично помогло. Для записи делать ничего не пришлось, т.к. данные всегда улетали полностью. Сделал следующее: проверяю количество действительно переданных слов. (Даже если операция чтения/записи заканчивается по Target Disconnect without data, те данные которые успели передаться с установленными IRDY и TRDY - валидны. См. описание PCI) Потом повторяется команда, но уже не сначала а со следующего адреса, по которому данные не были переданы. А вообще странно что именно последние 2 слова не прописываются.
Go to the top of the page
 
+Quote Post

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

 


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


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