- •1)Методы одновременной выдачи на выполнение нескольких команд. Краткая характеристика.
- •2)Сравнительная характеристика суперскалярных и vliw машин.
- •3)Архитектура машин с длинным командным словом.
- •Vliw: старая архитектура нового поколения
- •5)Обнаружение и устранение зависимостей компилятором. Планирование кода и анализ циклов для выявления параллелизма.
- •4)Особенности компилятора для машин с длинным командным словом.
- •6)Обнаружение и устранение зависимостей компилятором. Классификация типов зависимостей и ее применение.
- •7)Программная конвейеризация: символическое разворачивание циклов
- •9)Трассировочное планирование. Уплотнение трассы.
- •8)Трассировочное планирование. Общая схема и область применения.
- •10)Ограничения статических методов увеличения степени доступного параллелизма. Условные команды.
- •3)Использование условных команд ограничено, когда в поток управления вовлечено больше одной простой альтернативной последовательности команд.
- •11)Выполнение по предположению (speculation). Общая характеристика и пример применения.
- •12)Дополнительные блоки, вводимые в схему Томасуло, для реализации выполнения по предположению.
- •13)Этапы выполнения команды в схемы Томасуло расширеной для реализации выполнения по предположению. Обработка исключительных ситуаций.
- •14)Архитектура epic. Основные отличия от vliw архитектуры.
- •15)Микроконтроллеры - общий обзор.
14)Архитектура epic. Основные отличия от vliw архитектуры.
EPIC - концепция реализации параллелизма на уровне команд.
Направлена на то, чтобы упростить аппаратное обеспечение и, в то же время, извлечь как можно больше «скрытого параллелизма» на уровне команд, используя большую ширину «выдачи» команд и длинные (глубокие) конвейеры с большой задержкой, чем это можно сделать при реализации VLIW или суперскалярных стратегий. EPIC упрощает два ключевых момента, реализуемых во время выполнения. Во-первых, его принципы позволяют во время исполнения отказаться от проверки зависимостей между операциями, которые компилятор уже объявил как независимые. Во-вторых, данная архитектура позволяет отказаться от сложной логики внеочередного исполнения операций, полагаясь на порядок выдачи команд, определенный компилятором. Более того, EPIC совершенствует возможность компилятора статически генерировать планы выполнения за счет поддержки разного рода перемещений кода во время компиляции, которые были бы некорректными в последовательной архитектуре.
EPIC разработан для того, чтобы обеспечить более высокую степень параллелизма на уровне команд, поддерживая при этом приемлемую сложность аппаратного обеспечения.
Более высокая производительность достигается как за счет увеличения скорости передачи сигналов, так и благодаря увеличению плотности расположения функциональных устройств на кристалле.
Одна из целей при создании EPIC состояла в том, чтобы сохранить реализованный во VLIW принцип статического создания POE (точный план - схема исполнения создается статически во время компиляции), но и в то же время обогатить его возможностями, аналогичными возможностям суперскалярного процессора, позволяющими новой архитектуре лучше учитывать динамические факторы, традиционно ограничивающие параллелизм, свойственный VLIW. Чтобы добиться этих целей, EPIC была построена на некоторых основных принципах.
Первый — это создание плана выполнения во время компиляции. Суть состоит в переупорядочивании исходного последовательного кода так, чтобы использовать все преимущества параллелизма приложения и максимально эффективно тратить аппаратные ресурсы, минимизируя время выполнения.
Следующим принципом является использование компилятором вероятностных оценок. EPIC создает и оптимизирует POE для наиболее вероятных случаев. После того, как создан план, компилятор передает его аппаратному обеспечению.
Архитектура EPIC имеет следующие основные особенности:
1)поддержка явно выделенного компилятором параллелизма. Формат команд имеет много общего с архитектурой с длинным командным словом - параллелизм так же явно выделен. Однако, если длинное командное слово имеет обычно чётко заданную ширину (хотя в процессорах с нерегулярным длинным командным словом слова могут быть разными), в процессоре EPIC существует некоторое количество образцов длинных команд, в которых функциональным устройствам процессора явно сопоставлена операция.
2)наличие большого регистрового файла
3)наличие предикатных регистров. Предикатные регистры позволяет избавится от известной проблемы с неразделяемым ресурсом регистра флагов большинства процессоров, поддерживающих скалярный параллелизм - программная конвееризация циклов, содержащих условные переходы, практически невозможна. Множественный предикатный флаговый регистр позволяет избавится от паразитных связей по управлению из-за регистра флагов.
4)спекулятивная загрузка данных, позволяющая избежать простоев конвейера при загрузке данных из оперативной памяти
5)поддержка предикатно-выполняемых команд, которая позволяет: 6) избежать излишних инструкций ветвления, если количество команд в ветвях условного оператора невелико; 2) уменьшить нагрузку на устройство предсказания переходов.
7)аппаратная поддержка програмной конвейеризации с помошью механизма переименования регистров.
8)Используется стек регистров (и регистровые окна).
9)Для предсказания инструкций используется поддержка компилятора.
10)Имеется специальная поддержка программной конвейеризации циклов, когда на каждой итерации имена регистров сдвигаются и каждая новая итерация оперирует уже с новым набором регистров.
11)Введена поддержка инструкций циклического выполнения команд без потерь времени на инструкции циклического выполнения.
