Скачиваний:
384
Добавлен:
22.01.2014
Размер:
3.77 Mб
Скачать

30.2. Однопроцессорные архитектуры

Данные системы предполагают выполнение только одного потока команд и не рассчитаны на мультиплексирование (в смысле одновременного выполнения нескольких процессов). Классическим примером однопроцессорной архитектуры является архитектура фон Неймана со строго последовательным выполнением команд (рис.30.3).

Рис.30.3.

По мере развития вычислительной техники архитектура фон Неймана обогатилась сначала конвейером фаз операций, затем многофункциональной обработкой и получила название SISD. Оба вида средств низкоуровневого параллелизма впервые были введены в компьютерах Control Data 6600 и 7700 в начале 70-х годов и с тех пор применяются во всех компьютерах повышенного быстродействия. Конвейерная обработка используется даже в микропроцессорах I486 и Pentium. Развитие архитектуры микропроцессоров привело к появлению архитектуры RISC(ReducedInstructionSetComputing- архитектуры вычислений с сокращенным набором команд). До появления класса RISC все машины ориентировались на выполнение команд обработки данных, сохраняемых в памяти (операции память-память). Операции регистр-регистр, не требующие непосредственного обмена с памятью, выполняли только вспомогательную роль из-за ограниченного количества операционных регистров. Например, в системе IBM System/360 программист имел доступ только к 16 регистрам с фиксированной точкой и 8 регистрам с плавающей точкой одинарной точности (64 бита). Причина такого подхода к организации обработки через оперативную память была связана с трудностью организации в центральном процессоре регистровой памяти большого объема вследствие малой степени интеграции элементной базы. Архитектура обработки с использованием операций "память-память" и "регистр-регистр", а также производных видов операций "регистр-память" широко распространена и в настоящее время под названием CISC (Complete Instruction Set Computing - архитектуры вычислений с полным набором команд), но обладает существенным недостатком - обмен с памятью в процессе выполнения команды делают практически невозможной глубокую конвейеризацию арифметики, то есть ограничивается тактовая частота процессора, а значит, и его производительность. Дело в том, что чем мельче фаза дробления конвейерной обработки, тем выше частота работы процессора. Но "длина конвейера", или количество элементарных фаз в его составе, не может быть слишком большой, так как мало сделать частоту его работы максимальной, надо обеспечить также максимальную загрузку конвейера. В идеальном случае арифметика должна формировать один результат за такт, а для этого количество запущенных на исполнение (и естественно, параллельных) операций должно быть не меньше количества фаз конвейера. Количество параллельных операций в большинстве программ не так уж велико: линейные участки программ редко содержат более 3...5 параллельных операций. поэтому добавление в арифметический конвейер длинной цепочки доступа к оперативной памяти приведет к низкой эффективности его функционирования. Примером может служить суперкомпьютер CDC CYBER-205, который при максимальной производительности 400 MFLOPS (400 миллионов операций с плавающей запятой) на большинстве приложений демонстрировал около 50 MFLOPS.

Компьютеры с архитектурой RISC имеют глубокую конвейеризацию и исключение команд обработки формата "память-память" и должны иметь преимущества в производительности по сравнению с CISC компьютерами, но в программах необходимо иметь дополнительные команды обмена регистров процессора с оперативной памятью. В связи с этим, RISC-компьютеры лучше использовать в приложениях, в которых над каждой единицей данных производится большой объем вычислительной работы: инженерные и научные расчеты и т.д. Развитие программных средств позволяет их эффективно использовать и в области файловой обработки.

Развитие архитектура SISD привело к машинам с суперскалярной обработкой. Этот термин означает возможность аппаратуры процессора одновременно выполнять две или более скалярные операции, то есть команды обработки пары чисел. Суперскалярная обработка базируется на многофункциональном параллелизме и позволяет увеличить производительность компьютера пропорционально числу одновременно выполняемых операций. Существует несколько способов реализации суперскалярной обработки. Первый способ чаще всего применяется в RISC-процессорах и заключается в чисто аппаратном механизме выборки из буфера инструкций (или кэша инструкций) несвязанных команд и параллельном запуске их на исполнение. Обычно процессор выполняет две несвязанные команды одновременно, например, в процессорах Alpha фирмы DEC. В этом случае ответственность за параллельное выполнение операций возлагается в основном на аппаратные средства.

Второй способ реализации суперскалярной обработки заключается в перестройке процесса трансляции и исполнения программ. Уже на этапе подготовки программы компилятор группирует несвязанные операции в пакеты, содержимое которых строго соответствует структуре процессора. Например, если процессор содержит функционально независимые устройства сложения, умножения, сдвига и деления, то максимум, что компилятор сможет "уложить" в один пакет - это четыре разнотипные операции: сложение, умножение, сдвиг и деление. Сформированные пакеты операций преобразуются компилятором в командные слова, которые гораздо длиннее обычных. Эти команды и соответствующие им архитектуры носят название VLIW (Very Lange Insruction Word - очень широкое командное слово). Затраты на формирование суперкоманд должны окупаться скоростью их выполнения и простотой аппаратуры микропроцессора, с которого снята работа по поиску параллелизма несвязанных операций. Однако практическое внедрение VLIW-архитектуры затрудняется большими проблемами эффективной компиляции. Наибольших успехов в этих работах достигли разработчики из SPARC-центра под руководством академика Б. Бабаяна (создатель машин типа "Эльбрус").

Из всех типов параллелизма операций архитектура класса SISD не охватывает только один класс - параллелизм циклов и итераций, который тесно связан с понятием множественности потоков данных и реализуется векторной обработкой. Поэтому в классификации компьютерных архитектур выделяют специальную группу однопроцессорных систем с параллельной обработкой потоков данных - SIMD (Single Instruction Multiple Data, один поток команд - множество потоков данных).

Первой машиной этой архитектуры стала векторная суперЭВМ с матричной структурой ILLIAC IV. По проекту система должна была состоять из 4 квадрантов. каждый из которых включал в себя 64 процессорных элемента (ПЭ) и 64 модуля памяти, объединенных коммутатором на базе сети типа гиперкуб (рис.30.4). Все ПЭ квадранта обрабатывают одну векторную инструкцию, которую им направляет процессор команд, причем каждый ПЭ выполняет одну элементарную операцию вектора, данные для которой сохраняются в связанном с этим ПЭ модуле памяти.

Рис.30.4.

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

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

Положительное решение проблемы привело к созданию векторно-конвейерного принципа обработки данных в конце 60-х годов (ЭВМ STAR-100 фирмы ControlDataCorp.). Отличие векторно-конвейерной архитектуры от архитектуры матричных ЭВМ заключается в том, что вместо множества процессорных элементов, исполняющих одну и ту же команду над разными элементами векторов, применяется единственный конвейер операций, имеющий всего один вход, по которому поступают операнды, и один выход результата, тогда как в матричных системах существует множество входов по данным в процессорные элементы и множество выходов из них (рис. 30.5). Другими словами, в супер-ЭВМ с конвейерной обработкой данные всех параллельно выполняемых операций выбираются и записываются в единую память, и отпадает необходимость в коммутаторе процессорных элементов, служивших камнем преткновения в матричных ЭВМ.

Рис.30.5.

Именно эта особенность векторно-конвейерных ЭВМ обеспечивает простоту программирования и определила их широкое применение.

Современные суперЭВМ используют и суперскалярную обработку, и многофункциональную векторную обработку, и принципы RISC-архитектуры, и даже VLIW-архитектуры (например, российский проект суперЭВМ "Эльбрус-3"). Более мощные суперЭВМ являются многопроцессорными системами.