Разработка структуры гипотетического микропроцессора и центральной части МЭВМ на его базе. Эмуляция выполнения команд

Курсовой проект - Компьютеры, программирование

Другие курсовые по предмету Компьютеры, программирование

?тата четно.

AF - флаг вспомогательного переноса, устанавливается в 1, если при выполнении операции произошел перенос из 3 в 4 разряд результата или выполнился заем из 3 в 4 разряд. Используется для десятичной коррекции результата.

Арифметико-логическое устройство предназначено для выполнения арифметических, логических и сдвиговых операций над 8-, 16- и 32-разрядными кодами. Операнды поступают в АЛУ из регистров общего назначения и/или памяти. Результат операции возвращается в регистр общего назначения или в память.

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

Микрокомандное устройство управления: формирует сигналы управления работой устройства обработки.

Шина адреса состоит из 32 сигнальных линий, несущих адреса ячеек памяти и портов ввода/вывода. По каждой линии можно передать два возможных значения (0 или 1). Стандартный PC может использовать 2^32 физических адресов.

Системная шина (шина данных). Шина данных совместно с шиной адреса используется для передачи данных внутри PC. Единица передачи 1 байт. Шина данных состоит из 16 информационных линий, каждая передает одну двоичную цифру.

 

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.3 Анализ способов адресации операндов и алгоритмов выполнения заданного подмножества команд

 

Формат команды: ADD операнд1 операнд2.

В роли первого операнда может служить регистр и память, а в роли второго регистр, память и константа. Команда ADD выполняет сложение побитно, первый операнд служит для приема полученной суммы. Если результат операции превосходит размер операнда, то OF и CF устанавливаются в 1, иначе оба флага сбрасываются в ноль.

Формат команды: MUL операнд.

В роли операнда может служить регистр или память. MUL- целочисленное умножение без знака AL или AX на заданный операнд (регистр или переменная) и помещает результат в AX или AX:DX, соответственно. Если результат операции превосходит размер операнда, то OF и CF устанавливаются в 1, иначе оба флага сбрасываются

Формат команды: DEC о