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


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

Основной поток команд для PENTIUM



В ЦП имеется препроцессор и постпроцессор. Когда команды выбираются из КЭШа или из ОЗУ, их необходимо декодировать и отправить на выполнение. Получение команды, её декодирование и её отправка на выполнение происходит на препроцессоре. А выполняются на постпроцессоре. И результат выполнения команды записывается в оперативную память.

 

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

1) выборка команды

2) декодирование команды

3) выполнение команды

4) обращение к памяти

5) запоминание результата

И так можно сделать ступеней оч много

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

Но имеется и опасность длинных конвейеров.

Например: у процессора нет команд или данных для конвейера. Эти нужные такты называют конвейерными пузырьками. И эти пузырьки должны пройти все ступени до конца конвейера, а на это тоже тратится время. Т.е. попав в 20 ступень конвейера пузырек затратит 20 тактов для своего выхода.

Устройство обработки ветвлений. И предсказания ветвления.

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

Существует 2 вида предсказаний: статические и динамические.

M1 mov

….

Loop M1

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

При динамическом предсказании исп.различные алгоритмы.

Алгоритм динамического предсказания ветвлений задействует 1 из таблиц: первая – для хранения истории предсказания ветвления, а вторая – для хранения адресов инструкций. Могут исп. и обе таблицы сразу.

В таблице записывается информация о результатах уже выполненных ветвлений.

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

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

Эти цели хранятся во второй таблице. Цель берется и указывается препроцессору начать выборку команд по этому адресу.

Pentium использует 2 вида ветвления. Если же в первой таблице нет инструкции ветвления, то процессор будет использовать статическое предсказание, а если есть – то динамическое.

Кэш с отслеживанием.

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

Кэш с отслеживанием принимает транслированные и декодированные команды, готовые к передаче на управление, формирует из них линии программы, называемые отслеживаниями, именно их, а не код х86 процессора выполняет Pentium.

 

Этот кэш работает в 2х режимах

1) исполнительный – кэш снабжает метку выполнения командами

2) режим построения отслеживающих сегментов – в этом режиме кэш с отслеживанием выбирает команды из КЭШа ???, транслирует их и создает отслеживаемые сегменты, которые помещаются в кэш с отслеживанием, и уже в исполнительном режиме они выполняются на процессоре.

Мультипроцессоры.

(Ниже)

 




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

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