Помощничек
Главная | Обратная связь


Археология
Архитектура
Астрономия
Аудит
Биология
Ботаника
Бухгалтерский учёт
Войное дело
Генетика
География
Геология
Дизайн
Искусство
История
Кино
Кулинария
Культура
Литература
Математика
Медицина
Металлургия
Мифология
Музыка
Психология
Религия
Спорт
Строительство
Техника
Транспорт
Туризм
Усадьба
Физика
Фотография
Химия
Экология
Электричество
Электроника
Энергетика

Вопрос 22. Архитектура суперскалярных процессоров. Предварительная выборка команд и предсказание переходов



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

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

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

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

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

Статическая и динамическая структуры программы.

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

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

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

Зависи­мости по управлению (которые проявляются как переходы по условию) пред­ставляют главное препятствие высоко-параллельному выполнению потому, что эти зависимости должны быть установлены прежде чем будут выполнены все последующие команды.

Зависимости по данным обусловлены использованием одних и тех же ресурсов памяти (регистров, ячеек памяти) в разных командах. Поэтому для правильно­го исполнения программы необходимо использование этих ресурсов в предпи­сываемом программой порядке.

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

Для устранения зависимостей, вызванных командами перехода, используется метод предсказания. Он позволяет извлекать и условно исполнять команды предсказанного перехода. Если позднее обнаруживается, что предсказание было сделано верно, то результат условно выполненных команд принимается. Если предсказание ошибочно – состояние процессора восстанавливается на момент принятия решения до перехода.

 




Поиск по сайту:

©2015-2020 studopedya.ru Все права принадлежат авторам размещенных материалов.