Назначение арифметических флагов.
CF — флаг переноса, фиксирует значение переноса (заема), возникающего при сложении {вычитании) байтов или слов, а также значение выдвигаемого бита при сдвиге операнда.
PF — флаг четности (или паритета), фиксирует наличие четного числа единиц в младшем байте результата операции, может быть использован, например, для контроля правильности передачи данных.
AF — флаг вспомогательного переноса, фиксирует перенос (заем) из младшей тетрады, т. е. из бита а3, в старшую при сложении (вычитании), используется только для двоично-десятичной арифметики, которая оперирует исключительно младшими байтами.
ZF — флаг нуля, сигнализирует о получении нулевого результата операции.
SF — флаг знака, дублирует значение старшего бита результата, который при использовании дополнительного кода соответствует знаку числа.
OF— флаг переполнения, сигнализирует о потере старшего бита результата сложения или вычитания в связи с переполнением разрядной сетки при работе СО знаковыми числами. При сложении этот флаг устанавливается в единицу,если происходит перенос в старший бит и нет переноса из старшего бита или имеется перенос из старшего бита, но отсутствует перенос в него; в противном случае флаг OF устанавливается в нуль. При вычитании он устанавливается в единицу, когда возникает заем из старшего бита, но заем в старший бит отсутствует либо имеется заем в старший бит, но отсутствует заем из него. Имеется специальная команда прерывания при переполнении, которая в указанных случаях генерирует программное прерывание.
Для управления некоторыми действиями МП предназначены три дополнительных флага.
DF — флаг направления, управляемый командами CLD и STD; определяет порядок обработки цепочек в соответствующих командах: от меньших адресов (DF = 0) или от больших (DF=1).
IF— флаг разрешения прерываний, управляемый с помощью команд CLI и ST1; при IF= 1 микропроцессор воспринимает (распознает) и соответственно реагирует на запрос прерывания по входу INTR; при IF = 0 прерывания по этому входу запрещаются (маскируются) и МП игнорирует поступающие запросы прерываний. Значение флага IF не влияет на восприятие внешних немаскируемых прерываний по входу NMI,а также внутренних (программных) прерываний, выполняемых по команде INT.
TF — флаг трассировки (прослеживания). При TF = 1 МП переходит в покомандный (пошаговый) режим работы, применяемый при отладке программ, когда автоматически генерируется сигнал внутреннего прерывания типа 1 (см. рис. 1.5) после выполнения каждой команды с целью перехода к соответствующей подпрограмме, которая обычно обеспечивает индикацию содержимого внутренних регистров МП. Команды установки или сброса флага TF отсутствуют, так что управление этим флагом осуществляется опосредованно, путем пересылки содержимого регистра флагов F через стек в общий регистр, установки требуемого значения восьмого бита и обратной пересылки сформированного слова в регистр F.
Управляющее устройство(УУ) дешифрует команды, а также воспринимает и вырабатывает необходимые управляющие сигналы. В его состав входит блок микропрограммного управления, в котором реализовано программирование МП на микрокомандном уровне.
Устройство шинного интерфейса (или просто шинный интерфейс) содержит блок сегментных регистров, указатель команд, сумматор адресов, очередь команд и буферы, обеспечивающие связь с шиной. Шинный интерфейс выполняет операции обмена между МП и памятью или портами ввода — вывода по запросам операционного устройства. Когда операционное устройство занято выполнением команды, шинный интерфейс самостоятельно инициирует опережающую выборку кодов очередных команд из памяти.
Очередь команд представляет собой набор байтовых регистров и выполняет роль регистра команд, в котором хранятся коды, выбранные из программной памяти. Длина очереди составляет 6 байт, что соответствует максимально длинному формату команд. Наличие очереди команд, а также способность операционного устройства и шинного интерфейса работать параллельно позволяют совместить во времени фазы выборки команды и выполнения заданной операции: пока одна команда исполняется в операционном устройстве, шинный интерфейс осуществляет выборку следующей команды. Таким образом достигаются высокая плотность загрузки шины и повышение скорости выполнения программы.Пример, иллюстрирующийреализацию описанного конвейерногопринципа, дан на рис. 3.3.4, где TI обозначает холостые такты работы шины, когдаочередь команд заполнена операционноеустройство занято выполнением текущейкоманды и не запрашивает выполнения цикла шины.
Шинный интерфейс инициирует выборку следующего командного слова автоматически,как только в очереди освободятся два байта. Как правило, в очереди находитсяминимум один байт потока команд, так что операционное устройство не ожидает выборки команды. Ясно, что опережающая выборка команд позволяет экономить время только при естественном порядке выполнении команд. Когда операционное устройство выполняет команду передачи управления (перехода) в программе, шинный интерфейс сбрасывает очередь, выбираеткоманду по новому адресу, передает ее в операционное устройство, а затем начинает заполнение (ре-инициализацию) очереди из следующихячеек памяти. Эти действия предпринимаются в условных и безусловных переходах, вызовахподпрограмм, возвратах из подпрограмм и при обработке прерываний.
Выборка Запись Выборка Выборка TI Ввод TI Выборка
ШИ
2 1 3 4 3 5
Выполнение Выполнение Выполнение Выполнение
ОУ
1 2 3 4
Рис 3.3.4 Пример конвейерного выполнения команд
По мере необходимости операционное устройство считывает байт из очереди и выполняет предписанную командой операцию. При много байтовых командах из очереди считываются и другие байты команды. В тех редких случаях, когда к моменту считывания очередь оказывается пустой, операционное устройство ожидает выборку очередного командного слова, которую инициирует шинный интерфейс. Если команда требует обращения к памяти или порту ввода — вывода, операционное устройство запрашивает шинный интерфейс на выполнение необходимого цикла шины для передачи данных. Когда шинный интерфейс не занят выборкой команды, он удовлетворяет запрос немедленно; в противном случае операционное устройство ожидает завершения текущего цикла шины. Со своей стороны, шинный интерфейс приостанавливает выборку команд во время обмена данными между операционным устройством и памятью или портами ввода — вывода.
Буфер шины адреса /данных (БАД) содержит 16 двунаправленных управляемыхусилителей с тремя выходными состояниями и обеспечивает номинальную нагрузочную способность линий AD15 — ADO.
Буфер шины адреса/состояния(БАС)содержит четыре однонаправленных усилителяс тремя выходными состояниями и обеспечивает номинальную нагрузочную способность линий A19/S6 — A16/S3.
Сегментные регистры хранят базовые (начальные) адреса сегментов памяти: кодового сегмента CS. в котором содержится программа; стекового сегмента SS; сегмента данных DS; дополнительного сегмента ES, в котором обычно содержатся данные. Наличие сегментных регистров обусловлено разделением памяти на сегменты и используемым способом формирования адресов памяти. Хотя МП имеет 20-битовую шину физического адреса памяти, он оперирует ltt-битовыми логическими адресами, состоящими из базового адреса сегмента и внутрисегментного смешения. Внутрисегментное смешение может быть вычислено в соответствии с указанным в команде способом адресации, может находиться в формате команды или содержаться а общем регистре. Физический адрес формируется путем суммировании смешения исодержимого соответствующего сегментного регистра, которое дополняется четырьмя нулевыми младшими разрядами.
Сумматор адресов осуществляет вычисление 20-битовых физическихадресов.
Указателькоманд IP хранит смешение следующей команды в текущем кодовом сегменте, т. е. указывает на следующую по порядку команду. Он является аналогом стандартного программного счетчика стой лишь разницей, что его содержимое определяет адрес команды лишь в совокупности с содержимым регистра CS; если же CS заполнен нулями, аналогия становится полной. Модификация IP осуществляется шинным интерфейсом так, что при обычной работе IP содержит смещение того командного слова, которое шинный интерфейс будет выбирать из памяти. Оно не совпадает со смещением очередной команды (находящейся в этот момент на выходе очереди команд), которую будет выполнять операционное устройство. Поэтому при запоминании содержимого IP в стеке, например при вызове подпрограмм, оно автоматически корректируется, чтобы адресовать следующую команду, которая будет выполняться. Эта особенность является следствием опережающей выборки команд, реализованной в ВМ86. Непосредственный доступ к IP имеют команды передачи управления.
Дата добавления: 2017-06-13; просмотров: 1574;