реклама на сайте
подробности

 
 
 
Reply to this topicStart new topic
> реализация switch, какие есть варианты
line
сообщение Aug 2 2007, 10:51
Сообщение #1


Частый гость
**

Группа: Свой
Сообщений: 85
Регистрация: 27-06-05
Пользователь №: 6 331



Добрый день!

Не приходилось заниматься такими вещами, а требуется свитч 32 х 32 сериальных канала. Причем, тербуется параллельная работа нескольких каналов при свободных соответствующих входах-выходах (как это называется - "неблокирующий свитч" чтоли???).

Подскажет ли кто умную мысль? Или что бы прочесть, или где бы пример глянуть? Пасиб.
Go to the top of the page
 
+Quote Post
iosifk
сообщение Aug 2 2007, 12:12
Сообщение #2


Гуру
******

Группа: Модераторы
Сообщений: 4 011
Регистрация: 8-09-05
Из: спб
Пользователь №: 8 369



Цитата(line @ Aug 2 2007, 14:51) *
Добрый день!

Не приходилось заниматься такими вещами, а требуется свитч 32 х 32 сериальных канала. Причем, тербуется параллельная работа нескольких каналов при свободных соответствующих входах-выходах (как это называется - "неблокирующий свитч" чтоли???).

Подскажет ли кто умную мысль? Или что бы прочесть, или где бы пример глянуть? Пасиб.

какие скорости потоков?
Если меньше, чем 500/32 то можно перекидывать через память. Если потоки быстрые - то через кучу FIFO, вот примерно так....
Удачи!


--------------------
www.iosifk.narod.ru
Go to the top of the page
 
+Quote Post
line
сообщение Aug 2 2007, 12:34
Сообщение #3


Частый гость
**

Группа: Свой
Сообщений: 85
Регистрация: 27-06-05
Пользователь №: 6 331



Цитата(iosifk @ Aug 2 2007, 16:12) *
какие скорости потоков?
Если меньше, чем 500/32 то можно перекидывать через память. Если потоки быстрые - то через кучу FIFO, вот примерно так....
Удачи!

Потоки по 100 Мбит. Буферная память на каждом конце есть.
Проблема в том, как создать матрицу переключений потоков + организовать управление переключением.
Как создать матрицу я вроде нашел, что надо ставить на каждый выход по мультиплексору, на которые подключить все входы - логично...
Но вот арбитраж всех этих мультиплексоров??? wacko.gif
Go to the top of the page
 
+Quote Post
DmitryR
сообщение Aug 2 2007, 12:44
Сообщение #4


Профессионал
*****

Группа: Свой
Сообщений: 1 535
Регистрация: 20-02-05
Из: Siegen
Пользователь №: 2 770



Цитата(line @ Aug 2 2007, 16:34) *
Потоки по 100 Мбит. Буферная память на каждом конце есть.
Проблема в том, как создать матрицу переключений потоков + организовать управление переключением.
Как создать матрицу я вроде нашел, что надо ставить на каждый выход по мультиплексору, на которые подключить все входы - логично...
Но вот арбитраж всех этих мультиплексоров??? wacko.gif

Рассмотрим начальный момент, когда все порты неактивны. В некий порт начинает вливаться информация. Она направляется в линию задержки длинной в заголовок. Когда заголовок полностью в линии задержки - он декодируется и по результатам декодирования переключается соответствующий мультиплексор и на этом мультиплексоре ставится флаг "занят". Если потом кто-то хочет в этот же мультиплексор - он видит флаг "занято" и на передающем сегменте объявляет коллизию. Когда пакет прошел - флаг "занято" с мультиплексора (то есть выходного порта) снимается.

Разумеется, алгоритмы с полным буферированием (когда при занятости порта не объявляется коллизия, а пакет кладется в память и передается "потом") эффективнее, но они и сложнее на порядок, поэтому обычно управление такими коммутаторами осуществляется с помощью процессора, а не автомата.
Go to the top of the page
 
+Quote Post
line
сообщение Aug 2 2007, 13:06
Сообщение #5


Частый гость
**

Группа: Свой
Сообщений: 85
Регистрация: 27-06-05
Пользователь №: 6 331



Цитата(DmitryR @ Aug 2 2007, 16:44) *
Рассмотрим начальный момент, когда все порты неактивны. В некий порт начинает вливаться
...
Разумеется, алгоритмы с полным буферированием (когда при занятости порта не объявляется коллизия, а пакет кладется в память и передается "потом") эффективнее, но они и сложнее на порядок, поэтому обычно управление такими коммутаторами осуществляется с помощью процессора, а не автомата.

Буферирование не надо.
С остальным согласен.
И далее, видимо, нужен хитрый арбитр ---последовательно???--- просматривающий запросы от входных каналов и в случае свободного запрашиваемого выходного производящий подключение?
Go to the top of the page
 
+Quote Post
iosifk
сообщение Aug 2 2007, 13:27
Сообщение #6


Гуру
******

Группа: Модераторы
Сообщений: 4 011
Регистрация: 8-09-05
Из: спб
Пользователь №: 8 369



Цитата(line @ Aug 2 2007, 17:06) *
Буферирование не надо.
С остальным согласен.
И далее, видимо, нужен хитрый арбитр ---последовательно???--- просматривающий запросы от входных каналов и в случае свободного запрашиваемого выходного производящий подключение?

Если буферирования не будет, то это же блокирующий коммутатор.
А по жизни такие штуки делают так:
нет никаких арбитров или просматривающих автоматов...
А есть адрес выходного порта. Если заголовок имеет адрес данного выходного порта, то порт пропускает данный пакет, если адрес не соответствует - то не пропускает. Так устроены Ethernet-switch. А для того, чтобы свитч узнал, кто на каком порте сидит есть широковещательные пакеты. На них все обязаны ответить и при этом их адреса попадают в хэш-таблицу. Но у Вас видимо адреса заранее известны, поэтому Вы можете определить объем памяти типа САМ. Вот и все хитрости....
удачи!


--------------------
www.iosifk.narod.ru
Go to the top of the page
 
+Quote Post
line
сообщение Aug 2 2007, 13:38
Сообщение #7


Частый гость
**

Группа: Свой
Сообщений: 85
Регистрация: 27-06-05
Пользователь №: 6 331



Цитата(iosifk @ Aug 2 2007, 17:27) *
Если буферирования не будет, то это же блокирующий коммутатор.

Буферирование входных пакетов есть на премной стороне. Я фактически разбираю пакеты из буферных ФИФО приемников.

Насчет блокирующего коммутатора - я из теории понял, что тут дело не в буферировании? Что неблокирующий - это когда в свитче могут ходить несколько потоков одновременно - при наличии свободных соответствующих входов-выходов?

Цитата(iosifk @ Aug 2 2007, 17:27) *
А по жизни такие штуки делают так:
нет никаких арбитров или просматривающих автоматов...
А есть адрес выходного порта. Если заголовок имеет адрес данного выходного порта, то порт пропускает данный пакет, если адрес не соответствует - то не пропускает. Так устроены Ethernet-switch. А для того, чтобы свитч узнал, кто на каком порте сидит есть широковещательные пакеты. На них все обязаны ответить и при этом их адреса попадают в хэш-таблицу. Но у Вас видимо адреса заранее известны, поэтому Вы можете определить объем памяти типа САМ. Вот и все хитрости....
удачи!

Тут все так. а вот в тригеры это уложить бы еще smile.gif
Go to the top of the page
 
+Quote Post
DmitryR
сообщение Aug 2 2007, 13:43
Сообщение #8


Профессионал
*****

Группа: Свой
Сообщений: 1 535
Регистрация: 20-02-05
Из: Siegen
Пользователь №: 2 770



Цитата(line @ Aug 2 2007, 17:06) *
Буферирование не надо.
С остальным согласен.
И далее, видимо, нужен хитрый арбитр ---последовательно???--- просматривающий запросы от входных каналов и в случае свободного запрашиваемого выходного производящий подключение?

это не арбитр называется, а priority encoder, поиск младшей единицы:

if(!busy)
if(запрос[0])
select<=0;
else
if(запрос[1])
select<=1;
else
if(запрос[2])
select<=2;
else
...
Go to the top of the page
 
+Quote Post
line
сообщение Aug 2 2007, 13:50
Сообщение #9


Частый гость
**

Группа: Свой
Сообщений: 85
Регистрация: 27-06-05
Пользователь №: 6 331



Цитата(DmitryR @ Aug 2 2007, 17:43) *
это не арбитр называется, а priority encoder, поиск младшей единицы:

if(!busy)
if(запрос[0])
select<=0;
else
if(запрос[1])
select<=1;
else
if(запрос[2])
select<=2;
else
...

О. То есть это на каждом мультиплексоре еще такая штука должна присутствовать? Вроде ситуация проясняется! Ладно, пора домой, завтра на свежую голову все взвешу.
Go to the top of the page
 
+Quote Post
CaPpuCcino
сообщение Aug 2 2007, 14:53
Сообщение #10


тоже уже Гуру
******

Группа: Свой
Сообщений: 2 047
Регистрация: 13-06-05
Из: Кёлн - Санкт-Петербург
Пользователь №: 5 973



ну если это в ветке FPGA то я так понимаю что центральным элементом будет ПЛИС. а что за ПЛИС? почему ПЛИС? что за протокол? какая архитектура платформы (в общих чертах - раскрывать ноу-хау не прошу, просто интересно узреть логику принимаемых решений)


--------------------
И снова на арене цирка - дрессированные клоуны!! Оказываем консультации по электронике за симпу круглосуточно.
Go to the top of the page
 
+Quote Post
des00
сообщение Aug 3 2007, 03:59
Сообщение #11


Вечный ламер
******

Группа: Модераторы
Сообщений: 7 248
Регистрация: 18-03-05
Из: Томск
Пользователь №: 3 453



А вы не попробуйте пошариться по опенкоресам. В разделе генераторы для вишбона smile.gif))

В тех генераторах можно сделать как shared bus так и switch архитектуры. Причем Свич архитектуры хитрые, с менеджерами потоков и разделением по времени (для фифо правда не подходит).

а 100 мегабит можно и на не высоких тактовых легко разрулить. главное с шириной шины данных разобраться и способом комутации.

Удачи.


--------------------
Go to the top of the page
 
+Quote Post
line
сообщение Aug 3 2007, 07:43
Сообщение #12


Частый гость
**

Группа: Свой
Сообщений: 85
Регистрация: 27-06-05
Пользователь №: 6 331



Цитата(CaPpuCcino @ Aug 2 2007, 18:53) *
ну если это в ветке FPGA то я так понимаю что центральным элементом будет ПЛИС. а что за ПЛИС? почему ПЛИС? что за протокол? какая архитектура платформы (в общих чертах - раскрывать ноу-хау не прошу, просто интересно узреть логику принимаемых решений)

Пока стоит Spartan3. ПЛИС - потому что планируется потом все в АСИК. Платформа - ЦП с обвязкой + ПЛИС для интеграции внешних интерфейсов. Там же нужен еще и свитч, т.к. в системе много таких распределенных вычислителей, которые нужно между собой связывать. Все что подробнее - военная тайна. biggrin.gif
Go to the top of the page
 
+Quote Post

Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 5th July 2025 - 14:28
Рейтинг@Mail.ru


Страница сгенерированна за 0.01466 секунд с 7
ELECTRONIX ©2004-2016