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

 
 
> PCI 32x33 на Xilinx, Разная скорость чтения и записи в Master'е
Anyone
сообщение Mar 26 2010, 13:19
Сообщение #1





Группа: Участник
Сообщений: 9
Регистрация: 18-12-09
Пользователь №: 54 333



Всем доброго времени суток.
Столкнулся вот с чем. PCI - мастер (плата, на ней Xilinx с PCI 32x33) читает и пишет в память. Читает со скоростью 300 Mbit/s, пишет со скоростью 900 Mbit/s.
Когда данные передаются из платы ("плата пишет"), кол-во слов в одной транзакции регулируется параметром LATENCY_TIMER.
Но изменение этого параметра не влияет на кол-во слов в одной транзакции, когда данные передаются в плату ("плата читает").
Возникает два вопроса:
1. Это нормально?
2. Какой параметр управляет кол-ом слов в одной транзакции, когда "плата читает"?
Если кто сталкивался, буду благодарен за ответ.
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
AlexanderX
сообщение Apr 1 2010, 11:58
Сообщение #2


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

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



1. PCI шина с точки зрения мастера как по записи так и по чтению имеет одинаковую пропускную способность (при одинаковой длине транзакции). А на самом деле пропускная способность определяется возможностями Target. Сделаю предположение, что Вы подключаете плату в обычный PCI слот компьютера. Тогда скорость чтения мастерм будет определяться чипсетом, а если быть точным то южным мостом. Южный мост - это така же микросхема придуманая людьми smile.gif и построена на тех же принципах, что и ваше устройство. Когда южный мост получает команду чтения из памяти он ее перенаправляет северному мосту, а что бы PCI шина не простаивала пока данных не пришли выставляет такое состояние как Disconect without data. Если Вы повторяете свой запрос, мост зная что он такое уже обслужил делает тоже самое несколько раз, до тех пор пока северный мост (общающийся с памятью) не пришлет ему пакет с размером краным степени 2, например 16 слов. Высылаются данные именно таким количеством, потому что по шине PCI нельзя определить, сколько именно мастер хочет получить данных. После получения данных южным мостом, он складывает их себе в буфер и далее как только получит очередной запрос на чтение из этого адреса выдаст данные без задержки.
2. Давайте разберемся что происходит при записи данных мастером. При попытке записать данные по PCI, южный мост проверяет наличие свободного места в своем приемном буфере и если таковое имеется, то он баз задержки заберет столько данных соклько Вы хотите переслать но не более того сколько места в его буфере. Поэтому запись по PCI в копьютерах работает быстрее, чем чтение.
3. Как добиться большей скорости чтения по PCI? Поскольку мы знаем, что чтение генерирует запрос на северный мост и ждет от него ответа, то для повышения пропускной способности необходимо выполнить несколько запросов по нарастающим адресам с шагом, например, в 16 слов. Таким образом южный мост сгенерирует несколько запросов северному собрату и получит все данные. При последующем чтении Вы получите все свои данные с меньшим интервалом между запросами. Называется эта технология - спекулятивное (упреждающее) чтение.
wink.gif
Go to the top of the page
 
+Quote Post
Anyone
сообщение Apr 1 2010, 12:21
Сообщение #3





Группа: Участник
Сообщений: 9
Регистрация: 18-12-09
Пользователь №: 54 333



Цитата(AlexanderX @ Apr 1 2010, 14:58) *
1. PCI шина с точки зрения мастера как по записи так и по чтению имеет одинаковую пропускную способность (при одинаковой длине транзакции). А на самом деле пропускная способность определяется возможностями Target. Сделаю предположение, что Вы подключаете плату в обычный PCI слот компьютера. Тогда скорость чтения мастерм будет определяться чипсетом, а если быть точным то южным мостом. Южный мост - это така же микросхема придуманая людьми smile.gif и построена на тех же принципах, что и ваше устройство. Когда южный мост получает команду чтения из памяти он ее перенаправляет северному мосту, а что бы PCI шина не простаивала пока данных не пришли выставляет такое состояние как Disconect without data. Если Вы повторяете свой запрос, мост зная что он такое уже обслужил делает тоже самое несколько раз, до тех пор пока северный мост (общающийся с памятью) не пришлет ему пакет с размером краным степени 2, например 16 слов. Высылаются данные именно таким количеством, потому что по шине PCI нельзя определить, сколько именно мастер хочет получить данных. После получения данных южным мостом, он складывает их себе в буфер и далее как только получит очередной запрос на чтение из этого адреса выдаст данные без задержки.
2. Давайте разберемся что происходит при записи данных мастером. При попытке записать данные по PCI, южный мост проверяет наличие свободного места в своем приемном буфере и если таковое имеется, то он баз задержки заберет столько данных соклько Вы хотите переслать но не более того сколько места в его буфере. Поэтому запись по PCI в копьютерах работает быстрее, чем чтение.
3. Как добиться большей скорости чтения по PCI? Поскольку мы знаем, что чтение генерирует запрос на северный мост и ждет от него ответа, то для повышения пропускной способности необходимо выполнить несколько запросов по нарастающим адресам с шагом, например, в 16 слов. Таким образом южный мост сгенерирует несколько запросов северному собрату и получит все данные. При последующем чтении Вы получите все свои данные с меньшим интервалом между запросами. Называется эта технология - спекулятивное (упреждающее) чтение.
wink.gif


Временно забудем про задержку между транзакциями. Есть ли способ заставить северный мост передавать южному не по 16 слов, а по 64 слова?
Go to the top of the page
 
+Quote Post
xyzzy
сообщение Apr 1 2010, 21:38
Сообщение #4


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

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



Цитата(Anyone @ Apr 1 2010, 05:21) *
Временно забудем про задержку между транзакциями. Есть ли способ заставить северный мост передавать южному не по 16 слов, а по 64 слова?


А ваше устройство использует "MEMORY READ" или "MEMORY READ MULTIPLE"? Последняя команда как раз может и намекнуть бриджу, что читать будут много. Впрочем, это будет зависеть от конкретного бриджа. Некоторые имплементации реагируют на обе команды идентично.


--------------------
--xyzzy
Go to the top of the page
 
+Quote Post



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

 


RSS Текстовая версия Сейчас: 23rd June 2025 - 04:05
Рейтинг@Mail.ru


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