Помощничек
Главная | Обратная связь


Археология
Архитектура
Астрономия
Аудит
Биология
Ботаника
Бухгалтерский учёт
Войное дело
Генетика
География
Геология
Дизайн
Искусство
История
Кино
Кулинария
Культура
Литература
Математика
Медицина
Металлургия
Мифология
Музыка
Психология
Религия
Спорт
Строительство
Техника
Транспорт
Туризм
Усадьба
Физика
Фотография
Химия
Экология
Электричество
Электроника
Энергетика

Взаимодействие элементов при работе микропроцессора



Работой МП управляет программа, записанная в ОП ЭВМ. Адрес очередной команды хранится в счетчике команд IP (Instruction Pointer) и в одном из сегментных регистров, чаще всего в CS. Каждый из них в реальном режиме имеет длину 16 бит, тогда как физический адрес ОП должен иметь длину 20 бит. Несогласованность длины машинного слова (16 бит) и длины физического адреса ОП (20 бит) приводит к тому, что в командах невозможно указать физический адрес ОП - его приходится формировать, собирать из разных регистров МП в процессе работы.

В реальном режиме вся ОП делится на сегменты (длина сегмента - 64 Кбайта). Адрес ОП разделяется на две части: номер сегмента в ОП (база сегмента) и номер ячейки внутри данного сегмента (смещение относительно начала сегмента). Базовый адрес сегмента образуется добавлением к номеру сегмента справа четырех нулей. Поскольку последние четыре разряда абсолютного (физического) адреса сегмента всегда нулевые, сегмент может начинаться не с любой ячейки ОП, а только с “параграфа” - начала 16-байтного блока ОП. В структуре микропроцессора имеется несколько регистров сегментов, например в i8086 - четыре:

С S - программный сегмент;

DS - сегмент данных (информационный сегмент);

SS - стековый сегмент;

ES - расширенный сегмент (дополнительный сегмент данных).

Номер ячейки внутри сегмента (смещение) называется также исполнительным адресом. В большинстве случаев в адресной части команды указывается именно исполнительный адрес - номер сегмента чаще всего подразумевается по умолчанию. Однако допускается указание и полного адреса ОП в виде префиксной структуры: “сегмент: смещение”. Если сегмент в команде не указывается, значит, работа ведется внутри текущего сегмента (характер выполняемой работы и какой из сегментных регистров определяет текущую базу сегмента, зависят от вида выполняемой команды).

Номер сегмента так же, как и смещение, имеет длину 2 байта. При вычислении физического адреса ОП сегмент и смещение суммируются, но сегмент перед суммированием сдвигается влево на 4 бита. В результате суммирования образуется физический адрес ОП длиной 20 бит.

В защищенном режиме базовые адреса сегментов хранятся в дескрипторных таблицах и имеют длину 24 или 32 бита (в зависимости от типа МП). В сегментных же регистрах хранится селектор, содержащий номер дескрипторной таблицы и дескрипторное смещение, т.е. порядковый номер дескриптора (в котором и хранится базовый адрес сегмента) в данной дескрипторной таблице.

Физический адрес очередной команды через внутреннюю магистраль МП и интерфейс памяти поступает на шину адреса системной магистрали. Одновременно из устройства управления (УУ) исполнительного блока на шину управления выдается команда (управляющий сигнал) в ОП, предписывающая выбрать число, находящееся по адресу, указанному в системной магистрали. Выбранное число, являющееся очередной командой, поступает из ОП через шину данных системной магистрали, интерфейс памяти, внутреннюю магистраль МП на регистр команд (INST).

Из команды в регистре команд выделяется код операции, который поступает в УУ исполнительного блока для выработки управляющих сигналов, настраивающих микропроцессор на выполнение требуемой операции.

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

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

7) Существует шесть типов исключительных ситуаций FPU:

недействительная операция (#I)

стековые операции (#IS)

арифметические операции (#IA)

денормализованный операнд (#D)

деление на нуль (#Z)

переполнение (#O)

антипереполнение (#U)

неточный результат (#P)

Каждому исключению соответствует флаг индикации в регистре состояния FPU (SW) и бит маски в регистре управления FPU (CW). Биты маски используются для разрешения/запрещения соответствующих исключений, а флаги для их индикации.

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

В современных процессорах (Intel286 …) предусмотрено два механизма сообщения процессору о возникновении исключения FPU.

8)Скалярный процессор — это простейший класс микропроцессоров. Скалярный процессор обрабатывает один элемент данных за одну инструкцию (SISD, Single Instruction Single Data), типичными элементами данных могут быть целые или числа с плавающей запятой. В векторных процессорах (SIMD, Single Instruction Multiple Data), в отличие от скалярных, одна инструкция работает с несколькими элементами данных.

 




Поиск по сайту:

©2015-2020 studopedya.ru Все права принадлежат авторам размещенных материалов.