Область Dataflow

Используя область dataflow, можно смоделировать и симулировать вычислительно интенсивную систему обработки сигналов или многоразовую систему обработки сигналов. Dataflow областей моделировать с использованием модели расчета synchronous dataflow, которая управляется данными и статически расписывается.

В вашей модели существуют две основные причины использовать область dataflow.

  • Улучшите пропускную способность симуляции с многопоточным выполнением.

    Dataflow области использует многоядерную архитектуру CPU хоста-компьютера и может значительно улучшить скорость симуляции. Область автоматически разделяет вашу модель и симулирует систему с помощью нескольких потоков. Добавив задержку в вашу систему, можно еще больше увеличить параллелизм и улучшить пропускную способность симуляции вашей модели.

  • Автоматический вывод размеров сигнала для основанных на кадрах многоскоростных моделей.

    Когда параметр Automatic frame-size calculation включен, области dataflow автоматически вычисляют форматы кадра и вставляют буферы в вашу модель, избегая ошибок распространения размера сигнала в многочасовых системах обработки сигналов.

Определение областей Dataflow

Чтобы создать область dataflow, используйте блок Dataflow Subsystem. Область блока Dataflow Subsystem предварительно сконфигурирован.

Чтобы преобразовать существующую подсистему в Dataflow Subsystem:

  1. На вкладке Execution Property Inspector установите флажок Set execution domain.

    Если Property Inspector не отображается, на вкладке Modeling, под Design, выберите Property Inspector. Для получения дополнительной информации о Property Inspector, смотрите Настройка модели и свойств блока с Property Inspector (Simulink).

  2. При выбранной подсистеме установите для Domain значение Dataflow.

Внутри подсистемы, в нижнем левом углу холста модели, теперь находится значок, который указывает, что подсистема является подсистемой Dataflow.

Примечание

Области Dataflow поддерживаются только на уровне подсистемы. Вы не можете задать Domain модели верхнего уровня Dataflow.

Симуляция областей Dataflow

Симуляция областей dataflow использует многоядерную архитектуру CPU хоста-компьютера. Он автоматически разделяет вашу модель и симулирует подсистему с помощью нескольких потоков.

При первом моделировании области dataflow симуляция происходит с одной резьбой. Во время этой симуляции программное обеспечение выполняет анализ затрат. В следующий раз, когда модель компилируется, программное обеспечение автоматически разбивает систему на разделы для многопоточного выполнения.

Каждый раз, когда вы вносите изменения в области dataflow, следующая симуляция может быть однопоточной, чтобы программное обеспечение могло выполнить новый анализ затрат. После симуляции анализа затрат, в следующий раз, когда модель компилируется, программное обеспечение перераспределяет область, и последующие симуляции многопоточны.

Некоторые блоки и языковые функции не поддерживаются для многопоточной симуляции. Если подсистема dataflow содержит блоки или языковые функции, которые не поддерживают многопоточную симуляцию, Simulink® выдает предупреждение, и подсистема всегда моделирует в одном потоке.

Если подсистема dataflow содержит блоки или языковые функции, которые не поддерживаются в подсистеме dataflow, Simulink генерирует ошибку. Для получения дополнительной информации смотрите Неподдерживаемые функции ПО Simulink в областях Dataflow.

Параметры Dataflow

Время ожидания

Чтобы увеличить пропускную способность системы, может быть выгодно увеличить задержку системы. Задайте значение Latency на вкладке Execution Property Inspector.

Чтобы еще больше улучшить эффективность симуляции, помощник по симуляции Dataflow может рекомендовать значение задержки для симуляции, а также другие свойства модели. Нажмите кнопку Dataflow assistant, чтобы открыть Dataflow Simulation Assistant.

Помощник по моделированию Dataflow предлагает использовать следующие настройки для оптимальной эффективности симуляции.

Чтобы принять предложенные настройки модели, рядом с Suggested model settings for simulation performance нажмите Accept all. Также можно развернуть раздел, чтобы изменить настройки по отдельности.

Нажмите кнопку Analyze, чтобы проанализировать область dataflow на эффективность симуляции и иметь Dataflow Simulation Assistant предложить оптимальную задержку для подсистемы dataflow.

Анализ dataflow является трехэтапным процессом. На первом этапе анализ определяет, нужно ли перераспределять модель в потоки, проверяя подсистему dataflow для моделирования изменений с момента последней симуляции. Если необходимо разбиение, подсистема dataflow моделирует с включенным профилированием во время выполнения для каждого блока внутри подсистемы в одном потоке. На последнем шаге помощник перекомпилирует модель, которая автоматически разделяет подсистему на один или несколько потоков, чтобы использовать преимущества параллелизма в модели.

После завершения анализа ассистент предлагает значение задержки, которое оптимизирует пропускную способность системы для многоядерной архитектуры ЦП хоста-компьютера.

Помощник по симуляции Dataflow указывает количество потоков, которые будет использовать модель, если вы применяете предложенную задержку. Нажмите кнопку Accept, чтобы применить рекомендуемую задержку к подсистеме. Когда задержка вводится в область dataflow, выход подсистемы dataflow помечается значком задержки на холсте модели. Изменения модели в подсистеме dataflow могут потребовать анализа затрат и перераспределения.

Если вы задаете задержку, большую, чем задержка, предложенная помощником по симуляции Dataflow, все дополнительные задержки вставляются в выход подсистемы. Если вы задаете значение задержки меньше значения, предложенного помощником по симуляции Dataflow, помощник предупреждает, что вы пропускаете доступное параллелизм.

Если ваша модель содержит несколько подсистем dataflow, можно использовать Performance Advisor, чтобы проанализировать и предложить задержку для каждой из подсистем dataflow за один шаг. Чтобы найти оптимальные настройки задержки для подсистем Dataflow в вашей модели, откройте Performance Advisor. В папке <reservedrangesplaceholder3>> <reservedrangesplaceholder2>> <reservedrangesplaceholder1> осуществите Check Dataflow Domain Settings проверку.

Для получения дополнительной информации о типах параллелизма в областях dataflow, смотрите Многоядерная симуляция и Генерация кода областей Dataflow.

Автоматическое вычисление формата кадра

Simulink может автоматически вычислить форматы кадра, необходимые для каждого блока в системе обработки сигналов на основе кадров, и вставить буферы, где это необходимо. Чтобы включить автоматическое вычисление формата кадра в подсистеме Dataflow, выберите Automatic frame size calculation на вкладке Execution Property Inspector.

Функции, поддерживаемые для автоматического вычисления формата кадра.  Автоматическое вычисление формата кадра поддерживается только для сигналов, типы данных которых являются одним из числовых типов (встроенное целое, двойное, одинарная или фиксированная точка). Сигналы, использующие перечисленный тип или тип данных которых является шиной, не поддерживаются.

Вычисление формата кадра поддерживает только двумерные сигналы.

 Блоки, поддерживаемые для автоматического вычисления формата кадра

Неподдерживаемые функции программного обеспечения Simulink в областях Dataflow

Подсистемы Dataflow не поддерживают следующие функции программного обеспечения Simulink.

Не поддерживаетсяОписание
Сигналы переменного размераПрограммное обеспечение не поддерживает сигналы переменного размера. Сигнал переменного размера является сигналом, размер которого (количество элементов в размерность), в сложение к его значениям, может измениться во время выполнения модели.
Ссылка на моделиModel (Simulink) блоки не поддерживаются в областях dataflow.
Невиртуальные подсистемы Simulink, включая Triggered Subsystem (Simulink), Enabled Subsystem (Simulink) и атомарные подсистемыВ областях dataflow поддерживаются только виртуальные подсистемы.
Блоки с непостоянными или неунаследованными шагами расчетаВсе шаги расчета внутри подсистем dataflow должны быть унаследованы (-1), или константа (inf).
Непрерывные блоки

Блоки в библиотеке Continuous (Simulink) не поддерживаются в областях dataflow.

Simulink указывает в холсте модели во время редактирования, что эти блоки не поддерживаются, подсвечивая блок оранжевым цветом.

Блоки Хранилища Данных

Data Store Memory, Data Store Read и блоки Data Store Write не поддерживаются в подсистемах dataflow.

Подмножество блоков Simulink

Если подсистема dataflow содержит блоки или языковые функции, которые не поддерживаются, Simulink генерирует ошибку, когда модель компилируется.

Для некоторых блоков, таких как блоки Scope, Simulink указывает в холсте модели во время редактирования, что они не поддерживаются подсветкой блока оранжевым цветом.

Stateflow® чартыДиаграммы Stateflow не поддерживаются в подсистемах dataflow.
SimEvents® блокиБлоки SimEvents не поддерживаются в подсистемах dataflow.
Генерация HDL-кодаДля моделей с подсистемами dataflow поддерживается только генерация кода C/C + +.

См. также

Похожие темы