Режимы адресации памяти микро-ЭВМ «Электроника-60», основанные на использовании регистра с номером 7 как счетчика команд.

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

2 Непосредственный # n

3 Абсолютный * # n

6 Относительный А

7 Относительный косвенный * А

 

Непосредственный режимпозволяет задавать кон­станту в качестве одного из операндов. Значение кон­станты запоминается в слове, следующем за первым (ос­новным) словом команды. Следовательно, в целом коман­да становится двухсловной.

Таким образом, символическое обозначение непосред­ственного режима — это сокращенная запись, в которой использование регистра 7 предполагается по принципу умолчания.

Абсолютный режимимеет уровень косвенной адреса­ции, равный 1.

Константа, запоминаемая в памяти вслед за словом команды, используется для адресации операнда. Этот режим чаще всего применяется для доступа к операндам, хранящимся по заранее известным адресам памяти.

При относительном режимеадресация операнда осу­ществляется относительно текущего значения счетчика команд, трактуемого в этом случае как индексный ре­гистр. Например, команда

MOV 76(PC), R2,

имеющая адрес 1500, осуществляет загрузку в регистр R2 содержимого слова памяти, имеющего адрес 1602 (все адреса и данные считаются восьмеричными числами). Записанное в команде число 76 представляет собой поло­жительное смещение, которое надо прибавить к текуще­му содержимому счетчика команд для получения эффек­тивного адреса первого операнда. Значение смещения хранится в слове, следующем за первым (основным) сло­вом команды. Следовательно, при выборке содержимого второго слова счетчик команд будет хранить адрес 1504. При этом 1504 -(- 76=1602 в восьмеричной системе счи­сления, а это и есть адрес первого операнда. В приведенном примере команды смещение записано в явном виде. Однако в действительности оно не всегда заранее известно. Другое неудобство записи смещения в явном виде состоит в том, что при отладке и изменении текста программы значение смещения может измениться. Чтобы избавить программиста от необходимости вся­кий раз подсчитывать и записывать смещение в коман­де, относительный режим адресации предусматривает использование символических имен операндов. В этом случае смещение подсчитывает ассемблер на этапе транс­ляции программы. Относительный косвенный режим характеризуется уровнем косвенной адресации, равным двум. В этом слу­чае, как и в относительном режиме, в команде исполь­зуется символическое имя, которому должен предшество­вать признаку. Слово памяти, которому присвоено записанное в команде имя, содержит адрес операнда. Режим адресации памяти, использующий регистр с номером 6 для хранения указателя стека.Как отмечалось выше, автоинкрементный и автодекрементный косвенные режимы удобны для выполнения операций над особой структурой данных – стеком. В микро-ЭВМ «Электроника-60» стек организуется в оперативной памяти. Для этой цели чаще выбирают адреса слов 400—476. Выполне­ние основных операций над стеком (включение элемента в стек и исключение элемента из него) осуществляется с помощью указателя стека, представляющего собой ад­рес «верхнего» доступного элемента в стеке. Обычно для хранения указателя стека используется регистр 6, кото­рому присваивается имя SP.

Перед началом работы ЭВМ стек пуст, а указателю стека присваивается значение наибольшего адреса слова в той области памяти, которая отведена для стека (чаще начальное значение указателя стека равно 500). При включении элемента (слова) в стек значение указателя сначала уменьшается на два, а затем по адресу, равному значению указателя, записывается нужный элемент. При включении элемента из стека значение исключаемого элемента считывается по адресу, равному текущему зна­чению указателя стека, после чего осуществляется уве­личение значения указателя на два.

Используя любой из регистров (R0—R5), можно орга­низовать стек, элементами которого могут быть не слова, а байты. Структуры пословного (а) и байтного (б) сте­ков показаны на рис. 9. На рисунке заштрихованы занятые элементы стеков.

Рис. 9. Структура послов­ного (а) и байтного (б) сте­ков.

Литература:

1. Л.Н. Преснухин «Микропроцессоры» ч. 1, стр.: 357-379.

2. В.В. Стрыгин «Основы вычислительной, микропроцессорной техники и программирования», стр.: 139-141.

3. Б.Я. Лихтциндер «Микропроцессоры и вычислительные устройства в радиотехнике», стр.: 134-150.

 

ЗАНЯТИЕ 3.3.2. Языки программирования.

 

ВОПРОСЫ ЗАНЯТИЯ:

1. Языки программирования.

2. Средства программирования.

 

ПЕРВЫЙ ВОПРОС

Языки программирования для микроЭВМ можно разделить на три основных уровня: машинные, алго­ритмические высокого уровня и ассемблера.

Машинные языки находятся на самом ниж­нем уровне иерархии языков программирования и им свойствен следующий недостаток. Будучи языками цифр, они неудобны для описания вычислительных процессов, требуют от программистов больших уси­лий при написании и отладке программ. Достоинство машинного языка - для программирования на нем требуется лишь знание системы команд ЭВМ, а для выполнения составленных таким образом программ вычислительная машина не нуждается ни в каком трансляторе. Кроме того, при использовании машин­ного языка можно достигнуть максимальной гибкости в реализации технических возможностей ЭВМ.

Алгоритмические языки высокого уровня (например, ФОРТРАН, БЕЙСИК, ПЛ/М, ПАСКАЛЬ, АДА и др.) занимают верхнее положение в иерархии языков программирования. Будучи при­ближенными к привычной математической нотации и в ряде случаев обеспечивая естественную форму опи­сания вычислительных процессов, они достаточно про­сты и удобны в программировании, но не всегда позволяют в полной мере реализовать технические воз­можности ЭВМ, а результирующие машинные прог­раммы, получаемые после трансляции программ с ал­горитмических языков, обычно неэффективны с точки зрения объема или быстродействия. Недостаток таких языков заключается в том, что их применение пред­полагает наличие транслятора, представляющего со­бой сложный программный комплекс и требующего для своей разработки большого труда. Тем не менее, вследствие своих неоспоримых достоинств алгоритми­ческие языки высокого уровня широко применяются в программировании для различных классов микроЭВМ.

Языки ассемблера, занимая промежуточное положение между машинными языками и языками вы­сокого уровня (будучи при этом гораздо ближе к ма­шинным языкам), объединяют в себе некоторые до­стоинства самого нижнего и самого верхнего уровней языков программирования. Свое название языки ас­семблера получили от имени программы, преобразу­ющей программу на таком языке, в машинные коды.

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

Каждый язык ассемблера является машинно-зависимым и отражает аппаратурные особенности (в частности, состав программно-доступных регистров) той микроЭВМ, для которой он создан.

Программа, написанная на языке Ассемблер, со­стоит из последовательности предложений, или опера­торов, и называется исходной программой или исход­ным модулем.

Одна из тенденций развития языков программиро­вания – более широкое использование непроцедурных или описательных языков. Описательная програм­ма констатирует, какой результат желателен, не ука­зывая, как этого достичь. В программе формулируют­ся соотношения, а не последовательность вычислений, и, таким образом, программист освобождается от обя­занности разрабатывать шаги алгоритма и определять их порядок. Наиболее известные непроцедурные язы­ки: Визикальк, Мультиплан, Пролог.

Другое направление, по которому развиваются языки программирования, использование парал­лельных вычислений в мультипроцессорных системах. Казалось бы, что 100 процессоров должны решить за­дачу в 100 раз быстрее, чем один. Но такого ускорения можно достичь только тогда, когда программное обеспечение способно разбить задачу на много час­тей, которые могут решаться одновременно.

В некоторых языках предусмотрены явные способы указания заданий, которые могли бы выполняться параллельно. В других языках предполагается, что компилятор будет анализировать и выявлять то, что поддается распараллеливанию. Одним из таких язы­ков является язык Компел.

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

ВТОРОЙ ВОПРОС

Имеется пять классов средств программирования:

- редактирующие программы,

- транслирующие про­граммы,

- программы-загрузчики,

- моделирующие про­граммы,

- отладочные программы.

Каждый из этих классов облегчает выполнение некоторого этапа раз­работки программ. Редактирующие программы об­легчают создание исходной программы. С помощью транслирующих программ из исходной получают объ­ектную программу, т. е. программу на машинном языке. Загрузчики переносят объектную программу из внешней памяти, например перфоленты, в память микроЭВМ. Моделирующие программы позволяют проверить значительную часть объектной программы при отсутствии микроЭВМ. Отладочные программы облегчают отладку объектной программы на микро­ЭВМ.

Все эти средства программирования делятся на кросс-средства и резидентные. Кросс-средства — это программы, которые выполняются не на микроЭВМ, для которой разрабатывается программное обеспече­ние, а на какой-либо другой машине. Резидентные средства — это программы, которые выполняются на микропроцессоре, для которого разрабатывается про­граммное обеспечение.

Рассмотрим подробнее перечисленные классы средств программирования.

Редактирующие программы –это прог­раммы, облегчающие создание исходных программ. Редактирующая программа принимает исходную про­грамму, обычно вводимую в ЭВМ с клавиатуры (иног­да с перфоленты), и записывает часть этой програм­мы во внешнюю память ЭВМ, например на диск или магнитную ленту.

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

Редактирующие программы различаются возможностями, которые они предоставляют для выполнения изменений в программе. Например, некоторые редактирующие программы могут оперировать только с целыми строками программы, другие — могут добавлять, исключать или заменять в программе произвольные последовательности символов.

Транслирующие программы обеспечива­ют получение объектной программы из программы, на­писанной на языке высокого уровня.

Важно различать язык программирования и реа­лизацию языка. Язык программирования — это система записи, набор правил, определяющих синтаксис правильной программы. Реализация языка — это программа, которая преобразует запись высокого уровня: в последовательность машинных команд.

Имеются два основных вида средств реализации языка (транслирующих программ): компиляторы и интерпретаторы.

Компиляторы транслируют вес текст программы, написанной на языке высокой уровня, в машинный код в ходе одного непрерывного процесса. При этом создается полная программа в машинных кодах, которую затем можно выполнить безучастия компилятора. Обычно работа с компилируемым языком состоит из трех этапов: сначала текс программы создается при помощи редактора текст или какой-либо другой программы текстовой обработки, затем текст компилируется, и наконец, скомпилированная программа выполняется.

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

Для выполнения интерпретируемой программы ин­терпретатор должен находиться в основной памяти, в то время как для скомпилированной программы ком­пилятор уже не нужен.

В принципе любой язык программирования может быть как интерпретируемым, так и компилируемым, но в большинстве случаев по традиции у каждого язы­ка есть свой предпочтительный способ реализации.

Основное преимущество компиляции – высокая скорость выполнения готовой программы, поскольку интерпретатор должен строить соответствующую последовательность команд в момент, когда инструкция выполняется.

Интерпретируемый язык неизбежно мед­леннее компилируемого. В то же время интерпретируе­мый язык часто более удобен для программиста. Он хорошо подходит для диалогового стиля разработки программы. Отдельные части программы можно напи­сать, проверить и выполнить, не выходя из интерпре­татора, а когда найдена ошибка, ее можно исправить немедленно, и при этом нет необходимости возвра­щаться к программе редактирования текста и затем компилировать программу снова.

Программы-загрузчики –это программы, которые переносят объектную программу с внешнего носителя информации, например перфоленты или ли­нии связи, в оперативную память микроЭВМ.

Эта функция загрузчика должна выполняться на микроЭВМ, для которой разработано программное обеспечение. На загрузчик могут быть также возло­жены функции преобразования перемещаемого вари­анта объектной программы в программу в абсолют­ных адресах и установления связей между объектными программами с помощью взаимных ссылок. Пос­ледний процесс называется редактированием внешних связей. В обоих случаях загрузчик изменяет объект­ную программу на основе управляющей информации, получаемой загрузчиком как от языкового транслято­ра, так и непосредственно от программиста. Части программы-загрузчика, реализующие функции пере­мещаемости и редактирования внешних связей, могут быть межмашинными или резидентными программа­ми. Загрузчики резидентного типа обычно поставляются на перфолентах или в виде программируемого ПЗУ.

Моделирующие программы -это меж­машинные программы, позволяющие пользователю отлаживать объектную программу без микроЭВМ. Кроме того, моделирующие программы часто предос­тавляют некоторые виды диагностической информации, недоступной при использовании отладочной програм­мы на микроЭВМ, такие, как указание о переполне­нии стека или указание о попытке программы запи­сать информацию в ПЗУ. Моделирующая программа под управлением пользователя моделирует выполне­ние объектной программы на микроЭВМ. Моделиру­ющие программы позволяют: оперировать и выводить на дисплей содержимое памяти моделируемой микро­ЭВМ и регистров микропроцессора; устанавливать контрольные точки в программе, в которых программа может быть приостановлена при достижении некото­рого адреса в программе или при чтении или записи в некоторую ячейку памяти; задавать листинг с пе­чатью каждой команды, принадлежащей области ад­ресов, указанной при задании режима листинга по ме­ре ее выполнения. Моделирующие программы часто предоставляют информацию о времени выполнения программы, например число команд и (или) машин­ных тактов, выполненных от начала работы програм­мы до ее останова. Моделирующие программы раз­личных производителей отличаются по своим возмож­ностям, однако независимо от того, насколько хороша моделирующая программа, она никогда не может за­менить полностью отладку программы на микроЭВМ. Это объясняется тем, что специфические временные соотношения и условия внешнего окружения аппара­туры микроЭВМ невозможно смоделировать полнос­тью.

Отладочные программы являются рези­дентными, облегчающими отладку объектной прог­раммы на микроЭВМ. Обычно они принимают от пользователя команды на выполнение следующих фун­кций: вывод на дисплей (на печать) содержимого по­стоянной памяти или памяти с произвольным досту­пом микроЭВМ, а также содержимого регистров цент­рального процессора; изменение содержимого опера­тивной памяти; выполнение программы с указанного адреса; приостановка выполнения программы с указанного адреса; приостановка выполнения программы по достижении команды, находящейся в определенной ячейке памяти, или при выполнении заданного усло­вия.

Отладочная программа может приостановить вы­полнение программы в любом месте, где встречается ссылка на обозначенный идентификатор или перемен­ную; где происходит изменение значения переменной; если переменная принимает любое значение между за­данными границами; если переменная или число ис­полнений оператора становятся равными заданному значению, Кроме этого, возможно выделение специ­альных регистров слежения, контролирующих состоя­ние шины управления микропроцессора.

Отладочные программы в сочетании с моделирую­щими программами позволяют значительно умень­шить вероятность появления ошибок в объектных про­граммах.

 

Литература:

1. М.В. Напрасник «Микропроцессоры и микроЭВМ», стр.:137-143.

 

ТЕМА 3.4Структура команд микроЭВМ.

 

ЗАНЯТИЕ 3.4.1. Требования, предъявляемые к системам команд, методам

адресации данных и управлению адресами и операциями.

 

ВОПРОСЫ ЗАНЯТИЕ:

1. Общие требования к системе команд и методам адресации.

2. Особенности построения и функционирования логических блоков прерывания работы микропроцессоров.

3. Методы и средства управления вводом — выводом данных.

ПЕРВЫЙ ВОПРОС

Системы команд и методы адресации данных.Автомати­зация обработки информации и управления МП обеспечи­вается цифровым программным управлением. Программа вычислений записывается в памяти системы в виде последовательности команд. Каждая команда программы должна: определять вид операции, исполняемой в данном цикле работы; задавать адреса (адрес) двух (или одного) операндов, участвующих в операции; определять место засылки результата операции; указывать адрес располо­жения следующей команды.

Вследствие малой разрядности микропроцессора очень трудно столь обширную информацию указать с помощью только одного машинного слова. Поэтому проблема выбора формата команд и кодирования полей команд микропроцессора имеет особое значение.

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

Рассмотрим гипотетический формат команд, обращая внимание на необходимость жесткой экономии их разряд­ности. Код операции должен занимать более трех разря­дов, иначе «бедность» выполняемых микропроцессором операций породит проблему «длинных» программ даже для простых задач. Кроме арифметических и логических операций необходимо предусмотреть операции пересылок информации в регистрах микропроцессоров, операции вет­вления в зависимости от различных условий, операции ввода — вывода. В системе команд микропроцессора желательно предусмотреть механизм работы со стандарт­ными подпрограммами, поскольку из-за существенных аппаратурных ограничений многие сложные функции в нем выполняются программным способом.

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

Чтобы определить М слов информации в памяти, необходимо иметь па = log2M разрядов для прямого указания кода адреса. При М = 65К слов па = 16. Байтовый формат поля адреса позволяет прямо адресовать лишь 28 = 256 слов (ячеек) памяти. В одной команде желательно иметь двухадресный формат, т. е. желательно одновременно задавать адреса хотя бы одного исходного операнда и результата. Вследствие малой разрядности команды микро-ЭВМ прямой двухадресный формат можно задать лишь при обращении к внутреннему регистровому файлу небольшой информационной емкости.

Кроме поля кода операции и кода адреса (адресов) команда должна содержать поле признаков, указываю­щее на особенности адресации. Методы адресации опреде­ляют механизм формирования исполнительного (прямого) адреса в памяти, исходя из значений адресного поля и поля признаков адресации команды. Используется боль­шое количество методов адресации в микропроцессорах, позволяющих расширить адресуемое пространство инфор­мации и связать между собой различные части вычисли­тельных процессов. Гибкость системы команд в боль­шей степени определяется разнообразием методов адре­сации.

Адрес следующей команды в микропроцессоре задается с помощью счетчика команд. При обычном ходе выполне­ния программы переход к очередной команде требует операции прибавления единицы в счетчик команд. При операциях условного или безусловного перехода в счетчик команд засылается новое значение кода адреса команды, определяющего новую ветвь вычислительного процесса. Движение по ней идет также в соответствии с операцией прибавления единицы в счетчик команд. Введение специ­ального индексного регистра существенно расширяет возможности микропроцессора за счет индексной адре­сации.

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

В результате автоматического преобразования команд происходит их модификация в соответствии с заданными признаками адресации. Чтобы не загружать операцион­ный блок операциями модификации адресов, в состав микропроцессора вводится индексный блок (блок индекс­ной арифметики, или инкремента — декремента).

Управление операциями.Коды операции команд программы, воспринимаемые управляющей частью микро­процессора, расшифрованные и преобразованные в ней, дают информацию о том, какие операции надо выполнить, где в памяти расположены данные, куда надо направить результат и где расположена следующая за выполняемой команда.

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

Именно срабатыва­ние, т. е. изменение состояния двоичных логических эле­ментов на противоположное, позволяет посредством ком­мутации вентилей выполнять элементарные логические и арифметические действия, а также передавать требуемые операнды в функциональные части микро-ЭВМ.

Устройство управления в строгой последовательности в рамках тактовых и цикловых временных интервалов работы микропроцессора (такт — минимальный рабочий интервал, в течение которого совершается одно элемен­тарное действие; цикл — интервал времени, в течение которого выполняется одна машинная операция) осу­ществляет: выборку команды; интерпретацию ее с целью анализа формата, служебных признаков и вычисления адреса операнда (операндов); установление номенкла­туры и временной последовательности всех функциональ­ных управляющих сигналов; генерацию управляющих импульсов и передачу их на управляющие шины функцио­нальных частей микро-ЭВМ и вентили между ними; анализ результата операции и изменение своего состояния так, чтобы определить месторасположение (адрес) следующей команды.

Особенности программного и микропрограммного управления операциями.Вмикропроцессорах используют два метода выработки совокупности функциональных управляющих сигналов: программный и микропрограм­мный.

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

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

При микропрограммной реализации устройства управ­ления в состав последнего вводится ЗУ, каждый разряд выходного кода которого определяет появление определен­ного функционального сигнала управления. Поэтому каждой микрооперации ставится в соответствие свой информационный код — микрокоманда. Набор микро­команд и последовательность их реализации обеспечивают выполнение любой сложной операции. Набор микроопера­ций называют микропрограммами. Способ управления операциями путем последовательного считывания и интер­претации микрокоманд из ЗУ (наиболее часто в виде микропрограммного ЗУ используют быстродействующие программируемые логические матрицы), а также исполь­зования кодов микрокоманд для генерации функциональ­ных управляющих сигналов называют микропрограм­мным, а микро-ЭВМ с таким способом управления — микропрограммными или с хранимой (гибкой) логикой управления.

К микропрограммам предъявляют требования функ­циональной полноты и минимальности. Первое требование необходимо для обеспечения возможности разработки микропрограмм любых машинных операций, а второе —

связано с желанием уменьшить объем используемого оборудования. Учет фактора быстродействия ведет к рас­ширению микропрограмм, поскольку усложнение послед­них позволяет сократить время выполнения команд программы.

Преобразование информации выполняется в универ­сальном арифметическо-логическом блоке микропроцес­сора. Он обычно строится на основе комбинационных логических схем.

Для ускорения выполнения определенных операций вводятся дополнительно специальные операционные узлы (например, циклические сдвигатели). Кроме того, в состав МПК БИС вводятся специализированные оперативные блоки арифметических расширителей.

Операционные возможности микропроцессора можно расширить за счет увеличения числа регистров. Если в регистровом буфере закрепление функций регистров отсутствует, то их можно использовать как для хранения данных, так и для хранения адресов. Подобные регистры микропроцессора называются регистрами общего назначе­ния. По мере развития технологии реально осуществлено изготовление в микропроцессоре 16, 32 регистров и более.

 

ВТОРОЙ ВОПРОС

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

Для определения требований к построению системных блоков прерывания работы микропроцессоров рассмотрим особенности построения и функционирования внутренних схем прерывания микропроцессоров, реализуемых на кристалле БИС.

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

Момент возникновения запроса прерывания микро­процессора не связан с его работой по основной программе или какой-либо подпрограмме. Сигналы запроса прерыва­ния текущей программы асинхронны относительно циклов работы микропроцессора. Поэтому, получив сигнал запроса на прерывание работы, микропроцессор должен закончить выполнение текущей микрооперации или опера­ции и только после этого приступить к удовлетворению запроса. Такой порядок дает возможность получить промежуточные результаты, являющиеся итогом работы микропроцессора по программе (подпрограмме), зафикси­ровать их в его регистрах и заслать на хранение в память. Процесс сбора и пересылки содержимого внутренних регистров микропроцессора в память часто называется контекстным переключением, так как содержимое регистров имеет определенный смысл только в контексте данной выполняемой программы. Процесс считывания из памяти и распределения данных по определенным регистрам микропроцессора позволяет восстановить контекст, т. е. состояние прерванной программы, после окончания удовлетворения запроса прерывания. Именно такой поря­док осуществления процесса прерывания дает возмож­ность перехода от программы к подпрограмме и обратно к последовательности вложенных подпрограмм без потери промежуточной информации и правильного счета по запро­граммированным алгоритмам. Однако, контекстное пере­ключение должно гарантировать правильность продол­жения работы микропроцессора после прерывания про­граммы (подпрограммы), т. е. не должно вносить никаких последствий в процесс работы микропроцессора, кроме временных перерывов.

Чтобы охарактеризовать важное качество микро­процессора и электронных систем на его основе по возмож­ности прерывания прерывающих программ, вводят поня­тие «уровень программного прерывания микропроцес­сора». Если нельзя прервать прерывающую программу, то считается, что электронная система спроектирована с ну­левым уровнем прерывания. Чтобы избежать подобных ограничений, большинство МП имеет средства для обеспе­чения практически произвольного количества уровней пре­рывания. Это означает, что имеется возможность многократного прерывания прерываний и образования преры­ваний внутри прерываний, т. е. вложенных прерываний, ведущих к появлению последовательностей вложенных подпрограмм.

Стек — эффективное программно-аппаратурное сред­ство для сохранения и возврата данных при контекстном переключении и осуществления вложенных прерываний. Стек (магазинная память) представляет собой совокуп­ность ячеек памяти, организованных так, что обращение к некоторой последовательности (списку) слов может происходить в процессе, обратном записи. Это означает, что стек позволяет осуществить принцип работы «послед­нее из списка последовательно записанных слов считывается первым». В стеке реализуется подразумеваемая адресация, т. е. всегда запись или чтение данных происхо­дит в «верхней» ячейке. Образно стек можно представить в виде бесконечной этажерки, где ячейки соответствуют полкам. «Положить» слово можно только выше послед­него положенного (записанного) слова; «взять» можно только то слово, которое «положено» самым последним. Чтобы осуществить именно этот порядок обращения, имеется регистр «Указатель полки», который переме­щается по мере добавления новых слов на полках вверх или опускается вниз по мере их взятия. Этот регистр — указатель состояния заполненности стека — физически указывает на регистр СОЗУ на кристалле микропроцес­сора или на ячейку памяти ОЗУ.

Практически неограни­ченный по информационной емкости стек получается именно во втором случае, поскольку редко возникает необходимость иметь в системе тысячу (и более) уровней прерывания, а такая глубина прерываний вполне реали­зуется при использовании ОЗУ с доступной величиной информационной емкости.

При удовлетворении запроса на прерывание текущей программы блок управления (БУ) микропроцессора осуществляет запись контекстного состояния рабочих регистров микропроцессора, в стек автоматически начиная с «верхней» ячейки и добавляет единицу в регистр-указа­тель ячейки стека после каждой записи. Поэтому доста­точно одной команды «Записать состояние в стек», чтобы аппаратурные средства МП считали всю контекстную информацию рабочих регистров и направили ее для хране­ния в стек. Восстановление контекста также происходит автоматически по команде «Восстановить состояние пре­рванной программы (подпрограммы)», которая ставится последней в подпрограмме прерывания. В процессе вос­становления в счетчик команд заносится адрес возврата из прерываний, указывающих на команду, которая должна выполняться первой.

На рис. 1 приведена диаграмма заполнения и осво­бождения стека при появлении цепочки вложенных преры­ваний. Анализ последовательности работы МП показы­вает, что имеют при выполнении вычислений и решении задач управления место организованный переход от под­программы к подпрограмме, запоминание промежуточных состояний и последовательное завершение всех подпрограмм.

Рис. 1. Порядок выполнения вложенных подпрограмм при использова­нии стека.

 

Таким образом, магазинный механизм запоминания адресов возвратов дает очень удобные средства работы с подпрограммами. При переходе к подпрограмме стек заполняется сверху и его содержимое продвигается вниз. При возврате в прерванную программу содержимое стека продвигается каждый раз вверх, выталкивая в счетчик команд адрес команды возврата. Поэтому для работы со стеком достаточно двух команд: «Записать в стек» («Втолкнуть в стек») и «Считать из стека» («Вытолкнуть из стека»).

В состав микропроцессора можно ввести средства для записи и возвращения не только содержимого счетчика команд, но и всех других регистров, состояние которых необходимо сохранять при прерываниях. При этом в «верх» стека последовательно записывается содержимое счетчика команд, аккумулятора, регистра признаков и т.д. При выполнении одной команды «Возврат» автомати­чески производится несколько считываний из стека и «разворачивание» извлекаемой информации в определен­ные регистры.

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

Немаскируемые запросы на прерывание — такие пре­рывания, которые аппаратурно реализованы вне програм­много контроля и не управляются программистом. Сигналы немаскируемых запросов на прерывания обычно поступают в микропроцессор по отдельной шине магистра­ли управления и имеют наивысший приоритет, т. е. испол­няются ранее других запросов на прерывания.

Обычно к немаскируемым запросам на прерывания относятся запросы на прерывания от таких важнейших для системы средств, как схемы питания и контроля правильности передач данных. Например, снижение уровня питания создает опасность потери всей оперативной информации, поскольку полупроводниковые ОЗУ и регистры микро­процессора теряют информацию при отключении или сбоях питания. Поэтому схемы контроля питания в этом случае подают запрос прерывания и совершается переход к подпрограмме аварийной перезаписи оперативной ин­формации в ОЗУ с батарейным невыключаемым питанием или во внешнее магнитное ЗУ. Следовательно, в блоке питания должны быть предусмотрены емкостные фильтры для того, чтобы длительность снижения уровня вторич­ного напряжения при выключении первичного питания была достаточна для выполнения аварийной подпро­граммы. Цепи контроля правильности передач данных должны действовать аналогично Любые ошибки в последовательностной системе запоминаются и искажают все последующие результаты. Поэтому необходимо прекра­тить вычисления и решением тестовых задач как под­программ прерывания выяснить неисправные аппаратур­ные блоки, провести восстановление работоспособности системы и лишь после этого продолжать выполнение основной программы.

Маскируемые запросы на прерывания управляются командами программы и имеют целью дать программисту возможность гибкого управления вычислительным процес­сом. Если программист организовал программный цикл ожидания и обмен с устройством, который не может быть прерван, то ему необходимо отключить механизм прерыва­ний. Для этих целей в состав регистра состояния микропро­цессора вводится специальный триггер «Разрешение удовлетворения запросов на прерывания». Сигнал с этого триггера поступает в блок управления микропроцессора как сигнал запрета (маскирования) запросов прерывания Триггер «Разрешение удовлетворения запросов на преры­вания» устанавливается в состояние «1» и сбрасывается в состояние «О» специальными командами «Установить маску прерываний», «Сбросить маску прерываний». Поэтому программист может вставлять их в программу везде, где это необходимо.

При использований маскируемых запросов на преры­вания между внешним устройством и микропроцессором должен осуществляться асинхронный обмен управляю­щими сигналами до начала собственно процесса прерыва­ния. Поэтому в ряде микропроцессоров прием запроса и начало процесса прерывания сопровождаются выходным сигналом «Запрос прерывания удовлетворен». Этот сигнал может быть использован и для маскирования схемы прерываний. Необходимость в этом связана с тем, что если до конца выполнения подпрограммы прерывания сигнал «Запрос прерывания» не снят, то тот же самый запрос будет выполняться вновь. Поэтому в качестве последней команды подпрограммы прерывания должна стоять команда снятия маски прерывания. Это является гарантией того, что если будет сгенерирован запрос прерывания, то он будет новым.

Определение адреса программы прерывания по сигна­лам запроса на прерывание от конкретного внешнего устройства.Для задания адреса программы прерывания применяются методы, различающиеся числом дополни­тельных схем в микропроцессоре или в информационном контроллере внешнего устройства.

Наиболее простой метод заключается в записи кода адреса памяти, где записана первая команда подпро­граммы прерывания, в специальном регистре адреса пре­рывания. В этом случае блок управления микропроцессо­ром после завершения контекстного переключения автома­тически считывает и передает в регистр счетчика команд код регистра адреса прерывания. Обратившись по этому адресу, микропроцессор считывает два байтовых числа или одно двухбайтовое число, которое является первой коман­дой подпрограммы прерывания. Поскольку данный метод прямо указывает на место расположения подпрограммы прерывания, для обозначения начального адреса про­граммы прерывания используют термин «вектор прерыва­ния». Таким образом, рассмотренный метод позволяет косвенной адресацией ячейки памяти определить век­тор прерывания, а через него и подпрограмму преры­вания.

Другой метод требует проведения асинхронного запроса со стороны микропроцессора к внешним устрой­ствам для определения устройства, которое выставило сигнал запроса на прерывание. Информационный конт­роллер внешнего устройства, пославшего сигнал за­проса на прерывание, в ответ на запрос микропроцес­сора выставляет код команды, который при исполнении блоков управления микропроцессора вызывает ветвление по одному из некоторого множества адресов. Следова­тельно, этот метод также практически прямо указывает на вектор прерывания, причем позволяет задать векторы прерываний многих подключенных внешних устройств. Для реализации он требует развития средств информа­ционного контроллера. В сложных микропроцессорах используется специальный регистр, адресуемый програм­мистом и называемый регистром вектора прерывания, с помощью которого можно также прямо задать векторы прерывания многих внешних устройств.

Определение адресов программ прерывания по сигна­лам запроса на прерывания от некоторого множества внешних устройств.Микропроцессор может иметь только два ввода для приема сигналов запросов на маскируемые и немаскируемые прерывания, а в электронной системе может быть необходимо осуществить управление многими внешними устройствами. В этом случае возможно одно­временное появление множественных запросов на преры­вание работы микропроцессора, т. е. сигналов запросов на прерывание от ряда внешних устройств.

При этом имеется несколько путей решения проблемы управления множественными сигналами запроса на преры­вания. Все выходы схем генерации запросов прерывания выполняются на основе каскадов с открытым коллектором или с тремя внутренними состояниями и параллельно соединяются с выводом МП. Срабатывание такого каскада вызывает сигнал запроса прерывания. Микропроцессор, опознав его, проводит анализ и определяет точный адрес

вектора прерывания. Наиболее распространены системы векторных и обзорных прерываний.

Векторные прерывания требуют значительных аппаратурных затрат, но имеют высокую скорость реакции. Один из методов реализации векторных прерываний посылкой кода команды из средств информационного контроллера был рассмотрен выше.

Обзорные прерывания заключаются в выполне­нии общей подпрограммы прерывания с целью определе­ния вектора прерывания конкретного устройства. Под­программа содержит главным образом команды считыва­ния и анализа кода состояния внешних устройств. После­довательный анализ по заранее заданной схеме позволяет выделить устройство, подготовленное к обмену. После этого совершается условный переход и считывается вектор прерывания этого устройства. Данный метод требует для реализации небольших аппаратурных затрат и может быть применен при подключении небольшого числа медленных устройств, поскольку требует значительных затрат вре­мени на осуществление процесса прерывания.

В любой из рассмотренных систем прерываний возни­кают сложности управления одновременными запросами на прерывания от нескольких устройств. Обычно они разрешаются назначением приоритета каждому внешнему устройству. Поэтому при появлении одновременно несколь­ких запросов предпочтение отдается запросу на прерыва­ние от более приоритетного устройства.

В системе, реализующей схему управления векторными запросами на прерывания, цепочечное подключение узлов запросов на прерывания приоритетных устройств автома­тически выявляет активное устройство: сигнал удовлетво­рения запроса прерывания проходит через узлы всех более высокоприоритетных схем и вызывает передачу вектора прерывания наиболее приоритетного устройства.

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

Сравнение векторных и обзорных систем прерывания работы микропроцессора показывает, что при их проекти­ровании можно достичь компромисса между количеством аппаратуры микропроцессора и объемом его програм­много обеспечения. Меньшие аппаратурные затраты тре­буют большего программного обеспечения и порождают низкоскоростные решения. Более высокое быстродействие достигается более высокими аппаратурными затратами и меньшими программными издержками. Сложность аппа­ратурных решений не позволяет заложить многого в кристалл микропроцессора. Поэтому в комплекте БИС развитого микропроцессора выпускается специальная БИС программируемого контроллера прерывания.

ТРЕТИЙ ВОПРОС

При проектировании микропроцессорной системы важней­шее значение имеет правильный выбор методов управле­ния вводом — выводом данных.

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

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

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

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

Программный обмен данными по командам условного перехода. Вэтом виде обмена микропроцессор програм­мным путем должен определить, готово ли периферийное устройство к выполнению операций ввода — вывода до того, как начнется программная передача данных. Внеш­нее устройство должно иметь аппаратурные средства для выработки информации о внутреннем состоянии статус­ной информации. Микропроцессор считывает эту информа­цию, передает ее во внутренний регистр-аккумулятор, анализирует и на основе результата анализа принимает решение о готовности устройства.

На рис. 3.3 приведена схема алгоритма программного обмена данными по командам условного перехода. Из нее следует, что микропроцессор может находиться в режиме программного ожидания (готовности) внешнего устрой­ства, выполняя команды блоков 1 и 2. После обнаружения состояния готовности МП передает данные по командам блока 3, а затем приступает к работе по продолжению основной программы.

Обмен данными по командам условного пе­рехода. Аналого-ци­фровой преобразова­тель при передаче дан­ных имеет трехуровне­вые выходные каскады, передача данных с ко­торых осуществляется по сигналу «Разреше­ние выдачи» РВ. По си­гналу «Начало преоб­разования» преобразо­ватель начинает преоб­разование мгновенной амплитуды входного аналогового сигнала в 8-разрядный код. Вре­мя преобразования за­висит от реализуемого принципа преобразова­ния и схемотехниче­ского исполнения. Во время преобразования выдается управляющий сигнал «Конец преобразования» КП, равный «0». Он принимает значение «1», когда преобразование аналоговой величины в код завершено. Чтобы считать требуемое значение данных, сигнал РВ должен поступить после того, как установится значение «1» сигнала КП.

Рис. 2. Схема алгоритма програм­много обмена данными.

 

На рис. 3, а, приведена схема подключения преобра­зователя к микропроцессору МП. Для микропроцессора преобразователь Пр представляется как логическое устройство, управляемое сигналами «Начало преобразова­ния» НП, «Конец преобразования» КП и «Разрешение выдачи» РВ. Эти сигналы считываются микропроцессором из байтового выходного регистра данных. Сигналы данных Q7Q0 имеют правильное значение, если соблюдена последовательность выдачи управляющих сигналов НП, КП, РВ согласно временной диаграмме. Чтобы выдавать требуемые управляющие сигналы в заданное время, каждый управляющий сигнал определяется своим адресом N. Сигнал с дешифратора адреса ДША вместе с сигналом операции микропроцессора «Чтение — запись» Чт/Зп по сигналу импульса синхронизации С определяет генерацию необходимого управляющего сигнала. По сигналам Мнп= 1 и УУрв = 1 осуществляется запуск преобразова­теля; по сигналам NPB и Nкп = 1 — считывание и ввод в микропроцессор значения сигнала КП. Этот сигнал через трехуровневый каскад вводится в микропроцессор МП по шине Д7. В 8-разрядном МП этот разряд является разря­дом знака числа. Поэтому команда «Условный переход по знаку результата» определит либо окончание преобразова­ния (КП =1), либо необходимость перехода к новому циклу анализа (КП = 0). После определения состояния КП = 1 командой «Прочитать данные по адресу МРв» осуществляется ввод информации с преобразователя в МП.

Рис 3. Схема подключения преобразователя к микропроцессору при программном вводе данных (а) и при вводе данных по прерываниям (б).

 

Из рассмотренного примера и принципа обмена дан­ными по командам условного перехода видно, что микро­процессор должен находиться в режиме ожидания, следя за состоянием внешнего устройства. На чтение статусной информации и ее анализ может быть затрачено большое количество циклов работы микропроцессора, которые, по существу, будут потерянными. Если микропроцессор рабо­тает только с одним устройством, то такие потери неиз­бежны. Однако в электронной системе со множеством источников-приемников данных рассмотренный режим ввода — вывода неэффективен.

Обмен данными по сигналам прерывания работы микропроцессора от внешних устройств.При обмене дан­ными по сигналам прерывания внешние устройства являются сами инициаторами обмена. Микропроцессор работает параллельно с ними над выполнением основной программы и не занимается анализом состояния внешних устройств. Но в микропроцессоре должны быть специаль­ные аппаратурные средства анализа состояния внешних устройств. Когда эти устройства обнаруживают готов­ность к обмену какого-либо внешнего устройства, то сигнализируют об этом блоку управления микропроцес­сора. Последний завершает текущую операцию, передает на хранение в память всю информацию внутренних регист­ров данных и управления и осуществляет переход к под­программе обслуживания прерывания. Основная часть этой подпрограммы — команды передачи данных между микропроцессором и конкретным внешним устройством. В конце ее имеются программы восстановления состояния микропроцессора, которое существовало к началу преры­вания.

Рис. 4. Схема подключения канала прямого доступа к ОЗУ в микро­процессорной системе.

 

Ввод данных по прерываниям.Рассмотрим ввод дан­ных с аналого-цифрового преобразователя. В данном случае выходной сигнал «конец преобразования» КП не связан с магистралью данных МД (рис. 4), поскольку нет необходимости анализировать состояние устройства. Этот сигнал используется для установки специального триггера прерывания JK-типа по входу С. Триггер преры­вания ТгП применяется для генерации сигнала запроса прерывания микропроцессора МП.

Сигнал «Запрос прерывания» ЗП поступает в блок управления и используется для прерывания работы МП. Так как сигнал ЗП = 1 будет все время вызывать срабатывание схем блока управления процессора, то сразу же после удовлет­ворения запроса прерывания командой «Считать состояние по адресу Nкп» триггер ТгП переводится в состояние «О» подачей сигнала фиктивного считывания по входу R триггера ТгП. В остальном генерация сигналов и работа схем, показанных на рис. 3 и 4, аналогична.

Обмен данными в канале прямого доступа в память.Ранее рассмотренные методы обмена данными относились к передачам между внешними устройствами и микропро­цессором. Если необходимо осуществить обмен между внешним устройством и памятью, то нет необходимости пересылать данные через микропроцессор. Обычно между памятью и внешними устройствами обмен данными заклю­чается в пересылке массивов информации. Если проводить чтение данных в памяти (внешних устройствах), заносить данные в аккумулятор микропроцессора, а затем осущест­влять запись в регистры внешних устройств (или память), то затраты времени микропроцессора будут очень боль­шими. Можно в систему ввести контроллер прямого доступа в память, который берет на себя управление передачей, освободив от этих функций системный микро­процессор.

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

Средства канала прямого доступа КПД в память могут быть подключены «параллельно» процессору так, как это показано на рис. 5, а, с передачей функций арбитража ОЗУ. Однако при этом усложняются схемы управления ОЗУ, появляется второй информационный канал, состоящий из информационных магистралей дан­ных МД, адреса МА и управляющих сигналов МУ (рис. 5,б). Поэтому в микропроцессорных системах решается задача разделения единого информационного канала между микропроцессором и каналом прямого доступа в память посредством использования свойств трехуровневого состояния информационных подмагистралей. Микропроцессор МП во время передачи информации по каналу прямого доступа переводит выходные схемы управления магистралями данных, адресов и управляю­щих сигналов в высокоомное состояние и тем самым изолируется от остальной части системы, что аналогично обрыву его информационного канала.

Степень влияния операций ввода — вывода в канале прямого доступа на основной вычислительный процесс в системе определяется сложностью аппаратурных средств контроллера этого канала. В простейшем случае контрол­лер берет на себя управление передачей данных по инфор­мационной магистрали в условиях, когда микропроцессор одновременно с выдачей сигнала удовлетворения запроса канала переводится в режим ожидания окончания опера­ций в канале. При этом за счет перевода выходных каскадов управления шинами информационной магистрали в высокоомное состояние микропроцессор эффективно электрически и информационно отключается от системы. Состояние внутренних регистров «замораживается», т. е. микропроцессор в режиме ожидания сохраняет то инфор­мационное состояние, которое возникло в нем к моменту удовлетворения запроса канала прямого доступа.

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

Микропроцессор после обращения к памяти за очередной командой занимается ее расшифровкой и анализом и в этот промежуток времени адреса обращения к памяти еще не известны. Поэтому канал прямого доступа может «занять» цикл обращения к памяти и осуществить операцию ввода или вывода слова данных. Этот метод занятия цикла памяти контроллер канала прямого доступа осуществляет так, что микропроцессор даже «не знает», что одновре­менно с его функционированием происходят другие опера­ции в системе, поскольку они никакого торможения работы микропроцессора не вызывают.Недостаток канала прямого доступа с занятием цикла — ограничение его производительности быстродействием микропроцессора: обмен данными между памятью и внеш­ними устройствами совершается со скоростью, определяе­мой частотой выборки команд.

Подключение устройств ввода — вывода к микропро­цессору.Способы подключения внешних устройств к микропроцессору определяются возможностями его кор­пуса, аппаратурно-программных средств, количеством и особенностями устройств ввода — вывода.

Рис. 5. Схемы подключения УВВ к микропроцессору.

Запрос на простое прерывание привлекает внимание микропроцессора к внешней подсистеме и требует анализа ее состояния. Если несколько устройств ввода — вывода УВВ подключены к своим индивидуальным аппаратурным ресурсам (рис. 5, а, радиальный интерфейс), то внутри МП необходимо иметь мультиплексор для последователь­ного опроса всех УВВ. Когда время реакции критично, можно ввести аппаратурные средства, позволяющие конкретному УВВ, сразу же после выполнения текущей команды программы вызвать свою подпрограмму обслу­живания. В случае подключения многих УВВ к одному уровню прерывания при простом прерывании требуется обзор всех причин прерывания и выделения активного УВВ.

Последовательное расположение подпрограмм анализа причин прерываний УВВ в программе может считаться приоритетом, если не задан другой алгоритм. Следова­тельно, первое активное устройство, обнаруженное про­граммой прерывания, получает ресурс на обслуживание. Аппаратурно этот алгоритм реализуется в «цепочечной» схеме подключения УВВ (рис. 5, б).

Векторное (направленное) прерывание возникает тогда, когда УВВ, выставившее запрос на прерывание, посылает после удовлетворения запроса адрес А1АN ячейки, где расположена программа прерывания данного УВВ, (рис. 5, в).

Многоуровневые групповые системы прерывания тре­буют наличия в МП нескольких входов (рис. 5, г) и могут быть векторными приоритетными или обзорными.

Литература:

1. Л.Н. Преснухин «Микропроцессоры» ч. 1, стр.: 62-84.

 

ЗАНЯТИЕ 3.4.2.Система команд, форматы данных.

 

ВОПРОСЫ ЗАНЯТИЯ:

1. Основные форматы команд ЕС ЭВМ.

2. Пояснения к некоторым командам.

3. Форматы и система команд микроЭВМ «Электро­ника-60».

 

ПЕРВЫЙ ВОПРОС

Для примера рассмотрим систему кодирования команд с пере­менной адресностью ЕС ЭВМ. В этих машинах имеется 16 универ­сальных регистров общего назначения и 4 регистра, предусмотрен­ных для операндов с плавающей точкой. Универсальные регистры содержат 32 разряда. В них можно хранить операнды и результаты промежуточных вычислений, индексы (константы модификаций) и базовые адреса. В этом отношении универсальные регистры играют роль сверхоперативной памяти. В ЕС ЭВМ оперативная па­мять разделена на несколько операционных блоков и программу, а данные можно размещать в некоторой отведенной для этой цели области, начальный адрес которой называется базо­вым.

Рис. 1. Форматы команд машин ЕС ЭВМ.

 

Таким образом, адрес операнда имеет сложную структуру и состоит из базы и смещения.

Базовый адрес хранит­ся в одном из универсаль­ных регистров, а исполни­тельный адрес формируется путем сложения текущего и базового адресов.

Регистры с плавающей точкой имеют 64 разряда и используются только для хранения операндов.

В ЕС ЭВМ существует пять основных форматов команд, обозначаемых сво­им кодом, который указы­вает на характер выпол­няемой команды:

1. Команды формата «регистр – регистр» (рис. 1, а) обозначаются фор­матным кодом RR и имеют длину одного полуслова (16 бит). Они выполняют операции над содержимым регистров, адреса которых А1 и А2. Результат операции помещается на место первого операнда.

2. Команды формата «регистр – индексируемая ячейка памяти» (рис. 1, б) обозначаются RX и имеют длину одного слова. Ад­рес А1указывает регистр, где хранится первый операнд. В адресе А2 старшие четыре разряда Х2 указывают универсальный регистр,








Дата добавления: 2015-12-08; просмотров: 2276;


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

При помощи поиска вы сможете найти нужную вам информацию.

Поделитесь с друзьями:

Если вам перенёс пользу информационный материал, или помог в учебе – поделитесь этим сайтом с друзьями и знакомыми.
helpiks.org - Хелпикс.Орг - 2014-2024 год. Материал сайта представляется для ознакомительного и учебного использования. | Поддержка
Генерация страницы за: 0.102 сек.