Перейти к содержанию
    

Какой утилитой можно узнать Maximum Payload Size материнской платы?

Под линуксом lspci

lspci -vv -s 02:00.0
02:00.0 Class ff00: Altera Corporation Device e001 (rev 01)
        Subsystem: Device 5bde:1100
        Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B- DisINTx-
        Status: Cap+ 66MHz- UDF- FastB2B- ParErr- DEVSEL=fast >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-
        Latency: 0, Cache Line Size: 4 bytes
        Interrupt: pin A routed to IRQ 10
        Region 0: Memory at fdbf0000 (64-bit, prefetchable) [size=64K]
        Capabilities: [50] MSI: Enable- Count=1/32 Maskable- 64bit+
                Address: 0000000000000000  Data: 0000
        Capabilities: [78] Power Management version 3
                Flags: PMEClk- DSI- D1- D2- AuxCurrent=0mA PME(D0-,D1-,D2-,D3hot-,D3cold-)
                Status: D0 NoSoftRst+ PME-Enable- DSel=0 DScale=0 PME-
        Capabilities: [80] Express (v2) Legacy Endpoint, MSI 00
                DevCap: MaxPayload 2048 bytes, PhantFunc 0, Latency L0s <64ns, L1 <1us
                        ExtTag- AttnBtn- AttnInd- PwrInd- RBE+ FLReset-
                DevCtl: Report errors: Correctable- Non-Fatal- Fatal- Unsupported-
                        RlxdOrd+ ExtTag- PhantFunc- AuxPwr- NoSnoop+
                        MaxPayload 128 bytes, MaxReadReq 512 bytes
                DevSta: CorrErr- UncorrErr- FatalErr- UnsuppReq- AuxPwr- TransPend-
                LnkCap: Port #1, Speed 5GT/s, Width x8, ASPM L0s, Latency L0 unlimited, L1 unlimited
                        ClockPM- Surprise- LLActRep- BwNot-
                LnkCtl: ASPM Disabled; RCB 64 bytes Disabled- Retrain- CommClk+
                        ExtSynch- ClockPM- AutWidDis- BWInt- AutBWInt-
                LnkSta: Speed 5GT/s, Width x8, TrErr- Train- SlotClk+ DLActive- BWMgmt- ABWMgmt-
                DevCap2: Completion Timeout: Range ABCD, TimeoutDis+
                DevCtl2: Completion Timeout: 50us to 50ms, TimeoutDis-
                LnkCtl2: Target Link Speed: 5GT/s, EnterCompliance- SpeedDis-, Selectable De-emphasis: -6dB
                         Transmit Margin: Normal Operating Range, EnterModifiedCompliance- ComplianceSOS-
                         Compliance De-emphasis: -6dB
                LnkSta2: Current De-emphasis Level: -3.5dB
        Capabilities: [100 v1] Virtual Channel
                Caps:   LPEVC=0 RefClk=100ns PATEntryBits=1
                Arb:    Fixed- WRR32- WRR64- WRR128-
                Ctrl:   ArbSelect=Fixed
                Status: InProgress-
                VC0:    Caps:   PATOffset=00 MaxTimeSlots=1 RejSnoopTrans-
                        Arb:    Fixed- WRR32- WRR64- WRR128- TWRR128- WRR256-
                        Ctrl:   Enable+ ID=0 ArbSelect=Fixed TC/VC=ff                                                    
                        Status: NegoPending- InProgress-

 

Но тут я вижу два MaxPayload, а какой из них относится к матери - не знаю, надо разбираться.

 

Под виндоусом можно попробовать в программе pciscope посмотреть.

 

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Под виндоусом можно попробовать в программе pciscope посмотреть.

Подскажите пожалуйста где в Рciscope есть данные о Maximum Payload Size?

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Не запускается у меня Рciscope, 15 дней закончились уже давно, лицензию просит.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Я с ним мало работал, так что "точно" не знаю есть он там или нет. Но он должен отображать все конфигурационное пространство. И если lspci показывает какие-то Maximum Payload Size, а берет он их точно из конфигурационного пространства, то и вероятнее всего Рciscope должен показать.

 

Вот так вот сходу не нагуглил по какому адресу лежит Maximum Payload Size в configuration space.

 

 

Еще может в биосе имеется какая инфа...

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

По ходу поиска инфы о Maximum Payload Size наткнулся в книге "Юрий Зозуля Тонкая настройка компьютера с помощью BIOS. Начали!" ( Питер; Санкт-Петербург; 2010

ISBN 978-5-49807-693-5 ) на следующее определение:

 

Maximum Payload Size

 

Параметр присутствует в некоторых системных платах с шиной PCI Express и задает максимальный размер пакета данных, передаваемого по этой шине.

Возможные значения – 128, 256, 512, 1024, 2048,4096. Они определяют максимальный размер пакета в байтах.

По умолчанию устанавливается значение 4096, которое не следует менять без особой необходимости, поскольку при этом обеспечивается максимальная производительность PCI Express.

 

Неужели Maximum Payload Size по умолчанию устанавливается значение 4096? :wacko:

 

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

По ходу поиска инфы о Maximum Payload Size наткнулся в книге "Юрий Зозуля Тонкая настройка компьютера с помощью BIOS. Начали!" ( Питер; Санкт-Петербург; 2010

ISBN 978-5-49807-693-5 ) на следующее определение:

 

Maximum Payload Size

 

Параметр присутствует в некоторых системных платах с шиной PCI Express и задает максимальный размер пакета данных, передаваемого по этой шине.

Возможные значения – 128, 256, 512, 1024, 2048,4096. Они определяют максимальный размер пакета в байтах.

По умолчанию устанавливается значение 4096, которое не следует менять без особой необходимости, поскольку при этом обеспечивается максимальная производительность PCI Express.

 

Неужели Maximum Payload Size по умолчанию устанавливается значение 4096? :wacko:

 

У меня в проекте под Альтеру в настройках PCIE установлено Maximum Payload Size = 128. Можно увелиичить до 256 или 512. Трогать его не собираюсь, проект работает, скорость получилась 800МБайт/с, нас устраивает. Для материнской платы я не знаю какой Maximum Payload Size, но так как 128 - это минимум, то конфликтов быть не может.

 

Я так понял есть два параметра Maximum Payload Size:

1. для девайса, указывающий максимальный размер пакетов, выходящих из девайса или входящих в девайс.

2. для рута (для материнской платы), указывающий максимальный размер пакетов, выходящих из рута или входящих в рут.

Первый настраивается разработчиком девайса.

Второй настраивается разработчиком материнской платы (или пользователем через опции биоса, если такие предоставляются).

 

 

У вас вообще в чем проблема с Maximum Payload Size?

 

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Да вот в соседней теме http://electronix.ru/forum/index.php?showtopic=121074 столкнулся с проблемой, что на матери P75 скорость host->FPGA падает по сравнению с P55.

В ядре PCIe x 4 GEN1 на базе Altera HardIP в настройках PCIE тоже установлено Maximum Payload Size = 128.

Ядро небыстрое, работает на внутренней частоте 125 МГц, поэтому максимум может ~400МБ/c.

Но на P75 матери даже 300 МБ/с не пропускает, идут потери данных, а на P55 всё нормально.

 

Я пытаюсь понять - в чём разница между этими двумя матерями, что так отличаются скорость в слоте PCIe x 4.

Начать выяснение решил с того, чтобы выяснить - какой у них Maximum Payload Size.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Года 2 назад был такой экспириенс.

Описание ситуации здесь http://electronix.ru/forum/index.php?showt...t&p=1077326.

Там не расписал, но проблема дополнялась тем, что система намертво вешалась на системнике с процессором CoreDuo, а на системниках с Intel I3 и AMD Phenomx4 все работало без сбоев.

 

При этом формирование заголовка пакета и самого пакета велось в соответствии с спецификацией на PCIE, но на одном компе вешалось, на двух других - нет.

 

 

Вы пишите, что для PCIE корки установлено Maximum Payload Size = 128, тогда (по идеи) абсолютно не важно какой Maximum Payload Size у матери, она возвращаемые пакеты должна урезать до 128 байт. Вот если она этого не делает, тогда будут конфликты.

 

А как вы формируете заголовок пакета? Какие Requester ID и Tag задаете? Другие поля заголовка?

И в чем проявляется потеря данных?

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Вы пишите, что для PCIE корки установлено Maximum Payload Size = 128, тогда (по идеи) абсолютно не важно какой Maximum Payload Size у матери, она возвращаемые пакеты должна урезать до 128 байт. Вот если она этого не делает, тогда будут конфликты.

А вдруг у P75 матери Maximum Payload Size < 128 ?

 

А как вы формируете заголовок пакета? Какие Requester ID и Tag задаете? Другие поля заголовка?

И в чем проявляется потеря данных?

Это ядро у меня в виде .qxp, поэтому подробностей не знаю.

Потеря данных - при пересылке host->FPGA вместо потока данных время от времени идут постоянные уровни.

При пересылке FPGA->host такой проблемы нет, плата с этим ядром нормально работает на 300 МБ/с и на P55, и на P75.

То есть дело не в плате, не в ядре, а какая-то особенность материнки.

Возможно, что и на каких-то других материнках проблем не будет, а на каких-то будет.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

А вдруг у P75 матери Maximum Payload Size < 128 ?

 

 

Это ядро у меня в виде .qxp, поэтому подробностей не знаю...

 

Так ведь "возможные значения – 128, 256, 512, 1024, 2048,4096".

Меньше 128 не может быть.

 

 

А сигналтапом можно подцепиться к внутренним сигналам .qxp? Например, к tx_st_valid, tx_st_data?

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...