ВУЗ:
Составители:
по данным и пары команд типа «прочитать – изменить – записать», т.е. ALU команд с
операндом в памяти. Если две такие команды сдвоены, то к необходимым для их выполнения
трем тактам добавится задержка в два такта.
Чаще одним фактором, отрицательно влияющим на производительность конвейера,
является зависимость по управлению. Она возникает в программах, где встречаются
условный или безусловный переходы. После декодирования команды перехода и получения
адреса процессор начинает считывать данные с нового адреса. До получения этого адреса
конвейер простаивает. Для снижения этого фактора в процессорах используются ряд
архитектурных методов.
Предсказание переходов (branch prediction) позволяет продолжать выборку и
декодирование потока команд после выборки команды перехода (условного), не дожидаясь
проверки самого условия. В процессорах прежних поколений команда перехода
приостанавливала конвейер (выборку команд) до исполнения собственно перехода при этом
терялась производительность.
Существуют два подхода предсказания переходов. Статистический метод
предсказания работает по схеме, заложенной в процессор, направляя поток выборки и
декодирования по одной наиболее вероятной ветви. Динамическое предсказание опирается
на предысторию вычислительного процесса: для каждого конкретного случая перехода
накапливается статистика поведения, и переход предсказывается, основываясь именно на
ней.
Опережающее исполнение (speculative execution) позволяет до поверки условия
перехода не только выбирать и декодировать команды, но и выполнять их. В процессоре
Pentium реализован только первый из этих методов – метод предсказания переходов. Для
реализации этого метода в процессор Pentium введено устройство, называемое буфером
адресов переходов BTB (Branch Target Buffer), и предназначенное для предвидения
возможных «нелинейных» переходов. В случае неудачного прогноза выполнение
прекращается, конвейер очищается и начинается исполнение с правильного адреса.
Эффективность этого блока оценивается вероятностью правильности прогноза. В
современных процессорах она лежит в пределах 80-97 %. Таким образом, введение новых
архитектурных методов по обработке команд позволило существенно повысить
производительность Рentium процессоров.
6.3.2. Организация процессора Pentium
Структурная схема процессора Pentium показана на рис. 6.11. Он построен на основе
двух конвейеров общего назначения для целочисленных операций и конвейерного FPU блока
(Floating Point Unit). Оба конвейера функционально схожи, но второй V-конвейер по
сравнению с главным U-конвейером имеют некоторые ограничения. Процессор выполняет
до двух команд за один такт. Во время исполнения проверяются следующие две команды, и,
если возможно, они запускаются в V- и U- конвейеры. Если две команды сразу запустить
невозможно, то первая запускается в U-конвейер, а V-конвейер простаивает. При
выполнении команд на обоих конвейерах их функциональное поведение в точности
совпадает с поведением при последовательном выполнении.
На первой стадии (PF) осуществляется предвыборка команд из кэш или оперативной
памяти. Поскольку кэш для команд и данных раздельный, то ликвидирован конфликт при
обращениях к кэш-памяти между командами и данными. Если требуемой команды в кэш нет,
происходит обращение к оперативной памяти.
В предвыборке участвуют два независимых 32-байтовых буфера предвыборки и
буфер переходов. В каждый момент времени предвыборку осуществляет только один из
буферов предвыборки. Предвыборка выполняется до тех пор, пока не будет выбрана команда
перехода. В этот момент буфер переходов (BTB) предсказывает, будет, или не будет
по данным и пары команд типа «прочитать – изменить – записать», т.е. ALU команд с операндом в памяти. Если две такие команды сдвоены, то к необходимым для их выполнения трем тактам добавится задержка в два такта. Чаще одним фактором, отрицательно влияющим на производительность конвейера, является зависимость по управлению. Она возникает в программах, где встречаются условный или безусловный переходы. После декодирования команды перехода и получения адреса процессор начинает считывать данные с нового адреса. До получения этого адреса конвейер простаивает. Для снижения этого фактора в процессорах используются ряд архитектурных методов. Предсказание переходов (branch prediction) позволяет продолжать выборку и декодирование потока команд после выборки команды перехода (условного), не дожидаясь проверки самого условия. В процессорах прежних поколений команда перехода приостанавливала конвейер (выборку команд) до исполнения собственно перехода при этом терялась производительность. Существуют два подхода предсказания переходов. Статистический метод предсказания работает по схеме, заложенной в процессор, направляя поток выборки и декодирования по одной наиболее вероятной ветви. Динамическое предсказание опирается на предысторию вычислительного процесса: для каждого конкретного случая перехода накапливается статистика поведения, и переход предсказывается, основываясь именно на ней. Опережающее исполнение (speculative execution) позволяет до поверки условия перехода не только выбирать и декодировать команды, но и выполнять их. В процессоре Pentium реализован только первый из этих методов – метод предсказания переходов. Для реализации этого метода в процессор Pentium введено устройство, называемое буфером адресов переходов BTB (Branch Target Buffer), и предназначенное для предвидения возможных «нелинейных» переходов. В случае неудачного прогноза выполнение прекращается, конвейер очищается и начинается исполнение с правильного адреса. Эффективность этого блока оценивается вероятностью правильности прогноза. В современных процессорах она лежит в пределах 80-97 %. Таким образом, введение новых архитектурных методов по обработке команд позволило существенно повысить производительность Рentium процессоров. 6.3.2. Организация процессора Pentium Структурная схема процессора Pentium показана на рис. 6.11. Он построен на основе двух конвейеров общего назначения для целочисленных операций и конвейерного FPU блока (Floating Point Unit). Оба конвейера функционально схожи, но второй V-конвейер по сравнению с главным U-конвейером имеют некоторые ограничения. Процессор выполняет до двух команд за один такт. Во время исполнения проверяются следующие две команды, и, если возможно, они запускаются в V- и U- конвейеры. Если две команды сразу запустить невозможно, то первая запускается в U-конвейер, а V-конвейер простаивает. При выполнении команд на обоих конвейерах их функциональное поведение в точности совпадает с поведением при последовательном выполнении. На первой стадии (PF) осуществляется предвыборка команд из кэш или оперативной памяти. Поскольку кэш для команд и данных раздельный, то ликвидирован конфликт при обращениях к кэш-памяти между командами и данными. Если требуемой команды в кэш нет, происходит обращение к оперативной памяти. В предвыборке участвуют два независимых 32-байтовых буфера предвыборки и буфер переходов. В каждый момент времени предвыборку осуществляет только один из буферов предвыборки. Предвыборка выполняется до тех пор, пока не будет выбрана команда перехода. В этот момент буфер переходов (BTB) предсказывает, будет, или не будет
Страницы
- « первая
- ‹ предыдущая
- …
- 137
- 138
- 139
- 140
- 141
- …
- следующая ›
- последняя »