Загрузка...

Организация кэш-памяти в многопроцессорных системах (МПС)


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

Организация кэш-памяти в многопроцессорных системах

Рис. 1. 51. Организация кэш-памяти в многопроцессорных системах

У нас имеется 2 процессора и имеется единая ОП, но у каждого процессора имеется своя кэш-память. Допустим у нас есть некая область в ОП. Процессор 1, обратившись к этой области ОП, получает в кэш-памяти копию этих данных. Если процессор изменил данные кэш-памяти, при использовании метода обратной записи, то возникает нарушение целостности данных, то есть данные кэш-памяти и ОП различны. Другой процессор, который использует туже самую область памяти «уверен», что данные в этой области целостны и получает эту копию в свою кэш-память. Это приводит к тому, что данные обрабатываются неправильно.

Существуют 3 метода обеспечения целостности данных в ОП:

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

2. Аппаратная прозрачность. Аппаратная прозрачность организуется двумя способами:

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

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

Использование единой кэш-памяти

Рис. 1. 52. Использование единой кэш-памяти

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

Загрузка...