Реферат: Моделирование процедур выборки операндов для системы команд 32-разрядных процессоров - текст реферата. Скачать бесплатно.
Банк рефератов, курсовых и дипломных работ. Много и бесплатно. # | Правила оформления работ | Добавить в избранное
 
 
   
Меню Меню Меню Меню Меню
   
Napishem.com Napishem.com Napishem.com

Реферат

Моделирование процедур выборки операндов для системы команд 32-разрядных процессоров

Банк рефератов / Программирование

Рубрики  Рубрики реферат банка

закрыть
Категория: Реферат
Язык реферата: Русский
Дата добавления:   
 
Скачать
Архив Zip, 241 kb, скачать бесплатно
Обойти Антиплагиат
Повысьте уникальность файла до 80-100% здесь.
Промокод referatbank - cкидка 20%!

Узнайте стоимость написания уникальной работы




Московский Государственный Институт Электроники и Математики













Курсовая работа

по дисциплине

«Организация ЭВМ»

на тему

«Моделирование процедур выборки операндов для системы команд 32-разрядных процессоров»







Преподаватель: Выполнил:

Иванова Е. М. студент группы С-33

Бондарева А.В.










Москва 2003 г.








Содержание курсовой работы:

1. Задание для курсовой работы. 3

Алгоритм выполнения команды. 3

2. Постановка задачи. 3

2.1. Дано. 3

2.2. Требуется. 3

2.3. Ограничения. 4

3. Метод решения. 4

Эффективный адрес 5

Линейный адрес 5

Физический адрес 7

4. Описание алгоритма. 9

Укрупненный алгоритм выполнения команды DIV WORD PTR A[EBX][ESI]. 9

Алгоритм формирование базового адреса селектора DS с применением глобальной таблицы дескрипторов. 10

Формирование базового адреса селектора DS с применением локальной таблицы дескрипторов. 11

Вычисление базового адреса локальной таблицы. 12

Вычисление базового адреса сегмента данных. 13

Формирование физического адреса 14

Выполнение операции логического сложения 15

5. Вывод. 16





































  1. Задание для курсовой работы.

Составить алгоритм процедуры выборки операндов из оперативной памяти в защищенном режиме работы процессора для заданного механизма страничной переадресации и заданной команды ассемблера из системы команд 32-разрядных процессоров.


Номер варианта — 19.

Механизм страничной переадресации — PAE-4Кб.

Режимы адресации — базово-индексный со смещением.

Комманда ассемблера — DIV (DIVide unsigned) – беззнаковое деление операндов делимое и делитель.


Действие: делимое задается неявно, и его размер зависит от размера делителя. Местоположение делимого, делителя, частного и остатка, в зависимости от из размера, показаны в следующей таблице.


Размер операнда

Делимое

Делитель

Частное

Остаток

Слово/байт

AX

r8/m8

AL

AH

Дв.слово/слово

DX:AX

r16/m16

AX

DX


Здесь r – регистр, m – ячейка памяти.

После выполнения команды флаги OF, SF, ZF, AF, PF, CF имеют неопределенные значения.

Использование в качестве делителя непосредственных операндов не допускается.

Алгоритм выполнения команды.

1. Выборка операнда делимое и копирование его в регистр-накопитель.

  1. Выборка операнда делитель и непосредственное деление на него содержимого накопителя, причем частное и остаток записываются в регистры, указанные в таблице. Например, при делении слова (в регистре AX) на байт (в регистре или ячейке памяти) частное (8 бит) будет записано в регистр AL, а остаток (8 бит) – в регистр AH. Примечание. При делении на 0 возникает исключение #DE.


  1. Постановка задачи.

В соответствии с заданием необходимо описать алгоритм процедуры выборки операндов из оперативной памяти для команды div при базово-индексной адресации и PAE-4Кб механизмом страничной переадресации. Команда, удовлетворяющая таким условиям:

DIV WORD PTR A[EBX][ESI]

2.1. Дано.

Делитель находится в памяти с логическим адресом DS:A[EBX][ESI].

Делимое — в регистре AX, так как размер делителя — байт.

2.2. Требуется.

Из таблицы пункта 1 и заданной команды следует, что надо поместить частное от деления делимого на делитель в регистр AL, а остаток в регистр AH.

2.3. Ограничения.

1) Деление на ноль вызовет исключение #DE.

2) Попытка выполнения любой команды с операндом памяти, хотя бы один байт которого не умещается в данном сегменте, вызовет исключение #GP;

3) При невозможности обращения к требуемой странице памяти процессор вырабатывает исключение #PF (Page Fault – отказ страницы).

  1. Метод решения.

Так как делитель находиться в памяти, то для доступа к нему необходимо вычислить физический адрес этого операнда — то есть адрес ячейки памяти, в которой хранится значение делителя.



В общем случае эффективный адрес формируется суммированием компонентов Base, Index, Displacement с учетом множителя Scale:

EA = Base + IndexScale + Displacement

Для различных режимов адресации некоторые слагаемые могут отсутствовать. В режиме, определенным в 1 пункте (базово-индексный со смещение) значение множителя Scale равно 1. В команде указываются необходимые для получения эффективного адреса составляющие:

DIV WORD PTR A[EBX][ESI]

A – Displacement;

EBX – базовый регистр, содержащий Base;

ESI – индексный регистр, содержащий Index.

Логический или виртуальный адрес состоит из селектора сегмента и эффективного адреса, называемого также смещением offset. По умолчанию, для данных селектором сегмента является регистр DS.

Линейный адрес образуется сложением базового адреса сегмента с эффективным адресом. В защищенном режиме базовый адрес загружается из дескриптора, хранящегося в таблице, по селектору, загруженному в используемый сегментный регистр.

Физический адрес памяти образуется после преобразования линейного адреса блоком страничной переадресации. Он выводится на внешнюю шину адреса процессора.


Эффективный адрес

В соответствии с заданным режимом адресации (базово-индексная со смещением) эффективный адрес будет формироваться по следующей схеме

EA = Base + Index + Displacement

Таким образом,

EA[031] := PrEBX[031] + PrESI[031] + A[031].

Линейный адрес



Для нахождения линейного адреса необходимо обратиться к селектору сегмента — в нашем случае мы обращаемся к сегменту данных, селектором которого является регистр DS[015]. В зависимости от значения флага TI (DS[2]) мы будем использовать глобальную (TI=0) или локальную(TI=1) таблицу дескрипторов.


Рассмотрим первый случай (TI=0). Адрес начала глобальной таблицы находится в регистре GDTR[1647]. Перед обращением к дескриптору сегмента, на который указывает DS[315], проверяется, не выходит ли указатель за рамки лимита GDTR[015], и не является ли указатель нулевым. В случае нулевого или превышающего лимит таблицы значения формируется прерывание #GP.

В случае корректного значения указателя происходит обращение к дескриптору сегмента, находящемуся в таблице. Дескрипторы имеют 8-байтный формат:


segment base — базовый адрес сегмента;

segment limit — лимит (граница) сегмента;

G (Granularity) — бит дробности, определяющий в каких единицах задан лимит: G=0 — в байтах, G=1 в страницах по 4 Кбайт (что и обеспечивает максимальную длину в 4 Гбайт);

P (Present) — бит присутствия в памяти. При P=1 сегмент отображен в физической памяти, при P=0 отображения нет и поля базового адреса и лимита не используются;

DPL (Descriptior Privilege Level) — атрибуты привилегий сегмента;

A (Accessed) — обращение. При А=0 — к сегменту не было обращения, А=1 — селектор данного сегмента загружался в регистр сегмента.

E (Expand down) — контролируемое направление расширения: E=0 — расширение вверх (для сегмента данных), E=1 — расширение вниз (стек)

B (Big) — определяет разрядность операндов по умолчанию: B=0 — задействуется 16-битный формат, B=0 — 32-битный формат.

W (Writeable) — разрешение (W=1) или запрет (W=0) записи данных в сегмент.


Обращение к находящимся в оперативной памяти таблицам происходит только при загрузке селектора сегмента. Полученная информации записывается в связанный с сегментным регистром скрытый регистр SDC (Segment Descriptor Cache).


И тогда линейный адрес будет формироваться следующим образом:

LA[031] = SDC[6495] + EA[031].

В случае, если TI = 1 и используется локальная таблица дескрипторов, необходимо вычислить адрес локальной таблицы, селектор которой находиться в регистре LDTR[015] (для этого регистра LDTR[2] — TI всегда равно 0). То есть аналогичным образом проверяем указатель LDTR[015], и если его значение не 0 и не больше лимита таблицы GDTR[015](иначе инициируется прерывание #GP), обращаемся к соответствующему дескриптору LDT, структура которого аналогична дескриптору сегмента данных.



Данные дескриптора LDT копируются в теневой регистр LDTR. И используя этот регистр, находим дескриптор сегмента данных по индексу DS[315] в локальной таблицы, проверяя соответственно индекс на предмет превышения границы лимита. Если указатель корректен, мы получаем доступ к дескриптору сегмента данных, из которого в SDC регистра DS будет записана информация о сегменте (базовый адрес, граница и атрибуты).

В итоге, в том (TI=0) и другом (TI=1) случае линейный адрес будет равен:

LA[031] = SDC[6495] + EA[031]

Физический адрес

Физический адрес получается из линейного в блоке страничной переадресации.

Заданный режим страничной переадресации — PAE-4Кб.


PAE-4Кб механизм страничной переадресации имеет три части: каталог страниц (Page Directory), таблицу страниц (Page Table) и собственно страницы (Page Frame) и включается установкой бита PG=1 в регистре CR0. Регистр CR3 содержит старшие 20 бит (CR3[1231]) физического адреса каталога страниц (младшие 12 бит адреса всегда нулевые).

Каталог страниц размером 4 Кбайта содержит 1024 32-битных строки PDE (Page Directory Entry). Каждая строка содержит 20 старших бит адреса таблицы следующего уровня (младшие 12 бит этого адреса тоже всегда нулевые) и атрибуты этой таблицы. Индексом поиска в каталоге страниц являются 10 старших бит линейного адреса LA[3122].

В случае, если нулевой бит присутствия P строки, соответствующей данному индексу LA[3122], равен нулю, то это означает, что таблица страниц не находиться в оперативной памяти и инициируется исключение #PF. В результате запускается обработчик исключений, который должен принять меры по загрузке затребованной страницы в оперативную память.

Каждая таблица страниц также имеет 1024 строки PTE (Page Table Entry), которые содержат базовый физический адрес (точнее старшие 20 бит этого адреса) и атрибуты самих страниц. Индексом поиска в таблицы являются биты линейного адреса LA[2112]. В случае, если в найденной строке нулевой бит присутствия P=0 , аналогичным образом происходит подкачка страницы в память.

После определения базового адреса страницы, к нему прибавляется 12-битной смещение LA[110] и получается физический адрес операнда.


Делимое явно не указывается в команде, но при этом оно находится в регистровой паре DX:AX.

Таким образом, получен физический адрес делителя, а также известно местонахождения делимого. Следовательно, можно выполнять операцию деления:

  1. Копирование операндов в блок регистров АЛУ.

  2. Проверка делителя на предмет его равенства нулю (в этом случае инициируется прерывание #DE).

  3. Выполнение операции деления с получением результата в регистрах АЛУ

  4. Копирование полученного результата в указанные регистры общего назначения.

Опрерация деления выполняется в Арифметическо-Логическом Устройстве (АЛУ). Обобщенная структурная схема АЛУ (рис. 7) включает:

  • блок регистров для приема и размещения операндов и результатов;

  • операционный блок, в котором осуществляется преобразование операндов в соответствии с реализуемыми алгоритмами;

  • схемы контроля, обеспечивающие непрерывный оперативный контроль и диагностирование ошибок;

  • блок управления (БУ), в котором после приема кода операции (КОП) из центрального устройства управления формируются управляющие сигналы (УС), координирующие взаимодействие всех узлов АЛУ между собой и с другими блоками процессора.

Данные поступают из Регистров Общего Назначения (РОН) или КЭШа данных и под управлением БУ над ними выполняются операции поступающие на вход БУ. В случае получения результата, он отправляются в РОН или КЭШ данных, в противоположном случае Схема Контроля отправляет сигнал об ошибке процессору.


  1. Описание алгоритма.

Укрупненный алгоритм выполнения команды DIV WORD PTR A[EBX][ESI].

Для выполнения команды деления необходимо произвести выборку операнда-делителя из оперативной памяти (второй операнд-делимое находится в регистровой паре DX:AX). Эту операцию осуществляют первые 3 этапа следующего алгоритма:



Вычисление эффективного адреса



Вычисление линейного адреса













Вычисление физического адреса

Выполнение операции








После вычисление физического адреса, который выставляется на шину данных, происходит выполнение операции деления и запись результата в регистры DX и AX.

Алгоритм формирование базового адреса селектора DS с применением глобальной таблицы дескрипторов.





Формирование базового адреса селектора DS с применением локальной таблицы дескрипторов.

Так как этот алгоритм достаточно сложен, то разобьем представим его укрупненный алгоритм с последующей детализацией:
















Алгоритмы для вычисления базового адреса локальной таблицы и вычисление базового сегмента данных аналогичны алгоритму формирования базового адреса селектора DS с применением глобальной таблицы дескрипторов































Вычисление базового адреса локальной таблицы.




Вычисление базового адреса сегмента данных.






Формирование физического адреса

















Выполнение операции логического сложения















  1. Вывод.

В результате выполнения курсового проекта составлен алгоритм выборки операндов из оперативной памяти в защищенном режиме работы процессора для заданного механизма страничной переадресации и заданной команды ассемблера из системы команд 32-разрядных процессоров. В результате проделанной работы разработан алгоритм вычисления эффективного, линейного, физического адресов, а также алгоритм выполнения команды DIV. Закреплены навыки составления алгоритмов процедур с использованием языка микроопераций и блок-схемы, а также принципы грамотного составления пояснительной записки и технического задания.

1Авиация и космонавтика
2Архитектура и строительство
3Астрономия
 
4Безопасность жизнедеятельности
5Биология
 
6Военная кафедра, гражданская оборона
 
7География, экономическая география
8Геология и геодезия
9Государственное регулирование и налоги
 
10Естествознание
 
11Журналистика
 
12Законодательство и право
13Адвокатура
14Административное право
15Арбитражное процессуальное право
16Банковское право
17Государство и право
18Гражданское право и процесс
19Жилищное право
20Законодательство зарубежных стран
21Земельное право
22Конституционное право
23Конституционное право зарубежных стран
24Международное право
25Муниципальное право
26Налоговое право
27Римское право
28Семейное право
29Таможенное право
30Трудовое право
31Уголовное право и процесс
32Финансовое право
33Хозяйственное право
34Экологическое право
35Юриспруденция
36Иностранные языки
37Информатика, информационные технологии
38Базы данных
39Компьютерные сети
40Программирование
41Искусство и культура
42Краеведение
43Культурология
44Музыка
45История
46Биографии
47Историческая личность
 
48Литература
 
49Маркетинг и реклама
50Математика
51Медицина и здоровье
52Менеджмент
53Антикризисное управление
54Делопроизводство и документооборот
55Логистика
 
56Педагогика
57Политология
58Правоохранительные органы
59Криминалистика и криминология
60Прочее
61Психология
62Юридическая психология
 
63Радиоэлектроника
64Религия
 
65Сельское хозяйство и землепользование
66Социология
67Страхование
 
68Технологии
69Материаловедение
70Машиностроение
71Металлургия
72Транспорт
73Туризм
 
74Физика
75Физкультура и спорт
76Философия
 
77Химия
 
78Экология, охрана природы
79Экономика и финансы
80Анализ хозяйственной деятельности
81Банковское дело и кредитование
82Биржевое дело
83Бухгалтерский учет и аудит
84История экономических учений
85Международные отношения
86Предпринимательство, бизнес, микроэкономика
87Финансы
88Ценные бумаги и фондовый рынок
89Экономика предприятия
90Экономико-математическое моделирование
91Экономическая теория

 Анекдоты - это почти как рефераты, только короткие и смешные Следующий
5 признаков того, что Новый год наступил:
1. Вы любите салат без конфетти, а его нет.
2. На календаре уже 14 января.
3. Вы не можете вспомнить число Пить...…
4. К вам пришел Дед Мороз, чтобы забрать потерянную бороду.
5. Вы вспомнили, кого именно собирались не забыть заблаговременно поздравить с Новым годом.
Anekdot.ru

Узнайте стоимость курсовой, диплома, реферата на заказ.

Обратите внимание, реферат по программированию "Моделирование процедур выборки операндов для системы команд 32-разрядных процессоров", также как и все другие рефераты, курсовые, дипломные и другие работы вы можете скачать бесплатно.

Смотрите также:


Банк рефератов - РефератБанк.ру
© РефератБанк, 2002 - 2017
Рейтинг@Mail.ru