Продолжение.
…Архитектура Р6 очень быстро пробила себе дорогу в массы и продавалась на ура, но, прежде чем узнать о ее судьбе, давайте посмотрим, как поживала в эпоху «Пентиумов» любимая в народе компания Advanced Micro Devices.
Пройдя через затяжную судебную войну AMD сумела отсудить права на интеловские архитектуры, но испытывать судьбу снова было слишком рискованно, и впервые за свою историю фирма начала разработку процессора для PC с чистого листа. Первый блин вышел не то чтобы комом, но немного подгорел, прожарившись лишний год после запланированного на 1995-й релиза — AMD была еще не столь опытна в процессорной кулинарии, и из-за некоторого количества проблем с дизайном продукт сорвал все дедпайны.
Однако сама затея была весьма амбициозна, что отражено в ее кодовом названии К5, пооисходящем от слова «криптонит». Как известно практически всем образованным людям, читающим комиксы (если чего — это стеб. Прим. ред.), это единственное вещество способное ослабить Супермена, под которым в данном случае подразумевалось ни что иное, как Intel.
И действительно, К5 обнаружил немало общего с новейшими продуктами противника, начиная с того, что он тоже был RISC-процессором с перекодировкой инструкций х86. У AMD имелась база необходимая для создания подобного решения, — весьма успешный и даже в свое время самый популярный на рынке RISC-процессор Аm29000. Его и взяли за основу К5, снабдив всеми суперменскими регалиями вроде внеочередного, спекулятивного исполнения инструкций и переименования регистров. Кое а чем К5 сумел обскакать даже Pentium Pro, у него было целых шесть конвейеров — пять для целочисленных расчетов и один для плавающей точки, в два раза больший обьем буфера предсказания переходов (но, как ни странно, AMD заявила для КБ меньшую точность предсказаний), а также расширенный до 16 Кбайт кэш инструкций (данным досталось 8 Кбайт). При этом ассоциативность кэша возросла до четырех, и по этому поводу надо сделать очередной мини-ликбез.
Как известно каждому школьнику, в кэш копируются наиболее ходовые данные из оперативной памяти. Но процессор не может размещать их от балды, записывая их из произвольной ячейки RAM в произвольную строку кэша, — это называется «полностью ассоциативный кэш» и имеет неоспоримое преимущество — возможность организовать данные оптимальным образом; но гораздо более очевидный недостаток — огромное время поиска, поэтому такая схема применяется только в кэшах очень небольшого объема. Противоположность ей — прямое отображение (direct mapping), когда одна ячейка памяти связана с единственной строкой, тоже используется нечасто Значительно более популярны промежуточные варианты с несколькими областями ассоциативности для каждой отдельной ячейки RAM. При двойной ассоциативности (2-way set associative cache) данные одной ячейки могут находиться в двух разных строках кэша, при четырехкратной, как у К5 — в четырех. И чем больше кэш. тем больше приходится областей ассоциативности.
Но вернемся к К5. Технологическое превосходство над обычным Pentium позволило AMD без зазрения совести вешать на К5 ярлыки с P-рейтингом, превышавшим настоящую частоту. Проблема была в том, что сами частоты выдались небольшими, достигнув лишь 133 МГц. Да, рейтинг при этом равнялся 166, но оправдывал себя не всегда, — Pentium намного превосходил К5 в вычислениях с плавающей точкой благодаря мощному конвейеризированному FPU, которым К5 не обладал. Кроме того, существовали некоторые проблемы с совместимостью — К5, хотя устанавливался на «мамки» под Intel, не был настоящим клоном Pentium. И хотя все это были цветочки по сравнению с теми трудностями, что испытывал аналогичный процессор Cyrix 6×86 (см. врезку), широкой популярности К5 не заслужил, выезжая лишь за счет доступной цены.
Смирившись с отсутствием у К5 перспектив, AMD немедленно сделала второй заход, но на доводку до ума К5 денег тратить не стали и поступили проще. В то время, помимо самой AMD, возглавлявшей оппозицию, и Cyrix существовала еще одна компания, кусавшая Intel за пятки — NexGen. Последняя начала свою историю с попытки поживиться на рынке 80386-х процессоров, но побрезговала реверс-инжинирингом, и в результате в муках родилось чудовище из восьми чипов вместо одного. Надо было ей пойти по стопам Cyrix, ведь Intel в го время не грабил только ленивый.
Следующая попытка оказалась более зрелой. Чип Nx586, выпущенный задолго до аналогичных изделий AMD и Cyrix, соревновался с Pentium и побеждал. Но самонадеянность опять сгубила хорошее начинание, для Nx586 требовались свои сокет и чипсет без следа исчезнувшие в море разьемов и чипсетов под «четверки» и «пни». Даже основной спонсор проекта — Compaq — никогда широко не использовал изделия NexGen. Тут ее и склевала AMD вместе с почти готовой разработкой Nx686. Осталось только добавить процессору поддержку Socket 7 MMX и переименовать его в К6.
Но и в исходном варианте дизайн чипа был могуч. Следуя общей тенденции, заданной самой NexGen в Nx586, К6 перекодировал громоздкие инструкции набора х86 в легковесные микрооперации, и делал это быстрее, чем Pentium Pro и PII за счет четырех декодеров против трех у них. Весь процессор был архитектурно «шире», чем продукты компании Intel: пять целочисленных конвейеров (плюс один, добавленный AMD для поддержки ММХ), увеличенный буфер условных переходов (в шестнадцать раз (!) больше, чем у интеловских решений) и 64 Кбайт кэша первого уровни с двумя областями ассоциативности. Солидный обьем кэша L1 был продиктован ограничениями частоты устаревшей шины Socket 7, равной 66 МГц. Про внеочередное, спекулятивное выполнение инструкции и переименование регистров я уже не говорю. Единственное, что опять было сделано на «троечку», — это FPU, все еще без конвейеризации.
К6, подобно предшественнику, мог получить свой Pentium-рейтинг, но оказалось, что при одинаковой частоте он идет ноздря в ноздрю с Pentium Pro, несмотря на все ограничения, накладываемые узкой шиной памяти и кэшем L2 на материнской плате, хоть и не догоняет Pentium II, так что нужда в рейтинге отпала. Тем более, что за частоты AMD могла не краснеть, — они достигли 233, а после перехода производства с 0.35 на 0.25 мкм — 266 МГц. Камень при этом выдался крупным — 8.8 миллионов транзисторов. В ценовой политике AMD осталась верна себе, и Кб стоил существенно дешевле, чем аналоги от Intel
Уже через год после выхода базовых моделей К6 архитектуру подновили. Массовое распространение трехмерных игр сделало вычисления с плавающей точкой актуальными как никогда, и в помощь слабому FPU К6 выдали набор SIMD-инструкций 3DNow!, аналогичный будущему SSE от Intel. Кроме того, AMD вместе с дружественными производителями материнских плат удалось вдохнуть новую жизнь в платформу Socket 7, обеспечив массовую поддержку шины 100 МГц и разьема AGP. Почти все новые К6-2 пользовались этой возможностью, агрессивно соперничая с «обрезками» (Celeron А), о которых ниже.
Чем же занималась Intel, глядя, как конкуренты бьют ее основной продукт на поле ее же разъемов и материнских плат? Pentium уже, очевидно, одряхлел, и лишь его мощный FPU, подкрепленный набором ММХ, позволял временами держать противников на расстоянии. Pentium Pro был всем хорош, но, благодаря сложности производства и неизбежно высоким ценам, весьма далек от народа. Однако вектор дальнейшего развития архитектуры х86 уже был им задан: переход к внутреннему RISC-устройству, усиленный параллелизм вычислений, дальнейшее разбухание кэша L2 и логики, обслуживающей конвейер. Так что именно от семейства Pentium Pro повели родословную будущие процессоры, начиная с ближайшего преемника, на которого Intel потратила полтора года и количество денег достойное киноблокбастера, Pentium II.
Чтобы получить этот чип, Pentium Pro избавили от главной особенности обеспечившей ему успех и одновременно наглухо закрывшей дорогу в массы, а именно выселили с теплого места на подложке интегрироваиный кэш L2, а вселили — на специальную плату, куда вместо при вычного coкетa на отдельном месте распаивался и сам процессор. В конструкцию ко всему прочему входил и штатный радиатор, а позже — кулер, прикрытый пластиковым кожухом. Таким образом, процессор из хрупкой керамической плитки с пугающим количеством ножек, превратился в простой и понятый «кирпич», вроде картриджа для игровой приставки. Смена упаковки имела и другой, не менее важный, смысл: Intel запатентовала новый разъем Slot 1, закрыв его для конкурентов, которым остался на съедение Socket 7.
Разумеется, эта простота не далась даром, внешний кэш хоть и сохранил отдельную шину, но работал на половинной частоте по сравнению с ядром CPU. Этот шаг назад Intel отчасти компенсировала щедрым обьемом L2 в 512 Кбайт и еще несколькими мелкими бонусами: удвоенным кэшем первого уровня (16 Кбайт для инструкций и 16 Кбайт для данных с четырехкратной ассоциативностью) и, как ни странно, улучшенной производительностью в 16-битных приложениях. Спрашивается, зачем это потребовалось, если первый 32-битный камень компания выпустила еще двенадцать лет назад? А вы посмотрите вокруг — все новые процессоры исключительно 64-битные, но много ли существует софта под 64 бита? То-то же.
Переход от 16 к 32 битам происходит не менее трудно. Пережитки 16-битного кода сохранились еще в Windows 95, и лишь Windows NT современной версии была полностью 32-битной ОС, не говоря уже о прикладном софте. Кроме того, в Pentium II увеличились буферы записи — промежуточные хранилища для данных, пересылаемых из кэша в память, оставляющие кэш доступным для чтения во время их записи в RAM. И, наконец, появился уже показавший себя во всей красе блок ММХ.
Вот и все метаморфозы, которые претерпел Pentium, меняя приставку «Pro» на римские цифры. Первое время даже не пришлось изобретать новые чипсеты для материнских плат, что окончательно подтверждает сходство старых топовых камней с мейнстримовыми.
Из-за уполовинивания скорости кэша многие критики оценили долгожданный процессор как акт деградации по сравнению с предыдущим поколением. Но на самом деле Intel променяла интегрированный кэш L2 не только на уменьшение процента брака, но и на повышенные частоты. При том, что техпроцесс остался в рамках 0.35 мкм, а количество транзисторов увеличилось до 7.5 миллионов, Pentum II удивил публику, появившись сразу в версиях не только 233 и 266 МГц, но и все 300 МГц, хотя последний был чисто демонстрационным вариантом, редким и страшно дорогим.
В 1997 году Pentium II 300 продавался за 1970 баксов. Чтобы полностью представить себе, что это означало в те времена, примите во внимание тогдашнюю покупательную способность доллара.
Остальные две модели не шокировали ценой, но тоже были не всем по карману, особенно на фоне AMD Кб и Cyrix 6х86МХ (тот же 6×86 с инструкциями ММХ и их расширением ЕМMl, никогда широко не востребованным), не сильно отстававших в скорости. Сдвиг произошел только вместе с переходом производства на 0.25-микрометровую технологию, — Pentium II в короткое время покорил частоту в 450 МГц и сбросил удавку устаревшей 66-мегагерцевой шины, перейдя на FSB 100 МГц. Два других важных перехода тоже пришлись на эпоху Pentium II — от памяти EDO к SDRAM и от PCI в качестве слота для графических адаптеров к AGP.
Продолжение следует…
Неслабоумие и отвага
Одиозная компания Cyrix после долгих лет паразитирования на Intel решила наконец выйти в открытый бой и выставила против Pentium своего поединщика. Как и в случае c К5 от AMD, камень 6×86 на бумаге выглядел впечатляюще: два конвейера по семь стадий (на две больше, чем у AMD) со внеочередным и спекулятивным исполнением инструкций, переименование регистров и улучшенный блок предсказания ветвлений. Легко заметить, что старый добрый Pentium в этом отношении тогда обошли уже решительно все. Подобно К5, чип Cyrix имел кэш с четырехкратной ассоциативностью, и даже больше: 6×86 — редкий процессор с кзшем нулевого уровня объемом 256 байт, причем полностью ассоциативным. Но одна особенность отделила 6×86 как от AMD К5, так и от Pentium: Cyrix 6×86 остался верен набору инструкций х86, по старинке воплощая его в железе. Возможно, отчасти по этой причине полной совместимости с «пнем» инженерам Cyrix добиться не удалось, — специфические для него инструкции прошли мимо, так что на всякий случай 6×86 по умолчанию не отвечал на инструкцию CPUID и прикидывался «четверкой». В то время многие программы были заточены под Pentium, и 6×86 немало пострадал от неполной совместимости. Кроме того, ряд материнских плат отказывался принимать этот процессор, либо он, и без того горячий, разогревался до неприличия, находясь в них. И ни одна многопроцессорная плата не могла использовать камни Cyrix в парах или четверках.
Проблемы совместимости были тем более досадны, что 6×86 показывал весьма неплохую производительность, чем заслужил высокие Р-рейтинги — до 200 у топовой модели при реальной частоте в 150 МГц. Но покупателя такого камня поджидал очередной подвох: этот проц работал с FSB 75 МГц против стандартных 66 МГц, чему не все материнские платы и карты расширения были рады.
Наконец, самое худшее с Cyrix 6×86 происходило при серьезной нагрузке целочисленными вычислениями. Немногие программы того времени использовали FPU, так что при проектировании его сделали «на сдачу», не позаботившись о конвейеризации. В результате в тех редких задачах, где нагружалось это слабое место процессора, производительность сдувалась до уровня Pentium равной частоты. Единственным неоспоримым достоинством Cyrix 6×86 была низкая цена, сделавшая его популярным в среде прижимистых энтузиастов, ясно понимавших, за что платят деньги.
Более удачной оказалась урезанная версия этого камня, выпущенная годом раньше в качестве апгрейда для 486-х машин. В отличие от Аш5х86, лишь выжимавшего последние соки из устаревшей архитектуры, 5×86 от Cyrix имел немало общего с более современными процессорами класса Pentium и даже Pentium Pro. Проектировщики умудрились так ловко избавить архитектуру 6×86 от «излишеств», что, потеряв половину транзисторов, она сохранила 80% производительности. Топовый камушек с частотой 133 МГц мог легко поспорить в скорости с доброй половиной моделей Pentium.