dz4

Интел Студия – Архитектура микропроцессоров
Домашнее задание 4
Добавьте чистое (не модифицированное) эксклюзивное состояние (clean exclusive) в базовый snooping-протокол соблюдения когерентности кэш-памяти (рис. 6.12 из Хеннеси и Паттерсон – см. конец файла). Изобразите диаграмму состояний нового протокола, взяв за основу рис. 6.12. (10 баллов)
Разница в производительности схем “write-update” и “write-invalidate” возникает как из-за потребления полосы пропускания, так и из-за времени доступа. Представим себе кэш-память с блоками длиной 64 байта и проигнорируем различные эффекты, вносимые возможным одновременным доступом в память.
Напишите две последовательности параллельных кодов, чтобы проиллюстрировать разницу в требуемой полосе пропускания между двумя этими схемами. Одна программа должна показывать в лучшем свете “write-update” схему, вторая программа – “write-invalidate” схему. (5 баллов)
Напишите параллельный код, который показывает преимущество с точки зрения времени доступа схемы “write-update” перед схемой “write-invalidate”. (4 балла)
Покажите пример (код программы), что в случае, если у нас существует одновременный доступ (разных процессоров в память), время доступа для схемы “write-update” может быть хуже, чем у “write-invalidate”. (5 баллов)
Контроллер каталога (directory controller) может посылать сигналы сброса (invalidate) для блоков кэш-памяти, которые уже были замещены локальным кеш-контроллером. Для воспрепятствования появлению таких сообщений используются подсказки замены данных (replacement hint). Эти сообщения говорят контроллеру (каталога), что блок был заменен в локальной кэш-памяти. Измените протокол когерентности каталога (рис. 6.29 и 6.30 из Хеннеси и Паттерсона – см. конец файла), с целью поддержания таких подсказок замены данных. (10 баллов)
Один из возможных подходов к обеспечению масштабируемости и снижению стоимости распределённой общей памяти заключается в комбинировании двух подходов: используя множество процессоров, к каждому из которых подключена часть памяти, при этом процессоры соединяются шиной. Один из аргументов в пользу такой реализации заключается в том, что использование локальной памяти и протокола когерентности с ограниченными широковещательными посылками даёт результат в виде уменьшения загрузки шины, позволяя подключать к шине большее количество процессоров. Примем следующие характеристики доступа в кэш-память для машины с 64-байтовыми кэш-блоками:
Средняя доля промахов в кэш-память данных (принимаем, что количество промахов в кэш-память инструкций незначительно)
2%

Средняя доля промахов в приватные данные (используемые только этим процессором)
60%

Средняя доля промахов в общие данные, которые не закреплены ни за одним процессором (unowned) в удалённой кэш-памяти
20%

Средняя доля промахов в общие данные, которые модифицированы (dirty) в удалённой кэш-памяти
80%

Примем, что время, потраченное на обработку локального промаха, – 100 нс до рестарта работы конвейера процессора. Для удалённых промахов используйте таблицу 6.50 (Хеннеси и Паттерсон, см. конец файла, в электронной версии – таблица 6.47), данные для машины E6000 (Wildfire) для промахов в память при рестарте работы конвейера процессора (не используйте время промаха back-to-back).
Найдите среднее время промаха для данной конструкции памяти. (5 баллов)
Примем тактовую частоту в 1 ГГц, CPI равным 1.0 при доле попаданий в кэш-память 100%, а также, что инструкции загрузки и сохранения поступают в конвейер через такт (одна инструкция за два такта). Если процессор остановлен в течение промаха в кэш-память до рестарта конвейера, каким будет реальный CPI? Какова реальная скорость выдачи процессором инструкций загрузки и сохранения? (5 баллов)
Примем, что шина имеет раздельные транзакции для запроса и подтверждения для всех транзакций на шине. Если запрос или подтверждение на шине требует пересылки 16 байтов, а пересылка данных требует пересылки 80 байтов, каковы требования к пропускной способности общей шины на один процессор? (7 баллов)
Реализация шин с раздельными транзакциями достаточно сложна на практике, и единственным точным способом измерения полосы пропускания шины подчас являются реальные измерения (на ворклоаде). Примем, что процессоры не должны использовать более 80% от пропускной способности данных, не привязанных к процессору (unowned) или эксклюзивных (exclusive) данных. Используя результаты пункта (b) и условия пункта (c), определите, сколько процессоров могут использовать шину с характеристиками пропускания как у шины E6000 (Wildfire) – см. рис. 6.51 Хеннеси и Паттерсон, верхняя часть (в электронной версии – таблица 6.48). (8 баллов)
Одной из часто используемых оптимизаций в машинах с общей памятью является выравнивание переменных синхронизации – с тем, чтобы блок кэш-памяти, в котором находится эта переменная, не содержал больше никаких полезных данных. Примем, что протокол когерентности кэш – snoop с протоколом доступа в кэш-память типа write-invalidate. Сконструируйте пример (скорее всего, искусственный), в котором использование данной техники снижает производительность системы. (8 баллов)
Рассмотрим результаты прогонов пяти бенчмарков для чисел с плавающей точкой и двух бенчмарков для целых чисел из пакета SPEC-92 на симуляторе процессора. Процент неправильных предсказаний переходов практически удваивается от 5% до 9.1% при переходе от одного потока к восьми потокам в процессоре с аппаратной многопоточностью. Хотя процент инструкций, выбранных из памяти после неправильного предсказания перехода, падает с 24% на одном потоке до 7% на восьми потоках.
Из-за чего увеличивается процент неправильных предсказаний переходов? (5 баллов)
Почему уменьшается процент неправильно выбранных инструкций, несмотря на увеличение процента неправильных предсказаний направления перехода, при условии, что часть потоков может быть неактивной? (4 балла)
Основываясь на этих цифрах, какой можно сделать вывод о конфликтах, возникающих вследствие одновременного доступа к различным ресурсам процессора с аппаратной многопоточностью и совместной работы с ними? (5 баллов)
Одним из важных конструкторских решений при проектировании процессора с аппаратной многопоточностью является выбор «предпочитаемого» потока. Проиллюстрируем трудности, возникающие при решении этой проблемы. Восьмипоточный процессор исполняет многопоточную версию параллельной программы. Процессор использует эвристику, которая даёт преимущество в исполнении потоку, имеющему минимальное количество инструкций в очередях инструкций, устройствах декодирования и переименования регистров.
Какие преимущества этой эвристики? (7 баллов)
Предложите сценарий, при котором применение данной эвристики приводит к тому, что некоторый поток вообще не будет исполняться (Это называется «голодная смерть»). (7 баллов)
Какие другие эвристики вы можете предложить для планирования «предпочитаемого» потока? (5 баллов)
(Дискуссия) При попытках детального анализа многопроцессорных систем, проектировщики системы используют один из следующих трёх инструментов: 1) аналитическая модель; 2) симуляция по трассе программы; 3) симуляция программы на процессоре. Аналитическая модель используется для моделирования поведения программы. Симуляция по трассе программы прогоняет приложение на реальной машине и генерирует трассу обычно только из операций доступа в память. Эти трассы могут быть «проиграны» на симуляторе кэш-памяти или симуляторе с простой моделью процессора для предсказания производительности системы при изменении различных параметров памяти (вспомните проект 2). Симуляторы процессора имитируют полностью работу приложения, включая исполнение всех инструкций и всё внутреннее состояние процессора. Как вы думаете, где достигается компромисс параметров «аккуратность описания – время исполнения» при анализе архитектур? Какую модель бы вы использовали для оценки быстродействия современных четырёхядерных процессоров? (10 баллов)
Среднее расстояние подвода головки накопителя на жёстком магнитном диске зависит от последовательности реальных дисковых операций, производимых ворклоадом.
Используя статистику - рис. 7.52 из Хеннеси и Паттерсона (см. конец файла) - вычислите среднее расстояние подвода головки для обоих ворклоадов. Указание: используйте полусумму соседних (по вертикали) чисел как среднее расстояние (например, для 91 и 105 на диаграмме число будет 98 [дорожек]). Для бизнес-ворклоада игнорируйте недостающие 6% перемещений. Для UNIX-ворклоада примите расстояние для пропущенных 15% перемещений как 300 дорожек. (5 баллов)
Если оба перечисленных ворклоада были запущены на дисках, описанных на рисунке 7.2 из Хеннеси и Паттерсона (см. конец файла), какие общие моменты и какие различия будут в трёх множествах результатов запуска этих ворклоадов на каждом диске? (7 баллов)
Примем следующие характеристики MIPS-машины: - операции загрузки и сохранения результата в памяти длятся 2 такта - все иные инструкции длятся 1 такт Используйте распределение инструкций для gcc (рис. 2.32 из Хеннеси и Паттерсона – находится в конце файла). Параметры кеш-памяти со сквозной записью (write-through) следующие: - длина блока – 4 слова, при промахе из памяти читается целый блок; - штраф за промах в кеш – 23 такта; - сквозная запись производится за 16 тактов, буферов записи не существует. Параметры кеш-памяти с обратной записью следующие: - длина блока – 4 слова, при промахе из памяти читается целый блок; - штраф за промах в кеш – 23 такта для неизменённого блока (clean) и 31 такт для изменённого блока (dirty); - при промахе в 30% случаях блок изменён (dirty). Параметры шины: - шина занята только во время передачи данных; - при передаче слово передаётся за один такт; - читает или пишет только одно слово в каждый момент времени (запись или чтение двух слов одновременно не происходит быстрее)
Примем, что ввод-вывод с помощью прямого доступа в память (ПДП) возможен одновременно с успешной выборкой (попаданием) данных процессором из кэш-памяти. Примем, что операционная система гарантирует, что не будет дополнительных остановов процессора при доступе в основную память (во время промаха в кэш-память) из-за операций ввода-вывода. Размер сектора при вводе-выводе – 1 Кбайт. Примем, что процент промахов в кэш-память равен 5%. В среднем, на сколько загружена шина (в процентах) для каждой политики записи в кэш-память? (7 баллов)
Примем все допущения из пункта (a). Если шина может быть нагружена на 80% и при такой загрузке не будет серьёзного падения производительности системы, какая пропускная способность памяти может использоваться для целей ввода-вывода при каждой политике записи в кэш-память? (5 баллов)
Примем все допущения из пункта (a). Примем, что чтение сектора диска занимает 1000 тактов при инициировании чтения, 100.000 тактов для поиска данных на диске и 1000 тактов для контроллера ПДП – для пересылки содержимого сектора в память. Сколько чтений диска может быть осуществлено на 1.000.000 исполненных инструкций при каждой политике записи в кэш-память? Как изменится это число, если количество промахов в кэш-память упадёт в два раза? (8 баллов)
Примем все допущения из пункта (с). Предположим, у вас может быть неограниченное число дисков. Примем, что планирование дискового доступа идеально. Какое максимальное количество чтений дисковых секторов может быть произведено на 1.000.000 выполненных инструкций? (7 баллов)
Кассетные банки данных в основном используются для архивирования данных, и поэтому требования к времени доступа к кассетам достаточно невелики.
Пусть ёмкость хранения банка данных Sun StreamLine SL 8500, оснащённой стриммерами StorageTek T10000 – 300000 кассет. Каждая кассета хранит 500 ГБ данных в несжатом состоянии, к банку данных подключено 2048 стриммеров со скоростью чтения 120 МБайт/сек. Возможны максимум 60000 смен кассет в час (включая время загрузки/выгрузки кассеты из стримера плюс время, которое тратится роботом на выборку и укладывание кассеты на место в архив). Посчитайте, сколько времени понадобится на чтение всех данных из такого устройства. Какова ёмкость банка памяти. (6 баллов)
Примем, что ресурс головки каждого из стримеров составляет 10000 часов (нет разницы – происходят чтение или запись). Сколько полных циклов сканирования банка данных можно произвести до выработки ресурса головок? (4 балла)
Рассмотрим архитектуру процессора цифровой обработки сигналов, имеющего длинное командное слово – Texas Instruments TMS320C62xx. (Указание: с домашним заданием выдаётся 5 вариантов кода некоторых функций цифровой обработки в отдельном файле-архиве dz4_dop.zip). Возьмите примеры кода для процессора TMS320C62xx согласно своему варианту (каталог varx) и добавьте комментарии к каждой команде процессора аналогично тому, как вы это делали в проекте 1. В каждом задании дан исходный текст функции на языке Си и реализация той же функции на языке ассемблера. Сравните код TMS320C62xx (по быстродействию и размеру) с реализацией для процессора x86 (ассемблерный код находится в файле x.s). Как вы думаете, имеет ли смысл использовать процессор с длинным командным словом для встраиваемых применений? (25 баллов, в случае отсутствия попытки решения этого задания снимается 60 баллов от общей суммы баллов за домашнее задание).

Указания к ДЗ-4.
Задание 12. В приложенном архиве есть 5 вариантов заданий.


Примерное распределение времени по выполнению ДЗ-4:
Задание
За листом бумаги, мин
За компьютером, мин
Макс. Баллы

1


10

2


14

3


10

4


25

5


8

6


15

7


19

8


10

9


12

10


27

11


10

12


25

Итого


185


Итого, примерное время выполнения домашнего задания – 5.5 часов.

Дополнительные материалы

Рис. 6.12.

Рис. 6.11 (на него ссылается рис. 6.12)

Рис. 6.29.

Рис. 6.30

Табл. 6.50

Табл. 6.51

Рис. 7.52

Рис. 7.2

Рис. 2.32.

Заголовок 1 Заголовок 215

Приложенные файлы

  • doc 19120278
    Размер файла: 907 kB Загрузок: 0

Добавить комментарий