- •Введение
- •Организация кэш-памяти
- •1. Где может размещаться блок в кэш-памяти?
- •2. Как найти блок, находящийся в кэш-памяти?
- •3. Какой блок кэш-памяти должен быть замещен при промахе?
- •4. Что происходит во время записи?
- •Принципы организации основной памяти в современных компьютерах Общие положения
- •Увеличение разрядности основной памяти
- •Память с расслоением
- •Использование специфических свойств динамических зупв
- •Виртуальная память и организация защиты памяти Концепция виртуальной памяти
- •Страничная организация памяти
- •Сегментация памяти
- •Управление вводом-выводом
- •Физическая организация устройств ввода-вывода
- •Организация программного обеспечения ввода-вывода
- •Обработка прерываний
- •Драйверы устройств
- •Независимый от устройств слой операционной системы
- •Пользовательский слой программного обеспечения
- •Системы ввода вывода Организация ввода - вывода микропроцессорного устройства
- •Ввод вывод в режиме прямого доступа к памяти
- •Ввод вывод
- •Защищенный режим
- •Дескрипторы
- •Привилегии
- •Переключение задач
- •Страничное управление памятью
- •Режим виртуального 86 (v86)
- •Характеристика системы команд процессора
- •Простые типы данных. Операции над простыми данными.
- •Машинные форматы данных.
- •Слово. Полуслово. Двойное слово.
- •Числа с плавающей запятой
- •Представление простых типов данных языков программирования
- •Вместо заключения
- •2.2 Типы данных
- •Логическое устройство компьютеров
- •1. Принцип программного управления. Из него следует, что программа состоит из набора команд, которые выполняются процессором автоматически друг за другом в определенной последовательности.
- •3. Принцип адресности. Структурно основная память состоит из перенумерованных ячеек; процессору в произвольный момент времени доступна любая ячейка.
- •Основные принципы функционирования компьютеров
- •Принципы Неймана
- •Общее устройство компьютеров
- •Арифметические основы компьютера
- •Перевод чисел в десятичную систему счисления
- •Перевод чисел из десятичной системы в двоичную, восьмеричную и шестнадцатиричную
- •Перевод чисел из двоичной системы счисления в восьмеричную и шестнадцатиричную и обратно
- •Арифметические операции в позиционных системах счисления
- •Сложение
- •Вычитание
- •Триггер
- •Сумматор
- •Принципы организации основной памяти в современных компьютерах Общие положения
- •Увеличение разрядности основной памяти
- •Память с расслоением
- •Использование специфических свойств динамических зупв
- •Виртуальная память и организация защиты памяти Концепция виртуальной памяти
- •Страничная организация памяти
- •Сегментация памяти
- •Глава 5 Управление памятью
- •Глава 1. Общие принципы организации памяти эвм
Характеристика системы команд процессора
Система команд - это набор допустимых для данного процессора управляющих кодов и способов адресации данных. Система команд жестко связана с конкретным типом процессора, поскольку определяется аппаратной структурой блока дешифрации команд, и обычно не обладает переносимостью на другие типы процессоров (хотя может иметь место совместимость “снизу-вверх” в рамках серии процессоров, как, например, в серииi80x86).
С физической точки зрения код команды ничем не отличается от обычных данных в двоичном коде, размещенных в памяти вычислителя. Конкретный двоичный код воспринимается и обрабатывается процессором как команда в том случае, когда он попадает в процессор в фазе чтения кода команды.
С логической точки зрения в двоичном коде команды существуют группы разрядов – поля – с различным функциональным назначением (рис. 3.3).
Рис. 3.3 Типовая структура формата команды:
1 - поле кода операции (КОП) объемом 1 или 2 байта; 2 - поле адресной части команды (АЧ) объемом от 1 до 4 байт.
На рис.3.3 показаны два основных поля в формате команды:
КОП - код операции - двоичный код, однозначно указывающий процессору на выполнение конкретных действий (пересылка, сложение и т.п.), и определяющий при этом форму задания адресов операндов;
АЧ - адресная часть - двоичное число, которое может представлять собой адрес (адреса) операндов, значение операнда, адрес следующей команды (адрес перехода, передачи управления ). Следовательно, формат команды – это совокупность таких ее характеристик, как количество, размер и назначение полей.
Язык программирования, максимально приближенный к системе команд конкретного микропроцессора – это Ассемблер. В этом языке коду каждой команды МП поставлена в соответствие определенная мнемоника – краткое буквенное название команды, например:
Пересылка данных – MOV (от англ. move)
Сложение – ADD
Переход по программе – JMP (от англ. jump) и т.д.
(!) Вспомнить примеры команд из лабораторных работ
Для программиста система команд представляется как минимально необходимый набор команд для реализации вычислений и управления ходом вычислительного процесса. В систему команд традиционно входят такие группы:
· пересылка данных (регистр-регистр, регистр-память, память-регистр, специфические команды типа память-память);все команды пересылки выполняют, по сути, копирование данных из ячейки-источника в ячейку-приемник;
· арифметические операции (+, –, *, : );
· логические операции (and, or, xor, not) и операции сдвига;
· ввод-вывод – специфические команды для передачи данных между процессором и устройствами ввода-вывода, размещенными в адресном пространстве ввода-вывода;
· передача управления – при выполнении такой команды процессор записывает в счетчик команд PCадрес следующей команды, взятый из адресной части текущей команды;
· специальные – останов, сброс, управление прерываниями, управление режимом пониженного энергопотребления и т.п.
Способ адресации– это способ получения процессором адреса операнда или перехода на основании информации из адресной части команды.Различают следующие основные способы адресации:
· прямая– адрес операнда или перехода содержится в АЧ команды;
· непосредственная– в АЧ команды содержится значение операнда;
· регистровая– в коде команды содержится указание на один или два регистра процессора, являющихся источниками операндов или приемником результата;
· косвеннаярегистровая– в коде команды содержится указание на какой-либо регистр процессора, содержимое которого при выполнении команды интерпретируется процессором как адрес ячейки памяти, содержащей операнд;
· косвенная базовая(иногда – индексная) – адрес операнда формируется (вычисляется) процессором в ходе выполнения команды как сумма содержимого одного из регистров и смещения (числа), задаваемого в команде, либо как сумма содержимого двух регистров. Таким образом, базовая или индексная формы адресации также являются разновидностью косвенной адресации.
Регистры, которые можно использовать для реализации косвенной адресации, часто называют указательными регистрами: в самом деле, они как бы “указывают” на ту ячейку памяти, в которой содержится операнд. Использование косвенной адресации более предпочтительно, поскольку такой подход позволяет создавать универсальные, легко перенастраиваемые (используется термин «переносимые»), и позиционно независимые программы. Применение прямой адресации “привязывает” программу к конкретным ячейкам памяти, и при этом резко снижается возможность ее использования в различных проектах. Важнейшая особенность косвенной адресации заключается в том, что адрес операнда долженформироваться в процессе выполнения программы(в то время, как в случае использования прямой адресации адреса всех операндов должны быть определены и указаны при написания текста программы).
Реализация основных способов адресации схематично показана на рис. 3.4.
(!) Вспомнить примеры команд для различных способов адресации из лабораторных работ
Разновидностью косвенной адресации является стековаяадресация с использованием содержимого регистраSP. При этом в процессе доступа к данным выполняется автоуменьшение или автоувеличение содержимого регистраSP. Подробнее стековая адресация будет рассмотрена далее.
Для обеспечения переносимости программ также используют относительную адресацию в командах передачи управления. При этом в адресной части команды содержится не абсолютный адрес перехода, а только смещение в байтах от текущего значения счетчика команд до адреса требуемой команды. Полный адрес перехода вычисляется процессором в ходе выполнения команды. Применение относительной адресации позволяет уменьшить объем программы.
Рис. 3.4. Схемы реализации основных способов адресации данных