Смекни!
smekni.com

Микропроцессоры и основные понятия (стр. 15 из 17)

Например, команда, состоящая из двух полей, имеет вид:

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

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

Схема выполнения трехадресной команды: [А3]:=[А1]*[А2]. Содержимое ячейки с адресом А1 - [А1] (первый операнд) и содержимое ячейки с адресом А2 - [А2] (второй операнд), извлеченные из памяти, вступают в операцию *, заданную полем КО, и результат операции пересылается (записывается) в ячейку памяти с адресом А3. В общем случае, в зависимости от количества адресных полей, принято различать команды: безадресные, одноадресные, двухадресные, трехадресные.

Кроме того, в процессорах применяют команды различных форматов в зависимости от уровней памяти, т.е. в зависимости от того, адрес какого типа указан в адресной части команды - адрес типа R, в котором указывается номер РОН, или адрес типа А – номер ячейки ОП. Отсюда различные типы форматов: RR – команды типа регистр-регистр, RM – команды типа регистр-память, MM - команды типа память-память.

Примеры двухадресных команд типов RR (1), RM (2), MM (3) :

Надо отметить, что количество разрядов k для адресации РОН, меньше количества разрядов m для адресации ячейки памяти А, т.к. количесво РОН значительно меньше количества ячеек памяти.

Все возможные преобразования, дискретной информации могут быть сведены к четырем основным видам:

- передача информации в пространстве (из одного блока ЭВМ в дру­гой);

- передача информации во времени (хранение);

- логические (поразрядные) операции;

- арифметические операции.

ЭВМ, являющаяся универсальным преобразователем дискретной ин­формации, выполняет указанные виды преобразований.

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

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

По характеру выполняемых операций различают следующие основные группы команд:

а) команды арифметических операций над числами с фиксированной и плавающей точками;

б) команды десятичной арифметики;

в) команды логических операций;

г) команды передачи кодов;

д) команды операций ввода-вывода;

е) команды передачи управления;

ж) команды задания режима работы машины и др.

В команде, как правило, содержатся не сами операнды, а информация об адресах ячеек памяти или регистрах, в которых они находятся.

Команда в общем случае состоит из операционной и адресной частей (рис.2.2,а).

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

Структуры команд: а) обобщенная; б) четырех-; в) трех-;

г) двух -; д) одно -; е) безадресная

Операционная часть содержит код операции (КОП), который задает вид операции (сложение, умножение и др.). Адресная часть содержит информа­цию об адресах операндов и результате операции, а в некоторых случаях -информацию об адресе следующей команды.

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

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

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

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

nком > log 2 M, например, при М=200, пкоп = 8.

Если основная память содержит S адресуемых ячеек (байт), то для явно­го представления только одного адреса необходимо в команде иметь адрес­ное поле для одного операнда с числом разрядов

nA > log2S, например, при S = 64 Мб, nA = 26.

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

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

Проследим изменения классических структур команд.

Чтобы команда содержала в явном виде всю необходимую информацию о задаваемой операции, она должна, как это показано на рис. 2.2,6, содержать следующую информацию:

А1 , А2; - адреса операндов, А3 - адрес результата, А4 _ адрес следующей команды (принудительная адресация команд).

Такая структура приводит к большей длине команды (например, при S = 200, S = 32 Мб длина команды - 108 бит) и неприемлема для прямой ад­ресации операндов основной памяти. В компьютерах с RISC-архитектурой четырехадресные команды используются для адресации операндов, храня­щихся в регистровой памяти процессора.

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

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

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

В одноадресной команде (подразумеваемые адреса имеют уже и результат операции и один из операндов. Один из операндов указывается адресом в команде, в качестве второго используется содержимое регистра процессора, называемого в этом случае регистром результата или аккумуля­тором (Akk). Результат операции записывается в тот же регистр:

Akk :=Аkk*ОП[А1].

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

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