Чем определяется длина команды
Большая Энциклопедия Нефти и Газа
Длина команды представляет собой количество битов, необходимых для формирования выполняемой команды. Команды могут быть той же длины, что и обрабатываемые МП информационные слова, или же в несколько ( 1 5; 2 или 3) раз длиннее. Обычно более короткие команды требуют меньшего времени выполнения. Возможность использования команд различной длины характеризует гибкость организации вычислительного процесса в МП. [1]
Длина команд стандартная для ЕС ЭВМ. Мультиплексный канал содержит 16 подканалов со скоростью передачи в мультиплексном режиме 35 кбайт / сек. [2]
Длина команды представляет собой количество двоичных разрядов ( бит), необходимых для формирования выполняемой команды. Команды могут быть той же длины, что и обрабатываемые микропроцессором информационные слова, или в несколько раз ( в 1 5; 2 или 3 раза) длиннее. Обычно более короткие команда. [4]
Длина команды как двоичного слова совпадает с длиной слова данных. Так, длина слова команды 8-разрядного микропроцессора равна 8 бит, а 16-разрядного микропроцессора-16 бит. Однако команды могут иметь длину, равную не только одному, но также двум или трем словам. Следовательно, длина команды 8-разрядного микропроцессора может равняться 8, 16 или 24 бит. Назначение отдельных битов команды описывается ниже. [5]
Длина команды зависит от длины используемого в ней адреса. Хотя различные микропроцессоры и располагают наборами команд, принципы адресации в них, как правило, одни и те же. Тип обращения ( адресации) к данным принято называть способом адресации. В следующих разделах данной главы описываются различные способы адресации 8-разрядного микропроцессора, рассматриваемого в книге. [7]
Длина команды как двоичного слова всегда кратна длине слова данных микропроцессора. Обычно она равна длине одного, двух или трех слов данных. [8]
Фактически длина команды связана с числом адресов операндов, находящихся в главной памяти. Команда длиной в одно полуслово не требует обращения к главной памяти за операндом. В команде длиной в два полуслова указывается адрес одного операнда, находящегося в главной памяти. В команде длиной в 3 полуслова указываются адреса двух операндов из главной памяти. [9]
Код длины команды указывает, какое число полуслов занимает последняя выполнявшаяся команда при появлении прерывания. Признак результата устанавливается или сохраняется после выполнения всех команд. Используется в командах перехода. [10]
Код длины команды ( ILC) занимает 2 бита и определяет длину последней выполнявшейся команды. Он позволяет определить, какая команда вызвала прерывание при условии, что в старом PSW указан адрес следующей по порядку команды. Код длины команды устанавливается также при выполнении команд перехода с возвратом. [12]
Чему равна длина команды микропроцессора по сравнению с длиной слова данных: а) такая же, б) в два раза длиннее, в) в три раза длиннее, или г) все приведенные утверждения справедливы. [13]
Чем определяется длина команды
3.4.4 Командные циклы и длина команд
Число тактовых циклов ЦПУ, требуемых для выполнения команды, определяется форматом команды и используемым режимом адресации, и не зависит, собственно, от команды. Понятие количества тактовых циклов относится к MCLK.
Циклы прерывания и сброса
В таблице 3.14 приведено количество циклов ЦПУ для обслуживания прерывания и сброса.
Таблица 3.14. Циклы прерывания и сброса
Действие | Кол-во циклов | Длина команды |
Возврат из прерывания (RETI) | 5 | 1 |
Получение прерывания | 6 | — |
Сброс WDT | 4 | — |
Сброс (nonRST/NMI) | 4 | — |
Циклы команд формата-II (один операнд) и их длина
В таблице 3.15 приводится длина и необходимое количество циклов ЦПУ для всех адресных режимов команд формата-II.
Таблица 3.15. Количество циклов и длина команд формата-II
Режим адресации | Действие | Длина команды | Пример | ||
RRA,RRC SWPB,SXT | PUSH | CALL | |||
Rn | 1 | 3 | 4 | 1 | SWPB R5 |
@Rn | 3 | 4 | 4 | 1 | RRC @R9 |
@Rn+ | 3 | 4 | 5 | 1 | SWPB @R10+ |
#N | См.прим. | 4 | 5 | 2 | CALL #81H |
X(Rn) | 4 | 5 | 5 | 2 | CALL 2(R7) |
EDE | 4 | 5 | 5 | 2 | PUSH EDE |
&EDE | 4 | 5 | 5 | 2 | SXT &EDE |
Примечание: команда формата-II в непосредственном режиме адресации Не следует использовать команды RRA, RRC и SXT с непосредственным режимом в поле получателя. Их использование в непосредственном режиме приведет к выполнению непредсказуемой программной операции.
Циклы команд формата-III (команды перехода) и их длина
Все команды перехода требуют одно слово кода и при выполнении используют два цикла ЦПУ, независимо от того, сделан переход или нет.
Циклы команд формата-I (двойной операнд) и их длина
В таблице 3.16 приводится длина и необходимое количество циклов ЦПУ для всех адресных режимов команд формата-I.
Таблица 3.16. Количество циклов и длина команд формата-I
Режим адресации | Кол-во циклов | Длина команды | Пример | |
Src | Dst | |||
Rn | Rm | 1 | 1 | MOV R5,R8 |
PC | 2 | 1 | BR R9 | |
x(Rm) | 4 | 2 | ADD R5,3(R6) | |
EDE | 4 | 2 | XOR R8,EDE | |
&EDE | 4 | 2 | MOV R5,&EDE | |
@Rn | Rm | 2 | 1 | AND @R4,R5 |
PC | 3 | 1 | BR @R8 | |
x(Rm) | 5 | 2 | XOR @R5,8(R6) | |
EDE | 5 | 2 | MOV @R5,EDE | |
&EDE | 5 | 2 | XOR @R5,&EDE | |
@Rn+ | Rm | 2 | 1 | ADD @R5+,R6 |
PC | 3 | 1 | BR @R9+ | |
x(Rm) | 5 | 2 | XOR @R5,8(R6) | |
EDE | 5 | 2 | MOV @R9+,EDE | |
&EDE | 5 | 2 | XOR @R9+,&EDE | |
#N | Rm | 2 | 2 | MOV #20,R9 |
PC | 3 | 2 | BR #2AEh | |
x(Rm) | 5 | 3 | MOV #0300h,0(SP) | |
EDE | 5 | 3 | ADD #33,EDE | |
&EDE | 5 | 3 | ADD #33,&EDE | |
x(Rn) | Rm | 3 | 2 | MOV 2(R5),R7 |
PC | 3 | 2 | BR 2(R6) | |
TONI | 6 | 3 | MOV 4(R7),TONI | |
x(Rm) | 6 | 3 | ADD 3(R4),6(R9) | |
&TONI | 6 | 3 | MOV 3(R4),&TONI | |
EDE | Rm | 3 | 2 | AND EDE,R6 |
PC | 3 | 2 | BR EDE | |
TONI | 6 | 3 | CMP EDE,TONI | |
x(Rm) | 6 | 3 | MOV EDE,0(SP) | |
&TONI | 6 | 3 | MOV EDE,&TONI | |
&EDE | Rm | 3 | 2 | MOV &EDE,R8 |
PC | 3 | 2 | BRA &EDE | |
TONI | 6 | 3 | MOV &EDE,TONI | |
x(Rm) | 6 | 3 | MOV &EDE,0(SP) | |
&TONI | 6 | 3 | MOV &EDE,&TONI |
3.4.5 Описание набора команд
Карта команд показана на рис.3.20, а полный набор команд приведен в таблице 3.17.
Количество адресов в команде
Длина команды
Чем больше длина команды, тем обеспечивается более полный набор команд, способов адресации, максимальное адресное пространство.
Чем короче команда, тем меньше времени тратится на её исполнение ЦП и упрощается необходимое оборудование.
Длина команды выбирается кратной байту, т.к. основная память обычно организована в виде 8-битовых ячеек.
Обобщенный формат команды (с учетом использования различных способов адресации (СА)) включает в себя поле для задания СА и имеет вид:
КОП (операционная часть) | СА | Адресная часть |
Где l = количество адресов в команде;
RAi – количество разрядов для записи i- го адреса;
Rкоп = разрядность поля кода операции;
RCA = разрядность поля способа адресации.
В ВМ имеют место одновременно несколько форматов команд.
Количество двоичных разрядов, отводимых под код операции, определяется количеством выполняемых операций (системой команд).
Тогда количество разрядов, отводимых под КОП определяется следующим соотношением:
Длина поля КОП варьируется. Изначально под код операции отводится фиксированное число разрядов. Однако, для отдельных команд оно может быть расширено за счет нескольких битов адресного поля. Это сокращение приводит к сокращению возможностей адресации.
В адресной части команды содержится информация о местонахождении операндов и месте хранения результата. При этом местонахождение каждого из операндов и результата задается в команде путем указания адреса соответствующей ячейки ОП или номера регистра ЦП. Принципы использования информации из адресной части команды определяются системой адресации.
Система адресации задает число адресов в команде и принятые способы адресации.
где Ni – количество ячеек памяти, к которому можно обратиться с помощью i- го адреса;
В зависимости от количества адресов, включаемых в адресную часть, различают следующие форматы команд:
4. Полутораадресный (регистровый)
В идеальном случае в адресной части команды должны быть указаны адреса 1-го и 2-го операндов, адрес результата и адрес, где взять следующую команду.
Операция Адреса
Код операции | 1-й операнд | 2-й операнд | Результат | Следующая команда |
Рис. Четырехадресный формат команды
В фон-неймановских ВМ необходимость в четвертом адресе отпадает, т.к. команды располагаются в памяти в порядке их выполнения, и адрес очередной команды может быть получен за счет простого увеличения адреса текущей в счетчике команд. При этом необходимо добавить в систему команд ВМ команды, которые могут изменять порядок вычислений.
Если адрес ячейки основной памяти имеет длину 32 бита, а длина кода операции – 8 бит, то длина команды составит 104 бита (13 байт).
Операция Адреса
Код операции | 1-й операнд | 2-й операнд | Результат |
Рис. Трехадресный формат команды
Если по умолчанию взять в качестве адреса результата адрес одного из операндов (обычно второго), то можно обойтись без третьего адреса.
Операция Адреса
Код операции | 1-й операнд | 2-й операнд / результат |
Рис. Двухадресный формат команды
Обычно для хранения первого операнда и результата выделяется специальный регистр центрального процессора, который называется аккумулятором.
Операция Адреса
Код операции | 1-й или 2-ой операнд |
Рис. Одноадресный формат команды
Так как число регистров в ЦП невелико, то для указания одного из них в команде достаточно иметь короткое адресное поле.
Операция Адреса
Код операции |
Рис. Полутора адресный (регистровый) формат команды
Существую команды, в которых отсутствуют операнды или их местоположение четко задано.
Рис. Безадресный формат команды
Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет
Длина команды
Формат команд
Типовая команда, в общем случае, должна указывать:
• подлежащую выполнению операцию;
• адреса исходных данных (операндов), над которыми выполняется операция;
• адрес, по которому должен быть помещен результат операции.
В соответствии с этим команда состоит из двух частей: операционной и адресной (рис. 2.55).
Операционная часть | Адресная часть |
Рис. 2.55. Структура команды
Формат команды определяет ее структуру, то есть количество двоичных разрядов, отводимых под всю команду, а также количество и расположение отдельных полей команды. Полем называется совокупность двоичных разрядов, кодирующих составную часть команды. При создании вычислительной машины выбор формата команды влияет на многие характеристики будущей машины. Оценивая возможные форматы, нужно учитывать следующие факторы:
• общее число различных команд;
• общую длину команды;
• тип полей команды (фиксированной или переменной длины) и их длина;
• адресуемость и способы адресации;
• стоимость оборудования для декодирования и исполнения команд.
Это важнейшая характеристика, влияющая на организацию и емкость памяти, структуру шин, сложность и быстродействие центрального процессора. Для упрощения аппаратуры и повышения быстродействия вычислительной машины длину команды обычно выбирают кратной байту, т.к. в большинстве вычислительных машин основная память организована в виде 8-битовых ячеек. В рамках системы команд одной вычислительной машины могут использоваться разные форматы команд. Обычно это связано с применением различных способов адресации. В таком случае в состав кода команды вводится поле для задания способа адресации (СА), и обобщенный формат команды приобретает вид, показанный на рис. 2.56.
Код операции | Способ адресации | Адресная часть |
Рис. 2.56. Обобщенный формат команды
Общая длина команды может быть описана следующим соотношением:
(2.1)
где l – количество адресов в команде; – количество разрядов для записи i-го адреса;
– разрядность поля кода операции;
– разрядность поля способа адресации.
В большинстве вычислительных машин одновременно уживаются несколько различных форматов команд.
Структура и форматы команд ЭВМ 
Обработка информации в ЭВМ осуществляется путём программного управления.
Программа представляет собой алгоритм обработки информации, записанной в виде последовательности команд, которые должны быть выполнены машиной для полу чения результата.
Команда ЭВМ представляет собой код, определяющий операцию вычислительной машины и данные, участвующие в операции. В явной и неявной форме команда содержит также информацию об адресе, по которому помещается результат операции, и об адресе следующей команды.
По характеру выполняемых операций можно выделить следующие группы команд:
¨ команды арифметических операций для чисел с фиксированной или плавающей запятой;
¨ команды десятичной арифметики;
¨ команды передачи данных (MOV AX, 0FFFh);
¨ команды операций ввода/вывода (IN, OUT);
¨ команды логических операций (AND, OR, NOT);
¨ команды передачи управления (управление циклом – LOOP, условные переходы – JAE, JB);
¨ команды задания режима работы машины и др.
Форматы команд ЭВМ
В команде, как правило, содержатся не сами операнды, а информация объект адресах ячеек памяти или регистрах, в которых они находятся. Код команды можно представить состоящим из нескольких полей, каждое из которых имеет свое функциональное назначение.
В общем случае команда состоит из:
¨ операционной части (содержит код операции);
¨ адресной части (содержит адресную информацию о местонахождении обрабатываемых данных и месте хранения результатов).
В свою очередь, эти части, что особенно характерно для адресной части, могут состоять из нескольких полей.
Структура команды определяется составом, назначением и расположением полей в коде.
Вместе с тем, для упрощения аппаратуры и повышения быстродействия ЭВМ длина формата команды должна быть по возможности короче, укладываться в машинное слово или полуслово. Решение проблемы выбора формата команды значительно усложняется в микропроцессорах, работающих с коротким словом.
Проследим изменения классических структур команд.
Рис. 1. Структуры команд: а) обобщенная, б) четырехадресная, в) трехадресная, г) двухадресная, д) одноадресная, е)безадресная
Такая структура приводит к большей длине команды и неприемлема для прямой адресации операндов основной памяти. В компьютерах с RISC-архитектурой четырехадресные команды используются для адресации операндов, хранящихся в регистровой памяти процессора.
Можно установить, как это принято для большинства машин, что после выполнения данной команды, расположенной по адресу К (и занимающей L ячеек), выполняется команда из ( K + L )-ой ячейки. Такой порядок выборки команды называется естественным. Он нарушается только специальными командами (передачи управления). В таком случае отпадает необходимость указывать в команде в явном виде адрес следующей команды.
В трехадресной команде (рис. 1, в) первый и второй адреса указывают ячейки памяти, в которых расположены операнды, а третий определяет ячейку, в которую помещается результат операции.
Можно условиться, что результат операции всегда помещается на место одного из операндов, например первого. Получим двухадресную команду (рис. 1, г), т.е. для результата используется подразумеваемый адрес.
В одноадресной команде (рис. 1, д) подразумеваемые адреса имеют уже и результат операции и один из операндов. Один из операндов указывается адресом в команде, в качестве второго используется содержимое регистра процессора, называемого в этом случае регистром результата или аккумулятором. Результат операции записывается в тот же регистр.
Наконец, в некоторых случаях возможно использование безадресных команд (рис. 1, е), когда подразумеваются адреса обоих операндов и результата операции, например, при работе со стековой памятью.
С точки зрения программиста, наиболее естественны и удобны трехадресные команды. Обычно в ЭВМ используется несколько структур и форматов команд разной длины. Приведенные на рис. 1. структуры команд достаточно схематичны. В действительности адресные поля команд большей частью содержат не сами адреса, а только информацию, позволяющую определить действительные (исполнительные) адреса операндов в соответствии с используемыми в командах способами адресации.
Способы адресации
Существует два различных принципа поиска операндов в памяти: ассоциативный и адресный.
Ассоциативный поиск операнда (поиск по содержанию ячейки) предполагает просмотр содержимого всех ячеек памяти для выявления кодов, содержащих заданный командой ассоциативный признак. Эти коды и выбираются из памяти в качестве искомых операндов.
Адресный поиск предполагает, что искомый операнд извлекается из ячейки, номер которой формируется на основе информации в адресном поле команды. Ниже мы будем рассматривать только реализацию адресного принципа поиска операнда.
Следует различать понятия исполнительного адреса и адресного кода.
Адресный код – это информация об адресе операнда, содержащегося в команде.
Исполнительный адрес – это номер ячейки памяти, к которой фактически производится обращение.
Адресуемые в командах операнды хранятся в основной памяти (ОП) и регистровой памяти (РП), рисунок 2.
Рис. 2. Память для хранения адресуемых операндов
Рассмотрим способы адресации, применяемые в современных ЭВМ.
Классификация способов адресации по наличию адресной информации в команде
По наличию адресной информации в команде различают явную и неявную адресацию.
При явной адресации операнда в команде есть поле адреса этого операнда, в котором задается адресный код Ак. Большинство методов адресации являются явными.
При неявной адресации адресное поле в команде отсутствует, адрес операнда подразумевается кодом операции.
Классификация способов адресации по кратности обращения в память
Широко используются следующие методы адресации операнда с различной кратностью обращения ( R ) в память:
1. Непосредственная ( R = 0).
Непосредственная адресация операнда. При этом способе операнд располагается в адресном поле команды. Обращение к регистровой памяти (РП) или оперативной памяти (ОП) не производится. Таким образом, уменьшается время выполнения операции, сокращается объем памяти. Непосредственная адресация удобна для задания констант, длина которых меньше или равна длине адресного поля команды.
КОП |
Рис. 3. Непосредственная адресация
Операнд |
Рис. 4. Схема прямой адресаций
Обеспечивая простоту программирования, этот метод имеет существенные недостатки, так как для адресации к ячейкам памяти большой емкости (число адресов М велико) требуется «длинное» адресное поле в команде. Прямая адресация используется широко в сочетании с другими способами адресации. В частности, вся адресация к «малой» регистровой памяти ведется только с помощью прямой адресации.
Косвенная адресация операндов. При этом способе адресный код команды указывает адрес ячейки памяти, в которой находится не сам операнд, а лишь адрес операнда, называемый указателем операнда. Адресация к операнду через цепочку указателей (косвенных адресов) называется косвенной.
Адрес указателя, задаваемый программой, остается неизменным, а косвенный адрес может изменяться в процессе выполнения программы. Косвенная адресация, таким образом, обеспечивает переадресацию данных, т.е. упрощает обработку массивов и списковых структур данных, упрощает передачу параметров подпрограммам, но не обеспечивает перемещаемость программ в памяти (рис. 5).