Главная / Компьютеры / Когерентность памяти.

Когерентность памяти.

Когерентность памяти – это проблема, возникающая на компьютере, когда процессор пытается обратиться к сектору памяти. Эта проблема возникает только в многоядерных системах или на компьютерах с более чем одним центральным процессором (ЦП). Когда несколько процессоров обращаются к одному и тому же сектору памяти, и один ЦП обновляет сектор, другой может быть оставлен старой версией памяти компьютера. Чтобы устранить эту проблему, используются правила согласованности для обеспечения того, чтобы процессоры либо не обращались к одной и той же памяти, либо что бы обновления были согласованы между ними.
Существует несколько разных моделей согласованности, поэтому программисты и разработчики компьютеров должны знать точную используемую модель.

Проблема когерентности памяти – это проблема, которая возникает только на компьютерах, которые используют как минимум два процессора из-за того, как они обращаются к памяти. Когда один процессор обращается к сектору памяти, он может принимать, использовать и изменять память без каких-либо конфликтов, потому что нет других аппаратных компонентов, конкурирующих за память. Если используются два процессора, два процессора могут захватить один и тот же сектор памяти. Несмотря на отсутствие проблем с двумя CPU, использующими память, возникает проблема, если один процессор обновляет память. Это оставляет второй процессор с устаревшей памятью, которая, если её не остановить, может привести к тому, что весь компьютер будет иметь две отдельные и конфликтующие версии компьютерной памяти.

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

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



Оставьте комментарий

Ваш email не будет опубликован. Обязательные поля помечены *

*