Знание
истории x86, конечно же, не является
обязательным, к примеру для того, чтобы
оценить производительность того или
иного процессора и системы на его
основе. Однако если попытаться
отследить некие общие тенденции в
развитии всей платформы или составить
прогноз, тут уже без исторической
ретроспективы обойтись не то что
сложно, а попросту невозможно.
Новая
история x86: от 386 до Pentium
Конечно
же, серьезный "исторический" труд
по процессорам для платформы 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
исключительно шириной шины данных и
адреса - 32/32 и 16/24 бит соответственно.
Кстати, довольно широко распространено
заблуждение, что у i386DX также имелся
встроенный FPU. Нет, это не так - наличие
FPU суффикс DX стал означать позднее, в
"эпоху 486". К слову, впоследствии к
выпуску 386-х "подключилась" и AMD, но
ничего интересного конструктивно ее
процессоры собой не представляли, так
как были точными копиями Intel i386.
Cyrix
Cx486SLC/DLC
Процессоры
с частотами от 20 до 66 MHz, которые
фактически являлись полными аналогами
i386, но с увеличенной частотой и L1-кэшем
(1 KB). Они устанавливались в обычные
системные i386-платы и даже могли
применяться для апгрейда старых систем
(правда, только в тех случаях, когда
процессор не был впаян).
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". Кстати, это была первая
и, наверное, последняя попытка одного
из ведущих чипмейкеров заняться
выпуском на своих заводах не "сторонних",
а самостоятельно разработанных
сложных чипов. Видимо (судя по
отсутствию продолжения), попытку сочли
неудачной.
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 5x86 (M1SC)
"Наш
ответ Чемберлену" от AMD и Cyrix,
последовавший после выхода процессора
Intel Pentium. Фактически по основным
признакам это действительно были
процессоры пятого (т. е. "пентиумного")
поколения - они тоже были
суперскалярными и содержали механизм
предсказания ветвлений. Но
устанавливались они все в тот же 486-й
сокет, и поэтому могли быть
использованы для апгрейда старых
систем. Однако истинными конкурентами
Pentium эти процессоры все же стать не
смогли - даже при "запредельной"
для того времени частоте работы
процессорного ядра 133 MHz
производительность их FPU была ниже, чем
у меньших по частоте Intel Pentium.
NexGen
Nx586/586FP/686
Еще
один вариант чипа,
позиционировавшегося как "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
Этот
процессор был логическим развитием
своего предшественника - Intel Pentium. Ядро
было подвергнуто модификации -
добавлена поддержка новых инструкций,
ориентированных на работу с
мультимедиа-данными (MMX - MultiMedia eXtensions), и
увеличен объем кэша первого уровня - с 16
до 32 KB. Именно последнее
усовершенствование серьезнейшим
образом сказалось на повышении
производительности новог