отношу органы ввода и вывода, хотя обычно так не делают.
Активными органами являются следующие. Во-первых, это органы, которые выполняют основные логические действия: обнаруживают совпадения, комбинируют управляющие импульсы и, возможно, распознают антисовпадения (хотя иногда используются органы и для более сложных логических операций). Во-вторых, это органы, которые регенерируют импульсы: восстанавливают их постепенно падающую энергию или переводят их с энергетического уровня, преобладающего в одной части машины, на другой (более высокий) энергетический уровень, преобладающий в другой ее части (эти две функции называются амплификацией) – т. е. органы, которые восстанавливают желаемую (в пределах определенных допусков, стандартизованную) форму импульса и синхронизацию. Следует отметить, что первые упомянутые логические операции – это элементы, на которых строятся арифметические действия (ср. выше).
Активные компоненты; вопросы скорости
В хронологической последовательности вышеупомянутые функции выполнялись электромеханическими реле, электронными лампами, кристаллическими диодами, ферромагнитными сердечниками и транзисторами (ср. выше) или различными небольшими схемами, включающими эти устройства. Реле позволяли достичь скорости около 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 слов имеют время доступа t