Особенности архитектуры 64 разрядных процессоров. Процессоры изнутри. битные операционные системы

Для компаний Intel и Hewlett-Packard не существует "проблемы 2000 года" - для них это год новых возможностей. В конце 1999 года Intel планирует представить Merced - первый процессор, построенный с использованием архитектуры нового поколения, совместно разработанной двумя компаниями. Хотя эта 64-разрядная архитектура основана на многолетних исследованиях Intel, HP, других компаний и университетов, она радикально отличается от всего, что было до сих пор представлено на рынке. Достигнет эта архитектура успеха или нет, одно очевидно уже сейчас: она изменит всю компьютерную индустрию.

Эта архитектура, известная под названием Intel Architecture-64 (IA-64), полностью "порывает с прошлым". IA-64 не является как 64-разрядным расширением 32-разрядной архитектуры х86 компании Intel, так и переработкой 64-разрядной архитектуры PA-RISC компании HP. IA-64 представляет собой нечто абсолютно новое - передовую архитектуру, использующую длинные слова команд (long instruction words - LIW), предикаты команд (instruction predication), устранение ветвлений (branch elimination), предварительную загрузку данных (speculative loading) и другие ухищрения для того, чтобы "извлечь больше параллелизма" из кода программ.

Несмотря на то, что Intel и HP обещали добиться обратной совместимости с существующим программным обеспечением, работающим на процессорах архитектур х86 и PA-RISC, они до сих пор не разглашают, каким образом это будет сделано. На самом деле обеспечить такую совместимость совсем не просто; достаточно вспомнить гораздо менее кардинальный переход с 16-разрядной на 32-разрядную архитектуру х86, продолжавшийся 12 лет и до сих пор не завершённый.

По поводу совместимости, стоит заметить, что но в Merced на самом деле существует два режима декодирования команд VLIW и старый CISC. Т.е. программы переключаются в необходимый режим исполнения. В архитектуре х86 были добавлен ряд команд для перехода в новый режим, а также для передачи данных. В IA-64 такие команды есть изначально. Так что теперь ОС будут содержать и 64-х разрядную часть на IA-64 и старую 32-х разрядную.

Правда, переход к архитектуре IA-64 в ближайшее время вряд ли затронет большинство пользователей, поскольку Intel заявила, что Merced разрабатывается для серверов и рабочих станций класса high-end, а не для компьютеров среднего уровня. Фактически, компания заявила, что IA-64 не заменит х86 в ближайшем будущем. Похоже на то, что Intel и другие поставщики продолжат разрабатывать чипы х86.

Перед тем, как углубиться в технические детали, попробуем понять, почему Intel и HP рискнули пойти на столь кардинальные перемены. Причина сводится к следующему: они считают, что как CISC, так и RISC-архитектуры исчерпали себя.

Небольшой экскурс в прошлое. Архитектура х86 компании Intel - CISC архитектура, появившаяся в 1978 году. В те времена процессоры представляли собой скалярные устройства (то есть могли в каждый момент времени выполнять только одну команду), при этом конвейеров практически не было. Процессоры содержали десятки тысяч транзисторов. PA-RISC компании HP была разработана в 1986 году, когда технология суперскалярных (с возможностью выполнения нескольких команд одновременно) конвейеров только начала развиваться. Процессоры содержали сотни тысяч транзисторов. В конце 90-х наиболее совершенные процессоры содержат миллионы транзисторов. К моменту начала выпуска Merced компания Intel планирует перейти на 0.18-микронную технологию вместо нынешней 0.25-микронной. Уже первые чипы архитектуры IA-64 будут содержать десятки миллионов транзисторов. В дальнейших модификациях их число увеличится до сотен миллионов.

Разработчики процессоров стремятся создавать чипы, содержащие как можно больше функциональных узлов - что позволяет обрабатывать больше команд параллельно - но одновременно приходится существенно усложнять управляющие цепи для распределения потока команд по обрабатывающим узлам. На данный момент лучшие процессоры не могут выполнять более четырёх команд одновременно, при этом управляющая логика занимает слишком много места на кристалле.

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

Проблему ещё осложняет тот факт, что микросхемы памяти не успевают за тактовой частотой процессоров. Когда Intel разработала архитектуру х86, процессор мог извлекать данные из памяти с такой же скоростью, с какой он их обрабатывал. Сегодня процессор тратит сотни тактов на ожидание загрузки данных из памяти, даже несмотря на наличие большой и быстрой кэш-памяти.

Говоря о том, что CISC- и RISC-архитектуры исчерпали себя, Intel и HP имеют в виду обе эти проблемы. В двух пространных интервью журналу BYTE они раскрыли некоторые детали архитектуры IA-64.

  • Команды в формате IA-64 упакованы по три в 128-битный пакет для быстрейшей обработки. Обычно это называют "LIW encoding". (Русский аналог подобрать сложно. Наиболее адекватно, на мой взгляд, перевести как "кодирование в длинные слова команд".) Однако компания Intel избегает такого названия, заявляя, что с ним связаны "негативные ассоциации" (negative connotation). По той же причине Intel не любит называть сами команды RISC-подобными (RISC-like), даже несмотря на то, что они имеют фиксированную длину и предположительно оптимизированы для исполнения за один такт в ядре, не нуждающемся в микрокоде. Intel предпочитает называть свою новую LIW-технологию Explicitly Parallel Instruction Computing или EPIC (Вычисления с Явной Параллельностью Инструкций, где "явной" означае явно указанной при трансляции). В любом случае формат команд IA-64 не имеет ничего общего с х86. Команды х86 могут иметь длину от 8 до 108 бит, и процессор должен последовательно декодировать каждую команду после определения её границ.
  • Каждый 128-битный пакет содержит шаблон (template) длиной в несколько бит, помещаемый в него компилятором, который указывает процессору, какие из команд могут выполняться параллельно. Теперь процессору не нужно будет анализировать поток команд в процессе выполнения для выявления "скрытого параллелизма". Вместо этого наличие параллелизма определяет компилятор и помещает информацию в код программы. Каждая команда (как для целочисленных вычислений, так и для вычислений с плавающей точкой) содержит три 7-битных поля регистра общего назначения (РОН). Из этого следует, что процессоры архитектуры IA-64 содержат 128 целочисленных РОН и 128 регистров для вычислений с плавающей точкой. Все они доступны программисту и являются регистрами с произвольным доступом (programmer-visible random-access registers). По сравнению с процессорами х86, у которых всего восемь целочисленных РОН и стек глубины 8 для вычислений с плавающей точкой, IA-64 намного "шире" и, соответственно, будет намного реже простаивать из-за "нехватки регистров".
  • Компиляторы для IA-64 будут использовать технологию "отмеченных команд" (predication) для устранения потерь производительности из-за неправильно предсказанных переходов и необходимости пропуска участков кода после ветвлений. Когда процессор встречает "отмеченное" ветвление в процессе выполнения программы, он начинает одновременно выполнять все ветви. После того, как будет определена "истинная" ветвь, процессор сохраняет необходимые результаты и сбрасывает остальные.
  • Компиляторы для IA-64 будут также просматривать исходный код с целью поиска команд, использующих данные из памяти. Найдя такую команду, они будут добавлять пару команд - команду предварительной загрузки (speculative loading) и проверки загрузки (speculative check). Во время выполнения программы первая из команд загружает данные в память до того, как они понадобятся программе. Вторая команда проверяет, успешно ли произошла загрузка, перед тем, как разрешить программе использовать эти данные. Предварительная загрузка позволяет уменьшить потери производительности из-за задержек при доступе к памяти, а также повысить параллелизм.

Из всего вышесказанного следует, что компиляторы для процессоров архитектуры IA-64 должны быть намного "умнее" и лучше знать микроархитектуру процессора, код для которого они вырабатывают. Существующие чипы, в том числе и RISC-процессоры, производят гораздо больше оптимизации на этапе выполнения программ, даже при использовании оптимизирующих компиляторов. IA-64 перекладывает практически всю работу по оптимизации потока команд на компилятор. Таким образом, программы, скомпилированные для одного поколения процессоров архитектуры IA-64, на процессорах следующего поколения без перекомпиляции могут выполняться неэффективно. Это ставит перед поставщиками нелёгкую задачу по выпуску нескольких версий исполняемых файлов для достижения максимальной производительности.

Другим не очень приятным следствием будет увеличение размеров кода, так как команды IA-64 длиннее, чем 32-битные RISC-команды (порядка 40 бит). Компиляция при этом будет занимать больше времени, поскольку IA-64, как уже было сказано, требует от компилятора гораздо больше действий. Intel и HP заявили, что уже работают совместно с поставщиками средств разработки над переработкой этих программных продуктов.

Технология "отмеченных команд" является наиболее характерным примером "дополнительной ноши", перекладываемой на компиляторы. Эта технология является центральной для устранения ветвлений и управления параллельным выполнением команд.

Обычно компилятор транслирует оператор ветвления (например, IF-THEN-ELSE) в блоки машинного кода, расположенные последовательно в потоке. В зависимости от условий ветвления процессор выполняет один из этих блоков и перескакивает через остальные. Современные процессоры стараются предсказать результат вычисления условий ветвления и предварительно выполняют предсказанный блок. При этом в случае ошибки много тактов тратится впустую. Сами блоки зачастую весьма малы - две или три команды, - а ветвления встречаются в коде в среднем каждые шесть команд. Такая структура кода делает крайне сложным его параллельное выполнение.

Когда компилятор для IA-64 находит оператор ветвления в исходном коде, он исследует ветвление, определяя, стоит ли его "отмечать". Если такое решение принято, компилятор помечает все команды, относящиеся к одному пути ветвления, уникальным идентификатором, называемым предикатом (predicate). Например, путь, соответствующий значению условия ветвления TRUE, помечается предикатом Р1, а каждая команда пути, соответствующего значению условия ветвления FALSE - предикатом Р2. Система команд IA-64 определяет для каждой команды 6-битное поле для хранения этого предиката. Таким образом, одновременно могут быть использованы 64 различных предиката. После того, как команды "отмечены", компилятор определяет, какие из них могут выполняться параллельно. Это опять требует от компилятора знания архитектуры конкретного процессора, поскольку различные чипы архитектуры IA-64 могут иметь различное число и тип функциональных узлов. Кроме того, компилятор, естественно, должен учитывать зависимости в данных (две команды, одна из которых использует результат другой, не могут выполняться параллельно). Поскольку каждый путь ветвления заведомо не зависит от других, какое-то "количество параллелизма" почти всегда будет найдено.

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

После этого компилятор транслирует исходный код в машинный и упаковывает команды в 128-битные пакеты. Шаблон пакета (bundle"s template field) указывает не только на то, какие команды в пакете могут выполняться независимо, но и какие команды из следующего пакета могут выполняться параллельно. Команды в пакетах не обязательно должны быть расположены в том же порядке, что и в машинном коде, и могут принадлежать к различным путям ветвления. Компилятор может также помещать в один пакет зависимые и независимые команды, поскольку возможность параллельного выполнения определяется шаблоном пакета. В отличие от некоторых ранее существовавших архитектур со сверхдлинными словами команд (VLIW), IA-64 не добавляет команд "нет операции" (NOPS) для дополнения пакетов.

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

Разумеется, в какой-то момент процессор наконец вычислит значение условия ветвления в нашем операторе IF-THEN-ELSE. Предположим, оно равно TRUE, следовательно, правильный путь отмечен предикатом Р1. 6-битному полю предиката соответствует набор из 64 предикатных регистров (predicate registers) Р0-Р63 длиной 1 бит. Процессор записывает 1 в регистр Р1 и 0 во все остальные.

К этому времени процессор, возможно, уже выполнил некоторое количество команд, соответствующих обоим возможным путям, но до сих пор не сохранил результат. Перед тем, как сделать это, процессор проверяет соответствующий предикатный регистр. Если в нём 1 - команда верна и процессор завершает её выполнение и сохраняет результат. Если 0 - результат сбрасывается.

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

Другой ключевой особенностью IA-64 является предварительная загрузка данных. Она позволяет не только загружать данные из памяти до того, как они понадобятся программе, но и генерировать исключение только в случае, если загрузка прошла неудачно. Цель предварительной загрузки - разделить собственно загрузку и использование данных, что позволяет избежать простоя процессора. Как и в технологии "отмеченных команд" здесь также сочетается оптимизация на этапе компиляции и на этапе выполнения.

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

На этапе выполнения процессор сначала обнаруживает команду предварительной загрузки и, соответственно, пытается загрузить данные из памяти. Иногда попытка оказывается неудачной - например, команда, требующая данные, находится после ветвления, условия которого ещё не вычислены. "Обычный" процессор тут же генерирует исключение. IA-64 откладывает генерацию исключения до того момента, когда встретит соответствующую команду проверки загрузки. Но к этому времени условия ветвления, вызывавшего исключение, уже будут вычислены. Если команда, инициировавшая предварительную загрузку, относится к неверному пути, загрузка признается неудачной и генерируется исключение. Если же путь верен, то исключение вообще не генерируется. Таким образом, предварительная загрузка в архитектуре IA-64 работает аналогично структуре типа TRY-CATCH.

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

В 80-е годы некоторые разработчики RISC-процессоров высмеивали CISC-архитектуру и предрекали скорую погибель семейству х86. Но технологии и бизнес - разные вещи. Несмотря на технологические преимущества RISC-архитектуры, огромные ресурсы корпорации Intel и господство операционных систем DОS и Windows привели к тому, что процессоры архитектуры х86 остаются конкурентоспособными до сих пор. Теперь уже Intel заявляет, что RISC- архитектура устарела. Не совершает ли корпорация той же ошибки? В любом случае, до выхода в свет первого процессора архитектуры IA-64 остаётся ещё два года, и у конкурентов есть время принять ответные меры.

Автор достаточно рисковал, включая этот материал в учебное пособие, так как публикуемые в наше время сведения о конкретных моделях микропроцессоров устаревают, находясь ещё под печатным станком. Однако ради полноты картины о современных 64-разрядных архитектурах эта глава оправдывает своё присутствие в настоящем пособии.

10.1 Архитектура Intel Core 2

Восьмое поколение процессоров Intel, получившее название Core 2, без доли сомнения можно назвать революционным.

Инженеры Intel после довольно продолжительного отставания от AMD не придумали кардинально новую архитектуру. Как водится, все новое – это хорошо забытое старое. В основу Conroe легли наработки мобильного Pentium M – процессора настолько успешного, что некоторые производители стали применять его не только для переносных компьютеров, но и для настольных рабочих станций. В свою очередь, Pentium M тоже появился не на пустом месте. Его прародителем является Pentium III, который, как известно, был эволюционным продолжением Pentium Pro.

Соответствующая эволюционная цепочка выглядит следующим образом: Pentium Pro  Pentium II  Pentium III  Pentium M  Core 2.

Данный случай является примером, когда шаг назад стал значительным шагом вперед. Если очень сильно абстрагироваться от деталей, то разработчики из Intel сделали следующее. Создали к 1995 году довольно успешный процессор Pentium Pro, нарастили его мощность (Pentium II, Pentium III), разработали механизм снижения энергопотребления (Pentium M), создали эффективную систему взаимодействия нескольких процессорных ядер (Core 2). Эта схема весьма условна, так как на каждом из этапов были и другие существенные доработки (такие как переход к 64-разрядной архитектуре), но некоторые наследственные черты все же сохранились.

В зависимости от целевого сегмента процессоры имеют свои технологические особенности. Для настольных систем предназначены Conroe-L (одно ядро), Allendale (два ядра), Conroe и Wolfdale (два ядра), Kentsfield и Yorkfield (четыре ядра). Кодовые имена Merom и Penryn носят продукты, ориентированные на мобильный сегмент рынка. Последней реинкарнацией архитектуры Core 2 станут шестиядерные процессоры Dunnington.

Следующее за Core 2 поколение процессоров продаётся под брендом Core i7 (архитектура Nehalem).

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

Что же изменилось в Intel Core 2 по сравнению с Pentium 4? Одно из важных отличий – уход от длинноконвейерной архитектуры NetBrust, главной задачей которой было обеспечить определенное преимущество в условиях «гонки гигагерц». Кроме того, произошло существенное сокращение длины конвейера. В архитектуре Core его длина составляет 14 ступеней, в то время как в предыдущем поколении процессоров она была равна 31 ступени (ядро Prescott), а это более чем двукратное сокращение. Зато первые NetBrust-процессоры на ядре Northwood разгонялись с 1,6 до 3,4 ГГц. Не лишним будет напомнить, что такое повышение тактовой частоты было чревато чрезмерным энергопотреблением (для топовых процессоров TDP оно доходило до 160-170 Вт). Однако, как показывала практика, все эти гигагерцы очень слабо трансформировались в рост производительности.

Объем L2-кэша у новых моделей варьируется от 3 Мбайт у Wolfdale‑3М до 12 Мбайт у Yorkfield.

Прежде чем переходить к изучению структурной схемы, отметим ключевые технологические моменты, которые лежат в основе архитектуры Core:

    Intel Wide Dynamic Execution – обеспечивает выполнение до пяти микроопераций за один такт.

    Intel Intelligent Power Capability – представляет собой целый набор технологий, призванных существенно снизить энергопотребление.

    Intel Advanced Smart Cache – подразумевает наличие общей для всех ядер кэш-памяти L2, которая динамически распределяется между ними в зависимости от выполняемых задач.

    Intel Smart Memory Access – комплекс технологий по оптимизации алгоритмов доступа к памяти и предварительной загрузки данных.

    Intel Advanced Digital Media Boost – технология, направленная на оптимизацию декодирования мультимедийного контента. Позволяет обрабатывать все 128-разрядные команды SSE, SSE2 и SSE3, широко используемые в мультимедийных и графических приложениях, за один такт.

    Intel 64 Technology – 64-битный (ЕМ64Т) режим целочисленной и адресной арифметики. Он позволяет работать с числами большой разрядности, а также адресовать свыше 1 Тбайт памяти. 32-битная архитектура позволяла адресовать не более 4 Гбайт оперативной памяти. Это накладывает определенные ограничения при работе с большими объемами данных.

AMD64 (также x86-64 или x64) - 64-битная архитектура микропроцессора и соответствующий набор инструкций, разработанные компанией AMD. Это расширение архитектуры x86 с полной обратной совместимостью. Набор инструкций x86-64 в настоящее время поддерживается процессорами AMD Athlon 64, Athlon 64 FX, Athlon 64 X2, Turion 64, Opteron, последними моделями Sempron. Интересно, что этот набор инструкций был поддержан основным конкурентом AMD - компанией Intel под названием EM64T или IA-32e в поздних моделях процессоров Pentium 4, а также в Pentium D, Pentium Extreme Edition, Celeron D, Core 2 Duo и Xeon. Корпорация Microsoft использует для обозначения этого набора инструкций термин x64.

Режимы работы

Процессоры архитектуры поддерживают два режима работы: Long mode («длинный» режим) и Legacy mode (режим совместимости с x86).

Long Mode

«Длинный» режим - «родной» для процессоров AMD64. Этот режим позволяет воспользоваться всеми дополнительными возможностями, предоставляемыми архитектурой AMD64. Для использования этого режима необходима 64-битная операционная система, например, Windows XP Professional x64 Edition или 64-битный вариант GNU/Linux. Этот режим позволяет выполнять 64-битные программы; также (для обратной совместимости) предоставляется поддержка выполнения 32-битного кода, например, 32-битных приложений, хотя 32-битные программы не смогут использовать 64-битные системные библиотеки, и наоборот. Чтобы справиться с этой проблемой, большинство 64-разрядных операционных систем предоставляют два набора необходимых системных файлов: один - для родных 64-битных приложений, и другой - для 32-битных программ. (Этой же методикой пользовались ранние 32-битные системы - например, Windows 95 - для выполнения 16-битных программ)

Legacy Mode

Данный режим позволяет процессору AMD64 выполнять инструкции, рассчитанные для процессоров x86, и предоставляет полную -совместимость с 32/16-битным кодом и операционными системами. В этом режиме процессор ведёт себя точно так же, как x86-процессор, например Pentium 4, и дополнительные функции, предоставляемые архитектурой AMD64 (например, дополнительные регистры) недоступны. В этом режиме 64-битные программы и операционные системы работать не будут.

Особенности архитектуры

Разработанный компанией AMD набор инструкций x86-64 (позднее переименованный в AMD64) - расширение архитектуры Intel IA-32 (x86-32). Основной отличительной особенностью AMD64 является поддержка 16-ти 64-битных регистров общего назначения (против 8-и 32-битных в x86-32), 64-битных арифметических и логических операций над целыми числами и 64-битных виртуальных адресов.

Архитектура x86_64 имеет

    16 целочисленных 64-битных регистра общего назначения (RAX, RBX, RCX, RDX, RBP, RSI, RDI, RSP, R8 - R15),

    8 80-битных регистров с плавающей точкой (ST0 - ST7)

    8 64-битных регистров Multimedia Extensions (MM0 - MM7, имеют общее пространство с регистрами ST0 - ST7)

    16 128-битных регистров SSE (XMM0 - XMM15)

    64-битный указатель RIP и 32-битный регистр флагов EFLAGS

Opteron (кодовое название Sledgehammer или K8) - первый микропроцессор фирмы AMD, основанный на 64-битной технологии AMD64 (также называемой x86-64). AMD создала этот процессор в основном для применения на рынке серверов, поэтому существуют варианты Opteron для использования в системах с 1-16 процессорами.

В июне 2004 года в Top500 суперкомпьютеров десятое место занял Dawning 4000A - китайский суперкомпьютер построенный на процессорах Opteron. В ноябре 2005 он опустился на 42 место, в связи с появлением более производительных конкурентов. Тогда в ноябрьском Top500 10 % суперкомпьютеров были построены на базе процессоров AMD64 Opteron. Для сравнения, на базе процессоров Intel EM64T Xeon были построены 16.2 % суперкомпьютеров. Две ключевые особенности

Двумя важными технологиями воплощёнными в процессоре Opteron являются: Прямая (без эмуляции) поддержка 32-битных x86 приложений без потери скорости Прямая (без эмуляции) поддержка 64-битных x86-64 приложений (линейная адресация более 4 ГБ ОЗУ)

Первая технология примечательна тем, что во время анонса процессора Opteron единственным 64-битным процессором с заявленной поддержкой 32-битных x86 приложений был Intel Itanium. Но Itanium выполнял 32-битные приложения со значительной потерей скорости.

Вторая технология, сама по себе не так примечательна, так как основные производители RISC процессоров (SPARC, DEC, HP, IBM, MIPS и другие) имели 64-битные решения уже много лет. Но совмещение в одном продукте этих 2-х свойств, напротив, принесло Opteron признание, так как он предлагал доступное и экономичное решение для запуска существующих x86 приложений с последующим переходом на более перспективные 64-битные вычисления.

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

В мае 2005 года AMD представила первый «многоядерный» процессор Opteron. В настоящее время термин «многоядерный» компания AMD использует для обозначения «двухъядерных» процессоров; в каждом процессоре Opteron размещено 2 отдельных процессорных ядра. Это фактически удваивает вычислительную мощность доступную каждому процессорному разъёму на материнских платах, поддерживающих эти процессоры.

Одним из “топовых” процессоров AMD сегодня считается - Athlon X2 6000+ на ядре Windsor под сокет AM2. Этот процессор содержит два ядра Athlon 64, объединённых на одном кристалле с помощью набора дополнительной логики. Ядра имеют в своём распоряжении двухканальный контроллер памяти, базирующийся на Athlon 64 степпинга E, и в зависимости от модели, от 512 до 1024 КБ КЭШа 2-го уровня на каждое ядро. Athlon 64 X2 поддерживают набор инструкций SSE3 (которые ранее поддерживались только процессорами компании Intel), что позволило запускать с максимальной производительностью код, оптимизированный для процессоров Intel. Эти улучшения не уникальны для Athlon 64 X2 и так же имеются в релизах процессоров Athlon 64, построенных на ядрах Venice и San Diego. AMD официально начала поставки Athlon 64 X2 на выставке Computex 1 июня 2005 года.

Основным преимуществом, которое даёт двуядерные процессоры Athlon 64 X2 является возможность разделения запущенных программ на несколько одновременно выполняемых потоков. Способность процессора выполнять одновременно несколько программных потоков называется параллелизм на уровне потоков (thread-level parallelism или (TLP)). При размещении двух ядер на одном кристале, Athlon 64 X2 обладает двойным TLP по сравнению с одноядерным Athlon 64 при той же скорости. Необходимость в TLP зависит от конкретной ситуации в большей степени и в некоторых ситуациях она просто бесполезна. Большинство программ написаны с расчётом на работу в однопоточном режиме, и поэтому просто не могут задействовать вычислительные мощности второго ядра. Программы, написанные с учётом работы в многопоточном режим и способные использовать вычислительные мощности второго ядра, включают в себя множество приложений для обработки музыки и видео. Имея два ядра, Athlon 64 X2 обладает увеличенным количеством транзисторов на кристалле. Процессор Athlon 64 X2 с 1МБ КЭШа 2-го уровня имеет 233.2 миллиона транзисторов , в отличие от Athlon 64, имевшего всего 114 миллиона транзисторов . Такие размеры требуют использования для производства более тонкого технологического процесса, который позволяет добиться выхода необходимого количества исправных процессоров с одной кремневой пластины. Athlon 64 X2 построен на ядрах: Toledo; Manchester; Windsor по 90 нм техпроцессу. Совсем недавно компания AMD официально представила свою новую платформу для настольных ПК под кодовым названием AMD Spider.

Платформа Spider

Состав платформы Spider

Основным компонентом данной платформы является процессор линейки AMD Phenom, совместно с чипсетом семейства AMD 7-Series.

Платформа AMD Spider: общие характеристики

Представляя вниманию широкой публике новые технологии, AMD делает акцент именно на платформенном характере инноваций. Ключевым компонентом платформы Spider являются многоядерные процессоры AMD Phenom (вплоть до 4-ядерных), выполненные с соблюдением норм 65 нм техпроцесса и предназначенные для работы с системными платами, оснащёнными разъёмом Socket AM2+. Помимо этого, в состав платформы Spider входит новое поколение чипсетов AMD 7 Series для создания системных плат с поддержкой технологий CrossFireX и AMD OverDrive, а также графика семейства ATI Radeon HD 3800 с поддержкой Microsoft DirectX 10.1.

Схема платформы AMD Spider

Если отбросить в сторону многословие пресс-релизов, основной инновацией, реализованной в платформе AMD Spider, можно назвать значительное повышение параметра “производительность на ватт”, главным образом, за счёт энерго-эффективного дизайна 65 нм процессоров AMD Phenom, 65 нм чипсетов AMD 7-Series и 55 нм графических чипов семейства ATI Radeon HD 3800. Наряду с этим, платформа AMD Spider обладает поддержкой ряда специфических технологий экономии энергии: ATI PowerPlay, Cool’n’Quiet 2.0, Microsoft DirectX 10.1, HyperTransport 3.0 и PCI Express 2.0. В частности, технология Cool’n’Quiet 2.0 позволяет снижать энергопотребление процессоров AMD Phenom, обладающих TDP 95 Вт, до средних 32 Вт в бытовых и средних 29 Вт в коммерческих приложениях. В то же время технология AMD CoolCore, реализованная в чипсетах AMD 7-Series, обеспечивает работу ядер процессора на разных частотах и, соответственно, снижение энергопотребления, при этом TDP чипсетов в среднем составляет порядка 10-12 Вт.

Другая инновация платформы AMD Spider – значительная её масштабируемость, беспрецедентная для решений на базе процессоров AMD. Так, системные платы на базе чипсетов AMD 7-Series, благодаря технологии ATI CrossFireX и поддержке до 42 линий PCI Express, обладают возможностью работы с тремя или четырьмя графическими картами ATI Radeon HD 3800. С точки зрения микроархитектуры процессоров AMD, новые чипы 4-ядрные чипы Phenom для настольных ПК, выполненные на базе архитектуры Stars (ядро Agena), являются “ближайшими родственниками” новых 4-ядерных серверных процессоров AMD Opteron на базе ядра Barcelona.

В полной аналогии с ядром Barcelona, архитектура Stars обладает 128-битным контроллером памяти с поддержкой до DDR2-1066, который также обладает возможностью работы в 2-канальном 64-битном режиме для независимого выполнения операций записи и чтения памяти. Физическое адресное пространство при этом увеличилось до 48 бит, а поддержка памяти до 256 Тб.

Каждое из четырёх ядер процессора Phenom обладает собственным 64 Кб собственной кэш-памяти L1 для инструкций и 64 Кб кэш-памяти L1 для данных, что в сумме составляет 512 Кб кэш-памяти L1 на процессор. Суммарный объём кэш-памяти L2 составляет 2 Мб, по 512 Кб на каждое ядро. Помимо этого, архитектуры Barcelona и Stars подразумевают наличие 2 Мб кэш-памяти L3. В отличие от кэш-памяти уровней L1 и L2, эксклюзивных для каждого ядра, кэш-память L3 динамически распределяется между всеми ядрами.

Среди ключевых характеристик, присущих новым 4-ядерным процессорам Phenom, следует отметить следующие ключевые функциональные возможности: Наличие нового планировщика задач с плавающей запятой, теперь поддерживающего 36 новых 128-битных операций Поддержка 128-битных операций SSE, появившихся в дополнение к возможностям прежней 64-битной архитектуры Возможность обработки двух операций SSE и одного SSE переноса за такт Буфер модуля выборки инструкций стал 32 байтным (ранее 16 байт) Модуль предсказания ветвлений с 512-ходовым предсказанием непрямых ветвлений Производительность кэша данных увеличена с одной 64-битной загрузки за такт до одной 128-битной загрузки за такт Производительность кэша данных L2 - контроллера памяти увеличена с 64-битной загрузки на такт до 128-битной загрузки за такт Реализация шины HyperTransport 3.0 позволила увеличить пропускную способность до 20,8 Гб/с Реализация технологии AMD Virtualization Technology с функцией быстрой индексации Rapid Page Indexing

Согласно информации, полученной от источника из среды тайваньских производителей системных плат, компания AMD на днях известила своих партнеров о намерении начать отгрузку трехъядерных процессоров Phenom X3 (Toliman) уже в феврале 2008 года, а не в марте, как планировалось ранее. Двухъядерные процессоры Kuma появятся только в конце второго квартала будущего года.

Напомним, что первые трехъядерные процессоры, модели 7700 и 7600, будут работать на частотах 2,5 ГГц и 2,3 ГГц, соответственно, тепловыделение моделей установлена в 89 Вт. Тактовые частоты процессоров Kuma, моделей 6250 и 6050, пока не называются, известно лишь, что их TDP будет на уровне 65 Вт.

Переход к 16-разрядным микропроцессорам - i8086 и другие аналогичной вычислительной мощности - ознаменовался качественным скачком всех основных характеристик МП: не просто увеличение разрядности, но значительное изменение архитектуры, системы команд, принципов организации структуры. Кроме показанного на Рис. 2.4, в машину пользователя i8086 включатся память объемом 1М байт и две области портов ввода и вывода по 64К каждая.

Рассмотрим "машину пользователя" на базе i8086 (К1810ВМ86):

7 0 7 0
AX AH AL Аккумулятор
РОН BX BH BL База
CX CH CL Счетчик
DX DH DL Данные
15 0
Регистры- SP Указатель стека
указатели BP Указатель базы
Индексные SI Индекс операнда
регистры DI Индекс результата
15 0
CS Сегмент кода
Сегментные DS Сегмент данных
регистры SS Сегмент стека
ES Сегмент доп. данных
15 0
IP Счетчик команд
FLAGS Регистр признаков

Рис. 2.4. МП i8086 - машина пользователя

Разработчики i8086 старались сохранить возможность преемственности программного обеспечения i8080, поэтому в составе i8086 можно выделить подмножество регистров i8080 (соответствующие подмножество сохранено и в системе команд). Помимо операций с 16-разрядными регистрами общего назначения (РОН) AX..DX, допускается обращение к каждому байту этих регистров - AL..DL, AH..DH. В некоторых командах РОНы выполняют определенные по умолчанию функции счетчиков, индексных регистров и т.п. (см. Рис. 2.4).

16-разрядные регистры BP, SI, DI используются для образования исполнительных адресов памяти (см. ниже), SP - указатель стека, IP - программный счетчик (СчК), F - регистр флагов. Младший байт F полностью повторяет формат регистра признаков i8080, а старший имеет след. формат:

DF определяет направление модификации адресов массивов в командах цепочек (увеличение или уменьшение адреса);

IF маскирует внешнее прерывание по входу INT (при IF = 1 прерывание разрешено);

TF управляет пошаговым режимом работы микропроцессора. При TF = 1 после выполнения каждой команды автоматически формируется прерывание с вектором 4 (см. раздел 7).

Распределение адресного пространства .

Адресное пространство МП определяется в i8086 разрядностью шины адреса/данных + адреса и составляет 2 20 = 1М байт. В этом адресном пространстве МП одновременно доступны четыре сегмента, два из которых (DS и ES) предназначены для размещения данных, CS - сегмент кода (для размещения программы) и SS - сегмент стека.

Размеры сегментов определяются разрядностью логических адресов команд, данных и стека. Логические адреса команд и стека (верхушки) хранятся в 16-разрядных регистрах IP и SS соответственно, а логический адрес данных вычисляется в команде (см. ниже) и так же составляет 16 бит. Таким образом, размер каждого сегмента в i8086 составляет 64К байт. Положение сегмента в адресном пространстве (его начальный адрес) определяется содержимым одноименного сегментного регистра. Формирование физического адреса иллюстрируется схемой Рис. 2.5 .

Из Рис. 2.5 видно, что граница сегмента в адресном пространстве может быть установлена не произвольно, а таким образом, чтобы начальный адрес сегмента был кратен 16.

15 0
Сегментный регистр .0 0 0 0
15 0
Логический адрес
19 0
Физический адрес

Рис. 2.5. Формирование физического адреса

По умолчанию сегментные регистры выбираются для образования физического адреса след. образом: при считывании команды по адресу IP используется CS, при обращении к данным - DS или ES, при обращению к стеку - SS. С помощью специальных приставок к команде (префикса) можно назначить для использования произвольный сегментный регистр (кроме пары CS:IP, которая не подлежит модификации). Границы сегментов могут быть выбраны т.о., что сегменты будут изолированы друг от друга, пересекаться или даже полностью совпадать. Например, если загрузить CS=SS=DS=ES=0, то все сегменты будут совпадать друг с другом и начинаться с нулевого адреса - вариант организации адресного пространства i8080.

Способы адресации

и методы формирования исполнительного адреса

Длина команды i8086 может составлять от 1 до 6 байт. Формат команды представлен на Рис. 2.6.

1 байт 2 байт 3..6 байты
КОП D W MOD REG R/M [Смещение. данные]
7 2 1 0 7 6 5 3 2 0

Рис. 2.6. Формат команды МП i8086

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

D - определяет направление передачи информации: при D = 1 REG является приемником, иначе - источником;

W - определяет длину операндов в команде: при W = 1 длина операндов составляет 16 бит (слово - word), иначе - 8 бит(байт);

REG - определяет регистр для первого операнда согласно Табл. 2.3:

REG (R/M) Регистр
W = 0 W = 1
AL AX
CL CX
DL DX
BL BX
AH SP
CH BP
DH SI
BH DI

Поля R/M и MOD определяют способ формирования адреса второго операнда, который располагается чаще всего в памяти. В Табл. 2.4 приведены способы формирования адресов памяти для двух значений поля MOD.

R/M MOD = 00 MOD = 01
Логич.адрес Сегмент Логич.адрес Сегмент
BX+SI DS BX+SI+d8 DS
BX+DI DS BX+DI+d8 DS
BP+SI SS BP+SI+d8 SS
BP+DI SS BP+DI+d8 SS
SI DS SI+d8 DS
DI DS DI+d8 DS
d16 DS BP+d8 DS
BX DS BX+d8 DS

В Табл. 2.4 d8 и d16 означают соответственно 8- и 16-разрядное смещение (3 и 3+4 байты команды). При операциях с d8 осуществляется его "знаковое расширение" до 16 бит - биты 15..8 принимают значение бита 7 (знака).

При значении MOD = 10 используются те же регистры, что при MOD = 01 (см. Табл. 2.4), но вместо d8 используется d16.

При MOD = 11 вторым операндом команды является регистр, определяемый полем R/M согласно Табл. 2.3.

Таким образом, операнд в памяти может адресоваться прямо (MOD = 00, R/M = 110) или косвенно посредством содержимого базовых (BP, BX) или индексных (SI, DI) регистров, а так же их суммы. Режимы адресации спроектированы с учетом эффективной реализации языков высокого уровня. Например, к простой переменной можно обратиться в режиме прямой адресации, а к элементу массива - в режиме косвенной адресации посредством BX, SI. Режим адресации через BP предназначен для доступа к данным из сегмента стека, что удобно при реализации рекурсивных процедур и компиляторов языков высокого уровня.

Особенности архитектуры 64 – разрядных МП


5.1. Itanium 2 Intel

Процессор разрабатывался с нуля, причем, параллельно сразу в двух версиях: инженерами Intel и Hewlett-Packard. Впро-чем, в основе обоих чипов лежали, естественно, одни и те же идеи, поскольку создавались они все же совместно, и должны были оба стать родоначальниками одного и того же семейства. Цементирующим составом были, естественно, единая идеология, при-шедшая на смену CISC - EPIC (Explicitly Parallel Instruction Computing), и новая архитектура - IA-64, включающая в себя на-бор инструкций, описание регистров, и прочие подобные вещи. Впрочем, архитектура как раз - вещь изменчивая, достаточно вспомнить как отличаются между собой такие CISC процессоры, как 8086 и i80486, оба созданные на базе 80x86.
Точно так же и с Merced и McKinley, Itanium и Itanium 2 - оба построены на базе одной идеологии, но в разных разновидно-стях архитектуры. В свое время та же история, в общем то, была и с Pentium и Pentium Pro. Впрочем, общие черты были и у тех, есть и у этих, за это "отвечает" EPIC. В первую очередь речь идет о полноценной масштабной суперскалярности, то есть, способности выполнять одновременно несколько инструкций. Для чего, естест-венно, процессор содержит исполнительные модули - для опера-ций с целыми числами, с числами с плавающей запятой, и т.д.
В отличие от Pentium и его последователей, разбирающихся в коде самостоятельно, EPIC-процессоры сильно полагаются на компилятор, который должен сам проанализировать код на пред-мет нахождения оптимальных мест для распараллеливания его вы-полнения, и снабдить процессор этой информацией. Поэтому и используется «explicitly» - процессор не должен сам пытаться по-нять, что можно исполнять параллельно, а что нет, и т.д. - все это ему уже заранее объяснит компилятор. Плюс, мощные механизмы по предсказанию переходов, предварительному выполнению кус-ков кода, предварительной загрузке данных, и тому подобные ве-щи - загрузка исполнительных блоков должна быть распределена максимально равномерно.
Кардинально решен вопрос с регистрами, количество кото-рых увеличено в несколько раз: у Itanium их количество составляет 128 общего назначения (рис.1), 128 - для хранения чисел с пла-вающей запятой, 8 регистров переходов, и 64, отвечающих за ра-боту механизмов предсказания. Здесь все очевидно - такого коли-чества регистров, да еще реально 64-битных, хватит для хранения любых требуемых чисел для любого разумного количество испол-нительных модулей. У Itanium, первого представителя семейства, таких регистров всего пять - два целочисленных, два для операций с памятью и четыре - для операций с плавающей точкой. Физи-ческая память адресуется 44-бит числами, что на самом деле огра-ничивает ее объем "всего лишь" 17.6 Терабайт, блоки для опера-ций с плавающей точкой работают с числами в 82-бит представлении.

От идеи реализовать 32-бит 80x86 ядро в аппаратном виде Intel отказался, сочтя это слишком неэффективным использовани-ем площади кристалла. Так что для того, чтобы получить возмож-ность исполнения Itanium 80х86 кода, была создана система трансляции, которая на лету преобразует 80x86 код в IA-64.
Очевидно, что при прочих равных, производительность подобного решения будет ниже, чем чистого x86, работающего на той же частоте. Впрочем, никто и не ждал от Itanium скоростного исполнения x86 программ - поддержка этой архитектуры относит-ся скорее к издержкам переходного периода. Тем не менее, факт остается фактом: это семейство для решения 32-бит задач не при-способлено. Впрочем, вряд ли кто-то будет использовать Itanium для подобных целей при наличии полноценного 64-битного ПО..
Вдобавок, сам по себе Itanium был в значительной степени пилотным проектом, как и Pentium Pro, так что процессор вообще стоит рассматривать больше как демонстрацию возможностей ар-хитектуры. Характерный штрих - чипсет для Itanium, 460GX, под-держивает в качестве памяти всего лишь PC100 SDRAM, это кое-что говорит о скорости, с которой способен переваривать данные процессор. С другой стороны, однако, в какой-то мере не слишком быстрый интерфейс с оперативной памятью компенсируется очень большой кэш-памятью L3 - 2 или 4 Мбайт, работающей на полной частоте процессора (733 или 800 МГц) с пропускной способно-стью до 12.8 Гбайт/с.
Еще одной задачей Itanium было решить вопрос с компиля-торами - ведь EPIC-процессоры, как уже упоминалось, очень сильно от них зависят. В отличие от компиляторов для 80x86 про-цессоров, которые на их производительность почти не влияли, здесь компиляторы являются полноправными партнерами процес-сора - ведь они снабжают его крайне необходимой для работы ин-формацией, и от того, насколько качественной она будет, будет за-висеть скорость исполнения этой программы процессором.
Itanium 2 является уже куда более коммерчески интересным продуктом. Созданный Hewlett-Packard, набившей руку на создании 64-бит процессоров серии PA-RISC, чип получился куда более совершенным. С несколько меньшим количеством L3 (1.5 или 3 Мбайт) и несколько более высокой частотой, 900 МГц или 1 ГГц, он обеспечивает в пол-тора-два раза большую производительность на тех же задачах, что и Itanium. Он является, фактически, первым представителем архи-тектуры IA-64.
Дальше планируется еще большее распараллеливание мак-симально модным на сегодняшний день путем: процессор должен будет перейти на два физических ядра, что позволит практически удвоить производительность по достаточно приемлемой цене - по крайней мере, результат получится куда более дешевым, чем если бы того же количества исполнительных модулей, регистров, и т.д., пытались достичь на едином кристалле.

5.2. Athlon 64 AMD

В первую очередь заметим, что процессор Athlon 64 – это именно тот 64-битный процессор для настольных систем, который изначально планировала выпустить AMD. Впоследствии, в свете выхода скоростных процессоров Pentium 4, появления в них 800-мегагерцовой шины и технологии Hyper-Threading, AMD в сроч-ном порядке решила нацелить на рынок настольных систем и од-нопроцессорный Opteron, дав ему имя Athlon 64 FX. Однако Athlon 64 FX в силу своего серверного происхождения оказался дорогим и малораспространенным. По настоящему же продвинуть архитектуру AMD64 для массового использования должен именно Athlon 64.
Ниже представлена таблица 1 со спецификациями 64 - раз-рядных МП Athlon 64 3200+, Athlon 65 FX-51 и Athlon XP 3200+:

Таблица 1

* Заметим, что память в Athlon 64 и Athlon 64 FX такту-ется относительно частоты ядра, поэтому реальные час-тоты для памяти в этом случае составляют 129.4, 157.1 и 200 МГц.
Фактически, Athlon 64 отличается от своего старшего собра-та Athlon 64 FX, помимо формы и размеров корпуса, только лишь контроллером памяти. Хотя, при этом, и тот и другой процессоры производятся из одних и тех же кристаллов. Контроллер памяти в Athlon 64 одноканальный и в этом заключается как его слабость, так и преимущество по сравнению с Athlon 64 FX. Недостаток од-ноканального контроллера памяти в Athlon 64 очевиден: это более низкая теоретическая пропускная способность.
Учитывая, что Athlon 64 способен работать с DDR400 памя-тью, максимальная пропускная способность встроенного в CPU контроллера памяти составляет 3.2 Гбайт в секунду. Это в два раза меньше, чем аналогичная характеристика Athlon 64 FX. Преиму-щество же контроллера памяти Athlon 64 заключается в том, что он, в отличие от контроллера Athlon 64 FX, поддерживает обыч-ные нерегистровые модули памяти. Такие модули по сравнению с регистровыми более дешевы, имеет более агрессивные тайминги и работают быстрее, даже при одинаковых с регистровыми модуля-ми настройках. То есть при более низкой пропускной способности, обеспечиваемой контроллером памяти Athlon 64, подсистема памяти, его использующая, имеет более низкую латентность, что мы и покажем ниже.
АMD Athlon 64 по внешнему виду похож на Opteron и Athlon 64 FX.
Отличия обнаруживаются только лишь в маркировке и в меньшем числе ножек на обратной стороне, поскольку процессоры Athlon 64 устанавливаются в материнские платы с Socket 754 и не совместимы с Socket 940 платами, предназначенными для CPU се-мейств Athlon 64 FX и Opteron.
Помимо перечисленных выше особенностей, есть в новых процессорах Athlon 64 и еще одна. Эти процессоры обладают под-держкой технологии Cool’n’Quiet, фактически пришедшей в них из мобильных вариантов МП. По сути, Cool’n’Quiet представляет собой некое подобие технологии энергосбережения PowerNow!, уже давно используемой в мобильных МП от AMD. Но теперь эта технология, наконец, пришла и в настольные процессоры ком-пании. Поддержка Cool’n’Quiet – еще одно преимущество Athlon 64 над Athlon 64 FX/Opteron, не имеющих пока никаких подобных технологий. Компания AMD достаточно давно уделяет присталь-ное внимание понижению уровня тепловыделения своих настоль-ных процессоров.
Надо сказать, что в этом компания уже давно превосходит Intel: старшие модели процессоров AMD при максимальной на-грузке выделяют значительно меньше тепла, чем старшие модели Pentium 4. Также, в процессорах применяются технологии, пони-жающие тепловыделение и при низкой нагрузке. Еще МП семей
ства Athlon XP имели возможность перехода в «ждущий ре-жим» (Halt/Stop Grant) при выполнении команды HALT, что выли-валось в понижение температуры процессора при его загрузке ни-же 100%. Однако теперь AMD пошла еще дальше. В новых про-цессорах Athlon 64 реализована еще более интеллектуальная схема понижения тепловыделения.
В дополнение к состояниям Halt/Stop Grant, Athlon 64 умеет сбрасывать свою тактовую частоту и напряжение питания для еще более сильного снижения тепловыделения. В работе с использова-нием этой технологии тактовой частотой МП управляет драйвер процессора, который сбрасывает или повышает ее, основываясь на данных о его загрузке. Действительно, если процессор полностью справляется с возлагаемой на него работой и его загрузка сильно меньше 100%, то можно без ущерба для функционирования систе-мы в целом снизить его тактовую частоту: на работе системы это никак не скажется. Например, при простоях, работе в офисных приложениях, просмотре видео, дефрагментации дисков и в по-добных задачах мощности процессора в полной мере не использу-ются. Именно в таких случаях процессорный драйвер переводит Athlon 64 на меньшую тактовую частоту. Когда же от процессора требуется полная отдача, например, в играх, при решении вычис-лительных задач, в задачах кодирования данных и т.п., частота процессора поднимается до номинала. Именно таким образом и работает технология Cool’n’Quiet.
На практике это выглядит следующим образом. В обычных условиях, при минимальной загрузке МП процессорный драйвер сбрасывает частоту Athlon 64 3200+ со штатных 2 ГГц до 800 МГц. Напряжение питания процессора при этом понижается до 1.3В. Как видим, снижение тактовой частоты обеспечивается за счет уменьшения множителя процессора до 4x. Это, кстати, обу-славливает и тот факт, что процессоры Athlon 64 3200+ поставля-ются с незафиксированным коэффициентом умножения. В таком режиме процессор продолжает работать до тех пор, пока его за-грузка не превысит 70-80%. В частности, мы смогли запустить од-новременно дефрагментацию диска, проигрывание файлов с рас-ширением mp3 (аудифайлов) и просмотр MPEG-4 (видеофайлов) ролика, в то время как процессор продолжал работать на часто-те 800 МГц.
Когда же загрузка процессора Athlon 64 при частоте 800 МГц превышает допустимый предел, МП переводится драйвером в следующее состояние, при котором частота Athlon 64 3200+ со-ставляет 1.8 ГГц, а напряжение питания 1.4В. Достигается это вновь за счет уменьшения множителя, на этот раз до 9x. И только если в данном случае нагрузка процессора вновь оказывается чрезмерно высокой, драйвер переводит МП в штатный режим: частота 2 ГГц, напряжение питания – 1.5В.
Отметим, что в режимах с пониженным питанием и часто-той тепловыделение процессора Athlon 64 3200+ резко падает. Для сравнения приведем таблицу 4 с тепловыделением этого процес-сора в основных режимах.

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