Системы с конвейерной обработкой информации 2 страница
Число элементарных машин (ЭМ) не регламентировано и определяется классом решаемых задач. Структурной единицей является ЭМ, включающая вычислительный модуль (ВМ) и модуль межмашинной связи (ММС). Состав элементарной машины достаточно произвольный, например, это может быть специфицированная мини-ЭВМ, типа
СМ ЭВМ (80-е годы прошлого века).Модуль межмашинной связи обеспечивает передачу данных, адресов и управляющей информации между соседними элементарными машинами. Структура системы может быть схематически такой, как представлена на нижеследующем рисунке 4.8.Каждая элементарная машина имеет два вида связей с четырьмя соседними ЭМ, обеспечивающих полудуплексную работу – сначала связь в одну сторону, потом в другую. Связи типа 1(отмечены жирными линиями) используются для пересылки данных, передачи адресов и обмена логическими переменными между элементарными машинами. Связи типа 2 служат для программирования соединений типа 1 между ЭМ и передачи управляющей информации, обеспечивающей использование общих ресурсов, таких, например, как внешняя память и других периферийных устройств. В системе имеется еще один тип связи – 3. Эта связь существует между элементарным модулем (читай, процессором) и модулем межмашинной связи, в пределах одной ЭМ.
Важным свойством, которым должны обладать эти системы является возможность программирования структуры – настройка связей типа 1. Для этого в модули межмашинной связи встраивают специальные регистры, содержимое которых может быть изменено либо самим модулем, либо элементарным модулем, либо ЭМ в целом.
Еще одной разновидностью этого направления систем являются, так называемые, однородные вычислительные среды, представляющие собой, в общем случае, решетчатые n-мерные структуры, а в частном случае двумерные – плоские решетки (рис. 4.9).
Узлами решетки являются коммутационные и функциональные устройства, подобные ЭМ однородной системы, позволяющие определенной настройкой создать любую структуру. В частном случае двумерной структуры, каждая «клетка» соединяется с четырьмя соседними. Между двумя соседними клетками проходят два канала настройки и один канал передачи рабочей информации. Отмечаются большие затраты и сложность реализации связей между отдельными элементами среды. Не менее сложной задачей является их программирование.
В целом можно констатировать, что данный вид архитектур отработан недостаточно, но, тем не менее, вызывает определенный интерес и может найти дальнейшее развитие.
4.5 Функционально распределенные системы
Вычислительные системы, в общем, разрабатываются для решения большого количества самых разнообразных задач, реализация которых осуществляется путем выполнения еще большего количества различных функций, Это обработка целочисленных значений, действительных чисел, графической информации и изображений, текстов, решение систем дифференциальных уравнений и матриц. Обеспечение работ по программированию, отладке, трансляции программ, обеспечение доступа к различным типам, формам и структурам данных и многое другое. При этом еще нельзя забывать о специфических функциях управляющих программ операционных систем, функциях управления виртуальной памятью, сред-ствами ввода-вывода и пересылки данных, а также контроль и диагностику системы и др.
Реализация всех перечисленных функций на однопроцессорных ЭВМ или даже на высокопроизводительных многопроцессор-ных комплексах оказывается не всегда эффективной и экономичной. Вспомните! Вычислительные системы призваны решать определенный круг задач. Поэтому сочли целесообразным и экономически выгодным способом разработки вычислительных систем -использование специализированных процессоров, ориентированных на реализацию определенных функций.
Многопроцессорные вычислительные системы, построенные на базе разнотипных процессоров, ориентированных на решение определенных задач и, соответственно, на реализацию определенных функций, назвали функционально распределенными вычислительными системами (ФРВС).
Система содержит n-е число специализированных процессоров, обеспеченных некоторым объемом оперативной памяти. Реализация системы сопряжения устройств может быть разнообразной – с помощью коммутационного поля, общей шины или коммутаторов. Управляющий процессор осуществляет распределение ресурсов и управляет реализацией задач, то есть выполняет функции супервизора. Обрабатывающему процессору может быть вменена задача обработки числовых и символьных данных, матричному – матричная и векторная обработка. С помощью языкового процессора можно выполнять трансляцию программ. Управление базами данных можно поручить специально для этого выделенному процессору. В современных машинах управление вводом-выводом информации также осуществляется специализированным процессором (а то и не одним). Наконец, обеспечить передачу информации по каналам связи можно с помощью телекоммуникационного процессора.
Архитектура функционально распределенной вычислительной системы в обобщенном схематическом представлении может быть проиллюстрирована рис. 4.10, при этом надо понимать, что состав
системы представлен достаточно условно. Состав конкретной системы определяется классом предполагаемых к решению задач. Мы говорим о системе, построенной на специализированных процессорах. Каким образом можно произвести их специализацию. Это можно сделать несколькими способами: на уровне структуры, микропрограммном или программном. Специализация на уровнеструктуры достигается за счет включения в состав процессора специальных регистровых структур, а в программу пользователя команд, «заставляющих» процессор эффективно реализовать заданный набор операций. Специализация на микропрограммном уровне сводится к включению в микропрограммы набора микроко-манд, ориентированных на выполнение соответствующего набора функций. Программная специализация достигается загрузкой в память соответствующего набора программ.
Описанная идея имеет реальное жизненное воплощение. Приведем лишь один интересный пример. Уже в 1970 г. была создананеоднородная восьмипроцессорная система SYMBOL (рис. 4.10). Процессор-супервизор управляет работой всей системы, координируя остальные процессоры, создавая очереди заявок к ним и распределяя их между задачами. Центральный процессор выполняет команды основной программы, арифметические и логические операции.
Организация системы памяти – виртуальная, управляемая специализированным процессором, обрабатывающим заявки других процессоров на запись и чтение данных произвольной структуры.
Виртуальная память состоит из 2 16 страниц, содержащих 256 64-битных слов. Емкость основной памяти небольшая – всего 8 Кслов (32 страницы). Емкость дисковой памяти – 50 тыс. страниц. ЕЕ распределением, поиском, считыванием и передачей нужной страницы занимается специализированный процессор управления дисками. Управление вводом-выводом информации реализуется процессором управления каналами, к которым подключены внешние устройства. Редактирование и преобразование вводимых данных обеспечивается процессором сопряжения. Процессор-транслятор обеспечивает перевод программы на внутренний машинный язык. Сопряжение всех устройств системы осуществляется с помощью главной шины, содержащей 111 линий связи. Распределение линий показано на рисунке 4.11. Не указанные на рисунке линии используются для передачи кода операции, указания приоритета информации и синхронизации работы пользователей. Приведенная в качестве примера система отличалась достаточно высокой производительностью – 75 тыс. операторов работающей программы.
4.6 Системы с перестраиваемой структурой
Идея создания систем с перестраиваемой структурой прослеживалась нами ранее, при обсуждении многомашинных и многопроцессорных архитектур и здесь лишь развиваются ее некоторые существенные концепции.
Работы в этом направлении, как и прежде, связаны с решением задачи повышения производительности вычислительных систем, которая может быть обеспечена:
- применением параллелизма процессов управления, доступа к данным и их обработки;
- децентрализацией управления работой системы и асинхронностью взаимодействия процессоров и других различных устройств системы;
- возможностью перестройки структуры с целью адаптации системы к потребностям задач в ресурсах и повышения устойчивости элементов к отказам;
- возможностью развития системы (открытость) за счет подключения к ней дополнительных устройств обработки данных без изменения принципов их функционирования;
- созданием систем на основе модулей технических и программных средств, обеспечивающих однородность их структуры.
Реализация такого подхода позволяет создавать высокопроизводительные системы из одинаковых «кирпичиков» - сравнительно простых конструктивных структур – модулей. В качестве
таковых могут использоваться, например, микро-ЭВМ с относительно небольшим быстродействием и ограниченным объемом памяти.
Возможность объединения теоретически неограниченного количества микро-ЭВМ в системы, адаптирующиеся к потребностям пользовательских задач, позволяет обеспечить пользователей вы-сокопроизводительными средствами обработки числовых данных, графической информации и изображений. Правда, это требует обязательной разработки некоторой программно-аппаратной надстройки над базовыми микро-ЭВМ и решение ряда проблем, свя-занных с организацией параллелизма вычислительных процессов, распределения их по системе модулей и координацию их асинхронного выполнения.
Структурная организация систем. Итак, в качестве структурной единицы рассматриваемых систем определен модуль. Ус-ловно, модуль можно представить в виде совокупности трех процессоров: обрабатывающего или операционного (ОП), управляющего (УП) и коммуникационного (КП). Эта совокупность процессоров должна реализовать выполнение следующих функций:
- обработку числовых и логических значений и строк символов;
- обеспечение управления вычислительным процессом и взаимодействием со всеми остальными модулями;
- установление соединений с определенными модулями и передачу данных между ними для обеспечения вычислительных процессов.
На рисунке 4.11 представлено схематическое изображение содержания модуля и его конструктивное представление. Коммутационный процессор обеспечивает соединение и передачу данных по нескольким каналам.
Физически в качестве модуля может работать микро-ЭВМ или несколько микропроцессоров, между которыми распределены перечисленные выше функции. Модули собираются в структуры, наиболее подходящими из которых считаются матричные, пирамидальные или кубические.
Конструктивное
На рисунке 4.12 проиллюстрирован фрагмент матричной структуры (одна плоскость).
Коммутационные процессоры и каналы образуют в совокупности коммутационное поле, обеспечивающее соединение взаимодействующих модулей и передачу между ними информации. Часть модулей работает на обслуживании, например, накопителей на магнитных дисках и других устройств ввода-вывода.
Коммутационное поле может быть организовано в виде самостоятельной структуры. Наиболее эффективными и экономичными считаются поля с многоуровневой организацией, пример такого поля иллюстрируется рисунком 4.13. На рисунке буквами а1, …, а16 обозначены входы коммутатора, к которым подключаются микропроцессорные модули. Штриховыми линиями показаны варианты возможных соединений модулей через коммутатор. Нижний уровень поля обеспечивает соединения между соседними модулями, образующими группы, следующий уровень образует соединения между группами и т.д. Однако среднее число соединений, образуемых такими коммутаторами, меньше среднего числа соединений, обеспечиваемых матричными структурами, а это снижает степень параллелизма в вычислительных системах и, следовательно, производительность всей системы.
Проблемы организации вычислительных процессов в системах с перестраиваемой структурой связаны с обеспечением па-раллельной обработки, организацией распределенного управления процессами обработки и ресурсами.
Параллельная обработка задач, то есть мультипрограммный режим работы обеспечивается достаточно простыми средствами. После ввода задания в систему, модуль, принявший задание, посылает через коммутационное поле запрос на поиск свободного обрабатывающего модуля. Если таковой найден, ему направляется задание с указанием мест размещения программы, данных и результатов работы. Из задания модуль извлекает также сведения о ресурсах, необходимых для выполнения программы, например, объеме требуемой оперативной памяти, числе требуемых процессоров для обработки данных, количестве и типах внешних уст-ройств и др. Модуль закрепляет за собой необходимые ресурсы и начинает выполнять задание. По завершении выполнения задания модуль освобождает ресурсы, которые могут быть предоставлены другим модулям. Число параллельно обрабатываемых задач определяется количеством модулей в системе. Параллельные программы строятся путем выделения подзадач и ветвей программы, операций над векторами и матрицами и организации конвейерной обработки данных. При возникновении ветви в программе модуль посылает запрос на поиск свободного модуля, в который загружается программа и ветви, и ветвь выполняется как самостоятельная задача, по завершении которой в ведущий модуль возвращаются результаты обработки. Параллельные вычисления по конвейерной и матричной схемам организуются за счет создания соответствующих конфигураций связей между модулями – линейных, кольцевых или матричных структур. Однако, для матричных вычислений обычно разрабатывают специализированные процессоры, которые встраивают в различные системы, обеспечивая таким образом высокопроизводительную обработку данных.
Системы с перестраиваемой структурой строят с распределенной (децентрализованной) системой управления ресурсами. Этот подход обеспечивает высокую надежность системы и одновременно повышает производительность, поскольку каждый модуль по единым правилам обеспечивает управление ресурсами и вычислительными процессами, не затрачивая время на сбор информации о состояниях других модулей.
Механизм управления должен исключить взаимную блокировку процессов при запросах ресурсов. Такая ситуация может возникнуть когда модуль А располагает ресурсом а и требует ресурс b, а модульB располагая ресурсом b, требует ресурс а. Для исключения таких ситуаций вводится одновременное формирование запросов на все ресурсы и освобождение всех ресурсов, если не выделен хотя бы один из запрашиваемых. Может быть приме-
нен иерархический порядок выделения ресурсов или какой-нибудь другой. Кроме того, механизм управления должен обеспечить пе-рераспределение программ и данных между модулями в случае возникновения каких-то неординарных ситуаций или подключение дополнительных модулей для реализации параллельных процессов и т.д. Управление процессами обычно реализуется эвристическими процедурами (заранее оттестированными), не требующими большой памяти и трудоемких вычислений.
Вопросы и задания для самопроверки
4.1. Как вы думаете, конвейерная обработка реализуется организационно (программно) или аппаратно?
4.2. Почему вычислительная система CRAY названа конвейерной?
4.3. Коков общий принцип организации матричных систем? Нарисуйте схему связей процессорных элементов системы ILLIAC-IV. Каким образом может быть организован вычислительный процесс в такой системе?
4.4. Что является определяющим для поиска информации в ассоциативной памяти?
4.5. Объясните принцип записи информации в ассоциативную память.
4.6. В чем заключается преимущество ассоциативной памяти по сравнению с адресуемой?
4.7. Какие вычислительные системы называются однородными, что определяет их однородность?
4.8. Какие структуры назвали однородными вычислительными средами?
4.9. Что отличает однородные вычислительные системы и однородные вычислительные среды?
4.10. Чем была вызвана необходимость разработки функционально распределенных вычислительных систем?
4.11. Нарисуйте примерную функционально распределенную систему.
4.13. В чем заключается идея создания систем с перестраиваемой структурой? Какова цель их создания?
4.14. За счет чего можно обеспечить высокую производительность системы с перестраиваемой структурой
4.15. Что лежит в основе системы с перестраиваемой структурой? За счет чего можно обеспечить перестройку структуры?
4.16. Нарисуйте примерную схему многоуровневого коммутационного поля. Где и для чего можно применить такую схему?
4.17. Перечислите проблемы организации вычислительных процессов в системах с перестраиваемой структурой.
Глава пятая
Современные архитектуры
5.1 Современные направления развития вычислительной техники
Давайте, вначале зададимся вопросом, «по каким вероятным направлениям может пойти развитие современных архитектур вычислительных систем?».
Большинство экспертов-специалистов в области средств вычислительной техники выделяют четыре направления предстоящеего развития:
- векторно-конвейерные суперкомпьютеры;
- симметричные мультипроцессорные системы -Symmetric MulriProcessing -SMP;
- системы с массовым параллелизмом – Massive Parallel Processing - MPP;
- кластерные системы – Cluster Systems.
В этот перечень следовало бы добавить направление развития гибридных систем, которые почему-то сюда не включили, хотя, скорее всего, они являются наиболее распространенными, и сетевые архитектуры Grid.
Векторно-конвейерные суперсистемы. В третьей главе данной книги был описан первый представитель семейства Cray, появившийся в 1976 году. Название семейства отражает принципы обработки данных, заложенные в его архитектуру и форму представления данных
Во-первых, - это наличие конвейеров команд и операций, принципы, организации которых описаны ранее во второй главе. Во-вторых, данные представляют собой число не в виде единственного значения, а в виде векторов – подобно представлению двоичных или десятичных чисел:
Здесь или 1 при . Этот вектор может представлять беззнаковое целочисленное значение V в диапазоне от 0 до , где:
Таким образом, векторный процессор обрабатывает одной командой не одно единственное значение, а сразу массив (вектор) значений, то есть команда вида A = означает, что процессор выполнит попарное сложение элементов двух массивов и , и создаст третий массив A. Каждый массив (вектор) хранится в особом векторном регистре. Массивы должны иметь при этом одина-ковую размерность и одинаковую длину. Длина одновременно обрабатываемых векторов в современных векторных системах может составлять до 128 или 256 элементов. Содержание векторной опе-рации заключается в распараллеливании циклов, которые обеспечивают вычислительные работы, для чего последние подвергаются процедуре векторизации. Это реализуется автоматически при компиляции кода программы. Поэтому векторно-конвейерные компьютеры не требуют какой-либо специальной технологии программирования. Тем не менее, при написании в программе циклов требуется соблюдать некоторые правила, чтобы компилятор мог их эффективно векторизовать.
Типичными представителями этой архитектуры являются компьютеры Cray EL, Cray J90, Cray T90, NEC SX-4, NEC.
Симметричные мультипроцессорные системы (Symmetric Multi-Processing – SMP). Следует сразу отметить, что по существу эти вычислительные системы являются системами с общим полем памяти (Shared Memory), характерным представителем которых ранее представлен комплекс Cmmp, построенный на широко известных мини-ЭВМ PDP-11/40 фирмы DEC. Вместе с тем, некоторые эксперты по компьютерным системам полагают, что истоки этого класса систем восходят к суперкомпьютерам фирмы Cray. Правда, на существо дела это влияния не оказывает. Наличие в суперкомпьютерах нескольких процессоров и общей для всех памяти потребовало обеспечения равноправного (симметричного) доступа к ней. Поэтому характерной чертой многопроцессорных систем SMP архитектуры является то, что все процессоры имеют прямой равноправный доступ к любой ячейке общей памяти.
Как известно, наличие общей памяти значительно упрощает взаимодействие процессоров между собой – обеспечен свободный доступ к любым данным, и облегчается программирование задач, поскольку программа работает в едином адресном пространстве. Однако, наряду с положительными моментами, имеются и проблемы, присущие системам этого типа. Во-первых, возникает большое число конфликтов при обращении к общей шине (памяти), и, во-вторых, узким местом является сама память, скорость работы которой значительно отстает от скорости работы процессоров (как показывают некоторые эксперименты до 40 раз и более). Проблема частично разрешается за счет применения высокоскоростной кэш-памяти. Однако при этом нарушается принцип равноправного дос-
тупа к любой точке памяти. Данные, находящиеся в кэш-памяти некоторого процессора, недоступны для других процессоров. Этоозначает, что при каждом изменении в процессе обработки копии некоторой переменной, находящейся в кэш-памяти кокого-либо процессора, необходимо синхронно модифицировать саму эту переменную, расположенную в основной памяти.
Массивно-параллелельные системы (Massively Parallel Processing – MPP). Проблемы, присущие многопроцессорным системам с общим полем памяти устраняются в системах с массовым параллелизмом, основная идея которых заключается в образовании многопроцессорных массивов с помощью некоторой коммуникационной среды. Каждый узел массива состоит из одного или нескольких процессоров, собственной оперативной памяти, коммуникационного оборудования, подсистемы ввода-вывода, то есть имеет все для независимого функционирования. Вам это не напоминает системы с перестраиваемой структурой (подраздел 4.6). Очень похоже, правда? При этом на каждом узле может функционировать либо полноценная операционная система (как в системе RS/6000 SP2), либо ее часть, поддерживающая базовые функции ядра, а ОС работает на выделенном управляющем компьютере (как в системе Cray T3E или nCUBE2).
Процессоры имеют прямой доступ только к своей памяти. Доступ к памяти других процессоров требует введения специальных коммуникационных связей и осуществляется путем передачи данных в форме сообщений. Архитектура таких систем обладает хорошим свойством – масштабируемостью, то есть возможностью неограниченного наращивания числа процессоров системы, многократно увеличивая за счет этого ее производительность. В качестве примеров таких систем можно назвать ASCI White –8192 процессора или Blue Mountain – 6144 процессора, наконец, ASCI Red – 9632 процессора PentiumPro с оперативной памятью в 600 Гбайт и общей производительностью 3,2 миллиарда операций в секунду (TFlop/s).
Коммуникационные связи являются «узким местом» таких систем. Легко сказать: «соединить 10 000 процессоров каждый с каждым». Для этого используют различные топологии и технологии соединений. Например, в виде 3-х мерного тора или n-мерного гиперкуба. В последнее время для соединения вычислительных узлов используется иерархическая система высокоскоростных коммутаторов, дающая возможность прямого обмена данными между любыми узлами, без использования промежуточных узлов, как в системе IBM SP2.
Память, используемая вычислительным узлом (процессором) в описываемых системах, имеет трехуровневую структуру по типу:
- кэш-память процессора;
- оперативная память вычислительного узла;
- оперативная память других узлов.
При этом, при обработке данных, хранящихся в памяти другого узла, они предварительно должны быть переданы в память обрабатывающего процессора. Это осложняет разработку параллельных программ для пользователей.
Кластерные системы. Принципиальный подход к созданию кластерных систем был описан несколько ранее (см. подраздел 3.6). Привлекательность этого вида архитектуры заключается в том, что для достижения требуемой производительности можно объединять в единые вычислительные системы компьютеры самого разного типа, от персональных до суперкомпьютеров. Широкое распространение получили кластерные системы суперкомпьютерного класса из составляющих массового производства за счет выигрыша в стоимости в несколько раз. Правда, говорить об эквивалентности таких систем надо с оговоркой. Для этого случая приводят интересный пример. Суперкомпьютер Cray T3D, стоимостью несколько миллионов долларов имеет внутреннюю пропускную способность при пересылке данных 480 Мбайт/с с задержкой пересылки в 1 мкс, а кластер, в котором в качестве коммуникационной среды для пересылки данных применен Fast Ethernet, соответственно 10 Мбайт и 100 мкс. Так что погоня за снижением стоимости не всегда может привести к желаемым результатам.
В пользу кластерных архитектур свидетельствует тот факт, что для них разработано множество диспетчерских систем, эффективно обеспечивающих реализацию пакетного режима обработки заданий, но имеется и возможность распараллеливания одной задачи между несколькими компьютерами, то есть, проработаны задачи обеспечения синхронизации вычислительных процессов. Экспериментально определили, что эффективность применения кластерных систем обеспечивается при отношении скорости обмена данными между узлами к пиковой производительности узла – 1/10.
Активно применяют кластерные технологии такие фирмы, как SUN, HP, Silicon Graphics.
5.2 Примеры современных архитектур
5.2.1 Архитектура современного процессора
Чтобы вам легче было представлять более полную и подробную картину взаимодействия многочисленных устройств компьютера, познакомьтесь с архитектурой современного процессора в том виде, в каком она исключительно редко представляется в технической, и тем более, в учебной литературе. На рисунке 5.1 показана архитектура процессора промышленного применения TMS 320
C3x. Подобные процессоры используются в различных
управляющих автоматизированных системах. Здесь мы постарались акцентировать (обратить) ваше внимание на основные компоненты процессора, такие, как арифметико-логическое устройство (АЛУ), блок управления, процессора, систему внутренних шин и значительное количество регистров различного назначения. Внутри процессора размещена сравнительно небольшого объема кэш-память первого уровня, обеспечивающая некоторое выравнивание скоростей работы процессора и оперативной памяти. С помощью внутреннего мультиплексора процессор имеет выход на широкую общесистемную шину, через которую идет обмен командами и данными с основной оперативной памятью (ОЗУ). На рисунке – это блоки памяти RAM. Основной замысел рисунка заключается в том, чтобы показать связи взаимодействия различных составных частей процессора.
Ранее, достаточно подробно, была описана последовательность действий процессора при выполнении им команд, теперь вы сами можете в какой-то степени проанализировать его работу. Это должно вам помочь разобраться и в более сложных структурах современных вычислительных систем.
Современные вычислительные системы, как правило, представляют собой многопроцессорные системы, работающие под управлением одной операционной системы.