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