logo search
!Архитектура ЭВМ и вычислительных систем

Процессор. Классификация команд процессора. Основные форматы команд, примеры. Примеры команд.

Система команд

Проектирование системы команд оказывает влияние на структуру ЭВМ. Оптимальную систему команд иногда определяют как совокупность команд, которая удовлетворяет требованиям проблемно-ориентированных применений таким образом, что избыточность аппаратных и аппаратно-программных средств на реализацию редко используемых команд оказывается минимальной. В различных программах ЭВМ частота появления команд различна; например, по данным фирмы DEC в программах для ЭВМ семейства PDP-11 наиболее часто встречается команда передачи MOV(B), на ее долю приходится приблизительно 32% всех команд в типичных программах. Систему команд следует выбирать таким образом, чтобы затраты на редко используемые команды были минимальными.

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

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

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

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

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

Рис. 2.4. Классификация команд.

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

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

Ниже приведен формат двухадресной (двухоперандной) команды процессоров СМ.

Формат команд процессоров СМ:

а) двухадресная команда;

б) одноадресная команда.

Примеры кодирования двухадресных команд в процессорах

КОП

Мнемоника команды

Комментарий

0001

0010

0110

1110

MOV

CMP

ADD

SUB

Передача данных

Сравнение

Сложение

Вычитание

0000

1000

-

-

Кодирование группы

одноадресных команд

Четырехбитный КОП (биты 15-12) кодирует ряд двухоперандных операций, приведенных в таблице 1. Биты (11-6) и (5-0) для команд данного типа определяют адреса источника и приемника данных. Как видно из таблицы, комбинации 0000 и 1000 поля КОП определяют группы одноадресных команд (рис 1,б). КОП 1 (биты 15-12), соответствующий кодам 0000 и 1000, определяет группу одноадресных команд, а КОП 2 (биты 11-6) кодирует конкретную операцию команд данной группы. Таким образом, команды, использующие один операнд, кодируются 10-битным КОП (биты 15-6).

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

1. Адрес следующей команды указывается только в командах переходов; в остальных случаях очередная команда выбирается из ячеек памяти, следующих за выполненной командой.

2. Использование ячейки, в которой находится один из операндов, для запоминания результата (например, сумма запоминается в ячейки первого операнда).

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

Почти во всех форматах команд первые биты отводятся для кода операции, но далее форматы команд разных ЭВМ сильно отличаются друг от друга. Остальные биты должны определять операнды или их адреса, и поэтому они используются для комбинации режимов, адресов регистров, адресов памяти, относительных адресов и непосредственных операндов. Обычно длина команды варьируется от 1 до 3 и даже 6 байт.

По форматам команд можно судить о возможностях ЭВМ.

  1. Процессор. Адресация. Понятие и виды адресации. Примеры. Этапы выполнения команд.

Адресация памяти вычислительных систем — метод указания на ячейку памяти, к которой производится доступ.

Адресация может быть:

Абсолютная — указывается прямой адрес ячейки памяти, это метод адресации в абсолютных адресах, представленных двоичными кодами.

Ассоциативная — метод адресации ячеек памяти, основанный на указании содержимого ячейки, а не её точного положения. Для этого указывается слово, которое характеризует содержимое нужной ячейки, а не её обычный адрес. Для реализации механизма поиска, основанного на сравнении части содержимого памяти с каким-либо словом-признаком, применяется ассоциативное устройство памяти.

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

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

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

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

Непосредственная — указывает на определённое число, константу (Например: mov A,#50H — записать число 50H в аккумулятор).

Регистровая — указывает на определённый регистр РОН (регистры общего назначения).

Стековая — с использованием специального регистра — указателя стека (SP — Stack Pointer). Используется для занесения операндов в стек в одном порядке и извлечения в обратном порядке.

Неявная — регистр источник или регистр приёмник подразумевается в самом коде операции.

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

Для получения распределения адресного пространства современных IBM PC-совместимых компьютеров между ОЗУ, периферийными устройствами и зарезервированными областями используется функция E820H прерывания 15H.