Полная версия этой страницы:
PCI-express
Владимир_О
Nov 24 2011, 06:24
Добрый день.
Читая спецификацию PCIe уткнулся в один вопрос, который сразу не смог сам себе разъяснить. Заявленная скорость PCIe - 2.5Gbit/s (Gen1), при этом тактовая частота - 100 Mhz Как такое возможно, учитывая, что интерфейс последовательный и пакет pcie содержит еще и кучу служебной информации, то есть скорость приема/передачи по логике должна быть менее 100 Mbit/s ??
alexvu
Nov 24 2011, 07:50
Тактовая частота - это просто для синхронизации, а сама передача идет на больших частотах.
Например, возможно и до 256 Gbit/s.
Почитайте хотя бы здесь:
http://ru.wikipedia.org/wiki/PCI_Express
Владимир_О
Nov 24 2011, 08:42
Понятно, что тактовая частота - для синхронизации. но для синхронизации чего - начало/конец пакета и тп? Еще используется такая фича - информация о синхронизации встраивается в сигнал - тоже интересно, что за зверь. Если кто хорошо это понимает - буду благодарен за краткие разъяснения и ссылки, а так придется дальше ковырять спецификацию, в любом случае когда-нибудь разберусь.
ИльяКи
Nov 24 2011, 09:12
Почитайте документацию от Xilinx и Altera по их ядрам PCI Express, станет многое понятно.
DpInRock
Nov 24 2011, 09:18
Прежде изучения спецификации следует изучить гугле.
К примеру, вам дали ссылку на вики.
Там вы встретили упоминание о канальном кодировании 8b\10b.
Мышкой выделяете это "8b\10b" и переносите в поисковую строку и нажимаете искать.
После чего первой ссылкой у вас будет
http://en.wikipedia.org/wiki/8b/10b_encodingИ так далее.
А вот что НЕПОНЯТНО - это да. Разъяснить можно.
Но гугле надо знать и использовать. Они там ночей не досыпают, индексируют...
100, 125 или 250 МГц тактируют PCIe EndPoint
а данные передаются через GTP или GTX, 2.5/5 гбит/с по каждому lane
100 МГц - это просто опорная частота для PLL в End Point, прямого отношения к RX и TX она не имеет. End Point может иметь и свой локальный генератор, и тогда 100 МГц от Root может не использовать. Так или иначе PLL умножает те или иные 100 МГц для получения частоты, нужной для обмена данными.
Владимир_О
Nov 25 2011, 09:08
Цитата(cioma @ Nov 25 2011, 01:46)

100 МГц - это просто опорная частота для PLL в End Point, прямого отношения к RX и TX она не имеет. End Point может иметь и свой локатьный генероатор, и тогда 100 МГц от Root может не использовать. Так или иначе PLL умножает те или иные 100 МГц для получения частоты, нужной для обмена данными.
Вот этот ответ почти самое оно)
То есть, допустим есть ПЛИС, на которой необходимо реализовать PCIe EndPoint ( ну пусть Циклон четвертый какой-нить) На PLL заводим PCIe Clk - и дальше все процессы обработки данных для приема/передачи будут запускаться как раз по сигналу clk частотой PCIeclk, умноженной. допустим, на 25. Примерно так? Что же тогда за синхронизация внутри сигнала. 8b/10b - ответ там?
Думается, что PCIe clock надо заводить на REFCLK трансиверов FPGA, а для тактирования основной логики FPGA надо будет иметь отдельный генератор, ибо, если не изменяет память, PLL трансиверов FPGA нельзя использовать для тактирования логики. Ну или сначала PCIe clock буферизировать, разветвить на два, один подать на REFCLK, а другой - на CLKIN.
Кодирование 8b/10b позволяет выделять тактирующую из потока данных и лочить на нее PLL.
Для просмотра полной версии этой страницы, пожалуйста,
пройдите по ссылке.