
- •Многоуровневая компьютерная организация Общая классификация систем обработки данных
- •Многоуровневая компьютерная организация
- •Историческое развитие архитектуры эвм
- •Периферийные процессоры и шины
- •Многопрограммный режим работы
- •Введение в процессор нескольких специальных алу
- •Архитектура «Эльбрус»
- •Широкий спектр компьютеров
- •Архитектура процессоров Микропрограммный способ выполнения команд
- •Порядок функционирования устройства
- •Cisc и risc архитектуры
- •Cisc-процессора.
- •Risc-процессора
- •Сравнение архитектур
- •Скалярные и векторные процессоры
- •Конвейеры
- •Конфликты
- •Динамическое исполнение команд
- •Спекулятивное исполнение
- •Предикация
- •Опережающее чтение
- •Буфер прогнозирования условных переходов
- •Многоконвейерная архитектура
- •Суперскалярная архитектура
- •Vliw процессоры
- •Epic архитектура
- •Архитектура x86, x86-64, ia-32 и ia-64
- •Основы многопоточной архитектуры
- •Сравнение параллельной и конвейерной организации вычислительных систем
- •Многоядерные или многопроцессорные системы
- •Кластерная архитектура
- •Организация оперативной памяти Основные характеристики систем памяти
- •Основная память
- •Динамическая память
- •Асинхронная память
- •Синхронный режим
- •Динамические озу для видеоадаптеров
- •Многопортовые озу
- •Управление вводом/выводом. Файловая система Внешние запоминающие устройства.
- •Повышение отказоустойчивости
- •Код Хэмминга (дополнительно)
- •Биты паритета (дополнительно)
- •Шины и системы ввода/вывода
- •Подключение памяти и систем ввода/вывода к цп через отдельные шины
- •Совместно используемые линии данных и адреса
- •Подключение системы ввода/вывода к шине на общих правах с цп и памятью
Динамическое исполнение команд
Основная идея динамической оптимизации – снятие требования о выполнении команд в строгом порядке. Иначе говоря, предполагается, что в процессе выполнения команд, их порядок может меняться. Обычно это производится расщеплением блока декодирования на две ступени:
Выдача (или декодирование) команды и проверка структурных конфликтов
Чтение операндов (ожидание отсутствия конфликтов по данным и чтение операндов).
В общем случае необходимо строгую последовательность выполнения команд разложить в другую последовательность, чтобы команды могли выполняться параллельно.
CPI (Clock per Instruction). Общий CPI процессора равен CPI идеального конвейера + приостановки из-за RAW, WAR, WAW + приостановки из-за конфликтов по управлению.
Рассмотрим основные методы динамической оптимизации:
Метод |
Что снижает |
Разворачивание цикла |
Приостановки по управлению |
Базовое планирование конвейера |
Приостановки по RAW |
Динамическое планирование с централизованной схемой управления |
Приостановки по RAW |
Динамическое планирование с переименованием регистров |
Приостановки по WAR и WAW |
Динамическое прогнозирование переходов |
Приостановки по управлению |
Выдача нескольких команд в одном такте |
Идеальный CPI |
Анализ зависимостей компилятором |
Идеальный CPI и все приостановки по данным |
Программная конвейеризация и планирование трасс |
Идеальный CPI и все приостановки по данным |
Выполнение по предположению |
Приостановки по управлению и все по данным |
Динамическое устранение неоднозначности памяти |
Приостановки по RAW, связанные с памятью |
Разворачивание цикла. Эти методы выполняются либо статически (компилятором), либо динамически аппаратными средствами (во время выполнения). Альтернативный метод – использование векторных команд (оперирует с последовательностями элементарных данных). Эти команды могут выполняться конвейером и иметь относительно большие задержки выполнения, которые, впрочем, могут перекрываться.
Динамическая оптимизация с централизованной схемой обнаружения конфликтов.
Все команды проходят через ступень выдачи результата строго в порядке, предписанном программой (упорядоченная выдача)
Команды могут приостанавливаться и обходить друг друга на ступени чтения операндов.
Задача такой схемы – обеспечить как можно более раннее начало выполнения команд. Все это требует нахождения нескольких команд на стадии выполнения. Достигается это двумя способами:
Реализация в процессоре множества не конвейерных функциональных устройств.
Путем конвейеризации всех функциональных устройств.
Спекулятивное исполнение
Построение любой, желательно оптимизированной, последовательности команд (микрокоманд) строится на методах предсказания (то есть спекулятивно). Примером таких спекуляций являются последовательности команд, которые содержат условный оператор. Процессор вычисляет команды на обоих концах ветвления, результаты вычисления запоминаются как спекулятивные. На некотором этапе последовательность вычислений восстанавливается. Существует несколько вариантов спекулятивного исполнения:
Предикация – одновременное исполнение нескольких ветвей программы вместо предсказания переходов (выполнение наиболее вероятного)
Опережающее чтение данных – загрузка данных в регистры с опережением, до того, как определилось реальное ветвление программы.
Эти две возможности осуществляются комбинированно, то есть при компиляции и при выполнении программы.