Const <
rent...@gmail.com> wrote:
> Sergey Kubushyn <
k...@koi8.net> wrote:
>> > Но реальность показывает нам, что pcie таки реально
>> > демонстрирует хорошую производительность.
>
>> Мне не надо верить или не верить, надо почитать PCIe стандарт, который
>
> Если бы у меня была охота читать стандарт,
> я бы тебя не читал :)
Ну, вопрос веры, да?
Естественно. Только там (на PCIe) есть такая фигня как maximum burst size,
который обычно не бесконечный. И тому есть причина -- оно будет тормозить
остальных если блоки будут сильно большими. Это я даже не вдаюсь в
подробности типа bus master DMA и иже. И прерывания забывать не следует.
Но оно, конечно, для дисков таки быстрее, да. Что не отменяет всё ещё
наличествующего оверхеда. Уменьшает, но не отменяет. Плюс ещё есть затраты
на самый нижний уровень. Оно такое же, как USB. Разница лишь в том, что весь
тот протокол в PCIe исполняется железом так что для програмиста оно
ВЫГЛЯДЫВАЕТ как будто обычная PCI с замапленными в адресное пространство
областями памяти. Что зачастую служит источником всяких неприятностей потому
как не понимающие как оно работает програмасты считают что прочитать байт из
"памяти" это очень быстро -- оно ж типа как рама, да? А на самом деле такое
чтение вызывает 320 тактов на том PCIe.
>> Классический же драйвер устройства, который не стримит, представляет собой
>> душераздирающее зрелище. У нас тут с полгода назад как раз такая проблема
>> была -- наши программеры пытались реализовать последовательный протокол с
>> девятым битом используя стандартный 16550 UART за 1x PCIe линком на
>
> Не, братан, трудности с 16550 на современной шине для
> других задач меня вообще не впечатляют.
А нету другой шины. Просто вообще. Либо, прости г-ди, USB, на которой всё
ЕЩЁ хуже ибо там надо делать закат солнца вручную -- там то всё
программастически, через всякие URB'ы -- либо вообще не. И 16550 то только
один из, просто из того, что реально пришлось бороть (и так до сих пор и не
поборото). Таких всяких разных устройств туева хуча. И кроме включения
пейсбука и стриминга порнухи с порнхаба бывают ещё и всякие индустриальные
задачи. Управление всякими устройствами и иже. Кроме всяких йаДебилков есть
и другой мир. В котором, в числе прочего, и те йаДебилки производят. Они ж,
сцуко, на дереве не растут...
>> Вроде бы как и ничего, но это две non-posted transactions на каждый байт,
>> т.е. чтение одного байта занимало минимум 720 тактов. Это не учитывая
>> прерываний, которые возникали и в процессе того чтения (16550 очень кривая
>> штука, за которую тоже надо на фонарь -- в FIFO только 8-бит данные, которые
>> можно только вычитывать по одному байту аж пока оно не опустеет ибо сколько
>> их там неизвестно, причём девятый бит это ошибка паритета, вызывающая
>> прерывание, но к которому байту в FIFO она относится тоже неизвестно,
>> поэтому то прырывание не сбрасывается аж пока тот байт с ошибкой не
>> извлечён).
>
> Всё это очень ностальгично.
Это ежедневная реальность тех, кто не пейсбуки и не йаДебилки дизайнит. Прям
ща, сама что ни на есть современная. Есть, например, такие самодвижущиеся
повозки, в которых практически всё такое. И стримится там только в самом
мелком блочке на передней панели, а остальное не. В одном только моём
Лексусе таких железяк столько, что только программированию дефолтов на них
посвящён целый том ремонтного мануала в полторы тысячи страниц.
>> > Подцепишь на x4 - получишь 1.8 раза лучше.
>> > Это, типа, реальность.
>
>> Ну так возьми что-то на x8. Или вообще на x16. Или на PCI-X, если найдёшь :)
>
> Вот я как раз пытаюсь понять.
> Имеет ли смысл переплачивать за x4 или x8.
> Да и x16 у меня свободные слоты есть.
> Но судя по всему, всё же наиболее эффективно будет тупо x1.
> $15 и ты почти удвоился.
Ну дык попробуй. Только сначала определись действительно ли оно тебе надо.
Ты ж, поди, не датацентр строишь на толстой сетевой трубе. Мне вот,
например, вполне хватает того LSI райда. Причём в RAID1, что ещё медленнее
чем одиночный диск на запись. И это при том, что я постоянно делаю большие
билды, по нескольку часов на всех ядрах. Оно, типа, того, всё помещается в
дисковый кэш так что всяких временных файлов я вообще практически никогда не
вижу -- они удаляются до того, как кэш на диск сбросится. А рама, она сильно
быстрее даже самого быстрого NVMe. Вон, прям ща билдится шабашка, все 12
ядер под 80 градусов, всё занято полностью и нифига диска не ждёт. А если и
ждёт, то настолько эпизодически, что я того и уловить не могу. Лампочки
доступа к дискам практически не моргают -- так, эпизодические очень короткие
вспышки раз в 10-30 секунд...
Не надо забывать Ка нашего Пруткова, про без надобности носимый набрюшник...