|
У AMD же подход полностью противоположный. Компания считает, что сейчас не время и не место для революций, а плавность эволюционного развития x86 со времен 8086 до Pentium 4 и Athlon XP, не должна прерываться. Исходя из этой идеи и формулировалась сама идеология создания процессора AMD следующего поколения - K8. Необходимость 64-битности уже тогда прослеживалась абсолютно явно, да и Intel уже во всеуслышание заявил о разработке IA-64, так что вопрос - быть 64-бит или не быть, на повестке дня для компании просто не стоял. Однако, запас мощности, объем ресурсов, выражающихся как в финансовом выражении, так и в прочих, например, во влиянии - доле рынка, у AMD и Intel просто несравним, так что последовать по пути своего конкурента и предложить Intel абсолютно новую идеологию компания попросту не могла. Не поняли бы и не пошли бы. Оставалось сделать то, что у AMD обычно получалось лучше всего: взять старый добрый x86, и сделать его лучше, чем у Intel. Так и родилась на свет архитектура x86-64. Естественно, в первую очередь здесь идет речь о расширении восьми регистров общего назначения до 64-бит. Чего, впрочем, безумно мало для сегодняшних процессоров, даже если мы учтем наличие еще восьми регистров для операций с плавающей точкой и восьми регистров для SIMD операций. В любом случае это не сравнить с количеством регистров у процессоров действительно нового поколения - у того же Itanium, во многом и обеспечивающим им новый уровень производительности. Мы привыкли во многом оценивать процессоры по разнице в объеме кэша - а ведь разница в количестве регистров не менее определяюща, поскольку они выполняют роль своеобразного пред-кэша. Впрочем, опять же, никто здесь не является гениальным провидцем, и разработчиком микропроцессоров эти вещи известны давным-давно. Так же, как и некоторые из путей их решения. Скажем, у того же Pentium 4 действительно 8 32-бит регистров общего назначения. Те, что видит исполняемый код. За их же фоном в глубинах процессора скрываются еще 120 (!), которыми тот может жонглировать как угодно, в нужный момент представляя любой из них под видом одного из базовой восьмерки. Путь интересный, но неочевидный. Для того же компилятора. На который, впрочем, как мы помним, Pentium 4 совершенно и не полагается. AMD предпочла более очевидный для компилятора путь, вдвое увеличив количество видимых ему регистров - в 64-бит режиме K8 имеет шестнадцать 64-бит регистров общего назначения. Количество регистров для операций с плавающей точкой осталось прежним - восемь, поскольку не на x87 при операциях с плавающей точкой здесь возлагается основная надежда, а на SIMD операции, потому и количество SIMD регистров также удвоено - тоже до шестнадцати. Дальше все зависит лишь от того режима, в котором работает процессор. Есть режим обратной совместимости, где K8 работает как обычный 32-бит процессор, не используя ничего из своих новых возможностей, кроме тех, что относятся к простому увеличению производительности процессора. Есть так называемый "long mode", который, в свою очередь, состоит из двух подрежимов: "64-bit mode" и "compatibility mode". Обязательно требуется наличие 64-бит OS, способной, впрочем, исполнять оба вида кода, как 64-бит, так и обычный x86. Естественно, что в последнем случае программа не будет иметь доступа к памяти выше 4 Гбайт, полному объему регистров, дополнительным регистрам, и т.д. В общем, в свое время Windows 95 примерно так же относилась к 16-бит и 32-бит программам. Впрочем, по умолчанию регистры установлены в 32-бит режим, поскольку даже 64-бит программа не пользуется только 64-бит числами. Скорее, она даже не столько пользуется ими, сколько старыми добрыми 32-бит. Выделять под их хранение 64-бит регистры - напрасная трата ресурсов, так что по умолчанию - 32-бит. Если же программе потребовалась именно операция с 64-бит регистрами, она должна использовать специальный префикс при обращении к ним, длиной в один байт. Это довольно много, учитывая, что таких обращений в программе может быть достаточно много. Впрочем, AMD полагает, что вряд ли увеличение объема одного и того же кода при переходе с x86 на x86-64 составит более десяти процентов. Зато, с другой стороны, 32-бит программы во всех режимах обратной совместимости будут чувствовать себя просто как дома - они попросту не заметят, что исполняются на 64-бит процессоре, пользуясь всеми благами новых технологий, вроде встроенного в процессор северный моста чипсета, и т.д. А учитывая, что, как уже говорилось, 32-бит для подавляющего большинства всех необходимых программ для PC, рабочих станций, и Low-End серверов ближайшие несколько лет хватит, то здесь у Athlon 64 и Opteron перед Itanium несомненное преимущество - они не предлагают ненужных для этого рынка вещей за лишние деньги. Понадобятся 64-бит - всегда пожалуйста, нет - значит будем исполнять 32-бит в родном режиме, не занимаясь медленной эмуляцией. Весь вопрос в том и заключается - есть ли вообще надобность в подобных процессора: умеющих исполнять стандартный 32-бит код, но, в случае необходимости, пользоваться и преимуществами 64-бит вычислений и доступа к памяти выше 4 Гбайт: Некоторые уверены, что да, вроде создателя Unreal, Tim Sweeny. По его мнению, подобная платформа обеспечит возможность создания дешевых рабочих станций, с соотношением цена/производительность в разы большей, чем у систем на том же Itanium. К выходу Athlon 64 Epic собирается выпустить 64-бит версию Unreal, и вообще полон оптимизма по поводу перспектив подобного подхода. Причем, судя по словам разработчиков, одна только возможность доступа к увеличившемуся набору регистров (те самые дополнительные восемь и восемь) позволяет поднять скорость выполнения переписанного кода на десятки процентов. Добавим увеличившуюся производительность самого процессора за счет чисто технических новведений, при практически не увеличившейся стоимости (в отличие от Itanium), и получим отличный продукт для своей ниши. Первый представитель ядра K8 уже вышел - это Opteron, серверный процессор для одно-, двух-, и четырехпроцессорных конфигураций, с перспективой выхода на 8-процессорные платформы. С его облегченным вариантом, Athlon 64, к сожалению, пока полной ясности нет - процессор уже неоднократно откладывался, и сейчас ожидается где-то ближе к 2004 году. Виной тому технологические проблемы, или же уже упоминавшееся отсутствие 64-бит приложений для PC (включая операционную систему - Windows-64, поскольку Unix - это не OS для PC)? Скорее все же второе, и теперь AMD вынуждена ждать, пока Microsoft придет ей на помощь. Остается лишь надеяться, что это произойдет не слишком поздно. Впрочем, есть 64-бит процессоры, у которых вопрос поддержки на уровне ОС и софта просто-напросто не стоит. Это, естественно, ветераны серверных платформ - RISC процессоры IBM, Sun, и Compaq. Стр.1 - Введение Стр.2 - Intel 64 Стр.4 - IBM, Sun, и Compaq |
|