возьмем примерные значения времянок: Tx Application (min packet) = 15нс Tx Application (max packet) = 63нс TX Data Link + Transaction Layer = 15нс TX Data Link + Transaction Layer = 63нс TX SerDes + PMA + PCS + MAC = 20нс RX SerDes + PMA + PCS + MAC = 30нс RX Data Link + Transaction Layer (min packet) = 15нс RX Data Link + Transaction Layer (max packet) = 63нс RX Root-complex Action = 15нс
в случае, если пришедший в root-complex read-запрос (прошло ~ 90-110нс) не попал в открытую страницу DRAM (а там 99,95% miss rate) то сразу после этого по стандарту PCIe он обязан отправить обратно completion со значением not ready (прошло ещё ~ 110нс), и примерно через 50-70нс открывается нужная страница в DRAM. после этого отправляется следующий completion уже с данными (считайте ещё ~ от 110 до 240нс) это примерный минимум.
больше может получаться, если например, у вас multi-lane 4х или больше. тогда в зависимости от физического разбега по длине между лейнами (а там может оказаться даже 8 дюймов) со стороны RX потребуется ещё дополнительное время на пересборку раскиданного пакета.
вот и считайте.
если же пакет по дороге побился, то происходит ещё и перезапрос на Data Link Layer, и вы можете получить не менее фантастические 2000+ нс
Сообщение отредактировал krux - Feb 5 2014, 19:09
--------------------
провоцируем неудовлетворенных провокаторов с удовольствием.
|