Понятие программной модели x86

Автор работы: Пользователь скрыл имя, 27 Ноября 2011 в 21:27, реферат

Описание

Различными являются способы, средства и используемые ресурсы, с помощью которых компьютер функционирует как единый механизм. Чтобы собрать воедино все понятия, характеризующие компьютер с точки зрения его функциональных программно-управляемых свойств, существует специальный термин - архитектура ЭВМ.

Содержание

Введение………………………………………………………………………………………..
1.Понятие программной модели……………………………………………………………...
2.Программная модель х86…………………………………………………………………....
2.1 Особенности моделей x86…………………………………………………………………
2.2 Историческое развитие линейки процессоров x86……………….……………………..
Заключение…………………………………………………………………………………….
Список используемых источников……………

Работа состоит из  1 файл

Реферат х86.docx

— 54.21 Кб (Скачать документ)
  • нефиксированное значение длины команды;
  • арифметические действия кодируются в одной команде;
  • небольшое число регистров, каждый из которых выполняет строго определённую функцию.

        4.

    • CS — Сегмент кода. Используется для выборки команд программы;
    • DS — Сегмент данных. Используется по умолчанию для доступа к данным;
    • ES — Дополнительный сегмент. Является получателем данных в командах обработки строк;
    • SS — Сегмент стека. Используется для размещения программного стека;
    • FS — Дополнительный сегментный регистр. Специального назначения не имеет. Появился в процессоре 80386;
    • GS — Аналогично предыдущему, но в новых процессорах с 64-битной архитектурой имеет особый статус: может использоваться для быстрого переключения контекстов.
 
 
 
 
 
 
 
 

       Аннотация 
 

       На  современном компьютерном рынке  наблюдается большое разнообразие различных типов компьютеров. Поэтому  возможно предположить возникновение  у потребителя вопроса - как оценить  возможности конкретного типа (или  модели) компьютера и его отличительные  особенности от компьютеров других типов (моделей). Рассмотрения для этого  одной лишь только структурной схемы  компьютера недостаточно, так как  она принципиально мало чем различается  у разных машин: у всех компьютеров  есть оперативная память, процессор, внешние устройства. 

       Различными  являются способы, средства и используемые ресурсы, с помощью которых компьютер  функционирует как единый механизм. Чтобы собрать воедино все  понятия, характеризующие компьютер  с точки зрения его функциональных программно-управляемых свойств, существует специальный термин - архитектура  ЭВМ.

       Впервые понятие архитектура ЭВМ стало  упоминаться с появлением машин 3-го поколения для их сравнительной  оценки.

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

       Программная модель процессора – это базовая  совокупность систем и характеристик  процессора "видимая" программистам, работающим на нижних, "машинных" уровнях программирования, например, на языке ассемблере.Обычно к программной модели процессора относят:

  • виды используемых структур памяти по принципам размещения и поиска информации,
  • организация оперативной памяти,
  • структура и типы команд,
  • состав программно-доступных регистров,
  • режимы адресации,
  • структура и типы данных,
  • наборы реализованных операций.

       x86 (англ.Intel 80x86)—архитектура процессора c одноименным набором команд, впервые реализованная в процессорах компании Intell.

       Название  образованно от двух цифр, которыми заканчивались названия процессоров  Intel ранних моделей—8086,80186,80286(i286),80386 (i386),80486 (i486). За время своего существования набор команд постоянно расширялся, сохраняя совместимость с предыдущими поколениями.

       x86 — это CISC-архитектура. Доступ к памяти происходит по «словам». «Слова» размещаются по принципу little-endian, известному также как Intel-формат. Современные процессоры включают в себя декодеры команд x86 для преобразования их в упрощённый внутренний формат с последующим их выполнением. 

       Сегментная  организация памяти

       Реальный  режим (real mode)

       Классический  режим адресации, использованный в  первых моделях семейства. Использует сегментированную модель памяти, организованную следующим образом: адресное пространство в 1 MiB разбивается на 16-байтовые блоки, называемые параграфами. Всего параграфов в 1 MiB — 65536, что позволяет пронумеровать их 16-разрядными числами. Сегменты памяти имеют размер 65536 байт, и всегда начинаются на границе параграфа. Адрес ячейки памяти состоит из двух частей: номера параграфа, с которого начинается сегмент и смещения внутри сегмента и обычно записывается как SSSS:OOOO, где S и O— шестнадцатеричные цифры. SSSS называется сегментной компонентой адреса, а OOOO— смещением. Адрес ячейки, выдаваемый на шину, представляет собой сегментную компоненту умноженную на 16 плюс смещение. Сегментная компонента помещается в специальный регистр, называемый сегментным, а смещение в регистр IP(регистр инструкций). Микропроцессоры 8086/8088, 80186/80188 и 80286 имели четыре сегментных регистра, т.е могли работать одновременно с четырьмя сегментами памяти, имеющими определенное назначение. В 80386 добавили еще два, не имеющих специального назначения.

  • Сегментные регистры и их назначение:
    • CS — Сегмент кода. Используется для выборки команд программы;
    • DS — Сегмент данных. Используется по умолчанию для доступа к данным;
    • ES — Дополнительный сегмент. Является получателем данных в командах обработки строк;
    • SS — Сегмент стека. Используется для размещения программного стека;
    • FS — Дополнительный сегментный регистр. Специального назначения не имеет. Появился в процессоре 80386;
    • GS — Аналогично предыдущему, но в новых процессорах с 64-битной архитектурой имеет особый статус: может использоваться для быстрого переключения контекстов.

       Несмотря  на то, что сегментные регистры имеют  специальные назначения, архитектура  допускает при обращении к  данным заменить один сегмент на любой  другой. Сегменты кода, стека и получателя строк всегда используют регистры CS, SS и ES и не могут быть изменены. Общий объем памяти, адресуемый в реальном режиме составляет 1048576 байт (0000:0000-F000:FFFF(00000-FFFFF)-логический адрес (физический адрес) в шестнадцатеричной системе счисления). Сегментный подход позволяет разделить всю память на 16 сегментов, начинающихся с адресов, кратных 64 Кбайт. Эти 16 сегментов называют страницами памяти. Обычно деление на страницы используется для совместного функционирования устройств, интерфейсы которых отображены на адресное пространство памяти; тогда каждое такое устройство использует одну страницу памяти, и адрес ячейки в адресном пространстве устройства будет совпадать со смещением в сегменте памяти компьютера. Так в компьютерах IBM PC страницы c 11 по 15 используются как «видеопамять»(адресное пространство видеоадаптера), а шестнадцатая страница(размещающаяся в адресах FFFF:0000 — FFFF:FFFF) получила название «области верхней памяти» (High Memory Area), которую впоследствии  MS-DOS использовала для размещения своего ядра и буферов ввода-вывода, оставив больше «обычной» памяти прикладным программам. Таким образом реально доступная пользователю память составляет 640 Кбайт(первые 10 страниц).

       Также в реальном режиме отсутствует защита памяти и разграничение прав доступа, поэтому он уже практически вышел  из употребления. Является режимом  по умолчанию для всех моделей  процессоров семейства x86. 

       Защищенный  режим(protected mode)

       Более совершенный режим, впервые появившийся  в процессоре 80286 и в дальнейшем многократно улучшавшийся. Имеет  большое количество подрежимов, по которым можно проследить эволюцию семейства ЦП. В этом режиме поддерживается защита памяти, контексты задач и средства для организации виртуальной памяти. Аналогично реальному режиму, тут также используется сегментированная модель памяти, однако уже организованная по другому принципу: деление на параграфы отсутствует, а расположение сегментов описывается специальными структурами (таблицами дескрипторов), расположенными в оперативной памяти. Помимо базового адреса сегмента дескрипторы содержат размер сегмента (точнее, максимально доступное смещение) и различные атрибуты сегментов, использующиеся для защиты памяти и определения прав доступа к сегменту для различных программных модулей. Существует два типа дескрипторных таблиц: глобальная и локальная. Глобальная таблица описывает сегменты операционной системы и разделяемых структур данных. Локальная таблица может быть определена для каждой конкретной задачи (процесса). Сегменты памяти также выбираются все теми же сегментными регистрами; однако вместо номера параграфа сегментный регистр содержит специальную структуру (селектор), содержащую индекс дескриптора в таблице. Сам же дескриптор загружается из памяти во внутренний программно недоступный регистр (кеш), привязанный к каждому сегментному регистру и автоматически загружаемый в момент его модификации.

       Каждый  программный модуль, выполняемый  в защищенном режиме определяется его сегментом кода, описываемым регистром CS, который и определяет его привилегии по доступу к данным и другим модулям. Существует 4 уровня привилегий 0,1,2 и 3, называемых кольцами защиты. Кольцо 0 наиболее привилегированное. Оно предназначено для модулей ядра операционной системы. Кольцо 3 — наименее привилегированное, и предназначено для пользовательских программ. Кольца 1 и 2 используются лишь некоторыми операционными системами. Сегменты данных также имеют атрибуты прав доступа, дающие доступ только коду, имеющему такие же или более высокие привилегии. Система колец позволяет гибко распределять доступ к коду и данным.

       Процессор 80386, появившийся в 1985 году, в отличие  от своих предшественников стал 32-битным. В нем появилась возможность  адресовать до 4 GiB памяти, что позволило создавать сегменты памяти размером во все адресное пространство. Поэтому новые операционные системы использовали вырожденную модель организации памяти, когда все сегменты начинаются с нулевого адреса. Такая модель получила название плоской (flat memory model), и адрес задается одним целым 32-разрядным числом (хотя по сути он является смещением внутри вырожденного сегмента), а сами сегменты используются исключительно для организации защиты по кольцам привилегий.

       Режим виртуального 8086 (virtual 8086 mode, V86)

       Является  подрежимом защищенного, но использует адресную модель, аналогичную реальному режиму. Применяется для запуска старых программ 8086 в среде современных операционных систем. В отличие от реального режима, где все программы имеют доступ ко всей памяти (кольцо 0), в режиме V86 программа выполняется в кольце 3 (наименее привилегированном), а особые ситуации и прерывания обрабатываются обычными процедурами защищенного режима.

       Смешанные режимы

       Сегментно MMU современных процессоров, несмотря на кардинальные различия двух его основных режимов, в обоих работает схожим образом. Это позволяет организовывать нестандартные режимы не описанные в официальной документации, но иногда очень полезные при написании программ. Поскольку известно, что внутренние кэши дескрипторов используются во всех режимах, и именно они используются для адресации памяти, при понимании логики их работы возможна загрузка в них нестандартных значений для текущего режима. В частности, можно создать дескрипторную таблицу в реальном режиме, установить флаг PE, загрузить сегментные регистры уже в защищенном режиме, а потом тут же сбросить флаг PE. До следующей перезагрузки сегментного регистра его кеш дескриптора будет содержать значение, соответствующее защищенному режиму, и если он был загружен должным образом, появится возможность адресации до 4 GiB памяти. Подобные нестандартные режимы получили общее название Unreal mode и активно используются

       BIOSами персональных компьютеров. Следует отметить, что в процессоре 80286 также была возможность загрузки нестандартных значений дескрипторного кеша при помощи недокументированной команды LOADALL; что было особенно актуально, поскольку процессор 80286 не позволял сбрасывать флаг PE (из защищенного режима выходили с помощью сброса процессора, что сказывалось на производительности). 

       Страничная  организация памяти

       В процессорах начиная с 80386 появилось  мощное MMU, позволяющее организовать отображение страниц памяти что было еще одним поводом перехода на плоскую модель с приходом 32-разрядных вычислений. Используя трансляцию страниц операционная система может создать собственное линейное адресное пространство для каждого процесса; также каждая страница имеет атрибуты прав доступа. Только в отличие от сегментов, таких уровней существует только 2: пользователь и супервизор. Но для большинства современных операционных систем этого вполне достаточно. Следует отметить, что страничное MMU доступно только в защищенном режиме.

Информация о работе Понятие программной модели x86