ВУЗ:
Составители:
Кэш второго уровня кроме данных содержит также команды, которые попадают из
него в декодер. Процессор Pentium 4 содержит один декодер, и процесс декодирования
вообще исключен из базового конвейера. Непрерывность подачи микроопераций в
исполнительную часть ядра Pentium 4 обеспечивается потоком микроопераций из ТС,
который фактически служит кэшем команд первого уровня. В ТС команды сохраняются в
декодированном виде, как микрооперации. В идеальном случае ТС может выдавать 3
микрооперации за такт, как и три декодера P6. Емкость ТС составляет 92-96 Кбайт и
содержит до 12 тысяч микроопераций со средней длиной 64 разряда (хотя максимальная
длина микрооперации в Pentium III достигает 118 бит).
Применение схемы один декодер и ТС по сравнению со схемой трех декодеров в P6
имеет ряд преимуществ. Во-первых, если будут декодироваться сразу три сложные x86-
команды, темп поступления микроопераций может упасть практически до нуля в отличие от
варианта с одним декодером. Во-вторых, когда имеется короткий цикл в P6 его команды
приходиться декодировать при каждом проходе, а в Pentium 4 он окажется один раз
декодированным в кэше ТС.
Имеется еще одна особенность при декодировании команд в Pentium 4. когда
процессору требуется декодировать сложную x86-команду, которая преобразуется в
длинную последовательность микроопераций (сложные инструкции, больше 4
микроопераций), взводится специальный флаг, и эти микрооперации извлекаются не из ТС, а
из памяти ROM-типа (рис. 6.18). Поскольку такие команды в программах встречаются редко,
это не оказывает отрицательного влияния на производительность.
Фронтальная часть процессора Pentium 4 отвечает за реализацию механизма
предварительной выборки и предсказания переходов.
Процессор осуществляет автоматическую предварительную выборку команд в буфера
командных потоков из пути, предсказанного в ВТВ. Осуществляется это порциями по 32
байта, начиная с адреса перехода. Процессор также поддерживает автоматическую выборку
данных и команд в кэш второго уровня. Кроме аппаратной реализации предварительной
выборки имеются 4 команды предварительной выборки данных в кэш-память различных
уровней. Они дают процессору подсказку о необходимости переноса в кэш соответствующей
строки. Использование этих команд способствует в ряде случаев скрыть задержки по
обращению в память за счет извлечения оттуда данных до того, как они реально будут
использованы, что приводит к существенному росту производительности. Эти команды
требуют много процессорных ресурсов, и их применение следует ограничивать (в
многопроцессорных SMP-системах их использовать не рекомендуется).
Предсказание переходов является одним из компонентов микроархитектуры,
определяющих производительность Pentium 4. Если предсказание верное, то в базовом
конвейере не возникает дополнительных задержек, а при неверном - равно глубине
конвейера, т.е. порядка 20 стадий. Использование новых алгоритмов предсказания позволило
уменьшить число неправильных предсказаний на одну треть по сравнению с Pentium III. В
процессоре Pentium 4 могут предсказываться все типы ближних (near) переходов, включая
условные, безусловные, непрямые и переходы типа вызов/возврат из подпрограммы
(СALL/RET). Предсказания для дальних (far) переходов не делаются. При этом используются
несколько механизмов предсказаний.
При статическом предсказании переход назад (к младшим адресам, это характерно
для циклов) предсказывается, а вперед - нет. При предсказании переходов СALL/RET, адреса
возврата берутся из стека адресов возврата, имеющего емкость 16 строк.
Динамическое предсказание переходов (т.е. направление и адреса переходов)
основываются на традиционной таблице предсказания переходов в буфере ВТВ емкостью
4096 строк. Если в буфере ВТВ не имеется необходимой информации, применяется
статическое предсказание.
В Pentium 4 предусмотрен еще один вид предсказания переходов – «подсказка» со
стороны программного обеспечения. Эта подсказка реализована в форме префикса команд
Кэш второго уровня кроме данных содержит также команды, которые попадают из него в декодер. Процессор Pentium 4 содержит один декодер, и процесс декодирования вообще исключен из базового конвейера. Непрерывность подачи микроопераций в исполнительную часть ядра Pentium 4 обеспечивается потоком микроопераций из ТС, который фактически служит кэшем команд первого уровня. В ТС команды сохраняются в декодированном виде, как микрооперации. В идеальном случае ТС может выдавать 3 микрооперации за такт, как и три декодера P6. Емкость ТС составляет 92-96 Кбайт и содержит до 12 тысяч микроопераций со средней длиной 64 разряда (хотя максимальная длина микрооперации в Pentium III достигает 118 бит). Применение схемы один декодер и ТС по сравнению со схемой трех декодеров в P6 имеет ряд преимуществ. Во-первых, если будут декодироваться сразу три сложные x86- команды, темп поступления микроопераций может упасть практически до нуля в отличие от варианта с одним декодером. Во-вторых, когда имеется короткий цикл в P6 его команды приходиться декодировать при каждом проходе, а в Pentium 4 он окажется один раз декодированным в кэше ТС. Имеется еще одна особенность при декодировании команд в Pentium 4. когда процессору требуется декодировать сложную x86-команду, которая преобразуется в длинную последовательность микроопераций (сложные инструкции, больше 4 микроопераций), взводится специальный флаг, и эти микрооперации извлекаются не из ТС, а из памяти ROM-типа (рис. 6.18). Поскольку такие команды в программах встречаются редко, это не оказывает отрицательного влияния на производительность. Фронтальная часть процессора Pentium 4 отвечает за реализацию механизма предварительной выборки и предсказания переходов. Процессор осуществляет автоматическую предварительную выборку команд в буфера командных потоков из пути, предсказанного в ВТВ. Осуществляется это порциями по 32 байта, начиная с адреса перехода. Процессор также поддерживает автоматическую выборку данных и команд в кэш второго уровня. Кроме аппаратной реализации предварительной выборки имеются 4 команды предварительной выборки данных в кэш-память различных уровней. Они дают процессору подсказку о необходимости переноса в кэш соответствующей строки. Использование этих команд способствует в ряде случаев скрыть задержки по обращению в память за счет извлечения оттуда данных до того, как они реально будут использованы, что приводит к существенному росту производительности. Эти команды требуют много процессорных ресурсов, и их применение следует ограничивать (в многопроцессорных SMP-системах их использовать не рекомендуется). Предсказание переходов является одним из компонентов микроархитектуры, определяющих производительность Pentium 4. Если предсказание верное, то в базовом конвейере не возникает дополнительных задержек, а при неверном - равно глубине конвейера, т.е. порядка 20 стадий. Использование новых алгоритмов предсказания позволило уменьшить число неправильных предсказаний на одну треть по сравнению с Pentium III. В процессоре Pentium 4 могут предсказываться все типы ближних (near) переходов, включая условные, безусловные, непрямые и переходы типа вызов/возврат из подпрограммы (СALL/RET). Предсказания для дальних (far) переходов не делаются. При этом используются несколько механизмов предсказаний. При статическом предсказании переход назад (к младшим адресам, это характерно для циклов) предсказывается, а вперед - нет. При предсказании переходов СALL/RET, адреса возврата берутся из стека адресов возврата, имеющего емкость 16 строк. Динамическое предсказание переходов (т.е. направление и адреса переходов) основываются на традиционной таблице предсказания переходов в буфере ВТВ емкостью 4096 строк. Если в буфере ВТВ не имеется необходимой информации, применяется статическое предсказание. В Pentium 4 предусмотрен еще один вид предсказания переходов – «подсказка» со стороны программного обеспечения. Эта подсказка реализована в форме префикса команд
Страницы
- « первая
- ‹ предыдущая
- …
- 159
- 160
- 161
- 162
- 163
- …
- следующая ›
- последняя »