Телесистемы
 Разработка, производство и продажа радиоэлектронной аппаратуры
На главную   | Карта сайта | Пишите нам | В избранное
Требуется программист в Зеленограде
- обработка данных с датчиков; ColdFire; 40 тыс.
e-mail:jobsmp@pochta.ru

Телесистемы | Электроника | Конференция «Программируемые логические схемы и их применение»

А я исхожу из того, что чудес не бывает.

Отправлено Oldring 09 апреля 2008 г. 23:27
В ответ на: Я могу еще раз подтвердить, да и не раз, (+) отправлено SM 09 апреля 2008 г. 23:01

По поводу того, обязаны мосты или нет - есть текст из "PCI-to-PCI Bridge Architecture Specification" Revision 1.1

"Posting of write data is required by the PCI Local Bus Specification if either Memory Write or Memory Write and Invalidate commands are used for transactions that cross the bridge in either direction and the bridge has posting buffer space available. Posting of I/O Write and Configuration Write transactions is not permitted by a bridge."

Где оно требуется в обязательном порядке - я сам не нашел, признаю. Действительно, только рекомендовано. Но мост имеет право постить вне зависимости от желания или нежелания хоста. Чем и занимается мост по моей ссылке на даташит от Интел.

Другое дело, что чтобы отловить отсутствие posted write из процессора, нужно постараться. Например, записать один байт в одинокую карточку на дальней шине, ретраить его бесконечно и после этого что-нибудь куда-нибудь вывести, лучше всего через шину, не связанную с этой карточкой.

Что касается сути обсуждаемого вопроса - Вы отвечали на следующий вопрос: "И как принято узнавать, что данные реально записаны в память карточки, а не закешированы где-то в памяти машины и ждут очереди на запись?" Ведь так? Я утверждаю, что единственно надежный метод убедиться, что пакет полностью доставлен до таргета - это после записи прочитать из этой карточки. Чтение из этой карточки не может обогнать запись.

Кстати, в случае с PCI Express все еще интереснее. Вот текст из спецификации PCi Express 1.1:

Flow Control distinguishes three types of TLPs (note relationship to ordering rules – see Section 2.4):
• Posted Requests (P) – Messages and Memory Writes
• Non-Posted Requests (NP) – All Reads, I/O, and Configuration Writes
• Completions (CPL) – Associated with corresponding NP Requests

Как видите, уже никакого упоминания про то, что Memory write может быть nonposted. Так что Ваше предположение явно ложное - не может быть такого на PCI Express, как и не может быть такой страшной несовместимость с PCI. И еще:

Zero-Length Read
A Memory Read Request of 1 DW with no bytes enabled, or “zero-length Read,” may be used by devices as a type of flush Request. For a Requester, the flush semantic allows a device to ensure that previously issued Posted Writes have been completed at their PCI Express destination. To be effective in all cases, the address for the zero-length Read must target the same device as the Posted Writes that are being flushed. One recommended approach is using the same address as one of the Posted Writes being flushed.


Составить ответ | Вернуться на конференцию

Ответы


Отправка ответа
Имя*: 
Пароль: 
E-mail: 
Тема*:

Сообщение:

Ссылка на URL: 
URL изображения: 

если вы незарегистрированный на форуме пользователь, то
для успешного добавления сообщения заполните поле, как указано ниже:
введите число 93:

Перейти к списку ответов | Конференция | Раздел "Электроника" | Главная страница | Карта сайта

Rambler's Top100 Рейтинг@Mail.ru
 
Web telesys.ru