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

 
 
> реализация 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
 
Start new topic
Ответов
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
DmitryR
сообщение Aug 2 2007, 13:43
Сообщение #6


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

Группа: Свой
Сообщений: 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
Сообщение #7


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

Группа: Свой
Сообщений: 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



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

 


RSS Текстовая версия Сейчас: 22nd July 2025 - 07:05
Рейтинг@Mail.ru


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