Главная » Просмотр файлов » Э. Таненбаум - Архитектура компьютера

Э. Таненбаум - Архитектура компьютера (1127755), страница 165

Файл №1127755 Э. Таненбаум - Архитектура компьютера (Э. Таненбаум - Архитектура компьютера) 165 страницаЭ. Таненбаум - Архитектура компьютера (1127755) страница 1652019-05-11СтудИзба
Просмтор этого файла доступен только зарегистрированным пользователям. Но у нас супер быстрая регистрация: достаточно только электронной почты!

Текст из файла (страница 165)

Исследователи до сих пор предлагают новые модели (35, 86). 0МА-мультипроцессоры в симметричных мультипроцессорных архитектурах Самые простые мультипроцессоры имеют всего одну шину 1рис. 8.21, а). Два или более процессора и один или несколько модулей памяти используют эту шину для взаимодействия. Если процессору нужно считать слово из памяти, он сначала проверяет, свободна ли шина.

Если шина свободна, процессор помещает адрес нужного слова на шину, устанавливает несколько управляющих сигналов и ждет, когда память поместит на шину запрошенное слово. Общая память Шина Собственная память Рис. 8.21. Три варианта мультипроцессора на одной шине: без кзш-памяти (а); с квш-памятью (б); с кзш-памятью и отдельными модулями локальной памяти (в) Если шина занята, процессор просто ждет, когда она освободится. С этой схемой связана одна проблема. При наличии двух или трех процессоров доступ к шине регулировать не сложно, трудности возникают, когда процессоров 32 или 64. Производительность системы в этом случае полностью определяется пропускной способностью шины, и многим процессорам большую часть времени приходится простаивать.

Чтобы разрешить проблему, нужно добавить к каждому процессору кзшпамять, как показано на рис. 8.21, б. Кэш-память может находиться внутри микросхемы процессора, рядом с микросхемой процессора, на плате процессора. 648 Глава 8. Параллельные компьютерные архитектуры Допустимы любые комбинации этих вариантов. Поскольку в этом случае считывать многие слова можно будет из каша, трафик на шине снизится, и система сможет обслуживать большее количество процессоров. Таким образом, кэширование дает в данном случае значительный эффект. В следующей схеме каждый процессор имеет не только кэш, но и собственную локальную память, к которой он получает доступ через выделенную локальную шину (рис.

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

Согласованность кешей Предположим, что память секвенциально состоятельна. Что происходит, когда процессор 1 содержит в своем каше некую строку, а процессор 2 пытается считать слово, соответствующее той же строке кэша? При отсутствии специальных правил процессор 2 получит копию этой строки в свой кэш. В принципе двойное кэширование одной и той же строки вполне приемлемо. А теперь предположим, что процессор 1 изменяет строку, и сразу после этого процессор 2 считывает копию этой строки из своей кэш-памяти. В результате он получает устаревшие данные, нарушая контракт между программным обеспечением и памятью.

Ни к чему хорошему для программы, выполняемой процессором 2, это не приведет. Данная проблема, которая носит название проблемы согласованности кэшей, очень важна. Если ее не разрешить, нельзя будет использовать кэш-память, и число мультипроцессоров, подсоединенных к одной шине, придется сократить до двух-трех. Специалистами было предложено множество различных решений (см., например, 177, 1591).

Хотя все эти алгоритмы, называемые протоколами согласования кашей, в некоторых деталях различаются, все они не допускают одновременного появления разных версий одной и той же строки в двух или более кэшах. Во всех решениях контроллер кэш-памяти разрабатывается так, чтобы кэш мог обеспечивать мониторинг запросов, идущих по шине от других процессоров и других кашей, в каждом конкретном случае предпринимая те или иные действия. Указанное устройство получило название следящего каша (зпоорш8 сасне), поскольку кэш как бы «следит» за шиной. Набор правил, которым следуют кэш, процессоры и основная память, чтобы предотвратить появление различных версий данных в нескольких кэшах, и называют протоколом согласования кэшей. Единицей передачи и хранения для каша является строка кэша. Обычно длина строки каша составляет 32 или 64 байт.

Самый простой протокол согласования кашей называется сквозной записью (вт(ге гйгоийл). Чтобы лучше понять механизм работы этого протокола, рассмотрим 4 случая, перечисленные в табл. 8.5. Если процессор пытается считать ялультипроцессоры 649 слово, которого нет в кэш-памяти, контроллер кэш-памяти загружает в кэш строку, содержащую это слово.

Строку предоставляет основная память, которая в этом протоколе всегда должна хранить обновленные данные. В дальнейшем информа- ция может считываться из каша. Таблица 8.5. Сквозная запись (пустые графы означают, что никакого действия не происходит) действие Локальный запрос Удаленный запрос Кэш-промах чтения Кзш-попадание чтения Вызов данных из памяти Использование данных из локального кеша Обновление данных в памяти Кэш-промах записи Кзш-попадание записи Обновление кеша и памяти Объявление элемента в кеше недействительным В случае кэш-промаха записи модифицированное слово записывается в основную память. Строка, содержащая нужное слово, не загружается в кэш.

В случае кэш-попадания записи кэш обновляется, а слово к тому же записывается в основную память. Суть протокола состоит в том, что в результате всех операций записи записываемое слово обязательно проходит через основную память, чтобы данные в основной памяти всегда были чсвежимиы Рассмотрим все эти действия снова, но теперь с позиции следящего каша (крайняя правая колонка в табл. 8.5). Назовем кэш, который выполняет действия, кэшем 1, а следящий кэш — кэшем 2. Если происходит кэш-промах чтения кэша 1, кэш 1 обращается к шине, чтобы получить нужную строку из основной памяти. Кэш 2 видит это, но ничего не делает.

Если же происходит кэш-попадание чтения каша 1 (то есть нужная строка уже содержится в каше 1), обращение к шине не выполняется, поэтому кэш 2 ничего не знает о кэш-попаданиях чтения каша 1. Процесс записи более интересен. Если процессор 1 записывает слово, кэш 1 обращается к шине как в случае кэш-промаха, так и в случае кэш-попадания. При любой записи кэш 2 проверяет наличие записываемого слова у себя.

Если слово отсутствует, кэш 2 рассматривает это как кэш-промах удаленной памяти и ничего не делает. (Отметим, что, согласно табл. 8.5, кэш-промах удаленной памяти означает, что слово отсутствует в следящем кэше, а есть оно в каше-инициаторе или нет, значения не имеет. Таким образом, один и тот же запрос может дать локальное кэш-попадание и кэш-промах для следящего каша, и наоборот.) А теперь предположим, что кэш 1 записывает слово, которое есть в кэше 2.

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

Таким образом предотвращается появление несогласованных версий. 650 Глава 8. Параллельные компьютерные архитектуры Естественно, процессор кэша 2 вправе прочитать то же самое слово на следующем цикле. В этом случае кэш 2 получает слово из основной памяти, которая уже обновилась.

В этот момент кэш 1, кэш 2 и основная память содержат идентичные копии этого слова. Если же какой-нибудь процессор произведет запись, то каши других процессоров будут очищены, а основная память опять обновится. Возможны различные вариации этого основного протокола. Например, в случае кэш-попадания записи следящий кэш обычно объявляет недействительным элемент, содержащий записываемое слово.

Однако вместо того чтобы объявлять слово недействительным, можно принять новое значение и обновить кэш. По существу, обновление каша — это то же самое, что объявление элемента недействительным с последующим считыванием нужного слова из памяти. Во всех протоколах кэширования нужно делать выбор между стратегией обновления и стратегией объявления данных недействительными. Эти протоколы работают по-разному при разной нагрузке. Сообщения обновления несут полезную нагрузку, и, следовательно, они больше по размеру, чем сообщения о недействительности данных, но зато они могут предотвратить последующие кэш-промахи. Еще один вариант — загрузка следящего каша при кэш-промахах записи. Такая загрузка никак не сказывается на правильности алгоритма; она влияет только на производительность.

Характеристики

Тип файла
DJVU-файл
Размер
13,7 Mb
Тип материала
Высшее учебное заведение

Список файлов книги

Свежие статьи
Популярно сейчас
Как Вы думаете, сколько людей до Вас делали точно такое же задание? 99% студентов выполняют точно такие же задания, как и их предшественники год назад. Найдите нужный учебный материал на СтудИзбе!
Ответы на популярные вопросы
Да! Наши авторы собирают и выкладывают те работы, которые сдаются в Вашем учебном заведении ежегодно и уже проверены преподавателями.
Да! У нас любой человек может выложить любую учебную работу и зарабатывать на её продажах! Но каждый учебный материал публикуется только после тщательной проверки администрацией.
Вернём деньги! А если быть более точными, то автору даётся немного времени на исправление, а если не исправит или выйдет время, то вернём деньги в полном объёме!
Да! На равне с готовыми студенческими работами у нас продаются услуги. Цены на услуги видны сразу, то есть Вам нужно только указать параметры и сразу можно оплачивать.
Отзывы студентов
Ставлю 10/10
Все нравится, очень удобный сайт, помогает в учебе. Кроме этого, можно заработать самому, выставляя готовые учебные материалы на продажу здесь. Рейтинги и отзывы на преподавателей очень помогают сориентироваться в начале нового семестра. Спасибо за такую функцию. Ставлю максимальную оценку.
Лучшая платформа для успешной сдачи сессии
Познакомился со СтудИзбой благодаря своему другу, очень нравится интерфейс, количество доступных файлов, цена, в общем, все прекрасно. Даже сам продаю какие-то свои работы.
Студизба ван лав ❤
Очень офигенный сайт для студентов. Много полезных учебных материалов. Пользуюсь студизбой с октября 2021 года. Серьёзных нареканий нет. Хотелось бы, что бы ввели подписочную модель и сделали материалы дешевле 300 рублей в рамках подписки бесплатными.
Отличный сайт
Лично меня всё устраивает - и покупка, и продажа; и цены, и возможность предпросмотра куска файла, и обилие бесплатных файлов (в подборках по авторам, читай, ВУЗам и факультетам). Есть определённые баги, но всё решаемо, да и администраторы реагируют в течение суток.
Маленький отзыв о большом помощнике!
Студизба спасает в те моменты, когда сроки горят, а работ накопилось достаточно. Довольно удобный сайт с простой навигацией и огромным количеством материалов.
Студ. Изба как крупнейший сборник работ для студентов
Тут дофига бывает всего полезного. Печально, что бывают предметы по которым даже одного бесплатного решения нет, но это скорее вопрос к студентам. В остальном всё здорово.
Спасательный островок
Если уже не успеваешь разобраться или застрял на каком-то задание поможет тебе быстро и недорого решить твою проблему.
Всё и так отлично
Всё очень удобно. Особенно круто, что есть система бонусов и можно выводить остатки денег. Очень много качественных бесплатных файлов.
Отзыв о системе "Студизба"
Отличная платформа для распространения работ, востребованных студентами. Хорошо налаженная и качественная работа сайта, огромная база заданий и аудитория.
Отличный помощник
Отличный сайт с кучей полезных файлов, позволяющий найти много методичек / учебников / отзывов о вузах и преподователях.
Отлично помогает студентам в любой момент для решения трудных и незамедлительных задач
Хотелось бы больше конкретной информации о преподавателях. А так в принципе хороший сайт, всегда им пользуюсь и ни разу не было желания прекратить. Хороший сайт для помощи студентам, удобный и приятный интерфейс. Из недостатков можно выделить только отсутствия небольшого количества файлов.
Спасибо за шикарный сайт
Великолепный сайт на котором студент за не большие деньги может найти помощь с дз, проектами курсовыми, лабораторными, а также узнать отзывы на преподавателей и бесплатно скачать пособия.
Популярные преподаватели
Добавляйте материалы
и зарабатывайте!
Продажи идут автоматически
6480
Авторов
на СтудИзбе
303
Средний доход
с одного платного файла
Обучение Подробнее