Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
AEVM_metodichka_2.docx
Скачиваний:
1
Добавлен:
01.05.2025
Размер:
155 Кб
Скачать
☆

Vliw (Very Long Instruction Word) – Микропроцессоры с длинным командным словом.

VLIW разработка РФ. Она не попадает под принципы Фон Неймана, нарушает принцип последовательного выполнения команд.

В процессорах VLIW задача распределения работы между вычислительными модулями решается во время компиляции и в командах явно указано, какое вычислительное устройство какую команду должно выполнять. Например, одна VLIW-команда может включать две целочисленные операции, две с плавающей точкой, две операции обращения к памяти и операции перехода. Длина такой команды обычно 112-168 бит.

Для VLIW машин был разработан новый метод планирования выдачи команд – трассировочное планирование. При его использовании из последовательности команд исходной программы генерируются длинные команды путём просмотра программы за пределами базовых блоков (линейный участок программы без ветвления). Компилятор с трассировочным планированием определяет участок программы без переходов назад, которая становится кандидатом для составления расписания. Переходы назад обычно имеются в программах с циклами.

Путь, имеющий наибольшую вероятность выполнения (трасса), используется для оптимизации, проводимой с учетом зависимости по данным между командами и ограничением аппаратных ресурсов. Во время планирования генерируется длинное командное слово.

Все операции длинного командного слова выдаются одновременно и планируются параллельно. После обработки первой трассы планируется следующий путь, имеющий наибольшую вероятность выполнения. Процесс упаковки команд последовательной программы в длинные командные слова продолжается до тех пор, пока не будет оптимизирована вся программа. Ключевым условием эффективной работы VLIW-машины является корректное предсказание выбора условных ветвей. Например, очень высокий прогноз условных ветвей имеется для научных программ.

Примеры: Intel Itanium, «Эльбрус», видеокарты AMD/ATI Radeon.

Суперскалярные процессоры.

Есть два подхода к отображению внутреннего параллелизма обработки данных.

  1. Система команд не содержит никаких указаний на параллельную обработку данных внутри процессора (суперскалярные процессоры).

  2. Система команд содержит указания на параллельную обработку данных внутри процессора (VLIW, EPIC).

Суперскалярные процессоры – дальнейшее развитие конвейеризации. Их отличительной особенностью является возможность выполнения нескольких команд за один процессорный цикл. В суперскалярных системах формирование расписания управления команд возлагается на микропроцессор, что требует много ресурсов.

!!! Вопрос 20. Особенности risc архитектуры (смотри вопрос 19)

Вопрос 21. Параллельная обработка. Конвейерная организация. Типы конфликтов

Архитектура фон Неймана обладает тем недостатком, что она последовательная. Какой бы огромный массив данных ни требовалось обработать, каждый его байт должен будет пройти через центральный процессор, даже если над всеми байтами требуется провести одну и ту же операцию. Этот эффект называется узким горлышком фон Неймана. Для преодоления этого недостатка предлагались и предлагаются архитектуры процессоров, которые называются параллельными.

Параллельная обработка – это выполнение более одной команды одновременно. Достигается данный эффект путем совмещения операций за счет использования копий аппаратной структуры. Параллельные процессоры используются в суперкомпьютерах. Возможными вариантами параллельной архитектуры могут служить:

  1. SISD — один поток команд и один поток данных.

  2. SIMD — один поток команд и много потоков данных.

  3. MISD — много потоков команд и один поток данных.

  4. MIMD — много потоков команд и много потоков данных.

Конвейерная организация основана на разделении выполняемой функции на ступени и выделения каждой из них отдельного блока аппаратуры. Производительность при этом возрастает благодаря тому, что одновременно на различных ступенях конвейера выполняется несколько команд. При этом время выполнения каждой команды на конвейере не уменьшается, что накладывает определенные ограничения на длину конвейера. Конвейеризация эффективна только тогда, когда загрузка конвейера близка к полной (обычно 4-5 команд). Конвейерная организация используется как в CISC, так и RISC.

При реализации конвейерной обработки возникают конфликты - ситуации, которые препятствуют выполнению очередной команды из потока команд в предназначенном для нее такте. Существуют 3 класса конфликтов:

  1. Структурные – Возникают из-за конфликтов по ресурсам, когда аппаратные средства не поддерживают одновременную обработку данных.

  2. Конфликты по данным – Выполнение одной команды зависит от результата выполнения другой команды. Рассмотрим две команды 1 (выполняется первой) и 2 (второй):

  1. RAW (Чтение после Записи) - 2 пытается прочитать операнд данных прежде, чем 1 туда запишет.

  2. WAR (Запись после Чтения) - 2 пытается записать результат в приемник прежде, чем он считывается оттуда командой 1.

  3. WAW (Запись после Записи) - 2 пытается записать операнд прежде, чем будет записан результат команды 1.

  1. Конфликты по управлению – Возникают при конвейеризации команд условных переходов, изменяющих значение счетчика команд.