Обзоры Обзоры 14.08.2001 в 21:00 comment

Новая история x86: от 386 до Pentium

author avatar
https://secure.gravatar.com/avatar/2f8d57cddfeb455ba418faa11ee01bb0?s=96&r=g&d=https://itc.ua/wp-content/uploads/2023/06/no-avatar.png *** https://secure.gravatar.com/avatar/2f8d57cddfeb455ba418faa11ee01bb0?s=96&r=g&d=https://itc.ua/wp-content/uploads/2023/06/no-avatar.png *** https://itc.ua/wp-content/themes/ITC_6.0/images/no-avatar.svg

ITC.UA

автор

Знание истории x86, конечно же, не является обязательным, к примеру для того, чтобы оценить производительность того или иного процессора и системы на его основе. Однако если попытаться отследить некие общие тенденции в развитии всей платформы или составить прогноз, тут уже без исторической ретроспективы обойтись не то что сложно, а попросту невозможно.

Конечно же, серьезный "исторический" труд по процессорам для платформы x86 следовало бы начать "сначала" — с классического i8086, которым оснащались первые IBM-совместимые ПК. Однако мы отнюдь не стремимся перещеголять Карамзина в плане охвата темы, поэтому начнем все-таки со времен менее отдаленных, а именно — с момента появления CPU серии 386. Это были первые процессоры для x86, пригодные для исполнения соответствующих современным стандартам многозадачных операционных систем.

Intel i386DX/SX, AMD Am386

Первые x86-процессоры, в которых появилась нормальная поддержка "защищенного" режима, необходимого многозадачным ОС. Кроме того, в i386 также впервые была реализована параллельная работа некоторых блоков. L1-кэш у CPU этого семейства отсутствовал, L2 опционально присутствовал у i386DX (до 128 KB, внешний). Частоты работы процессоров этой серии находились в диапазоне от 16 до 33 MHz. Блок вычислений с плавающей точкой реализовывался в виде отдельной микросхемы (Intel i387, а также его аналоги от Texas Instruments и Cyrix) и в процессор не входил. Отличались же i386DX и SX исключительно шириной шины данных — 24 и 16 бит соответственно. Кстати, довольно широко распространено заблуждение, что у i386DX также имелся встроенный FPU. Нет, это не так — наличие FPU суффикс DX стал означать позднее, в "эпоху 486". К слову, впоследствии к выпуску 386-х "подключилась" и AMD, но ничего интересного конструктивно ее процессоры собой не представляли, так как были точными копиями Intel i386.

Cyrix Cx486SLC/DLC

Процессоры с частотами от 20 до 66 MHz, которые фактически являлись полными аналогами i386, но с увеличенной частотой и L1-кэшем (1 KB). Они устанавливались в обычные системные i386-платы и даже могли применяться для апгрейда старых систем (правда, только в тех случаях, когда процессор не был впаян).

Курс Fullstack Web Development від Mate academy.
Стань універсальним розробником, який може створювати веб-рішення з нуля.
Дізнатись про курс

Intel i486DX/SX

Процессоры во многом революционные для своего времени — у них появился кэш первого уровня, интегрированный в чип (8 KB), максимальный размер L2-кэша увеличился до 512 KB. В i486DX был интегрирован блок вычислений с плавающей точкой (FPU — Floating Point Unit). Кроме того, i486 — первый процессор, ядро которого содержало пятиступенчатый конвейер. Таким образом, команда, прошедшая первую ступень конвейера, продолжая обрабатываться на второй, высвобождала первую для следующей инструкции. Также серия i486 (опять-таки впервые) поддерживала работу в многопроцессорном (SMP) режиме.

Intel i486DX2/SX2/DX4

Эти процессоры являлись, по сути, частично переработанными вариантами i486DX/SX — L1-кэш увеличился до 16 KB, и было введено понятие "коэффициент умножения". Да, не удивляйтесь, до этого момента у x86 CPU частота работы ядра всегда была равна частоте системной шины. У процессоров серий DX2/SX2 множитель был равен двум, а у DX4 — трем (внимание: именно трем, а не четырем, как гласит довольно распространенное заблуждение, основанное на цифре "4" в названии серии).

Cyrix Cx486S/DX, AMD Am486DX, UMC U486SX2/DX2 (U5S/U5D)

Все эти процессоры являлись функциональными аналогами ранее описанной серии Intel i486. Cyrix Cx486S/DX — клоны Intel i486SX/DX, разве что только размер L1-кэша у них "подкачал" — всего 2 KB у Cx486S и 8 KB у Cx486DX. AMD Am486DX — клон i486DX4, но, наоборот, более совершенный — его частота могла достигать 120 MHz (для i486DX4 предел составлял 100 MHz). Тайваньская UMC переняла у Intel даже маркировку, разве что только маленькую "i" в начале наименования процессора заменила на большую "U". Кстати, это была первая и, наверное, последняя попытка одного из ведущих чипмейкеров заняться выпуском на своих заводах не "сторонних", а самостоятельно разработанных сложных чипов. Видимо (судя по отсутствию продолжения), попытку сочли неудачной.

Курс Fullstack Web Development від Mate academy.
Стань універсальним розробником, який може створювати веб-рішення з нуля.
Дізнатись про курс

Intel Pentium

Наверное, один из самых революционных процессоров за всю историю платформы. Первый "суперскалярный" CPU, содержащий два независимых параллельно работающих конвейера. L1-кэш впервые был разделен на две части по 8 KB, отдельно для кода и данных. Кэш данных работал по усовершенствованной схеме с обратной записью (write back), что положительно сказалось на производительности процессора (справедливости ради стоит упомянуть, что "открыла" write back все же не Intel, а Cyrix). Также поддерживался L2-кэш размером до 1 MB (внешний, на плате).

Но одним из самых значительных нововведений был полностью обновленный блок вычислений с плавающей точкой (FPU). Фактически до этого на платформе x86 еще не было настолько мощного FPU, и лишь через многие годы после выхода Intel Pentium конкуренты смогли достичь его уровня производительности. Также в Intel Pentium впервые была реализована "альфа и омега современных x86 CPU" — встроенная таблица ветвлений. Конечно, таблица ветвлений Intel Pentium являлась лишь слабым подобием сложнейших блоков предсказания ветвлений современных CPU, но начало было положено.

AMD Am5x86, Cyrix 5×86 (M1SC)

"Наш ответ Чемберлену" от AMD и Cyrix, последовавший после выхода процессора Intel Pentium. Фактически по основным признакам это действительно были процессоры пятого (т. е. "пентиумного") поколения — они тоже были суперскалярными и содержали механизм предсказания ветвлений. Но устанавливались они все в тот же 486-й сокет, и поэтому могли быть использованы для апгрейда старых систем. Однако истинными конкурентами Pentium эти процессоры все же стать не смогли — даже при "запредельной" для того времени частоте работы процессорного ядра 133 MHz производительность их FPU была ниже, чем у меньших по частоте Intel Pentium.

NexGen Nx586/586FP/686

Новая история x86: от 386 до Pentium Еще один вариант чипа, позиционировавшегося как "Pentium killer", от ныне почти забытой компании NexGen. Именно в Nx586(FP) впервые был максимально точно "воспроизведен" Intel Pentium — кроме суперскалярности и блока предсказания ветвлений, в этом процессоре и архитектура L1-кэша полностью копировала процессор Intel (раздельный кэш для кода и данных, по 16 KB). Отличие процессора NexGen от Pentium состояло в том, что он производился в двух вариантах — с интегрированным FPU (Nx586FP) и без него. Однако пользователи не "проголосовали" за этот процессор, и его выпуск был быстро свернут. Основным фактором, повлиявшим на непопулярность Nx586, стало то, что для них требовалась специальная, не совместимая ни с какими другими CPU материнская плата.

А вот следующая разработка компании — Nx686 — нашим читателям, наверняка, хорошо известна, но… под другим именем. Дело в том, что после покупки NexGen компанией AMD ядро полностью готового к тому времени Nx686 было положено в основу процессора AMD-K6.

Intel Pentium Pro (P6)

Intel не стояла на месте и буквально через два года после выпуска Pentium анонсировала еще одну принципиально новую разработку — Pentium Pro. Новая процессорная шина, три независимых конвейера, оптимизация под 32-битовый код, от 256 KB до 1 MB L2-кэша, интегрированного в процессор, причем работающего на частоте ядра, усовершенствованный механизм предсказания ветвлений — по количеству нововведений новый процессор чуть ли не бил рекорды, ранее установленные Intel Pentium. Однако за такое "неземное совершенство" приходилось платить, причем в самом буквальном смысле слова — CPU получился чрезвычайно дорогим. Впрочем, учитывая его позиционирование, а предназначался он исключительно для мощных серверов и рабочих станций, затраты себя окупали вполне за счет невиданной ранее производительности.

Но основным в Pentium Pro являлось не быстродействие, и уж тем более не цена. Это был первый x86-процессор, который фактически… не был таковым! Машинные коды x86-ассемблера, поступающие в CPU, внутри декодировались в RISC-подобный микрокод, и уже именно его исполняло ядро процессора. В этом отношении инновационность Pentium Pro трудно переоценить. Дальнейшее развитие платформы x86 подтвердило правильность выбора, сделанного Intel: сейчас практически все высокопроизводительные x86-процессоры используют аналогичную внутреннюю архитектуру — CISC-команды "на входе" и RISC-подобный микрокод на внутреннем уровне.

Кроме того, ядро Pentium Pro (P6) легло в основу трех следующих процессоров Intel — Pentium II, Celeron, Pentium III. Таким образом, оно по праву носит звание самого долгоживущего на платформе x86 — последний процессор на основе ядра P6 был разработан через пять лет после выхода первого!

AMD-K5

Буква "K" в названии этого процессора означает "Krypton" — мифический материал, лишающий силы знаменитого Супермена. Если под Суперменом понимать Intel Pentium, то аналогия получается довольно прозрачной. Поскольку все больше и больше систем строилось на базе Pentium, компании был необходим CPU, который мог бы быть установлен в соответствующие материнские платы. K5 тоже полностью "копировал" архитектуру Pentium — кэш первого уровня размером 24 KB был разделен на две части — 16 KB под инструкции и 8 KB для данных. Однако первый "блин" вышел "комом" — AMD-K5 не смог по популярности превзойти основного конкурента. Причин было две: первая — традиционно для AMD слабый блок FPU, а вторая — сомнительное решение использовать для маркировки процессоров не реальную частоту, на которой они работали, а так называемый PR (Pentium Rating). Означать, по идее, это должно было следующее: "Наш процессор при частоте 90 MHz по производительности примерно соответствует Intel Pentium 120 MHz, поэтому мы называем его AMD-K5 PR120". На самом деле, конечно же, для вычисления PR использовались тесты, которые в выгодном свете демонстрировали именно особенности процессоров AMD (операции с целыми числами), что вызвало массу справедливых нареканий. Правда, по скорости в офисных приложениях AMD-K5 действительно оказывался, как минимум, не хуже Pentium, а стоил меньше, поэтому определенную долю рынка AMD "отвоевать" удалось.

Также K5 стал первым процессором "пользовательского" класса, в котором было применено решение, впервые реализованное в Intel Pentium Pro: скоростное RISC-подобное ядро с транслятором, преобразовывавшим сложные команды x86-кода в простой и быстро выполняющийся микрокод. И это, несомненно, является громадным достижением AMD: впервые архитектура, применявшаяся ранее только в дорогих high-end-процессорах, "пришла" на обычные десктопы.

Intel Pentium MMX

Новая история x86: от 386 до Pentium Этот процессор стал логическим развитием своего предшественника — Intel Pentium. Ядро было подвергнуто модификации — добавлена поддержка новых инструкций, ориентированных на работу с мультимедиа-данными (MMX — MultiMedia eXtensions), и увеличен объем кэша первого уровня — с 16 до 32 KB. Последнее усовершенствование серьезнейшим образом сказалось на повышении производительности нового CPU. Фактически именно увеличившийся объем L1-кэша позволял Pentium MMX существенно обгонять своего предшественника, причем даже в тех задачах, где поддержкой MMX на уровне кода, что называется, "и не пахло". Правда, была в новом процессоре и "ложка дегтя" — Pentium MMX требовал различного напряжения питания для цепей ввода/вывода и ядра, в связи с чем не мог устанавливаться в старые платы Socket 7, выпущенные до его появления (по крайней мере, штатным способом).

Cyrix 6×86(M1)/6x86MX/M-II

Cyrix 6×86 фактически являлся адаптированным для Pentium-платформы (Socket 7) вариантом 5×86 (M1SC), недаром неофициальное его название — M1. Впрочем, трудно судить, "что было раньше — яйцо или курица", быть может, наоборот, изначально был разработан как раз M1, а уже потом — M1SC. Но вот если 5×86 можно было называть "Pentium для 486", то M1 за счет практически полной идентичности этих двух процессоров получился "усовершенствованным 486 для Pentium-платформы" — L1-кэш (16 KB) так и остался общим, без разделения на области для кода и данных. Кроме того, некоторые модели процессоров Cyrix 6×86/6x86MX и M-II использовали нестандартные частоты FSB — 75 и 83 MHz, в результате чего могли работать отнюдь не на каждой материнской плате. Производительность этих CPU была "усугубленным вариантом AMD-K5" — превосходный блок целочисленных вычислений и еще более слабый FPU. Фактически они подходили исключительно для дешевых офисных машин. Не прибавил популярности всей линейке этих CPU и используемый в маркировке вместо реальной частоты PR-рейтинг (как у AMD-K5).

Cyrix 6x86MX являлся усовершенствованным вариантом 6×86 — была добавлена поддержка MMX-инструкций и увеличен до 64 KB объем кэша первого уровня (к слову, на тот момент это был самый большой объем L1 на x86). Cyrix M-II не отличался ничем от 6x86MX за исключением того, что поддерживал частоту FSB 100 MHz (так называемая платформа Super 7 — Socket 7 100 MHz FSB). Однако ни увеличение объема L1, ни поддержка высоких частот системной шины не спасли эти процессоры — они по-прежнему оставались самыми медленными из всех. Правда, и самыми дешевыми. Впоследствии, после покупки Cyrix компанией VIA Technologies, последняя продолжила выпуск Cyrix M-II, не меняя названия.

AMD-K6/K6-2/K6-III

Новая история x86: от 386 до PentiumКак мы уже писали выше, в основу AMD-K6 легло ядро, разработанное инженерами компании NexGen для процессора Nx686. Однако с момента окончания разработки Nx686 до выхода AMD-K6 прошло два года, и, естественно, кое-какому "осовремениванию" старое ядро было подвергнуто. Так, кэш первого уровня, у Nx686 имевший размер 48 KB (16 KB под код и 32 для данных), у AMD-K6 увеличили до 64 KB (32 + 32 соответственно). Кроме того, за счет изготовления CPU от AMD по более совершенному техпроцессу максимальная частота, у Nx686 равная 180 MHz, в случае AMD-K6 была увеличена до 300 MHz. K6 позиционировался компанией как конкурент Pentium II, однако слабая производительность при операциях с плавающей точкой позволяла ему всерьез конкурировать только с Pentium MMX. Как и у K5, ядро K6 было уже полностью "независимым" от старых x86-инструкций и исполняло RISC-подобные микрокоманды, в которые специальный транслятор преобразовывал стандартные машинные коды. Кроме того, K6 был первым процессором AMD, поддерживающим команду MMX и 100-мегагерцевую системную шину.

AMD K6-2 предлагал производителям ПО собственный набор команд, оптимизированный для еще более узкой области, нежели "универсально-мультимедийный" Intel MMX, а именно: для наиболее ресурсоемких расчетов, связанных с 3D-графикой. Даже в самом названии этого набора (3DNow!) отразилась область его применения. Однако мало обеспечить поддержку определенных команд процессором — нужно еще, чтобы их использовали разработчики ПО. Как это ни печально, но K6-2 не удалось переломить консерватизм программистов, и поддержка 3DNow! стала массово появляться в ПО лишь позже, с выходом AMD Athlon и Duron.

K6-III представлял собой дальнейшее развитие линии K6-2 — его, подобно Pentium II, оснастили кэшем второго уровня (256 KB), размещенным прямо в корпусе процессора и работающим на частоте CPU. Учитывая то, что на всех материнских платах для платформы Socket 7/Super 7 кэш присутствует "по умолчанию", этот процессор оказался по-своему уникальным, поскольку системы на его основе имели три уровня кэша — два собственно на кристалле, и еще один — на системной плате. Естественно, L2-кэш, работающий на частоте процессорного ядра, оказался хорошим подспорьем, и производительность K6-III по сравнению с K6-2 существенно возросла. Однако с самого начала было понятно, что сам по себе CPU "припозднился" — тягаться на равных с Intel Pentium II и Celeron с их высокоскоростными процессорными шинами нового поколения K6-III уже не мог, особенно в ресурсоемких приложениях и компьютерных играх.

Centaur/IDT WinChip/WinChip2

Новая история x86: от 386 до Pentium "Производительность? Кого она интересует в офисных приложениях?! Цена — вот основной критерий!" — так, наверное, рассуждали разработчики Centaur/IDT, когда проектировали свои процессоры для платформы Socket 7. В WinChip даже отсутствует блок предсказания ветвлений, несмотря на то что это CPU Pentium-класса. Зато процессоры получились очень простые, а степень нагрева и суммарная потребляемая мощность — минимальные.

Кроме того, WinChip, совместимый с набором инструкций MMX, мог устанавливаться даже в устаревшие платы, не поддерживающие двойное питание, необходимое другим процессорам "MMX-класса". В общем, продукты довольно интересные, и выйди чуть пораньше, наверное, они смогли бы составить достойную конкуренцию если не процессорам Intel, то, по крайней мере, AMD-K6 и Cyrix 6x86MX/M-II. Однако, увы, их выход пришелся как раз на период заката платформы Socket 7, и поэтому сколько-нибудь значительной популярности эти CPU не приобрели. Впрочем, WinChip еще было суждено "ожить" в новом качестве — процессорное ядро следующего поколения, разработанное командой Centaur, увидело свет. Правда, уже не под маркой IDT, а в виде VIA Cyrix III.

Rise mP6

Новая история x86: от 386 до Pentium Идея сделать "Socket 7 с производительностью Slot 1" витала в воздухе, и попыток было немало (те же AMD K6-2/K6-III). Rise Technology, пожалуй, приблизилась к этой цели ближе всех. У mP6 (P6 — явный намек на ядро шестого поколения от Intel, буква "m", видимо, означает "magic", так как разработчики Rise называли свое детище "magic processor") было два конвейера для операций с плавающей точкой, три (!) блока исполнения MMX-инструкций и способность исполнять три целочисленные инструкции за такт! Кроме того — чрезвычайно низкое энергопотребление: 1,5 Вт в режиме ожидания и 0,02 Вт в режиме остановки. Увы… Этот необычайно интересный процессор, последняя по времени выхода серьезная разработка для платформы Socket 7, был обречен — и не из-за каких-то своих отрицательных качеств, а из-за очевидного морального устаревания самой платформы. Насколько нам известно, массовые поставки Rise mP6 так и не были начаты, хотя компания была к ним полностью готова.

Подводя итоги

Мы сознательно не стали рассматривать в этом обзоре Intel Pentium II/III, Celeron, Pentium 4, AMD Athlon/Duron, VIA Cyrix III/C3, закончив его на CPU для платформы Socket 7. Конечно же, "новейшая история x86" не менее (а иногда и более) интересна — ведь все еще "бурлит", продолжают ломаться копья, идут оживленные дискуссии о правильности выбранных тем или иным производителем путей… Для рассмотренных нами процессоров практически все уже в прошлом. Но, с другой стороны, это и хорошо — можно оценить историю их развития спокойно, не оглядываясь на рыночную конъюнктуру. Кроме того, знание прошлого, как известно, помогает лучше понимать настоящее, а иногда даже заглянуть в ближайшее будущее.


Loading comments...

Сообщить об опечатке

Текст, который будет отправлен нашим редакторам: