89
ходует множество транзисторов на усиленный блок декодирова-
ния 80x86-макрокоманд, что позволяет за цикл декодировать дос-
таточно много громоздких 80x86-инструкций в микрокоманды для
загрузки исполнительного модуля. В случае же с Pentium 4 нали-
чие отслеживающего кэша означает, что большая часть кода заби-
рается из него уже в виде готовых микрокоманд, так что здесь от
-
падает надобность в трансляторах и декодерах с высокой пропуск-
ной способностью.
Процессор начинает декодирование только лишь в случае
промаха кэш-памяти L1. Поэтому он разработан таким образом,
чтобы декодировать только одну 80x86-инструкцию за такт. Это
составляет всего треть от максимальной теоретической пропуск-
ной способности декодера Athlon, но отслеживающий кэш в
Pentium 4 позволяет ему
достичь или даже обойти производитель-
ность Athlon (2,5 диспетчеризации за такт).
Стоит обратить внимание и на то, как отслеживающий кэш
обращается с очень длинными 80x86-инструкциями из нескольких
циклов. Большинство 80x86-инструкций декодируются примерно в
две или три микрокоманды. Но встречаются и такие инструкции,
которые декодируются в сотни микрокоманд, например, инструк-
ции по строковой
обработке. Как и в Athlon, в Pentium 4 существу-
ет специальное ПЗУ микрокода, которое обрабатывает эти гро-
моздкие инструкции, что позволяет разгрузить аппаратный деко-
дер для работы только с небольшими, быстрыми инструкциями.
Каждый раз, когда встречается громоздкая инструкция,
ПЗУ находит готовую последовательность микрокоманд и выдаёт
их дальше в по очереди. Чтобы не засорять отслеживающий
кэш
этими длинными последовательностями микрокоманд, разработ-
чики поступили следующим образом: как только при создании от-
слеживаемого сегмента отслеживающий кэш встречает такую
большую 80x86-инструкцию, вместо того, чтобы разбивать её на
последовательность микрокоманд, он вставляет в отслеживаемый
сегмент метку (tag), которая указывает на место в ПЗУ, содержа-
щее последовательность микрокоманд данной инструкции. Позд-
нее, в режиме выполнения, когда отслеживающий кэш будет пере-
давать поток инструкций на ступень выполнения, при попадании
на такую метку он временно приостановит работу и на время пе-