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

Реферат

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

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

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

закрыть
Категория: Реферат
Язык реферата: Русский
Дата добавления:   
 
Скачать
Архив Zip, 241 kb, скачать бесплатно
Заказать
Узнать стоимость написания уникального реферата

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

17 Московский Государственный Институт Электроники и Математики Курсовая работа по дисциплине «Организация ЭВМ» на тему «Моделирование процедур выборки операндов для системы команд 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. Выборка операнда делимое и копирование его в регистр-накопитель. 2. Выборка операнда делитель и непосредственное деление на него содержимого накопителя, причем частное и остаток записываются в регистры, указанные в таблице. Например, при делении слова (в регистре AX ) на байт (в регистре или ячейке памяти) частное (8 бит) будет записано в регистр AL , а остаток (8 бит) – в регистр AH . Примечание. При делении на 0 возникает исключение # DE . 2. Постановка задачи. В соответствии с заданием необходимо описать алгоритм процедуры выборки операндов из оперативной памяти для команды 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 – отказ страницы). 3. Метод решения. Так как делитель находиться в памяти, то для доступа к нему необходимо вычислить физический адрес этого операнда — то есть адрес ячейки памяти, в которой хранится значение делителя. В общем случае эффективный адрес формируется суммированием компонентов Base , Index , Displacement с учетом множителя Scale : EA = Base + Index Scale + Displacement Для различных режимов адресации некоторые слагаемые могут отсутствовать. В режиме, определенным в 1 пункте (базово-индексный со смещение) значение множителя Scale равно 1. В команде указываются необходимые для получения эффективного адреса составляющие: DIV WORD PTR A [ EBX ][ ESI ] A – Displacement ; EBX – базовый регистр, содержащий Base ; ESI – индексный регистр, содержащий Index . Логический или виртуальный адрес состоит из селектора сегмента и эффективного адреса, называемого также смещением offset . По умолчанию, для данных селектором сегмента является регистр DS . Линейный адрес образуется сложением базового адреса сегмента с эффективным адресом. В защищенном режиме базовый адрес загружается из дескриптора, хранящегося в таблице, по селектору, загруженному в используемый сегментный регистр. Физический адрес памяти образуется после преобразования линейного адреса блоком страничной переадресации. Он выводится на внешнюю шину адреса процессора. Эффективный адрес В соответствии с заданным режимом адресации (базово-индексная со смещением) эффективный адрес будет формироваться по следующей схеме EA = Base + Index + Displacement Таким образом , EA[0 31] := PrEBX[0 31] + PrESI[0 31] + A[0 31]. Линейный адрес Для нахождения линейного адреса необходимо обратиться к селектору сегмента — в нашем случае мы обращаемся к сегменту данных, селектором которого является регистр DS [0 15] . В зависимости от значения флага TI ( DS [2]) мы будем использовать глобальную ( TI =0) или локальную ( TI =1) таблицу дескрипторов. Рассмотрим первый случай ( TI =0 ). Адрес начала глобальной таблицы находится в регистре GDTR [16 47] . Перед обращением к дескриптору сегмента, на который указывает DS [3 15] , проверяется, не выходит ли указатель за рамки лимита GDTR [0 15] , и не является ли указатель нулевым. В случае нулевого или превышающего лимит таблицы значения формируется прерывание # 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 [0 31] = SDC [64 95] + EA [0 31]. В случае, если TI = 1 и используется локальная таблица дескрипторов, необходимо вычислить адрес локальной таблицы, селектор которой находиться в регистре LDTR [0 15] (для этого регистра LDTR [2] — TI всегда равно 0). То есть аналогичным образом проверяем указатель LDTR [0 15] , и если его значение не 0 и не больше лимита таблицы GDTR [0 15] (иначе инициируется прерывание # GP ), обращаемся к соответствующему дескриптору LDT , структура которого аналогична дескриптору сегмента данных. Данные дескриптора LDT копируются в теневой регистр LDTR . И используя этот регистр, находим дескриптор сегмента данных по индексу DS [3 15] в локальной таблицы, проверяя соответственно индекс на предмет превышения границы лимита. Если указатель корректен, мы получаем доступ к дескриптору сегмента данных, из которого в SDC регистра DS будет записана информация о сегменте (базовый адрес, граница и атрибуты). В итоге, в том ( TI =0) и другом ( TI =1) случае линейный адрес будет равен: LA [0 31] = SDC [64 95] + EA [0 31] Физический адрес Физический адрес получается из линейного в блоке страничной переадресации. Заданный режим страничной переадресации — PAE -4Кб. PAE -4Кб механизм страничной переадресации имеет три части: каталог страниц ( Page Directory ) , таблицу страниц ( Page Table ) и собственно страницы ( Page Frame ) и включается установкой бита PG =1 в регистре CR 0 . Регистр CR 3 содержит старшие 20 бит ( CR 3[12 31] ) физического адреса каталога страниц (младшие 12 бит адреса всегда нулевые). Каталог страниц размером 4 Кбайта содержит 1024 32-битных строки PDE ( Page Directory Entry ) . Каждая строка содержит 20 старших бит адреса таблицы следующего уровня (младшие 12 бит этого адреса тоже всегда нулевые) и атрибуты этой таблицы. Индексом поиска в каталоге страниц являются 10 старших бит линейного адреса LA [31 22]. В случае, если нулевой бит присутствия P строки, соответствующей данному индексу LA [31 22], равен нулю, то это означает, что таблица страниц не находиться в оперативной памяти и инициируется исключение # PF . В результате запускается обработчик исключений, который должен принять меры по загрузке затребованной страницы в оперативную память. Каждая таблица страниц также имеет 1024 строки PTE ( Page Table Entry ) , которые содержат базовый физический адрес (точнее старшие 20 бит этого адреса) и атрибуты самих страниц. Индексом поиска в таблицы являются биты линейного адреса LA [21 12]. В случае, если в найденной строке нулевой бит присутствия P =0 , аналогичным образом происходит подкачка страницы в память. После определения базового адреса страницы, к нему прибавляется 12-битной смещение LA [11 0] и получается физический адрес операнда. Делимое явно не указывается в команде, но при этом оно находится в регистровой паре DX : AX . Таким образом, получен физический адрес делителя, а также известно местонахождения делимого. Следовательно, можно выполнять операцию деления: 1. Копирование операндов в блок регистров АЛУ. 2. Проверка делителя на предмет его равенства нулю (в этом случае инициируется прерывание # DE ). 3. Выполнение операции деления с получением результата в регистрах АЛУ 4. Копирование полученного результата в указанные регистры общего назначения. Опрерация деления выполняется в Арифметическо-Логическом Устройстве (АЛУ). Обобщенная структурная схема АЛУ (рис. 7) включает: — блок регистров для приема и размещения операндов и результатов; — операционный блок, в котором осуществляется преобразование операндов в соответствии с реализуемыми алгоритмами; — схемы контроля, обеспечивающие непрерывный оперативный контроль и диагностирование ошибок; — блок управления (БУ), в котором после приема кода операции (КОП) из центрального устройства управления формируются управляющие сигналы (УС), координирующие взаимодействие всех узлов АЛУ между собой и с другими блоками процессора. Данные поступают из Регистров Общего Назначения (РОН) или КЭШа данных и под управлением БУ над ними выполняются операции поступающие на вход БУ. В случае получения результата, он отправляются в РОН или КЭШ данных, в противоположном случае Схема Контроля отправляет сигнал об ошибке процессору. 4. Описание алгоритма. Укрупненный алгоритм выполнения команды DIV WORD PTR A [ EBX ][ ESI ] . Для выполнения команды деления необходимо произвести выборку операнда-делителя из оперативной памяти (второй операнд-делимое находится в регистровой паре DX : AX ) . Эту операцию осуществляют первые 3 этапа следующего алгоритма: После вычисление физического адреса, который выставляется на шину данных, происходит выполнение операции деления и запись результата в регистры DX и AX . Алгоритм формирование базового адреса селектора DS с применением глобальной таблицы дескрипторов. Формирование базового адреса селектора DS с применением локальной таблицы дескрипторов. Так как этот алгоритм достаточно сложен, то разобьем представим его укрупненный алгоритм с последующей детализацией: Алгоритмы для вычисления базового адреса локальной таблицы и вычисление базового сегмента данных аналогичны алгоритму формирования базового адреса селектора DS с применением глобальной таблицы дескрипторов Вычисление базового адреса локальной таблицы. Вычисление базового адреса сегмента данных. Формирование физического адреса Выполнение операции логического сложения 5. Вывод. В результате выполнения курсового проекта составлен алгоритм выборки операндов из оперативной памяти в защищенном режиме работы процессора для заданного механизма страничной переадресации и заданной команды ассемблера из системы команд 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Экономическая теория

 Анекдоты - это почти как рефераты, только короткие и смешные Следующий
Бог создал труд и обезьяну, чтоб получился человек. А вот с пингвином он не экспериментировал, тот сразу вышел хорошо.
Anekdot.ru

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

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

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


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