Московский Государственный Институт Электроники и Математики Курсовая работа по дисциплине Организация ЭВМ на тему Моделирование процедур выборки операндов для системы команд 32-разрядных процессоров Преподаватель Выполнил Иванова Е. М. студент группы С-33 Бондарева А.В. Москва 2003 г. Содержание курсовой работы 1.
Задание для курсовой работы. 3 Алгоритм выполнения команды. 2. Постановка задачи. 3 2.1. Дано. 2. Требуется. 3. Ограничения. 3. Метод решения. 4 Эффективный адрес 5 Линейный адрес 5 Физический адрес 4. Описание алгоритма. 9 Укрупненный алгоритм выполнения команды DIV WORD
PTR AEBXES9 Алгоритм формирование базового адреса селектора DS с применением глобальной таблицы дескрипторов. 10 Формирование базового адреса селектора DS с применением локальной таблицы дескрипторов. 11 Вычисление базового адреса локальной таблицы. 12 Вычисление базового адреса сегмента данных. 13 Формирование физического адреса 14
Выполнение операции логического сложения 5. Вывод. 1. Задание для курсовой работы. Составить алгоритм процедуры выборки операндов из оперативной памяти в защищенном режиме работы процессора для заданного механизма страничной переадресации и заданной команды ассемблера из системы команд 32-разрядных процессоров. Номер варианта 19. Механизм страничной переадресации
PAE-4Кб. Режимы адресации базово-индексный со смещением. Комманда ассемблера DIV DIVide unsigned беззнаковое деление операндов делимое и делитель. Действие делимое задается неявно, и его размер зависит от размера делителя. Местоположение делимого, делителя, частного и остатка, в зависимости от из размера, показаны в следующей таблице. Размер операндаДелимоеДелительЧастноеОстатокСло вобайтAXr8m8ALAHДв.словословоDXAXr16m16A
XDX Здесь r регистр, m ячейка памяти. После выполнения команды флаги OF, SF, ZF, AF, PF, CF имеют неопределенные значения. Использование в качестве делителя непосредственных операндов не допускается. Алгоритм выполнения команды. 1. Выборка операнда делимое и копирование его в регистр-накопитель. 2. Выборка операнда делитель и непосредственное деление на него содержимого накопителя, причем частное
и остаток записываются в регистры, указанные в таблице. Например, при делении слова в регистре AX на байт в регистре или ячейке памяти частное 8 бит будет записано в регистр AL, а остаток 8 бит в регистр AH. Примечание. При делении на 0 возникает исключение DE. 2. Постановка задачи. В соответствии с заданием необходимо описать алгоритм процедуры выборки операндов
из оперативной памяти для команды div при базово-индексной адресации и PAE-4Кб механизмом страничной переадресации. Команда, удовлетворяющая таким условиям DIV WORD PTR AEBXESI 2.1. Дано. Делитель находится в памяти с логическим адресом DSAEBXESI. Делимое в регистре AX, так как размер делителя байт. 2. Требуется. Из таблицы пункта 1 и заданной команды следует, что надо поместить частное от деления
делимого на делитель в регистр AL, а остаток в регистр AH. 3. Ограничения. 1 Деление на ноль вызовет исключение DE. 2 Попытка выполнения любой команды с операндом памяти, хотя бы один байт которого не умещается в данном сегменте, вызовет исключение GP 3 При невозможности обращения к требуемой странице памяти процессор вырабатывает исключение PF Page Fault отказ страницы.
3. Метод решения. Так как делитель находиться в памяти, то для доступа к нему необходимо вычислить физический адрес этого операнда то есть адрес ячейки памяти, в которой хранится значение делителя. В общем случае эффективный адрес формируется суммированием компонентов Base, Index, Displacement с учетом множителя Scale EA Base IndexScale Displacement Для различных режимов адресации некоторые слагаемые могут отсутствовать.
В режиме, определенным в 1 пункте базово-индексный со смещение значение множителя Scale равно 1. В команде указываются необходимые для получения эффективного адреса составляющие DIV WORD PTR AEBXESI Index. Логический или виртуальный адрес состоит из селектора сегмента и эффективного адреса, называемого также смещением offset.
По умолчанию, для данных селектором сегмента является регистр DS. Линейный адрес образуется сложением базового адреса сегмента с эффективным адресом. В защищенном режиме базовый адрес загружается из дескриптора, хранящегося в таблице, по селектору, загруженному в используемый сегментный регистр. Физический адрес памяти образуется после преобразования линейного адреса блоком страничной переадресации. Он выводится на внешнюю шину адреса процессора.
Эффективный адрес В соответствии с заданным режимом адресации базово-индексная со смещением эффективный адрес будет формироваться по следующей схеме EA Base Index Displacement Таким образом, EA PrEBX PrESI A . Линейный адрес Для нахождения линейного адреса необходимо обратиться к селектору сегмента в нашем случае мы обращаемся к сегменту данных, селектором которого является регистр
DS . В зависимости от значения флага TI DS2 мы будем использовать глобальную TI0 или локальнуюTI1 таблицу дескрипторов. Рассмотрим первый случай TI0. Адрес начала глобальной таблицы находится в регистре GDTR . Перед обращением к дескриптору сегмента, на который указывает DS , проверяется, не выходит ли указатель за рамки лимита
GDTR , и не является ли указатель нулевым. В случае нулевого или превышающего лимит таблицы значения формируется прерывание GP. В случае корректного значения указателя происходит обращение к дескриптору сегмента, находящемуся в таблице. Дескрипторы имеют 8-байтный формат segment base базовый адрес сегмента segment limit лимит граница сегмента G Granularity бит дробности, определяющий в каких единицах задан лимит G0 в байтах, G1 в страницах по 4 Кбайт что и обеспечивает максимальную длину в 4
Гбайт P Present бит присутствия в памяти. При P1 сегмент отображен в физической памяти, при P0 отображения нет и поля базового адреса и лимита не используются DPL Descriptior Privilege Level атрибуты привилегий сегмента A Accessed обращение. При А0 к сегменту не было обращения, А1 селектор данного сегмента загружался в регистр сегмента.
E Expand down контролируемое направление расширения E0 расширение вверх для сегмента данных, E1 расширение вниз стек B Big определяет разрядность операндов по умолчанию B0 задействуется 16-битный формат, B0 32-битный формат. W Writeable разрешение W1 или запрет W0 записи данных в сегмент.
Обращение к находящимся в оперативной памяти таблицам происходит только при загрузке селектора сегмента. Полученная информации записывается в связанный с сегментным регистром скрытый регистр SDC Segment Descriptor Cache. И тогда линейный адрес будет формироваться следующим образом LA SDC EA . В случае, если TI 1 и используется локальная таблица дескрипторов, необходимо вычислить адрес локальной таблицы, селектор которой находиться в регистре
LDTR для этого регистра LDTR2 TI всегда равно 0. То есть аналогичным образом проверяем указатель LDTR , и если его значение не 0 и не больше лимита таблицы GDTR иначе инициируется прерывание GP, обращаемся к соответствующему дескриптору LDT, структура которого аналогична дескриптору сегмента данных. Данные дескриптора LDT копируются в теневой регистр
LDTR. И используя этот регистр, находим дескриптор сегмента данных по индексу DS в локальной таблицы, проверяя соответственно индекс на предмет превышения границы лимита. Если указатель корректен, мы получаем доступ к дескриптору сегмента данных, из которого в SDC регистра DS будет записана информация о сегменте базовый адрес, граница и атрибуты. В итоге, в том TI0 и другом TI1 случае линейный адрес будет равен
LA SDC EA Физический адрес Физический адрес получается из линейного в блоке страничной переадресации. Заданный режим страничной переадресации PAE-4Кб. PAE-4Кб механизм страничной переадресации имеет три части каталог страниц Page Directory, таблицу страниц Page Table и собственно страницы Page Frame и включается установкой бита PG1 в регистре CR0. Регистр CR3 содержит старшие 20 бит
CR3 физического адреса каталога страниц младшие 12 бит адреса всегда нулевые. Каталог страниц размером 4 Кбайта содержит 1024 32-битных строки PDE Page Directory Entry. Каждая строка содержит 20 старших бит адреса таблицы следующего уровня младшие 12 бит этого адреса тоже всегда нулевые и атрибуты этой таблицы. Индексом поиска в каталоге страниц являются 10 старших бит линейного адреса
LA . В случае, если нулевой бит присутствия P строки, соответствующей данному индексу LA , равен нулю, то это означает, что таблица страниц не находиться в оперативной памяти и инициируется исключение PF. В результате запускается обработчик исключений, который должен принять меры по загрузке затребованной страницы в оперативную память. Каждая таблица страниц также имеет 1024 строки PTE Page Table Entry, которые содержат базовый физический адрес точнее старшие 20 бит этого адреса и
атрибуты самих страниц. Индексом поиска в таблицы являются биты линейного адреса LA . В случае, если в найденной строке нулевой бит присутствия P0 , аналогичным образом происходит подкачка страницы в память. После определения базового адреса страницы, к нему прибавляется 12-битной смещение LA и получается физический адрес операнда. Делимое явно не указывается в команде, но при этом оно находится
в регистровой паре DXAX. Таким образом, получен физический адрес делителя, а также известно местонахождения делимого. Следовательно, можно выполнять операцию деления 1. Копирование операндов в блок регистров АЛУ. 2. Проверка делителя на предмет его равенства нулю в этом случае инициируется прерывание DE. 3. Выполнение операции деления с получением результата в регистрах АЛУ 4. Копирование полученного результата в указанные регистры общего назначения.
Опрерация деления выполняется в Арифметическо-Логическом Устройстве АЛУ. Обобщенная структурная схема АЛУ рис. 7 включает блок регистров для приема и размещения операндов и результатов операционный блок, в котором осуществляется преобразование операндов в соответствии с реализуемыми алгоритмами схемы контроля, обеспечивающие непрерывный оперативный контроль и диагностирование ошибок блок управления
БУ, в котором после приема кода операции КОП из центрального устройства управления формируются управляющие сигналы УС, координирующие взаимодействие всех узлов АЛУ между собой и с другими блоками процессора. Данные поступают из Регистров Общего Назначения РОН или КЭШа данных и под управлением БУ над ними выполняются операции поступающие на вход
БУ. В случае получения результата, он отправляются в РОН или КЭШ данных, в противоположном случае Схема Контроля отправляет сигнал об ошибке процессору. 4. Описание алгоритма. Укрупненный алгоритм выполнения команды DIV WORD PTR AEBXESI. Для выполнения команды деления необходимо произвести выборку операнда-делителя
из оперативной памяти второй операнд-делимое находится в регистровой паре DXAX. Эту операцию осуществляют первые 3 этапа следующего алгоритма После вычисление физического адреса, который выставляется на шину данных, происходит выполнение операции деления и запись результата в регистры DX и AX. Алгоритм формирование базового адреса селектора DS с применением глобальной таблицы дескрипторов. Формирование базового адреса селектора
DS с применением локальной таблицы дескрипторов. Так как этот алгоритм достаточно сложен, то разобьем представим его укрупненный алгоритм с последующей детализацией Алгоритмы для вычисления базового адреса локальной таблицы и вычисление базового сегмента данных аналогичны алгоритму формирования базового адреса селектора DS с применением глобальной таблицы дескрипторов Вычисление базового адреса локальной таблицы. Вычисление базового адреса сегмента данных.
Формирование физического адреса Выполнение операции логического сложения 5. Вывод. В результате выполнения курсового проекта составлен алгоритм выборки операндов из оперативной памяти в защищенном режиме работы процессора для заданного механизма страничной переадресации и заданной команды ассемблера из системы команд 32-разрядных процессоров. В результате проделанной работы разработан алгоритм вычисления эффективного, линейного, физического
адресов, а также алгоритм выполнения команды DIV. Закреплены навыки составления алгоритмов процедур с использованием языка микроопераций и блок-схемы, а также принципы грамотного составления пояснительной записки и технического задания.
! |
Как писать рефераты Практические рекомендации по написанию студенческих рефератов. |
! | План реферата Краткий список разделов, отражающий структура и порядок работы над будующим рефератом. |
! | Введение реферата Вводная часть работы, в которой отражается цель и обозначается список задач. |
! | Заключение реферата В заключении подводятся итоги, описывается была ли достигнута поставленная цель, каковы результаты. |
! | Оформление рефератов Методические рекомендации по грамотному оформлению работы по ГОСТ. |
→ | Виды рефератов Какими бывают рефераты по своему назначению и структуре. |