Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Книги / Книга Проектирование ВПОВС (часть 2)

.pdf
Скачиваний:
84
Добавлен:
01.06.2015
Размер:
4.62 Mб
Скачать

Набор команд процессора

Центральный процессор выполняет машинные команды из набора,

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

типами операндов;

форматом команд;

допустимыми командами;

количеством адресов в команде;

доступом к регистрам;

режимами адресации.

Большинство машинных команд можно разделить на четыре категории:

арифметические и логические операции;

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

операции ввода/вывода;

команды управления (команды переходов).

Шины

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

Память

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

оперативная (главная) память – характеризуется высокой скоростью работы (малым временем выборки) и сравнительно небольшим объемом;

61

внешняя память – имеет сравнительно большой объем и меньшею скоростью доступа.

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

RAID-массивы, диски CD-ROM, магнитные ленты, дискеты и другие носители информации. Для выполнения программа загружается в оперативную память из внешней памяти. Основными характеристиками памяти являются ее объем и скорость (время) доступа.

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

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

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

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

медленную память большего объема [2]. К быстрой памяти относятся регистры процессора, кэш-память первого и второго уровня, а к медленной – главная и внешняя память (рис. 2.2).

На вершине иерархии находятся регистры процессора со временем доступа порядка наносекунд. Разрядность одного регистра обычно несколько десятков битов (например, 32 или 64 бита) и число регистров в одной КЭШ памяти не превышает (16-32).

62

Внешняя память

оперативная память

Кэш памяти данных

Кэш памяти команд процессора

Рис. 2.2

Далее следует кэш-память первого уровня объемом до нескольких десятков килобайтов и временем доступа около десяти наносекунд. Следующий уровень иерархии – кэш-память второго уровня величиной несколько сот килобайтов и временем доступа в несколько раз большим, чем у кэш-памяти первого уровня.

Оперативная память имеет объем несколько десятков и сотен мегабайтов и время доступа около сотни наносекунд. Затем следует внешняя память объемом в десятки гигабайтов и временем доступа в десятки миллисекунд.

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

противном случае управление осуществляет операционная система. Содержимое оперативной и внешней памяти контролируется операционной системой.

Кэш-память – это быстрая память небольшого объема, содержащая информацию из оперативной памяти, которая использовалась недавно. Идея кэш-

памяти основана на том, что обращение программы к данным, как правило,

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

63

локализуется в некотором небольшом пространстве адресов. Соответственно в процессоре существует две быстрой памяти КЭШ-память данных и КЭШ-память команд. Для определения какую информацию следует сохранить в кэш-памяти используются разные алгоритмы, например, первый пришёл – первый ушёл, по частоте обращения и т.д. Схема взаимодействия кэш-памяти с главной памятью приведена на рис. 2.3.

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

лучшем случае эта доля составляет несколько процентов. Распределение памяти и управление кэшированием, как правило, возлагается на транслятор.

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

Центральный

процессор

Поток команд и данных Кэш память команд и

данных

Оперативная память

Команды и данные

.

Рис. 2.3

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

64

Устройства ввода/вывода

Взаимодействие оператора с компьютером и взаимодействие оператора с компьютером осуществляется с помощью устройств ввода/вывода, таких, как:

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

SISD-компьютеры – традиционные ЭВМ, выполняющие в заданной последовательности только одну операцию над парой данных.

Первые SISD-компьютеры имели структуру, приведенную на рис. 2.1.

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

Основные изменения связаны с повышением скорости работы АЛУ и как следствие необходимостью ускорения работы памяти. Для этого были введена специальная быстрая память для данных (КЭШ – память данных) и команд (КЭШ

– память команд) (рис. 2.4), позволяющие нивелировать задержку обращения к общей памяти за счёт использования быстрой памяти (КЭШ-памяти), в которой хранятся текущие, а также часто используемые данные и команды.

Команды

 

КЭШ

 

 

 

 

 

 

команд

 

 

 

 

Быстрая

 

 

 

 

 

 

 

Память

УУ

 

АЛУ

 

 

 

память

 

 

 

команд

 

 

 

 

данных

 

 

 

 

 

 

 

 

 

 

и

 

 

 

 

 

 

(КЭШ -

 

 

 

 

 

 

данных

 

 

 

 

 

 

память

 

Данные

 

 

 

 

данных)

Д

П/Д

Д

УВВ

Пр

 

 

 

 

Внешний интерфейс

 

Рис. 2.4

SISD-компьютеры относятся к наиболее распространённым компьютерам,

это и персональные и оперативные системы, относящиеся к категории

65

последовательных ЭВМ. Однако именно последовательное выполнение команд снижает характеристики отдельных ЭВМ и многопроцессорных структур,

состоящих из описанных микропроцессоров.

2.3.Классификации архитектур параллельных систем

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

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

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

Классификация систем по способу взаимодействия процессоров с оперативной памятью

В этой схеме выделяют три основные группы архитектур:

с разделяемой памятью;

распределенной памятью;

распределенно-разделяемой памятью.

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

В такой системе связь между процессорами выполняется с помощью разделяемых переменных. Этот тип параллельных компьютеров называют также компьютерами с однородным доступом к памяти и обозначают английской аббревиатурой UMA (Uniform Memory Access), поскольку параметры доступа к модулям памяти для всех процессоров одинаковы.

66

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

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

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

Вотличие от систем с разделяемой памятью системы с распределенной памятью очень хорошо масштабируются, поскольку в этом случае исключены конфликты по доступу к памяти. В результате могут создаваться системы с высокой степенью параллелизма (МРР – Massively Parallel Processors), состоящие из сотен и тысяч процессоров. Типичными представителями систем с распределенной памятью являются кластеры рабочих станций, объединенные коммуникационной сетью достаточно дешевой, но обеспечивающей приемлемую скорость обмена данными (Ethernet, Myrinet и др.).

Всистемах с распределено-разделяемой памятью используются преиму-

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

каждая ячейка памяти имеет адрес, единый для всей системы, Схема Хандлера

(эрлангерская схема).

В эрлангерской схеме, предложенной Хандлером [3] в 1977 г.,

параллельные компьютеры классифицируются по степени параллелизма и конвейеризации на трех уровнях абстракции:

67

уровень выполнения программы/процесса;

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

уровень подкоманд (уровень поразрядной обработки).

Описание компьютера дается тремя парами значений для

соответствующих уровней параллелизма

K K , D D',W W ' .

(табл. 2.1).

 

 

 

 

 

 

 

 

 

 

Таблица 2.1

 

Схема Хандлера классификации компьютерных архитектур

 

 

 

 

 

 

 

 

Уровень

Параллелизм

Конвейеризация

 

 

параллелизма

 

 

 

 

 

 

 

 

 

 

 

 

 

Программа/процесс

К – количество устройств

К' – количество сегментов в

 

 

 

управления

 

макроконвейере

 

 

 

 

 

 

 

Машинные команды

D – количество АЛУ в

D' – количество сегментов

 

 

 

каждом устройстве

в конвейере

 

 

 

 

 

 

 

 

Подкоманды

W – количество

 

W – количество сегментов в

 

 

 

элементарных логических

конвейере

 

 

 

 

схем в каждом АЛУ

 

 

 

Например, по этой классификации для компьютера Intel Paragon XP/S с 1840 узлами получаем (1840 2, 1 2, 64 3), потому что каждый из К = 1840

узлов состоит из двух процессоров Intel i860 (К'= 2). Каждый процессор может одновременно выполнять две команды (D' = 2), разрядность функциональных узлов 64 бита (W= 64), глубина конвейера равна трем (W' = 3).

SIMD-компьютеры

SIMD-компьютеры (рис. 1.5 и 1.6) состоят из одного общего для всех устройств управления и отдельных процессоров.

В настоящее время процессоры имеют расширенную конфигурацию (АЛУ,

умножитель, устройство сдвига и управление ими) и, называемых в этом случае,

процессорными элементами (ПЭ).

68

Код команды

 

 

Сосредото-

Регистр команды

ченная память с

Устройство

последовате-

льным доступом

управления

 

Поток команд

 

Регистр

Регистр

Регистр

Регистр

Регистр

Регистр

команд

данных

команд

данных

команд

данных

Процессорный

Процессорный

Процессорный

элемент 1

элемент 1

элемент 1

Потоки данных

 

 

 

 

 

 

Коммутатор данных

 

 

Рис. 2.5

Устройство управления аналогично устройству управления последователь-

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

SIMD-компьютеры с разделённой памятью данных и программ

В SIMD-компьютере разнесены управление программой и управление операциями. Управление программой осуществляется непосредственно устрой-

ством управления, а управление операциями осуществляется непосредственно внутри процессорных элементов.

К SIMD-компьютерам относятся, в частности, векторные компьютеры

(Hitachi S3600), матричные процессоры ILLIAC-4, РЕРЕ [2], вычислительные системы Array Processor, n-Cube, Thinking Machines [4], где ПЭ связаны между

69

собой сетью коммуникаций с различной топологией. Наиболее употребительны:

топология матрица (ILLIAC-4) или "гиперкуб"( n-Cube).

Память программ

 

 

 

 

 

 

Регистр команд

 

 

 

 

 

 

Поток команд

 

 

 

 

 

 

 

 

 

 

 

 

 

Блок памяти данных

 

 

 

 

 

 

 

1

2

n

Регистр

Регистр

Регистр

Регистр

Регистр

Регистр

 

 

 

команд

данных

команд

данных ...

команд

данных

Ком 1

Ком 2

Ком n

Процессорный

Процессорный

Процессорный

 

 

 

элемент 1

элемент 2

элемент n

 

...

 

 

 

 

Потоки данных

 

Рг 1

Рг 2

Рг n

 

 

Коммутатор

 

 

 

...

 

 

 

 

 

 

 

 

 

Рис. 2.6

Программная память

Регистр команд

Устр-тво

Память

Устр-тво

Память

Устр-тво

Память

упр-ния

данных

упр-ния

данных ...

упр-ния

данных

Процессорный

Процессорный

Процессорный

элемент 1

элемент 2

элемент n

Потоки данных

Коммутатор

Рис. 2.7.

70