- •8.4. Средства и методы разработки программного обеспечения
- •8.4.2. Программные средства поддержки проектирования/
- •8.5.1. Программные системы моделирования
- •8.5.2. Прототипные платы
- •8.5.3. Эмуляторы пзу
- •8.5.4. Внутрисхемные эмуляторы
- •8.5.5. Интегрированные среды разработки (оболочки)
- •8.6.1. Программаторы
- •8.6.2. Логические анализаторы
- •8.6.3. Встроенные в мп средства отладки
- •8.7. Операционные системы реального времени
- •8.8. Jtag-интерфейс и системные функции на его основе
- •8.9. Процедура проектирования и сведения
- •8.9.2. Последовательность проектирования для бис пл
- •8.10. Базовые сведения о языке vhdl
- •8.10.1. Исторический обзор и проблемная ориентация языка
- •8.10.2. Базовые понятия языка и архитектура программ
- •8.10.3. Синтаксическая организация проекта
- •8.10.4. Общеалгоритмическая составляющая языка
- •8.10.5. Проблемно составляющая языка
- •8.10.6. Структурное описание
- •8.10.7. Описание поведения
- •8.11. Описание проектов на языке vhdl примеры, иллюстрирующие основные конструкции vhdl
- •8.11.1. Структурное описание
- •8.11.2. Поведенческое описание
- •8.11.3. Сравнение структурного и поведенческого способов
- •8.11.4. Описание типовых фрагментов вычислительной техники
- •8.12. Пример автоматизированного проектирования
- •Описания аппаратуры
- •8.12.1. Варианты реализации и выбор элементной базы
- •8.12.2. Проектирование бис пл
- •8.12.3.Разработка микропроцессорной системы
- •8.12.4. Особенности процедуры проектирования
- •Этап 1. Этап конфпгурпрованпя аппаратных ресурсов кристалла
- •Этап 3. Разработка программной части проекта
- •Этап 4. Кодовая симуляция и отладка
- •Этап 5. Компиляция и создание объектного кода
- •Этап 7. Загрузка проекта
- •Этап 8. Натурная отладка проекта
- •9.1. Архитектуры с разделяемой общей памятью
- •9.2. Архитектуры с распределенной областью памяти
- •9.3. Матричные системы
- •9.4. Машины, управляемые потоком данных
- •9.5. Систолические системы
- •9.6. Обобщенная архитектура параллельных систем
- •Глава 1. Основы микропроцессорной техники
- •Глава 2. Процессоры общего назначения и системы на их основе
- •Глава 4. 8-разрядные микроконтроллеры
- •Глава 5. Коммуникационные микроконтроллеры и системы на их основе
- •Глава 7.Программируемая логика и ее применение в микропроцессорных системах
- •Глава 8. Проектирование мпс
- •8.4. Средства и методы разработки программного обеспечения
- •8.4.1. Средства индивидуальных и интегрированных пакетов
- •Глава 9. Архитектуры параллельных вычислительных систем
9.5. Систолические системы
Разработчики систолических архитектур ставили перед собой задачу получить систему, которая совмещала бы достоинства конвейерной и матричных обработок. Первоначально систолические архитектуры разрабатывались для узкоспециализированных вы числительных систем. Однако в дальнейшем были найдены соответствующие алгоритмы для достаточно широкого класса задач, позволяющие реализовать принципы систолической обработки.
Основной принцип систолической обработки заключается в том, чтобы выполнить все стадии обработки каждого элемента данных, извлеченного из памяти, прежде чем вновь поместить в память результат этой обработки. Этот принцип реализуется систолической матрицей процессорных элементов, в которой отдельные процессорные элементы объединены между собой прямыми и регулярными связями, образующими конвейер. Таким образом, может формироваться несколько потоков операндов, каждый из которых образован исходными операндами (элементами структуры данных, хранящейся в памяти), промежуточными результатами, полученными при выполнении элементарных операций в каждом процессорном элементе, и элементами результирующей структуры. По токи данных синхронизированы единой для всех процессорных элементов системой тактовых сигналов. Во время тактового интервала все элементы выполняют короткую неизменную последовательность команд (или одну команду).
Рис. 914 иллюстрирует систолическую систему для вычисления "свертки функции", использующую простую линейную область. Во время тактового интервала входные данные продвигаются вправо, умножаются на локальный вес и аккумулируются на выходе в порядке следования.
Рис. 9.14. Пример построения систолической структуры
Систолические архитектуры обладают следующими достоинствами:
• минимизируются обращения к памяти, что позволяет согласовать скорость работы памяти со скоростью обработки;
• упрощается решение проблем ввода/вывода вследствие уменьшения конфликтов при обращении к памяти;
• эффективно используются технологические возможности СБИС за счет регулярности структуры систолической матрицы.
Однако для реализации этих преимуществ необходимо найти для каждой задачи со- ответствующие систолические алгоритмы, которые могут быть реализованы на систоли ческой структуре системы. Такие алгоритмы существуют сегодня для широкого круга задач, среди которых задачи числовой обработки, обработки сигналов и символов; умножение и обращение матриц, решение линейных систем, дискретное преобразование Фурье, кодирование и декодирование числовых последовательностей и т. д. Большинство этих алгоритмов сводится к рекуррентным соотношениям того или иного вида. В зависимости от вида систолического алгоритма, т. е. числа операндов, участвующих в примитивных операциях, типа этих элементарных операций, М-последовательности их выполнения выбираются тип процессорного элемента и структура локальных регулярных связей между ними. К типовым конфигурациям систолических матриц относятся: линейная (рис. 9.14), для реализации алгоритмов фильтрации при обработке сигналов, сравнения цепочек литер при обработке баз данных; прямоугольная, перемножения матриц, нахождения двухмерных ДПФ; и гексагональная, для выполнения операций об ращения матриц, решения линейных систем уравнений и т. д.
Однако не все алгоритмы могут быть сведены к систолическим, и во многих случаях приходится отказываться от алгоритмов с меньшей сложностью в пользу более сложных, но регулярных алгоритмов, отвечающих требованиям систолической обработки.