Микропроцессоры компании AMD
Успешную конкуренцию семейству Pentium составляют разработанные компанией AMD микропроцессоры с системой команд х86, получившие название «Криптон-5» или сокращенно К5 и его преемник К6 [13-16].
Микропроцессор К5. В течение ряда лет AMD, отставая от Intel по крайней мере на одно поколение микропроцессоров, полагалась в основном на лицензированную технологию и вносила незначительные конструктивные отличия в выпускаемые микропроцессоры. Появление микропроцессора Pentium создало для AMD прямую угрозу вытеснения с рынка, что стимулировало компанию к интенсификации работ над созданием нового семейства микропроцессоров, совместимых с семейством х86. Была поставлена цель, создать такое семейство микропроцессоров, которое опередило бы Pentium компании Intel и положило бы конец создавшемуся для AMD положению следования за лидером. Работы над К5 были начаты, когда еще не были известны подробности о процессоре Pentium. Инженерам AMD пришлось разрабатывать собственную микроархитектуру, обеспечивая при этом совместимость с существующим программным обеспечением для процессоров х86.
Первоначально AMD планировала начать поставки своего микропроцессора с тактовой частотой 100-120 МГц, однако было выпущено лишь несколько тысяч таких ЦП, а их тактовая частота составила 75 Мгц. Основные поставки К5 начались в первом квартале 1996г., после того как компания перешла на 0,35-микронную технологию, разработанную в содружестве с Hewlett-Packard. Это позволило довести число транзисторов до 4,2 млн. на площади около 167 кв. мм.
К5 - это первый микропроцессор AMD, при создании которого не использовалась никакая интеллектуальная собственность Intel (за исключением микрокода), в то же время он обладает лучшей по сравнению с процессорами Intel производительностью. По данным AMD реальные приложения (такие как Microsoft Excel, Word или Corel Draw) работают на процессорах серии К5 на 30% быстрее, чем на Pentium с той же тактовой частотой. Такая производительность достигается в основном за счет увеличенного объема кэш-памяти и более прогрессивной суперскалярной архитектуры. Вместо парных конвейеров целочисленных вычислений Pentium в К5 используется суперскалярная архитектура со счетверенной подачей команд пяти обрабатывающим блоком и RISC-ядром с уникальным декодером инструкций х86.
Используемая в микропроцессорах AMD архитектура RISC 86 (впервые предложенная NexGen) показана на рис. 1.5.
Как известно, команды х86 отличают сложность и переменная длина, затрудняющие их динамическое выполнение. Декодер, представляющий собой наиболее сложную часть микропроцессора, разбивает длинные CISC-инструкции на небольшие RISC-подобные компоненты - так называемые ROP (RISC- операции). R-операции напоминают команды микрокода микропроцессоров х86. Первые микропроцессоры с архитектурой х86 выполняли свой сложный набор микрокоманд, выбирая из внутренней постоянной памяти микрокод. В последних микропроцессорах х86 использование микрокода сведено к минимуму за счет применения простых команд. В К5 применяется другой подход: здесь большинство R-операций генерируются динамически не микрокодом, а декодером. Однако микрокод все еще используется для обработки сложных и редко применяемых команд х86, таких как строковые операции и операции над комплексными числами. Тем не менее, даже в этих случаях в результате генерируется поток R-операций. К5 может конвертировать команду х86 в 1-4 R-операции. Эти операции планируются для выполнения в ядре, в котором многое заимствовано от RISC-архитектуры. Используется динамическое переименование регистров, предсказание переходов, изменение последовательности выполнения и другие методы динамического выполнения. К5 реализует гибридную CISC/RISC-технологию.
Особенностью К5 является то, что вместо двух конвейеров для параллельного выполнения целочисленных операций он имеет пять параллельно функционирующих блоков. Как и Pentium, он может параллельно выполнять 2 целочисленных операции. Однако в отличие от Pentium в К5 одновременно могут выполняться также инструкции с плавающей точкой, загрузки/сохранения или перехода. Большой набор регистров и блок загрузки/сохранения позволяют выполнять за цикл выборки из памяти две операции. Другим отличием от Pentium является то, что К5 может изменять последовательность выполняемых операций.
Блок выполнения операций с плавающей точкой (FPU) отвечает стандартам х86, однако по производительности несколько уступает FPU процессора Pentium. Отметим, что этот вид операций не имеет для программного обеспечения ПК особенно важного значения (доля команд с плавающей точкой в общем объеме распространенных программных продуктов ничтожно мала).
Использованное в архитектуре К5 сочетание принципов CISC и RISC позволило преодолеть ограничения набора команд х86. Такие процессоры, как К5, содержат около 4 миллионов транзисторов, что значительно отличает их от первых процессоров Intel с архитектурой х86 - 8086, содержавших 29000 транзисторов. Однако увеличение сложности процессора позволило не заменять старый набор команд на новый, более эффективный, поскольку эти команды используют широко распространенное во всем мире программное обеспечение. Поэтому все конкурирующие компании (AMD, Cyrix, и Intel) выбрали компромиссный вариант и интегрировали технологии CISC и RISC, не отказываясь от совместимости с х86.
Ниже приведены основные характеристики микропроцессора К5:
- Выпускается с 1995 г.;
- Совместим с семейством микропроцессоров х86;
- Суперскалярная архитектура с четырехвходовой подачей команд;
- Конвейер с 5-ю стадиями обработки;
- Пять параллельно функционирующих блоков: арифметико-логических сдвигов, блок операций с плавающей точкой, блок перехода и блок загрузки/хранения;
- Кэш команд 16 Кб, кэш данных 8 Кб с двумя портами, линейная адресация;
- Изменение порядка выполнения команд, предсказание переходов, эффективное выполнение, отличный от Intel микрокод (впервые для AMD);
- Производительность на З0% выше Pentium с той же тактовой частотой;
- Тактовая частота 75-200 Мгц;
- Отношение внутренней/внешней тактовой частоты: 1, 1.5, 2 и З;
- Содержит более четырех миллионов транзисторов;
- Трехслойная металлизация, напряжение 3,3В, полностью статический КМОП;
- 0,5-микронная технология, в 1996 г. переход на 0,35-микронную технологию;
- Совместим по выводам с Pentium.
Микропроцессор К6. Микропроцессор компании AMD [14] явился продуктом совместных усилий компании AMD и специалистов из бывшей NexGen. По сути дела, К6 представляет собой воплощение проекта Nx686, ранее начатого компанией NexGen, но не завершенного по финансовым причинам.
Микропроцессор К6 изготавливается по технологии КМОП/0,35 мкм с пятислойной металлизацией, содержит 8,8 миллионов транзисторов на кристалле площадью 162 мм2 и работает с тактовыми частотами 166, 200 и 233 МГц. Процессор полностью совместим по системе команд с семейством х86, а по выводам - с Socket. Кроме того, К6 оснащен ставшим отраслевым стандартом мультимедийным расширением системы команд - ММХ. По производительности К6 сравним с Pentium Pro и существенно превосходит Pentium ММХ. В отличие от Pentium Pro, К6 одинаково успешно работает как с 32-разрядными, так и с 16-разрядными приложениями.
Как и в К5, в К6 применена суперскалярная архитектура RISC86 с раздельным декодированием/исполнением команд, обеспечивающая преемственность с системой команд х86 и достижение высокой производительности, свойственной микропроцессорам 6-го поколения.
Высокая производительность процессора достигается благодаря ряду новых архитектурных и технологических решений.
• В процессоре реализуется преддекодирование команд х86 при их выборке в кэш. Каждая команда в кэш-памяти 1-го уровня снабжается битами преддекодирования, указывающими смещение начала следующей команды в кэше (от 1 до 15 байт).
• К6 содержит внутрикристальный кэш первого уровня по 32 Кбайт для данных и команд.
• В процессоре реализован высокопроизводительный блок вычислений с плавающей точкой.
• Имеется высокопроизводительный блок мультимедийных операций стандарта ММХ.
• Используется множественное декодирование х86 инструкций в однотактовые RISC-операции.
• Процессор поддерживает логику предсказания ветвлений, используя таблицу истории ветвлений из 8192 элементов, кэш адресов перехода и стек возврата, которые обеспечивают вероятность правильного предсказания перехода выше 0,95. В процессоре используется двухуровневая схема предсказания ветвлений. Таблица истории ветвлений не хранит предсказаний целевых адресов, специальные адресные АЛУ вычисляют целевые адреса во время декодирования инструкции. Кэш адресов ветвлений обеспечивает уточнение предсказанного ветвления, уменьшая потери при обращении к памяти. Кэш адресов поставляет на дешифраторы первые 16 байт инструкций, выбранных согласно прогнозу ветвления.
• Процессор содержит параллельные дешифраторы, централизованный планировщик операций и семь исполнительных блоков, которые обеспечивают суперскалярное выполнение х86 инструкций в шестиступенчатом конвейере.
• В процессоре используется спекулятивное исполнение с изменением последовательности команд, предварительная посылка данных, переименование регистров.
Структура микропроцессора К6 приведена на рис. 1.6.
RISC-ядро микропроцессора может выполнять за один такт до 6 команд RISC86. В процессе исполнения ROP ядро использует 48 физических регистров - 24 регистра общего назначения и 24 регистра для переименования. 24 регистра подразделяются на 16 рабочих регистров и 8 регистров, соответствующих универсальным регистрам архитектуры х86: ЕАХ, EBХ, ЕСХ, EDX, ЕВР, ESP, ESI и EDI.
Планировщик К6 содержит в буфере 24 команды RISC86 и назначает инструкции на выполнение 7-ми исполнительным модулям: сохранения, загрузки, перехода, целочисленному АЛУ, целочисленному блоку мультимедийных команд, операций с плавающей точкой. Наличие буфера позволяет планировщику в динамике анализировать и изменять выбранную для дополнения последова-
тельность команд, обеспечивая максимальную загрузку исполнительных устройств. Блок мультимедийных команд выполняет все инструкции расширения ММХ. Целочисленный Х-блок выполняет арифметико-логические операции, включая умножение, деление, сдвиг, циклический сдвиг. Y-блок - основные одно- и двухсловные арифметикологические операции: ADD, AND, СМР, OR, SUB, XOR, расширение нуля и расширение знакового разряда числа. Блок вычислений с плавающей точкой выполняет все команды с плавающей точкой. Блок переходов осуществляет обновление состояния процессора (регистров, флагов) после подтверждения предсказанного условного ветвления, обеспечивая тем самым возможность спекулятивного выполнения команд (на глубину до 7 переходов).
В конце 1998 г. AMD выпустила МП K6-II с суперсклярной обработкой ММХ-команд и технологией 3DNow, включающей набор из 21 команд, которые используются для ускорения построения трехмерных объектов, а также для поддержки стереозвука и видео. МП K6-II содержит 9,3 млн. транзисторов и имеет тактовую частоту до 400 МГц. Процессор AMD K7. До выхода процессора семейства К7 корпорация AMD развивала идеи Intel, а конкурентную борьбу вела в основном за счет более низких цен на процессоры. Но вот в новом процессоре AMD K7 были, наконец, применены технологии, до сих пор не применявшиеся в семействе х86, которые позволяют поднять производительность компьютера не только за счет увеличения тактовой частоты (кстати, как это напоминает ситуацию с последними моделями 486 процессоров). Первые процессоры седьмого поколения от корпорации AMD получили торговое наименование Athlon. Они устанавливались в картриджи, предназначенные для разъема Slot A. Вначале процессоры Athlon поддерживали наборы инструкций 3DNow! и ММХ, в дальнейшем к ним добавились инструкции SMP (Symmetric Multi-Processing). Последовательно были выпущены процессоры с ядром К7, К75 и К76 с частотами от 500 до 1000 МГц и кэшем второго уровня 512 Кбайт, который работал на половинной тактовой частоте ядра. Начиная с тактовой частоты ядра в 900 МГц, кэш второго уровня работал на 1/3 частоты ядра. Следующий процессор Athlon с ядром Thimderbird имеет встроенный в ядро кэш второго уровня объемом 256 Кбайт, работающий на полной частоте ядра. Выпускались два варианта процессора - с поддержкой шины 200 и 266 МГц (тактовая частота 100 и 133 МГц). Так как процессоры Athlon уступали по частоте процессорам Pentium 4, то после выхода операционной системы Windows XP процессоры Athlon получили ядро Palomino и название Athlon XP, правда, в маркировке стала указываться не реальная частота ядра процессора, а рейтинг относительно аналогичного по производительности Pentium 4. Процессоры Athlon XP выпускаются в двух модификациях - с ядром Palomino и Thoroughbred, различающихся лишь использованным технологическим процессом. Для серверных применений предназначен Athlon MP, а для ноутбуков - Athlon 4.
Athlon 64 - первый 64-битный процессор для домашних пользователей и мобильного применения компании AMD, который был представлен 23 сентября 2003 года [15]. Процессор построен на архитектуре AMD64 и относится к восьмому поколению (K8).
О начале разработки архитектуры K8 впервые было заявлено в 1999 году. Процессоры, основанные на данном ядре, должны были стать первыми 64-битными процессорами AMD, полностью совместимыми со стандартом x86.
Процессор существует в 3 вариантах: Athlon 64, Athlon 64 FX и двухъядерный Athlon 64 X2. Athlon 64 FX позиционируется как продукт для компьютерных энтузиастов, всегда оставаясь на один шаг быстрее Athlon 64. Несмотря на то, что их частоты обычно выше, все процессоры Athlon 64 FX имеют одноядерный дизайн, за исключением моделей Athlon 64 FX-60 и Athlon FX-62. Все процессоры Athlon 64 FX имеют разблокированный множитель для облегчения разгона процессора, в отличие от Athlon 64, у которых может быть установлен только множитель меньший или равный заданному на заводе. Так как все данные процессоры, построенные на архитектуре AMD64, способны работать с 32-битным x86, 16-битным и AMD64 кодом.
Основным качеством процессоров Athlon 64 является интегрированный в ядро контроллер памяти, чего не было в предыдущих поколениях CPU. Не только то, что данный контроллер работает на частоте ядра процессора, но также и то, что из связки процессор-память исчезло лишнее звено — северный мост, позволило существенно уменьшить задержки при обращении к ОЗУ.
Translation Lookaside Buffer (TLB) был также увеличен, одновременно были уменьшены задержки и улучшен модуль предсказания переходов. Эти и другие архитектурные расширения, в особенности поддержка расширений SSE, увеличение выполняемых инструкций за такт (IPC), увеличили производительность по сравнению с предыдущим поколением — Athlon XP. Для облегчения выбора и понимания производительности AMD разработала для маркировки процессора Athlon 64 так называемую систему индексов производительности (PR rating (Performance Rating)), которая нумерует процессоры в зависимости от их производительности по сравнению с процессорами Pentium 4. То есть, если ставится маркировка Athlon 64 3200+, то это означает, что данный процессор имеет производительность, схожую с производительностью процессора Pentium 4 на частоте 3,2 ГГц.
Athlon 64 также обладает технологией изменения тактовой частоты процессора, названной Cool'n'Quiet. Если пользователь запускает приложения, не требующие от процессора большой вычислительной мощности, то процессор самостоятельно понижает свою тактовую частоту, а также напряжение питания ядра. Применение данной технологии позволяет снизить тепловыделение при максимальной нагрузке с 89 Вт до 32 Вт, и даже до 22 Вт.
Технология No Execute bit (NX bit), поддерживаемая операционными системами Windows XP Service Pack 2, Windows XP Professional x64 Edition, Windows Server 2003 x64 Edition и ядром Linux 2.6.8 и старше, предназначена для защиты от распространённой атаки — ошибки переполнения буфера. Аппаратно установленные уровни доступа являются гораздо более надёжным средством защиты от проникновения с целью захвата контроля над системой. Это делает 64-битные вычисления более защищёнными.
Процессоры Clawhammer основаны на новой архитектуре AMD K8, которая является существенным улучшением и расширением архитектуры AMD K7. Добавлен новый режим 64-х битной целочисленной и адресной арифметики x86-64, добавлены новые режимы адресации оперативной памяти, добавлена поддержка инструкции Intel SSE2. Значительно улучшен механизм предсказания ветвлений. Кеш второго уровня большей ёмкости. Значительно переработаны декодеры, что позволило убрать ряд неприятных задержек при исполнении присущих K7. Число стадий конвейера увеличилось до 12, против 10 у K7. Кеш L2 стал двухпортовым: его соединяет с ядром 64 бит шина записи + 64 бит шина чтения. Также процессоры K8 отказались от использования FSB (Front Side Bus). Вместо этого контроллер памяти интегрирован на ядро процессора, что существенно снижает задержки при обращении к ОЗУ.
Athlon 64 (Newcastle/K8). Первые модели на основе этого ядра вышли в апреле 2004 года. По сути, Newcastle представляет собой всё тот же Clawhammer, подвергнувшийся небольшой модернизации. В данном ядре появилась функция NX-бит, которая служит для предотвращения выполнения произвольного кода при возникновении ошибок, связанных с переполнением буфера (переполнение буфера очень часто используется вирусами, чтобы проникнуть на компьютер жертвы). Кеш память у всех процессоров, основанных на этом ядре, составляет 512 Кб. Напряжение питания ядра равно 1,5 В, число транзисторов, входящих в ядро, равно 68,5 млн, площадь кристалла ядра равна 144 мм². Процессоры на данном ядре выпускались как для Socket 754 (Athlon 64 2600+, 2800+, 3000+, 3200+, 3400+) и имели одноканальный контроллер памяти DDR400, все остальные процессоры выпускались для Socket 939, имели двухканальный контроллер памяти DDR400 и отличались от аналогичных процессоров для Socket 754 заниженной на 200 МГц тактовой частотой. При работе на максимальной частоте потребляет 57,4 А и рассеивает 89,0 Вт тепла.
Мультиядерная технология AMD. Широкое распространение мультиядерных технологий - это следующий этап развития компьютерных технологий, который преобразит существующую вычислительную среду.
Основные выгоды, получаемые от внедрения мультиядерных технологий:
В настоящее время на рынок поставляются двуядерные процессоры AMD Opteron, AMD Athlon64 X2 и двуядерные процессоры с низким энергопотреблением - Highly Efficient и Energy Efficient.
Выпускаемые двуядерные процессоры AMD Opteron, имеют два раздельных кэша второго уровня объемом по 1 Мбайту, интегрированный контроллер памяти DDR SDRAM и три шины HyperTransport (рис. 1.7). Новые процессоры с парой ядер выпускаются в Socket 940 исполнении (или в исполнении Socket 939 для одноядерных систем), совместимы с имеющимися системными платами, блоками питания и совпадают по тепловому конверту с однопроцессорными решениями (95 Вт), обеспечивая непревзойденную производительность на Ватт потребляемой мощности. Архитектура Direct Connect устраняет задержки и узкие места при передаче данных, используя прямое соединение процессоров и процессорных ядер между собой. Кроме того, двуядерные процессоры полностью совместимы со всеми приложениями архитектуры x86 и AMD64, демонстрируя высочайшую [16] при работе в многозадачном и многопоточном режиме.
Ведущие производители, такие как Cray, Egenera, HP, IBM, Sun, Supermicro и другие, поддерживают в своих решениях двуядерные процессоры AMD Opteron, обеспечивая заказчикам гибкость решений для задач любого уровня.
В 2007 году AMD начал выпускать на рынок процессоры с четырьмя ядрами, что позволит предложить клиентам новый уровень производительности для многопоточных и многозадачных систем.