| 
													Последний раз редактировалось Pphantom 12.09.2022, 09:25, всего редактировалось 1 раз.
												
 
 При проектировании DataFlow процессора сделано предположение (сформулирован алгоритм) и его очень хочется доказать, но моих знаний в математике мало.
 
 Для процессора основанного на потоках данных требуется сеть, которая эти потоки создаст и доставит.
 Пакетные сети слабо подходят для этой задачи по причине свой асинхронной природы.
 Достаточно полное описание можно прочитать здесь : ссылка удалена
 Рядом лежат статьи по построению распределенной виртуальной памяти суперкомпьютера.
 
 Есть физический канал передачи данных, он разбит на большое число виртуальных каналов.
 Скорости передачи данных в различны, но их сумма не превышает скорости физического канала.
 Нужно вычислить максимальный размер буфера для синхронного виртуального канала передачи данных для следующего алгоритма чередования:
 
 Мультиплексирование (разделение) канала связи (2)
 (Алгоритм симметричен, одинаков для приемника и передатчика)
 
 1. Создаем по одному счетчику для каждого приемника и передатчика физического канала (примерно как в «ССИ_Синхронный поток_Эффект проскальзывания (1)»), с помощью служебных символов синхронизируем их относительно потока символов в данном физическом канале. Для выбранного примера счетчик от 0 до 1М-1 (счетчик 20 разрядов с периодом в 1 секунду).
 2.  При обращении к коммутатору преобразовываем содержимое счетчика в адрес (номер) FIFO.
 
 Алгоритм преобразования — Счетчик <:> Адрес FIFO:
 
 1. Диапазон значений в 1М, по сути является номерами тайм-слотов в передаваемой периодической структуре. Остается только распределить эти тайм-слоты максимально равномерно и пропорционально скорости каждого виртуального канала.
 2. Каждому адресу FIFO соответствует несколько значений счетчика. Ноль если канал не создан и единица если канал имеет скорость один символ в секунду.
 3. Представим весь диапазон значений счетчика как некоторое адресное пространство и присвоим каждому каналу непрерывный диапазон значений равный символьной скорости виртуального канала. Выглядит как выделение памяти в современных вычислительных системах.
 4. Каждый модуль FIFO откликается на любое значение в пределах этого диапазона, выдавая или записывая символ.
 5. Просто подавать счетчик на адресные входы FIFO нельзя, данные будут передаваться непрерывными последовательностями раз в секунду. Для равномерного распределения опросов FIFO нужно «перевернуть» значение счетчика (поменять местами старшие разряды с младшими).
 6. FIFO также должно сравнивать этот «перевернутый» счетчик с перевернутым диапазоном значений (или повторно перевернуть адрес).
 
 |