Jump to content

Согласованность процессора

Согласованность процессора — это одна из моделей согласованности, используемых в области параллельных вычислений (например, в распределенной общей памяти , распределенных транзакциях и т. д.).

Система демонстрирует согласованность процессора, если порядок, в котором другие процессоры видят записи от любого отдельного процессора, совпадает с порядком, в котором они были выполнены. По этой причине согласованность процессоров применима только к системам с несколькими процессорами. Она слабее, чем модель причинной согласованности , поскольку не требует, чтобы операции записи со всех процессоров выполнялись в одном и том же порядке, но сильнее, чем модель согласованности PRAM , поскольку требует согласованности кэша . [1] Еще одно различие между причинной согласованностью и согласованностью процессора заключается в том, что согласованность процессора устраняет требования к загрузке, ожидающей завершения сохранения, а также к атомарности записи . [1] Согласованность процессора также сильнее, чем согласованность кэша , поскольку согласованность процессора требует, чтобы все записи процессора были видны по порядку, а не только записи в одну и ту же ячейку памяти. [1]

Примеры согласованности процессора

[ редактировать ]
Пример 1: Согласованность процессора
PП1 Вт(х)1 Вт(х)3
П 2 Р(х)1 Р(х)3
PP3 Вт(у)1 Вт(у)2
PP4 Р(у)1 Р(у)2
Пример 2: Несовместимость с процессором
PП1 Вт(х)1 Вт(х)3
П 2 Р(х)3 Р(х)1
PP3 Вт(у)1 Вт(у)2
PP4 Р(у)2 Р(у)1

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

Пример 2 не является согласованным с процессором, поскольку записи P1 и P3 рассматриваются как неупорядоченные P2 и P4 соответственно.

Пример 3 является согласованным по процессору и не является причинно-согласованным, поскольку R(y)3,R(x)1 в P3: для причинно-следственной связи должно быть R(y)3,R(x)2 поскольку W(x)2 в P1 причинно предшествует W(y)3 в P2.

Пример 4 несовместим с процессором, поскольку R(y)3,R(x)1 в P2: для согласованности процессора должно быть R(y)3,R(x)2 потому что W(x)2 — это последняя запись в x, предшествующая W(y)3 в P1.
В этом примере кэш согласован, поскольку P2 видит записи в отдельные ячейки памяти в том порядке, в котором они были выполнены в P1.

Пример 3: Причинно-следственная связь: Нет; Процессор: Да
PП1 Вт(х)1 Вт(х)2
П 2 Р(х)2 Вт(у)3
PP3 Р(у)3 Р(х)1
Пример 4: Процессор: Нет; Кэш: Да
PП1 Вт(х)1 Вт(х)2 Вт(у)3
П 2 Р(у)3 Р(х)1

Согласованность процессора и последовательная согласованность

[ редактировать ]

Согласованность процессора (ПК) ослабляет порядок между старыми хранилищами и более молодыми загрузками, который обеспечивается последовательной согласованностью (SC). [2] Это позволяет отправлять загрузки в кэш и потенциально завершать их раньше, чем старые хранилища, а это означает, что хранилища могут быть поставлены в очередь в буфере записи без необходимости реализации спекуляции загрузки (загрузка может продолжаться свободно). [3] В этом отношении ПК работает лучше, чем SC, поскольку нет необходимости в методах восстановления после неудачных спекуляций, а это означает меньшее количество очисток конвейера. [3] Оптимизация предварительной выборки , которую используют системы SC, также применима к системам ПК. [3] Предварительная выборка — это предварительная выборка данных для предстоящих загрузок и сохранений до того, как они действительно понадобятся, чтобы сократить задержку загрузки/сохранения. Поскольку ПК уменьшает задержку загрузки, позволяя переупорядочивать нагрузки перед соответствующими хранилищами, необходимость в предварительной выборке несколько снижается, поскольку предварительно выбранные данные будут использоваться больше для хранилищ, чем для загрузки. [3]

Интуиция программиста

[ редактировать ]

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

Согласованность процессора по сравнению с другими моделями смягченной согласованности

[ редактировать ]

Согласованность процессора, хотя и слабее, чем последовательная согласованность, в большинстве случаев все же является более сильной моделью согласованности, чем необходимо. Это связано с количеством точек синхронизации, свойственных программам, работающим на многопроцессорных системах. [4] Это означает, что никаких гонок данных не может произойти (гонка данных представляет собой множественный одновременный доступ к ячейке памяти, где хотя бы один доступ является записью). [3] Имея это в виду, становится ясно, что модель может позволить реорганизовать все операции с памятью, пока ни одна операция не пересекает точку синхронизации. [3] и один из них так и есть, называемый слабым упорядочением. Однако слабая упорядоченность накладывает некоторые из тех же ограничений, что и согласованность процессора, а именно: система должна оставаться согласованной и, следовательно, все операции записи в одну и ту же ячейку памяти должны просматриваться всеми процессорами в одном и том же порядке. [4] Подобно слабому упорядочению, модель согласованности выпуска позволяет переупорядочивать все операции с памятью, но она становится еще более конкретной и разбивает операции синхронизации, чтобы обеспечить большее расслабление переупорядочения. [3] Обе эти модели предполагают правильную синхронизацию кода и, в некоторых случаях, поддержку аппаратной синхронизации, поэтому согласованность процессора является более безопасной моделью, которой следует придерживаться, если вы не уверены в надежности программ, которые будут запускаться с использованием этой модели.

Сходство с моделями памяти SPARC V8 TSO, IBM-370 и x86-TSO.

[ редактировать ]

Одним из основных компонентов согласованности процессора является то, что запись, за которой следует чтение, может выполняться вне порядка программы. По сути, это приводит к сокрытию задержки записи, когда нагрузкам разрешено опережать операции сохранения. Поскольку многие приложения правильно функционируют с такой структурой, системы, реализующие этот тип ослабленного упорядочения, обычно кажутся последовательно согласованными. Две другие модели, соответствующие этой спецификации, — это SPARC V8 TSO (Total Store Ordering) и IBM-370. [4]

Модель IBM-370 соответствует спецификации, позволяющей выполнять запись с последующим чтением вне программного порядка, за некоторыми исключениями. Во-первых, если операции выполняются в одном и том же месте, они должны выполняться в программном порядке. Во-вторых, если какая-либо операция является частью инструкции сериализации или между двумя операциями есть инструкция сериализации, то операции должны выполняться в программном порядке. [4] Эта модель, пожалуй, самая строгая из трех рассматриваемых моделей, поскольку модель TSO устраняет одно из упомянутых исключений.

Модель SPARC V8 TSO очень похожа на модель IBM-370 с тем ключевым отличием, что она позволяет выполнять операции в одном и том же месте вне программного порядка. При этом возможно, что загрузка вернет произошедшее сохранение, которое «устарело» с точки зрения порядка программы. [4] Эти модели аналогичны обеспечению согласованности процессора, но, хотя эти модели имеют только одну копию памяти, согласованность процессора не имеет такого ограничения. Это предполагает систему, в которой каждый процессор имеет свою собственную память, что подчеркивает необходимость согласованности процессора «требование когерентности». [4] "

Модель x86-TSO имеет несколько различных определений. Общая магазинная модель, как следует из названия, очень похожа на SPARC V8. Другое определение основано на локальных буферах записи. Отличия моделей x86 и SPARC TSO заключаются в отсутствии одних инструкций и включении других, но сами модели очень похожи. [5] Определение буфера записи использует различные состояния и блокировки, чтобы определить, можно ли читать/записывать определенное значение. Кроме того, эта конкретная модель для архитектуры x86 не страдает от проблем предыдущих моделей (с более слабой согласованностью) и предоставляет программистам более интуитивную основу для дальнейшего развития. [5]

См. также

[ редактировать ]
  1. ^ Jump up to: а б с Дэвид Мосбергер (1992). «Модели согласованности памяти» (PDF) . Университет Аризоны . Проверено 1 апреля 2015 г. {{cite journal}}: Для цитирования журнала требуется |journal= ( помощь )
  2. ^ Курош Гарачорлоо; Дэниел Леноски; Джеймс Лаудон; Филипп Гиббонс; Ануп Гупта; Джон Хеннесси (1 августа 1998 г.). «Согласованность памяти и порядок событий в масштабируемых мультипроцессорах с общей памятью» (PDF) . 25 лет международным симпозиумам по компьютерной архитектуре (Избранные статьи) . АКМ. стр. 376–387. дои : 10.1145/285930.285997 . ISBN  1581130589 . S2CID   47089892 . Проверено 1 апреля 2015 г.
  3. ^ Jump up to: а б с д и ж г час я дж к Солихин, Ян (2009). Основы параллельной компьютерной архитектуры: многокристальные и многоядерные системы . Солихин Паб. стр. 297–299. ISBN  978-0-9841630-0-7 .
  4. ^ Jump up to: а б с д и ж Курош Гарачорлоо (1995). «Модели согласованности памяти для мультипроцессоров с общей памятью» (PDF) . Западная исследовательская лаборатория . Проверено 7 апреля 2015 г. {{cite journal}}: Для цитирования журнала требуется |journal= ( помощь )
  5. ^ Jump up to: а б Скотт Оуэнс; Сумит Саркар; Питер Сьюэлл (2009). «Лучшая модель памяти x86: x86-TSO (расширенная версия)» (PDF) . Кембриджский университет. дои : 10.48456/tr-745 . Проверено 8 апреля 2015 г. {{cite journal}}: Для цитирования журнала требуется |journal= ( помощь )
Arc.Ask3.Ru: конец переведенного документа.
Arc.Ask3.Ru
Номер скриншота №: 159661182b2595daf9944c0782e1d418__1693965840
URL1:https://arc.ask3.ru/arc/aa/15/18/159661182b2595daf9944c0782e1d418.html
Заголовок, (Title) документа по адресу, URL1:
Processor consistency - Wikipedia
Данный printscreen веб страницы (снимок веб страницы, скриншот веб страницы), визуально-программная копия документа расположенного по адресу URL1 и сохраненная в файл, имеет: квалифицированную, усовершенствованную (подтверждены: метки времени, валидность сертификата), открепленную ЭЦП (приложена к данному файлу), что может быть использовано для подтверждения содержания и факта существования документа в этот момент времени. Права на данный скриншот принадлежат администрации Ask3.ru, использование в качестве доказательства только с письменного разрешения правообладателя скриншота. Администрация Ask3.ru не несет ответственности за информацию размещенную на данном скриншоте. Права на прочие зарегистрированные элементы любого права, изображенные на снимках принадлежат их владельцам. Качество перевода предоставляется как есть. Любые претензии, иски не могут быть предъявлены. Если вы не согласны с любым пунктом перечисленным выше, вы не можете использовать данный сайт и информация размещенную на нем (сайте/странице), немедленно покиньте данный сайт. В случае нарушения любого пункта перечисленного выше, штраф 55! (Пятьдесят пять факториал, Денежную единицу (имеющую самостоятельную стоимость) можете выбрать самостоятельно, выплаичвается товарами в течение 7 дней с момента нарушения.)