Сложность машины с точки зрения пользователя
Основная память Регистры Каналы ввода-вывода Абсолютная и относительная адресация Базовый регистр Индексный регистр Другие способы адресаций Типы команд Команды с фиксированной точкой Команды десятичной арифметики Логические команды Команды передачи управления Команды арифметики с плавающей точкой Привилегированные команды и команды управления процессором Еще один способ классификации команды Форматы команд машин, память которых организована словами Набор команд IBM часть 1 Формат команд ЭВМ UNIVAC 1100 Управляющее и арифметическое устройство |
Сложность машины с точки зрения пользователяВ настоящее время программист может написать программы для современных ЭВМ, не зная ничего о внутренней структуре и логике работы самой вычислительной машины и периферийных устройств. И действительно, на практике многие пользователи ЭВМ знают очень мало об устройстве центрального процессора и организации памяти. Тем не менее, для того чтобы использовать вычислительную машину эффективно, необходимо обладать некоторым набором сведений о внутренней структуре машины, командах машины, способах размещения данных и адресации памяти. Если даже программисты пишут программы на одном из языков высокого уровня и не нуждаются при этом в знании таких подробностей, то все равно желательно, чтобы они имели неповерхностное представление о том, как работает аппаратура ЭВМ или как взаимодействуют компоненты программного обеспечения и аппаратуры вычислительной машины. Конечно, они не должны беспокоиться о том, эта машинный код накладывает некоторые ограничения на программы, так как это учтено при создании языка высокого уровня. Например, те факты, что в ранних версиях ФОРТРАНа идентификатор мог состоять не более чем из шести символов, а в языке КОБОЛ массивы могут иметь размерность не более трех, обусловлены тем, что эти языки создавались для вычислительной машины, в ячейке памяти которой умещалось шесть символов и в которой было всего три индексных регистра. Приятно, что создателям этих трансляторов было проще всего под хранение идентификатора отвести одну ячейку памяти, а величины индексов массивов хранить в имеющихся индексных регистрах. Аналогично, ограничения на величины чисел, фигурирующих в расчетах, следуют из ограниченных возможностей аппаратуры. Так, если число должно храниться в слове или двойном слове машины, то длина машинного слова накладывает ограничения на величину числа. При хранении чисел переменной длины в упакованной десятичной форме четыре бита указателя длины операнда в поле команды ограничивают возможную длину числа 16 байт, т. е. 31 десятичной цифрой. Вычислительная машина обладает чрезвычайно сложной организацией. Тем не менее кажущаяся сложность ЭВМ зависит от уровня языка, на котором работает пользователь. Эта зависимость отражена на рис. 4.1. Для тех, кто работает с машиной на языке вопросов, машина кажется очень простой. Служащие, запрашивающие информацию о наличии мест на самолеты у автоматизированной системы резервирования билетов, могут делать это без особой подготовки, изучив необходимые сведения за достаточно короткий промежуток времени. Прикладным программистам — основным пользователям ЭВМ, создающим программы на языках высокого уровня, машина кажется более сложной, несмотря на то что им не приходится заниматься решением проблемы распределения имеющихся ресурсов аппаратного оборудования. Они могут оперировать в своей работе с такими понятиями, как символические адреса и виртуальные периферийные устройства, которые отображаются компилятором или операционной системой на реальное оборудование. Основными ограничениями, накладываемыми аппаратурой являются ограничение на размер основной памяти и на количество и типы внешних устройств. Задачи, стоящие перед программистом, работающим на уровне языка ассемблера, еще более сложные, не говоря уже о программировании на уровне машинных команд, когда должна быть учтена вся специфика аппаратуры ЭВМ. В дрелях машинной совместимости даже самая малая и дешевая ЭВМ должна иметь набор команд, аналогичный набору команд более крупной и сложной машины той же серии (возможно, с некоторыми ограничениями). Если все такие команды малой ЭВМ будут независимо реализовываться аппаратурой, то стоимость этой машины станет препятствием для ее широкого использования. Поэтому многие команды не только малых, но и средних машин реализуются на основе некоторого набора так называемых микрокоманд. Этот еще более низкий микропрограммный уровень полностью недоступен любому программисту. Исключением являются некоторые специализированные ЭВМ, в которых предусмотрены для пользователей средства микропрограммирования. Очевидно, что микропрограммная реализация команд приводит к относительному увеличению времени работы программы. Чем меньше кажущаяся сложность машины, тем меньшую власть над ЭВМ имеет пользователь данного уровня и тем больше он нуждается в услугах программного обеспечения вычислительной системы. В этой главе излагается самый нижний уровень общения с ЭВМ, доступный для пользователя. Изложение ведется на уровне работы аппаратуры и микропрограммного оборудования. Рассматриваются команды машины. Хотя машинный код редко используется в настоящее время, эти знания будут полезны при выборе для оптимального решения конкретных задач средств из широкого круга возможностей, предоставляемых современными ассемблерами и языками высокого уровня. |