Команда для эвм состоит из скольких частей. Структура и форматы команд эвм. Представление команд в ЭВМ

Команда для эвм состоит из скольких частей. Структура и форматы команд эвм. Представление команд в ЭВМ

21.11.2023

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

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

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

Способы уменьшения формата команды. Рас смотрим гипотетическую ситуацию. Допустим, что в формате команды:

  • поле кода операций (КО) занимает 4 разряда, что позволяет закодировать 24 = 16 операций;
  • под адреса двух операндов-источников, адрес места расположения результата, адрес следующей команды выделены поля AO1, А02, АР, АСК (рис. 5.20) по 12 разрядов, что позволяет в каждом случае адресовать 212 = 4К ячеек памяти.

Рис. 5.20.

Как видно из рис. 5.20, несмотря на скромные возможности команды, ее общая длина составляет достаточно большое число (52) бит. Для сокращения количества разрядов команды часть информации должна быть задана неявно и не должна зависеть от особенностей конкретной команды.

Наиболее употребительными являются следующие способы сокращения длины кода команды:

  • использование специально предусмотренных для адресации регистров : программного счетчика, указателя стека и др. Например, при выполнении команд с последовательно возрастающими адресами программный счетчик автоматически считывает из памяти следующую команду. В этом случае в формате команды отсутствует поле адреса следующей команды;
  • использование неявных способов адресации. Например, при использовании неявной регистровой адресации адрес следующей команды или операнда хранится в регистре, код которого содержит значительно меньшее число разрядов, чем код исполнительного адреса;
  • совмещение источника одного из операндов с приемником результата. В этом случае в формате команды исключается поле адреса результата;
  • использование команд с укороченной адресацией , т.е. части адресного пространства памяти;
  • использование для некоторой группы операции одного регистра. Наиболее часто для этой цели используется аккумулятор. В операциях с аккумулятором не требуется его кодировка. Например, команда ADD В выполняет операцию сложения содержимого регистра В с аккумулятором А и в него же помещает результат. Такая команда является одноадресной. Ее формат состоит из двух полей: кода операции и адреса операнда. Однако одноадресные команды требуют дополнительных команд для предварительной загрузки операндов в аккумулятор и последующего размещения результатов в памяти;
  • использование нескольких аккумуляторов (Motorola 6800, National РАСЕ, Signetic 2650). В этом случае каждая команда имеет два адреса, однако адрес источника и места назначения может быть задан другим аккумулятором.

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

  • засылку команд (первого байта) в регистр команд с дальнейшей их дешифрацией для активизации устройства управления;
  • поступление данных (последующих байт) в аккумулятор или другие регистры для обработки в АЛ У.

Форматы команд 8-разрядного процессора. Длина команды составляет от 1 до 3 байт. Код операции всегда размещается в первом байте команды. Второй и третий байты отводятся под непосредственные данные, адрес порта или ячейки памяти. В командах допускается явное задание только одного адреса памяти. Поэтому система команд процессора относится к классу одноадресных команд.

Форматы команд процессора 8086 изображены на рис. 5.21, где обозначено: ОРС (Operation Code) – код операции; X – биты кода

Рис. 5.21.

операции; dst, src – указатели приемника и источника данных; port – адрес порта; data – данные; addr – адрес памяти; LB, НВ – младший и старший байты.

Обработка чисел, символьной информации, логическая обработка, обработка сигналов — ϶ᴛᴏ все частные случаи общего понятия под названием «обработка информации ». Стоит сказать, для ЭВМ характерен признак: информация представляется с помощью двоичных целых чисел. Существует три этапа обработки информации:

  • хранение двоичной информации;
  • передача от одного хранилища к другому;
  • преобразование.

ЭВМ можно представить как совокупность узлов, соединенных каналом связи. Узлы соединяют в себе функции хранения и преобразования. По каналам связи передается информация от узла к узлу. Мы будем говорить о потоках информации в каналах связи (рис. 5.5) Некᴏᴛᴏᴩые узлы могут иметь специальную функцию ввода информации в систему и вывода из нее.

Рисунок № 5.5 Информационная модель ЭВМ: У — узлы

Показанная на рис. 5.5 модель не имеет ограничений на связи между отдельными узлами. Реализовать такую систему весьма сложно. Реально существующие системы имеют ряд ограничений на связи и четкое функциональное назначение отдельных узлов. Функции отдельного узла могут зависеть от его состояния. Состояние узла описывается значениями его внутренних полей (регистров) и может определяться процессом его функционирования или задаваться извне. Состояние узла будем называть его режимом . Физически режим может определяться значением регистра узла. Тогда установить режим узла означает приϲʙᴏить регистру определенное значение.

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

Информационная модель позволяет определить основные характеристики ЭВМ:

1. Узлы хранения имеют:

  • вместимость — максимальную, среднюю или минимальную;
  • скорость выборки;
  • разрядность выборки.

2. Преобразующие узлы имеют скорость преобразования.

3. Каналы определяются:

  • скоростью передачи информации (пропускная способность);
  • разрядностью передачи.

Рисунок № 5.6. Различные схемы организации ЭВМ:

ЭВМ с шинной организацией (а); канальная ЭВМ (б); ЭВМ с перекрестной коммутацией (в); конвейерная ЭВМ (г); КМ — коммутирующая матрица; КВВ — канал ввода-вывода

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

  • с шинной организацией;
  • специализированные процессоры (каналы);
  • схемы с коммутацией;
  • архитектуры с распределенными функциями (распределенный интеллект);
  • с конвейерной организацией.

Изучим некᴏᴛᴏᴩые частные модели ЭВМ, имеющие широкое распространение или представляющие теоретический интерес.

Шинная организация. В ϶ᴛᴏй схеме все устройства симметрично подсоединяются к одному каналу, называемому общей шиной. Симметрия подключения гарантирует ϲʙᴏбодное подключение новых устройств, т.е. система имеет теоретически неограниченное развитие. Некᴏᴛᴏᴩые узлы могут иметь специфические ϲʙᴏйства, например процессор, оперативная память, внешние накопители данных. Между ними организуется обмен информации. Так как потоки информации ограничены возможностями одного канала, эта схема имеет принципиальные ограничения скорости работ.

Канальная организация. В ϶ᴛᴏй схеме операции обмена данными с внешними устройствами организуются через специализированный узел — канал ввода-вывода. Благодаря ϶ᴛᴏму можно организовывать обработку информации параллельно с вводом-выводом.

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

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

Конвейерная организация. Здесь обрабатывающее устройство разделяется на последовательно включенные операционные блоки, каждый из кᴏᴛᴏᴩых специализирован на выполнение строго определенной части операции. При ϶ᴛᴏм работа осуществляется следующим образом: когда i -й операционный блок реализует i -ую часть j -й операции, (i -1)-й операционный блок реализует (i -1)-ую часть (j +1)-й операции, а (i +1)-й операционный блок реализует (i +1)-ую часть (j -1)-й операции. В результате образуется ϲʙᴏего рода конвейер обработки и за счет ϶ᴛᴏго повышается производительность системы.

Основные команды ЭВМ

Важно знать, что большое изумление у человека, не знакомого с вычислительной техникой, вызывает тот факт, что все разнообразие решаемых на ЭВМ задач реализуется с помощью небольшого набора очень простых команд. Система команд у типичной ЭВМ содержит в себе всего 60 — 150 базовых команд. Все команды в основном служат для выполнения очень простых действий, таких, как прочитать, запомнить, сложить, сдвинуть, сравнить и т.д. Интеллектуальность ЭВМ достигается за счет того, что она способна выполнять программы, состоящие из большого числа таких простых действий с огромной, не достижимой для человека скоростью. В данном разделе кратко рассмотрим набор команд, используемых в типичных ЭВМ, и действия, реализуемые данными командами.

При описании системы команд ЭВМ обычно принято классифицировать команды по функциональному назначению, длине, способу адресации и другим признакам. Классификации команд по различным признакам показаны на рис. 5.7. Изучим основные группы команд, придерживаясь классификации команд на группы по функциональному назначению.

Рисунок № 5.7. Классификация команд ЭВМ

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

Команды обработки данных. Данную группу команд с позиции выполняемых над данными операций можно подразделить на арифметические (сложить, вычесть, умножить и т.д.), логические (операции И, ИЛИ, НЕ и т.д.) и команды сдвига. Команды ϶ᴛᴏго типа могут иметь один или два операнда. Уместно отметить, что операнды могут храниться в регистрах центрального процессора, в памяти или в самой команде. Результат операции формируется в регистре-приемнике или в специализированном регистре-аккумуляторе. Команды данной группы формируют признаки результатов, устанавливаемые в регистре флагов процессора, перенос из старшего разряда, переполнение, нулевой результат и др. К арифметическим командам ᴏᴛʜᴏϲᴙт также и команды сравнения. Обычно для сравнения двух чисел процессор реализует операцию вычитания. По результату вычитания устанавливаются флаги во флаговом регистре процессора. Вполне понятно, что если сравниваемые величины равны, результат вычитания будет нулевым, и во флаговом регистре установится флаг нулевого результата. В случае если первая из сравниваемых величин больше — результат вычитания будет отрицательным и установится флаг отрицательного результата и т.д. Результат вычитания не сохраняется в памяти, по состоянию флагового регистра можно судить о результатах сравнения двух величин. Многие процессоры имеют команды сравнения операнда с нулем. В некᴏᴛᴏᴩых процессорах имеются команды проверки или установки состояния отдельных битов в операнде.

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

Простейшей командой передачи управления будет команда безусловного перехода JMP <адрес> , кᴏᴛᴏᴩая загружает адрес перехода, указанный в команде, в программный счетчик. Команды условного перехода проверяют указанное в команде условие и модифицируют программный счетчик, если условие истинно. Обычно команды условного перехода могут быть использованы после команд, изменяющих состояние флагового регистра (например, команд сравнения) При проверке условия производится сравнение состояния одного или нескольких флагов из флагового регистра с комбинацией, указанной в коде команды условного перехода. Модификация программного счетчика может производиться либо загрузкой в него нового значения, либо сложением его со смещением, указанным в команде.

Команды для работы с подпрограммами . Стеки . В практике программирования широко используется такой прием, как организация подпрограмм. Подпрограмма описывается один раз, а использоваться (вызываться) может из различных мест программы. При ϶ᴛᴏм, после того как подпрограмма закончила ϲʙᴏю работу, управление должно быть передано туда, откуда подпрограмма была вызвана на команду, следующую в памяти сразу за командой обращения к подпрограмме. Адрес команды, на кᴏᴛᴏᴩую управление передается после окончания работы подпрограмм, называется адресом возврата. Очевидно, для того, ɥᴛᴏбы начать выполнять подпрограмму, в программный счетчик крайне важно загрузить адрес первой команды подпрограммы. Стоит сказать, для осуществления возврата из подпрограммы крайне важно запомнить в каком-то месте адрес возврата. Можно, например, сохранить адрес возврата в одном из регистров процессора. Такой способ сохранения адреса возврата очень прост и легко реализуется. При этом он обладает одним существенным недостатком. Достаточно часто встречаются подпрограммы, кᴏᴛᴏᴩые вызывают другие подпрограммы. Пусть основная программа вызвала подпрограмму А. Стоит заметить, что она в ϲʙᴏю очередь обратилась к подпрограмме В. В случае если адрес возврата для подпрограммы А хранится в регистре процессора, то куда девать адрес возврата при вызове подпрограммы В?

Для организации подпрограмм большинство ЭВМ используют аппаратно поддерживаемую структуру данных, называемую стеком. Стек - ϶ᴛᴏ структура данных, организованная по принципу: последним вошел — первым вышел, т.е. последние записанные в стек данные извлекаются из него первыми. В переводе с англ., stack — стопка. Аналогом стека может служить стопка тарелок. Стоит сказать - положить тарелку в стопку можно только сверху, извлечь опять-таки только верхнюю тарелку. В ЭВМ для организации стека выделяется область оперативной памяти, а для ее адресации и доступа к стеку используется упоминавшийся выше регистр — указатель стека. Указатель стека хранит адрес ячейки памяти, содержащей последнее помещенное в стек значение.

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

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

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

Адресная часть содержит инф. о адресах операндов.

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

А1, А2 - адреса операндов (для однооперандных команд имеется одно поле А1)

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

А4 - адрес следующей команды, подлежащей выполнению.

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

Поэтому в форматах команд поле А4 не указывается Это приводит к трёхадресной команде, имеющей формат:

Операнды размещаются по адресам А1, А2 , а результат выполнения операции заносится по адресу первого операнда А1 при этом значение операнда теряется. Использование аккумулятора позволяет по умолчанию размещать один из операндов в нём и не указывать адрес этого операнда в команде. В этом случае команда одноадресная и имеет формат

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

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

1. Команды передачи данных (перепись), копирующие информацию из одного места в другое.

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

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

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

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

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

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

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

Рассматривая систему команд, нельзя не упомянуть о двух современных взаимно конкурирующих направлениях в ее построении: компьютер с полным набором команд CISC (Complex Instruction Set Computer) и с ограниченным набором - RISC (Reduced Instruction Set Computer).

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

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

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

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

Адресная часть обладает значительно большим разнообразием и ее следует рассмотреть подробнее.

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

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

Трехадресная команда легко расшифровывалась и была удобна в использовании, но с ростом объемов ОЗУ ее длина становилась непомерно большой. Действительно, длина команды складывается из длины трех адресов и кода операции. Отсюда следует, например, что для скромного ОЗУ из 1024 ячеек только для записи адресной части одной команды требуется 3*10 = 30 двоичных разрядов, что для технической реализации не очень удобно. Поэтому появились двухадресные машины, длина команды в которых сокращалась за счет исключения адреса записи результата. В таких ЭВМ результат операции оставался в специальном регистре (сумматоре) и был пригоден для использования в последующих вычислениях. В некоторых машинах результат записывался вместо одного из операндов.

Дальнейшее упрощение команды привело к созданию одноадресных машин. Рассмотрим систему команд такой ЭВМ на конкретном простом примере. Пусть надо сложить числа, хранящиеся в ячейках с адресами ОЗУ А1 и А2, а сумму поместить в ячейку с адресом A3. Для решения этой задачи одноадресной машине потребуется выполнить три команды:

Извлечь содержимое ячейки А1 в сумматор;

Сложить сумматор с числом из А2;

Записать результат из сумматора в A3.

Может показаться, что одноадресной машине для решения задачи потребуется втрое больше команд, чем трехадресной. На самом деле это не всегда так. Попробуйте самостоятельно спланировать программу вычисления выражения А5 = (А1 + А2)*АЗ/А4 и вы обнаружите, что потребуется три трехадресных команды и всего пять одноадресных. Таким образом, одноадресная машина в чем-то даже эффективнее, так как она не производит ненужной записи в память промежуточных результатов.

Ради полноты изложения следует сказать о возможности реализации безадресной (нуль-адресной) машины, использующей особый способ организации памяти -стек. Понимание принципов устройства такой машины потребовало бы некоторых достаточно подробных разъяснений. Сейчас безадресные ЭВМ практически не применяются. Поэтому ограничимся лишь упоминанием того факта, что устроенная подобным образом система команд лежала в основе некоторых программируемых микрокалькуляторов (например, типа «БЗ-21» и «БЗ-34» и им подобных).

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

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

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

В ЭВМ третьего поколения идеология построения памяти существенно изменилась: минимальная порция информации для обмена с ОЗУ была установлена равной 8 двоичных разрядов, т.е. один байт. Стало возможным обрабатывать несколько типов данных: символы текста (1 байт), целые числа (2 байта), вещественные числа обычной или двойной точности (4 или 8 байт соответственно). В связи с этим была введена новая условная единица измерения информации - машинное слово. Оно равнялось 4 байтам и соответствовало длине стандартного вещественного числа. Все объемы информации начали измеряться в единицах, кратных слову: двойное слово, полуслово и т.п. Естественно, что адрес (номер ячейки ОЗУ) в машинах с байтовой организацией стал относится к отдельному байту; байты памяти имеют возрастающие на единицу номера. Слово состоит из нескольких последовательно расположенных байтов. В качестве адреса слова удобно принимать адрес одного из образующих его байтов (обычно используется младший байт, имеющий наименьший номер). Таким образом, адреса слов меняются уже не через единицу; их приращение зависит от длины машинного слова в байтах и равняется четырем.

Размер машинного слова был, по-видимому, выбран исходя из форматов обрабатываемой информации, а не в связи с разрядностью каких-либо устройств. Для подтверждения этого приведем несколько фактов о типичных ЭВМ третьего поколения из семейства ЕС. Арифметико-логическое устройство модели «ЕС-1022» имело 16 двоичных разрядов, «ЕС-1033» - 32 разряда, а «ЕС-1050» - 64 разряда. В то же время за одно обращение к оперативной памяти в «ЕС-1022» и «ЕС-1033» выбиралось 4 байта, в «ЕС-1050» - 8 байт (а в «ЕС-1045» - 16 байт). Таким образом, разнообразие цифр свидетельствует, что 32 разряда (4 байта) не являлись каким-то технически выделенным объемом информации.

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

Контрольные вопросы

1. Что такое архитектура ЭВМ? Сформулируйте определение и расшифруйте его.

2. Проведите аналогию между архитектурой ЭВМ и обыденным понятием архитектуры. Что общего и в чем различие?

3. Что общего и в чем различие между понятиями «внутреннее устройство ЭВМ»

и «архитектура ЭВМ»?

4. Что такое семейство ЭВМ? Приведите примеры.

5. Объясните, в чем состоит принцип программной совместимости. Что такое совместимость снизу вверх (поясните на примере одного из известных вам семейств)?

6. Имеют ли отношение к понятию «архитектура» следующие факты:

а) в компьютере применяются микросхемы динамического (или статического) ОЗУ?

б) компьютер имеет расширенную память?

в) компьютер имеет (не имеет) общую шину, по которой передается информация между его устройствами?

г) в процессоре INTEL 80386 к системе команд добавлено по сравнению с INTEL 80286 несколько новых?

д) объем памяти новой модели ЭВМ увеличен вдвое?

7. Перечислите основные принципы фон-неимановской архитектуры и разъясните их содержание.

8. Чем обусловлено в ЭВМ широкое применение двоичной системы?

9. Можно ли. посмотрев на содержимое отдельно взятой ячейки памяти, определить, какая информация в ней записана: число, команда, символы?

10. Из каких основных рлов состоит ЭВМ?

Федеральное агентство по образованию

Рособразование

Архангельский государственный технический университет

Вычислительных систем и телекоммуникаций

КОНТРОЛЬНАЯ РАБОТА

по дисциплине

Архитектура ЭВМ и систем

Система команд ЭВМ

Шевченко Олег Николаевич

Факультет ОНОТ, курс 3, группа 7261

Руководитель О.Л. Полончик

Архангельск 2009 г.

ВВЕДЕНИЕ

ОБЩИЕ ПОНЯТИЯ

ФОРМАТ КОМАНД ОБРАБОТКИ ДАННЫХ

МЕТОДЫ ПРЯМОЙ АДРЕСАЦИИ

1 Регистровый метод адресации

2 Автоинкрементный метод адресации

МЕТОДЫ КОСВЕННОЙ АДРЕСАЦИИ

ИСПОЛЬЗОВАНИЕ СЧЕТЧИКА КОМАНД (РС) В КАЧЕСТВЕ РОН

1 Непосредственный метод адресации

2 Абсолютный метод адресации

3 Относительный метод адресации

4 Косвенно-относительный метод адресации

ЗАКЛЮЧЕНИЕ

СПИСОК ИСПОЛЬЗУЕМОЙ ЛИТЕРАТУРЫ

ВВЕДЕНИЕ

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

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

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

1. ОБЩИЕ ПОНЯТИЯ

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

Способы адресации можно классифицировать на прямые и косвенные. При прямом способе адресации исполнительный адрес берется непосредственно из команды или вычисляется с использованием значения указанного в команде и содержимого какого-либо регистра.

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

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

2. ФОРМАТ КОМАНД ОБРАБОТКИ ДАННЫХ

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

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

Безадресные

Одноадресные, двухадресные и более

При этом обычно различают операнд-источник и операнд-приемник. Операнд - источник это содержимое ячейки памяти или регистра, которое используется при выполнении указанной в команде операции и которое в процессе выполнения команды не изменяется. Операнд-приемник это ячейка памяти или РОН, содержимое которых также может быть использовано при выполнении команды и в которые помещается результат выполненной операции (приемник результата). Ниже в приведенных примерах адресат-источник обозначается буквами src или S (source - источник), а операнд-приемник dst или D (destination - приемник). Поле команды, содержащее код операции, будет обозначаться аббревиатурой КОП.

Формат одноадресных команд (HALT, CLR …) имеет следующий вид:

Рисунок 1 - Формат одноадресных команд

Разряды 15-06 содержат код операции, который определяет выполняемую команду. Разряды 05-00 образуют шестиразрядное поле, именуемое полем адресации операнда приемника, которое в свою очередь состоит из двух подполей:

1) Разряды 02-00 определяют один из восьми РОН, который использует данная команда;

2) Разряды 05-03 определяют способ использования выбранного регистра (метод адресации). Причем, разряд 03 определяет прямую или косвенную адресации.

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

Рисунок 2 - формат двухадресной команды

Поле адресации операнда источника используется для выборки операнда источника. Поле адресации операнда приемника используется для выборки операнда приемника и занесения результата. Например, по команде ADD A,B содержимое ячейки "A" (операнда источника) складывается с содержимым ячейки "B" (операнд приемника). После выполнения операции сложения в ячейке "В" будет находиться результат операции, а содержимое ячейки "A" не изменится.

3. МЕТОДЫ ПРЯМОЙ АДРЕСАЦИИ

На рисунке 3 показаны последовательности операций при выполнении команд с каждым из четырех методов прямой адресации. При регистровом методе адресации операнд находится в выбранном регистре, который может быть использован как накопитель. Так как РОН аппаратно реализованы в ИС центрального процессора, они обладают более высоким быстродействием, чем любая другая память, работающая под управлением процессора. Это их преимущество особенно проявляется при операциях с переменными, к которым необходимо часто обращаться.

Рисунок 3 - методы прямой адресации

3.1 Регистровый метод адресации

При регистровом методе адресации операнд находится непосредственно в указанном в команде регистре.

Таблица 1

Регистровый метод адресации


Действие: к содержимому R3 прибавляется единица.

3.2 Автоинкрементный метод адресации

При автоинкрементном методе адресации содержимое выбранного регистра является адресом операнда. После выборки операнда содержимое этого регистра автоматически наращивается для обеспечения возможности обращения в дальнейшем к последующей ячейке. При байтовых операциях наращивание происходит на 1, при операциях с полными словами - на 2. Содержимое R6, R7 всегда наращивается на 2. Автоинкрементный метод адресации особенно удобен при операциях с массивами и стеками. С помощью этого метода можно выбрать элемент таблицы, а затем нарастить указатель для обращения к следующему элементу в таблице. Хотя этот метод наиболее удобен при работе с таблицами, он может быть использован как общий метод для различных целей.

Таблица 2

Автоинкрементный метод адресации

3.3 Автодекрементный метод

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

Сочетание автоинкрементного и автодекрементного методов адресации может быть эффективно использовано при работе со стеком.

Таблица 3

Автодекрементный метод адресации


Действие: содержимое R0 уменьшается на 2 и используется как исполнительный адрес. К операнду, выбранному из ячейки по этому адресу, прибавляется единица.

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

Таблица 3.1

Автодекрементный метод адресации

3.4 Индексный метод адресации

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

Таблица 4

Индексный метод адресации

5. МЕТОДЫ КОСВЕННОЙ АДРЕСАЦИИ

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

Рисунок 4 - методы косвенной адресации

Таблица 5

Индексный метод адресации

Действие: содержимое ячейки, адрес которой находится в R2, используется как адрес операнда, операнд увеличивается на единицу, а содержимое R2 - на 2.

Таблица 5.1

Индексный метод адресации

После выполнения операции

6. ИСПОЛЬЗОВАНИЕ СЧЕТЧИКА КОМАНД (РС) В КАЧЕСТВЕ РОН

Счетчик команд R7 может быть использован со всеми методами адресации, применяемыми в микро-ЭВМ. Однако наиболее эффективно он используется только с четырьмя. Эти методы адресации получили специальные наименования: непосредственный, абсолютный, относительный и косвенно - относительный. Использование этих методов дает возможность построения программ, работоспособность которых не теряется при перемещении их в любую область памяти. В таблице ниже приведены методы адресации с использованием R7. Необходимо понимать, что эти четыре метода аналогичны описанным выше, но в качестве РОН используется R7. Методы адресации с использованием счетчика команд в значительной мере упрощают обработку данных, не сформированных в массивы.

Таблица 6

Методы адресации

Восьмеричный код

Двоичный код

Название

Непосредственный

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

Абсолютный

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

Относительный

Операнд выбирается из ячейки, адрес которой определяется как сумма содержимого R7 и ячейки, следующей за командным словом.

Косвенно-относительный

Из ячейки, адрес которой определяется как сумма содержимого R7 и ячейки, следующей за командным словом, выбирается адрес операнда.

6.1

Непосредственный метод адресации имеет символическое обозначение #N. Он эквивалентен автоинкрементному методу адресации через счетчик команд R7. Этот метод обеспечивает экономию времени программиста при составлении программы за счет возможности помещения константы в ячейку памяти вслед за командным словом.

Таблица 7

Непосредственный метод адресации


Действие: содержимое R0 складывается с числом 10. Результат записывается в R0.

Таблица 7.1

Непосредственный метод адресации


После выборки команды содержимое R7 (адрес этой команды) увеличивается на 2. Так в поле адреса операнда источника записан код 27, R7 используется как указатель адреса при выборке операнда, после чего содержимое его вновь увеличивается на 2 для указания на следующую команду.

6.2 Абсолютный метод адресации

Абсолютный метод адресации имеет символическое обозначение @#A. Он эквивалентен косвенно-автоинкрементной адресации через R7. Этот метод удобен тем, что адрес операнда является его абсолютным адресом (т.е. он остается постоянным независимо от места расположения программы в памяти).

Таблица 8

Абсолютный метод адресации

6.3 Относительный метод адресации

Относительный метод адресации имеет символическое обозначение X(PC) или А, где X-исполнительный адрес по отношению к счетчику команд. Этот метод эквивалентен индексной адресации через R7. Индексное слово хранится в следующей за командным словом ячейке и, будучи сложенным с содержимым R7, дает адрес операнда. Этот метод полезен при написании программы, которая может располагаться в различных местах памяти, так как адрес операнда фиксируется по отношению к содержимому R7. При необходимости перемещения программы в памяти операнд перемещается на то же число ячеек, что и сама команда.

Таблица 9

Относительный метод адресации


Действие: к операнду, адрес которого определяется сложением содержимого R7 и индексного слова (000054), прибавляется "1".

Таблица 9.1

Относительный метод адресации

6.4 Косвенно-относительный метод адресации

Косвенно-относительный метод адресации имеет символическое обозначение @X(PC) или @A, где X-адрес ячейки, содержащей исполнительный адрес, по отношению к счетчику команд. Этот метод эквивалентен косвенно - индексной адресации через СК.

ЗАКЛЮЧЕНИЕ

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

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

СПИСОК ИСПОЛЬЗУЕМОЙ ЛИТЕРАТУРЫ

1. Таненбаум, Эндрю. Архитектура компьютера, Питер, 2007.

2. А.С. Коваль, А.В. Сычев. Архитектура ЭВМ и систем, Воронеж 2007

Френк Т.С. PDP-11: Архитектура и программирование, Радио и связь, 1986.

4. Википедия -



© 2024 beasthackerz.ru - Браузеры. Аудио. Жесткий диск. Программы. Локальная сеть. Windows