Ассоциативные вычислительные системы реферат

Обновлено: 05.07.2024

Цель настоящей курсовой работы – выявить сущность и область применения ассоциативной памяти, а также охарактеризовать применение ассоциативных процессоров на примере интерференционного управления системами

Содержание

Введение 3
1. Ассоциативная память 4
1.1. Сущность ассоциативной памяти 4
1.2. Применение ассоциативной памяти 7
1.3. Ассоциативные вычислительные системы 12
2. Применение ассоциативных процессоров (на примере интерференционного управления системами) 17
Заключение 21
Список литературы 22

Прикрепленные файлы: 1 файл

Курсовая работа на тему Ассоциативные системы.rtf

1. Ассоциативная память 4

1.1. Сущность ассоциативной памяти 4

1.2. Применение ассоциативной памяти 7

1.3. Ассоциативные вычислительные системы 12

2. Применение ассоциативных процессоров (на примере интерференционного управления системами) 17

Список литературы 22

Введение

Ассоциативная память - это массив ограниченного размера из строк памяти. Строка памяти содержит адрес A, данные D и надежность R. (Можно ли обойтись без надежности и без забывчивости?) Рассмотрим только битовую (логическую) память. Она устроена несколько сложнее, чем аналоговая. Адрес и данные характеризуются количеством бит или байт, а надежность - это число от 0 до 1. При записи новая строка ADR заносится на место одной из наименее надежных строк. Ассоциативная память характеризуется тем, что чтение из нее возможно, даже если в ней нет строки с нужным адресом A. Результат чтения из памяти есть вероятностная сумма всех данных, рассчитанная по их надежности R и близости адреса A к заданному адресу. Можно определять близость адреса сортировкой. Можно по количеству отличающихся бит или байт.

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

Цель настоящей курсовой работы - выявить сущность и область применения ассоциативной памяти, а также охарактеризовать применение ассоциативных процессоров на примере интерференционного управления системами

1. Ассоциативная память

1.1. Сущность ассоциативной памяти

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

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

Естественное решение - снабдить компьютер аппаратным устройством для отображения виртуальных страниц в физические без обращения к таблице страниц, то есть иметь небольшую, быструю кэш-память, хранящую необходимую на данный момент часть таблицы страниц. Это устройство называется ассоциативная память, иногда также употребляют термин ассоциативные регистры (иногда translation lookaside buffer (TLB)).

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

Отображение виртуальных страниц, хранимых в ассоциативной памяти, осуществляется быстро, однако кэш память является дорогостоящей и имеет ограниченный размер. Число записей в TLB от 8 до 2048

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

Рассмотрим функционирование менеджера памяти при наличии ассоциативной памяти. Вначале он ищет виртуальную страницу в ассоциативной памяти. Если страница найдена - все нормально за исключением случаев нарушения привилегий, когда запрос на обращение к памяти отклоняется.

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

Процент раз, когда номер страницы находится в ассоциативной памяти, называется hit (совпадение) ratio (пропорция, отношение). Таким образом, hit ratio - часть ссылок, которая может быть сделана с использованием ассоциативной памяти. Обращение к одним и тем же страницам повышает hit ratio.

Например, предположим, что для доступа к таблице страниц необходимо 100 нс, а для доступа к ассоциативной памяти 20 нс. С 90% hit ratio среднее время доступа - 0.9*20+0.1*100 = 28 нс.

Вполне приемлемая производительность современных ОС доказывает эффективность использования ассоциативной памяти. Высокое значение вероятности нахождения данных в ассоциативной памяти связано с наличием у данных объективных свойств: пространственной и временной локальности.

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

1.2. Применение ассоциативной памяти

Основная область применения компьютеров - работа с данными. Самый быстрый способ доступа к данным - доступ по параметру (по ассоциации). Но архитектура памяти имеет адресную структуру. Существующие способы ускорения доступа (сортировки, индексация, хеширование) фактически организуют виртуальную ассоциативную память. Для повышения производительности компьютера предлагается создать плату расширения с ассоциативной памятью.

Мир захлестнула волна информации. Главное при работе с ней - быстрый поиск с последующей выборкой. Информация хранится в базах данных, и базы данных стоят сейчас почти на каждом компьютере. Обычно базы состоят из таблиц. Рассмотрим типичную структуру таблицы в реляционной базе данных. Все поля, входящие в таблицу, можно разбить на три группы: системные поля, поля наименования, и поля данных.

Системные поля - это ключи. В них входят первичный ключ (счетчик) для связи с подчиненными таблицами и вторичные ключи для связи с главными таблицами (если данная таблица является подчиненной).

Поля наименования - это те поля, по которым пользователь может идентифицировать описанный в таблице объект в ряду себе подобных. Для предотвращения дублирования записей (т.е. появления "двойников") необходимо обеспечивать уникальность записей. Типы полей - строковые, реже - числовые или дата/время.

Поля данных - в них хранятся данные об объекте. Это поля типа числовые, денежные, дата/время, и т.д.

При работе с таблицей одна из главных задач - выборка, причем в большинстве случаев выборка осуществляется по параметру (то есть из таблицы выбираются только те записи, которые соответствуют некоторому условию). Существуют два подхода к выборке: сверху, со стороны пользователей, и снизу, со стороны аппаратного обеспечения ("железа").

При подходе сверху главный определяющий фактор - удобство пользователя. Существует много способов доступа к данным в таблицах, но наибольшее распространение получил язык SQL. Фактически SQL фактически стал индустриальным стандартом для реляционных баз данных. Американский Институт Национальных Стандартов (ANSI) в 1986 году объявил язык SQL стандартом для реляционных баз данных. То же самое сделала и Международная Организация по стандартам (ISO). Все основные реляционные системы управления баз данных поддерживают в том или ином виде язык SQL, и большинство разработчиков реляционных систем управления базами данных стремятся следовать стандарту ANSI. Конструкторы SQL встроены в настольные СУБД (ACCESS, Delphi), серверные приложения работают в основном с SQL (ORACLE, SQL server).

В команде SQL указывается сама команда (действие, которое надо совершить), область выборки (таблицы, из которых необходимо произвести выборку), данные, которые должны быть выданы (список полей), условия связи между таблицами и условия отбора, то есть по команде SQL фактически осуществляется ассоциативная выборка из базы данных.

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

Для того, чтобы получить доступ к нужной записи в таблице необходимо либо перебирать все записи (для этого потребуется N циклов, N - число записей в таблице), либо найти адрес записи (так как память компьютера имеет адресную архитектуру). Для ускорения поиска прилагаются большие усилия: применяют сортировки (то есть записи упорядочивают в определенном порядке), индексирование, и хеширование (адрес записи - некоторая функция от значения аргумента записи). Рассмотрим подробнее все эти способы.

Сортировки. При дихотомическом поиске в упорядоченном массиве количество циклов поиска - log2 N, где N - число записей в таблице. Но сортировки производят только по одному полю. После совершения любого действия над записями (добавления, изменения, удаления) приходится производить упорядочивание (пересортировку) таблицы, а число перестановок возрастает в геометрической прогрессии при увеличении количества записей.

Индексирование. Индексы - это специальные конструкции, которые позволяют быстро найти адрес нужной записи и в настоящее время они широко применяются на практике. На одну таблицу можно создавать несколько индексов. В качестве примера можно рассмотреть рекомендации по применению индексов в ORACLE. Они сводятся к следующему: рекомендуется использовать индексы для обеспечения уникальности записей; для ускорения выборки данных; задавать индексы для тех полей, выборку по которым производится чаще всего, и при этом рекомендуется задавать на таблицу не более 3 индексов, что очень мало. На практике применяют индексы следующим образом: в системных полях таблиц используют 1-2 индекса, и еще один индекс - на поля наименования. Область данных почти никогда не индексируют, хотя отбор чаще всего происходит именно по этим полям. Кроме того, на обновление индексов также требует времени, а сами индексы занимают место на диске (а иногда размер индексов превышает размер основной таблицы).

Поэтому индексация таблиц не очень помогает: индексы занимают место (а иногда могут превышать размеры таблиц), а в случае отбора по неиндексированному полю они не помогают.

Хеширование. При хешировании записей под таблицу сразу выделяют с запасом некоторый объем памяти, и адрес записи в этом объеме - некоторая функция от содержимого одного из полей записи (хеш-функция). Хеширование также проводят по одному полю. Недостатки этого способа: необходимость в избыточном резервировании памяти. Кроме этого, даже при достаточно большом выделенном объеме памяти возможна ситуация, при котором на некоторое место претендуют сразу две или более записей, то есть возникает коллизия.

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

Существенно повысить скорость доступа к данным можно если включить в состав компьютера память с адресацией по содержанию (ассоциативной памяти). Применение ассоциативной памяти позволяет существенно повысить скорость выборки и упростить доступ к данным. Так как при выборке происходит ряд логических операций по отбору данных, то отпадает необходимость в специальных программных конструкциях по ускорению доступа: сортировках и хешировании, а индексы потребуются только для обеспечения уникальности записей и задания связей между таблицами. Уже создан ряд микросхем ассоциативной памяти, их применение позволяет существенно повысить производительность.

Так как устройство с ассоциативной памятью предназначено для повышения скорости доступа при работе с базами данных, то наиболее целесообразно выполнить его в виде отдельной платы расширения для компьютера. Впоследствии на основании этой платы может быть создан сопроцессор данных (SQL-сопроцессор).

Данное устройство ассоциативной памяти должно обладать следующими конструктивными особенностями:

Возможность адресного и ассоциативного доступа к хранящимся в памяти данным. Адресный доступ необходим для того, чтобы можно было бы работать с конкретной записью. Кроме того, при наличии адресного доступа становится возможным использование библиотек тестов, разработанных для адресной памяти.

Рассмотрим каждую ВС в отдельности и выявим их сходства.

Матричные Вычислительные Системы (ВС)

Наиболее распространенными из систем, класса: один поток команд - множество - потоков данных (SIMD), являются матричные системы, которые лучше всего приспособлены для решения задач, характеризующихся параллелизмом независимых объектов или данных. Организация систем подобного типа на первый взгляд достаточно проста. Они имеют общее управляющее устройство, генерирующее поток команд и большое число процессорных элементов, работающих параллельно и обрабатывающих каждая свой поток данных. Таким образом, производительность системы оказывается равной сумме производительностей всех процессорных элементов. Однако на практике, чтобы обеспечить достаточную эффективность системы при решении широкого круга задач необходимо организовать связи между процессорными элементами с тем, чтобы наиболее полно загрузить их работой. Именно характер связей между процессорными элементами и определяет разные свойства системы.

Рассмотрим структуру матричной вычислительной системы.

Структура матричной вычислительной системы представлена на рис. 3.


Рис. 3. Обобщенная модель матричной SIMD-системы

Параллельная обработка множественных элементов данных осуществляется массивом процессоров (МПр). Единый поток команд, управляющий обработкой данных в массиве процессоров, генерируется контроллером массива процессоров (КМП). КМП выполняет последовательный программный код, реализует операции условного и безусловного переходов, транслирует в МПр команды, данные и сигналы управления. Команды обрабатываются процессорами в ре жиме жесткой синхронизации.

Сигналы управления используются для синхронизации команд и пересылок, а также для управления процессом вычислений (например - определяют, какие процессоры массива должны выполнять операцию, а какие – нет). Команды, данные и сигналы управления передаются из КМП в массив процессоров по шине широковещательной рассылки. Поскольку выполнение операций условного перехода зависит от результатов вычислений, результаты обработки данных в массиве процессоров транслируются в КМП, проходя по шине результата.

Для обеспечения пользователя удобным интерфейсом при создании и отладке программ в состав подобных ВС обычно включают интерфейсную ВМ (front-end computer). В роли такой ВМ выступает универсальная вычислительная машина, на которую дополнительно возлагается задача загрузки программ и данных в КМП. Кроме того, загрузка программ и данных в КМП может производиться и напрямую с устройств ввода-вывода (например, с магнитных дисков). После загрузки КМП приступает к выполнению программы, транслируя в МПр по широковещательной шине соответствующие SIMD-команды.

Для хранения множественных наборов данных в массиве процессоров должны присутствовать и модули памяти. Кроме того, в массиве должна быть реализована сеть взаимосвязей как между процессорами, так и между процессорами и модулями памяти. Таким образом массив процессоров – это блок, состоящий из процессоров, модулей памяти и сети соединений.

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

Одним из первых матричных процессоров был SОLОМОN (60-е годы), представлена на рис. 4.

Рис 4. Структура матричной вычислительной системы "SOLOMON"

Система SОLOМОN содержит 1024 процессорных элемента, соединены в виде матрицы: 32х32. Каждый процессорный элемент матрицы включает в себя процессор, обеспечивающий выполнение последовательных поразрядных арифметических и логических операций, а также оперативное ЗУ, емкостью 16 Кбайт. Длина слова - переменная от 1 до 128 разрядов. Разрядность слов устанавливается программно. По каналам связи от устройства управления передаются команды и общие константы. В процессорном элементе используется, так называемая, многомодальная логика, которая позволяет каждому процессорному элементу выполнять или не выполнять общую операцию в зависимости от значений обрабатываемых данных. В каждый момент все активные процессорные элементы выполняют одну и ту же операцию над данными, хранящимися в собственной памяти и имеющими один и тот же адрес.

Идея многомодальности заключается в том, что в каждом процессорном элементе имеется специальный регистр на 4 состояния - регистр моды. Мода (модальность) заносится в этот регистр от устройства управления. При выполнении последовательности команд модальность передается в коде операции и сравнивается с содержимым регистра моды. Если есть совпадения, то операция выполняется. В других случаях процессорный элемент не выполняет операцию, но может, в зависимости от кода, пересылать свои операнды соседнему процессорному элементу. Такой механизм позволяет выделить строку или столбец процессорных элементов, что очень полезно при операциях над матрицами. Взаимодействуют процессорные элементы с периферийным оборудованием через внешний процессор.

Дальнейшим развитием матричных процессоров стала система ILLIАS-4, разработанная фирмой BARRОYS. Первоначально система должна была включать в себя 256 процессорных элементов, разбитых на группы, каждый из которых должен управляться специальным процессором. Однако по различным причинам была создана система, содержащая одну группу процессорных элементов и управляющий процессор. Если в начале предполагалось достичь быстродействия = 1 млрд. операций в секунду, то реальная система работала с быстродействием = 200 млн. операций в секунду. Эта система в течение ряда лет считалась одной из самых высокопроизводительных в мире.

В начале 80-х годов в СССР была создана система: ПС-2000, которая также является матричной. Основой этой системы является мультипроцессор - ПС-2000, состоящий из решающего поля и устройства управления мультипроцессором. Решающее поле строится из одного, двух, четырех или восьми устройств обработки, в каждом из которых - 8 процессорных элементов. Мультипроцессор из 64 процессорных элементов обеспечивает быстродействие = 200 млн. операций в секунду на коротких операциях.

Ассоциативные Вычислительные Системы (ВС)

Эти системы характеризуются большим количеством операционных устройств способных одновременно по командам управляющего устройства вести обработку нескольких потоков данных. Однако эти системы значительно различны от матричных способом формирования потоков данных. В ассоциативных системах информация на обработку поступает от ассоциативного запоминающих устройств (АЗУ), характеризующихся тем, что информация выбирается не по определённому адресу, а по содержанию.

Ассоциативный процессор (АП) – это ассоциативная память, допускающая параллельную запись во все ячейки, для которых было зафиксировано совпадение с ассоциативным признаком. Эта особенность АП, носящая название мультизаписи, является первым отличием ассоциативного процессора от традиционной ассоциативной памяти. Считывание и запись информации могут производиться по двум срезам запоминающего массива — либо это все разряды одного слова, либо один и тот же разряд всех слов. При необходимости выделения отдельных разрядов среза лишние позиции допустимо маскировать. Каждый разряд среза в АП снабжен собственным процессорным элементом, что позволяет между считыванием информации и ее записью производить необходимую обработку, то есть параллельно выполнять операции арифметического сложения, поиска, а также эмулировать многие черты матричных ВС.

Ассоциативные ВС – это ВС класса SIMD, в основе которой лежит ассоциативный процессор. Таким образом, ассоциативные ВС представляют собой n процессорных элементов ПЭ (вертикальный разрядный срез памяти), как правило, последовательной поразрядной обработки для каждой из ячеек памяти. Операция осуществляется одновременно всеми n ПЭ. Все или часть элементарных последовательных ПЭ могут синхронно выполнять операции над всеми ячейками или над выбранным множеством слов ассоциативной памяти.

Пример ассоциативной ВС – система STARAN, разработанная Goodyear Aerospace Corporation в 1972 году.

Аналогия между матричными и ассоциативными ВС заключается в их классе архитектуры ОКМД.

Архитектура ОКМД, или SIMD (от Single Instruction Multiply Data stream), — одиночный поток команд над множественным потоком данных. Бытовым аналогом работы таких систем является ситуация, в которой несколько человек одновременно, синхронно выполняют одну и ту же операцию, последовательность одинаковых операций над разными деталями. Примером также может служить ансамбль музыкальных инструментов, синхронно исполняющих мелодию под управлением дирижера.

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

В связи с обсуждением этого класса параллельных систем, по-видимому, следует напомнить о включении основанных на подходе SIMD групп команд ММХ и SSE в систему команд процессоров Pentium и аналогичных групп в системы команд других процессоров.

Основной разновидностью систем класса ОКМД являются системы ОКМДС, в которых выполняется пословная обработка данных. В этот класс входят векторные и матричные вычислительные системы, которые находят применение при решении научно-технических задач, использующих векторные и матричные структуры данных.

Примеры параллельных систем с общим управлением.

- матричные с одноразрядными процессорными элементами (SOLOMON I, ICL DAP, Goodyear MPP, CLIP, Thinking Connechtion Machine) и с многоразрядными процессорными элементами (SOLOMON II, ILLAC IV, Bu rroughs BSP, ПС-2000);

Аннотация: В данной лекции рассматриваются математические основы, способы организации и особенности проектирования ассоциативных, конвейерных и матричных процессоров.

Существующие в настоящее время алгоритмы прикладных задач, системное программное обеспечение и аппаратные средства преимущественно ориентированы на традиционную адресную обработку данных . Данные должны быть представлены в виде ограниченного количества форматов (например, массивы, списки, записи), должна быть явно создана структура связей между элементами данных посредством указателей на адреса элементов памяти, при обработке этих данных должна быть выполнена совокупность операций, обеспечивающих доступ к данным по указателям. Такой подход обуславливает громоздкость операционных систем и систем программирования, а также служит препятствием к созданию вычислительных средств с архитектурой, ориентированной на более эффективное использование параллелизма обработки данных.

Ассоциативные процессоры

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

Исследованы и в разной степени применяются несколько подходов, различающихся полнотой реализации модели ассоциативной обработки . Если реализуется только ассоциативная выборка данных с последующим поочередным использованием найденных данных, то говорят об ассоциативной памяти или памяти, адресуемой по содержимому. При достаточно полной реализации всех свойств ассоциативной обработки используется термин "ассоциативный процессор ".

Ассоциативные системы относятся к классу: один поток команд – множество потоков данных ( SIMD = Single Instruction Multiple Data ). Эти системы включают большое число операционных устройств, способных одновременно по командам управляющего устройства вести обработку нескольких потоков данных. В ассоциативных вычислительных системах информация на обработку поступает от ассоциативных запоминающих устройств (АЗУ), характеризующихся тем, что информация в них выбирается не по определенному адресу, а по ее содержанию.

Конвейерные процессоры

Процессоры современных компьютеров используют особенную технологию – конвейеры , которые позволяют обрабатывать более одной команды одновременно.

Обработка команды может быть разделена на несколько основных этапов, назовем их микрокомандами . Выделим основные пять микрокоманд :

  • выборка команды;
  • расшифровка команды;
  • выборка необходимых операндов;
  • выполнение команды;
  • сохранение результатов.

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

Такая технология обработки команд носит название конвейерной обработки. Каждая часть устройства называется ступенью конвейера , а общее число ступеней – длиной конвейера .

Во многих вычислительных системах наряду с конвейером команд используются и конвейеры данных .

Сочетание этих двух конвейеров позволяет достичь очень высокой производительности на определенных классах задач, особенно если используется несколько различных конвейерных процессоров, способных работать одновременно и независимо друг от друга.

Одной из наиболее высокопроизводительных вычислительных конвейерных систем считается СRАY. В этой системе конвейерный принцип обработки используется в максимальной степени. Имеется и конвейер команд, и конвейер арифметических и логических операций. В системе широко применяется совмещенная обработка информации несколькими устройствами. Максимальная пиковая производительность процессора может составлять 12 GFLOPS .

В настоящее время созданы однокристальные векторно-конвейерные процессоры, основными компонентами которых являются скалярный процессор и 8 идентичных векторных устройств, суммарная производительность которых составляет 64 GFLOPS . На их основе построена система SX-6 компании NEC.

Матричные процессоры

Наиболее распространенными из систем класса один поток команд – множество потоков данных ( SIMD ) являются матричные системы, которые лучше всего приспособлены для решения задач, характеризующихся параллелизмом независимых объектов или данных . Организация систем подобного типа, на первый взгляд, достаточно проста. Они имеют общее управляющее устройство , генерирующее поток команд и большое число процессорных элементов , работающих параллельно и обрабатывающих каждая свой поток данных. Таким образом, производительность системы оказывается равной сумме производительностей всех процессорных элементов . Однако на практике чтобы обеспечить достаточную эффективность системы при решении широкого круга задач, необходимо организовать связи между процессорными элементами с тем, чтобы наиболее полно загрузить их работой. Именно характер связей между процессорными элементами и определяет разные свойства системы.

Одним из первых матричных процессоров был SОLОМОN (60-е годы).

Система SOLOMON содержит 1024 процессорных элемента , которые соединены в виде матрицы: 32х32. Каждый процессорный элемент матрицы включает в себя процессор , обеспечивающий выполнение последовательных поразрядных арифметических и логических операций, а также оперативное ЗУ емкостью 16 Кбайт. Длина слова – переменная от 1 до 128 разрядов. Разрядность слов устанавливается программно. По каналам связи от устройства управления передаются команды и общие константы . В процессорном элементе используется так называемая многомодальная логика, которая позволяет каждому процессорному элементу выполнять или не выполнять общую операцию в зависимости от значений обрабатываемых данных. В каждый момент все активные процессорные элементы выполняют одну и ту же операцию над данными, хранящимися в собственной памяти и имеющими один и тот же адрес .

Идея многомодальности заключается в том, что в каждом процессорном элементе имеется специальный регистр на 4 состояния – регистр моды . Мода (модальность) заносится в этот регистр от устройства управления. При выполнении последовательности команд модальность передается в коде операции и сравнивается с содержимым регистра моды . Если есть совпадения, то операция выполняется. В других случаях процессорный элемент не выполняет операцию, но может, в зависимости от кода, пересылать свои операнды соседнему процессорному элементу . Такой механизм позволяет выделить строку или столбец процессорных элементов , что очень полезно при операциях над матрицами. Взаимодействуют процессорные элементы с периферийным оборудованием через внешний процессор .

Дальнейшим развитием матричных процессоров стала система ILLIАC-4, разработанная фирмой BURROUGHS. Первоначально система должна была включать в себя 256 процессорных элементов , разбитых на группы, каждый из которых должен управляться специальным процессором. Однако по различным причинам была создана система, содержащая одну группу процессорных элементов и управляющий процессор . Если в начале предполагалось достичь быстродействия 1 млрд. операций в секунду, то реальная система работала с быстродействием 200 млн. операций в секунду. Эта система в течение ряда лет считалась одной из самых высокопроизводительных в мире.

В начале 80-х годов в СССР была создана система ПС-2000, которая также является матричной. Основой этой системы является мультипроцессор ПС-2000, состоящий из решающего поля и устройства управления мультипроцессором. Решающее поле строится из одного, двух, четырех или восьми устройств обработки, в каждом из которых 8 процессорных элементов . Мультипроцессор из 64 процессорных элементов обеспечивает быстродействие 200 млн. операций в секунду на коротких операциях.

Ассоциативные (АВС) и потоковые (ПВС) вычислительные системы являются разновидностями высокопараллельных МПВС.

АВС строится на базе организованной в виде массива ассоциативной памяти – ассоциативно-запоминающего устройства (АЗУ). Доступ к ячейкам АЗУ осуществляется не по адресу, а по их содержимому, точнее – по ассоциативному признаку (поисковому образу), соответствующему хранимой в ячейке информации. Если в ячейке содержится информация, обладающая заданным признаком, эта информация считывается.

Поиск ассоциативного признака выполняется по всем ячейкам массива памяти, считывание осуществляется одновременно из всех найденных ячеек массива памяти. Определенные группы ячеек массива памяти имеют свои локальные процессоры, позволяющие при считывании выполнять логические и арифметические операции над считываемой информацией. Запись в АЗУ производится в любую свободную ячейку (у ячейки имеется признак: свободна она или нет). Ячейки АЗУ должны допускать считывание без разрушения информации, так как считывание выполняется сразу из нескольких ячеек и автоматически выполнить перезапись считанной информации, как это делается в обычных адресных ОЗУ, невозможно (или очень сложно). Ячейки могут маскироваться своими локальными процессорами и, если это необходимо, не считываться без предъявления пароля.

Элементы ассоциативной выборки данных используются для заполнения кэш-памяти в микропроцессорах.

Тесты к теме 3.1.

3.1.1.Доступ к ячейкам АЗУ осуществляется

3.1.2. Поиск ассоциативного признака осуществляется

а) по всем ячейкам массива памяти, относящимся к заданному типу.

3.1.3.ВАЗУ считывание информации осуществляется из найденных ячеек массива

3.1.4.Запись вАЗУ осуществляется

в) в одну из выделенных ячеек.

3.1.5. У ячейкиимеется признак, определяющий

Потоковые вычислительные системы

Эффективной технологией, поддерживающей параллельность вычислений в ВС, является технология управления последовательностью выполнения команд программы потоком данных. В традиционных фон-Неймановских машинах последовательность выполнения команд управляется счетчиком команд. Команды выполняются строго в той последовательности, в которой они следуют в программе, то есть в последовательности их записи в памяти машины (естественно, если нет команд передачи управления). Это затрудняет организацию параллельного выполнения сразу нескольких команд программы.

Теоретически существует несколько моделей управления последовательностью исполнения команд в машине:

- последовательностью следования команд в программах;

- потоком данных: команда выполняется, как только становятся доступными все ее операнды;

- по запросу: команда выполняется, как только результаты ее исполнения потребуются другим командам.

Управление потоком данных естественно поддерживает параллельность вычислений. Как только появятся исходные данные для выполнения нескольких команд, эти команды могут параллельно выполняться. Вычислительные системы, в которых последовательность выполнения команд программы управляется потоком данных, называются потоковыми ВС.

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

Тесты к теме 3.2

3.2.1.Традиционных фон-Неймановских машинах последовательность команд управляется

3.2.2. При управлении последовательностью команд потоком данных

а) команды выполняются в последовательности, определяемой программой;

б) команда выполняется, как только результаты ее исполнения потребуются другим командам.

3.2.3.При управлении последовательностью команд по запросу

а) команды выполняются в последовательности, определяемой программой;

в) команда выполняется, как только становятся доступными все ее операнды.

3.2.4.Вычислительные системы, в которых последовательность выполнения команд управляется потоком данных, называются

3.2.5. Использование потокового управления в микропроцессорах

3.2.6. В микропроцессорах Pentium при конвейерной обработке инструкции выполняются

а) в порядке, установленным программой;

в) в случайном порядке.

Кластерные вычислительные системы

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

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

Важной особенностью является обеспечение доступа любого сервера к любого блоку как оперативной, так и дисковой памяти.

Все фирмы отмечают существенное снижение стоимости кластерных систем по сравнению с локальными суперкомпьютерами, обеспечивающими ту же производительность.

Основные достоинства кластерных суперкомпьютерных систем:

- высокая суммарная производительность;

- высокая надежность системы;

- наилучшее соотношение производительность/стоимость;

- возможность динамического перераспределения нагрузок между серверами;

- легкая масштабируемость, т.е. наращивание вычислительной мощности путем подключения дополнительных серверов;

- удобство управления и контроля системы.

Тесты к теме 3.3

3.3.1.Вкластерных вычислительных системах каждый сервер имеет доступ

б) к выделенному для данного сервера блоку памяти.

в) к некоторым блокам памяти.

3.3.2. Все фирмы отмечают, что по сравнению с локальными суперкомпьютерами, обеспечивающими ту же самую производительность, стоимость кластерных систем

3.3.3.Высокая надежность работы системы является одним из преимуществ

3.3.4.Возможность динамического перераспределения нагрузок между серверами является одним из преимуществ

а) локальных суперкомпьютеров;

в) персональных компьютеров.

3.3.5. Легкая масштабируемость является одним из преимуществом

в) персональных компьютеров.

3.3.6. Удобство управления и контроля работы системы является одним из преимуществом

Читайте также: