В.А. Фисун - Прикладное программирование в задачах математической физики. Архитектурные принципы построения ЭВМ (pdf) (1127762), страница 14
Текст из файла (страница 14)
Однако у динамического предсказания есть и своислабые места - это проблемы, возникающие из-за ограниченности ресурсовдля сбора статистики. Статические методы предсказания используются совместно с динамическими методами.5. Глава 5Архитектура ЭВМ5.1. Системы командАрхитектура набора команд (ISA), называемая иногда системой команд ЭВМ, восходит к фон-неймановской архитектуре, содержавшей всего21 команду. Эволюция системы команд непосредственно связана с развитием всей архитектуры ЭВМ и будет рассматриваться, в основном, на примере наиболее характерных команд обработки данных - инструкций выполнения арифметических или логических функций, инструкций управления.Команда ЭВМ - это инструкция для аппаратной реализация единичногоакта преобразования информации в ЭВМ, состоящая из кода операции команды (имени функции преобразования) и адреса (ов) - ссылки на аргумен-Пособие 17.09.0950ты и на результат функции.
Кроме основного результата, каждая командавырабатывает дополнительный, который служит служебной информациейдля последующих команд. Служебная информация фиксируется в системных регистрах – битах индикации. В них хранится информация об особенностях выполнения текущей команды, например, был ли результат арифметической операции равен нулю или отрицателен.
К служебной информацииотносится также значение программного счетчика команд (СК) – адресаразмещения в ОЗУ исполняемой команды. Набор команд разделяется накоманды, предоставляемые прикладным программистам, и привилегированные команды.Команды для программирования приложений обеспечивают реализацию арифметических и логических операций, команд управления, пересылок.
Состав арифметических команд, кроме базовых операций: +, -, *, /,может содержать команды вычисления тригонометрических функций и др.Набор аргументов таких операций трансформировался от чисел с фиксированной запятой до вещественных чисел обычной и двойной точности, отскалярных аргументов до векторных аргументов. Объявлены планы реализации ЭВМ для арифметики с иными системами счисления, например, интервальной арифметики. Логические команды реализуют операции Булевойалгебры, формирования логических шкал: сдвиги, сборки, разборки и директивы для по-байтовой обработки текста.
Команды управления служатдля управления ходом выполнения программы. Команды безусловной передачи управления – требование начать выполнение команды, адрес размещения которой в ОЗУ указан в команде. Команды условной передачи нарушают последовательный перебор команд для исполнения только тогда, когдахарактеристика результата выполнения предыдущей команды соответствует заданному условию. К командам управления относятся и команды организации циклов, примитивы для проверки окончания цикла с одновременной индексацией параметра цикла.
Особую группу команд управления составляют команды обращения к подпрограммам и возврата из них.Адреса команд – аргументы операции - бывают следующих типов.Литералы - это задание, запись в команде аргумента в явном виде. Например, в трехадресной команде можно задать в виде (*, А1, “2”, А3) арифметическую операцию – число из А1 умножить на число 2 и отправить в А3.Частой, а иногда и единственной, формой адресов в некоторых архитектурах ЭВМ является ссылки на регистры, элементы из набора ячеек сверхоперативной памяти процессора. В таких регистрах хранятся аргументы операции, в них же может записываться результат.
Наконец, адресом может служить ссылка на байт оперативной памяти, который определяет первуюкомпоненту аргумента (если аргумент длиннее одного байта). На этомпримере прямой адресации простота адресации операндов в командах ЭВМзаканчивается, появляется возможность косвенной адресации данных. Втаких схемах адрес памяти, по которому хранится аргумент - исполнительный (эффективный) адрес - формируется по заданным правилам из элемен-Пособие 17.09.0951тов, указанных в адресе команды. Косвенная адресация (адрес в адресе) состоит в том, что по указанному в команде адресу (ссылка на слово памяти врегистре или в ОЗУ) хранится не сам аргумент - операнд, а адрес памяти,где и содержится требуемый операнд.
Исполнительный адрес в командеможет вычисляться, например путем сложения содержимого заданного регистра с константой, которая указана в адресе команды. В архитектуре IА32определяются 12 способов формирования исполнительных адресов. “Асмерть Кащеева находится в яйце, которое хранится в ларце, который ит.д.”.Форматы команд ведут историю от первобытных ЭВМ, когда все команды имели одинаковую длину и формат. Наиболее удобной для программирования формой описания арифметических вычислений являются трехадреснаякоманда, формата (ЭВМ М-20, БЭСМ-4, Весна):<КОП><А1><А2><А3>, при выполнении которой над операндами А1 и А2производится вычисление функции, определенной <КОП>ом, а результатфиксируется в А3. С увеличением размеров ОЗУ размещение трех адресов,апеллирующих непосредственно к оперативной памяти, в формате командыстало затруднительным и в командах стало меньше операндов.
Так, в двухадресных командах ЭВМ оперирует парой операндов - операндом назначения dest (destination) и операндом-источником src (source). Базовая схемавыполнения команды: dest = F(dest, src), где F - некоторая функция от двухпеременных. Это означает, что при выполнении команды процессор извлекает из указанных в команде адресов (регистр, память, константа в самойинструкции) пару двоичных аргументов и результат действия над ними записывает на место одного из них (dest). Для выполнения той же функциинад следующей парой чисел требуется повторное исполнение команды, ноуже с другой парой операндов.
Такой принцип исполнения используетсядля архитектуры процессоров IА-32.Если зафиксировать в качестве операнда назначения dest сумматор, тоего содержимое можно брать по умолчанию и формат команды станет одноадресный, как это было реализовано в БЭСМ-6.
Если аргументы операции занести в стек, который используется также в качестве операнда назначения, то задавать порядок вычислений можно безадресными командами.Итак, команды ЭВМ бывают трех, двух, одно адресными, а также – четырехадресными (четвертый задает следующую команду для исполнения), нуль иполуторно адресные. Кроме набора команд с фиксированной постояннойдлиной, имеются реализации архитектур микропроцессоров с командамипеременной длины. Так, команды процессоров IА32 могут занимать от одного до четырех байтов, формат, длина команды фиксируется в известныхполях первого байта команды.
Соответственно, программа для ЭВМ даннойархитектуры с искаженными или утраченными значениями первых байтовтекста превращается в китайскую грамоту.Пособие 17.09.0952Набор арифметических команд в современных процессорах дополняется векторными командами, которые ведут начало от процессоров Pentium, вних было введено расширение – группа команд MMX, направленное на ускорение обработки потоков и массивов данных.
Это расширение стало реализацией принципа SIMD (Simple Instruction - Multiple Data, одна инструкция на множество данных). Здесь вводятся новые упакованные форматыданных: в один регистр MMX можно помещать не только один операнд (64битное число), но и пару 32-битных, четверку 16-битных или восьмерку 8битных чисел. Одна инструкция MMX выполняет однотипные действиясразу над всеми числами, упакованными в регистры MMX, заданные адресной частью данной команды.Все множество архитектур процессоров по типу системы команд делятся на две глобальные категории - RISC и CISC, к которым добавляютсякомбинированные схемы. Традиционные процессоры универсальных ЭВМназываются CISC (Complex (Complicated) Instruction Set Computer) - компьютерами с полной системой команд (семейство Intel ЭВМ от серии ix86 доPentium и Pentium Pro, архитектура IA32).
Помимо арифметических и логических операций в систему команд (аппаратно реализуемые функции)включались сложные операции, такие, как извлечения корня; реализуютсясложные схемы формирования исполнительных адресов (в i486 доступно до12 способов). Расширение спектра операций облегчает программирование иотладку программ, однако увеличивает трудоемкость разработки процессоров. Так ошибка в АЛУ одного из процессоров фирмы Intel была выявленапользователями только после выхода процессора на рынок.