|
Раздел 5. Уровень архитектуры командУровень архитектуры команд расположен между микроархитектурным уровнем и уровнем операционной системы (Рис. 2.1). Исторически этот уровень развился прежде всех остальных уровней и изначально был единственным. Этот уровень имеет особое значение: он является связующим звеном между программным и аппаратным обеспечением. Конечно, можно было бы сделать так, чтобы аппаратное обеспечение сразу непосредственно выполняло программы, написанные на С, C++, FORTRAN или других языках высокого уровня, но это не очень хорошая идея – из чисто практических соображений компьютеры должны уметь выполнять программы, написанные на разных языках, а не только на одном. Тема 5.1. Уровень команд процессора Pentium II В результате изучения данной темы Вы будете:
Процессор Pentium II развивался на протяжении многих лет. Его история начинается от самых первых микропроцессоров. Основная архитектура команд обеспечивает выполнение программ, написанных для процессоров 8086 и 8088 (которые имеют одну и ту же архитектуру команд). С точки зрения программного обеспечения, компьютеры 8086 и 8088 были 16-разрядными машинами (хотя компьютер 8088 содержал 8-битную шину данных). Их последователь 80286 также был 16-разрядным. Его главным преимуществом был больший объем адресного пространства, хотя небольшое число программ использовали его, поскольку оно состояло из 16384 64 Кб сегментов, а не представляло собой линейную 224-бaйтнyю память. Это сильно осложняло процесс создания программ, манипулирующих большим количеством данных (более 64 Кб). Процессор 80386 был первой 32-разрядной машиной, выпущенной компанией Intel. Все последующие процессоры (80486, Pentium, Pentium Pro, Pentium II, Celeron, Xeon и т.д.) имеют точно такую же 32-разрядную архитектуру, которая называетсяIA-32, поэтому мы сосредоточим наше внимание именно на этой архитектуре. Единственным существенным изменением архитектуры со времен процессора 80386 было введение команд ММХ в более поздние версии системы Pentium и их включение в Pentium II и последующие процессоры. Pentium II имеет 3 операционных режима, в двух из которых он работает как 8086. Вреальном режиме все особенности, которые были добавлены к процессору со времен системы 8088, отключаются, и Pentium II работает как простой компьютер 8088. На следующей ступени находитсявиртуальный режим 8086, который делает возможным выполнение старых программ, написанных для 8088 с защитой от сбоев. Так, чтобы запустить старую программу 8088, операционная система создает специальную изолированную среду, которая работает как процессор 8088. Если программа дает сбой, операционной системе передается соответствующая информация и полного отказа системы не происходит. Последний режим – это защищенный режим, в котором Pentium II работает как Pentium II, а не как 8088. В этом режиме доступны 4 уровня привилегий, которые управляются битами во флаговом регистре. Уровень 0 соответствует привилегированному режиму на других компьютерах и имеет полный доступ к машине. Этот уровень используется операционной системой. Уровень 3 предназначен для пользовательских программ, он блокирует доступ к определенным командам и регистрам управления, чтобы ошибки какой-нибудь пользовательской программы не привели к поломке всей машины. Уровни 1 и 2 используются редко. Pentium II имеет огромное адресное пространство. Память разделена на 16384 сегмента, каждый из которых идет от адреса 0 до адреса 232-1. Однако большинство операционных систем (включая UNIX и все версии WINDOWS) поддерживают только один сегмент, поэтому большинство прикладных программ видят линейное адресное пространство в 232 байтов, а иногда часть этого пространства занимает сама операционная система. Каждый байт в адресном пространстве имеет свой адрес. Слова состоят из 32 битов. Байты нумеруются справа налево (то есть самый первый адрес соответствует самому младшему байту). Подведем итоги
Вопросы для самоконтроля Вспомните и назовите режимы работы процессора Pentium II. В чем заключаются особенности работы каждого режима? Тема 5.2. Регистры В результате изучения данной темы Вы будете:
Во всех компьютерах имеется несколько регистров, которые видны на уровне команд. Они нужны для того, чтобы контролировать выполнение программы, хранить временные результаты, а также для некоторых других целей. Обычно регистры, которые видны на микроархитектурном уровне, например, TOS и MAR (Рис. 4.10), не видны на уровне команд. Тем не менее, некоторые из них, например, счетчик команд и указатель стека, присутствуют на обоих уровнях. Регистры, которые видны на уровне команд, всегда видны на микроархитектурном уровне, поскольку именно там они реализуются. Регистры уровня команд можно разделить на две категории: специальные регистры и регистры общего назначения. Специальные регистры включают счетчик команд и указатель стека, а также другие регистры с особой функцией. Регистры общего назначения содержат ключевые локальные переменные и промежуточные результаты вычислений. Их основная функция состоит в том, чтобы обеспечить быстрый доступ к часто используемым данным (обычно избегая обращений к памяти). Регистры процессора Pentium II показаны на Рис. 5.1. Рис. 5.1. Основные регистры процессора Pentium II Первые четыре регистра ЕАХ, ЕВХ, ЕСХ и EDX 32-битные. Это регистры общего назначения, хотя у каждого из них есть определенные особенности:
Каждый из этих регистров имеет 16-разрядный регистр в младших 16 битах и 8-разрядный регистр в младших 8 битах. Данные регистры позволяют легко манипулировать 16-битными и 8-битными значениями соответственно. В компьютерах 8088 и 80286 есть только 8-битные и 16-битные регистры, 32-битные регистры появились в системе 80386 вместе с приставкой Е (Extended – расширенный). Следующие четыре регистра также являются регистрами общего назначения, но с большей степенью специализации. Регистры ESI и EDI предназначены для хранения указателей, особенно для команд манипулирования цепочками, где ESI указывает на входную цепочку, а EDI – на выходную цепочку. Регистр ЕВР тоже предназначен для хранения указателей. Обычно он используется для указания на основу текущего фрейма локальных переменных, такой регистр обычно называютуказателем фрейма. Наконец, регистр ESP – это указатель стека. Следующая группа регистров от CS до GS – сегментные регистры. Это регистры, оставшиеся от процессора 8088, который обращался к 220 байтам памяти, используя 16-битные адреса. Достаточно сказать, что когда Pentium II установлен на использование единого линейного 32-битного адресного пространства, эти регистры можно смело проигнорировать. Регистр EIP – это счетчик программ (Extended Instruction Pointer – расширенный указатель команд). Регистр ЕFLAGS – это флаговый регистр, содержащий различные биты, необходимые центральному процессору. Самые важные биты – этостатусные флаги, они устанавливаются в каждом цикле АЛУ и отражают состояние результата предыдущей операции. Из наиболее важных флагов можно выделить:
Коды условия очень важны, поскольку они используются при сравнениях и условных переходах. Например, команда СМР обычно вычитает один операнд из другого и устанавливает коды условия на основе полученной разности. Если операнды равны, то разность будет равна 0 и во флаговом регистре будет установлен бит Z. Последующая команда BEQ (Branch Equal – переход в случае равенства) проверяет бит Z и совершает переход, если он установлен. Помимо статусных флагов, регистр ЕFLAGS содержит управляющие флаги. Они указывают режим машины (например, пользовательский или привилегированный), трассовый бит (который используется для отладки), уровень приоритета процессора, а также статус разрешения прерываний. Флаговый регистр можно считать в пользовательском режиме, но некоторые поля могут записываться только в привилегированном режиме (например, бит, который указывает режим). Подведем итоги
Вопросы для самоконтроля 1. Назовите регистры общего назначения процессора Pentium II. 2. Назовите регистры специального назначения. 3. Объясните использование каждого регистра. 4. Назовите статусные флаги, когда они устанавливаются. Как Вы думаете, на какие флаги будут влиять следующие операции: · прибавить к содержимому регистра EAX число 24Fh; · циклически сдвинуть содержимое регистра EBX на 1 бит влево; · выполнить переход по адресу 10000000h? ____________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________ Что делает отдел по эксплуатации и сопровождению ИС? Отвечает за сохранность данных (расписания копирования, копирование и пр.)... Что способствует осуществлению желаний? Стопроцентная, непоколебимая уверенность в своем... Что будет с Землей, если ось ее сместится на 6666 км? Что будет с Землей? - задался я вопросом... ЧТО ТАКОЕ УВЕРЕННОЕ ПОВЕДЕНИЕ В МЕЖЛИЧНОСТНЫХ ОТНОШЕНИЯХ? Исторически существует три основных модели различий, существующих между... Не нашли то, что искали? Воспользуйтесь поиском гугл на сайте:
|