Таненбаум Э.- Архитектура компьютера. стр.468

+ существует единое адресное пространство, видимое всеми процессорами;

+ доступ к удаленной памяти производится командами LOAD и STORE;

+ доступ к удаленной памяти выполняется медленнее, чем доступ к локальной.

Если время доступа к удаленной памяти не замаскировано кэшированием (кэш отсутствует), такая система называется NC-NUMA (No Caching NUMA — NUMA без кэширования). Если присутствуют согласованные кэши, то система называется CC-NUMA (Coherent Cache NUMA — NUMA с согласованными кэшами). Программисты часто называют такую систему аппаратной распределенной общей памятью, поскольку она, по сути, аналогична распределенной общей памяти (DSM), реализованной программно, однако поддерживается аппаратно с использованием страниц маленького размера.

Одной из первых NC-NUMA-машин был мультипроцессор Cm* производства Carnegie-Mellon. Он упрощенно показан на рис. 8.26 [200]. Этот мультипроцессор состоял из набора процессоров LSI-11, каждый с собственной памятью, обращение к которой производилось по локальной шине. (LSI-11 — однопроцессорная версия очень популярного в 70-е годы мини-компьютера DEC PDP-11.) Кроме того, процессоры LSI-11 были связаны друг с другом системной шиной. Когда выполнялось обращение к памяти, запрос попадал к диспетчеру памяти,

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

Таненбаум Э.- Архитектура компьютера.

Рис. 8.26. [ЧиМА-машина с двумя уровнями шин

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

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


⇐ Предыдущая страница| |Следующая страница ⇒