любой байт. Эти средства реализуются дополнительными схемами, включенными в микропроцессор. Они дают возможность работать с 1Г памяти, включающую в себя 16М физической памяти и 1008М виртуальной.
Теоретически i80286 должен был преодолеть барьер адресуемой памяти в 1М, который был установлен предыдущими моделями. Но в действительности эта возможность не была реализована.
Проблема была частично в традициях, а частично в совместимости. Ко времени появления i80286 IBM PC имела гарантированный успех. Для i8088, i8086 было разработано огромное программное обеспечение. Отказ от использования этих разработанных программ ставил под сомнение использование нового чипа. Для обеспечения совместимости с ранее разработанными чипами разработчики i80286 обеспечили его работу в двух режимах: в реальном и защищенном. Реальный режим был скопирован с режима работы i8086. Причем разработчики работали так добросовестно, что внесли в реальный режим и ограничение по использованию только 1М памяти.
Чтобы использовать улучшенные возможности Intel 80286, фирма разработала защищенный режим. Хотя отсутствовала программная совместимость с i8086, этот режим позволял использовать все 16М и даже 1Г виртуальной памяти в программах, работающих в защищенном режиме.
Точно так же как и i8086 в свое время, i80286 давал такие огромные ресурсы памяти, потребность в которых ещё не назрела к тому времени. Поэтому этот режим не сразу был признан широким кругом пользователей. Потребовалось почти три года, прошедших с момента презентации первой АТ и появлением операционной системы OS/2, работающей в этом режиме, и ознаменовавшей собой начало его широкого применения.
Имелись две причины медленной популяризации защищенного режима. Для программистов, работающих в DOS, существенным являлся вопрос перехода между реальным и защищенными режимами. Intel разработал переход между режимами только в одном направлении. Микропроцессор начинал работу только в реальном режиме, когда происходило тестирование всех 16М памяти, но для использования этого ресурса необходимо было перейти в защищенный режим. Иначе пользователь мог довольствоваться только 1М памяти. Обратного перехода от защищенного режима к реальному не существует - требуется перезагрузка.
Кроме того, защищенный режим реализовывал только частично чаяния программистов. Вся огромная память i80286 была разделена на сегменты по 64К. Вместо того чтобы свободно использовать весь ресурс памяти, программистам приходилось мудрствовать, чтобы преодолеть эти барьеры между сегментами.
1.4 ПРОЦЕССОР i80386
i80386 был создан в 1985 году. i80386 был создан при полной ясности всех требований, предъявляемых к микропроцессорам и компьютерам. i80386 имел все положительные качества своих предшественников. Все микрокоды i80286 входили во множество микрокоманд i80386. Поэтому старое программное обеспечение могло использоваться с i80386. Но вместе с тем у i80386 были дополнительные возможности. Особенно привлекала возможность работать без ограничения связанного с сегментацией памяти. Размеры регистров и шины данных были увеличены до 32 бит. Информация передавалась и обрабатывалась в два раза быстрее, чем у 16-битного i80286.
С самого начала разработчики 80386 ставили перед собой задачу создать быстрый чип. При его создании использовалась CHMOS технология. Первые i80386 начали работать с наивысшей частотой, достигнутой для i80286. Затем появилась 20 Мгц модель. В 1985 году предел был отодвинут до 25 Мгц. А вскоре и до 33 Мгц.
С увеличением шины данных до 32 бит, число адресных линий также было увеличено до 32. Само по себе это расширение позволило микропроцессору прямо обращаться к 4Гб физической памяти. Кроме того, он мог работать с 16 триллионами байт виртуальной памяти. Микропроцессор имел все необходимое для реализации последнего. Огромное преимущество давал способ организации памяти i80386. К ней можно было обращаться, как к одному большому полю, доступному для программ. То есть структуры данных и программы могли быть объемом в целую память. Разделение памяти на сегменты возможно, но не обязательно. Сегменты могут быть произвольны, а не ограничены по64К.
Кроме того, i80386 снабжен 16 байтами кэш-памяти. Это специально встроенное поле памяти используется для хранения нескольких команд микропроцессора. Независимо от производимых микропроцессором расчетов, специальная схема загружает в эту память код программного обеспечения, прежде чем в нем появится необходимость. Эта небольшая кэш-память помогает процессору работать более проворно без задержек, связанных с ожиданием загрузки очередной команды из оперативной памяти.
Для того чтобы обеспечить совместимость с предыдущими микропроцессорами и с огромной библиотекой DOS-программ i80386 был разработан таким образом, чтобы быть, как можно больше похожим на i8086 и i80286. Как и его предшественники, i80386 позволял работать в защищенном режиме с ограничением адресуемой памяти в 1М. В этом режиме он загружал и выполнял все программы, разработанные на процессорах предшествующих поколений.
С реального режима i80386 мог быть переведён в защищенный режим, где он функционировал подобно 80286, за исключением объёма памяти. В этом режиме в распоряжении программиста было больше памяти, и он мог более гибко манипулировать ею, потому что мог изменять размеры сегмента.
В противоположность i80286 - i80386 мог переходить из одного режима в другой без перезагрузки машины, а посредством команд программного обеспечения.
Новый режим, названный виртуальным режимом 8086 (Virtual mode), давал i80386 особенно большие свободы по использованию многозадачных ОС. В этом режиме этот процессор работал не как один 8086, а как неограниченное их количество в одно и тоже время. Этот режим позволял процессору разбивать память на множество виртуальных машин, каждая из которых работала так, как будто она была отдельным компьютером на 8086 чипе.
2. ОСНОВНЫЕ ХАРАКТЕРИСТИКИ i80286
Микропроцессор i80286 предусматривает 24-разрядную адресацию, 16-разрядный интерфейс памяти, расширенный набор команд, функции ПДП и прерываний, аппаратное умножение и деление чисел с плавающей запятой, объединенное управление памятью, 4-уровневую защиту памяти, виртуальное адресное пространство на 1 гигабайт (1 073 741 824 байта) для каждой задачи и два режима
работы: режим реальной адресации, совместимый с микропроцессором i8086, и режим защищенной виртуальной адресации.
2.1 Режим реальной адресации
В режиме реальной адресации физическая память микропроцессора представляет собой непрерывный массив объемом до одного мегабайта. Микропроцессор обращается к памяти, генерируя 20-разрядные физические адреса. 20-разрядный адрес сегмента памяти состоит из двух частей: старшей 16-разрядной переменной части и младшей 4-разрядной части, которая всегда равна нулю. Таким образом, адреса сегментов всегда начинаются с числа, кратного 16. В режиме реальной адресации каждый сегмент памяти имеет размер 64 Кбайта и может быть считан, записан или изменен. Если операнды данных или команд попытаются выполнить циклический возврат к концу сегмента, может произойти прерывание или возникнуть исключительная ситуация; например, если младший байт слова смещен на FFFF, а старший байт равен 0000. Если в режиме реальной адресации информация, содержащаяся в сегменте, не использует все 64 КБайт, неиспользуемое пространство может быть предоставлено другому сегменту в целях экономии физической памяти.
2.2 Режим защиты
Режим защиты предусматривает расширенное адресное пространство физической и виртуальной памяти, механизмы защиты памяти, новые операции по поддержке операционных систем и виртуальной памяти. Режим защиты обеспечивает виртуальное адресное пространство на 1 гигабайт для каждой задачи в физическом адресном пространстве на 16 Мегабайт. Виртуальное пространство может быть больше физического, т.к. любое использование адреса, который не распределен в физической памяти, вызывает возникновение исключительной ситуации, требующей перезапуска.
Как и режим реальной адресации, режим защиты использует 32-разрядные указатели, состоящие из 16-разрядного искателя и компонентов смещения. Искатель, однако, определяет индекс в резидентной таблице памяти, а не старшие 16 разрядов адреса реальной памяти. 24-разрядный базовый адрес желаемого сегмента памяти получают из таблиц памяти. Для получения физического адреса к базовому адресу сегмента добавляется 16-разрядное смещение. Микропроцессор автоматически обращается к таблицам, когда в регистр сегмента загружается искатель. Все команды, выполняющие загрузку регистра, обращаются к таблицам памяти без дополнительной программной поддержки. Таблицы памяти содержат 8-байтовые значения, называемые описателями.
2.3 Сопроцессор i80287
Математический сопроцессор i80287 позволяет ему выполнять скоростные арифметические и логарифмические операции, а также тригонометрические функции с высокой точностью. Сопроцессор работает параллельно с микропроцессором, это сокращает время вычислений, позволяя сопроцессору выполнять математические операции, в то время как микропроцессор занимается выполнением других функций. Сопроцессор работает с семью типами числовых данных, которые делятся на следующие три класса:
- двоичные целые числа (3 типа);
- десятичные целые числа (1 тип);
- действительные числа (3 типа).
2.3.1 Условия программирования i80287
Сопроцессор предлагает расширенный набор регистров, команд и типов данных для микропроцессора. Сопроцессор имеет восемь 80-разрядных регистров, которые эквивалентны емкости сорока 16-разрядных регистров в микропроцессоре. В регистрах можно хранить во время вычислений временные и постоянные результаты, что сокращает расход памяти, повышает быстродействие, а также улучшает возможности доступа к шине.
Пространство регистров можно использовать как стек или как постоянный набор регистров. При использовании пространства в качестве стека работа ведется только с двумя верхними стековыми элементами. В следующей таблице показано представление больших и малых чисел в каждом типе данных.