
Полная версия
АРХИТЕКТУРА КОМПЬЮТЕРА
В начале 1960-х годов исследователи из Дартмутского колледжа и других организаций создали системы разделения времени. Они позволяли нескольким программистам взаимодействовать с центральным компьютером напрямую через удаленные терминалы, подключенные по телефонным линиям. Это обеспечивало почти мгновенный отклик системы, независимо от местоположения пользователя.
В контексте данной темы особый интерес представляют те компоненты ОС, которые интерпретируют функции уровня 3, отсутствующие на уровне ISA, а не механизмы разделения времени как таковые. Следует помнить, что современные ОС выполняют гораздо более широкий спектр задач, чем просто интерпретация добавленных функций.
Перенос функциональности в микрокод
Когда микропрограммирование стало стандартом (к 1970 году), разработчики осознали возможность добавления новых инструкций путем простого расширения микропрограммы. Фактически, это позволяло создавать «аппаратное обеспечение» (новые машинные команды) программными методами.
Это открытие спровоцировало взрывной рост наборов машинных команд в условиях конкуренции производителей. Многие новые инструкции не были строго необходимыми, так как их функции можно было реализовать комбинацией существующих команд. Однако выделенные инструкции работали быстрее. Классический пример: инструкция INC (инкремент), добавляющая 1 к числу, выполнялась быстрее, чем универсальная инструкция ADD, поэтому ее внедрили отдельно.
Аналогичным образом в микропрограмму были интегрированы следующие возможности:
инструкции для умножения и деления целых чисел;
инструкции для арифметики с плавающей запятой;
инструкции вызова и возврата из процедур;
инструкции для ускорения выполнения циклов;
инструкции для обработки символьных строк.
Оценив простоту добавления новых команд, разработчики начали внедрять в микропрограммы и более сложные функции:
средства ускорения вычислений с массивами (индексация и косвенная адресация);
функции перемещения программ в памяти после их запуска;
системы прерываний, сигнализирующие о завершении операций ввода-вывода;
механизмы переключения процессов, позволяющие приостановить одну программу и запустить другую минимальным числом команд;
специализированные инструкции для обработки аудио, графики и мультимедиа.
С течением времени добавлялось множество других приспособлений, преимущественно направленных на ускорение специфических операций.
Отказ от микропрограммирования и современные тенденции
Микропрограммы достигли пика популярности в 1960-х и 1970-х годах. Однако по мере их разрастания скорость выполнения неумолимо снижалась. В определенный момент исследователи пришли к выводу, что отказ от микрокода, сокращение набора команд и обеспечение прямого аппаратного управления оставшимися командами способны значительно ускорить работу машин. В некотором смысле проектирование компьютеров совершило полный круг, вернувшись к состоянию до изобретения микропрограммирования Уилксом (философия RISC).
Тем не менее, эволюция продолжается. Современные процессоры по-прежнему используют микропрограммирование, но иначе: для преобразования сложных внешних инструкций во внутренний микрокод (микрооперации), который затем исполняется на оптимизированном, сверхбыстром аппаратном обеспечении.
Главная цель этого исторического экскурса — продемонстрировать, что граница между аппаратным и программным обеспечением произвольна и постоянно меняется. То, что сегодня является программным обеспечением, завтра может стать аппаратным, и наоборот. Границы между различными уровнями архитектуры также крайне изменчивы. Для программиста, работающего на уровне ISA, конкретный способ физической реализации инструкции не имеет значения (за исключением ее быстродействия). Он может использовать команду умножения, не задумываясь, является ли она аппаратной или программной.
Конец ознакомительного фрагмента.
Текст предоставлен ООО «Литрес».
Прочитайте эту книгу целиком, купив полную легальную версию на Литрес.
Безопасно оплатить книгу можно банковской картой Visa, MasterCard, Maestro, со счета мобильного телефона, с платежного терминала, в салоне МТС или Связной, через PayPal, WebMoney, Яндекс.Деньги, QIWI Кошелек, бонусными картами или другим удобным Вам способом.



