Основными свойствами алгоритма являются: дискретность, определенность, массовость и результативность. Дискретность выражается в том, что алгоритм описывает действия над дискретной информацией (например, числовой или символьной), причем сами эти действия также дискретны. Свойство
- Главная
- Информатика
- Концепция машины с хранимой в памяти программой. (Тема 2)
Слайды и текст этой презентации
Слайд 1Концепция машины с хранимой в памяти программой
Определения:
Вычислительная машина – совокупность технических средств, служащих
для автоматизированной обработки дискретных данных по заданному алгоритму.
Алгоритм – одно из фундаментальных понятий математики и вычислительной техники. Международная организация стандартов (ISO) формулирует понятие алгоритм как «конечный набор предписаний, определяющий решение задачи посредством конечного количества операций»
Принципы фон Неймана
Слайд 2Основными свойствами алгоритма являются: дискретность, определенность, массовость
и результативность.
Дискретность выражается в том, что алгоритм
описывает действия над дискретной информацией (например, числовой или символьной), причем сами эти действия также дискретны.
Свойство определенности означает, что в алгоритме указано все, что должно быть сделано, причем ни одно из действий не должно трактоваться двояко.
Слайд 3Массовость алгоритма подразумевает его применимость к множеству
значений исходных данных, а не только к
каким-то уникальным значениям.
Наконец, результативность алгоритма состоит в возможности получения результата за конечное число шагов.
Рассмотренные свойства алгоритмов предопределяют возможность их реализации на ВМ, при этом процесс, порождаемый алгоритмом, называют вычислительным процессом.
Слайд 4В основе архитектуры современных ВМ лежит представление
алгоритма решения задачи в виде программы последовательных
вычислений. Согласно стандарту ISO 2382/1-84, программа для ВМ — это «упорядоченная последовательность команд, подлежащая обработке».
ВМ, где определенным образом закодированные команды программы хранятся в памяти, известна под названием вычислительной машины с хранимой в памяти программой. Идея принадлежит создателям вычислителя ENIАС Эккерту, Мочли и фон Нейману.
8 урок. Принципы Фон-Неймана
Слайд 5Сущность фон-неймановской концепции вычислительной машины можно свести
к четырем принципам:
двоичного кодирования;
программного управления;
однородности
памяти;
адресности
Слайд 6Согласно принципу двоичного кодирования, вся информация, как
данные, так и команды, кодируются двоичными цифрами
0 и 1. Каждый тип информации представляется двоичной последовательностью и имеет свой формат. Последовательность битов в формате, имеющая определенный смысл, называется полем. В числовой информации обычно выделяют поле знака и поле значащих разрядов. В формате команды можно выделить два поля: поле кода операции (КОп) и поле адресов ( АЧ).
Слайд 7Код операции представляет собой указание, какая операция
должна быть выполнена, и задается с помощью
n-разрядной двоичной комбинации.
Вид адресной части и число составляющих ее адресов зависят от типа команды: в командах преобразования данных АЧ содержит адреса объектов обработки (операндов) и результата; в командах изменения порядка вычислений – адрес следующей команды программы; в командах ввода/вывода – номер устройства ввода/вывода. Адресная часть также задается с помощью m-разрядной двоичной комбинации. Таким образом, команда в вычислительной машине имеет вид (r+m)-разрядной двоичной комбинации.
Слайд 8Принцип программного управления
Все вычисления, предусмотренные алгоритмом
решения задачи, должны быть представлены в виде
программы, состоящей из последовательности управляющих слов — команд. Каждая команда предписывает некоторую операцию из набора операций, реализуемых вычислительной машиной. Команды программы хранятся в последовательных ячейках памяти вычислительной машины и выполняются в естественной последовательности, то есть в порядке их положения в программе. При необходимости, с помощью специальных команд, эта последовательность может быть изменена. Решение об изменении порядка выполнения команд программы принимается либо на основании анализа результатов предшествующих вычислений, либо безусловно.
Слайд 9Принцип однородности памяти
Команды и данные хранятся в
одной и той же памяти и внешне
в памяти неразличимы. Распознать их можно только по способу использования. Это позволяет производить над командами те же операции, что и над числами. Так, циклически изменяя адресную часть команды, можно обеспечить обращение к последовательным элементам массива данных. Такой прием носит название модификации команд и с позиций современного программирования не приветствуется.
Более полезным является другое следствие принципа однородности, когда команды одной программы могут быть получены как результат исполнения другой программы. Эта возможность лежит в основе трансляции — перевода текста программы с языка высокого уровня на язык конкретной ВМ.
Слайд 10Концепция вычислительной машины, изложенная в статье фон
Неймана, предполагает единую память для хранения команд
и данных. Такой подход был принят в вычислительных машинах, создававшихся в Принстонском университете, из-за чего и получил название принстонской архитектуры. Практически одновременно в Гарвардском университете предложили иную модель, в которой ВМ имела отдельную память команд и отдельную память данных. Этот вид архитектуры называют гарвардской архитектурой.
Долгие годы преобладающей была и остается принстонская архитектура, хотя она порождает проблемы пропускной способности тракта «процессор-память». В последнее время в связи с широким использованием кэш-памяти разработчики ВМ все чаще обращаются к гарвардской архитектуре.
Слайд 11Принцип адресности
Структурно основная память состоит из пронумерованных
ячеек, причем процессору в произвольный момент доступна
любая ячейка. Двоичные коды команд и данных разделяются на единицы информации, называемые словами, и хранятся в ячейках памяти, а для доступа к ним используются номера соответствующих ячеек — адреса. Как правило, минимально адресуемая ячейка является байт (8 бит). Ячейки могут объединяться в слова по 2, 4, 8 байт.
Слайд 12Фон-неймановская архитектура
Слайд 13Фон Неймана определил основные устройства ВМ, с
помощью которых должны быть реализованы вышеперечисленные принципы.
Большинство современных ВМ по своей структуре отвечают принципу программного управления. Типичная фон-неймановская ВМ содержит: память, устройство управления, арифметико-логическое устройство и устройство ввода/вывода.
В любой ВМ имеются средства для ввода программ и данных к ним. Информация поступает из подсоединенных к ЭВМ периферийных устройств (ПУ) ввода. Результаты вычислений выводятся на периферийные устройства вывода. Связь и взаимодействие ВМ и ПУ обеспечивают порты ввода и порты вывода. Термином порт обозначают аппаратуру сопряжения периферийного устройства с ВМ и управления им.
Совокупность портов ввода и вывода называют устройством ввода/вывода (УВВ) или модулем ввода/вывода ВМ (МВВ).
Слайд 14Введенная информация сначала запоминается в основной памяти,
а затем переносится во вторичную память, для
длительного хранения. Чтобы программа могла выполняться, команды и данные должны располагаться в основной памяти (ОП), организованной таким образом, что каждое двоичное слово хранится в отдельной ячейке, идентифицируемой адресом, причем соседние ячейки памяти имеют следующие по порядку адреса. Доступ к любым ячейкам запоминающего устройства (ЗУ) основной памяти может производиться в произвольной последовательности. Такой вид памяти известен как память с произвольным доступом (RAM). ОП современных ВМ в основном состоит из полупроводниковых оперативных запоминающих устройств (ОЗУ), обеспечивающих как считывание, так и запись информации.
Слайд 15Для таких ЗУ характерна энергозависимость – хранимая
информация теряется при отключении электропитания. Если необходимо,
чтобы часть основной памяти была энергонезависимой, в состав ОП включают постоянные запоминающие устройства (ПЗУ), также обеспечивающие произвольный доступ.
Размер ячейки основной памяти обычно принимается равным 8 двоичным разрядам – байту. Для хранения больших чисел используются 2,4 или 8 байтов, размещаемых в ячейках с последовательными адресами. В этом случае за адрес числа часто принимается адрес его младшего байта.
Слайд 16Для долговременного хранения больших программ и массивов
данных в ВМ обычно имеется дополнительная память,
известная как вторичная. Вторичная память энергонезависима и чаще всего реализуется на базе магнитных дисков. Информация в ней хранится в виде специальных программно поддерживаемых объектов – файлов (согласно стандарту ISO, файл – это «идентифицированная совокупность экземпляров полностью описанного в конкретной программе типа данных, находящихся вне программы во внешней памяти и доступных программе посредством специальных операций»).
Слайд 17Устройство управления (УУ) – важнейшая часть ВМ,
организующая автоматическое выполнение программ (путем реализации функций
управления) и обеспечивающая функционирование ВМ как единой системы. Для пояснения функций УУ ВМ следует рассматривать как совокупность элементов, между которыми происходит пересылка информации, в ходе которой эта информация может подвергаться определенным видам обработки.
Слайд 18Пересылка информации между любыми элементами ВМ инициируется
своим сигналом управления (СУ), то есть управление
вычислительным процессом сводится к выдаче нужного набора СУ в нужной временной последовательности. Основной функцией УУ является формирование управляющих сигналов, отвечающих за извлечение команд из памяти в порядке, определяемом программой, и последующее исполнение этих команд. Кроме того, УУ формирует СУ для синхронизации и координации внутренних и внешних устройств ВМ.
Слайд 19Еще одной неотъемлемой частью ВМ является арифметико-логическое
устройство (АЛУ). АЛУ обеспечивает арифметическую и логическую
обработку двух входных переменных, в результате которой формируется выходная переменная. Функции АЛУ обычно сводятся к простым арифметическим и логическим операциям, а также операциям сдвига. Помимо результата операции АЛУ формирует ряд признаков результата (флагов), характеризующих полученный результат и события, произошедшие в процессе его получения (равенство нулю, знак, четность, перенос, переполнение и т. д.).
Слайд 20Флаги могут анализироваться в УУ с целью
принятия решения о дальнейшей последовательности выполнения команд
программы.
УУ и АЛУ тесно взаимосвязаны и их обычно рассматривают как единое устройство, известное как центральный процессор (ЦП) или просто процессор. Помимо УУ и АЛУ в процессор входит также набор регистров общего назначения (РОН), служащих для промежуточного хранения информации в процессе ее обработки.
Слайд 21Классификация архитектур
По структуре вычислительных машин
Слайд 22В настоящее время примерно одинаковое распространение получили
два способа построения вычислительных машин: с непосредственными
связями и на основе шины.
Типичным представителем первого способа может служить классическая фон-неймановская ВМ. В ней между взаимодействующими устройствами (процессор, память, устройство ввода/вывода) имеются непосредственные связи. Особенности связей (число линий в шинах, пропускная способность и т. п.) определяются видом информации, характером и интенсивностью обмена. Достоинством архитектуры с непосредственными связями можно считать возможность развязки «узких мест» путем улучшения структуры и характеристик только определенных связей, что экономически может быть наиболее выгодным решением.
Слайд 23Структура фон-неймановской вычислительной машины
Слайд 24У фон-неймановских ВМ таким «узким местом» является
канал пересылки данных между ЦП и памятью,
и «развязать» его достаточно непросто. Кроме того, ВМ с непосредственными связями плохо поддаются реконфигурации.
В варианте с общей шиной все устройства вычислительной машины подключены к магистральной шине, служащей единственным трактом для потоков команд, данных и управления. Наличие общей шины существенно упрощает реализацию ВМ, позволяет легко менять состав и конфигурацию машины.
Слайд 25Структура вычислительной машины на базе общей шины
Слайд 26Благодаря этим свойствам шинная архитектура получила широкое
распространение в мини и микроЭВМ. Вместе с
тем, именно с шиной связан и основной недостаток архитектуры: в каждый момент передавать информацию по шине может только одно устройство. Основную нагрузку на шину создают обмены между процессором и памятью, связанные с извлечением из памяти команд и данных и записью в память результатов вычислений. На операции ввода/вывода остается лишь часть пропускной способности шины. Практика показывает, что даже при достаточно быстрой шине для 90% приложений этих остаточных ресурсов обычно не хватает, особенно в случае ввода или вывода больших массивов данных.
Слайд 27В целом, при сохранении фон-неймановской концепции последовательного
выполнения команд программы шинная архитектура в чистом
ее виде оказывается недостаточно эффективной. Более распространена архитектура с иерархией шин, где помимо магистральной шины имеется еще несколько дополнительных шин. Они могут обеспечивать непосредственную связь между устройствами с наиболее интенсивным обменом, например процессором и кэш памятью. Другой вариант использования дополнительных шин — объединение однотипных устройств ввода/вывода с последующим выходом с дополнительной шины на магистральную. Все эти меры позволяют снизить нагрузку на общую шину и более эффективно расходовать ее пропускную способность.
Источник: thepresentation.ru
Принцип программного управления
Принцип программного управления заключается в том, что алгоритм вычислений (например, вычисление некоторого выражения) представляется в виде упорядоченной последовательности команд, преобразующих исходные данные (операнды) в результат. Таким образом, действия предписанные алгоритмами, закладываются в команды (например, такие действия как сложение, вычитание, умножение, логические операции и т.д. представляются в виде соответствующих машинных команд). Последовательность команд называется программой. Программа управляет ходом вычислительного процесса.
Пусть, например, необходимо вычислить выражение: .
Возможная программа его вычисления содержит следующие команды:
1-я команда: умножить операнд a на b;
2-я команда: сохранить результат умножения ( a*b ) в памяти;
3-я команда: сложитьоперанды a и b;
4-я команда: умножить результат сложения (a+b) на c;
5-я команда: считать из памяти (a*b );
6-я команда: разделить результат (a*b ) на (a+b)* c.
Если операнды и действия над ними представлены в двоичной системе счисления, то для реализации программы можно ввести следующую систему команд:
КОП | 1-й операнд | 2-й операнд |
где КОП — код операции – поле, в котором заданы операции, выполняемые процессором, закодированные в двоичной системе счисления.
Подобная система команд применялась в самых первых ЭВМ, где для ввода программ и данных использовались перфоленточные устройства, в которых отсутствовала возможность возврата к ранее выполненным участкам программ. Это обстоятельство приводило к очень длинным (в буквальном смысле) программам. Пусть, например, необходимо вычислить выражение:
Программа вычислений будет следующей:
1-я команда: умножить a0 на b0;
2-я команда: умножить a1 на b1;
3-я команда: сложить результат 1-й команды с результатом 2-й команды;
4-я команда: умножить a2 на b2;
5-я команда: сложить результат 3-й команды с результатом 4-й команды:
6-я команда: умножить a3 на b3;
7-я команда: сложить результат 5-й команды с результатом 6-й команды и т.д.
При использовании предложенной структуры команд программа будет состоять приблизительно из n — команд умножения и n — команд сложения, т.е. всего из 2 n команд. Большая длина программы обусловлена невозможностью оперативного возврата к тем ее частям, которые могли бы выполняться многократно.
Принцип хранимой в памяти программы
Принцип хранимой в памяти программы был предложен Дж. фон Нейманом в 1945 году. Этот принцип стал основой современных машин. В соответствии с этим принципом команды хранятся в памяти, также как и данные. При этом под программу отводится одна отдельная область памяти, под данные — другая область.
В командах указываются не операнды, а их адреса, то есть номера ячеек памяти ОП, где они размещаются. Для вызова команд также надо указывать их адреса в ОП. При такой организации можно многократно вызывать из памяти одну и ту же команду или последовательность из нескольких команд и одни и те же данные. Кроме этого, над командами и над данными можно производить операции, так как они с точки зрения обработки становятся равноценными. Структура команды для ЭВМ, организованной в соответствии с принципом фон-Неймана (фон- неймановской машины), будет следующей:
КОП | Адрес операнда |
Такой тип команды оказался намного более универсальным и наряду с ранее приведенным он широко используется в современной вычислительной технике.
Программа вычисления выражения: при использовании команд последнего типа намного сокращается.
1-я команда: i:= 0;
2-я команда: Yi:= 0:
5-я команда: i:=i+1;
6-я команда: i>n? Если нет, то переход на 3-ю команду;
7-я команда: Конец.
Длина полученной программы, использующей введенный тип команды, не зависит от числа n слагаемых. Сокращение длины программы достигается благодаря возможности многократного вызова из памяти последовательности с 3-ей по 6-ю команд.
Обобщенный формат команд
Команды в ЦВМ могут быть одноадресными, двухадресными и трехадресными (в машинах с так называемой естественной адресацией команд).
Формат одноадресной команды следующий:
КОП | А — адрес операнда |
Формат двухадресной команды:
КОП | А1-адрес первого операнда | А2 — адрес второго операнда |
Формат трехадресной команды:
Каждая команда состоит из операционной части — кода операции (КОП) и адресной части. В операционной части указывается тип выполняемой операции в виде двоичного числа. В адресной части указывается адрес ячейки памяти, в которой размещается операнд (для одноадресной команды). Если в команде указывается адреса 1-го и 2-го операндов, то такая команда называется двухадресной. В трехадресной машине указывается еще и адрес результата, то есть номер ячейки ОП, куда помещается результат.
Какая из систем лучше? В современных машинах большого класса могут сочетаться все типы. Приведенные типы команд относятся к так называемым машинам с естественной адресацией команд, в которых команды размещаются в смежных ячейках памяти. Адресация производится с помощью счетчика команд СчК (PC- Program Counter). Однако существовали машины и с принудительной адресацией, в которых очередная команда выбиралась по адресу, указанному в предыдущей команде (такой способ адресации сохранен в настоящее время только в так называемых микропрограммных устройствах управления).
Структура команд такой машины имеет вид:
КОП | А1 | А2 | Ар | Аск |
где Ар- адрес результата;
Аск -адрес следующей команды.
Т.к. приведенная команда использует два операнда, и еще появилось поле адреса, то поэтому команда стала четырехадресной:
Способы адресации команд
При размещении команд в ОП для их вызова на исполнение в процессор необходимо формировать адреса ячеек ОП, в которых они хранятся. В соответствии с методом формирования адреса команды процессоры делятся на два типа: процессоры с принудительным порядком выполнения команд (принудительной адресацией команд) и с естественным порядком выполнения команд (естественной адресацией команд).
Источник: infopedia.su
Архитектура классической ЭВМ. 2.1 Принцип программного управления
Принцип программного управления впервые был реализован в ЭВМ “Марк-1”. Он заключается в том, что алгоритм вычислений (например, вычисление некоторого выражения) преобразуется в упорядоченную последовательность команд, преобразующих исходные данные (операнды) в результат. Таким образом действия, предписанные алгоритмами, закладываются в команды (например действия по сложению, вычитанию, умножению и делению чисел, логическим операциям над ними и т.д.). Последовательность команд называется программой. Программа управляет ходом вычислительного процесса.
Пусть, например, необходимо вычислить выражение: .
Возможная программа его вычисления содержит следующие команды:
1-я команда: умножить операнд a на b;
2-я команда: сохранить результат умножения (a*b)в ОП;
3-я команда: сложитьоперанды a и b ;
4-я команда: умножить результат (a+b) на c;
5-я команда: считать из ОП (a*b);
6-я команда: разделить результат (a*b)на результат (a+b)* c.
Если числа представлены в двоичной системе счисления, и команды также закодированы двоичным кодом, то для реализации программы можно ввести следующую систему команд:
КОП | 1-й операнд | 2-й операнд |
где КОП-код операции, или закодированные в двоичной системе счисления операции (+,-, /, * и т.д.), выполняемые процессором.
Такой подход к реализации команд приводил к очень длинным программам, так как в перфоленточных устройствах, используемых в первых ЭВМ для ввода программ, отсутствовала возможность возврата к ранее выполненным участкам программ. Пусть, например, нам необходимо вычислить выражение:
Программа вычислений в предложенной системе команд будет следующей:
1-я команда: умножить a0 на b0;
2-я команда: умножить a1 на b1;
3-я команда: сложить результат 1-й команды с результатом 2-й команды;
5-я команда: сложить результат 3-й команды с результатом 4-й команды:
6-я команда: умножить a3 наb3;
7-я команда: сложить результат 3-й команды с результатом 4-й команды и т.д.
При использовании предложенной системы команд программа будет состоять из n- команд умножения и n — команд сложения, всего — из 2n-команд. Большое количество команд обусловлено тем, что нет возможности оперативного возврата к некоторым участкам программы, которые могли бы выполняться многократно.
2.2 Принцип хранимой в памяти программы
Принцип хранимой в памяти программы был предложен фон Нейманом в 1945 году. Этот принцип стал основой современных машин. В соответствии с этим принципом команды хранятся в памяти, также как и данные. При этом под программу отводится одна отдельная область памяти, под данные — другая область.
В командах указываются не операнды, а их адреса, то есть номера ячеек памяти ОЗУ, где они помещаются. Для вызова команд из ОП также надо указывать их адреса в ОП. При такой организации можно многократно вызывать из памяти одну и ту же команду или последовательность из нескольких команд (подпрограмму) и одни и те же данные. Кроме этого, над командами и над данными можно производить операции, так как они с точки зрения обработки становятся равноценными. Структура команды для ЭВМ, организованной в соответствии с принципом фон Неймана (фон Неймановская машина), будет следующей:
КОП | Адрес операнда |
Такой тип команды оказался намного более универсальным и напряду с ранее приведенным он широко используется в современной вычислительной технике.
Программа вычисления выражения: при использовании команд последнего типа намного сокращается.
5-я команда: i>n?. Если нет, то переход на 2-ю команду;
6-я команда: Конец.
2.3 Обобщенный формат команд
Команды в ЦВМ могут быть одноадресными, двухадресными и трехадресными (в машинах с так называемой естественной адресацией команд).
КОП | А -Адрес операнда |
КОП | А1-Адрес 1-го операнда | А2- Адрес 2-го операнда |
КОП | А1-Адрес 1-го операнда | А2-Адрес 2-го операнда | А3-Адрес 3-го операнда |
Команда состоит из операционной части- кода операции (КОП) и адресной части. В операционной части указывается тип выполняемой операции в виде двоичного числа. В адресной части указывается адрес ячейки памяти, в которой размещается операнд (одноадресная команда). Если в команде указывается адреса 1-го и 2-го операнда, то такая команда называется двухадресной. В трехадресной машине указывается еще и адрес результата, то есть ячейка ОП, куда помещается результат.
Какая из систем лучше? В современных машинах большого класса могут сочетаться все типы. Приведенные типы команд относятся к так называемым машинам с естественной адресацией, когда команды из программы выбираются последовательно одна за другой. Адресация производится с помощью счетчика команд СчК (PC- Program Count). Однако существовали машины и с принудительной адресацией, в которых очередная команда выбиралась по адресу, указанному в предыдущей команде (такой способ адресации сохранен в настоящее время только в так называемых микропрограммных устройствах управления).
Структура команд такой машины:
КОП | А1 | А2 | Ар | Аск |
где Ар- адрес результата;
Аск -адрес следующей команды .
Если операндов два, и еще существует поле адреса результата, то команда становится четырехадресной:
2.4 Способы адресации команд
Процессоры в зависимости от реализации УУ бывает двух видов: с принудительным порядком выполнения команд (принудительной адресацией команд) и с естественным порядком выполнения команд (естественной адресацией команд).
2.4.1 Процессоры с принудительным порядком выполнения команд
Структура процессора с принудительной адресацией команд приведена на рисунке 2.4.1.
Рисунок 2.4.1- Структура процессора с принудительной адресацией
Процесс выполнения команд процессором следующий: в начальный момент в регистр команд (РК) заносится адрес первой выполняемой команды (по сигналу “Сброс” или “Пуск” или каким либо иным способом). По этому адресу считываются команда, которая содержат код операции (КОП), адрес операнда (Аоп), а так же адрес следующей команды (Аск). Поле КОП команды поступает на схему формирования управляющих сигналов (ДшКОП- дешифратор КОП) которая вырабатывает нужную последовательность управляющих сигналов y1. yn, необходимых для выполнения команды в процессоре.
Адрес операнда через РА задает номер ячейки ОП, в которой он хранится. Операнд, считанный из ячейки памяти с заданным адресом, поступает на обработку в АЛУ.
Рассмотрим следующий пример. Положим, что процессор имеет следующую систему команд в машинных кодах (для более краткой записи представим ее в шестнадцатеричной системе счисления):
01H- вызов операнда из ОЗУ в аккумулятор;
02H- запись содержимого А в ОЗУ;
1АH — команда сложения;
00H – остановка выполнения программы.
Пусть необходимо составить программу сложения 2-х чисел, находящихся в ячейках ОЗУ с адресами 0841H и 0842H и записать результат в ячейку 0843H. Программа хранится в ячейках памяти с начальным адресом 1300H. Ширина выборки команд и данных из ОЗУ — 1 байт.
№ яч | КОП | Аоп | Аск | Комментарий |
Вызов 1-го операнда из ОЗУ и переход к считыванию следующей команды из ячейки ОП с номером 1305H. | ||||
1А | 130А | Вызов 2-го операнда, сложение и переход к считыванию следующей команды из ячейки ОП с номером 130АH. | ||
130А | 130F | Запись результата в ОЗУ и переход к ячейке 130FH. | ||
130F | Остановка. |
Нетрудно подсчитать, что при использовании принудительной адресации команд длина программы составляет 20 байт.
2.4.2 Процессоры с естественной адресацией команд
Структура процессора с естественной адресацией команд
приведена на рисунке 2.4.2.
Рисунок 2.4.2- Структура процессора с естественной адресацией команд
В таких процессорах РК не имеет поля с адресом команд. Адрес следующей команды образуется путем добавления единицы к адресу выполняемой команды. Для этой цели служит счетчик команд СчК (PC- Program Counter) , который предварительно загружают начальным адресом, по которому выбирается первая команда. По окончании выполнения команды в СчК автоматически добавляется число единиц равное количеству байт выполняемой команды, затем выбирается следующая команда и т.д.
Предыдущая программа для этого типа процессора будет иметь вид:
№ яч. памяти | КОП | Аоп | Комментарий |
1300: | 08 41 | Вызов 1-го операнда из ОЗУ в аккумулятор и переход к считыванию следующей команды из ячейки ОП с номером 1303H. | |
1303: | 1А | 08 42 | Вызов 2-операнда, сложение его с 1- м операндом и переход к считыванию следующей команды из ячейки ОП с номером 1306H. |
1306: | 08 43 | Запись вычисленного результата в ячейку ОП с адресом 0843H и переход к считыванию следующей команды. | |
1309: | 00 00 | Остановка. |
Нетрудно подсчитать, что длина этой программы составляет 12 байт.
В процессорах с естественной адресацией длина программы и требуемый под нее объем памяти сокращается, однако система команд усложняется, так как для организации ветвления программ требуется специальные команды — условных и безусловных переходов. Первое обстоятельство оказалось сильнее и традиционные машины выполняются по второму способу.
2.5 Способы адресации операндов
В современных ЭВМ используется большое число способов адресации операндов. Рассмотрим наиболее часто используемые.
2.5.1 Прямая адресация
При прямой адресации адрес операнда указывается в адресной части команды. Поле адреса может быть одно, двух и трехадресным. Длина адресного поля nА должна быть такой, чтобы перекрывать все адресное пространство – nА=log2 M, где M-емкость памяти в байтах.
Рисунок 2.5.1- Порядок выборки операнда при прямой адресации
Формат одноадресной команды следующий:
КОП | Адрес операнда |
Формат двухадресной команды:
КОП | А1 | А2 |
nA1 | nA2 |
Формат трехадресной команды:
КОП | А1 | А2 | Ap |
nA1 | nA2 | np |
где Aр- адрес результата.
Размер команд, использующих прямую адресацию – большой, поэтому выполняется они достаточно медленно.
2.5.2 Косвенная адресация
При косвенной адресации в адресной части команды указывается адрес ячейки памяти (ОЗУ или СОЗУ) в которой находится адрес операнда (косвенная адресация — это адресация адреса).
Рисунок 2.5.2- Порядок выборки операнда при косвенной адресации: а- при адресации через ОП; б- при адресации через СОЗУ
Такая адресация используется в машинах, имеющих малую разрядность, то есть в мини и микро- ЭВМ. Для адресации операнда требуется как минимум два шинных цикла: 1-й для выборки адреса, второй — для выборки операнда по этому адресу. Часто косвенный адрес хранится во внутренней памяти процессора, состоящей из регистров двойной длины.
2.5.3 Регистровая адресация
Регистровая адресация является укороченной. В поле адреса указываются адреса ячеек сверхоперативной памяти (СОЗУ), число которых невелико. Такой способ адресации позволяет сократить длину команды и увеличить скорость выполнения операции, так как СОЗУ является быстродействующей памятью, выполняемой на быстрых регистрах. Эти регистры являются частью процессора и называются регистрами общего назначения (РОН). Следующий рисунок поясняет порядок выборки операндов при использовании 2- х адресной команды: R1- адрес первого операнда, R2- — адрес второго операнда.
Рисунок 2.5.3- Порядок выборки операндов при регистровой адресации: R1- адрес 1-го операнда, R2- адрес второго операнда
2.5.4 Непосредственная адресация
В поле адреса команд находится не адрес, а сам операнд. В этом случае нет необходимости обращаться за операндом в память. Используется для хранения констант.
Непосредственный операнд может иметь любую длину (байт, слово, 2-е слово). Этим определяется длина команды. Формат команды при непосредственной адресации следующий:
КОП | Непосредственный операнд |
2.5.5 Неявная адресация
Неявная (подразумеваемая) адресация. В команде нет явных указаний об адресе операнда, они подразумеваются, но фактически их адреса указаны в КОП команды. Это самая короткая адресация. Используется в микроЭВМ.
2.5.6 Относительная адресация
Адрес операнда определяется как сумма содержимого адресного поля команды и некоторого числа, называемого базовым адресом. Для этого в команде предусмотрено поле В для указания адреса базового регистра. Поле команды, в котором находится адрес операнда называют смещением.
Рисунок 2.5.6-Формирование адреса операнда при относительной адресации
Полученный адресEA=[B]+Dназывается эффективным или исполнительным адресом. Прямые скобки при B ([B]) –означают, что первое слагаемое EA берется по адресу В. При выборке некоторого участка данных базовый адрес является неизменным. Адресация ячеек памяти относительно базового адреса осуществляется полем смещения.
Относительная адресация обеспечивает перемещаемость программ, то есть возможность передвижения программ в памяти без изменений внутри самой программы, что не требует перетрансляции программы. Для назначения новых адресов, изменяется только значение В
2.5.7 Индексная (автоинкрементная и автодекрементная ) адресация
При обработке больших массивов данных, выбираемых последовательно друг за другом, нет смысла каждый раз обращаться в память за новым адресом. Для этого достаточно автоматически менять содержимое специального регистра, называемого индексным, чтобы выбирать последовательно размещенные данные. Индексный регистр является косвенным. Его загружают начальным адресом массива (специальной командой). Дальнейшая адресация осуществляется путем автоматического добавления или вычитания единицы или шага адреса из его содержимого.
Рисунок 2.5.7- Формирование адреса операнда при индексной адресации
В некоторых процессорах применяют более сложную адресацию, которая сочетает индексную адресацию с базовым смещением.
Часто в команду с индексной адресацией включают признак, определяющий шаг индексации Т (Т=1,2,4 и т.д.), что позволяет осуществлять адресацию массивов через байт, слово, двойное слово и т.д.
В современных процессорах (например в Intel 80386 и выше ) применяют все возможные сочетания из базового адреса, индексного адреса, относительного адреса и шага. Например:
— Индексная адресация с шагом. Содержимое индексного регистра умножается на шаг и суммируется со смещением- EA=[X]×T+D,гдеТ- величина шага;
— Базово- индексная адресация EA=[В]+[X];
— Базово- индексная адресация с шагом EA=[В]+[X]×Т;
— Базово- индексная адресация со смещением EA=[В]+[X]+D:
— Базово- индексная адресация со смещением и шагом EA=[В]+[X]×Т+D.
Какова структура команды? Какие поля включает команда? Чем определяется длина команды?
В чем заключается естественная адресация команд в ЦВМ?
В чем заключается принудительная адресация команд в ЦВМ?
Перечислите достоинства и недостатки естественной адресации?
Перечислите достоинства и недостатки принудительной адресации?
Какие существуют способы адресации операндов?
Достоинства неявной и регистровой адресации?
В чем заключается непосредственная адресация?
В чем заключается прямая адресация?
Какие преимущества косвенной адресации?
Каково назначение относительной адресации?
Каково назначение индексной адресации?
Источник: studopedya.ru