Читать «Архитектура компьютера» онлайн - страница 12

Эндрю Таненбаум

Аппаратное и программное обеспечение логически эквивалентно.

Любая операция, исполняемая программным обеспечением, может быть реализована аппаратным обеспечением (желательно после того, как она будет продумана). Как говорила Карен Панетта (Karen Panetta): «Аппаратное обеспечение — это всего лишь окаменевшее программное обеспечение». Конечно, обратное тоже верно: любая команда, исполняемая аппаратным обеспечением, может быть смоделирована программно. Решение о разделении функций аппаратного и программного обеспечения основано на таких факторах, как стоимость, быстродействие, надежность, частота ожидаемых изменений. Незыблемых правил, требующих, чтобы операция X была реализована в аппаратном обеспечении, а операция Y непременно программировалась, очень мало. Эти решения меняются в зависимости от тенденций экономического и технологического развития.

Изобретение микропрограммирования

У первых цифровых компьютеров 40-х годов было только два уровня: уровень архитектуры набора команд, на котором осуществлялось программирование, и цифровой логический уровень, на котором программы исполнялись. Схемы цифрового логического уровня были ненадежны, сложны для производства и понимания.

В 1951 году Морис Уилкс (Maurice Wilkes), исследователь Кембриджского университета, предложил идею трехуровневого компьютера, призванную радикально упростить аппаратное обеспечение, а следовательно, сократить количество (ненадежных) электронных ламп [Wilkes, 1951]. Эта машина должна была иметь встроенный неизменяемый интерпретатор (микропрограмму), функция которого заключалась в исполнении программ уровня ISA посредством интерпретации. Так как аппаратное обеспечение должно было теперь вместо программ уровня ISA исполнять только микропрограммы с ограниченным набором команд, требовалось меньшее количество электронных схем. Поскольку электронные схемы тогда делались из электронных ламп, данное упрощение призвано было сократить количество ламп и, следовательно, повысить надежность (которая в то время выражалась числом поломок за день).

В 50-е годы было построено несколько трехуровневых машин. В 60-х годах число таких машин значительно увеличилось. К 70-м годам идея о том, что написанная программа сначала должна интерпретироваться микропрограммой, а не исполняться непосредственно электроникой, стала преобладающей. В наши дни она используется всеми современными компьютерами.

Изобретение операционной системы

В те времена, когда компьютеры только появились, принципы работы с ними сильно отличались от современных. Одним компьютером пользовалось большое количество людей. Рядом с машиной лежал листок бумаги, и если программист хотел запустить свою программу, он записывался на какое-то определенное время, скажем, на среду с 3 часов ночи до 5 утра (многие программисты любили работать в тишине). В назначенное время программист направлялся в комнату, где стояла машина, с пачкой перфокарт (которые тогда служили средством ввода) в одной руке и хорошо заточенным карандашом в другой. Каждая перфокарта содержала 80 колонок; на ней в определенных местах пробивались отверстия. Войдя в комнату, программист вежливо просил предыдущего программиста освободить место и приступал к работе.