1.2 Адресация основной памяти
В процессоре 80386 возможны несколько режимов адресации основной памяти (смотри рисунок 1.2). Из них нам наиболее интересен реальный режим, в котором используется сегментная организация памяти
Сегментация - механизм адресации, обеспечивающий существование нескольких независимых адресных пространств как в пределах одной задачи, так и в системе в целом для защиты от взаимного влияния. В основе механизма сегментации лежит понятие сегмента, который представляет собой независимый поддерживаемый на аппаратном уровне блок памяти.
Каждая программа в общем случае может состоять из любого количества сегментов, но непосредственный доступ она имеет только к трем основным сегментам (кода, данных и стека), а также дополнительному сегменту данных. Программа никогда не знает, по каким физическим адресам будут размещены её сегменты. Этим занимается операционная система. Операционная система размещает сегменты программы в оперативной памяти по определенным физическим адресам, после чего помещает значения этих адресов в определенные места. Куда именно, зависит от режима работы процессора. Так, в реальном режиме эти адреса помещаются непосредственно в соответствующие сегментные регистры, а в защищенном режиме они размещаются в элементы специальной дескрипторной таблицы. Внутри сегмента программа обращается к адресам относительно начала сегмента линейно, то есть, начиная с нуля и заканчивая адресом, равным размеру сегмента. Этот относительный адрес, или смещение, который процессор использует для доступа к данным внутри сегмента, называется эффективным.
ПЭВМ 80386 |
||||
реальный режим (как 16-ти раз. 8086) |
защищенный режим |
виртуальный режим (как 8086, но подчиняемый защищенному режиму ) |
||
16-ти разрядный (80286) |
32-ух разрядный |
Рисунок 1.2 - Режимы работы процессора 80386.
В режиме реальной адресации микропроцессор реализует сегментную организацию памяти, при которой физический адрес ячейки памяти формируется путем сложения базового адреса сегмента и относительного адреса ячейки внутри сегмента.
Так как микропроцессор оперирует логическими адресами, состоящими из сегмента и смещения, а оперативная память работает с линейными адресами, возникает необходимость преобразования логического адреса в линейный физический. Этой работой занимается СФА. Для получения физического адреса СФА сдвигает 16-ти битный сегмент влево на 4 разряда (тем самым, умножая его на 16) и прибавляет к этому числу 16-ти битное смещение. В результате получается 20-ти битный линейный физический адрес, необходимый для работы с оперативной памятью. На рисунке 1.3 показан пример вычисления 20-ти битного линейного физического адреса.
Таким образом, базовый адрес определяется содержимым 16-разрядного сегментного регистра. 20-разрядный базовый адрес формируется путем сдвига содержимого сегментного регистра на четыре разряда влево, младшие четыре разряда базового адреса заполняются нулями.
Линейный адрес образуется посредством сложения 20-разрядного базового адреса и 16-разрядного относительного адреса. Полученный 20-разрядный линейный адрес выдается процессором на магистраль как физический адрес для выборки соответствующего байта.
ФИЗИЧЕСКИЙ АДРЕС = СЕГМЕНТ*16 + СМЕЩЕНИЕ:
Рисунок 1.3 - Пример формирования физического адреса
- 1. АНАЛИЗ СТРУКТУРЫ МИКРОПРОЦЕССОРА ПРОТОТИПА И АЛГОРИТМОВ ВЫПОЛНЕНИЯ ЗАДАННОГО ПОДМНОЖЕСТВА КОМАНД
- 1.1 Структура микропроцессора-прототипа
- 1.2 Адресация основной памяти
- 1.3 Анализ способов адресации операндов и алгоритмов выполнения заданного подмножества команд
- 2. ПОСТАНОВКА ЗАДАЧ ПРОЕКТА
- 2.1 Требования к структуре и интерфейсу гипотетического микропроцессора
- 2.2 Требования к структуре и интерфейсу АЛУ микропроцессора
- 2.3 Требования к структуре микро ЭВМ
- 3. РАЗРАБОТКА АЛУ МИКРОПРОЦЕССОРА
- 3.1 Разработка ОА для отдельных операций АЛУ
- 3.2 Разработка общего ОА АЛУ
- 3.3 Разработка микропрограмм выполнения операций в АЛУ
- 3.4 Разработка объединенной микропрограммы АЛУ
- 4. РАЗРАБОТКА ГИПОТЕТИЧЕСКОГО МИКРОПРОЦЕССОРA
- 4.1 Разработка структуры микропроцессора
- 4.2 Система команд микропроцессора
- 4.2.1 Команда ADD AL,imm8
- 4.2.2 Команда MUL r8
- 4.2.3 Команда DEC AL
- 4.2.4 Команда MOV r/m8,r8
- 4.2.5 Команда JMP (относительная адресация)
- 4.2.6 Команда JА (относительная адресация)
- 5. РАЗРАБОТКА СТРУКТУРЫ ЦЕНТРАЛЬНОЙ ЧАСТИ МИКРОЭВМ НА БАЗЕ ГИПОТЕТИЧЕСКОГО МИКРОПРОЦЕССОРА
- 5.1 Разработка структуры микроЭВМ
- 5.2 Организация шин микро-ЭВМ
- 5.3 Организация ОЗУ
- 5.4 Микропрограмма работы микро-ЭВМ
- 6. РАЗРАБОТКА ПРОГРАММЫ ЭМУЛЯЦИИ РАБОТЫ МИКРО-ЭВМ
- 6.1 Постановка задачи
- 6.2 Алгоритм работы программы эмуляции
- 6.3 Список процедур и функций
- 2.1 Требования к структуре и интерфейсу гипотетического микропроцессора
- 3 Разработка гипотетического микропроцессора
- 7 Разработка программы эмуляции работы микро эвм
- 5 Разработка гипотетического микропроцессора
- 1 Анализ структуры микропроцессора прототипа и алгоритмов выполнения заданного подмножества команд
- Приложение а техническое задание на разработку микроэвм
- Введение