Заглавная страница Избранные статьи Случайная статья Познавательные статьи Новые добавления Обратная связь FAQ Написать работу КАТЕГОРИИ: ТОП 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; просмотров: 575; Нарушение авторского права страницы; Мы поможем в написании вашей работы! infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 216.73.216.102 (0.008 с.) |