Основные принципы организации вычислительных машин и систем. Класс SISD. Архитектура ЭВМ фон Неймана
Принцип двоичного кодирования.
Вся информация (данные и команды) кодируются бинарными значениями; каждый тип информации представляет двоичной последовательностью и имеет свои формат.
Поле - последовательность битов в формате, имеющая определенный смысл.
Принцип однородности памяти.
Команды и данные хранятся в одной памяти и внешне абсолютно неразличимы. Это позволяет проводить над командами операции как над числами и обеспечивает возможность получения команд какой-либо программы в результате исполнения другой программы.
Принцип адресности.
Основная память состоит из пронумерованных двоичными адресами ячеек, причем ЦП в произвольный момент времени имеет доступ к любой из них.
Принцип программного управления.
Все вычисления, предусмотренные алгоритмом решения задачи, должны быть представлены в виде программы, состоящей из ряда команд, в свою очередь, каждая из которых предписывает некоторую операцию из доступного набора, реализуемого архитектурой ВМ.
Команды хранятся в памяти ВМ и выполняются в естественной последовательности, следуя порядку их расположения.
Алгоритм
Актуальность принципа программного управления
Транзисторы:
• ВМ с управлением потоком команд
• Команды хранятся в памяти ВМ и выполняются в естественной последовательности, следуя порядку их расположения
Интегральные схемы
• ВМ с управлением потоком данных
• Параллельная обработка команд - процессор выполняет те команды, для которых готовы исходные данные
Архитектура ЭВМ фон Неймана - классическая однопроцессорная архитектура SISD
Структура ЭВМ классической архитектуры
Центральное устройство ЦУ
Хранящаяся в ПЗУ информация в штатном режиме работы ЭВМ может только считываться.
Внешняя память. Используется для долговременного хранения больших объемов данных.
• Медленная
• Дешевая
• Энергонезависимая
Файл - это идентифицированная совокупность экземпляров полностью описанного в конкретной программе типа данных, находящихся вне программы во внешней памяти и доступных программе посредством специальных операций.
Внешние устройства обеспечивают эффективное взаимодействие компьютера с окружающей средой - пользователями, объектами управления, другими машинами.
В специализированных управляющих ЭВМ (технологические процессы, связь, ракеты)
• Внешние устройства ввода - датчики
• Внешние устройства вывода - манипуляторы
В универсальных ЭВМ (человеко-машинная обработка информации) в качестве ВУ выступают терминалы, принтеры и тд
Архитектура "Звезда" - структурная организация ВМ с непосредственными связями.
• Совместное использование каналов передачи информации для памяти программ и памяти данных привело к ограничению пропускной способности канала.
• ВМ с непосредственными связями плохо поддавались реконфигурации.
"Иерархическая" архитектура
ЦУ соединено с периферийными процессорами, управляющими в свою очередь контроллерами, к которым подключены группы ВУ.
Семинар 2
Цикл выполнения короткой команды может выглядеть:
1) В соответствии с содержимым счетчика адреса команд устройство управления извлекает из ОП очередную команду и помещает ее в регистр команд. Некоторые команды устройство управления обрабатывает самостоятельно, без привлечения АЛУ.
2) Осуществляется расшифровка, декодирование команды
3) Адреса А1, А2, ... Помещаются в регистры адреса
4) Если в команде указаны индексные или базисные регистры, то их содержимое используется для модификации регистра адреса.
5) По значению регистра адреса осуществляется чтение чисел или строк и помещение их в регистр числа
6) Выполнение операции и помещение результата в регистр результата
7) Запись результата по одному из адресов, если это необходимо
8) Увеличение содержимого счетчика команд на единицу
За счет увеличения числа регистров возможно распаралеливание или перекрытие операций. При считывании команды счетчик увеличения команд можно автоматически увеличить на единицу, подготовив выборку следующих команд. Все это является предпосылкой построения конвеерных структур. Процесс нарушается при появлении условных переходов.
Основные признаки классификации и типы команд
1) Команды пересылки. Пересылка данных между двумя регистрами или регистром и ячейкой памяти. В зависимости от архитектуры процессора возможна пересылка между двумя ячейками памяти и групповая пересылка.
2) Команды ввода/вывода. Реализуют пересылку данных из регистров процессора или оперативной памяти во внешнее устройство (или прием от внешней памяти и пересылка в регистр)
3) Команда обработки данных. О1, о2 - операнды. Делится на 2 больших блока.
3.1) -Логическое сложение. Для каждого бита О1, О2 осуществляется операция "Или"
-Умножение "И"
-Инверсия
-Логическое сравнение О1=О2 => Ф=1
3.1.2) Арифметические операции
-Сложение операндов
-Вычитание операндов (сложение в обратном коде)
-Арифметическое сравнение
3.1.3) Команды сдвига
Осуществляет логические, арифметические и циклические сдвиги адресуемых операндов на несколько разрядов.
3.2.1) Сложение и вычитание с плавающей запятой
3.2.2) Умножение и деление с фиксированной и плавающей запятой
Все команды 3.1 - это короткие операции. Занимают один такт. 3.2 - длинные. Могут занимать несколько тактов
4) Операции управления
4.1) Безусловный переход и ветвление. Загружает в счетчик адреса команд новое содержимое, являющееся адресом следующей выполняемой команды.
4.2) Вызов подпрограммы. Производится путем безусловной передачи управления с сохранением адреса возврата управления.
4.3) Условный переход. Производится загрузка в регистр состояния нового содержимого если выполняются определенные условия.
4.4) Команда организации программного цикла. Условный переход в зависимости от значения заданного в регистр, который используется как счетчик цикла
4.5) Команды прерывания. Переход к одной из программ обслуживания исключений и прерываний.
4.6) Команды изменения признаков. Запись чтения содержимого регистра состояния, в котором хранятся признаки. Возможны изменения значения отдельных признаков
4.7) Команды управления процессором. Команды остановок, отсутствие операций, ряд команд определяющих режим работы процессора или его отдельных блоков.
5) Тип выборки и пересылки данных
5.1) Регистр регистров. О1, О2 перемещаются в регистр АЛУ
5.2) Память регистр - регистр память
5.3) Память - память. О1, О2 в ОП.
6) Адресация
6.1) Прямая. Операнд выбирается из ячейки памяти, адрес которой содержится в команде
6.2) Регистровая адресация. Операнд выбирается из регистра, имя которого указано в команде.
6.3) Косвенно-регистровая. Операнд выбирается из ячейки памяти адрес которой содержится в регистре, указанном в команде.
6.4) Косвенно-регистровая со смещением. Операнд выбирается из ячейки памяти, адрес которой является суммой содержимого, указанного в команде регистра и заданного в команде смещения.
6.5) Косвенно-регистровая с индексированием и смещением. Операнд выбирается из ячейки памяти, адрес которой является суммой содержимого указанного в команде регистра, индексного регистра и заданного в команде смещения. Иногда используются специальные индексные регистры. Частым случаем этого способа является индексная адресация.
6.6) Относительная. Операнд выбирается из ячейки памяти, адрес которой является суммой текущего содержимого счетчика адреса команды и заданого в команде смещения. Во многих процессорах этот способ адресации используется не для операнда, а для формирования адреса, к которому приходит программа при ветвлении. При этом сформированый таким образом адрес загружается в счетчик адреса команды, обеспечивая выборку следущей команды.
6.7) Непосредственная. Операнд непосредственно содержится в поступившей команде, размещается следом за кодом операции.
Комментарий к пункту 5
Регистр-регистр
Плюсы: простота реализации, фиксированная длина команд, простая модель компиляции, возможность выполнения команд за одинаковое количество тактов.
Минусы: большая длина объектного кода
Регистр-память
Плюсы: доступность данных без их загрузки в регистры, простота кодирования, компактность кода
Минусы: длинное поле адреса в коде команды сокращает поле номер регистра, что ограничивает общее число регистров общего назначения. Скорость выполнения команды зависит от места расположения операнда.
Память-память
Оба операнда и результат располагаются в памяти.
Плюсы: компактность объектного кода, малая потребность в регистрах
Минусы: низкое быстродействие, разнообразие форматов команд и времени их исполнения.
Семинар 3
7) Адресность
7.1) Одноадресные. А1 в зависимости от модификации команды может обозначать либо адрес ячейки или регистра, в которых хранится одно из чисел, либо адрес ячейки или регистра, куда следует поместить результат.
7.2) Двухадресные. А1 обычно адрес ячейки или регистра, где хранится первое из чисел, участвующих в операции и куда после завершения операции должен быть записан результат. А2 адрес ячейки или регистра где хранится второе число, участвующее в операции.
7.3)Трехадресные. А2 и А3 ячейки адреса или регистров, где расположены 1 и 2 числа, участвующие в операции. А1 - куда следует поместить результат
7.4) Безадресная. Содержат только код операции, а информация для нее должна быть заранее помещена в определенные регистры машины или содержаться в адресной части
7.5) Комбинированная. Один или более адресов адресной части предназначены для размещения данных, операндов.
8) Другие признаки
8.1) Операции с фиксированной запятой. Арифметические и логические операции над числами, обычно занимающими одно машинное слово. (Процессоры х86).
8.2) Операции с плавающей запятой. Арифметические операции над числами, представленными в виде мантисса порядок (Процессоры х87).
8.3) Десятичная арифметика. Реализация команд, обрабатывающих тэтрады бит и выполняющие соответствующие арифметические операции.
8.4) Символьная обработка. Команды обработки байт памяти, как символов ASCII.
8.5) Обработка чисел большой длины. Обработка машинных слов длинной 64, 128 и 256 байт.
8.6) Команды индексной арифметики. Изменение содержания индексных регистров для обращения к последовательным элементам массива.
8.7) Векторные операции. Команды типа СИМД. ММХ, SSЕ, 3Dnow!
Расширенные инструкции процессора
Уменьшение времени на решение задачи.
Увеличить тактовую частоту
Увеличить количество исполняемых за такт команд
Увеличить количество данных, обрабатываемых каждой командой
Для реализации последнее способа необходимо чтобы единицы данных располагались последовательно и имели один и тот же тип. (Массив однородных элементов, мультимедиа файлы).
Под СИМД расширением понимается программно-аппаратное решение, представляющее собой совокупность дополнительных регистров и наборов инструкций процессора, предназначенных для групповой обработки данных. Так же необходимо наличие соответствующих компиляторов.
ММХ - 1997 год. 57 команд для обработки звука и видео. ММХ ориентирована на обработку больших массивов данных целого типа. Основа аппаратных компонентов - 8 регистров по 64 бита (8 байт) каждый. ММХ поддерживает данные размером в 1, 2, 4 или 8 байт. То есть один ММХ регистр может содержать. ММХ использует регистр со-процессора
Расширение SSЕ. 1999 год, появился в Pentium 3. 70 новых команд. Оперирует данными вещественного типа, которые используются в геометрических расчетах. Оперируют 128 битными регистрами
SSE 2. Появился в Pentium 4. 144 команды. Работает не только с четверками чисел одинарной точности, но и с любыми данными которые умещаются в 128 бит. Использовалось 8 регистров. Используется для уменьшения погрешностей в вычислениях.
SSE 3. Появилась горизонтальная и вертикальная арифметика.
3DNow! Начиналось с 21 команды. Узкая специальность, предназначенная для расчетов 3D графики. 8 регистров по 64 бита.
Лекция 6