Количество органов основных операций в крупнейших из существующих аналоговых машин составляет одну-две сотни. Устройство этих органов зависит, конечно, от типа используемого аналогового процесса. В недавнем прошлом они были преимущественно электрическими или электромеханическими (механическая ступень служила для повышения точности; ср. выше). Сложное логическое управление (как и любое логическое управление этого типа; ср. выше) требует наличия определенных органов типично цифрового действия, таких как электромеханические реле или электронные лампы (последние в этом случае работают не на предельных скоростях). Количество таких органов может достигать нескольких тысяч, а общая стоимость такой машины – порядка 1 000 000 долларов США.
Характеристики современных цифровых машин
Большие цифровые машины отличаются более сложной организацией. Они состоят из активных органов и органов, выполняющих функции памяти, – к последним я отношу органы ввода и вывода, хотя обычно так не делают.
Активными органами являются следующие. Во-первых, это органы, которые выполняют основные логические действия: обнаруживают совпадения, комбинируют управляющие импульсы и, возможно, распознают антисовпадения (хотя иногда используются органы и для более сложных логических операций). Во-вторых, это органы, которые регенерируют импульсы: восстанавливают их постепенно падающую энергию или переводят их с энергетического уровня, преобладающего в одной части машины, на другой (более высокий) энергетический уровень, преобладающий в другой ее части (эти две функции называются амплификацией) – т. е. органы, которые восстанавливают желаемую (в пределах определенных допусков, стандартизованную) форму импульса и синхронизацию. Следует отметить, что первые упомянутые логические операции – это элементы, на которых строятся арифметические действия (ср. выше).
Активные компоненты; вопросы скорости
В хронологической последовательности вышеупомянутые функции выполнялись электромеханическими реле, электронными лампами, кристаллическими диодами, ферромагнитными сердечниками и транзисторами (ср. выше) или различными небольшими схемами, включающими эти устройства. Реле позволяли достичь скорости около 10–2 секунды на элементарное логическое действие; электронные лампы – порядка 10–5–10–6 секунды (а в некоторых случаях в два или в четыре раза меньше). Последняя группа под общим названием твердотельных устройств работает со скоростью 10–6 секунды; вероятно, в будущем эта скорость увеличится до 10–7 секунды на элементарное логическое действие. Другие устройства, которые я не буду рассматривать здесь, скорее всего, позволят добиться еще лучших результатов – полагаю, в ближайшие десять лет мы достигнем уровня 10–8–10–9 секунды.
Количество требуемых активных компонентов
Количество активных органов в большой современной машине варьирует в зависимости от ее типа и составляет примерно от 3000 до 30 000. Основные (арифметические) операции обычно выполняются одним блоком (или, вернее, одной более или менее связанной группой блоков) – арифметическим органом. В большой современной машине это устройство включает, в зависимости от типа, приблизительно от 300 до 2000 активных органов.
Как будет показано ниже, некоторые группы активных органов выполняют функции памяти. Как правило, они содержат от 200 до 2000 активных органов.
Наконец, собственно запоминающие устройства (ср. ниже) требуют наличия вспомогательных активных органов, выполняющих функции обслуживания и управления. Самые быстрые запоминающие устройства, которые состоят не из активных органов (ср. ниже; согласно принятой здесь терминологии, это второй уровень иерархии памяти), могут включать от 300 до 2000 активных органов. Количество вспомогательных активных органов во всех участках памяти может составлять до 50 % всех органов машины.
Органы памяти. Время доступа и емкость памяти
Органы памяти делятся на несколько классов. В основе классификации лежит время доступа. Оно определяется следующим образом. Во-первых, это время, необходимое для сохранения числа, которое уже представлено в какой-либо другой части машины (обычно в регистре активных органов; ср. ниже), с предварительным стиранием числа, которое могло быть записано ранее. Во-вторых, это время, необходимое для выдачи сохраненного числа по запросу в другую часть машины (обычно в регистр активных органов; ср. ниже). Иногда удобно различать эти два времени (чтения и записи), а иногда целесообразно использовать одно, большее из них или, возможно, их среднее значение. Кроме того, время доступа может изменяться от случая к случаю; если оно не зависит от адреса памяти, то называется временем произвольного доступа. Даже если время доступа непостоянно, можно использовать одно значение – максимальное или, возможно, среднее. (Последнее, конечно, зависит от статистических свойств решаемых задач.) Ради простоты я буду использовать единое время доступа.
Регистры памяти, построенные из активных органов
Регистры памяти могут быть построены из активных органов (ср. выше). Они отличаются самым коротким временем доступа и являются самыми дорогими. Такой регистр представляет собой схему по меньшей мере из четырех электронных ламп (или чуть меньшего количества твердотельных элементов) на каждый двоичный разряд (или знак); следовательно, на каждый десятичный разряд их потребуется минимум в четыре раза больше (ср. выше). Таким образом, система двенадцатиразрядных десятичных чисел (и знака), рассмотренная выше, потребует 196-лампового регистра. С другой стороны, время доступа таких регистров часто в два раза превышает время элементарного ответа, что очень быстро по сравнению с другими устройствами (ср. ниже). Кроме того, несколько регистров такого типа могут быть объединены, что даст некоторую экономию в оборудовании; так или иначе они используются в качестве органов ввода и вывода для других типов памяти. Один или два (в некоторых схемах даже три) таких регистра образуют конструкцию арифметического органа. Подведем итог: в небольшом количестве они более экономичны, чем может показаться на первый взгляд, а потому применяются и в других органах машины. Тем не менее они, очевидно, не годятся для создания запоминающих устройств большой емкости, в которых нуждаются почти все большие вычислительные машины. (Последнее замечание относится только к современным машинам, т. е. к машинам, работающим на электронных лампах, а также к более поздним их типам. До этого времени в машинах с электромеханическими реле последние использовались в качестве активных органов, а релейные регистры – в качестве основной формы памяти.)
Иерархический принцип организации органов памяти
Для запоминающих устройств большой емкости должны использоваться другие типы памяти. Суть иерархического принципа организации памяти заключается в следующем.
Чтобы машина функционировала надлежащим образом – т. е. чтобы она выполняла поставленные задачи, – ей необходима память емкостью, скажем, N слов с временем доступа t. Обеспечить время доступа t для N слов может оказаться технически трудно или – обычно именно так и проявляются подобные сложности – слишком дорого. Вполне возможно, однако, что время доступа t требуется не для всех N слов, а для существенно меньшего их количества, скажем N′. Поскольку для части слов (N′) обеспечено время доступа t, вполне вероятно, что для всех слов (N) достаточно более длительного времени доступа t″. Далее, может статься, что экономичнее всего обеспечить, в дополнение к упомянутым выше, промежуточные запоминающие устройства, емкость которых окажется меньше N, но больше N′ слов, а время доступа – больше t, но меньше t″. Общая схема в таком случае будет состоять из последовательности запоминающих устройств емкостью N1, N2… Nk-1, Nk с временем доступа t1, t2… tk–1, tk, в рамках которой каждое последующее устройство станет характеризоваться большей емкостью, но меньшей скоростью (т. е. N1 < N2 <… < Nk–1< Nk, t1< t2<… < tk–1< tk ). Таким образом, для каждого i (1, 2… k–1, k) Ni слов имеют время доступа ti. (Чтобы связать это с тем, что было сказано ранее, следует принять, что N1 = N′, t1 = t и Nk = N, tk = t″.) В данной схеме каждое значение i представляет собой один уровень в иерархии памяти; всего в этой иерархии k таких уровней.
Компоненты памяти; вопросы доступа
В большой современной быстродействующей вычислительной машине общее количество всех уровней иерархии памяти составляет не меньше трех (возможно, четыре или пять).
Первый уровень всегда соответствует регистрам, описанным выше. Их количество, N1, практически во всех типах машин составляет минимум три, а иногда и больше (предлагалось даже до двадцати). Время доступа t1 – основное время переключения машины (или, возможно, в два раза превышает его).
Следующий (второй) уровень иерархии включает специальные органы памяти. Они отличаются от переключательных органов, используемых в остальной части машины (и на первом уровне иерархии; ср. выше). Емкость N2 органов памяти, в настоящее время применяемых на этом уровне, варьирует от нескольких тысяч до нескольких десятков тысяч слов (последний тип пока находится на стадии проектирования). Время доступа t2 обычно в пять-десять раз больше, чем время доступа на предыдущем уровне, t1. На каждом последующем уровне емкость памяти Ni, как правило, возрастает примерно в 10 раз. Время доступа ti растет еще быстрее, но здесь действуют другие правила, ограничивающие и определяющие время доступа (ср. ниже). Подробное рассмотрение этого вопроса в текущем контексте едва ли оправданно.
Самые быстродействующие элементы, т. е. органы памяти (другими словами, неактивные органы; ср. выше) – это некоторые электростатические устройства и магнитные сердечники. В последнее время чаще всего используются последние, хотя могут применяться и другие методы (электростатические, ферроэлектрические и т. д.). На более высоких уровнях иерархии памяти в настоящее время преимущественно используются магнитные барабаны и магнитные ленты; в некоторых машинах применяются магнитные диски.
Сложности понятия времени доступа
Устройства трех последних типов подчиняются особым правилам и ограничениям. Так, доступ ко всем участкам магнитного барабана предоставляется последовательно и циклично. Емкость памяти на магнитной ленте практически не ограничена; все ее участки просматриваются в фиксированной линейной последовательности, однако ленту можно остановить или пустить в обратном направлении. Все эти схемы могут сочетаться с различными устройствами, обеспечивающими синхронизацию состояний функционирования машины и состояний ее памяти.
Последний этап любой иерархии памяти представляет собой внешний мир (внешний с точки зрения машины), т. е. ту ее часть, которая выполняет коммуникативные функции, – иначе говоря, органы ввода и вывода. Как правило, ими являются перфорированные бумажные ленты или карты, а на выходе, конечно, и печатные данные. Иногда основной системой ввода-вывода выступает магнитная лента; в этом случае перевод в форму, которую может непосредственно использовать человек (т. е. бумагу с перфорацией или отпечатанными данными), выполняется вне машины.
Ниже приведены некоторые показатели времени доступа в абсолютном выражении. Так, для запоминающих устройств на ферромагнитных сердечниках время доступа составляет от 5 до 15 микросекунд; для электростатических запоминающих устройств – от 8 до 20 микросекунд; для магнитных барабанов – от 2500 до 20 000 об/мин, т. е. от 24 до 3 миллисекунд на один оборот (за это время можно ввести от 1 до 2000 слов); для магнитных лент – до 70 000 линий в секунду, т. е. 1 линия в 14 микросекунд (слово может занимать 5–15 линий).
Принцип прямой адресации
Во всех существующих машинах и запоминающих устройствах используется прямая адресация. Иначе говоря, каждое слово в памяти имеет свой собственный числовой адрес, который однозначно характеризует это слово и его положение в памяти (как общей совокупности всех иерархических уровней). Этот числовой адрес всегда указывается явно, когда слово нужно сохранить в памяти или считать из нее. Иногда не все части памяти доступны одновременно (ср. выше; бывает, что в машине имеется несколько запоминающих устройств, не все из которых доступны одновременно, в зависимости от заданных приоритетов доступа). В этом случае доступ к памяти зависит от общего состояния машины в момент запроса. Тем не менее в адресе, а также в участке памяти, который он обозначает, никогда не бывает неопределенности.