Можно ли рассчитать теоретическую пропускную способность ввода-вывода процессора?

481
Lapsio

У меня есть машина с i7-2600K, и я превращаю ее в сервер хранения. Он использует чипсет P67, который использует интерфейс DMI 20 Гбит / с для процессора. На плате также есть слоты pcie x8 / x8, подключенные непосредственно к процессору. Я думал о подключении 8 дисков SATA к встроенным контроллерам (используя DMI) и 8 дисков SATA через контроллер DELL Perc 6 / i pci-e x8, чтобы экспортировать их через сетевой интерфейс Quad 10 Гбит / с с использованием rr-bonding.

Тем не менее, я не уверен, что этот процессор способен даже пропускать 40 Гбит / с ввода-вывода в теории, даже если мы игнорируем все узкие места. Можно ли оценить максимальную теоретическую пропускную способность ввода-вывода процессора?

0
Этот процессор имеет 16 линий PCIe 2.0. Ни одна из найденных сетевых карт не использует более 8 линий. Простая математика показывает, что она не может поддерживать 40 Гбит / с. Зачем смотреть на что-либо, кроме узких мест? Daniel B 6 лет назад 0
@DanielB справедливо, pci-e 2.0 x8 будет поддерживать в лучшем случае 32 Гбит / с. Тогда вопрос еще масштабируется, есть ли даже теоретический шанс его получить. Меня больше беспокоит вопрос, сможет ли система приблизиться к фактической теоретической пропускной способности pci-e, или это просто число на бумаге, не имеющее отношения к реальности, и реальная производительность в лучшем случае равна 16 Гбит / с или что-то в этом роде. Lapsio 6 лет назад 0
Почему бы просто не получить (я предполагаю, 10 Гбит / с pci-e) нужную карту и проверить ее пропускную способность с помощью jperf или аналогичного? Я предполагаю, что этот процессор сможет обрабатывать несколько карт 10 Гбит / с одновременно. Но без всей дополнительной информации о ч / б никто не сможет дать вам ничего, кроме предположения. Tim_Stewart 6 лет назад 0

1 ответ на вопрос

2
sawdust

Он использует чипсет P67, который использует интерфейс DMI 20 Гбит / с для процессора. На плате также есть слоты pcie x8 / x8, подключенные непосредственно к процессору.

Неправильно, периферийные шины (например, PCIe и SATA) не подключены напрямую к процессору.
Вместо прямого соединения с процессором, PCIe, SATA, USB и память имеют контроллеры (т.е. вспомогательную логику), которые взаимодействуют с некоторой высокоскоростной системной шиной. Адрес процессора и шины данных обычно напрямую связаны с такой системной шиной.

Обратите внимание, что современные процессорные микросхемы высокоинтегрированы (например, System-on-Chip, SoC, возможно), а функциональные возможности системных микросхем (например, микросхемы северного / южного моста) могут быть перемещены ближе к CPU для повышения производительности за счет более тесной интеграции., Такие процессорные микросхемы могут иметь соединения PCIe и SATA, поскольку они включают эти контроллеры. Но это не означает, что такие периферийные устройства «подключены напрямую» к любому процессору (-ам).

Можно ли оценить максимальную теоретическую пропускную способность ввода-вывода процессора?

Да, но пропускная способность с использованием запрограммированного ввода-вывода не является значимым числом.
Поскольку современные компьютерные системы обычно выполняют ввод-вывод с использованием прямого или прямого доступа к памяти стороннего производителя (а не запрограммированного ввода-вывода), процессор задействуется только в начале и в конце типичных операций ввода-вывода.
IOW ЦП не будет узким местом ввода / вывода.
См. Https://stackoverflow.com/questions/25318145/dma-vs-interrupt-driven-io/38165400#38165400
и https://stackoverflow.com/questions/38119491/master-for-interrupt-based-uart-io / 38155310 # 38155310
Поэтому ваш вопрос следует перефразировать следующим образом:
« Можно ли рассчитать теоретическую пропускную способность ввода-вывода компьютера? ».

Одна верхняя граница для операций ввода-вывода - пропускная способность памяти. Поскольку ввод-вывод всегда находится между периферийными устройствами и основной памятью (при этом игнорируется редкое использование операций передачи данных с периферийного устройства с использованием мастера шины), скорость памяти может быть узким местом.
Поскольку основная память обычно намного быстрее, чем любое отдельное периферийное устройство, проблема, скорее всего, будет в конфликте за доступ к памяти со стороны контроллеров DMA, мастеров шины и ЦП, который должен контролироваться контроллером памяти.

Но это не правильно. Некоторые слоты PCIe * подключены * непосредственно к процессору. Daniel B 6 лет назад 0
Я признаю незнание деталей последних процессоров Intel. Но прямое подключение PCIe к процессору не имеет смысла. Это базовая, обычная компьютерная архитектура. Как работает автобусный мастеринг? Пожалуйста, предоставьте некоторые доказательства. Кстати, поскольку некоторые микросхемы процессора также включают контроллер памяти, подключение к «микросхеме процессора» не обязательно означает прямое соединение с самим процессором. sawdust 6 лет назад 0
@sawdust от _directly_ Я имел в виду, что между этими линиями x8 / x8 и процессором нет узкого места между соединениями. Поскольку чипсет обычно соединяет устройства, которые все вместе требуют большей пропускной способности, чем обеспечивает межсоединение. Например. Чипсет X399 Threadripper обычно соединяет несколько контроллеров USB 5G, 8 SATA, pcie x8, pcie x2 и некоторые другие ненужные, но весь набор микросхем подключается через канал x4, как показано здесь: https://images.anandtech.com/doci/11685/kevin_lensing_threadripper_tech_day_legally_approved_7. 31,17-страничный-013.jpg Lapsio 6 лет назад 0
@Lapsio - я вижу, как эта блок-схема может привести к неверным предположениям. Но вы должны различать фактический процессор / процессор и «чип процессора». [Википедия] (https://en.wikipedia.org/wiki/Zen_ (микроархитектура)) подтверждает мои подозрения: * «Память, ** PCIe **, контроллеры SATA и USB встроены в тот же чип, что и процессор ядра. "* IOW, что раньше было в чипе" северного моста ", теперь интегрировано с процессором (ами) в" чипе процессора ". Нет прямого подключения к процессору / процессору; все еще задействованы периферийные / шинные контроллеры. Спасибо за согласие. sawdust 6 лет назад 1
@sawdust вы упомянули DMA _controllers _... Существует ли более одного DMA на систему? Я думал, что есть один централизованный контроллер DMA для всех устройств. Является ли DMA активным компонентом, являющимся фактическим промежуточным программным обеспечением для пересылки между устройством и контроллером памяти, перекачивающим все эти данные назад или вперед, или это просто своего рода брокер, дающий устройствам возможность использовать контроллер памяти напрямую? Судя по ссылкам, которые вы разместили, я бы сказал, что он активен, но я был бы рад, если бы вы могли подтвердить, что я правильно понял. Lapsio 6 лет назад 0
Обычно системе требуется только один контроллер DMA, который является фактическим устройством и имеет драйвер в ОС. В оригинальном IBM PC, DMAC был отличным чипом Intel. Использование этой системы DMAC называется сторонним DMA. DMA с использованием мастера шины (например, устройства PCIe, которое способно) называется DMA стороннего производителя. (Прежде чем спросить: память будет первой.) sawdust 6 лет назад 1
Встроенный корневой порт PCIe является частью системного агента, который, несомненно, является частью ЦП, как и кэш-память второго уровня. См. [Эту статью] (https://www.anandtech.com/show/3922/intels-sandy-bridge-architecture-exposed/4) для получения подробной информации. Конечно, существует некоторая взаимосвязь, но опять же: она всегда есть. Daniel B 6 лет назад 1
@DanielB - Вы не правильно читаете детали, а физическую близость путаете с прямым подключением. Обобщенная системная шина, на которую я ссылаюсь, реализована как «кольцевая шина», которая соединяет *** Cores ***, Graphics, LLC и *** System Agent ***. Это все еще обычная компьютерная архитектура. Обратите внимание, что в статье системный агент называется * «модным словом для северного моста» *. * «Системный агент, который, несомненно, является частью ЦП» * - Нет, не нужно догадываться, ясно, что ядра отделены от Системного агента шиной. sawdust 6 лет назад 0

Похожие вопросы