РАЗДЕЛ 3 Программное обеспечение микропроцессорных систем 2 страница

В связи с необходимостью более глубокого знания функционирования микроЭВМ МС1201, так как на ее базе построено две системы ЧПУ – 2Р22 и Контур – 1, рассмотрим более подробно некоторые вопросы ее функционирования.

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

 

Рис. 3. Структура микро-ЭВМ с общей магистралью.

 

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

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

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

Обмен данными между устройствами, подключенными к магистрали, может осуществляться в режимах:

1) прог­раммном;

2) по прерыванию;

3) прямого доступа к памяти (ПДП).

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

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

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

Рабочими циклами магистрали при взаимодействии с процессором являются: «Чтение» — перенос слова данных от внешнего устройства в процессор; «Запись» — перенос слова или байта данных из процессора во внешнее уст­ройство; «Чтение модификация — запись» — перенос слова данных от внешнего устройства в процессор, за которым следует запись слова (байта) данных из процес­сора во внешнее устройство.

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

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

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

Организация памяти.В микро-ЭВМ «Электроника МС1201.01» каждое слово содержит 16 бит. Наименьшей адресуемой частью памяти является байт, состоящий из 8 бит. Два байта составляют слово. Память можно рас­сматривать как последовательность ячеек с номером (адресом), присвоенным каждой ячейке (рис. 4).

Если оперативная память содержит N байт, то последо­вательность адресов байтов будет 0, 1, 2, ..., N — 1. Адреса слов совпадают с адресами четных байтов, и их последова­тельность выглядит как 0, 2, 4, 6, ...,N— 2.

Адреса памяти удобно записывать в восьмеричной системе счисления. На рис. 4 показана структура опера­тивной памяти максимального объема для рассматри­ваемой микро-ЭВМ. Она содержит 56К байт, или 28К слов.

С помощью 16-разрядного слова процессор способен прямо адресовать 64К байт, или 32К слов, однако послед­ние 8К байт, или 4К слов, выделяются для адресации регистров внешних устройств и регистров процессора. Таким образом адреса слов 1600008— 1777768 относятся не к ячейкам оперативной памяти, а к различным регист­рам. Следует иметь также в виду, что первые 2008 слов (адреса 0—3768) резервируются системой для векторов внутренних и внешних прерываний. По этой причине обычно в практике программирования начиная с адреса 4008 отводят некоторое число ячеек памяти для использо­вания аппаратурным указателем стека, а далее распо­лагаются программы вплоть до самой последней ячейки памяти с адресом 157776s.

Рис. 4. Структура адресного пространства микроЭВМ.

 

Логическая организация процессора.Структура про­цессора, состоящего из регистров общего назначения РОН, арифметическо-логического устройства АЛУ, реги­стра состояния процессора РгСП и устройства управления магистралью УУМ, показана на рис. 5.

Процессор, подключаемый к общей магистрали как подсистема, управляет временным распределением общей магистрали для устройств ввода-вывода, декодирует команды и выполняет арифметические и логические опера­ции. Он содержит восемь (R0—R7) 16-разрядных регист­ров общего назначения РОН, которые могут использо­ваться как накапливающие, индексные, с автоувеличением и автоуменьшением или как указатели стеков для времен­ного запоминания данных в оперативной памяти, для выборки операндов и записи результатов при выполнении арифметических и логических операций аналогично ячей­кам памяти и регистрам внешних устройств. Операции по выполнению команд с регистровым методом адресации не требуют рабочих циклов общей магистрали. Обмен же

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

Рис. 5. Логическая схема процессора микро-ЭВМ.

 

Обмен информацией в упрощенном виде показан на рис. 5. Поток данных с общей магистрали через устрой­ство управления магистралью УУМ направляется к вход­ным цепям арифметическо-логического устройства АЛУ и через его выходные цепи — к регистрам общего назначе­ния РОН. Далее информация опять поступает на входные цепи арифметическо-логического устройства АЛУ и через его выходные цепи — к устройству управления УУМ магистралью и снова в общую магистраль.

Возможны следующие виды передачи данных: регистр — регистр, регистр — память, память — регистр, память — память. Кроме того, в процессоре имеется отдельный 8-разрядный регистр состояния процессора РгСП (PSR). Разряд 7 служит для управления разрешением или запре­щением прерываний от внешних устройств. Разряды 6 и 5 в данной модели микро-ЭВМ для работы не нужны. Разряд 4 (обозначен Т) используется системным математическим обеспечением при отладке программ (позволяет осущест­вить покомандное исполнение программы). Разряды 3 — 0 (обозначены как N, Z, V, С) содержат информацию о результатах выполнения предыдущих операций. Эти разряды имеют следующее значение: N= 1 — если резуль­тат был отрицательным, Z = 1 — если результат был равен 0, V = 1 — если было переполнение при выполнении ариф­метических операций, С=1 —если был перенос из 15-го разряда.

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

Структура одноадресной команды имеет вид

Поле адреса приемника занимает разряды 0—5, код операции (КОП) — разряды 6—15.

Способ адресации кодируется тремя двоичными разря­дами:

Таким образом, существует всего восемь способов адресаций (4 прямых и 4 косвенных).

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

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

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

содержимое регистра R1 складывается с содержимым регистра R0 и результат направляется в регистр R0:

С помощью диаграммы регистровую адресацию можно изобразить так:

Регистровая косвенная адресация (код 18). Содержимое адресуемого регистра используется как адрес операнда. Например, команда

очищает ячейку памяти, адрес которой представлен со­держимым регистра R2. В приведенном примере это ячей­ка с адресом 1100. Условно этот тип адресации выглядит так:

Адресация с автоувеличением (код 28) Содержимое адресуемого регистра рассматривается как адрес операнда. После получения адреса содержимое регистра автоматически увеличивается на 1при байтовых операциях, а при операциях со словами — на 2.

Содержимое регистров R6 и R7 (SP и PC) всегда увеличивается на 2. Этот способ адресации очень удобен для обработки таблиц (последовательно расположенных в памяти данных). Например, команда

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

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

увеличивает на 1 содержимое ячейки памяти, адрес адреса которой указан содержимым регистра R1, затем содержи­мое регистра R1 увеличивается на 2. Этот способ адреса­ции удобен для обработки таблиц, состоящих из адресов. Ниже приведено его условное изображение:

Адресация с авто уменьшением (код 48). Содержимое регистра сначала уменьшается на 1 для байтовых операций и на 2 для операций со словами и затем используются как адрес операнда. Содержимое регистров R6 и R7 в любом случае уменьшается на 2. Например, команда

уменьшает содержимое регистра R4 на 2, затем очищает ячейку памяти, адрес которой определяет новое значение содержимого регистра R4. Нетрудно видеть, что при адре­сации с автоуменьшением адресации к ячейкам памяти идет в противоположном направлении, чем при адресации с автоувеличением. Этот способ адресации также удобен при обработке таблиц. Его условное изображение имеет вид

Косвенная адресация с авто уменьше­нием (код 58). Содержимое регистра всегда умень­шается на 2 и затем применяется в качестве указателя слова, содержащего адрес операнда. Например, команда

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

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

очищает ячейку памяти, адрес которой определяется как сумма 200 и содержимого регистра R4. Индексную адре­сацию условно можно представить так:

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

произойдет очистка содержимого ячейки с адресом 3000, так как регистр R0 содержит значение 2000, а индекс ра­вен 500.

Условно этот способ адресации можно представить так:

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

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

обеспечит сложение константы 20 с содержимым ре­гистра R0. Условно непосредственную адресацию можно представить так:

Абсолютная адресация (код адреса опе­ранда 378). Этот режим адресации образуется примене­нием косвенной адресации с автоувеличением к содержи­мому счетчика команд. Слово, следующее за командой, является адресом операнда. Например, команда

выполняет очистку ячейки памяти с адресом 2000. Условно этот способ адресации можно обозначить так:

 

Относительная адресация (код адреса операнда 678). Этот способ адресации образуется при­менением индексной адресации к содержимому счетчика команд. Адрес операнда определяется суммированием индексного слова, следующего за командой, и содержи­мого счетчика команд. Фактически индексное слово указы­вает, насколько далеко вперед или назад операнд отстоит от команды. Например,


Исполнительный адрес

где α — адрес команды: Х= А — α — 4= 12008—100048 — 48=1748— смещение (индекс).

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

Относительную адресацию условно можно предста­вить так:

Относительная косвенная адресация (код адреса операнда 778). Этот способ адресации образуется применением косвенной индексной адресации к содержимому счетчика команд. Адрес адреса операнда определяется суммированием индексного слова, следую­щего за командой, и содержимого счетчика команд. Например, команда

очищает ячейку памяти по адресу 2000. Условно этот спо­соб адресации можно представить так:

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

Команда с регистровой адресацией

вполне допустима. Она запишет содержимое счетчика ко­манд в регистр R1:

т. е в R1 окажется адрес следующей команды. Пусть регистр R7 находится по месту адреса приемника, тогда по команде

текущее значение счетчика команд увеличится на 2, т. е. произойдет пропуск следующей команды. Однако проще и эффективнее выполнять безусловную передачу управле­ния с помощью команды BR, так как она занимает только одну ячейку памяти.

Команда с косвенной регистровой адресацией

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

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

После выполнения команды по адресу 1000 команда INC R1, находящаяся по адресу 1002, будет заменена командой HALT (останов):

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

при выборке операнда по адресу источника уменьшают содержимое счетчика команд на 2 и таким образом воз­вращают управление той же самой команде.

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

Система команд.Как уже отмечалось, команды могут быть трех типов: безадресные, одноадресные и двухадрес­ные. В безадресной команде все слово занимает код опера­ции. Одноадресная команда имеет два поля: для кода операции отводится 10 разрядов и для адреса операнда-приемника — 6 разрядов. Двухадресная команда содер­жит три поля: 4 разряда отводится для кода операции, 6 разрядов — для адреса операнда-источника и 6 разря­дов — для адреса операнда-приемника.

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

Рассмотрим состав команд и отметим их некоторые характерные особенности.

Примечание. С детальным описанием каждой команды при не­обходимости можно ознакомиться по руководству к микро-ЭВМ.

При описании команд приняты следующие обозначе­ния: DD — адрес приемника; SS — адрес источника; R — регистр общего назначения; $z — звездочка: перед кодом операции принимает значение 0 для слов и 1 — для байтов. Буква В в круглых скобках в мнемонических обозначениях команды показывает, что команда может быть использована как для слов, так и для байтов.

В табл. 1 приведены соответственно группы одно­адресных команд, двухадресных команд и команд управле­ния программой.

Рассмотрим особенности выполнения команд услов­ного перехода. Четыре разряда регистра состояния N, Z, V, С процессора представляют собой признаки резуль­тата выполнения предыдущей команды и используются командами условного перехода. Передача управления происходит при выполнении условия, определяемого кодом операции.

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

 

Таблица 1

Продолжение табл. 1

Продолжение табл. 1

Младший байт команды рассматривается как знаковое смещение (в диапазоне от —128 до +127 слов) относи­тельно счетчика команд. При написании программ следует, учитывать ограниченную возможность передачи управле­ния вперед и назад и в случае необходимости применять команду передачи управления JMP. Команда JMP не имеет ограничений на длину передачи, однако занимает в памяти два слова.

Адрес команды, на которую передается управление в случае выполнения условия, вычисляется по формуле

где α — адрес команды условного перехода.

При передаче управления назад смещение задается в дополнительном коде.

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

где R, —один из регистров общего назначения; SUB — имя некоторой подпрограммы.

Действие команды обращения к подпрограмме можно условно представить в виде эквивалентной системы команд:

При обращении к подпрограмме прежнее содержимое регистра связи R, запоминается в стеке, затем в регистр связи заносится адрес возврата (адрес команды, следую­щей за командой вызова) и происходит переход на под­программу с именем SUB.

Возврат из подпрограммы происходит по команде RTS R,, действие которой можно также условно пред­ставить в виде системы эквивалентных команд:








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


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

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

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

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