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

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

В системах СОМА (Cache Only Memory Access – архитектура с доступом только к кэш-памяти) основная память каждого процессора используется как кэш-память. В ней физическое адресное пространство делится на строки (а не на страницы, как в системах NUMA и CC-NUMA), которые при необходимости перемещаются по системе. Память, которая привлекает строки, называется attraction memory. Использование основной памяти в качестве кэш-памяти большой емкости увеличивает частоту успешных к ней обращений, что сопутствует повышению производительности.

Однако с расширением кэша появляется две проблемы:

как размещать строки кэш-памяти;

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

во-вторых, если даже известно, что строка отсутствует в основной памяти, как определить, где она находится?

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

Возможные пути решения первой проблемы:

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

■ если строка присутствует, то она должна находиться в правильной позиции на этой странице;

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

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

Возможные пути решения второй проблемы:

• возврат к каталогу для проверки существования других копий:

■ если копии существуют, то строку можно отбрасывать;

■ если нет ни одной копии, то ее нужно переместить в какое-либо место памяти;

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

 
< Пред   СОДЕРЖАНИЕ     След >