Автомат (греческое automatos - самодействующий) - устройство (машина, аппарат, прибор), позволяющее осуществлять производственный процесс без непосредственного участия человека и лишь под его контролем.
Автоматизация - применение технических средств, математических методов и систем управления, освобождающих человека полностью или частично от непосредственного участия в процессах получения, преобразования, передачи и использования энергии, материалов и информации.
Внедрение автоматизированных систем дает большой положительный эффект: повышает экономическую эффективность использования оборудования и военной техники, обеспечивает более оперативное и обоснованное принятие решения командирами и начальниками, обеспечивает заметное сокращение сроков выполнения определенных работ, улучшает условия труда, позволяет на более высоком качественном уровне решать стоящие задачи.
Первые приборы, созданные человеком, естественно не были автоматизированными. Начало развития приборостроения связано с именем великого ученого М.В.Ломоносова (1711-1765). Он вместе с академиком Г.В.Рихманом впервые в мире построил электрический измерительный прибор со шкалой для доказательства, что "электричество взвешено быть может".
Автоматический регулятор, принцип которого лежит в основе всех современных регуляторов (принцип обратной связи), был разработан и испытан в 1765г. И.И.Ползуновым.
В 1918г. М.А.Бонч-Бруевич изобрел основной элемент вычислительной машины - триггер.
Разработка и активное использование автоматизированных систем, обусловлено, в первую очередь, прогрессом микропроцессорной техники. Первые попытки применения цифровых устройств для автоматизации производственных процессов относятся к началу 60-х гг. 20-го века, когда были разработаны первые управляющие вычислительные машины (ЭВМ второго поколения на транзисторах, первое поколение ЭВМ было построено на электронных лампах - громоздко и ненадежно). Но настоящий прорыв в автоматизации производственных процессов начался с момента создания микропроцессора в 70-х годах (в ЭВМ третьего поколения элементная база - интегральные схемы), основные преимущества которых миниатюрные размеры и высокая надежность.
Микропроцессор - самостоятельное, или входящее в состав ЭВМ устройство, выполненное на одной или нескольких больших интегральных схемах (БИС), осуществляющее обработку информации и управляющее этим процессом. Обычно микропроцессор содержит арифметико-логическое устройство (АЛУ), блок управления и синхронизации, локальную память (сверхоперативное запоминающее устройство), регистры и другие блоки, необходимые для выполнения вычислит, процесса.
Микропроцессор реализует такие функции, как выборку в предписанной программой последовательности, декодирование и управление выполнением команд, а также выполнение операций тестирования и преобразование данных. Таким образом, он организует и отчасти осуществляет заданную в виде программы последовательность действий - процесс, откуда и название - процессор, микропроцессор.
Конечно, микропроцессор работает не сам по себе, а в составе вычислительного устройства, куда также входят запоминающее устройство для хранения программ и данных и органы управления периферийным оборудованием. Все это может быть размещено и обычно размещается на одной плате с печатными электрическими соединениями, образуя так называемый одноплатный микрокомпьютер. Однако наряду с одноплатными, существуют микрокомпьютеры, выполненные на нескольких печатных платах, а также однокристальные микрокомпьютеры в виде большой интегральной схемы, на которой размещены процессор, память и некоторые средства управления периферией.
Многоплатная реализация характеризуется наибольшей гибкостью: можно варьировать и расширять набор контроллеров, наращивать память, подключать вспомогательные процессоры. Однокристальный микрокомпьютер наименее гибок, но обладает такими преимуществами как компактность, надежность, низкая стоимость.
Для автоматизированного контроля технического состояния специальных изделий и их составных частей на различных этапах жизненного цикла: этапах разработки, исследования, производства и эксплуатации в 1976 году была создана и до настоящего времени эксплуатируется агрегатированная испытательная система (АИС) ТАКТ51 (автоматизированный контрольный тестер). Управляющим ядром системы является блок вычислителя цифрового (БВЦ) ТАКТ51.51.000, построенный на базе малой цифровой вычислительной машины. Все остальные блоки по отношению к БВЦ являются периферийными. Они управляются блоком вычислителя цифрового, построены по одному принципу и содержат блоки местного управления и исполнительную часть.
Основные принципы построения электронных вычислительных машин (ЭВМ), притом в весьма законченном виде, были высказаны еще в 1937 г. американским физиком болгарского происхождения Д.В. Атанасовым. Более того, он предпринял первую попытку спроектировать и построить электронный компьютер. Этот компьютер, названный позже "АВС", был практически закончен к 1942 г. Однако ввести его в эксплуатацию по разным причинам так и не удалось.
Первая ЭВМ заработала в 1945 г. Электронный интегратор и вычислитель (ЭНИАК) - так назвали первую ЭВМ ее создатели инженеры Маучли и Эккерт. Строилась машина при Пенсильванском университете (США) в обстановке глубокой секретности, и только после окончания войны в 1946 г. впервые состоялась публичная демонстрация ЭВМ.
В последующий период до 1955 г. происходило становление вычислительной техники. В это время определились основные принципы построения ЭВМ. Затем с периодичностью 5-7 лет происходил переход к ЭВМ принципиально новых типов, использующих более совершенную элементную базу, имеющих новую структуру, расширяющую их возможности и обеспечивающую большие удобства при работе с ними человека. В связи с этим появилось понятие поколение ЭВМ.
Для ЭВМ первого поколения (40-е - начало 50-х годов) характерны следующие признаки. Строились они на дискретных компонентах с использованием электровакуумных приборов, имели низкую надежность, в них применялись запоминающие устройства (ЗУ) на ультразвуковых линиях задержки и электронно-лучевых трубках. Ориентировались машины в основном на решение научно-технических задач, для которых характерны относительно небольшие объемы исходных данных и результатов решения.
В ЭВМ второго поколения (середина 50-х - 60-е годы) в качестве элементной базы применялись дискретные компоненты и полупроводниковые приборы (транзисторы и диоды), монтаж осуществлялся с использованием печатных плат, ЗУ выполнялись на тороидальных ферритовых сердечниках. Все это повысило быстродействие и надежность машин. В ЭВМ второго поколения обеспечивалась возможность обмена данными между ЭВМ и большим числом внешних устройств. ЭВМ стали успешно применяться и для решения экономических задач.
В ЭВМ третьего поколения (60-е годы) в качестве элементной базы используются интегральные микросхемы. Благодаря этому ЭВМ третьего поколения по сравнению с ЭВМ второго поколения имеют меньшие габаритные размеры и потребляемую мощность, большие быстродействие и надежность, широко применяются в самых разнообразных областях деятельности человека.
В ЭВМ четвертого поколения (70-е годы) в качестве элементной базы используются интегральные микросхемы высокой степени интеграции - большие интегральные схемы (БИС). С их помощью на одном кристалле можно создать устройства, содержащие тысячи и десятки тысяч транзисторов. Компактность узлов при использовании БИС позволяет строить ЭВМ с большим числом вычислительных устройств - процессоров (так называемые многопроцессорные вычислительные системы).
Трудно указать формальное отличие вычислительной системы (ВС) и ЭВМ. Вычислительную систему обычно отличает специализация, большая связь со средой, широкие вычислительные возможности. Так, очень часто в вычислительной системе используют не один процессор, а несколько, образуя тем самым многопроцессорную (мультипроцессорную) систему. Как правило, ВС используют для управления технологическим процессом в реальном масштабе времени, когда обработка информации должна производиться за время, не превышающее время течения самого процесса. От ВС в этом случае требуется много: большое быстродействие и высокий уровень надежности, чрезвычайная оперативность и "живучесть", т.е. способность выполнять возлагаемые на нее функции даже при выходе из строя каких-то элементов. Современные ЭВМ еще не обеспечивают выполнение этих требований, поэтому приходится создавать специализированные вычислительные системы.
К настоящему времени созданы и развиваются ЭВМ и вычислительные системы пятого поколения. Эти ЭВМ обладают высокой производительностью, компактностью и низкой стоимостью (эти характеристики улучшаются в каждом следующем поколении ЭВМ). Основная особенность ЭВМ пятого поколения состоит в их высокой интеллектуальности, обеспечивающей возможность общения человека с ЭВМ на естественном языке, способности ЭВМ к обучениюи т.д. Быстродействие ЭВМ пятого поколения достигает десятков и сотен миллиардов операций в секунду, они обладают памятью в сотни мегабайт и строятся на сверхбольших БИС, на кристалле которых размещаются миллионы транзисторов.
Как известно, процессор является основным вычислительным блоком компьютера, в наибольшей степени определяющим его мощь. Процессор является устройством, исполняющим программу - последовательность команд (инструкций), задуманную программистом и оформленную в виде модуля программного кода. Чтобы понять, что делает процессор, рассмотрим его в окружении системных компонентов IBM PC-совместимого компьютера. Этой компьютерной архитектурой, естественно, не ограничивается сфера применения процессоров.
Всем известный IBM PC-совместимый компьютер представляет собой реализацию так называемой фон-неймановской архитектуры вычислительных машин. Эта архитектура была представлена Джоном фон-Нейманом еще в 1945 году и имеет следующие основные признаки. Машина состоит из блока управления, арифметико-логического устройства (АЛУ), памяти и устройств ввода/вывода. В ней реализуется концепция хранимой программы: программы и данные хранятся в одной и той же памяти. Выполняемые действия определяются блоком управления и АЛУ, которые вместе являются основой центрального процессора. Центральный процессор выбирает и исполняет команды из памяти последовательно, адрес очередной команды задается "счетчиком адреса" в блоке управления. Этот принцип исполнения называется последовательной передачей управления. Данные, с которыми работает программа, могут включать переменные - именованные области памяти, в которых сохраняются значения с целью дальнейшего использования в программе. Фон-неймановская архитектура - не единственный вариант построения ЭВМ, есть и другие, которые не соответствуют указанным принципам (например, потоковые машины). Однако подавляющее большинство современных компьютеров основано именно на этих принципах, включая и сложные многопроцессорные комплексы, которые можно рассматривать как объединение фон-неймановских машин. Конечно же, за более чем полувековую историю ЭВМ классическая архитектура прошла длинный путь развития.
В общем смысле под архитектурой процессора понимается его программная модель, то есть программно-видимые свойства. Под микроархитектурой понимается внутренняя реализация этой программной модели. Для одной и той же архитектуры разными фирмами и в разных поколениях применяются существенно различные микроархитектурные реализации, при этом, естественно, стремятся к максимальному повышению производительности (скорости исполнения программ).
Сейчас существует множество архитектур процессоров, которые делятся на две глобальные категории - RISC и CISC.
RISC - Reduced (Restricted) Instruction Set Computer - процессоры (компьютеры) с сокращенной системой команд. Эти процессоры обычно имеют набор однородных регистров универсального назначения, причем их число может быть большим. Система команд отличается относительной простотой, коды инструкций имеют четкую структуру, как правило, с фиксированной длиной. В результате аппаратная реализация такой архитектуры позволяет с небольшими затратами декодировать и выполнять эти инструкции за минимальное (в пределе 1) число тактов синхронизации. Определенные преимущества дает и унификация регистров.
CISC - Complete Instruction Set Computer - процессоры (компьютеры) с полным набором инструкций, к которым относится и семейство х86. Состав и назначение их регистров существенно неоднородны, широкий набор команд усложняет декодирование инструкций, на что расходуются аппаратные ресурсы. Возрастает число тактов, необходимое для выполнения инструкций.
Процессоры х86 имеют самую сложную в мире систему команд. Хорошо ли это, вопрос спорный, но груз совместимости с программным обеспечением для IBM PC, имеющим уже 20-летнюю историю, не позволяет расставаться с этим "наследием тяжелого прошлого". В процессорах семейства х86, начиная с 486, применяется комбинированная архитектура - CISC-процессор имеет RISC-ядро.
Различают следующие способы организации вычислительного процесса:
один поток команд - один поток данных (Simple Instruction - Simple Data, SISD) - характерно для традиционной фон-неймановской архитектуры (иногда вместо Simple пишут Single);
один поток команд - множественный поток данных (Simple Instruction - Multiple Data, SIMD) - технология MMX;
множественный поток команд - один поток данных (Multiple Instruction - Simple Data, MISD);
множественный поток команд - множественный поток данных (Multiple Instruction - Multiple Data, MIMD).
Рассмотрим порядок исполнения инструкций обработки данных - выполнения арифметических или логических функций. Во многих случаях инструкция работает с парой операндов - операндом назначения dest (destination) и операндом-источником src (source). Традиционная схема действия инструкции: dest = F (dest, srс), где F - некоторая функция от двух переменных. Это означает, что при выполнении инструкции процессор извлекает из указанных в инструкции мест (регистр, память, константа в самой инструкции) пару двоичных чисел, и результат действия над ними записывает на место одного из них (dest). Для выполнения той же функции над следующей парой чисел требуется повторное исполнение инструкции, но уже с другой парой операндов.
Такой принцип исполнения естественен для базовой архитектуры процессоров х86. В процессоры Pentium, "под занавес" их развития, было введено расширение ММХ, направленное на ускорение обработки потоков и массивов данных. Ключевым в этом расширении стал принцип SIMD. Здесь вводятся новые упакованные форматы данных: в один регистр ММХ можно помещать не только один операнд (64-битное число), но и пару 32-битных, четверку 16-битных или восьмерку 8-битных чисел. Одна инструкция MMX выполняет однотипные действия сразу над всеми числами, упакованными в регистры ММХ, заданные операндной частью данной инструкции. Поначалу набор инструкций ММХ ограничивался целочисленной арифметикой и логикой, и он стал стандартом для всех современных процессоров х86. Позже появились расширения 3DNow! (от AMD) и SSE (от Intel) для чисел в формате с плавающей точкой, сильно различающиеся по набору инструкций.
Несколько слов о числах с плавающей точкой. Архитектура процессора 8086 позволяет выполнять арифметические функции (сложение, вычитание, умножение и деление) над целочисленными данными (знаковыми и беззнаковыми, двоичными и двоично-десятичными) разрядностью 8 или 16 бит. В процессорах 386+ можно обрабатывать и 32-разрядные числа. Для работы с числами в формате с плавающей точкой (представленными в виде мантиссы и порядка) предусмотрен математический сопроцессор.
Сопроцессор представляет собой набор 80-битных регистров и специализированное арифметическое устройство, которое кроме четырех арифметических действий способно вычислять значение квадратного корня, тригонометрических функций, логарифмов и степеней чисел. Сопроцессор может только перехватывать адресованные ему инструкции из потока команд, выполняемых центральным процессором. Все манипуляции с памятью выполняет центральный процессор. Сложные функции сопроцессора требуют довольно больших затрат времени, но во время их выполнения центральный процессор может продолжать выполнение инструкций, вплоть до момента появления следующей инструкции, адресованной сопроцессору. Однако эта эпизодическая параллельность вычислений не противоречит принципу последовательной передачи управления (самостоятельно сопроцессор передать управление не способен). При отсутствии сопроцессора его функции можно выполнять программно целочисленными средствами центрального процессора, но сопроцессор их выполняет в сотни и тысячи раз быстрее. Программная эмуляция сопроцессора может включаться прозрачно для прикладных программ, обращающихся к сопроцессору. Для этого используется механизм исключений.
Термин "микропроцессор" был впервые употреблен в 1972 г., хотя годом рождения этого прибора следует считать 1971 г., когда фирма Intel выпустила микропроцессор серии 4004 - "интегральное микропрограммируемое вычислительное устройство", представляющее собой однокристальный центральный процессор, имеющий в своем составе 4-разрядный параллельный сумматор, 16 4-х - разрядных регистров, накапливающий сумматор и стек. Микропроцессор 4004 был реализован на 2300 транзисторах и мог выполнять 45 различных команд. Последующие поколения микропроцессоров, представляющие собой 8-, 16- и 32-разрядные устройства, появились соответственно в 1972, 1974 и 1981гг.
При оценке параметров микропроцессора и выборе микропроцессорной серии наибольшую роль играет разрядность прибора, которая задает элементарный объем обрабатываемых данных. Чем больше разрядность, тем выше производительность и шире возможности адресации. В ранних приборах разрядность регистров, шин управления, а также информационных шин почти всегда была одинаковой. Сейчас такая структура встречается редко. Например, микропроцессор Motorola 6800 имеет 32-разрядную внутреннюю архитектуру, 16-разрядную шину данных и 24-разрядную адресную шину (адресует до 16 Мбайт оперативной памяти). Для удобства такую архитектуру называют 32/16/24.
В настоящее время стремятся к большей разрядности, например делают полную 32-разрядную архитектуру (32/32/32).
Если считать, что выпуск предыдущих микропроцессоров должен прекращаться при появлении кристаллов с более высокой разрядностью, то 4-разрядные производились бы всего 1 год, 8-разрядные - 5 лет, 16-разрядные - 5 лет (табл.1.1).
Таблица 1.1.
Разрядность
Модель
Количествотранзисторов, шт
Год выпуска
Торговая марка
4
4004
2200
1971
Intel
8
8008
2300
1972
Intel
8
8080
4800
1973
Intel
8
280
8400
1976
Zilog
8
8048
12400
1977
Intel
16
8086
29000
1978
Intel
16
68000
75000
1980
Motorola
16
80286
130000
1982
Intel
32
NR-9000
450000
1982
Hewlett-Packard
Однако следует оговориться: 4-разрядные микропроцессоры производятся и применяются до настоящего времени.
В начале развития микропроцессоры изготовлялись по р-МОП технологии, затем специалисты стали отдавать предпочтение комплементарной МОП-технологии (КМОП) (технологии, используемые при изготовлении процессоров, будут рассмотрены ниже в подразделе 3.1). Теперь применяется множество разнообразных видов технологии и технологических приемов при изготовлении микропроцессоров: n-МОП технология с обогащением и с обеднением, биполярная технология, технология И2Л и др. Например, за первые 20 лет развития микропроцессорной техники в США зарегистрированы 237 технологических нововведений, из них 67 революционных.
Проследим историю развития микропроцессоров на примере семейства процессоров х86.
Первый 16-разрядный процессор i8086 фирма Intel выпустила в 1978 году. Частота - 5 Мгц, производительность - 0,33 MIPS для инструкций с 16-битными операндами (позже появились процессоры 8 и 10 МГц). Технология 3 мкм, 29 000 транзисторов. Адресуемая память 1 Мбайт. Через год появился i8088 - тот же процессор, но с 8-разрядной шиной данных. С него началась история IBM PC, неразрывно связанная со всем дальнейшим развитием процессоров Intel, Массовое распространение и открытость архитектуры IBM PC привели к лавинообразным темпам появления нового программного обеспечения, разрабатываемого крупными, средними и мелкими фирмами, а также энтузиастами-одиночками. Технический прогресс тогда и сейчас был бы немыслим без развития процессоров, но, с учетом огромного объема уже существующего программного обеспечения для PC, уже тогда возник принцип обратной программной совместимости - старые программы должны работать на новых процессорах. Таким образом, все нововведения в архитектуре последующих процессоров должны были пристраиваться к существующему ядру.
Процессор i80286, знаменующий следующий этап архитектуры, появился только в 1982 году. Он уже имел 134000 транзисторов (технология 1,5 мкм) и адресовал до 16 Мбайт физической памяти. Его принципиальные новшества - защищенный режим и виртуальная память размером до 1 Гбайт - не нашли массового применения; процессор большей частью использовался как очень быстрый 8088.
Рождение 32-разрядных процессоров (архитектура IA-32 - Intel Architecture 32 bit) ознаменовалось в 1985 году моделью i80386 (275000 транзисторов, 1,5 мкм). Разрядность шины данных (как и внутренних регистров) достигла 32 бит, адресуемая физическая память - 4 Гбайт. Появились новые регистры, новые 32-битные операции, существенно доработан защищенный режим, были введены режим V86 и страничное управление памятью. Процессор нашел широкое применение в PC; на его благодатной почве стал разрастаться "самый большой вирус" - Microsoft Windows с приложениями. С этого времени стала заметна тенденция "положительной обратной связи": на появление нового процессора производители ПО реагируют выпуском новых привлекательных продуктов, последующим версиям которых становится тесно на новом процессоре. Появляется более производительный процессор, но после непродолжительного восторга и его ресурсы быстро признаются недостаточными, затем история повторяется. Этот "замкнутый круг", конечно, естественен, но есть обоснованное подозрение, что большие ресурсы развращают (или, по крайней мере, расслабляют) разработчика ПО, не принуждая его напрягаться в поисках более эффективных способов решения задачи. Примером эффективного программирования можно считать игрушки на Sinclair ZX-Spectrum, которые работают на минимальных ресурсах - 8-разрядном процессоре и 64 (128) Кбайт ОЗУ. С противоположными примерами большинство пользователей PC сталкиваются регулярно, но, имея процессор Celeron 533 и 64 Мбайт ОЗУ, на них не всегда обращают внимание.
История процессора 80386 повторила судьбу 8086/8088: первую модель с 32-разрядной шиной данных (впоследствии названной 386DX) сменил 386SX с 16-разрядной шиной. Он довольно легко вписывался в архитектуру PC AT, ранее базировавшуюся на процессоре 80286.
Процессор Intel486DX появился в 1989 году. Транзисторов - 1,2 млн, технология 1 мкм. От процессора 80386 существенно отличается размещением на кристалле первичного кэша и встроенного математического сопроцессора - FPU (предыдущие процессоры использовали внешние сопроцессоры х87). Кроме того, для повышения производительности в этом CISC-процессоре (как и в последующих) применено RISC-ядро. Далее появились его разновидности, отличающиеся наличием или отсутствием сопроцессора, применением внутреннего умножения частоты, политикой кэширования и другим. Тогда же Intel занялась энергосбережением, что отразилось и в линии 386 - появился процессор Intel386SL.
В 1993 году появились первые процессоры Pentium с частотой 60 и 66 МГц - 32-разрядные процессоры с 64-разрядной шиной данных. Транзисторов 3,1 млн, технология 0,8 мкм, питание 5 В. От 486 процессор Pentium принципиально отличается суперскалярной архитектурой - способностью за один такт выпускать с конвейеров до двух инструкций (что, конечно, не означает возможности прохождения инструкции через процессор за полтакта). Интерес к процессору со стороны производителей и покупателей PC сдерживался его очень высокой ценой. Кроме того, возник скандал с ошибкой в сопроцессоре. Хотя фирма Intel математически обосновала невысокую вероятность ее проявления (раз в несколько лет), она (фирма, а не ошибка) все-таки пошла на бесплатную замену уже проданных процессоров на новые, исправленные.
Процессоры Pentium с частотой 75, 90 и 100 МГц, появившиеся в 1994 году, представляли второе поколение процессоров Pentium. При почти том же числе транзисторов они выполнялись по технологии 0,6 мкм, что позволило снизить потребляемую мощность. От первого поколения отличались внутренним умножением частоты, поддержкой мультипроцессорных конфигураций и другим типом корпуса. Появились версии (75 МГц в миниатюрном корпусе) для мобильных применений (блокнотных PC). Процессоры Pentium второго поколения стали весьма популярными в PC. В 1995 году были выпущены процессоры на 120 и 133 МГц, выполненные уже по технологии 0,35 мкм (первые процессоры на 120 МГц делались по технологии 0,6 мкм). 1996-й называют годом Pentium - появились процессоры на 150, 166 и 200 МГц, и Pentium стал рядовым процессором в массовых PC.
Параллельно с Pentium развивался и процессор Pentium Pro, который отличался "динамическим исполнением", направленным на увеличение числа параллельно исполняемых инструкций. Кроме того, в его корпусе разместили вторичный кэш, работающий на частоте ядра, - для начала объемом 256 Кбайт. Однако на 16-разрядных приложениях, а также в среде Windows 95 он был ничуть не быстрее Pentium. Процессор содержит 5,5 млн транзисторов ядра и 15,5 млн транзисторов для вторичного кэша объемом 256 Кбайт. Первый процессор с частотой 150 МГц появился в начале 1995 года (технология 0,6 мкм), а уже в конце года были достигнуты частоты 166, 180 и 200 МГц (технология 0,35 мкм), а кэш увеличен до 512 Кбайт.
В начале 1997 года фирма Intel выпустила процессоры Pentium ММХ. Технология ММХ (MultiMedia Extensions, мультимедийные расширения) предполагает параллельную обработку группы операндов одной инструкцией. Технология ММХ призвана ускорить выполнение мультимедийных приложений, в частности операций с изображениями и обработки сигналов. Ее эффективность вызывает споры в среде разработчиков, поскольку выигрыш в самих операциях обработки компенсируется проигрышем на дополнительных операциях упаковки-распаковки. Кроме того, ограниченная разрядность ставит под сомнение применение ММХ в декодерах MPEG-2, в которых требуется обработка 80-битных операндов. Кроме ММХ, эти процессоры, по сравнению с обычным Pentium, имеют удвоенный объем первичного кэша и некоторые элементы архитектуры, позаимствованные у Pentium Pro, что повышает производительность Pentium ММХ на обычных приложениях. Процессоры Pentium ММХ имеют 4,5 млн. транзисторов и выполнены по технологии 0,35 мкм. Развитие линейки моделей Pentium ММХ сейчас остановилось. Последние достигнутые тактовые частоты - 166, 200 и 233 МГц. Для мобильных применений (блокнотных ПК) процессоры под кодовым названием Tillamook выпускались по технологии 0,25 мкм, тактовая частота достигла 266 МГц при уменьшенной потребляемой мощности.
В мае 1997 года появился процессор Pentium II. Он представляет собой слегка урезанный вариант ядра Pentium Pro с более высокой внутренней тактовой частотой, в которое ввели поддержку ММХ. Трудности размещения вторичного кэша и процессорного ядра в корпусе одной микросхемы преодолели нехитрым способом - кристалл с ядром (processor core) и набор кристаллов статической памяти и дополнительных схем, реализующих вторичный кэш, разместили на небольшой печатной плате - картридже. Первые процессоры имели частоту ядра 233, 266 и 300 МГц (технология 0,35 мкм), летом 1998 года была достигнута частота 450 МГц (технология 0,25 мкм), причем внешняя тактовая частота с 66 МГц повысилась до 100 МГц. Вторичный кэш этих процессоров работает на половине частоты ядра.
В 1999 году появились процессоры Pentium III - в них ввели новый блок 128-битных регистров ХММ и новые инструкции, названные SSE. Частота ядра подбирается к 1 ГГц, частота системной шины - 100 и 133 МГц. С конструктивами начались "колебания генеральной линии", и теперь снова предпочтение отдается процессорам со штырьковыми выводами (необходимость картриджей отпадает). На базе Pentium II появилось семейство "облегченных" процессоров Celeron, сначала без вторичного кэша, а потом и с интегрированным вторичным кэшем размером 128 Кбайт. Позже процессоры Celeron приобрели и расширение SSE. Для мощных компьютеров имеется семейство процессоров Хеоn, которое охватывает и Pentium II, и Pentium III. Для этих процессоров характерен больший объем вторичного кэша, поддержка более чем двух процессорных конфигураций и более крупный картридж. Есть процессоры Pentium II/III и для мобильных применений.
Конечно же, перечисленными моделями не исчерпывается весь мировой ассортимент микропроцессоров. Это только представители семейства процессоров, имеющих обобщенное название х86. Ряд фирм (например, AMD, Cyrix, IBM) выпускает процессоры, совместимые с перечисленными процессорами Intel и имеющие свои характерные особенности. Обычно они слегка отставали от изделий Intel, выпускаемых в то же время. Однако процессор К7 от AMD изменил ситуацию. Ряд фирм (DEC, Motorola, Texas Instruments, IBM) имеет разработки процессоров, существенно отличающиеся от семейства х86; есть другие классы процессоров и у Intel. Среди них присутствуют и гораздо более мощные процессоры, относящиеся как к RISC-, так и к CISC-архитектуре.
В настоящее время семейство х86 насчитывает 6 поколений процессоров у Intel и 7 - у AMD.
Первое поколение (процессоры 8086 и 8088 и математический сопроцессор 8087) задало архитектурную основу - набор неравноправных 16-разрядных регистров, сегментную систему адресации памяти в пределах 1 Мбайт с большим разнообразием режимов, систему команд, систему прерываний и некоторые другие черты. В процессорах применялась "малая" конвейеризация - пока одни узлы выполняли текущую инструкцию, блок предварительной выборки выбирал из памяти следующую. На выполнение каждой инструкции уходило в среднем по 12 тактов процессорного ядра.
Второе поколение (80286 с сопроцессором 80287) привнесло в семейство защищенный режим, позволяющий использовать виртуальную память размером до 1 Гбайт для каждой задачи, пользуясь адресуемой физической памятью в пределах 16 Мбайт. Защищенный режим является основой для построения многозадачных операционных систем (ОС), в которых система привилегий жестко регламентирует взаимоотношения задач с памятью, ОС и друг с другом. Защищенный режим 80286 не нашел массового применения - эти процессоры, в основном, использовались как "очень" быстрые 8086. Их производительность повысилась не только за счет роста тактовой частоты, но и за счет значительного усовершенствования конвейера. Здесь на выполнение инструкции уходило в среднем по 4,5 такта. Во втором поколении появились новые инструкции: системные (для обслуживания механизмов защищенного режима) и несколько прикладных (в том числе для блочного ввода/вывода). Наличие защищенного режима не отменяет возможности работы в реальном режиме 8086, и эта возможность сохраняется во всех последующих поколениях (дань совместимости с программным обеспечением, включая и MS DOS).
Третье поколение (386/387 с суффиксами DX и SX, определяющими разрядность внешней шины) ознаменовалось переходом к 32-разрядной архитектуре IA-32. Кроме расширения диапазона непосредственно представляемых величин (16 бит отображают целые числа в диапазоне 0-65535 или от -32767 до +32767, 32 бита - более чем 4 миллиарда) увеличился и объем адресуемой памяти (до 4 Гбайт реальной, 64 Тбайт виртуальной). Для этого почти все программно-доступные регистры были расширены и получили в названии приставку "Е" (ЕАХ, ЕВХ...). В систему команд ввели возможность переключения разрядности адресации и данных. Защищенный режим был несколько усовершенствован, но оставлена и обратная совместимость с 286. На таком процессоре стала "расцветать" система MS Windows - сначала оболочка, а потом и операционная система. В плане организации исполнения инструкций существенных изменений, повлекших за собой сокращение числа тактов на инструкцию, не произошло - те же средние 4,5 такта, но частота уже достигла 40 МГц.
Четвертое поколение (486, опять-таки DX и SX) в видимую архитектурную модель больших изменений не внесло, но зато принят ряд мер для повышения производительности. В этих процессорах значительно усложнен исполнительный конвейер - основные операции выполняет RISC-ядро, "задания" для которого готовят из входных CISC-инструкций х86. Этот конвейер стал способным выполнять инструкцию в среднем за два такта. Конечно, каждая инструкция проходит через весь конвейер процессора за гораздо большее количество тактов, но темп выполнения в потоке именно таков. Производительность конвейера процессора оторвалась от возможностей доставки инструкций и данных из оперативной памяти, и прямо в процессор ввели быстродействующий первичный кэш объемом 8-16 Кбайт. В этом же поколении отказались от внешнего сопроцессора: теперь он размещается либо на одном кристалле с центральным (называется FPU), либо его нет вообще. По сравнению с предыдущим поколением и сопроцессор стал работать значительно эффективнее. А тактовая частота в этом поколении достигла 133 МГц (у AMD, а у Intel - только 100).
Пятое поколение - процессор Pentium у Intel и К5 у AMD - привнесли суперскалярную архитектуру. Суперскалярность означает наличие более одного конвейера. У процессоров пятого поколения после блоков предварительной выборки и первой стадии декодирования инструкций имеется два конвейера, U-конвейер и V-конвейер. Каждый из этих конвейеров имеет ступени окончательного декодирования, исполнения инструкций и буфер записи результатов. U-конвейер "умеет" все, у V-конвейера возможности немного скромнее. Конвейеризирован и блок FPU. Процессор с такой архитектурой может одновременно "выпускать" до двух выполненных инструкций, но в среднем получается 1 такт на инструкцию. Не все инструкции могут выполняться парно, эффективность использования конвейеров (коэффициент их загрузки или простоя) зависит от программного кода - есть широкие возможности оптимизации. В процессорах применяется блок предсказания ветвлений (инструкций программы, выполняемых после очередного условного перехода или вызова), в обязанности которого входит не оставлять конвейеры без работы "на поворотах" алгоритмов. Для быстрого снабжения конвейеров инструкциями и данными из памяти шина данных процессоров имеет разрядность 64 бит, из-за чего поначалу их даже ошибочно называли 64-разрядными процессорами. На закате этого поколения появилось расширение ММХ, новизна которого заключается в принципе SIMD: одна инструкция выполняет действия сразу над несколькими (2, 4 или 8) комплектами операндов. В ММХ появился и новый тип арифметики - с насыщением (saturated): если результат операции не умещается в разрядной сетке, то вместо переполнения (антипереполнения) устанавливается максимально (минимально) возможное значение числа.
Шестое поколение процессоров Intel началось с Pentium Pro и продолжается по сей день в процессорах Pentium II, Pentium III, Celeron и Хеоn. Его лейтмотивом является динамическое исполнение, под которым понимается исполнение инструкций не в том порядке (out of order), как это предполагается программным кодом, а в том, как "удобно" процессору. Инструкции, поступающие на конвейер, разбиваются на простейшие микрооперации, которые далее выполняются суперскалярным процессорным ядром в порядке, удобном процессору. Ядро процессора содержит несколько конвейеров, к которым подключаются исполнительные устройства целочисленных вычислений, обращений к памяти, предсказания переходов и вычислений с плавающей точкой. Несколько различных исполнительных устройств могут объединяться на одном конвейере.
Результаты "беспорядочно" выполняемых микроопераций собираются в переупорядочивающем буфере и в корректном порядке записываются в память (и порты ввода/вывода). Чтобы можно было одновременно выполнять разные инструкции с одними и теми же программно-адресуемыми регистрами, внутри процессора выполняется аппаратное переименование регистров (их у процессора больше, чем доступных по программной модели). Конечно, при этом учитывается и связь по данным, которая сковывает "беспорядочные" параллельные исполнения, даже пользуясь дополнительными регистрами. В процессорах 6-го поколения реализовано исполнение по предположению: процессор пытается исполнить инструкцию, последующую (по его мнению) за переходом еще до самого перехода. В итоге всех этих ухищрений среднее число тактов на инструкцию у Pentium Pro сократилось до 0,5 такта. В систему команд были введены новые инструкции, позволяющие писать более эффективные коды (с точки зрения минимизации ветвлений).
Полтакта на инструкцию - звучит, конечно, странно. Но если вспомнить о 8-байтной шине данных, позволяющей за один такт загрузить "кусок" кода, содержащего несколько команд, и о нескольких исполнительных устройствах, одновременно приступающих к их выполнению, то вопросы рассеиваются. Правда, вопрос доставки инструкций и данных из памяти к ядру процессора становится острым, и один первичный кэш здесь не спасает. В то время как частоты ядра процессора (и первичного кэша) неуклонно растут по мере усовершенствования технологий изготовления микросхем (чем тоньше, тем быстрее), частота системной шины, по которой процессор обменивается данными с памятью, так быстро расти не может. Здесь уже сильно сказываются паразитные параметры проводников и разъемов, которые остаются относительно большими по размерам. Кроме того, и сама оперативная память не такая уж и быстрая.
Проблему доставки "сырья" для работы процессоров 6-го поколения фирма Intel стала решать, используя так называемую двойную независимую шину (DIB). Одна из шин процессора, "фасадная" (FSB - Front Side Bus), связывает его с системной платой, на которой находится и оперативная память. Другая шина связывает процессор со вторичным кэшем, который находится в одной упаковке с процессором (для пользователя вторичный кэш неотделим от процессора). Частота FSB долгое время оставалась в пределах 66 МГц, что обеспечивало пиковую пропускную способность 528 Мбайт/с. Лишь совсем недавно эта частота поднялась до 100 и даже 133 МГц. А вот тактовая частота второй шины пропорциональна частоте ядра - либо полная частота, либо ее половина. Пиковую пропускную способность этой шины можно оценить, умножив ее тактовую частоту на 8 - число байт данных на шине (у новых процессоров Pentium III разрядность этой шины уже 32 байта). Наличие двойной независимой шины у Intel является одним из атрибутов шестого поколения. Системная шина при этом имеет протокол, принципиально отличающийся от протокола шины процессоров Pentium.
Фирма AMD в своих процессорах шестого поколения (К6) реализовала "беспорядочное исполнение", но двойную независимую шину применять не стала. Вместо этого была увеличена тактовая частота той же шины, которой пользовался Pentium - весьма эффективной в однопроцессорных конфигурациях. Двойная шина появилась лишь в процессорах K6-III. Благодаря такому решению сокет-7 (Super7) пережил целых два поколения процессоров. По микроархитектуре (способу реализации "беспорядочного исполнения") процессоры К6 заметно отличаются от своих Intеl'овских собратьев.
Как пятое поколение по ходу развития было "сдобрено" расширением ММХ (целочисленное), так шестое поколение получило расширение 3DNow! (AMD) и SSE (Intel). Однако в отличие от единого ММХ, эти два расширения не эквивалентны. У них общая идея "потоковой" направленности и реализации SIMD для чисел с плавающей точкой. Поток в данном контексте подразумевает, что с его данными должны выполняться однотипные операции. Кроме того, данные, уже прошедшие обработку, в дальнейшем этим вычислительным процессом использоваться не будут и ими не следует засорять кэш. Теперь появились инструкции загрузки данных в кэш, а также записи в память, минуя кэш. Прежде такого явного управления кэшированием не было.
Седьмое поколение (по AMD) началось с процессора Athlon. Причисление его к новому поколению мотивировано развитием суперскалярности и суперконвейерности, которая теперь охватила и блок FPU (в прежних поколениях FPU если и конвейеризировали, то не распараллеливали).
Завершает линию процессоров IA-32 от фирмы Intel процессор Willamette (в начале 2000 года демонстрировался опытный образец с частотой ядра 1,5 ГГц). Его микроархитектура существенно отличается от привычной архитектуры Р6. Конвейер этого процессора имеет 20 ступеней, в то время как у Pentium III 12-ступенчатый целочисленный конвейер и 17-ступенчатый FPU. Длинный конвейер упрощает микрооперации каждой стадии, что позволяет повышать тактовую частоту. Однако при этом растет задержка прохождения инструкции, и, что особенно критично, растут потери времени при ошибках в предсказании ветвлений. Чтобы минимизировать вероятность этих ошибок, в процессоре существенно улучшены узлы, отвечающие за загрузку конвейеров, - блок предсказания переходов, буферы микроинструкций. Первичный кэш имеет объем 256 Кбайт, и в кэше применяется упорядочивание инструкций (чтобы инструкция, следующая за ветвлением, всегда оказывалась в кэше). Существенно повышена производительность исполнительных блоков целочисленных инструкций, но у стандартного FPU (не SIMD) производительность практически та же, что и у Pentium III (в пересчете на эквивалентную тактовую частоту). Для чисел с плавающей точкой основной упор сделан на инструкции SIMD. В процессоре появился набор инструкций SSE2: 76 новых инструкций обработки данных и управления кэшированием. Новые инструкции обработки работают с числами разных форматов, включая учетверенные слова (64 бит) и числа двойной точности с плавающей точкой (64 бит). Процессор имеет совершенно новую шину с тактовой частотой 100 МГц, но передающую до четырех 64-битных пакетов за такт (Quad Pumped) - производительность до 3,2 Гбайт/с. Эта шина является переходной к шине процессоров IA-64. Процессор устанавливается в Socket-462, естественно, не совместимый ни с каким из существующих сегодня сокетов или слотов. В 2001 году ожидается мобильный вариант Willamette - Northwood, а также серверный вариант - Foster.
Фирма Intel сейчас занимается 64-разрядной архитектурой - такая разрядность позволит считать целые числа с числом разрядов почти до 2ґ1019. Первый представитель 64-разрядных процессоров - Itanium, разрабатываемый под кодовым названием Merced. Его архитектура - IA-64 - обеспечивает совместимость с существующим программным обеспечением для используемой ныне архитектуры IA-32.
Микропроцессор Itanium использует 10-уровневый конвейер и может выполнить до шести инструкций за один такт. В новой архитектуре предусмотрено 128 регистров для вычислений с плавающей запятой и столько же для целых чисел, 64 регистра для предсказания переходов и 8 регистров ветвления. На кристалле расположены два блока вычислений с плавающей запятой, обеспечивающие производительность до 6 Гфлоп при операциях с одинарной точностью и до 3 Гфлоп - с повышенной точностью на частоте 1ГГц. Они существенно ускоряют и обработку графической ЗD-информации. Вся сверхоперативная память разделена на три уровня, два из которых интегрированы на самом кристалле. Кэш-память третьего уровня, выполненная на дискретных микросхемах SRAM общим объемом до 4 Мб, располагается в картридже микропроцессора.
В начале 2000 года фирма Transmeta заявила процессор Crusoe, который является аппаратно-программным комплексом. Этот комплекс работает нетрадиционным способом: инструкции х86 транслируются в длинные слова VLIW (Very Long Instruction Word) регулярной структуры длиной 64 или 128 бит, которые исполняются процессорным ядром. При этом оттранслированные инструкции хранятся в кэш-памяти и при многократном исполнении транслируются лишь единожды. Ядро процессора исполняет элементы кода в строгом порядке. С этим процессором уже могут работать ОС Windows 9x/NT/2000, Linux. Плавающее энергопотребление составляет от 10-20 мВт до 1-3 Вт, в зависимости от выполняемой работы. Процессор имеет наилучшее отношение производительности к потреблению энергии и предназначается для мобильных систем.
Семейство х86 фирмы Intel началось с 16-разрядного процессора 8086. Все следующие модели процессоров, в том числе 32-разрядные (386, 486, Pentium, Pentium Pro, Pentium II, Celeron) и с 64-разрядным расширением ММХ, включают в себя систему команд и программную модель предыдущих, обеспечивая совместимость с ранее написанным программным обеспечением.