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

ТСвИС / архитектура вычислительных систем. arebook

.pdf
Скачиваний:
91
Добавлен:
28.05.2015
Размер:
2.73 Mб
Скачать

16

сохраняется тот же закон пропорциональности ее диаметра корню квадратному из числа узлов решетки с коэффициентом n.

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

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

6.3. Основные виды архитектур параллельных вычислительных систем

Наиболее полное представлении о разновидностях архитектур вычислительных систем параллельного действия дает классификация, предложенная в [1] и изображенная на рис. 6.7.

Архитектура SIMD (Single Instruction stream Multiple Data stream) лежит в основе вычислительных систем, управляемых одним потоком команд, обрабатывающим несколько потоков данных. К разновидностям таких систем относятся массивно-

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

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

18

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

SIMD

 

MISD

 

MIMD

 

 

 

 

 

Массивно-

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Векторные

 

 

 

 

Мультипроцессоры

 

 

 

Мультикомпьютеры

 

параллельные

 

 

 

 

 

 

 

 

 

 

 

 

 

 

процессоры

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

процессоры

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

MPP

 

 

 

COW

 

 

 

UMA

 

 

COMA

 

NUMA

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

C шинной

 

С координатными

 

СС-NUMA

 

NC-NUMA

 

 

 

В виде

 

 

В виде

 

организацией

 

 

коммутаторами

 

 

 

 

 

 

 

 

 

 

решетки

 

 

гиперкуба

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Рис. 6.7. Классификация архитектур вычислительных систем параллельного действия

19

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

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

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

Архитектура MISD (Multiple Instruction stream Single Data stream – несколько потоков команд, один поток данных), которая не просматривается на макроуровне (уровне машинных команд) известных вычислительных систем, на микроуровне представляет конвейерную суперскалярную организацию вычислений, о которой достаточно было сказано в разделе 4.3 четвертой главы.

20

MIMD (Multiple Instruction stream Multiple Data stream)

– эта архитектура лежит в основе мультипроцессоров и мультикомпьютеров.

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

симметричный мультипроцессор).

В соответствии со способом реализации памяти совместного использования различают три типа архитектур мультипроцессоров:

UMA (Uniform Memory Access) – архитектура, для которой характерно одинаковое время обращения (однородный доступ) к любому модулю памяти;

NUMA (NonUniform Memory Access) – архитектура с неоднородным доступом к памяти, в которой совместно используемая память реализована так, что время обращения со стороны конкретного процессора к одним модулям существенно отличается от времени обращения к другим;

COMA (Cache Only Memory Access) – архитектура, в

которой основная память каждого процессора (локальная память) организована как кэш-память.

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

21

обеспечения системы в плане использования совместной памяти. Различают модели следующих типов:

-строгая согласованность;

-согласованность по последовательности;

-процессорная согласованность;

-слабая согласованность;

-свободная согласованность.

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

Согласованность по последовательности – это модель,

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

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

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

22

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

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

23

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Локальная

 

 

М1

 

 

 

 

М2

 

 

 

 

Мn

 

 

память

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Процессор

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Р1

 

 

 

 

Р2

 

 

 

 

Рn

 

Память

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

совместного

 

 

Кэш

 

 

 

 

Кэш

 

 

 

 

Кэш

 

 

использования

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

О Б Щ А Я

Ш И Н А

Рис. 6.8. Общий вид мультипроцессора с интерфейсом в виде единой шины

24

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

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

MESI – это аббревиатура четырех слов: Modified, Exclusive, Shared, Invalid. Эти слова определяют четыре состояния, в которых может находиться любая строка кэшпамяти. Modified ставится в соответствие действительной строке кэш-памяти, для которой копий в других кэшах не существует, и соответствующий блок основной памяти является недействительным. Exclusive определяет действительную строку – копию действительного блока памяти, не содержащуюся ни в одном другом кэше. Shared характеризует строку, содержащуюся в нескольких кэшах, являющуюся копией действительного блока памяти. Invalid указывает на недействительную строку данных.

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

25

остальных копий в кэшах (они помечаются как Invalid) и соответствующего блока основной памяти. Строка, куда произведена запись, объявляется как Modified. При обращении к одной из недействительных копий этой строки процессор, содержащий модифицированную строку, выдает на шину сигнал требования ожидания и обновляет соответствующий блок основной памяти (в результате модифицированная строка объявляется Exclusive). После считывания обновленного блока другим процессором эта строка становится Shared и т.д. просматривается логика протокола MESI.

ГЛАВА 7. НЕЙРОСЕТЕВЫЕ ВЫЧИСЛИТЕЛЬНЫЕ СИСТЕМЫ

7.1. Биологические основы нейромодельного подхода (некоторые сведения из анатомии и физиологии человеческого мозга)

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

Головной мозг человека содержит 20 млрд. нервных клеток и 300 млрд. межклеточных соединений. Он состоит из левого и правого полушарий, на поверхности которых находится тонкий слой серого вещества. Это кора головного мозга (кортекс),

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

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

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