- •Основные понятия курса
- •Эволюция средств автоматизации вычислений
- •Концепция машины с хранимой в памяти программой
- •Форматы команд
- •Способы адресации
- •Структуры вычислительных машин
- •Структуры вычислительных систем
- •Классификация архитектур системы команд
- •Классификация по составу и сложности команд
- •Классификация по месту хранения операндов
- •Работа фон-неймановской вычислительной машины Функциональная схема фон-неймановской вычислительной машины
- •Микрооперации и микропрограммы
- •Цикл команды
- •Память вычислительной машины
- •Основная память
- •Внешняя память
- •Литература
Способы адресации
В современных ВМ исполнительный адрес (Аисп) и адресный код (Ак), как правило, не совпадают, и для доступа к данным требуется соответствующее преобразование. Способом адресации называют способ формирования исполнительного адреса операнда по адресному коду команды. Исполнительным адресом операнда (Аисп) называется двоичный код номера ячейки памяти, служащей источником или приемником операнда. Этот код подается на адресные входы запоминающего устройства (ЗУ), и по нему происходит фактическое обращение к указанной ячейке. Если операнд хранится не в основной памяти, а в регистре процессора, то исполнительным адресом будет номер регистра.
Для определения, какой способ адресации используется, в разных ВМ используют разные приемы. Часто разным способам адресации соответствуют разные коды операции. Другой подход – это добавление в состав команды специального поля способа адресации, содержимое которого определяет, какой из способов адресации используется. Иногда в команде присутствует несколько таких полей – по количеству адресов в программе. Может использоваться и неявная адресация, когда адресного поля просто нет, либо оно содержит не все необходимые адреса – отсутствующий адрес подразумевается кодом операции. Так, при исключении из команды адреса результата подразумевается, что он помещается на место второго операнда. Неявная адресация часто применяется, так как позволяет сократить длину команды.
В настоящее время используются следующие способы адресации:
а. Непосредственная адресация. В этом случае в адресном поле вместо адреса содержится сам операнд:
Код операции |
Способ адресации |
Непосредственный операнд |
Этот способ может применяться при выполнении арифметических операций, операций сравнения, а также для загрузки констант в регистры.
б. Прямая адресация. При прямой или абсолютной адресации адресный код прямо указывает номер ячейки памяти, к которой производится обращение, то есть адресный код совпадает с исполнительным адресом:
в. Косвенная адресация. Одним из путей преодоления проблем прямой адресации, связанных с ограниченностью адресного поля команды, служит прием, когда указывается адрес ячейки, в свою очередь, содержащей полноразрядный адрес операнда. Недостаток косвенной адресации – необходимость двукратного обращения к памяти:
г. Регистровая адресация. Она напоминает прямую адресацию. Различие лишь в том, что адресное поле указывает не на ячейку памяти, а на регистр процессора. Обычно размер адресного поля здесь – три или четыре бита (адресация до 16 регистров):
д. Косвенная регистровая адресация. Здесь исполнительный адрес хранится в регистре процессора:
е. Адресация со смещением. Здесь исполнительный адрес формируется в результате суммирования содержимого адресного поля команды с содержимым одного или нескольких регистров процессора:
Некоторые из видов адресация со смещением имеют свои названия. Например:
– относительная адресация. При этом для получения исполнительного адреса операнда содержимое подполя Ак команды складывается с содержимым счетчика команд:
– базовая регистровая адресация. В этом случае регистр, называемый базовым, содержим полноразрядный адрес, а подполе Ас – смещение относительно этого адреса. Здесь может быть вариант с базовой регистровой адресацией с базовым регистром:
и базовая регистровая адресация с использованием РОН:
– индексная адресация. В этом случае подполе Ас содержит адрес ячейки памяти, а регистр (указанный явно или неявно) – смещение относительно этого адреса. Можно выделить индексную адресацию с индексным регистром:
и индексную адресацию с одним из РОН:
В большинстве случаев увеличение или уменьшение содержимого индексного регистра осуществляется автоматически до или после обращения к нему. Такой прием называется автоиндексированием. Автоиндексирование с увеличением содержимого индексного регистра называется автоинкрементной адресацией, а с уменьшением – автодекрементной адресацией. Также индексная адресация может быть с масштабированием и смещением.
ж. страничная адресация. Она предполагает разбиение адресного пространства на страницы. Старшая часть адреса хранится в специальном регистре – регистре адреса страницы (РАС), а в адресном коде команды указывается смещение внутри страницы. Исполнительный адрес получается конкатенацией (присоединением) Ас к содержимому РАС:
з. блочная адресация. Она используется в командах, единицей обработки которых является блок данных, расположенных в последовательных ячейках памяти. Этот способ удобен при работе с внешними запоминающими устройствами и в операциях с векторами. Блок данных обычно метится адресами начала и конца (или признаком конца блока, количества байт в блоке).
и. стековая адресация. Здесь в качестве адреса используется стек. Стеком называется память, по своей структурной организации отличная от основной памяти ВМ. Стек образует множество логически взаимосвязанных ячеек, взаимодействующих по принципу “последним вошел, первым вышел” (LIFO, Last In First Out). Верхнюю ячейку называют вершиной стека. Запись возможна только в верхнюю ячейку стека, при этом вся хранящаяся в стеке информация предварительно проталкивается на одну позицию вниз. Чтение допустимо также только из вершины стека. Извлеченная информация удаляется из стека, а оставшееся его содержимое продвигается вверх.
Фон-неймановская архитектура
В статье фон Неймана определены основные устройства ВМ, с помощью которых должны быть реализованы вышеперечисленные принципы. Большинство современных ВМ по своей структуре отвечают принципу программного управления. Типичная фон-неймановская ВМ содержит: память, устройство управления, арифметико-логическое устройство и устройство ввода/вывода. Связь между устройствами показана на рисунке 1.
Рисунок 1. Структура фон-неймановской вычислительной машины
В любой ВМ имеются средства для ввода программ и данных к ним. Информация поступает из подсоединенных к ЭВМ периферийных устройств (ПУ) ввода. Результаты вычислений выводятся на периферийные устройства вывода. Связь и взаимодействие ВМ и ПУ обеспечивают порты ввода и порты вывода. Термином порт обозначают аппаратуру сопряжения периферийного устройства с ВМ и управления им. Совокупность портов ввода и вывода называют устройством ввода/вывода (УВВ) или модулем ввода/вывода ВМ (МВВ). Введенная информация сначала запоминается в основной памяти, а затем переносится во вторичную память для длительного хранения. Чтобы программа могла выполняться, команды и данные должны располагаться в основной памяти (ОП), организованной таким образом, что каждое двоичное слово хранится в отдельной ячейке, идентифицируемой адресом, причем соседние ячейки памяти имеют следующие по порядку адреса. Доступ к любым ячейкам запоминающего устройства (ЗУ) основной памяти может производиться в произвольной последовательности. Такой вид памяти известен как память с произвольным доступом. ОП современных ВМ в основном состоит из полупроводниковых оперативных запоминающих устройств (ОЗУ), обеспечивающих как считывание, так и запись информации. Для таких ЗУ характерна энергозависимость – хранимая информация теряется при отключении электропитания. Если необходимо, чтобы часть основной памяти была энергонезависимой, в состав ОП включают постоянные запоминающие устройства (ПЗУ), также обеспечивающие произвольный доступ. Хранящаяся в ПЗУ информация может только считываться (но не записываться). Размер ячейки основной памяти обычно принимается равным 8 двоичным разрядам – байту. Для хранения больших чисел используются 2,4 или 8 байтов, размещаемых в ячейках с последовательными адресами. В этом случае за адрес числа принимается адрес его младшего байта. По этому адресу располагается младший (а, возможно, старший) байт числа.
Для долговременного хранения больших программ и массивов данных в ВМ обычно имеется дополнительная память, известная как вторичная. Вторичная память энергонезависима и чаще всего реализуется на базе магнитных дисков. Информация в ней хранится в виде специальных программно поддерживаемых объектов – файлов.
Устройство управления (УУ) – важнейшая часть ВМ, организующая автоматическое выполнение программ (путем реализации функций управления) и обеспечивающая функционирование ВМ как единой системы. Для пояснения функции УУ ВМ следует рассматривать как совокупность элементов, между которыми происходит пересылка информации, в ходе которой эта информация может подвергаться определенным видам обработки. Пересылка информации между любыми элементами ВМ инициируется своим сигналом управления (СУ), то есть управление вычислительным процессом сводится к выдаче нужного набора СУ в нужной временной последовательности. Цепи СУ показаны на рисунке полутоновыми линиями. Основной функцией УУ является формирование управляющих сигналов, отвечающих за извлечение команд из памяти в порядке, определяемом программой, и последующее исполнение этих команд. Кроме того, УУ формирует СУ для синхронизации и координации внутренних и внешних устройств ВМ.
Еще одной неотъемлемой частью ВМ является арифметико-логическое устройство (АЛУ). АЛУ обеспечивает арифметическую и логическую обработку двух входных переменных, в результате которой формируется выходная переменная. Функции АЛУ обычно сводятся к простым арифметическим и логическим операциям, а также операциям сдвига. Помимо результата операции АЛУ формирует ряд признаков результата (флагов), характеризующих полученный результат и события, произошедшие в процессе его получения (равенство нулю, знак, четность, перенос, переполнение и т. д.). Флаги могут анализироваться в УУ с целью принятия решения о дальнейшей последовательности выполнения команд программы.
УУ и АЛУ тесно взаимосвязаны и их обычно рассматривают как единое устройство, известное как центральный процессор (ЦП) или просто процессор. Помимо УУ и АЛУ в процессор входит также набор регистров общего назначения (РОН), служащих для промежуточного хранения информации в процессе ее обработки.
