Архитектура 64-разрядных и многоядерных процессоров
Общая характеристика 64-разрядных процессоров
Преимуществом 64-битных процессоров над своими 32-битными аналогами является расширение адресного пространства, увеличение разрядности и увеличение числа регистров общего назначения.
Расширенное 64-битное адресное пространство теоретически позволяет процессору работать с 16 экзабайт (264) физической памяти в рамках плоской модели организации. И хотя современные 64-разрядные процессоры на практике могут обеспечить доступ лишь к 1 терабайту (240) памяти, данный показатель всё равно уже значительно превосходит возможности 32-битной адресации. Увеличение объема доступной памяти в свою очередь, даёт возможность исключить или сильно сократить количество крайне медленных операций по подкачке данных с диска.
Увеличение числа и разрядности регистров позволит процессору одновременно работать с большими участками памяти, более эффективно работать с переменными и массивами, передавать аргументы функций в регистрах вместо использования для этой цели стека.
Стоит помнить, что для получения реального прироста производительности на 64-разрядном процессоре необходимо транспонировать программу с применением 64-битной версии компилятора, учитывая изменение модели данных (новые размерности типов). Запуск неадаптированного для 64-битной платформы приложения наоборот может, в зависимости от особенностей архитектуры используемого процессора, привести к существенным потерям в производительности.
Наибольший же прирост производительности от перехода на 64-разрядную платформу получат приложения, манипулирующие большими массивами данных — это системы управления баз данных, программы для работы с цифровым мультимедиа сообщениями, прикладные научные приложения. Прирост производительности для ПО данного класса может составить сотни процентов.
64-битное расширение классической 32-битной архитектуры IA32 было предложено в 2002 году компанией AMD (первоначально называлось x86-64, сейчас — AMD64) в процессорах семейства К8. Спустя некоторое время компанией Intel было предложено собственное обозначение — EM64T (Extended Memory 64-bit Technology). Но, независимо от названия, суть новой архитектуры одна и та же: разрядность основных внутренних регистров 64-битных процессоров удвоилась (с 32 до 64 бит), а 32-битные команды x86-кода получили 64-битные аналоги. Кроме того, за счет расширения разрядности шины адресов объем адресуемой процессором памяти существенно увеличился.
Процессор Athlon 64
Первыми серийными процессорами, основанными на 64-разрядной архитектуре, стали чипы семейства К8 фирмы AMD под названием Opteron, официально анонсированные 22 апреля 2003 года. AMD Opteron, ориентированные на применение в серверах и рабочих станциях, стали первыми 64-разрядными процессорами, способными выполнять не только инструкции AMD64, но и традиционные 32-разрядные инструкции x86, без использования каких бы то ни было специальных режимов эмуляции. Именно сохранение обратной совместимости, позволяющей говорить о возможности плавного перехода с 32- на 64-разрядное программное обеспечение, и является главным, но не единственным достоинством всех процессоров семейства K8. Через полгода были анонсированы процессоры Athlon 64/Athlon FX, ориентированные на применение в настольных ПК и ноутбуках.
Структура процессора Athlon 64 показана на рисунке 9.1.
Рисунок 9.1 – Структура процессора Athlon 64
По сравнению с предшествующей моделью Athlon XP, новые процессоры обладают целым рядом качественных нововведений. Процессоры семейства Athlon 64 поддерживают новый набор 64-разрядных инструкций AMD64, наряду с 32-разрядными инструкциями x86. Это позволяет Athlon 64/Athlon 64 FX выполнять и современные 32-битные, и новые 64-битные приложения.
Контроллер памяти DDR 400 интегрирован непосредственно в ядро процессора. До сих пор на настольных платформах и AMD, и Intel применяли схему, которая предусматривала размещение контроллера памяти в микросхеме северного моста чипсета. AMD перенесла контроллер на ядро, стараясь увеличить скорость обмена данными между процессором и системной памятью. Процессор Athlon 64 FX обладает двухканальным контроллером, в то время как "обычный" Athlon 64 - одноканальным. Увеличение кэш-памяти второго уровня до 1 Мб дает возможность Athlon 64 и Athlon 64 FX обеспечивать большую производительность в широком круге приложений, в том числе архиваторах, играх, офисных пакетах. Оригинальная структура кэш-памяти, примененная AMD впервые еще в процессорах Athlon/Duron, позволяет хранить лишь одну копию данных в кэшах первого и второго уровней, что увеличивает общий эффективный объем кэш-памяти до 1152 Кб.
Кэш инструкций 2-х канальный частично-ассоциативный, имеет размер 64КВ. Кэш данных, также 2-х канальный и тоже частично-ассоциативный.
Для связи с другими системными компонентами и, в первую очередь, с микросхемами набора системной логики, ответственными за работу с AGP и другими устройствами, применена универсальная шина HyperTransport. Контроллер HyperTransport интегрирован на ядро процессора. Шина HyperTransport (HT)— это двунаправленная последовательно/параллельная компьютерная шина, с высокой пропускной способностью и малыми задержками. Она работает на частотах от 200 МГц до 2,6 ГГц. HyperTransport поддерживает автоматическое определение ширины шины, от 2-х битных линий до 32-х битных. Шина HyperTransport основана на передаче пакетов. Пакеты HyperTransport передаются по шине последовательно. Увеличение пропускной способности влечёт за собой увеличение ширины шины. HyperTransport может использоваться для передачи служебных сообщений системы, для передачи прерываний, для конфигурирования устройств, подключенных к шине и для передачи данных. Схема ядра процессора Athlon 64 показана на рисунке 8.2.
Рисунок 9.2 – Схема процессорного ядра Athlon 64
Блок декодеров превращает команды х86 переменной длины в RISC-микрооперации фиксированной длины. Причем за один такт каждый декодер может обработать инструкцию длиной до 16 байт и отправить планировщику на исполнение микрооперации, которые затем упаковываются в группы по три.
В ядре установлены три 8-входовые станции резервирования (РезСт). Все вместе они образуют 24-входовый планировщик заданий. Исполнительные устройства ядра располагают тремя целочисленными блоками ALU, 3-мя блоками генерации адресов и загрузки AGU, тремя блоками с плавающей точкой. Длина целочисленных конвейеров имеет 12 ступеней, FPU конвейеров — 17. Все данные 64-битовые. Арифметические и логические операции, кроме умножения, выполняются за один такт. На 32-битное умножение расходуется три такта и пять тактов на 64-битное умножение.