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

 
 
 
Reply to this topicStart new topic
> Hot-Plug PCI Express
Zazazu
сообщение Jul 16 2012, 09:35
Сообщение #1





Группа: Новичок
Сообщений: 5
Регистрация: 14-05-11
Пользователь №: 64 992



Добрый день!

На основной плате стоит свитч PCI Express PEX8509, который имеет 3 PCI Express c hot-plug. К этим PCI Express подключаются дополнительные модули в составе которых стоит тот же свитч PEX8509 и к нему подключены конечные устройства.

Если при постоянном чтении памяти или регистров любого из устройств на дополнительном модуле удалить модуль на ходу, то процессор зависает на операции чтения!

Ведь операция чтения должна завершится по тайм-ауту или abort? Почему зависает???
Go to the top of the page
 
+Quote Post
dsmv
сообщение Jul 16 2012, 14:52
Сообщение #2


Местный
***

Группа: Свой
Сообщений: 451
Регистрация: 6-09-05
Из: Москва
Пользователь №: 8 284



Не могу утверждать точно, но по моему такого нам стандарт PCI не обещает.


Мы должны завершить все операции и только после этого извлечь устройство.




Go to the top of the page
 
+Quote Post
Zazazu
сообщение Jul 16 2012, 15:32
Сообщение #3





Группа: Новичок
Сообщений: 5
Регистрация: 14-05-11
Пользователь №: 64 992



Цитата(dsmv @ Jul 16 2012, 11:52) *
Не могу утверждать точно, но по моему такого нам стандарт PCI не обещает.


Мы должны завершить все операции и только после этого извлечь устройство.



А если устройство выйдет из строя на момент выполнения операции чтения??? Система не имеет права зависать, она должна "обьявить" о неисправном модуле и тогда уж выполнить замену модуля, например.

В PEX8311 предусмотрено если устройство на локальной шине не отвечает, вводится понятие завершения операции по тайм-ауту и т.д.


Что то же и здесь должно быть!!! Помогите пж-та!
Go to the top of the page
 
+Quote Post
gerber
сообщение Jul 16 2012, 15:51
Сообщение #4


Знающий
****

Группа: Участник
Сообщений: 750
Регистрация: 1-11-11
Пользователь №: 68 088



Цитата(Zazazu @ Jul 16 2012, 18:32) *
А если устройство выйдет из строя на момент выполнения операции чтения??? Система не имеет права зависать, она должна "обьявить" о неисправном модуле и тогда уж выполнить замену модуля, например.

Это откуда такие сведения о "неправомерии зависания системы" при аппаратных проблемах ?
Цитата(Zazazu @ Jul 16 2012, 18:32) *
В PEX8311 предусмотрено если устройство на локальной шине не отвечает, вводится понятие завершения операции по тайм-ауту и т.д.
Что то же и здесь должно быть!!! Помогите пж-та!

Если устройство действительно не отвечает, то ничего страшного нет. А если оно подтвердило транзакцию (установкой DEVSEL#), то обязано её завершить. Пока адресованное устройство не завершило транзакцию (сигналом #TRDY) - вся система висит, не обрабатываются даже прерывания, и будет висеть бесконечно, если устройство вытащить как раз в тот момент, когда оно подтвердило транзакцию, но не завершило её.
Это всё касается PCI, но и в PCI-Express принцип тот же самый.

Сообщение отредактировал gerber - Jul 16 2012, 15:51


--------------------
"... часами я мог наблюдать, как люди работают." (М. Горький)
Go to the top of the page
 
+Quote Post
krux
сообщение Jul 16 2012, 20:38
Сообщение #5


Профессионал
*****

Группа: Свой
Сообщений: 1 700
Регистрация: 2-07-12
Из: дефолт-сити
Пользователь №: 72 596



в PCI-Express нет TRDY# как сигнала. По сути там обратно ожидается приход MSI-пакета с окончанием транзакции. (даже в slave! но это замаскировано под legacy-слоем для обратной совместимости с софтом)
И обработка его ведётся драйвером устройства, т.е. всё зависит от того насколько качественно написан драйвер.
Во всяком случае, я подключал к свичу PLX8648 четыре двухпортовые сетевухи на чипах от intel, под linux, и дергал их на горячую.
всё работало без всяких зависаний.

Сообщение отредактировал krux - Jul 16 2012, 20:43


--------------------
провоцируем неудовлетворенных провокаторов с удовольствием.
Go to the top of the page
 
+Quote Post
Zazazu
сообщение Jul 19 2012, 05:08
Сообщение #6





Группа: Новичок
Сообщений: 5
Регистрация: 14-05-11
Пользователь №: 64 992



Цитата(krux @ Jul 16 2012, 17:38) *
в PCI-Express нет TRDY# как сигнала. По сути там обратно ожидается приход MSI-пакета с окончанием транзакции. (даже в slave! но это замаскировано под legacy-слоем для обратной совместимости с софтом)
И обработка его ведётся драйвером устройства, т.е. всё зависит от того насколько качественно написан драйвер.
Во всяком случае, я подключал к свичу PLX8648 четыре двухпортовые сетевухи на чипах от intel, под linux, и дергал их на горячую.
всё работало без всяких зависаний.

Драйвер писали сами?
Go to the top of the page
 
+Quote Post
Shivers
сообщение Aug 13 2012, 06:04
Сообщение #7


Знающий
****

Группа: Свой
Сообщений: 680
Регистрация: 11-02-08
Из: Msk
Пользователь №: 34 950



Hot plug pci-e в чистом виде нет, и наверно не будет, т.к. плаговую спецификацию pci-e скрестили с графикой и обозвали thunderbolt.
Go to the top of the page
 
+Quote Post
krux
сообщение Aug 15 2012, 18:29
Сообщение #8


Профессионал
*****

Группа: Свой
Сообщений: 1 700
Регистрация: 2-07-12
Из: дефолт-сити
Пользователь №: 72 596



Цитата(Zazazu @ Jul 19 2012, 09:08) *
Драйвер писали сами?

нет конечно. но он доступен для скачивания в открытом доступе с сайта интела.

Цитата(Shivers @ Aug 13 2012, 10:04) *
Hot plug pci-e в чистом виде нет, и наверно не будет, т.к. плаговую спецификацию pci-e скрестили с графикой и обозвали thunderbolt.

hotplug как таковой в эпоху PCI нужен был для отключения питания у PCI-карты, так как если её дернуть на горячую, могли элементарно !)посыпаться искры 2)сдохнуть IO-буферы.

в PCI-Express токи непосредственно на сигнальном интерфейсе - никакие, конденсаторные развязки кругом, так что спалить буферы интерфейсов у микросхем достаточно сложно.
на данный момент есть собственные реализации у некоторых вендоров, этого достаточно чтобы теперь уже даже не задумываться о создании этой спецификации.
в двух словах суть заключаются в том, что по событию 1)в драйвер устройства отправляется запрос на остановку транзакций 2)отключению питания +12В конкретного слота PCIe с помощью hotswap-контроллеров, подключенных по I2C.
технология активно используется во всяких промышленных решениях типа огромных файловых хранилищ например у EMC


--------------------
провоцируем неудовлетворенных провокаторов с удовольствием.
Go to the top of the page
 
+Quote Post
Shivers
сообщение Aug 22 2012, 20:02
Сообщение #9


Знающий
****

Группа: Свой
Сообщений: 680
Регистрация: 11-02-08
Из: Msk
Пользователь №: 34 950



Я бы не стал так уверенно заявлять про малые токи на сигальном интерфейсе и конденсаторы - ВЧ статика может проскочить и сквозь емкости, и пробить ESD защиту тоже может запросто.

Отключение в PCI-E действительно предусмотрено на уровне спецификации - есть несколько состояний засыпания, верхнее на уровне пониженного питания лейнов, глубже - могут обесточиваться PLL, еще глубже - теряется конфигурация Link, и совсем низкое - полное отключение, либо питание с AUX, которое можно отключить тумблером, к примеру. При полном отключении остается возможность просыпания: по линии может быть отослан и принят некий signal beacon - нч сигнал, сообщающий о желании периферии проснуться. При получении бекона рут порт подает питание и начинает договариваться об установлении соединения (на уровне железа а затем и драйверов).
Проблема тут только одна - насколько мне изместно, нельзя усыпить отдельный эндпоинт: засыпает весь рут порт со всеми висящими на нем свитчами и эндпоинтами. Но если вы говорите что хот своп кто то выпускает, то охотно верю, т.к. как писал выше, возможности для этого в стандарте заложены.
Go to the top of the page
 
+Quote Post

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

 


RSS Текстовая версия Сейчас: 18th July 2025 - 16:57
Рейтинг@Mail.ru


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