Используя область потока данных, можно смоделировать и моделировать в вычислительном отношении интенсивную обработку сигналов или многоскоростную систему обработки сигналов. Области потока данных моделируют использование модели вычисления синхронный поток данных, который управляем данными и статически запланирован.
Существует две основных причины, чтобы использовать область потока данных в вашей модели.
Улучшите пропускную способность симуляции с многопоточным выполнением.
Область потока данных усиливает многожильную архитектуру ЦП хоста - компьютера и может значительно улучшить скорость симуляции. Область автоматически делит вашу модель и моделирует систему с помощью нескольких потоков. Путем добавления задержки в систему можно далее увеличить параллелизм и улучшить пропускную способность симуляции модели.
Автоматически выведите размеры сигнала для основанных на кадре многоскоростных моделей.
Когда параметр Automatic frame-size calculation включен, области потока данных автоматически вычисляют форматы кадра и вставляют буферы в вашу модель, избегая ошибок распространения размера сигнала в многоскоростных системах обработки сигналов.
Чтобы создать область потока данных, используйте блок Subsystem Потока данных. Область блока Subsystem Потока данных предварительно сконфигурирована.
Преобразовывать существующую подсистему в Подсистему Потока данных:
Во вкладке Execution Property Inspector установите флажок Set execution domain.
Если Property Inspector не видим в меню View, выберите Property Inspector. Для получения дополнительной информации о Property Inspector смотрите Setting Properties и Параметры (Simulink).
С выбранной подсистемой, устанавливает Domain на Dataflow
.
В подсистеме, в левом нижнем углу образцового холста, существует теперь значок, который указывает, что подсистема является подсистемой Потока данных.
Области потока данных поддерживаются только на уровне подсистемы. Вы не можете установить Domain модели верхнего уровня к Dataflow
.
Симуляция областей потока данных в Нормальном и Режимах Accelerator усиливает многожильную архитектуру ЦП хоста - компьютера. Это автоматически делит вашу модель и моделирует подсистему с помощью нескольких потоков.
В первый раз, когда вы моделируете область потока данных, симуляция является одной, распараллелил. Во время этой симуляции программное обеспечение выполняет анализ затрат. В следующий раз образцовые компиляции, программное обеспечение автоматически делит систему для многопоточного выполнения.
Каждый раз, когда вы вносите изменение в области потока данных, следующая симуляция может быть одной, распараллелил, чтобы позволить программному обеспечению выполнять новый анализ затрат. После симуляции анализа затрат, в следующий раз образцовые компиляции, повторное разделение программного обеспечения доменные и последующие симуляции многопоточны.
Некоторые блоки и функции языка не поддержаны для многопоточной симуляции. Если подсистема потока данных содержит блоки или функции языка, которые не поддерживают многопоточную симуляцию, Simulink® выдает предупреждение, и подсистема всегда моделирует в одном потоке.
Если подсистема потока данных содержит блоки или функции языка, которые не поддерживаются в подсистеме потока данных, Simulink генерирует ошибку. Для получения дополнительной информации смотрите Неподдерживаемые Программные функции Simulink в Областях Потока данных.
Чтобы увеличить пропускную способность системы, может быть выгодно увеличить задержку системы. Задайте значение Latency во вкладке Execution Property Inspector.
Чтобы далее улучшать производительность симуляции, Ассистент Симуляции Потока данных может рекомендовать значение задержки для симуляции. Нажмите кнопку Dataflow assistant, чтобы открыть Ассистент Симуляции Потока данных.
В Ассистенте Симуляции Потока данных нажмите кнопку Analyze, чтобы анализировать область потока данных для производительности симуляции и иметь Ассистент Симуляции Потока данных, предлагают оптимальную задержку для вашей подсистемы потока данных.
Анализ потока данных является процессом с тремя шагами. Во время первого шага анализ определяет, должно ли это повторно разделить модель в потоки путем проверки подсистемы потока данных на моделирование изменений начиная с последней симуляции. Если разделение необходимо, подсистема потока данных моделирует с профилированием времени выполнения, включенным для каждого блока в подсистеме в одном потоке. На последнем шаге ассистент перекомпилировал модель, которая автоматически делит подсистему в один или несколько потоков, чтобы использовать в своих интересах параллелизм в модели.
После того, как анализ завершается, ассистент предлагает значение задержки, которое оптимизирует пропускную способность системы для многожильной архитектуры ЦП хоста - компьютера.
Ассистент Симуляции Потока данных указывает на количество потоков, которые будет использовать модель, если вы примените предложенную задержку. Нажмите кнопку Accept, чтобы применить предложенную задержку к подсистеме. Когда задержка вводится в область потока данных, вывод подсистемы потока данных отмечен значком задержки на образцовом холсте. Изменения в модели в подсистеме потока данных могут потребовать анализа затрат и повторного разделения.
Если вы задаете задержку, больше, чем задержка, предложенная Ассистентом Симуляции Потока данных, дополнительные задержки все вставляются при выводе подсистемы. Если вы задаете значение задержки, меньшее, чем значение, предложенное Ассистентом Симуляции Потока данных, ассистент предупреждает, что вы пропускаете доступный параллелизм.
Для получения дополнительной информации о типах параллелизма в областях потока данных смотрите Многожильную Симуляцию и Генерацию кода Областей Потока данных.
Simulink может автоматически вычислить форматы кадра, необходимые для каждого блока в основанной на кадре системе обработки сигналов, и вставить буферы при необходимости. Чтобы включить автоматическое вычисление формата кадра в подсистеме Потока данных, выберите Automatic frame size calculation во вкладке Execution Property Inspector.
Функции, Поддерживавшие для Автоматического Вычисления Формата кадра. Автоматическое вычисление формата кадра поддерживается только для сигналов, типы данных которых являются одним из числовых типов (встроенное целое число, дважды, одна, или фиксированная точка). Сигналы с помощью перечислимого типа или чей тип данных является шиной, не поддержаны.
Вычисление формата кадра поддерживает только двумерные сигналы.
Блоки, поддержанные для автоматического вычисления формата кадра
Подсистемы потока данных не поддерживают следующие программные функции Simulink.
Не поддерживаемый | Описание |
---|---|
Сигналы переменного размера | Программное обеспечение не поддерживает сигналы переменного размера. Сигнал переменного размера является сигналом, размер которого (число элементов в размерности), в дополнение к ее значениям, может измениться во время образцового выполнения. |
Модели, на которые ссылаются, | Блоки Модели - ссылки не поддержаны в областях потока данных. |
Невиртуальные Подсистемы Simulink, включая Инициированную Подсистему, Enabled Подсистему и атомарные подсистемы | Только виртуальные подсистемы поддерживаются в областях потока данных. |
Блоки с непостоянными или ненаследованными шагами расчета | Все шаги расчета в подсистемах потока данных должны быть наследованы (-1 ), или постоянные (inf ). |
Непрерывные блоки | Блоки в библиотеке Continuous (Simulink) не поддержаны в областях потока данных. |
Блоки Хранилища данных | Память Хранилища данных, Чтение Хранилища данных и блоки Записи Хранилища данных не поддержаны в подсистемах потока данных. |
Подмножество блоков Simulink | Если подсистема потока данных содержит блоки или функции языка, которые не поддерживаются, Simulink генерирует ошибку, когда модель компилирует. Для некоторых блоков, таких как Осциллограф блокируется, Simulink указывает в образцовом холсте в разовом редактированием, что они не поддержаны путем выделения блока в оранжевом. |
Графики Stateflow® | Диаграммы Stateflow не поддержаны в подсистемах потока данных. |
Блоки SimEvents® | Блоки SimEvents не поддержаны в подсистемах потока данных. |
Генерация HDL-кода | Только генерация кода C/C++ поддерживается для моделей с подсистемами потока данных. |