Text
                    Э. БУТ и К. БУТ
АВТОМАТИЧЕСКИЕ
ЦИФРОВЫЕ МАШИНЫ
Перевод с английского
Т. М. ТЕР-МИКАЭЛЯНА
и
И. Н. ЛЕБЕДЕВА-СОРИНА
Под редакцией
В. М. КУРОЧКИНА
ГОСУДАРСТВЕННОЕ ИЗДАТЕЛЬСТВО
ФИЗИКО-МАТЕМАТИЧЕСКОЙ ЛИТЕРАТУРЫ
МОСКВА 19 5 3


11-5-4 АННОТАЦИЯ Книга в сжатой, но весьма доступной фор¬ ме излагает очень большой и разнообразный материал по автоматическим цифровым ма¬ шинам. Очень большое внимание уделено принципам конструирования машин, причем достаточно подробно рассматриваются как действие отдельных элементов, так и логика построения крупных узлов с разбором алго¬ ритмов, на которых основана их работа. Вто¬ рая половина книги посвящена программиро¬ ванию и особенно использованию стандарт¬ ных подпрограмм. Ряд интересных сведений имеется также в главах, посвященных истории вычислитель¬ ной техники, перспективам ее развития и некоторым применениям. Большую ценность представляет очень подробная, тематически расположенная библиография. Э. Бут и К. Бут. Автоматические цифровые машины. Редакторы В. Б. Орлов и Л1. М. Горячая. Техн. редактор В. И. Крючкова. Корректор Т. С. Плетнева. Сдано в набор 28/11 1959 г. Подписано к печати 20/V 1959 г. Бумага 84 X 108*/,а. Физ. печ. л. 10-|-2 вклейки. Условн. печ. л. 16,60. Уч.-изд. л. 16,90. Тираж 15 ООО экз. Т-01000. Цена 10 р. 50 к. Заказ № 2853. Государственное издательство физико-математической литературы. Москва, В-71, Ленинский проспект, 15. Первая Образцовая типография имени А. А. Жданова Московского городского Совнархоза. Москва, Ж-54, Валовая, 28.
ОГЛАВЛЕНИЕ Предисловие ко второму изданию 8 Предисловие к первому изданию 9 Глава 1. Введение 11 Глава 2. Механическая эра 17 Арифметические машины (17). Полуавтоматические машины (18). Универсальные машины (20). Глава 3. Появление электронной техники 24 Специализированные электронные цифровые машины (25). Универсальные электронные цифровые машины (27). Глава 4. Общая схема конструкции универсального вычисли¬ тельного устройства 36 Память (37). Устройство управления (40). Устройства ввода и вывода (41). Глава 5. Устройство управления 41 Команды (42). Дешифратор (43).Счетчик устройства управле¬ ния (44). Блок запоминания команд (44). Обозначения (45). Запоминающее устройство (46). Схема действия устройства управления (47). Другие виды устройств управления (50). Глава 6. Арифметический узел 52 Основные элементы (53). Правый и левый сдвиг (55). Сло¬ жение (56). Вылита кие (62). Умножение (63) Деление (67). Десятичная и другие арифметики (70). ^ Глава 7. Различные операции 80 Частичная подстановка (82). Логическое умножение (83). Глава 8. Ввод и вывод 84 Устройство ввода (85). Устройство вывода (95). Обзор (99). Глава 9. Вентили 101 Электромагнитное реле (101). Диод, или выпрямитель (104). Триод (109). Двуполярные вентили (113). Многосеточные лампы (114). Полупроводниковый триод (115). Магнитные устройства (117).
6 ОГЛАВЛЕНИЕ Глава 10. Одноразрядные запоминающие элементы 120 Электромагнитное реле (121). Тиратрон (122). Электрон¬ ные триггеры (123). Одноразрядная память логического типа (128). Полупроводниковая одноразрядная память (129). Магнитная статическая одноразрядная память (130). Магнитная динамическая одноразрядная память (131). Недвоичная одноразрядная память (133). Глава 11. Различные компоненты. 136 Регистры со сдвигом (137). Функциональные схемы (145). Схемы совпадения (148). Глава 12. Запоминающие устройства 149 Электромеханическая'память (150). Память на магнитном барабане (152). Другие типы динамической магнитной па¬ мяти (164). Магнитно-акустическая память (165). Матричная память из элементов с прямоугольной петлей гистерезиса (167). Акустические линии задержки (171). Диэлектрическая память (174). Другие формы памяти (180). Необходимая ем¬ кость памяти (181). Глава 13. Код машины ... 182 Внд команд (183). Основные команды (186). Программа умножения (188). Итерационные процессы и условная пе¬ редача управления (191). Код Принстонской машины (193). Код машины АПЕ(ИКС)К (196). Некоторые специальные команды (200). Глава 14. Техника программирования 201 Метод блок-схем (202). Детализация программы (204). Точ¬ ная форма команд машины АПЕ(ИКС)К (204). Пример про¬ граммирования задачи (206). Глава 15. Применение подпрограмм 209 Преобразование подпрограмм (210). Принстонский метод (211). Использование подпрограмм на машине ЭДСАК (212). Хранение подпрограмм на машине АПЕ(ИКС)К (214). Введение констант в подпрограммы (215). Программа деле¬ ния (216). Включение подпрограмм в основную программу (219).'Контроль порядка чисел (221). Извлечение квадратного корня (225). Перевод чисел в двоичную систему счисления и обратно (233). Глава 16. Составление программ 237 Применение таблиц и интерполирование (238). Хранение таблиц в машине (238). Программа интерполирования (239). Интерполирование таблиц sin х и cos х (245). Полиномиаль¬ ные разложения (249).Оптимальное программирование (252). Оптимальная подпрограмма деления (256). Случайные числа (258). Автоматическое программирование (260).
ОГЛАВЛЕНИЕ 7 Глава 17. Некоторые применения вычислительных машин . . 262 Предварительные замечания (262). Рентгеноструктурный анализ (262). Машинный перевод (269). Игры (273). Обу¬ чение машины и ее «разумность» (280). Литература . 288 Дополнительная литература . . . . 299 Именной указатель 316 Предметный указатель 317 <
ПРЕДИСЛОВИЕ КО ВТОРОМУ ИЗДАНИЮ При подготовке этого издания мы воспользовались слу¬ чаем, чтобы сделать текст современным, добавив значитель¬ ное количество нового материала. Были введены новые элементы схем, такие, как транзистор и ферроэлектриче- ская матричная память. В этом издании дано описание ме¬ тодов автоматического кодирования, разработанных в по¬ следние два года. Пересмотренная и увеличенная более чем вдвое по срав¬ нению с первым изданием библиография является иллюст¬ рацией той активной деятельности, которая ведется сейчас в области вычислительной техники. Немногочисленные ошибки были исправлены, и авторы благодарят читателей и рецензентов за помощь в их обна¬ ружении. Э. Бут, К• Бут Варф Фенни Комптон ноябрь 1955 г.
ПРЕДИСЛОВИЕ К ПЕРВОМУ ИЗДАНИЮ Десятилетие 1940—1950 гг. ознаменовалось усилением активности во многих областях науки. Под влиянием войны возникла необходимость производить часто и быстро слож¬ ные вычисления, непосильные для человека-вычислителя. В результате этого мечта Чарльза Бэббиджа, жившего в XIX веке, осуществилась в середине XX века, и современ¬ ные автоматические цифровые машины являются важным фактором при разработке большинства новых разделов науки и техники. Настоящая книга предназначена служить пособием по теории этих машин, в частности, она должна помочь но¬ вичкам войти в курс основных понятий, терминологии и литературы. Естественно, что наиболее подробно описана аппаратура, применяемая в нашей лаборатории. Но, по¬ скольку большинство из рассмотренных вопросов за послед¬ ние семь лет получило там дальнейшее развитие, не следует быть очень пристрастным в оценке изложения. Терминология предмета еще не стабилизировалась, и мы надеемся, что строгие читатели не обидятся на нас за использование такого антропоморфического термина, как «память», который во всяком случае должен быть извес¬ тен всякому читателю, знакомому с существующей лите¬ ратурой. Авторы желают высказать свое чувство признатель¬ ности Джону фон Нёйману и руководимому им штату в Принстонском институте перспективных исследований за
10 ПРЕДИСЛОВИЕ К ПЕРВОМУ ИЗДАНИЮ поддержку их проекта в то время, когда авторы были гостями Принстонского института. Мы также приносим на¬ шу благодарность Британской исследовательской ассоци¬ ации каучуковой промышленности, Имперской химиче¬ ской компании и Рокфеллеровскому центру за их щед¬ рую поддержку, которая сделала возможным создание машин АПЕ(ИКС)К. В заключение нам особенно приятно поблагодарить мистера Джона Вильсона, ныне директора Британской исследовательской ассоциации искусственного шелка, за его терпение, одобрение и практическую помощь в течение последних лет. Варф Фенни Комптон май 1953 г. Э. Бут, К■ Бут
ГЛАВА 1 ВВЕДЕНИЕ Перед тем, как перейти к главному предмету этой книги, полезно будет кратко остановиться на современных общих идеях в области вычислительной техники. В частности, это необходимо ввиду богатства развившейся за последнее десятилетие терминологии, вследствие чего для людей, работающих в этой области, трудно заботиться о том, чтобы все их замечания были понятны неспециалисту. Многие вычисления, с которыми мы встречаемся в повсе¬ дневной жизни, включают в себя многократное повторение одних и тех же серий операций. Например, при вычислении размера подоходного налога с заработной платы рабочих или служащих к каждому из них применяется одна и та же небольшая группа правил. Вся разница заключается в ве¬ личине его или ее заработка и в различных скидках, зави¬ сящих от таких обстоятельств, как количество детей. Для того, чтобы расчет подоходного налога производить на ма¬ шине, необходимо ввести в нее упомянутые данные, после чего работа машины будет происходить автоматически. Такой повторяющийся процесс вычисления, когда последо¬ вательность операций задана, а исходные данные меняются,- называется итерацией и является основным в работе современной вычислительной машины. В схеме, упомянутой выше, предполагалось, что ма¬ шина производит установленную последовательность опе¬ раций над введенными данными. Механизм, который обе¬ спечивает правильную последовательность выполнения опе¬ раций, называется устройством управления, а части машины, выполняющие сложения, вычитания, умножения и т. д., называются арифметическим уз‘лом. В упомянутой
12 ВВЕДЕНИЕ выше простой схеме предполагалось, что машина специально сделана для того, чтобы выполнять одну последователь¬ ность операций, решать одну частную задачу. Такие ма¬ шины называются специализированными вычислительными машинами. В настоящее время созданы машины, которые могут решать любые задачи, сводящиеся к последователь¬ ному выполнению арифметических операций. Такие вычи¬ слительные машины называются универсальными. Вполне возможно выполнять операции над числами, представляя их различными физическими величинами, чтобы затем, используя какие-то механические или электри¬ ческие устройства, получать требуемый ответ. Известным примером вычислительных устройств такого типа является логарифмическая линейка. Здесь числа преобразуются в длины отрезков логарифмической шкалы, а произведе¬ ния и частные Получаются наложением этих величин, после чего результат находится по шкале, градуированной соот¬ ветствующим образом. Устройства, использующие подоб¬ ную физическую аналогию, обычно известны под названием машин-аналогов *). Существует большое количество сложных и остроумно построенных машин-аналогов, однако не они составляют предмет этой книги. В ней рассматриваются лишь цифро¬ вые машины. Как видно из самого названия, в таких маши¬ нах величины представляются с помощью цифр, с кото¬ рыми и оперируют в процессе счета. Простейшим примером такого вычислительного устройства являются знакомые всем конторские счеты. Большим преимуществом цифровых машин перед ма¬ шинами-аналогами является их потенциальная Точность. Так, чрезвычайно трудно создать машину-аналог, обла¬ дающую точностью выше одного процента, тогда как точ¬ ность цифровой машины может быть увеличена простым добавлением новых цифровых разрядов, например, в форме счетных колес. Мы можем задать себе вопрос: какое значение имеет точность в одну десятимиллионную? В повседневной жизни такая точность если и требуется, то весьма редко. В мате¬ *) Употребляются также термины: «вычислительные машины не¬ прерывного действия», «моделирующие устройства». {Прим. перев.)
ВВЕДЕНИЕ 13 матических расчетах, однако, часто случается, что искомое малое число вычисляется как разность двух больших чи¬ сел. Следовательно, чтобы не потерять разрядов искомого числа, мы должны брать исходные числа с высокой точ¬ ностью. (Вопрос о том, существует ли лучший математи¬ ческий метод решения всех таких задач, мы здесь не рас¬ сматриваем, так как, если эти методы и существуют, они могут оказаться не самыми простыми с точки зрения вычи¬ слений.) Далее, если в процессе вычислений встречается умноже¬ ние чисел, содержащих, скажем, два десятичных разряда, то для того, чтобы сохранить в произведении два десятич¬ ных знака, произведение нужно округлить. Это означает, что результат может иметь ошибку порядка половины последней цифры. С помощью теории вероятностей можно показать, что сумма п чисел, имеющих вероятную ошибку, равную 0,5, имеет вероятную ошибку 0,5 Yп- Значит, сумма 40 ООО чисел, содержащих два десятичных разряда и имеющих названную выше вероятную ошибку, будет иметь вероят¬ ную ошибку порядка 100. Если числа, возникающие в задаче, имеют различные знаки и их сумма мала, то из изложенного очевидно, что ошибка округления может превзойти самое сумму. Совре¬ менные быстродействующие вычислительные машины вы¬ полняют арифметические действия в масштабах не менее приведенного выше, и поэтому весьма важно обеспечить высокую точность используемых чисел. Скорость работы современных машин настолько высока, что оператор, работающий на машине, не в состоянии так же быстро вводить в нее числа или выписывать получаемые ответы с той же скоростью, с какой машина их вычисляет. ' Это вызывает необходимость в создании устройств ввода и вывода. Эти устройства могут состоять из бумажной ленты, на которой числа представлены отверстиями, и электри¬ ческих буквопечатающих аппаратов, или перфораторов, работа которых управляется самой машиной. Применение ленты, читаемой машиной, позволяет использовать боль¬ шое число операторов для обеспечения полной загрузки машины. Помимо этого, существует широкий круг мате¬ матических и физических проблем, которые при малом
14 ВВЕДЕНИЕ количестве исходных данных и результатов требуют очень большого объема вычислительной работы. К таким пробле¬ мам относится задача определения молекулярной структуры по данным рентгеновского анализа, многие задачи ядерной физики, расчет самолета для полета при сверхзвуковых скоростях и бесчисленное количество чисто математиче¬ ских задач типа «для каких значений п число 2" — 1 будет простым?». В связи с высокой стоимостью и трудностью изготовле¬ ния машин с большим числом электрических или электрон¬ ных элементов, большинство современных универсальных вычислительных машин конструируется так, что они могут выполнять лишь небольшое число видов арифметических действий. Например, все машины выполняют операции сложения и вычитания, большинство машин выполняют операцию умножения, но операция деления часто отсут¬ ствует, а таких операций, как извлечение квадратного корня, почти никогда не имеется. Любая задача, подлежащая решению на машине, должна быть сначала представлена в виде последователь¬ ности этих основных операций. Процесс такого преобразо¬ вания задачи называется программированием или кодиро¬ ванием, а список основных операций, выполняемых маши¬ ной, называется кодом или системой команд машины. Выше уже был отмечен принцип многократного повторе¬ ния фиксированной последовательности операций. Пред¬ положим теперь, что от машины требуется повторить такую последовательность вычислений ровно п раз, а затем оста¬ новиться. Если список операций поместить в машину п раз, то для этого потребуется большое дополнительное оборудование, время и пространство. Поэтому машина устроена так, что каждый раз к концу выполнения задан¬ ной последовательности операций она проверяет некоторое число. Если это число, например, положительно или равно нулю, то она возвращается к началу последовательности. Если же это число отрицательно, то машина останавли¬ вается или переходит к новой последовательности операций. Предположим, например, что частью некоторой последо¬ вательности действий будет операция вычитания единицы из числа п—1 и что после каждого вычитания результат оценивается. Для первых п—1 циклов результат будет
ВВЕДЕНИЕ 15 положителен или равен нулю, и последовательность опе¬ раций будет повторяться. Однако после п-го цикла резуль¬ тат станет отрицательным, и будет начата новая последова¬ тельность операций. Число п — 1 называется индексом ите¬ рации, а команда, оценивающая величину п—1 и направ¬ ляющая работу машины по одной из двух подпоследова¬ тельностей операций, называется условным переходом или командой разветвления. Условный переход, пожалуй, наиболее важная команда современной вычислительной машины. Можно показать, что при ее использовании поддаются программированию даже наиболее сложные логические процессы и что машину можно заставить сделать в ходе вычислений выбор продол¬ жения, неизвестного для оператора заранее. В качестве простейшего примера мы приведем извлечение квадратного корня из числа, полученного самой машиной. Подробно мы рассмотрим это в гл. 15, а здесь скажем только, что из¬ влечение корня из числа а является итеративным процес¬ сом, дающим после каждой т-й итерации некоторое при¬ ближение хт к У а. Трудность заключается в том, что число итераций, необходимых для получения заданной точности, зависит от величины числа а и заранее оператору неизвестно. Однако решение весьма просто. В конце каждого итератив¬ ного цикла машина вычисляет величину — (лш_, — хп)2. Это число отрицательно, пока хт_1фхт в пределах требуе¬ мой точности. Но к концу итеративного процесса эта раз¬ ность становится равной нулю, и применение операции условного перехода отключит машину от цикла вычисле¬ ния квадратного корня и заставит ее перейти к решению следующей части задачи. Мы закончим это введение кратким описанием способа, с помощью которого представляются числа в цифровых машинах. В обычной арифметике отрицательное число записы¬ вается, скажем, как —0,642. Для вычислительных машин такая запись менее удобна, чем запись вида 9,358 (=10— 0,642), при которой отрицательное число прибавляется к такой степени 10, которая выходит за разряды машины. Этот процесс представления называется дополнительным, и если 1СУ'—наибольшая степень 10, t изобразимая на данной машине, то говорят, что отрицательные числа
16 ВВЕДЕНИЕ представляются как дополнения по модулю 10/,+1. Легко видеть, что в пределах емкости машины а — Ь = а + (доп. b по мод. 10p+1). Во многих цифровых машинах, особенно в тех, где ис¬ пользуются электродные элементы, десятичная система счисления не является наиболее подходящей с инженерной точки зрения. Вместо нее применяется двоичная система, в которой используются только цифры 0 и 1. Лейбниц давно предсказывал, что двоичная система заменит деся¬ тичную в школьном обучении из-за простоты таблиц сло¬ жения и умножения: 0 + 0 = 0 0 + 0 = 0 1+0=1 0X1=0 1+1 = 10 1X1 = 1 Причины, почему предсказание Лейбница не сверши¬ лось, станут понятны читателю, если он попытается сло¬ жить в этой системе столбец, содержащий более трех чи¬ сел. В двоичной системе счисления десятичные цифры будут иметь следующий вид: 0= 0, 5= 101, 1= 1, 6= 110, 2= 10, 7 = 111, 3= 11, 8 = 1000, 4=100, 9=1001, и любое десятичное число может быть представлено в двоич¬ ной системе. Может возникнуть вопрос о трудностях, свя¬ занных с использованием в машинах двоичной системы счисления. Эти трудности преодолеваются следующим об¬ разом: вся информация вводится в машину в десятичной системе с помощью перфоленты или клавиатуры пульта управления, а затем сама машина переводит числа в двоич¬ ную систему для удобства хранения и производства вычи¬ слений; по окончании вычислений машина производит обрат¬ ное преобразование в десятичную форму и в таком виде выдает числа оператору. Детально этот процесс рассмотрен в гл. 15, посвященной программированию.
АРИФМЕТИЧЕСКИЕ МАШИНЫ 17 В заключение скажем, что метод дополнительного пред¬ ставления отрицательных чисел используется и в двоич¬ ной системе. Дополнения производятся до числа 2p+l, где 2Р наибольшая степень двойки, которая может быть удержана в регистрах машины. ГЛАВА 2 МЕХАНИЧЕСКАЯ ЭРА Арифметические машины Первое упоминание о возможности создания машины, способной выполнять арифметические действия, связано с именем Паскаля, который в 1642 г. сконструировал ма¬ шину для сложения и вычитания. Он с большим успе¬ хом использовал ее для расчетов при сборе налогов во Франции. Идея механического вычисления сильно привлекала и Лейбница, который в 1694 г. сконструировал усовершен¬ ствованный вариант машины Паскаля, выполнявший ум¬ ножение и деление. Большой интерес к этому делу вызвал развитие первых несовершенных машин от стадии научных курьезов до со¬ временной компактной и удобной формы, развитие, в кото¬ ром английский механический гений нашел свое выражение в ранних вычислительных машинах Морланда и Стэнхопа. Заслуживает упоминания, между прочим, что сумматор Морланда, работающий с помощью штифта, все еще про¬ дается в почти неизмененном виде как недорогой инстру- Развитие машин, выполняющих арифметические дейст¬ вия, сдерживалось отсутствием большого количества точно изготовленных зубчатых колес и других необходимых дета¬ лей. Поэтому, когда Томас де Кольмар в 1820 г. выпустил на рынок коммерческую машину, она не получила распро¬ странения. пн Первые арифметические машины современного типа были изготовлены Однером в 1891 г., хотя зубчатое колесо с пе- Р меннь.м числом зубьев, носящее сТо имя, в действи¬
18 МЕХАНИЧЕСКАЯ ЭРА тельности описал Рот в 1841 г., и использовал для ма¬ шины Болдуин в 1875 г. Интересно отметить, что в одном из наиболее компакт¬ ных и хороших арифмометров, употребляемых сейчас (1952 г.), используется в качестве основного элемента ша¬ говое колесо Лейбница. Полуавтоматические машины Машины, описанные выше, требуют присутствия опе¬ ратора, который вводит данные, запускает машину (вруч¬ ную или с помощью мотора), выписывает результаты и вновь вводит их в машину для следующего этапа вычисле¬ ний. Паскаль в своих «Мыслях» сказал о вычислительных машинах вообще и о своей в частности: «Арифметическая машина производит такие действия, которые приближаются к мышлению живых существ, но она не делает ничего, что могло бы указывать на то, что она обладает волей живых существ» — и, благодаря этой сомнительной истине, счи¬ тается отцом современных больших вычислительных ма¬ шин. Цитата выглядит в общем слишком неопределенной, особенно ее вторая часть. Лейбниц также считается праотцом машин, работаю¬ щих без помощи оператора. Первоисточники по этому вопросу разыскать не удалось, и маловероятно, чтобы у Лейбница были какие-либо предложения, достаточно конкретные для того, чтобы приписывать ему приоритет в этом вопросе. По-видимому, первым документально подтвержденным автором частично автоматизированной машины является Мюллер, который в 1786 г. предложил конструкцию уст¬ ройства для вычисления функций по алгебраическим фор¬ мулам. содержавшим разности этих функций. Эта машина, по-видимому, так и не была построена, и сомнительно, чтобы она была разработана детально. В 1822 г. Чарльз Бэббидж спроектировал разностную машину и представил проект правительству с целью полу¬ чить финансовую помощь для постройки ее. Эта машина должна была автоматически вычислять любую функцию, заданную ее первыми пятью разностями, и выдавать резуль¬ таты в отпечатанном виде. В ее основу была положена
ПОЛУАВТОМАТИЧЕСКИЕ МАШИНЫ 19 малая модель, которая «получала цифры со скоростью 44 в минуту и выполняла быстро и точно вычисления, для которых она предназначалась». Машину начали строить в 1823 г. К 1829 г. большая часть машины была изготовлена, однако трудности с инженерным персоналом привели к не¬ удовлетворительному состоянию счетов и к осложнениям с казначейством. Когда было израсходовано уже около 17 ООО фунтов стерлингов, инженер Клемент, руководив¬ ший постройкой, предъявил такие высокие требования, что помощь была прекращена. Работа прервалась в 1833 г., и, несмотря на обширную переписку, конкретного указа¬ ния от правительства не последовало вплоть до 1842 г., когда проект был окончательно похоронен. Сама недокон¬ ченная машина была великодушно предложена в подарок Бэббиджу, однако он отказался. Судьба законченных частей машины Бэббиджа после 1842 г. была переменчивой. В 1843 г. они были помещены в Королевский колледж в Лондоне. После многих лет заб¬ вения их переместили в Южно-Кенсингтонский научный музей. Заканчивая историю возникновения разностных машин, отметим, что главной причиной задержки их изго¬ товления явилось отсутствие в то время точных обрабаты¬ вающих станков. Бэббидж одним из первых взялся за это дело, и в том, что Великобритания к концу XIX века за¬ нимала ведущее место в вычислительной технике, есть и его заслуга. Хотя Бэббидж и не закончил разностной машины но по его проекту машина была построена в Швеции Шёйтцем. Она хорошо и безотказно работала, а затем была переве¬ зена в обсерваторию Дадли (Олбани, США). ожалуй, здесь неуместно подробно останавливаться на всех полуавтоматических вычислительных машинах Сам ьэббидж предусматривал использование в своей аналити¬ ческой машине (см. ниже) перфорированных карт (анало¬ гичных используемым в станке Жаккарда) для хранения вычислительной машине данных и команд. Эту идею осу¬ ществил Холлерит в 1889 г. при разработке машины для сортировки данных в связи с переписью в США. Из это¬ го устройства впоследствии развились сложные сортиро- пППН“’ вычислительные и табулирующие машины, ис- уемые и поныне при управлении предприятиями.
20 МЕХАНИЧЕСКАЯ ЭРА Существует два главных типа перфокартных машин. В ма¬ шинах системы Пауэрс Сеймас карты читаются и вычисления производятся исключительно механическим путем; эти ма¬ шины являются идейными потомками машины Бэббиджа. Другая система (Холлерит) предусматривает использова¬ ние электромагнитных реле и других подобных устройств в качестве вычислительных элементов, чем достигается простота и гибкость, невозможные в дни Бэббиджа. Поскольку мы рассматриваем машины, образующие функции по их разностям, отметим, что Национальная рас¬ четная машина со своими шестью регистрами позволяет делать (печатая результаты) именно те вычисления, для которых конструировалась разностная машина Бэббиджа. Универсальные машины В 1833 г. Бэббидж пришел к выводу о возможности скон¬ струировать машину, которая могла бы выполнять любые вычисления, заданные оператором, а не только вычисления одного специального вида, как в разностных машинах. ^ Эту машину Бэббидж назвал аналитической машиной. При ее проектировании гений Бэббиджа полностью расцвел. Не будет преувеличением сказать, что все логические уст¬ ройства, переоткрытые впоследствии при создании элект¬ ронных машин, были первоначально придуманы Бэббиджем. Машина должна была состоять из двух главных частей — «завода» и «склада». Первая предназначалась для выпол¬ нения арифметических операций с числами. Вторая часть состояла из 1000 колонок по 50 цифровых колес в каждой. При этом в зависимости от инструкций каждое колесо могло соединяться с «заводом» и другими частями машины. Предвидение Бэббиджа сказалось также в том, что современные запоминающие устройства имеют емкость того же порядка, что и его машина. Для ввода данных и инструкций в машину Бэббидж предложил использовать видоизменение управляющих пер¬ фокарт, которые давно применялись в жаккардовых маши¬ нах при тканье сложных рисунков. В этих станках карты постоянно соединены вместе, что, конечно, исключило бы в вычислительной машине переналадку. Бэббидж, правда, не имел ясного представления о том, что для его машины
УНИВЕРСАЛЬНЫЕ МАШИНЫ 21 карты не следует соединять, но очевидно, что таким его намерение было до тех пор, пока он предполагал вводить в машину карты комплектами. Таким образом, управляе¬ мые перфокартами конторские машины, несомненно, были предвосхищены в начинаниях БэббиДжа. Бэббидж понимал, что для ускорения работы машина должна уметь выявлять наличие цепочки переносов еди¬ ницы из разряда в разряд и передавать единицу из первого разряда цепочки к последнему. Так, если взять простой пример прибавления 1 к числу 899 999 999, то машина должна заметить длинный ряд девяток и последовательных переносов и исключить их, прибавляя единицу непосред¬ ственно к восьмерке. Такой механизм был предложен Бэ- биджем и введен в аналитическую машину. Им же был предложен механизм, с помощью которого машина набирала литеры, изображающие готовые для печати результаты вычислений. Вдобавок машина прове¬ ряла правильность печатания результата и в этом отноше¬ нии превосходила многие современные машины. Наконец, Бэббидж предусмотрел для машины возмож¬ ность самостоятельно выбирать путь решения среди не¬ скольких возможных в случае, если этот путь не был зара¬ нее известен оператору. Это так называемая операция ус¬ ловного перехода современных вычислительных машин, и включение ее в аналитическую машину является еще од¬ ним подтверждением гения ее изобретателя. Когда Бэббидж умер в 1871 г., аналитическая машина не была еще закончена. Его сын, генерал-майор Г. Бэббидж, между 1880 и 1910 гг. построил часть «завода», и при де¬ монстрации машина вычислила и напечатала таблицу крат¬ ных тг с точностью до 20 десятичных знаков. Модель 1910 г. и некоторые части первоначальной машины Бэббиджа можно увидеть в Южно-Кенсингтонском научном музее. Логический преемник аналитической машины Бэббиджа не был построен в течение почти 70 лет после его смерти. В 1937 г. Говард Эйкен из Гарвардского университета начал работу над «вычислительной машиной с автоматиче¬ ским управлением последовательностью операций», извест¬ ной теперь под сокращенным названием АСКК*) или *) ASCC — Automatic Sequence Controlled‘Calculator.
22 МЕХАНИЧЕСКАЯ ЭРА Марк-1. Эта машина, построенная при участии компании ИБМ *), была закончена к 1944 г. В некоторых отношениях это гораздо более скромная машина, чем задуманная Бэб¬ биджем. Она содержит 60 постоянных и 72 суммирующих регистра вместо 1000 регистров, запланированных Бэб¬ биджем. В ней предусмотрены устройства для умножения, деления, а также электромеханические таблицы для log10 х, 10Л и sin х. Для интерполяции табличных значений указан¬ ных функций предусмотрены специальные устройства. По¬ следовательность операций машины управляется от пер¬ фоленты. Нормальное количество десятичных знаков чи¬ сел, с которыми оперирует машина, равно 24. Вслед за изготовлением машины АСКК Гарвардская группа в 1945 г. начала изготовление вычислительной ма¬ шины, обычно называемой Марк-2, в которой все арифме¬ тические операции и операции передачи выполняются с помощью электромагнитных реле. Машина, законченная в 1947 г., содержит 13000 специальных реле. Применение реле вместо механических элементов позволило значительно увеличить скорость работы, в связи с чем время выполне¬ ния операций в машине Марк-2 имеет следующие значения: Передача числа в запоминающее устройство или из него . . 33 мсек Сложение или вычитание 200 » Умножение 700 » Запоминающее устройство рассчитано на 100 десятираз¬ рядных чисел, снабженных знаками. Предусмотрены сложные устройства ввода и вывода данных; результаты либо печатаются со скоростью 15 X X 25 цифр в минуту, либо пробиваются на ленте со ско¬ ростью 40 X 25 в минуту, что допускает их дальнейшее использование в машине. Кроме того, машина может быть разделена на две самостоятельно работающие части. Другая работа, одна из первых в области релейной вычислительной техники, была начата лабораторией Белла в 1938 г., построившей в 1940 г. первую модель машины; с тех пор были построены еще три другие модели. Эти вы¬ числительные машины были спроектированы для целей управления огнем, но в 1944 г. была создана и универсаль¬ *) IBM — International Business Machine Co.
УНИВЕРСАЛЬНЫЕ МАШИНЫ 23 ная машина. Таких машин было построено две. В них было применено 9000 телефонных реле и большое количество телетайпов. В машинах используются числа, кодированные в двоично-пятеричной системе (в этой системе используются цифры 0 — 4 и 5; любая десятичная цифра получается с по¬ мощью замыкания двух из имеющихся реле, что упрощает контроль). Числа берутся с точностью до семи значащих цифр и снабжены знаками. Эта машина является первой машиной с плавающей запятой. Запоминающее устройство содержит 44 регистра, собранных на реле. Для выполнения наиболее употребительных операций предусмотрены спе¬ циальные арифметические устройства. Время выполнения операций характеризуется следующими цифрами: Сложение или вычитание 0,3 сек Умножение 1,0 » Деление 22 » Извлечение квадратного корня 4,3 » Положительной чертой машины является возможность промежуточной проверки хода вычислений, что особенно ценно при решении больших задач. Релейные вычислительные машины выпускались на ры¬ нок компанией ИБМ под названием «Релейная вычисли¬ тельная машина со штеккерным управлением». Устройство машины использовало стандартную аппаратуру, выпускае¬ мую фирмой ИБМ, и содержало 36 регистров запоминаю¬ щего устройства по 6 десятичных разрядов каждый. Ариф¬ метические операции и время их выполнения следующие: Сложение или вычитание 25 мсек Умножение 9оо » Деление 1200 » К преимуществам машины относится применение для ввода и вывода перфокарт, чем достигается большая гибкость работы машины и приближение скорости вывода к скорости вычислений. Другими большими релейными или электромеханически¬ ми машинами являются машина БАРК в Стокгольме, маши¬ на Цюзе и вычислительная машина Имперского колледжа. В 1947 г. авторы этой книги предприняли изучение возможностей создания универсальной, машины, гораздо олее простой, чем существовавшие или проектировавшиеся.
24 ПОЯВЛЕНИЕ ЭЛЕКТРОННОЙ ТЕХНИКИ Работа завершилась постройкой машины АРК*)- В своем первоначальном виде машина имела запоминающее устрой¬ ство емкостью в 256 чисел на магнитном барабане и должна бы, следовательно, быть описана в следующей главе. Но в настоящее время запоминающее устройство на барабане заменено весьма компактным электромеханиче¬ ским запоминающим устройством емкостью в 50 чисел. Кроме того, машина снабжена штеккерным узлом управле¬ ния последовательностью операций на 300 инструкций и поэтому описывается здесь. Машина оперирует в прямом двоичном коде с числами в 21 двоичный разряд (6 десятичных разрядов). Время вы¬ полнения операций имеет следующие значения: Передача числа, сложение, вычитание .... 20 мсек Умножение или деление 1000 » Для ввода и вывода данных используется стандартное те¬ летайпное оборудование со вспомогательной клавиатурой для контроля. Примечательной особенностью машины яв¬ ляется то, что в ней используется только 800 однополюсных быстродействующих реле; это число может быть еще умень¬ шено за счет применения многоконтактных реле. Относи¬ тельно высокая скорость работы машины получается бла¬ годаря применению принципа параллельного действия и использованию цепочек переноса, аналогичных предложен¬ ным Бэббиджем. Особенностью машины, отличающей ее от машин подобного типа, является использование только двоичной системы счисления. Устройство ввода и вывода работает в десятичной системе, и специальная программа переводит числа из одной системы в другую. Вторая машина, АРРА, в основу которой была поло¬ жена машина АРК, была построена в Математическом центре в Амстердаме. ГЛАВА 3 ПОЯВЛЕНИЕ ЭЛЕКТРОННОЙ ТЕХНИКИ Дорога электронным лампам и схемам в вычислитель¬ ную технику открылась после'того, как в радиопромыш¬ ленности наладилось массовое производство электронных *) arc — Automatic Relay Computer (автоматическая релейная вычислительная машина).
СПЕЦИАЛИЗИРОВАННЫЕ ЭЛЕКТРОННЫЕ ЦИФРОВЫЕ МАШИНЫ 25 ламп. Однако, как это ни странно, задержка в при¬ менении ламп произошла из-за того, что требования, предъ¬ являемые к лампам в вычислительной технике, были го¬ раздо проще требований к лампам для радио. Ключевым открытием электроники (после трехэлектрод¬ ной лампы) было создание в 1919 г. Икклзом и Джорданом электронной схемы с двумя устойчивыми состояниями*). Начиная с этого времени могла быть создана вычислитель¬ ная машина современного типа. Можно возразить, что тогда не была еще решена проблема запоминающего устройства, но при этом следует иметь в виду, что хотя электронно-лу¬ чевых трубок и ртутных линий задержки не существовало, все же магнитозаписывающие устройства Поульсена име¬ лись уже в течение 25 лет, а первая мысль о магнитном запоминающем устройстве была выдвинута Оберлином Сми¬ том еще в 1888 г. Вычислительные проблемы, которые могли бы под¬ толкнуть развитие электронных вычислительных машин, существовали около столетия в астрономии, а в 30-х годах этого века стали актуальными и в количественном химиче¬ ском анализе. Однако этих причин оказалось недостаточно, и только в начале 40-х годов началась усиленная разра¬ ботка техники электронных вычислительных машин, и не будет преувеличением сказать, что 40-е годы являются на¬ чалом развития электроники в широком смысле, не огра¬ ничивающейся удовлетворением нужд одной только радио¬ техники. Специализированные электронные цифровые машины В связи с войной возросла необходимость в баллистиче¬ ских таблицах, и военное министерство ГИТА финансиро¬ вало разработку специализированной электронной машины, предназначенной для подобных вычислений. Эта машина названная ЭНИАК**), была сконструирована Мочли и Эк¬ кертом и построена в Технической школе Мура в Фила- Дельфии. После рассекречивания в 1946 г. машина была чем (^Дта идея была выдвинута на год раньше М. А. Бонч-Бруеви- Оонный ЕМЛС-Electronic Numerical Integrator and Calculator (элект¬ ронный цифровой интегратор и вычислитель).
26 ПОЯВЛЕНИЕ ЭЛЕКТРОННОЙ ТЕХНИКИ перевезена в Исследовательскую баллистическую лабора¬ торию (г. Эбердин, штат Мэриленд), где и работала до 1947 г. Вскоре стало ясно, что спроектированная для расче¬ тов полета снаряда машина ЭНИАК может быть исполь¬ зована и для решения широкого круга других задач общего характера, и поэтому классифицировать ее как спе¬ циализированную машину было бы, может быть, и не¬ верно. Тем не менее этой машине недоставало многих свойств, предвиденных Бэббиджем, и ее использование для решения той или иной задачи требовало значительных математиче¬ ских ухищрений; поэтому такая классификация выглядит более правильной. При создании ЭНИАК не учитывались проблемы стои¬ мости и габаритов машины; она содержала около 18 ООО ламп, потребляла 100 кеш электроэнергии и занимала ком¬ нату длиной более 30 метров. В машине первоначально были предусмотрены штеккерные соединения, которые ис¬ пользовались для коммутации ее отдельных узлов в^ необ¬ ходимом порядке в соответствии с решаемой задачей. Эта система оказалась малоудобной и была заменена функцио¬ нальной схемой (см. гл. 11), которая обеспечивала последо¬ вательность вычислений по методу, предложенному фон Нёйманом. Машина работает исключительно в десятичной системе счисления. В ней использовано 20 накопителей, каждый из которых содержит 10 разрядов и знак. Время, затрачи¬ ваемое для производства операций: Сложение и вычитание 200 мксек Умножение 2300 » Предусмотрены блоки для деления и извлечения квадрат¬ ного корня. Кроме того, в машине можно хранить значения функций, необходимые в процессе вычислений. Последнее достигается за счет использования функциональных схем, устроенных с использованием матриц сопротивлений. Как отмечалось выше, они могут быть также использованы для задания программы. Ввод и вывод используют обычное перфокартное обо¬ рудование, что, ввиду малого объема внутреннего запоми¬
УНИВЕРСАЛЬНЫЕ ЭЛЕКТРОННЫЕ ЦИФРОВЫЕ МАШИНЫ 27 нающего устройства машины, ограничивает скорость ее работы. После постройки ЭНИАК использовалась для решения широкого класса задач, в частности для решения диффе¬ ренциальных уравнений в частных производных и вычис¬ ления значений к и е с точностью до более чем 2000 десятич¬ ных знаков. Несмотря на явные недостатки и конструктив¬ ную сложность, ЭНИАК знаменует, вероятно, наиболее важный шаг в истории прикладной математики и является базой для более гибких и совершенных машин, описанных ниже. Универсальные электронные цифровые машины Чарльз Бэббидж предвидел необходимость запоминаю¬ щего устройства большой емкости для универсальных ма¬ шин. Когда машина ЭНИАК была в постройке, фон Нёйман и его сотрудники уделяли особое внимание проблеме опти¬ мальных характеристик современных вычислительных ма¬ шин. В результате было показано, что емкость запоминаю¬ щего устройства должна быть порядка 1000 слов и что в за¬ поминающем устройстве должны храниться как собственно числа, так и команды операций. Способ, которым это дости¬ гается, прост и заключается в следующем: каждая команда содержит не только номера ячеек тех чисел, над которыми производятся действия, но и (может быть, неявно) номер ячейки со следующей командой. Таким образом, если работа машины началась с ячейки, о которой известно, что в ней хранится команда, то в дальнейшем она сама мсжет выбирать в нужном порядке команды из массы чис¬ ловых данных, хранящихся в запоминающем устройстве. Слово «неявно» означает такой способ работы, при котором команды хранятся в ячейках памяти с последовательными номерами, так что при их выборке используется простой процесс счета, если известна отправная точка. Должна быть предусмотрена возможность выхода из последовательности операции либо по какому-либо критерию, либо без всякого условия,- При обоих способах работы этому требованию легко удовлетворить. Емкость запоминающего устройства, в 1000 слов сама по себе представляет существенную проблему. Каждое
28 ПОЯВЛЕНИЕ ЭЛЕКТРОННОЙ ТЕХНИКИ слово состоит из ряда цифр, и наиболее желательная длина может колебаться от 6 до 12 десятичных разрядов. Кроме того, чтобы полностью использовать высокое быстродейст¬ вие электронных ламп, желательно, чтобы выборка данных из запоминающего устройства после подачи команды зани¬ мала время порядка нескольких микросекунд. С такой же быстротой должна происходить запись. Это условие даже в настоящее время еще не удовлетворяется полностью. В середине 40-х годов казалось, что акустическая ртутная линия задержки является единственным устройством, спо¬ собным работать с такой скоростью. Детально линия за¬ держки будет рассматриваться в гл. 12, сейчас упомянем только, что поскольку число можно представить серией импульсов, расположенных в последовательных промежут¬ ках времени, то принципиально возможно сохранить эти импульсы путем посылки их в среду, которая могла бы задержать их (без изменения), а затем выдать спустя неко¬ торое время. Если вход и выход такого устройства соеди¬ нены между собой, то данные, однажды введенные в него, будут Циркулировать бесконечно долго. Следует заметить, что для того чтобы произвести выборку или запись данных в избранную ячейку, необходимо время ожидания, в сред¬ нем равное половине времени задержки. Оригинальные идеи фон Нёймана были положены в ос¬ нову проектирования универсальной электронной машины ЭДВАК*), в которой для запоминающего устройства ис¬ пользованы ртутные линии задержки. Машина содержит всего около 3500 ламп. Эта машина, спроектированная в 1941 г. в школе Мура, лишь недавно закончена построй¬ кой. Две другие машины строились более быстрыми тем¬ пами. Первая из них, ЭДСАК**), была выполнена в Мате¬ матической лаборатории Кембриджского университета в 1949 г. Эта машина, построенная под руководством М. В. Уилкса, имеет запоминающее устройство на ртутных линиях задержки емкостью в 512 слов по 34 двоичных раз¬ *) EDVAC — Electronic Discrete Variable Automatic Computer (электронная автоматическая вычислительная машина дискретного действия). **) EDSAC — Electronic Delay Storage Automatic Computer (элект- ронная автоматическая вычислительная машина с запоминающим уст- ройством на линиях задержки).
УНИВЕРСАЛЬНЫЕ ЭЛЕКТРОННЫЕ ЦИФРОВЫЕ МАШИНЫ 29 ряда каждое; количество ламп — около 3000. Предусмотрена возможность работы с 17-разрядными числами, и в этом слу¬ чае время сложения (вычитания) составляет около 34 мксек. При работе с 34-разрядными числами это время возрастает до 70 мксек, а умножение производится за 8,5 мсек. Ввод данных в ЭДСАК производится с помощью стан¬ дартной телетайпной перфоленты с пятью дорожками отвер¬ стий. Чтение ленты производится фотоэлектрическим спо¬ собом. Вывод данных — либо на перфоленту, либо сразу на печатающий аппарат. К специфическим преимуществам ЭДСАК относится тщательно выполненная библиотека под¬ программ, с помощью которой могут решаться сложные задачи путем соединения методов решения, ранее использо¬ ванных при более простых расчетах. Отметим, что ЭДСАК — первая машина с большим запоминающим устройством, предназначенным как для чисел, так и для команд. Проектирование второй быстродействующей электрон¬ ной цифровой машины, использующей линии задержки, было начато в 1945 г. в Национальной физической лабора¬ тории в Лондоне под руководством Уомерсли, Тьюринга и Колбрука. Машина АКЕ*) была закончена в 1950 г. и имеет запоминающее устройство на 512 слов по 32 двоичных разряда каждое. Сложение и вычитание требуют 32 мксек, а умножение — около 1 мсек. Ввод и вывод производятся с помощью перфокарт и соответствующего стандартного оборудования. АКЕ хорошо спроектирована, она содержит менее 1000 ламп и очень компактна, благодаря чему на ней Удобнее работать, чем на других современных (до 1952 г ) машинах. Следует отметить, что эта машина является в действи¬ тельности только первоначальной моделью для гораздо" чпг/?8Й машины с тем же названием. Как ЭДВАК, так и ДСАК работают, получая команды из последовательно занумерованных ячеек запоминающего устройства. В АКЕ (первоначальная модель) применен так называемый двух¬ адресный код, при котором каждая команда содержит не олько номер ячейки, хранящей число, над которым должно роизводиться действие, но и номер ячейки, в которой Automatic Calculating Engine (автоматическая вычис-
30 ПОЯВЛЕНИЕ ЭЛЕКТРОННОЙ ТЕХНИКИ хранится следующая команда. Этот метод позволяет приме¬ нить оптимальное программирование (см. гл. 16), с тем чтобы уменьшить время ожидания, присущее запоминающим уст¬ ройствам на линиях задержки. С запоминающими устройствами на основе использова¬ ния акустических линий задержки было построено или строятся еще несколько машин. Среди них СЕАК*) (в На¬ циональном бюро стандартов, Вашингтон), в которой ши¬ роко применены полупроводниковые элементы взамен электронных ламп. Кроме того, в ней предусмотрена воз¬ можность включения более новых по сравнению с линиями задержки запоминающих устройств, когда эти последние будут разработаны. Характеристики СЕАК в общем такие же как и у машины АКЕ. Для решения задач машина впервые была использована в 1951 г. Другой такой же ма¬ шиной но работающей в десятичной системе счисления, является машина УНИВАК**)- Эта машина сконструиро¬ вана для Бюро переписи Соединенных Штатов Эккертом и Мочли, которые строили и машину ЭНИАК- Машина обладает, вероятно, наиболее удобным из ныне (1952 г.) существующих устройством ввода и вывода данных, вы¬ полненным в основном на магнитной ленте. Интересно за¬ метить что машина была использована для предсказания исхода’ президентских выборов 1952 г. на основе анализа частичных данных, что она и выполнила вполне точно. Дру¬ гие машины подобного типа находятся в постройке, но дан¬ ные о них отсутствуют; имеющиеся ссылки на них даны в библиографии. Вслед за созданием машин,' в которых числа записыва¬ лись в виде последовательности импульсов в линиях за¬ держки, наступил период поисков новых видов запоминаю¬ щих устройств и разработки оптимальной логической струк¬ туры самой машины. С этой последней точки зрения Беркс, Голдстайн и фон Нёйман в Принстоне исследовали необхо¬ димые элементы и наилучшую форму кода машины. В ряде сообщений, начатых в 1946 г. и ставших теперь классиче¬ скими, ими были заложены основы проектирования наи- *) SEAC Standarts Eastern Automatic Computer (восточная автоматическая вычислительная машина Бюро стандартов). **) UNIVAC Universal Automatic Computer (универсальная ав¬ томатическая вычислительная машина).
УННВ7 РСАЛЫ1Ы7 ЭЛЕКТРОННЫЕ ЦИФРОВЫЕ МАШИНЫ 31 лучших доступных на сегодняшний день вычислительных машин. Принстонская группа спроектировала двоичную машину параллельного действия с использованием так на¬ зываемого селектрона в качестве весьма быстродействую¬ щего элемента запоминающего устройства и магнитной проволоки для устройств ввода и вывода. Затем селектрон был заменен более простой, хотя и менее быстродействую¬ щей системой, а проволока — перфолентой (которая долж¬ на быть заменена перфокартным оборудованием). Эта ма¬ шина работает с марта 1952 г. Каждое слово в ней состоит из 40 двоичных разрядов. В качестве внутреннего запоми¬ нающего устройства с объемом в 1024 слова использована модифицированная электронно-лучевая трубка Вильямса. Сложение и вычитание производятся приблизительно за 10 мксек, а для умножения требуется 300 мксек. Вероятно, эта машина ( с учетом большой длины слова) является самой быстродействующей на сегодняшний день (1956 г.). Имеющееся устройство ввода — вывода с использованием перфоленты является узким местом машины, так как для заполнения всего запоминающего устройства или вывода всех данных из него требуется около 20 минут. Мы вкратце упомянули о селектроне и запоминающих устройствах на электронно-лучевых трубках. В них ис¬ пользуется свойство вторичной электронной эмиссии, на¬ блюдаемое при бомбардировке поверхности диэлектрика электронным лучом. Более подробно мы познакомимся с ними в гл. 12. Здесь достаточно будет сказать, что вы¬ борка чисел из этих запоминающих устройств не требует затраты времени на ожидание, присущей линиям задержки, что делает возможным, по крайней мере в принципе, кон¬ струирование более быстродействующей памяти. ледует упомянуть о двух запоминающих устройствах на электронно-лучевых трубках. Первое — в Лаборатории рвомеханизмов Массачусетского технологического инсти- где ®ыла создана весьма быстродействующая машина , х^ь>> под руководством Дж. Форрестера. В этой ма- ттогт еисп°льзуется электронно-лучевая трубка, предложен¬ ного °РРестеРом’ с Двумя источниками электронов. Ем- по запоминак)Щего устройства машины более 1000 слов 6000 чных РазРяДов каждое. В машине использовано и, сложение или вычитание производится за
32 ПОЯВЛЕНИЕ ЭЛЕКТРОННОЙ ТЕХНИКИ 5 мксек\ для умножения требуется 40 мксек. Обычно для ввода и вывода данных используются перфолента и теле¬ тайп. Кроме того, предусмотрено простое устройство, по¬ зволяющее изображать результаты вычислений в графиче¬ ской форме на экране большой электронно-лучевой трубки. График можно либо визуально наблюдать, либо фотографи¬ ровать. Другой вид запоминающего устройства на электронно¬ лучевых трубках был впервые использован Вильямсом в Манчестерском университете (Англия). В этой системе (см. гл. 12) используются стандартные электронно-лучевые трубки, что, естественно, дает преимущества в цене и до¬ ступности машины. Машина Вильямса, построенная ком¬ панией Ферранти, работает значительно медленнее, чем «Вихрь». Запоминающее устройство рассчитано на 256 слов по 40 двоичных разрядов каждое. Сложение и вычитание производятся за 1,2 мсек, а умножение — за 3 мсек. В машине используется 3000 ламп, не считая электронно¬ лучевых трубок. Ввод данных производится с помощью перфоленты, читаемой фотоэлектрическим способом, а вы- вод на телетайп. В машине используется промежуточ¬ ное запоминающее устройство на магнитном барабане. Другие машины с запоминающим устройством на элек¬ тронно-лучевых трубках — это машины ТРЕ*) (установ¬ лена в Мальверне, Англия), СВАКД*) - в Институте чи¬ сленного анализа, Калифорния, США, и ОРДВА1\ — в университете штата Иллинойс, США. В третьем типе запоминающих устройств используется явление остаточного магнетизма ферромагнитных матери¬ алов. Первое устройство такого рода было использовано авторами этой книги для машины, построенной в 1947 г. В ней использовался покрытый никелем цилиндр, враща¬ емый с большой скоростью. Вокруг барабана установле¬ ны считывающие и записывающие головки, позволяющие записать двоичное число в виде элементарных магнити¬ ков на поверхности цилиндра. Первая полностью электрон¬ ная машина, использующая запоминающее устройство та¬ *) TRE Telecommunications Research Establishment (машина Исследовательского института дальней связи). Исследователь^ standart ^е£;4егп Automatic Computer (западная ав¬ томатическая вычислительная машина Бюро стандартов).
УНИВЕРСАЛЬНЫЕ ЭЛЕКТРОННЫЕ ЦИФРОВЫЕ МАШИНЫ 33 кого типа— СЕК*), была построена в Электронной вычисли¬ тельной лаборатории Биркбекского колледжа Лондонского университета. Благодаря тщательно продуманной логиче¬ ской структуре эта машина использует всего лишь 230 ламп и имеет запоминающее устройство на 256 слов по 21 дво¬ ичному разряду каждое. Сложение и вычитание производит¬ ся за 1,6 мсек. Ввиду экспериментального характера маши¬ ны умножение в ней не было предусмотрено. Машина имеет двухадресный код, что позволяет использовать оптимальные методы программирования и уменьшает время ожидания, присущее подобным запоминающим устройствам. В дальней¬ шем по образцу машины СЕК было построено несколько машин. На сегодняшний день их изготовлено шесть: АПЕ(ИКС) К**) — для Биркбекского колледжа; АПЕ(Н)К — для Палаты математических машин, Осло, Норвегия; АПЕ(Х)К — для Британской компании табули¬ рующих машин; АПЕ(Р)К — Для Британской исследовательской ас¬ социации; УКК—-для Университетского колледжа, Лондон; МАК***) построенная Варфской технической лабораторией. Две первые машины имеют запоминающие устрой- n™ ™in24 слова во 32 Двоичных разряда и используют а я кпп ламп- Сложение и вычитание производятся мксек, а умножение занимает до 20 мсек. Ввод и вывод данных осуществляется при помощи телетайпного оборудования (машины АПЕ(Р)К и АПЕ(Н)К) и nepcbo- “ЙГГЫ " АПЕ(Х)К). Жуйс В Общем, того же типа, что и машины АПЕК, но она содер- жит запоминающее устройство на магнитном барабане на лительная машина)*? ^ EleclronicComPuter (простая электронная вычис- ронная вычислитмьмяГмашта1*вП*С^три*!.г (Универсальная элект- ращенное наименование мСин™»УКВЫ В СК°бках> вклю'1ен™е в сок- Например, АПЕ(ИКСЖ — All РпгпЗЫВр1°Т ,назначение данной машины, версальная электронная шчнспиг^?6 Electronic Х‘гаУ Computer (уни- н°го анализа). ‘ игельная машина для ренггеноструктур- ческая Cakulator (магнитная автомат». о Э. J3yT и к. Бут
34 ПОЯВЛЕНИЕ ЭЛЕКТРОННОЙ ТЕХНИКИ 8192 слова. Машина МАК повторяет общую схему, но бла¬ годаря применению 200 германиевых диодов число ламп было уменьшено примерно до 220. Британская компания табулирующих машин сейчас производит две серии машин того же типа; они известны под названием ГЕК-2М и ГЕК-4. Было построено еще несколько других машин с запоми¬ нающим устройством на магнитном барабане. Среди них упомянем машины Марк-3 и Марк-4 Гарвардской вычисли¬ тельной лаборатории, машину ИРА-1101 Инженерной ис¬ следовательской ассоциации, КАЛДИК в Калифорнийском университете и циклическую вычислительную машину в Нью-Йоркском университете. Разумеется, список машин, перечисленных выше, да¬ леко не полон, так как сведения о некоторых не опублико¬ ваны, а о других засекречены. Проекты новых машин появ¬ ляются почти ежедневно, и, вероятно, их количество будет увеличиваться с каждым днем, по мере развития техники. Почти все опубликованные на сегодняшний день сведения приведены в библиографии, к которой отсылается читатель за всеми интересующими его подробностями. Нужно, однако, упомянуть в заключение о, быть может, самом честолюбивом из осуществлявшихся до сих пор проекте — машине НОРК*). НОРК сконструирована ком¬ панией ИБМ и имеет электростатическое запоминающее устройство на 2000 слов (по 13 десятичных разрядов и раз¬ ряду знака в каждом). Время выполнения одной арифмети¬ ческой операции равно 15 мксек для сложения и вычитания и 31 мксек для умножения. Код — трехадресный. Машина снабжена тщательно разработанными устройствами ввода и вывода, включающими 8 магнитных лент и оборудование для печатания 300 знаков в секунду. Стоимость машины составляет 2,5 миллиона долларов. После проделанного нами обзора прошлого и настоя¬ щего машин попытаемся заглянуть в их будущее. Сейчас в технике производства машин имеются две главные проб¬ лемы — это проблемы эффективного и дешевого запоминаю¬ щего устройства и исключения электронных ламп из вычи¬ слительных машин. *) NORC — Naval Ordnance Research Computer (вычислитель¬ ная машина Управления исследований Военно-морского командования).
УНИВЕРСАЛЬНЫЕ ЭЛЕКТРОННЫЕ ЦИФРОВЫЕ МАШИНЫ 35 Существующие запоминающие устройства на акустиче¬ ских линиях задержки, электронно-лучевых трубках и магнитном барабане обладают существенным недостатком: их выходная мощность составляет едва миллионную часть входной мощности. Это означает, что для эффективного чтения чисел необходимо применение мощных усилителей, что в свою очередь сильно усложняет эту операцию. Из этих трех запоминающих устройств только устройство с магнитным барабаном является действительно «запоми¬ нающим» в том смысле, что оно выдает данные без затраты дополнительной мощности. Кроме того, в принципе здесь можно достичь любой желаемой вероятности правильности полученного с барабана числа путем многократного счи¬ тывания слов и их сравнения между собой. Этот метод не¬ возможно применить к акустическим линиям задержки или электронно-лучевым трубкам, но нужно отметить, что та¬ кое решение вопроса не может быть признано удовлетво¬ рительным ввиду того, что оно резко понижает скорость работы машины. В настоящее время в Биркбекском колледже в Лондоне и в Лаборатории сервомеханизмов Массачусетского техно¬ логического института ведется экспериментальная работа по применению в качестве ячеек запоминающего устрой¬ ства малых ферритовых тороидов, размещенных в точках пересечения сетки одинарных проводников. Этот способ, впервые предложенный одним из авторов на лекции в Кем¬ бридже в 1947 г. под названием «железно-стержневая па¬ мять», выглядит весьма заманчиво. При нем легко дости¬ жимо время выборки порядка нескольких микросекунд, и, хотя для хранения импульсов в нем используются макро¬ скопические элементы, запоминающее устройство получает¬ ся весьма компактным и сравнительно дешевым. Отношение мощности выхода к мощности входа может быть поднято До 0,1; таким образом, это устройство превосходит все из¬ вестные до сих пор в этом отношении. В Лаборатории сервомеханизмов, а также в Телефон¬ ной лаборатории Белла производятся многообещающие исследования ферроэлектрических материалов типа тита- ната бария. Для запоминающего устройства можно будет использовать тонкие пластинки керамикоподобного веще¬ ства с нанесенными на его поверхность печатным способом 2*
36 СХЕМА УНИВЕРСАЛЬНОГО ВЫЧИСЛИТЕЛЬНОГО УСТРОЙСТВА проводниками. Предполагается, что мощность выхода может стать того же порядка, что и мощность входа. Почти все без исключения исследователи стремятся к исключению ламп из машин. Лампы потребляют большую мощность накала, рассеивая ее в виде тепла. Лампы не¬ прочны и обладают малым сроком службы. Работа по за¬ мене ламп полупроводниковыми приборами в настоящее время успешно продвигается вперед. Уже сейчас нашли себе широкое применение германие¬ вые кристаллические диоды. Очень скоро транзисторные усилители достигнут надежности, при которой они смогут конкурировать с трехэлектродными лампами. Совершенно независимо от этого прогресса уже сейчас вполне возможно заменить вентили на лампах магнитными устройствами с тем же быстродействием и практически неограниченным сроком службы. ГЛАВА 4 ОБЩАЯ СХЕМА КОНСТРУКЦИИ УНИВЕРСАЛЬНОГО ВЫЧИСЛИТЕЛЬНОГО УСТРОЙСТВА Для того чтобы вычислительная машина была универ¬ сальной, необходимо, чтобы она содержала некоторый узел, способный выполнять по крайней мере простейшую ариф¬ метическую операцию — вычитание. Автоматическое вы¬ полнение более сложных операций, таких, как умножение, не является необходимым, но для того, чтобы машина была достаточно быстрой и объем ее запоминающих элементов не был слишком велик, желательно обеспечить возможность выполнения хотя бы некоторых дополнительных арифме¬ тических действий. Такое арифметическое устройство (АУ) универсальной вычислительной машины можно сравнить с обычной на¬ стольной счетной машиной любого типа, и будет полезно рассмотреть некоторые статистические данные, связанные с использованием этих машин. Прежде всего, мы видим, что в автоматических настольных машинах сложение тре¬ бует времени порядка 0,5 сек, а умножение —около 10 сек. С другой стороны, анализ расхода времени на большое число достаточно сложных вычислительных процессов по¬ казывает, что в среднем на одну операцию машины около
ПАМЯТЬ 37 50 сек тратится на отыскание чисел и вычислительных формул на листах бумаги и на записывание промежуточных результатов в другие листы. Отсюда следует, что если даже сложения будут редки сравнительно с умножениями, машина не может работать больше одной шестой затрачиваемого на вычисление вре¬ мени. На самом же деле эта доля бывает, как правило, еще меньше. Из рассмотренного ясно, что очень мало или просто ничего не будет выиграно одним увеличением скорости ра¬ боты арифметического узла, если только оно не будет до¬ полнено ускорением обслуживания этого узла и записи результатов его работы. Если учесть, что сравнительно несложная электронная аппаратура делает возможным вы¬ полнение сложения в 5—10 мксек и умножения в 100— 1000 мксек," то станет очевидной необходимость в электрон¬ ных устройствах, заменяющих карандаш с бумагой и осу¬ ществляющих выбор последовательности вычислений. Эти устройства называются обычно памятью и устройством уп¬ равления (УУ), и ближайшие главы будут посвящены рас¬ смотрению их свойств. Память Как было указано выше, память (или запоминающее устройство ЗУ) должна быть быстродействующей заме¬ ной карандаша и бумаги, используемых вычислителем. Ясно, что она должна обладать по крайней мере двумя свойствами: 1 у 1- Числа могут быть введены в нее («запись»), числа ("itchh™3 П° Требованию выдавать введенные в нее . tip тог!?’ поскольку многие вычислительные про- тельно u-JJ* Ь сведены к итеративным, весьма жела- памяти „ УЛ0’ записанное в любую данную ячейку TL 6ЫТЬ стеРто и заменено новым. запоминаюшиуСТВе ос„уществленных на сегодняшний день <<чтениеГипТ«чяУСТРШСТВ Между получением команды или меньшее впрмТчН 86 выполнением проходит большее борки данных Hi тт ' задержка называется временем- вы- Щих устпоТс™ В Т™ И ДЛЯ осн°вных видов запоминаю- устройств колеблется от 10 мксек до 10 мсек.
38 СХЕМА УНИВЕРСАЛЬНОГО ВЫЧИСЛИТЕЛЬНОГО УСТРОЙСТВА Если в самой структуре машины не закреплена некото¬ рая специальная последовательность вычислений, что про¬ тиворечит высказанному выше принципу универсальности, то ясно, что должно быть предусмотрено какое-нибудь за¬ поминающее устройство для хранения инструкций, или «команд». Конечно, можно предусмотреть для этого отдель¬ ное запоминающее устройство, но мы сейчас покажем, что такой метод нелогичен и ведет к неэкономному использова¬ нию элементов машины. Действительно, большинство вычи¬ слительных процессов принадлежит к одному из двух боль¬ ших классов. В первом большое число операций произво¬ дится над сравнительно малым количеством величин и число ответов вычислений также невелико, а во втором немногих инструкций достаточно для оперирования большим запа¬ сом чисел. Примерами задач указанных классов могут .быть соответственно задача по отысканию решений некото¬ рых типов обыкновенных дифференциальных уравнений и вычисление сумм квадратов и произведений результа¬ тов наблюдений. Следовательно, универсальная машина должна была бы иметь два запоминающих устройства большой емкости, одно из которых обычно использовалось бы лишь частично. Отсюда естественно возникает вопрос: не может ли один и тот же узел быть использован в обеих целях? Легко видеть, что на этот вопрос может быть дан положительный ответ. Одно решение этого вопроса заклю¬ чается в присоединении к группе цифр, выражающих команду, некоторой специальной цифры, отличающей команды от собственно чисел. Этот способ, однако, ведет к расточительному использованию элементов запоминаю¬ щего устройства и может быть заменен другим, более удов¬ летворительным. Обычно команды, требующиеся для про¬ ведения данного вычислительного процесса, следуют одна за другой и только редко (относительно) возникает необхо¬ димость перескочить через группы команд или повторить уже пройденные. Следовательно, если команды помещены в ячейках памяти в последовательном порядке, то устрой¬ ство управления может выбирать их одну за другой про¬ стым пересчетом ячеек, если только известна ячейка, в кото¬ рую помещена первая команда. Аналогично устройство управления может переходить к командам, расположен¬ ным в других местах памяти, если в конце каждой последо¬
ПАМЯТЬ 39 вательности команд содержится команда, указывающая ячейку, в которой находится начало следующей последо¬ вательности. Таким образом, достаточно, чтобы машина при включении обращалась к первой ячейке памяти, но предварительно мы должны поместить в эту ячейку на¬ чальную команду. Дальнейшая работа машины осущест¬ вляется одним из двух способов. В первом случае устройство управления снабжено счетчиком. При поступлении сигнала о том, что команда выполнена, показание счетчика увели¬ чивается на единицу и дает номер ячейки, в которой хра¬ нится следующая команда. Если же управление должно совершить «скачок» к другой последовательности команд, то содержимое счетчика целиком изменяется для записи номера новой ячейки. Другой способ заключается в том, что каждая команда содержит номер той ячейки памяти, из которой должна быть взята следующая команда. Последний метод весьма гибок и позволяет использовать различные полезные приемы, но связан с излишней растратой весьма ценного объема памяти для записи этих дополнительных номеров ячеек. Все запоминающие устройства могут быть разделены на два класса — последовательного и параллельного дейст¬ вия. В первом — цифры записанного числа поступают одна за другой, обычно (хотя это и не обязательно) начиная с младшего разряда, а в последнем — все цифры числа поступают одновременно. Все остальное устройство машины и особенно арифмети¬ ческого узла в очень большой степени зависит от того, к ка- rf ДВУХ класс°в принадлежит запоминающее устрой- апример, если все цифры числа поступают одновре- n™D'TO при выполнении сложения целесообразно будет опе- бупрт ними со всеми одновременно. Однако такой метод вом ппгттрт,ЦИОНаЛеН В Мй1™нах с запоминающим устройст- импульсы ичп^ЛЬН0Г0 действия- поскольку в этом случае сены на кяклр°бРажающие цифры, должны быть перене- ного действия" УДЬ 3апоминающее устройство параллель¬ ной операции \„п°ЛЪКл П°СЛе окончания этой дополнитель- Участвуют спаз\ игр ж вьш°лнено сложение, в котором сумма образуется ДИФРЫ- Ясно вместе с тем, что если числа из заппмм Щ ра 33 циФР°й по мёре поступления из запоминающего устройства, все сложение будет
40 СХЕМА УНИВЕРСАЛЬНОГО ВЫЧИСЛИТЕЛЬНОГО УСТРОЙСТВА выполнено к моменту окончания чтения, чем исключается дополнительная операция, упомянутая выше. На практике иногда приходится уклоняться от этого логически выдержанного принципа конструирования ма¬ шин, поскольку для некоторых запоминающих устройств последовательного типа время выборки столь велико, что делает операцию умножения, выполненную последователь¬ ным методом, недопустимо долгой. Этот вопрос будет под¬ робно рассмотрен в гл. 6 при рассмотрении организации арифметического узла. Устройство управления Некоторое представление о структуре устройства уп¬ равления уже было получено из рассмотрения вопроса о хранении команд в памяти. Сейчас мы перечислим состав¬ ные элементы этого важного узла. Для получения из па¬ мяти кодированной команды и сохранения этой команды на все время выполнения операции (это выполнение обычно включает дополнительные обращения к памяти) устройство управления должно иметь по крайней мере одно запоми¬ нающее устройство, называемое блоком запоминания команд (БЗК). Выше было отмечено, что устройство управ¬ ления должно иметь счетчик (СУУ). Последний должен быть так связан с блоком запоминания команд, чтобы по получении команды вида: «Перейти к команде, помещен¬ ной в ячейке памяти (а)», содержимое счетчика могло быть изменено так, чтобы прочесть затем (а). На практике, как будет видно в гл. 5, может оказаться более удобным поль¬ зоваться не счетчиком, а полным сумматором. Последний будет считать обычным способом импульсы, поступающие в разряд его единиц, но содержимое его может быть изме¬ нено так, чтобы читалось (а), простым прибавлением (а — с), где (с) — число, стоящее на сумматоре до сложения. Для помещения команд в запоминающее устройство необходимо закодировать их в цифровой форме. При этом определенная часть цифр из числа изображающих всю команду служит для обозначения ячейки памяти, в которой находится соответствующее число, а остальные цифры содер¬ жат указание элементам машины о выполнении над этим числом требуемой операции. Эта последняя группа, перво¬
УСТРОЙСТВА ВВОДА И ВЫВОДА 41 начально состоящая из цифр, должна быть преобразована в электрические импульсы, вызывающие работу машины. Этот процесс называется дешифрированием, и устройство управления должно содер¬ жать так называемый деши¬ фратор (Д). Не считая пе¬ реключателей или венти¬ лей, вышеперечисленные элементы являются основ¬ ными составными частями устройства управления. На рис. 1 приведена общая схема вычислитель¬ ной машины. Надо отме¬ тить, что элементы, управ¬ ляющие выполнением опе¬ рации арифметическим уз¬ лом, не были включены в приведенное описание устройства управления. Предполагается, что они включены непосред¬ ственно в арифметический узел. Эти элементы называются местным управлением и будут описаны в гл. 6. Рис. 1. Блок-схема вычислитель¬ ной машины. Устройства ввода и вывода Необходимо, наконец, оператору иметь возможность вводить в машину числа, а машине — передавать опера¬ тору результаты ее вычислений. Эти функции выполняются двумя устройствами, называемыми соответственно вводом (Ьв) и выводом (В). ГЛАВА 5 УСТРОЙСТВО УПРАВЛЕНИЯ Н и я1 VH ::~У1це« главы видно, что устройство управле- по квяйнрй вычислительной машины должно иметь ния: бппк “ере Три составных части различного назначе- смотрим тепГ:П,НаНИЯ ко“анд> счетчик и дешифратор. Рас- Работой машины ^ Э™ оки осуществляют управление >сВДстваН°уппав™яДаТЬ достат°11но ‘полное описание у р вления, потому что его конструкция и
42 УСТРОЙСТВО УПРАВЛЕНИЯ работа в некоторой степени зависят от природы запоминаю¬ щего устройства и арифметического узла, но надо надеяться, что приводимые ниже общие черты устройства управления будут достаточными для понимания принципов его работы в каждом конкретном случае. Команды Прежде чем переходить к описанию самого устройства управления, необходимо познакомиться с типами выпол¬ няемых машиной команд и с тем, как эти команды изоб¬ ражаются в цифровом кодированном виде. В двоичном коде команда может выглядеть, например, так: 1001 1000 0101 1111 0110 1101 а Ь с d е f Группы а и Ъ вместе дают номер той ячейки памяти, из ко¬ торой необходимо извлечь (или в которую необходимо послать) число. Группа с и первая цифра группы d дают в закодированном виде операцию, которую необходимо выполнить. И, наконец, группы е и / могут в некоторых ти¬ пах машин изображать ячейку памяти, в которой хранится следующая команда (в таких машинах нет необходимости в счетчике). Итак, написанный выше код может, например, означать: прибавить в накопитель абсолютное значение (с и d, т. е. 0101 1(111)) числа, хранящегося в ячейке памяти 152 (а и Ь, т. е. 1001 1000 (^— 152)), и, возможно, перейти к выполнению команды, хранящейся в ячейке памяти 109 (е и /, т. е. 0110 1101-109). Обычно команды, которые должна уметь выполнять ма¬ шина, относятся к шести основным типам. 1. Команды, выполняющие операции непосредственно в арифметическом узле, без обращения к числу, записан¬ ному в памяти. Например, сдвиг чисел и передача их из од¬ них регистров в другие. 2 Арифметические операции с включением передачи данных из запоминающего устройства в арифметический узел (например, сложение, вычитание, умножение и де¬ ление). 3. Передача чисел из арифметического узла в память.
ДЕШИФРАТОР 43 4. Передачи управления новым программам, располо¬ женным вне основной последовательности команд, или не¬ которой команде, содержащейся в этой последовательности. Предполагается, что при передаче не используются данные, не содержащиеся в-самой команде. 5. Условные передачи управления следующего вида: если число (хранящееся в арифметическом узле) Л/^= О, то необходимо выполнять команды в порядке их следова¬ ния в ячейках запоминающего устройства; если же N <^0, то необходимо перейти к команде, расположенной в ячейке памяти (х), после чего выполнять команды, следующие после (х). 6. Команды, включающие работу устройств ввода или вывода. Ниже будет показано, что описываемое в данной главе устройство управления способно выполнять команды ука¬ занных видов. Дешифратор Так как операция, которая должна быть выполнена, первоначально изображается состоянием определенных эле¬ ментов (электронные триггеры или электромагнитные ре¬ ле), которые сами по себе представляют некоторое число, то необходимо каким-то образом преобразовывать эту ин¬ формацию в управляющее воздействие на различные эле¬ менты машины. Для большинства сконструированных на сегодняшний день машин общее число выполняемых машиной видов опе¬ раций меньше 32. Следовательно, если каждой операции придан кодовый номер, то потребуется не более 32 таких номеров, для которых в двоичной системе понадобится пять разрядов. Таким образом, необходимо иметь устройство, имеющее входов и 32 выхода и работающее так, что для каждой комбинации включений входов сигнал подается только на Дин выход. Более того, так как некоторые операции бу- ств ВКЛЮЧаТЬ В Се^я одинак°вые более элементарные дей- звоп*1’ Т<г;желательно иметь такое устройство, которое по- ми жр10 некоторым из 32 выходов управлять одними и те- свячт, «нтзрными действиями (но тдк, чтобы обратная системе была исключена).
44 УСТРОЙСТВО УПРАВЛЕНИЯ Эти функции выполняет дешифратор, который, как это видно из предыдущего, состоит из двух частей: 1) схемы со многими входами и одним выходом, 2) схемы с одним входом и многими выходами. 132 Выхода и Входа: Сигнал подается только по одной линии 'Выходы наМ Возлмокна любая — комбинация Рис. 2. Схема дешифратора. Дешифратор схематически изображен на рис. 2. Даль¬ нейшие детали этого устройства будут приведены в гл. 11, Счетчик устройства управления Об этом узле нужно сказать лишь очень немного. Он бывает двух видов, в зависимости от того, какова система выборки команд в данной машине. Либо это простой счет¬ чик, который можно очистить и поместить в него любую требуемую информацию одновременной подачей этой по¬ следней на все разряды счетчика, либо это полный сумма¬ тор параллельного типа, т. е. он может образовывать и сохранять сумму уже содержащегося в нем числа и любого другого, поданного на сумматор. В главе о программировании будет показано, что счет¬ чик последнего типа допускает значительные упрощения в использовании заранее составленных подпрограмм. Блок запоминания команд Это простой узел, имеющий столько разрядов, сколько в ячейке памяти машины. Он должен быть способен полу¬ чать слова стандартной длины из памяти и сохранять их требуемое время. Кроме того, должна быть предусмотрена возможность установления связи между ним и прочими узлами устройства управления (т. е. счетчиком и дешифра¬ тором).
ОБОЗНАЧЕНИЯ 45 Обозначения Чтобы иметь возможность схематически изображать ра¬ боту машины, удобно ввести краткие обозначения ее раз¬ личных составных элементов. Для описания устройства управления удобны следующие обозначения: СУУ — Счетчик устройства управления. Д — Дешифратор. БЗК — Блок запоминания команд. ЗУ — Запоминающее устройство. АУ — Арифметический узел. —Вентиль, на выходе которого имеется напряжение П Г*" только в том случае, если оно подано на все п входов Л_/ одновременно. - Вход в функциональный преобразователь, имеющий п каналов. Я77^-*“ Выход из функционального преобразователя, имеюще- го п каналов.
46 УСТРОЙСТВО управляй™ - п канальный вход (Вх), вызывающий работу функци¬ онального преобразователя только при поступлении пропускающего импульса на вход g. - Линия задержки. Обычно вводится, чтобы дать воз¬ можность закончить одну операцию до начала другой. ,(0 ал )ь 3 я — Двоичный элемент в нормальном (0, 1) состоянии. ■ Вспомогательный регистр, сохраняющий номер ячей¬ ки памяти, из которой должно быть прочитано число. Запоминающее устройство Прежде чем приступить к описанию выбранного нами для рассмотрения вида устройства управления, необхо¬ димо сказать несколько слов о самой памяти, потому что режим работы этого узла влияет на структуру устройства управления. Память может быть двух основных видов: параллельного и последовательного действия. В первом случае все разря¬ ды числа выдаются одновременно, в то время как во вто¬ ром они поступают один за другим, начиная е млад¬ шего, причем в обоих видах памяти имеется более или ме¬ нее длинная задержка, прежде чем начинается выдача числа. Для определенности мы предположим, что наше запоми¬ нающее устройство обладает следующими свойствами: 1) емкостью в 512 слов по 32 двоичных разряда каждое; 2) оно — последовательного действия; 3) выделяет импульсы чисел непрерывно; 4) одновременно с требуемым числом выдает 32 синхро¬ низирующих импульса, которые используются для «пропу¬ ска» выдаваемых импульсов числа в соответствующее вос¬ принимающее устройство;
СХЕМА ДЕЙСТВИЯ УСТРОЙСТВА УПРАВЛЕНИЯ 47 5) выдает импульс окончания операции после того, как были переданы все импульсы для данного числа. Операция записи осуществляется с помощью 32 пропу¬ скающих импульсов, выделяемых у нужной ячейки памяти. Эти импульсы сдвигают цифра за цифрой число, храняще¬ еся в арифметическом узле, вправо, вписывая в то же время значение крайнего справа разряда в запоминающее уст¬ ройство. Схема действия устройства управления На рис. 3 изображена схема устройства управления ма¬ шины АПЕ(ИКС)К. Рассмотрим, как это устройство управ¬ ляет машиной при выполнении ею всех отмеченных выше (стр. 42, 43) видов команд. Рис. 3. Схема одноадресного устройства управления. иоозначения п д \/ «чтения», з _ нм nVnT-J —импульс окончания операции, 2 — импульс (im nnZn•, “ синхронизирующие импульсы, 5 — вход (для поразрядной передачи чисел), 5 — выход. .iiHfMbLLaCCM0TpHM момент> в который цифры, изображаю- выхола ГНЯеМуЮ команДУ. появляются у цифрового Дится r И пРеДположим, что двоичный элемент нахо- мя вхопямы Ужденном состоянии (1,0), так что вентиль с дву- низируюг11и5:,0ТКРЫТ И пР°пУскает на ВЗК цепочку синхро- мпульсов. Эти импульсы постепенно сдвигают
48 УСТРОЙСТВО УПРАВЛЕНИЯ содержимое БЗК направо, и на каждом таком шаге БЗК воспринимает одну из цифр, поступающих из ЗУ. Когда в БЗК будут помещены все 32 цифры, запоминающее устройство выделит импульс окончания операции, который перебросит двоичный элемент в нормальное состояние (0, 1). Когда двоичный элемент будет переброшен в нулевое со¬ стояние, в шину а поступит импульс, который пропустит 9 цифр, изображающих номер ячейки памяти, из БЗК в ЗЯ. После некоторой задержки, дающей возможность дешифра¬ тору воспринять содержимое БЗК, тот же импульс будет приложен к тем 32 выходам Д, которые выдадут код опе¬ рации, а также к вентилю g3, который связан с безусловной передачей управления. Начиная с этого момента, режим ра¬ боты устройства управления может быть различен. Рас¬ смотрим его для каждого из видов операций, перечисленных на стр. 42, 43. 1,- Операции, не содержащие обраще¬ ния к ЗУ. Здесь импульс, приложенный к указанным 32 выходам Д, возбуждает одну из специальных шин в АУ. АУ выполняет операцию и выделяет импульс окончания операции. Этот импульс по шине b поступает на вход СУУ и увеличивает его показания на единицу. После некоторой задержки Д, позволяющей СУУ изменить свое состояние, этот импульс (шины с и d) пропускает в ЗЯ номер ячейки, записанный в СУУ. Тем же импульсом двоичный элемент переводится в возбужденное состояние (по шине с), и ЗУ получает (по линии с и после задержки Д, позволяющей двоичному элементу и вентилю gt отреагировать на этот импульс) приказание выдать команду, хранящуюся в ячей¬ ке, номер которой указан на ЗЯ. Побле того как запоминаю¬ щее устройство восприняло номер соответствующей ячей¬ ки, выделяются синхронизирующие импульсы, которые проходят через вентиль glt чтобы повторить только что опи¬ санный цикл. 2. Арифметические команды, вклю¬ чающие передачу чисел из ЗУ. Импульс, приложенный к указанным 32 выходам Д, действует, как и выше, и арифметический узел подготовляется к выполне¬ нию операции, после чего он выделяет импульс «чтения». По шине f этот импульс направляется в ЗУ, которое выде¬ ляет 32 синхронизирующих импульса у требуемой ячейки
СХЕМА ДЕЙСТВИЯ УСТРОЙСТВА УПРАВЛЕНИЯ 49 Эти импульсы проходят через вентиль gs (ибо сейчас двоич¬ ный элемент находится в невозбужденном состоянии (0, 1)) к арифметическому узлу, который воспринимает поступаю¬ щие из ЗУ цифры числа и выполняет над ними требуемую операцию. После этого ЗУ и АУ выделяют импульс окон¬ чания операции, который кладет начало такому же циклу, как и в 1. 3. Передачи из арифметического уз¬ ла в запоминающее устройство. Здесь, как и в случае 2, арифметический узел подготавливается к выполнению операции и затем по шине h выделяет им¬ пульс записи, который побуждает ЗУ выделить 32 синхро¬ низирующих импульса. Эти импульсы сдвигают число из АУ по шине к в ЗУ, которое помещает их в заданную ячей¬ ку. Когда этот цикл окончен, ЗУ выделяет импульс окон¬ чания операции, который перебрасывает двоичный элемент в возбужденное состояние и побуждает АУ выделить свой импульс окончания операции. После этого цикл продол¬ жается, как в 1 и 2. 4. Передачи управления. В этой операции импульс выделенный Д, через вентиль g.t проходит по ши¬ не / и пропускает номер новой ячейки, содержащийся в БЗК, в СУУ, который, следовательно, будет содержать новое число. После задержки Д, позволяющей СУУ вос¬ принять это новое число, по шине с проходит импульс, ко¬ торый кладет начало чтению новой команды так же, как выше. 5. Условные передачи управления, зависящие от знака определенного числа, хранящегося в АУ. Здесь дешифратор выделяет импульс, который поступает на АУ и побуждает его выделить импульс окончания операции, если число ^0; если же оно -<0, то АУ выделяет импульс в шину т. В пер¬ вом случае окончание цикла такое же, как при арифмети¬ ческих операциях одного из описанных видов (1, 2, 3). о втором случае окончание цикла совпадает со слу¬ чаем 4. г Команды ввода — вывода. Мы предпола- слрМ’ ЧТ° аппаРатУРа ввода и вывода помещается в АУ и, R Д°вательно, операция в этом случае будет та же, что в случаях 1, 2 или 3.
50 УСТРОЙСТВО УПРАВЛЕНИЯ Другие виды устройств управления Изменения, происходящие от замены одного вида запо¬ минающего устройства или арифметического узла другим, более или менее тривиальны. Если будет использовано запо¬ минающее устройство параллельного действия, то потре¬ буется только замена 32-х синхронизирующих импульсов Рис. 4. Схема двухадресного устройства управления. Обозначения в АУ н ЗУ см. в подписи к рис. 3. одним, который будет открывать одновременно все цифро¬ вые выходы из ЗУ в соответствующие воспринимающие устройства,- Это означает, что шины к, о и р станут содер¬ жащими 32 канала (или, вообще говоря, п каналов). Точно так же, если каждая команда содержит номер следующей, то потребуется только исключить СУУ и за¬ менить импульсы, выдаваемые по шинам bud, одним, кото¬ рый будет открывать БЗК прямо на ЗЯ- Отдельные выходы из БЗК потребуются для выдачи цифр, изображающих но¬ мер ячейки в операциях условного перехода. Эти выходы должны идти прямо на ЗЯ и будут открываться импульсом, поступающим по шине /. Это показано на рис. 4. Для многократного использования одной и той же про¬ граммы при различных значениях параметров удобно иметь
ДРУГИЕ ВИДЫ УСТРОЙСТВ УПРАВЛЕНИЯ 51 возможность автоматически преобразовывать соответ¬ ствующие команды программы. Пусть, например, вычис¬ ляются значения функции f(x) для множества значений ар¬ гумента х, хранящихся в последовательных ячейках памя¬ ти. Такая программа содержит по меньшей мере две коман¬ ды, которые должны преобразовываться для каждого но¬ вого значения аргумента: одна из них извлекает х из соот¬ ветствующей ячейки, а другая помещает в запоминающее устройство вычисленное значение функции. Конечно, такое преобразование может выполнить сама программа (см. стр. 207). Но часто бывает нужным изме¬ нить на одно и то же число адреса сразу нескольких команд. Тогда такое преобразование может быть выполнено авто¬ матически с помощью так называемого регистра индекса. Последний является просто вспомогательным регистром (или регистрами), содержимое которого может быть при¬ бавлено к коду команды, прежде чем она будет выполнена. Так, если команда имела вид Прибавить 152 и затем перейти к команде 109 и если содержимое регистра индекса равняется, например, 10, то результатом применения указанного выше метода будет команда Прибавить 162 и затем перейти к команде 109. При усложнении того же метода можно добиться преоб¬ разования одновременно обоих адресов и самой операции команды. Обычно содержимое регистров индекса прибав¬ ляется к командам, отмеченным каким-нибудь специальным способом, и существуют различные логические схемы для включения регистров индекса в устройство управления. В машинах последовательного типа удобно использовать регистры индекса, если первая цифра извлекаемой из ЗУ команды равна единице. Само прибавление осуществляется после извлечения команды. В равной мере мы можем прибавлять содержимое ре¬ гистров индекса после того, как команда помещена в блок запоминания команд. Этот способ применяется тогда, когда в машине имеется несколько регистров индекса, причем вы- Р нужного регистра производится в .зависимости от со- ояния не одного, а нескольких разрядов команды. При
52 АРИФМЕТИЧЕСКИЙ УЗЕЛ другом способе содержимое регистров индекса прибавляет¬ ся к текущей команде на основании информации, закоди¬ рованной в предыдущей команде; этот способ требует ми¬ нимальных переделок в схеме машины. Другим полезным устройством, особенно для машин с циклическим запоминающим устройством, является так называемый итератор, или ит-счетчик. Это обычный счет¬ чик (или группа таких счетчиков), содержимое которого проверяется с помощью специальной операции условной передачи управления. После каждой такой проверки к со¬ держимому счетчика автоматически прибавляется единица, и, когда это число становится равным некоторому опре¬ деленному числу, операция условной передачи управления изменяет направление вычислительного процесса обычным способом. При двоичной системе удобно делать ит-счетчики шестиразрядными; помещая в ит-счетчик предварительно какое-то число, можно использовать переполнение счет¬ чика для получения сигнала, изменяющего работу команды условной передачи управления. Выбор шестиразрядного счетчика произволен, но опыт работы на машине АПЕ(1ЩС)К показывает, что редко итерационные циклы повторяются более 64 раз. ГЛАВА 6 АРИФМЕТИЧЕСКИЙ УЗЕЛ Как показывает уже само название, арифметическим уз¬ лом вычислительной машины называется та ее часть, кото¬ рая производит обычные арифметические вычисления над запасенной в машине информацией. Все существующие вычислительные машины имеют схе¬ мы, выполняющие операции сложения и вычитания. Боль¬ шинство машин имеет также приспособления для выполне¬ ния умножения и меньшая часть —для деления. Такие специальные устройства, как, например, устройство для вычисления квадратного корня, осуществлены всего в одной или двух из существующих машин. Чтобы обеспечить возможность построения принципи¬ альных схем такого вида, как построенные в гл. 5 схемы устройства управления, мы рассмотрим логическую струк¬ туру различных арифметических устройств. Вид этих схем будет таков, что, используя основные элементы, которые
ОСНОВНЫЕ ЭЛЕМЕНТЫ 53 будут описаны в гл. 9—12, можно составить по ним дей¬ ствующие устройства. Мы будем изображать числа в двоичном коде и считать, что они лежат в интервале 1 >А'5э —1. Для изображения отрицательных чисел существуют два ссновных способа. В одном отрицательные величины изображаются совокуп¬ ностью знака и абсолютной величины, а в другом — как прямое дополнение по модулю 2 *). Первый способ, вероят¬ но, более удобен для непосредственного восприятия чисел человеком, но имеет существенный недостаток с машинной точки зрения. Этот недостаток связан с тем, что операции сложения и вычитания чисел, записанных в прямом коде, должна предшествовать операция сравнения знаков, выяс¬ няющая, какое действие в действительности должно быть выполнено. Так, (+) (Л)+ (-)(£) означает в действительности: (+)(Л)-(+)(£), и, хотя программист указал сложение, машина фактиче¬ ски должна выполнить вычитание. В машинах параллель¬ ного типа осуществить такое сравнение знаков весьма про¬ сто, но в машинах последовательного типа, особенно если для изображения знака используется, как обычно, самый старший разряд, такое сравнение сильно осложнено. В даль¬ нейшем мы будем изображать отрицательные величины в дополнительном коде. Основные элементы Прежде чем давать детальное описание основных частей арифметического узла, полезно будет в общих чертах по¬ знакомиться с тем, из чего он должен состоять. Во-первых, сумматор или вычитатель требуют наличия какого-нибудь регистра, в который будет помещена сумма. 1акой регистр может состоять из физически различных элементов (таких, как триггеры) для сохранения отдельных Цифр или из короткой линии задержки (на п импульсов), ^ Для представления чисел первым способом у нас принят термин рямои код», для второго — «дополнительный код»; в дальнейшем используется эта терминология. (Прим. ред.)
54 АРИФМЕТИЧЕСКИЙ УЗЕЛ в которую может быть помещено одно число. Такой ре¬ гистр совершенно необходим в машинах, в которых два числа не могут быть одновременно выбраны из запоминающего устройства, и весьма желателен вообще во всех вычисли¬ тельных машинах. Во-вторых, машина, выполняющая операцию умноже¬ ния, должна иметь отдельный регистр, в котором может храниться множитель. Произведение двух и-разрядных чисел есть число 2/г-разрядное. Поскольку (в большинстве устройств умножения) цифры множителя используются последовательно, содержимое регистра множителя можно постепенно сдвигать направо и освободившееся место за¬ нять под п младших разрядов произведения. Мы предполо¬ жим, что произведение образуется, начиная с младшего раз¬ ряда множителя. Ясно, что это наиболее выгодный способ, поскольку регистр, используемый под п младших разря¬ дов произведения, не требует приспособлений для произ¬ водства сложения и переносов из разряда в разряд. Таким образом, операция умножения требует наличия двух указанных регистров. В машинах, в которых время об¬ ращения к запоминающему устройству велико, весьма удоб¬ но иметь третий регистр для хранения множимого в про¬ цессе умножения. Если машина выполняет также и операцию деления, то наличие этого третьего регистра становится обязатель¬ ным, поскольку делимое на каждом шаге должно сравни¬ ваться с частичным остатком для выяснения характера сле¬ дующей операции. Итак, мы видим, что арифметический узел должен со¬ держать три регистра для хранений участвующих в опе¬ рациях чисел. Для умножения необходимо также, чтобы (посредством подачи импульса) числа, хранящиеся в ре¬ гистрах произведения и множителя, можно было сдвигать на один разряд вправо. Такое же приспособление может быть необходимым и в машинах с главным запоминающим устройством последовательного действия. В этом случае число поступает из памяти цифра за цифрой и для совмест¬ ного фиксирования всех его цифр можно использовать опи¬ санный регистр, допускающий сдвиг содержимого. В машинах с автоматическим выполнением деления от¬ меченные выше регистры должны иметь сдвиг не только
ПРАВЫЙ И ЛЕВЫЙ СДВИГ 55 вправо, но и влево, чтобы можно было уравнивать порядки делителя и частичных остатков. Прежде чем рассматривать отдельные арифметические операции, полезно будет подробнее изучить операцию сдвига. В гл. 11 мы познакомимся с конструкцией регистров, содержимое которых может быть сдвинуто в заданном на¬ правлении. Рассмотрим сначала регистр, содержимое кото¬ рого может быть сдвинуто вправо, что эквивалентно деле¬ нию двоичного числа, помещенного в регистр-, на два (при сдвиге на один разряд). Так как эти числа могут быть как положительными, так и отрицательными, то мы, очевидно, должны позаботиться о сохранении знака числа при таком делении. Если разряды регистра находятся в состоянии А1А2...Ап, то операция единичного сдвига вправо должна образовывать выражение А,ЛхАг...А Чтобы избежать потери разрядов, цифра Ап может быть сдвинута в регистр множителя (если таковой существует). Одновременно со¬ держимое этого регистра должно сдвигаться вправо, что ведет к потере его младших разрядов. Сдвиг влево является более сложной операцией. Можно, конечно, создать регистр триггерного типа, допускающий сдвиги как вправо, так и влево, но это ведет к неэкономному расходованию аппаратуры. Более того, в регистрах такого типа, как линии задержки, единичный сдвиг влево физически невозможен. Поэтому в п-разрядном регистре единичный сдвиг влево заменяется (п—1) сдвигами вправо при условии, что выход младшего разряда регистра замк¬ нут на вход старшего. Здесь мы снова должны позаботиться о сохранении знака сдвигаемого числа. Сдвиг влево экви¬ валентен умножению на 2. Для положительных чисел сдвиг влево будет сохранять знак до тех пор, пока число не выйдет за предел, допустимый в машине. Например, Правый и левый сдвиг 0,10 ^ ^— первый сдвиг, 1,00 (-N 1) — второй сдвиг.
56 АРИФМЕТИЧЕСКИЙ УЗЕЛ Согласно принятым на машине правилам арифметики, вто¬ рой сдвиг уже недопустим. Точно так же сдвиг 1.01 (—f). °.1°(-+т) 3 ] незаконен, поскольку число 2 (—^-) = —1— выходит за до¬ пустимый в машине предел. С другой стороны, допустимый сдвиг •.и (—4). 1,10 (— i-) удваивает число, сохраняя правильный знак. Сложение В литературе существует описание многих видов сумми¬ рующих устройств. Большей частью этот узел бывает выполнен из двух так называемых полусумматоров, как Вп- И„ - БГ- Ln-1 (а] 26 ■S„ Sn С„ Рис. 5. Сумматор и полусумматор. изображено схематически на рис. 5, а. Через с, и с2 обозначе¬ ны полусумматоры, через 2з—полный сумматор. На таб¬ лице 1 показана зависимость выходов 5, и С„ полусумма¬ тора з, от поданных на его входы Ап и Вп двоичных цифр.
СЛОЖЕНИЕ 57 Суммирование двух чисел требует в каждом разряде сложения трех цифр: а) цифры Вп данного разряда одного из слагаемых (скажем, имеющегося в регистре сумматора); б) цифры Ап данного разряда другого слагаемого (скажем, поступающего из памяти); в) цифры переноса С„_, (если таковой имеется), полу¬ ченной в результате сложения в предыдущем разряде. Легко видеть, что изображенная на рис. 5 схема*) та¬ кова, что по поступившим на ее входы двоичным цифрам Ап, Вп и С„_, она правильно образует дво¬ ичную сумму S„ и перенос Сп в следующий разряд. До сих пор мы рассматривали сложение цифр в одном разряде независимо от характера поступле¬ ния этих цифр на сумматор. Сейчас мы покажем, как изобра¬ женный на рис. 5 элемент может быть положен в основу различных видов суммирующих устройств. Рассмотрим сначала машины, в которых используются устройства типа линий задержки. В них цифры чисел А и В поступают в виде одновременных коротких импульсов, отделенных от других цифр тех же чисел определенными промежутками времени. Применение двух полусумматоров в машинах такого типа изображено на рис. 6. Мы предположим, что число В помещено в какое-нибудь устройство задержки на п импульсов (пД); цифры числа А поступают последовательно одна за другой из внешнего запоминающего устройства синхронно с цифрами числа В. Устройство задержки единичного импульса Д включено в схему, чтобы перенос С от сложения в р-м разряде подать на вход сумматора к моменту сложения цифр (р-\- 1)-го разряда. Вентили а и b используются для подачи на сум¬ матор цифр числа А и цифр переноса только одновременно с соответствующими синхронизирующими импульсами. то позволяет выбрать из внешнего запоминающего устрой- *)-На этом и последующих рисунках используются обозначения, вводимые в гл. 9 (рис. 27, стр. 102). (Прим. ред.) Таблица 1 Матрица полусумматора для Вп+Ап Ап Вя S, Сп 0 0 0 0 0 1 1 0 1 0 1 0 1 1 0 1
58 АРИФМЕТИЧЕСКИЙ УЗЕЛ ства некоторое определенное число и прибавить его к уже хранящемуся в (пЛ). При исследовании таких устройств часто упускают из вида, что для очистки устройства задержки на п цифр (акустического типа) необходимо затратить время, равное времени ожидания п цифр. Учтя необходимость такой за- Плавный импульс траты времени, очистку устройства задержки можно осу¬ ществить различными способами, как, например: 1) может быть включена отдельная операция «очистки»; 2) обычное чтение числа может быть дополнено «чтением и очисткой»; 3) очистка может быть окончена одновременно со сле¬ дующим сложением. Первый случай является весьма невыгодным, так как требует затраты времени ожидания полного слова. Во вто¬ ром случае программист должен включить соответствую¬ щую команду перед операцией, требующей очистки линии задержки, что открывает дополнительные возможности ошибок. Следовательно, третий случай оказывается наибо¬ лее удовлетворительным. С конструктивной точки зрения эти три способа немногим отличаются друг от друга, по¬ скольку все они могут быть осуществлены включением в схе¬ му еще только одного вентиля с. При этом синхронизирую¬ щие импульсы поступают на вентиль с во все моменты вре¬ мени, исключая момент очистки в случае 1), момент считы¬ вания и очистки — в случае 2) и момент прибавления в очи¬ щенную линию — в случае 3).
СЛОЖЕНИЕ 59 Рассмотрим теперь второй тип сумматоров последова¬ тельного действия, в которых для хранения числа В ис¬ пользуются допускающие сдвиг регистры. В этом случае цифры числа В изображаются статически, но при поступле¬ нии синхронизирующих импульсов могут сдвигаться на один разряд вправо. Суммирующее устройство, исполь¬ зующее регистр указанного вида, изображено на рис. 7. Число В помещено в разряды В,, Вг,... , Вп регистра; цифры из запоминающего устройства и из Вп непрерывно поступают 1 101шпд. Имптш сдвига О честна регистра Очистна ЯП Рис. 7. Последовательный сумматор (на регистре со сдвигом). на 2з, но все устройство начинает действовать только тогда, когда на вентили сдвига g\,..., gn_xи на вспомогатель¬ ные вентили g0 и gc поступают пропускающие импульсы. При поступлении этих импульсов сумма цифр одного раз¬ ряда слагаемых и цифры переноса (хранящейся в ЯП — ячейке переноса) через вентиль g0 помещается в разряд В,; содержимое разряда Вн теряется и заменяется на содержи¬ мое разряда В„_, и т. д., а цифра переноса в следующий раз¬ ряд, если таковой имеется, помещается в ЯП. В случае необ¬ ходимости очистка регистра со сдвигом может быть выпол¬ нена как одна моментальная операция, предшествующая сложению, поскольку в регистрах такого типа возможно обращение во все разряды одновременно. Точно так же пе¬ ред сложением должна быть очищена ячейка переноса ЯП, если только не требуется выполнить сложение чисел уд¬ военной длины. Наконец, на рис. 8 изображено использование устройств Для выполнения параллельного сложения. Здесь Л,,..., Л„
60 АРИФМЕТИЧЕСКИЙ УЗЕЛ и В,,..., Вп— соответственно разряды регистров Л и В. Суммирование осуществляется в устройствах 2з ,..., 2а • эти устройства соединены между собой так, чтобы обеспе¬ чить передачу единицы переноса. После того, как на сум¬ маторах 2з образуется сумма чисел Л и В, на все вентили Si’ ■•■> Sn подается одновременный импульс, вызывающий выдачу суммы на регистр В. Надо заметить, что этот импульс Ап Рис. 8. Параллельный сумматор (с регистром). должен быть достаточно коротким сравнительно с временем, за которое устройства 2з реагируют на изменившееся со¬ стояние их входов, для того чтобы изменение состояния регистра В не успело воздействовать на входы вентилей 8i>-> ёп- В машинах, имеющих регистр, возможна также схема сложения, совершенно отличная от разобранной выше. Дей¬ ствительно, сложение может быть выполнено следующим образом (см. рис. 9 и таблицу 2). Обозначим через Ат, Вт и Ст состояния разрядов Ап, В„ и Сп регистров А, В и С через т тактов. Если Ат = Ст, то Вт надо передать в В, и сдвинуть со¬ держимое регистра В' на один разряд вправо. Состояние Ст при этом изменять не надо. - Если Ат Ст, то в В, надо передать цифру, обратную Вт, и содержимое регистра В сдвинуть на один разряд вправо. При этом надо Вт передать в Ст.
СЛОЖЕНИЕ 61 Таблица 2 О 1 [ = Л 1 ) 0 'i 0 { , . 1 \ 7= Ап 1; в„ Сумма 1 0 i 1 Г 5= О ) В„ Перенос 0 ^ 0 1-е 1 f — 1) о о \ = п» 1) Как видим, для производства самого сложения по этой схеме знание состояния Вп не нужно. Вся схема содержит только стандартные устройства совпадения и несовпадения и три вентиля git gd и gc. Рис. 9. Последовательный сумматор. Указанные правила сложения основаны на том, что если Ат= ст, то цифра суммы (А т+ Ст) = Он перенос (А т+ С J — — Ст\ если же АтфСт, то цифра суммы (Лт+С,и)= 1 и перенос равен Вт. Выход из запоминающего устройства подан на регистр А. Одновременно с поступлением импульсов складываемого числа подаются импульсы, сдвигающие содержимое реги- етра Вг, Вп вправо, и в В, передается либо Впчерез вен- тиль gdt либо цифра, обратная Вп, чере^ вентиль gt. В этом случае Вп передается в С через вентиль gc, так как на входы
62 АРИФМЕТИЧЕСКИЙ УЗЕЛ вентилей g,- и gc подан сигнал. Устройство несовпадения идентично с устройством совпадения и отличается от по¬ следнего обратным включением на С. Совершенно отличным видом суммирующего элемента является диодная переключательная схема. Фактически она представляет объединение схемы с одним входом и мно¬ гими выходами и схемы с многими входами и одним выхо¬ дом. Работа этой системы станет ясной после рассмотрения в гл. 11 функциональных схем и здесь нами рассматривать¬ ся не будет. В различное время были предложены конструкции спе¬ циальных электронных ламп, способных выполнять сложе¬ ние в двоичной системе счисления. Лучшие из таких ламп были предложены Кацем, разработавшим серию специаль¬ ных ламп, которые могут быть с успехом использованы в регистрах параллельного действия. По отклонению элект¬ ронного луча в электростатическом поле трех электродов в одной лампе вырабатываются комбинации, необходимые для образования цифр суммы и переноса. Эти лампы по¬ требляют ток силой всего в несколько миллиамперов при на¬ пряжении в 50 в. К сожалению, они в настоящее время недо¬ ступны. Вычитание Вычитатель может быть образован двумя различными методами. Во-первых, можно сконструировать «полувычи- татель», обладающий свойствами, указанными в таблице 3. Используя это устройство, можно Таблица 3 сделать вычитатель, схема которого Матрица полувычита- аналогична схеме сумматора, изобра- теля для В„ — А г п женного на рис. 5. Принципиальная схема полувычитателядана на рис. 10. Здесь по аналогии со схемой рис. 5,6 вентиль с используется для полу¬ чения переноса. Для этой цели можно было бы так же использовать выде¬ ленный выход вентиля а. Второй способ конструирования вычитателя использует замену вычи¬ тания Л из В прибавлением к В дополнения А. Это легко достигается предварительной установкой ячейки Л Вп Сп 0 0 0 0 1 0 I 1 0 1 1 0 1 1 0 0
УМНОЖЕНИЕ 63 переноса в состояние единицы и прибавлением к В пораз¬ рядного дополнения числа А. Поскольку поразрядное до^- полнение двоичного числа получается заменой в нем нулей на единицы и наоборот, оно легко может быть получено из поступающей последователь- £ ности цифр. (ЛалаВ) -S (Ли не в)-С Рис. 10. Схема полувычитателя. Умножение Обычно схемы, выполняю¬ щие в машинах умножение, рассчитаны на тот случай, когда и множимое, и множи¬ тель (а следовательно, и произведение) положительны. Голдстайн и фон Нёйман подробно разработали исправ¬ ление произведения в случае, если перемножаемые числа отрицательны. Возникающие при этом усложнения по существу связаны с тем, что отрицательные числа хра¬ нятся в дополнительном коде. Если бы числа хранились в прямом коде, то умножение и деление отрицательных чи¬ сел было бы так же просто, как положительных. Но это, как мы видели выше, привело бы к усложнению наибо¬ лее часто встречающихся операций сложения и вычи¬ тания. Предположим поэтому, что отрицательные числа хра¬ нятся в дополнительном коде. Возможны четыре различных случая. !) (+я)-(+^) = + йЬ; * 2) (-|-я).(—b) = — ab, но [-(- а • (2 — Ь)] = 2а— ab; 3) (— а) ■ (-f- b) = — ab, но [(2 — a)-b] = 2b— ab\ 4) (—a).(—b) = -\-ab, но [(2 — а)• (2 — Ь)] = = 4 — 2а — 2b -f- ab. Таким образом, после простого умножения кодов чисел случай 1) дает правильный ответ, случай 2) потребует вычи¬ тания 2о, случай 3) — вычитания 2Ь и 4) — вычитания ' 2п — 2b). Хотя Голдстайн и фон Нёйман показали, как
64 АРИФМЕТИЧЕСКИЙ УЗЕЛ можно выполнить некоторые из этих исправлений в процес¬ се самого умножения, все же их метод не может быть с успе¬ хом использован в машинах последовательного действия, где знаки чисел не могут быть непрерывно проверяемы в те¬ чение всего процесса умножения. Другая схема, не требующая знания знаков перемножае¬ мых чисел, была предложена авторами. Для двоичных чи¬ сел этот процесс дает правильный результат независимо от знака чисел. Предлагаемая схема состоит в следующем. Пусть Ьп означает п-й разряд дополнительного кода В числа Ь. 1. Если bn= Ьп+1, то сдвинуть уже полученное частичное произведение на один разряд вправо. 2. Если bn=l,bn+1=0, то вычесть код множимого А из частичного произведения, сдвинув последнее на один разряд вправо. 3. Если Ьп= 0, bn+l= 1, то прибавить А к частич¬ ному произведению, сдвинув последнее на один разряд вправо. Повторяем так до тех пор. пока п не станет равным 1. Заметьте, что начальное Ьп+1=0. Приведем доказательсто правильности предложенного метода. Пусть а изображает содержимое накопителя после р-го шага, а т — множимое. Тогда рекуррентная формула ®'п-р 2 ®п-р+1 ~I- {Ьп_р+1 bn_p)l7l, р = 1, п 1 выражает описанный выше процесс, .ибо, как легко видеть, множитель —bf) в соответствии с указанным правилом принимает значения 0, если Ьк = Ьк+1; 1, если bk — 0, bk+l=\; — 1» если Ьк= 1, bk+l = 0. Поскольку при первом шаге выполнено условией„+1=0 и накопитель очищен, то й„ = 0 + (йп+1 — Ь„)т = — Ьпт. (6.2)
УМНОЖЕНИЕ 65 Умножая р-й член системы равенств (6.1) на 2Г ': ап- 1 ~2ап ~Ь (Рп bn-l) //г> 2с«-2 = «„-,+ 2 те, 22яи_з = 2«„_г + 22 (b„_2 — Ь„_3) те, 2»-Ч = 2в-Ч + 2и-1(6,-Ь1)ог, и складывая, получим: 2»-fll =1 + [- Г-% + 2"-6, + ... + &„_1 + ЬJ те. Исключая отсюда ап с помощью равенства (6.2) и деля на 2n_2, получим: «.= [-&1 + 4Л + -- + г^т&11]т- (6.3) П Если b положительно, то Р,=0 и ^ 2/f=t(> =fc; Р,=2 П если же b отрицательно, то (>,= 1, V -^=т6 =(1_|&|) и> Р—2 следовательно, для отрицательного b П [— 2у^ьр] =[— Ч-О—\ь\)]=ь, р—2 л а поэтому равенство (6.3) независимо от знака b может быть записано в виде ai — Ьт. (6.4) огпяни^1 °®Разом’ поскольку мы не накладывали никакого нор чня НИЯ НЭ знак т’ предложенный метод дает правиль- жителенЧеНИе пРоизведения независимо от знаков сомно- ного РняНЦИПИаЛЬНаЯ схема Устройства умножения, основан- Здесь 4PnKa3tHH0M выше методе, приведена на рис. 11. Регистра Яч И Ьп+1 обозначены »й и (п + 1)-й разряды сом котпп1,-аПуСК схемы умножения пройзводится импуль- и подается на триггер те и перебрасывает его 3 Э. Бут н к. к. Бут
66 АРИФМЕТИЧЕСКИЙ УЗЕЛ в возбужденное состояние. Триггер выделяет импульс, ко¬ торый переводит Ьп+1 в состояние нуля. Кроме того, тот же импульс подается на вентили р, г, q и s, сравнивающие состояния Ьп и Ьп+1 .Если Ьп =&„+,, то либо вентиль q, либо вентиль s выделяет импульс, который увеличит показа¬ ние счетчика по модулю п на единицу. Если мы еще не достигли последнего п-го такта, то этот счетчик не выде¬ лит импульса и, таким образом, не закроет вентиля t. Тогда тот же импульс, который был подан на счетчик, через задержку d пройдет через вентиль t и вызовет сдвиг нако¬ пителя С на один разряд вправо. Одновременно с этим Сп передается в 6,, все содержимое регистра В сдвигается на один разряд вправо, Ьп заменяется на Ьп_л и Ьп+1—на Ьп. Если в относительном состоянии Ьп и Ьп+1 произошло из¬ менение, то один из вентилей р, q, г us выделит импульс. Если Ьп=0, йи+1= 1, вентиль г выдает импульс на сумматор; если же bn= 1, Ьп+1=0, то вентиль р выделит импульс на вычитатель. Эти узлы вызовут сложение или вычитание Л и С и затем выделят импульс окончания их операции. Этот импульс поступает на счетчик и так же, как в преды¬ дущем случае, либо проходит через него и запирает вен¬ тиль t, либо через задержку d и вентиль t вызывает сдвиг С и В. На последнем п-м такте счетчик по модулю п выделит импульс, который запрет вентиль t, прекратив таким обра¬ зом сдвиги. Тот же импульс перебросит триггер т в невоз¬ бужденное состояние, что соответствует окончанию операции.
ДЕЛЕНИЕ 67 Деление Процесс деления в машинах с двоичной системой счис¬ ления имеет много общего с процессом умножения. Для выполнения деления существуют два различных способа: 1) обычный «метод проб и ошибок»; 2) так называемый «метод, не требующий восстановления». В первом способе делитель на каждом шаге сравнивается с частичным остатком (мы полагаем, что оба числа положи¬ тельны). Если делитель меньше, чем частичный остаток, то выполняется вычитание и в частичное частное справа ставится единица; если же делитель больше, чем частичный остаток, то вычитание не выполняется, а в частичное част¬ ное справа ставится нуль. Частичный остаток затем удваи¬ вается, и процесс повторяется до получения частного с лю¬ бой заданной степенью точности. Этот метод имеет два су¬ щественных недостатка. Во-первых, таким методом можно делить только положительные числа. Во-вторых, единст¬ венный простой способ сравнения величин частичного остат¬ ка и делителя заключается в выполнении операции вычи¬ тания. Если делитель больше частичного остатка, то это вычитание оказывается лишним и требует (во всяком слу¬ чае в большинстве машин) последующего прибавления де¬ лителя к частичному остатку. Метод, не требующий восстановления, сравнительно бо¬ лее гибок, поскольку может быть применен к числам лю¬ бого знака и не требует выполнения лишних операций. Если делитель (т) помещен в память, делимое (а)—в на¬ копитель и частное (b) образуется в регистре, допускаю¬ щем сдвиг, то указанный метод состоит в следующем: О п е р а ц и и 1 — (п — 1). ^ Если т(1) = я(1), то прибавить 2_(П_1> к ф), сдвинуть ре¬ гистр и накопитель на один разряд влево, вычесть т из а. Если ш(1)=^в(1), то прибавить 0 к ф), сдвинуть регистр и накопитель на один разряд влево, прибавить тка. Операция (п). Прибавить 2°+2_("~1) к ф). Через а{р) и т (р) обозначены р-е разряды чисел а и т. Доказательство предложенного метода заключается в сле¬ дующем. Пусть гч— остаток после */г-го шага, a bk—/е-й Разряд числа Ь. Тогда вышеприведенные правила могут 3*
68 АРИФМЕТИЧЕСКИЙ УЗЕЛ (6.5) (6.6) Умножая равенство (6.5) на соответствующие степени двой¬ ки, получим: или, используя равенство (6.6), деля на 2" 1 и преобразуя, получим окончательно Отсюда следует, что предложенный метод образует пра¬ вильное значение частного ajm независимо от знаков чисел а и т. Исключение составляет разряд знака, для исправления которого к частному должна быть прибавлена единица. В конце деления к частному прибавляется 2_('!_1), ибо при неизвестном Ьп+1 влияние ошибки округления будет тогда наименьшим. Очень просто построить принципиальную схему устрой¬ ства деления, оперирующего по методу, не требующему восстановления. Пусть d1...dn— регистр делителя, а1...ап— регистр ча¬ стичного остатка и br..bn— регистр частного. Для про- 2п-V, = 2"-V0 + 2 "-2[1 — 2&J т, откуда, складывая, будем иметь п — 2 п — 1 п- 1 a =rn-1 +т т 2” - 1tn 1 ~Ь ^1~Ь "2 ^2 “Ь • ■ • ~Ь 2fi-2 bn_ (6.8) (поскольку ^2/’ = 2" 1—1). р—о
ДЕЛЕНИЕ 69 стоты мы предполагаем, что регистры чисел а и b допускают сдвиг влево. Разряды знака dt и а, сравниваются с помощью венти¬ лей /, т, п, р. При включении устройства деления триггер q возбуждается и выделяет импульс, который, пройдя через разделительный диод В, поступает на вентили I, т, п и р. Если d и а имеют одинаковые знаки, то вентили I или п выделяют импульс, который вызывает вычитание d из а Q геоаа.Селениеокт- ! I чет' 1 Улрпвляюций импульс деления Рис. 12. Схема двоичного устройства деления. и засылку единицы в разряд Ъп регистра частного. Подобно этому, если d и а имеют разные знаки, один из вентилей т или р выделяет импульс, который вызывает сложение и устанавливает Вп в состояние нуля. Тем временем тот же прошедший через В импульс через задержку Д2 поступает на регистры а и Ь и сдвигает их содержимое на один раз¬ ряд влево. При этом мы предполагаем, что начало операции сложения (или вычитания) происходит с задержкой, доста- конченДЛЯ Т0Г°’ что^ы СДВИГ к тому времени был уже за- имп^°СЛе вьшолнения сложения или вычитания выделяется счетч'ПЬС окончания операции. Этот импульс поступает на того ИК "г" модулю 11 и после задержки Д, (необходимой для чика н ЭТ°Т ИЫПУЛЬС успел увеличить показания счет- а еДиницу) поступает на вентиль и. Если операция
70 арифметический узел деления еще не закончена, этот импульс проходит через вентиль и и после задержки Д2 вызывает сдвиг а и Ь на один разряд влево. Тем самым Ьп сдвигается в Ьп_1, и частичное частное, находящееся в а, умножается на 2. Тот же импульс, прошедший через вентиль и, поступает на вентили I, т, п, р, и весь цикл повторяется. Когда требуемое число (п) операций сложения (вычита¬ ния) выполнено, счетчик п выдает импульс, 'который за¬ прет вентиль и, восстановит триггер q и перебросит разряд bj в противоположное состояние, переведя в то же время разряд Ьп в состояние единицы. После этого триггер q вы¬ дает на устройство управления импульс окончания всей операции деления. Десятичная и другие арифметики До сих пор мы предполагали, что числа изображены в двоичной системе. Это имеет место почти во всех машинах, существующих на сегодняшний день, и обусловлено исклю¬ чительной простотой устройств, работающих в этой системе _ПЛЛЛЛШ1Ш1_ _плплпппп 13 параллель¬ ных кпнола п 1 2 3 Ь 5 6 7 Ь 3 —^ИшерЗпм/ Времени Рис. 13. счисления. Принципиально нет никакой трудности в кон¬ струировании машин, работающих в любой другой системе счисления, и сейчас мы дадим описание сумматора и устрой¬ ства умножения таких машин. Один способ изображения чисел, имеющих основанием п и содержащих р разрядов, заключается в выделении под каждый разряд (п — 1) единиц времени. Так, в десятичной системе число 981 может быть представлено, как на рис. 13. Здесь набор импульсов в- каждом из каналов изображает определенную цифру, что соответствует параллельному принципу работы. Изображение того же числа последова¬
ДЕСЯТИЧНАЯ II ДРУГИЕ АРИФМЕТИКИ 71 тельным методом будет иметь вид, показанный на рис. 14, и будет требовать в три раза больше времени, чем в пре¬ дыдущем случае. Можно также использовать 30 каналов и только на три из них (соответствующих 9, 8 и 1) подавать импульсы в заданный момент времени. Совершенно другой способ изображения чисел заклю¬ чается в кодировании цифр каждого десятичного разряда плллшитлллляплшъд) \ 12 3м/ J 6 7 S Э I Z 3 b S 6 / 6 9 I г J ь S 6 7 д S Один канал Интервалы Времена Рис. 14. в символах, например, двоичной системы счисления (так называемый двоично-десятичный код). Здесь возможны три различных способа, которые мы проиллюстрируем на примере изображения того же числа 981. В первом случае, используя 12 каналов, мы получаем все цифры числа в один и тот же момент времени. Во вто¬ ром требуется только три канала, но затрачивается четыре интервала времени. Наконец, при последовательном методе изображения числа затрачивается двенадцать интервалов времени на одном канале. Теперь ясно, что и оборудование, и затрачиваемое на работу время меньше при двоичной системе кодирования цифр (в двоично-десятичном коде), чем при простой деся¬ тичной. Еще больший выигрыш получается при применении двоичной системы; так, для предыдущего примера в двоич¬ но-десятичном коде «Я 981 =(1001) (1000) (0001), в то время как в «чистом» двоичном коде 981 = 1111 0101 01, т. е. экономится еще два канала или два интервала времени. рннципиальиая схема суммирующих устройств в не- бпанЧН°И системе счисления непосредственно зависит от вы¬ чли т спосо^а изображения чисел. Двоичный элемент, дом PIlrreP’ не является более самостоятельным разря- Для изображения каждого разряда должен быть
72 АРИФМЕТИЧЕСКИЙ УЗЕЛ использован какой-нибудь счетчик по модулю п. Сущест¬ вует два основных типа таких устройств. В первом множество Ь0 двоичных элементов сое¬ динены между собой так, что образуют замкнутое кольцо, как это изображено на рис. 16. В каждый момент временив состоянии «да» может нахо- Л_ диться только один из этих Рис. 15. Рис. 16. Кольцевой счетчик. элементов. При получении импульса состояние «да» пере¬ дается на один элемент вперед по часовой стрелке. Следо¬ вательно, если в состоянии «да» находился l-й элемент и если всей системе было сообщено tn импульсов, то она бу¬ дет приведена в состояние (l+tn) [mod и]. Чтобы построить из таких колец многоразрядный сумматор, достаточно пре¬ дусмотреть выдачу импульса переноса в момент, когда со¬ стояние «да» передается от элемента к Ь0. Для того чтобы импульсы переноса не наложились на цифры, поступающие при суммировании на другие коль¬ ца, все единицы переноса обычно сохраняются, пока не бу¬ дет закончено сложение в каждом разряде, и только после этого происходит их последовательная передача, начиная с младшего разряда. Другим типом часто употребляемого счетчика по модулю п является несколько измененный двоичный счетчик. Как
ДЕСЯТИЧНАЯ II ДРУГИЕ АРИФМЕТИКИ 73 мы видели выше, для изображения каждой цифры в деся¬ тичной системе счисления требуется четыре двоичных раз¬ ряда, поэтому в сумматоре можно использовать для каж¬ дого десятичного разряда четырехразрядный двоичный счет¬ чик. Но в четырех разрядах двоичной системы счет идет по модулю 16. Поэтому, когда сумма имевшегося на счетчике числа и пос¬ тупивших на него импульсов превзой¬ дет 9, на счетчике будут изображать¬ ся невозможные в десятичной системе счисления цифры и не произойдет пере¬ нос в следующий разряд. Для устра¬ нения этого недостатка используется один из двух нижеследующих способов. Как показано на рис. 17, можно ввести вспомогательный вентиль а, на входы которого подаются единич¬ ные выходы первого и четвертого раз¬ рядов счетчика. Таким образом, при переходе счетчика от состояния 9 к СОСТОЯНИЮ 10 вентиль выделяет ИМ- Рис. 17. Двоичный счет- пульс, который пропускается через чик по модулю 10. задержку Ь, необходимую для того, чтобы второй разряд счетчика перешел в состояние 1. Этот импульс перебрасывает второй и четвертый разряды счетчика в состояние нуля и в то же время поступает на следующий счетчик в качестве импульса переноса. Другой способ заключается в том, что мы производим обычное сложение чисел, после чего в каждый разряд суммы прибавляется 6. Ясно, что при этом те счетчики, которые изоб¬ ражают числа, лежащие между 10 и 15, выделяют импульс переноса, а число, которое они изображали, заменяется суммой этого числа и шестерки'по mod 16, т. е. само при¬ водится по mod 10 (например, 14=10+4 и 14+6=16+4). ели некоторый разряд не выделит импульса переноса после nfP" авлсния к «ему 6, то он должен быть возвращен в свое кп,, оначальное состояние, что, конечно, является недостат¬ ком данного способа. обоих™ПОЛОЖИМ’ ЧТО дкоичные К°ДЫ каждого разряда регистпал^?ываемых чисел поступают одновременно на два Р ■ °гда возможно построить сумматор совершенно
74 АРИФМЕТИЧЕСКИЙ УЗЕЛ другого типа, схема которого для десятичных чисел изоб¬ ражена на рис. 18. Здесь обе группы четырех двоичных цифр, соответст¬ вующих одному и тому же разряду двух складываемых чи¬ сел, подаются на схему с многими входами и одним выхо¬ дом. Сначала эта схема выдает импульс на одну из девятнад¬ цати выходных цепей схемы, соответствующих всем воз- йг Второй разряд д, пер8ый разряд Четыре Выхода суммы вторых Четыре Выхода суммы пербых разрядов разрядов Рис. 18. Параллельный десятичный сумматор (на функциональных схемах). можным суммам от 0 до 18. Эти выходы подаются на схему с одним входом и четырьмя выходами, которая выдает по ним двоичное изображение суммы по mod 10 складываемых в данном разряде цифр. Кроме того, та же схема в случае надобности выдает импульс переноса, который поступает на схему с многими входами и одним выходом следующего разряда. Устройство это имеет то преимущество, что в нем сумма изображается статически, но, к сожалению, требует слишком большого количества аппаратуры. Сложность схем, требующихся для сложения чисел не в двоичной системе счисления, предсказывает еще боль¬ шую громоздкость схем умножения. Простейшая, по край¬ ней мере по замыслу, схема устройства умножения близ¬ ко следует методу умножения в обычных настольных ма¬ шинах системы Брунсвига. Принцип ее очень прост. Если А
ДЕСЯТИЧНАЯ II ДРУГИЕ АРИФМЕТИКИ 75 надо умножить на В и bn,..., Ь, — цифры числа В, то в пред¬ варительно очищенный накопитель число А прибавляется Ьг раз, затем оно сдвигается влево на один разряд и вновь прибавляется в накопитель Ь2 раз, и так до тех пор, пока все разряды числа В не будут обработаны. В накопителе образуется произведение А В. Можно так же, не сдвигая числа А, сдвигать вправо частичные произведения, находя¬ щиеся в накопителе. Вышеописанный метод годится, конечно, лишь в слу¬ чае, когда оба числа А и В изображены в одной и той же си¬ стеме счисления. Для умножения чисел не вдвоичной системе были раз¬ работаны и более сложные схемы, но, по крайней мере в элек¬ тронных машинах, они не нашли достаточно широкого при¬ менения. Два нижеследующих примера будут достаточны для иллюстрации некоторых принципов, используемых в этих схемах. Заметим прежде всего, что на последовательные сложе¬ ния и сдвиг множимого в разобранном выше устройстве умножения может потребоваться время, равное времени (р— 1 )п сложений, где п — число разрядов и р — основа¬ ние системы счисления. Это время можно сократить, включив в машину таблицу умножения. Схема такого устройства умножения изображена на рис. 19. Число А хранится в регистре Ап,..., А, (мы не останав¬ ливаемся на описании самих устройств Ап, поскольку чи¬ татель мог составить себе представление о них из предыду¬ щего описания сумматоров). Число В хранится в регистре Вг, допускающем последовательные сдвиги на один разряд в направлении от Вп к Вх. Каждая цифра числа А умножается на цифру В, с помощью системы функциональ¬ ных схем, каждая из которых (по крайней мере для деся¬ тичной системы исчисления) должна иметь два выхода. Эти выходы подаются на сумматоры S,, дающие значение В,Л. Далее, на сумматорах S2 образуется сумма этого произве¬ дения с содержимым регистра произведения Рл, ко¬ торая затем передается на этот регистр и сдвигается на один разряд вправо. Чтобы избежать потери знаков в процессе умножения чисел, крайняя справа цифра мастичного произ- ®ния сдвигается в Вп, причем одновременно с этим сдви- ся содержимое регистра В.
76 АРИФМЕТИЧЕСКИЙ УЗЕЛ Продолжая так дальше, мы увидим, чтоцифрыВ,, В В будут последовательно попадать в разряд В, и к концу n-го цикла будет образовано произведение Л у В, первые п цифр которого будут храниться в Р а последние п цифр — в ВВ,. Регистры десятиит/х разрядов Рис. 19. Схема десятичного устройства умножения. При соответствующих регистрах и таблицах умножения можно приспособить описанный выше метод для перемно¬ жения чисел, изображенных в различных системах счис¬ ления. Время умножения по этой схеме равняется времени 2п сложений, но легко видеть, что для ее реализации по¬ требуется очень большое количество аппаратуры. Чтобы закончить описание устройств умножения, мы расскажем о так называемом методе «удвоения и деления пополам». Этот метод использует равенства ( (2а) ) , если b — четное число, )»-1П ^ (2а) ( - - J -\-а, если & — нечетное число,
ДЕСЯТИЧНАЯ II ДРУГИЕ АРИФМЕТИКИ 7 Г из которых следует, что для получения произведения двух чисел достаточно выписывать предыдущие формулы до тех пор, пока Ь не сведется к единице, после чего нужно будет прибавить к произведению все полученные остатки. Ниже¬ следующий пример иллюстрирует указанный метод: 981 X 314 1 962 X 157 3 924 X 78+ 1962 7 848 X 39+ 1962 15696 X 19+ 1 962+ 7 848 (= 9 810) 31 392 X 9+ 9810+ 15696(=25506) 62 784 X 4 + 25 506 + 31 392 (= 56 898) 125 568 X 2 + 56898 251 136 X 1 +56898 308 034 Читатель, имеющий математические наклонности, мог заметить, что описанный метод заключается в приведении b к его двоичному выражению и к умножению а на получен¬ ное таким образом двоичное число. Вместе с тем этот ал¬ горитм образует^ произведение двух чисел независимо от того, в какой системе счисления они изображены, и поэтому он нашел применение в некоторых конторских машинах. Мы не будем рассматривать конструкцию устройства умножения, основанную на предложенном методе, остав¬ ляя это в качестве упражнения к описанным выше различ¬ ным схемам. Заметим только, что умножение и деление на 2 осуществляется особенно просто, если цифры числа зада¬ ны в двоично-кодированном виде. Принципы имеющихся на сегодняшний день делитель- и“ УстРойств. работающих не в двоичной системе, более чиг|а ЫС1|се близки к обычным школьным правилам деления 6v(n>J1 " ассмотРснный выше метод деления чисел, не тре- СТР,ГИ восстановления, применим только в двоичной си- ыеме счисления. котпппггКЛЮЧСНИе этой главы мы опишем метод, с помощью автомяти„МаШИНа’ РаботаюШая в двоичной системе, может секи вести вычисления в любой другой системе
78 АРИФМЕТИЧЕСКИЙ УЗЕЛ счисления. Этот метод называется программной системой счисления и близок к принципу, по которому работает дво¬ ичный счетчик по модулю 10, изображенный на рис. 17. Во-первых, мы выбираем наибольшее, из оснований систем счисления, с которыми мы можем встретиться, обычно это число 12. Затем выбирается то наименьшее число п, при котором 2" больше, чем выбранное максимальное осно¬ вание различных систем счисления. Теперь каждая из цифр той системы счисления, в которой мы в данный момент будем вести вычисления, изображается с помощью п двоичных разрядов. Так, например, каждая из цифр деся¬ тичной системы счисления будет изображаться с помощью четырех двоичных разрядов. Для получения суммы двух чисел, изображенных та¬ ким способом, каждый разряд их комбинируют с третьим числом, известным под названием дополнителч. Этот до- псшнитель выбирается так, что при суммировании двух цифр и дополнителя образуется перенос в следующую группу двоичных разрядов каждый раз, когда в изобра¬ жаемой системе счисления образуется перенос 'в старший разряд. Например, в десятичной системе требуемым допол¬ нителен будет число 6 и типичным примером будет следующий: 981= (1001) (1000) (0001) + 314= (0011) (0001) (0100) + дополнитель = (0110) (0110) (0110) (0001) (0010) (1111) (1011) Как видим, единица переноса образовалась только в разрядах, изображающих сотни, и, следовательно, да я получения правильного ответа мы должны вычесть дополнитель из разрядов, изображающих единицы и десятки: _ (0001) (0010) (1111) (1011) (-) (-) (0110) (0110) (0001)(0010)(1001)(0101) или 1295, что является правильным ответом.
ДЕСЯТИЧНАЯ И ДРУГИЕ АРИФМЕТИКИ 79 На практике сумма цифр складываемых чисел и допол- нителя образуется в два шага: «цифра плюс цифра» и «эта сумма плюс дополнитель». С помощью соответствующей аппаратуры как «цифра плюс цифра», так и «сумма плюс дополнитель» могут быть сохранены. Следовательно, про¬ стая схема выборки позволит получить правильный ответ, не производя вычитания из тех групп, в которых не была выработана единица переноса. При выполнении вычитания мы сталкиваемся с некото¬ рыми трудностями, которые удается преодолеть с помощью так называемой избыточной системы изображения чисел. В десятичной системе требуемый избыток равняется 3, так что цифра d изображается в виде (d-f 3). Если полученный двоичный код заменить обратным, то получится число, равное сумме дополнения цифры d до 9 и избытка 3. Теперь вычитание легко может быть выполнено по простой и сим¬ метричной схеме. Дополнитель равен 3, и процесс заклю¬ чается в следующем: 1. Если сумма двух цифр образует единицу переноса, то надо прибавить дополнитель. 2. Если единица переноса не образуется, то дополни¬ тель надо вычесть. Например, 981= (1100)(1011)(0100) -f314= (0110) (0100) (0111) (0001) (0010) (1111) (1011), дополнитель (+0011) (+0011) (—0011) (—0011), результат (0100) (0101) (1100) (1000)’ что равняется числу 1295, представленному с «избытком» три. Идея избыточной системы изображения чисел может ыть распространена на любую систему счисления с чет¬ ным основанием г, если в качестве «избытка» брать чис¬ ло^! 2 ’ К сожалению, умножение и деление в программной си- емесчислення становится весьма сложным, и поэтому этот I0C06 не нашел достаточного применения.
80 РАЗЛИЧНЫЕ ОПЕРАЦИИ ГЛАВА 7 РАЗЛИЧНЫЕ ОПЕРАЦИИ В дополнение к обычным арифметическим действиям, упомянутым в предыдущей главе, автоматическая вычисли¬ тельная машина должна иметь возможность выполнять дру¬ гие операции, не арифметического характера. Действительно, для работы машины необходимо, напри¬ мер, выполнение таких команд: «передать число из реги¬ стра в ячейку памяти (х)». Об этом говорилось в гл. 4. Ло¬ гическое строение таких операций неотъемлемо связано со структурой запоминающего устройства, а поэтому изло¬ жение этих вопросов будет отложено до гл. 12, где будут рассматриваться физические детали запоминающих уст¬ ройств. Менее очевидна необходимость в операциях следующего вида: «записать первые п цифр регистра в первые п разря¬ дов ячейки памяти (х), не меняя остальную часть числа». Частный случай использования такой команды заключается в следующем. Предположим, что стандартный вид команды таков: «выполнить операцию А над числом, хранящимся в ячейке памяти (х), и перейти за следующей командой к ячейке (у), и что цифры, обозначающие А, (х) и (у), распо¬ ложены следующим образом: С помощью рассматриваемой операции имеется возмож¬ ность изменить значение (х) в любой другой команде, ска¬ жем, на значение (х). Важным применением такой замены является использование табличных функций, хранящихся в памяти машины. Так, например, предположим, что в па¬ мяти хранится функция sin (х), причем х изменяется через 2~”,и что значения синуса находятся в ячейках памяти, имеющих номера х. Теперь предположим, что в процессе вычислений потребовалось найти siп ~ z, где z образова- Разряды l-i-n (/ra-f- A O')
РАЗЛИЧНЫЕ ОПЕРАЦИИ 81 лось в результате работы машины и заранее неизвестно лицу, подготавливавшему задачу вычислений на машине. Все, что следует сделать, — это ввести в соответствующую ячейку, скажем у, команду: «содержимое ячейки памяти(?) поместить в регистр и т. д.». Место, обозначенное (?), остает¬ ся пустым, и теперь, когда в регистре при работе машины образуется z, используется команда частичной подстанов¬ ки: «записать первые п цифр регистра в первые п разрядов ячейки у ит. д.». Это вводит в первоначальную команду зна¬ чение 2, так что теперь в действительности команда озна¬ чает: «sin у г поместить в регистр и т. д.». Вторая неарифметическая операция — это так назы¬ ваемое логическое умножение. Одна из форм ее записи та¬ кова: «сравнить число в регистре R с числом в ячейке па¬ мяти (х) и поместить в регистр А число, имеющее единицы в тех разрядах, где в А и х стоят единицы, и нули во всех остальных». Эта операция применяется в случаях, очень похожих на те, когда применяется операция частичной подстановки. Например, задача нахождения sin| z может быть решена путем посылки команды в регистр А после логического умно¬ жения ее на число; состоящее из п нулей и следующего за ними ряда единиц; этим удаляется предыдущее значение г; затем вносится значение z в регистр А и содержимое реги¬ стра А посылается в первоначальную ячейку памяти. Этот метод несколько сложнее первого (с использованием коман¬ ды частичной подстановки), однако операция логического умножения используется и в других случаях, когда частич¬ ная подстановка неприменима. Предположим, например, что регистр желательно подразделить на т независимых одрегистров для того, чтобы можно было оперировать с числами, точность которых гораздо ниже, чем точность чи¬ сел, обычно используемых машиной. Разумеется, если каж¬ дое малое число отделено от находящихся рядом чисел ва- тякиН0И позицие® или нулем, то однократное сложение двух „ х числовых групп не приведет к переносам, которые по- ияют на следующие группы. Однако это несправедливо Hen6v^T°PHbIX сложенин> и перед каждой такой операцией еооходимо очищать пустые промежутки. Эта очистка
82 РАЗЛИЧНЫЕ ОПЕРАЦИИ может быть легко произведена умножением на число, содер¬ жащее единицы повсюду, кроме разрядов, которые лежат против разделительных нулей основного регистра. На этих местах размещены нули. В результате частичные суммы должны остаться без изменения, а разделительные раз¬ ряды — очищены. Логическое умножение применяется также при сравнении данных цифр двух чисел, при исполь¬ зовании машины для механического перевода и т. д. Частичная подстановка Выполнение этой операции в большой степени зависит от того, каким способом (последовательным или параллель¬ ным) работает машина. Схема для машины последователь¬ ного действия приведена на рис. 20. Рис. 20. Последовательное устройство для частичной подстановки. В регистре R содержится число, которое должно быть записано. Триггер р возбужден. Извлекаемые под его дей¬ ствием из памяти синхронизирующие импульсы проходят через открытый вентиль q к счетчику по модулю пик вен¬ тилям сдвига регистра gt, ..., В счетчике установлено дополнение числа п, так что, когда в R останется п цифр, вентили г и s открываются для синхронизирующих импуль¬ сов, благодаря которым происходит запись соответствую¬ щих цифр регистра R. В конце записи триггер р импульсом окончания операции запоминания перебрасывается в перво¬ начальное состояние, после чего выдает остальной части
ЛОГИЧЕСКОЕ УМНОЖЕНИЕ 83 машины импульс окончания операции. В машине параллель¬ ного действия операция частичной подстановки проста и включает только запирание вентилей записи на каналах, по которым прохождение импульсов не желательно. Логическое умножение На рис. 21 приведена возможная схема логического умно¬ жения для машин последовательного действия. Под дей¬ ствием триггера с один из сомножителей извлекается из за¬ поминающего устройства. Число, на которое происходит Рис. 21. Устройство для логического умножения. умножение, находится в регистре R, начальные и концевые элементы которого соединены вентилем ga. Когда на выходе запоминающего устройства появляются синхронизирующие импульсы, они проходят через вентиль d и производят сдвиги вправо в регистрах R и А. Вентиль е передает в ре¬ гистр А единицы, если цифры, поступающие из запоминаю¬ щего устройства и последнего разряда регистра R, — еди¬ ницы. В любом другом случае вентиль выдает нуль. Таким о разом, по окончании операции число, на которое произ¬ водилось умножение, остается в регистре R (будучи вос¬ становлено вентилем g0), а результат умножения —в ре- истре А. Импул-ьс окончания выборки из запоминающего устроиствз переводит триггер с в нормальное состояние, пирая таким образом d и выдавая импульс окончания операции в остальную часть машины.
84 ВВОД II вывод ГЛАВА 8 ВВОД и вывод Операции ввода и вывода в автоматических вычисли¬ тельных машинах так тесно связаны с природой имеющегося в продаже оборудования, что в этой главе представляется необходимым рассмотреть существующую аппаратуру. Это удобно и потому, что предыдущие главы были преимуще¬ ственно логическими, а в последующих главах будут рас¬ сматриваться технические стороны различных устройств, так что содержание настоящей главы может рассматри¬ ваться как мост между этими двумя частями. Размеры книги не позволяют детально рассмотреть все варианты каждого типа оборудования ввода — вывода. Вме¬ сто этого будут рассмотрены типичные примеры каждой ка¬ тегории устройств. Устройства ввода могут быть клас¬ сифицированы следующим образом: 1) ручные переключатели; 2) клавиатура телетайпа; 3) перфоленты, читаемые электрическим, электронным или фотоэлектрическим способами; 4) перфокарты, читаемые аналогично; 5) пленка, читаемая фотоэлектрическим способом; 6) магнитная лента и медленно вращающиеся барабаны; 7) непосредственное чтение литер с написанной или на¬ печатанной страницы; 8) возможно оборудование, работающее от голоса. Для вывода можно использовать следующие устрой¬ ства: 1) лампы накаливания или неоновые; 2) телетайпы и телетайпные перфораторы; 3) многоканальные перфораторы для перфокарт; 4) магнитная лента или медленно вращающиеся бара¬ баны; 5) пленка, полученная фотографированием устройств 1-го типа; 6) пленка, полученная фотографированием экрана элек¬ тронно-лучевой трубки; 7) возможен и звуковой вывод. Возможность применения этих устройств в вычисли¬ тельных машинах будет исследоваться по порядку. Основ¬
УСТРОЙСТВО ВВОДА 85 ные требования, предъявляемые к вводу или выводу, за¬ ключаются в том, что устройства ввода должны снабжать машину данными со скоростью, достаточной для того, чтобы избежать времени ожидания, а устройства вывода должны быть достаточно быстродействующими, чтобы исключить чрезмерную потерю машинного времени во время операции вывода. Устройство ввода Хотя в наиболее распространенных машинах и имеется ручной ввод с помощью переключателей, нельзя считать, что они удовлетворяют поставленным требованиям. Для решения простой задачи типа «найти}/* », когда про¬ грамма решения уже содержится в памяти, они, конечно, не хуже любого другого устройства ввода, поскольку х сначала должен быть представлен устройству ввода либо в письменном виде, либо с помощью переключателей. Однако, если программа вычислений еще не введена в машину, такое устройство совершенно не подходит, так как время ввода программы в существующих и, вероятно, во всех будущих машинах составит на нем около 15 минут. Это не значит, что такой ввод не следует предусматривать вообще, поскольку для наладки машины он все же удобен. Клавиатура телетайпа страдает теми же недостатками, что и выключатели. Пожалуй, она работает несколько бы¬ стрее и обладает тем преимуществом, -что печатает мате¬ риал, но, если в машине нет запоминающего устройства такой величины, чтобы постоянно хранить все программы, используемые в машине, клавиатуру нельзя считать удо¬ влетворительным вводом. Телеграфное оборудование может производить непре¬ рывную запись любого материала не только в отпечатан¬ ном виде, но и в виде бумажной перфорированной ленты. Последнюю можно неоднократно использовать, пропуская через обычное электромеханическое устройство чтения пер¬ фоленты, присоединенное к вычислительной машине, и, хотя эти устройства работают лишь не намного быстрей, чем квалифицированный телеграфист на хорошем телетай¬ пе. однако их преимущество заключается в гораздо большей точности работы.
86 ввод и вывод Читая заранее подготовленную перфорированную ленту электронным или фотоэлектронным способом, можно уве¬ личить скорость чтения с 7 примерно до 250 десятичных цифр в секунду, причем ограничения вносятся не датчиком, а устройством остановки и пуска лентопротяжного меха¬ низма. Такое тридцатипятикратное увеличение скорости Рис. 22. ввода означает, что при достаточной скорости работы машины можно загрузить работой 35 операторов, подготавливающих независимые задачи на 35 перфораторах. При использовании перфокартного оборудования время подготовки задачи остается примерно таким же, однако при оптимальном использовании поверхности существующих карт можно вводить до 300 десятичных цифр в секунду без усложнений, связанных с электронным или фотоэлектриче¬ ским чтением. Перед тем, как перейти к рассмотрению более сложных устройств ввода, целесообразно остановиться на работе описанных ранее механизмов совместно с быстродействую¬
УСТРОЙСТВО ВВОДА 87 щими вычислительными машинами. Скорость работы самой машины на несколько порядков выше скорости работы устройств ввода. Это значит, что для эффективной и надеж¬ ной работы во время ввода данных машина должна под¬ чиняться устройству ввода, но не наоборот. На рис. 22 приведена схема работы вычислительной машины последо¬ вательного действия от телетайпа. При работе устройства ввода контакты I разомкнуты, и в машине внутренний ци¬ клический процесс происходить не может. Вводимые дан¬ ные сначала набираются с помощью клавиатуры, после чего механизм телетайпа одновременно и печатает данные, и посылает серии импульсов, соответствующие числам или символам в двоично-кодированной форме. Эти импульсы подаются на вход регистра R, а в соответствующие моменты времени через разделительные диоды В,, В2, Ва и вентили ёч ■■■’ ёт 07 телетайпа к регистру подводятся и импульсы сдвига. Ввиду того, что вводимые числа или слова должны быть переданы в память машины, одновременно должны быть указаны адреса. Они печатаются в начале слова. Регистр R присоединен к блоку запоминания команд машины С, так что по мере поступления цифр и импульсов сдвига адрес сдвигается в конечном счете из регистра R в предназначен¬ ные для него части регистра С. Существенным является то, что операция сдвига в регистрах R и С производится при¬ мерно за 1 мксек, тогда как на получение импульсов сдвига от телетайпа требуется время порядка 2 ■ 104 мксек. Таким образом, для правильной установки первого разряда ре¬ гистра от телетайпа времени вполне достаточно. Цифры адресов и слова можно проверить, непосредственно про¬ сматривая отпечатанную запись (телетайпы часто делают ошибки, но весьма редко вырабатывают неправильные электрические сигналы, печатая при этом правильное чис¬ ло). Затем замыкают S, в результате чего машина выпол¬ няет команду записи, по которой слово из регистра R от¬ сылается в ячейку памяти, обозначенную в С, когда к вен¬ тилям git ..., gn i подаются соответствующие синхронизи¬ рующие импульсы. Этот процесс записи повторяется до тех пор, пока не будет введена вся информация, после чего замыканием кон¬ такта / начинается автоматическая работа машины.
88 ВВОД II вывод Для того чтобы читающее устройство телетайпа приме¬ нить в качестве устройства ввода, используют обычные соединения, непечатающий механизм не присоединяется не¬ посредственно к читающему устройству. Последнее устроено так, что, пока вся перфолента не прочитана, щетка удер¬ живает I в разомкнутом состоянии, а в конце каждой груп¬ пы рядов отверстий перфоленты добавочные контакты за¬ мыкают S. При таком способе одновременно и лента Столбец подается в машину, и производится печать, которая может быть использована для проверки правильности программы в случае нечеткой работы машины. Использование устройства чтения перфокарт в качестве входного еще проще. С помощью одной перфокарты можно ввести 12 строк 80-разрядных двоичных чисел. Все 80 столб¬ цов цифр читаются одновременно, так что их можно непо¬ средственно присоединять к отдельным разрядам регистров R и С. Обычно продолжительность цифровых импульсов от каждой строки карты превышает 20 мсек, так что для за¬ писи требуемого слова в нужную ячейку, до того как подой¬ дет следующий ряд отверстий, времени вполне достаточно. Перфокарты в качестве двумерного двоичного запоми¬ нающего устройства широко не применяются. Обычно используется метод непосредственного представления де¬ сятичных цифр, показанный на рис. 23 и требующий не¬ сколько отличной процедуры ввода.
УСТРОЙСТВО ВВОДА 89 Десятичные числа, как это показано, представлены пер¬ форацией. В перфокартных машинах предусматриваются (схемные) способы для перевода этих десятичных цифр в двоичные эквиваленты, а последние могут быть уже поданы параллельно, как и раньше, в регистры R и С. Следует от¬ метить, что такой способ использования перфокарт менее эффективен и примерно в 10 раз медленнее, чем описанное ранее чтение двумерной записи двоичных цифр. До сих пор рассматривалось лишь одно из возможных применений устройств ввода, а именно: их работа по вводу в быстродействующие запоминающие устройства исходной информации. В этом отношении скорость ввода как с пер¬ фоленты, так и с перфокарт достаточно хорошо согласуется с внутренними временными характеристиками современ¬ ных машин. Другая сторона устройств ввода —это воз¬ можность их использования как вспомогательных запоми¬ нающих устройств практически бесконечной емкости. В этом случае от устройства ввода может потребоваться вы¬ полнение двух задач: во-первых, подача свежих программ и данных в быстродействующее запоминающее устройство после того, как уже отработаны старые, а во-вторых, хра¬ нение обширных таблиц стандартных функций. В первом случае для машины с внутренним запоминающим устрой¬ ством, например, на 512 девятизначных слов (32-разряд- ных двоичных) при заполнении с перфокарт потребуется время не более чем 30 секунд, т. е. примерно столько же, сколько и при заполнении с перфоленты, читаемой фото¬ электрическим способом. Такую скорость можно считать удовлетворительной для большинства целей. При вводе перфоленты с помощью обычного телетайпа время, потреб¬ ное для той же операции, возрастает до 12 минут, что, бе¬ зусловно, слишком много. Вопрос о другом применении перфокарт — для поиска значений в математической таблице — является более ясным. Предположим, что в машине имеется десять таблиц, каждая на 1000 девятизначных чисел. Если выбор носит случайный характер, а машина имеет ввод с помощью пер¬ фокарт, то для того, чтобы найти заданное табличное значе¬ ние, в среднем потребуется около трех минут. При приме¬ нении фотоэлектрического устройства для чтения перфолен- ы требуемое время примерно такое же. Оно примерно на
90 ВВОД II вывод два порядка больше допустимого даже для того случая, когда таблицы используются сравнительно редко. При использовании механического читающего устройства это же время превышает два часа. Из приведенного простого примера видны недостатки, присущие существующему оборудованию, используемому в качестве устройств ввода для быстродействующих машин, и последующее рассмотрение коснется улучшений, кото¬ рых можно ожидать от применения новой техники для ввода данных. Предположим, что используется микрофильм, чи¬ таемый фотоэлектрическим способом. Очевидно, что если учесть время проявления, то пленка, используемая только для ввода данных, вряд ли будет полезна. Однако положе¬ ние становится более благоприятным, если на пленке хра¬ нить стандартные программы и затабулированные функ¬ ции. По скромным подсчетам на 1 дюйме пленки шириной 35 мм может уместиться 50 девятизначных чисел. При сред¬ ней скорости протяжки пленки, равной 25 дюймам в се¬ кунду, время заполнения памяти объемом в 512 слов полу¬ чается равным 0,5 сек, что для существующих машин вполне приемлемо. Среднее время поиска табличных значений в этом случае составит около 4 сек, что опять-таки вполне удовлетворительно. Справедливости ради следует заме¬ тить, что ко времени написания книги такие устройства еще не выпускались. Экспериментальная установка для чтения киноленты схематически изображена на рис. 24. Кинопленка обычным кинопроекционным механизмом продвигается скачками кадр за кадром. Когда кадр становится в рамку, выдается импульс, запускающий генератор развертки, который пи¬ тает присоединенную к нему проекционную трубку с плаваю¬ щим пятном. Световое пятно фокусируется оптической системой на поверхности пленки. Проходя через пленку, свет модулируется данными, записанными на ней. Моду¬ ляция интенсивности детектируется фотоэлементом, пока¬ занным слева, и после соответствующего формирования подается в виде последовательной цифровой информации к регистрам вычислительной машины, Разумеется, приве¬ денное описание весьма неполно, но такие технические проблемы, как фиксирование кадра с точностью 0,005 дюй¬ ма и операция формирования на частотах 50—100 кгц,
УСТРОЙСТВО ВВОДА 91 хорошо согласуются с возможностями современного обо¬ рудования. Работа устройств ввода, которые мы теперь рассмотрим, основана на двоичной записи данных на магнитной ленте, проволоке или других поверхностях, покрытых ферромаг¬ нитным материалом. Ввиду того, что использование различ¬ ных видов запоминающих устройств будет рассматриваться в гл. 12, мы приведем здесь только данные о скорости и плотности записи, детальное же описание отложим на дальнейшее. Магнитная проволока, являющаяся основой звукозаписывающей аппаратуры, допускает плотность за¬ писи до 100 двоичных цифр на дюйм и скорость работы до 50 фут^к. Это означает, по умеренным подсчетам, что быстродействующая память в состоянии оперировать со скоростью 600 слов в секунду. И хотя эта скорость меньше скорости работы, достижимой при использовании фотогра¬ фического метода, однако соответствующее оборудование уже существует, а приведенные данные о скорости работы и плотности записи не являются проблемой с точки зрения механики или электроники. Для хранения данных может быть использована и маг¬ нитная лента. Ее преимущество заключается в возможности записи по 5 каналам при плотности записи 100 цифр на Дюйм и скорости 5 фут сек. При этом скорость заполнения получается примерно такой же, как и при использовании Рис. 24. Устройство для чтения киноленты.
92 ввод и вывод магнитной проволоки. Повышению скорости в 5 раз ничто не мешает, если не считать сильного износа читающей го¬ ловки. Проблема износа может быть разрешена примене¬ нием для головок ферритов — материалов, обладающих и другими преимуществами; это будет рассмотрено в гл. 12. При использовании тихоходных барабанов, покрытых магнитным слоем, время заполнения 512 слов составляет Бул/аза, предназначенная для чтения Отверстие доя пропуска света от одной литеры Светонепроница¬ емый яш ив г лампой и двигателем Фотоэлемент для улавлива¬ ния огпаЖенщго света Вращающийся диск с / прозрачными литерами Рис. 25. Простейшее устройство для чтения печатных знаков. менее 0,25 се/с; однако если уж применять магнитный бара¬ бан, то выгоднее его использовать в качестве части главного запоминающего устройства. Остальные запоминающие устройства более далеки от практической реализации, хотя и заслуживают внимания благодаря своим специфическим особенностям. Так, напри¬ мер, долгое время конструкторы вычислительных машин обсуждали возможность чтения механическим способом пе¬ чатных знаков с последующим преобразованием их в элек¬ трические импульсы. Существует большое количество раз¬ личных решений, из которых, возможно, наиболее простое и будет здесь обрисовано в общих чертах.
УСТРОЙСТВО ВВОДА 93 Бумага с буквами или цифрами, которые должны быть прочитаны, закреплена на пластине, как показано на рис. 25. Пластина может двигаться в плоскости с помощью следящих систем в двух взаимно перпендикулярных направ¬ лениях. Непрозрачный стеклянный диск, с нанесенными прозрачными буквами, вращается с большой скоростью вокруг оси, перпендикулярной своей плоскости. Помещен¬ ный за диском источник света освещает буквы; с помощью линзы освещенное изображение фокусируется на букве, которую надо прочесть. Предположим, что изображение и читаемая буква совмещены при помощи оптической системы; эта операция может выполняться автоматически следящими системами. В этом случае количество света, отраженного от листа, будет достигать предусмотренного минимума каждый раз, когда накладываемая буква полностью накры¬ вает читаемую. При достижении заранее заданного минимума освещенности, что определяется при помощи фото¬ элемента, расположенного тут же, по угловому положению вращающегося вала определяется и передается в машину код прочтенной буквы. В этой простой установке остается нерешенной масса вопросов, в частности обеспечение пере¬ мещения пластины с требуемой скоростью, необходимость соблюдения строгого соответствия размеров читаемых ли¬ тер и изображений, получаемых с диска. Однако эти чисто технические трудности можно преодолеть различными спо¬ собами. Другая трудность может возникнуть, когда при чтении, например, буквы О будет получаться минимум при освещении ее буквой С. Однако если буквы на диске раз¬ местить так, чтобы буква С всегда следовала за буквой О, а в процессе чтения исключать проверку минимума остаю¬ щейся части букв, то и этот вопрос разрешим. Скорость работы такой установки может быть порядка 50 литер в секунду, что превосходит скорость чтения перфорирован¬ ной ленты, но ниже скорости работы большинства других устройств ввода. Существенным преимуществом такой си¬ стемы является то, что для постановки на машину задачи могут быть подготовлены на обычной пишущей машинке, и, следовательно, это приведет к экономии в стоимости те¬ леграфной аппаратуры. Описанная выше простая установка может быть усо¬ вершенствована многими путями; например, вместо
94 ВВОД II вывод вращающегося диска и перемещения бумаги можно исполь¬ зовать технику движущегося пятна при соответствующем увеличении скорости работы. Преимущество этого способа заключается и в том, что литеры, пересекаемые движущимся световым пятном, можно будет непосредственно получить из набора стандартных литер данной программы, исключая необходимость иметь стандартизованные машинки и даже давая возможность распознавать рукописный шрифт. Еще одна возможность чтения текста основывается на том, что может быть названо «топологией» алфавитных и чи¬ словых знаков, а именно на учете количества пересечений расположенных соответствующим образом линий развертки с контурами литер. Таких устройств было предложено не¬ сколько, но ни одно из них не выглядит в принципе так просто, как устройство совпадения контуров литер, описан¬ ное выше. Как последнюю возможность устройства ввода рас¬ смотрим коротко устройство, работающее от голоса. Для ввода данных в машины с целью вычислений это, может быть, и не вполне серьезно, но, ввиду возможного исполь¬ зования вычислительных машин для машинного перевода с языка на язык, на этом методе следует вкратце остано¬ виться. Вероятно, простейшим, хотя и не самым эффективным, здесь будет следующий способ: используя устройство ам¬ плитудного ограничения записываемых слов, подготовить магнитную ленту с записанным на нее текстом, после чего произвести сравнение полученной записи с основной за¬ писью, в которой содержатся все слова словаря машины. Когда будет получено полное совпадение слов, можно про-* честь цифровой код словарного слова и ввести его в машину. После обработки этого слова, а также других слов, необ¬ ходимых для создания контекста, будут выданы соответ¬ ствующие сигналы, от которых сработает выходное устрой¬ ство, воспроизводящее слово-оригинал, но уже в переве¬ денном виде. Возможности такой схемы основаны на том, что, согласно наблюдениям, амплитудное ограничение за¬ писанных звуковых частот голоса не ухудшает разборчи¬ вости. В приведенных выше наивных рассуждениях содержится несколько слабых мест. В частности, предполагалось, что
УСТРОЙСТВО ВЫВОДА 95 данное слово произносится всегда одним и тем же тоном. Похоже, что это может быть преодолено путем замены не¬ посредственного сравнения огибающих (как описано выше) гармоническим анализом группы частот, содержащихся в вводимом слове, и сведением этого спектра к ряду по степе¬ ням основной гармоники. Это могло бы привести к простому, полностью числовому процессу выбора слова словарного перевода, а также к устранению других препятствий в пер¬ воначальной схеме, например, быстродействующего запо¬ минающего устройства и механизма сравнения словарных слов. Устройство вывода Первый тип выводных устройств, который мы рассмот¬ рим, — это визуальный вывод с помощью неоновых ламп или ламп накаливания. С технической точки зрения пред¬ почтительнее неоновые лампы: они имеют меньшие габа¬ риты, потребляют меньшую мощность и являются более быстродействующими. Однако ни одно световое устройство не может считаться удовлетворительным в качестве устрой¬ ства вывода данных быстродействующих вычислительных машин, так как все они нуждаются в операторе, который бы читал выводимые данные и переписывал их на бумагу. С другой стороны, если быстродействующая машина исполь¬ зуется- в качестве машины специального назначения, то такой вывод может оказаться достаточным. Например, если вычислительная машина применяется для определения про¬ стоты вводимых в машину чисел, выдавая наименьший множитель в случае составного числа, то более сложные вы¬ водные устройства не нужны. Однако такие задачи не яв¬ ляются главным объектом применения больших универсаль¬ ных вычислительных машин, и в общем случае скорость вывода на неоновых лампах на много порядков ниже тре¬ буемой. Теперь удобно рассмотреть устройство, стоящее в нашем списке под номером 5. Неоновые лампы вывода легко под¬ даются фотографированию на движущуюся пленку. В се¬ кунду можно снять до 50 чисел требуемой длины, если чувствительность пленки и яркость ламп достаточно высоки.
96 ВВОД II вывод Следующими устройствами вывода являются телетайп¬ ные печатающие аппараты и телетайпные перфораторы, ко¬ торые в современных машинах применяются наиболее ча¬ сто. Скорость работы этой аппаратуры составляет примерно 7 десятичных цифр в секунду. Это по меньшей мере на порядок ниже, чем необходимо для большинства вычисли¬ тельных машин. Так, например, при вычислении значений полинома 3-й степени для равноотстоящих значении аргу¬ мента обычная тихоходная машина выдает решения со скоростью 50 чисел в секунду. Рассмотрим возможности использования другого теле¬ графного оборудования в качестве устройств вывода быстро¬ действующих машин. Обычная телеграфная аппаратура рассчитана на последовательный прием информации, со¬ стоящей из групп по пяти сигналов продолжительностью в 20 мсек. Раньше многие аппараты были переоборудованы для параллельного приема информации по 5 каналам; при этом длительность импульса примерно в 5 раз превы¬ шала длительность сигналов, которые возможно получать для питания соленоидов в настоящее время, что приводило к более надежной работе. При этом предполагается, что скорость срабатывания электромагнитов и соленоидов, замещающих их, одинакова. Опыт показывает, что это не так. Например, электромагнит телетайпа «Крид» срабаты¬ вает за 2 мсек, а соленоиды типа, применяемого в большин¬ стве лабораторий для устройства вывода параллельного типа, требуют для надежного срабатывания 100 мсек. От¬ сюда’ следует, что коэффициент запаса для телеграфных магнитов составляет 10 : 1, а для их параллельного экви¬ валента 10 : 7. Эти опыты приводят к выяснению причин сбоев в работе стандартных телетайпов, когда они приме- няются в качестве устройств вывода данных быстродеи- ствующих машин; почти всегда сбой возникает в резуль¬ тате неточной синхронизации выхода машин с телетайпом. Как только телетайп переделывался так, чтобы сигналы выдачи чисел из машины поступали точно во время, требуе¬ мое его собственным периодом, работа становилась абсо¬ лютно надежной. Это достигалось просто добавлением ком¬ мутатора к главному кулачку телетайпа. Печатающее устройство параллельного типа обычной перфокартной аппаратуры является более совершенным.
УСТРОЙСТВА ВЫВОДА 97 Оно производит вывод до 80 десятичных цифр со скоростью 100 операций в минуту. Соответствующим приспособлением программы 80-канальный параллельный вывод может быть разбит на группы по 8 — 9 цифр в каждой, благодаря чему достигается значительное увеличение скорости вывода данных. Существенное преимущество выводных устройств тако¬ го типа состоит в том, что они были сконструированы с учетом требований цифровой работы, в частности, они обе¬ спечивают высокую точность и надежность. В последний год или около этого появились новые пе¬ чатающие устройства параллельного типа, в которых до¬ стигается заметное увеличение скорости по сравнению со стандартными перфокартными табуляторами. Типичными для аппаратуры такого рода являются печатающие аппа¬ раты «Поттер» и «Аналекс», скорости их работы: от 300 до 1500 строк в минуту. В этих аппаратах литеры вращают¬ ся непрерывно„в требуемые моменты времени производится удар по литере или по бумаге. Увеличению скорости работы сопутствуют и недостатки, важнейшим из которых являет¬ ся сложное электронное оборудование, необходимое для определения времени импульсов ударов. Устройства, описанные ранее, можно было бы назвать первичными в том смысле, что их выход может быть понят оператором непосредственно. Следующая группа устройств выводит данные с большой скоростью, однако в виде, не¬ пригодном для визуального наблюдения, из-за чего такой вывод должен быть сначала распределен между несколькими «интерпретирующими» устройствами, работающими с мень¬ шей скоростью, в то время как сложная и дорогая вычисли¬ тельная машина будет уже свободна для другой ра¬ боты. Первыми из быстродействующих устройств вывода бу¬ дут магнитная проволока, лента или тихоходный бара¬ бан. С ними мы ознакомились при рассмотрении устройств ввода. Важным свойством, по которому судят об устройстве вывода, является возможность работы его на той же ча¬ стоте, которая используется и в самой машине и может до¬ ходить до 100 кгц. Это означает в принципе, что нет необ¬ ходимости замедлять работу машины для того, чтобы Удовлетворить требованиям устройства вывода. В качестве 4 Э. Бут и К. Бут
98 ввод и вывод примера можно привести магнитную ленту, на которую производилась запись всех чисел, поступавших в регистры машины в течение всего времени вычисления, и использо¬ вавшуюся в дальнейшем как очень сильный инструмент выявления ошибок. Меньшее, но также реальное преиму¬ щество магнитных устройств заключается и в возможности стирать запись, в результате чего большое количество магнитного вещества, применяемого в быстродействующем диагностическом устройстве, может использоваться столько раз, сколько требуется. Применение пленки для фотографирования неоновых ламп уже рассматривалось в начале этого раздела. Недостат¬ ком такого вывода, по крайней мере в его простейшей форме, является то, что фотоснимки содержат выводимые данные только в виде точек, положение которых, во всяком случае в системах счисления, отличных от двоичной, определяет цифровое значение. Более сложным устройством может служить «номероскоп», который состоит из электронно-лу¬ чевой трубки и цепей, устроенных так, что при получении двоично-кодированной десятичной информации на экране трубки прочерчивается десятичное число. Обычно устрой¬ ство приспосабливается для чтения целой страницы и ско¬ рость его работы очень высока. Единственное ограничение скорости вносится механизмом шаговой протяжки пленки; если требуется высокая скорость, то и это можно преодо¬ леть, применяя непрерывную протяжку пленки и соответ¬ ствующие схемы управления электронно-лучевыми труб¬ ками. Но даже и без такого усложнения можно создать ша¬ говый механизм, работающий со скоростью 100 импульсов в секунду, что можно считать достаточным для большин¬ ства целей. Наконец, как это было сделано в отношении устройств ввода, рассмотрим возможность получения с помощью вы¬ числительных машин звукового выхода, но не при выпол¬ нении чисто математических операций, а вероятнее всего, при использовании их для машинного перевода или в ка¬ честве интерпретирующих установок. Получение музыкаль¬ ных звуков на быстродействующих машинах тривиально; для этого требуется только подключить к выходу регистра или к главному запоминающему устройству усилитель низкой частоты и громкоговоритель. Если при этом в реги-
ОБЗОР 99 стре или в памяти содержится единица, а итеративная программа заставляет ее циклически повторяться с задан¬ ной частотой, то громкоговоритель воспроизведет ноту соответствующей высоты. Гармоники основной частоты можно получить, изменяя расположение единиц в регистре следующим образом: основная частота 1111111100000000- 1-я гармоника 1111000011110000 2-я » 1100110011001100 3-я » 1010101010101010 Аналогично образуются и другие частоты, не кратные основной, с тем чтобы можно было получить ноты обычной гаммы. Такое применение вычислительной машины уже было реализовано, дав весьма удовлетворительное исполнение гимна «Боже, храни королеву». Для воспроизведения разговорной речи требуется бо¬ лее сложное оборудование, чем для музыки. Здесь возмож¬ ны два основных варианта. Первый предполагает предва¬ рительную звукозапись каждого слова, а затем — подачу кодированной команды, служащей для выбора участка с записью того слова, которое должно быть «произнесено», и для передачи записи в устройство воспроизведения звука. Хотя этот вариант и можно довести до конца, его выполне¬ ние технически сложно и включает использование чрезвы¬ чайно громоздкой аппаратуры. Проще использовать метод, разработанный для устройства под названием «Вокодер» или «Водер». В нем звуки речи получаются путем последо¬ вательной комбинации очень небольшого количества основ¬ ных тонов, записанных на магнитные ленты и выбираемых машиной в требуемом порядке. Обзор ствгРКИДЫВаЯ мысленным взором рассмотренные устрой- ктючББОДа И Бывода’ можно сделать некоторые общие за- лучшими* ° Системах’ считающихся в настоящее время быть°сн^Ь1Х’ каждая вычислительная машина должна аожена ручным вводом и визуальным выводом 4*
100 ввод и вывод простейшего и наиболее надежного вида, как вспомогатель¬ ными для инженера, обслуживающего ее. Работа всех бо¬ лее сложных устройств требует исправной работы большей части самой машины. В случае поломки, при отсутствии простых устройств ввода — вывода, инженеру пришлось бы проделать трудоемкий процесс ввода с помощью от¬ вертки и проводника, присоединяемых соответствующим образом, а вывода — с помощью лампового вольтметра. Применяемые выключатели должны иметь надежную кон¬ струкцию, подобную, например, используемой Почтовым ведомством для телефонных пультов. Характеристики за¬ жигания неоновых ламп должны быть устойчивыми, а по¬ требление тока — малым; для этой цели вполне подходят лампы NT-2. Если в машине предусмотрены автоматические быстро¬ действующие устройства ввода — вывода,то выбор их в большой мере зависит от характера использования самой машины. В малых установках достаточно иметь клавиатуру телетайпа, реперфоратор и читающее устройство, особенно если внутренняя память машины магнитного типа и не требует повторного ввода после каждой остановки машины. В том случае, когда машина относится к сверхбыстродей¬ ствующим и должна быть полностью загружена, вряд ли появятся сомнения в том, что желательна гибкость и про¬ стота системы (несколько телетайпов, магнитная проволока или лента). Особенно верно это, если внутренняя память машины устроена так, что требует новой записи после более или менее длительной остановки машины, или если в про¬ цессе работы машина должна обращаться к математическим таблицам, рассчитанным ранее. В заключение хочется упомянуть еще о двух устройствах ввода — вывода: первое — это быстродействующий с па¬ раллельным входом аппарат Крида, работающий со ско¬ ростью 25 операций в секунду; второе — это использование системы модулированной несущей частоты для записи вы¬ вода машины на магнитную ленту со скоростью, в 16 или* более раз превышающей обычную скорость телетайпа. После записи ленту протягивают со скоростью, равной 1' скорости записи, и через обычный демодулятор питают телеграфный аппарат. Эта система, как оказалось, проста и очень надежна.
ЭЛЕКТРОМАГНИТНОЕ РЕЛЕ 101 ГЛАВА 9 ВЕНТИЛИ При изучении специфических схем и устройств, приме¬ няемых для автоматических быстродействующих машин, порой бывает довольно трудно найти логическую отправ¬ ную точку. Если, как может показаться удобным, начать рассматривать сначала память, то скоро выяснится, что в изложении приходится упоминать о большом числе свя¬ зующих элементов, свойства и функции которых не изу¬ чались. С еще большей силой это обстоятельство сказывает¬ ся в случае рассмотрения компонент арифметического узла, целиком состоящих из более простых блоков. При внимательном подходе можно убедиться, что пред¬ метом, подходящим для изучения, мог бы быть или одно¬ разрядный запоминающий элемент, или же вентиль. Последний был выбран потому, что благодаря своей физиче¬ ской природе он допускает применение в машинах, исполь¬ зующих почти любое быстродействующее запоминающее устройство. С другой стороны, устройство одноразрядного запоминающего элемента зависит в большой степени от кон¬ кретной формы главного запоминающего устройства и, в частности, от скорости его работы. Электромагнитное реле Наиболее простым и гибким, хотя и наиболее медленно работающим, вентильным элементом является электромаг¬ нитное реле. Оно состоит из якоря а, изготовленного из мяг¬ кого железа (см. рис. 26, а), который с помощью пружины s Удерживается в оттянутом от сердечника с положении. еле пропускания электрического тока по обмотке А А, намотанной поверх сердечника с, якорь притягивается к очу, преодолевая противодействие пружины s. Ток, ко¬ ник11 'г^)лжен быть пропущен вентилем, подводится провод- такт*1 с 3 затем напРавляется к одному из выходных кон- TnifQ0B ИЛИ D' соответственно отсутствию или наличию тока в катушке А А. на рис реле °бычно изображают,1 как показано вместпВместо катушки рисуют прямоугольник, а контактной системы — схему BCD,
102 ВЕНТИЛИ Реле могут иметь несколько обмоток и различные кон¬ тактные группы, но следует отметить, что, в общем, чем больше контактов, тем медленнее срабатывает реле. Регулировоч¬ ный Винт Контакты Сердечник Изолятор Одлштка 1 т А С D А А а) Рис. 26. Электромагнитное реле а Типичным примером быстрого реле является быстродей¬ ствующее реле Сименса, в котором имеется до двух рабочих обмоток и простой переключающий контакт; его время сра¬ батывания при включении или отключении составляет около 1 мсек. Фирма Бритиш Тэбьюлейтинг Мэшин Ком- д пани изготавливает аналогичные реле I с восемью переключающими контак- I тами и временем срабатывания, рав- —ным всего лишь 1,5 мсек. Из более в медленных реле типичным является О ® реле типа P.O. 3000. На нем имеется Рис. 27. Логические эк- до трех обмоток и до шести переклю- виваленты реле. чающих контактов; время срабатыва¬ ния составляет около 20 мсек. Раз¬ рываемые токи составляют для реле Сименса до 2 ампер, для реле P.O. 3000, при наличии подходящих контактов,— до 5 ампер. Очевидно, что простое реле представляет собой 2-вен¬ тиль; вентиль такого типа неоднократно использовался в предыдущих главах. Для сравнения на рис. 27, а показаны символы, обозначающие реле в логических схемах. 'Изме¬ няя схему включения контактов реле в соответствии с рис. 27, б, можно получить запрещающий вентиль «нет». Путем использования нескольких реле в последова¬ тельном включении можно получить кратные вентили (вен¬
ЭЛЕКТРОМАГНИТНОЕ РЕЛЕ 103 тили с несколькими входами) и кратные вентили с запре¬ щающими соединениями. Пример такого соединения при¬ веден на рис. 28. Здесь одновременное появление входных сигналов на проводниках А и В приводит к появлению вы¬ хода на G, если только нет никакого входа на Е. В логической терминоло¬ гии вентиль типа, пред¬ ставленного на рис. 27 а, известен как вентиль «и», а вентиль, показанный на рис. 27 б, — как вен¬ тиль «нет». Третий рас¬ пространенный логичес¬ кий элемент обычно на¬ зывается вентилем «или». Он может быть реализован с помощью реле различными спо¬ собами, один из которых приведен на рис. 29 *). А Рис, 28. Использование реле в качест¬ ве кратных вентилей. Рис 29 Использование реле в качестве элементов «или». янЯи6ЛеЙНаЯ цепь начеРчена так, чтобы выявить тесную мрп °ГИЮ С логическими схемами, используемыми, напри- 1’ в полусумматоре, в гл. 6. ческой1 НЗЯ аналогия Релейных схем и элементов символи- ного логикн была положена в основу применения расчет- парата символической логики для конструирования отличается^ от- Схе3,ам’ СМЬ1СЛ> -вкладываемый авторами в слово «или» технике: «а и пи 001депР1шятого в математике и вычислительной на е. либо н'я nr ЫЧ1Ю 03начает наличие сигнала либо на а, либо можность. {ПримШд одновРеменио; авторы исключают третью воз-
104 ВЕНТИЛИ релейных цепей. Булева алгебра, как называют этот рас¬ четный аппарат, удобна, по крайней мере в принципе, для решения таких задач. Однако на практике почти наверняка быстрее приводят к результату более интуитивные способы. Утверждать, что одни инженеры сконструируют в короткий срок оптимальную релейную цепь без каких-либо ссылок или знания упомянутого расчетного аппарата, тогда как другие, менее способные, никогда не сконструируют хоро¬ шей цепи, пользуясь любыми методами,— это значит утверждать прописную истину. Заканчивая рассмотрение релейных вентилей, сделаем несколько замечаний практического порядка. Для обычной вычислительной работы, по-видимому, лучшим будет реле с сопротивлением обмотки в 2000 ом\ она срабатывает очень надежно и быстро, если включено в анодную цепь пентода, дающего ток 15 — 20 миллиампер. Для надежной работы цепи напряжение на контактах реле перед их замыканием должно превышать 50 вольт; это. как показано, производит микроскопическую сварку на контакте, которая обеспечи¬ вает ничтожно малое контактное сопротивление. Материа¬ лом контактов быстродействующих реле, как правило, яв¬ ляется платина. С точки зрения переходного сопротивления более подходящим был бы родий, но этот материал не используется. Контактное давление реле, находящегося в оттянутом положении, должно быть по меньшей мере 17 а, а в положении «включено» — немного больше. Для реле типа Р. О. 3000 сопротивление обмотки в 2000 ом опять-таки. по-видимому, является оптимальным для работы в ламповых схемах. Контакты обычно изготав¬ ливаются из серебра, а давление зависит почти целиком от количества групп контактов, установленных на реле. Диод, или выпрямитель Благодаря механической природе своей конструкции реле является, в общем, медленным устройством, и для того чтобы вентильные операции производить с большей скоростью, необходимо обратиться к электронной технике. Простейшим из электронных вентильных элементов являет¬ ся диод, или выпрямитель. Существует несколько различ¬ ных видов выпрямителей. Если катод, покрытый соответ¬
ДИОД, ИЛИ ВЫПРЯМИТЕЛЬ 105 ствующим образом, подогревать током от внешнего источ¬ ника, то он будет испускать электроны. Вместе с катодом на некотором расстоянии от него в стеклянном баллоне, из которого выкачан воздух, смонтирована собирающая пла¬ стина, или анод. Если к аноду приложить положительный по отношению к катоду потенциал, то электроны пойдут от катода к аноду, образуя во внешней цепи ток. Потенциал, приложенный в обратном направлении, не вызывает такого перемещения электронов, а следовательно, и тока не будет. Точно такое же явление возникает в некоторых прибо¬ рах, изготовленных из так называемых полупроводников. Они обладают свойством переносить электроны, когда к соответствующим металлическим обкладкам приложено на¬ пряжение одного знака, но ведут себя, как изоляторы для обратного напряжения. Диодные вентили не являются точным эквивалентом реле по ряду причин. Не касаясь физических характеристик, что будет сделано позже, диод можно рассматривать как только одну половину контактной переключающей системы реле. Некоторые типичные примеры вентильных схем по¬ казаны на рис. 30. На рис. 30, а изображен диодный вентиль для двух вход¬ ных сигналов (2-вентиль). Vt и это два диода, требую¬ +т & Рис. 30. Типичные схемы диодных вентилей.
106 ВЕНТИЛИ щиеся для нормальной работы схемы; в точке В устанав¬ ливается потенциал с помощью сопротивления RB, присое¬ диняемого к источнику напряжения, скажем, 410 в. Диод V, и сопротивление в его катоде RA обладают малым суммар¬ ным сопротивлением, скажем равным 0,1 сопротивления RB, так что при отсутствии сигнала входа в проводнике А по¬ тенциал в точке В составляет примерно 1 в. RB сопротив¬ ление смещения, создающее на катоде диода V2 потенциал +21 в или +20 в по отношению к его аноду. При таких усло¬ виях импульс в +20 в, приложенный к В, поднимет потен¬ циал анода до +20 в, чего будет недостаточно, чтобы от¬ крыть диод и пропустить сигнал к D. С другой стороны, если на А поступит входное напряжение +30 в, то 1/, за¬ прется, а потенциал в точке В поднимется до +10 в. При таких условиях входной импульс -1-20 в в точке В произ¬ ведет на выходе в точке D импульс +11 в, прошедший через диод Vr Более сложным вариантом этой схемы является вен¬ тиль для трех входных сигналов, показанный на рис. 30 б. Его схема аналогична приведенной на рис. 30 а, за исклю¬ чением дополнительного входа Е на лампе 1/'3. Работа про¬ исходит почти так же, как и ранее: поскольку в этой схеме сопротивления R А и RE гораздо меньше, чем RB, то потен¬ циал в точке В остается равным примерно +1 в, если на входы А и Е сигналы не будут поданы одновременно. Для получения запрещающего входа необходимо на вентиль в точке А подать постоянное смещение +30 в; при этом он будет открыт; когда же требуется запрещение, то необходимо подавать в точку А отрицательное напряжение. Этот диодный вентиль обладает большой скоростью и хо¬ рошей стабильностью характеристик, если он хорошо из¬ готовлен; особенностью схемы является то, что потенциал в точке В устанавливается напряжением в точке А; этот процесс может протекать сравнительно медленно; рабочий же импульс напряжения после этого может проходить диод V2 с большой скоростью и хорошим временем нарастаю¬ щего и спадающего фронтов. На рис. 31 приведен пример диодного вентиля, переходная характеристика которого не такая хорошая и в котором, кроме того, происходит неко¬ торое «просачивание» при приложении напряжения сиг¬ нала. Если в этой схеме R и= 10 (Дл+Е1)= 10 {RB+VZ), то
ДИОД, ИЛИ ВЫПРЯМИТЕЛЬ 107 установившееся напряжение в точке D при отсутствии сиг¬ налов равно приблизительно +1 в. Если на А или на В по¬ ступает положительный импульс, превышающий +20 в, то потенциал в точке D возрастает примерно до +2 в\ если, однако, сигналы +20 в или более поступают на оба входа одновременно, то потенциал в точке D возрастает до +20 в. Аналогичны устройства и для лю¬ бого большего числа входов. При реализации таких схем воз¬ никает следующая трудность: если мы хотим добиться малого времени нарастания выходного импульса, то постоянная времени RD и выходной цепи должна быть мала. Напри¬ мер, если выходная емкость состав¬ ляет 20 мкмкф. а время нараста¬ ния выходного импульса требуется Рис. 31. Упрощенный ди- иметь равным 0,04 мксек, то величи- одный вентиль, на Rn, как легко видеть, должна со¬ ставлять 2000 ом\ это означает, что суммарное сопротивле¬ ние (R 4 +V7,) для удовлетворительной работы должно быть порядка 200 ом, а так как это и есть сопротивление обыч¬ ных диодов, то сопротивление R А должно равняться нулю. Это показывает ограничения, присущие упрощенной схе¬ ме, когда требуется получать выходные импульсы очень острой формы. Теперь можно оценить все доводы за и про¬ тив диодного вентиля. Его преимущества состоят в чрезвы¬ чайной простоте, возможности создания его из полупро¬ водниковых приборов и стабильности во времени. К недо¬ статкам относится то, что выходные импульсы по амплитуде меньше входных, и это делает невозможным непосредствен¬ ное соединение нескольких вентилей без промежуточных усилителей; кроме того, входы вентилей, по крайней мере электронных, обладают малым сопротивлением, что застав¬ ляет питать их от усилителей мощности типа катодного повторителя. В заключение произведенного краткого об¬ зора диодных вентильных цепей уместно привести свод¬ ку физических характеристик нескольких типовых эле¬ ментов. Различные обозначения диодных элементов показаны на Рис. 32. Первый символ слева обозначает лампу-диод, вто¬
108 ВЕНТИЛИ рой символ — полупроводниковый диод (скажем, селено¬ вый или германиевый), третий — это эквивалентная схема диода в прямом, т. е. проводящем, направлении, а чет¬ вертый — эквивалентная схема в обратном направлении. Рис. 32. Эквивалентные схемы диода. В таблице 4 приведены значения констант для различных ти¬ пов диодов. Величина Уг(тах) — это наибольшее напряжение, Таблица 4 Тип Конструкция К/ ом СЛ мкмкф Rr мгом СГ мкмкф П(тах) в 6AL5 Электронная лампа . 200 5 100 5 более 300 1N138A Кремниевый .... 200 2 1000 2 более 100 1N38 Германиевый .... 200 2 0,1 2 менее 120 MR1 Селеновый 6000 22 20 22 менее 50 которое может быть приложено в обратном направлении без разрушения элемента. Приведенные цифры относятся к коммерчески доступным типам диодов; было сообщение о том, что германиевые диоды производились с прямым сопротивлением, составляющим только 0,1 приведенного. Диапазон сопротивлений производимых селеновых диодов определяется следующим важным фактором: произведение прямого сопротивления на емкость составляет 10ь ом-мкмкф, или, что то же, их постоянная времени составляет при¬ мерно 0,1 мксек. Опыт показал, что вентили из селеновых диодов рабо¬ тают удовлетворительно вплоть до 40 кгц, тогда как вентили на германиевых и электронноламповых диодах работают до 2 мггц.
триод 109 Триод Лампа-триод, когда ее рассматривают как вентильный элемент, в некотором смысле больше напоминает электро¬ магнитное реле, чем диод. В частности, это проявляется в изоляции между входом и выходом, которая имеется в триоде. Не входя в детали, триод можно рассматривать как диод, в который введен управляющий элемент. Этот эле- дооит Щпрктпптб ПЧ НРГТ1Т1 .Hi ,, к форме проволочной спирали и помещается между катодом и анодом. Когда потенциал сетки близок к потенциалу ка¬ тода, то положительный потенциал, приложенный к аноду, еще в состоянии протягивать электроны через отверстия сетки. Однако когда сетка заряжена отрицательно по от¬ ношению к катоду, то все электроны отталкиваются к нему обратно и ни один не проходит к аноду. В терминах релей¬ ных схем триод можно представить схемой, изображенной на рис. 33. Следует отметить, что в этой схеме последовательно с контактами реле включен диод, отображающий то, что цепь анод—катод триода обладает свойствами диода и в об¬ ратном направлении тока не проводит. Помимо функции управления, существенным свойством триода является то, что сеточная цепь может управлять большими анодными токами без заметного собственного потребления. Применение ламповых триодов для создания вентиля с Двумя входами показано на рис. 34. Эта схема является эк¬ вивалентом диодной схемы, приведенной>на рис. 31; если сигналы на входы Л и В не поступают, то триоды ведут Рис. 33. Триод и его эквива¬ лент из реле и выпрямителя. Рис. 34. Вентиль на триодах с объединенными анодами.
110 ВЕНТИЛИ себя, как диоды в упомянутой схеме, и поддерживают по¬ тенциал в точке D равным 0,5RtVs 0,5 Rt + RA' Если RA^lORt, то нормально напряжение в точке D составит около 0,05 напряжения питания Когда один триод запирается отрицательным потенциалом на сетке, то его сопротивление увеличивается до бесконечности и на¬ пряжение в точке D возрастает до 0,1 напряжения питания. Однако если запираются оба триода, то напряжение в D возрастает до величины полного напряжения питания l/v. По сравнению с диодной схемой этот вариант обладает как преимуществом, заключающимся в весьма высоком со¬ противлении входов А и В, так и недостатком, поскольку внутреннее сопротивление Rt триодов составляет обычно около 700 ом, анодное сопро¬ тивление RA должно быть по¬ рядка 70 000 ом и лучшее время нарастания выходного импульса, которого можно ожидать при емкости, скажем, Рис. 35. Вентиль на триодах с ^ мкмкф, составляет около объединенными катодами. 2 мксек. Чтобы получить схему вентиля для п входов, к общей выходной точке необходимо присоединить допол¬ нительные триоды, помня при этом, что включение каждой лампы вносит дополнительную выходную емкость, равную по меньшей мере 10 мкмкф, что соответственно увеличит время нарастания выходного импульса. Следует также помнить, что от любого изменения условий на входе будут происходить изменения на выходе и обычно необходимо после вентиля такого типа ставить каскад ограничения. На рис. 35 изображена другая возможная вентильная схема на триодах. В ней используется то, что если катоды двух триодов объединены и соединены с землей через сопротивление Rк, а потенциал обеих сеток равен Vg, то при правильном вы¬ боре сопротивления RK потенциал катода будет примерно тем же. Если обе сетки находятся под общим потен¬
триод 111 циалом, то приложенный к любой из них отрицательный им¬ пульс произведет в точке D лишь небольшое изменение на¬ пряжения. Однако, когда отрицательные импульсы по¬ ступают одновременно на обе сетки, потенциал в D падает до значения, соответствующего большему напряжению на сетке. Точно так же, как и в случае вентиля с объединен¬ ными анодами, несколько таких вентилей можно соединить вместе, чтобы получить схему для п входов. Используя обычные лампы, можно при напряжении питания Vs = 150 в взять значение RK около 20 ООО ом\ это значит, что время на¬ растания, достижимое таким вентилем, несколько лучше, чем в случае вентиля с объединенными анодами. Можно было бы ожидать, что время нарастания должно совпадать с таковым для самих ламп, т. е быть равным времени, ко¬ торое можно было бы достичь при сопротивлении 500— 1000 ом. Это не так, поскольку для отрицательных выходов выходное сопротивление любого катодного повто¬ рителя равно сопротивлению катодной нагрузки RK. Весьма существенным преимуществом схемы вентиля с объединенными катодами является то, что его выходной потенциал приблизительно равен входным потенциалам; это значит, что вентили можно соединять последовательно без сложных схем смещения, необходимых для вентилей с объединенными анодами. Недостатки заключаются, во-первых, в том, что катоды триодов с косвенным .накалом могут при работе оказаться под большим положительным потенциалом по отношению к нити накала, так что следует заботиться о соблюдении допустимых паспортных пределов этого напряжения; во- вторых, получаемый на вентиле отрицательный сигнал вы¬ хода должен пройти ограничение, с тем чтобы помехи, получающиеся при раздельной работе входов А или В, были срезаны. Эта операция осложняется отрицатель¬ ной полярностью импульсов и необходимостью иметь Для таких импульсов усилитель с эффективным ограни¬ чением. В приведенном на рис. 36 комбинированном варианте многие из недостатков предыдущих схем устранены. В этой схеме потенциал сетки В обычно низок, скажем 60 в, а сетки А высок, скажем 90 в, так что потенциал RK равен по¬ тенциалу А, т. е. 90 в. Если теперь на А подать отрицатель¬
112 ВЕНТИЛИ ный импульс величиной 20 в, то потенциал RK падает до 70 в и остается пока еще выше напряжения отсечки лампы У2. Аналогично, если потенциал А 90 в, а В получает поло¬ жительный импульс 20 в, то напряжение на G2 поднимается только до 80 в, так что Vs остается еще запертой. Однако если отрицательный импульс на А приходит, когда В за¬ ряжена положительно, то прохождение тока через \\ пе- Рис. 36. Вентиль с объединен- быть взята настолько малой, ныыи катодами и выходом с насколько это необходимо, с значениями являются RK= 22 000 ом, А* ,,=4700 ом, кото¬ рые при емкости 20 мкмкф дают время нарастания импульса порядка 0,1 мксек. Так же как и в схемах, описанных ранее, здесь может быть образован кратный вентиль путем добавления тре¬ буемого количества входных каскадов типа каскада А. Су¬ щественное преимущество этой вентильной системы за¬ ключается в том, что ее можно преобразовать для выдачи положительных импульсов, если вместо В А поставить им¬ пульсный трансформатор. Это преимущество особенно важ¬ но, если требуется последующее усиление импульсов; не¬ обходимое смещение на каскад усиления легко подается, как показано,на рис. 37. Заканчивая описание триода как вентильного элемента, упомянем еще об одном способе соединения, нашедшем себе применение; он изображен на рис. 38. Как показано, здесь триоды соединены последовательно с соответствующим анодным сопротивлением. Если А я В 1 редается лампе К2, в результате чего на D получается отрица¬ тельный выходной сигнал. Важные особенности этой схемы состоят, во-первых, в том, что при изменении только на одном входе А или В «просачи¬ вания» на выход D не происхо¬ дит. а во-вторых, в том, что по¬ скольку эта схема относится к переключающим ток, то вели¬ чина сопротивления RA может анода триода. вытекающим отсюда улучшени¬ ем фронтов импульса. Типовыми
ДВУПОЛЯРНЫЕ ВЕНТИЛИ 113 находятся под потенциалом, скажем, — 10 в, то оба триода будут заперты и потенциал в D будет равен V8. Если заря¬ жена положительно А или В, то ток еще не будет пропус¬ каться остающимся запертым триодом. Однако если поло¬ жительные сигналы поступают на Л и В одновременно, то оба триода отпираются и на выходе появляется отрицатель¬ ный сигнал. В отличие от прежних схем эта схема, по- видимому, не прошла широкой проверки, но кажется, что Усилитель Вентиль Отрицатель¬ ное смещение Рис. 37. Схема, видоизмененная для получения положительного выхода на усилитель. Рис. 38. Последователь¬ ное соединение триодов. она подает большие надежды для некоторых применений, как это показано ее успешным использованием в машине АКЕ. С практической точки зрения для триодных вентильных схем, описанных ранее, могут использоваться специально приспособленные для этой цели лампы типов 6J6, 6SN7 и „ ^ или их эквиваленты; подробности читатель может наити в соответствующих каталогах изготовителей, к ко¬ торым он и отсылается. Двуполярные вентили В-™, описанные только что, обладают свойством полп^СКаТЬ си„гналы’ которые состоят из цмпульсов либо необх^ИТеЛЬН™’ ли^° отрицательной полярности. Иногда димо иметь вентиль, обладающий способностью
114 ВЕНТИЛИ пропускать смешанные сигналы, но не образующий замет¬ ного выхода или постоянной составляющей при отсутст¬ вии сигнала. Две такие схемы, оказавшиеся практически пригодными, изображены на рис. 39. На рис. 39, а приведена закорачи¬ вающая схема на диодах, в которой сигналы, проходя че¬ рез конденсатор С, заземляются диодами Dl и D2. Когда на RK подаются положительные, а на RA — отрицательные г -41- б) Рис. 39. вентильные сигналы, то диоды запираются, и любой по¬ следующий сигнал, проходящий через С, передается без изменений. Для того чтобы избежать необходимости в двух вентильных сигналах, находящихся в противофазе, сопро¬ тивления RK и Ra часто заменяются трансформатором со средней точкой, которая заземляется. Другой такой вентиль показан на рис. 39, б. Здесь цепи сетка — катод двойного триода выполняют ту же роль, что и диоды в описанном только что вентиле. Если на аноды подано большое отрицательное напряжение (200 в или больше для ламп 12AU7 и 6SN7), то электроны возвращают¬ ся на катод, не попадая на сетку, и вентиль в этом случае остается открытым. Многосеточные лампы Как сетка, введенная в диод, позволяет управлять элек¬ тронным потоком, так и дополнительные сетки, введенные в триод, дают возможность осуществить новые функции управления. В настоящее время из многосеточных ламп, по-видимому, оказалась пригодной для использования в
ПОЛУПРОВОДНИКОВЫЙ ТРИОД 115 вычислительных машинах только лампа 6AS6. Ее преиму¬ щество перед другими лампами заключается в том, что на¬ пряжения отсечки на обеих сетках одинаковы. В отноше¬ нии других ламп это утверждение несправедливо, и в не¬ которых случаях на вторую сетку Gs (рис. 40) должно по¬ даваться напряжение в 5—10 раз больше, чем на сетку G . Работа многосеточной лампы в качестве вентиля в точ ности такая же. как и рабо¬ та последовательно соединенных триодов, описанная ранее (рис. 38). Если с помощью напряжений смещения, приложенных к А и В, лампа заперта, то только одновре¬ менная подача положительных напряжений к этим точкам откроет лампу, в результате чего в точке D появится отрицательный сигнал. Хотя в принципе многосеточные лам¬ пы — прекрасные вентильные устройства, но современные лампы обладают тем недо¬ статком, что сопротивление утечки сетки G2 не должно пре¬ вышать нескольких тысяч ом. Из-за этого входное сопроти¬ вление получается очень малым, что сильно ограничива¬ ет возможность их применения. Рис. 40. Много- сеточная лампа в качестве вен¬ тиля. Полупроводниковый триод Аналогично тому, как введение управляющей сетки в вакуумный диод позволило превратить его в триод, было показано, что можно управлять характеристиками полу¬ проводниковых диодов. Полученное в результате устрой¬ ство известно как кристаллический (полупроводниковый) триод, или транзистор. Электроды кристаллического триода носят названия: эмиттер, база и коллектор, и их условные обозначения приведены'на рис. 41, а — в\ иногда полезно эти электроды рассматривать в качестве аналогов а'года, сетки и анода, несмотря на то, что действие кристал¬ лического триода весьма отлично от действия лампы. Пер¬ вые кристаллические триоды были триодами с точечным нтактом. Они характеризовались малой величиной про- часКаеМ°Г° чеРез них тока и возможностью'работать при тотах порядка мегагерца или около этого. Недавно
116 ВЕНТИЛИ появились плоскостные триоды, например, триод типа 2N34 с р-п-р переходами, являющийся аналогом электронного триода, и триод типа 2N35 с п-р-п переходами (он эквива¬ лентен некоторому воображаемому триоду, работающему с позитронами вместо электронов). В разработке находится симметричный триод, который должен обладать свойствами обоих. Плоскостные триоды трудно применять на частотах Эмиттер Коллектор % V V Ьпзи „ „ „ „ Симметричный Р^~Р п-р-п триод а) S) 6) Рис. 41. Обозначения различных типов транзисторов свыше 100—200 кгц из-за так называемого эффекта накоп¬ ления дырок, являющегося следствием специфического для полупроводников процесса переноса зарядов, который можно рассматривать как движение областей недостатка электронов или «дырок». “* П т si Рис. 42. Вентили на транзисторах. Схемы на кристаллических триодах, эквивалентные при¬ веденным на рис. 39, показаны на рис. 42. Следует отме¬ тить, что использование симметричного триода в схеме 42, б приводит к существенному упрощению. Изоляция меж¬ ду электродами в запертом кристаллическом триоде гораздо хуже, чем в ламповом триоде, так что следует принимать меры, чтобы избежать взаимодействия цепей, имеющих об¬ щие элементы.
МАГНИТНЫЕ УСТРОЙСТВА 117 Магнитные устройства В заключение необходимо рассмотреть применение чи¬ сто магнитных устройств для выполнения переключающих операций. Хотя в принципе почти любой ферромагнитный материал обладает достаточным гистерезисом, чтобы сде¬ лать его пригодным для вентильных применений, исполь¬ зование магнитных устройств не давало действительных преимуществ, пока не были получены материалы с почти точно прямоугольной петлей гистерезиса. Сейчас выпус¬ каются в продажу несколько таких материалов. В США дельтамакс, а в Англии НСВ и пермаллои Р, — пожалуй лучшие из известных. ’ Ферритовые сердечники в настоящее время могут быть получены такого качества, ко¬ торое обеспечивает требуемые S в / К.Й. 1 ' В=15 ОООгаусс 1 я ^^Н=0,2 эрстед Л'. Р-о~^9^о С- и Н; ( ч Рис. 43. Магнитный вентиль. Рис. 44. Магнитные характе¬ ристики сплавов «дельтамакс», «HCR» и «пермаллой F». ос(/1т!РИСТИКИ' 3 Шлые потеРи на гистерезис делают их холя..™ пригодными Для работы на высоких частотах. Под- мимТрИ1 ПЯПаМИ ЯБЛЯГСЯ Серлечники Дженерал Кера¬ мике МР-1118, а также Муллард D, и Dx. Рацик-.0 и! проиллюстрировать простую вентильную опе- смотоилд 1П0лняемУю с помощью магнитного элемента, рас¬ смотрим схему, приведенную на рис. 43. Мотки 1°РпИЛепиз„магнитн°го материала имеется три об- тока достятпиыгп ЛИ П° обмотке А пропустить импульс ника пепеменмтп вели™ны- то магнитное сортояние сердеч- I на рис. 44 Я И ->дет описываться, скажем, точкой
118 ВЕНТИЛИ После снятия импульса состояние сердечника возвра¬ тится в точку г, так что практически вся энергия входа остается запасенной в сердечнике. Если теперь пропустить импульс через обмотку В в направлении перемагничивания сердечника, то в нем происходит большое изменение маг¬ нитного потока; сердечник переходит сначала в точку и, а затем возвращается в /; благодаря обычному трансформа¬ торному действию на обмотке I) появится импульс выхода. Если, однако, первоначальный импульс по обмотке А пропущен не был, то импульс, пропускаемый по В, заста¬ нет сердечник уже в состоянии t ив результате перехода от I к и и обратно произведет только небольшой выход на I), поскольку происходит очень малое изменение индукции В сердечника. Следует заметить, что при подаче импульса в А на D может появиться большой импульс противополож¬ ного знака. Его можно при желании срезать последователь¬ ным или параллельным диодом, включенным соответствую¬ щим образом. Аналогично вход с обмотки В может производить выход не только в обмотке D, но и в А, и это тоже может потребо¬ вать подавления. Преимущество описанной вентильной системы, которым не обладают рассмотренные ранее электронные устройства, заключаются в том, что магнитный сердечник одновременно является и одноразрядным запоминающим устройством; импульс входа на А может не совпадать (а на деле и не дол¬ жен совпадать) по времени с импульсами на В, и это может в ряде случаев оказаться полезным. Возможны различные варианты описанной схемы. На¬ пример, в обмотку А может подаваться поляризующий ток, удерживающий сердечник в состоянии /, а импульсы в В могут быть недостаточными для перевода состояния сердеч¬ ника за точку s, а следовательно, и для получения выход¬ ного сигнала. Если поляризующий ток, идущий через А, убран или уменьшен, то импульсы обмотки В изменяют маг¬ нитное состояние за s к и и, следовательно, производят сиг¬ нал выхода. Такой вентиль можно приспособить для не¬ скольких входов; в этом случае он превращается в неко¬ торого рода сумматор входных токов, производя выход только тогда, когда сумма входов превышает некоторый уровень.
МАГНИТНЫЕ УСТРОЙСТВА 119 Чтобы использовать материалы (особенно ферриты), которые обладают другими нужными свойствами, но имеют недостаточно прямоугольную петлю гистерезиса, была разработана дифференциальная схема, приведенная на рис. 45. В ней используются два тороида С, и С2. Обмотки В соединяются последовательно согласованно; обмотки А и D последовательно встречно. Импульсы, подаваемые в В, когда на А входа нет, производят в обмотках I) равные и Рис. 45. Дифференциальный Рис. 46. Магнитные состояния вентиль. в дифференциальном вентиле. направленные встречно импульсы, а следовательно, не дают никакого выхода. Когда к А будет приложен какой-нибудь импульс, сердечники Сj и С2 намагничиваются в противо¬ положных направлениях. Предположим, что на рис. 46 сердечник С, находит¬ ся в состоянии /,, а сердечник С2 —в состоянии /2 и что после снятия импульса с А сердечники возвращаются в со¬ стояние г, и г2 соответственно. После того как приложен импульс В, С, изменяет состоя¬ ние, переходя из г, в /,, а С., — из г2 в /,; разница между 0^умя изменениями потока будет равна изменению потока „ rj 'А И и Даже в материалах с малой остаточной индук- ннеи будет велика. ' Если импульс в А подавать обратного знака по отно- знак-Ю К РассмотРенномУ> то и выход в I) изменит свой , таким образом, дифференциальный вентиль обладает
120 ОДНОРАЗРЯДНЫЕ ЗАПОМИНАЮЩИЕ ЭЛЕМЕНТЫ дополнительным свойством, являясь запоминающим устрой¬ ством на три положения. С практической точки зрения можно отметить, что про¬ стой вентиль, изображенный на рис. 43, состоит из двух вит¬ ков ленты HCR толщиной 0,001 — 0,008 дюйма, с наружным диаметром 0,375 дюйма и шириной 0,125 дюйма, смонтиро¬ ванных в защитном кожухе с тремя обмотками по 200 вит¬ ков провода № 38 в изоляции «люмекс». Для дифференциального вентиля подходящими сердеч¬ никами являются кольца диаметром в 1 дюйм и сечением 0,125X0,125 дюйма из феррокскьюба 4С с обмотками по 200 витков. При испытаниях такая конструкция удовлет¬ ворительно работала с импульсами продолжительностью 0,25 мксек. Обмотки 4-миллиметровых в диаметре сердечников из ферритов с прямоугольной петлей содержат от 50 до 150 витков соответственно требуемым импульсам. ГЛАВА 10 ОДНОРАЗРЯДНЫЕ ЗАПОМИНАЮЩИЕ ЭЛЕМЕНТЫ Аппаратура устройства управления быстродействующих вычислительных машин, выбрав команду из главного за¬ поминающего устройства, должна затем фиксировать ее так, чтобы отдельные разряды были доступны для считы¬ вания в течение сравнительно большого, интервала вре¬ мени. Кроме того, вентили отдельных блоков машины, на¬ пример сумматора, при последовательной работе должны быть открыты по крайней мере в продолжение всей опе¬ рации. Для выполнения этих, а также некоторых других функций требуется устройство, которое может быть названо одноразрядным запоминающим элементом. Форм такого устройства может быть много, но в общем его конструкция тесно связана с конструкцией основного быстродействующего запоминающего устройства; однако поскольку конструкция последнего не определяет одно¬ значно форму используемого одноразрядного запоминаю¬ щего элемента, то полезно посвятить отдельную главу пол¬ ному обзору таких устройств.
ЭЛЕКТРОМАГНИТНОЕ РЕЛЕ 121 Электромагнитное реле Это, пожалуй, простейший пример одноразрядного за¬ поминающего элемента. Реле включается, как показано на рис. 47. Один полюс нормально открытого контакта С присоеди¬ нен к батарее или иному источнику питания; при включении он соединяется с катушкой реле R, другой конец которой подключен к той же батарее. Если в обмотку R подать импульс тока достаточной интенсивности, приложив его к Л, то реле перейдет во включенное состояние, С замкнет¬ ся и R начнет питаться током независимо от входа Л. Для того чтобы возвратить устройство в первоначальное со¬ стояние, потребуется разорвать цепь тока внешним кон¬ тактом. На рис. 48 приведен усложненный вариант этой схемы; реле здесь имеет две независимые обмотки /?, и R2 и не¬ сколько контактов: С,, С2 и т. д. Ток, пропущенный через R^ от Л, питает реле, которое включает контакт Сг, и свою Другую обмотку R2. Между С, и R2 помещено сопротивле¬ ние г, которое позволяет производить очистку устройства замыканием D, вызывающим закорачивание R2. Дополни¬ тельная обмотка /?, изолирует вход от удерживающего и выходного токов, а контакты С2 и др. позволяют получать независимые выходные каналы, если это требуется. В Рис. 47. Простой релейный запоми¬ нающий элемент. Рис. 48. Более сложный релейный запоминающий элемент.
122 ОДНОРАЗРЯДНЫЕ ЗАПОМИНАЮЩИЕ ЭЛЕМЕНТЫ Такое запоминающее устройство, совместно с другими релейными устройствами, позволяет иметь времена сраба¬ тывания от 0,001 сек; в электронных вычислительных ма¬ шинах их главное применение состоит в подключении аппа¬ ратуры ввода и вывода к электронным цепям. Тиратрон Устройство тиратрона, или электронного реле, во многом аналогично устройству триода, описанному ранее. Однако вместо вакуума электроды тиратрона помещены в баллоне, заполненном парами ртути, неоном, аргоном и т. д. Благо¬ даря наличию тяжелых ионов облако электронов, обычно окружающее катод мощной лампы, разрушается, что по¬ зволяет через лампу пропускать гораздо больший ток, чем это допустимо в электронных вакуумных лампах. Кроме того, пары делают тиратрон, когда он находится в прово¬ дящем состоянии, нечувствительным к изменению сеточного потенциала. Таким образом, такая лампа является устрой¬ ством с двумя устойчивыми состояниями и, будучи отперта, может быть снова переведена в непроводящее состояние только уменьшением анодного напряжения до достаточно малой величины. Типичные тиратроны, как, например, 2D21, пропускают токи до 0,5 а, зажигаются за 20 мксек и требуют дня своего гашения до 0,1 мсек. В вычислительных машинах главное применение тира¬ троны нашли для вывода данных, где от маломощных элек¬ тронных устройств машины требуется, чтобы они приводили в действие, в частности, мощные печатающие магниты. Сле¬ дует обратить особое внимание на предупреждение внутрен¬ ней генерации тиратронами ложных импульсов, чему они особенно подвержены; излучаемые ими помехи могут вы¬ звать серьезные нарушения работы других маломощных цепей. Могут применяться и так называемые разностные диоды. Они походят на неоновую лампу, но обладают тем свой¬ ством, что напряжение зажигания V3 сильно отличается от напряжения гашения Vr. Если разностный диод включен между проводниками, потенциалы которых отличаются на 0.5 (К, 1 С,), то нормально он тока проводить не будет.
ЭЛЕКТРОННЫЕ ТРИГГЕРЫ 123 После приложения импульса напряжения достаточной ам¬ плитуды, повышающего потенциал свыше Va, произойдет зажигание лампы, которая станет проводящей, пока не будет приложен отрицательный импульс. Для диода типа ХС14 фирмы Хайвэк напряжение ПД = 135 : 180 б, а Пг=60ж-75е; эта лампа была успешно использована в качестве про¬ межуточного запоминающего устройства между перфокар¬ тами и быстродействующей машиной. Электронные триггеры Этот тип схемы существует в двух различных формах — с одним и с двумя устойчивыми состояниями. Под этим по¬ нимается, что схемы, будучи переведены в возбужденное состояние, либо возвращаются в начальное состояние спустя не¬ которое время без дополнитель¬ ного внешнего воздействия, либо остаются в возбужденном состоя¬ нии, пока не будут выведены из него. На рис. 49 приведен типич¬ ный пример схемы триггера с одним устойчивым состоянием. Сетка лампы V2 благодаря соп¬ ротивлению R удерживается под положительным потенциа¬ лом, настолько высоким, чтобы только не превышалась допус¬ тимая мощность рассеяния сетки. При таких условиях ток проходит по V2, RAj и вызывает падение напряжения на катодном сопротивлении RKm По¬ тенциал сетки лампы V, устанавливается цепочкой RGRE, так что, когда по Rrf проходит ток лампы Vг, падение по¬ тенциала на нем запирает лампу V,. Анод V, при¬ соединен сопротивлением RA к источнику питания, а к сетке Ег конденсатором С. Описанное состояние является устойчивым. Если на сетку V, подать положительный импульс до¬ статочной амплитуды, то I', будет переведена в проводя¬ щее состояние, потенциал на ее аноде упадет и через С Рис. 49. Триггер с одним ус¬ тойчивым состоянием.
124 ОДНОРАЗРЯДНЫЕ ЗАПОМИНАЮЩИЕ ЭЛЕМЕНТЫ к сетке V 2 пойдет отрицательный импульс. Проводимость V несколько уменьшится, потенциал на Дд. упадет, а потенциал сетки V1 возрастет. Этот процесс является регенеративным и прекратится только тогда, когда 1/, полностью откроется, з V2 полностью закроется. После этого конденсатор начнет заряжаться через R, и, когда напряжение на нем достигнет величины, при которой V, начнет проводить, описанный выше процесс пойдет в обрат¬ ном направлении, а цепь вер¬ нется к своему начальному состоянию. Схема, подобная описан¬ ной, широко используется для получения задержек; импульс, возникающий на аноде Vlt задерживается по отношению к запускающему импульсу на сетке на величину, опре¬ деляемую постоянной време¬ ни RC. Схема, занимающая про¬ межуточное положение между триггером с одним устойчивым состоянием, описанным только что, и триггером с двумя устойчивыми состояниями, показана на рис. 50 (триггер Шмидта). В этой схеме имеется связь между RA и сеткой V , осу¬ ществляемая через сопротивление Ra\ кроме того, сетка V2 сопротивлением RE соединена с землей. При достаточно низком потенциале,'поданном на сетку G, лампы I/,, лам¬ па Vs отперта, a Vx заперта напряжением, образующимся на сопротивлении RK. Это состояние сохраняется и при повы¬ шении потенциала G, до тех пор, пока Vt не откроется. В этот момент начинается регенеративный процесс и схема перебрасывается в состояние, в котором проводит лампа Vt, a V2 заперта. При правильно подобранных величинах этот процесс протекает чрезвычайно быстро, и схема часто применяется для формирования или заострения медленно изменяющихся кривых случайной формы. Другим пре¬ имуществом триггера Шмидта является очень большой им- педанц входа, поскольку G, не соединен с другими элемен¬ тами схемы; в связи с этим быстродействие схемы будет вы¬ Рис. 50. Триггер Шмидта.
ЭЛЕКТРОННЫЕ ТРИГГЕРЫ 125 соким, когда она присоединена к таким, например, устрой¬ ствам, как селеновые матричные схемы. Лампы для этой схемы могут быть типа 6J6 и 6SN7, а параметры компонент следующими: RA ^RA=‘22 ком, Re = 33 ком, RB= 22 ком, Rk=10kom при 1^=150 в. Из-за того, что RAi не нагружено сеточной цепью, как это имеет место для Ra , потенциалы двух анодов не одинаковы. Если требуется на анодах получить симметричные потенциалы, то R можно присоединить к напряжению питания +90 в; Рис. 51. Триггер с двумя устойчивыми состояниями. в этом случае напряжения на анодах будут +90 в и +54 в или наоборот. На рис. 51 изображена схема триггера с двумя устой¬ чивыми состояниями. Основная часть схемы здесь та же, что и в триггере Шмидта, с тем добавлением, что управляющая сетка Vl присоединена к аноду Vs цепью, идентичной цепи, соеди¬ няющей анод Vt с сеткой V2. Действие дополнительной связи таково, что если, например, V, проводит, то потенциал в о будет низким. Он подается на сетку 1+ которая таким разом запирается. Так как V2 заперта, то потенциал ее анода (точка а) будет высоким, и поэтому потенциал сетки 1 удет удерживаться высоким настолько, чтобы лампа РОДолжала оставаться отпертой. агодаря симметрии схемы в отношении ламп и дру- х компонент предыдущее справедливо и в случае, когда а 0ТпеРта, a Vt заперта. Схема может быть переведена из
126 ОДНОРАЗРЯДНЫЕ ЗАПОМИНАЮЩИЕ ЭЛЕМЕНТЫ одного состояния в другое импульсами соответствующей полярности, приложенными к сеткам или анодам. Чтобы из такого триггера сделать двоичный счетный элемент, надо к нему добавить устройство, которое могло бы запоминать предыдущее состояние при переходе схемы от одного состояния к другому. На рис. 52 показаны два двоичных счетных элемента, построенных на базе триггера с двумя устойчивыми состоя¬ ниями. В первом элементе (рис. 52, а) память осуществляет¬ ся двумя конденсаторами Ст, соединяющими анод одной лампы с сеткон другой. Схема запускается импульсами, по¬ даваемыми на обе сетки одновременно через элементы связи Gc (вход S). Элементы могут быть выполнены в виде обыч¬ ных конденсаторов, диодов или триодов и, в общем, в виде любых элементов, изолирующих сетки друг от друга по постоянному току. Другой точкой приложения спускового импульса является общий катод /(; легко видеть, что им¬ пульс, приложенный к нему, равноценен паре импульсов на сетках. Приведем простое объяснение работы триггера. Предпо¬ ложим, что к сеткам приложены отрицательные импульсы. Тот, который попадает на сетку запертой лампы, не воздей¬ ствует на схему; но тот, который приложен к сетке отпер¬ той лампы, усиливается и через конденсатор Сш попадает, уже в виде положительного импульса, на сетку запертой лампы. При этом его амплитуда будет достаточной, чтобы подавить первоначальный отрицательный импульс и открыть ранее запертую лампу. Начиная с этого момента, процесс становится регенеративным, так как следующий отрица¬ Рис. 52. Счетные элементы.
ЭЛЕКТРОННЫЕ ТРИГГЕРЫ 127 тельный импульс будет послан назад на сетку ранее отпер¬ той лампы, с тем чтобы усилить уже существующий отри¬ цательный импульс, поданный на нее. Процесс прекра¬ щается, когда состояние схемы переходит в противополож¬ ное первоначальному. Свойства запоминания, необходимые для преобразования триггера с двумя устойчивыми состояниями в счетный эле¬ мент, лучше видны на схеме, приведенной на рис. 52, б. Здесь каждый анод соединен со своей сеткой при помощи сопротивления 7? и диода I). Так как в этой схеме аноды на¬ ходятся обязательно под потенциалом более высоким, чем сетки, то диоды не проводят. Катоды диодов соединены кон¬ денсаторами С с линией, несущей импульсы. В течение не¬ рабочей части периода схемы конденсаторы С через сопро¬ тивления R заряжаются до потенциалов, соответствующих анодным. Предположим теперь, что к 5 приложен отрицательный импульс. Через конденсаторы С он пройдет к катодам дио¬ дов. Если левая сторона первоначально заперта, то ле¬ вый анод схемы находится под высоким потенциалом, ко¬ торый подается также и на катод диода Dx, благодаря чему последний не может отпереться, если через С проходит не¬ большой отрицательный импульс. С другой стороны, если лампа открыта, то ее анод находится под низким потенциа¬ лом, а потенциал катода диода D 2 лишь слегка превышает потенциал его анода. Когда от S через С приходит импульс, диод D2 пропускает его к сетке проводящей лампы триг- гера. Таким образом, эта сторона запирается, а регенера¬ тивный процесс меняет начальное состояние схемы на обратное. Как видно, запоминающие свойства цепочки RC заклю¬ чаются в том, что она препятствует возникновению быстрого регенеративного процесса триггера. Практически данные приведенных схем могут быть сле¬ дующими: лампы К, и V,—6J6; I), и D,—6AL5 или 1N33- сопротивления RA~RA=RE=RK--22 ком; Ra=Rc_= - '■> ком; RK—10 ком, R=68ком; емкости Ст=С=5'j‘мкмкф; пряжение V а— 150 с. Для работы схемы рис. 52 требуются оЛЛЬСЬ! с вРеменем нарастания в 1 мксек при амплитуде ‘ До 60 в. В работе такая схема показа’ла себя весьма н«Дежной, пуск ее прост.
128 ОДНОРАЗРЯДНЫЕ ЗАПОМИНАЮЩИЕ ЭЛЕМЕНТЫ Одноразрядная память логического типа Для машин, работающих последовательно и имеющих частоту повторения порядка мегагерц, описанные выше одноразрядные запоминающие элементы на триггерах не подходят. Очевидно, что при использовании мощных ламп с сопротивлениями нагрузки и смещения, измеряемыми тысячами ом вместо десятков тысяч, создать триггеры для работы в мегагерцевом диапазоне возможно. Однако такое решение проблемы нельзя признать удовлетворительным. Проще этого добиться чис¬ то логическими средствами так, как изображено на рис. 53. Остановка В Синхронизирую¬ щие имлурьш 6*0- Рис. 53. Логический однораз¬ рядный запоминающий элемент. Рис. 54. Более сложный одно¬ разрядный запоминающий эле¬ мент. При отсутствии сигнала входа на А схема находится в покое. Когда на А поступит импульс, то он пройдет через вентиль (при отсутствии напряжения на В), а после задерж¬ ки Д (на один импульс) появится на С. Задержанный им¬ пульс подается обратно на вход А, благодаря чему цикли¬ ческий процесс поддерживается бесконечно долго. Для того чтобы цепь возвратить в состояние нуля, на В подается запрещающий импульс. Недостатком этой простой схемы является то, что она работает не синхронно с главным источником синхронизи¬ рующих импульсов машины. На рис. 54 приведена схема усложненного варианта. В этой схеме импульсы запуска, а также задержанные импульсы используются для открытия вентиля, пропус¬ кающего синхронизирующие импульсы, в результате чего выход схемы синхронизирован с работой всей машины.
ПОЛУПРОВОДНИКОВАЯ ОДНОРАЗРЯДНАЯ ПАМЯТЬ 129 Простая схема, реализующая идеи этого варианта, при¬ ведена на рис. 55. Здесь лампы V,, V2, V, работают, как 2-вентиль с запре¬ щающим входом на V2. Отрицательный импульс выхода, получаемый на /?д, с помощью И, усиливается и инверти¬ руется, а затем снимается с Rв качестве выходного.Кроме того, он после задержки в электромагнитной линии про¬ ходит обратно на сетку V, и таким образом поддерживает процесс. Выход тпг, ,, л_ г~ Линия Синхронизирую- ОстаноБт Писк ~ зидержки щие импульсы У ~ Рис. 55. Схема для рис. 54. В схемах логического типа, применяемых в настоящее время в машине СЕАК, лампа К3 (рис. 55) не используется благодаря замене RA> импульсным (инвертирующим) тран¬ сформатором. Выход для питания других цепей получается низксомным, V, и I/, заменяются вентилями на полупровод¬ никовых диодах,так что единственным постоянным источ¬ ником потерь энергии остается К4. Полупроводниковая одноразрядная память Транзисторы (или кристаллические триоды) могут быть TOR п>КеНЫ В Сх нову одноразрядных запоминающих элемен- в Различных типов Вполне возможно создать устройство, бы п™'™ Для двух Устойчивых состояний использовался Рактепмг кРисталлический триод. В настоящее время в ха- брос л тиках триодов имеется слишком большой раз- я того чтобы схему можно было выполнить вполне 5 э. Бут И к. Бут
130 ОДНОРАЗРЯДНЫЕ ЗАПОМИНАЮЩИЕ ЭЛЕМЕНТЫ удовлетворительной, по крайней мере без добавления та¬ кого количества вспомогательных диодов, что схема ста¬ новится неэкономичной. Схема, аналогичная приводившей¬ ся на рис. 51, показана на рис. 56. Практически данные схемы могут быть следующими: Т,— плоскостной кр исталл ический триод с п-р-п переходами, , R V's = 5 -г- 25 в, Rp = 150 ком, -J s 8 RG=55 ком, Re= 1,5 ком, Rc= -r =15 ком. W Магнитная статическая одноразрядная память Рис. 56. Триггер на транзи¬ сторах. с основными идеями кон¬ струкции запоминающего эле¬ мента этого типа можно было познакомиться при рассмот¬ рении магнитных вентилей в гл. 9. Там были изложены два основных метода запоминания данных: первый — путем использования материалов с прямоугольной петлей гисте¬ резиса (в схемах, приведенных на рис. 43 и 44) и второй — по существу двоичное запоминающее устройство, показан¬ ное на рис. 45 и 46. Следует отметить, что выбор данных из обоих этих устройств может осуществляться только с помощью про¬ цесса, при котором происходит потеря хранящейся ин¬ формации Для того чтобы обеспечить непрерывное хра¬ нение данных в продолжение промежутка времени, охва¬ тывающего много импульсов, необходимо предусмотреть какой-либо метод их восстановления. Это может быть сде¬ лано средствами электроники, так, как описано на стр. 129 (о памяти логического типа), однако более подходящий ме¬ тод состоит в использовании пары регистров со сдвигом, типа тех, которые будут описаны в следующей главе. Одноразрядные запоминающие элементы, сделанные из материалов с прямоугольной петлей гистерезиса, не под¬ ходят в настоящее время для работы на частотах выше 50 кгц при металлических сердечниках и 200 кгц при сер¬ дечниках феррокерамических.
МАГНИТНАЯ ДИНАМИЧЕСКАЯ ОДНОРАЗРЯДНАЯ ПАМЯТЬ 131 Магнитная динамическая одноразрядная память Были предложены два типа динамических одноразряд¬ ных магнитных запоминающих элементов. В первом из них, магнитно-акустическом (рис. 57), используются два следующих свойства магнитных материалов: 1) остаточный магнетизм, 2) магнитострикционный эффект. Тонкая проволочка, скажем никелевая, проходит че¬ рез три небольшие катушки из проволоки А, В и С. В и С Синхронизирующие Вход импульсы ШЛрр ы-— L в Д ВикелеВая / 'выход проволока цифр Рис. 57. Магнитно-акустический запоминающий элемент. намотаны поверх друг друга, а обмотка А помещена на рас¬ стоянии, которое можно менять. Пропуская через В ток, можно намагнитить проволоку в соответствующем направлении. Если теперь по обмотке А пропустить импульс тока, то в никеле произойдет магнито- стрикционное сжатие (или растяжение) и по проволоке пройдет звуковой импульс. Когда этот звуковой импульс Достигнет ВС, то он произведет смещение элементарного намагниченного участка под катушками и таким образом наведет э.д.с. выхода в обмотке С. Это устройство прочно, просто по конструкции, способно работать с частотой, измеряемой мегагерцами, и обладает хорошим выходом. Оно обладает также тем свойством, что при соответствующем расположении А и ВС записанные Данные могут быть прочитаны с некоторой задержкой, а не медленно, как это происходит в других устройствах. Длина используемой проволоки не ограничена; на одном рОиме может быть записано до четырех двоичных цифр. в ДРУП* свойств и данные деталей схемы ‘будут описаны 5*
1-32 ОДНОРАЗРЯДНЫЕ ЗАПОМИНАЮЩИЕ ЭЛЕМЕНТЫ Другая динамическая магнитная память на 1 разряд — это так называемый феррорезонансный триггер. В нем используется свойство насыщения магнитных материалов при работе в несложной схеме, приведенной на рис. 58. Если по катушке самоиндукции с железным сердечником проходит переменный ток, то индуктивность ее вначале с увеличением тока возрастает, а затем, после достижения f максимума, уменьшается, асимптоти¬ чески' приближаясь к некоторому оп¬ ределенному значению. Это иллюстри- Рис. 58. Схема фер- рорезонансной цепи. а) а Рис. 59. Кривые токов для рис. 58. руется кривой ZL, приведенной на рис. 59, а для обычно¬ го материала сердечника типа мю-металла. Соотношение между Zma4 и ZA порядка 20 : 1, а для материалов с прямо¬ угольной петлей гистерезиса больше. Рассмотрим работу схемы, приведенной на рис. 58. Из рис. 59, б видно, что напряжение ECL на цепочке LC вна¬ чале с увеличением тока возрастает, достигает максимума, а затем падает до минимума, при котором емкостное сопро¬ тивление равно по величине и обратно по знаку индуктив¬ ному. Это соответствует условию резонанса в цепи LC. При дальнейшем увеличении тока напряжение ECL возрастает. Проведя линию нагрузки, мы получим два пересечения Р и Q, которые характеризуют два устойчивых состояния схемы. Пересечение в точке V соответствует отрицатель¬ ному активному сопротивлению и является неустойчивым. Таким образом, схема рис. 58 может занимать два устой¬ чивых токовых состояния для соответственно выбранных значений приложенного переменного напряжения Е~.
НЕДВОИЧНАЯ ОДНОРАЗРЯДНАЯ ПАМЯТЬ 1.33 Практическая схема феррорезонансной цепи показана на рис. 60. Здесь два резонансных контура L,C, и LSCS питаются от источника переменного тока напряжением *Е~ через общую емкость С{, причем С,, и Е~ подобраны так, что в данный момент в резонансе может находиться лишь один контур. Если в резонанс войдут оба контура, то напряжение £\ упадет настолько, что один из них выйдет из резонанса, а если резонанса нет ни в одном, то будет под¬ ниматься, пока в резо¬ нанс не войдет один из контуров. Включая в цепи выхода О, и О, вып¬ рямители, можно полу¬ чить выход на постоян¬ ном токе. Чтобы схему привести в данное состоя¬ ние, необходимо подать импульс в одну из обмо¬ ток У1 или У2. При одно¬ временной подаче им¬ пульсов в обе обмотки со¬ стояние схемы переменится, в связи с чем схему можно ис¬ пользовать в качестве обычного двоичного счетчика. В коммерчески доступном образце такого устройства применена частота питания 500 кгц, частота импульсов триггера —20 кгц при продолжительности 2 мксек и ам¬ плитуде, равной 20 в. Предполагалось, что можно построить одноразрядный запоминающий элемент, используя магнитный усилитель о схеме Рэмэя, однако, насколько можно проследить, не ио извлечено никакой практической пользы из предло- г,, ™я’ привлекающего возможностью получения на выходе остылой мощности. Недвоичная одноразрядная память системрб^Ма пРедставления отдельных цифр в недвоичной мегагеппа “сления ПРИ частотах повторения порядка одного Можно v нашла еше Удовлетворительного разрешения, „-помянуть три следующих устройства, опробо¬ 1 X С; Ijb Lzi\ h С, -J-C, Сz -р О» Рис. 60. Практическая схема ферро¬ резонансной цепи.
1-34 ОДНОРАЗРЯДНЫЕ ЗАПОМИНАЮЩИЕ ЭЛЕМЕНТЫ ванных для этой цели: 1) декатрон, 2) СТК-трон, 3) тро- хотрон. В первых двух используется газовый разряд и скорости малы: 1 кгц и 20 кгц соответственно. Третье устройство способно работать при мегагерцевых частотах, но, во-пер¬ вых, его нет в продаже, а во-вторых, оно слишком сложно, Разряд Формы ампульгоВ + НОВ Рис. 62. Схема с декатроном. чтобы его можно было использовать в количествах, требуе¬ мых современной вычислительной машиной. Декатрон — это лампа обычных размеров (существует и малогабаритный вариант), имеющая четыре электрода, смонтированных в атмосфере инертного газа, например неона. Электроды g,, g2, К и К0 образуют систему, напоми¬ нающую клетку, которая окружает дисковый электрод А, как показано на рис. 61. При работе анод декатрона А присоединяется к источнику напряжения через большое сопротивление, его катоды К заземляются непосредственно, К0 соединяется с землей через сопротивление, гораздо меньшее сопротивления в анодной цепи, а на системе сеток gi и g2 устанавливается потенциал, промежуточный между потенциалами анода и земли. Типичная схема включения декатрона приведена на рис. 62.
НЕДВОИЧНАЯ ОДНОРАЗРЯДНАЯ ПАМЯТЬ 1-35 Так как обе катодные системы находятся под потенциа¬ лом более низким, чем потенциал сеток, то на аноде А на¬ чинается тлеющий разряд, который устанавливается на одном из проводников — К или же К0. При этом большое анодное сопротивление делает общий разряд во всех точках невозможным. Катод К0 используется в качестве нулевой точки, и разряд может быть переключен на него путем мгно¬ венного отсоединения /С от земли. Если теперь приложить отрицательный импульс к gt, то разряд распространится с проводника К (или /\0) на соседний проводник gt. Следую¬ щий отрицательный импульс, приложенный к g2, разделит разряд между g2 и g,, и если теперь импульс с g, убрать, то разряд распространится на проводник /\ (или К0), примы¬ кающий к g2. Снятие импульса с g2 приводит к восстановле¬ нию разряда на К или К„, но разряд при этом сдвинется на одно положение по отношению к первоначальному. Легко видеть, что это действие в точности совпадает с тем, которое требуется от кольцевого счетчика, описанного в гл. 6, а также, что перемена очередности подключения электродов на обратную приводит к перемене направления движения разряда. Два перекрывающихся импульса, тре¬ буемых для работы декатрона, очень просто получаются при использовании интегрирующей цепи, помещенной между gt и g2 (или наоборот). Особое преимущество декатрона заключается в том, что положение разряда можно видеть, так что цифровое содер¬ жимое можно в любое время наблюдать с помощью соответ¬ ствующего шаблона. Вследствие малой скорости работы (1 кгц) декатрон GC10A не был широко использован в авто¬ матических вычислительных машинах; в лабораториях фир¬ мы «Стандарт Телефон энд Кэйблз» был разработан более быстродействующий вариант лампы с холодным катодом для кольцевого десятичного счета, и он, допуская частоту в - кгЦ> может найти себе применение в счетных установ- , будущего со средней скоростью работы. Его тип — G10 240Е. ^Трохотрон — это электронно-лучевая трубка, в кото¬ рой луч мощет быть удержан в одном из многих устойчивых оложений, причем его можно с помощью соответствующих мпульсов передвигать шагами. Поскольку работа трохо- Рона не зависит от разряда в газе, то может быть получена
1.36 РАЗЛИЧНЫЕ КОМПОНЕНТЫ весьма высокая скорость, однако трохотрон очень сложен по своему устройству и подробнее рассматриваться здесь -не будет. Описанные выше устройства нормально конструируются для работы в десятичной системе счисления, однако нет причин, почему бы их не делать с любым заданным числом электродов. Сейчас в разработке находятся новые варианты ламп GC10A и G10,240E, в которых выведены все девять катодов; это позволит определять содержимое лампы ста¬ тически, в то время как сейчас надо заставить лампу вы¬ полнить полный цикл и определить момент прохождения раз¬ ряда через нулевое положение, следя за изменением потен¬ циала катода Кп (см. рис. 61 и 62). Для работы с СТК-тро- ном или G10/240E полезно иметь вспомогательные импульс¬ ные лампы и лампы переноса накопления, которые также имеют холодный катод и являются экономичными с точки зрения потребления. Их тип —G1/370K- В заключение следует отметить, что магнитный сердеч¬ ник может явиться основой для создания счетчика по мо¬ дулю п. Этот принцип применен в устройстве, называемом Zah/drosse/ и используемом для сварочного оборудования; можно предположить, что система будет занимать 10 поло¬ жений со скоростью по меньшей мере 1 кгц. ГЛАВА 11 РАЗЛИЧНЫЕ КОМПОНЕНТЫ Цель этой главы — дать краткий обзор некоторых уз¬ лов, играющих важную роль в общей конструкции машины. Большинство их читателю в какой-то мере уже знакомо по предыдущему изложению. Например, регистры со сдвигом рассматривались при разборе схем сложения и умножения. В настоящей главе мы, однако, не будем рассматривать узлы, совпадающие по конструкции с основным запоминающим устройством машины, так как ему посвящена отдельная глава. В част¬ ности, это касается акустических регистров (коротких линий задержки), регистров, использующих запомина¬ ющие свойства вещества с вторичной эмиссией электронно¬
РЕГИСТРЫ со сдвигом 137 лучевой трубки, и техники повторяющейся магнитной записи. Другие компоненты, описанные в этой главе, меньше зависят от структуры машины, в которой они применены; это — функциональные схемы и схемы совпадения. Регистры со сдвигом Предполагается рассмотреть два вида регистров: ре¬ гистр, основанный на использовании в качестве основных элементов ламповых одноразрядных запоминающих эле¬ ментов, и регистр, в котором ис¬ пользуются магнитные элементы с прямоугольной петлей гисте¬ резиса. Основной проблемой лам¬ повых регистров является проб¬ лема передачи содержимого из одного разряда (например, Ат на рис. 63) в другой (Лт+1) и выполнение идентичных опера¬ ций во всех остальных разрядах регистра. Для достижения этой цели пригодны три метода. При первом методе Ат подсоединяет- ся К^»и+1С помощью вентиля Gm, который обладаетсвойством сохранять состояние в течение некоторого времени после того, как оно было установлено, и пропускать состояние Я Лт+1. При втором методе все разряды очищаются, а схема устроена так, что если какой-нибудь разряд содержит единицу, то он выдает импульс перехода к нулю. Этот им¬ пульс, задержанный на А}м, передается в Лш+1 после того, как в Ан+1 закончатся переходные процессы, вызванные предыдущей операцией очистки. Третий метод относится к чисто логическим. Содер¬ жимое всех разрядов переносится во вспомогательный регистр. В, первоначально очищенный. Затем очищает¬ ся регистр Л, а содержимое регистра В, > смещенное на обра РазРяд в желаемом направлении, переносится Вт Рис. 63. Типы регистров.
138 РАЗЛИЧНЫЕ КОМПОНЕНТЫ Регистры каждого из этих типов были реализованы и работали, и если не учитывать их сложности, то выбор между ними сделать трудно. . Схема регистра первого типа приведена на рис. 64. Здесь аноды разрядов, передающих содержимое, присоединены к сеткам принимающих разрядов через сопротивления R и диоды D. Содержимое разрядов «запоминается» конден¬ саторами С с постоянной времени RC. Разделение цепей анодов и сеток по постоянному току производится диода¬ ми D. Если к проводнику, общему для конденсаторов, подвести отрицательный импульс, то через соответствующий диод отрицательный импульс пройдет на сетку того прием¬ ного разряда, который присоединен к проводящему (на¬ ходящемуся под низким потенциалом) аноду выдающего разряда. Результатом этого будет установка на сетке при¬ нимающего разряда цифры, содержащейся в выдающем разряде. Все разряды меняют состояние одновременно, а запоминание начального содержимого во время прохож¬ дения короткого импульса сдвига происходит на цепочке RC. Приемлемыми параметрами будут: R=68 ООО ом, С=50 мкмкф. Схема регистра с задержкой \т приведена на рис. 65. Здесь все разряды регистра переводятся в состояние нуль при помощи отрицательного импульса, подаваемого на их сетки. На левых анодах тех разрядов, которые содержали единицу, происходит отрицательный скачок напряжения. С помощью электромагнитной линии он задерживается, а когда импульс очистки и последующие возмущения зату¬ хают, проходит через разделительный конденсатор С и диод D к следующему триггеру, чтобы перевести его в со
РЕГИСТРЫ СО СДВИГОМ 139 стояние единицы. Сопротивления R необходимы для того, чтобы подать на диод смещение, и могут быть опущены, если используются германиевые элементы. Регистры этого типа, по-видимому, не обладают ника¬ кими преимуществами по .сравнению с ранее описанными регистрами с непосредственным соединением вентилями. Их Рис. 65. Регистр с очисткой и линией задержки. -Mi существенным недостатком является использование доро¬ гих электромагнитных элементов задержки, отсутствую¬ щих на рынке. На рис. 66 приведен хороший пример чисто логического регистра. В этой схеме потенциал сетки триода Vn устанавливается потенциа¬ лом триггера Л„_,. Като¬ ды всех таких триодов(по одному на разряд AJ при¬ соединены к общему про¬ воднику К,, потенциал ко¬ торого устанавливается не¬ много выше, чем потенциал сеток Ап. При таких усло¬ виях триод Vn_xl заперт. Предположим, однако, что потенциал катода К, будет снижен; в некоторый мо¬ мент триод откроется и переведет Вп_1 в состояние, при котором его правый анод станет проводящим. Если же по¬ тенциал К, понизится еще больше, то в цепи сетки V„_, , появится ток и потенциал сетки разряда А , уменьшится, переведя последний в состояние нуля (т. е. с запертым пра- ным элементом).
140 РАЗЛИЧНЫЕ КОМПОНЕНТЫ Цикл операций, описанных выше, приводит к обязатель¬ ной очистке всех разрядов А и установке на нуль всех раз¬ рядов В. Однако, если потенциал К, уменьшается менее сильно, то V„_bl будет проводить, только если правая сетка Л„_, вначале была под высоким потенциалом, и не будет вообще, если сетка уже находится под низким потенциа¬ лом. Результатом этого является перенос единиц из Ап_1 в Вп_х и очистка Ап_х; в то же время Вп_х остается в нулевом состоянии, если в Ап_х содержался нуль. Удвоив описанную схему, содержимое Вп_х можно не¬ посредственно переносить в Ап. Результатом такой опера¬ ции будет сдвиг содержимого А на один разряд вправо. Положительной чертой этой схемы является полное от¬ сутствие в ней конденсаторов, в связи с чем схемы такого типа могут работать с очень высокими скоростями; напри¬ мер, в Принстонской вычислительной машине была полу¬ чена частота сдвига, равная 2 мггц. Для облегчения про¬ цессов умножения и деления в этой машине были добавлены элементы В. Недостаток схемы заключается в том, что для питания Кх и Кz необходимы источники с малым сопротивлением. На практике либо следует питать отдельные группы от нескольких мощных катодных повторителей, либо в схеме одного катодного повторителя использовать несколько параллельно включенных ламп. . Схемы, аналогичные описанным, могут быть выполнены и на основе применения кристаллических триодов вместо ламповых. К сожалению, из-за присущего им малого со¬ противления в цепи сдвига обычно необходимо включать дополнительные триоды. Регистры со сдвигом на точечных триодах работают на частотах вплоть до 1—2 мггц, а ре¬ гистры на плоскостных кристаллических триодах — на частотах порядка 100 — 200 кгц. Регистр со сдвигом, работа которого основана на только что описанном принципе, может быть создан из магнитных элементов с прямоугольной петлей гистерезиса. Один из вариантов его показан на рис. 67. Посредством намагничивания до насыщения, скажем, с помощью катушки IVг в сердечнике Ап_л накапливается энергия, которая определяется остаточным магнетизмом материала сердечника. Затем к обмотке W3 прикладывает¬
регистры со сдвигом 141 ся импульс тока такого направления, чтобы сердечник Ап_ перемагнитить. При таких условиях на обмотке ll7, наво¬ дится э.д.с. индукции, которая проходит через выпрямитель D1 и сопротивление R к воспринимающей обмотке проме¬ жуточного сердечника Вп_л. Предполагая, что остаточный магнетизм сердечников А, В достаточно велик, можно по¬ казать, что сердечник Вп_, может быть доведен до насыще¬ ния, несмотря на неизбежные потери в цепи. Приближенно IV, Wz 3 ? п-г В,, п-1 V kb ч - J j IZ А+В Т+А Рис. 67. Магнитный регистр со сдвигом. это можно доказать следующим образом. Предположим, что в сердечнике А имеет место приращение потока dfa, обмотка W, состоит из Л/, витков, а обмотка W 2 — из N 2 витков. Тогда, полагая, что в сердечнике В происходит изменение потока dyb, получим следующие дифференциальные урав¬ нения для э.д.с.: выход с Wl = N,d~; вход на W2 = N2~. Поскольку между этими э.д.с. должно существовать равенство, напишем: /V — = V ^2* dt ‘у2 dt • Интегрируя, получим + const. Таким образом, пренебрегая потерями в цепи, yh можно сделать больше wa во сколько угодно раз .простым измене¬ нием отношения На практике это оказывается не /V о
142 РАЗЛИЧНЫЕ КОМПОНЕНТЫ так, и более точный анализ, учитывающий влияние потерь в схеме, дает соотношение A/1=2A,Z, при котором дости¬ гается оптимальная передача энергии. Назначением диодов D, и D2, а также сопротивления R является предотвращение обратного протекания тока от j4„_, к Вп_1 при подаче сигнала на обмотку W2. Если импульс тока, подаваемый в W 3, имеет направле¬ ние, при котором новый магнитный поток совпадает по знаку с уже имеющимся в сердечнике, то в материалах с прямоугольной петлей гистерезиса импульс выхода с Ап_1 будет недостаточен для изменения состояния следующего разряда Вп_,. Таким образом, подавая импульсы на об¬ мотки W г мы осуществим перенос цифровой информации из сердечников А в сердечники В. После этого сердечники А остаются в очищенном (или нулевом) состоянии и, таким образом, могут получить информацию с В после получения аналогичного импульса переноса, подаваемого по шине К2 в обмотки W 3 сердечников В. Практически описанная схема может состоять из следующих деталей: сердечник с прямо¬ угольной петлей состоит из двух или более витков ленты 0,001 дюйма : 0,125 дюйма, намотанной в виде часовой пружины. Диаметр кольца, получаемого таким образом, составляет 0,375-ь0,5 дюйма. Желательно, чтобы остаточная индукция достигала 90% индукции насыщения. Гарвардской вычислительной лабораторией было показано, однако, что более правильной оценкой пригодности является соотношение Го 8#s г, Нг ’ где величины, входящие в формулу, определяются из рис. 44 (стр. 117). Обмотки схемы содержат: 1Е,= 150 витков, IE.,=75 витков и 1Е3=200 витков. При таких условиях 32 катушки можно соединить последовательно и питать от пентода, даю¬ щего импульсы тока продолжительностью в 20 мксек и ве¬ личиной 125 ма (например, лампа 6V6). Сопротивление R должно равняться примерно 12 ом, а выпрямительные эле¬ менты должны обладать прямым сопротивлением не более 6 ом и обратным сопротивлением не менее 1000 ом при при¬ ложенном напряжении постоянного тока 20 в.
РЕГИСТРЫ СО СДВИГОМ 143 Устройства такого типа, изготовленные из сплавов дельтамакс, HCR или пермаллоя F, обеспечивают хоро¬ шую надежность при работе на частотах сдвига (Л„_,—>ЛП) порядка 30 кгц. Могут быть созданы и магнитные регистры со сдвигом и линией задержки; их применение приводит к существен¬ ной экономии оборудования и упрощению питающих схем. На рис. 68 показан регистр со сдвигом, в котором на раз¬ ряд приходится по одному сердечнику. Предположим, что Лп , Ап Ап+1 Е СВВиг Рис. 68. Регистр, в котором используется по одному сердечнику на разряд. в состоянии единицы, т. е. в насыщенном состоянии, нахо¬ дится только сердечник Ап. Подача импульса сдвига в об¬ мотки W г приводит к заметному выходу энергии только с Ап, что проявится в виде тока через диод D, заряжающего емкость С. Продолжительность импульса сдвига сделана малой по сравнению с постоянной времени RC, так что С в продолжение импульса сдвига заметно ; не разрядится. Когда импульс сдвига заканчивается, С разряжается через R и обмотку входа Wг сердечника АплПараметры схемы выбраны такими, что результирующий намагничивающий ток достаточен для перевода сердечника Лп+1 в полностью насыщенное состояние. Таким образом, описанный только что принцип позволяет подачей простого импульса сдвига передвинуть на один разряд вправо цифровую информацию, хранящуюся в сердечниках С,, ..., Ст. Пр,и высоких ско¬ ростях работы трудно удовлетворить требованию, чтобы про¬ должительность импульса была гораздо меньше постоянной
144 РАЗЛИЧНЫЕ КОМПОНЕНТЫ времени RC, и это привело к разработке систем, в кото¬ рых заряд, накапливаемый конденсаторами С при наличии импульса, изолируется от разряда через обмотку W2 до¬ полнительным диодом, а затем пропускается через нее в требуемый момент времени. Ввиду того, что все сердечники должны быть тороидами, желательно, насколько это возможно, сократить число об¬ моток. Наиболее экономичная схема, разработанная с уче¬ том этого, представлена на рис. 69; заметим, что обмотка сдвига используется и в качестве выходной обмотки и в качестве обмотки установки данных. Недостатки регистра этого типа заключаются в наличии напряжения постоянного тока на обмотках и падении напряжения на регистре, из-за чего нельзя соединить его начало и конец для получения циклической системы. Практически данные и детали регистра, показанного на рис. 68, могут быть следующими: W,= 100 витков, Ws= = 50 витков, W3=200 витков, С=0,05 мкф, /?= 150 ом, D — двухшайбовый селеновый выпрямитель. Использо¬ ванные сердечники — 8-миллиметровые кольца из феррита Мулларда типа D1, импульс сдвига имеет продолжитель¬ ность 7—10 мксек и величину 300 ма. Частота повторения может быть доведена до 30—50 кгц. Следует заметить, что существенную роль играет форма импульсов сдвига. Время нарастания 3 — 4 мксек, по-видимому, можно считать до¬ статочным. Регистр, изображенный на рис. 69, имеет 1РЯ= 100 витков, а величины других элементов совпадают с данными регистра, описанного только что; амплитуда тока импульса сдвига должна быть, конечно, увеличена. Результаты экспериментов с сердечниками диаметром 2 мм и германиевыми выпрямителями показали возмож¬ ность создания регистров с частотой сдвига до 250 кгц.
ФУНКЦИОНАЛЬНЫЕ СХЕМЫ 145 Функциональные схемы В гл. 5 уже были определены два типа функциональных схем: это — схема с одним входом и многими выходами и схема с многими входами, но одним выходом. Напоминаем, что последняя схема требуется для получения единич¬ ных выходов при любых сочетаниях нескольких входов. Рис. 70. Релейная ветвящаяся функциональная схема. Возможно, простейшим и наиболее надежным устройством такого рода является релейная ветвящаяся схема, пока¬ занная на рис. 70. Схема вычерчена так, чтобы проиллю¬ стрировать случай двух входов /, и /2, на которые в любом сочетании может быть подано напряжение. /, присоединен к обмотке реле Нг, имеющего один переключающий контакт, тогда как 1г присоединен к обмотке реле Н2, имеющего два переключающих контакта. Контакты реле Я, и Я2 соеди¬ нены, как показано, и легко видеть, что шина О присоеди¬ няется к четырем выходам А, В, С, D в соответствии со схемой, приведенной в таблице 5. Конечно, схему можно рас¬ ширить для большего количества входов и соответственно — выбора выходов. В общем, если п — число входов, то реле Нп должно иметь ^ переключающих контактов, елейные ветвящиеся схемы обла- Дают преимуществом получения стопроцентного разделения между избранным и отбрасываемыми вы#о- дами. Их недостатки — ограниченная скорость работы (не <v,r,Tpee 1 мсж) и сравнительно высокая стоимость при °льшом количестве входов. Таблица 5 Я. О 0 0 А е 1 В 1 0 С 1 1 D
146 РАЗЛИЧНЫЕ КОМПОНЕНТЫ На рис. 71 изображена функциональная схема со мно¬ гими входами и одним выходом, которая нашла себе широ¬ кое применение в современных электронных вычислитель¬ ных машинах. В этой схеме предполагается, что входы /, и /2 даны в фопме пар напряжений а и Ь, например, если /,=0, то а=0 и Ь~ +100 е; если же /,= 1, то а= +100 в и Ь=0, и анало¬ гично для входа /2. а в tг Рис. 71. Матричная функцио¬ нальная схема. Выходные шины Л, В, С, D присоединены к проводникам входов 1г(а, Ь), 12(а, Ь), как показано, при помощи со¬ противлений R. Легко убе¬ диться в том, что напряжения линий А, ..., D при меняю¬ щихся сочетаниях /, и /2 будут принимать следующие значения, указанные в таблице 6. Таким образом, для каждого сочетания входов имеется только одна шина, потенциал которой равен 100 в (то же для Ов). Поэтому устройство может быть применено для открывания вентиля выбранного выхода. В практических Таблица 6 Шина Напряжение 11=12=0 /1=0; /2= 1 /,= 1; +=0 Л=1; Л=> А + 100 + 50 + 50 0 В + 50 0 + 100 + 50 С + 50 + 100 0 + 50 D 0 + 50 + 50 + 100 применениях величину сопротивлении высокой, например больше 0,25 мгом. Это ограничивает скорость нарастания импульса до значения, определяемого постоянной времени, зависящей от сопротивления R и внешней емкости. Более серьезным, однако, является то, что при увеличении числа входов п разность между напря¬ жением избираемого выхода и ближайшего соседнего умень¬ шается до величины ■ Uah, где UаЬ—напряжение между
ФУНКЦИОНАЛЬНЫЕ СХЕМЫ 147 а и Ь. Это означает, что если требуется увеличение числа входов, скажем, более 5, то следует очень сильно повышать разность между а и Ь. Последний недостаток можно преодолеть, если вместо сопротивлений во все столбцы, кроме столбца Д, вклю¬ чить диоды, которые облада¬ ют прямым сопротивлением, гораздо меньшим R, а обрат¬ ным сопротивлением — гораз¬ до большим его. При таких улучшениях напряжения вы¬ хода становятся чувствитель¬ ными по отношению к b для выбранного канала и по отно¬ шению к а —для всех осталь¬ ных. Единственным существен¬ ным недостатком диодной ма¬ трицы является ее высокая сто¬ имость, но и она может быть уменьшена за счет некоторого уменьшения скорости работы путем замены диодов селено¬ выми дисковыми выпрямите¬ лями. Для выходов, где постоян¬ ный ток не обязателен, могут быть применены различные схемы с насыщающимися дрос¬ селями. Одно из таких устройств показано на рис. 72. В нем на каждом кольцевом сердечнике из материала с пря¬ моугольной петлей гистерезиса имеется четыре обмотки. По шинам а и b входов Д и Д либо идет ток, либо нет. До¬ пустим, что ток идет по шинам b обоих входов. Тогда на всех сердечниках, кроме А, имеется по крайней мере по одной сбмотке с током и, следовательно, эти сердечники насыщены. Для обнаружения нужного сердечника по последовательно соединенным обмоткам р пропускается имцульс тока. Этот ток подбирается так, чтобы магнитное состояние сердечника изменялось лишь в том случае, если в других обмотках Рис. 72. Функциональная схема на сердечниках.
148 Различные компоненты данного сердечника ток отсутствует (точка s на рис. 44). Только в одном этом сердечнике произойдет значительное изменение потока и, благодаря трансформаторному дей¬ ствию, на А появится выход. Существенным преимуществом описанной функциональной схемы является то, что на ее выходе можно получить значительные токи, если трансфор¬ маторы, какими являются сердечники с обмотками А, В, С и т. д., сделать понижающими по отношению к обмотке р. Схемы совпадения При конструировании вычислительной машины часто необходимо иметь способы установления равенства двух величин. Две простые релейные схемы для выполнения Н, I: h li (I) (Ш (Ш) Рис. 73. Релейные схемы совпадения. такой операции изображены на рис. 73. Первая из них (/) — это функциональная схема, в которой объе¬ динены выходы, соответствующие двум совпадающим вхо¬ дам. Из рассмотрения схемы становится очевидным, что в ней имеются лишние контакты. После их удаления полу¬ чаем вариант II. Если имеется возможность использовать реле с двумя одинаковыми обмотками, то схема еще более упрощается (вариант III). Когда ни одна из катушек не включена, то реле, как показано, находится в отключен¬ ном состоянии. При включении одной из катушек реле срабатывает, и цепь разрывается, а при включении обеих обмоток поля уравновешивают друг друга, в результате чего выходные контакты остаются замкнутыми.
СХЕМА СОВПАДЕНИЯ 149 Если требуется получить быстродействующую схему совпадения, то рис. 73 (/) показывает, что она может быть выполнена по принципу простой матричной функциональ¬ ной схемы. Для сравнения на рис. 74 изображен вариант матричной схемы. В ней потенциалы катодов диодов D и D принимают некоторое среднее значение, только когда Л=4=1 или 1=1 = 0. Таким образом, только в этом V, “О- Ог Л 4 Рис. 74. Схемы совпадения. положении потенциал в р может превышать низший уровень напряжения катодов диодов. Характеристики этой схемы можно улучшить, заменив сопротивления /Д диодами; при совпадении выход будет равен разности напряжений между а и Ь, а не половине ее, как в случае матрицы на со¬ противлениях. Если необходимо обнаружить равенство двух чисел, то сравнивают соответствующие пары разрядов этих чисел и сигналы подают на вентиль с п входами одного из типов, описанных в гл. 9. Впрочем, проще использовать последовательно соеди¬ ненные релейные схемы вида, изображенного на 73 (II) и {III). к 1 ГЛАВА 12 ЗАПОМИНАЮЩИЕ УСТРОЙСТВА Может быть, наиболее важной составной частью совре¬ менной вычислительной машины является устройство, осу¬ ществляющее операцию хранения цифровых данных! Его асто называют «памятью», и в некоторой степени это праведливо, так как запоминающие устройства обладают ногими свойствами, напоминающими процессы запоминания
150 ЗАПОМИНАЮЩИЕ УСТРОЙСТВА у живых существ. От запоминающего устройства машины требуется, чтобы оно удовлетворяло следующим четырем условиям: 1) оно должно иметь возможность сохранять цифровые данные неопределенно долгое время; 2) оно должно выдавать хранящиеся данные, когда это необходимо; 3) оно должно быть недорогим; 4) в нем должна быть обеспечена возможность стирания хранящихся данных и замены их новыми. Кроме того, скорость, с которой данные могут вноситься или выбираться, обычно называемая временем выборки, должна быть сравнимой с временем, идущим на выполнение отдельной операции в арифметическом узле или устройстве управления машины. Следует отметить, что в настоящее время не существует устройства, которое бы полностью удовлетворяло всем поставленным условиям. В этой главе предполагается рассмотреть различные уже сконструиро¬ ванные типы запоминающих устройств, отметив вкратце их достоинства и недостатки. Перечень предполагаемых или уже существующих запоминающих устройств чита¬ ется как программа экзамена по физике, так как при реали¬ зации различных видов этих устройств используются тепло, свет, звук, свойства материалов, механика, электричество и магнетизм. Порядок рассмотрения запоминающих уст¬ ройств будет определяться главным образом скоростью их работы, а не используемыми в них физическими свойствами. Однако и здесь быть до конца последовательным невозмож¬ но, поскольку при изменении логической структуры ма¬ шины выбранные устройства смогут состязаться в скорости работы с принципиально более быстродействующими. Электромеханическая память Непосредственное хранение данных с помощью реле возможно, но оно непрактично, когда от запоминающего устройства требуется большая емкость. Однако было пред¬ ложено несколько устройств, которые обладают высокой объемной и экономической эффективностью, поэтому вни¬ манию читателя предлагается несколько представителей этой группы.
ЭЛЕКТРОМЕХАНИЧЕСКАЯ ПАМЯТЬ 151 Первый из них (рис. 75) — это круглая пластина, которая может вращаться вокруг оси а, проходящей через центр перпендикулярно плоскости пластины. По окружно¬ сти диска на равном расстоянии друг от друга просверлено N отверстий, в каждое из которых вставлен маленький стер¬ женек. Стерженьки с помощью соленоидного механизма с можно выталкивать на любую сторону диска, который может вращаться и останавливаться в положении, когда вытолк¬ нутый на одну сторону вательная.так и параллель¬ ная работа. При первом способе стержни одного диска по оче¬ реди проходят под контактом; а при втором — происхо¬ дит одновременное чтение стержней, укрепленных на не¬ скольких дисках, насаженных на общий вал. Объем в этом устройстве используется очень хорошо, особенно если учесть его механическую природу. Так, устройство на 50 двоичных чисел по 21 разряду каждое имеет вид цилиндра в 8 дюй¬ мов длиной и 2 дюйма в диаметре. На практике, чтобы избе¬ жать вибрационного перемещения стержней во время ра¬ боты, используются более сложные методы. Однако их природа настолько очевидна, что рассматривать их здесь нет необходимости. Фотография описанного запоминающего устройства приведена на вклейке 2. Аналогичное устройство, но более простое в изготовле¬ нии показано на рис. 76. Здесь запоминающие элементы выполнены в виде тонких проволочек, радиально выступа¬ ющих из металлического диска. Проволочки могут перехо¬ дить с одной стороны перегородки b на другую благодаря прорези s и гибкому металлическому язычКу. Когда язычок лежит в плоскости перегородки, проволочки не могут перейти с одной ее стороны на другую, благодаря чему уже тив толкателя с либо под читающим контактом г. В контакт могутвходить толь¬ ко стержни, находящиеся на стороне г, а следователь¬ но, устройство может рабо¬ тать как двоичное запоми¬ нающее устройство. стерженек становится про- г Возможна как последо- Рис. /5. Стержневое запоминающее устройство.
152 ЗАПОМИНАЮЩИЕ УСТРОЙСТВА накопленная информация не изменяется. Когда требуется, чтобы какая-либо из проволочек изменила свое положение, а следовательно и свою цифровую характеристику, то внутрен¬ ний диск d приводится во вращение и в нужный момент отклоняется язычок s, пропуская эту проволочку на тре¬ буемую сторону. Язычок s возвращается в нейтральное положение прежде, чем его достигнет следующая проволоч¬ ка, благодаря чему остальные данные остаются без изме¬ нения. Считывание данных производится пропусканием проволочек, расположенных с одной стороны Ь, под элект¬ рическим контактом. Вследствие простоты механизма от¬ клонения проволочек это устройство может работать со зна¬ чительно большей скоростью, чем описанное выше стерж¬ невое. Его преимущество заключается также и в том, что диск с проволочками можно изготавливать простой штам¬ повкой. При работе по параллельному способу оба описанных устройства имеют среднее время выборки порядка 0,25 сек\ при последовательной работе проволочная память может работать с частотой около 50 гц. Развитие магнитной звукозаписывающей аппаратуры привело к использованию ее для цифровых запоминающих устройств. Покрытая магнитным слоем лента или прово¬ лока удовлетворяет требованиям внешних запоминающих устройств, но плохо подходит для внутренних быстродейству¬ ющих запоминающих устройств. Ь ь Рис. 76. Проволочное запоминающее устройство. Память на магнитном барабане
ПАМЯТЬ НА МАГНИТНОМ БАРАБАНЕ 153 Чтобы преодолеть трудности, связанные с использо¬ ванием магнитной ленты или проволоки, магнитным слоем стали покрывать поверхность цилиндра, устроенного так, что его можно вращать с большой точностью в двух подшип¬ никах. Близко к барабану установлены магнитные головки, Птпь 'тпя wBepxnscib I Поле ВЛивре Рис. 77. Запоминающее устройство на магнитном барабане. служащие для записи и чтения и состоящие из замкнутого (рис. 77). Когда в обмотке, проходит постоянный ток, то 5? 1 ' л Is J \ Время С] (j В) Рис. 78. Кривые напряжения, получаемого в запоминающем устрой¬ стве на барабане. которое распространяется и в воздухе в районе зазора. Если барабан неподвижен, то это поле намагничивает в районе зазора небольшой участок поверхности барабана в направлении, определяемом направлением тока в обмотке. Е1редположим теперь, что барабан вращается с большой скоростью. Когда намагниченный участок проходит перед зазором, изменяется поток в магнитной цепи головки и на обмотках появляется э.д.с. индукции. Форма индуциро¬ ванной э.д.с. приведена на рис. 78. В зависимости от
154 ЗАПОМИНАЮЩИЕ УСТРОЙСТВА направления начального намагничивания кривая э.д.с. принимает одну из двух показанных на рис. 78 форм, и со¬ здать схему, которая будет отличать их друг от друга и пере¬ водить триггер в состояние нуля или же единицы,— 1\д/\|м/\Аал1л/ул>млплад/' * МЛАЛДМШ\МАЛ/\|ДД * J-rSnr1^ о / о / / о о Рис. 79. Го нетрудная задача. Мы предполагали, что барабан во время намагничивания был неподвижен. Если это не так, то резуль¬ таты несколько изменятся. Это иллюстрируется рис. 78, в. Появление плоского участка между пиками i и /' происхо-
ПАМЯТЬ НА МАГНИТНОМ БАРАБАНЕ 155 дит благодаря тому, что на участке ij магнитная индукция не меняется и, следовательно, в читающей головке э.д.с. не наводится. Для того чтобы на таком барабане с помощью распреде¬ ления магнитного потока представить ряд двоичных цифр, можно использовать различные методы намагничивания. В общем, они соответствуют хорошо известным способам передачи сигналов, используемым в телеграфии. Главными среди них являются следующие: a) запись коротких импульсов; b) запись прямоугольных импульсов; c) запись без возврата к нулю; с!) модулирование несущей по амплитуде; e) модулирование несущей по частоте; f) модулирование несущей по фазе. Формы кривых напряжений входа и выхода приведены на рис. 79. На первой кривой at показаны импульсы входа, которые настолько коротки, что поверхность барабана во время процесса записи может считаться неподвижной. Если зазор головки достаточно мал, то получится кривая выхода о0. Плоские участки на кривой выхода будут в том случае, если скорость барабана достаточна для перемеще¬ ния его за время между импульсами более чем на 0,01 дюй¬ ма. На bi показана кривая при вводе данных несколько более продолжительными импульсами, а на fc0 — получаю¬ щаяся при этом кривая выхода, с иллюстрирует для того же вводимого числа кривую напряжения, называемую кри¬ вой без возврата к нулю. Выход с0 при этом характеризу¬ ется изменениями напряжения, происходящими только тог¬ да, когда происходят изменения цифр. Эта система в смысле возможности увеличения плотности записи вдвое превос¬ ходит системы записи а и b и имеет существенные преиму¬ щества при проектировании устройства вывода данных. Ее большим недостатком является то, что в схеме питания головок должна быть предусмотрена возможность пропус¬ кать через головки постоянную составляющую; это в итоге приводит к необходимости использования головок с большим импеданцем. Системе b этот дефект присущ в меньшей степени и совсем отсутствует в системе а, когда для записи исполь¬ зуются короткие импульсы. Все перечисленные выше сис¬ темы относятся к самостирающим, т. е. в них новые входные
156 ЗАПОМИНАЮЩИЕ УСТРОЙСТВА данные автоматически стирают старую информацию. Сис¬ темы с использованием несущей частоты, показанные на d, е и /, таким свойством не обладают. На кривой d4 показан несущий сигнал, модулированный по амплитуде, а на кри¬ вой d0—соответствующий сигнал выхода; аналогично на кривых е.; и е0 приведены напряжения для случая частотной модуляции. Обе эти системы записи осуществимы, однако очевидно, что они малоэффективны, так как для записи одной цифры необходимо иметь несколько колебаний не¬ сущей, тогда как для записи той же цифры достаточно места только одного колебания, если воспользоваться кривой а. Более удовлетворительная схема иллюстрируется кривой /0. Здесь применена фазовая модуляция несущей, дающая весьма эффективную систему. В ней нашли место некото¬ рые особенности метода записи без возврата к нулю, но поскольку используется несущая, то ее можно пропустить через трансформатор и избежать таким образом необходи¬ мости в головках с большим импеданцем. Пожалуй, наи¬ более заманчивая система записи иллюстрируется кривой g0. Здесь вход опять дан в импульсной форме; однако зазор сделан большим по сравнению с длиной намагниченных участков магнитного слоя, представляющих цифры. Ре¬ зультатом этого является такое сжатие импульсов кривых ai и а0, что плоские участки исчезают и начало одного импульса перекрывает конец предыдущего. Результат та¬ кой записи приведен на кривой g0 и совпадает в принципе с кривой при записи без возврата к нулю. Естественно, что увеличивают не зазор, а плотность записи до тех пор, пока отмеченный эффект не наступит при нормальной длине зазора. При таком способе магнитный слой используется наиболее полно, а плотность записи превышает 200 двоич¬ ных цифр на дюйм. При использовании запоминающего устройства на барабане обычно производят запись на не¬ сколько дорожек, лежащих на близком расстоянии друг от друга. При этом может применяться либо параллельная система выбора данных, когда для каждой дорожки имеются отдельные устройства и схемы для записи и считывания данных, либо последовательная, имеющая один импульсный генератор и выходной усилитель, ко¬ торые переключаются от канала к каналу, когда это тре¬ буется.
Электромеханическое запоминающее устройство.
Г -у а) г <3 к Обмотка ■Зазор О Щ } Дюймы б) Запоминающее устройство на магнитном барабане: а) барабан; б) головка для чтения и записи.
ПАМЯТЬ НА МАГНИТНОМ БАРАБАНЕ 157 На вклейке 2 показано имеющееся в продаже запоми¬ нающее устройство на магнитном барабане. Емкость его составляет 1024 слова по 32 двоичных разряда каждое. Поверхность барабана равна всего 15 дм2, так что устрой¬ ство характеризуется большой эффективностью использо¬ вания объема. На вклейке 2 показана головка, используе¬ мая в этом устройстве для чтения и записи. Она состоит из одной стальной пластинки с высокой проницаемостью толщиной 0,015 дюйма и рабочим зазором 0,0015 дюйма. Обмотка может содержать от 5 витков (для головок с малым импеданцем) до 50 (если для головок нежелательно приме¬ нение трансформатора). В современной практике вместо стальных пластин пред¬ почтительнее было бы использовать в головках ферриты. Эти материалы обладают малыми потерями на вихревые токи и магнитной проницаемостью около 1000 при часто¬ тах порядка мегагерца. К сожалению, тонкие детали из ферритов очень хрупки, а кроме того, пока что не представ¬ ляется возможным получать ферриты в больших количе¬ ствах. Применением толстого немагнитного керамического подслоя можно избежать отмеченного недостатка, но такие составные материалы пока еще не производятся. Для ввода и вывода, где ширина головки может быть взята 0,050 дюйма, были с успехом применены головки из феррамика. Благо¬ даря их высокой твердости не было обнаружено заметного износа даже после длительного соприкосновения их с лен¬ той или проволокой. Получение высоких токов (5 -г- 20 а), требуемых для голо¬ вок с малым импеданцем, делает необходимым применение трансформатора; схема весьма экономичной системы, в ко¬ торой трансформатор служит как для ввода, так и для выво¬ да, показана на рис. 80. Ее отличительная особенность заключается в исполь¬ зовании трансформатора со средней точкой как в качестве входного устройства, так и для получения сбалансирован¬ ного выхода на главный усилитель. Выбор дорожки при последовательной работе может быть осуществлен несколькими методами. Простейший из них состоит в подключении релейной ветвящейся схемы к //, что дает время выборки порядка 2 мсек. Если требуется более высокая скорость работы, то могут быть использованы
158 ЗАПОМИНАЮЩИЕ УСТРОЙСТВА электронные вентили, которые подключаются к уси¬ лителям либо непосредственно, либо, что лучше, через очень большой импеданц, вводимый в Е. Возможная логическая структура последовательного запоминающего устройства на магнитном барабане пред¬ ставлена на рис. 81. Здесь две дорожки барабана D отводятся для синхрони¬ зирующих маркеров, наносимых заранее при изготовлении барабана. Дорожка Td содержит группы по п маркеров (п — количество цифр в слове), разделенных зазорами. Дорожка Тю несет одинарные маркеры, совпадающие с каждым из зазоров дорожки Та. Данные, которые должны быть записаны на барабане, располагаются против мар¬ керов дорожки Td. Требуемая цифровая дорожка Тр выби¬ рается с помощью релейного переключателя S. Цифровые маркеры, поступающие с Td, усиливаются усилителем Л2 и подаются на вентиль Gs, который нормально закрыт триг¬ гером Д; маркеры слов с Tw усиливаются усилителем Л, и подаются на счетчик С. Содержимое С сравнивается с тре¬ буемым положением дорожки, находящимся в регистре ML, при помощи схемы совпадения CS. Один раз за каждый оборот барабана (в тот момент, когда приближается начало требуемого слова) схема совпадения выдает импульс, чтобы произвести обращение к барабану, триггер С, переводится в возбужденное состояние, открывая вентиль G,; первый Запиа „О Запись,,!" Рис. 80.
ПАМЯТЬ НА МАГНИТНОМ БАРАБАНЕ 159 же импульс, выдаваемый схемой совпадения CS, проходит через G, и взводит триггер Г2. Нормально Г., очищается каждым импульсом начала слова, поступающим от Л,, но задержки в схеме таковы, что Г2 успевает после этого под¬ готовиться к принятию импульса от схемы совпадения CS, поступающего в него через G,. X ^ Тр Такая несколько усложненная система необходима для того, чтобы обеспечить включение схемы лишь в моменты прохождения начал слов. Возбужденный триггер F2 открывает вентиль G2, ко¬ торый пропускает маркеры цифр, выдаваемые Л2, к венти¬ лям G6, G6, G7, Gs. Предположим, что нам необходимо произвести запись. Число вначале содержится в регистре ^i> Д„; вентили С„ G„ G8 открыты сигналами от схемы управления записью. G, и Gs пропустят синхронизирую¬ щие импульсы от Ga к G, и к схеме сдвига, благодаря чему содержимое регистра R сдвигается вправо при поступле¬ нии каждого синхронизирующего импульса. В то же время G6 выдает импульсы, которые заставляют генератор импуль¬ сов Р записать на барабан содержимое Rn. В конце операции записи содержимое регистра останет¬ ся без изменения и будет, кроме того, записано на барабан; возвратится в состояние нуля первым же импульсом
160 ЗАПОМИНАЮЩИЕ УСТРОЙСТВА начала слова, который выдаст Л,. Восстановление F9 закрывает G2 и восстанавливает /у, который выдает им¬ пульс завершения операции остальной части машины. Операция чтения выполняется аналогичным образом, за исключением того, что из вентилей G6 — G8 открыты толь¬ ко G6 и Gs. Это приводит к тому, что старое содержимое регистров пропадает (сдвигается вправо), а считанные с Тгтппнт0' 0пяшцш щениякм jawmem 32 зодерзканныз импульса X- 5-ризряд- ный счетчик вентиль тения ^ 32-рпзрядный Шиш jje§mjmc3Bum_ _ _ имщлься§стга_ Ъ-Г^>—_ BAGS Sj/ciwme/nijh ms SAGS КголаЙ£и,Неиш М/х.w нылиттса зиииш ь Рис. 82. Полная логическая схема магнитного запоминающего устройства. барабана данные посредством Л3 и G3 вводятся в Rt, а бла¬ годаря сдвигу — ив остающиеся разряды регистра. Отметим, что можно не принимать специальных мер для установки соответствия между счетчиком С и марке¬ рами на барабане. Это соответствие очень просто достига¬ ется с помощью соединения Z. На том месте дорожки, кото¬ рое соответствует ячейке с наибольшим номером, вместо одного импульса записывается двойной импульс. Если
Одрашение «ЗУ ПАМЯТЬ НА МАГНИТНОМ БАРАБАНЕ 161 Си ё с а 6 Э. БуХ и к. Бут
WOh 162 ЗАПОМИНАЮЩИЕ УСТРОЙСТВА Рис. 84. Подробная схема магнитного запоминающего устройства (продолжение).
ПАМЯТЬ НА МАГНИТНОМ БАРАБАНЕ 163 £ 1 I 1 1 И о> ° и в % £ Ч В § и о ГО сь 2 с то ж 5 Се о в SC К О ГО р* в £ 40 ^ о ^ cf [_, а 1—ЛЛЛ— «Nj *N3 -^АЛ- АЛЛ— I j! 1КЙ 11^11 «5 х >,_Й ^ 4i?fie Es'feCb + Ч tfc S^-йчг, 6*
164 ЗАПОМИНАЮЩИЕ УСТРОЙСТВА счетчик будет находиться в неправильном соотношении с по¬ ложением дорожек, то этот (двойной) импульс будет вносить упреждение на один шаг за каждый оборот, пока не будет достигнуто требуемое соответствие. Теперь, в момент появ¬ ления первого сигнала от двойного импульса, счетчик пере¬ ключится, и его старший разряд выдаст импульс, который пройдет через Z и запрет на короткое время Л,, устраняя таким образом лишний сигнал от двойного импульса и при¬ водя к устойчивым условиям работы. Для того чтобы показать шаги, проходимые для перехо¬ да от логической структуры к реальной схеме, на рис. 82 приведен развитый вариант описанной только что логи¬ ческой схемы, а на рис. 83—85 изображена реальная схема. Другие типы динамической магнитной памяти Распылять магнитное вещество по поверхности бараба¬ на не обязательно. Для этих целей может быть, например, использована бесконечная лента из бумаги, пластмассы или из специальной стали, как это сделано в оригинальном «Блат- тнерофоне». Вместо барабана можно использовать диск из твердого магнитного материала, вращая его между полюсами магнитной головки, как показа¬ но на рис. 86. Преимущество это¬ го способа заключается в том, что весь магнитный поток, по¬ лучаемый при записи, проходит магнитное вещество, в то время как обычно используется лишь поток рассеяния. С другой сто¬ роны, расчет показывает, что улучшение, ожидаемое от применения этого способа, будет не более чем 2:1, и это вряд ли оправдает усилия, затраченные на его реализацию, особенно если учесть большие механические трудности, которые необходимо здесь преодолеть. Следует, пожалуй, отметить, что впервые дисковая система запоминающего устройства была применена в ма¬ шине АРК; бумага, покрытая окислами, служила материа¬ Рис. 86. Магнитное запомина¬ ющее устройство дискового типа.
МАГНИТНО-АКУСТИЧЕСКАЯ ПАМЯТЬ 165 лом дисков, а для удержания их в плоском состоянии и в контакте с головками использовалась центробежная сила. Существуют различные методы для достижения опти¬ мального использования записывающего магнитного пото¬ ка, но, поскольку они в своем большинстве ведут к потере коэффициента использования объема, мы их 'здесь описы¬ вать не будем. Магнитно-акустическая память Чрезвычайно простое запоминающее устройство, на¬ шедшее множество применений в машинах как после¬ довательного типа, так и параллельного, изображено на рис. 87. На стержень, ленту или проволоку R из материала, об¬ ладающего большой коэрцитивной силой и выраженной Рис. 87. Магнитно-акустическое Рис. 88. Напряжения, индуцирован- запоминающее устройство. ные в магнитно-акустическом за¬ поминающем устройстве. магнитострикцией, намотаны катушки А, £),, D2, ..., Dnf разделенные соответствующими зазорами. Когда по £\> Н2, ..., D„ проходит в одном из двух возможных на¬ правлений ток, то участок стержня R, который окажется под действием результирующего поля, намагнитится. После отключения намагничивающих токов участки стержня R, лежащие под D,, Dг, ..., Dп, окажутся намагниченными в том же направлении. Если теперь импульс тока пропустить по катушке А, то благодаря магнитострикционному эффекту под А воз¬ никнет волна сжатия (или растяжения), которая начнет Распространяться вдоль стержня R. Когда этот толчок проходит под Dx, D2 Dn, то элементарное смещение
166 ЗАПОМИНАЮЩИЕ УСТРОЙСТВА магнитных полей наводит в D,, D2, Dn напряжения, различные формы которого для короткого импульса в А показаны на рис. 88. Видно, что напряжения, как и ожидалось, по форме совпадают с напряжениями, наводи¬ мыми в запоминающем устройстве с магнитным бара¬ баном. Устройства записи и считывания могут быть нескольких различных типов. В только что описанной схеме запись и считывание могли осуществляться параллельно через D,, ..., Dп, однако можно было бы с помощью длинной ка¬ тушки 5, намотанной поверх £),, ..., Dn, получить последо¬ вательный выход по мере того, как звуковой импульс проходил бы по намагниченным участкам D,, ..., Dn. Изменяя расстояние между D,, ..., Dn, можно получить любую частоту повторения цифр (вплоть до определенного предела), а также задержку любой желаемой величины при чтении путем изменения расстояния от А до D,. Практически R можно изготовить из никелевой про¬ волоки диаметром 0,005 дюйма, катушки A,Dl,...,Dn по 10-:- 500 витков каждая, а минимальное расстояние между Ds,..., Dn должно быть около 0,25 дюйма. Импульс тока через А должен быть около 2 а, а продолжительность импульса порядка 0,1-М),5 мксек. Чтобы довести выход с D, D„ до 20 в, если катушки содержат по 10 витков, требуется три каскада усиления на пентодах. Чтобы устранить отражение от концов провода, доста¬ точно зажать концы между пластинами из мягкой резины или, что более просто, заделать его концы в куски «пласти- цина». Благодаря тому, что в металлах затухание звука очень мало, провод можно брать значительной длины, не создавая большой разности между величинами импульсов на L)x и на Dn. В некоторых экспериментах успешно использо¬ вались длины до 40 футов, причем было найдено целесооб¬ разным наматывать провод на резиновые губки. Для полноты здесь следует отметить, что магнитно¬ акустическое запоминающее устройство может использо¬ ваться как запоминающее устройство с линией задержки описанного ниже типа. Выход в этом случае может быть сильно увеличен, если поместить поверх выходной катушки Dj поляризующий магнит.
МАТРИЧНАЯ НАМЯТЬ 167 Матричная память из элементов с прямоугольной петлей гистерезиса Запоминающее устройство на макроскопических эле¬ ментах из-за малой скорости записи и считывания непри¬ годно для использования его в качестве главного быстро¬ действующего запоминающего устройства в современной автоматической вычислительной машине. Поэтому все боль¬ ше укрепляется мнение, что желательно иметь сравнитель¬ но небольшое сверхбыстродействующее запоминающее Рис. 89. а) Матричное запоминающее устройство, б) Прямоугольная петля гистерезиса. устройство, дополненное большим запоминающим устрой¬ ством, работающим со средней скоростью. В области сверхвысокой скорости дало обещающие ре¬ зультаты следующее матричное устройство, предложенное Форрестером. Два.комплекта проводников — а,, а2, а., а4 и bt, b2, Ь,’ bi (рис. 89,с) — образуют двумерную сетку. В местах пе¬ ресечения каждой пары (ar, bs) проводов обоих комплектов помещены кольцевые сердечники Сгя из магнитного мате¬ риала с прямоугольной петлей гистерезиса типа тех, кото¬ рые были описаны в гл. 9. Кольца установлены так, что проводники аг и Ья проходят сквозь них. Предположим теперь, что по одному из проводников а, скажем aR, и по одному из проводников Ь, укажем bs, про¬ ходят одновременные импульсы тока, создающие по отдель¬ ности потоки, равные Hmin (рис. 896) в любом сердечнике,
168 ЗАПОМИНАЮЩИЕ УСТРОЙСТВА который они пересекают. При таких условиях во всех сер¬ дечниках CEs и CrS (г =у= R. s=£S) произойдет изменение по¬ тока, равное //mitl, которого будет недостаточно для изме¬ нения магнитного состояния. Сердечник Сц.ч получит при¬ ращение потока, равное 2Hmin, и этого будет достаточно, что¬ бы перебросить его в состояние 1 (рис. 89, б), если он еще не был в этом состоянии. В соответствии с типом требуемого выхода для считы¬ вания из решетки может быть применено несколько схем. При параллельном выходе в провод bs подается импульс тока, достаточный для создания потока, превышающего II тjn во всех сердечниках, которые он пересекает; каждый элемент CrS выдаст импульс в провод аг, только если он был предварительно намагничен до состояния 1, но не в другом случае. Если от CEs требуется получение индивиду¬ ального выхода, то вся матрица пересекается одним допол¬ нительным проводником Z. При подаче в проводники ав и bs импульсов тока, создающих в сердечнике CSs суммар¬ ный поток, больший чем Hmin, в проводнике Z появится вы¬ ход тогда и только тогда, если CEs первоначально был в со¬ стоянии единицы. Поскольку каждый сердечник пересекается только оди¬ ночными проводами, то для создания достаточного поля тре¬ буются большие токи; они легко получаются с помощью функциональной схемы трансформаторного типа, описанной в гл. 11 (рис. 72). К сожалению, считывание из матрицы описанного типа сопровождается потерей информации, со¬ держащейся в занятых элементах, и в общем случае тре¬ буется добавление восстанавливающего устройства. Однако даже с таким недостатком матрица размером 16 ; ;16 с за¬ поминающими элементами из феррамика имела суммарное время чтения и восстановления, равное только 10 мксек. При конструировании больших матричных запомина¬ ющих устройств возникает две проблемы; первая — это система выборки и вторая — это максимальный допустимый размер, определяемый отношением сигнал/шум. Система выборки может быть упрощена увеличением числа измере¬ ний матрицы. Это предполагает пропуск более чем двух совпадающих токов сквозь каждый элемент и в итоге тре¬ бует, чтобы материал сердечника мог отличать и-fl вход от п входов, где п зависит от числа измерений матрицы.
МАТРИЧНАЯ ПАМЯТЬ 169 Для того чтобы выбрать один из К сердечников, распо¬ ложенных в виде матрицы п измерений, следует иметь п'{/К линий выборки. Таким образом, для 4096 цифр коли¬ чество линий выборки колеблется от 128 для двумерной ма¬ трицы до 24 для матрицы, имеющей шесть измерений. Как было сказано выше, в многомерных матрицах ис¬ пользуются материалы, которые способны отличать разное число входов. На первый взгляд кажется, что для п измере¬ ний потребуется отличать п—1 от п входов. Можно, однако, показать, что при использовании положительных и отри¬ цательных импульсов материал нуждается в разделении только п и /г-|--1 входов для матрицы, имеющей 2п или 2п+1 измерений. Из рис. 89, б видно, что для этого петля гистерезиса материала должна удовлетворять следующему условию: Н min ^ ] 1 Существующие 'сейчас материалы могут делать различие только между одним и двумя входами, так что матрицы, осуществимые практически, имеют два или три измерения. Ограничение размеров матриц по принципу отношения сигнал/шум зависит не только от материала сердечника, но и от способа получения выходного сигнала. В настоящее время используются три системы. В первой системе произво¬ дится непосредственное разделение напряжений выхода по амплитуде. Во второй — подвергается измерению интеграл напряжения по времени, а в третьей к напряжению выхода прикладывается пробный импульс в оптимальный момент времени, обычно спустя 0,5-: 0,75 мксек после подачи сов¬ падающих токов. Отношение сигнал.шум, достижимое при этом, колеблется от 10 : 1 в первом способе до 50 : 1 в по¬ следнем. Легко показать, что условие работоспособности двумерной матричной памяти, составленной из п2 элемен¬ тов, заключается в том, чтобы соблюдалось неравенство 2 п < N, где N — отношение сигнал/шум желательного выхода к не¬ желательному с одного сердечника. Это означает, что наи¬ большая возможная матрица может быть составлена пример¬ но из 25 х 25 элементов. Из соображений статистики, однако,
170 ЗАПОМИНАЮЩИЕ УСТРОЙСТВА вероятный размер работоспособного запоминающего уст¬ ройства определяется формулой 2+К2л —2 <N, откуда н—1250, что, несомненно, слишком завышено. На juff д сен Рис. 90. Выход с элемента из феррокскьюба. основании современных экспериментальных данных можно считать практическим пределом матрицы примерно 100 X XlOO элементов.
АКУСТИЧЕСКИЕ линии задержки 171 На рис. 90 приведены кривые физических величин. По одиночному проводнику, проходящему сквозь двухмилли¬ метровые сердечники из феррита, пропускались импульсы тока двух величин. При этом выходы V, и У, получались после подачи одного импульса, равного половине импульса выборки, и после восьми таких импульсов соответственно. у — выход, получающийся от половинного импульса после того, как сердечник был переведен в состояние «/», а У4— выход от всех остальных половинных импульсов, приложен¬ ных после первого. Достойно упоминания, что с использованием титаната бария как диэлектрика были созданы конденсаторы, обла¬ дающие свойствами насыщаться и иметь остаточную ем¬ кость. Используя их, можно создать матричную память, ана¬ логичную описанной выше, с помощью нанесения проводя¬ щих линий на каждую сторону тонкого листа диэлектрика. Испытания показали, что такое устройство может иметь скорость работы на порядок выше, чем это достижимо с маг¬ нитными сердечниками. Поскольку в этой установке, рабо¬ чей областью которой является поверхность, в значительной степени преодолена макроскопичность элементов, а кроме того, функциональная схема входа в матрицу может быть создана в плоскости самой матрицы, то представляется ве¬ роятным, что в будущем будут практически осуществлены действительно большие быстродействующие запоминающие устройства такого типа. Акустические линии задержки Одним из наиболее ранних и наиболее изящных быстро¬ действующих запоминающих устройств, предложенных ког¬ да-либо, была акустическая линия задержки. Она состоит из проводника звука С (см. рис. 91), снабженного цепями I для преобразования входного сигнала в звуковой импульс, приемником О, способным обнаруживать звуковой импульс и преобразовывать его обратно в форму электрического сигнала, и вентилем G, служащим для регенерации импульса при передаче его от О к / или же для ввода данных от внеш¬ него источника. Ясно, что если яД — задержка между вво¬ дом звукового импульса в / и приемом его в О, то в линии
172 ЗАПОМИНАЮЩИЕ УСТРОЙСТВА может быть накоплено п двоичных цифр, разделенных ин¬ тервалами времени Д. В описанной простой форме устройство непригодно для включения в вычислительную машину, но на рис. 92 изобра¬ жена и практическая схема. В качестве задерживающей сре¬ ды здесь обычно используется Ж 'L Рис. линия ртуть.Она обладает рядом пре¬ имуществ, например относи¬ тельно низкой скоростью рас¬ пространения вол н (145 см [сек), хорошим акустическим кон¬ тактом с кварцевыми преоб¬ разователями, используемыми для входа и выхода, отсут¬ ствием нежелательных путей передачи звука, встречающихся в твердых средах. Вход и выход осуществляется с помощью кварцевых кри¬ сталлов Q, и Q2, настроенных обычно на частоту от 10 до 20 мггц. Кристалл Q, на стороне входа возбуждается 0/ в. 91. Акустическая задержки. Hi Синхронизирую¬ щие импульсы о Чтение _п_о_ Jamjcbj" 3агшсь„0 Рис. 92. Линия задержки. четырехполюсником согласования импеданцев Р, а выход с Q, усиливается настроенным усилителем А. Поскольку в линии задержки происходит искажение и ослабление, то импульс входа, показанный на рис. 93 с, после передачи и усиления становится притупленным и рас¬ ширенным, как это показано на рис. 93, б. Вследствие этого,
АКУСТИЧЕСКИЕ ЛИНИИ ЗАДЕРЖКИ 173 если не принять мер по формированию импульсов, то после одного или двух прохождений по линии данные будут уте¬ ряны. Формирование выполняется подачей импульса, про¬ шедшего усиление, на вход вентиля G,, на другой вход ко¬ торого подан стандартный синхронизирующий импульс, как это показано на рис. 93, в. После этого выход вентиля приобретает форму синхронизирующего импульса, а не форму искаженного выхода, так что при каждом цикле данные в линии восстанавл иваются. Для того чтобы данную цифру или группу цифр вывести из линии, имеется вентиль G3, который может открываться от внешнего источника в заданные моменты времени. Таким же образом, для того чтобы в линию ввести данные, установлен запреща¬ ющий вентиль G2. Если в данном положении требуется ввести «7», то она подводится непосредственно к входу вентиля G,, который и вве¬ дет ее, если от А через G2 еще «/» не поступила, а если «7» уже посту¬ пила, то работа G2 будет попросту излишней. Если требу¬ ется ввести «Д>, то на G2 поступает сигнал запрета. Линии делаются из ртути, раствора спирта в воде, квар¬ ца и никелевой проволоки, по которой проходят магнито- стрикционные импульсы. Обычная линия на 1024 цифры соответствует задержке от 1 до 2 мсек и имеет длину 1—2 м соответственно применяемому промежутку между цифрами. Основной источник неполадок лежит в изменениях темпе¬ ратуры, поскольку скорость распространения звука сильно зависит от этого фактора. Ртутные линии задержки обычно помещаются в термостаты, где поддерживается постоянная температура. Важно также поддерживать хороший акусти¬ ческий контакт между кварцевыми преобразователями и ртутью; этого можно достичь, заполняя сначала оболочку линии чистым спиртом и вытесняя его затем ртутью. Когда при этом вставляется концевой кварцевый кристалл, то он выжимает остатки спирта и создается хороший контакт между ртутью и кварцем. I Рис. 93. Кривые входа и выхода линии задержки.
174 ЗАПОМИНАЮЩИЕ УСТРОЙСТВА Для устранения отражения в линиях, а также для их настройки на величину общей задержки предложены много¬ численные устройства, однако поскольку, очевидно, магни- тострикционная проволока в конце концов заменит ртут¬ ные линии, не требуя этих усложнений, то и останавливать¬ ся здесь на их описании нет смысла. Свойство конденсатора удерживать электрический за¬ ряд сравнительно долгое время, зависящее только от утечек в системе, позволяет предположить, что диэлектрическая Рис.94 Схема диэлектрического запоминающего устройства. среда может быть использована в качестве запоминающего устройства вычислительной машины. По крайней мере в принципе заряд может быть нанесен на поверхность враща¬ ющегося диэлектрического барабана, а затем обнаружен способом, аналогичным используемому в системе с магнит¬ ным барабаном. Такая элементарно простая система, по- видимому, никогда не была испытана практически, но некоторые другие, использующие диэлектрическое накопле¬ ние и оперирующие с помощью электронного луча в ва¬ кууме, интенсивно разрабатывались. Прежде чем входить в детали, необходимо рассмотреть возможные способы сохранения накопленной информации неизменной в течение сколь угодно длительного времени. При этом возможны два метода. В первом из них данные, накопленные в любой точке среды, осматриваются, а затем регенерируются. Во втором используется свойство появле¬ Диэлектрическая память Поверхности диэлектрика
ДИЭЛЕКТРИЧЕСКАЯ ПАМЯТЬ 175 ния вторичной эмиссии у поверхности диэлектрика под дей¬ ствием электронной бомбардировки. Рассмотрим физическую картину, изображенную на рис. 94. Электронная пушка g излучает поток электронов Ь, который фокусируется на экране из диэлектрика d. Перед поверхностью из диэлектрика помещена сетка s. Когда первичные электроны попадают на диэлектрик, то возможны несколько вариантов: 1) поверхность может излучать электронов больше, чем получает; 2) она может излучать столько, сколько получает; 3) она может излучать электронов меньше, чем получает. В таких случаях говорят, что коэффициент вторичной эмиссии соответственно больше, равен или менее единицы. Зависимость коэффициента вторичной эмиссии диэлект¬ рика от его потенциала для физической картины, приведен¬ ной на рис. 94, изобра¬ жена на рис. 95. При малых разностях потенциалов между g и d электроны, ударяющие d, обладают малыми энергиями и выбивают мало вторичных электро¬ нов, что соответствует участку кривой между точками / и т. По мере увеличения потенциала d коэффициент вторичной эмиссии возрастает вместе с энергией приходящих электронов и в точке т становится больше единицы. При дальнейшем уве¬ личении потенциала d коэффициент вначале возрастает, а затем начинает падать благодаря способности d возвращать электроны, освобожденные начальной бомбардировкой, что соответствует участку кривой пг, а, о. Предполагается, что сетка s обладает способностью захватывать и выводить из системы все «свободные» электроны. Из произведенного качественного рассмотрения следует, что система может находиться в двух устойчивых состоя¬ ниях соответствующих точкам т и п кривой рис 95. Таким образом, условия, необходимые для создания двоичного запоминающего устройства, налицо. Рис. 95. Зависимость коэффициента вторичной эмиссии от потенциала диэлектр ика.
176 ЗАПОМИНАЮЩИЕ УСТРОЙСТВА В первом из запоминающих устройств, которые будут описаны, — системе Вильямса — используется стандартная электронно-лучевая трубка с добавлением коллекторной пластины на внешней поверхности экрана трубки. Если включить луч, направив его на поверхность экрана с такой энергией, чтобы коэффициент вторичной эмиссии оказался больше единицы, а затем его выключить, то распределение потенциала произойдет, как изображено на рис. 96, а. Если теперь луч слегка сместить, то вторичные электроны, гене¬ рируемые в новом положении луча, частично заполняют Рлс. 96. Распределение потенциалов в запо- Рис. 97. Развертка ыинающей системе Вильямса. в системе Вильямса. положительные дырки, образованные при первом включении луча; результирующий потенциал окажется таким, как изо¬ бражено на рис. 96 б. Затем предположим, что луч включен и направлен в точ¬ ку а или в b (1) рис. 96. В первом случае с внешнего коллек¬ тора будет получен отрицательный заряжающий сигнал большой величины, во втором случае — гораздо меньший сигнал. Отсюда следует, что может быть определен характер распределения сигналов на внутренней поверхности трубки, так что любые данные, записанные в такой системе, можно периодически считывать и восстанавливать. Описанная выше система обычно известна как запись по способу «точка — тире»; другой метод, дающий такие же или лучшие результаты, известен под названием «фокус — дефокус», в нем подается вначале хорошо сфокусированный луч за¬ писи, а затем — луч размытый. В системе Вильямса (рис. 97) данные накапливаются в последовательной форме на экране трубки, причем при¬ меняется растр телевизионного типа на 32 х32 пятен. Когда
ДИЭЛЕКТРИЧЕСКАЯ П \\ШТЬ 177 чтение информации не производится, то схема устроена так, что происходит непрерывная развертка (ряд за рядом) и восстановление информации. Если требуется прочесть какой- либо ряд, то вначале заканчивается развертка восстанавли¬ ваемого ряда и только после этого луч переводится на тре¬ буемый ряд, прочитывает его, а затем переходит к восста¬ новлению данных следующего ряда. Процесс записи проис¬ ходит совершенно так же, за исключением того, что запись новых данных производится в выбранные ряды. Не считая цепей генерации растра и выборки строк, логическая схема чтения, записи и регенерации практически идентична опи¬ санной для акустических линий задержки и показанной на рис. 92. Аналогичная запоминающая система, но работающая по параллельному способу была создана в Институте пер¬ спективных исследований в Принстоне. В ней луч выполняет непрерывное восстановление, как и раньше, но может пере¬ ключаться после любой данной точки, а не только в конце ряда. Недостаток, присущий исключительно этой системе па¬ мяти, заключается в так называемой постоянной «круго¬ вого чтения». Если некоторую строку или место считывать с большей частотой, чем это допустимо, то регенерация остальной информации задержится и часть ее будет утеряна. Это явление вызывает существенную потерю времени, а также приводит к таким трудностям при программировании, каких не бывает в других системах. Когда система Вильямса только появилась, предполага¬ лось, что в ней можно будет использовать обычные электрон¬ но-лучевые трубки. Эго оказалось невозможным из-за наличия в обычных трубках областей с недостаточной вто¬ ричной эмиссией, и теперь в системе Вильямса приме¬ няются трубки, созданные специально для этой цели. Второй тип диэлектрической памяти был создан Хэфом и Форрестером. В ней непосредственно используется свой¬ ство запоминающей среды иметь два состояния, указанное выше со ссылкой на рис. 95. Принцип работы этой системы показан на рис. 98. Пушка g устроена и расположена так, чтобы облучать электронами сразу всю поверхность диэлек¬ трика. Благодаря этому поддерживается распределение за¬ рядов, полученное ранее.
178 ЗАПОМИНАЮЩИЕ УСТРОЙСТВА Чтобы прочесть данные, вторая пушка (г) испускает тонко сфокусированный электронный луч, который с по¬ мощью отклоняющих пластин X и У может быть направ¬ лен в любую точку диэлектрика. Когда это сделано, на коллекторе тотчас появляется сигнал, величина которого зависит от потенциала диэлектрика в рассматриваемой точке. Для записи данных, как и в системе Вильямса, существу¬ ют раапичные методы; обычно для записи 1 используют один Рассеянный Сетка Диэлектрик Рис. 98. Запоминающая система Форрестера — Хэфа. лишь луч г, а для записи 0 — луч i с одновременной подачей импульса напряжения на коллектор или сетку. Преимущество рассматриваемой системы заключается в том, что в ней используется специально для нее из¬ готовленный тонкий диэлектрик с нужными свойства ми, благодаря чему получается гораздо больший сиг¬ нал, чем в трубке Вильямса. Кроме того, помеха «кру¬ гового чтения» в этой системе в значительной степени устранена. Последним примером диэлектрического запоминающего устройства служит так называемый селектрон. Принцип запоминания в последней его модели использует макроско¬ пические элементы, однако в нем интересна система выборки требуемого элемента. Селектрон в основном состоит из двух взаимно перпендикулярных сеток из проводов а,,..., ап\ Ьп (см. рис. 99). Источник электронов g образует электронное облако, оно притягивается к сетке с, b под дей¬ ствием тех ее элементов, которые заряжены положительно.
ДИЭЛЕКТРИЧЕСКАЯ ПАМЯТЬ 179 Однако при попытке пройти через сетку электроны оттал¬ киваются всеми ее участками, за исключением тех, которые с четырех сторон окружены положительными проводниками; таким образом выбирается требуемое окно, а область запо¬ минания, находящаяся за ним, может быть использована для чтения или записи любым из ранее описанных методов. В разделе о матрич¬ ных запоминающих уст¬ ройствах было описано, как с помощью 2N вход¬ ных проводников можно выбрать одно из N2 мест. На рис. 100 показано, как этот метод может быть усовершенствован. Представим себе ре¬ шетку из 16 проводов и перенумеруем их, как показано на рис. 100. Видно, что если из каж¬ дой группы проводов /, 2, 3, 4 и Г, 2', 3', 4' положительно будет заряжен только один, а остальные бу¬ дут заряжены отрицательно, то положительной окажется только одна пара соседних проводников; отсюда следует, что одно окно из 16 может быть выбрано с помощью 8 входов. В общем, можно показать, что для управ¬ ления выбором 22iV рядом расположенных ячеек до¬ статочно иметь 2ЛЧЛ вход¬ ных проводников. Таким образом, если две решетки расположены под прямыми углами, то с помощью N входных проводов можно управлять выбором окон, где N имеет вид 2т. Хотя эта схема управления не столько эффективна, как чисто двоичная система, она злектроноВ Рис. 99. Принцип работы сетки селек- троиа. Рис. 100. Комбинирующие решетки.
180 ЗАПОМИНАЮЩИЕ УСТРОЙСТВА значительно эффективнее любой другой схемы. Следует от¬ метить, что этот принцип может быть непосредственно при¬ ложен к выбору точек матрицы в системах с прямоугольной петлей, описанных ранее. До сих пор лампы «селектрон» изготавливались с емко¬ стью запоминания до 256 двоичных цифр и временем выбора 20 мксек, но, по-видимому, нет причин, препятствующих со временем разработке большей лампы. Другие формы памяти Достойны упоминания две другие формы запоминающих устройств. Первая — это диодно-емкостное устройство Холта, и второе — это неоновое запоминающее устройство Слово) Слово 2 СлоВоМ Рис 101. Диодно-емкостная память. Куффиньяля. В диодно-емкостной памяти в качестве запоми¬ нающих элементов используются конденсаторы, соеди¬ ненные, как показано на рис. 101. В состоянии покоя потен¬ циал каждого из конденсаторов С может быть от + 4 до — 4 в, однако если напряжение на диодах с помощью транс¬ форматора будет уменьшено до нуля, то емкость будет разря¬ жена, а на сопротивлении R появится импульс напряжения.
НЕОБХОДИМАЯ ЕМКОСТЬ ПАМЯТИ 181 На практике напряжение на конденсаторах ограничи¬ вают в пределах 4-2 в; при этих условиях восстановить со¬ держимое емкости после считывания можно путем подачи от выхода усилителя (или от части его, дающей +■ 2 а) на¬ пряжения на R с предварительной установкой напряжения на D, и D 2 в пределах —4 в и + 4 в. Свойства этой системы зависят от характеристик диодов, но если используются кремниевые плоскостные диоды, то усилитель с простым выходом в состоянии обслужить тысячи слов, а время вы¬ борки и регенерации может быть около 10 мксек при про¬ должительности хранения порядка 2 или 3 сек между цик¬ лами восстановления информации. Использование неоновых разностных диодов для запоми¬ нания цифр уже описывалось (стр. 122). Для образования большой матричной памяти их можно также объединять с полупроводниковыми диодными разделителями, и в этом применении они обладают тем преимуществом, что при чте¬ нии старая информация не уничтожается. Благодаря разнице между напряжениями гашения и зажигания разностные диоды могут использоваться в матрице по способу, который почти идентичен описанному в связи с матрицей на магнит¬ ных сердечниках, по крайней мере в отношении записи данных. Чтение данных производится передачей импульса, настолько краткого, что он не может вызвать прекращения разряда. Экспериментальная работа по матричной памяти на диодах наводит на мысль, что в связи с изменением со временем характеристик отдельных элементов возникнут трудности, отсутствующие в других видах матричной па¬ мяти. Необходимая емкость памяти Ответ на этот вопрос может быть дан в тривиальной ма¬ нере одним словом — «бесконечная». Пожалуй более пра¬ вильно будет задать вопрос так: «Какова минимальная емкость запоминающего устройства, приемлемая для быстро¬ действующей вычислительной машины?» В 1947 г., еще до того, как запоминающее устройство какой-либо быстродействующей машины было действительно закончено, в Принстоне было произведено исследование, в ре¬ зультате которого был сделан вывод, что 4096 чисел, взятых с точностью 10—12 десятичных знаков (т. е. 35—45 двоичных
182 КОД МАШИНЫ разрядов), можно считать удовлетворительным объемом быстродействующей внутренней памяти машины. Конечно, она должна быть подкреплена менее быстродействующей па¬ мятью, например на магнитной проволоке или ленте, спо¬ собной полностью очистить или вновь заполнить главное за¬ поминающее устройство за время от 0,1 до 1 сек и обладаю¬ щей емкостью в 105—;—10е слов. Теперь, когда машины построены и работают, становится очевидным, что эта примерная оценка требований к памяти, хотя и желательна математически, в настоящий момент (1956 г.) не является действительно осуществимой техни¬ ческой задачей. Тщательное исследование работы, произве¬ денной существующими машинами, показывает, что для быстродействующей памяти практически достаточной ем¬ костью является 512—1024 слова и что для ее подкрепления достаточна более медленная память в 2 • 104 слов. Над сверхбыстродействующей памятью на ферроэлектри¬ ках сейчас проделана существенная работа, и похоже на то, что по крайней мере машины будущего будут иметь три различных запоминающих органаГ 1) сверхбыстродействующую память на 32—128 слов с временем выбора 1—5 мксек; 2) быстродействующую память на 1024—4096 слов на магнитных барабанах или им подобных устройствах, обла¬ дающую временем выборки около 1 мсек-, 3) медленно работающую память на магнитной ленте или проволоке, способную заполнить или очистить память 2) за 1-ь-0,1 сек и обладающую емкостью в 105-:-10е слов. Эти устройства должны быть дополнены арифметическим узлом и устройством управления, работающими с требуемой скоростью; работа всей машины почти наверняка будет происходить по параллельному способу. ГЛАВА 13 КОД МАШИНЫ Под кодом *) автоматической вычислительной машины мы понимаем список арифметических и других команд, ко¬ торые могут управлять работой вычислительной машины. *) В русской литературе употребляется чаще выражение «система команд». (Прим. ред.)
ВИД КОМАНД 183 Последовательность таких команд, относящаяся к какому- нибудь вычислительному процессу, при выполнении этого процесса хранится вместе с необходимыми численными дан¬ ными в запоминающем устройстве. Для этого требуется пред¬ ставлять команды в кодированном численном виде, откуда и следует употребление слова «код» в указанном выше смысле. Совокупность операций, необходимых для решения некоторой частной задачи, также иногда называется кодом, но чаще употребляется менее двусмысленное слово про¬ грамма. Процесс подготовки такой совокупности команды называется кодированием или (чаще) программированием. Вид команд Прежде чем определять основные операции, необходимые для полного кода машины, нам удобно будет познакомиться с видом различных команд. Основным признаком, по кото¬ рому различаются команды, является число содержащихся в команде номеров ячеек памяти (или адресов). Это число может изменяться от одного до четырех. Так, типичным примером одноадресной команды может быть: «Прибавить число, хранящееся в ячейке памяти (а), в накопитель». Множество таких одноадресных команд, образующее про¬ грамму, хранится в последовательных ячейках памяти. Устройство управления одноадресной машины выбирает следующую команду из ячейки памяти, номер которой на единицу больше номера той ячейки, в которой хранилась предыдущая команда. Соответствующая команда в двухадресном коде будет иметь вид: «Прибавить число, хранящееся в ячейке памяти (х), в накопитель и затем выполнить команду, хранящуюся в ячейке (у)». Порядок выполнения команд в машинах такого типа за¬ ключен в самой программе. В трехадресно.м коде могут указываться ячейки двух чисел и ячейка, в которой хранится следующая команда, например- «Прибавить число из ячейки памяти (а) к числу в ячейке (у) и затем выполнить команду, хранящуюся в ячейке (г)».
1S4 КОД МАШИНЫ Вместо номера ячейки второго слагаемого может ука¬ зываться номер ячейки, в которую должен быть помещен результат действия. Различные варианты такого рода легко могут быть построены самим читателем. Наконец, четырехадресный код объединяет все разоб¬ ранные выше варианты в командах следующего вида: «Прибавить число из ячейки памяти (ьу) к числу из ячейки памяти (х), поместить результат в ячейку памяти (у) и затем выполнить команду, хранящуюся в ячейке памяти (г)». При оценке относительных достоинств различных видов команд должны быть рассмотрены четыре вопроса: 1) простота применения; 2) экономное использование объема памяти; 3) общая скорость вычислений; 4) сложность электронных схем. С точки зрения простоты предпочтение должно быть отдано одноадресному коду, поскольку обычно в нем доста¬ точно указать только ячейку, в которой хранится первая команда программы, а дальнейшие команды выбираются из памяти в порядке цх расположения. Конечно, здесь процесс программирования представлен в несколько упрощенном виде, как это станет ясно, когда мы познакомимся с мето¬ дом подпрограмм. Тем не менее тот факт, что совокупность команд, относящихся к какой-нибудь частной задаче, рас¬ положена «целым куском», а не рассеяна по всей памяти, значительно упрощает распределение последней при про¬ граммировании. Более того, как мы увидим ниже, при со¬ ставлении программ в многоадресном коде обычно учиты¬ вается время выполнения той или иной операции, что также усложняет программирование. С точки зрения экономии объема запоминающего устрой¬ ства может показаться, что трех- и четырехадресные коды выгоднее, поскольку они включают в себя одну или две команды одно- или двухадресного вида. Однако надо за¬ метить, что команда, содержащая, например, три адреса, требует больше разрядов для своего изображения, чем команда, содержащая только один адрес. Поэтому в одной ячейке памяти можно размещать две одноадресные (а иногда и двухадресные) команды, что для многоадресных команд уже невозможно. Конечно, использование половины ячейки для хранения команды имеет тот недостаток, что требует
ВИД КОМАНД 185 специального приема, с помощью которого содержимое ячейки расщеплялось бы пополам и машина оперировала бы сначала с одной половиной, а потом с другой. В связи с этим вопросом нужно заметить еще и следую¬ щее. В одноадресных машинах иногда бывает нужно пере¬ дать управление от одной группы команд к другой, не рас¬ положенной непосредственно после первой. Это достигается с помощью команды следующего вида: «Передать управление в ячейку памяти (.г)». В многоадресных машинах такая команда является, ко¬ нечно, излишней, поскольку передача управления содер¬ жится в каждой команде. Прежде чем перейти к третьему вопросу — общей ско¬ рости вычислений, мы отвлечемся несколько в сторону и рассмотрим два различных способа, с помощью которых числа извлекаются из памяти. Этой цели служит, во-первых, дешифратор адреса, который обеспечивает возможность непосредственного обращения к любой ячейке памяти, как это имеет место, например, в разработанном Вильямсом запоминающем устройстве на электронно-лучевых трубках. Логически этот метод является наиболее предпочтительным, но, к сожалению, изготовление такого дешифратора, доста¬ точно быстрого и компактного, наталкивается на значитель¬ ные технические трудности. По этой причине большинство запоминающих устройств работает по другой схеме, которая может быть названа методом развертывания, при которой содержимое памяти непрерывно развертывается за счет циркуляции, либо электронной, как в линиях задержки, либо механической, как в магнитном барабане. Недостатком этого метода является необходимость ожидания в среднем половины времени полного обращения, прежде чем из па¬ мяти будет извлечено нужное число. Это снижает общую скорость выполнения операций рассматриваемого типа. Теперь преимущества многоадресного кода становятся очевидными. Действительно, при одноадресном коде коман¬ ды могут быть расположены только в последовательном по¬ рядке без учета их «доступности». Между тем многоадрес¬ ный код допускает «стратегическое» расположение в памяти всего материала, при котором на выборку чисел или следую¬ щей команды тратится минимум времени. Такой метод известен под названием оптимального программирования.
186 КОД МАШИНЫ Возьмем в качестве примера двухадресную команду: «Прибавить содержимое ячейки памяти (л) в накопитель и затем выполнить команду, хранящуюся в ячейке памяти (//)»■ Предположим, что эта команда хранится в ячейке па¬ мяти (1). Расположение (х) и (у) может быть следующим: Ячейка памяти Содержимое 1 Команда сложения 2 — 3(=д') Прибавляемое число 4 — Ъ(=у) Следующая команда Здесь мы предположили, что как время, нужное устрой¬ ству управления для дешифровки команды, так и время вы¬ полнения операции сложения меньше, чем время смещения одной ячейки памяти. Это предположение выполняется в большинстве машин. Ячейки (2) и (4) будут, конечно, за¬ полнены другими частями программы. Из этого примера видно, что время, требуемое для де¬ шифровки и выполнения команды сложения и для фиксиро¬ вания-ячейки со следующей командой, равно времени сме¬ щения четырех ячеек памяти. Время, потраченное на ту же операцию при одноадресном коде, будет приблизительно равно времени полного обращения памяти, и ясно поэтому, что общая скорость работы машин, использующих такой тип запоминающего устройства, может быть резко увели¬ чена введением многоадресного кода. Наконец, с точки зрения сложности конструирования надо отметить, что двухадресная машина является наиболее простой. Этот вопрос подробно изучался выше, и мы не бу¬ дем здесь останавливаться на нем. Основные команды Выбор кода машины должен быть весьма обдуманным, поскольку от этого зависят, с одной стороны, технические трудности, которые могут встретиться при постройке ма¬ шины, а с другой — степень трудности программирования задач для нее.
ОСНОВНЫЕ КОМАНДЫ 187 Сложение, вычитание, умножение и деление являются четырьмя основными действиями арифметики, и машина должна уметь выполнять их либо автоматически, либо с по¬ мощью программ. Из этих четырех действий сложение и вы¬ читание являются основными, поскольку и умножение, и деление могут быть запрограммированы с их помощью. При этом, как отметил Вильямс, вычитание является более гибкой операцией, чем сложение; действительно, из равен¬ ства +а'=—(—х) следует, что сложение может быть выпол¬ нено на вычитателе, тогда как вычитание на сумматоре вы¬ полнить невозможно. Но даже сложение и вычитание не являются необходи¬ мыми операциями, поскольку их можно запрограммировать на машине, имеющей два последовательно связанных реги¬ стра со сдвигом, память, устройство для передачи чисел между этими тремя узлами и устройство, прекращающее работу машины. Хотя такая машина и представляется весьма выгодной с конструктивной точки зрения, но практически она совершенно неприменима уже потому, что программа сложения двух двоичных цифр и получения единицы переноса будет содержать около 30 команд. Поэтому мы предположим, что машина умеет выполнять сложение и вычитание. Так как мы должны определить, будет ли наша машина автоматически выполнять операции умножения и деления или эти операции будут выполняться программным способом, то уместно рассмотреть вид требуемых для этого программ. Автоматическое выполнение деления, как мы это видели, представляет значительно большие технические трудности, чем умножение. Поэтому мы не будем рассматривать здесь деления, хотя в силу соотношения х-у=х : (1 : у) оно яв¬ ляется более общей операцией, чем умножение. Для выпол¬ нения деления может быть составлена программа, либо ана¬ логичная программе умножения, либо использующая ите¬ ративный метод и содержащая программу умножения. Изучим теперь возможность выполнения операций умно¬ жения с помощью специальной программы. Мы предполо¬ жим, что машина содержит накопитель и регистр, допуска¬ ющие сдвиг. При этом накопитель и регистр связаны между собой тем, что сдвиг содержимого накопителя вправо сдви¬ гает его крайние справа разряды в крайние слева разряды регистра. Для простоты мы рассмотрим одноадресный код
188 КОД МАШИНЫ и поэтому предусмотрим операцию передачи управления, упомянутую в предыдущем пункте. Ниже приводятся ко¬ манды и их обозначения. Команды Пояснения + М (а) к А Прибавить содержимое ячейки памяти (х) в накопитель (Л). — М (а) из А Вычесть содержимое ячейки памяти (а) из накопителя {А), г (п) Сдвинуть содержимое накопителя (А) и регистра (R) на п разрядов вправо. При этом младшие разряды (Л) сдви¬ гаются в старшие разряды (R). М (а) в сА Передать содержимое М (а) в очищен¬ ный накопитель. М (а) в cR Передать содержимое М (а) в очищен¬ ный регистр. А в М (а) Передать содержимое накопителя (Л) в ячейку памяти (а) *). R в сА Передать содержимое регистра в очи¬ щенный накопитель. С в М (а) Передача управления. Следующей вы¬ полняется команда, содержащаяся в М (а). Окончание Программа умножения Предположим, что мы хотим перемножить два поло¬ жительных n-значных двоичных числа а и Ь. 1. Пусть а„= 1. (1.1). Передать частичное произведение в очищенный накопитель (Л) и прибавить к нему Ь. (1.2). Сдвинуть содержимое (Л) на один разряд вправо. 2. Пусть ат=0. (2.1). Передать частичное произведение в очищенный накопитель (Л) и сдвинуть на один разряд вправо. *) Эта операция у авторов пропущена, хотя она и используется в приводимых ниже программах. (Прим. ред.)
ПРОГРАММА УМНОЖЕНИЯ 189 Этот процесс повторяется до тех пор, пока не будут ис¬ пробованы последовательно все разряды числа а, начиная с младшего. Чтобы программировать этот процесс с помощью введенных выше команд, мы предположим, что группа ко¬ манд, описывающих первое правило, начинается с ячейки рг, а вторая группа — с ячейки 0. При этом мы предпола¬ гаем, что для передачи управления к команде, помещенной в ячейку с номером р2, в к-й разряд команды передачи должна быть помещена единица (т. е. р2 является соответ¬ ствующей степенью двойки) В ячейке М(с) содержится нуль. Программа будет иметь следующий вид: Ячейка памяти Содержимое Пояснения Pi + 1 Р.+2 Pi + 3 Pi+4 Pi+5 Pi+6 Р,Ч 7 Pi+8 0 1 2 3 4 5 6 M (с) в cR M (а) в cA r( 1) А в M(a) R в с A I r (k— 1) +Л4 (p,+8) к A Л в M г в Iм (°). L B \ M (p2), Clm = 0 M (p) в cA r( 1) А в M (p) M (с) в cR M (/) в cA r( 1) А в M (/) Очистка R. Выделение и передача am в накопитель. Остальные разряды числа (а) сохра¬ няются и будут использо¬ ваны в дальнейшем. Команда, хранящаяся в Л4 (Р,+8), преобразуется в зависимости от значения ат так, что дальнейший счет идет по двум различным направлениям в зависи¬ мости от того, или 1. если ат=0, если ат=1. Согласно (2.1) частичное произведение (/;) сдвигается на один разряд вправо. Очистка R. Процесс счета, определяю¬ щий выполнение п циклов сло¬ жения и сдвига (см. пояс¬ нение ниже).
190 КОД МАШИНЫ Ячейка памяти 7 8 9 10 И Р2 Ра+1 РЛ 2 Р2+3 Р2+4 Р2+5 Р2+6 Р2+7 Рз а Ь с d I Р С в Содержимое 7? в сА г (I - 1) +М (11) к /1 А в М (11) / М (р,). 1 М(р,), М (р) в сА +М (Ь) к А г( 1) А в М (р) № (Р, + 8) в с А — М (d) из А А в М (р,+8) С в М (3) Окончание Вначале а Ь 0 2~* Пояснения Л Результат предыдущего сче- I та используется для преобра- | зевания команды М (11) ) (см. пояснение ниже). если /^г2_п, если /<2~". ^1 Прибавление (b) к частично- }- му произведению (р) и j сдвиг. ^ Приведение команды, хра- [ нящейся в ячейке M(p, + 8) 7 к первоначальному виду ) для следующего цикла. Вначале 2 1 Частичное произведение (т. е. 1 в разряде k и в остальных) нули Команды 3—11 нуждаются в дополнительном поясне¬ нии. В них ведется счет, с помощью которого определяется момент, когда выполнено п циклов сдвига и сложения. Вначале М (/) содержит 2”1, но после п циклов эта единица поступает в старший разряд регистра (R). Пока этой еди¬ ницы в R нет, команды 3—10 не меняют вида команды 11, которая передает управление в ячейку р,. Но после того, как в (R) попадает единица, команда 8 сдвигает ее в разряд /, а команды 9—10 изменяют команду 11 так, что она будет передавать управление в ячейку памяти с номе¬ ром р3, в которой стоит сигнал окончания. Аналогичный процесс выполняют команды р,+3-^р,+ +7, но здесь единица в разряд k команды рА—I 8 достав¬ ляется числом а.
ИТЕРАЦИОННЫЕ ПРОЦЕССЫ И УСЛОВНАЯ ПЕРЕДАЧА УПРАВЛЕНИЯ 191 Эта программа исключительно невыгодна и не может быть рекомендована для практического применения, так как для перемножения двух положительных чисел исполь¬ зует 36 ячеек памяти; она однако показывает нам логиче¬ скую полноту введенного выше сокращенного кода. Такой код возможен в исключительно быстрых машинах, в кото¬ рых могут оказаться большими трудности, связанные с автоматическим выполнением более сложных операций. Почти во всех имеющихся и запроектированных на се¬ годняшний день машинах предусмотрены устройства для автоматического выполнения умножения. В дальнейшем мы будем использовать эту операцию в наших программах. Итерационные процессы и условная передача управления На примере программы умножения мы видели, что необ¬ ходимо вести подсчет числа выполненных циклов. Это при¬ водит нас к основному принципу эффективного использова¬ ния быстродействующих вычислительных машин, согласно которому наибольшей выгоды можно достичь при реализа¬ ции на них вычислительных процессов, состоящих из мно¬ гократного повторения небольшого числа действий. Вместе с тем использование быстродействующих машин для решения одной задачи, не содержащей повторяющихся циклов, будет невыгодно, поскольку подготовка программы и всей’ необ¬ ходимой для этого информации займет по меньшей мере столько же времени, сколько уйдет на решение этой задачи при ручном счете. К счастью, большинство прикладных за¬ дач может быть сведено к таким повторяющимся циклам, или, как обычно говорят, итерациям. Очень часто одна ка¬ кая-нибудь задача содержит большое число таких итераций, и, следовательно, весьма важным моментом программиро¬ вания становится подсчет числа выполненных циклов. По¬ этому для определения конца итерационного процесса жела¬ тельно предусмотреть какой-нибудь более удобный способ, чем тот громоздкий метод, который мы применяли выше.’ Это достигается введением команды условной передачи уп¬ равления, которая обычно имеет следующий вид: «Если число, находящееся в накопителе, 5^0, то пере¬ дать управление к группе команд, начинающихся с ячейки
192 КОД МАШИНЫ Л-!(л:); если же это число <0, то продолжать выполнение той же последовательности команд или, в случае мно¬ гоадресного кода, передать управление в ячейку /И(г/)». Эту операцию мы будем обозначать как Сс в М(х). В различных машинах эта операция может принимать несколько различный вид, который, однако, мало влияет на методы программирования. В дальнейшем мы будем поль¬ зоваться указанным видом операции условной передачи управления. Предположим теперь, что нам нужно п раз выполнить какой-нибудь кусок программы, а затем передать управле¬ ние к другой, группе команд. Поместим для этого в какую- нибудь ячейку памяти индекс итерации, равный вначале 2~т{п —1) (здесь 2~т— наименьшее значащее число, пред¬ ставимое в машине). После каждой итерации из индекса вычитается 2~т, и операция условного перехода исполь¬ зуется для проверки знака получаемого остатка. Пока чис¬ ло выполненных итераций меньше п, этот остаток будет 5г0 и операция Сс будет возвращать управление к на¬ чалу цикла. Но после п таких повторений индекс итера¬ ции станет отрицательным и управление перейдет к дру¬ гому куску программы. Операция условного перехода находит важное примене¬ ние при определении какой-нибудь величины методом по¬ следовательных приближений, как, например, при вычисле¬ нии квадратных корней из чисел или корней полиномов. Часто в вычислениях такого рода нельзя заранее опре¬ делить число необходимых итераций и поэтому использова¬ ние номера итерации, как это описано выше, невозможно. Но здесь возможен значительно более удобный способ. Пусть х„ и хп+1 — Два последовательных приближенных значе¬ ния искомой величины, и пусть хп+1>хп. Разность хп „ х которую мы будем вычислять после каждого шага, будет отрицательной до тех пор, пока хп не станет равным х, , что означает, конечно, что вычисления достигли мак¬ симальной точности, доступной на нашей машине. Опера¬ ция Сс определит момент, когда будет выполнено равен¬ ство хп+1=хп, и передаст управление к другому месту про¬ граммы.
КОД ПРИНСТОНСКОЙ МАШИНЫ 193 Код Принстонской машины Все фактически существующие коды содержат разобран¬ ные выше основные операции, но полный список всех выпол¬ няемых операций зависит от особенностей отдельных ма¬ шин. При этом должны быть учтены, с одной стороны, кон¬ структивные трудности, а с другой — возможность умень¬ шить как общее время вычислений, так и число команд, не¬ обходимых для программирования данной задачи. Вместе с тем ясно, что уменьшение числа команд в данной програм¬ ме ведет к более экономному использованию запоминающе¬ го устройства, что также упрощает конструирование ма¬ шины. Так, например, весьма желательно, хотя и не обяза¬ тельно, включение в код машины операции деления. В то же время операция извлечения корня не столь необходима, поскольку в обычных вычислительных процессах она встре¬ чается значительно реже. Большинство кодов включает также ряд неарифметических команд, касающихся передач чисел или их частей из одних узлов машины в другие. Эти команды вводятся для удобства программирования, и их вид зависит от особенностей конкретной машины. Для иллюстрации того, какие операции должна выпол¬ нять машина, чтобы на ней было удобно программировать задачи, мы познакомимся с кодами двух существующих ма¬ шин. В качестве первого примера мы рассмотрим одноадрес¬ ный код, разработанный под руководством фон Нёймана в Принстонском институте перспективных исследований. Обозначения Пояснения 1. X Прибавить число, находящееся в ячей- ке х, в очищенный накопитель. 2. X — Вычесть число, находящееся в ячейке х, из очищенного накопителя. 3. хМ Прибавить модуль числа, находящегося в ячейке х, в очищенный накопитель. 4. х — М Вычесть модуль числа, находящегося в ячейке х, из очищенного накопителя. 5. xh Прибавить число, находящееся в ячей- ке х, в накопитель. 6. xh—. Вычесть число, находящееся в ячейке х. из накопителя. э. Бут и К. Бут
194 КОД МАШИНЫ Обозначения 7. xhM 8. xh — М 9. xR 10, А 11. XX 12. 13. хС 14. хС 15. хСс 16. хС'с 17. xS 18. xSp 19. xS’p Пояснения Прибавить модуль числа, находящегося в ячейке х, в накопитель. Вычесть модуль числа, находящегося в ячейке х, из накопителя. Передать число из ячейки х в очищен¬ ный регистр. Передать число из регистра в очищен¬ ный накопитель. Очистить накопитель и умножить число, находящееся в ячейке х, на число, на¬ ходящееся в регистре. Левые 39 разря¬ дов произведения помещаются в нако¬ питель, а правые 39 разрядов — в ре¬ гистр. Крайняя слева цифра из послед¬ них 39 помещается в знаковый разряд регистра. Нели эта цифра 1, то в нако¬ питель прибавляется 2~‘9 (округление). Очистить регистр и разделить находя¬ щееся в накопителе число на число из ячейки х. Частное помещается в регистр, а остаток оставляется в накопителе. Передать управление левой из двух команд, находящихся в ячейке х. Передать управление правой команде, находящейся в ячейке х. Если число, находящееся в накопителе, 5=0, то передать управление, как в команде хС. Если число, находящееся в накопителе, ^ 0, то передать управление, как в ко¬ манде хС'. Передать число из накопителя в ячейку памяти х. Заменить 12 левых цифр левой коман¬ ды, находящейся в ячейке х, на 12 цифр из 9—20 разрядов накопителя. Заменить 12 левых цифр правой команды, находящейся в ячейке х, на 12 цифр из 29—40 разрядов накопителя.
КОД ПРИНСТОНСКОЙ МАШИНЫ 195 Обозначения Пояснения 20. R Заменить содержимое п^п,п2...п^пга на¬ копителя на njiji,...n„. 01 Г г~» UUIoD 21. L Заменить содержимое п0п1п2...п 8п8в на¬ копителя и т0гп1тг...т свт 9 регистра на п0п2пг.. п а0 и tnlm2tns...m Как видим, этот код содержит операции умножения и деления. Кроме того, предусмотрена возможность опериро¬ вания с модулями чисел. Несколько слов нужно сказать для пояснения команд передачи управления 13 и 14. В этой машине использован упомянутый выше способ, при котором в одной ячейке хранятся две команды и передача управле¬ ния к каждой из них осуществляется с помощью команд 13 и 14. По той же причине предусмотрены две команды ус¬ ловной передачи управления. Из этих двух команд только одна является необходимой, поскольку другая может быть получена из нее с помощью программы, содержащей опера¬ цию сдвига. Конечно, наличие обеих операций значительно упрощает процесс программирования задач. Также не сразу очевидна роль команд 18 и 19. Они бывают необходимы при оперировании с хранящейся в па¬ мяти машины таблицей значений какой-нибудь функции. Часто значение аргумента вычисляется самой машиной, и мы не можем заранее указать в программе ячейку, в кото¬ рой хранится нужное значение функции. Мы познакомимся с подробностями применяемого в этом случае метода в пара¬ графе об использовании в машинах таблиц и интерполяци¬ онных формул. Здесь же мы отметим только, что в програм¬ му включается команда, управляющая выборкой числа из таблицы, но разряды команды, указывающие, в какой ячей¬ ке это число хранится, оставлены незаполненными. Номер этой ячейки вводится на оставленное таким образом место с помощью команд 18 и 19. Имеется и другое весьма важное применение этих опе¬ раций. С их помощью может быть преобразована программа, составленная «в общем виде», т. е. без указания на кон¬ кретные номера ячеек, в которых она хранится Мы подроб¬ но познакомимся с этим вопросом в главе о подпрограммах. Рассмотрим, наконец, команды 20 и 21,‘ которые позво¬ ляют сдвигать числа на один разряд вправо или влево. 7*
196 КОД МАШИНЫ Некоторые машины содержат операции вида L(n) и R(n), допускающие сдвиги вправо и влево на заданное число п разрядов. Такие кратные сдвиги предпочтительнее, ибо мы увидим ниже, что иногда они бывают удобнее при програм¬ мировании. Кроме того, должен быть точно указан харак¬ тер сдвига числа. Например, в Принстонской машине, как обычно, предусмотрено оперирование с двоичными числами по модулю меньшими единицы. Отрицательные числа изоб¬ ражаются в ней дополнительным кодом по mod 2. Поэтому при определении операции сдвига нужно предупредить потерю знака при сдвиге числа влево. Кроме того, нужно позаботиться, чтобы отрицательные числа вновь принима¬ ли свою дополнительную форму при обратном сдвиге вправо. В приведенном выше коде оба эти условия выполнены. Код машины АПЕ(ИКС)К Рассмотрим код машины АПЕ(ПКС)К, которым будем пользоваться в дальнейших примерах. Машина АПЕ(ИКС)К работает по двухадресной системе, и в нижеследующей таблице второй адрес (у) указывает номер ячейки, в которой хранится следующая команда. № Обозначения Сокращения Описание А (1 — п) —»• А (1—п) (х) (у) Передать содержи- —* (1 — п) (х) (у) мое первых/7 разрядов накопителя в пер¬ вые п разрядов ячейки памяти (х). А (х) (у) То же, что № 1, при п = 32, т. е. в па¬ мять передается все слово. 2.-)-(а')—»■ с А (у) +с (х) (у) Прибавить содер¬ жимое (х) в очищен¬ ный накопитель. 3.—(х) —* с А (у) —с (к) (у) Вычесть содержи¬ мое (х) из очищенного накопителя. 4.+(x)—> А (у) ф (х) (у) Прибавить содер¬ жимое (а) в накоп итель.
код машины апе(икс)к 197 № Обозначения 5. —(х)—* А (у) 6. (x)-+cR (у) 7. (х) х R —» с А (у) 8. г (п) {у) 9.1 (п) (у) 10 ./?—(*) ДО Сокращения — М (у) Г (х) (у) X (X) (у) Г (Л) (У) I (л) (у) к (х) (у) Описание Вычесть содержи¬ мое (л') из накопи¬ теля. Передать число из (а-) в регистр. У множить число, находящееся в (а), на число, находящееся в регистре. Старшие разряды произведения помещаются в нако¬ питель, а младшие — в регистр. Сдвиг содержимо¬ го накопителя и ре¬ гистра вправо на п разрядов. В освободившихся слева разрядах по¬ вторяется цифра из разряда знака нако¬ пителя. Правые раз- р яды накопителя сдви¬ гаются в левые раз¬ ряды регистра. Пра¬ вые разряды регистра теряются. Сдвиг влево. На¬ копитель и регистр циклически замкну¬ ты, и потери цифр не происходит. Передать содержи¬ мое регистра в (х). После этой операции в каждом разряде ре¬ гистра остается та цифрр, которая на¬ ходилась в его пер¬ вом разряде, R (\).
198 КОД МАШИНЫ № Обозначения Сокращения 11. CcS® 0(х)<0 (у) В (а) (у) 12. Печатать (у) Р (у) 13. C(d+x) 14. Окончание С (d p х) Описание Рели в А (1) нахо¬ дится нуль, передать управление в ячейку (.v); если в А (1) на¬ ходится единица, пе¬ редать управление в ячейку (у). Отпечатать содер¬ жимое накопителя (вид печати зависит от имеющегося типа печатающего устрой¬ ства). Передать управ¬ ление в ячейку (х), находящуюся на ба¬ рабане (d). Окончание Некоторые команды этого кода требуют небольших по¬ яснений. Заметим, во-первых, что код не содержит команд, считывающих информацию с внешнего запоминающего ус¬ тройства (такого, как перфолента). Так как АПЕ(ИКС)К бу¬ дет оснащена очень большим запоминающим устройством на магнитных барабанах, на которых могут храниться под¬ программы и таблицы функций, то необходимости в допол¬ нительном запоминающем устройстве нет. Все числа и ко¬ манды, нужные для решения какой-нибудь задачи, вводятся в машину непосредственно с телетайпа или с перфокарт, и для этого предусмотрено специальное устройство ввода. Конечно, должна быть предусмотрена возможность пе¬ редачи материала с одного барабана на другой. Здесь воз¬ можны три случая. 1. При выполнении программы, находящейся на бара¬ бане (а), может возникнуть необходимость ввести какое- нибудь число в подпрограмму, находящуюся на бара¬ бане (у), а затем вернуться к барабану (л) за следующей командой.
код ылшпны лпе(икс)к 199 2. При выполнении программы, находящейся на бара¬ бане (х), может возникнуть необходимость извлечь какое- нибудь число, находящееся на барабане (у), а затем вер¬ нуться к барабану (х) за следующей командой. 3. Может возникнуть необходимость передать управле¬ ние от последовательности команд, находящейся на ба¬ рабане (а), к последовательности, находящейся на бара¬ бане (у). Для осуществления таких обращений нужно предусмот¬ реть в соответствующих командах место для изображения чисел (а), (у) и т. д., означающих номер барабана. Как мы увидим ниже, в команде имеется четыре не использо¬ ванных пока разряда. Эти четыре разряда дают возмож¬ ность обращения к 24=16 барабанам. Хотя такое коли¬ чество барабанов вполне достаточно, мы сочли целесооб¬ разным предусмотреть возможность использования боль¬ шего числа барабанов. Для этих целей использованы шесть разрядов, отведенных под изображение числа п в коман¬ дах г(п), 1(п) и А(п)—:>Л4. Это дает возможность увеличить число барабанов до 210=1024, что является достаточ¬ ным для решения любой из встречавшихся до сих пор задач. Во всех командах, кроме трех указанных выше, где для этой цели используется 10 разрядов, выбор нужного ба¬ рабана осуществляется прежде, чем будет исполняться команда. При этом устройство управления выберет следую¬ щую^ команду из первоначального барабана. Если в этой новой команде номер барабана будет пропущен, то адреса, указанные в ней, будут относиться к тому же барабану, на котором находится сама команда. Таким образом, пер¬ вые два случая на машине осуществимы (при условии, что Для засылки чисел в память используется коман¬ да R —>/И). Чтобы обеспечить безусловную передачу управления, предусмотренную третьим случаем, введена операция 13,’ «перебрасывающая мост» с барабана на барабан. Другой особенностью кода является наличие кратных сдвигов вправо и влево. Кроме того, команда А—>А/ со¬ держит также команды вида А,—-А/; если дам необходимо передать в память все содержимое накопителя, п, очевид¬ но, равняется 32.
200 КОД МАШИНЫ В заключение отметим, что в отличие от Принстонского кода код АПЕ(ИКС)К не содержит команд, оперирующих с модулями чисел. Причина этого заключается в том, что Прин¬ стонская машина является машиной параллельного типа, а АПЕ(ИКС)К —последовательного. В то время как взятие дополнительного кода от параллельного ряда цифр со¬ вершенно просто, та же операция над цифрами, поступаю¬ щими последовательно одна за другой, значительно слож¬ нее. Кроме того, опыт программирования показал, что операции с модулями чисел сравнительно редки, и потому они были исключены из кода АПЕ(ИКС)К- Некоторые специальные команды Завершая обзор различных кодов, надо отметить так называемые логические операции, включенные в код машин Национальной физической лаборатории и Манчестерского университета. Это следующие операции: 1. (А и В)=С. Строится число С, цифры Сп которого равны единице, если и Ап и Вп—одновременно единицы, и нулю — в остальных случаях. 2. (A VB)=C. Цифра Сп равна нулю, если и Ап и £>„ — нули, и единице — в остальных случаях. 3. ^А=С. Цифра Сп=1 —Ап (С„ является дополнением цифры Ап). 4. (Л^В)=С. Цифра С„=1, если Ап^Вп; Сп—0, если Ап=Вп. Последняя из этих операций дает возможность прове¬ рить совпадение двух чисел, чтобы с помощью операции условного перехода определить, по какому из двух возмож¬ ных путей направить счет. Подобно этому операция (А и В)=С может быть использована для выделения лю¬ бого разряда или группы разрядов некоторого числа. Это достигается сравнением его с другим числом, у которого в интересующих нас разрядах стоят единицы, а во всех остальных разрядах — нули Кроме того, существуют операции, имеющиеся, напри¬ мер, в коде машины АКЕ, известные под названием груп¬ повых операций Используя их, можно с помощью одной команды сложить целый ряд пар чисел, последовательно расположенных в ячейках памяти. Это бывает нужно, на¬
НЕКОТОРЫЕ СПЕЦИАЛЬНЫЕ КОМАНДЫ 201 пример, при сложении векторов. Аналогично можно обра¬ зовать сумму последовательно расположенной группы чисел. Существуют также операции, дающие возможность произ¬ водить действия с числами, содержащими больше разрядов, чем число разрядов, имеющихся в ячейке обычной длины. Уместно будет отметить, что при программировании очень удобно использование так называемых регистров индекса (см стр. 51). С помощью этого устройства к коду команд, «отмеченных» специально вставленным разрядом или группой разрядов, прибавляется некоторое число каждый раз, когда эти команды выполняются. В частности, этот способ бывает удобен тогда, когда какой-нибудь цикл команд повторяется несколько раз и при этом, например, (х) — адрес одной из команд — должен изменяться на одно и то же число при каждом прохождении цикла. Этот вопрос станет более ясным, когда мы дойдем до первого примера программы. ГЛАВА 14 ТЕХНИКА ПРОГРАММИРОВАНИЯ Процесс программирования какой-нибудь задачи может быть разбит на три части: 1) выбор математического метода; 2) составление схемы программы; 3) составление самой программы. Первый из этих вопросов мы не будем рассматривать. Укажем только, что выбранный метод должен использовать одни лишь арифметические операции, так что, например, дифференциальные операторы должны быть аппроксимиро¬ ваны конечно-разностными выражениями; при этом должен быть исследован вопрос о близости таких аппроксимирую¬ щих выражений к самим операторам и о влиянии ошибок округления на точность окончательного ответа. Более того, все встречающиеся в задаче величины должны быть так нор¬ мированы, чтобы они не вышли за пределы представимых на данной машине чисел. Последний вопрос является весь¬ ма сложным, так как далеко не всегда а]ы можем заранее предусмотреть порядок чисел, получающихся в процессе вычислений. Мы еще вернемся к этому вопросу ниже. Эти
202 ТЕХНИКА ПРОГРАММИРОВАНИЯ трудности, конечно, легко преодолимы, если в машине при¬ нята двоичная или десятичная система изображения чисел с плавающей запятой. Последнее означает, что каждому числу сопоставляется порядок, определяющий положение запятой, и арифметический узел машины при оперировании с числами учитывает значение этого порядка. Правда, кон¬ структивно такие машины весьма сложны *). Сложность схемы программы в очень большой степени зависит от числа итеративных процессов, входящих в выб¬ ранный метод решения. Для облегчения составления схемы программы Голдстайном и фон Нейманом был предложен метод блок-схем, который мы сейчас кратко опишем. Метод блок-схем Наиболее простыми являются те вычислительные про¬ цессы, которые не содержат итераций и не требуют выбора того или иного пути в процессе счета самой машиной. Про- Вход Вычисления * Ц) Выгод Вход ~[dx+e) - я axt-ox+c Выход йх*е - В] Рис. 102. Блок-схема прел рамыы без разветвления. грамма такого процесса повторяет те действия, которые произвел бы вычислитель при ручном счете, и схема такой программы может быть изображена простой линией, как это показано на рис. 102,с. Пусть, например, нам надо вычислить выражение gtfj-bx + c m у с/х + е Hi *) Плавающая запятая существенно расширяет диапазон чисел, с которыми может оперировать машина, повышает точность вычисле¬ ний и намного облегчает процесс подготовки задачи. В СССР все боль¬ шие машины делаются с плавающей запятой. {Прим. ред.)
МТТОД БЛОК-СХЕМ 203 для одной системы значений параметров Последователь¬ ность действий, которые необходимо выполнить для этого, указана на рис. 102, б. Как мы отмечали выше, вычисления такого рода нера¬ ционально проводить на быстродействующих вычислитель¬ ных машинах, поскольку время составления программы и ввода ее в машину будет во всяком случае не меньше, чем время, необходимое для производства тех же вычислений при ручном счете. Более практичным будет вычисление значений того же выражения (1) для п значений х, отстоящих друг от друга на Дх. При решении такой задачи необходимо вести подсчет количества вычисленных членов. Для этого мы будем вычитать единицу из индекса итерации / (вначале равного п —1) и с помощью операции условного перехода определим момент, когда будет получено требуемое число Вход 1 <0 г Выход >,0 , Вычисление следующего члена. Рис. 103. Блок-схема программы с простой пеглей. членов. Схема такой программы, изображенная на рис. 103, образует простую петлю Предположим, наконец, что код машины не содержит операции деления, и нам необходимо, следовательно, Рис. 1U4 Блик-с.хема программы со сложной петлей. вычислить величину А = 1 с помощью итеративного X -j- € ^ процесса, при котором Л„гсЛп+1 Определение числа не¬ обходимых для этого итераций производится с помощью
204 Техника программирования операции условного перехода, оценивающей величину раз¬ ности (Л„ —Ап+1). Блок-схема такой программы изобра¬ жена на рис. 104. Здесь мы имеем пример сложной петли. На практике встречаются значительно более сложные случаи. Подробности составления схем программ таких за¬ дач читатель может найти в соответствующих статьях. Детализация программы После того как составлена схема программы, мы мо¬ жем приступить к подробному составлению самой програм¬ мы. Для этого мы должны: 1) дать полный список всех необходимых команд; 2) определить ячейки памяти, в которых будут хранить¬ ся команды; 3) определить ячейки памяти, в которых будут хранить¬ ся числовые данные, и ячейки для временного хранения ве¬ личин, получающихся в процессе счета. Нельзя, конечно, дать полный перечень неизменных правил, по которым составляется любая программа, ибо ме¬ тоды, используемые при этом, в большой степени зависят от вида задачи, свойств машины и опыта программиста. Тем не менее имеется ряд общих вопросов, встречающихся при программировании любой задачи. Некоторые из них мы рассмотрим ниже. С деталями процесса программирования лучше всего можно ознакомиться на примерах, на которых мы изучим некоторые приемы, использумые при программировании задач на существующих машинах. Эти приемы могут изме¬ няться в' зависимости от рассматриваемой задачи и накоп¬ ленного программистом опыта. Точная форма команд машины АПЕ(ИКС)К Как мы отмечали выше,большинство программ будет здесь составлено для кода двухадресной машины АПЕ(ИКС)К. Сейчас мы познакомимся с тем, в каком виде хранятся ко¬ манды на этой машине. Как и большинство автоматических вычислительных ма¬ шин, машина АПЕ(ИКС)К оперирует с числами, представлен¬
ТОЧНАЯ ФОРМА КОМАНД МАШИНЫ АПЕ(иКС)к 205 ными в двоичной системе счисления с фиксированной запя¬ той, причем все числа по модулю меньше единицы. Для изо¬ бражения этих чисел используется 31 разряд, не считая раз¬ ряда знака, для которого отведен еще один, крайний слева разряд. Если число положительно, в знаковом разряде стоит нуль, если отрицательно, то — единица, причем само число записано в дополнительном коде. Код машины АПЕ(ИКС)К содержит меньше 17 операций, и для их кодирования в двоичной системе требуется 4 раз¬ ряда. В настоящее время запоминающее устройство содер¬ жит 512 ячеек, но к машине можно присоединить еще одно запоминающее устройство, также содержащее 512 ячеек. Ячейки каждого такого узла перенумерованы от 0 до 511, и, следовательно, для определения любой ячейки памяти достаточно использовать 9 разрядов. Поскольку код маши¬ ны двухадресный, каждая команда требует двух таких групп по 9 ячеек. Для кодирования команд разряды ячейки распреде¬ ляются следующим образом: Разряды Содержание 1—9 (х) — адрес числа, над которым должна быть произведена операция, или адрес, по которому должно быть записано число. 10—15 (п)—счетчик. 16—17 — 18—21 (с) —код операции. 22—30 (у) —адрес следующей команды. 31—32 — Разряды 10—15 используются для определения числа п в командах (1), (8) и (9). Кроме того, те же разряды вместе с разрядами 16, 17, 31 и 32 используются для определения номера барабана, как это было описано выше. При размещении в ячейке собственно чисел первый разряд отводится под знак, а, например, 9-й разряд изоб¬ ражает 2~8. Как мы отмечали выше, адрес следующей команды мы будем брать в скобки и помещать после ко¬ манды.
206 техника Программирования Так, команда /И(6)—>cR(7) или (6)—> cR (7) означает: «Передать число, хранящееся в шестой ячейке, в очищенный регистр и затем перейти к выполнению коман¬ ды, хранящейся в седьмой ячейке памяти.» Если команда R—>Л1 используется для записи числа на какой-нибудь другой барабан, например, на барабан (d), то она будет иметь вид R-*M(d-\-x){y) или R—>(d-\-x)(y), что означает: «Передать число, хранящееся в регистре, в ячейку М(х) на барабане (d) и затем перейти к выполнению команды, храня¬ щейся в ячейке М(у) на первоначальном барабане.» Такое же обозначение мы применяем при чтении числа с другого барабана; например, -f-М(х-j-d)—>сА{у) или-\-(x-\-d)—^сА(у). Мы будем предполагать, что первые команды всех при¬ водимых в дальнейшем программ будут помещаться в ячей¬ ку с номером тп, где в различных задачах п принимает различные значения. Это упрощает передачи управления от одной программы к другой. Также для большей ясности мы будем помещать команды в последовательные ячейки тп> тп+1, гпп+2. Обычно при передаче управления внут¬ ри программы этот параметр тп будет опускаться. Пример программирования задачи Сейчас мы сможем познакомиться с самим процессом программирования. В качестве первого примера рассмотрим задачу, взятую для иллюстрации метода блок-схем. Для простоты мы предположим сначала, что код машины содер¬ жит операцию деления следующего вида: A\M{x)-^cR(y) или А:(х)—> cR(y). В дальнейшем это предположение будет исключено. Итак, требуется вычислить значение функции ах3 -У-ЬхЛ-с у =— ах -|- е
ПРИМЕР ПРОГРАММИРОВАНИЯ ЗАДАЧИ 207 для. значений х, равных 0, Д, 2А пД, где а, Ь, с, d, е и Д —заданные числа. Мы предположим, что вычисленные (и+1) значений у должны быть помещены в память и, сле¬ довательно, команда, управляющая этой передачей, долж¬ на преобразовываться после каждого цикла так, чтобы все yi были помещены в последовательные ячейки памяти. Как видно из предыдущего параграфа, этого можно добить¬ ся прибавлением к команде числа 2“8 после каждой ите¬ рации. Кроме того, в память должен быть помещен индекс итерации / (первоначально равный п-2-31) Уменьшая после каждого шага это число на 2-31, мы сможем опреде¬ лить момент, когда будет вычислено требуемое число членов. Перед составлением самой программы необходимо выде¬ лить ячейки для хранения чисел а, Ь, с, d, е и Д, а также 2-8, 2~31t [ ц текущего значения х. Мы поместим эти числа в конец программы. Так как число команд в программе нам заранее неизвестно, мы выделим под эти параметры времен¬ ные ячейки, т. е. предположим, что они помещены в ячейки памяти M(k) —Al(k-\-9) соответственно и что получаемые значения у должны быть помещены в ячейки М([) —М{1 ф- п). Кроме того, мы предположим, что пер¬ вая команда помещена в ячейку тх. Программа для табу¬ лирования функции ах2 -\-bx-\-c У dx-\-е будет иметь такой вид (прибавить т1 ко всем числам, Примечания d dx (первоначально х=0). dx-\-е dx+e временно запоминается. а ах ах+Ь Передача содержимого на¬ копителя в регистр, ах2-\-Ьх означающим номера ячеек): Ячейка Содержание 0 (fc + 3) —ctf(l) 1 (&+9) X R —(2) 2 +(^+4) —»А (3) 3 (А) —*•(&-(-10) (4) 4 (k) — cR (5) 5 (k+9) х R—* сЛ(6) С +(& + !) —*- А (7) 7 г (32) (8) 8 (fc+9)Xtf—►сЛ(Э)
208 ТЕХНИКА ПРОГРАММИРОВАНИЯ Ячейка Содержание 9 + (й+2) —► А (10) 10 А: (й+10)—1) 11 /? — (/)(12) 12 4-(&+8) —»сЛ (13) 13 —(&+7) —>-Л (14) 14 CcSs 0 (15)<0( ) 15 Л — (/г+8)(16) 16 + (^4-9)—^сЛ (17) 17 + (&+5)—*-Л (18) 18 Л —> (&+9) (19) 19 +(11) — сА (20) 20 +(/г+6) — Л (21) 21 Л —11(0) k а k-\-1 b k 4 2 с £ + 3 г/ /е+4 е k +5 Д к] 6 2~8 А’+7 2~31 £+8 / Примечания ax2+ftx+c (ал'2+йх+с): (с/л'4 е) Передача вычисленного значения в память. / / _2-« Проверка индекса итерации для определения конца сче- _та. Индекс/заменен на /—2-31. х X—1“ Д Передача нового значения в ячейку &+9. Команда, засылающая у. Прибавление 2~8 к номеру ячейки, в которую помещает¬ ся у. В следующем цикле у будет помещено в ячейку Преобразованный вид ко¬ манды 11 помещен на старое место. Управление передано к началу цикла. k -f9 х к + 10 Ячейка для временного хранения числа dx-\-e I — (/-рг)Ячейки для хранения вычисленных значений у Номер «следующей команды», пропущенный в команде т,+14, зависит от остальной части программы. Если вся программа исчерпывается выписанными командами, мы по¬ местим в команду т+14 адрес команды «окончания» счета.
ПРИМЕР ПРОГРАММИРОВАНИЯ ЗАДАЧИ 209 Поскольку нам теперь известно, что программа содер¬ жит 22 команды, числу k можно придать значение т,+22, и соответственно с этим будут определены ячейки, в кото¬ рых хранятся числа а, Ь, с и т. д. Ячейка M{k-\- 10)^ EsM(m,-|-32) должна оставаться свободной, так как в ней временно запоминаются результаты промежуточных вычи¬ слений, и, следовательно, полученные значения функции у могут быть помещены в ячейки, начиная с номера т,фЗЗ. При составлении этой программы мы поместили коман¬ ды в последовательные ячейки памяти, а все параметры и константы расположили одним «куском» после программы. Хотя такое распределение памяти под программу вполне законно, оно обычно не применяется в двухадресных маши¬ нах, таких, как АПЕ(ИКС)К, ибо методом оптимального программирования, о котором уже говорилось, можно достигнуть более высокой скорости вычислений. Эта и следующая главы предназначены для ознакомле¬ ния с общими методами программирования, и в большинстве встречающихся в них примеров оптимальное программиро¬ вание не применяется. Если команды и константы будут рассеяны по запоминающему устройству, то общие методы станут менее понятными. Мы еще раз подчеркиваем, что, хотя приведенная выше программа может быть применена на двухадресной ма¬ шине, тем не менее она не использует полностью имею¬ щиеся у таких машин возможности. Примечание. Предыдущие замечания, касающиеся свойств АПЕ(ИКС)К, в настоящее время не вполне соответствуют действи¬ тельности. Машина снабжена запоминающим устройством, содержа¬ щим и 32 дорожки каждая емкостью в 32 слова, и быстрым умно¬ жителем. Кроме того, имеется дополнительная операция для чтения одной строки пятидорожечиой телетайпной ленты. ГЛАВА 15 ПРИМЕНЕНИЕ ПОДПРОГРАММ Приведенные в предыдущей главе примеры дают нам некоторое представление о методах программирования за¬ дач на вычислительных машинах. Кроме того, эти примеры служат для иллюстрации одного из важнейших вопросов, возникающих в программировании. Действительно, легко
210 ПРИМЕНЕНИЕ ПОДПРОГРАММ видеть, что программы в том виде, в каком они были да¬ ны, могут быть помещены только во вполне определенные ячейки памяти, причем одновременно с заданными парамет¬ рами. Обычно такие программы составляют лишь часть все¬ го вычислительного процесса, и большинство задач мож¬ но разбить на отдельные куски, или, как говорят, под¬ программы, которые затем объединяются с помощью связы¬ вающих команд. Такое использование подпрограмм играет весьма важную роль в программировании, так как при этом снижается и труд, затрачиваемый на составление программ, и вероятность появления в них ошибок. Так, например, программа по вычислению квадратного корня может быть раз составлена, проверена, испытана на ма¬ шине и потом сохранена либо на магнитном барабане, ли¬ бо на перфоленте. В случае надобности мы можем восполь¬ зоваться уже готовой программой. Преобразование подпрограмм Ясно, что подпрограммы такого типа надо несколько преобразовать, прежде чем они могут быть использованы при решении больших задач, и очень важно иметь програм¬ му, которая выполняла бы эти преобразования. Сейчас мы кратко рассмотрим некоторые методы, предложенные для решения этого вопроса. В дальнейшем будет описан и по¬ дробно разобран на примерах метод, применяемый на маши¬ не АПЕ(ИКС)К. Заметим прежде всего, что отмеченные преобразова¬ ния бывают обычно двух видов. Во-первых, в зависимости от фактического расположения программы в памяти должны быть преобразованы команды, содержащие номера ячеек, в которых помещена сама подпрограмма. Во-вторых, в под¬ программу должны быть включены числовые данные, от¬ носящиеся к конкретной задаче. При составлении подпрограммы удобно бывает предпо¬ ложить, что первая команда каждой подпрограммы всегда помещается в одну и ту же фиксированную ячейку памяти. Тогда первое преобразование будет заключаться в про¬ стом прибавлении одного и того же числа ко всем коман¬ дам, содержащим адреса, в которых находится сама под¬ программа. Если эта фиксированная ячейка памяти есть
ПРИНСТОНСКИЙ МЕТОД 211 нулевая ячейка, то указанное прибавляемое число равно номеру той ячейки, в которую предполагается поместить первую команду подпрограммы. Так, если бы в приведен¬ ном выше примере мы хотели поместить первую команду в М(23), то для внесения в подпрограмму требуемых из¬ менений достаточно было бы прибавить число 23-2-8, вы¬ раженное в двоичной форме. Поскольку такая операция является чисто арифмети¬ ческой, она может быть выполнена самой машиной. На этом основаны оба рассматриваемых ниже метода. Принстонский метод Метод, описываемый в этом параграфе, был предложен Голдстайном и фон Нейманом для использования на Прин¬ стонской вычислительной машине. Он основан на том, что обычно все команды, которые требуют преобразования, содержат адреса ячеек памяти, занятых самой подпрограммой. Если первая команда под¬ программы помещена в нулевую ячейку, то номера яче¬ ек, содержащиеся в указанных командах, будут меньше, чем общее число ячеек памяти, занятых подпрограммой. Так, предположим, что в приведенном на стр. 207 примере должно быть вычислено 10 членов и т = 0. Тогда общее число занятых подпрограммой ячеек равняется 43 и ни одна команда не содержит адреса, большего, чем 42. Это правило имеет два исключения. Во-первых, имеют¬ ся команды, такие, как команды сдвига и печати, вообще не содержащие никаких адресов и, следовательно, не нуж¬ дающиеся в преобразовании. Тем не менее значение этих команд не изменится, если даже они будут преобразованы вместе со всеми остальными командами, так как при их выполнении разряды, используемые под номера ячеек, не учитываются. Второе исключение составляют команды, в которых есть адреса, лежащие вне подпрограммы. Практически почти всегда такие случаи возникают при обращении к значениям табулированной функции, помещенной в другое место памя¬ ти, причем требуемое в данный момент значение функции определяется самой программой и заранее не известно. Но обычно ячейка памяти, соответствующая данному значению
212 ПРИМЕНЕНИЕ ПОДПРОГРАММ аргумента, бывает равна сумме аргумента и некоторой кон¬ станты, зависящей от частного вида рассматриваемой функ¬ ции (полнее этот вопрос рассматривается на стр. 238). Следовательно, преобразование таких команд аналогично преобразованию остальных команд с той разницей, что кон¬ станты, прибавляемые в этих двух случаях, различны. Та¬ ким образом, эти команды не могут быть преобразованы вместе с остальной частью подпрограммы, и они должны быть выделены и обработаны отдельно. Выделение этих команд достигается следующим обра¬ зом. На место адреса в них помещается какое-нибудь чис¬ ло (это число будет в дальнейшем преобразовано), боль¬ шее, чем общее число ячеек, занятых подпрограммой. На Принстонской машине номер ячейки занимает старшие раз¬ ряды (исключая разряд знака) ячейки. Таким образом, если вычесть из каждой команды число используемых в под¬ программе ячеек (умноженное на соответствующую сте¬ пень 2), то результат будет отрицательным для всех ко¬ манд, требующих преобразования второго вида. Операция Сс выделит их, и они будут преобразованы отдельно. Конечно, подпрограмма, не содержащая команд такого ти¬ па, может быть преобразована простым способом, который изменяет вид всех без исключения команд. Заметим, что, хотя этот способ был предложен для одноадресной машины, он может быть с успехом использо¬ ван и на многоадресных машинах. Однако в данном случае преобразованы будут все содержащиеся в подпрограмме адреса. В таких подпрограммах, не может быть применен ме¬ тод оптимального программирования, поскольку все команды и параметры должны быть помещены в память одним куском. Детальное изложение этого метода требует много места и здесь не приводится. Его можно найти в специальных работах, в которых также описаны методы использования параметров. Использование подпрограмм на машине ЭДСАК Мы вкратце остановимся на методе использования под¬ программ на машине ЭДСАК, описанном в книге Уилкса, Уилера и Гилла. Машина «снабжена» некоторой совокуп¬ ностью заранее составленных команд. При включении ма¬
ИСПОЛЬЗОВАНИЕ ПОДПРОГРАММ НА МАШИНЕ ЭДСАК 213 шины эти команды автоматически вводятся в память. Они образуют программу, которая выполняет все необходимые преобразования над вводимым с перфоленты материалом прежде,- чем он будет помещен в предназначенные для это¬ го ячейки памяти. Конечно, на ленте необходимо как-то отметить все команды и числа, подлежащие преобразова¬ нию. Это достигается с помощью специальных кодовых букв и символов, помещаемых на ленте возле соответствующих чисел и команд. Кроме того, вводятся управляющие комби¬ нации, которые фактически являются приказами, указыва¬ ющими, в какие места памяти должна быть помещена под¬ программа. Эти приказы составляются заново каждый раз, когда используется данная подпрограмма. Управляющие комбинации и кодовые буквы регулируют ввод команд и автоматически передают управление к первой команде программы после того, как окончены все преобразо¬ вания. Этот метод имеет недостаток, связанный с тем, что пред¬ варительное составление подпрограмм значительно услож¬ няется введением указанных кодовых букв. Более того, большинство команд в подпрограммах потребует пре¬ образования, а наличие большого количества кодовых букв сильно увеличит место, занимаемое подпрограммой на пер¬ фоленте. С другой стороны, надо отметить, что подпро¬ грамма составляется раз навсегда, а перфолента стоит недорого и потому указанные выше недостатки не являются существенными. Здесь будет уместно дать объяснения названиям от¬ крытой, закрытой и интерпретирующей подпрограмм, впер¬ вые введенным на машине ЭДСАК. Открытой подпрограммой называется подпрограмма, расположение которой в памяти закреплено относительно основной программы. Закрытой подпрограммой называется подпрограмма, ко¬ торая может быть помещена в любое место памяти по от¬ ношению к основной программе. Основная программа со¬ держит команды, передающие управление на подпрограмму каждый раз, когда это бывает нужным. Команда, которая возвращает управление к основной программе, вырабаты¬ вается в самой подпрограмме. При этом обычно управление передается в ячейку, непосредственно следующую за той,
214 Применение подпрограмм в которой хранится команда, передавшая управление от ос¬ новной программы к подпрограмме. Этот класс подпро¬ грамм несколько неудобен для двухадресных машин, на которых не всегда выгодно помещать основную програм¬ му одним куском и которые допускают большую гибкость при монтировании программ. Интерпретирующие подпрограммы были введены для упрощения программирования некоторых процессов, на¬ пример, действий с комплексными числами или вычислений в режиме плавающей запятой. Для этих целей использует¬ ся «псевдокод», каждая команда которого может быть реа¬ лизована с помощью нескольких команд настоящего кода машины. Для разложения или интерпретации этого псевдо¬ кода в терминах кода машины предназначаются подпрограм¬ мы, называемые интерпретирующими. Применение интерпре¬ тирующих подпрограмм дает значительную экономию места в запоминающем устройстве, но это преимущество теряет¬ ся в связи с тем, что при этом методе арифметические дей¬ ствия выполняются в десятки раз медленнее, чем обычно. Хранение подпрограмм на машине АПЕ(ИКС)К Методы, описанные выше, были разработаны для машин, имеющих быстродействующее запоминающее устройство ог¬ раниченного объема (около 500 слов), на котором к тому же информация не может храниться постоянно. В отличие от них магнитное запоминающее устройство машины АПЕ(ИКС)К постоянно сохраняет помещенную в него информацию (из¬ вестно, что числа, записанные на поверхности магнитного слоя, просуществовали без изменения 50 лет), и конструк¬ ция машины такова, что можно предполагать практически неограниченный объем памяти. Поэтому мы можем подойти к решению той же проблемы с другой стороны, заранее по¬ местив все подпрограммы в запоминающее устройство ма¬ шины. Этот метод имеет очевидные преимущества, посколь¬ ку он исключает большинство описанных выше преобразо¬ ваний подпрограмм. Более того, значительно сократится время ввода программы в машину, потому что при таком способе вводятся лишь числовые данные, команды, необхо¬ димые для их выборки, и команды, связывающие отдельные подпрограммы в одно целое. Кроме того, в машину вводятся
ВВЕДЕНИЕ КОНСТАНТ В ПОДПРОГРАММЫ 215 различные специальные подпрограммы, относящиеся к ка¬ кой-нибудь конкретной задаче и не имеющиеся в памяти. Заметим также, что хранение чисел на магнитном барабане требует значительно меньше места, чем хранение их на пер¬ фокартах или перфоленте, и с этой точки зрения более предпочтительно. Конечно, мы должны сохранять листы бумаги с запи¬ санными на них подпрограммами на случай их постепенного ослабления или неожиданной порчи в памяти, но до сих пор этот вопрос не вызывал никаких затруднений. Введение констант в подпрограммы В случае, когда подпрограммы постоянно хранятся в запоминающем устройстве, лишь небольшое число команд требует некоторых преобразований, прежде чем различные подпрограммы могут быть объединены в одну программу. Мы рассмотрим этот вопрос на стр. 219; теперь же займем¬ ся вопросом о включении в подпрограмму констант, отно¬ сящихся к какой-нибудь конкретной задаче. Константы, имеющиеся в подпрограммах, могут быть разбиты на два класса: те, которые известны к началу вычислений, и те, которые определяются в процессе самих вычислений. Так, в примере на стр. 207 я и Д могут быть известны заранее, а константы а, Ь, с, d и е могут полу¬ чаться как результат более ранних вычислений в той же программе. Константы, известные заранее, могут быть введены в подпрограмму вместе с вводом всей остальной информа¬ ции. Правда, здесь нужно позаботиться о восстановлении всех «испорченных» в процессе счета констант, если одна и та же подпрограмма используется несколько раз. Так, в примере на стр. 207 индекс итерации I портится после выполнения программы и должен быть восстановлен перед ее вторичным использованием; более того, в команде (я?,+ 1Г) должен быть восстановлен первоначальный вид адреса, по которому помещается первый вычисленный член. В некоторых подпрограммах бывает необходимо очистить те ячейки, в которых временно запоминаются числа и ко¬ торые должны быть свободны к началу счета.
216 ПРИМЕНЕНИЕ ПОДПРОГРАММ Иногда нужно последовательно применить одну и ту же подпрограмму к нескольким величинам, как это имеет место, например, в подпрограмме перевода чисел из двоично-десятичного кода в двоичный. В этом случае чис¬ ла помещаются во временные ячейки памяти и по очереди передаются из них в подпрограмму. Эта передача осуще¬ ствляется специальной итеративной программой, которая в то же время считает число выполнений подпрограммы. Константы, неизвестные к началу вычислений, должны по мере их вычисления помещаться в соответствующие подпрограммы с помощью связующих команд, которые составляют часть основной программы. Примеры этому мы найдем в нижеследующих программах. Программа деления Некоторые из рассмотренных в предыдущем параграфе вопросов будут сейчас проиллюстрированы на примере вклю¬ чения подпрограммы деления вместо автоматической опера¬ ции деления, использованной в программе на стр. 207. Предварительно нам надо составить саму программу де¬ ления, что осуществляется двумя различными способами. При одном способе используется итерационная формула, определяющая величину, обратную делителю, xn+l = xn(2 — dxn), в которой Этот метод имеет тот недостаток, что требует на каждом шаге двух умножений, а умножение является сравнитель¬ но медленной операцией на машине АПЕ(ИКС)К. Поэтому мы воспользуемся другим методом, а именно методом деле¬ ния, не требующим восстановления. Предположим, что мы хотим вычислить частное q=njd, и пусть остаток на каком-то шаге обозначен через г. Кроме того, обозначим разряд знака чисел п, d и г через n(s), d(s) и r(s). Тогда частное q может быть получено по следую¬ щим правилам;
ПРОГРАММА ДЕЛЕНИЯ 217 Операции 1—31. Пусть r(s) = d(s) Пусть г (s)=£d (s) Операция 32. Прибавить 2-31 к q. Сдвинуть и q влево. Вычесть d из г. Прибавить 0 к q. Сдвинуть г q влево. Прибавить d к г. Прибавить 2°+2-81 к q. Последняя операция придает q (32) значение единицы; при неизвестном значении q (33) это делает несистематиче¬ ской ошибку округления. Ясно, что этим методом мы непосредственно получаем частное n‘d, в то время как предыдущий метод для полу¬ чения того же результата требует еще одного дополнитель¬ ного умножения. Перед тем, как применить любой из этих методов, мы должны убедиться в том, что n<.d и, следова¬ тельно, частное не выйдет за допустимые на машине преде¬ лы. Этот вопрос является совершенно самостоятельным и будет рассмотрен в другом месте. Для удобства программирования деление всегда выпол¬ няется при отрицательном d. Если же делитель в дейст¬ вительности положителен, то частное преобразуется к ВИ¬ ДУ (—n)l(--d). Мы в состоянии теперь составить подробную програм¬ му деления. Будем предполагать, что команды помещены на барабане (сГ), начиная с ячейки т2. Программа деления (образует njd; ко всем адресам прибавить т2). Ячейки Содержимое 0 +(21) —-сА (1) 1 Сс^(З) < (2) 2 + (22) —> с А (6) 3 —(21)-^сЦ(4) 4 (21) (5) 5 —(22) —>сА (6) 6 (20) —>- cR (7) 7 Сс^г (10) < (8) 8 /(1)(9) Примечания Исследование знака d. -|-(п) помещается в нако¬ питель, если d < 0. В случае положительного d меняются знаки d и п. Индекс итерации в регистр. Цифра частного 1 помещает¬ ся в регистр, и*остаток удваи¬ вается.
218 ПРИМЕНЕНИЕ ПОДПРОГРАММ Ячейки 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 Содержимое -(21) — А (12) /(1)(11) + (21) — А (12) I (32) (13) Cess (14) <(15) /(32) (7) (19) — CR (16) I (1) (I?) + (23) —Л (18) С —(...) ■ 0 2-si d п 1,00 001 (т. е. 1 + 2-SI). Примечания d вычитается из остатка* Цифра частного 0 помещает¬ ся в регистр, и остаток Удваивается. d прибавляется к остатку. Индекс итерации в накопи¬ тель. Исследование индекса ите¬ рации. Передача индекса итерации в регистр и остатка в нако¬ питель. Управление передает¬ ся в ячейку (7) для нового цикла. Регистр очищается, чтобы избежать возможной передачи командой (16) цифр из ре¬ гистра в накопитель. Индекс итерации убран из накопителя. Установлен правильный знак и проведено округление. Передача управления к ос¬ новной программе. Здесь частное образуется в накопителе, а команда и*™ Устанавливает связь между подпрограммой деления и основной программой. Перед тем, как пользоваться этой одпрограммои, в нее нужно ввести соответствующие зна- лпяИ попСеЛ П И ’ 3 команда +18 должна быть изменена граммы Управления в нужное место основной про-
ВКЛЮЧЕНИЕ ПОДПРОГРАММ В ОСНОВНУЮ ПРОГРАММУ 219 Включение подпрограмм в основную программу Теперь мы можем показать, как подпрограмма включа¬ ется в основную программу. Для этого в программе на стр. 207 мы заменим автоматическую операцию деления составленной выше подпрограммой деления двух чисел. Для удобства мы будем называть программу на стр. 207 основной программой. Предположим, что надо найти чис¬ ленное значение п членов вида ах2 -\-bx-\-c dx-\-e ’ после чего машина должна быть остановлена. Обычно различные частные подпрограммы и основная программа находятся на разных барабанах, и поэтому мы предположим, что наша основная программа находится на барабане (1), а подпрограмма деления —■ на бараба¬ не (d). Тогда должны быть сделаны следующие преобразова¬ ния обеих программ: 1. Команда (/п2 + 18) подпрограммы деления должна быть так изменена, чтобы передавать управление вновь к основной программе. 2. В подпрограмму деления должны быть введены соот¬ ветствующие значения чисел п и d. 3. Команда (т, + 10) основной программы должна быть заменена командой, передающей управление к подпро¬ грамме деления. 4. Команда (т, + 11) должна быть заменена на команду АМ(/), поскольку теперь частное будет образовываться в накопителе. 5. Операция «окончания» вычислений должна быть помещена в нужное место основной программы. Заметим, что преобразование 1 должно быть выполнено только один раз и потому может быть помещено вне основ¬ ного цикла. В то же время преобразование 2 должно вы¬ полняться при каждом цикле и поэтому должно быть включено в сам цикл. Преобразования 3, 4 и 5 не являются по существу преобразованиями, связанными с подпрограм¬ мой, так как обычно они учитываются при составлении основной программы.
> ПРИМЕНЕНИЕ ПОДПРОГРАММ Полная программа будет иметь следующий вид: Табулирование функции #1 ох*+6х+с У dx+e ' использующее по, (ко Есем адресам основной Ячейки Содержание о (38) —с/г (1) 1 /г —к + is) (2) 2 (31) —с/г (3) 3 (37) х/?— сА(4) 4 + (32) — А (5) 5 г (32) (6) 6 /? —► (/?г2 4- 21) (7) 7 (28) —с/? (8) 8 (37) х /г — с А (9) 9 +(29) —А (10) Ю г (32) (11) 11 (37) х/г— сА (12) 12 ' + (30)—,4(13) 13 г (32) (14) 14 R — (щг + 22) (15) 15 С—>-(/71,) 16 А — (/)(17) 17 +(36)— сА (18) 18 —(35)—А (19) 19 Сс Зг 0 (20) < 0(27) программу деления программы прибавить тх) Примечания Изменение вида связываю¬ щей команды (т2 + 18) в под¬ программе деления. Передача команды в под¬ программу деления. d dx dx + е Передача cf.v + e в регистр. Передача делителя в под¬ программу деления. а ах ах -1- Ь Передача ах + Ь в ре¬ гистр. ах2 + Ьх ах + Ьх + с Передача ах2 + Ьх + с в регистр. Передача делимого в под¬ программу деления. Передача управления к под¬ программе деления для вы¬ числения ах + Ьх + cj dx + с. Передача полученного чис¬ ла в память. / / — 2~31 Исследование знака I.
КОНТРОЛЬ ПОРЯДКА ЧИСЕЛ 221 Ячейки Содержание Примечания 20 А —(36) (21) Подстановка нового значе¬ ния индекса итерации. 21 + (37) — с А (22) 22 + (33) — А (23) 23 А — (37)(24) Подстановка нового значе¬ ния х. X х + А 24 +(16) — сЛ (25) Команда передачи у в па¬ мять. 25 + (34) — А (26) К первому адресу коман¬ ды, передающей у в память, прибавлено 2-8. 26 Л—(16) (2) Команда передачи у в па¬ мять заменена новой, и управление передано к на¬ чалу нового цикла. 27 Окончание 28 а 29 Ь 30 с 31 d 32 е 33 А 34 2-8 35 2-31 36 I 37 х 38 С—*(/+ + 16) Команда, связывающая ко- Мы уже отмечали выше, что при составлении программы для машин с фиксированной запятой программист должен учитывать порядок образующихся в процессе счета чисел и должен быть уверен, что они не выйдут за допустимые на данной машине пределы. Иногда это удается сделать нец подпрограммы деления с основной программой. I — (/ + п) Таблица вычисленных зна¬ чений. Контроль порядка чисел
222 ПРИМЕНЕНИЕ ПОДПРОГРАММ заранее, умножив все входящие в задачу константы на соот¬ ветствующим образом подобранные масштабные коэффи¬ циенты, но часто мы не можем заранее предугадать вели¬ чины чисел, которые будут образовываться в процессе работы машины. Однако если вычисления не очень запу¬ таны, то сравнительно простая программа может разре¬ шить этот вопрос. Пусть, например, в примере на стр. 220 нам неизвестна относительная величина числителя ахг+Ьх+с и знаме¬ нателя dx+e, обозначаемых ниже через п и d соответст¬ венно, при различных значениях х. Для сравнения величин п и d можно воспользоваться следующей программой: если |/г| ^ |d|, то d удваивается и вновь сравнивается с п, и так до тех пор, пока не будет выполнено неравенство N<14 В то же время ведется подсчет числа таких удвое¬ ний, чтобы мы в дальнейшем знали, как изменилась'вели¬ чина полученного таким способом частного. Программа имеет следующий вид (ко всем адресам при¬ бавить т.): Ячейки Содержимое 0 (31)-*с/?(1) 1 R — (32) (2) 2 + (33) — сА (3) 3 Сс=> 0 (5) <0(4) 4 — (33) с А (5) 5 А—* (34) (6) 6 + (35) с А (7) 7 Cc5s0(9)<0(8) 8 — (35) — сА (9) 9 А — (36) (10) 10 — (34) _ Л (11) 11 Сс^О (12) <0 (14) 12 — (37) —► А (13) 13 Сс 5з= 0 (21) <0(14) 14 + (32) —сА (15) 15 4 (31) —^ Д (16) 16 Сс5з0(17)<0 (29) 17 А—s. (32) (18) Примечания |/г| образуется в накопителе и передается в ячейку (34). j d | образуется в накопителе и передается в ячейку (36). 14-М Проверяется \d\-\n\. Индекс итерации увеличен на 1, и проверено, выпол¬ нены ли 30 сдвигов.
КОНТРОЛЬ ПОРЯДКА ЧИСЕЛ 223 Ячейки Содержимое 18 + (36) — с А (19) 19 /(1) (20) 20 Со 0(9) <0(30) 21 + 35 —сЛ (22) 22 Со 0(24) <0(23) 23 _ (36) — с А (25) 24 + (36)— сА (25) 25 А — (35) (26) 26 + (32) — с А (27) 27 -(31) — А (28) 28 С —(...) 29 Окончание (1) 30 Окончание (2) 31 2~ъ 32 I 33 п 34 м 35 d 36 \d | 37 2~31 Примечания |d| переносится в накопи¬ тель, сдвигается, и прове¬ ряется, петли переполнения. |n|<|d| d-2" записывается для даль¬ нейшего. I исправляется вычитанием единицы. Выполнены 30 сдвигов; Д=0 или d= 2~S1. п может быть сделано мень¬ ше d только сдвигом г (1). Здесь предусмотрены различные случайности. Возмож¬ но, что и п и d состоят из 31 двоичной цифры, причем в первом разряде обоих чисел стоят единицы. Если ti^>d в этих обстоятельствах, то единственным способом до¬ биться того, чтобы было п'<А, является сдвиг п на один разряд вправо, освобождающий разряд знака. Поскольку программист должен при этом предотвратить потерю точности, то выполнение программы приостанавливается командой (т3+30). Другой возможный источник ошибок возникает в случае d= 0, когда деление п на d теряет смысл. Это определяется командой (/+ + 16), и выпол¬ нение программы вновь приостанавливается. Начальное прибавление 1 к I есть просто удобный прием для опре¬ деления в дальнейшем того факта, что совершено 30 сдви¬ гов и возникло максимально допустимое число.
224 ПРИМЕНЕНИЕ ПОДПРОГРАММ Ясно, что подпрограммы, проверяющие относительную величину двух чисел, могут применяться в весьма ограни¬ ченных масштабах. Действительно, если полученное та¬ ким методом частное п d используется в последующих вычислениях,' то необходима переделка всей программы, при которой учитывается изменение величины отношения rijd. Таким образом, мы пришли к основному принципу, согласно которому учет относительной величины чисел должен быть проведен либо всюду в программе, либо нигде. Мы могли бы составить для каждого арифметического дей¬ ствия подпрограммы, изображая числа в виде 2&-х (как говорят, с плавающей запятой), однако эти подпрограммы должны применяться либо в течение всего вычислительного процесса, либо не применяться нигде. Такие подпрограммы весьма длинны, и поэтому мы не будем на них подробнее останавливаться. Этот вопрос детально изучен в работе Уилкса, Уилера и Гилла. Основное возражение против их применения основано на том, что из-за них резко по¬ нижается общая скорость работы машины. Кроме того, очень усложняется программирование задач. Например, на АПЕ(ИКС)К время сложения возрастает с 450 мксек до 200 мсек, поскольку каждое арифметическое действие со¬ держит отсылку к соответствующей подпрограмме. Следо¬ вательно, хотя применение арифметических действий с плавающей запятой возможно прибегать к ним нужно лишь в самых крайних случаях и целесообразнее пред¬ почитать им более аккуратную предварительную оценку величин, получаемых в процессе счета. Заметим, что наиболее важным является определение момента, когда числа становятся для машины слишком большими *), потому что числами, которые становятся меньше изобразимых на машине, во многих случаях (хотя и не всегда) можно пренебречь, как достаточно малыми. К сожалению, в машинах, в которых отрицательные числа изображаются дополнительным кодом, пользоваться не¬ посредственно этим свойством нельзя, поскольку положи¬ *) С этой целью в арифметическое устройство машины часто вводят дополнительные цепи, автоматически вырабатывающие сигнал, вызывающий остановку машины. О методах получения такого сигнала см., например, А. И. К и г о в, Электронные цифровые машины. М.. 1956, сгр. 40. (Прим. ред.)
ИЗВЛЕЧЕНИЕ КВАДРАТНОГО КОРНЯ 225 тельные числа, превзошедшие допустимый предел, превра¬ щаются в отрицательные. Печатая числа, получающиеся в определенные моменты счета, можно следить за их ве¬ личиной. Если какая-нибудь функция выйдет за допустимый предел, то это сразу станет ясно, так как ее значения резко перейдут от, скажем, больших положительных к малым отрицательным*). Этот метод имеет тот же недостаток, что и предыдущий, поскольку печать является медленной опе¬ рацией и общая скорость вычислений резко понизится. Более того, при таком способе мы только обнаруживаем ошибку и для ее исправления вынуждены начать весь счет сначала, предварительно внеся в программу соответствую¬ щие изменения. Этот метод применим для того случая, когда одни и те же вычисления проводятся много раз при различных значениях числовых данных, если известно при этом, что порядок получаемых чисел во всех случаях приблизительно одинаков. Необходимые изменения в про¬ грамме при определенных значениях исходных данных обеспечат ее нормальное выполнение во всех остальных случаях. Наиболее простое решение этого вопроса с точки зре¬ ния программиста достигается на машине с плавающей запятой. К сожалению, трудности конструирования таких машин весьма велики, и при этом совершенно неизбежно значительное увеличение размеров машин и сложности монтажных схем. Вопрос о контроле величины чисел ос¬ тается одним из наиболее неудовлетворительно разрешен¬ ных для машин с фиксированной запятой. Извлечение квадратного корня ^ Извлечение квадратного корня является весьма важной арифметической операцией, которая обычно не выполня¬ ется машинами автоматически. Существует много различ¬ ных способов вычисления квадратного корня, многие из которых легко могут быть запрограммированы на машине. *) Точнее, большие положительные числа переходят в большие по абсолютной величине отрицательные числа, так как действия в машине производятся в допо тннтельном коде, т. е. в коде по модулю 2. (Прим. ред.) 8 Э. Бут и К. Б}Т
226 ПРИМЕНЕНИЕ ПОДПРОГРАММ Мы отметим следующие методы: 1) обычный метод, изучаемый в школе; 2) разложение в ряд Тейлора; 3) простой итеративный метод; 4) метод двойной итерации; 5) метод проб и сравнений; 6) приближение рядами; 7) интерполирование табличных значений. Давать подробную программу для каждого из указанных ме¬ тодов не имеет смысла, и мы дадим только их математиче¬ ское обоснование. Для двух способов мы рассмотрим и деталь¬ ные программы, составленные в коде машины АПЕ(ИКС)К . Двоичная форма обычного школьного метода извле¬ чения квадратного корня в принципе мало чем отличается от способа, применяемого в десятичной системе счисления. Число, корень которого мы ищем, разбивается на группы по два разряда в каждой, и берется пробный корень первой группы (который в двоичной системе может быть только О и 1). Этот пробный корень возводится в квадрат и вычи¬ тается из первой группы, после чего проверяется знак остатка. Затем полученное значение удваивается и используется в качестве первых двух разрядов на следую¬ щем этапе и т. д., так же как в обычном методе при деся¬ тичной системе счисления. Этот метод может быть уяснен на следующем примере: 49/64 = (7/8)® = 0,110001 Ko.nwoT=0,111 1 1 1000 101 101 001101 1101 1101 Он весьма эффективен с машинной точки зрения, поскольку не содержит операции умножения, если не считать удвое¬ ния приближенных значений корня, которое при двоичной системе выполняется тривиально. С точки зрения про-
ИЗВЛЕЧЕНИЕ КВАДРАТНОГО КОРНЯ 227 граммирования способ, не требующий восстановления, мало чем отличается от разобранного выше, и мы не будем его описывать. Отыскание квадратного корня с помощью рядов Тейло¬ ра основано на разложении которое весьма просто программируется, но имеет тот недо¬ статок, что число членов разложения, которые необходимо удержать для получения требуемой точности, зависит от х. Вероятно, наиболее простой способ основан на исполь¬ зовании формулы которая определяет итеративный процесс для вычисления Y Ь, поскольку lim Хп=УЪ. Программа вычисления квадратного корня по этой фор¬ муле является одной из наиболее часто используемых под¬ программ, в частности, при рентгеноструктурном анализе и при баллистических расчетах. На примере этой программы мы, кроме того, увидим, как подходящим преобразованием вычислений удается иногда избежать выхода числа за до¬ пустимые в машине пределы. Прежде всего мы должны исследовать величину отно¬ шения bjxn. Если ошибка п-го приближения не превосхо¬ дит г, то можно показать, что ошибка (п-М)-го прибли- жения будет меньше Ly b. Поскольку 6<1, то следовательно, Ь;Хп+1< 1 и не выходит за допустимый на машине предел. В качестве первого приближения мы возь¬ мем величину (Ь + 1)/2. (1 —*)•/■= 1 _-л—g-л2 — ■*»+! > Vb > Ь; Число может быть больше 1, но этого мож¬ но избежать, вычисляя величину 8*
228 ПРИМЕНЕНИЕ ПОДПРОГРАММ Это выражение мы предпочли выражению ^-j-щг i так как при этом ошибка округления меньше. Более того, 1 ( ъ \ величина хп) может служить для определения до¬ стигнутой точности вычислений, поскольку она равна разности (хп+1—хп). Когда точность вычислений станет мак¬ симально достижимой на данной машине, разность (хп+1—хп) перейдет от отрицательных значений к нулю. В действи¬ тельности используется метод, несколько отличный от указанного, ибо далеко не всегда требуется доводить вычисления до такой высокой степени точности (это вызы¬ вало бы лишь ненужную трату времени). Вычисления можно прекратить, когда знак выражения 2“А+(хп+1—х„), проверя¬ емый на каждом этапе вычислений, становится положитель¬ ным. Здесь k определяет требуемую точность вычислений. Программа вычисления квадратного кор¬ ня методом итераций (по формуле xn+i— y {тп~ Хп )+*«’ ко всем адресам прибавить т4) Ячейки Содержимое 0 (20)— с/? (1) 1 R —> (т2 + 18) (2) 2 + (25) —»- с А (3) 3 г(1)(4) 4 + (21) —*А (5) 5 А —(22) (6) 6 г (32) (7) 7 7? —- (гпг + 21) (8) 8 (25) cR (9) 9 Д —(m,+ 22) (10) 1U С (ni j Примечания Преобразование последней команды подпрограммы де¬ ления. Ь h '2 ф + 1) /2 = х, Вначале х,, на следующих этапах хп. Передача хп в регистр. Передача хп в подпрограм¬ му деления. b Передача b в подпрограмму деления. Передача управления к подпрограмме деления.
ИЗВЛЕЧЕНИЕ КВАДРАТНОГО КОРНЯ 229 Ячейки 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 Содержимое — (22) — Л (12) г (1) (13) А —>(23) (14) + (24)--+ Л (15) Сс 5^0 (18) <0(16) + (23) —*сА (17) + (22) —»- А (5) + (22) —>- с А (19) С-+(...) С —>- \tni +11) 2-’ х„ Примечания Ь т-х* -'(к-*)' 2“*+ (*„+! — х«) отрица¬ тельно, пока не достигнута точность 2~к. Передача хп+1—хп в на¬ копитель. В накопителе оставлено х, «+1 • В накопителе образован хп+г — искомый квадратный корень. Ячейка для временного запоминания — х„ 2-й 6 Определяет точность вычис¬ лений. Числа 6 и k являются исходными данными задачи, от¬ вет образуется в накопителе. Число итераций, необходимых для достижения требуе¬ мой точности, зависит от числа 6 и растет вместе с убы¬ ванием 6. Так предположим, что требуется определить шесть верных десятичных знаков. В наихудшем случае, когда 6=0, требуется выполнить 31 итерацию. Если же 6 велико (например, 6=0,9), то достаточно трех итераций*). Следовательно, если нам нужно определить квадратные корни большого количества чисел, то мы сэкономим много времени, максимально увеличив эти числа либо до их введения в машину, либо самой программой. *) Для достижения указанной точности в первом случае можно ограничиться не 31, а 20 итерациями, во втором же случае 2 итерации дают уже 12 верных десятичных знаков. {Прим. ред.)
230 ПРИМЕНЕНИЕ ПОДПРОГРАММ Описанный метод имеет тот недостаток, что требует деления на каждом шаге, и особенно неудобен для машин, не имеющих автоматической операции' деления. Другой метод заключается в вычислении хп+1 == хп f 36 .x/J/26, где хп также сходится к (/ /;. Этот метод требует всего од¬ ного деления для вычисления величины 1/26, но требует много умножений для определения числителя. Используя метод двойной итерации, можно вычислить квадратный корень, не применяя операций деления. Со¬ гласно этому методу определяются Хп+1 = хп ~2Х„У„, Уп+1=-^ уКуп — 3), где ■*0 = ь, У0 = Ь— 1; lim хп—УЪ, lim уп — 0. гг -*■ оо п -> со Здесь также на каждом шаге требуется несколько ум¬ ножений. Метод, названный нами методом проб и сравнений, легко программируется и легко распространяется на вы¬ числение более высоких корней. Он заключается в последо¬ вательном определении цифр корня. Цикл начинается с того, что пробное число 0, 1 возводится в квадрат и из него вычитается число Ь, корень которого определяется. Если разность положительна, то первое пробное число 0,1 ве¬ лико и из него вычитается число 0,01; если же эта разность отрицательна, то к первому приближению 0,1 прибавляется 0,01 и процесс повторяется. Хотя это способ не годится для ручного счета, но для машин, обладающих быстрой операцией умножения, он очень удобен и может быть весь¬ ма изящно запрограммирован, что будет нами сделано немного ниже. Заметим, что первое приближение всегда равно 2 \ Этот метод основан на равенстве 2-п_2_п_1==2_п_1 (т. е. 2_1 = 11)> используемом в не требующих восстановления методах умножения и деления.
ИЗВЛЕЧЕНИЕ КВАДРАТНОГО КОРНЯ 231 Остроумный метод, применяемый на машине ЭНИАК, основан на том, что сумма первых п нечетных чисел равна пг, т. е. Этот метод легко может быть запрограммирован, со¬ всем не содержит умножений, но для больших значений п весьма медленен. Можно поместить в машину таблицу квадратных корней и затем находить корень нужного числа с помощью интер¬ поляционных формул, но ввиду сложности интерполяцион¬ ных процессов, о которых мы будем говорить в другом месте, этот метод применяется редко. Выгоднее пользо¬ ваться такой таблицей для определения достаточно точного первого приближения в рассмотренных выше итеративных методах, ибо в них ошибка на каждом шаге равна квад¬ рату ошибки на предыдущем, и, следовательно, скорость сходимости этих процессов зависит от удачного выбора первого приближения. В качестве примера программы вычисления квадрат¬ ного корня дается следующая Программа вычисления квадратного корня методом проб и сравнений (ко всем адресам прибавить т4) Ячейки Содержимое Примечания L -f 3 + 5 -+- 7 + ... + (2и — 1) = чг. 0 +(19) —*сА (1; 1 А —* (23) (2) 2"1 = 0,100... Восстановление пробного числа после предыдущего ис¬ пользования подпрограммы. 2 + (20) — сА (3) 3 А —(21) (4) Замена оставшегося в ячей¬ ке (21) результата предыдущих вычислений начальным значе¬ нием корня. 0 (нуль) 4 (21) —+R (5) Приближенное значение корня, скажем хп. 5 (21) хЯ^сА (6) 6 — (22) —* А (7) 7 Сс Зг 0 (8) <0 (9) 8 — (23)--»сА(Ю) Для образования хп+1.
232 ПРИМЕНЕНИЕ ПОДПРОГРАММ Ячейки Содержимое 9 + (23) —±сА (10) 10 + (21)—>■ А (11) 11 А (21) (12) 12 + (23) -*сА (13) 13 г (1) (14) 14 Л —(23) (15) 15 / (32) (16) 16 Сс =3=0(4) <0(17) 17 (21) —► сА (18) 18 С-,(...) 19 0,100... 20 0,000... 21 22 ь 23 i Примечания Для образования х„+1. Образование хп+1. Замена хп на хп+1. Сдвиг пробного числа на один разряд вправо. Передача в ячейку (23) но¬ вого значения пробного числа. Сдвиг нового значения пробного числа для использо¬ вания его в качестве ин¬ декса итерации. Если пробное число попа¬ дает в знаковую ячейку на¬ копителя, то счет прекра¬ щается. Передача вычисленного значения корня в накопитель. Передача управления к ос¬ новной программе. Интересно отметить, что пробное число используется в этой программе не только для образования следующего приближенного значения корня, но и для определения конца вычислений. Это достигается благодаря тому, что при сдвиге вправо младшие разряды накопителя передаются в старшие разряды регистра. Таким образом, когда точность при¬ ближения становится меньше, чем емкость накопителя, пробное число попадает в 7?(1), а команда (15) сдвигает его в Л(1), и теперь команда условной передачи управления (16) использует его для определения конца счета. Неболь¬ шим изменением программы можно заменить однократное умножение в команде (5) n-кратным, и тогда тот же ите¬ ративный процесс будет вычислять '{/'b.
ПЕРЕВОД ЧИСЕЛ В ДВОИЧНУЮ СИСТЕМУ И ОБРАТНО 233 Перевод чисел в двоичную систему счисления и обратно С практической точки зрения приводимые ниже два примера программ весьма важны. Они позволяют переводить числа в двоичную и из двоичной системы счисления и обычно используются при любых вычисле¬ ниях. Перевод издесятичной системы счис¬ ления в двоичную. Обычный арифметический метод перевода числа, меньшего единицы, из десятичной системы счисления в двоичную состоит в следующем: число последо¬ вательно умножается на 2, и к соответствующему двоич¬ ному числу приписывается 1 или 0, в зависимости от на¬ личия или отсутствия единицы переноса из дробных раз¬ рядов десятичного числа в целые. К сожалению, этот метод не вполне подходит для вычислительных машин, поскольку десятичные цифры, как таковые, не могут быть помещены в машины и должны быть изображены в двоичном коде. Применение указанного выше метода к числам, изображенным в двоично-десятичном коде, весь¬ ма затруднительно, так как должен быть осуществлен перенос единицы из разряда в разряд при каждом умно¬ жении. Поэтому на машинах удобнее применять другой, не¬ много окольный метод, который лучше всего пояснить на примере. Предположим, что мы хотим перевести в двоич¬ ную систему счисления число 0,431. Это число может быть записано в следующем виде: 10-3 - ((4 -10 —]— 3) -10 —|— 1), откуда следует, что перевод может быть осуществлен сле¬ дующим способом: цифра старшего разряда числа умножа¬ ется на 10 (1010 в двоичной системе счисления), прибавля¬ ется к цифре второго разряда, вновь умножается на 10, прибавляется к цифре следующего разряда и т. д Этот процесс продолжается до тех пор, пока не будут обрабо¬ таны все разряды числа. После этого полученное двоичное число умножается на 10““, где п — чис.уо десятичных разрядов. Для того чтобы образуемое так двоичное число не выходило из разрядов, сложение нужно проводить в
234 ПРИМЕНЕНИЕ ПОДПРОГРАММ самых младших разрядах накопителя. Следовательно, по окончании процесса полученное двоичное число должно быть разделено не на 10я, а на 10,г2_31. Число десятичных разрядов может быть в различных случаях различно. Для машины АПЕ(ИКС)К оно не может, однако, превосходить 8, и программа составлена так. что п может принимать любое значение от 0 до 8. Еще несколько слов должно быть сказано относительно знака переводимых чисел. В машину вводится модуль от¬ рицательных десятичных чисел, а в разряд знака ставится единица. Следовательно, процесс перевода из одной си¬ стемы в другую может быть непосредственно применен к таким числам. Но после того, как число записано в двоич¬ ной системе счисления в соответствии с общим методом изображения отрицательных чисел в машине, нужно перей¬ ти к дополнительному коду и в знаковый разряд поме¬ стить единицу. Программа перевода чисел из деся¬ тичной системы счисления в двоич¬ ную (ко всем адресам прибавить т5) Ячейки Содержимое Примечания 0 + (35) —>cR (1) Очистка регистра. 1 Я—(39) (2) Очистка ячейки для хра¬ нения переведенной части числа. 2 + (36) — с А (3) Десятичное число D. 3 Сс 0 (5) <0(4) 4 + (37)-* Л (5) Уничтожение знака D. 5 /(1)(6) Передача в регистр первой десятичной цифры числа D. 6 /(4) (7) 7 Л -*(38) (8) Запоминание не преобра¬ зованной части числа D. 8 1 (32) (9) Передача десятичной циф¬ ры числа D в накопитель. 9 + (35) —^cR (10) Очистка регистра. 10 + (39)-* А (И) Прибавление уже переве¬ денной части числа D. 11 Л—(39) (12) 12 /(2) (13) 13 + (39)—Л (14)
ПЕРЕВОД ЧИСЕЛ В ДВОИЧНУЮ СИСТЕМУ И ОБРАТНО 235 Ячейки Содержимое 14 I (1) (15) 15 А -* (39) (16) 16 -н (40) —► сЛ (17) 17 — (41) —у А (18) 18 Л—(40) (19) 19 Сс 0 (20) <0 (22) 20 (35) —>cR (21) 21 + (38) —>-сА (6) 22 (39) —> cR (23) 23 R — (m2 + 221 (24) 24 (42) —>-cR (25) 25 Я —(ma + 21)(26) 26 (43) —> cR (27) 27 R —y (m2 +18) (28) 28 C —(mf) 29 A — (38) (30) 30 + (36) —сЛ (31) 31 Cc 5s 0(32) <0(331 32 + (38) — с A (34) 33 _ (38) — сЛ (34) 34 с —( ) 35 0 36 D 37 l 38 39 Примечания Индекс итерации. Вычитание единицы. Передача нового значения индекса итерации. Очистка регистра. Непереведенная часть де¬ сятичного числа. Управление передается к началу сле¬ дующего цикла. Переведенное число. Передача в подпрограмму деления. Делитель. Передача в подпрограмму деления. Команда передачи управ¬ ления к основной программе. Передача в подпрограмму деления. Передача управления к подпрограмме деления. Передача двоичного вида числа. D Переводимое десятичное число D. Ячейка для временного запоминания шепереведенной части D. Переведенная часть числа.
236 ПРИМЕНЕНИЕ ПОДПРОГРАММ Ячейки Содержимое Примечания 40 / Индекс итерации (п—1)2-". Вначале п равно числу десятичных разрядов. 41 2~гг 42 10п-2~31 43 С —(ть -|- 29) Команда передачи управ¬ ления от подпрограммы деле¬ ния к основной программе. В программу должны быть введены параметры!), (п—1)-2~31 и 10"-2“81. Результат образуется в накопителе. Перевод из двоичной системы счис¬ ления в десятичную. Перевод из двоичной си¬ стемы счисления в десятичную несколько проще, поскольку здесь может быть применен простой арифметический метод. Более того, эта программа не требует операции деления и потому не использует других подпрограмм. Двоичное число последовательно умножается на 10-2-4 (0,1010 в двоичной системе счисления). Соответствующие десятичные цифры в кодированном двоичном виде об¬ разуются в разрядах целой части числа при умножении этого произведения на 24. При переводе должны рассматри¬ ваться только абсолютные значения чисел, а отрицатель¬ ный знак присоединяется к числу после окончания перевода. Программа перевода из двоичной системы счисления в десятичную (ко всем адресам прибавить те) Ячейки Содержимое Примечания 0 +(23)—>-сА (1) Двоичное число В. 1 Сс 3*0 (2) <0(3) 2 (20)—>cR(5) Передача Ов 32-й разряд регистра, если В положи¬ тельно. 3 —(23) —сА (4) Определение абсолютного значения числа В. 4 (21)—*cR(5) Передача 1 в 32-й разряд регистра, если В отрицательно. 5 R —* (22) (6) Ячейка дл'я запоминания десятичных цифр.
ПЕРЕВОД ЧИСЕЛ В ДВОИЧНУЮ СИСТЕМУ И ОБРАТНО 237 Ячейки 6 7 9 10 11 12 13 Содержимое А — (23) (7) г (2) (8) + (23) —Л (9) (22)— cR (10) /(4) (11) Я —(22) (12) /(63) (13) А — (23) (14) Примечания \В\ I б I '4 1в1+^Цт)Э-10-1в1 Передача 10 ■ | В | в per истрЯ. Передача в ячейку (22) пе¬ реведенной десятичной части числа. Команда, эквивалентная единичному правому сдвигу накопителя. Передача в ячейку (23) непереведенной двоичной ча¬ сти числа. 14 + (24)—+ сА (15) 15 —(21) — А (16) 16 Сс^0(17)<0(19) 17 Л —(24) (18) 18 +(23) — с А (7) 19 С —( ) 20 0 21 2-SI 22 Образующееся десятичное число. 23 Вначале двоичное число, а потом его непере- веденная часть. 24 Счетчик числа образованных десятичных цифр. В программу должны быть введены в качестве исходных данных В и индекс итерации (п—1)-2_SI. Результат обра¬ зуется в ячейке т6+22. ГЛАВА 16 СОСТАВЛЕНИЕ ПРОГРАММ Примеры программ, рассмотренные в предыдущей гла¬ ве, были относительно коротки и достаточно просты. Чтобы дать читателю представление о вопросах, возникающих при программировании практических задач, мы рассмотрим
238 СОСТАВЛЕНИЕ ПРОГРАММ ниже несколько более сложных случаев. На них мы познакомимся с методами составления программ, обеспе¬ чивающих ^рациональное использование машины в данной конкретной задаче. Кроме того, мы убедимся, что метод вычисления значений некоторой функции, с успехом при¬ меняемый в одной задаче, оказывается нерациональным для вычисления значений той же функции, но уже в дру¬ гой задаче. Применение таблиц и интерполирование Математические таблицы являются ценным подспорь¬ ем при вычислительных работах, и поэтому весьма важно разработать методы, позволяющие применять их при про¬ ведении расчетов на вычислительных машинах. Кроме того, мы должны научиться в случае нужды интерполировать на машине эти таблицы. Машина АПЕ(ИКС)К обладает постоянной памятью очень большой емкости, и поэтому в нее помещены таблицы таких часто используемых в вычислениях функций, как sinx, tgx и ех. Если в процессе вычисления нам встречается функ¬ ция, которой нет в машине, то можно либо ввести в машину таблицу значений этой функции, либо по мере надобности вычислять ее значения с помощью рядов Тейлора или ка¬ ких-нибудь других рядов. Е1оследний способ более удобен в случае, когда ищутся значения функции всего в не¬ скольких точках. Хранение таблиц в машине Сейчас мы опишем метод, с помощью которого в машине АЕ1Е(ИКС)К хранятся различные математические таблицы. Таблицы функций состоят из двух множеств чисел: зна¬ чений самой функции и значений аргумента. Для запоми¬ нания значения аргумента и соответствующего значения функции можно использовать чередующуюся последова¬ тельность ячеек, помещая в ячейку одной последователь¬ ности значения аргумента, а в ячейки другой — значения функции. Е1о такой метод весьма невыгоден с точки зре¬ ния экономного использования объема памяти. Можно сохранять и значение аргумента, и соответствующее зна¬ чение функции в одной ячейке памяти, но, чтобы пользо¬
ПРОГРАММА ИНТЕРПОЛИРОВАНИЯ 239 ваться такой таблицей, должно быть предусмотрено от¬ деление этих двух чисел. Более того, максимально возможная точность таблиц при таком методе пони¬ жается. Иной метод возможен для таблиц с постоянным шагом. Поскольку последовательные ячейки памяти обозначены числами, отличающимися на одну и ту же величину 2“’*, можно условиться, что первые т разрядов аргумента (обычно плюс некоторая константа) численно равны номеру той ячейки, в которой хранится соответствующее значение функции. Предположим, что в таблице имеется значение, соответствующее заданному значению аргумента. Чтобы определить нужное значение функции, достаточно поме¬ стить аргумент в разряды адреса той команды, которая извлекает отдельные числа из таблицы. Если же в таблице нет значения функции, соответствующего заданному зна¬ чению аргумента, последний может быть использован таким же способом для извлечения ближайшего имеющегося в таблице значения. Пусть, например, значение функции ех для х=0,125 хранится в ячейке 125+с, где с — константа, одна и та же для всей таблицы (для простоты мы пользуемся десятичной системой счисления). Значение е°>1252 будет найдено с помощью интерполяционной формулы, в которой за первое значение функции будет принято число, находящееся в ячейке М (125+с). Такой способ иногда требует некоторого видоизменения значений аргумента, но это всегда может сделать сама ма¬ шина по специальной программе. Кроме того, иногда этот метод требует довольно неудобного шага таблиц. Например, таблицы тригонометрических функций удобно составлять для шага тт2_п. Но так как обычно таблицы составляются самой машиной, то это не является большим препятствием. Программа интерполирования Из предыдущих рассуждений ясно, что программа интерполирования таблиц функций должна обязательно входить в библиотеку стандартных подпрограмм. В ка¬ честве примера мы выберем формулу Стирлинга, так как она использует центральные разности, лежащие максимально
240 СОСТАВЛЕНИЕ ПРОГРАММ близко к требуемому значению. Конечно, различные случаи требуют применения различных интерполяцион¬ ных формул; например, интерполяцию у краев таблицы выгоднее проводить по формуле Ньютона. Программы для этих случаев весьма похожи друг на друга, и мы не будем их все приводить. Точность интерполяционных формул зависит от числа узлов интерполяции, причем для заданной точности это число различно для различных функций. В общем случае идеальная интерполяционная программа должна давать значения функции с любой наперед заданной точностью, независимо от числа необходимых для этого членов. К со¬ жалению, программа для такого общего случая весьма длинна. Действительно, чтобы сделать такую программу итеративной, мы должны будем строить интерполяцион¬ ную формулу с помощью таблицы конечных разностей, вместо того чтобы вычислять отдельно каждый член ин¬ терполяционной формулы, исходя из значений самой функции. Вообще говоря, мы не можем сказать заранее, сколько членов должно быть взято для достижения задан¬ ной степени точности. В частности, может оказаться, что при составлении таблицы конечных разностей мы исполь¬ зуем все табличные значения функции, а это является очень громоздким процессом, требующим много времени и ме¬ ста в запоминающем устройстве. Поэтому мы ограничимся формулой Стирлинга с пятью членами. Для большинства целей такое число членов является вполне достаточным. Например, если шаг таб¬ лицы значений sin а равен тг/32, то указанная формула обеспечит шесть верных десятичных знаков. Программа составлена так, что если требуемая степень точности до¬ стигнута при меньшем числе членов, то вычисления пре¬ кращаются, чем уменьшается время, расходуемое на вы¬ числения. Предположим, что мы имеем таблицу значений функции у с шагом со. Пусть мы хотим определить с помощью ин¬ терполяционной формулы значение функции у в некоторой точке х= х0+пы, где х0 — ближайшее слева к х табулиро¬ ванное значение аргумента. Ближайшие слева и справа к х0 табулированные значения аргумента пусть будут х_ , *+.' *+2 11 т- Д-
ПРОГРАММА ИНТЕРПОЛИРОВАНИЯ 241 Формула Стирлинга с пятью членами имеет вид у =Уо + \ b + . — -У-Л + 0 + , — Ь’о +>'-,] + + — Ь'+1 + 2^-1 — _У-г] + ,l4% lj \У+, — 4у+, + 6у0 — 4у _, + д/ _ J. Программа интерполирования по формуле Стирлинга (ко всем адресам приба¬ вить /л,) Ячейки 0 1 2 3 4 5 6 7 8 10 11 12 13 14 15 Содержимое + (93) —* с А (1) г (22) (2) + (109) —>■ с А (3) г(1)(4) R -(94) (5) — (94) — с А (6) Ccss= 0 (7) <0(13) + (93) — с А (8) /(1)(9) + (95)—Л (10) Л( 1-5-9)—(11)(11) + (1/о)— сЛ (12) Л — (96) (92) + (93) — сЛ (14) /(1) (15) + (95) —Л (16) Примечания х (предполагаем, что а>0) Передача /ко в регистр. Очистка накопителя. Образование п в регистре. Запоминание п. При п>0 в накопителе об¬ разуете я отрицательноечисло. Проверка, табулировано ли данное значение х. х Первые 9 разрядов х сей¬ час расположены так, что мо¬ гут быть помещены в ко¬ манду. Прибавление с — номера ячейки, в которой хранится первый элемент таблицы. Преобразование коман¬ ды (11). Извлечение из таблицы требуемого значения у. Передача у в ячейку, в. которой образуется ответ. х (данное значение х не табулировано). х преобразуется, как в ко¬ манде (8), для дальнейшей подстановки.* Прибавление с.
242 СОСТАВЛЕНИЕ ПРОГРАММ Ячейки Содержимое 16 А (1 -т-9)—>(32)(17) 17 18 19 20 21 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 + (97) — Л (18) А( 1 — 9)—>(35)(19) А (1 —9)—»(52)(20) Примечания Преобразование команды, извлекающей у0. 2~8 Преобразование команды, извлекающей у+1. Преобразование команды, извлекающей у+1. 2~8 Преобразование команды, извлекающей «... 22 А (1 — 9) >(72)(23) Преобразование команды, извлекающей у+г. —3-2“8 Преобразование команды, извлекающей у_г. — 2“8 Преобразование команды, извлекающей у_г. + (97) —> А (21) А (1—9)—(60) (22) — (98) — А (24) А (1—9) —(34)(25) — (97) — А (26) А (1-5-9) ->(59) (27) (94) >cR( 28) (94) -+?—сЛ (29) А — (99) (30) — (100) —. А (31) А —(101) (32) + Ш — с А (33) А — (96) (34) -(У-J — cA (35) + (г/+1) —Л(36) r (1) (37) А — (102) (38) г (32) (39) (94) X#— с А (40) А -,(103) (41) + (104)—Л (42) п‘ 1). 42 Л —(104) (43) 43 +(103)— сА (44) 44 Cess0(46) <0(45) Запоминание ns. (я8- 1) Запоминание (п2 Запоминание у0. —У-у У+х — У-1 (У+1 —У-г)!2 п(У+1 —У-д ,2 Прибавление предыдущих членов формулы. Вначале ячейка (104) пуста. Передача в (104) нового значения формулы.
ПРОГРАММА ИНТЕРПОЛИРОВАНИЯ 243 Ячейки Содержимое Примечания 45 — (103) —>сА (46) Модуль вновь вычисленно¬ го члена формулы. 46 _ (105) — А (47) — 2~к, проверка достигну¬ той точности. 47 *Сс5э= 0(49) <0(48) Эта команда в дальнейшем + (104) —- сЛ (86) преобразуется. 48 Требуемая степень точно¬ сти достигнута. Передача уп¬ равления к концу программы. 49 + (110) -^сЛ (50) 50 А -*(47) (51) Преобразование коман¬ ды (47) для следующего цикла. 51 _ (102)—сЛ (52) (У-i —y+i)!2 52 + (У+1)^А(53) (У-i + У+i) /2 53 Л —(106) (54) 54 — (96) —*- А (55) (У-г — 2у0 + у+1)12 55 г (32) (56) 2 56 (99) ■ R —>- с А (40) +G/+, — 2г/0 + г/_,), З'й член формулы. 57 + (111)— с А (58) 58 А — (47) (59) Команда (47) преобразу¬ ется для следующего цикла. 59 -&_,) — сА (60) — У-ш 60 + (1/+2)^Л(61) (y+t—y-J 61 г (1) (62) (У + г — У-г):2 62 Л —(107) (63) (У+. — У-ш) /4 63 г (1) (64) 64 — (102) —Л (65) (У+2 — 2У+1 + 2У-1— У-Л /4 65 г (32) (66) (У^~2У+1 + 2У-г — У-*)112 66 (108) xR —>сА (67) 67 г (32) (68) (пг — 1)[г/+2 — 2y+i + 2 у_х — 68 (101) X# —сЛ (69) -У-Л112 69 г (32) (70) 70 (94) X R —>- с А (40) -2^> + 2^- — у_ 1, 4-й чден формулы. 71 _ (107) — с А (72) (У-г — У+г) /2 72 + (г/+2) — Л (73) {У+* + У-s) I2
244 СОСТАВЛЕНИЕ ПРОГРАММ Ячейки Содержимое Примечания 73 г (2) (74) л, , ч о 74 - (106) -Л (75) Jl+ ) 75 г (32) (76) +1 У-х^гУ-г)'0 76 (108) х 7? — сА (77) (у.ш — 4и —4 и л-и 094 77 Л— (103) (78) *У-'+У-№ 78 + (96)—сЛ (79) ,, 79 ,(2) (80) Д 80 8 (103) —.Л (81) (!/+! 4(/ч, +6г/0 — 4у_, 81 г (32) (82) +»-J /41 82 (10I)xR—У1<83> (п* !)[!/+, — 4г/+1 - 6i/„ — 88 г(32)(84) „ _4!'- +»-)'41 84 (99) XR *сА (85) Щ,-4St, + с „ +%0 — 4г/_, + у_а], °-и член формулы. + (104) —Л (86) Прибавление предыдущих 86 Г (96) —. Л (87) Ф0Р“УГ' ^ *■ (96) Передача ответа в ячей- оо ку(96). 88 + (112)—*CR (89) ^ R * (4^) (90) Восстановление первона¬ чального вида команды (47) для последующих использова- пп . ний подпрограммы. 90 + (109) — cR (91) о 91 R—+ (104) (92) Очистка ячейки (104). 85 93 94 х /г 95 с 96 97 2 98 3-2- 99 п2 100 1 101 пг- ^ Номер ячейки, хранящей 1-й элемент таблицы. Вначале у0. В конце счета в ячейке (96) ответ.
ИНТЕРПОЛIIPOBAHIIF ТАБЛИЦ Sin X II COS X 245 Ячейки Содержимое Примечания 102 (у+1—0_,)/2 103 Ячейка для временного запоминания чисел. 104 Вначале нуль, в последующем в ячейке (104) накапливается сумма членов формулы. 105 2“* & изменяется в зависимо¬ сти от требуемой точности. 106 (у+1+*/_,)/2 Ю7 (у+2-У_2)/ 2 108 1,3 109 0 110 Cess 0(57) <0(48) 111 Сс 0 (71) <0(48) 112 Сс 0 (49) <0(48) До использования этой программы в нее должны быть помещены три константы: л;, с и 2 к. Результат вычислении образуется в накопителе. Если мы пользуемся этой под¬ программой несколько раз подряд, то необходимо убедиться в том, что результат предыдущих вычислений передан ос¬ новной программой в специальную ячейку. Интерполирование таблиц sin х и cos х Хотя предыдущая программа годится для интерполиро¬ вания таблицы значений любой функции, но она несколько длинна. Поэтому желательно иметь более короткие про¬ граммы, интерполирующие одну какую-нибудь часто ис¬ пользуемую таблицу функций. Вероятно, чаще всего в вычислениях встречаются функции sinх и cosx, и сейчас мы составим программу интерполирования таблицы функ¬ ции sin х. Для простоты мы предпочли sin д: функции cos А', поскольку, как мы вскоре увидим, знак sin а определяется легче. В силу формулы cos 0 = sin^y — 0^ та же программа, конечно, может быть использована для вычисления значений cos а.
246 СОСТАВЛЕНИЕ ПРОГРАММ Предположим, что нам необходимо вычислить значе¬ ние sin J, где О любое число, положительное или от¬ рицательное, и что у нас имеется таблица функции sin* с шагом тг/2“. Рассмотрим, в каком виде мы будем изобра¬ жать аргумент 6. Обычно его значение вычисляется пред¬ варительно основной программой, но независимо от этого мы условимся, что в знаковую ячейку аргумента поступает единица переноса, когда его значение достигает тг*). Легко видеть, что при этом знак функции sin х непосредственно оп¬ ределяется знаком аргумента. Действительно, если 0<6<тг, то sinu>0 и в разряде знака ячейки, содержащей аргу¬ мент, стоит ноль. Если -п<0<2тг, то sin 0<О и в разряде знака стоит единица. Указанное правило дает правильный знак и для значений х, больших 2тт. Действительно при увеличении аргумента на кратное 2тт в разряд знака четное число раз будет передаваться единица переноса и придавать ему значение ноль. То же самое относится к отрицательным значениям аргумента, так как отрицатель¬ ные числа в машине изображаются дополнительным кодом по mod 2. Поэтому число—0 изображается как 2тг 0 а тогда sin (2тг—0)=—sin 0 = sin (—0). Таким образом, знак функции определяется непосред¬ ственно исследованием знака аргумента, но, кроме того мы должны определить, лежит ли аргумент 0 (или 6 —тг’ если 0>тт) в первом или втором квадранте. Для этого 0 удваивается (один сдвиг влево) и исследуется знак аргу¬ мента, который теперь 0, если 0 < -J, и 1, если 0 > - -. Та¬ ким образом мы выясним, для какого значения аргу- фор^улу ИЛИ ^ удобнее строить интерполяционную После того как определено значение аргумента, мы можем приступить к самому интерполированию. Предпо¬ ложим, что по заданному значению аргумента 0 мы оп¬ ределили величину 0 (равную 0, ±(тт —0) или (2тт — 0)), для которой будем строить интерполяционную формулу. Пред¬ положим далее, что 0=са+ё, где щ — ближайшее мень¬ шее 0 табулированное значение аргумента. Теперь sin 0 *) То есть для углов выбран масштаб тг
ИНТЕРПОЛИРОВАНИЕ ТАБЛИЦ Sin X И COS X 247 может быть определен из соотношений sin 6 = sin (р cos о-j-sin — cf^sinS, О2 cos 3=1 7) | • • • , i'3 % у 6 I sin 0 = 0 —"ЗГ+ • • - Sin 0 = 0 — Любая требуемая степень точности может быть до¬ стигнута либо увеличением числа членов в разложении sin3 и cos3, либо увеличением числа узлов интерполя¬ ции. С точки зрения программиста второй способ удобнее, потому что он требует лишь незначительных изменении программы. Программа, которую мы приводим ниже, была составлена первоначально для вычисления структур¬ ных множителей в связи с рентгеноструктурным анализом кристаллов. В этих расчетах требуется ограниченная сте¬ пень точности, и поэтому мы пользовались таблицей зна¬ чений sinx, содержащей 16 членов, а в разложении sin3 и cos3 были удержаны только два члена. В этих предпо¬ ложениях мы получаем 5 верных десятичных знаков. Про¬ грамма имеет следующий вид. Вычисление sin6*) (интервал значений 0 не¬ ограничен; ко всем адресам нужно прибавить mg). Ячейки Содержимое Примечания 6 Сс^ 0(9) <0(7) 7 А —(40) (8) 8 — (40) —► с А (9) *\ r пппгпямме пои образовании 8 допущена ошибка. Исправить 0 + (40) — сА (1) О Сс^ 0(3) <0(2) 2 + (38) —cR (4) 3 +(37) —с/? (4) 4 R — (35) (5) 5 Z (1) (6) Преобразование команды (35), определяющей знак sin 0. Преобразование команды. (35) определяющей знак sin 0. Сдвиг разряда знака.
248 Ячейки 10 И 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 СОСТАВЛЕНИЕ ПРОГРАММ Содержимое Л(1—5) — (41) (10) А (1—5) — (24) (11) г (27) (12) (45) Я — сЛ (13) Л—(42) (14) г (32) (15) + (39)—» с А (16) — (41) —Л *17) Л(1— 5)—(32) (18) (42) х 7? — сА (19) r (1) (20) Л —(40) (21) + (39) — с А (22) — (40) — Л (23) г (32) (24) (sin®) х7?—сЛ(25) Л—(43) (26) + (40) — cR (27) (44) '; R — с А (28) г (32) (29) (42) 7? — сЛ (30) + (42) —Л (31) г (32) (32) (cos®) 'R—>сЛ(33) + (43) — Л (34) Л — (43) (35) ± (43) — с А (36) С-( ) + (43)— с А (36) — (43)— с А (36) 1,00 ... 00 G Примечания Эти ^ разряды определяют ближайшее табулированное значение аргумента. В команду (24) вставлен адрес числа sin ®. Образование 2. Перевод 2 в радианы. Запоминание 2. Передача 2 в регистр. 1 — ® В команду*(32) вставлен ад¬ рес числа cos®=sin^Y — ®Y 42 ' 0 гг/ 2 Запоминание 1 1—o'72^cos§ sin ® cos 2 22/2 — 22/6 - 23/6 2 2-3/6 =i: sin о cos ® sin 2 sin ® cos 2 + COS ® sin 2 = = sin (® + 2) sin fj Вначале 0. В процессе вы¬ числений здесь хранится 22/2.
ПОЛИНОМИАЛЬНЫЕ РАЗЛОЖЕНИЯ 249 Ячейки Содержи мое Примечания 41 <р 42 г 43 Временное запоминание чисел. 44 —1/3 (1,1010...) 45 к/32 Ответ образуется в накопителе; в программу должен быть введен только один параметр 6 и команда (т8+36), передающая управление. Последний пример показывает, что при составлении программы можно использовать аналитические свойства табулированной функции. Если для вычисления значений функции, заданной в некотором интервале, мы пользу¬ емся приближением этой функции многочленом, то обычно разложение в ряд Тейлора не дает наилучшего представ¬ ления, достижимого при том же объеме вычислений. С помощью различных способов приближения функций мы можем получить для данного случая более точную фор¬ мулу. Пусть ищется полином степени п, который на интер¬ вале дает наименьшее среднеквадратичное откло¬ нение от функции tf(x). Отсюда следует, что должны вы¬ полняться равенства Эту систему интегральных равенств можно свести к следующей системе: Полиномиальные разложения или
250 СОСТАВЛЕНИЕ ПРОГРАММ Если функция tf(A') известна, то из этих равенств можно найти коэффициенты аг. Проще, однако, воспользоваться другим методом, раз¬ лагая функцию w(x) в ряд по полиномам Лежандра: Рп ix) = 2"^i fafi ix' 1)". p г Y\ (2« + 1 )xPn (x) - nPtl_ x (x) и + 1 , для которых выполнены условия ортогональности: J рп (■*) Р„ (х) dx = . —i Можно показать, что для любой функции ф(а) первые п членов такого разложения дают наилучшее среднеквад¬ ратичное приближение функции по полиномам степени п. Следовательно, указанное разложение функции a(.\j на интервале —l^x^+1 дается формулой п <Р (■*) = 2 «гРг (Х), г = О где -j-i J u(x)Pr(x)dx. —i Эти соотношения могут быть легко преобразованы, если ищртся наилучшее среднеквадратичное приближение функ¬ ции на любом другом конечном интервале. С другой стороны, можно поставить задачу об отыска¬ нии такого полинома порядка п, для которого максимум разности между функцией и полиномом был бы наимень¬ шим (равномерные приближения). Хорошие результаты для практических целей получаются здесь разложением функции П ¥(■*)= 2 сгТг(х) Г— 0 по полиномам Чебышева: Тп (х) ■= cos (п arccos х),
ПОЛИНОМИАЛЬНЫЕ РАЗЛОЖЕНИЯ 251 удовлетворяющим условиям Тп+Лх) = 2хТп(х)-Тп_1(х) и условиям ортогональности 1 ^ ? 1 Р ? М ^ ^ fj V 1_тЧ J ут=7‘х- —1 где коэффициенты сг определяются из соотношений +i 2 Сг = — - I ^-1 Несколько первых полиномов Лежандра и Чебышева даются в таблице 7. Таблица 7 Полиномы Лежандра и Чебышева н (Л Г„(*) 0 1 1 1 X X 2 (За:8 — 1)/2 2а:8 — 1 3 (5а;3 — Зж)/2 4а;3 — За: 4 (35а:4 — 30а:8+3):8 8а:4 — 8а:8+ 1 5 (63а:5 —70а^+15х).'8 16а:5 — 20 а:а-|-5а; 6 (231а;6 —315я4+105я8—5) 16 32а;6 — 48а:4-)-18а:8—1 В таблице 8 приведены для сравнения первые коэффи¬ циенты разложения функции cos х в ряд Тейлора и в ряды по полиномам Лежандра и Чебышева. Интересно отметить, что разложения тригонометрических функций в ряды по полиномам Чебышева имеют вид ■ 00 sin (£ *) = 2 £ (- 1 )Чл+, (у) T„+t (х), 00 cos (-J х) = У0 (|) + 2 V i)VtV (-=-) 71Г (л).
252 СОСТАВЛЕНИЕ ПРОГРАММ Таблица 8 Полиномиальные разложения функции cos Nss's. Степени X Вид раз- ложения х° х- х4 Xй Ряд Тейлора . . 1,000 000 —1,233 701 0,253 670 —0,020 863 ( W Полиномы 1 (2) Лежандра 1 (3) V (4) 0,636 620 0,980 161 0,999 578 0,999 993 —1,030 626 — 1,224 796 —1,233 527 0,226 532 0,252 724 -0,019 207 ( О) Полиномы j (2) Чебышева 1 (3) V (4) 0,472 001 0,971 405 0,999 397 0,999 993 —0,998 808 — 1,222 744 —1,233 472 0,223 936 0,252 544 — 0,019 072 Заметим, что если мы хотим вычислить одно значение какой-нибудь функции, используя ограниченное число чле¬ нов полиномиального разложения, то выгоднее пользовать¬ ся чебышевскими разложениями. Если же нам необходимо использовать в выкладках несколько таких значений, то целесообразнее воспользоваться разложением по полино¬ мам Лежандра. Достоинство указанных полиномиальных разложений станет ясным, если мы заметим, что шесть членов разло¬ жения функции cos х по полиномам Лежандра дают в 100 раз большую точность, чем такое же число членов разложения в ряд Тейлора. Гудуином было отмечено, что на интервале Osgxsgl 14 членов чебышевского разложения функции ln(l-fx) дают 10 верных десятичных знаков, в то время как для достижения той же точности требуется 1010 членов тейло¬ ровского разложения. Оптимальное программирование В заключение настоящей главы подпрограмма деления, приведенная на стр. 217, будет преобразована методами оптимального программирования. Для этого, конечно,
ОПТИМАЛЬНОЕ ПРОГРАММИРОВАНИЕ 253 мы должны детально рассмотреть время выполнения раз¬ личных команд на машине АПЕ(ИКС)К. Если исключить команды {x)XR^cA(y), Г (и) {у), / (л) (у), печать, С^( ), то все остальные команды бывают выполнены прежде, чем станет доступна ячейка памяти, следующая за той, адрес которой содержится в выполняемой команде. Поэтому следующую команду можно поместить в ячейку, номер которой на единицу больше адреса, содержащегося в пре¬ дыдущей команде. Так, например, команда сложения может иметь вид 4“ (26) —► А (27). Как правило, умножение является более длинной опе¬ рацией и занимает время стольких оборотов барабана, сколько разрядов с единицами содержится в множителе. Выгоднее всего пропустить одну ячейку перед следующей командой, так что операция умножения должна иметь вид (26) XR-+CA (28). Операции 1(п) и г(п) не содержат обращения к памяти, и поэтому достаточно выделить время только для их вы¬ полнения. Одну ячейку надо пропустить для команды г(п) и две — для /(/;)■ Так, две последовательные команды могут иметь вид -f- (26) —► с А (27), г (л) (29) ИЛИ . , ч —J— (26) —*сА (27), /(и) (30). Печать является настолько медленной операцией, что оптимальное программирование к ней применять нецеле¬ сообразно. Максимальное время, которое мы могли бы при этом сэкономить, ничтожно мало сравнительно со време¬ нем самой печати.
Ячейки Номер 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 0 16 32 48 64 80 96 112 128 144 160 176 192 208 224 240 256 1 17 33 49 65 81 97 113 129 145 161 177 193 209 225 241 257 2 18 34 50 66 82 98 114 130 146 162 178 194 210 226 242 258 3 19 35 51 67 83 99 115 131 147 163 179 195 211 227 243 259 4 20 36 52 68 84 100 116 132 148 164 180 196 212 228 244 260 5 21 37 53 69 85 101 117 133 149 165 181 197 213 229 245 261 6 22 38 54 70 86 102 118 134 150 166 182 198 214 230 246 262 7 23 39 55 71 87 103 119 135 151 167 183 199 215 231 247 263 8 24 40 56 72 88 104 120 136 152 168 184 200 216 232 248 264 9 25 41 57 73 89 105 121 137 153 169 185 201 217 233 249 265 10 26 42 58 74 90 106 122 138 154 170 186 202 218 234 250 266 11 27 43 59 75 91 107 123 139 155 171 187 203 219 235 251 267 12 28 44 60 76 92 108 124 140 156 172 188 204 220 236 252 268 13 29 45 61 77 93 109 125 141 157 173 189 205 221 237 253 269 14 30 46 62 78 94 110 126 142 158 174 190 206 222 238 254 270 15 31 47 63 79 95 111 127 143 159 175 191 207 223 239 255 271
Таблица 9 памяти дорожки 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 272 288 304 320 336 352 368 384 1 400 416 432 448 464 480 496 273 289 305 321 337 353 369 385 401 417 433 449 465 481 497 274 290 306 322 338 354 370 386 402 418 434 450 466 482 498 275 291 307 323 339 355 371 387 403 419 435 451 467 483 499 276 292 308 324 340 356 372 388 404 420 436 452 468 484 500 277 293 309 325 341 357 373 389 405 421 437 453 469 485 501 278 294 310 326 342 358 374 390 406 422 438 454 470 486 502 279 295 311 327 343 359 375 391 407 423 439 455 471 487 503 280 296 312 328 344 360 376 392 408 424 440 456 472 488 504 281 297 313 329 345 361 377 393 409 425 441 457 473 489 505 282 298 314 330 346 362 378 394 410 426 442 458 474 490 506 283 299 315 331 347 363 379 395 411 427 443 459 475 491 507 284 300 316 332 348 364 380 396 412 428 444 460 476 492 508 285 301 317 333 349 365 381 397 413 429 445 461 477 493 509 286 302 318 334 350 366 382 398 414 430 446 462 478 494 510 287 303 319 335 351 367 383 399 415 431 447 463 1 479 495 511
256 СОСТАВЛЕНИЕ ПРОГРАММ Вообще говоря, применить оптимальное программиро¬ вание к командам, передающим управление с одного ба¬ рабана на другой, нельзя, так как обычно это связано с переходом от одной подпрограммы к другой, причем места определены заранее. Во всяком случае, синхронизировать барабаны между собой невыгодно, и потому оптимальное программирование не может быть применено к команде Анализ времени, затрачиваемого на переход с одной дорожки памяти на другую, также является одним из ос¬ новных вопросов оптимального программирования. Нужно иметь в виду, что на каждом барабане машины АПЕ(ИКС)К имеется 32 дорожки, содержащие 16 полных слов каждая. Время перехода с одной дорожки на другую меньше 1 16 времени полного оборота барабана, и поэтому при таком переходе достаточно пропустить одну ячейку памяти. Так, две последовательные команды на двух разных дорожках, могут иметь вид + (4) —Л (5), А (23) (24). Для уяснения этого примера надо ознакомиться с таблицей 9, дающей относительное расположение ячеек одного барабана. Оптимальная подпрограмма деления Сейчас мы в состоянии дать оптимальную форму под¬ программы, приведенной на стр. 217. Подпрограмма деления (вычисляет d,n, оп¬ тимальная форма; ко всем адресам прибавить ms=k x 16). Ячейки Содержимое Примечания О + (22) -^сА (24) 24 Сс ^ 0 (30) < 0 (10) Проверка знака п. 30 —(22)—>сА (27) Изменение знаков d и п в случае положительного п. 27 А — 22 (25) 25 — (11)—*-сА (28) 10 -f (11 )~*сА (28) Передача + d в накопитель в случае отрицательного п.
ОПТИМАЛЬНАЯ ПОДПРОГРАММА ДЕЛЕНИЯ 257 Ячейки Содержимое 28 (31) —с/? (16) 16 Сс ^ 0 (17) < 0 (18) 17 I (1) (20) 20 + (22) — А (23) 18 I (1) (21) 21 —(22) — Л (23) 23 I (32) (26) 26 Сс 5г0(29) <0(12) 29 I (32) (16) 12 (13) — cR (14) 14 / (1) (1) 1 + (2)— с А (3) 3 С —(..) 2 1,00 ... 01 11 А 13 О 22 п 31 2-1 Примечания Передача индекса итерации в регистр. Нуль частного передается в регистр, и остаток удваи¬ вается. К остатку прибавляется п. Единица частного передает¬ ся в регистр, и остаток удваи¬ вается. п вычитается из остатка. Передача индекса итерации в накопитель. Проверка индекса итера¬ ции. Передача индекса итерации в регистр и остатка в накопи¬ тель. Управление передается кячейке (16) дляновогоцикла. Очистка регистра. Исправление знака и округ¬ ление частного. 1+2-м На этом примере мы видим, что основное внимание при оптимальном программировании должно быть уделено много раз повторяющимся циклам. Так, основной цикл, повторяющийся 31 раз (команды от 16 по 29 включи¬ тельно), запрограммирован так, что его выполнение будет закончено за время одного оборота барабана. Начальный и конечный куски программы (0—28 и 12—3) выполняются по одному разу каждый, и им уделено меньше внимания. Необходимо подчеркнуть, что предложенное размеще¬ ние адресов не является единственно возможным и полу- 9 Э. Бут и К- Бут
258 СОСТАВЛЕНИЕ ПРОГРАММ ченная программа не обязательно является наилучшей с точки зрения затраты времени. Определение наилучшего вида программы для случая, когда имеется несколько фиксированных ячеек, входящих в различные команды, является весьма сложной задачей. Более того, оптималь¬ ное программирование имеет тот недостаток, что при нем не учитывается компактность всей программы, так что константы и команды могут быть рассеяны по всей памяти. Это может вызвать затруднения, если в памяти надо поме¬ стить сразу несколько программ. Теперь видно, что в пре¬ дыдущем примере мы учитывали оба момента: скорость и компактность. Сейчас мы можем сравнить время работы каждой из двух программ. Возьмем за единицу времени время одного оборота барабана и будем считать, что частное ищется с точностью до 32 двоичных знаков. Тогда приблизительное время работы обеих программ будет: обычная программа -— 100 единиц времени; оптимальная —34 единицы времени. Таким образом, при оптимальном кодировании экономится около 65% машинного времени. Время работы этой программы лишь на несколько процентов больше времени, которое ушло бы на ту же про¬ грамму, если бы память допускала немедленное обращение в любую ячейку. Правда, это в некоторой степени удачный случай, потому что в программе нет нескольких близких команд, содержащих один и тот же адрес. В нашем примере это могло иметь место при увеличении, проверке и вос¬ становлении индекса итерации. Мы нашли выход, превос¬ ходно разрешающий эту задачу, поместив индекс итерации в регистр. Приведенный пример показывает, что в двухад¬ ресной машине хорошие результаты достигаются ценой больших усилий. Случайные числа Часто в вычислительную машину необходимо вводить ряд случайных чисел, в частности, когда вычисления основываются на одном из так называемых методов Монте- Карло. Существует несколько способов, дающих возмож¬ ность получить случайные числа. Так, специальный при¬ бор, основанный на радиоактивном распаде или исполь-
СЛУЧАЙНЫЕ ЧИСЛА 259 вующий шумовые диоды, может быть положен в основу физического генератора случайных чисел. Можно хранить в машине таблицу случайных чисел. Наконец, можно ис¬ пользовать какой-нибудь математический процесс для по¬ лучения псевдослучайных чисел. Из этих вариантов физические генераторы должны быть отвергнуты по соображениям стоимости, а хранение таб¬ лиц в машинах затруднено в тех случаях, когда нужно использовать много случайных чисел. Были предложены два сравнительно простых математических способа для по¬ лучения псевдослучайных чисел, т. е. множества чисел, удовлетворяющих обычным критериям случайности. Сначала был предложен среднеквадратичный метод. Бе¬ рется «-разрядное число и возводится в квадрат, после чего берутся средние п разрядов полученного числа и процесс повторяется. Так полученная последовательность среднеквадратичных чисел иногда удовлетворяет критериям случайности. Трудность этого метода заключается в выборе первоначального числа, так как среднеквадратичные после¬ довательности, полученные из некоторых чисел, вырож¬ даются в нули, а из некоторых чисел получаются последо¬ вательности, содержащие повторяющиеся отрезки. К со¬ жалению, пока еще нет теоретического исследования этого вопроса. Наиболее удовлетворительный из существующих ныне методов называется методом вычета. Пусть длина слова в машине, работающей в двоичной системе счисления, равна w. Берем нечетное число р такое, что 5?)<2Ю, возводим 5р в квадрат и берем последние w разрядов полученного квад¬ рата. Эти разряды называются вычетом. Образуем произ¬ ведение вычета на 5р. Этот процесс повторяется, причем мы каждый раз умножаем вычет на 5р. Отбрасывая два последних разряда, мы берем старшие w 2 разряда, последовательность которых удовлетворяет обычным кри¬ териям случайности. Кроме того, можно доказать, что так полученные числа повторяются только после 2W умно¬ жений . Метод вычета ведет к весьма компактной программе, поскольку w разрядов вычета образуются после каждого умножения в регистре и, следовательно, могут быть не¬ посредственно использованы в следующем цикле. 9*
260 СОСТАВЛЕНИЕ ПРОГРАММ Автоматическое программирование Автоматическое программирование является термином, который был позже введен для обозначения различных способов, развитых с целью облегчить программисту за¬ частую скучную работу по детальному расписыванию команд, необходимых для выполнения вычислений. Эти способы изменяются от одной машины к другой, поскольку на них оказывают достаточное влияние харак¬ терные особенности самой машины. Но все они основаны на применении программистом псевдокода, каждая команда которого, как правило, соответствует нескольким командам настоящего кода машины. Так, типичными командами псевдокода являются: вычислить хп; вычислить sin х; вычислить \ х. Обычно псевдокоманды используются также для вве¬ дения плавающей запятой и оперирования с комплексными числами. Например, одна из таких команд может иметь вид вычислить z = x-j-y, где сложение выполняется в режиме плавающей запятой. С помощью специальных расшифровывающих подпро¬ грамм сама машина переводит эти псевдокоманды на язык настоящих команд. Эти расшифровывающие подпрограммы используют библиотеку стандартных подпрограмм, таких, как извлечение корня, и, кроме того, вырабатывают ко¬ манды, связывающие различные подпрограммы. Существует два различных способа расшифровки псев¬ докоманд. Один из них называется составляющим. Машина перерабатывает всю псевдопрограмму, введенную в запо¬ минающее устройство, переводя псевдокоманды в настоя¬ щие команды, и только после этого приступает к соб¬ ственно вычислениям. По другому способу, называемому интерпретирующим, машина переводит каждую псевдокоманду в обычные ко¬ манды и тут же выполняет их. Таким образом, при этом
АВТОМАТИЧЕСКОЕ ПРОГРАММИРОВАНИЕ 261 способе работа машины сводится к перемежающимся пере¬ водам псевдокоманд и собственно вычислениям. Обе системы имеют свои достоинства и недостатки. Если, например, псевдокоманда «вычислить V”Л'» содержится в программе три раза, то машина, работая по «составляю¬ щей системе», выпишет три раза подпрограмму вычисле¬ ния корня, что, конечно, приведет к расточительному использованию объема запоминающего устройства. С дру¬ гой стороны, после того как программа бывает составлена один раз, она может быть выведена на перфоленту или маг¬ нитную ленту и использована в следующий раз уже без всякого перевода. Следовательно, такая система может быть с успехом применена в случае, когда одни и те же вычис¬ ления повторяются много раз, как это бывает при экономи¬ ческих или бухгалтерских расчетах. Интерпретирующий способ свободен от такого повторе¬ ния подпрограмм, но имеет другой недостаток. Если псев¬ допрограмма содержит циклы, то псевдокоманды, входящие в эти циклы, будут вновь и вновь расшифровываться при каждом новом прохождении цикла, что приводит к лишней затрате времени. Сравнивая относительные достоинства обоих методов, надо учитывать скорость работы арифметического узла машины, скорость обращения к вспомогательному запо¬ минающему устройству и емкость быстродействующей па¬ мяти. В машинах с большой скоростью работы арифме¬ тического узла предпочтительнее использовать интерпре¬ тирующий способ, связанный с большим числом операций, если при этом уменьшается число обращений к более мед¬ ленному запоминающему устройству. Если же арифмети- ческий узел машины работает сравнительно медленно, а запоминающее устройство обладает большой емкостью, то следует предпочесть составляющий способ. Третий способ, который является видоизменением со- . ставляющего, используется на машине АПЕ(ИКС)К. Ско¬ рость вычислений этой машины сравнительно мала, но зато машина обладает настолько большим запоминающим устройством, что в нем могут постоянно храниться на од¬ них и тех же местах подпрограммы. Вместо того что¬ бы переписывать эти подпрограммы каждый раз, когда они бывают нужны, расшифровывающая подпрограмма
262 ПРИМЕНЕНИЯ ВЫЧИСЛИТЕЛЬНЫХ МАШИН вырабатывает команды, которые в нужный момент передают управление к подпрограмме и возвращают его к прерван¬ ному месту так, как это описано в гл. 15. Фактическая расшифровка псевдокоманд достигается частичной под¬ становкой всех или части этих команд в команды условной передачи управления, которая ведет к объединению под¬ программ в соответствии с псевдокомандами. При этом способе возможно иметь до 1024 псевдокоманд. Наконец, надо отметить практические выгоды исполь¬ зования всех трех способов. Уменьшая число команд, необходимых для решения данной задачи, программист облегчает проверку программы перед ее введением в ма¬ шину, что особенно важно для людей, не имеющих доста¬ точного опыта работы на машине. ГЛАВА 17 НЕКОТОРЫЕ ПРИМЕНЕНИЯ ВЫЧИСЛИТЕЛЬНЫХ МАШИН Предварительные замечания Читатель, внимательно прочитавший предыдущие главы, знаком не только с тем, как работает современная автома¬ тическая цифровая машина, но также и с некоторыми чисто математическими аспектами использования этих машин. Очевидно, что любая проблема, решение которой можно свести к совокупности арифметических операций, в прин¬ ципе может быть решена на цифровой машине. В этой главе рассмотрена только одна чисто математическая проблема, затем для иллюстрации возможностей цифровых машин вкратце изложены и некоторые примеры их приме¬ нения к вопросам, связь которых с численной математи¬ кой ни в коей мере не очевидна. Рентгеноструктурный анализ Проблемой построения так называемой карты плотно¬ сти электронов для кристаллической среды по рентгенов¬ ским спектрам, полученным экспериментально, уже более двадцати лет занимаются как математики, так и конструк¬ торы машин. Первые старались с помощью аналитических
РЕКТГЕНОСТРУКТУРНЫЙ АНАЛИЗ 263 ухищрений более просто подойти к решению, вторые пы¬ тались создать моделирующее оборудование, чтобы облег¬ чить тяжесть труда кристаллографа, интересующегося ре¬ зультатами больше, чем способами их получения. Коротко задача может быть сформулирована следующим образом: величины \F0(h, /г, /)| могут быть получены из дифракцион¬ ных рентгеновских спектров кристалла. Как известно, кристалл состоит из огромного числа одинаковых блочков, или элементарных ячеек. Плотность электронов р(х, у, z) в любой точке такой элементарной ячейки задается следую¬ щей формулой: р (х, у, г) = СО СО СО V ^ ^ \Fo(h, К /) | cos (6 ahki)> 0) Л=— со ft—— со I =—СО где V — объем (в соответствующих единицах) элементарной ячейки, а, Ь, с — длина граней блока; h, k, I — целые числа; пре¬ делы суммирования на практике заменяются конечными, зависящими от значений полученных экспериментальных данных. Требуется получить набор «карт», показывающих, как меняется р с изменением х, у, z. В этой связи необходимо отметить и возникающие трудности. Во-первых, количества аш (фазовые углы) пер¬ воначально неизвестны, и их нельзя вывести на основе эксперимента. Во-вторых, р является функцией трех пе¬ ременных, так что лучшим графическим представлением, которого можно желать, является набор контурных карт, например, на различных уровнях z. Однако информация, часто требующаяся кристаллографам, должна быть не кон¬ турной картой, а комплектом точно подсчитанных значений координат центров атомов, заполняющих элементарную ячейку и совпадающих с максимумами функции р (х, у, z). Для того чтобы проиллюстрировать это, на рис. 105 приведен вид молекул пентаэритритолтетранитрата С— (CH2ON2)4 в форме наложенных друг на друга контурных карт, расположенных нормально в плоскости х, у. Нало¬
264 ПРИМЕНЕНИЯ ВЫЧИСЛИТЕЛЬНЫХ МАШИН жение необходимо, поскольку не все атомы расположены на одинаковом уровне z, как это видно из таблицы 10. Контуры на рис 105 даны с интервалом, равным еди¬ нице электронной плотности, и процесс их образования Таблица 10 Атомные координаты для пентаэритритолтет- ранитрата Рис 105. Контурные карты для крис¬ талла пентаэритритолтетранитрата. Атом г/а С„ 0,000 С, 0,124 О, 0,256 N, 0,359 02 0,494 03 0,326 является другим примером простой, хотя и утомительной вычислительной работы Метод вычислений заключается в том, чтобы подсчитать сумму ряда (1) при требуемом значении z (например, z= 0,124 для С, в нашем при¬ мере), при фиксированном значении у и для интервала значений х (Ocxsga). Практически при ручном подсчете у придают значения: 0, Ь/60, 26/60, ..., 596/60, а затем вы¬ числяют суммы для каждого из этих значений у и для всех значений х того же вида (т. е. 0, а/60, 2с/60, ..., 59с/60). Далее будет видно, что в результате этого процесса полу¬ чаются данные, которые могут быть использованы для вычерчивания зависимости р от х при фиксированном значении z вдоль линий постоянного у. В пересечениях этих кривых с линиями р =1, 2,... получаются точки, в ко¬ торых контуры пересекаются линиями постоянного значе¬ ния у, а по этим данным могут быть получены карты приведенного выше типа. Следует заметить, что было сделано предположение, что фазовые углы аш известны. Чтобы увидеть, как вычислительная машина может помочь при решении этой проблемы, необходимо прежде всего указать порядки различных величин. Обычно коли¬ чество величин \F0(fi,k, /)| не превосходит 1000; точность
РЕНТГЕНОСТРУКТУРНЫЙ АНАЛИЗ 265 редко бывает лучше 1 %, так что их можно брать в пределах О 99, т. е. с точностью в два десятичных знака или с 7 знаками в двоичной системе счисления. (Это позволяет иметь диапазон несколько больший: 0, 127.) Отсюда следует, что четыре величины F0 могут быть помещены в одном 32-цифровом двоичном слове вычислительной ма¬ шины. Кроме того, allkl обычно равно 0 или 180 (в боль¬ шинстве структур, исследованных до сих пор), а поэтому оно может быть вынесено из-под косинуса и заменено зна¬ ком «+» или «—» перед | F0(hkl)(; таким образом, амплитуда и фаза четырех величин F0 могут быть помещены в одном слове из двоичных разрядов. Поскольку нормальная ем¬ кость памяти современной счетной машины составляет по меньшей мере 1000 слов, то видно, что нормальное ко¬ личество экспериментальных данных свободно размещается во внутренней памяти таких машин. Отделение составляющих частей (отдельных значений 4- IF (/г/г/)I) каждого слова и использование их для обра¬ зования суммы ряда (1) в требуемых точках программи¬ руется очень просто. Однако это приводит для каждого значения г к 60x60=3600 числовых значений р (х, у, г), по которым оператор должен чертить графики и контур¬ ную карту описанным ранее способом. Заметим также, что для вывода 3600 десятичных трехзначных чисел, вы¬ даваемых машиной с помощью телетайпа, требуется время порядка 30 минут. К счастью, есть лучшие способы, исполь¬ зующие либо стандартный печатающий аппарат на выходе, либо одно из индикаторных устройств памяти, имеющихся почти во всех машинах. Первое изменение, которое требуется сделать в^перво¬ начальной схеме, это уменьшить количество линий у до 32 или же увеличить их до 64; для простоты предположим первое. Другое ограничение, по крайней мере в простей¬ шем случае, состоит в снижении точности определения' координат х, в которых контур пересекает линию постоян¬ ного у, до 1/32 (или 1/64). Машина, вычисляя значения р (х, у’ г) при постоянном г вдоль некоторой линии фикси¬ рованного у, будет округлять координату х для р=0, 1,... до дроби вида /г/32; эти значения, лежащие в пределах от 0 до 31/32 теперь могут быть представлены единицами и размещены в соответствующих местах 32-разрядного
266 ПРИМЕНЕНИЯ ВЫЧИСЛИТЕЛЬНЫХ МАШИН двоичного слова, остальные цифры которого остаются рав¬ ными нулю. Когда все 32 таких «контурных слова» (по од¬ ному на каждое значение у) рассчитаны, они просто печата¬ ются одно под другим на печатающем аппарате, отличаю¬ щемся от нормального только тем, что он оставляет пустые места там, где должны быть нули, и печатает точки вместо единиц, отмечая таким образом места пересечения различ¬ ных контуров с линией у. Для того чтобы получить же¬ лаемую карту, оператору теперь остается только соединить карандашом точки одного контура [ь] [Ь] La] '/зг а,1 ■■■ fa] v 'feii 6) Рис. 106. Результат, выданный телетайпом для кристалла пентаэритритолтетранитрата. Время печатания карты 32x32 описанного только что вида составляет около 2 минут, но даже и это может быть исключено, если запоминающее устройство используемой машины снабжено одним из нормальных электронно¬ лучевых индикаторных устройств. Обычно они работают так, что дают изображение 32 слов на следующих одна за другой линиях развертки типа телевизионной. На рис. 106 представлена картина, выданная машиной для кристалла пентаэритритолтетранитрата, структура которого показана на рис. 105 Если учесть грубость приближения, то пред¬ ставление неожиданно хорошо; но если требуется еще большая точность, то для ее достижения могут быть пред¬ ложены различные способы. Простой метод заключается в том, чтобы увеличить количество линий постоянной у до 64 и получить такую же точность (1/64) в значениях х путем использования двух слов по 32 разряда. Даже при таком расширении необходимое количество ячеек памяти составит лишь 128; если добавить к этому 250 ячеек для
РЕНТГЕНОСТРУКТУРНЫЙ АНАЛИЗ 267 запоминания данных F0 (h, k, /), то будет видно, что при общей емкости в 1024 слова 646 слов остается для про¬ граммы (которая в действительности требует меньше 300 слов) и вспомогательных числовых ячеек. Можно полу¬ чить еще большую точность вычерчивания карт, если произвести небольшие изменения в телетайпе или уст¬ ройстве развертки луча. Необходимо только уменьшить скорость горизонтальной и вертикальной разверток так, чтобы весь экран трубки мог содержать, например, 4x128 слов; это позволит получить контур с точностью, большей чем */ и отклонения такой величины на экране 6-дюй- /200" уг- мовой трубки будут уже незаметны простым глазом. К те¬ летайпу применима аналогичная процедура; отличие со¬ стоит лишь в том, что получаемая картина просто занимает больше места на бумаге. Выше уже говорилось о том, что значения аш экс¬ периментально получить нельзя, и, конечно, они будут неизвестны до самого конца процесса определения струк¬ туры. Карты описанного выше типа редко требуются с точ¬ ностью, лучшей 1%, и теперь мы опишем сам процесс, позволяющий машине по известным из эксперимента |F0(h, k, I)| определить структуру и приближенное поло¬ жение атомов в элементарной ячейке. Разумеется, при этом кристаллограф встречается с массой вычислительной работы, упомянутой в начале настоящего раздела. Можно показать, что если xr, yr, zr (г—1, 2, ..., п) яв¬ ляются координатами атомных центров в элементарной ячейке, то |Fc (h, k, I) | = 2 fr cos (0r — am), (3) r=l tg ahkt = it fr sin К 2 fr cos 0r> (4) r=1 r— 1 где »,=2n{/i2c + *b + /b}, fr — величина, называемая атомным фактором рассеяния, значение которой рассчитано для всех атомов; \Fc(h, k, [)\ совпадает с \F0(h, k, I)|, если (xr, yr, zr) совпадают с по¬ ложениями атомов в реальном кристалле; й этом же случае аш совпадает по величине с аш.
268 ПРИМЕНЕНИЯ ВЫЧИСЛИТЕЛЬНЫХ МАШИН Сейчас читатель увидит, что если известны приближен¬ ные значения хт, иг, гт, то для получения их точных зна¬ чений может быть применен итерационный процесс. Рас¬ чет состоит из следующих операций: а) рассчитать аш на основе предполагаемых коорди¬ нат атомов хп yr, zr; б) подставить аш вместо акЫ в ряд (1); в) просуммировать ряд с \F0(h, k, [)\ и аш; г) найти новые координаты атомов, считая, что они соответствуют максимумам р (х, у, г), т. е. что в этих точках ^ ^ = 0; обозначим эти максимумы х’г, у’г, г’г; П д) рассчитать 2 (xr — x’rY -f (yr —y’r)s -f (z, — z'r)2 = D; r=l е) если D>0, то вернуться к а) и повторить цикл вычис¬ лений, использовав х‘, у'г, г'г (г=1, ..., п) вместо начальных значений {хг, уг, гГ); если D=0, напечатать полученные в результате расчета К, У'г, z'r (г— 1, ..., п), которые и представляют собой тре¬ буемые параметры. Здесь не представляется возможным входить более глубоко в описанный выше численный процесс, но можно отметить, что проведение этих вычислений для пентаэрит- ритолтетранитрата вручную требует двенадцатимесячной работы, тогда как на современной быстродействующей машине тот же результат может быть получен в течение нескольких минут. В качестве последнего примера применения машины для нужд кристаллографии рассмотрим решение выше¬ указанной проблемы с помощью процесса минимизации. Этот метод широко применяется в разрешении различных задач как чистой, так и прикладной математики, и он, вероятно, получит еще более широкое применение в бу¬ дущем, по мере того как будет расти количество быстро¬ действующих машин. В нашей кристаллографической за¬ даче речь идет о том, что по мере приближения пробных координат xr, yr, zr (r= 1, ..., п) к истинным значениям F0(h, It, I) и Fc (h, k, t) стремятся сравняться, другими сло¬ вами, выражение К l)\-\Fc(h, k, /)|)2 (5) h к I
МАШИННЫЙ ПЕРЕВОД 269 стремится к минимуму. Можно показать, что если xr, ут, zT (r= 1, п) являются пробными координатами, дающими какое-то значение R (скажем, R0), тогда меньшее значение и для простоты положено хГ1—хг; хГ2 уг; хг„ гт. Этот метод можно включить в циклический процесс сле¬ дующим путем: а) вычислить все srJ(r= 1, ■■■, tv, j= 1, 2, 3) по значениям пробных координат xr, yr, zr (г=1, пУ, б) вычислить 2 slj=D\ в) если D>0, вернуться к а) и повторить описанный процесс, взяв x^=xr+sn и т. д.; если D=0, напечатать х , у , zr (r=1, п), которые являются требуемыми ко¬ ординатами. Видно, что этот процесс, по крайней мере по идее, су¬ щественно проще первоначального, хотя выражение (6) и сложнее, чем тригонометрические суммы, стоящие в выражениях (1) и (4). Интересным примером нематематического применения вычислительных машин является перевод с одного языка на другой, который на первый взгляд кажется не имеющим ничего общего с численными методами. Между тем такой перевод возможен почти на всех современных цифровых вычислительных машинах и был впервые предложен авто¬ рами в 1947 г. С тех пор в этом вопросе был достигнут значительный прогресс как с семантической, так и с ин¬ женерной точек зрения. Авторы должны подчеркнуть, что по крайней мере они сами понимают под этим дословный перевод текста с воз¬ можными грамматическими замечаниями и ни в коем слу¬ чае не предполагают, что на машине мокет быть получен литературный перевод. R будет получено с координатами xr+sг,, z/r+sr2, гг-\-гг.6, где V d2R OR OR (6) Машинный перевод
270 ПРИМЕНЕНИЯ ВЫЧИСЛИТЕЛЬНЫХ МАШИН По первоначальной идее в запоминающее устройство машины помещался словарь слов иностранного языка (ИЯ) и их перевод на родной язык (РЯ). Для машинного перевода некоторого текста мы слово за словом вводим его с помощью телетайпа в машину. Введенные слова затем сравниваются со словами ПЯ, и машина последо¬ вательно отпечатывает значение (или значения, если их несколько) каждого слова. Очевидно, что этот метод об¬ ладает многими недостатками. Например, для такого пе¬ ревода требуется словарь громадного объема, и тем не менее он, вероятно, не будет достаточно гибким, чтобы дать удовлетворительный перевод даже простого текста. Значительно улучшенный вариант того же метода был предложен Риченсом. Им было отмечено, что словарь, содержащий не менее 1000 специальных терминов и от 1000 до 5000 обычных слов, обеспечит достаточно точный пере¬ вод любого научного текста. Конечно, состав терминологи¬ ческого словаря сильно зависит от профиля переводимого текста. Чтобы избежать трудностей, возникающих при переводе сложных слов (например, с немецкого языка), словарь должен состоять из двух частей: одна часть содер¬ жит корни слов и их переводы, а другая часть — окон¬ чания с соответствующими синтаксическими примеча¬ ниями. Теперь процесс перевода заключается в следующем. Путем сравнения каждого слова ИЯ со словарем корней мы находим наиболее длинный имеющийся в нем корень, соответствующий данному слову, и отпечатываем его пере¬ вод. Затем оставшаяся часть слова ИЯ сравнивается со словарем окончаний, и на этот раз печатаются содержа¬ щиеся в нем синтаксические сведения. Так мы поступаем с каждым словом текста на ПЯ. Риченс иллюстрирует свой метод следующим примером: Корень Окончание ИЯ arno am о РЯ люб (гл) 1 ен (1 ен — первое лицо, единственное число, настоящее время, гл — глагол). Здесь переводчик обнаруживает, что, хотя в словаре корней имеется короткий корень «а» (=alas), там же имеется
МАШИННЫЙ ПЕРЕВОД 271 более длинный корень «ат», но уже «ато» полностью не имеется. Поэтому печатается перевод корня «люб» со знач¬ ком (гл), указывающим на то, что это глагол, а затем окон¬ чание «о» сравнивается со словарем окончаний, откуда следует, что оно определяет первое лицо, единственное число, настоящее время: «люблю». Конечно, эта простая схема’ требует целого ряда уточнений для исключения возможных неопределенностей и для перевода сложных слов (обычных, например, в немецком языке). Риченс приводит следующие примеры таких неопределенностей. По первому правилу слову «rego» будут соответствовать три корня, а именно: «reg», «гех» и «rect». При переводе слова «desideremus» возможны два варианта: desider желать, emus (первое лицо, причастие прошедшего вре¬ мени, единственное число, прилагательное); desid ле¬ ниться, eremus (первое лицо, прошедшее неопределенное, единственное число, прилагательное). Чтобы избежать этих неопределенностей, нужно включить в словарь кор¬ ней все слово и дать оба его перевода. Точно так же неко¬ торые слова (такие, как французское t в слове u-t-it) не имеют семантического значения и не должны переводиться. Чтобы оператор мог убедиться, что в данном случае перевод действительно должен опускаться и не произошло ошибки, желательно отпечатывать какой-нибудь знак, например (пр) (пропуск). Из сказанного выше читатель мог составить представление о приемах механического перевода, и теперь мы изучим, как применяются автоматические цифровые машины для этих це¬ лей. Проще, всего поступить следующим образом.Каждой букве алфавита придается некоторый код, состоящий из пяти двоичных цифр. Закодировав так все буквы какого-нибудь слова (на телетайпе это делается механически), мы сопо¬ ставим этому слову некоторое двоичное число. Тогда словарь переводов на РЯ можно разместить в памяти так, что со¬ держимое ячейки, номер которой равен полученному двоичному числу (а также, если надо, и ряда последующих ячеек), позволит получить нужный перевод. В простейшем случае в указанную ячейку помещается непосредственно перевод слова, в более сложных — перерод корня. После того как корень будет отпечатан, окончание сдвигается влево так, чтобы оно занимало старшие разряды ячейки,
272 ПРИМЕНЕНИЯ ВЫЧИСЛИТЕЛЬНЫХ МАШИН в которой запоминается переводимое слово. Сравнив об¬ разовавшееся двоичное ' число со словарем окончаний, мы можем отпечатать синтаксическое содержание данного окончания. В случае, когда слово составляет часть сложной семантической единицы, последнее запоминается в спе¬ циальной ячейке в ожидании, пока будет извлечена дру¬ гая его часть (или части, если их несколько), а тем вре¬ менем печатается какой-либо знак. Несмотря на свою простоту, этот метод практически пока не применим, так как он предъявляет слишком не¬ ограниченные требования к объему запоминающего уст¬ ройства. Например, 5000 слов требуют всего 5000 ячеек памяти; вместе с тем, если мы примем, что максимальная длина слова равняется 10 буквам, то любое из чисел от 0 до 2 может изображать какое-нибудь слово, хотя только 5000^=2’2 из них будут фактически изображать слова. Таким образом, для хранения 5000 слов этим методом потребовалось бы запоминающее устройство объемом в 1016 ячеек. Чтобы избежать этих трудностей, был предложен не¬ сколько более сложный способ. Все слова расположены в последовательных ячейках памяти в алфавитном порядке. Чтобы сократить время перевода, не слишком увеличивая при этом требования к объему запоминающего устройства, можно предложить несколько отличный метод размещения в нем словаря. Все слова, начинающиеся на одну букву, помещаются в алфавитном порядке в последовательные ячейки, но номер первой ячейки каждой такой последо¬ вательности определяется двоичным кодом ее начальной буквьь Код переводимого слова передается на арифмети¬ ческий регистр и с помощью операции вычитания сравни¬ вается там со словами словаря. Таким методом мы можем с помощью операции условного перехода определить ко¬ рень, соответствующий переводимому слову, и отпечатать его перевод. Далее, окончание переводимого слова (полученное вы питанием корня) сдвигается влево так, чтобы оно заняло старшие разряды, и на этот раз сравнивается со словарем окончаний. Таким методом будут отпечатаны граммати¬ ческие сведения касающиеся данного окончания, и машина может приступить к переводу следующего слова. Отдель¬
ИГРЫ 273 ные части сложных семантических единиц будут при этом запоминаться для дальнейшей обработки, так же как в более элементарном варианте, описанном выше. Чтобы закончить изучение этого вопроса, нам остается рассмотреть время перевода, осуществляемого на универ¬ сальной цифровой машине. В этом отношении основной характеристикой второго из описанных методов машинного перевода является время одного вычитания, которое мы примем равным 500 мксек. Следовательно, если даже счи¬ тать, что должно быть исследовано каждое из 5000 слов, то время, затрачиваемое на перевод каждого слова, не пре¬ восходит 2,5 сек и в среднем равно 1,25 сек. К этому нужно прибавить время печати, равное (для 40 букв) 6 сек. Мы можем принять, что фактическое время перевода одного слова превосходит наши расчеты не больше чем вдвое, особенно если использовать метод, при котором переводимое слово сравнивается только со словами, начинающимися на ту же букву. Полученный таким методом перевод часто бывает весьма комичен, поскольку некоторым словам соответствует не¬ сколько значений и все они бывают отпечатаны. Но опыт показывает, что полученный перевод может быть тем не менее легко понят специалистом в данной области. Было уделено значительное внимание вопросу исключения се¬ мантических неопределенностей, и интересно отметить предложения, недавно внесенные Рейффлером. Предва¬ рительно текст дается редактору, не знающему нашего РЯ, но владеющему языком текста (для нас это ИЯ), ко¬ торый исключает все возможные неопределенности. Для этого каждому такому слову редактор либо придает спе¬ циальный символ, который дает машине возможность вы¬ делить соответствующее значение этого слова, либо заме¬ няет такие многозначные слова однозначными синонимами. Полученный перевод может быть затем отредактирован на родном языке. Игры Совершенно неожиданно автоматические цифровые ма¬ шины могут выступать в роли партнера в различных иг¬ рах. Вероятно, наиболее простой для машины является игра такого типа, как игра в вист при двух игроках. В
274 ПРИМЕНЕНИИ ВЫЧИСЛИТЕЛЬНЫХ МАШИН этой игре каждому из партнеров сдается 13 карт. Каждой масти и каждой карте придается некоторый код, и с помощью обычного устройства ввода машине сооб¬ щаются ее карты. Для всей колоды в памяти машины от¬ водятся 52 ячейки, и, получив свои карты, машина поме¬ щает какой-нибудь значок в соответствующие ячейки. Мы будем предполагать вначале, что первый ход делает не машина. Значение карты, с которой пошел противник машины, немедленно сообщается ей, и она помещает эту карту в соответствующую ячейку. После этого машина проверяет, имеются ли у нее карты такой же масти, и в утвердительном случае отвечает одним из двух способов: 1. Если среди карт данной масти имеются карты, стар¬ шие, чем та, с которой ходил противник, машина ходит с наименьшей из них и берет взятку. 2. Если среди карт данной масти имеются только карты, меньшие, чем та, с которой ходил противник, машина ходит с наименьшей из них. Если у машины нет карт той же масти, то она ходит с наименьшей козырной карты и опять берет взятку. Если же у нее совсем нет козырей, то она ходит с наименьшей из всех имеющихся у нее карт. Карта, с которой пошла машина, сообщается ее против¬ нику либо с помощью печати, либо с помощью специальных сигнальных лампочек. Если первой должна ходить машина, то ситуация ста¬ новится несколько сложнее. Пожалуй, выгоднее всего в этом случае пойти со старшей некозырной карты для про¬ верки карт противника. Кодирование всех этих правил игры совершенно просто и не может вызвать затруднений. Более сложные карточные игры в равной мере доступны машине, и любая из тактик, применяемых людьми в таких играх, может быть легко запрограммирована. В большинстве карточных игр имеется элемент слу¬ чайности, и результат игры не может быть заранее пред¬ сказан. В то же время результат игры в «крестики и нули¬ ки», во всяком случае для достаточно искусных игроков, известен заранее и является ничейным. Для игры в «кре¬ стики и нулики» были сконструированы специальные машины, но она может быть прекрасно запрограммирована и на автоматической цифровой машине. Применяемые для
ИГРЫ 275 этого программы в значительной степени будут зависеть от объема запоминающего устройства. Проще всего, ко¬ нечно, составить просто таблицу всех возможных игр, для чего достаточно закодировать каким-нибудь способом со¬ держимое каждого квадрата. Например, мы можем обо¬ значать содержимое каждого квадрата следующим образом: 00 — если он пустой; 01 —если он занят нуликом; 10 — если он занят крестиком. Тогда положение, изображенное на рис. 107, будет обозначаться 18 цифрами, расположенными в следующем X X 1 о 1 о о о О о о О 1 о о о оо о о О 1 г Позиция Код 101000,0001,0000, 00,01 Направление обхода Рис. 107. Положение игры в «крестики и нулики» и его кодирование. порядке (стрелкой на рис. 107 указано направление об¬ хода): 101000, 0001, 0000, 00, 01. Мы можем рассматривать этот ряд цифр как начальную часть обычного 32-значного двоичного числа, остальные разряды которого равны нулю. Программа игры теперь составляется следующим образом. Мы заранее кодируем указанным способом все положения всех возможных игр и помещаем полученные числа в по¬ следовательные ячейки памяти. В каждой ячейке, содер¬ жащей код игрового положения, имеется 14 свободных разрядов, девять из которых могут изображать следующий, ход машины. Пусть в приведенном выше примере машине предстоит сделать следующий ход, и пусть она ставит нулик. Тогда состояние игры, изображенное на рис. 107, будет кодироваться следующим числом: 101000, 0001, 0000, 00, 01 00000, 001, 00, оо, о, о. ход машины
276 ПРИМЕНЕНИЯ ВЫЧИСЛИТЕЛЬНЫХ МАШИН Положение, которое сложится после того, как машина сделает этот ход, изображено на рис. 108. После того, как противник машины сделал свой ход, образовавшееся по¬ ложение кодируется и вводится в машину. Машина вы¬ читает это число из имеющихся у нее кодов, начиная с кода, имеющего наименьшее численное значение. Когда эта разность становится положительной (что определяется X X О I ° 1 О О | О о о о | о о о °° о о О 1 101001,0001,0000,00,01 Рис. 108. Положение игры после хода машины. с помощью операции условного перехода), то, как это следует из предыдущих пояснений, в накопителе остается код следующего хода машины. Этот ход может быть либо отпечатан с помощью соответствующей подпрограммы, либо изображен на девяти специальных неоновых лампоч¬ ках. Читатель может убедиться, что окончание игры, изображенной на рис. 107 и 108, дается кодами: 101001, 1001, 0000, 00, 01 00000 000, 00, 01, 0, 0 или 101001, 0001, 0010, 00, 01 00000 000, 10, 00, о, о, каждый из которых приводит к победе игрока, ставящего нулики,— машины! Мы можем несколькими способами построить множе¬ ство различных позиций игры в «крестики и нулики» так, чтобы оно было полным по двум следующим признакам. Во-первых, это множество содержит все позиции, возни¬ кающие после любого ответа противника на данный ход машины. Во-вторых, для каждой из этих позиций указан такой ход машины, который гарантирует ее от поражения. Одно такое множество содержит 512 различных игр по
ИГРЫ 277 4 хода машины каждая. В 360 случаях (при неумелой игре противника) побеждает машина. Чтобы запомнить все это, быстродействующее запоминающее устройство машины должно было бы содержать 2048 ячеек памяти, не считая ячеек для запоминания самой программы. Чтобы избежать запоминания такого количества чисел, возможны два пути. Первый заключается в использовании симметричности сетки клеточек для игры в «крестики и нулики». Действительно, сетка совмещается сама с собой при повороте ее вокруг центра на углы в нтг/2; кроме того, существуют плоскости зеркальной симметрии, проходящие через центр под углами тт.4. Получаемые с помощью всех этих симметрий различные позиции не независимы друг от друга: каждому «основному» положению соответствует еще семь. Отсюда следует, что указанное выше число 512 может быть разделено на 8, так что в запоминающее уст¬ ройство должны быть помещены только 4 х64=256 различ¬ ных положений. В этом случае программа должна содер¬ жать команды, которые сводят-некоторое данное состояние игры к соответствующей основной форме и в равной мере приводят ответ машины в соответствие с фактической игрой. Мы избрали спиральное расположение цифр кодового числа (рис. 107, справа), так как при этом сдвигами ре¬ гистра легко восстанавливается фактическое игровое по¬ ложение. Другой метод заключается в выработке постоянной стратегии или совокупности правил, которым следует ма¬ шина в игре и которые гарантируют ее от поражения. Можно предложить различные системы таких правил для игры в «крестики и нулики». Например, такими правилами могут быть следующие (мы предполагаем, что машина ста¬ вит нулики, а ее противник — крестики)*): I. Первый ход делает машина. 1. Ставит «0» в центральную клетку. 2. Просматривает все строки, столбцы и диагонали. 3. Если хотя бы в одной из этих линий содержатся уже два «0» и есть свободная клетка, то машина ставит в нее «0» и выигрывает игру. *) Нетрудно проверить, что, вопреки утверждению авторов, эти правила не гарантируют машину от поражения. (Прим. ред.)
278 ПРИМЕНЕНИЯ ВЫЧИСЛИТЕЛЬНЫХ МАШИН 4. Если хотя бы в одной из этих линий, содержащих два « х», есть свободная клетка, машина ставит в нее «О» (предполагая, что условие 3 не имеет места). 5. Помещает «О» в любой возможный угол. 6. Во всех остальных случаях помещает «О» рядом с любым « х». II. Первый ход делает противник ма¬ шины. 1. Помещает «О» в центр, если это возможно. 2. В противном случае помещает «О» в верхний левый угол. 3. Так же, как в пунктах 2—6 предыдущего случая. Ясно, что правила такого типа могут быть непосред¬ ственно использованы на машине, освобождая большое число ячеек, занимаемых под коды стандартных позиций. В качестве последнего примера использования авто¬ матических цифровых машин в различных играх мы кратко остановимся на шахматах. Здесь опять для машины воз¬ можны два метода игры. Один из них заключается в том, что в машину вводятся коды всех позиций и ходов, которые машина должна делать в каждой из этих позиций. Такой метод совершенно не применим к современным машинам, поскольку объем их запоминающего устройства много меньше тех требований, которые к нему при этом предъяв¬ ляются. Однако не мешает помнить, что достаточно опытные игроки часто пользуются методом, весьма близким к ука¬ занному. Другой метод заключается в использовании формулы, оценивающей, насколько сильна данная позиция (назовем ее формулой силы позиции). Предположим, что игра находится в каком-то состоянии и что следующий ход должна сделать машина, которая играет черными. Машина вычисляет силу позиции и черных, и белых и оп¬ ределяет их отношение R. Наиболее простой способ игры заключается в выборе того хода, при котором R достигает максимума. Это будет весьма слабый и неинтересный метод игры, и машина достигнет значительно большего успеха, если будет поступать следующим способом. Составляется таблица значений R, которые получаются, если мы рас¬ сматриваем любой возможный ход машины и любой воз¬ можный ответ ее противника. После этого выбирается тот ход, который сообщает максимум либо самому R, либо 1R,
ИГРЫ 279 где сумма берется по всем возможным ходам белых в от¬ вет на данный ход машины *). Этот процесс можно продол¬ жить, по крайней мере теоретически, на несколько ходов вперед и найти таким образом удовлетворительное про¬ должение партии. Нам будет полезно исследовать, какие требования предъявляет этот метод к запоминающему уст¬ ройству и времени работы машины. Весьма грубо мы можем считать, что в каждой позиции каждый из игроков может ходить 10 различными фигурами и что каждая фигура может сделать только один ход. Далее мы будем полагать, что для вычисления силы позиции достаточно выполнения 10 сложений. Тогда на выполнение одного хода требуется время 100 сложений и около 100 ячеек для запоминания различных положений и величин. Если считать, что сло¬ жение длится 10 мксек (максимально короткое время для современных машин), то на каждый ход потребуется, следовательно, около 1 мсек, что является вполне доступ¬ ным временем. Следующая ступень, когда исследуется каж¬ дый возможный ответ противника, потребует еще 10 ячеек памяти и времени 1000 сложений, т. е. около 10 мсек, что также вполне выполнимо. Из сказанного становится очевидным, что. усложняя процесс на одну ступень, мы в 10 раз увеличиваем время, затрачиваемое на выполнение одного хода. Если считать, что максимально допустимое время между двумя ходами равняется 17 минутами 1000 се¬ кундам, то станет ясно, что наиболее быстрые современные машины не могут анализировать игру больше чем на два- три хода вперед, и даже это превышает возможности' со¬ временных запоминающих устройств **). Этот метод можно улучшить, если ограничить рабо¬ ту машины только теми ходами, которые ведут к увели¬ чению начального значения R. Однако в этом случае мы теряем возможность рассматривать ходы с жертвой- фигур, хотя они могут быть потенциально весьма хоро¬ шими. *) Следует делать такой ход, при котором будет максимален min R, взятый по всем возможным ответам белых. (Прим. ред.) **) Более внимательный анализ показываем, что увеличение числа ходов, на которое просматриваются все возможные позиции, не требует увеличения объема запоминающего устройства. (Прим. ред.)
280 ПРИМЕНЕНИЯ ВЫЧИСЛИТЕЛЬНЫХ МАШИН Обучение машины и ее «разумность» В заключение этой книги мы кратко остановимся на двух упомянутых в заголовке понятиях и рассмотрим, в какой степени они могут быть применены к автоматиче¬ ским цифровым машинам. Во-первых, под обучением на опыте мы понимаем два различных процесса. Первый скорее может быть назван выработкой условного рефлекса и характеризуется тем, что обучаемый не знает заранее, какой ответ от него ожидают, и выводит его из поведения своего учителя. Например, перед собакой помещают обруч. Если она пры¬ гает сквозь него, то в награду получает пищу. Если же она уходит от него, то ее наказывают и возвращают на место. Такой метод обучения применяется к субъектам, не обладающим умственными способностями и не полу¬ чившим никакого образования; он не предполагает, что I обучаемый субъект понимает цель действий учителя. Вто- I рой вид обучения имеет место тогда, когда обучаемый I отдает себе отчет о намерениях учителя; от ученика тре- i буется в этом случае что-либо запомнить или овладеть каким-нибудь искусством. Примерами такого обучения могут служить заучивание наизусть стихотворения или таблицы умножения и исполнение фортепианной пьесы. Заметим, прежде всего, что возможность ответов ма¬ шины ограничена выдачей букв или чисел с помощью уст¬ ройства вывода. В равной мере только с помощью устрой¬ ства ввода может машина «составить заключение» о дей¬ ствиях своего учителя. Учитывая эти ограничения, мы можем теперь изучить поведение машины в процессе ее обучения, рассмотрев каждый из двух указанных видов. При этом второй вид обучения значительно проще, ибо он соответ¬ ствует обучению ребенка, уже получившего частичное об¬ разование, и, следовательно, мы можем предположить, что машина умеет воспринимать программы. Поэтому в машину достаточно ввести, во-первых, программу, считывающую и отпечатывающую содержимое определенных ячеек памяти, и, во-вторых, числа, которые машина должна выучить и повторить. Каждый раз, когда мы потребуем от машины, J чтобы она рассказала выученный урок (таблицу или ка¬ кие-нибудь другие числа), иными словами — просто вклю- I
ОБУЧЕНИЕ МАШИНЫ II ЕЕ «РАЗУМНОСТЬ» 281 чим ее на выполнение указанной только что программы, машина совершенно правильно отпечатает весь текст. В этом смысле машина способнее человека, поскольку до¬ статочно только один раз сообщить ей какой-нибудь ма¬ териал, и она никогда не забывает его (предполагая, что машина работает правильно). Машине можно предложить и более сложную задачу, как, например, покупку каких- либо товаров, заданных своими кодами, в различных ма¬ газинах, также заданных кодами. Получив код какого- нибудь товара, машина начинает последовательно выда¬ вать коды магазинов. Владелец магазина (оператор) сооб¬ щает машине, имеется ли в данном магазине требуемый товар или его нет. В последнем случае машина переходит к следующему магазину. В первом случае машина делает V себя запись, по которой она немедленно обратится в тот же магазин, если ей когда-нибудь впредь потребуется этот товар. Небольшое усовершенствование этого метода дает возможность продолжить в будущем поиски товара, если его запас в данном магазине когда-нибудь иссякнет. ' Программа этого процесса имеет следующий вид. Пусть товары закодированы числами 1, ..., г, ..., п, а магазины чисчами 1, ..., t, ..., т. Чтобы купить товар г, число г надо записать в ячейку (s+4), и затем машина включается так, что первой выполняется команда, находящаяся в ячейке г. Команды Результат действия —>сА (s-f 1) Номер магазина. Ячейки f -TiiiT Ч—-i/л ^ “| 1 s + 1 Печать (s + 2) В накопитель переда¬ на 1 и отпечатана. Машина останавливается в ожи¬ дании ответа оператора. s -4- 2 Окончание (s -(- 3) Если в магазине 1 имеет¬ ся товар г, то задача выпол¬ нена и можно приступить к поискам следующего то¬ вара. Если в магазине 1 нет товара г, машина включается, начиная с ячейки s-р 3 s + 3 + (s + 4) -*сА (s + 5)
282 ПРИМЕНЕНИЯ ВЫЧИСЛИТЕЛЬНЫХ МАШИН Ячейки Команды Результат действия s + 5 А (1 ~~ 9) —»(S + Г вводится в команду + 6) (s + 7) для придания ей вида in г, + (с) —► с А (s -|- 15) s + 7 + (s + 8) —> с A (s + 9) s + 9 + (s + 4) »A (s + 10) г вводится в первый ад¬ рес команды А—>(0Н0). s + Ю /(23)(s + ll) Команда сдвигается так, чтобы г попало во вто- рой адрес. s ^ + (s + 4) >/4(s + 12) г введено по второму адресу. s + 12 / (41) (s + 13) Возвращение команды в исходное положение. s + 13 А —»(s + 14) (s + 6) Передача команды в па¬ мять s + 6 + (0 ’(s + 15) Передача команды за- , , проса в накопитель. s +(s + 16) >/4(s-(-14) 2 -/,(т. е. 1) прибавлено к номеру магазина, s + 14 А ► (г) (г) Программа повторя¬ ется, но теперь пробуется магазин 2. Ячейки памяти Ячейки Содержимое 1 Вначале команда + (н + 1)—> сЛ (s + 1). п Вначале команда + (п + 1) —» сА (s + 1) /7+1 1 « + 2 2 п -\- т т n + m + 1 Число, печать которого означает, что данный товар не имеется ни в одном мага¬ зине.
ОБУЧЕНИЕ МАШИНЫ И ЕЕ «РАЗУМНОСТЬ» 283 Содержимое Г + ( )—*c,4(s + 15) Л —(0) (0) Ячейка пустая, в ней будет находиться команда А—*{г)(г). Число 2~р, которое используется для уве¬ личения номера магазина на единицу. Заметим, что если оператор решит исключить из запасов какого-нибудь магазина некоторый вид товаров, то машина сначала обратится к этому магазину, но потом продолжит поиски в других магазинах, пока не найдет себе другого поставщика или установит, что такового найти нельзя. Программа составлена так, что, если в каком-нибудь магазине нет определенного товара, она вторично никогда не обратится к нему за тем же товаром, и это, конечно, является недостатком программы. Его можно исправить следующим образом. Мы введем в программу несколько команд, по которым машина, узнав, что данного товара в магазине г нет, начнет проверять состояние ячейки г. Если машина уже обращалась ранее в магазин г за тем же товаром, то в ячейке г будет стоять не и-И, а какое-нибудь большее число. В этом случае машина, вместо того чтобы обращаться в магазины с большими номерами, начнет свои поиски с первого магазина. Вопрос о выработке условного рефлекса у автоматиче¬ ской цифровой машины является значительно более слож¬ ным. В соответствии с тем, что новорожденное животное еще ничему не обучено, мы при формировании условного рефлекса не имеем права ввести в машину какую-нибудь программу. С другой стороны, всякое животное обладает некоторыми врожденными рефлексами (как, например,, желание получить пищу, страх, боль), которые делают возможным его воспитание. Характер этого «воспитания» машины будет иметь следующий вид. В машину вводится, скажем, число 1, и машина выдает случайный ответ. Но это не тот ответ, которого мы ожидаем, и, выразив каким-то способом свое порицание, мы вновь вводим в машину 1, и машина вновь выдает свой ответ. Так продолжается до Ячейки S -f 4 S -f 6 s + 8 s + 14 s + 16
284 ПРИМЕНЕНИЯ ВЫЧИСЛИТЕЛЬНЫХ МАШИН тех пор, пока машина не выдаст, например, число тт=3,14... Такой метод обучения машины является весьма малове¬ роятным, и более реалистический подход заключается в том, что после соответствующего «наказания» в машину вводится число тг в надежде, что таким образом машина сумеет выдать то, что от нее требуется. Естественно, что при этом мы не имеем права пользоваться программой пе¬ чати, так как это сделает нашу задачу тривиальной. В рав¬ ной мере мы не имеем права пользоваться программой такого типа, как описанная программа покупки товаров. Возможный путь обучения машины заключается в следующем. Когда на машину впервые подается напря¬ жение (это соответствует акту «рождения»), но она еще не запущена, в ее запоминающем устройстве и регистрах содержатся совершенно случайные числа. (Если запоми¬ нающее устройство машины выполнено на магнитном барабане, то мы предположим, что он «чист», т. е. что на его поверхности нет ни нулей, ни единиц. В этом случае импульсы на выходе усилителей будут совершенно случайны.) Вос¬ питатель поощряет машину, например, запускает ее на выполнение команды, находящейся в ячейке 1. Начиная с этого момента, возможны различные варианты. Например, может случиться, что случайные числа, находящиеся в машине, на самом деле образуют программу печати требуе¬ мого числа. Более вероятно, что машина либо совсем не будет введена в действие (случайная команда не поддается дешифровке), либо, выполнив несколько операций, оста¬ новится. Здесь мы должны выработать соответствующую форму поощрений и наказаний машины, и эта задача также не является безнадежной. Если машина вообще не вводится в действие, мы прерываем подаваемое на нее напряжение, меняя тем самым случайные числа, находящиеся в ее запоминающем устройстве и регистрах. Повторяя так несколько раз, мы в конце концов добьемся того, что ма¬ шина будет введена в действие. Если же машина после запуска ее стала выполнять какие-то операции, то это должно быть встречено поощрениями. Если машина при этом ос¬ тановилась, не отпечатав никакого результата, и если пред¬ положить, что последовательность выполняемых ею команд нам известна («наблюдение над изучающим»), то можно вновь включить машину, начиная с первой команды, и
ОБУЧЕНИЕ МАШИНЫ II ЕЕ «РАЗУМНОСТЬ» 285 остановить ее в тот момент, когда она выполняет наиболее нежелательную операцию. Эта последняя может быть из¬ менена за счет резкого воздействия оператора только на блок запоминания команд (что также аналогично обычным методам воспитания юношества). Целью такого, может быть, немного несовершенного метода является, конечно, выработка в машине настоящих программ обучения, которые затем используют ее способности к запоминанию и к эле¬ ментарным рассуждениям для ускорения процесса обу¬ чения. Представляется вероятным, что какой-нибудь, мо¬ жет быть, более сложный вариант описанного выше метода даст достаточные основания для утверждения, что машина может научиться чему-нибудь из опыта. Интересное обобщение этой идеи возникает при рас¬ смотрении тех основных рефлексов, которые присущи чело¬ веку от рождения, и, в частности, таких рефлексов, как жажда пищи, инстинкт самосохранения и страх боли. Эти рефлексы часто служат основой воспитания и подска¬ зывают более подходящие методы обучения машины. Бу¬ дем считать, что нам известны «инстинкты» машины, а именно, что она предназначена для хранения чисел и выполнения арифметических действий. С другой стороны, мы не знаем, как установить с нею связь, исключая связь через устройства ввода и вывода вычислительной машины. Перед нами возникает задача прилагать раз¬ личные возбуждения на ввод машины и определять с по¬ мощью устройства вывода, какое действие они произве¬ ли на машину. Если известна реакция машины на каж¬ дое внешнее возбуждение, то введение в запоминающее устройство машины любой желательной программы или чисел становится уже возможным. Но у читателя не должно возникнуть представления, что это является легким и простым процессом. Действительно, предположим, что нам известна нормальная длина слова (чего вначале не будет). Если считать, что слово содержит 32 разряда, то на уст¬ ройство ввода машины может быть приложено около 109 различных внешних возбуждений, и нам понадобится ог¬ ромное время, чтобы с помощью различных проб определить, какие группы разрядов изображают код операции, какие — адреса и т. д., не говоря уже о дешифровке самого кода. Все эти приемы содержатся в обычной методике воспитания,
286 ПРИМЕНЕНИЯ ВЫЧИСЛИТЕЛЬНЫХ МАШИН и весьма возможно, что знание кода сильно ускорит элемен¬ тарное обучение самых маленьких. Прежде чем закончить изучение этого вопроса, заметим, что можно составить такие простейшие программы, при которых действия машины под влиянием определенных внешних возбуждений будут походить на поведение жи¬ вотного с любыми наперед заданными врожденными ин¬ стинктами. Рассмотрим, наконец, вопрос о том, обладает ли машина разумом. Непосредственный ответ на этот вопрос в очень большой степени зависит от того, что под этим понимается, потому что слово разум применительно, например, к пор¬ товому докеру и университетскому профессору имеет со¬ вершенно различное значение. В пределах уже введенной в запоминающее устройство программы машина обладает высокой точностью и отличной памятью, а потому в ре¬ шении большинства задач она имеет преимущества почти перед всеми людьми. Но авторы предпочитают определить относительный разум относительной же способностью к творческой работе, которая может быть двух родов: 1) вывод новых заключений из известных фактов; 2) получение совершенно новых идей, не выводимых (дедуктивно) из имеющихся данных. В принципе всякая творческая работа первого рода может быть получена (хотя, возможно, и не самым про¬ стым способом) анализом известных чисел методами сим¬ волической логики. Счетные машины, работающие в дво¬ ичной системе счисления, вполне подходят для такой работы, и нет никаких оснований сомневаться в том, что со временем эту работу будет возможно на них выполнять. Творческая активность второго рода встречается исключи¬ тельно редко, и, по-видимому, можно утверждать, что она почти всегда, если не просто всегда, является результатом случайного процесса. Например, кто-нибудь может слу¬ чайно прийти к заключению, что «луна сделана из зеленого сыра». Обыденный ум может не иметь этого даже в вооб¬ ражении или же откинет эту мысль, как абсурдную, и не будет дальше над этим задумываться. Вместе с тем гений будет детально изучать этот вопрос, в результате чего может открыть новый закон природы. В принципе машина, снаб¬ женная источником случайных чисел, может изучать их
ОБУЧЕНИЕ МАШИНЫ И ЕЕ «РАЗУМНОСТЬ» 287 (рассматривая их как коды некоторых предложений) ме¬ тодами математической логики на основании введенных в нее всех известных законов природы. При этом она будет либо отрицать за этими случайными числами какои-нибудь логический смысл, либо потребует от обслуживающих ее людей дополнительного исследования некоторых следствий основного положения, которое в конце концов либо отпа¬ дет, либо станет новым законом природы. Решение вопроса о том, может ли это быть названо разумом машины, мы ос¬ тавляем читателю.
ЛИТЕРАТУРА А. Книги A. J A i к е n Н. Н. (ред.), A Manual for the Operation of the A.S.C.C., Annals I, Harvard, 1946. A. 2 A i к e n H. H., Description of a Relay Calculator, Mk. 2, Annals XXIV, Harvard, 1949. A. 3 A i к e п H. H., Proceedings of a Symposium on Large Scale Calcu¬ lating Machinery, Annals XVI, Harvard, 1948. A. 4 A i к e n H. H., Proceedings of a Second Symposium, Annals XXVI, Harvard, 1951. A. 5 Aiken H. H., Synthesis of Electronic Computing and Control Circuits, Annals XXVII, Harvard, 1951. A. 6BabbageC., Passages from the Life of a Philosophy, London, 1864. A. 7 В a b b a g e H. P., Babbage’s Calculating Engines, London, 1889. A. 8BaxandalI D., Calculating Machines, Ency. Brit., изд. 14-e, 1929. A. 9BaxandallD., Calculating Machines and Instruments, London, 1926. A. 10 В e g u n S. J., Magnetic Recording, New York, 1948. A. 11 BerkeleyE. C., Giant Brains, New York, 1949. A. 12 В о о 1 e G., Treatise on the Calculus of Finite Differences, Lon¬ don, 1872. A. 13 В о о 1 e G., Collected Logical Works, т. 2, Chicago, 1940. A. 14 В о о t h A. D., Fourier Technique in X-ray Organic Structure Analysis, Cambridge, 1948. A. 15 В о w denB. V., Faster than Thought, London, 1953. A. 16 С a j о r i F., A History of Mathematics, изд. 2-e, New York, 1919. A. 17 С r a n к J., The Diflerential Analyser, London, 1947. A. 18 Сгешег H., Probleme der Entwickluhg, Aachen, 1953. A. 19 Couffignal L., Les machines a calcul.er, Paris, 1933. A. 20 Couffignal L., Les machines a penser, Paris, 1952. A. 21 Eckert W. J., Punched Card Methods in Scientific Computing, New York, 1940. A. 22 S t a f f E. R. A., High Speed Computing Devices, New York, 1950. A. 23 Fr eema n N., Actuarial Mathematics, Cambridge, 1931. A. 24 G i b b D., Interpolation and Numerical Integration, London, 1915. A. 25 H a r t г e e D. R., Calculating Machines, Cambridge, 1947.
ЛИТЕРАТУРА 289 л 26 HartreeD. R., Calculating Instruments and Machines, Camb- ridge, 19*49. A 27 Hartree D. R., Numerical Analysis, Oxford, 1952. a! 28 H о г s b u г g h E. H., Modern Instruments of Calculation, Lon- A 29 J°o’r d a ri С., Calculus of Finite Differences, New York, 1947. A. 30 Keister W., R i t с li i.« A. E. and W a s h b u r n S. H., Design of Switching Circuits, New York, 1951. A. 31 Knott C. G., Napier Tercentenary Memorial Volume, London, A 32 Korf f S. A., Electron and Nuclear Counters, New York,1946. a! 33 Ко r n Q. A. and К о г n Т. М., Electronic Analog Computers, New York, 1952. . A. 34. Lanczos C., Tables of Chebyshev Polynomials, Rep. Nat. Bur. Stand., Washington, 1952. _ A. 35 L e v у H. and В a g g о t t E. A., Numerical Studies in Differential Equations, т. I, London, 1934. A. 36 L e w i s W. B., Electrical Counting, Cambridge, 1948. A 37 M e n e b r e a L. F., Scientific Memoirs, т. 3, London, 1842. A" 38 Meyer zur Capellen W., Mathematische Instrumente, изд. 2-e, Leipzig, 1944. A. 39 M i 1 n e W. E., Numerical Calculus, Princeton, 1949. A- 40 Milne Thomson L. М., The Calculus of Finite Differences, London, 1951. A. 41 M u г г a у F. J., The Theory of Mathematical Machines, New York, 1947- A. 42 D ’ О с a g n e М., Calcul Graphique et Nomographie, Paris, 1914. A. 43 Scarborough J. B., Numerical Mathematical Analysis, изд. 2-e, Baltimore, 1950. A. 44 S h a n n о n С. E. and WeaverW., Mathematical Theory of Communication, Illinois, 1949. A. 45 S n о w C., Hypergeometric and Legendre Functions, Rep. Nat. Bur. Stand., Washington, 1952. A. 46 S t e f f e n s о n J. F., Interpolation, Baltimore, 1927. A. 47 S v о b о d a A., Computing Mechanisms and Linkages, New York, 1948. A. 48 W e I d C. R., A History of the Royal Society, т. 2, гл. II, London, 1848. A. 49 W h i t t а к e r E. T. and R о b i n s о n G., Calculus of Observat¬ ions, London, 1944. A. 50 W i e n e r N., Cybernetics, New York, 1948. A. 51 Wiener N., Extrapolation, Interpolation and Smoothing of Stationary Time Series, New York, 1949. A. 52 W i e n e г N.. The Human Use of Human Beings, Cybernetics and Society, Boston, 1950. A. 53 W i 1 к e s М. V. и др., The Preparation of Programs for an Elect¬ ronic Digital Computer, Cambridge, Mass., 1951. A. 54 W i 1 1 e r s F. A., Practical Analysis, Grap+iical and Numerical Methods, New York, 1948. 10 Э. Бут и К. Бут
290 ЛИТЕРАТУРА В. Доклады В. IBargmann V. и др., Solution of Linear Systems of High Order, Princeton, 1946. B. 2 В i g e 1 о vv J. H. и др., Interim Progress Report on the Physical Realisation of an Electronic Computing instrument, Princeton, 1947. В. 3 В i g e I о vv J. H. и др., Second Progress Report, Princeton, 1947. B. 4 В i g e 1 о vv J. H. идр., First Progress on a Multi-channel Magnetic Drum Inner Memory, Princeton, 1948. B. 5 В о о t h A. D., Design for D.E.C., London, 1951. B. 6 В о о t h A. D. and Britten K-H. V., General Considerations in the Design of an All Purpose Electronic Digital Computer, Prin¬ ceton, 1947. F B. 7 В о о t h A. D. and В r i t t e n К. H. V., Coding for A. R. C., Prin¬ ceton, 1947. B. 8 В о о t h A. D. and Street L. K-, Magnetic Registers, Triggers and Gates, ч. 1, London, 1952. B. 9 В о о t h A. D. and S t r e e t L. К., то же, ч. 2, London, 1953. В. 10 В u с k D. A., Ferroelectrics for Digital Information Storage and Switching, М. I. Т., Dig. Comp. Lab. Rep. R-212, Cambridge, Mass., 1952. В. II В u r k s A., Go I dst i ne H. H. and von Neumann J., Preliminary Discussion of the Logical Design of an Electronic Computing Instrument, Princeton, 1946 (изд. 2-e — 1947). B. 12 Chambers С. С. (ред.), Theory and Techniques for the Design of Electronic Digital Computers, 4 тома, Moore School, Philadelphia, B. 13 ChenT. C., General Principles of Crystal Diode Gating Circuits, Moore School, Philadelphia, 1948. B. 14 E с k e r t J. P., M a uс h I e у J. and Coldstine H. H., De¬ scription of the ENfAC, Moore School, Philadelphia, 1945. B. 15 E. R. A., Summary of Characteristics of a Magnetic Drum Storage Computer, St. Paul, Minnesota, 1948. B. 16 G i 1 1 S., Second Progress Report on the ACE, London, 1949. B. 17 G о 1 d s t i n e A. K-, Report on the ENIAC, 2 тома, Washington, 1946. B. 18 Go 1 dst i n e H. H. and von Neumann J., Planning and Coding of Problems for an Electronic Computing Instrument, ч. 2, т. 1, Princeton, 1947. B. 19 G о 1 d s t i n e H. H. and von Neumann J., то же, ч. 2, т. 2, 1948. В. 20 G о 1 d s t i n e H. H. and von N eumann J., то же, ч. 2, т. 3, 1948. В. 21 К i t z N. A., Discussion of Calculating Machines, M. Sc., Thesis, University of London, 1951. B. 22 Olsen К. H., A Magnetic Matrix Switch, М. I. T. Dig. Comp. Lab. Rep. R-211, Cambridge, Mass., 1952. B. 23 PattersonG. W., Proposed Programming of Matrix-algebraic Operations on EDVAC, Moore School, Philadelphia, 1947.
ЛИТЕРАТУРА 291 В. 24 Р a 11 er so n G. W. и др., TheEDVAC, Moore School, Philadelphia, i948. B. 25 P a t t e r s о n G. W. и др., Functional Description of the EDVAC, 2 тома, Moore School, Philadelphia, 1949. B. 26 P e t h e r i с к E. J., A Small Sequence Controlled Calculator, R. A. E. Tech. Note. ARM 385, ч. I, 1947. B. 27 S h a r p 1 e s s Т. К- (ред.), Progress Report on the EDVAC, 2 то¬ ма, Moore School, Philadelphia, 1946. B. 28 SI utz R. J., Memory Studies at the National Bureau of Standards, U. S., Dept, of Commerce. Rep. № 2362, Washington, 1953. B. 29 S t i b i t z G. R., Function Theory Counting Computers, Rep. № 1309, Burlington, Vermont, 1948. B. 30 T о с h e r K. D., Report on the Work of the Computer Group, London, 1952. B. 31 U 1 m a n J. N., List of Laboratory Reports of Current Interest, M.I.T. Dig. Comp. Lab. Rep. R-172-2, Cambridge, Mass., 1951. B. 32 W i 1 к es М. V. (ред.), Report of a Conference on High Speed Automatic Calculating Machines, Cambridge, 1950. B. 33 W i 1 к e s М. V., Report on the Preparation of Programs for the EDSAC, Cambridge, 1950. B. 34 W i 1 к i n s о n J. H., Progress Report on the АСЕ, ч. 1, London, 1947. B. 35 W i 1 к i n s о n J. H., Report on the Pilot Model of the АСЕ, ч. 2, London, 1951. С. Отдельные вычислительные машины AKE См. В. 16, В. 34, В. 35. С. 1 (Без автора) Elect. Engng 18 (1946), стр. 372. С. 2 Wilkinson J. Н., Proc. Roy. Soc., А195 (1948), стр 265. С. 3 Woo dger М., Nature, London 167 (1951), стр. 270. Аналитическая машина Бэббиджа См. А. 6, А. 7, А. 37, А. 48, А. 11, стр. 89, А. 26, стр. 69. С. 4 В a b bage Н. Р., А. 3, стр. 13. АПЕ(ИКС)К См. В. 6. С. 5 В о о t h A. D., Elect. Engng 22 (1950), стр. 492. С. 6 В о о t h A. D., там же 24 (1952), стр. 442. С. 7 В о о t h A. D., Acta Phys. Austr. 4 (1950), стр. 85. С. 8 В о о t h A. D., J. Brit. Instn. Radio Engrs 12 (1952), стр. 587. С. 9 В о о t h A. D. and В r i t t e n К. H. V., Quart. J. Mech. 2 (1949), стр. 182. APf( См. B. 7. C. 10 В о о t h A. D., B. 32, стр. 17. 10*
292 ЛИТЕРАТУРА АР РА С. 11 Van W i j n g а а г d e n A., B. 32, стр. 113. АСКК (Марк-1) См. А. 1. С. 12 A i к е n Н. Н. and Н о р р е г G. М., Elect. Engng, N. Y. 65 (1946), стр. 384, 449, 552. С. 13 В 1 о с h R. М., А. 3, стр. 23. С. 14 Н а г г i s о n J. О., А. 3, стр. 208. БАРК С. 15 KJellberg G., В. 32, стр. 116. С. 16 К j е 1 1 b е г g G. and NeoviusG., Math. Tab., Washington 5 (1951), стр. 29. Релейная вычислительная машина лаборатории Белл С. 17 Alt F. L., Math. Tab., Washington 3 (1948), 1, стр. 69. С. 18 A n d г е vv s Е. G., Elect. Engng, N. Y. 68 (1949), стр. 751. С. 19 A n d r e vv s E. G., A. 4, стр. 20. С. 20 С e s a r e s О., Bell Lab. Rec. 24 (1946), стр. 457. С. 21 J u 1 e у J., там же 25 (1947), стр. 5. С. 22 W i 1 I i a m s S. В., там же 25 (1947), стр. 49. С. 23 W i I 1. i a m s S. В., A. 3, стр. 40. БИНАК С. 24 E с к e r t J. P. и др., Proc. Inst. Radio Engrs, N. Y. 40 (1952), стр. 12. КАЛДИК С. 25 М о г t о n P. L., Math. Tab., Washington 5 (1951), стр. 57. ЭДВАК См. B. 24, B. 25, B. 27. C. 26 M a u с h 1 e у J. W., A. 3, стр. 203. С. 27 P a t t e r s о n G. W., A. 4, стр. 125. ЭДСАК См. A. 53, В. 33. С. 28 В e n n e t J. М., Distrib. Elect. 22 (1950), стр. 251, 276. С. 29 G i I 1 S., Proc. Camb. Phil. Soc. 47 (1951), стр. 96. С. 30 С i 1 I S., Proc. Roy. Soc. A206 (1951), стр. 538. С. 31 W h e e 1 e r D. J., там же, A202 (1950), стр. 573. С. 32 W i 1 к e s М. V., там же А195 (1948), стр. 274. С. 33 W i 1 к е s М. V., Nature, London 164 (1949), стр. 341, 557. С. 34 W i 1 к е s М. V., J. Sci. Instrum. 25 (1949), стр. 217. С. 35 W i 1 к е s М. V., Appl. Sci. Res., Hague, В1 (1950), стр. 429.
ЛИТЕРАТУРА 293 С. 36 W i I к е s М. V., Nature, London 166 (1950), стр. 942. С. 37 W i 1 к e s М. V. and R e n vv l с к W., Elect. Engng 20 (1948), ctd 208 C. 38 W i 1 к e s М. V. and R e n w i с k, W., J. Sci. Instrum. 26 (1949), ctd 385 C. 39 W i 1 к e s М. V. and R e n vv i с к W., Math. Tab., Washington 4 (1950), стр: 61. С. 40 W i I к e s М. V. and R e n w i с к W., В. 32, стр. 9. ЭНИАК См. В. 14, В. 17. «,т v С. 41 В г a i n е г d J. G. and S h а г р I е s s Т. К., Elect. Engng, N. Y. С 42 В Vr к^АИУ., Proc. Inst. Radio Engrs, N. Y. 35 (1947), стр. 756. c! 43 Go I dst ine H. H. and Go 1 ds t i n e A. K., Math. Tab.. Washington 2 (1946), стр. 97. С. 44 H a г t r e e D. R., Nature, London 157 (1946), стр. 527. С. 45 H a г t r e e D. R., там же 158 (1946), стр. 500. С. 46 M i с h a e 1 F. R., Electronics 20 (1947), стр. 116. С. 47 T a bor L. P., A 3, стр. 31. С. 48 W i 1 к e s М. V., Elect. Engng 19 (1947), стр. 104 . ИРА См. В. 15. Марк-2 См. А. 2. С. 49 С a m р b е 1 1 R. V., А. 3, стр. 69. Марк-3 С. 50 М о о г е В. L., А. 4, стр. 11. Вычислительные машины ИБМ С. 51 Е с к е г t W. J., Math. Tab., Washington, 3 (1948), стр. 149. С. 52 E с к e r t W. J., Sci. Mon., N. Y. 67 (1948), стр. 315. ИККЕ См. B. 30. Вычислительная машина Института Блеза Паскаля
294 ЛИТЕРАТУРА ЛЕО С. 56 Pinkerton J. М., Elect. Engng 23 (1951), стр. 142. МАДАМ С. 57 К i 1 b u г п Т., Nature, London 164 (1949), стр. 684. С. 58 К i 1 b u г п Т., там же 168 (1951), стр. 95. С. 59 К i 1 b u г п Т., В 32, стр. 119. С. 60 Т h о га a s Q. Е., В 32, стр. 75. С. 61 W 1 1 1 i a m s F. С., В 32, стр. 26. С. 62 W i 1 1 i a m s F. С. and К i 1 b u r n Т., Nature,Londonl62 (1948), стр. 487. С. 63 W i 1 1 i a m s F. С. и др., Proc. Instn Elect. Engrs 98 (1951), стр. 13. С. 64 W i I 1 i a га s F. С., Engineer 192 (1951), стр. 47, 91, 126. МЭДДИДА С. 65 (Без автора) Electronics 24 (1951), стр. 244. НАРЕК С. 66 G г i n d I е у D. Н. and SarahanB. L., Elect. Engng 70 (1951) стр. 111. ОМИ БАК С. 67 L e s t e г В. R., A. 4, стр. 65. С. 68 (Без автора) G. Е. Uev. 53 (1950), стр. 42. С. 69 (Без автора) Radio Electronics 21 (1950), стр. 9. Райтеон С. 70 В I о с h R. М., А. 4, стр. 50. С. 71 В I о с h R. М. и др.. Math. Tab., Washington 3 (1948), стр 286, 3 J 7. С. 72 VV е s t С. F. and D е Т и г к J. Е., Proc. Inst. Radio Engrs, N. Y. 36 (1948j, стр. 1452. CEAK C. 73 H a r r i s о n J. O., Math. Tab.. Washington 4 (1950), стп 164 229 С. 74 Bull Nat. Bur. Stand. Tech. 34 (1950), стр. 121. СЕК См. В. 21. С. 75 В о о t h A. D., Proc. Roy. Soc. A. 195 (1948), стр. 265 С. 76 В о о t h A. D., Elect. Engng 21 (1949), стр. 234. CD A К С. 77 H u s к e у H. D., A. 4, стр. 83. 9' In Й * S„k e У H- D - Ma*h- Tab., Washington 4 (1950), стр. 103. С. 79 Nat. App. Maths Labs Q. Rep., 1950, стр. 1.
ЛИТЕРАТУРА 295 ТРЕ С. 80 С а г t е г R. Н. А., В. 32,стр. 97. С. 81 Т u t с h i n g s A., B. 32, стр. 81. С. 82 U t t 1 e у А. М., В. 32, стр. 89. УНИВАК С. 83 S п у d е г F. Е. and L i v i n g s to n H. М., Math.Tab., Washing¬ ton 3 (1949), стр. 341. С. 84 T u ш b 1 e s о n R. С., Elect. Engng., N. Y. 67 (1948), стр. 6. «Вихрь» См. В 31. С. 85 F о г г е s t е г J. W., А. 4, стр. 44. «Цюзе» С. 86 L у n d о п С. R., Math. Tab., Washington 2 (1947), стр. 355. С. 87 Z u s е К , Z. angevv. Math, und Mech. 30 (1950), стр. 292. Д. Логика и конструирование арифметических узлов См. А. 5, А. 22, А. 26, В. 2, В. 3, В. 5, В. 6, В. 11, В. 12, В. 14, В. 17, В. 21, В. 24, В. 25, В. 27, В. 30,В. 34, В. 35, С. 6, С. 42. D. 1 В о о t h A. D., Quart. J. Mech. 4 (1951), стр. 236. D. 2 К a t z J., Proc. Inst. Radio Engrs 38 (1950), стр. 202. D. 3 R a e T. J. and S p e n с e г В. A., В. 32, стр. 41. D. 4 R о b i n s о n A. A., Elect. Engng 25 (1953). D. 5 S h a vv R. F., Rev. Sci. Instrum. 21 (1950). E. Счетчики и двоичные элементы См. А. 5, А. 22, А. 32, А. 36, А. 41, В. 2, В. 3, В. 12, В. 31, D. 2. Двоичные Е. 1 Е с с 1 е s W. Н. and J о г d a n F. W., Radio Rev., London 1 (1919), стр. 143. Е. 2 Isborn К- (Ferro-resonant), Electronics 25 (1952), стр. 121. Е. 3 R е i с h Н. J., Electronics 12 (1939), стр. 14. Е. 4 S с h m i d t О. EL, J. Sci. Instrum. 15 (1938), стр. 24. E. 5 Wy nn-Wi I I ia msC. E., Proc. Roy. Soc. A132 (1931), стр. 295. E. 6 Wynn-WilliamsC. E., там же A136 (1932), стр. 312. Троичные Е. 7В о о t h A. D. and R i ngro s е J., Elect. Engng 23 (1951), стр. 133.
296 ЛИТЕРАТУРА Десятичные Е. 8 A I f v е n Н. и др. (трохотрон), Теки. Tidskr , Stockh. 79 (1949), стр. 169. Е. 9 В а с о n R. С. and Р о 1 1 а г d J. R. (декатрон), Elect. Engng 22 (1950), стр. 173. Е. 10 В 1 и s s W. Н., Elect. Engng, N. Y., 68 (1949), стр. 309. Е. 11 G г о s d о г f I. Е., R. С. A. Rev. 7 (1946), стр. 438. Е. 12 Н о I 1 о w а у D. L., Electronics 25 (1952), стр. 152. Е. 13 Н о и g h G. Н. and R i d 1 е г D. S. (STC-трон), Elect. Engng 24 (1952), стр. 152, 230. E. 14 N о Ы e S. W., B. 32, стр. 103. E. 15 S h a r p I e s s Т. K., Electronics 21 (1948), стр. 122. F. Функциональные схемы (кодирующие и декодирующие устройства) См. А. 5, А. 22, В. 10, В. 22, С. 42. F. 1 В г о w n D. R. and Rochester N., Proc. Inst. Radio Engrs, N. Y. 37 (1949), стр. 139. G. Вентили См. A. 5, A. 22, A. 26, A. 30, B. 2, B. 3, B. 12, B. 13, B. 14, B. 15, B. 21, B. 25, B. 27, B. 31, C. 5, C. 8, C. 37, C. 42, C. 56, C. 63, C. 72, C. 76. G. 1 В о о t h A. D., Elect. Forum 11 (1948), стр. 5. G. 2 С h e n Т. С., Proc. Inst. Radio Engrs, N. Y. 38 (1950), стр. 511. G. 3 ClaydonD.O., J. Brit. Inst. Radio Engrs 13 (1953), стр. 110. G. 4 P a g e С. H., Electronics 21 (1948), стр. 110, 118. G. 5 Rossi B., Nature, London 125 (1930), стр. 636. G. 6 W i I 1 i a m s F. G., J. Inst Electr. Engrs 93 (1946), стр. 289. H. Устройства ввода и вывода См. А. 1, А. 2, А. 11, А. 22, В. 2, В. 3, В. 12, В. 16, В. 30. Общие Н. 1 Н о 1 1 е г i t h Н. Н., J. R. Statist. Soc. 57 (1894), стр. 678. Н. 2 L е n а е г t s Е. Н., Elect. Engng 23 (1951), стр. 140. Н. 3 R u b i п о f f М., А. 3, стр. 254. Н. 4 S h е р р а г d С. В., А. 3, стр. 267. Перфоленты Н. 5 А I е х a n d е г S. N., А. 3, стр. 248.
ЛИТЕРАТУРА 297 Б утопечатающие Н. 7 W a t s о n Е. F., Bell Syst. Tech. J. 17 (1938), стр. 620. Магнитная проволока См. В. 2, В. 3. Н. 8 W i 1 1 i s D. W„ В. 32, стр. 87. Вывод на электронно-лучевых трубках Н. 9 Baker G. Т. J. Instn Fleet. Engrs 94(1947), стр. 421. Н. 10 F u 1 1 е г Н. W., А. 3, стр. 238. Фотовывод Н. 11 Е 1 1 i о t t W. S., В. 32, стр. 85. Н. 12 G г е i g Н. G., Proc. Inst. Radio Engrs, N. Y. 36 (1948), стр 1244. H. 13 О ’ N e a 1 R. D., A. 3, стр. 260. I. Регистры См. A. 22, B. 2, B. 3, B. 8, B. 9, B. 21, C. 5, C. 72. Лампы I. 1 К n a p t о n J. H. and S t e v e n s L. D., Electronics 22 (1949), стр. 186. Сердечники I. 2 К i n с a i d М. и др., Electronics 24 (1951), стр. 108. I. 3 W a n g A., Proc. Inst. Radio Engrs, N. Y. 38 (1950), стр. 626. I. 4 Wang А., там же 39 (1951), стр. 401. I. 5 W a n g A. and W о о W. D., J. Appl. Phys. 21 (1950), стр. 49. I 6W00W. D..A4, стр. 91. J. Реле См. A. 2, A. 11, A. 22, A. 30. J. 1 Bowman J. R., A. 14, стр. 119. J. 2 В г о о к e r R. A., J. Sci. Instrum. 29 (1952), стр. 45. J. 3 D a w s о n Т., Wireless World 59 (1953), стр. 39. J. 4 Deaco nE. L., J. Sci. Instrum. 25 (1948), стр. 44. J. 5 F r e n с h J. L. and L a n e G. H., J. Sci. Instrum. 26 (1949), стр. 160. J. 6 H u m p h r i e s H. E., Engng Suppl. Siemens Mag., № ПО (1934). J. 7 H у d e N. E., Elect. Engng 25 (1953), стр. 11. J. 8 J о e 1 A. E., Trans. Amer. Inst. Elect. Engrs 67 (1948), стр. 720. J. 9 P i z e r H. I., J. Sci. Instrum. 25 (1948), стр. 424. J. 10 P i z e r H. I., J. Sci. Instrum. 25 (1948), стр. 283. J. 11 S h a n n о n С. E., Trans. Amer. Instr. Elect. Engrs 57 (1938), стр. 713. J. 12 S h a n n о n С. E., Bell Syst. Tech. J. 28 (1949), стр. 59.
298 ЛИТЕРАТУРА К. Одноразрядная память См. А. 5, А. 20, А. 22, А. 32, А. 36, В. 2, В. 3, В. 8, В. 9, В. 12, В. 14, В. 17, В. 21, С. 5, С. 8, С. 54, С. 72, Е. 1, Е. 2, Е. 3, Е. 5, Е. 6, Е. 7, I. 2, I. 3, 1. 4, I. 5, I. 6. L. Запоминающие устройства См. А. 11, А. 20, А. 22, В. 4, В. 10, В. 12, В. 15, В. 21, В. 22, В. 24, B. 25, В 27, В. 28, В. 31, В. 34, В. 35, С. 5, С. 7, С. 25, С. 37, C. 50, С. 53, С. 54, С. 59, С. 60, С. 61, С. 63, С. 72, С. 81, С. 85. Электронно-лучевые См. А. 22, В. 31, С. 59, С. 61, С. 63, С. 85. L. 1 В i v a n s Е. W. and Harrington J. V., Proc. Inst. Radio Engrs, N. Y. 38 (1950), стр. 205. L. 2 D о d d S. H. и др., Elect. Engng, N. Y. 69 (1950), стр. 990. L. 3 Eckert J. P., A 4, стр. 32. L. 4 E с к e r t J. P. н др., Proc. Inst. Radio Engrs, N. Y. 38 (1950), стр. 498. L. 5 Forrester J. W., A. 3, стр. 125. L. 6 H a e f f A. V., Electronics 20 (1947), стр. 80. L. 7 H a e f f A. V., Math. Tab., Washington 3 (1948), стр. 281. L. 8 J u 1 i a n R. S. and S a m u e I A. L., A. 4, стр. 96. L. 9 VV i 1 I i a m s F. С., Proc. Roy. Soc. A195 (1948), стр. 279. L. 10 W i 1 1 i a m s F.C. and К i 1 b u r n Т., Proc. Instn Elect. Engrs 96 (1949), стр. 81, 183. M агн итно-акуст и чес кие L- 11 В о о t h A. D., Prov. Pat. № 16319/51. L. 12 Bra dburd E. М., Elect. Commun. 28 (1951), стр. 46. L. 13 M i 1 I e r s h i p R. и др., Brit. J. Appl. Phys. 2 (1951), стр. 304. Матричные на сердечниках См. В. 22, В. 31. L 14 Forrester J. W., J. Appl. Phys. 22 (1951), стр. 44. L. 15 Р а р i a n W. N.. Proc. Inst. Radio Engrs, N. Y. 40 (1952), стр. 475. Магнитный барабан См. А. 10, А. 22, В. 4, В. 15, В. 21, С. 5, С. 50, С. 76, С. 81. L. 16 С о h е n A. A., Math. Tab., Washington 4 (1950), стр. 31. L. 17 Kornei О., A. 3, стр. 223. L. 18 M о о г e В. L., А. 3, стр. 130. L. 19 М о г to n P. L., Proc. Inst. Radio Engrs, N. Y. 38 (1950), стр. 211. L. 20 P о u 1 s e n V., Ann. Thys. Lpz. 3 (1900), стр. 754. L. 21 Smith O., Elect. World, N. Y. 1 (1888), стр. 116. L. 22 Williams F. C. and West J. C., Proc. Instn Elect. Engrs 98 (1951), стр. 29.
ДОПОЛНИТЕЛЬНАЯ ЛИТЕРАТУРА 299 Фотографы ческие См. L. 18 L. 23 1 у I е г A. W., А. 3, стр. 146. Селектроны См. А. 22 L. 24 R a j с h m a n J., Math. Tab., Washington 2 11947), стр. 359. L. 25 R a j с h m a n n J., A. 3, стр. 133. L. 26 R a j с h m a n J., A. 4, стр. 365. L. 27 R a j с h m a n J., R C. A. Rev. 12 (1951), стр. 53. Акустические линии задержки См. А. 11, А. 22, В. 24, В. 27, В. 28, В. 34, В. 35, С. 37, С. 56, С. 72, С. 84. L. 28 Gold Т., Phil. Mag. 42 (1951), стр. 787. L. 29 S h а г р 1 е s s Т. К., Electronics 20 (1947), стр. 134. L. 30 S h а г р 1 е s s Т. К., А. 3, стр. 103. М. Применения вычислительных машин См. А. 13, А. 22, А. 25, А. 26, А. 53, В. 1, В. 7, В. 18, В 19 В 20 В. 23, В. 33. М. 1 Н а ш ш i n g R. W. (Коды), Bell Syst. Tech. J. 26 (1950), стр. 147. М. 2 М с С а 1 1 u m D. М. and S m i t h J. В. (Логика), Elect. Engng 23 (1951), стр. 126. М. 3 M с С u 1 I о с h W. S. and P i t t s W. (Нервные сети), Bull. Math. Biophys. 5 (1943), стр. 115. M. 4 О e t t i n g e r A. G. (Обучение), Phil. Mag. 43 (1952), стр. 1243. M. 5 R e d h e f 1 e r R. («Ним»), Amer. Math. Mon. 55 (1948), стр 343. M. 6 S h a n n о n С. E. (Шахматы), Phil. Mag. 41 (1950), стр. 256. M. 7 U 1 a m S. (Метод Монте-Карло), A. 4, стр. 207. ДОПОЛНИТЕЛЬНАЯ ЛИТЕРАТУРА А. Книги А- 55 A sh by W. R., Design for a Brain, Chapman & Hall, London, A. 56 В oo t h A. D., Numerical Methods, Butterworths, London, 1955. A. 57 С о 1 e b г о о k F. М. (ред.), Automatic Digital Computation, London, 1954. A. 58 De T u г k J. E. и др., Basic Circuity of the MIDAC and MIDSAC, University of Michigan, 1954. 9/ e У AV alter W., The Living Brain, Duckworth, London, 1953. A. 60 H a s t i n g s С. и др., Approximations for Digital Computers, Princeton, 1955. * A. 61 Householder A. S., Principles of Numerical Analysis, McGraw Hill, New York, 1953.
300 ДОПОЛНИТЕЛЬНАЯ ЛИТЕРАТУРА А. 62 L о с к е W. N. and В о о t h A. D. (ред.), Machine Translation of Languages, Wiley, New York, 1955. A 63 Morga n B., Total to Date, Burroughs, London, 1953. A. 64 R i с h a r d s С. E. and Lynch А. С. (ред.), Soft Magnetic Materials for Telecommunications, Pergamon, London, 1953. A. 65 R i с h a r d s R. K-, Arithmetic Processes in Digital Computers, Van Nostrand, 1955. A. 66 R i g b у R. D. (ред.), Symposium on Automatic Programming, Office of Naval Research, Washington, 1954. A. 67 S 1 u к i n W., Minds and Machines, Pelican, London, 1954. A. 68 (Без автора), Les Machines a calculer et la pensee humaine, Coiloq. int. Cent. nat. rech. sci. XXXVI, Paris, 1953. A. 69 (Без автора), The Scope of Electronic Computers in the Office, Office Management Assn., London, 1955. A 70 Trans. Inst. Radio Engrs, N. Y., EC-1, Special Computer Issue, 1952. A. 71 Trans. Inst. Radio Engrs, N. Y., EC-2, Special Computer Issue, 1953. A. 72 Trans. Inst. Radio Engrs, N. Y., EC-3, Special Computer Issue, 1954. A. 73 Trans. Inst. Radio Engrs, N. Y., EC-4, Special Computer Issue, 1955. A 74 Proc". Inst. Radio Engrs, N. Y., т. 41, № 10, Computer Issue, 1953. A. 75 Review of Electronic Digital Computers, Joint Amer. Inst. Elect. Engrs-Inst. Radio Engrs, N. Y., Computer Conf. AIEE Publ., 1953. A. 76 Review of Input-Output Equipment Used in Computing Systems, Joint Amer. Inst. Electr. Engrs, Inst. Radio Engrs, N. Y., Computer Conf. AIEE Publ., 1953. A. 77 Trends in Computers, Automatic Control and Data Processing, Proc. West. Computer Conf. AIEE Publ., 1954. A. 78 Proc. West. Computer Conf. IRE Publ., 1953. A. 79 Proc. Wescon Computer Sessions. IRE Publ., 1954. A. 80 Electronic Computers and Information Theory, Inst. Radio Engrs, N. Y., Nat. Conv., Rec. 1954, ч. 4, IRE Publ., 1954. A. 81 Computers, Information Theory, Automatic Control, Inst. Radio Engrs, N. Y., Nat. Conv., Rec. 1955, ч. 4, IRE Publ., 1955. A. 82 Proc. Association for Computing Machinery, Rimbach, Pittsburgh, !952. A. 83 Association for Computing Machinery, Ann Arbour Meeting, Michi¬ gan, 1954. В. Доклады В. 36 В о о t h A. D.,. A Review of Magnetic Matrix Stores. Rep. Min. Suppl., Sub-Committee 19, сент. 1954. В. 37 Bo wma n J. R. (ред.), Mellon Inst. Industr. Res. Quart.Rep., 8, Pittsburgh, 1952. B. 38. С о о m b s A. W. M. and С h a n d 1 e r W. W., Automatic Com¬ puting: an Analysis of Arithmetical Operations, P. O. Res. Sta., London. 1946.
ДОПОЛНИТЕЛЬНАЯ ЛИТЕРАТУРА 301 В. 39 Н а г t С. В., A Survey of Automatic Digital Computers, О. N. R., Washington, 1953. B. 40 H e r r i n g G. J., The Application of Some Non-linear Elements to High-speed Switching Devices, M. Sc. Thesis, London, 1954. B. 41 H i I 1 J. L., Design Featuresof a Magnetic Drum Information Stora¬ ge System, E. R. A. Inc. St. Pauls, Minnesota, 1950. B. 42 H о 1 t A. D., The Application of Selenium Rectifiers in Digital Computer Circuits, M. Sc. Thesis, London, 1953. B. 43 J а с о b s J. F., A High-speed Counter Employing Transistors, Rep., R-214. B. 44 К a m a t D. S., Design and Construction of a Memory Device for High-speed Electronic Computing Machines, M. Sc. Thesis, London, 1953. B. 45 Ко s t e n L. и др., P.T.E.R.A., Overdruk Het Pit-bedriff, т. 5, № 4, 1953. В. 46 К u d 1 i с h R. A. and Hwa-Nien Yu, A Study of Some Di¬ rect-coupled Asynchronous Computer Circuits Using Transistors, Univ. Illinois Tech. Rep. to the O.N.R., окт. 1954. В. 47 L e a r s о n Т. V. and H u r dC. C., The I. В. M. Type 650Magnet¬ ic Drum Calculator, I. В. M. Letter, № 4396, июль 1953. В. 48 L e i n e r A. L., Buffering between Input-output and the Computer Bur. Stand. Rep., № 2154, Washington, 1952. B. 49 L e i n e r A. L., System Organization of the DYSEAC, Bur. Stand. Rep., № 2893, Washington, 1953. B. 50 L e i n e r A. L. и др.. System Design of the SEAC and DYSEAC, Bur. Stand. Rep., № 2922, Washington, 1953. B. 51 M а с 1 e i s h K- G- и др., High-speed Digital Electronic Computer, Eastman Kodak Co., Rochester, февр. 1946. В. 52 M a n n M. F. и др., Whirlwind I, Operation Logic, М. I. T. Rep. R-221, Cambridge, Mass., 1954. B. 53 M i s s e n J. I., The Application of Transistors to the Design of a Wide-band Amplifier, M. Sc. Thesis., London, 1955. B. 54 P a g e L. J., Collected Information on British Magnetic Drums, Ministry of Supply, Sub-Committee 19, июль 1955. В. 55 P e a г с e у T. and В e a r d М., The Logical Basis of High-speed Computer Design, C.S.I.R.O. Rep., R. P. R. 83, 1948. B. 56 P e a г с e у T. and В e a r d М., The Organization of a Preliminary High-speed Computer, C. S. 1. R. O. Rep., R. P. R., 84, 1948. B. 57Poppelbaum W., A Fast Junction Transistor Flip-flop with Stabilized Output Levels, Tech. Rep. O. N. R. Univ, Illinois, янв. 1955. B. 58 Q u e s t e d D. R., Phonic Wheels, Efficiency and Application to Electronic Digital Computers, M. Sc. Thesis, London, 1953. B. 59 S 1 u t z R. L., Memory Studies at the National Bureau of Stan¬ dards, Bur. Stand. Rep., № 2362, Washington, 1953. B. 60 Final Report on Contract № DA-36-034-ORD-1330, Staff of the Electronic Computer Project, Princeton, 1954. B. 61 T о с h n e r K. D., Proposed Code for ICCE 11, Imperial College, London, 1955. 1 B. 62 Townsend R., Electronic Serial Digital Adders for a Variable Radix of Notation, M. Sc. Thesis, London, 1953.
302 ДОПОЛНИТЕЛЬНАЯ ЛИТЕРАТУРА В. 63 (Без автора), A Symposium on Commercially Available General- purpose Electronic Digital Computers of Moderate Price. The Pen¬ tagon, Washington, 1952. B. 64 (Без автора), Preliminary Manual of Information for the Type 650 Magnetic Drum Calculator, 1. В. М., New York, 1953. B. 65 (Без автора), The Scope for Electronic Computers in the Office, Office Management Ass., London, 1955. B. 66 (Без автора), A Description of the Ferranti Pegasus Computer, Ferranti, London, 1955. B. 67 (Без автора), Provisional Specification for the Ferranti MK 1 Com¬ puter, Ferranti, London, 1955. С. Отдельные вычислительные машины AKE C. 88 (Без автора), Digital Computer Newsletter, 4(2) (1952), стр. 5. С. 89 W i I к i n s о n J. H., A. 57, стр. 5. АПЕ(ИКС)К С. 90 В о о t h A. D., A. 57, стр. 264. С. 91 В о о t h A. D., Math. Tab., Washington 8 (1954), стр. 98. Бендикс Г-15 С. 92 H u s к e у H. D. and Е v a n s D. С., А. 79, стр. 87. Вычислительные машины Лаборатории Белл С. 93 A n d г е w s Е. G., А. 75, стр. 101. С. 94 A n d г е w s Е. G. and Bode Н. W., Elect. Engng, N. Y 69 (1950), стр. 158. С. 95 G r a h a m R. S., Bell Lab. Rec. 31 (1953), стр. 152. Вычислительная машина Лаборатории Берроус С. 96 (Без автора), А. 75, стр. 22. «Круг» С. 97 G г е i g J., Math. Tab., Washington 7 (1953), стр. 249. КСИРО См. B. 55, B. 56. C. 98 P e a г с e у Т., Math. Tab., Washington 6 (1952), стр. 167. С. 99 S w i г e В. E., Aust. J. Phys. 8 (1955), стр. 184. ДЕЮКЕ См. B. 65. C. 100 (Без автора), Elect. Engng 27 (1955), стр. 179.
ДОПОЛНИТЕЛЬНАЯ ЛИТЕРАТУРА 303 ЭДСАК С. 101 W i 1 к е s М. V., А. 75, стр. 79. С. 102 W i 1 к е s М. V., А. 57, стр. 17. ЭДВАК С. 103. G 1 и с к S. Е., Elect. Engng, N. Y. 72 (1953), стр. 159. С. 104 К о о n s F. and L u b к i n S., Math. Tab., Washington 3 (1949), стр. 427. Э леком С. 105 Auerbach А., А. 82, стр. 47. С. 106 G г i е s е г N.. А. 77, стр. 163. Электро- Дейта С. 107 А 1 г i с h J. С., А. 73, стр. 1. Эллиот-НРДК 401 См. В. 65. С. 108 Е 1 1 i о t t W. S. и др., А. 57, стр. 273. ЭНИАК С. 109 А и е г b а с h I. L., А. 82, стр. 213. ЭР MET X С. 110 L а и с h 1 i P., Bull. Tech. Suisse Rom. 81 (1955), стр. 177. ИРА С. Ill Macdonald N. and Berkeley E. C., Comp, and Auto. 2, № 2 (1953), стр. 23. С. 112 M и 1 1 a n e у F. G., A. 75, стр. 43. Геттингенская вычислительная машина С. 113 (Без автора), Z.A.M.M. 33 (1953), стр. 48. Марк-i С. 114 Р о о г t е G. Е., А. 75, стр. 50. Харуэллская вычислительная машина С. ПбСооке - Yarborough Е. Н., А. 57, ([тр. 259. ГЕК См. В. 65.
304 ДОПОЛНИТЕЛЬНАЯ ЛИТЕРАТУРА Вычислительные машины ИБМ См. В. 47, В. 64, В. 65. С. 116 A s t г a h а п М. М. and Rochester N.. А. 82, стр. 79. С. 117 В и с h h о 1 z W. А., А. 74, стр. 1262. С. 118 F г i z z е 1 1 С. Е., А. 74, стр. 1275. С. 119 Н ug h е s Е. S., А. 77, стр. 140. С. 120 Stevens L. D., А. 76, стр. 81. ИККЕ См. В. 61. Вычислительная машина Института Блеза Паскаля С. 121 С о u f f i g n a 1 L., Atomes 3 (1948), стр. 44. С. 122 Couffignal L., Math. Tab., Washington 4 (1950), стр. 225. ИАС См. B. 60. C. 123. E s t r i n G., Math. Tab., Washington 7 (1953), стр. 108. Дженкомп С. 124 Jacobs D. H., A. 80, стр. 98. ЛЕО См. В. 65. С. 125 LenaertsE. Н., Elect. Engng 26 (1954), стр. 335. С. 126 Pi nkertonJ. М., А. 57, стр. 21. С. 127 Pinkerton J. М., and К а у е Е. J., там же 26 (1954),стр. 284. МАДАМ См. В. 65. С. 128 Lonsdale К., Elect. Engng 26 (1954), стр. 376. С. 129 Р о I 1 а г d В. W., А. 75, стр. 62. С. 130 W i I 1 i a m s F. С., A. 57, стр. 35. С. 131 W i 1 1 i a m s F. С. and К i I b u r n Т., A. 75, стр. 57. С. 132 (Без автора), Instrum. Pract. 6 (1952), стр. 440. МИДАК и МИДСАК См. А. 58. МОЗАИК См. В. 38. С. 133 С о о m b s A. W., А. 57, стр. 38. НАРЕК С. 134 Seward J. S., Rep. of N. R. L. Progress., февр. 1955. С. 135 S h e r e r t z P. C., A. 74, стр. 1313. 26-2
ДОПОЛНИТЕЛЬНАЯ ЛИТЕРАТУРА 305 Николас С. 136 Hill N. D., А. 57, стр. 45. НОРК С. 137 Е с к е г t J. Р., Сотр. and Auto. 4 (1955), стр. 10. С. 138 (Без автора), Aviat. Age 3 (1955), стр. 64. О АРАК С. 139 G е у е г В. Н., Radio Telev. News 49 (1953), стр. 83, 180. ОРДФИАК С. 140 L е о n а г d Е., А. 79, стр. 77. ОРДВАК С. 141 М е a g h е г R. Е. and Nash J. P., A. 75, стр. 37. ПТЕРА См. В. 45. С. 142 Р о 1 W. L. van der, Appl. Sci. Res., Hague B2 (1952), стр. 367. РАСКАЛ С. 143 P e t h e r i с к E. J., A. 57, стр. 46. Райтеон С. 144 Dean F. R., A. 76, стр. 77. Вычислительные машины «Ремингтон Рэнд» С. 145 С г о s ш a n L. Р., А. 74, стр. 1332. СЕАК См. В. 49, В. 50. С. 146 A i nsworthE. F., А. 76, стр. 44. С. 147 Alexanders. N.. А. 75, стр. 84. С. 148 Gr ее nwa 1 d S., А. 76, стр. 31. С. 149 GreenwaldS. и др., А. 74, стр. 1300. С. 150 На ueterR. С., А. 76, стр. 39. С. 151 L е i n е г A. L., Math. Tab., Washington 5 (1951), стр. 232. С. 152 L е i n е г A. L. и др., А. 72, стр. 8. С. 153 S 1 u t z R. J., А. 75, стр. 90. СВАК С. 154 Huskey Н. D. и др., А. 74, стр. 1294.
306 ДОПОЛНИТЕЛЬНАЯ ЛИТЕРАТУРА ТК-1 С. 155 (Без автора), Rev. Sci. Instrum. 23 (1952), стр. 774. ТРЕ С. 156 С а г t е г R. Н. А., А. 57, стр. 56. УНИВАК С. 157 А 1 1 е n W. and S m i t h G. E., Instrum, and Autom., июнь 1955, стр. 960. С. 158 D r a p e r A. F., Elect. Engng, N. Y. 72 (1953), стр. 291. С. 159 E с к e r t J. P. и др., A. 75, стр. 6. С. 160 H i п к e 1 m a n T. D. and Kraus М. H., A. 71, стр. 7. С. 161 H о p p e г G. М., A. 83, доклад № 98. «Вихрь» С. 162 E v e r e t t R. R., A. 75, стр. 70. C. 163. T а у 1 о г N. Н., А. 75, стр. 75. D. Логика и конструирование арифметических узлов D. 6 A v е г у Н. Т., Mech. Engng, N. Y. 71 (1949), стр. 719. D. 7 A v е г у Н. Т., Mech. Engng, N.Y. 72 (1950), стр. 344. D. 8 В о о t h A. D., Instrum. Pract. 8 (1954), стр. 784, 880. D. 9Burkner H., Ingenieur 21 (1951). D. 10 F e 1 k e r J. H., Electronics 26 (1953), стр. 150. D. 11 С о о d w e 1 1 J. D., Radio-electron. Engng, июль — окт. 1952. D. 12 Gr а у H. J., Proc. Inst. Radio Engrs, N. Y. 40 (1952), стр. 29. D. 13 H a r r i s J. R., Proc. Inst. Radio Engrs, N. Y. 40 (19521 стр. 1597. D. 14 H о p p e r G. M. and M a u с h 1 у J. W., A. 74, стр 1250 D. 15 К a 1 i n T. A., 82, стр. 251. D. 16 L e n a e r t s E. H., Elect. Engng 27 (1955), стр. 287, 418. D. 17 N e vv m a n E. A. and С 1 a у d e n D. O., Brit Pat. № 700 007 (1953). D. 18 Patterson G. W., A. 80, стр. 58. D. 19 P e a г с e у Т., Aust. J. Sci. 10 (1948), стр. 1. D. 20. R a t z A. G. and S m i t h V. G., Trans. Amer. Inst. Elect. Engrs 70 (1951), стр. 424. D. 21 R о s s H. R., A. 74, стр. 1287. D. 22 S a u n d e r s N. В., A. 82, стр. 223. D. 23 S e m о n W. L., A. 82, стр. 275. D. 24 S t о с k J. R., Z. angevv. Math, und Phys. 5 (1954), стр. 168. D. 25 T h о m p s о n T. R., A. 57, стр. 85.
ДОПОЛНИТЕЛЬНАЯ ЛИТЕРАТУРА 307 Е. Счетчики и двоичные элементы Двоичные Е. 16 A s h е n h u г s t R. L., A. 82, стр. 293. E. 17 В r a n i n F. H., J. O. S. A. 43 (1953), стр. 839. E. 18 С h a n d 1 e r W. W., A. 57, стр. 181. E. 19 С h и г с h i 1 1 J. L. W., J. Brit. Inst. Radio Engrs 12 (1952), стр. 497. E. 20 С о h 1 e r E. U., A. 79, стр. 38. E. 21 E I b о и r n R. D. and W i t t R. P., A. 74, стр. 1380. E. 22 E 1 b о и r n R. D., A. 71, стр. 2. E. 23 G e i s 1 e r H. J., Electronics 25 (1952), стр. 104. E. 24 J а с о b s J. F., B. 43. E. 25 M а с k a у R. S., J. Appl. Phys. 25 (1954), стр. 424. E. 26 M и г г a у D. В., Trans. Inst. Radio Engrs, N. Y., EC-5 (1955), стр. 70. E. 27 P a i v i ne n J. O. and A и e r b a с h I. L., A. 71, стр. 14. E. 28 Pressman R., Electronics 26 (1953), стр. 164. E. 29 R e n vv i с k W. and P h i s t e r M. A., Elect. Engng 27 (1955), стр. 246, 323. E. 30. R i t с h i e D. K., A. 74, стр. 1614. E. 31 T a и b D. М., Elect. Engng 27 (1955). стр. 386. E. 32 T i I 1 m a n J. R., Wireless Engr 28 (1951), стр. 101. E. 33 T r e n t R. L., Proc. Nat. Electron. Conl., U. S. A. 8 (1952), стр. 346. E. 34 T r e n t R. L., Electronics 25 (1952), стр. 100. E. 35 V и у 1 s t e k e H. A., Electronics 26 (1953), стр. 248. E. 36 W a n 1 a s s C. L., A. 70, стр. 6. E. 37 W a n 1 a s s С. L., A. 73, стр. II. E. 38 W a r e W., A. 74, стр. 1429. T роичные E. 39 В a i 1 e у R., J. Sci. Instrum. 30 (1953), стр. 139. E. 40 W e i s s m a n R., Electronics 25 (1952), стр. 118. Десятичные E. 41 Duffing P. and Tschermac M. (Zahldrossel), Siemens Austria Z. 26 (1952), стр. 140. E. 42 F e r g и s s о n G. J. and F r a s e r G. H., Rev. Sci. Instrum. 22 (1951), стр. 937. E. 43 J о i n e r H. R. and Woodward D. R., Elect. Engng 27 (1955), стр. 404. E. 44 Kemp E. L., Electronics 26 (1953), стр. 145. E. 45 К e r k и t G. А. (Декатрон), Elect. Engng 27 (1955), стр. 378. E. 46 M с A s и 1 a n J. H. L. and В r i m 1 e у К. J., Electronics 26 (1953), стр. 138. E. 47 S 1 a t e r W. G., Elect. Engng 25 (1953), стр.-307, 391. E. 48 (Без автора) (Быстродействующий десятичный счетчик EIT), Mullard Tech. Comm. 2 (1955), стр. 74.
S08 ДОПОЛНИТЕЛЬНАЯ ЛИТЕРАТУРА F. Функциональные схемы См. В. 42. F. 2. В о о t h A. D. and Н о I t A. D., Elect. Engng 26 (1954), стр. 348. С. Вентили G. 7 В о о t h A. D. and Н о 1 t A. D., Elect. Engng 26 (1954), стр. 348. G. 8 G е i s 1 е г Н. J., Electronics 25 (1952), стр. 104. G. 9 Hussey L. W., Bell Syst. Tech. J. 32 (1953), стр. 1137. G. 10 Kuchinsky S., Tele-Tech. and Electronic Industries 12 (1953), стр. 88. G. 11 L e о n d e s C. and R u b i n о f f М., Inst. Radio Engrs, N. Y., Conv. Rec., ч. 7 (1953), стр. 30. G. 12 Mi I I ma nJ., Proc. Inst. Radio Engrs, N. Y. 43 (1955), стр. 29. G. 13 M i n n i с k R. C., J. Appl. Phys. 25 (1954), стр. 479. G. 14 M о f f a t В., B. 37, доклад № 5. G. 15 M о f f a t В. и др., A. 82, стр. 143. G. 16 S a n d s E. A., Inst. Radio Engrs, N. Y., Conv. Rec., ч. 7 (1953), стр. 37. H. Устройства ввода и вывода См. А. 76. Общие H. 14 D a v i е s D. W., А. 57, стр. 102. Н. 15 HoskenH. С., А. 76, стр. 106. Н. 16 L е i n е г A. L., А. 76, стр. 22. Н. 17 MastersonE. and W i 1 s о n L. D., A. 76, стр. 58. 4. 18 Snyder R. L., A. 76, стр. 15. Перфоленты H. 19 В у r d D. J. P. and W e 1 b у В. G., A. 76, стр. 126. H. 20 G г a у W. H., A. 76, стр. 70. H. 21 Kaye E. J. and G i b b s G. R., Elect. Engng 26 (1954), стр. 386. H. 22 L a n g e v i n R. A., A. 80, стр. 105. H. 23 L u b k i n S., A. 80, стр. 106. H. 24 N i e 1 s e n G. F., A. 76, стр. 11. H. 25 О s t e r S. M. and W i 1 s о n L. D., A. 74, стр. 1453. H. 26 W e 1 b у B. G., Electronics 26 (1953), стр. 115. Быстродействующие печатающие устройства Н. 27 Rosen L. («Аналекс»), А. 76, стр. 95. Н. 28 RossheimR. J. (Ксерография), А. 76, стр. 113. Н. 29 S i m s J. С. (Феррография), А. 78, стр. 160. Н. 30 Т h о m р s о n R. G. and Н u n t С. Е., Kodak, А. 76, стр. 118. Н. 31 W i 1 d J. J., Electronics 25 (1952), стр. 116. H. 32 (Без автора), Prod. Engng 26 (1955), стр. 144.
ДОПОЛНИТЕЛЬНАЯ ЛИТЕРАТУРА 809 Магнитная лента Н. 33 В 1 и ш е n t h а 1 Е. and L о р е z F., А. 76, стр. 9. Н. 34 В u s 1 i с к W. S., А. 76, стр. 86. Н. 35 С о о ш b s J. М., Proc. Nat. Electron. Com. 3 (1947), стр. 201. H. 36 Gray W. H, A. 76, стр. 70. H. 37 L u e с к L. В. and Wetzel W. W., Electronics 26 (1953), стр. 131. H. 38 N. B. S. staff, Comp, and Auto. 4 (1955), стр. 24. H. 39 N о r d у к e H. W., A. 76, стр. 90. H. 40 P i к e J. L., A. 76, стр. 36. H. 41 Rehler К- М., A. 76, стр. 63. H. 42 W e 1 s h H. F. and L u к о f f H., A. 76, стр. 47. H. 43 Wilsdon L. D. and Roggenstei n E., A. 76, стр. 53. Вывод на электронно-лучевых трубках Н. 44 Н а г t m a n J., Elect. Engng, N. Y. 73 (1954), стр. 208. Н. 45 V a u t h i е u P., Onde Elect. 32 (1952), стр. 496. H. 46 W a n g A., Electronics 26 (1953), стр. 200. Перфокарты H. 47 В i г d R., Electron. Engng 25 (1953), стр. 407. H. 48 В 1 unienthal E. and Lopez F., A. 76, стр. 9. H. 49 N e i s e n G. F., A. 76, стр. 11. 1. Регистры Сердечники I. 7 Atkinson P. D. и др., A. 82, стр. 197. I. 8 В о о t h A. D., Brit. Pat. 706 , 736 (1954). I. 9 Dorey P. F., A. 64. I. 10 Ко d i s R. D. и др., Inst. Radio Engrs, N. Y., Conv. Rec., ч. 7 (1953), стр. 38. 1. 11 N e vv h о u s e V. L., Elect. Engng 26 (1954), стр. 192. I. 12 P e с к D. В. and D e v e у G. B., A. 83, Доклад № 10. I. 13 R u b i n s t e i n H. and Ke I ner R. C., A. 83, Доклад № 79. I. 14 S a n d s E. A., Proc. Inst. Radio Engrs, N Y. 40 (1952), стр. 1246. I. 15 S a n d s E. А., то же 41 (1953), стр. 993. I. 16 W a ng A., A. 82, стр. 207. Tранзисторы I. 17 Baker R. H., Lebaw I. L. and McMahon R. R., Proc. Inst. Radio Engrs, N. Y. 42 (1954), стр. 1152. I 18Clemett C. J. and Smith J. D., Min. Suppl. Rep., № 11 (1954), стр. 724. I. 19 H a r r i s J. R., Proc. Inst. Radio, N. Y. ‘40 (1952), стр. 1597. I. 20 H u a n g C., Slobdzinski E. and White B., A. 80, стр. 140.
310 ДОПОЛНИТЕЛЬНАЯ ЛИТЕРАТУРА Феррорезонансные устройства I. 21 D и i п к е г S., Appl. Sci Res., Hague B4 (1955), стр. 317. J. Реле J. 13 В a r n e s R С. М., Elect. Engng 26 (1954), стр. 432, 493. 641947), стр 1,06.and P ° 1 1 3 r d C- E- Elect. Engng, N. Y. J' 15 (4 953)У стр f 1393 L andP0lhrdCE-. Bell Syst. Tech. J., J. 16 Swire В. E., Aust. Dep. Suppl. Aero. Res. Lab., Instrum. Note L. Запоминающие устройства Общие V ol В О о t h A D., Research, London 8 (1955), стр. 130. L. 32 E с к e r t J. P., A. 74, стр. 1393. L. 33 S a g e I. М., Prod. Engng 24 (1953), стр. 141. f « т i' " b, u£,h Biektrotech. Z. A73 (1952), CTp. 489. L. 35 T у I e r A. W., A. 76, стр. 3. L. 36 Clay d о n D. O., A. 57, стр. 117. Электронно-лучевые L 37 2” "ITcY? t|h2|.'r R- C. »nd L „ 11 m , „ Д. s.. Electronics !:: 5 к °! Yw w"E,ectronlcs “• <1953>' l?«- L. 40 LilburnT., A. 57, стр. 212. f' fi f" ‘ * 4 ' nig C' N' Sci' Instrum. 31 (1954), стр. 251 (1953)“стр 2\ И ДР" InSt' Radi0EngrS’ N- R l Conv' Rev” 4- 7 i" Та с U * \ l Л E-> Elect- Engng, N. R. 71 (1952), стр. 352. L. 14 SmithS. I. andBrownH. E., A. 74, стр. 1167. L. 45 ThorensenR., A. 78, стр. 167. Матричные на сердечниках L. 46 A u е г b а с h I. L., А. 82, стр. 213. L. 47 Billing Н., Naturwissenschaften 40 (1953), сто 49 L. 48 В оо t h A. D., В. 36. ' Т‘ ®м/'1ои1 D‘ R,3nd Albers-Schoenberg Е„ Electronics 2b (1953), стр. 146. L' 50 Вп°Д 1 е w- т- and J а с о b s D. Н., Bull. Amer. Phys. Soc. 27 (1951), стр. 55. L. 51 FreemanJ. R., A. 79, стр. 50. ^ стр *6^ 3 Г d ^ аП ® ' a n d e r W., Comp, and Auto. 3 (1954),
ДОПОЛНИТЕЛЬНАЯ ЛИТЕРАТУРА 311 L. 53 Н а у п е s М. R., А. 70, стр. 25. L. 54 Н е g у i I. J., J. Appl. Phys. 25 (1954), стр. 176. L. 55 М i n n i с к R. С. and A s h e n h u r s t R. L., J. Appl. Phys. 26 (1953), стр. 575. L. 56 P a p 1 a n W. N., A. 83, доклад № 9. L. 57 P a p 1 a n W. N., Proc. East. Comp. Conf. Inst. Radio Engrs, N. R. (1953), стр. 37. L. 58 P a p 1 a n W. N., Electronics 28 (1955), стр. 194. L. 59 R a j с h m a n J. A., A. 74, стр. 1407. L. 60 R a j с с h u n a n J. A., Onde Elect. 32 (1952), стр. 479. L. 61 Rubinstein H. and К e 1 n e r R. C., A. 83, доклад № 79. L. 62 S t u a r t - W i 1 1 i a m s R. и др., A. 83, доклад № 76. L 63 V a n S a n t О. J., A. 80, стр. 109. L. 64 VV i e r J. М., A. 73, стр. 16. Магнитный барабан L. 65 В i 1 1 i n g H., Z. angew. Math, und Mech. 29 (1949), стр. 34. L. 66 Booth A. D., Brit. Pat 714, 186 (1954). L. 67 В о о t h A. D. and Q u e s t e d D. R., J. Sci. Instrum. 31 (1954), стр. 357. L. 68 G u t e r m a n S. and К о d i s R. D., A. 80, стр. 166. L. 69 H i 1 1 J. L., B. 41. L. 70 H о a g 1 a n d A. S., Commun. and Elect. № 14 (1954), стр. 381. L. 71 L u b k i n S., A. 72, стр. 22. L. 72 MacDonald N., Comp, and Auto. 4 (№ 1) (1955), стр. 26. L. 73 M a 1 t h a n e г W. A. and Vaughan H. E., A. 74, стр. 1341. L. 74 M a 1 t h a n e r W. A., and V a u g h a n H. E., A. 73, стр. 21. L. 75 M с G u i g a n J. H., A. 74, стр. 1438. L. 76 P e r k i nsR. L., Prod. Engng 24 (1953), стр. 192. L. 77 P о e 1 W. L. van der, Appl. Sci. Rev. Hague B3 (1953), стр. 190. L. 78 P о t t e r J. T. and M i с h e 1 P. C., A. 70, стр. 60. L. 79 R a b i n о w J., Elect. Engng N. R. 71 (1952), стр. 745. L. 80 T а у 1 о г М. К., Comp, and Auto. 4 (№ 1) (1955), стр. 18. L. 81 WilliamsF.C., Brit. Pat. № 707, 634 (1954). Фотографические L. 82 H о 1 1 a n d e r G. L., A. 79, стр. 44. L. 83 К i n g G. W. и др., A. 74, стр. 1453. Акустические линии задержки L. 84 Aren berg D. L., Accoust. Soc. Am. J. 20 (1948), стр. 1. L. 85 A u e r b a с h I. L., E с k e r t J. P., S h a vv R. F. and S h e p- p a r d С. B., Proc. Inst. Radio Engrs, N. R. 37 (1949), стр. 855. L. 86 В 1 e w e t t J. P. and R u b e 1 J. H., Proc. Inst. Radio Engrs, N. R. 35 (1957), стр. 1580. L. 87 С о 1 e В. M. and MurphyM. H., Tele-Tech. 12 (1953), стр. 106, 148. L. ‘88 M a у J. E., J. Acoust. Soc. Amer. 26 (1954), стр. 347.
312 ДОПОЛНИТЕЛЬНАЯ ЛИТЕРАТУРА l" QO М I f кртл‘ П ' дJ"* К- AcousE Soc. Amer. 20 (1948), стр. 418. стр 96 3 Anderson W. М. A., Electronics 22 (1949), L 91 стр8 '44™ 3 П Е' А И ДР’’ РГ0С' InStn Elect' Engrs’ ч11> 100 (1953), i" от ш° g е Г ST- Е; and A n d е г s о n W. А., А. 82, стр. 203. L. 93 W г 1 g h t М. А., А. 57, стр. 195. Лампы с холодным катодом L- 94 В а г n е s R. С М., Cooke - Yarborough Е. Н. and t оч J- ° "J 3 S В' 9' EIect EngnS 23 (1951), стр. 286. L. 95 G e i s 1 e r H. J., Electronics 25 (1952), стр. 104. Электрические линии задержки L. 96 A n d е г s о n J. R., A. 71, стр. 5. Ферроэлектрики l" or д П я 6 Г S° П f n'1 £lect' Engng' N- Y- ?1 (1952), стр. 916. 98 A n d e r so n J. R., Commun. and Electron., N.R. № 4 (1953), СТр. оУо. E- 99 P и 1 v a r i C. F., A. 83, доклад № 8. L. 100 P u 1 v a r i C. F., A. 78, стр. 140. Электронно-лучевые с плавающим пятном L. 101 Ryan R. D., A. 72, стр. 2. Оптико-фосфорические L. 102 В о w m a n J. R. и др., A. 82, стр. 159. L. 103 M i I с h A., B. 37, доклад № 4. М. Применения вычислительных машин M 8ВСтр°280 А D (Mcc,lanical Translation), Discovery 15 (1954), M’ 9 h A‘ P' (Mechan'cal Translation), Nature, London 176 (1955), стр. 565. M' Ш A‘ D' (Misc' aPP4cations), Brit. Comm, and Electron. 1 (1954), стр. 77. M П ct° 9* h A’ D’ (Speech rec°gnition). Comp, and Auto. 4 (1955), M. 12 F 1 о у d W. B., Electronics 23 (1950), стр 66 M. 13 G г о sc h J. R. J., J. O. S. A. 43 (1953), стр. 306. M. 14 Lewis W. D. (Telephone switching), A. 74, стр. 1242. 15McCulloch W. S. and Pfeiffer J. (Thought processes) Sci. Mon. 69 (1949), стр. 368. ’’
ДОПОЛНИТЕЛЬНАЯ ЛИТЕРАТУРА 313 М. 16. Neumann J. von (Automata), The Hixon Symposium (Wiley, N. Y.) (1951). M. 17 R i с h t m у e r R. D. and Me t го p о 1 i s N. C., Phys. To-day 2 (1949), стр. 8. M. 18 S с h 1 i e b s A. (Chess), Funk u. Ton 7 (1953), стр. 257. M. 19 S h a n no n С. E. (Chess), Sci. Amer. 182 (1950), стр. 48. M. 20 S h a n n о n С. E. (Automata), A. 74, стр. 1234. M. 21 Smith E. A and S m i t h С. V L., J. Amer. Soc. Nav. Engrs 61 (1949), стр. 137. M. 22 W i 1 к e s М. V., Discovery 14 (1953), стр. 151. N. Коды машин и программирование N. 1 А 1 w а у G. G., А. 57, стр. 65. N. 2 Carter W. С. and Ellis М., J. Op. Res. Soc. Amer. 2 (1954), стр. 41. N. 3 D a g g e t t N. L. and Rich E. S., Inst. Radio Engrs, N. R., Conv. Rev., ч. 7 (1953), стр. 48. N. 4 E с к e r t J. P., Inst. Radio Engrs, N. R., Conv. Rev., ч. 7 (1953), стр. 62. N. 5 G i 1 I S., A. 57, стр. 80. N. 6 Hopper G. М., Comp, and Auto. 4 (1955), стр. 21. N. 7 H о p p e r G. М., A. 83, доклад № 98. N. 8 H о p p e r G. M. and MauchlyJ. W., A. 74, стр. 1250. N. 9 К a u t z W. H., A 80, стр. 46. N. 10 Le v i n J. H., A. 82, стр. 173. N. 11 L u b k i n S., Math. Tab., Washington 3 (1949), стр. 44. N. 12 M u t с h E. N. and Gill S., A. 57, стр. 74. N. 13 Pearcey T. and H i I I C. W., Aust. J. Phys. 6 (3) (1953), стр. 316, 335. N. 14 R ос h ester N., A. 71, стр. 10. N. 15 S t r i n g e r J. В., A. 57, стр. 71. N. 16 T h о m a s W. H., A. 74, стр. 1245. N. 17 T о d d J., Math. Tab., Washington 7 (1953), стр. 47. N. 18 W a I t ers L. R., Inst. Radio Engrs, N. R., Conv. Rev., ч. 7 (1953), стр. 55. N. 19 Wegstein J. H., A. 83, доклад № 49. N. 20 W h e e I e r D. J. and R о b e r t s о n J. E., A. 74, стр. 1320. N. 21 (Без автора), Math. Tab., Washington 4 (1950), стр. 164. О. Надежность машин и отыскание неисправностей О. 1 В о о t h A. D., Comp, and Auto. 4 (1955), стр. 33. О. 2 Е s t г i n G., Inst. Radio Engrs, N. R., Conv. Rew. (1953), стр. 59. О. 3 G о e t z J. A. and BrookeA. W., Elect. Engng, N. R. 70 (1952), стр. 154. О. 4 G r i n s d a 1 e R. L., A. 57, стр. 246. О. 5 H i n k e 1 m a n T. D. and К r a u s М. H., Д. 71, стр. 7. О. 6 N e w m a n E. A., A. 57, стр. 235. О. 7 R i с h E. S., М. I. T. Rep., R-194.
314 ДОПОЛНИТЕЛЬНАЯ ЛИТЕРАТУРА О. 8 R i с h Е. S. and RathboneR. R., Radio-Electron. Engng 49 (1953), стр. 10, 31. О. 9 R о b i n s о n A. A., A. 57, стр. 252. О. 10 S с a n 1 о n J. J., Inst. Radio Engrs, N. R., Conv. Rev., ч. 7 (1953), стр. 20. О. 11 W e i n e r J. R., A. 70, стр. 33. О. 12 W i 1 к e s М. V., P h i s t e r M. and Barton S. A., Inst. Radio Engrs, N. R., Conv. Rev., ч. 7 (1953), стр. 66. О. 13 W i 1 к e s М. V., Phister M. and В a r t о n S. A., A. 57, стр. 239. P. Конструирование схем P. 1 A d a m P. P., Rec. Scienc. Ap. 6 (1952), стр. 289. P. 2 A s с о 1 i R., Nuovo Cim. 8 (1951). P. 3 В 1 u n d e n W. R. и др., J. Instn Engrs Aust. 25 (1953), стр. 11. P. 4 В u г к h a r t W., A. 82, стр. 259, 265. P. 5 В u г к s A. and W г i g h t J. B., A. 74, стр. 1357. P. 6 G 1 u с к S. E. и др., A. 74, стр. 1388. P. 7 G u t e г m a n S. и др., A. 80, стр. 124. P. 8 H e r r D. L., Trans. N. R. Acad. Sci. 13 (1951), стр. 121. P. 9 К e n о s i a n H., Electronics 25 (1952), стр. 156. P. iOStachler R. E., Bell Syst. Tech. J. 31 (1952), № 2. P. 11 W i I к e s М. V. and Stringer J. B., Proc. Camb. Phil. Soc. 49 (1953), стр. 230. Q. Компоненты схем Кремневые диоды Q. 1 W г i g h t J. H., A. 83, доклад № 14. Q. 2 (Без автора), Bell Lab. Rev. 31 (1953), стр. 361. Усилители Рэмея Q. 3 R a m e у R. A., Commun. and Electron., N. Y. 4 (1953), стр. 442. Q. 4 Rubinstein H., Laboratory for Electronics Tech. Rep. 18, Boston (апрель 1955). Полупроводниковые сопротивления Q. 5 S с h w e r t z F. А., В. 37, доклад № 6. Q. 6Schwertz F. A., J., Appl. Phys. 24 (1953), стр. 1015. Q. 7 S с h w e r t z F. A. and S t e i n b a с k R. Т., B. 37, доклад № 1. T ранзисторы Q. 8Shockley W., Prov. Instn Elect. Engrs 100 (1953), стр. 36.
ДОПОЛНИТЕЛЬНАЯ ЛИТЕРАТУРА 315 Селеновые выпрямители Q. 9 Н а г d у N., А. 82, стр. 165. Q. 10 Н о 1 t A. D., В. 42. Q. 11 S t г о n g P. L., А. 82, стр. 281. Q. 12 Wang A., Proc. Inst. Radio Engrs, N. R. 40 (1952), стр. 931. Феррорезонансные триггеры Q.13 S a n t е s m a s е s J. G., A. 57, стр. 186. R. Транзисторные схемы R. 1 В a к e r R. H., L e b о w I. L. and McMahon R. E. Proc Inst. Radio Engrs, N. R. 42 (1954), стр. 1152. R. 2 С 1 e m e 11 C. J. and Smith J. D., Min. Suppl. Rep.. № 11 724, июль 1954. v R. 3 С о h 1 e r E. U., A. 79, стр. 38. R. 4 Fel ker J. H., Commun. and Electron. 1 (1952), стр. 175. R- 5 F e 1 к e r J. H., A. 75, стр. 105. R. 6 Harris J. R., Proc. Inst. Radio Engrs, N. Y. 40 (1952), стр. 1597. R. 7 H u a ng C., S 1 о bo d z i n s к i E. and W h i t e B., A. 80, стр. 140* R. 8 J а с о b s J. F., В. 43. R. 9 L e t a vv H. and В a r d e e n J., J. Appl. Phys. 25(1954), стр. 600. R. 10 M i s s e n J. 1., B. 53. R. 11 Morton J. B., Aeronaut. Engng Rev. 11 (1952), стр. 34 87 R. 12. Shockley W„ Proc. Inst. Elect. Engrs 100 (1953), стр 36 R. 13. S z i к 1 a i G. C., Electr. Engrs 25 (1953), стр. 358. R. 14 T i I I m a n J. R., Wireless Engr. 28 (1951), стр. 101. R. 15. T r e n t R. L., Proc. Nat. Electron. Conl. 8 (1952), стр. 346 R. 16 T r e n t R. L., Electronics 25 (1952), стр. 100. R. 17 Vogelsong J. H., A. 74, стр. 1444. R. 18 W a n 1 a s s C. L., A. 73, стр. 11. S. Преобразование непрерывных данных в цифровые S. 1 В а г п е у К. Н., Elect. Engng, N. R. 68 (1949), стр. 962. S. 2 В и г к е Н. Е., А. 74, стр. 1455. S. 3 В и г к е Н. Е., А. 76, стр. 98. S. 4 С г а у Н. J. и др., А. 74, стр. 1462. S. 5 L i b a vv W. Н. and С г a i g L. J., A. 71, стр. 1. S. 6 M а с К n i g h t M. L. and A d a m s о n P. A., Inst. Radio Engrs, N. R., Conv. Rev., ч. 7 (1953), стр. 2. S. 7 P а с к e r L., Inst. Radio Engrs., N. R., Conv. Rev., ч. 7 (1953) стр. 13. S. 8 Sea r borough A. D., A. 71, стр. 5. S' 9 S/l1nco4g h 4 e r D' Inst- Radio Engrs, N. R., Conv. Rev., ч. 1 (1953), стр. 7.
ИМЕННОЙ УКАЗАТЕЛЬ Бёркс (A. Burks) 30 Болдуин (F. S. Baldwin) 18 Бонч-Бруевич М. А. 25 Бэббидж С (С. Babbage) 9, 18, 20 Бэббидж Г. (Н. P. Babbage) 21 Вильямс (F. С. Williams) 32, 176 Гилл (S. Gill) 212 Голдстайн (Н. Н. Goldstine) 30, 63, 202 Гудуин (Е. Т. Goodwin) 252 Джордан (F. W. Jordan) 25 Икклз (W. Н. Eccles) 25 Колбрук (F. М. Colebrook) 29 Кольмар (С. X. Т. de Colmar) 17 Куффиньяль (L. Couffignal) 180 Лейбниц (G. W. Leibnitz) 16, 17, 18 Морланд (S. Morland) 17 Мочли (J. W. Mauchley) 25, 30 Мюллер (J. Н. Muller) 18 фон Нёйман (J. von Neumann) 26, 27, 28, 30, 63, 193, 202 Однер В. Т. 18 Паскаль (В. Pascal) 17, 18 Риченс (J. Н. Richens) 270 Рот (P. Roth) 18 Сименс 102 Смит (О. Smith) 25 Стэнхоп (С. Stanchope) 17 Тьюринг (А. М. Turing) 29 Уилер Ф. (D. J. Wheeler) 212 Уилкс М. В. (М. V. Wilkes) 28, 212 Уомерсли (J. Womersley) 29 Форрестер Дж. (J. W. Forresster) 31 Холлерит (Н. Hollerith) 19 Холт (A. W. Holt) 180 Хэфф (А. V. Haeff) 178 Шмидт (О. Н. Schmidt) 124 Шёйтц (G. Scheutz) 19 Эйкен Г. (Н. Н. Aiken) 21 Эккерт В. (J. P. Eckert) 25, 30
ПРЕДМЕТНЫЙ УКАЗАТЕЛЬ Адрес (в команде) 183 База (транзистора) 115 Барабан магнитный 152 Блок запоминания команд [cont¬ rol register] 40, 44 и д. Вентиль двуполярный 113 — , диод (выпрямитель) 104 и д. — , лампа электронная, многосе¬ точная 114 — , магнитное устройство 117 — , реле электромагнитное 101 — , триод 109 Время выборки (из памяти) [ac¬ cess time] 37 Вычитание (в машинах) 62 Декатрон 134 Деление (в машинах) 67 — , метод проб и ошибок [trial- and-error method] 'v.67 — , — , не требующий восстанов¬ ления [non-restoring method] 67, 216 Дешифратор (устройства управ¬ ления) [decoder] 41, 43, 44 — адреса [coding switch] 185 Диод (выпрямитель) 104 и д. — германиевый 108 — кремниевый 108 — разностный 122 — селеновый 108 Диск магнитный 164 Дополнитель [filler] 78 Игра (машинная) 273 и д. —, вист 274 - —, «крестики и нулики» 274 —, шахматы 278 Итератор (устройства управления) 52 Итерация 11, 191 —, индекс 15 Ит-счетчик см. Итератор Код 14 — двухадресный 183 — дополнительный [complemen¬ tary notation] 15, 17, 53 — машины 182 АПЕ(ИКС)К 196 и д., 204 и д. Манчестерского универси¬ тета 200 Национальной физической лаборатории 200 Принстонской 193 и д. — одноадресный 183 — прямой [system (sign) (abso¬ lute value)] 53 — трехадресный 183 — четырехадресный 184 Кодирование см. Программирова¬ ние Коллектор (транзистора) 115 Команда 42 —, адрес в команде 183 и д. — разветвления [branching or¬ der] 15 — связующая [linking order] 216" — передачи управления безуслов¬ ной [absolute transfer of control] 43, 49 — — — условной [conditional transfer order] 191 Команды машины АПЕ(ИКС)К 204 и д. Комбинации управляющие (на ЭДСАК) [control combinations]213
318 ПРЕДМЕТНЫЙ УКАЗАТЕЛЬ Корень квадратный, извлечение 226 ■ , — методом итерации 228 , — — проб и сравнений [comparison and improvemen] 231 Машина аналитическая Бэббиджа 20 и д. — АКБ [АСЕ] 29 — АПЕ(ИКС)К [АРЕ(Х)С] 33 — АПЕ(Н)К [APE(N)C] 33 — АПЕ(Р)К [APE(R)C] 33 — АПЕ(Х)К [АРЕ(Н)С] 33 — АРК [ARCJ 24 — АРРА [ARRA] 24 — БАРК [BARC] 23 — Вихрь [Whirlwind] 31 — ГЕК-4 [НЕС-4] 34 — ГЕК-2М [НЕС-2М] 34 — Имперского колледжа 23 — ИРА-1101 [ERA-1101] 34 — КАЛДИК [CALDIC] 34 — МАК [MAC] 33 и д. — Марк-1 (АСКК) [Мк. 1 (ASCQ] 22 — Марк-2 [Мк. 2] 22 — Марк-3 [Мк. 3] 34 — Марк-4 [Мк. 4] 34 — НОРК [NORC] 34 — ОРДВАК [ORDVAC] 32 — СВАК [SWAC] 32 — CEAK [SEAC] 30 — СЕК [SEC] 33 — ТРЕ [TRE] 32 — УКК [UCC] 33 — УНИВАК [UN I VAC] 30 — Цюзе [Ziise computer] 23 — ЭДВАК [EDVAC] 28 — ЭДСАК [EDSAC] 28 и д. — ЭНИАК [ENIAC] 25 и д. Машины-аналоги 12 — с запятой плавающей 202 — с запятой фиксированной, контроль порядка чисел 221 — специализированные [special purpose computers] 12 — универсальные [general purpo¬ se computers] 12, 20 и д. — цифровые [digital computers] 12 Метод блок-схем [method of flow diagrams] 202 и д. Метод подпрограмм 210, 256 на АПЕ(ИКС)К 214 на Принстонской машине 211 на ЭДСАК 212 и д. Обозначения условные блоков и устройств 45 Обучение машины [educating, learning of machine] 280 и д. Операции групповые [immediate instructions'] 200 — арифметические 56, 62, 63, 67, 216, 256 — не арифметические 80 и д., 200 Память [memory] — см. Устрой¬ ство запоминающее — одноразрядная — см. Элемент запоминающий одноразрядный Перевод двоичных чисел в деся¬ тичные 236 — десятичных чисел в двоич¬ ные 234 — лингвистический машинный 269 и д. Передача управления безуслов¬ ная 43, 49 условная 15, 191 Петля программы простая 203 сложная 204 Подпрограммы [subroutines] 210 — , введение констант 215 — для АПЕ(ИКС)К 214 — для машины Принстонской 211 — для ЭДСАК 212 ■— закрытые 213 — интерпретирующие 214 , псевдокод 214 — , команды связующие 216 — , комбинации управляющие 213 — открытые 213 — , преобразование 210 Подстановка частичная 81, 82 Полусумматор 56 Псевдокод 214, 260 — , расшифровка интерпретирую¬ щая 260 — , — на АПЕ(ПКС)К 261 — , — составляющая 260 Псевдокоманда 260
ПРЕДМЕТНЫЙ УКАЗАТЕЛЬ 319 Представление функции полино¬ мами Лежандра 250 Чебышева 250 рядами Тейлора 249 — чисел в дополнительном коде [complementary notation] 15, 17, 53 избыточное [excess nota¬ tion] 79 в прямом коде [system (sign) (absolute value)] 53 с плавающей запятой 202 с фиксированной запятой 221 Программа 183 — без разветвления 203 — деления 217 ■ оптимальная 256 — извлечения корня 228, 231 — интерполирования по формуле Стирлинга 241 ■ таблицы sin 0 247 — контроля за порядком чисел 222 — оптимальная 186, 252 и д. — перевода двоичных чисел в де¬ сятичные 236 десятичных чисел в двоич¬ ные 234 — процесса итерационного (цик¬ лического) 192 — с петлей простой 203 сложной 203 Программирование 14, 183, 201 — автоматическое 260 и д. —, метод блок-схем [method of flow diagrams] 202 и д. — оптимальное 186, 252 и д. Процесс итерационный 191 ид. «Разум» [intelligence] машины 286 Регистр индекса [В-Ьох] 51 — со сдвигом [shifting register] 137 и д. Реле Сименса 102 — типа Р. О. 3000 102 — электромагнитное 121 ■— электронное см. Тиратрон Сдвиг содержимого регистра вле¬ во 55 вправо 55 Сердечник ферритовый 117, 118 Система команд машины см. Код машины — счисления двоичная 16, 234, 236 программная 78 и д. , дополнитель [filler] 78 Сложение машинное 56 СТК-трон [S. Т. C.-tron] 134 Сумматор 56 — параллельный 60 — последовательный 59, 61 Схема функциональная 145 и д. матричная 146 на магнитных сердечниках 147 релейная 145 совпадения 148 Счетчик устройства управления [control counter] 44 Типы команд 42 Тиратрон 122 Транзистор 115, 129 —, база 115 —, коллектор 115 —, эмиттер 115 Триггер Шмидта 124 — электронный 123 Триод (лампа) 109 — полупроводниковый (кристал¬ лический) см. Транзистор Трохотрон 134, 135 Умножение (машинное) 63 — логическое [collation] 85, 83 Управление местное [local cont¬ rol] 41 Устройство арифметическое 11, 36, 53 , регистры 54 — ввода 13, 41, 84, 85 и д. — вывода 13, 41, 84, 95 и д. — деления 69 — запоминающее (память) 37, 46 , дешифратор адреса 185 ■— — диодно-емкостное Холта 180 — — диэлектрическое 174 .система Вильямса 176