Структура микропроцессоров ia 32 в каком процессоре впервые реализован режим пакетирования
Впервые о различных режимах работы процессоров IA-32 стали говорить с появлением процессора 80286. Это был первый представитель данного семейства процессоров, в котором были реализованы многозадачность и защищенная архитектура. Чтобы обеспечить совместимость с предыдущими представителями этого семейства (8086/88, 80186/188) в процессоре 80286 было реализовано два режима функционирования: режим эмуляции 8086 (режим реального адреса) и защищенный режим, в котором используются все возможности процессора. В последующих поколениях процессоров этого семейства защищенный режим становится основным режимом работы.
В новых поколениях процессоров Intel появился еще один режим работы - режим системного управления. Впервые он был реализован в процессорах 80386SL и i486SL. Начиная с расширенных моделей Intel486, этот режим стал обязательным элементом архитектуры IA-32. С его помощью прозрачно даже для операционной системы на уровне BIOS реализуются функции энергосбережения.
Защищенный режим (Protected Mode)
Основным режимом работы микропроцессора является защищенный режим. Ключевыми особенностями защищенного режима являются: виртуальное адресное пространство, защита и многозадачность.
В защищенном режиме программа оперирует адресами, которые могут относиться к физически отсутствующим ячейкам памяти, поэтому такое адресное пространство называется виртуальным. Размер виртуального адресного пространства программы может превышать емкость физической памяти и достигать 64Тбайт. Для адресации виртуального адресного пространства используется сегментированная модель, в которой адрес состоит из двух элементов: селектора сегмента и смещения внутри сегмента. С каждым сегментом связана особая структура, хранящая информацию о нем, - дескриптор. Кроме "виртуализации" памяти на уровне сегментов существует возможность "виртуализации" памяти при помощи страниц - страничная трансляция. Страничная трансляция предоставляет удобные средства для реализации в операционной системе функций подкачки, а кроме того в процессорах P6+ обеспечивает 36-битную физическую адресацию памяти (64Гбайт).
Встроенные средства переключения задач обеспечивают многозадачность в защищенном режиме. Среда задачи состоит из содержимого регистров МП и всего кода с данными в пространстве памяти. Микропроцессор способен быстро переключаться из одной среды выполнения в другую, имитируя параллельную работу нескольких задач. Для некоторых задач может эмулироваться управление памятью как у процессора 8086. Такое состояние задачи называется режимом виртуального 8086 (Virtual 8086 Mode). О пребывании задачи в таком состоянии сигнализирует бит VM в регистре флагов. При этом задачи виртуального МП 8086 изолированы и защищены, как от друг друга, так и от обычных задач защищенного режима.
Защита задач обеспечивается следующими средствами: контроль пределов сегментов, контроль типов сегментов, контроль привилегий, привилегированные инструкции и защита на уровне страниц. Контроль пределов и типов сегментов обеспечивает целостность сегментов кода и данных. Программа не имеет права обращаться к виртуальной памяти, выходящей за предел того или иного сегмента. Программа не имеет права обращаться к сегменту данных как к коду и наоборот. Архитектура защиты микропроцессора обеспечивает 4 иерархических уровня привилегий, что позволяет ограничить задаче доступ к отдельным сегментам в зависимости от ее текущих привилегий. Кроме того, текущий уровень привилегий задачи влияет на возможность выполнения тех или иных специфических команд (привилегированных инструкций). Функции страничной трансляции, впервые появившиеся в МП Intel386, обеспечивают дополнительные механизмы защиты на уровне страниц.
Реальный режим (Real Mode)
В реальном режиме микропроцессор работает как очень быстрый 8086 с возможностью использования 32-битных расширений. Механизм адресации, размеры памяти и обработка прерываний (с их последовательными ограничениями) МП Intel386 в реальном режиме полностью совпадают с аналогичными функциями МП 8086. В отличие от 8086 микропроцессоры 286+ в определенных ситуациях генерируют исключения, например, при превышении предела сегмента, который для всех сегментов в реальном режиме - 0FFFFh.
- область инициализации системы
- область таблицы прерываний
Ячейки от 00000h до 003FFH резервируются для векторов прерываний. Каждое из 256 возможных прерываний имеет зарезервированный 4-байтовый адрес перехода. Ячейки от FFFFFFF0H до FFFFFFFFH резервируются для инициализации системы.
Режим системного управления (System Management Mode)
При возврате из SMM (по инструкции RSM) процессор восстанавливает свой контекст из SMRAM. Обработчик может программно внести изменения в образ контекста процессора, тогда процессор перейдет не в то состояние, в котором произошло SMI. Если SMI было получено во время выполнения инструкции HLT, то дальнейшие действия при выходе из SMM определяются значением поля "Auto HALT Restart": процессор может снова вернуться к инструкции останова или перейти к выполнению следующей команды. Если SMI произошло при выполнении инструкции ввода-вывода, то в зависимости от значения поля "I/O Instruction Restart" возможен рестарт инструкции ввода вывода.
Эти особенности режима системного управления позволяют использовать его для реализации системы управления энергосбережением компьютера или функций безопасности и контроля доступа.
Переключение между режимами
После инициализации процессор находится в реальном режиме. Процессор может быть переведен в защищенный режим установкой бита 0 (Protect Enable) в регистре CR0:
Второй вариант "достался в наследство" от 16-разрядной архитектуры 80286, для совместимости с которой ее регистр MSW (Machine Status Word) отображается на младшее слово регистра CR0.
Вернуться в режим реального адреса процессор может по сигналу RESET или (в отличие от 80286) сбросив бит PE:
Для совместимости с 80286 инструкция LMSW бит PE не сбрасывает.
Аннотация: В данной части лекции рассматривается базовая структура микропроцессоров IA-32: программная модель, основные регистры и формат команд. Цель: познакомить учащихся с программной моделью IA-32, сформировать знания о некоторых архитектурных особенностях микропроцессоров IA-32.
Структура микропроцессоров IA-32
Базовую структуру микропроцессоров (МП) IA-32 можно рассмотреть на примере Intel-386 (рис. 3.1). В структуре Intel-386 можно выделить шесть основных блоков, работающих параллельно: блок интерфейса с магистралью, блок предварительной выборки команд, блок декодирования команд, исполнительный блок, блок управления сегментами и блок страничной трансляции.
Блок интерфейса с магистралью содержит драйвер адреса, схемы управления размером адреса и конвейером, мультиплексор , приемопередатчики и др. Этот блок обеспечивает интерфейс между МП и его окружением. Он принимает внутренние запросы для выборки команд от блока предварительной выборки команд и для обмена данными с исполнительным блоком и устанавливает приоритет этих запросов. Одновременно он генерирует или обрабатывает сигналы для исполнения текущего цикла магистрали. К ним относятся сигналы адреса, данных и управления для обращения к внешней памяти и устройствам ввода-вывода. При помощи схемы арбитра запросов блок управляет интерфейсом с внешними задатчиками магистрали и сопроцессорами. В МП Intel-486 (рис. 3.2) этот блок был дополнен схемой управления паритетом (выравниванием) и схемой управления пакетами. На основе последней был реализован специальный режим работы магистрали - режим пакетирования . В этом режиме при передаче 4 слов на магистрали выставляется только адрес первого, что позволяет существенно сократить время обмена данными с оперативной памятью или внешним кэшем.
Для того чтобы заранее получать команды или данные перед их фактическим использованием, существует функция опережающего просмотра программы, которую в Intel-386 выполняет блок предвыборки команд. Когда блок интерфейса с магистралью не занимает цикла магистрали для исполнения команды, блок предвыборки команд использует его для последовательной выборки из памяти байтов команд. Эти команды хранятся в 16-байтовой очереди команд в ожидании обработки блоком декодирования команд.
Блок декодирования команд преобразует байты команды из этой очереди в микрокод. Декодированные команды в ожидании обработки исполнительным блоком хранятся в очереди команд, работающей по принципу FIFO ( First In First Out). В Intel-386 эта очередь имеет размер 3 команды, а в Intel-486 - уже 5 команд, что позволяет этому МП при некоторых условиях выполнять по одной команде за цикл. Непосредственные данные и относительные адреса в коде операции также берутся из очереди команд.
Исполнительный блок выполняет команды из очереди команд и взаимодействует со всеми другими блоками, нужными для завершения выполнения команды. Для ускорения выполнения команд с обращением к памяти исполнительный блок приступает к их исполнению до завершения выполнения предыдущей команды. Так как команды с обращением к памяти встречаются очень часто, то благодаря такому перекрытию по времени производительность повышается. В МП Pentium исполнительный блок реализован в виде двух параллельных конвейеров (u и v), что позволяет ему выполнять до двух команд за такт. Это архитектурное решение названо суперскалярностью . Оно получило дальнейшее развитие в МП подсемейства P6 ( Pentium Pro , Pentium II, Pentium III), где исполнительный блок представлен уже тремя конвейерами. Особенностью конвейеров P6 является динамическое выполнение (предсказание ветвлений, спекулятивное выполнение, изменение последовательности команд).
В исполнительный блок встроены регистры общего назначения (РОН), которые используются для таких операций, как двоичное сложение или вычисление и модификация адресов. Исполнительный блок содержит восемь 32-разрядных РОНов, применяемых как для вычисления адресов, так и для операций с данными. Этот блок содержит также 64-разрядный регистр , необходимый для ускорения операций сдвига, циклического сдвига, умножения и деления.
Интеграция в МП i486DX блока вычислений с плавающей точкой (Floating Point Unit) резко повысила производительность вещественной арифметики . В МП Pentium MMX был добавлен набор команд, позволяющий использовать регистры блока FPU для параллельной обработки пакета целочисленных данных: SIMD - "одна инструкция - несколько операндов". В МП Pentium III эта технология была расширена, за счет добавленияем блока XMM , позволяющего параллельно обрабатывать пакет вещественных данных: SSE - потоковое расширение SIMD .
Блоки сегментации и страничной трансляции образуют устройство управления памятью .
Блок сегментации преобразует логические адреса в линейные по запросу исполнительного блока. Для ускорения этого преобразования текущие дескрипторы сегментов помещаются во встроенную кэш - память . Во время трансляции адресов блок управления сегментами проверяет, нет ли нарушения сегментации. Эти проверки выполняются отдельно от проверок нарушений статической сегментации, осуществляемых механизмом проверки защиты. Блок сегментации обеспечивает четыре уровня защиты (от 0 до 3) с целью изоляции и защиты друг от друга прикладных программ и операционной системы. Этот компонент также позволяет легко создавать перемещаемые программы и данные и обеспечивает их совместное использование. Полученный линейный адрес направляется в блок страничной трансляции.
Если механизм страничного преобразования включен, то для получения физических адресов по линейным используется блок страничной трансляции. Если же этот механизм выключен, то это означает, что, физический адрес совпадает с линейным, и трансляция не нужна. Для ускорения трансляции адресов в кэш - память дескрипторов страниц помещаются каталог недавно использованных страниц, а также информация о входах в таблицу страниц в буфере трансляции адресов. Затем блок страничной трансляции пересылает физические адреса в блок интерфейса с магистралью для выполнения цикла обращения к памяти или устройствам ввода-вывода. МП Intel-386 использует 32-разрядные регистры и шины данных для поддержки адресов и типов данных такой же разрядности.
Блок страничной трансляции позволяет прозрачно управлять пространством физических адресов независимо от управления сегментами. Каждый сегмент отображается в пространство линейных адресов, которое, в свою очередь , отображается в одну или несколько страниц объемом 4 Кб. Для реализации эффективной системы виртуальной памяти Intel-386 полностью поддерживает способность рестарта (повторного запуска) в случае отказа во всех страницах и сегментах.
В МП 80486 был интегрирован кэш первого уровня размером 8 Кб. В МП Pentium размер кэша первого уровня удвоен: 8 Кб - кэш команд и 8 Кб - кэш данных . В МП Pentium Pro , кроме того, на кристалле интегрирован кэш второго уровня.
Аннотация: В данной части лекции рассматривается базовая структура микропроцессоров IA-32: программная модель, основные регистры и формат команд. Цель: познакомить учащихся с программной моделью IA-32, сформировать знания о некоторых архитектурных особенностях микропроцессоров IA-32.
Структура микропроцессоров IA-32
Базовую структуру микропроцессоров (МП) IA-32 можно рассмотреть на примере Intel-386 (рис. 3.1). В структуре Intel-386 можно выделить шесть основных блоков, работающих параллельно: блок интерфейса с магистралью, блок предварительной выборки команд, блок декодирования команд, исполнительный блок, блок управления сегментами и блок страничной трансляции.
Блок интерфейса с магистралью содержит драйвер адреса, схемы управления размером адреса и конвейером, мультиплексор , приемопередатчики и др. Этот блок обеспечивает интерфейс между МП и его окружением. Он принимает внутренние запросы для выборки команд от блока предварительной выборки команд и для обмена данными с исполнительным блоком и устанавливает приоритет этих запросов. Одновременно он генерирует или обрабатывает сигналы для исполнения текущего цикла магистрали. К ним относятся сигналы адреса, данных и управления для обращения к внешней памяти и устройствам ввода-вывода. При помощи схемы арбитра запросов блок управляет интерфейсом с внешними задатчиками магистрали и сопроцессорами. В МП Intel-486 (рис. 3.2) этот блок был дополнен схемой управления паритетом (выравниванием) и схемой управления пакетами. На основе последней был реализован специальный режим работы магистрали - режим пакетирования . В этом режиме при передаче 4 слов на магистрали выставляется только адрес первого, что позволяет существенно сократить время обмена данными с оперативной памятью или внешним кэшем.
Для того чтобы заранее получать команды или данные перед их фактическим использованием, существует функция опережающего просмотра программы, которую в Intel-386 выполняет блок предвыборки команд. Когда блок интерфейса с магистралью не занимает цикла магистрали для исполнения команды, блок предвыборки команд использует его для последовательной выборки из памяти байтов команд. Эти команды хранятся в 16-байтовой очереди команд в ожидании обработки блоком декодирования команд.
Блок декодирования команд преобразует байты команды из этой очереди в микрокод. Декодированные команды в ожидании обработки исполнительным блоком хранятся в очереди команд, работающей по принципу FIFO ( First In First Out). В Intel-386 эта очередь имеет размер 3 команды, а в Intel-486 - уже 5 команд, что позволяет этому МП при некоторых условиях выполнять по одной команде за цикл. Непосредственные данные и относительные адреса в коде операции также берутся из очереди команд.
Исполнительный блок выполняет команды из очереди команд и взаимодействует со всеми другими блоками, нужными для завершения выполнения команды. Для ускорения выполнения команд с обращением к памяти исполнительный блок приступает к их исполнению до завершения выполнения предыдущей команды. Так как команды с обращением к памяти встречаются очень часто, то благодаря такому перекрытию по времени производительность повышается. В МП Pentium исполнительный блок реализован в виде двух параллельных конвейеров (u и v), что позволяет ему выполнять до двух команд за такт. Это архитектурное решение названо суперскалярностью . Оно получило дальнейшее развитие в МП подсемейства P6 ( Pentium Pro , Pentium II, Pentium III), где исполнительный блок представлен уже тремя конвейерами. Особенностью конвейеров P6 является динамическое выполнение (предсказание ветвлений, спекулятивное выполнение, изменение последовательности команд).
В исполнительный блок встроены регистры общего назначения (РОН), которые используются для таких операций, как двоичное сложение или вычисление и модификация адресов. Исполнительный блок содержит восемь 32-разрядных РОНов, применяемых как для вычисления адресов, так и для операций с данными. Этот блок содержит также 64-разрядный регистр , необходимый для ускорения операций сдвига, циклического сдвига, умножения и деления.
Интеграция в МП i486DX блока вычислений с плавающей точкой (Floating Point Unit) резко повысила производительность вещественной арифметики . В МП Pentium MMX был добавлен набор команд, позволяющий использовать регистры блока FPU для параллельной обработки пакета целочисленных данных: SIMD - "одна инструкция - несколько операндов". В МП Pentium III эта технология была расширена, за счет добавленияем блока XMM , позволяющего параллельно обрабатывать пакет вещественных данных: SSE - потоковое расширение SIMD .
Блоки сегментации и страничной трансляции образуют устройство управления памятью .
Блок сегментации преобразует логические адреса в линейные по запросу исполнительного блока. Для ускорения этого преобразования текущие дескрипторы сегментов помещаются во встроенную кэш - память . Во время трансляции адресов блок управления сегментами проверяет, нет ли нарушения сегментации. Эти проверки выполняются отдельно от проверок нарушений статической сегментации, осуществляемых механизмом проверки защиты. Блок сегментации обеспечивает четыре уровня защиты (от 0 до 3) с целью изоляции и защиты друг от друга прикладных программ и операционной системы. Этот компонент также позволяет легко создавать перемещаемые программы и данные и обеспечивает их совместное использование. Полученный линейный адрес направляется в блок страничной трансляции.
Если механизм страничного преобразования включен, то для получения физических адресов по линейным используется блок страничной трансляции. Если же этот механизм выключен, то это означает, что, физический адрес совпадает с линейным, и трансляция не нужна. Для ускорения трансляции адресов в кэш - память дескрипторов страниц помещаются каталог недавно использованных страниц, а также информация о входах в таблицу страниц в буфере трансляции адресов. Затем блок страничной трансляции пересылает физические адреса в блок интерфейса с магистралью для выполнения цикла обращения к памяти или устройствам ввода-вывода. МП Intel-386 использует 32-разрядные регистры и шины данных для поддержки адресов и типов данных такой же разрядности.
Блок страничной трансляции позволяет прозрачно управлять пространством физических адресов независимо от управления сегментами. Каждый сегмент отображается в пространство линейных адресов, которое, в свою очередь , отображается в одну или несколько страниц объемом 4 Кб. Для реализации эффективной системы виртуальной памяти Intel-386 полностью поддерживает способность рестарта (повторного запуска) в случае отказа во всех страницах и сегментах.
В МП 80486 был интегрирован кэш первого уровня размером 8 Кб. В МП Pentium размер кэша первого уровня удвоен: 8 Кб - кэш команд и 8 Кб - кэш данных . В МП Pentium Pro , кроме того, на кристалле интегрирован кэш второго уровня.
2. Структура микропроцессоров IA-32
В своей основе МП Intel386 состоит из шести блоков, работающих параллельно: блок интерфейса с магистралью, блок предварительной выборки команд, блок декодирования команд, исполнительный блок, блок управления сегментами и блок страничной трансляции.
Блок интерфейса с магистралью обеспечивает интерфейс между микропроцессором и его окружением. Он принимает внутренние запросы для выборки команд от блока предварительной выборки команд и для обмена данными с исполнительным блоком и устанавливает приоритет этих запросов. Одновременно он генерирует или обрабатывает сигналы для исполнения текущего цикла магистрали. К ним относятся сигналы адреса, данных и управления для обращения к внешней памяти и устройствам ввода-вывода. Также этот блок управляет интерфейсом с внешними задатчиками магистрали и сопроцессорами.
Для того чтобы заранее получать команды или данные перед их фактическим использованием, существует функция опережающего просмотра программы, которую в МП Intel386 выполняет блок предвыборки команд. Когда блок интерфейса с магистралью не занимает цикла магистрали для исполнения команды, блок предвыборки команд использует его для последовательной выборки из памяти байтов команд. Эти команды хранятся в 16-байтовой очереди команд в ожидании обработки блоком декодирования команд.
Блок декодирования команд преобразует байты команды из этой очереди в микрокод. Декодированные команды в ожидании обработки исполнительным блоком хранятся в очереди команд, работающей по принципу FIFO (first in first out). В МП Intel386 эта очередь имеет размер 3 команды, а в МП Intel486 - уже 5 команд, что позволяет ему при некоторых условиях выполнять по одной команде за цикл. Непосредственные данные и относительные адреса в коде операции также берутся из очереди команд.
Исполнительный блок выполняет команды из очереди команд и взаимодействует со всеми другими блоками, требуемыми для завершения выполнения команды. Для ускорения выполнения команд с обращением к памяти исполнительный блок приступает к их исполнению до завершения выполнения предыдущей команды. Так как команды с обращением к памяти встречаются очень часто, то благодаря такому перекрытию по времени производительность повышается. В микропроцессорах Pentium исполнительный блок реализован в виде двух параллельных конвейеров (u и v), что позволяет ему выполнять до двух команд за такт. Это архитектурное решение названо суперскалярностью. Оно получило дальнейшее развитие в процессорах подсемейства P6 (Pentium Pro, Pentium II, Pentium III), где исполнительный блок представлен уже тремя конвейерами. Особенностью конвейеров P6 является динамическое выполнение (предсказание ветвлений, изменение последовательности команд).
Регистры общего назначения (РОН) встроенного типа используют для таких операций, как двоичное сложение или вычисление и модификация адресов. Исполнительный блок содержит восемь 32-разрядных РОНов, применяемых как для вычисления адресов, так и для операций с данными. Этот блок содержит также 64-разрядный регистр, применяемый для ускорения операций сдвига, циклического сдвига, умножения и деления.
Интеграция в процессор i486DX блока вычислений с плавающей точкой (Floating Point Unit) резко повысила производительность вещественной арифметики. В процессорах Pentium MMX был добавлен набор команд, позволяющий использовать регистры блока FPU для параллельной обработки пакета целочисленных данных: SIMD - "одна инструкция - несколько операндов". В процессорах Pentium III эта технология была расширена, добавлением блока XMM, позволяющего параллельно обрабатывать пакет вещественных данных: SSE - потоковое расширение SIMD.
Блоки управления сегментами и страничной трансляции образуют устройство управления памятью.
Блок управления сегментами преобразует логические адреса в линейные по запросу исполнительного блока. Для ускорения этого преобразования текущие дескрипторы сегментов помещаются во встроенную кэш-память. Во время трансляции адресов блок управления сегментами проверяет, нет ли нарушения сегментации. Эти проверки выполняются отдельно от проверок нарушений статической сегментации, осуществляемых механизмом проверки защиты. Блок сегментации обеспечивает четыре уровня (от 0 до 3) защиты с целью изоляции и защиты друг от друга прикладных программ и операционной системы. Этот компонент также позволяет легко создавать перемещаемые программы и данные и обеспечивает их совместное использование. Полученный линейный адрес направляется в блок страничной трансляции.
Если механизм страничного преобразования включен, то для получения физических адресов по линейным используется блок страничной трансляции. Если же этот механизм выключен, то это означает, что физический адрес совпадает с линейным, и трансляция не нужна. Для ускорения трансляции адресов в кэш-память дескрипторов страниц помещаются каталог недавно использованных страниц, а также информация о входах в таблицу страниц в буфере трансляции адресов. Затем блок страничной трансляции пересылает физические адреса в блок интерфейса с магистралью для выполнения цикла обращения к памяти или устройствам ввода-вывода.
Блок страничной трансляции позволяет прозрачно управлять пространством физических адресов независимо от управления сегментами. Каждый сегмент отображается в пространство линейных адресов, которое в свою очередь отображается в одну или несколько страниц объемом 4Кбайт. Для реализации эффективной системы виртуальной памяти МП Intel386 полностью поддерживает способность рестарта (повторного запуска) в случае отказа во всех страницах и сегментах.
В МП Intel486 был интегрирован кэш первого уровня размером 8Кбайт. В процессорах Pentium размер кэша первого уровня удвоен: 8Кбайт - кэш команд и 8Кбайт - кэш данных. В процессорах Pentium Pro, кроме того, на кристалле интегрирован кэш второго уровня.
1. Развитие архитектуры IA-32
Архитектура микропроцессоров IA-32 представляет собой продукт нескольких независимых групп разработчиков, которые развивали эту архитектуру более 15 лет, добавляя новые возможности к первоначальному набору команд.
В 1980 году был анонсирован математический сопроцессор 8087, который добавил к архитектуре 8086 почти 60 команд вещественной арифметики. Разработчики 8087 отказались от расширенных накапливающих сумматоров для того, чтобы создать некий гибрид стеков и регистров - расширенную стековую архитектуру. Полный набор стековых команд дополнен ограниченным набором команд типа регистр-память.
Анонсированный в 1982 году микропроцессор 80286, еще дальше расширил архитектуру 8086. Была создана сложная модель распределения и защиты памяти, расширено адресное пространство до 16Мбайт, а также добавлено небольшое число дополнительных команд. Поскольку очень важно было обеспечить выполнение без изменений программ, разработанных для 8086, в 80286 был предусмотрен режим реальных адресов, позволяющий машине работать почти как 8086. В 1984 году компания IBM объявила об использовании этого процессора в своей новой серии персональных компьютеров IBM PC AT.
В 1987 году появился микропроцессор 80386, который расширил архитектуру 80286 до 32 бит. В дополнение к 32-битовой архитектуре с 32-битовыми регистрами и 32-битовым адресным пространством, в микропроцессоре 80386 появились новые режимы адресации и дополнительные операции. Все эти расширения превратили 80386 в машину, по идеологии близкую к машинам с регистрами общего назначения. В дополнение к механизмам сегментации памяти, в микропроцессор 80386 была добавлена также поддержка страничной организации памяти. В микропроцессоре 80386 улучшены встроенные средства многозадачности, появившиеся в архитектуре 80286. Переключение задач совершенно прозрачно для прикладных программ. Также как и 80286, микропроцессор 80386 имеет режим выполнения программ, написанных для 8086. Хотя в то время базовой операционной системой для этих микропроцессоров оставалась MS-DOS, 32-разрядная архитектура и страничная организация памяти послужили основой для переноса на эту платформу операционной системы UNIX. Следует отметить, что для процессора 80286 была создана операционная система XENIX (сильно урезанный вариант системы UNIX).
Что бы ни говорилось о неудобствах архитектуры IA-32, следует иметь в виду, что она преобладает в мире персональных компьютеров. Почти 80% установленных малых систем базируются именно на этой архитектуре. Споры относительно преимуществ CISC и RISC архитектур постепенно стихают, поскольку современные микропроцессоры стараются вобрать в себя наилучшие свойства обоих подходов.
Подсемейство процессоров Intel486 (i486SX, i486DX, i486DX2 и i486DX4), в котором сохранились система команд и методы адресации процессоров Intel386, уже имеет некоторые свойства RISC-микропроцессоров. Например, наиболее употребительные команды выполняются за один такт.
Процессоры i486SX и i486DX - это 32-битовые процессоры с внутренней кэш-памятью емкостью 8 Кбайт и 32-битовой шиной данных. Основное отличие между ними заключается в том, что в процессоре i486SX отсутствует интегрированный FPU (модуль вещественной арифметики). Поэтому он имеет меньшую цену и применяется в системах, для которых не очень важна производительность при обработке вещественных чисел. Для этих систем обычно возможно расширение с помощью внешнего сопроцессора i487SX.
Все процессоры Intel до Intel486 включительно являются скалярными, то есть это процессоры с единственным конвейером.
На сегодняшний день наибольший интерес представляют процессоры пятого, шестого и седьмого поколений, границы между которыми несколько размыты.
- двухпотоковая суперскалярная организация, допускающая параллельное выполнение пары простых команд;
- наличие двух независимых 2-входовых множественно-ассоциативных кэшей для команд и для данных, обеспечивающих выборку данных для двух операций в каждом такте;
- динамическое прогнозирование переходов;
- конвейерная организация устройства плавающей точки с 8 ступенями;
- двоичная совместимость с существующими процессорами семейства IA-32.
Прежде всего, новая микроархитектура процессора Pentium базируется на идее суперскалярной обработки (правда с некоторыми ограничениями). Основные команды распределяются по двум независимым исполнительным устройствам (конвейерам U и V). Конвейер U может выполнять любые команды семейства IA-32, включая целочисленные команды и команды с плавающей точкой. Конвейер V предназначен для выполнения простых целочисленных команд и некоторых команд с плавающей точкой. Команды могут направляться в каждое из этих устройств одновременно, причем при выдаче устройством управления в одном такте пары команд более сложная команда поступает в конвейер U, а менее сложная - в конвейер V. Такая попарная выдача команд возможна только для ограниченного подмножества целочисленных команд. Команды арифметики с плавающей точкой не могут запускаться в паре с целочисленными командами. Одновременная выдача двух команд возможна только при отсутствии зависимостей по регистрам.
По интерфейсу шина процессора Pentium стала развитием шины процессора Intel486. Если шина Intel486 ориентирована на максимальную гибкость и простоту подключения устройств с различной разрядностью, то шина Pentium - на достижение максимальной производительности. Интерфейс рассчитан на применение внешнего вторичного кэша и внутреннего первичного с возможностью работы как со сквозной (write-through), так и с обратной (write-back) записью. Интерфейс позволяет объединять до 2 процессоров на одной шине для реализации SMP (симметричные мультипроцессорные системы) или FRC (системы с избыточным контролем функциональности).
Процессор Pentium MMX - последний из процессоров пятого поколения Pentium. Он дополнен расширением MMX, ориентированное на приложения мультимедиа, 2D/3D-графику и коммуникации, (основная идея заключается в одновременной обработке нескольких элементов данных за одну инструкцию), и ряд усовершенствований, повышающих производительность на обычных операциях.
К шестому поколению процессоров Intel относятся Pentium Pro, все разновидности процессоров Pentium II/III, а также Celeron. Процессоры этого поколения имеют обобщенное название P6. С точки зрения принципа организации вычислений, главное отличие этого поколения заключается в динамическом (спекулятивном) исполнении, при котором внутри процессора инструкции могут исполняться не в том порядке, который предполагает программный код. Это решение призвано повысить производительность процессора за счет улучшения архитектуры, а не повышения тактовой частоты.
Динамическое исполнение резко повышает частоту запросов процессорного ядра к шине за данными и инструкциями, поскольку ядро одновременно обрабатывает несколько инструкций. Для обхода узкого места - внешней шины - в P6 применена архитектура двойной независимой шины DIB (Dual Independent Bus), реализующая, по сути, две отдельные шины. Одна из этих шин используется только для связи с кристаллом вторичного кэша, расположенным в том же корпусе микросхемы, что и процессор. Эта шина является локальной и в геометрическом смысле - проводники имеют длину порядка единиц сантиметров, что позволяет использовать ее на высокой частоте тактирования, вплоть до частоты ядра. Вторая шина процессорного кристалла выходит на внешние выводы микросхемы, она и является системной, или "фасадной" шиной FSB (Front-Side Bus) процессора Р6. Эта шина работает на внешней частоте независимо от внутренней шины.
Процессоры Pentium Pro появились в 1995 году, выполнялись по технологии 0,5мкм, впоследствии 0,35мкм. Они выпускались с частотами ядра 150, 166, 180 и 200МГц и объемом вторичного кэша 256 и 512Кбайт (1024Кбайт в специальных моделях). Раздельный первичный кэш инструкций и данных имеет объем 8+8 Кбайт. Вторичный кэш работает на частоте ядре. Частота системной шины - 60 или 66 МГц. Достоверность данных вторичного кэша в некоторых модификациях контролируется с помощью ЕСС. Процессоры могут работать в симметричных мультипроцессорных системах (SMP) - до четырех процессоров на общей шине. Объединяемые процессоры должны иметь одинаковые коэффициенты умножения частоты и единые тактовые частоты шин. Для этих процессоров был разработан разъем Socket 8.
Процессоры Pentium II сочетают архитектуру Pentium Pro с технологией MMX. По сравнению с Pentium Pro удвоен размер первичного кэша (16+16 Кбайт), размер вторичного кэша варьируется от 0,5 до 2 Мбайт. В процессоре используется новая технология корпусов - картридж с печатным краевым разъемом, на который выведена системная шина (Single Edge Contact Cartridge - SECC). На картридже размером 14х6,2х1,6см установлена микросхема ядра процессора (CPU Core), несколько микросхем, реализующих вторичный кэш, и вспомогательные дискретные элементы (резисторы и конденсаторы). Снятие вторичного кэша с микросхемы процессора позволяет использовать для кэш-памяти и памяти тегов микросхемы сторонних производителей, специализирующихся на выпуске сверхбыстродействующей памяти. Объем вторичного кэша определяется емкостью и числом установленных микросхем памяти. В то же время сохраняется независимость шины вторичной кэш-памяти, которая тесно связана с ядром процессора собственной локальной шиной.
Первые процессоры Pentium II (до выпуска имели кодовое название Klamath), появившиеся весной 1997 года, насчитывали около 7,5 млн транзисторов только в процессорном ядре и выполнялись по технологии 0,35мкм, питание 2,8В. Они имели тактовые частоты ядра 233, 266 и 300МГц при частоте системной шины 66МГц. При этом вторичный кэш работал на поовине частоты ядра и кэшировал только первые 512Мбайт оперативной памяти. Для этих процессоров был разработан разъем Slot 1, по составу сигналов сильно напоминающий Socket 8. Однако Slot 1 позволяет объединять только пару процессоров для реализации SMP или FRC. Таким образом, этот процессор представляет собой более быстрый Pentium Pro с поддержкой MMX, но урезанными возможностями построения мультипроцессорных систем.
Следующее поколение Pentium II, имевшие кодовое название Deshutes, появилось в 1998 году и выполнялось уже по технологии 0,25мкм, питание 2,0В. Это позволило поднять тактовую частоту (чем мельче элементы, тем меньше они рассеивают мощность, что особенно критично на высоких частотах). Процессор на 333МГц имеет частоту шины 66МГц, а процессоры на 350, 400 и 450МГц уже имеют частоту системной шины 100МГц. Для работы на такой частоте эффективна оперативная память на микросхемах SDRAM (синхронная динамическая память). Эти процессоры также устанавливаются в Slot 1. Объем памяти, кэшируемой на L2, был увеличен до 4Гбайт.
Процессоры с ядром Coppermine тоже называются Pentium III. Несмотря на слово copper (медь) в названии, медные проводники в них не используются. Технология 0,18мкм, 28 млн транзисторов, площадь кристалла 106мм². Первичный кэш 32Кбайт (16+16), на кристалле ядра расположен улучшенный вторичный кэш (Advanced Transfer Cache) размером 256Кбайт с ЕСС-контролем, который работает на частоте ядра. Вторичный кэш связан с ядром шиной разрядностью 256 бит (у предыдущих Р6 с отдельно расположенным кэшем и процессоров Celeron с интегрированным кэшем разрядность шины данных кэша составляла 64 бит). По сравнению с Celeron и первыми моделями Pentium III, вторичный кэш Coppermine имеет меньшую латентность (задержку от запроса до начала пересылки данных), а пропускная способность его шины выросла в 4 раза. Набор инструкций включает SSE и выдачу серийного номера процессора. Частота системной шины 100 и 133МГц. Коэффициенты умножения фиксированы изготовителем. Анонсированы модели с частотами 500 (100х5), 533 (133х4), 550 (100х5,5), 600 (100х6 или 133х4,5), 650 (100х6,5), 667 (133х5), 700 (100х7), 733 (133х5,5), 750 (100х7,5), 800, 850, 866, 933, 1000МГц. В обозначении процессора, например Pentium III-533ЕВ, буква Е означает улучшенный кэш, буква В - частоту шины 133МГц (без буквы В - 100МГц).
Для малобюджетных компьютеров весной 1998 года выпустили облегченный вариант процессора Pentium II, названный Celeron. Процессоры Celeron с ядром Covington (технология 0,25мкм, питание 2,0В) имеют частоты 266 и 300МГц (частота шины 66МГц) и тоже устанавливаются в Slot 1, но их картриджи несколько проще и называются иначе - SEPP (Single Edge Processor Package). Они не имеют микросхем вторичного кэша и это исключение заметно отразилось на производительности.
Летом 1998 года вышла следующая модель Celeron, известная также под названием Mendocino. Сюда относятся процессоры Celeron 300А (с частотой 300МГц) и Celeron 333-533 МГц. Процессоры имеют небольшой (128Кбайт) вторичный кэш, установленный на кристалле ядра и работающий на полной частоте ядра (как у Pentium Pro, но несколько с большой латентностью). Процессоры с частотами 300-433МГц выпускались под Slot 1 по технологии 0,25мкм, питание 2,0В.
Весной 2000 года появились процессоры Celeron на ядре Coppermine (технология 0,18мкм, питание 1,5В). Как и у всех последних процессоров подсемейства Celeron, вторичный кэш имеет размер 128Кбайт, а частота шины равна 66МГц. Главное отличие - поддержка инструкций SSE. Частота ядра - начиная с 533МГц (Celeron 533А). Начиная с частоты 800МГц поднята частота шины до 100 МГц.
Процессоры Xeon имеют новые средства хранения системной информации. Постоянная (только для чтения) память процессорной информации PIROM (Processor Information ROM) хранит такие данные, как электрические спецификации ядра процессора и кэш-памяти (диапазоны частот и питающих напряжений), S-спецификацию и серийный 64-битный номер процессора. Энергозависимая память Scratch EEPROM предназначена для занесения системной инфомации поставщиком процессора (или компьютера с этим процессором) и может быть защищена от последующей записи. Процессор оборудован термодатчиком (термодиод на кристалле ядра) с программируемым устройством контроля температуры. Это устройство имеет аналого-цифровой преобразователь, калибруемый по термодиоду конкретного процессора на этапе тестирования картриджа. Константа настройки термометра заносится в PIROM. Устройство термоконтроля программируется - задается частота преобразования и пороги температуры, по достижении которых вырабатывается сигнал прерывания. Для взаимодействия с PIROM, Scratch EEPROM и устройством термоконтроля процессор имеет дополнительную последовательную шину SMBus (System Management Bus).
Процессоры Pentium II Xeon на ядре Deshutes (технология 0,25мкм) имеют частоту шины 100МГц, частота ядра - 400-500МГц. Набор инструкций - Р6+ММХ.
Процессоры Pentium III Xeon под кодовым названием Cascades (технология 0,18мкм) имеют частоту шины 133МГц, частота ядра - от 600МГц. Вторичный кэш - 256Кбайт, расположен на кристалле ядра, работает на частоте ядра. Первые модели работают только в двухпроцессорных конфигурациях. Планируется увеличение вторичного кэша до 2Мбайт и повышение частоты до 866МГц. Эти процессоры позиционируются для мощных рабочих станций.
- не поддерживается FRC и SMP;
- понижено напряжение питания (на некоторых процессорах напряжение питания ядра <1В);
- понижена нагрузочная способность интерфейсных схем;
- введено новое состояние пониженного потребления Quick Start, которое отличается от состояния Stop Grant тем, что в нем не отслеживаются транзакции симметричных агентов (другого процессора), слежение ведется только за приоритетными агентами шины, поэтому потребление в состоянии Quick Start существенно меньше, чем Stop Grant.
- потоковые приложения, включая обработку видеоинформации в реальном времени, подразумевающую как декодирование сжатой информации, так и более сложные задачи кодирования;
- редактирование видеоизображений;
- трехмерная визуализация;
- обработка видеосигнала в качестве источника данных;
- связь с телевидением высокой четкости (HDTV);
- распознавание речи;
- Интернет-телефония.
Процессор Pentium 4 является по-настоящему однокристальным. На одном кристалле размещено около 42 млн транзисторов, выполненных по технологии с разрешением 0,18мкм (в Pentium III Coppermine всего 28 млн транзисторов). Частота ядра первых моделей составляет 1,4 или 1,5ГГц. Процессор кроме собственно вычислительного ядра имеет кэш-память двух уровней. Вторичный кэш, общий для инструкций и данных, имеет размер 256Кбайт и разрядность шины 256 бит (32 байта), как и в последних процессорах Pentium III. Шина вторичного кэша работает на частоте ядра, что обеспечивает ее пропускную способность 32х1,4=44,8Гбайт/сек на частоте 1,4ГГц. Вторичный кэш имеет ЕСС-контроль, позволяющий обнаруживать и исправлять ошибки. Первичный кэш данных имеет такую же высокую пропускную способность (44,8Гбайт/сек), но его объем сократился вдвое (8Кбайт против 16 в Pentium III). Первичный кэш инструкций в привычном понимании отсутствует, его заменил кэш трассы (trace cache). В нем хранятся последовательности микроопераций, в которые декодированы инструкции. В этом кэше могут помещаться до 12К микроопераций.
Разрядность шины данных, как и в предыдущих двух поколениях процессоров, составляет 64 бита (8 байт), что в режиме 4х-кратной передачи дает максимальную пропускную способность 100х4х8=3,2Гбайт/сек. У процессоров Pentium III шина обеспечивала 133х8=1,06Гбайт/сек, так что по этому параметру у Pentium 4 наблюдается троекратное улучшение. Шина адреса имеет разрядность 36 бит, что позволяет адресовать те же 64 Гбайт памяти, из которых кэшируются только первые 4 Гбайт.
Внешний вид самого процессора вполне обычный, но он требует радиатора выдающегося размера и веса. Корпус процессора уже может не выдержать такой радиатор, поэтому требуются специальные крепежные стойки, проходящие через системную плату и крепящиеся к металлическому шасси. Сверху кристалл покрыт металлической крышкой, к которой должен прилегать радиатор. Процессор требует мощного охлаждения - при напряжении питания 1,6В он потребляет ток до 40А (1,4ГГц) или 43А (1,5ГГц), что соответствует рассеиваемой мощности 65-70 Вт. В режиме пониженного потребления (состояние Stop Grant) процессор потребляет 8,5А, а в состоянии "глубокого сна" (Deep Sleep) - 6,6А. Но кроме того, что эту мощность нужно отводить от процессора и из корпуса компьютера, ее еще нужно получить от блока питания, который для нового процессора должен иметь мощность большую, чем привычные 250Вт. Предельно допустимая температура корпуса - 70°С.
Как и предыдущие, Pentium 4 имеет встроенные средства термоконтроля, но с новыми функциями. Встроенные цепи термоконтроля TCC (Thermal Control Circuit) модулируют внутреннюю частоту синхронизации для снижения рассеиваемой мощности (и производительности). Предусмотрены два режима - автоматический, при котором ТСС включается, когда температура процессора подходит к критической, и программируемый. Схема термоконтроля управляется через регистры MSR. От BIOS требуется, чтобы по умолчанию был разрешен автоматический термоконтроль.
Микроархитектура NetBurst будет иметь максимальную производительность исполнения предсказуемых (линейных и циклических) участков программы, характерных для приложений, на которые ориентирован новый процессор. На непредсказуемо ветвящихся программах, к которым относятся, например, офисные приложения, длинный гиперконвейер оказывается менее эффективным, чем конвейер Р6, если бы тот удалось разогнать до частот 1,4 ГГц и выше.
Читайте также: