Классификация процессоров Intel 80х86

Как известно из предыдущего раздела, фирмой Intel было выпущено много различных версий процессоров, программно-совместимых с процессорами Intel 8086 и Intel 8088. Для упорядочивания их множества введем три понятия.

q     Семейство (family). К различным семействам относятся версии процессоров, которые имеют существенные отличия в программировании. В маркировке этих процессоров между цифрами 80 и 86 обычно вставляется еще одна цифра, соответствующая номеру семейства. Так, к различным семействам относятся 8086, 80186, 80286 и т.д.

Кратко рассмотрим программные особенности семейств:

0)  К этому семейству относились только процессоры 8086 и 8088. Они еще не имели цифры семейства в названии и представляли собой 16-разрядный процессор с рабочей частотой около 5 МГц и адресным пространством 1 Мб. Именно на этих процессорах строились первые машины IBM-PC (PC-XT).

1)  Процессор 80186 выпускался недолго и практически не отличался от 8086 и 8088. Зачастую его даже не упоминают в литературе.

2)  В процессоре 80286 появился защищенный режим, позволявший одним программам (например, ОС) получить полный контроль над исполнением других программ. Обычный режим, позволявший исполняться старым программ, теперь стал называться реальным. Также была поднята тактовая частота и расширено адресное пространство: 16 Мб физической памяти и 1 Гб виртуальной.

3)  Процессор 80386 был первым 32-разрядным в среди перечисленных. Это значит, что большинство операций могли воспринимать 32-разрядные аргументы. Соответственно, изменились и особенности функционирования в защищенном режиме, а так же лимиты адресного пространства: 4 Гб физической памяти. Появился новый режим: виртуального 8086. Этот режим представляет собой комбинацию защищенного и реального режимов. Он позволяет исполняться программам реального режима в защищенном режиме процессора — эта возможность используется многозадачными ОС для параллельного исполнения как программ реального, так и защищенного режима. В этом процессоре также появилось страничное управление памятью (страничное преобразование адреса): возможность сопоставлять одним и тем же адресам, используемым программой, различные ячейки памяти. Это позволило оптимизировать работу с виртуальной памятью, а так же алгоритмы выделения/освобождения памяти.

4)  Программно процессоры 80486 практически идентичны 80386, однако аппаратно они имеют ряд существенных отличий: на кристалл процессора перенесен кэш памяти и математический сопроцессор. Кроме того, ядро CISC постепенно стало становится RISC (все команды стали выполняться процессором не «сразу», а делиться на отдельные — простые, но очень быстрые).

5)  Процессоры 80586, получившие так же названия Pentium, имели два конвейера команд, что позволило выполнять до двух команд за такт. Однако использование этой возможности требует определенным образом оптимизированного кода программы. Другими особенностями стали средства для работы нескольких процессоров параллельно.

6)  С этого поколения нумерация процессоров стала теряться, они стали получать буквенные названия. Но, тем не менее, понятие «семейство» осталось, его номер можно получить, выполнив команду CPUID. Процессоры шестого и более поздних поколений представляют собой весьма сложные устройства и отличаются, как правило, аппаратными конфигурациями: размерами первичных КЭШей, оптимизацией выполнения команд, расширением системы команд (MMX, MMX2 и другие), аппаратными возможностями отладки программ и т.д.

7)  Авторам неизвестно, какой номер семейства имеет процессор Merced. В отличие от предыдущих поколений, этот процессор является 64-битным.

q     Модель (model). В пределах одного семейства процессоры могут различаться номером модели. Вероятно, понятие модели присутствовало еще в 8086/8088, но тогда это еще не было существенным. В основном, разница между моделями появилась в 80386 — модели еще не были пронумерованы и отличались буквами после номера: так 80386SX и 80386DX отличаются только внешней шиной данных и адреса. В более поздних процессорах разница между моделями становилась более существенной, но, в основном, эти отличия более интересны многозадачным ОС, чем прикладным программам. Так 80686 6-й модели 5-й степпинг (см ниже) имеет встроенный программно доступный контроллер прерываний[2], а 80686 8-й модели 3-й степпинг его не имеет.

q     Степпинг (step). Это еще одно различие, вероятно, отражающее лишь особенности реализации, нежели программные или интерфейсные отличия.

Несмотря на сходство целых трех параметров, процессоры совпадающего семейства, модели и степпинга могут, тем не менее, отличаться. Автору приходилось сталкиваться с процессорами семейства 6, модель 6, степпинг 5 как с контроллером APIC, так и без него.

Процессоры других производителей, так или иначе, соответствуют особенностям Intel-процессоров. Для точной идентификации в некоторых моделях процессоров 80486 и всех более поздних появилась команда CPUID, позволяющая определить как семейство, модель и степпинг, так и возможности, присущие конкретному процессору. По результатам этой команды так же возможно узнать производителя процессора.


1 Здесь мы не будем касаться более ранних процессоров, таких как 4004, 8008, 8080, 8085, а так же их версии от других фирм (Z80 от фирмы Zilog) – начнем с первого 16-и разрядного процессора.

2 Advanced Peripheral Interrupt Controller (APIC) – усовершенствованный контроллер прерываний. К сожалению, авторам не удалось найти какой-либо информации о его возможностях.

Оставить комментарий

Вы должны авторизоваться для отправки комментария.