
- •1910-20-Е годы
- •1950-60-Е годы
- •1970-Е годы. I4004 — i8086
- •Intel 4004
- •Intel 8008
- •Intel 8080
- •Intel 8085
- •Intel 8086
- •Intel 8088
- •1980-Е годы. I80186 — i486
- •I80186, i80286
- •1990-Е годы. Pentium — Pentium III (p6)
- •2000-Е годы. Pentium 4 — Core i7. NetBurst - Core - Nehalem
- •Itanium
- •Itanium II
- •Ibm power5
- •Intel Teraflops Research Chip
- •Intel Core i7
- •Via Nano 3000
- •2010-Е годы.
- •Intel Core i3 и Core i5
- •Intel Core i7-980x Extreme Edition
- •Intel Xeon 7500 (Nehalem-ex)
- •Intel Itanium 9300
- •Intel Core второго поколения
- •36-Й рейтинг Top 500. Компьютер Tianhe-1a
Intel 8085
В том же 1976 году был выпущен i8085. Он имел мультиплексированную шину данных/адреса, выводы для приема и передачи последовательных данных, усовершенствованную систему прерываний, две дополнительные команды для работы с прерываниями и последовательными данными, тактовую частоту 3 МГц и одно напряжение питания +5В.
В 1976 году в продаже было уже около пятидесяти типов микропроцессоров.
Intel 8086
В 1978 г. был создан процессор Intel 8086 — следующий классический процессор после Intel 8080. Все процессоры персональных компьютеров в настоящее время имеют т. н. архитектуру x86. Любая программа, написанная для i8086, может быть исполнена ими.
Характеристики i8086:
разрядность шины данных — 16;
разрядность шины адреса — 20;
количество команд — 135;
количество транзисторов — 29000;
тактовая частота — 2-5 МГц;
корпус — DIP 40.
i8086 обеспечивает возможность адресации памяти объемом до 1 Мбайта, 65536 устройств ввода и 65536 устройств вывода.
Основная архитектурная особенность i8086 — наличие аппаратно-программных средств, поддерживающих построение многопроцессорных систем, обеспечивая синхронизацию работы процессоров, которые могут быть двух типов: независимые (центральные) и подчиненные (сопроцессоры). Независимый процессор выполняет собственный поток команд. Сопроцессор отслеживает поток команд центрального процессора, идентифицирует в этом потоке свои команды и выполняет их, расширяя таким образом набор команд центрального процессора.
Для совместной работы с i8086 был выпущен i8087 — математический сопроцессор — устройство, специализированное для обработки чисел с плавающей точкой (FPU, Floating Point Unit).
i8086 имеет два режима работы: минимальный и максимальный. Они отличаются способом формирования управляющих сигналов и соответственно возможностями реализуемых на его основе систем.
Intel 8086 имеет расширенный набор регистров, устройство шинного интерфейса (примененное впервые в микропроцессорной технике), встроенную схему регенерации, новый порядок обработки прерываний и расширенную систему адресации. Устройство шинного интерфейса (BIU, Bus Interface Unit) выполняет функции взаимодействия с внешней средой, окружением процессора: генерацию адресов, выдачу и прием данных. В составе BIU имеется очередь размером шесть байт. В то время как исполнительное устройство процессора обрабатывает данные, BIU получает с шины следующую команду и ставит ее в очередь.
Изменения в архитектуре в процессоре i8086, в первую очередь увеличение разрядности и сегментация памяти, повлияли на систему команд. Число команд увеличилось до 135. Максимальная длина команды увеличилась с трех байтов до шести.
Общий формат команды i8086 таков:
6 бит |
1 |
1 |
2 бита |
3 бита |
3 бита |
1 или 2 байта |
1 или 2 байта |
COP |
D |
W |
MOD |
REG |
R/M |
DISP8/16 |
DATA8/16 |
Общая направленность изменений такова:
так как исчез регистр HL, указатель данных, то пропали и команды, использующие его в этом качестве. Его эквивалентом считается регистр BX, но в общем случае схема его использования гораздо сложнее;
по этой же причине, а также в соответствии с общей тенденцией минимизации прямых скачков в программе (осуждение GOTO) удалена команда PCHL;
за редкостью использования удалены команды условных вызовов и возвратов.
Все изменения можно разделить на следующие виды: удаления, добавления, замены и расширения.
Удалены следующие команды:
условных вызовов подпрограммы и условных возвратов из подпрограммы;
прямой модификации содержимого указателя команд (PCHL);
сложения с удвоенной точностью;
все команды загрузки и размещения.
Добавлены команды:
умножения и деления (отдельные для знаковых и беззнаковых чисел);
преобразования байта в слово — CBW (ALAX), слова в двойное слово CWD (AXDX:AX);
пересылки строк;
ASCII-коррекции результатов сложения, вычитания, умножения и деления (четыре команды) (команда десятичной коррекции i8080 распалась на две: коррекции результатов сложения и вычитания);
сброса и установки флагов переноса (CLC, STC), направления (CLD, STD) (Прим. STC в i8080 есть);
сравнения строк (CMPS);
ввода и вывода с косвенно-регистровой адресацией;
загрузки AH флагами (LAHF) и размещения AH в регистре флагов (SAHF);
возврата из прерывания (IRET);
загрузки сегментных регистров (LDS, LES);
префикс захвата шины (LOCK);
префиксы повторения операций со строками (REP) безусловные (отсутствовали в 386 и 486) и условные (REPE/REPZ, REPNE/REPNZ);
префиксы замены сегмента;
загрузки строки (LODS);
размещения строки (STOS);
сканирования строки (SCAS);
пересылки строки (MOVS);
цикла пока ECX0 (LOOP);
изменения знака (NEG);
арифметических и логических сдвигов влево и вправо на один и произвольное число разрядов;
логического сравнения операндов (TEST);
ожидания (WAIT);
преобразования кодов (XLAT);
передачи команды сопроцессору (ESC).
Замены:
команды запрещения и разрешения прерываний DI и EI на команды сброса и установки флага прерываний (CLI, STI);
команды рестартов на команды программных прерываний (INT, INTO, INT3).
Расширения:
десятичная коррекция аккумулятора распалась на две команды: коррекции результата сложения (DAA) и вычитания (DAS);
вызовы подпрограммы стали четырех типов: внутрисегментные относительные и косвенные, межсегментные прямые и косвенные;
возвраты из подпрограммы четырех типов: внутрисегментные и межсегментные с увеличением и без увеличения SP;
условные переходы — по шестнадцати условиям, по условию равенства-неравенства нулю регистра CX (ECX);
безусловные переходы — внутрисегментные короткий, относительный длинный, относительный косвенный, межсегментные прямой и косвенный;
извлечение из стека и помещение в стек сегментных регистров, всех регистров (POPA, PUSHA), регистра флагов (POPF, PUSHF);
циклические сдвиги на произвольное число разрядов;
обмен между любыми регистрами;
в арифметических и логических операциях результат может быть размещен в любом регистре общего назначения, а не только в аккумуляторе.
В последующих процессорах x86 для полной программной совместимости из всех видов изменений в системе команд будут только добавления и расширения.
Intel 8086 также имел большой успех, поскольку опирался на Intel 8080 и в смысле архитектуры, и в смысле большой базы программного обеспечения, созданного для него к тому времени. Intel 8086 не полностью совместим с Intel 8080 программно, но каждый регистр Intel 8080 имеет соответствующий регистр в Intel 8086. Это дает возможность создания трансляторов программ 8080-8086 и перехода к новой модели программирования путем дополнения старой.
Основные классические решения по архитектуре процессоров в i8086:
отделение интерфейса от операционной части;
очередь команд (прообраз кэша команд);
сегментация памяти (модификация адресов);
порядок обработки прерываний;
средства синхронизации работы нескольких центральных процессоров, а также центрального процессора и сопроцессора.