Вопрос 16)
Микропроцессор может выполнять множество машинных команд, которые говорят
процессору, что ему делать. Микропроцессор должен иметь следующий набор
компонентов, который обеспечивает ему возможность воспринимать эти команды.
Используя своё арифметическо-логическое устройство процессор может осуществлять
математические операции подобные сложению, вычитанию, умножению и делению.
Современные микропроцессоры содержат специальный процессор для вычислений с
плавающей точкой, который может выполнять особо сложные операции над большими
числами с плавающей точкой.
Так же микропроцессор может перемещать данные из одной области памяти в другую и
принимать решения о переходе к выполнению другого набора команд. Микропроцессор
может делать множество сложных вещей, но все они основаны на этих трёх основных
операциях - вычисление, перемещение данных в памяти и принятие решений о
выполнении нового участка кода.
А теперь давайте рассмотрим простейший микропроцессор. Он должен иметь следующие
элементы:
Шину адреса, которая может быть шириной в 8, 16 или 32 бита. Она используется для
отправки адреса памяти.
Шину данных, которая так же может быть шириной в 8, 16 или 32 бита. Эта шина
используется для обмена данными с памятью.
Линии RD (чтение) и WR (запись) - для указания памяти того, хочет ли процессор
записать или прочитать указанную область памяти.
Линия тактового генератора, который генерирует тактовую частоту работы процессора.
Линия перезагрузки, которая устанавливает программный счётчик в 0 и инициирует
выполнение программы заново.
Кэш-память Один из элементов микроархитектуры процессоров для хранения данных и
отслеживания исполнения команд. Это увеличивает производительность и повышает
эффективность использования кэш-памяти за счет передачи большего количества команд
в исполнительные блоки процессора и уменьшения общего времени, требуемое на возвра^
из неверно предсказанных ветвлений.
Кэширование означает хранение часто используемой информации в таком месте, откуда
ее при необходимости можно быстро и легко извлечь. WinGate обеспечивает кэшировани!
Интернет данных, включая графику, документы HTML или другие файлы, если вы
используете WWW Proxy Service.
Если вы используете WinGate Internet Client или WinGate NAT, то вы не сможете
кэшировать скачиваемую из Интернет информацию, если у вас не активна функция
Transparent Redirection в конфигурации Sessions WWW Proxy Server.
Кэширование очень облегчает работу в Интернет, сохраняя общедоступную информацию
на локальном диске сервера Wingate. Это достигается тем, что вам приходится реже
загружать информацию с какого-то удаленного компьютера в сети Интернет (т.к. эта
информация хранится на локальном компьютере). Конечно, существует несколько очень
сложных правил, которые определяют, являются ли кэшированные данные наиболее част<
употребляемыми.
Конвейеризация позволяет нескольким внутренним блокам МП работать одновременно,
совмещая дешифрование команды, операции АЛУ, вычисление эффективного адреса и
циклы шины нескольких команд. В составе МП 80286 есть 4 конвейерных устройства:
BU (Bus Unit) - шинный блок (считывание из памяти и портов ввода/вывода);
IU (Instruction Unit) - командный блок (дешифрация команд);
EU (Executive Unit) - исполнительный блок (выполнение команд);
AU (Address Unit) - адресный блок (вычисляет все адреса, формирует физический адрес).
Уровень привелегий Определением условий должна заниматься операционная система.
Когда программа переводит процессор в защищённый режим, то ей, как говорится,
"можно всё". Сразу после входа в защищённый режим процессор позволяет программе устанавливать свои условия для самой себя и для других программ. Для того, чтобы эти условия не могла переопределить другая программа, в процессоре введена система уровней привилегий. Благодаря этому, операционная система, например, может разрешить работу с дисковыми накопителями только для себя и тогда вирусы будут бессильны - они не смогут обратиться к дискам через порты ввода/вывода (разве что, только через "дыры" в самой операционной системе).
Основой защищённого режима являются уровни привилегий. Уровень привилегий -это степень использования ресурсов процессора. Всего таких уровней четыре и они имею! номера от 0 до 3. Уровень номер 0 - самый привелигерованный. Когда программа работаеп на этом уровне привилегий, ей "можно всё". Уровень 1 - менее привелигерованный и запреты, установленные на уровне 0 действуют для уровня 1. Уровень 2 - ещё менее привелигерованный, а 3-й - имеет самый низкий приоритет. Таким образом, оптимальная схема работы программ по уровням привилегий будет следующая: уровень 0: ядро операционной системы, уровень 1: драйвера ОС, уровень 2: интерфейс ОС, уровень 3: прикладные программы.
Уровни привилегий 1, 2 и 3 подчиняются условиям, установленным на уровне 0, поэтому функционально эти четыре уровня можно разделить на 2 группы: уровень привилегий системы (0) и уровни пользователя (1, 2 и 3). На первый взгляд кажется, что проще было бы реализовать всего два уровня привилегий - системный и пользовательский, но со временем вы обнаружите, что четыре уровня привилегий - это очень удобно и гораздо лучше двух.
Процессоры Intel в реальном режиме Процессор Intel x86 после включения питания оказывается в так называемом режиме реальной адресации памяти, или просто реальном режиме. Большинство операционных систем сразу же переводят его в защищенный режим, позволяющий им обеспечивать многозадачность, распределение памяти и другие функции. Пользовательские программы в таких операционных системах часто работают еще в одном режиме, режиме V86, из которого им доступно все то же, что и из реального, кроме команд, относящихся к управлению защищенным режимом. Таким образом, эта глава описывает не только реальный режим, но и V86, то есть все то, что доступно программисту, если он не проектирует операционную систему или DPMI-сервер, в подавляющем большинстве случаев.
Адресация в защищенном режиме Прежде чем познакомиться с программированием в защищенном режиме, рассмотрим механизм адресации, применяющийся в нем. Так же ка! и в реальном режиме, адрес складывается из адреса начала сегмента и относительного смещения, но если в реальном режиме адрес начала сегмента просто лежал в соответствующем сегментном регистре, деленый на 16, то в защищенном режиме не все так просто.
