Читайте также:
|
|
IF (Interrupt Flag) – флаг разрешения прерывания. Флаг IF устанавливается и сбрасывается программно самим пользователем. Установкой этого флага (IF=1) пользователь разрешает процессору реагировать на поступление запросов маскируемых прерываний, поступающих от внешних источников по входу INTR. На другие типы прерываний состояние этого флага не влияет. Установка этого флага осуществляется командой STI (Set Interrupt), а сброс – командой CLI (Clear Interrupt).
DF (Direction Flag) – флаг направления. Применяется этот флаг при использовании команд обработки строк, элементы которых адресуются с помощью индексных регистров SI и DI. При DF=0 индексные регистры инкрементируются после каждого выполнения строковой команды, и обработка строк происходит по элементам (байтам или словам) от младших адресов к старшим. При DF=1 индексные регистры после каждого выполнения строковой команды декрементируются, и обработка строк происходит от старших адресов к младшим. Флаг DF устанавливается и сбрасывается программно с помощью команд STD (Set Direction) и CLD (Clear Direction), соответственно. Автоматическое инкрементирование и декрементирование содержимого регистров SI и DI при выполнении строковых команд позволяет существенно увеличить быстродействие этих операций и, следовательно, и производительность работы процессора при их использовании.
TF (Trace Flag) – флаг трассировки. При TF =1 процессор переходит в покомандный (пошаговый) режим работы, применяемый при отладке программ. После выполнения каждой команды автоматически генерируется сигнал внутреннего прерывания, процедура обработки которого обычно обеспечивает индикацию содержимого всех внутренних регистров процессора. Управление этим флагом осуществляется опосредованно, путем пересылки содержимого регистра флагов через стек в какой-либо регистр общего назначения, установки требуемого значения восьмого бита и обратной пересылки сформированного кода в регистр флагов.
После каждой выполненной операции значения битов регистра флагов поступают в блок управления и синхронизации и определяют дальнейший ход алгоритма выполнения программы.
Управление процессом обработки информации в процессоре осуществляется под воздействием, распределенных в пространстве и во времени управляющих сигналов (УС), которые поступают на все узлы процессора из блока управления и синхронизации, от его микропрограммного устройства управления.
19. ПРИНЦИП ДЕМУЛЬТИПЛЕКСИРОВАНИЯ ШИНЫ АДРЕСОВ И ДАННЫХ В МП i8086/88
Обмен информацией между процессором и памятью может осуществляться байтами, словами а, в старших моделях процессоров семейства Х86, двойными словами и даже квадрословами (словами размером 8 байт). Выборка всех этих единиц информации осуществляется всегда адресацией их младших байтов с указанием размерности выбираемой единицы. В процессорах i8086 обмен информацией предусмотрен только байтами или словами. В то же время сама основная память организована таким образом, что логически представляет собой линейную последовательность байт (см. рис.IX.5а). Два соседних байта образуют слово, причем младший байт слова имеет меньший адрес, а старший байт – больший. Адресом слова считается адрес его младшего байта. Таким образом, 20 – битовый адрес может рассматриваться и как адрес байта и как адрес слова.
Рис. IX.5 Организация памяти в системе с микропроцессором i8086
Физически же при использовании МП i8086 память компьютера организуется в виде последовательности слов (рис.IX.5б). При этом, при выборке, ненужные байты блокируются сигналами BHE# и A0.
Полная информация, необходимая для формирования физического адреса, как это было уже сказано выше, содержится в 4 байтном адресном объекте «сегмент: смещение», который называется логическим или виртуальным адресом, и содержит двухбайтный код, содержащийся в сегментном регистре, и двухбайтный код внутрисегментного смещения. Таким образом, для запоминания полного адреса требуется два слова памяти, причем слово с меньшим адресом всегда содержит смещение в сегменте, а слово с большим адресом – код, содержащийся в сегментном регистре.
Слова данных, для экономии времени выполнения программы целесообразно размещать в памяти по четным адресам, так как процессор передает такие слова за один цикл шины. Слово с четным адресом называется выровненным на границе слов. Слова с нечетными адресами (не выровненные) также допустимы, но для их передачи требуется два цикла шины, что снижает производительность МП. Особенно важно иметь выровненные слова для операций со стеком, так как в них участвуют только слова. Следовательно, указатель стека SP необходимо всегда инициализировать на четный адрес.
Команды автоматически всегда выбираются словами по четным адресам, за исключением первой выборки после передачи управления по нечетному адресу, когда выбирается один байт. Однако поток команд разделяется на байты при заполнении очереди команд внутри МП, так что выравнивание команд не влияет на производительность и поэтому не используется. Следовательно, байты команд можно свободно размещать по любому адресу, что позволяет экономить память, благодаря ее более плотной упаковке.
При использовании процессоров i8086, 20 разрядов адресного кода и сигнал BHE записываются в регистр RG по положительному фронту сигнала ALE и хранятся там на все время машинного цикла обмена информации с оперативной памятью (см. рис.IX.4). Выходы регистра RG соединены с системной шиной адреса, к которой подключены адресные входы ОЗУ и периферийных устройств.
Параллельно, младшие 16 разрядов подаются на входы шинного формирователя BD (Bus Driver). Но, во время выдачи адресного кода входы шинного формирователя закрыты высоким уровнем (единичным состоянием) сигнала DEN (Date Enable), вследствие чего адресный код на шину данных не проходит.
После выдачи кода адреса и фиксирования его в регистре адреса RG, на объединенную шину адреса/данных процессор выдает 16 разрядное слово данных. Это слово передается на системную шину данных через шинный формирователь (двусторонний усилитель мощности) BD по низкому уровню сигнала DEN. При этом данные могут передаваться не только от процессора к ОЗУ, но и приниматься процессором от ОЗУ. Поэтому процессор, в зависимости от того происходит ли цикл записи информации в память, или цикл ее считывания из памяти, меняет направление передачи информации в BD путем генерирования управляющего сигнала DT/R# (Data Transmit/Receive). Во все время передачи данных входы регистра адреса RG закрыты.
Работа процессора разбивается на командные циклы, в течение которых выполняется одна какая-нибудь операция (команда). Основной смысл работы процессора заключается в последовательном выполнении команд заданной программы. Цикл выполнения одной команды в общем случае состоит из следующих действий.
1. Выборка очередной команды из оперативной памяти, где она размещена, и передача ее в регистры очереди команд.
2. Декодирование команды, т.е. определение того, какие действия должен осуществить процессор для ее выполнения.
3. Поскольку большинство команд осуществляет некоторые действия с операндами, которые, в большинстве случаев, размещены в основной памяти, то процессор, в таких случаях, должен еще раз обратиться к памяти и переслать эти операнды во внутренние регистры процессора (в свою регистровую память).
4. Осуществить требуемую операцию.
5. Переслать результат операции по адресу первого операнда для дальнейшего хранения.
Дата добавления: 2015-10-26; просмотров: 251 | Нарушение авторских прав
<== предыдущая страница | | | следующая страница ==> |
СТРУКТУРА БАЗОВОГО ПРОЦЕССОРА СЕМЕЙСТВА Х86 И НАЗНАЧЕНИЕ ЕГО ВЫВОДОВ | | | СИСТЕМЫ СЧИСЛЕНИЯ, ИСПОЛЬЗУЕМЫЕ В КОМПЬЮТЕРАХ И АЛГОРИТМЫ ПРИЕОБРАЗОВАНИЯ ИЗ ОДНОЙ СС В ДРУГУЮ |