Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Учебное пособие 3000429.doc
Скачиваний:
23
Добавлен:
30.04.2022
Размер:
4.02 Mб
Скачать
        1. Модели вычислений

Модель вычислений (model of computation - МоС) является фундаментальным понятием в проектировании на системном уровне. Интересно отметить, что это понятие редко обсуждалось на уровне аппаратного проектирования и поэтому может оказаться интересным для многих читателей. Модель вычислений неформально можно представить как конкретный стиль моделирования, лучше всего соответствующий данному проекту или прикладной области и при этом обладающий свойствами, полезными в симуляции, синтезе и/или анализе. Например, системную модель многих приложений по обработке сигналов и изображений можно создать с помощью модели потока данных - точнее одного из ее вариантов SDF (synchronous data flow - синхронный поток данных). Если системная модель соответствует SDF принципам, то можно создать эффективные симуляционные модели и планы реализации. Другие МоС могут поддерживать некоторые методы формального анализа.

Более формально модель вычислений можно задать тремя определениями:

• Базовая временная модель (без времени, либо на основе действительных или целых чисел, с заданной точностью) и семантика упорядочивания событий на основе временной модели (строгое упорядочивание, нон-детерминизм, частичное упорядочивание, случайное упорядоыивание, и .т.д.).

• Взаимодействие процессов между собой. Семантика событий, объектов, токенов и передачи данных от одного процесса к другому.

• Условия активации или »запуска» процесса (иногда называемые «правилами запуска процесса»). В модели потока данных, например, процесс запускается при условии наличия определенного количества токенов на входах.

Многие языки проектирования, такие как традиционные HDL языки, используют одну модель вычислений (отдельное событие, упорядоченное глобально на общей «временной шкале», наряду с семантикой «временных интервалов» для сходимости симуляции системы). Хотя SystemC также использует одну модель вычислений, заложенную в язык и его симуляционное ядро, эта модель является более общей и позволяет накладывать на нее различные частные модели вычислений. Она поддерживает настраиваемые события и возможность синхронизации, возможность создания проектировщиками специализированных каналов, портов, интерфейсов и модулей, также в нее входит очень общая временная модель. Все это позволяет создание специализированных моделей вычислений. В случае системных моделей, полностью попадающих в один специализированный класс МоС, можно также оптимизировать симуляционное ядро SystemC для достижения более эффективной симуляции данного класса МоС — например, в случае статически спланированного потока данных можно создать статически спланированную симуляционную модель, которая будет выполняться значительно быстрее.

Язык SystemC поддерживает многие возможные модели вычислений и его открытость позволяет больше экспериментировать. Было успешно проведено много экспериментов, например сети процессов и потоков данных (сети процессов Кана (Kahn)), аппаратное моделирование на уровне RTL, сетевое моделирование, связывание симуляционного ядра SystemC с непрерывным временным моделированием и симулированием (для AMS проектов), и сетевые симуляторы.