Есть много способов снизить стоимость оборудования. Один из методов заключается в том, чтобы менее тесно интегрировать систему поддержки связи и сеть в узел обработки, что увеличивает задержку и занятость связи.
Другой метод заключается в обеспечении автоматической репликации и согласованности в программном, а не аппаратном обеспечении. Последний метод обеспечивает репликацию и согласованность в основной памяти и может выполняться с различными степенями детализации. Это позволяет использовать готовые товарные части для узлов и межсоединений, сводя к минимуму стоимость оборудования. Это заставляет программиста добиваться хороших результатов.
Расслабленные модели согласованности памяти
Модель согласованности памяти для общего адресного пространства определяет ограничения в том порядке, в котором операции с памятью в одном и том же или в разных местах выполняются по отношению друг к другу. Фактически, любой системный уровень, который поддерживает модель именования совместно используемого адресного пространства, должен иметь модель согласованности памяти, которая включает в себя интерфейс программиста, интерфейс пользовательской системы и аппаратно-программный интерфейс. Программное обеспечение, взаимодействующее с этим уровнем, должно знать свою собственную модель согласованности памяти.
Технические характеристики системы
Системная спецификация архитектуры определяет порядок и порядок операций с памятью, а также то, сколько производительности на самом деле можно извлечь из нее.
Ниже приведены несколько моделей спецификаций, использующих релаксации в программном порядке.
-
Ослабление порядка программ записи-чтения — этот класс моделей позволяет аппаратным средствам подавлять задержку операций записи, которые были пропущены в кэш-памяти первого уровня. Когда ошибка записи находится в буфере записи и не видна другим процессорам, процессор может завершить чтение, которое попало в его кэш-память, или даже одно чтение, которое отсутствует в его кэш-памяти.
-
Ослабление программных заказов «запись-чтение» и «запись-запись». Разрешение операций записи в обход предыдущих невыполненных записей в различных местах позволяет объединить несколько записей в буфере записи перед обновлением основной памяти. Таким образом, множественные пропуски записи перекрываются и становятся видимыми не по порядку. Мотивация состоит в том, чтобы дополнительно минимизировать влияние задержки записи на время перерыва процессора и повысить эффективность связи между процессорами, делая новые значения данных видимыми для других процессоров.
-
Ослабление всех программных заказов — по умолчанию не гарантируется никаких программных заказов, кроме данных и управляющих зависимостей внутри процесса. Таким образом, преимущество заключается в том, что несколько запросов на чтение могут быть выполнены в одно и то же время, и в программном порядке могут быть обойдены более поздними записями и могут сами завершать работу не по порядку, что позволяет нам скрыть задержку чтения. Этот тип моделей особенно полезен для динамически планируемых процессоров, которые могут продолжать пропуски после прочтения других ссылок на память. Они позволяют много переупорядочений, даже исключая доступы, которые сделаны оптимизацией компилятора.
Ослабление порядка программ записи-чтения — этот класс моделей позволяет аппаратным средствам подавлять задержку операций записи, которые были пропущены в кэш-памяти первого уровня. Когда ошибка записи находится в буфере записи и не видна другим процессорам, процессор может завершить чтение, которое попало в его кэш-память, или даже одно чтение, которое отсутствует в его кэш-памяти.
Ослабление программных заказов «запись-чтение» и «запись-запись». Разрешение операций записи в обход предыдущих невыполненных записей в различных местах позволяет объединить несколько записей в буфере записи перед обновлением основной памяти. Таким образом, множественные пропуски записи перекрываются и становятся видимыми не по порядку. Мотивация состоит в том, чтобы дополнительно минимизировать влияние задержки записи на время перерыва процессора и повысить эффективность связи между процессорами, делая новые значения данных видимыми для других процессоров.
Ослабление всех программных заказов — по умолчанию не гарантируется никаких программных заказов, кроме данных и управляющих зависимостей внутри процесса. Таким образом, преимущество заключается в том, что несколько запросов на чтение могут быть выполнены в одно и то же время, и в программном порядке могут быть обойдены более поздними записями и могут сами завершать работу не по порядку, что позволяет нам скрыть задержку чтения. Этот тип моделей особенно полезен для динамически планируемых процессоров, которые могут продолжать пропуски после прочтения других ссылок на память. Они позволяют много переупорядочений, даже исключая доступы, которые сделаны оптимизацией компилятора.
Интерфейс программирования
Программные интерфейсы предполагают, что программные порядки не должны поддерживаться вообще между операциями синхронизации. Гарантируется, что все операции синхронизации явно помечены или идентифицированы как таковые. Библиотека времени выполнения или компилятор преобразует эти операции синхронизации в подходящие операции сохранения порядка, требуемые спецификацией системы.
Затем система обеспечивает последовательное согласованное выполнение, даже если она может переупорядочивать операции среди операций синхронизации любым удобным для нее способом, не нарушая зависимости от местоположения в процессе. Это обеспечивает компилятору достаточную гибкость между точками синхронизации для переупорядочений, которые он желает, а также дает процессору возможность выполнять столько переупорядочений, сколько позволяет его модель памяти. В интерфейсе программиста модель согласованности должна быть, по меньшей мере, такой же слабой, как и модель аппаратного интерфейса, но не обязательно должна быть такой же.
Механизмы перевода
В большинстве микропроцессоров перевод меток в механизмы поддержания порядка означает вставку подходящей инструкции барьера памяти до и / или после каждой операции, помеченной как синхронизация. В нем будут сохранены инструкции с отдельными загрузками / хранилищами, указывающие, какие заказы должны выполняться, и избегаются дополнительные инструкции. Тем не менее, поскольку операции, как правило, выполняются нечасто, большинство микропроцессоров не используют их до сих пор.
Преодоление ограничений емкости
Мы рассмотрели системы, которые обеспечивают автоматическую репликацию и согласованность аппаратных средств только в кэш-памяти процессора. Кэш процессора, без его репликации в первую очередь в локальной основной памяти, реплицирует удаленно распределенные данные непосредственно по ссылке.
Проблема этих систем заключается в том, что область локальной репликации ограничена аппаратным кешем. Если блок заменен из кеш-памяти, он должен быть извлечен из удаленной памяти, когда он снова понадобится. Основная цель систем, обсуждаемых в этом разделе, состоит в том, чтобы решить проблему емкости репликации, но при этом обеспечить согласованность аппаратных средств и высокую степень детализации блоков кэша для эффективности.
Третичные тайники
Для решения проблемы емкости репликации одним из методов является использование большого, но более медленного кеша удаленного доступа. Это необходимо для функциональности, когда узлы машины сами по себе являются небольшими мультипроцессорами и их можно просто увеличить для производительности. Он также будет содержать реплицированные удаленные блоки, которые были заменены из локальной кэш-памяти процессора.
Архитектура кэш-памяти (COMA)
В машинах COMA каждый блок памяти во всей основной памяти связан с аппаратным тегом. Не существует фиксированного узла, где всегда есть уверенность в том, что для блока памяти выделено пространство. Данные динамически мигрируют или реплицируются в основной памяти узлов, которые обращаются к ним / привлекают их. При обращении к удаленному блоку он реплицируется в память аттрактанта и помещается в кэш, и аппаратно поддерживает его в обоих местах. Блок данных может находиться в любой памяти притяжения и может легко перемещаться из одного в другой.
Снижение стоимости оборудования
Снижение затрат означает перенос некоторых функциональных возможностей специализированного оборудования на программное обеспечение, работающее на существующем оборудовании. Программному обеспечению намного проще управлять репликацией и согласованностью в основной памяти, чем в аппаратном кеше. Недорогие методы, как правило, обеспечивают репликацию и согласованность в основной памяти. Для эффективного контроля согласованности каждый из других функциональных компонентов системы помощи может получить преимущества от специализации и интеграции оборудования.
Исследовательские усилия направлены на снижение затрат с помощью различных подходов, например, путем контроля доступа в специализированном оборудовании, но при назначении других видов деятельности программному и обычному оборудованию. Другой подход заключается в выполнении контроля доступа в программном обеспечении и предназначен для выделения согласованной общей абстракции адресного пространства в обычных узлах и сетях без специализированной аппаратной поддержки.
Последствия для параллельного программного обеспечения
Модель расслабленной согласованности памяти требует, чтобы параллельные программы отмечали желаемые конфликтующие обращения как точки синхронизации. Язык программирования обеспечивает поддержку для обозначения некоторых переменных как синхронизации, которые затем будут преобразованы компилятором в подходящую инструкцию по сохранению порядка. Чтобы ограничить собственное изменение порядка доступа компиляторов к разделяемой памяти, компилятор может использовать метки самостоятельно.