Архитектура потока данных
-
Основы архитектуры потоков данных
- Архитектура потоков данных отличается от традиционной архитектуры фон Неймана и архитектуры потока управления.
- В архитектуре потоков данных нет программного счетчика, а исполнение инструкций зависит от доступности входных аргументов.
-
Применение в специализированном оборудовании
- Архитектура потоков данных успешно реализована в специализированном оборудовании, включая цифровую обработку сигналов и обработку графики.
- В последнее время архитектура потоков данных используется в хранилищах данных и искусственном интеллекте.
-
Важность в современных архитектурах программного обеспечения
- Архитектуры потоков данных актуальны для многих архитектур программного обеспечения, включая разработки ядра баз данных и платформы параллельных вычислений.
-
Синхронизация и управление нагрузкой
- Архитектура синхронных потоков данных адаптируется к рабочей нагрузке приложений для передачи данных в реальном времени.
- Детерминированные архитектуры потоков данных позволяют программистам управлять сложными задачами, такими как балансировка нагрузки и синхронизация.
-
Терминологическая коллизия
- Термин «поток данных» также используется в области параллельного программирования для описания программирования потоков данных.
-
История и развитие
- В 1970-х и начале 1980-х годов исследования в области архитектуры потоков данных были основной темой.
- Джек Деннис из Массачусетского технологического института был пионером в области статических потоков данных.
- Manchester Dataflow Machine и архитектура маркированных токенов MIT были крупными проектами в области динамических потоков данных.
- Однако исследования не решили проблемы эффективной трансляции токенов данных и диспетчеризации токенов команд.
-
Парадигма ограниченного потока данных
- С 1990-х годов доминирующей вычислительной парадигмой стало ограниченное упорядоченное выполнение (OOE).
- OOE вводит идею окна выполнения, в котором инструкции могут выполняться в зависимости от данных.
- Процессоры OOE динамически помечают зависимости кода от данных, что ограничивает размеры окна выполнения.
-
Машины для обработки статических и динамических потоков данных
- Статические потоки данных используют обычные адреса памяти в качестве тегов зависимостей от данных.
- Динамические потоки данных используют память с адресацией содержимого (CAM) для обеспечения параллелизма.
-
Компилятор потока данных
- Компиляторы потока данных записывают зависимости между командами в двоичные файлы, что позволяет выполнять инструкции не по порядку и параллельно.
-
Программы и инструкции
- Программы загружаются в CAM компьютера с динамическим потоком данных, а инструкции активируются и выполняются в зависимости от доступности данных.
- Инструкции передаются в виде пакетов, называемых токенами команд, и результаты также передаются в виде токенов данных.
-
Сети передачи данных
- Сети передачи данных доставляют токены команд и возвращают токены данных, что позволяет параллельно выполнять инструкции.
-
Рекомендации
- В статье упоминаются другие темы, связанные с архитектурой потоков данных, включая параллельные вычисления и системы на кристалле.
Полный текст статьи: