Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
компьютерные_технологии.doc
Скачиваний:
36
Добавлен:
22.11.2019
Размер:
1.13 Mб
Скачать

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

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

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

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

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

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

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

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

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

5. Организация систем памяти высокопроизводительных вычислителей

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

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

либо код доступа задачи не соответствует коду доступа к данной области ОЗУ, устройство управления памятью инициирует прерывание по ошибке доступа к ОЗУ. Аппаратура управления памятью обеспечивает с помощью кодов доступа сегментацию ОЗУ, т.е. деление памяти на различного размера сегменты для совместного использования несколькими задачами. Для организации более быстрого обмена с внешними устройствами виртуальная память делится на страницы. Страницы - это блоки последовательных адресов равного размера в ОЗУ. Страница является минимальной единицей обмена данными между ОЗУ и внешними устройствами. Типичный размер страницы - 4 кбайт или 2 Мбайт. Разрыв между быстродействием параллельного вычислителя и относительно медленным циклом обращения к ОЗУ устраняется введением блока дополнительной быстродействующей памяти – КЭШ - памяти между вычислителем и основным ОЗУ [3]. КЭШ - память может входить как непосредственно в состав кристалла МП, если он выполняет роль вычислителя, так и выполняться в виде отдельных БИС. Чтобы собственно вычислитель не загружать управлением данными в КЭШ - памяти, она имеет собственное устройство управления. Аппаратура такого устройства обеспечивает следующие функции:

‑ перезапись областей основного ОЗУ в КЭШ - память при отсутствии в ней данных, необходимых вычислителю;

‑ устранение неоднозначности данных КЭШ - памяти и основного ОЗУ при записи в КЭШ со стороны вычислителя и при записи в основное ОЗУ со стороны нескольких внешних устройств новых данных.

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

Существуют три способа организации КЭШ - памяти:

- полностью ассоциативный;

‑ с прямым отображением;

‑ частично ассоциативный.

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

При обращении вычислителя к КЭШ - памяти аппаратура КЭШа сравнивает параллельно адреса в КЭШ - памяти с требуемым и при совпадении выдает данные по этому адресу. Недостаток такой организации - громоздкая аппаратура параллельных компараторов сравнения адресов.

В КЭШ - памяти с прямым отображением каждый блок из основного ОЗУ занимает в КЭШе определенное единственное место, тогда не требуется хранить и сравнивать адреса основной памяти в КЭШ - памяти (рис. 5.3). При этом адрес вычислителя состоит из двух частей - поля индекса КЭШ - памяти (адрес блока данных в КЭШ - памяти) и поля признака - тега (это поле указывает, какие блоки ОЗУ можно записать на указываемое индексом место в КЭШе). Недостаток такого метода организации КЭШа - при обращении программы по двум адресам ОЗУ, загружаемым в одно и то же место КЭШа, происходит конфликт в КЭШе и непрерывная перезапись данных из ОЗУ в КЭШ - память.

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

При выборке блока данных из основного ОЗУ для записи в КЭШ - память при КЭШ - промахе существует три алгоритма записи, выбирающие, на место каких старых данных в КЭШе записать:

‑ метод случайного выбора;

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

‑ запись на место блока, который не адресовался дольше других (при этом необходимо наличие счетчиков "возраста записи").

При записи новых данных в КЭШ со стороны вычислителя необходимо копию этих данных переписать в основное ОЗУ. Для этого используются следующие алгоритмы:

‑ сквозная запись - данные переписываются в ОЗУ сразу после записи в КЭШ;

‑ буферизованная сквозная запись - данные переписываются в буферный регистр, а при освобождении шины записываются из него в ОЗУ, при этом возможно параллельное чтение со стороны вычислителя из КЭШ, что уменьшает простои вычислителя при такой записи;

‑ обратная запись - в этом случае существует поле признака каждого блока в КЭШ, указывающее, был ли он модифицирован; и при записи новых данных на это место блок переписывается в ОЗУ, если такая модификация была либо теряется, если ее не было, причем этот алгоритм самый производительный, но и требует наибольших аппаратурных затрат.

Использование КЭШ - памяти с быстрым доступом в параллельных вычислителях высокой производительности не устраняет до конца разрыв в быстродействии собственно вычислителя и системы памяти. Для наиболее высокоскоростных параллельных или конвейерных вычислителей между КЭШем и вычислителем добавляется буферный блок высокоскоростной памяти. Существует три основных схемы построения таких буферов.

Первый вариант представляет собой два параллельно функционирующих блока буферного ОЗУ, причем пока из одного данные считываются вычислителем, в другой данные записываются со стороны КЭШ - памяти и наоборот (рис. 5.4,а). Такая буферная память выполняется на схемах регистровых скоростных файлов, у которых время доступа близко к быстродействию вычислителя (часто регистровые файлы выполняются на одном кристалле с вычислителем, если он выполнен в виде БИС). Второй вариант выполнения буфера - двухпортовый регистровый файл, аппаратура которого допускает параллельное чтение как со стороны КЭШ -памяти, так и со стороны вычислителя, и разрешает конфликт при записи с обеих сторон, придерживая запись со стороны КЭШа в пользу более быстрой записи со стороны вычислителя (рис. 5.4,б).

Третий вариант буферизации - организация очереди или нескольких очередей предварительной выборки при поступлении данных (команд) со стороны КЭШа в вычислитель и в другую сторону (рис. 5.4,в). Простейший

вариант очереди - набор сдвиговых регистров для перемещения данных по тактовым сигналам в сторону вычислителя и из него в КЭШ.

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