- •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.3. Матричные системы
Третий важный класс параллельных машин — матричные системы — относятся к классу signal inctruction multiple data machines(SIMD). Ключевой характеристикой ЭТОЙ модели программирования ЯВЛЯЕТСЯ ТО, что операция может быть выполнена параллельно на каждом элементе большой регулярной структуры данных, таких как массивы и матрицы.
Компьютерная таксономия, появившаяся в изданиях начала 1970—х годов, определяет структуру системы в терминах числа одновременно выполняемых различных инструкций и числа обрабатываемых элементов данных. В этом случае обычные последовательные компьютеры определяются как системы с одиночным потоком команд и одиночным потоком данных — (SISD), а параллельные машины, построенные из множества обычных про- цессоров как системы с множественным потоком команд и множественным потоком данных (МIМD). Альтернативой им стали системы класса одиночного потока команд и множественного потока данных — (SIMD). Исторически такой подход появился в середине 1960-х. Идея была в том, что вся последовательность инструкций могла бы быть консолидирована в управляющем процессоре. Процессор данных включал бы только АLU память и обеспечивал простое взаимодействие с ближайшими соседями.
В SIMD-машинах модель программирования была напрямую реализована в физическом аппаратном уровне. Обычно управляющий процессор (Пр) осуществлял рассылку каждой инструкции по массиву процессорных элементов, которые были соединены между собой в форме регулярной решетки, как показано на рис. 9.12.
Матричные системы ориентированы на большой класс вычислительных задач, которые требуют выполнения матричных операций или обработки массивов, т.е. когда выполняются одинаковые операции на уровне каждого элемента массива или матрицы, Вовлекающие в процесс вычисления соседние элементы. Таким образом, управляющий процессор инструктирует процессоры данных по выполнению каждой операции над локальным элементом данных или все выполняют операцию коммуникации/обмена данных (все сразу).
В дальнейшем, в середине 1970-х, векторные процессоры затмили собой развитие других многопроцессорных систем. Векторные процессоры интегрировали скалярный процессор с коллекцией функциональных единиц, которые оперировали с векторными данными на памяти с поплайновой организацией. Способность оперировать над векторами в любом месте памяти ликвидировала необходимость размещения используемых структур данных в жесткую структуру внутренних связей и значительно упростила проблему получения объединенных данных.
Набор команд первого векторного процессора CDC Star-100 включал в себя векторные операции, которые позволяли комбинировать два источника векторов из памяти и создавать в памяти вектор результата. Машина работала на полной скорости тогда, когда векторы были соседними и, следовательно, основное время тратилось на простое транспонирование матриц. Сенсационное изменение произошло в 1976 г., когда был представлен СREY-1 в котором концепция LOAD-STORE архитектуры была расширенна на обработку векторов и реализована в процессорах СDС 6600 и СDС 7600 (и продолжена в современных RISC-машинах. Векторы в памяти с любым фиксированным шагом по индексу были перенесены в или из соседних (близких) регистров посредством загрузки вектора и хранения инструкций. Арифметика выполнялась на векторных регистрах. Использование очень быстрых скалярных процессоров (80 МНz), интегрированных с векторными операциями и использующих большую полупроводниковую память, привело к мировому господству суперкомпьютеров рассматриваемого класса. Более чем 20 последующих лет CRAY Research лидировал на суперкопьютерном рынке, увеличивая пропускную способность передачи векторов в памяти, число процессоров, число векторных поплайнов и длину векторных регистров.
Рис. 9.12. Структура матричных систем
Второй раз SIMD-компьютеры пережили эпоху своего возрождения в середине 1980-х, когда развитие VLSI-design привело к появлению доступного 32-разрядного микропроцессора (это были так называемые одноразрядные секционные микропроцессоры, или микропроцессоры с разрядно-модульной организацией). В уникальной петлевой архитектуре в data parallel-режиме было размещено 32 простых одноразрядных элементарных процессора на одном чипе, вместе с серией соединений с соседними процессорами. Совокупность последовательных инструкций была размещена на управляющем процессоре. Главное было в том, что такие системы с несколькими серийными процессорными элементами были созданы и имели разумную цену.
В дальнейшем технологические факторы, которые с это bit-serial-проектирование привлекательным и обеспечили бьютрое и недорогое проектирование на базе однокрис- тальных процессоров с плавающей точкой, проложили путь очень быстрым микропроцессо- рам с интегрированными плавающими запятыми и кэш-памятью. Это устранило ценовые преимущества консолидированной последовательной логики, описанной выше, и обеспечило равенство пиковой производительности на более малом числе полных процессоров.
Таким образом, пока существует пользовательский уровень абстракции параллельных операций на больших регулярных структурах данных, продолжается и предложение инте- ресных решений для рассматриваемого важного класса проблем. Машинная организация, поддерживая модели data parallel programming models, развивается по направлению к более общим параллельным архитектурам множественной кооперации микропроцессоров, более масштабируемой разделяемой памяти и МРА-машинам, несмотря на то, что существуют решения в области создания специализированных компьютерных сетей, поддерживающие глобальную синхронизацию процессоров. В последнем случае сетевая поддержка выступает в роли барьера, который в особых точках программы переводит каждый процесс в режим ожидания до тех пор, пока остальные процессы не достигнут заданной точки синхронизации. В действительности, SIMD-подход эволюционировал в SPMD подход, в котором все процессоры выполняют копии одних и тех же программ и имеют, таким образом, в большей мере схожесть с более структурированными формами разделяемой памяти и МР-программирования.
В середине 1980-х возрождение SIMD привело к появлению других архитектурных направлений, которые были исследованы в академических институтах и промышленности, но имели меньший коммерческий успех и поэтому не получили широкого распространения по сравнению с рассмотренными выше.Два подхода, которые развилось до законченных программных систем, — dataflow architecture и systonic architecture .
