Обработка входящих пакетов
Version 1 (Dmitry Smekhov, 09/22/2011 09:00 am)
1 | 1 | h1. Обработка входящих пакетов |
|
---|---|---|---|
2 | 1 | ||
3 | 1 | Входящие пакеты обрабатывает узел core64_rx_engine. В связи с различиями в реализации ядра Xilinx для различных ПЛИС существует несколько реализаций обработчика пакетов, они различаются способом подключения к компоненту Xilinx. |
|
4 | 1 | ||
5 | 1 | Список компонентов: |
|
6 | 1 | ||
7 | 1 | * core64_rx_engine - для Virtex 5 |
|
8 | 1 | * core64_rx_engine_m2 - для Virtex 6 |
|
9 | 1 | * core64_rx_engine_m4 - для Spartan 6 |
|
10 | 1 | ||
11 | 1 | Внутри обработчика существуют два FIFO: |
|
12 | 1 | * FIFO0 - для запросов чтения или записи |
|
13 | 1 | * FIFO1 - для ответов на запросы чтения |
|
14 | 1 | ||
15 | 1 | Процесс pr_fifo0_wr определяет тип пакета и разрешает передачу пакета в FIFO0. |
|
16 | 1 | В FIFO0 передаются пакеты следующих типов: |
|
17 | 1 | * MEMORY READ REQUEST 32 bit |
|
18 | 1 | * MEMORY READ REQUEST-LOCKED 32 bit |
|
19 | 1 | * MEMORY WRITE REQUEST 32 bit |
|
20 | 1 | * MEMORY WRITE REQUEST-LOCKED 32 bit |
|
21 | 1 | ||
22 | 1 | Процесс pr_fifo1_wr определяет тип пакета и разрешает передачу пакета в FIFO1. |
|
23 | 1 | В FIFO1 передаются пакеты следующих типов: |
|
24 | 1 | * COMPLETION WITH DATA |
|
25 | 1 | * COMPLETION LOCKED WITH DATA |
|
26 | 1 | ||
27 | 1 | Все остальные типы пакетов игнорируются. |
|
28 | 1 | ||
29 | 1 | В процессе pr_stp реализован автомат чтения данных из FIFO0. Автомат читает пакет, определяет его тип (чтение или запись) и формирует запрос к компоненту core64_reg_access. |
|
30 | 1 | ||
31 | 1 | В процессе pr_stf реализован автомат чтения данных из FIFO1. Автомат читает пакет и передаёт данные в компонент block_pe_fifo. |