Заглавная страница Избранные статьи Случайная статья Познавательные статьи Новые добавления Обратная связь КАТЕГОРИИ: АрхеологияБиология Генетика География Информатика История Логика Маркетинг Математика Менеджмент Механика Педагогика Религия Социология Технологии Физика Философия Финансы Химия Экология ТОП 10 на сайте Приготовление дезинфицирующих растворов различной концентрацииТехника нижней прямой подачи мяча. Франко-прусская война (причины и последствия) Организация работы процедурного кабинета Смысловое и механическое запоминание, их место и роль в усвоении знаний Коммуникативные барьеры и пути их преодоления Обработка изделий медицинского назначения многократного применения Образцы текста публицистического стиля Четыре типа изменения баланса Задачи с ответами для Всероссийской олимпиады по праву Мы поможем в написании ваших работ! ЗНАЕТЕ ЛИ ВЫ?
Влияние общества на человека
Приготовление дезинфицирующих растворов различной концентрации Практические работы по географии для 6 класса Организация работы процедурного кабинета Изменения в неживой природе осенью Уборка процедурного кабинета Сольфеджио. Все правила по сольфеджио Балочные системы. Определение реакций опор и моментов защемления |
Лекция 6 Регистровая структура универсального МП
Цель лекции: рассмотреть состав, назначение и особенности использования различных групп регистров, входящих в состав универсального микропроцессора.
Состав, структура и назначение регистров микропроцессора являются важной чертой его архитектуры и во многом определяют его функциональные возможности. В универсальном тридцатидвух разрядном микропроцессоре выделяют следующие группы регистров: - основные функциональные регистры; - регистры процессора с плавающей точкой; - системные регистры; - регистры отладки и тестирования. Первые две группы регистров используются прикладными программами, последние две группы - системными программами, имеющими наивысший уровень привилегий. Основные функциональные регистры изображены на рисунке 6.1 В состав регистров этой группы входят: - регистры общего назначения; - регистр указателя команд; - регистр флагов; - сегментные регистры.
Блок состоит из восьми тридцатидвух разрядных регистров. К каждому из них можно обращаться как к одному двойному слову (32 разряда).
Рисунок 6.1-Основные функциональные регистры
Блок состоит из восьми тридцатидвух разрядных регистров. К каждому из них можно обращаться как к одному двойному слову (32 разряда). К младшим 16 разрядам регистров общего назначения можно обращаться так же, как и в шестнадцати разрядном микропроцессоре (АХ, BX...SP). Регистры общего назначения изображены на рисунке 6.2. Рисунок 6.2 – Регисты общего назначения Четыре шестнадцатиразрядных регистра АХ, ВХ, СХ, DX допускают обращение отдельно к своему старшему и младшему байту. Тем самым регистры позволяют на программном уровне работать либо с восемью тридцатидвух разрядными, либо с восемью шестнадцатиразрядными, либо с восемью восьмиразрядными регистрами. Регистры общего назначения используются для хранения промежуточных результатов вычислений и составных частей адреса при различных режимах адресации операндов, расположенных в памяти. Кроме того, ряд регистров этого блока имеют свое, присущее только им назначение: - EAX/AX/AL - регистр-аккумулятор, используется для сокращения длины команды при работе с непосредственными операндами; - AX/AL - приемник (источник) данных в командах ввода (вывода) данных из (в) внешнего устройства;
- DX - определяет адрес ВУ в командах ввода (вывода) данных; - ЕСХ - используется в качестве счетчика циклов в командах циклов; - BP, SP - используются при работе со стеком; - ESI, EDI (DI, SI) - определяют положение строк в памяти в командах обработки строк. Регистр указателя команд и регистр флагов имеют длину 32 разряда. Младшее слово каждого из этих регистров (разряды 0-15) функционально соответствует аналогичным разрядам в шестнадцатиразрядном микропроцессоре, изображенном на рисунке 6.3. Рисунок 6.3 – Регистр указателя команд и регистр флагов Регистр указателя команд EIP хранит смещение адреса команд относительно начала сегмента кода (сегмента команд). Регистр флагов EFLAGS содержит признаки результата выполненной команды, а также разряды, управляющие работой микропроцессора: обработкой маскированных прерываний, последовательностью вызываемых задач, вводом-выводом и рядом других действий. Из этих флагов рассмотрим только наиболее значимые и интересные с точки зрения дальнейшего изучения работы микропроцессора. К битам состояния регистра флагов относятся: - ZF - признак нуля результата (ZF = 1, если все разряды результата равны 0); - SF - знак результата (SF = 1, если старший разряд результата равен 1, то есть если результат отрицательный); - OF - признак переполнения (OF = 1, если при выполнении арифметических операций над числами со знаком происходит переполнение разрядной сетки); - CF - флаг переноса (CF = 1, если выполнение операции - сложения приводит к переносу за пределы разрядной сетки), устанавливается также в некоторых других операциях; - PF - признак четности (дополняет до нечетного числа единиц младший байт результата); - AF - флаг полупереноса (используется при операциях над двоичнодесятичными числами); - DF - устанавливается пользователем и определяет порядок обработки строк символов в соответствующих командах: декремент (при DF = 1) или инкремент (при DF = 0) содержимого индексных регистров ESI, EDI (SI, DI) после обработки одного символа. В состав флагов управления входят: - IF - флаг прерываний (при IF = 1 разрешается обработка
- маскированных аппаратных прерываний);
- TF - флаг ловушки, или трассировки (при TF = 1 после выполнения каждой команды возникает прерывание, используемое отладчиками;); - NT - бит вложенной задачи (показывает, что данная задача была вызвана из другой программы, аналогично подпрограмме, и возврат из этой задачи должен проводиться по механизму переключения задач); - IOPL - 2-разрядное поле уровня привилегий ввода/вывода (определяет уровень привилегий программ, которым разрешено выполнение операции ввода-вывода); - VM - режим виртуального микропроцессора i8086 (при работе микропроцессора в защищенном режиме установка VM = 1 вызывает переключение в режим виртуального микропроцессора i8086; в этом случае микропроцессор функционирует как быстрый МП i8086, но реализует механизмы защиты памяти, страничной адресации и ряд других дополнительных возможностей; бит VM может быть установлен только в защищенном режиме). Блок сегментных регистров состоит из шести шестнадцатиразрядных регистров, которые указывают на различные сегменты, расположенные в памяти компьютера: - CS (Code Segment) - сегмент кода программы; - DS (Data Segmen t)- сегмент данных; - SS (Stack Segment)- сегмент стека; - ЕS, FS, GS - дополнительные сегменты данных. При работе микропроцессора в реальном режиме в сегментном регистре содержатся старшие 16 разрядов 20-разрядного базового адреса сегмента. Физический адрес начала сегмента получается умножением этой величины на 16:
Абаз.сегм=(сегментный регистр)*16
Получающийся 20-разрядный адрес позволяет адресовать память емкостью 220 байт = 1 Мбайт. При этом сегменты имеют постоянную длину 2 байт. Разработчики первых персональных компьютеров полагали, что оперативная память, большая чем 1 Мбайт, никогда не потребуется пользователю, поэтому вся архитектура строилась исходя именно из этого положения. При переходе к тридцатидвух разрядной архитектуре стало необходимым обеспечить возможность адресации памяти емкостью до 2 байт. Кроме того, введение защищенного режима работы микропроцессора потребовало хранения большого количества дополнительной информации о сегменте: его длине, которая стала переменной, уровне привилегий, его типе и т. д. Простое увеличение разрядности сегментных регистров до 32 бит не обеспечило бы возможности хранения всей этой информации. Поэтому все данные о сегменте стали размещаться в специальных структурах - дескрипторах (описателях) сегментов, которые хранятся в таблицах дескрипторов, расположенных в памяти, а сегментные регистры, сохранив свою первоначальную длину в 16 разрядов, содержат так называемый селектор (указатель), который используется для того, чтобы найти нужный дескриптор в этих таблицах. К этой группе регистров, изображенных на рисунке 6.4, относятся: - регистры данных; - регистры тегов; - регистр состояния; - указатели команд и данных FPU; - регистр управления FPU.
Рисунок 6.4 – Структура регистров процессора с плавающей точкой
Блок регистров данных. Доступен либо как стек (его вершина ТОР определена в регистре состояний FPU), либо как набор пронумерованных регистров. Старший разряд 80-разрядного регистра данных кодирует знак мантиссы хранящегося в нем числа с плавающей точкой. Следующее поле отведено под кодирование порядка. Порядок представлен в виде так называемого машинного, или смещенного, порядка (Псм) без знака:
Псм= П +Δ,
где П - истинный порядок числа, Δ определяется следующим образом:
Δ = |-Пмакс|
При этом самый большой по модулю отрицательный истинный порядок преобразуется в нулевой смещенный, а все остальные истинные порядки преобразуются в положительные. Тем самым упрощаются операции обработки чисел с плавающей точкой. В последнем поле регистра данных записывается мантисса числа. Количество разрядов, отводимых под поле порядка и поле мантиссы, определяется регистром управления FPU. Данный блок может также использоваться для хранения двоичнодесятичных чисел. Они представляются в упакованной форме и содержат 18 тетрад, каждая из которых соответствует одному десятичному разряду. Регистр тегов. Определяет содержимое регистра данных с целью оптимизации обработки: - 00 - достоверное значение; - 01 - нуль (нулевое значение); - 10 - не-числа (например, бесконечность); - 11 - пусто (содержание регистров не определено). Операции с плавающей точкой требуют довольно много времени. Использование тегов позволяет в определенных случаях сократить время выполнения команды. Например, если известно, что один из сомножителей равен нулю, то произведению можно присвоить нулевое значение без выполнения каких-либо действий. Регистр состояния содержит указатель вершины блока данных, работающего в режиме стека (ТОР), признаки результата и ошибок, возникающих при выполнении операции в FPU, а также флаг переполнения и антипереполнения стека регистров данных. Регистр управления управляет округлением (к ближайшему значению, вниз, вверх, к нулю), точностью (длина мантиссы 24, 53 или 64 бита), а также содержит маску признаков ошибок, фиксируемых в регистре состояния. Указатели команд и данных содержат адрес команды, вызвавшей ошибку, и адрес использованного операнда. Эти регистры имеют 4-8- разрядный формат: 16 разрядов содержат селектор соответствующего сегмента, а остальные 32 разряда - смещение в нем. Системные регистры Системные регистры управляют функционированием микропроцессора в целом и режимами работы отдельных его блоков. Эти регистры доступны только в защищенном режиме для программ, имеющих максимальный уровень привилегий. Они включают в свой состав две группы регистров:
- регистры управления (CR0... CR4); - регистры системных адресов и системных сегментов. Регистр управления CR0 содержит биты, определяющие режим работы процессора: - РЕ - разрешение защиты: установка РЕ = 1 переводит микропроцессор в защищенный режим; - PG - включение страничной адресации памяти (при PG = 1 страничный механизм включен); - CD, NW - управление режимами работы внутренней кэш-памяти (CD = 1 - запрещение заполнения кэш-памяти; NW = 1 - запрет сквозной записи). Ряд бит (МР, ЕМ, TS, NE) управляют режимами работы FPU. Регистр CR1 был зарезервирован для последующего развития. Однако начиная с МП Pentium в микропроцессорах появился регистр управления CR4, а регистр CR1 таки остался зарезервированным. Регистр CR2 содержит линейный адрес, который вызвал страничную ошибку, например, отсутствие страницы в оперативной памяти или недостаточный уровень привилегий. В регистре CR3 находится базовый адрес каталога таблицы страниц (старшие 20 разрядов), а также биты PCD и PWT, управляющие работой кэш-памяти при страничной адресации (при PCD = 1 загрузка содержимого страницы в кэш-память запрещена; при PWT = 1 реализуется режим сквозной записи, а при PWT = 0 – обратной записи). Регистр CR4 содержит биты, обеспечивающие расширение функциональных возможностей микропроцессора, начиная с Pentium. В частности, он содержит следующие управляющие разряды: - VME, PVI - управляют работой виртуальных прерываний; - РАЕ - обеспечивает расширение физического адреса до 36 разрядов (при РАЕ = 1); PGE - определяет некоторые страницы (часто используемые или используемые несколькими процессорами) как глобальные (при PGE = 1); - PSE - расширяет размер адресуемых страниц до 4 Мбайт (при PSE = 1), при PSE = 0 сохраняет размер страницы 4 Кбайт. Регистры системных адресов и системных сегментов представлены на рисунке 6.5
Рисунок 6.5 - Структура регистров системных адресов и системных сегментов
В их число входят GDTR - регистр глобальной таблицы дескрипторов и IDTR - регистр таблицы дескрипторов прерываний. В этих регистрах определяются базовый адрес и размер соответствующей таблицы. К этой группе относятся также LDTR - регистр локальной таблицы дескрипторов и TR - регистр задач. Регистры LTDR и TR представляют собой селекторы, которые указывают на положение дескрипторов, описывающих соответственно сегмент, содержащий локальную таблицу дескрипторов, и сегмент состояния задачи (Task State Segment - TSS). Регистры отладки и тестирования - тридцатидвух разрядные регистры отладки (DR0... DR7) имеют следующее назначение: - DR0... DR3 - содержат линейные адреса 4 контрольных точек останова при отладке; - DR4 и DR5 зарезервированы; - DR6 - регистр состояния: показывает текущее состояние МП при останове в этих точках; - DR7 - регистр управления: задает условия останова в контрольных точках. Регистры DR4 и DR5 не используются. Регистры тестирования (TR3...TR7) используются при тестировании кэш-памяти и буфера ассоциативной трансляции адресов страниц (TLB). По мере развития архитектуры микропроцессора их количество расширилось и дополнилось новым содержанием. В частности, с помощью регистра TR12 можно запретить предсказание и трассировку ветвлений, параллельное выполнение инструкций и выполнить некоторые другие действия.
Контрольные вопросы: 1. Назначение и состав регистровой структуры универсального микропроцессора 2. Архитектурные особенности микропроцессора.
|
|||||||||
Последнее изменение этой страницы: 2021-02-07; просмотров: 334; Нарушение авторского права страницы; Мы поможем в написании вашей работы! infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 18.216.186.164 (0.05 с.) |