6.3.3 Сома-мультипроцессоры
СОМА (Cache Only Memory Access - доступ только к кэш-памяти). В ней страницы не имеют собственных "домашних" машин, как в системах NUMA и CC-NUMA, фактически, страницы в этой системе вообще не имеют "прописки".
Вместо этого физическое адресное пространство делится на строки кэша, которые по запросу свободно перемещаются в системе. Блоки памяти не имеют собственных машин. У них, как у кочевников в некоторых странах третьего мира, дом там, где они оказались. Память, которая привлекает строки по мере необходимости, называется притягивающей. Использование основной памяти в качестве большого кэша увеличивает процент кэш- попаданий, а, следовательно, и производительность.
К сожалению, ничего идеального не бывает. С системой СОМА связаны две новые проблемы:
Как размещаются строки кэша?
Что делать, когда удаляемая из памяти строка является последней копией?
18. 1)
Постоянная память, или постоянное запоминающее устройство (ПЗУ или ROM, англ.) |
Оперативная память, или оперативное запоминающее устройство (ОЗУ или RAM, англ.) |
|
служит для хранения программ начальной загрузки компьютера и тестирования его узлов. Используется только для чтения. |
предназначена для хранения информации, изменяющейся в ходе выполнения процессором операций по ее обработке. Используется как для чтения, так и для записи информации. |
|
|
энергонезависима, то есть записанная в ней информация не изменяется после выключения компьютера. |
энергозависима, то есть вся информация хранится в этой памяти только тогда, когда компьютер включен. |
2) Суперкомпьютер- вычислительная машина, значительно превосходящая по своим техническим параметрам большинство существующих компьютеров. Как правило, современные суперкомпьютеры представляют собой большое число высокопроизводительных серверных компьютеров, соединённых друг с другом локальной высокоскоростной магистралью для достижения максимальной производительности
Суперкомпьютеры используются во всех сферах, где для решения задачи применяется численное моделирование; там, где требуется огромный объём сложных вычислений, обработка большого количества данных в реальном времени, или решение задачи может быть найдено простым перебором множества значений множества исходных параметров
19.
2)все процессоры в мультипроцессоре используют единое адресное пространство. Семантику памяти можно рассматривать как контракт между программным и аппаратным обеспечением памяти. Если программное обеспечение соглашается следовать определенным правилам, то память соглашается выдавать определенные результаты. Основная проблема здесь - сами правила, которые называются моделями состоятельности. Было предложено и разработано множество таких правил.
6.2.1 Строгая состоятельность
Самая простая модель - модель строгой состоятельности. В такой модели при любом считывании из адреса х всегда возвращается значение самой последней записи в х. Программистам очень нравится эта модель, но ее можно реализовать на практике только следующим образом: должен быть единственный модуль памяти, просто обслуживающий все запросы по мере их поступления (первым поступил - первым обработан), кэширование и дублирование данных не допускаются. К несчастью, этот подход значительно затормозил бы работу памяти, поэтому вряд ли может рассматриваться в качестве серьезного предложения.
6.2.2 Секвенциальная состоятельность
Следующей мы рассмотрим модель секвенциальной состоятельности. В соответствии с этой моделью при наличии нескольких запросов на чтение и запись порядок обработки запросов определяется аппаратно, но при этом все процессоры воспринимают один и тот же порядок.
6.2.3 Процессорная состоятельность
Процессорная состоятельность - не слишком строгая модель, но зато ее легче реализовать на больших мультипроцессорах. Она имеет два свойства:
Все процессоры видят операции записи любого процессора в том порядке, в котором эти операции выполняются.
Все процессоры видят все операции записи в любое слово памяти в одном и том же порядке.
6.2.4 Слабая состоятельность
В модели слабой состоятельности не гарантируется, что операции записи, произведенные одним процессором, будут восприниматься другими в том же порядке
6.2.5 Свободная состоятельность
Слабая состоятельность - не очень эффективная модель, поскольку требует завершения всех операций с памятью и задерживает выполнение новых операций до тех пор, пока не завершены предыдущие. В модели свободной состоятельности дела обстоят гораздо лучше, поскольку здесь используется нечто похожее на критические секции программы. Идея состоит в следующем. Если процесс выходит за пределы критической области, это не значит, что все записи должны немедленно завершиться. Требуется только, чтобы все записи были завершены до того, как какой-нибудь процесс снова войдет в эту критическую область.
20.
