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