- •Базовая структура компьютера
- •Процессор, оперативная память, устройства ввода-вывода, внешняя память, шины.
- •Представление информации. Целые, вещественные, символьные данные.
- •Структуры машинных команд. Трех-, двух-, одноадресные системы команд процессоров.
- •Стек. Его использование и аппаратная поддержка.
- •Risc-процессоры.
- •Cisc-процессоры. Микрокомандный уровень архитектуры.
- •Пример базовой архитектуры - pdp-11
- •Структура процессора. Регистры и их назначение.
- •2.2. Архитектура с общей шиной. Адресное пространство.
- •2.3. Форматы команд.
- •2.3.1. Двух-, одно- и безадресные команды. Примеры
- •2.3.2. Организация ветвлений и циклов. Регистр состояния процессора.
- •2.4. Методы адресации.
- •2.4.1 Прямые методы адресации.
- •2.4.2. Косвенные методы адресации.
- •2.4.3. Использование счетчика команд и указателя стека в методах адресации.
- •2.4.4. Позиционно-независимые программы и методы адресации.
- •2.5. Организация ввода-вывода.
- •2.5.1. Контроллеры устройств. Регистры устройств и их адресация.
- •2.5.2. Ввод-вывод по опросу флага готовности.
- •2.5.3. Прерывания устройств и их обработка.
- •2.5.4. Система приоритетов в обработке прерываний.
- •2.5.5. Ввод-вывод с использованием механизма прерываний.
- •2.5.6. Устройства с блочной передачей данных.
- •2.5.7. Прямой доступ к памяти и его использование для ввода-вывода.
- •2.6. Синхронные прерывания (исключительные ситуации) и их обработка.
- •3. Шинная архитектура
- •3.1 Структура шин. Подшины адреса, данных, управления. Ширина шины.
- •3.2. Синхронизация шины. Синхронные и асинхронные шины.
- •3.3. Временные диаграммы операций обмена по шинам.
- •3.4 Арбитраж шины.
Структуры машинных команд. Трех-, двух-, одноадресные системы команд процессоров.
Важной характеристикой ЭВМ, в большей степени, определяющей разделение ЭВМ на различные типы, является система команд ЭВМ.
Команда представляет собой код, определяющий операцию вычислительной машины и данные, участвующие в операции. Также команда содержит информацию об адресе, по которому размещается результат операции, и об адресе следующей команды. Под системой команд ЭВМ обычно понимается набор инструкций, которые может выполнить центральный процессор, способы кодирования этих инструкций и методы указания местонахождения операндов. Мощность и гибкость системы команд во многом определяют качественные показатели ЭВМ в целом.
По характеру выполняемых операций различают основные группы команд:
- команды арифметических операций (выполняют сложение и вычитание)
- команды логических (поразрядных) операций (И, ИЛИ, НЕ и др.) (выполняют сложение и вычитание)
- команды управления (служат для определения порядка, в котором выполняются команды других типов, позволяют переходить из одной точки программы в другую, обходить некоторую последовательность команд по результатам выполнения, допустим, арифметического действия, и ряд других аналогичных операций)
- команды внутренней пересылки данных (дают возможность перемещать целиком слова или байты при требуемых в большинстве программ внутренних пересылках данных, позволяют выполнять сдвиговые операции над битами одного слова)
- команды ввода и вывода (команды ввода указывают устройству управления на необходимость передать информацию от некоторого внешнего по отношению к системе устройства в память для хранения внутри системы, команды вывода выполняют передачу информации в обратном направлении, команды ввода-вывода можно использовать для получения информации о состояний устройства и для передачи ему управляющих воздействий)
- команды задания режима процессора
В команде содержатся не сами операнды, а информация об адресах ячеек памяти или регистрах, в которых они находятся. Код команды можно представить состоящим из нескольких частей или полей. В общем случае командный код состоит из операционной части и адресной части.
Операционная часть содержит код операции, который задает вид операции (сложение, пересылка, переход и т.д.). Адресная часть команды содержит информацию о местонахождении (адресах) операндов и результата операции, а в некоторых случаях и об адресе следующей команды.
Простейшим типом команд являются так называемые безадресные команды, т.е. команды, для выполнения которых операнды не требуются. У таких команд адресная часть отсутствует (все машинное слово представляет собой код операции).
Одноадресные команды, оперирующие только с одним операндом (очистить ячейку памяти, изменить знак числа и др.)
Единственный адрес должен указывать и на источник, и на приемник, но поскольку в большинстве арифметических операций применяются два операнда, то необходимо предусмотреть в одноадресной машине некоторое аппаратное средство для задания второго операнда. Обычно эту функцию выполняет аккумулятор.
Использование аккумулятора состоит в том, что при выполнении арифметических операций с его содержимым производится сложение или из его содержимого — вычитание и т. д. Следовательно, в состав системы команд одноадресной машины необходимо включить команды инициализации начального значения аккумулятора и сохранения его значения. Этой цели служат команды загрузить в аккумулятор (LAC) и освободить аккумулятор (DAC).
Двухадресные команды, для выполнения которых необходимо указание двух адресов (копировать содержимое из одной ячейки в другую). Первый операнд называется операндом-источником, второй – операндом-приемником.
В таком случае нет необходимости в резервировании отдельной ячейки, чтобы туда поместить
результат, поскольку можно использовать адрес второго операнда для хранения результата.
Трехадресные команды (сложить содержимое двух ячеек и результат поместить по третьему адресу)
При использовании трехадресной машины любая арифметическая операция завершается при выполнении одной команды.
Четырехадресные команды (см. пример выше + адрес команды, которая должна выполниться следом)
Во-первых, при использовании такого метода нет необходимости размещать последовательно в памяти те команды, которые в программе должны выполняться последовательно, хотя в примере они следуют одна за другой. Во-вторых, поскольку адреса всех элементов данных, участвующих в любой арифметической операции, заданы явно, нет необходимости в каких-либо технических средствах для хранения промежуточных результатов.
Для адресации каждого операнда в коде команды выделяется специальное поле (несколько разрядов). Очевидно, что количество указываемых в команде операндов и способ указания их адресов существенным образом влияют на длину команды (количество разрядов, необходимых для кодирования команды). Поэтому во многих ЭВМ ограничиваются одноадресными и двухадресными командами.
Команду в памяти ЭВМ можно размещать в нескольких подряд идущих ячейках (так как адрес операнда занимает одно машинное слово).