Адресность и форматы команд



Код команды должен указывать:

операцию, подлежащую выполнению; операнды, над которыми выполняется операция; адрес, куда должен быть помещен результат операции; следующую команду (или откуда она должна быть взята).

На рисунке 1.3.1 приведена структура команд, различающихся по признаку адресности. Как правило, в составе любой команды можно выделить несколько двоичных разрядов, определяющих код выполняемой операции КОП. Адресная часть кода команды может содержать указания на 1-4-й адреса (А14). В коде Аi может быть отражен номер ячейки главной памяти, номер регистра РОН процессора, число, используемое тем или иным способом для вычисления номера ячейки и т.п.

На примере операции сложения очевидна необходимость указания всех четырех адресов: А1, А2 - адрес слагаемых, А3-адрес результата, А4 - адрес следующей команды программы. С появлением в процессорах уже первого поколения ЭВМ регистров программного счетчика необходимость включения А4 в состав команды отпала. Формат б) стал основным.

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

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

Под форматом команды понимают ее длину в байтах, назначение и длины ее полей (КОП, Аi). Формат команд согласуется с величиной информационного слова, принятого в данной ВС, что упрощает и ускоряет передачу ее кода из главной памяти.

1.3.2 Типы операции. Классификацию команд по типам операций можно провести, разделив их на пять основных групп:

перемещения данных; преобразования данных; управления программой; ввода-вывода; специальные.

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

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

Команды управления изменяют содержимое программного счетчика (ПС). Тем самым нарушается «естественный» порядок выполнение команд программы в порядке их записи. Главным средством организации ветвлений в программе являются такие представители этой группы, как команды условных переходов. Принудительная модификация ПС этими командами, а, следовательно, и скачок в программе происходят только при определенном значении указанного в коде операции флага. К этой же группе команд можно отнести операции перехода к подпрограммам и возврата из подпрограммы.

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

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

Способы адресации

Под способом адресации понимают закодированное в команде правило, по которому на основе содержимого адресных полей Аi (рис.1.3.1) формируются тем или иным путем исполнительные адреса операндов. На примере одноадресной команды рассмотрим наиболее общие способы формирования исполнительных адресов.

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

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

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

Непосредственная адресация означает, что в адресном поле команды содержится не адрес, а сам операнд, участвующий в данной операции. Форматы таких команд имеют «средний» или «длинный» размеры, так как в качестве операнда может выступать код длиной только в 1 байт или целая последовательность байт. Кодами непосредственных операндов являются исходные константы, заносимые в регистры-счетчики, коды «масок» для команд сравнения, адреса ячеек памяти и т.п.

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

Оптимальное сочетание в программе различных способов адресации позволяет рационально использовать память и минимизировать время выполнения программы.

1.4 Два способа алгоритмической организации ввода/вывода

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

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

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

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

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

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

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

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

 

 


Дата добавления: 2015-12-20; просмотров: 24; Мы поможем в написании вашей работы!

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






Мы поможем в написании ваших работ!