Скорость коммутации Параллелизм на уровне команд Внутрипроцессорная многопоточность Многопоточность в Pentium Однокристальные мультипроцессоры Мультимедиа-процессоры Ядро обработки графики Мультикомпьютеры Согласованность памяти


Впервые конвейерный принцип выполнения команд был использован в машине ATLAS, разработанной в Манчестерском университете. Выполнение команд разбито на 4 стадии: выборка команды, вычисление адреса операнда, выборка операнда и выполнение операции.
Согласованность памяти в КС-ШМА-машине гарантирована, поскольку в ней отсутствует кэш-память. Каждое слово памяти может находиться только в одном месте, поэтому нет никакой опасности появления копии с устаревшими данными — здесь вообще нет копий. То, в каком именно модуле памяти находится та или иная страница, имеет большое значение, поскольку от этого зависит производительность. Для максимального увеличения производительности в МС-КГиМА- машинах была реализована следующая сложная схема программной поддержки перемещения страниц.

Обычно каждые несколько секунд запускался специальный «сторожевой» процесс (демон), называемый страничным сканером. Его задача — следить за статистикой использования страниц и перемещать их таким образом, чтобы росла производительность. Если страница оказывалась в «неправильном» месте, страничный сканер выгружал ее из памяти, поэтому следующее обращение к ней вызывало ошибку отсутствия страницы. Когда происходит ошибка отсутствия страницы, принимается решение о том, куда эту страницу поместить (возможно, не в тот модуль памяти, в котором она была раньше). Для предотвращения пробуксовки существовало правило, согласно которому страница после размещения должна оставаться на месте в течение времени А Т. Предлагалось множество других алгоритмов, но ни один из них так и не стал безусловно лучшим [122].

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

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

Чтобы лучше понять, что собой представляет мультипроцессор на основе каталога, рассмотрим в качестве примера систему из 256 узлов, в которой каждый узел состоит из одного процессора и 16-мегабайтного ОЗУ, связанного с процессором локальной шиной. Общий объем памяти составляет 232 байт. Она разделена на 226 строк кэша по 64 байт каждая. Память статически распределена по узлам: адреса 0-16 М располагаются в узле 0, адреса 16-32 М — в узле 1 и т. д. Узлы связаны коммуникационной сетью (рис. 8.27, а). Сеть может быть реализована в виде решетки, гиперкуба или иметь другую топологию. Каждый узел содержит элементы каталога для 218 64-байтных строк кэша, образующих 224 байт памяти. На данный момент мы предполагаем, что строка может содержаться не более чем в одном кэше.

Рис. 8.27. Мультипроцессор на основе каталога, содержащий 256 узлов (а); разбиение 32-разрядного адреса памяти на поля (б); каталог в узле 36 (в)


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