МЕНЮ


Фестивали и конкурсы
Семинары
Издания
О МОДНТ
Приглашения
Поздравляем

НАУЧНЫЕ РАБОТЫ


  • Инновационный менеджмент
  • Инвестиции
  • ИГП
  • Земельное право
  • Журналистика
  • Жилищное право
  • Радиоэлектроника
  • Психология
  • Программирование и комп-ры
  • Предпринимательство
  • Право
  • Политология
  • Полиграфия
  • Педагогика
  • Оккультизм и уфология
  • Начертательная геометрия
  • Бухучет управленчучет
  • Биология
  • Бизнес-план
  • Безопасность жизнедеятельности
  • Банковское дело
  • АХД экпред финансы предприятий
  • Аудит
  • Ветеринария
  • Валютные отношения
  • Бухгалтерский учет и аудит
  • Ботаника и сельское хозяйство
  • Биржевое дело
  • Банковское дело
  • Астрономия
  • Архитектура
  • Арбитражный процесс
  • Безопасность жизнедеятельности
  • Административное право
  • Авиация и космонавтика
  • Кулинария
  • Наука и техника
  • Криминология
  • Криминалистика
  • Косметология
  • Коммуникации и связь
  • Кибернетика
  • Исторические личности
  • Информатика
  • Инвестиции
  • по Зоология
  • Журналистика
  • Карта сайта
  • Процессоры. История развития. Структура. Архитектура

    режима, предполагаемое системное ПО, выполняют инструкцию JMP с ссылкой на

    селектора начального TSS системы. При этом загрузится регистр задачи,

    регистры LDT, регистры сегментов и общие регистры. Регистр задачи TR должен

    указывать на действительный TSS, поскольку операция переключения задач

    повлечет сохранение текущего состояния задач.

    1.3.4. Защита

    Процессор 80286 имеет механизмы защиты от несанкционированного выполнения

    критических инструкций – команды HLT, которая останавливает процессор, и

    команд, влияющих на сегменты кода и данных. Механизмы сгруппированы в три

    группы:

    . ограничения использования сегментов (например, запрет на записи в

    только читаемые сегменты данных); доступность использования только

    сегментов, дескрипторы которых описаны в GDT и LDT;

    . ограничения доступа к сегментам через правила привилегий;

    . выделение привилегированных инструкций или операций, которые можно

    выполнять только при определенных уровнях CPL и IOPL (биты 13 и 14

    регистра флагов).

    ГЛАВА 2

    Архитектура 32-разрядных процессоров

    История 32-разрядных процессоров началась с процессора Intel386. Эти

    процессора вобрали в себя все свойства своих 16-разрядных предшественников

    8086/88 и 80286 для обеспечения программной совместимости с громадным

    объемом ранее написанного ПО. Однако в них по современным меркам преодолено

    очень жесткое ограничение на длину непрерывного сегмента памяти – 64 Кб. В

    защищенном режиме 32-битных процессоров оно отодвинулось до 4 Гб – предела

    физически адресуемой памяти, что како-то время можно считать “почти

    бесконечностью“. Все эти процессоры имеют поддержку виртуальной памяти

    объемом до 64 Тб, встроенный блок управления памятью поддерживает механизмы

    сегментации и страничной трансляции адресов (Paging). Процессоры

    обеспечивают четырехуровневую системы защиты памяти и ввода-вывода,

    переключения задач. Они имеют расширенную систему команд, включающую все

    команды 8086, 80286. Процессор может работать в двух режимах, между

    которыми обеспечивается достаточно быстрое переключение в обе стороны:

    Real Address Mode – режим реальной адресации, полностью совместимый с

    8086. В этом режиме возможна адресация до 1 Мб физической памяти (на самом

    деле почти на 64 Кб больше).

    Protected Virtual Address Mode – защищенный режим виртуальной

    адресации. В этом режиме процессор позволяет адресовать до 4 Гб физической

    памяти, через которые при использовании механизма страничной адресации

    могут отображаться до 16 Тб виртуальной памяти каждой задачи. Существенным

    дополнением является Virtual 8086 Mode – режим виртуального процессора

    8086. Это режим является особым состоянием задачи защищенного режима, в

    котором процессор функционирует как 8086. На одном процессоре в таком

    режиме могут одновременно исполняться несколько задач с изолированными друг

    от друга реальными ресурсами. При этом использование физического адресного

    пространства памяти управляется механизмами сегментации и трансляции

    страниц. Попытки выполнения команд, выхода за рамки отведенного

    пространства памяти и разрешенной области ввода-вывода контролируется

    системой защиты.

    Процессоры могут оперировать с 8, 16 и 32-битными операндами байт,

    слов и двойных слов, а также с битам, битовыми полями и строками бит.

    Рассмотрим базовую архитектуру, общую для всех существующих на данный

    момент 32-разрядных процессоров: 386, 486, Pentium, Pentium Pro и Pentium

    II.

    2.1.1. Организация памяти

    Память для процессоров 80х86 разделяются на байты (8 бит), слова (16 бит),

    двойные слова (32 бит). Слова записываются в двух смежных байтах, начиная с

    младшего. Адресом слова является адрес его младшего байта. Двойные слова

    записываются в четырех смежных байтах.

    Более крупными единицами являются страницы и сегменты. Память может

    логически организовываться в виде одного или множества сегментов переменной

    длины ( в реальном режиме – фиксированной). Сегменты могут выгружаться на

    диске и по мере необходимости с него подкачиваться в физическую память.

    Кроме сегментации, в защищенном режиме возможно разбиение логической памяти

    на страницы размером 4 Кб (Paging), каждая из которых может отображаться на

    любую область физической памяти. Сегментация и разбиение на страницы могут

    применяться в любых сочетаниях. Сегментация является средством организации

    логической памяти, используемым на прикладном уровне. Разбиение на страницы

    применяются на системном уровне для управлении физической памятью.

    Применительно к памяти различают на три адресных пространства:

    логическое, линейное и физическое. Основным режимом работы 32-разрядных

    процессоров считается защищенный режим, в котором работают все механизмы

    преобразования адресных пространств.

    Логический адрес, также называется виртуальным, состоит из селектора

    (в реальном режиме – просто сегмента) и смещение. Смещение формируется

    суммированием компонентов (base, index, disp) в эффективный адрес.

    Поскольку каждая задача может иметь до 16К селекторов, а смещение,

    ограниченное размером сегмента, может достигать 4 Гб, логическое адресное

    пространство для каждой задачи может достигать 64 Тб. Все это пространство

    виртуальной памяти в принципе доступно программисту (этот ‘принцип” должна

    реализовывать операционная система).

    Блок сегментации транслирует логическое адресное пространство в 32-

    битное пространство линейных адресов. Линейный адрес образуется сложением

    базового адресного сегмента с эффективным адресом. Базовый адрес сегмента в

    реальном режиме образуется умножением содержимого используемого сегментного

    регистра на 16 (как и в 8086). В защищенным режиме базовый адрес

    загружается из дескриптора, хранящегося в таблице, по селектору,

    загруженному в используемый сегментный регистр.

    Физический 32-битный адрес памяти образуется после преобразования

    линейного адреса блоком страничной переадресации. В простейшем случае (при

    отключенном блоке страничной переадресации) линейный адрес совпадает с

    физическим – присутствующим на внешней шине адреса процессора. Включенный

    блок страничной переадресации осуществляет трансляцию линейного адреса в

    физический блоками (страницами) размером 4 Гб. Этот блок может включаться

    только в защищенном режиме.

    Как и у процессоров 8086/8088, для обращения к памяти процессор

    (совместно с внешней схемой) формирует шинные сигналы MEMWR# (Memory Write)

    и MEMRD (Memory Read) для операции записи и считывания соответственно. Шина

    адреса разрядностью 32 бита позволяет адресовать 4 Гб физической памяти, но

    в реальном режиме доступен только 1 Мб, начинающийся с младших адресов.

    В реальном режиме по адресации памяти обеспечивается совместимость с

    процессором 8086, который своей 16-битной адресной шиной охватывает

    пространство физической памяти в 1Мб. Для обеспечения совместимости с 80286

    32-разрядные процессоры реализуют его ошибку, связанную с переполнением,

    возникающим при сложении адресов сегмента с эффективным адресом. При

    вычисление физического адреса возможно возникновение переполнение, которое

    вызовет появление единицы на линии А20 шины адреса. Максимальное значение

    адреса в реальном режиме 10FFEF достигается при Seg=FFFFh и EA=FFFFh. Для

    обеспечения полной программной совместимости с 8086 в РС используется

    вентиль Gate A20, принудительно обнуляющий бит А20 системной шины адреса.

    Вентиль в РС управляется через программно-управляемый бит контроля

    клавиатуры 8042 или более быстрым способом (Gate A 20 Fast Control),

    определяемым чипсетом системной платы.

    В реальном режиме размер сегмента фиксирован – как и 8086, он

    составляет 64 Кб (FFFFh). Попытка использования эффективного адреса,

    выходящего за границы сегмента, при 32-битной адресации вызывает исключение

    типа 13. При 16-битной адресации при вычисление эффективного адреса

    возможный перенос в разряд А16 игнорируется, и сегмент “сворачивается

    кольцом” (как и в 8086). Средства контроля следят и за переходом через

    границу сегмента во время обращения по “приграничному” адресу. При попытки

    адресации к слову, имеющему смещение FFFFh, или двойному слову со смещением

    FFFDh-FFFh (их старшие байты выходят за границу сегмента), или выполнения

    инструкции, все байты которой не умещаются в данном сегменте, процессор

    вырабатывает прерывание – исключение типа 13 (0Dh) – Segment Overrun

    Exception. При попытки выполнения инструкции ESCAPE с операндом памяти, не

    умещающимся в сегменте, вырабатывается исключение типа 9 – Processor

    Extension Segment Overrun Interrupt (только для 386).

    8Система команд 32-разрядных процессоров предусматривает 11 режимов

    адресации операндов. Из них только два не имеют отношение к памяти:

    . операнд-регистр, который может находится в любом 8, 16 или 32-

    битном регистре процессора.;

    . непосредственный операнд (8, 16 или 32-бит), который может

    содержаться в самой команде.

    Остальные девять режимов (табл. 3.1.) используются при формировании

    эффективного адреса операнда из памяти.

    Эффективный адрес вычисляется с использованием комбинации следующих

    компонентов:

    Смещение (Displacement или Disp) – 8-, 16- или 32-битное число,

    включенное в команду.

    База (Base) – содержимое базового регистра. Обычно используется для

    указания на начало некоторого массива.

    Индекс (Index) – содержимое индексного регистра. Обычно используется

    для выбора элемента массива.

    Масштаб (Scale) – множитель (1, 2, 4 или 8), указанный в коде

    инструкции. Этот элемент используется для указания размера элемента

    массива. Доступен только в 32-битном режиме адресации.

    Эффективный адрес вычисляется по формуле EA=Base+Index*Scale+Disp.

    Отдельные слагаемые в этой формуле могут и отсутствовать. Возможные

    режимы адресации приведены в табл. 3.1.

    Таблица 3.1. Режимы адресации памяти 32-битных процессоров

    |Прямая адресация |EA=Disp |

    |Косвенная регистровая адресная Register Index Mode |EA=Base |

    |Базовая адресации Based Mode |EA=Base+Disp |

    |Индексная адресация Index Mode |EA=Index+Disp |

    |Масштабированная индексная адресации Scaled Index Mode |EA=Scalex*Index+Disp|

    | |* |

    |Базово-индексная адресация Based Index Mode |EA=Base+Index* |

    |Масштабированная базово-индексная адресация Based Scaled |EA=Base+Scale* Index|

    |Index Mode | |

    |Масштабированная базово-индексная адресация Based Index |EA=Base+Index+Disp |

    |Mode with Displacement | |

    |Масштабированная базово-индексная адресации со смещение |EA=Base+Scale*Index+|

    |Based Scaled Index with Displacement |Disp* |

    Процессор может использовать режимы 32-битной или 16-битной адресации.

    Режим 16-битной адресации соответствует режимам процессоров 8086 и 80286,

    при этом в качестве компонентов адреса используются младшие 16 бит

    соответствующих регистров. Режим 32-битной адресации использует расширенные

    32-разрядные регистры и имеет дополнительные режимы, использующие

    масштабирование индекса. Различия 16- и 32-битных режимов адресации

    приведены в табл. 3.2.

    В реальном режиме по умолчанию используется 16-битная адресация, но с

    помощью префикса изменение разрядн6ости адреса (Address Length Prefix) для

    текущей инструкции можно переключится в 32-битный режим. При этом

    появляются дополнительные возможности адресации (масштабирования), но

    вычисленное значение эффективного адреса все равно не может преодолеть 64-

    килобайтный барьер – при такой попытке генерируется исключение 13 – General

    Protection Fault.

    В защищенном режиме адресация по умолчанию определяется битом D

    дескриптора используемого кодового сегмента: при D=0 – 15 бит, при D=1 – 32

    бита. Префикс разрядности адреса переключает разрядность для текущей

    инструкции на противоположную.

    Таблица 3.2. Различия режимов адресации

    |Компоненты |16-битная |32-битная адресации |

    | |адресации | |

    |Базовый регистр |BX или BP |Любой 32-битный общего назначения |

    |Индексный |SI или DI |Любой 32-битный общего назначение, |

    |регистр | |кроме ESP |

    |Масштаб |Нет (всегда 1) |1, 2, 4 или 8 |

    |Смещение |0, 8 или 16 бит |0, 8 или 32 бит |

    При обращениях к памяти использование сегментных регистров по умолчанию

    определяется типом обращения (табл. 3.3.). На время текущей инструкции при

    необходимости для большинства типов обращения возможно использование

    альтернативного сегментного регистра, на что указывает префикс замены

    сегмента (CS:; DS:; ES:; SS:; FS: или GS) перед кодом инструкции.

    Таблица 3.3. Использование сегментных регистров при адресации памяти

    | |Сегментный регистр |

    |Тип обращения к памяти | |

    | |по умолчанию |альтернативный |

    |Выборка команд |CS |Нет |

    |Стековые операции |SS |Нет |

    |Строка-приемник |ES |Нет |

    |Любые ссылки к памяти, кроме |DS |CS,ES,SS |

    |использующих в качестве базового | |FS,GS |

    |регистры BP, EBP или ESP | | |

    |Ссылки к памяти, использующие в |SS |CS,DS,ES, |

    |качестве базового регистры BP, | |FS,GS |

    |EBP или ESP | | |

    2.1.2. Прерывания и исключения

    Прерывания и исключения нарушают нормальный ход выполнения программы для

    обработки внешних событий или сообщения о возникновении особых условий или

    ошибок.

    Прерывания подразделяются на аппаратные (маскируемые и немаскируемые),

    вызываемые электрическими сигналами на выходах процессора, и программные,

    вызываемые по команде INT xx. Программные прерывания процессором

    обрабатываются как разновидность исключений.

    Аппаратные прерывания подразделяются на маскируемые и немаскируемые.

    Процессор может воспринимать прерывания после выполнения каждой команды,

    длинные строковые команды имеют для восприятия прерываний специальные окна.

    Маскируемые прерывания вызывают переход и высокий уровень сигнала на

    входе INTR (Interrupt Request) при установленном флаге разрешения (IF=1). В

    этом случае процессор сохраняет с стеке регистр флагов, сбрасывает флаг IF

    и вырабатывает два следующих друг за другом (back to back) цикла

    подтверждения прерывания, в которых генерируются управляющие сигналы INTA#

    (Interrupt Acknowledge). Высокий уровень сигнала INTR должен сохраняться по

    крайней мере до подтверждения прерывания. Первый цикл подтверждения

    холостой, по второму импульсу внешний контроллер прерываний передает по

    шине номер вектора, обслуживающего данный тип аппаратного прерывания.

    Прерывание с полеченным номером вектора выполняется процессором также, как

    и программное. Обработка текущего прерывания может быть в свою очередь

    прервана немаскируемым прерыванием, а если обработчик установит флаг IF, то

    и другим маскируемым аппаратным прерыванием.

    Немаскируемые прерывания выполняются не зависимо от состояния флага IF

    по сигналу NMI (Non Mascable Interrupt). Высокий уровень на этом входе

    вызовет прерывание с типом (вектором) 2, которое выполняется также, как и

    маскируемое. Его обработка не может прерваться под действием сигнала на

    входе NMI до выполнения команды IRET.

    Исключения (Exceptions) подразделяются на отказы, ловушки и аварийные

    завершения.

    Отказ (fault) – это исключение, которое обнаруживается и обслуживается

    до выполнения инструкции, вызывающей ошибку. После обнаружения этого

    исключения выполнение возвращается снова на туже инструкцию (включая все

    префиксы), которая вызвала отказ. Отказы, использующиеся в системе

    виртуальной памяти, позволяют, например, подкачать с диска в оперативную

    память затребованную страницу или сегмент.

    Ловушка (trap) – это исключение, которое обнаруживается и обслуживается

    после выполнения инструкции, его вызывающей. После обслуживания этого

    исключения управление возвращается на инструкцию, следующей за вызывающей

    ловушку. К классу ловушек относятся и программные прерывания.

    Аварийное завершение (abort) – это исключение, которое не позволяет

    точно установить инструкцию, его вызвавшую. Оно используется для сообщения

    о серьезной ошибке, такой как аппаратное ошибка или повреждение системных

    таблиц.

    Набор и обработка исключений реального и защищенного режимов различны.

    Под исключения Intel резервирует векторы 0-31 в таблице прерываний, однако

    в РС часть из них перекрывается системными прерываниями BIOS и DOS.

    2.1.3. Начальный сброс и самотестирование

    По высокому уровню сигнала на входе RESET процессор прекращает выполнение

    инструкции и перестает управлять локальной шиной. После аппаратного сброса

    Страницы: 1, 2, 3, 4, 5


    Приглашения

    09.12.2013 - 16.12.2013

    Международный конкурс хореографического искусства в рамках Международного фестиваля искусств «РОЖДЕСТВЕНСКАЯ АНДОРРА»

    09.12.2013 - 16.12.2013

    Международный конкурс хорового искусства в АНДОРРЕ «РОЖДЕСТВЕНСКАЯ АНДОРРА»




    Copyright © 2012 г.
    При использовании материалов - ссылка на сайт обязательна.