==Обзор==
Процессор без когерентности (CFP)
==Связность является биномиальной==
Процесс синхронизации кэша известен как когерентность. Существует несколько протоколов связи, которые можно использовать для синхронизации. На рисунке справа показано, как согласованность синхронизирует кэши. Разработчики аппаратного обеспечения пытались уменьшить эти накладные расходы на когерентность. Их усилия оказались бесплодными, поскольку накладные расходы биномиальны. Биномиальные накладные расходы приводят к почти геометрическому взрыву накладных расходов на когерентность при добавлении ядер. (См. задачу «День рождения» )
Проблема должна быть решена до того, как проблема станет биномиальной. Программные задачи могут обмениваться данными без возникновения биномиальной проблемы. До 1973 года это делалось с помощью программной блокировки, такой как инструкция Test-and-set|Test and Set. В 1973 году эта функция была заменена непрерывной инструкцией сравнения и обмена | Сравнение и замена, которая также во многих случаях устраняла блокировку. Замена условна и происходит только тогда, когда сравнение истинно. Инструкция является непрерывной, поскольку оба шага должны быть выполнены, прежде чем будет разрешен доступ другой задаче. Однако аппаратное обеспечение не может решить биномиальную задачу, поскольку для решения требуется информация, которую программное обеспечение не передает аппаратному обеспечению. Для передачи этой информации требуется новая инструкция.
==Архитектура системы==
(Примечание. Для ясности в этом разделе предполагается соответствие процессора. Переключение на другой процессор может быть реализовано путем немедленного исключения для удаления остаточных данных из кэша.)
===Программное обеспечение===
CFP использует существующее программное обеспечение. Однако для сохранения текущего соотношения цены и качества требуется новая инструкция. Новая инструкция определяет, будет ли выделена общая или эксклюзивная память. Типичная пользовательская программа не содержит общих данных, поэтому распределение памяти по умолчанию будет монопольным. Поскольку системные программы работают с общими данными, использование эксклюзивного кэша потребует выделения обоих.
Новое распределение дает одно немедленное преимущество. Когерентность кэша в настоящее время выполняется для всех данных. Это необходимо выполнять только с общими данными.
===Аппаратное обеспечение===
CFP требует трех методов обработки данных, но все они не связаны друг с другом.
====1) Эксклюзивный кэш====
1) Для памяти, которая не используется совместно, используется монопольный кеш. Он также может содержать статические общие элементы данных, такие как программный код, которые являются общими, но не изменяются (совместный ввод/вывод). Содержимое эксклюзивного кэша не требует согласованности.
====2) Общая память====
Общая память не хранится в кеше, и обновления выполняются непосредственно в общей памяти. Обход кеша приводит к отсутствию согласованности.
====3) Атомный механизм синхронизации оборудования====
Механизм линеаризуемости | атомарной аппаратной синхронизации в настоящее время реализован согласованно, поскольку он выполняется в кеше. CFP заменяет этот атомарный механизм аппаратной синхронизации механизмом, который выполняет атомарные инструкции непосредственно в основной памяти. Сериализация заменяет согласованность.
===Миграция===
Текущая программная логика сохранена, изменение касается прозрачного кэша. Общая память всегда согласована, поскольку она никогда не хранится в кеше. Преобразование в новую инструкцию распределения предназначено исключительно для повышения производительности.
===Производительность===
Производительность CFP выгодно отличается от производительности мультипроцессора, поскольку данные в эксклюзивном кэше не имеют согласованности.
Преимущество мультипроцессора состоит в том, что он выполняет совместное чтение из кэша, однако программное обеспечение избегает повторного чтения общих данных, поскольку они могут быть изменены. Программное обеспечение должно использовать копии моментальных снимков. Совместная запись аналогична, но многопроцессорная сквозная запись приводит к согласованности в форме аннулирования.
===Постепенный рост===
CFP обеспечивает постепенное наращивание процессоров при неизменной цене/производительности. Для повышения производительности не требуется никаких новых технологий.
===Многозадачность===
CFP обеспечивают более высокую производительность, позволяя делегировать задачи, находящиеся в многозадачной очереди, другим CFP. Это сокращает затраченное время, но не время выполнения. CFP работают в многозадачном режиме, когда процессоров недостаточно. CFP позволяют добавлять устройства, содержащие собственный базовый процессор, тем самым не влияя на производительность существующей системы.
===Преимущества CFP (обеспечиваются достаточным количеством процессоров)===
Привязка к процессору, без балансировки нагрузки. Балансировка нагрузки обеспечивает согласованность.
Менеджеры баз данных могут работать на выделенных процессорах, что позволяет выполнять их без блокировок.
CFP, выполняющие задачи, не требуют всей операционной системы.
Время, затрачиваемое задачами в многозадачной очереди, может быть сведено к нулю. Затраченное время может равняться времени выполнения.
CFP могут располагаться на разных чипах, поскольку они не обладают связностью.
Любое устройство, подключающееся к шине, может содержать CFP.
Подробнее: https://en.wikipedia.org/wiki/Coherence-free_processor
Бескогерентный процессор ⇐ Васина Википедия
-
Автор темыwiki_en
- Всего сообщений: 95057
- Зарегистрирован: 16.01.2024
-
- Похожие темы
- Ответы
- Просмотры
- Последнее сообщение
Мобильная версия