Система команд процессора и стенда УМК
2.4.1. Общие сведения
Команды процессора i8080 (отечественный аналог процессор КР580ВМ80А) представляются двоично-кодированными словами, разрядность которых кратна восьми (кратна байту). Размер команд в зависимости от вида команды варьируется для названного процессора от 1 до 3 байт.
В освоения системы команд любого процессора используется методологический подход, позволяющий действовать по принципу «разделяй и осваивай». «Разделение» основывается на применении классификационных признаков (критериев классификации). Распространенными критериями классификации команд являются следующие:
– функциональный;
– по форме представления (формату);
– по времени исполнения команд.
В прил. А2 команды МП i8080А представлены четырьмя блоками по функциональному критерию. Для каждой команды в прил. А2 приведены сведения, достаточные и для анализа показателей команд на основе двух других критериев.
В прил. А1 и А2 команды представлены в форме символьных записей, образованных на основе набора ключевых слов английского языка, определяющих функциональную операцию команды, и символов, обозначающих объекты команды, над которыми выполняется операция (операнды). Для перевода символьных записей в шестнадцатеричный код, доступный
для ввода в память стенда УМК, применяется таблица кодов команд МП прил. А1. По названной таблице определяется код первого байта (код операции) команды МП. Код старшей тетрады кода операции равен номеру столбца расположения команды в таблице, а код младшей тетрады равен номеру строки расположения команды.
2.4.2. Функциональный критерий
По функциональному критерию выделяются четыре блока команд (см. таблицу приложения А2):
– команды перемещения (пересылки) данных;
– команды преобразования данных (входные данные отличаются от преобразованных);
– команды передачи управления (управление переключением последовательности выполнения программы);
– команды управления «железом» процессора (управления настройками микропроцессора).
Разделение на блоки связано с существенными различиями реакции процессора на команды названных блоков.
Команды пересылки порождают одну из следующих реакций МП:
– содержимое одного объекта хранения МП (источника) копируется в другой объект хранения (приёмник) без утраты содержимого источника;
– объекты хранения обмениваются содержимым (взаимный обмен).
Команды преобразования данных порождают признаки обобщенной оценки результата преобразования. Наиболее распространенными признаками оценки результата преобразования данных являются:
– нуль/не нуль;
– отрицательность/положительность;
– перенос/заем;
– наличие /отсутствие переполнения (для МП i8080А не введён);
– четность/нечетность (паритет) единичных состояний в слове результата.
Под сохранение признаков в процессорах выделяют и закрепляют специальный объект хранения (F-регистр признаков в процессоре i8080А), в котором под каждый признак отведен определенный разряд хранения. Альтернативность установки признаков по результату преобразования данных по существу определяет «управленческий интеллект» процессора.
Команды передачи управления могут изменить последовательность исполнения команд программы. Каждую извлекаемую команду МП адресует, используя счетчик команд, содержимое которого при каждом обращении к памяти хранения команд увеличивается на единицу в процессе извлечения и по завершению выполнения текущей команды. По выполнению команд передачи управления содержимое счетчика команд устанавливается в соответствии с принятым операндом по одному из следующих вариантов:
– новое значение устанавливается без каких-либо условий (безусловная передача управления);
– новое значение устанавливается процессором после проверки обобщенного признака результата (условная передача управления);
– новое значение устанавливается по одному из названных вариантов с автоматическим сохранением текущего содержимого счетчика команд после извлечения команды.
В последнем варианте возврат к сохраненному содержимому счетчика команд реализуется по специальной команде передачи управления (возврат).
Команды управления настройками, установками состояний микропроцессора МП i8080А составляют четвертый блок таблицы прил. А2. Набор таких команд ограничен.
2.4.3. Критерий формы представления (формат команд)
В командах процессора кодируются:
– функция (операция, действие) над данными;
– данные (адреса данных) над которыми предписывается выполнение операций;
– адреса расположения результатов выполненной операции;
– число необходимых обращений к памяти по физическому каналу при извлечении команды.
Форма представления команд характеризуется размером, кодируемыми полями (функция, объекты, размер), порядком расположения полей.
Код функции команды, как отмечалось, называется кодом операции (КОП). Код операции размещается в старших разрядах кода команды или занимает все первое слово команды. Объекты, над которыми выполняется действие команды, получили название операндов. На рис. 2.1 приведены возможные формы (форматы) команд МП i8080, где показаны возможные расположения полей в командах. Для каждого функционального класса команд их число и назначение различно. Если объект действия команды однозначно представлен на аппаратном уровне в процессоре, то доступ к нему часто определяется по выполняется по коду выполняемой процессором операции (см. рис. 2.1, а).
В командах пересылки задействовано два объекта: источник и приемник. В системе команд МП i8080 источник и приемник представляются кодами полей Аи, Ап соответственно (см. рис. 2.1, б, в, г, е). Поле Ап расположено слева от поля Аи.
В командах преобразования данных должны быть определены не только, как исходные данные но должно указываться и место расположения результата преобразования. Общее число предусмотренных объектов, связанных с преобразованием в одной команде микропроцессора i8080 может
изменяться от двух до четырех. В МП i8080 значительное число команд преобразования выполняется с использованием многофункционального
регистра, получившего название аккумулятор (регистр А программной
модели МП).
Общие признаки результата сохраняются исключительно в регистре признаков (регистр F программной модели). Регистры А и F, как объекты хранения данных, командами преобразования применяются по умолчанию (указываются неявно через КОП). Способы указания объектов в команде получили название способов адресации.
Системой команд поддерживаются обращения за данными к объектам хранения расположенным в процессоре и за его пределами. Память, расположенная в процессоре, получила название регистровой, как и способ ее кодирования в команде. К памяти, расположенной за пределами процессора, применяются разные термины (основная, расширенная, дополнительная, внешняя). Число ячеек в основной памяти значительно (более 103¸109). Поэтому размер адреса данных для ячеек основной памяти может быть также значительным (более десяти двоичных разрядов). Чтобы в командах размеры полей операндов находились в приемлемых пределах, практикой проектирования процессоров и систем команд отработаны разнообразные подходы для представления операндов в командах (способы адресации).
В командах, обычно, независимо от вида операции, в явной форме размещается не более двух операндов. Остальные, если необходимы, адресуются неявно (по умолчанию) через первое слово команды, которое кодирует операцию. Для процессора i8080 введены следующие соглашения о размерах команд и способах адресации. Размер команд не превышает трех байт. Состав способов адресации доступных микропроцессору МП i8080 соответствует следующему перечню:
– прямая регистровая;
– прямая абсолютная (длинная, короткая, векторная);
– непосредственная;
– косвенная;
– неявная.
Второй и третий способы адресации в перечне относятся к явным. Первый и четвертый способы могут быть заявлены в командах неявно. В двоичной форме поле кода адреса одного объекта при прямой или косвенной регистровой адресации занимает от одного до трех двоичных разрядов. Один (или оба) адреса данных могут быть размещены в одном слове с кодом операции.
Примечание: Процессоры выполняют команды, представленные двоичным кодом. Для удобства пользования принята, по преимуществу, буквенно-символьная форма записей. Эта форма представлена в таблицах приложений А, Б. Символьная форма представления записи команд называется ассемблерной (представляющей).
При прямой регистровой адресации (этому способу соответствуют форматы, представленные на рис.2.1, б, г, е) операнд размещается в регистрах А, В, С, D, Е, Н, L процессора или парах регистров (например, PSW, H, B, D, SP, РС) программной модели.
Абсолютная адресация отличается числовым заданием адреса в команде (например, команда sta A001, где А001 – абсолютный длинный адрес ячейки памяти (соответствующий формат представлен на рис. 2.1, ж)). Примером короткой абсолютной адресации может служить команда in 25, где 25 – короткий абсолютный адрес порта из множества 0–255.
Термин «векторный» адрес связан с адресацией совокупности ячеек (области). Примером векторного способа могут служить команды rst 0 …rst 7, которые указывают начальный адрес векторной области размером восемь ячеек памяти. Термины «длинный», «короткий» способ связаны соответственно с использованием полной или сокращенной шины адреса МП при адресации данных.
Рис. 2.1. Форматы команд КР580ВМ80А: КОП – код операции;
Ап – код приемника данных; Аи – код источника данных;
Ап/Аи – код приемника или источника
Непосредственная адресация предполагает размещение в коде команды данных, над которыми выполняется операция, предусмотренная командой. Этому способу соответствуют форматы команд, показанные на рис. 2.1 г, ж. Примером такой команды можно считать команду mv1 A, 46, которая объектом приемника рассматривает регистр А и предписывает процессору поместить число 46 в регистр А. Число 46 является «источником» и находится в команде.
Косвенная адресация может рассматриваться, как определение адреса данных через «посредника». В команде явно или неявно содержится указание на объект, в котором содержится адрес операнда. Например, в символьной записи команды stax В явно указана пара регистров ВС, (регистровый способ задания объекта), но в паре ВС размещен не операнд, а адрес операнда. Операнд расположен в ячейке памяти М(В). Если содержимое пары регистров ВС, к примеру, равно 0А00, то операнд для команды stax B находится в ячейке памяти с М(0А00).
В МП i8080 косвенная адресация осуществляется через регистровые пары HL, BC, DE, SP. Пары HL и SP в буквенных записях команд МП обычно определяются неявно, а BC и DE – явно.
Неявная адресация обсуждалась как форма, при которой адрес в команде явно не представлен.
2.4.4. Время выполнения команд
Время выполнения команд оценивается в абсолютных или относительных единицах измерения. Абсолютное время измеряется в секундах и долях секунд. Для сравнительных оценок используются временные интервалы кратные периоду частоты тактового генератора процессора (такты, машинные циклы, командные циклы). Один такт соответствует одному периоду
Т = 1 / Ft ,
где Ft – частота тактового генератора процессора.
Под машинным циклом принято понимать временной интервал однократного взаимодействия процессора с памятью команд или данных с использованием управляющих сигналов «Прием»/»Выдача».
Временной интервал выполнения команды принято называть командным циклом.
Машинный цикл образуется из нескольких тактов, причем число тактов в машинном цикле процессора зависит от аппаратной организации процессора и вида машинного цикла.
Командный цикл предполагает исполнение двух этапов, которые в процессорах могут выполняться последовательно один за другим или совмещаться во времени (частично или полностью):
– извлечение команды (прием) из памяти команд;
– исполнение операции над данными согласно команде.
На выполнение названных этапов процессор, в зависимости от особенностей архитектурной организации, использует от одного до нескольких машинных циклов.
Для МП i8080, аналог которого установлен в стендах УМК, УОУ, временные циклы характеризуются следующими чертами:
– этап исполнения команды следует за этапом ее извлечения;
– извлечение команды осуществляется за один – три машинных цикла;
– первый машинный цикл извлечения кода команды исполняется за четыре-шесть тактов, а все последующие исполняются за три такта;
– командный цикл микропроцессора реализуется за 1–5 машинных циклов;
– в первом машинном цикле, микропроцессор принимает двоичное (машинное) слово КОП (обозначается как цикл Выборка или М1).
На рис. 2.2 приведена временная диаграмма сигналов для части сигнальных линий МП i8080 при выполнении команды mov M, A. Пример иллюстрирует команду, состоящую из двух машинных циклов (М-циклов). В первом М-цикле из памяти команд извлекается команда, а во втором – исполняется предписанная ею операция с данными. На рис. 2.2 введены обозначения:
F1, F2 – тактовые последовательности импульсов с генератора;
А0 – А15 – линии шины адреса;
D0 – D7 – линии шины данных;
СС – слово состояния процессора;
ЗПД – запрос прямого доступа.
ОСТ – состояние «Останов» процессора;
СИН – сопровождение слова «СС»;
ГОТ – готовность объекта принять/передать информацию к МП.
Определяя размер команды, состав объектов и функцию, предписанную командой, несложно оценить число М-циклов, число тактов, а, следовательно, абсолютное время исполнения команды. В соответствующих столбцах таблицы приложения Б для самоконтроля приведены размер команды в байтах и время ее выполнения в тактах.