![]() КАТЕГОРИИ: Архитектура-(3434)Астрономия-(809)Биология-(7483)Биотехнологии-(1457)Военное дело-(14632)Высокие технологии-(1363)География-(913)Геология-(1438)Государство-(451)Демография-(1065)Дом-(47672)Журналистика и СМИ-(912)Изобретательство-(14524)Иностранные языки-(4268)Информатика-(17799)Искусство-(1338)История-(13644)Компьютеры-(11121)Косметика-(55)Кулинария-(373)Культура-(8427)Лингвистика-(374)Литература-(1642)Маркетинг-(23702)Математика-(16968)Машиностроение-(1700)Медицина-(12668)Менеджмент-(24684)Механика-(15423)Науковедение-(506)Образование-(11852)Охрана труда-(3308)Педагогика-(5571)Полиграфия-(1312)Политика-(7869)Право-(5454)Приборостроение-(1369)Программирование-(2801)Производство-(97182)Промышленность-(8706)Психология-(18388)Религия-(3217)Связь-(10668)Сельское хозяйство-(299)Социология-(6455)Спорт-(42831)Строительство-(4793)Торговля-(5050)Транспорт-(2929)Туризм-(1568)Физика-(3942)Философия-(17015)Финансы-(26596)Химия-(22929)Экология-(12095)Экономика-(9961)Электроника-(8441)Электротехника-(4623)Энергетика-(12629)Юриспруденция-(1492)Ядерная техника-(1748) |
Лекция 10
Стек Система команд микропроцессора Система команд микропроцессора приведена в табл.. Команды разбиты на семь групп. Группа может содержать несколько видов операций. Каждый вид операций харакизуется некоторой структурой кодовых комбинаций команд, где вместо А, должен быть подставлен адрес регистра и вместо К — 3-разрядная кодовая комбинация, определяющая конкретный тип команды. В таблице указано число байтов, содержащихся в команде, число циклов и тактов, в которые выполняется команда (в знаменателе указано число циклов и тактов в случаях, когда в качестве адреса регистра указана комбинация 110 и требуется дополнительное обращение в оперативную память для выборки операнда, адресом которого служит содержимое пары регистров HL). Для каждого типа команды показано, как формируются признаки в пяти триггерах регистра признаков. Принята следующая система обозначений: + означает, что признак в данном триггере формируется; - означает, что соответствующий признак при выполнении данной команды не формируется и в триггере сохраняется значение признака, сформированное при выполнении предыдущих команд; 0 - означает установку триггера в состояние 0; 1 - значает установку триггера в состояние 1. Отметим следующие особенности формирования признаков: команды пересылки и переходов не изменяют состояния триггеров признаков; команды увеличения или уменьшения содержимого одиночного регистра используют все признаки, за исключением признака переноса С; команды увеличения или уменьшения содержимого пар регистров не изменяют состояния триггеров признаков; команды арифметических операций используют все признаки; при выполнении логических операций триггеры переносов Тс н Tv сбрасываются в состояние 0; команды сложения содержимого пар регистров используют только признак переноса С. Стек — память с определенной (упрощенной) формой адресации. В микропроцессорной системе на МПК КР580 стек организуется следующим образом. В ОЗУ команды размещаются в ячейках с младшими, последовательно нарастающими адресами. Стек использует ячейки со старшими адресами, и по мере заполнения стека занимаются ячейки с адресами, последовательно убывающими (рис.). Особенность организации стека состоит в следующем. Указатель стека SP содержит так называемый адрес входа в стек\ при чтении из стека производится выборка содержимого ячейки по адресу входа в стек (адресу, хранящемуся в SP); при записи в стек вводимое в стек число помещается в ячейку с адресом, на единицу меньшим содержимого SP; одновременно с записью и чтением изменяется содержимое SP: при записи уменьшается, а при чтении увеличивается на единицу. Обмен со стеком производится двухбайтовыми словами, занимающими две ячейки памяти. Пусть указатель стека хранит адрес А. При вводе нового слова его байты должны быть помещены в пару соседних со входом в стек ячеек, имеющих адреса А - 1 и А - 2. Таким образом, ввод в стек сводится к следующей последовательности действий: содержимое SP уменьшается на единицу и по образующемуся адресу помещается старший байт вводимого двухбайтового слова; затем содержимое SP вновь уменьшается на единицу и по образующемуся адресу помещается младший байт вводимого слова (рис. 5.6.6). Мы видим, что SP каждый раз указывает адрес ячейки, являющейся входом в стек. Вывод данных из стека производится также двухбайтовыми словами. При этом каждый раз доступна для чтения лишь ячейка, адрес которой содержится в SP. Если указатель стека хранит адрес А, то байты выводимого из стека слова выбираются из ячеек памяти, имеющих адреса А и А + 1. Таким образом, выбор слова из стека сводится к такой последовательности действий: чтение младшего байта выводимого слова из ячейки, адресом которой служит содержимое SP, и увеличение содержимого SP на единицу; затем чтение старшего байта выводимого слова по адресу, хранящемуся в SP, и увеличение содержимого SP на единицу (рис.). О таком принципе функционирования, когда читается последняя помещенная в память информация, говорят как о принципе "последним вошел — первым вышел". Как видим, при записи и чтении производится обращение в ячейку, адрес которой связан с содержимым SP. Это упрощает адресацию памяти, но исключает возможность обращения в произвольную ячейку памяти. Рассмотрим некоторые команды операций со стеком. Запуск микропроцессора осуществляется следующим образом. После подачи на соответствующие входы микропроцессора питающих напряжений и тактовых импульсов последовательностей Фх и Ф2 подается сигнал уровня лог.1 на вход Сброс. Этим сигналом сбрасываются в состояние лог.О счетчик команд PC, регистр команд, размещенные в управляющем устройстве триггеры разрешения прерывания, подтверждения захвата и ожидания. После окончания действия сигнала Сброс (при переходе сигнала от уровня лог.1 к уровню лог.О) микропроцессор начинает работать с такта Тх цикла Мх и выдает на шину адреса нулевое значение адреса. Содержимое регистров блока РОН, аккумулятора, регистра признаков меняется только в процессе выполнения команд. Состояние захвата Состояние захвата характеризуется тем, что микропроцессор, заканчивая выполнение текущего цикла команды, переводит буферы шины данных и буферы шины адреса в третье состояние. При этом микропроцессор отключается от внешних шин, предоставляя их в распоряжение некоторого внешнего устройства, и останавливает работу. Переход в состояние захвата происходит следующим образом. От внешнего устройства поступает сигнал уровня лог.1 на вход Запрос захвата. Этот сигнал при отрицательном фронте импульса Ф2 такта Т2 принимается в триггер захвата управляющего устройства. Управляющее устройство заканчивает выполнение текущего цикла, переходит в состояние захвата и подтверждает это выдачей сигнала на выходе Подтверждение захвата. Сигнал на выходе Подтверждение захвата выдается при положительном фронте импульса Ф, в такте Г3, если текущий цикл не является циклом записи; в противном случае этот сигнал выдается при положительном фронте импульса Ф, такта, следующего за тактом Тъ. После окончания действия сигнала Захват (при переходе от уровня лог. 1 к уровню лог.О) микропроцессор начинает выполнение следующего цикла с места, где было приостановлено исполнение программы. Состояние прерывания В микропроцессоре предусмотрена возможность по запросам внешних устройств прерывать выполнение текущей программы и переходить на выполнение новой программы, так называемой прерывающей программы (или программы обслуживания прерывания). После окончания выполнения прерывающей программы микропроцессор возвращается к выполнению основной программы с команды, на которой произошло прерывание. Если на некотором участке программы допускается ее прерывание, то при составлении программы в начале этого участка предусматривается команда EI, по которой триггер разрешения прерывания в управляющем устройстве микропроцессора устанавливается в состояние лог. У, а в конце участка — команда DI, при выполнении которой триггер сбрасывается в состояние лог.О. Состояние триггера выдается на выход Разрешение прерывания. Процесс прерывания связан со следующими действиями. От внешнего устройства поступает сигнал уровня лог. 1 на вход Запрос прерывания. Если прерывание разрешено (т.е. на выходе Разрешение прерывания имеется уровень лаг. У), то после окончания выполнения текущей команды триггер разрешения прерывания сбрасывается в состояние лог.О, а в информации о состоянии микропроцессора, выдаваемом на шину данных, появляются сигналы Подтверждение прерывания (в разряде Z)0), Ввод (в разряде Z),) и сигнал о том, что в данном цикле производится прием первого байта команды (в разряде Dj). Сигнал Подтверждение прерывания используется в качестве строба для выдачи внешним устройством на шину данных команды RST (команды рестарт) При выполнении команды RST содержимое счетчика команд PC запоминается в стеке, а в PC записывается адрес первой команды прерывающей программы. Этот адрес задается следующим образом. Команда RST имеет структуру 11 AAA 111, и в счетчик команд заносится значение 00 ООО ООО 00 AAA ООО, которое и служит адресом первой команды прерывающей программы. Задавая определенную трехразрядную комбинацию AAA, внешнее устройство может задать адрес первой команды одной из восьми прерывающих программ. После окончания выполнения прерывающей программы возврат в основную программу происходит следующим образом. Прерывающая программа заканчивается командой RET (возврат из подпрограммы). В процессе выполнения этой команды адрес команды основной программы, перед которой произошло прерывание, выбирается из стека и передается в регистр адреса, а увеличенное на единицу значение заносится в счетчик команд. Состояние останова В системе команд микропроцессора имеется команда HLT (останов), которая вызывает прекращение выполнения программы и переход в состояние останова. Это состояние характеризуется тем, что буферы шины адреса и шины данных переходят в третье состояние, микропроцессор отключается от внешних шин и на выходе Ожидание устанавливается уровень лог.1. Состояние останова может быть прервано сигналами запуска микропроцессора либо перевода его в состояние прерывания Ранее было показано, что в процессоре, в котором используется специализированное операционное устройство и управляющее устройство, построенное на принципе схемной логики, требовалось два такта для однократного прохождения цикла алгоритма. Следовательно, реализация рассматриваемой операции умножения в микропроцессоре потребовала в 49/2 = 24,5 раза большего числа тактов.'Такой проигрыш в быстродействии при использовании микропроцессора КР580ВМ80А может оказаться еще большим, если учесть, что в случае применения в микропроцессорной системе оперативной памяти с низким быстродействием в цикле работы микропроцессора появятся "пустые'* такты Тг, связанные с ожиданием появления сигнала на входе Готовность.
Дата добавления: 2014-12-10; Просмотров: 1245; Нарушение авторских прав?; Мы поможем в написании вашей работы! Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет |