Учебный курс Архитектура ЭВМ и язык ассемблера Лекция 9 заместитель министра связи и массовых коммуникаций РФ, старший преподаватель Северов Дмитрий Станиславович
– – – – Алгоритмы кэша Отображение – Прямое – Полностью-ассоциативное – Множественно-ассоциативное Замещение (выбор удаляемой строки) Least Recently Used, самая давно неиспользуемая First in First Out, самая давно хранимая Least Frequently Used, самая редко используемая Случайный Согласование – Write Trough, сквозная запись, отображение, буферизация – Write Back, запись только в кэш, проблема параллельного доступа 2
Специальные меры Прогнозирование ветвлений – Проблема отсрочка ветвления умолчание: условные переходы чаще назад отмена выполненных команд – Динамическое прогнозирование – Статическое прогнозирование Кеширование преобразований адреса 3
– – – – Суперскалярность Несколько команд одновременно Диспетчеризация, распределение, исполнение, обновление Множественные конвейеры Неупорядоченная выдача/завершение команд Аппаратная поддержка Подмена регистров Переупорядочивание команд Спекулятивное выполнение Буфер восстановления последовательности 4
Явный параллелизм инструкций Различные операционные устройства Несколько одинаковых ОУ Множество операций одной командой Команда=микрокоманда «Кошмарный» ассемблер Вся надежда на компилятор Very Long instruction Word Explicitly Parallel instruction Computing 5
Примеры неупорядоченности Субъекты на рынке Задачи в потоке работ Функции в спецификации Фрагменты в алгоритмах Компьютеры в системе Процессоры в компьютере Процессы в процессорах Нити в процессах Команды в нити Программы в ОС Конструкты в программах Операторы в конструкте Операции в операторе Микрокоманды в команде Микрооперации в микрокоманде Элементы в схеме 6
– – – – – Параллелизм - (не)упорядоченность Уровни Независимые задания на нескольких ВМ в ВС Части задачи на нескольких ЦП в ВС Разные команды на нескольких устройствах ЦП Разные фазы команд на разных фрагментах ЦП Разные данные на разных фрагментах ОУ «Зернистость» – Крупная: >1K команд. Слабая связь. Контроль ОС.. – Средняя: ~100 команд. Контроль: программист и компилятор – Мелкая: ~10 команд. Сильная связь. Контроль: компилятор 7
– – – – (Не)согласованность действий Гонка 1.Считал, проверил, выполнил , записал, Пример: поставщик, склад, клиент П: место? (завожу, было_пусто?бужу:) :сплю К: товар? (вывожу, места_не_было?бужу:) :сплю К: вывожу, товар ?, :сплю. П: место?завожу,было_пусто?,бужу, место?завожу,было_пусто?:, место?:сплю. Семафоры – Считал-проверил-выполнил 8