Text
                    ПО
с/Л dtfctC'/b&H'
©о©©©©®©©©
основы
ЦИФРОВОЙ
ВЫЧИСЛИТЕЛЬНОЙ
ТЕХНИКИ
г о с э н
Е Р Г О И ЗЛА

БИБЛИОТЕКА ПО АВТОМАТИКЕ Выпуск 60 П. НАСЛЭН ОСНОВЫ ЦИФРОВОЙ ВЫЧИСЛИТЕЛЬНОЙ ТЕХНИКИ Перевод с французского канд. техн, наук О. И. АВЕНА ГОСУДАРСТВЕННОЕ ЭНЕРГЕТИЧЕСКОЕ ИЗДАТЕЛЬСТВО МОСКВА 1952 ЛЕНИНГРАД
Редакционная коллегия} И. В. Антик, А. И. Вертинов, С. Н. Вешеневский, В, С. Кулебакин, В. С. Малов, В. Э. Низе, А. Д. Смирнов. Б. С. Сотсков ЭЭ-5(4)-3 Книга представляет собой популярное изложение основ цифровой техники: кодирования, элементов, принципов построения цифровых вычислительных ма- шин. В книге описывается ряд новейших элементов и устройств .автоматики и вычислительной техники — криогенные элементы, параметроны, трансфлюксоры, прогрессивные системы памяти и т. д. Книга предназначается для широкого круга ниже- неров и техников, интересующихся вопросами вычис- лительной техники, а также может быть полезной студентам старших курсов вузов.
ПРЕДИСЛОВИЕ АВТОРА К ПЕРВОМУ ИЗДАНИЮ Применение цифровых вычислительных машин для научных це- лей, в промышленности, экономике, для управления производствен- ными процессами стремительно растет. Чтобы быть в состоянйи использовать все возможности цифровых вычислительных машин, как студенты технических вузов, так и инженеры и техники должны иметь представление об их устройстве, о методах программирования и работе основных блоков машин. Устройство цифровых вычислительных машин вряд ли изменилось со времени описания его Чарльзом Бэбедж. Значение вычислительных машин выходит за рамки собственно вычислительной техники и их применение, пожалуй, в неменьшей степени важно для целей автома- 7 . тического управления, в частности в дискретных системах управле- ния, широко распространенных в промышленности. Данная книга имеет целью дать основы того, о чем говорилось выше, вхвозможно более доступной форме, в духе заметок, о кото- рых сказано в конце введения. Книга соответствует программе курса, который мы читаем в Высшей национальной школе армии и в Электротехническом институте. Мы особенно благодарны руководству учебными занятиями Армии за разрешение выпустить нашу книгу массовым тиражом. Большая часть книги была опубликована в 1957 г. в журнале «Mesures et Contrdle industriel» в номерах с марта по июнь. Редак- ции этого журнала мы также приносим благодарность. 4 wrap
ПРЕДИСЛОВИЕ КО ВТОРОМУ ФРАНЦУЗСКОМУ ИЗДАНИЮ Быстрое распространение первого издания данной книги пока- зало нам, что характер изложения и содержание ее удовлеторяют большое число читателей. Именно поэтому при подготовке ко вто- рому изданию книга не была подвергнута сколько-нибудь серьезной переработке. В первой части мы удовлетворились заменой различных про- грамм умножения двух чисел любого знака универсальной програм- мой умножения и деления чисел, представленных в закодированной форме. Вторая часть приведена в порядок включением описания логических схем на транзисторах и новых магнитных элементах, ко- торые даны после схем на лампах, а также переработкой изло- жения устройства систем электростатической памяти. Кроме того, современные достижения заставили нас добавить несколько параграфов, посвященных запоминающим устройствам на магнитной пленке, феррорезонансным схемам и параметрическим колебаниям (параметронам), устройствам емкостной памяти и схе- мам со сверхпроводящими элементами (криотронам). Ошибки, об- наруженные в первом издании, были исправлены, и мы счастливы поблагодарить здесь тех из наших читателей, которые дали нам свои заключения. Авт^р
ПРЕДИСЛОВИЕ РЕДАКТОРА К РУССКОМУ ИЗДАНИЮ Современные электронные цифровые вычислительные машины представляют собой область техники, внутри которой можно выде- лить целый ряд самостоятельных направлений. Первым такйм направлением является технология элементов. Обязанная своим воз- никновением электронным лампам и электромагнитным реле, совре- менная вычислительная техника строится почти исключительно на основе так называемой «техники твердого тела», т. е. на элементах, использующих в своей работе электрические и магнитные явления в твердых телах. Большинство машин, построенных в последние годы и разрабатываемых в настоящее время, использует в качестве ос- новных элементов полупроводниковые приборы и, в частности, тран- зисторы. Переход к транзисторам позволил уменьшить габариты машины от десятков кубических метров до нескольких кубических дециметров, а количество потребляемой электроэнергии — от десят- ков киловатт до сотен ватт. Наиболее перспективным в этом на- правлении представляется сейчас использование тонких магнитных пленок, комбинированных полупроводниковых элементов, а также элементов, основанных на явлении сверхпроводимости. Разработка элементов, размеры которых только на один-два порядка отличаются от размеров молекул, привела к тому, что эта новая область техно- логии получила название «молектроники». Элементы такого типа обладают временем переключения порядка единиц наносекунд, что уже приближается к предельному быстродействию, обусловливаемо- му скоростью передачи информации по соединительным линиям. Рассматриваемое направление вызвало к жизни теорию надеж- ности электронных устройств, которая <в настоящее время представ- ляет собой достаточно развитую самостоятельную научную дисцип- лину. Одним из наиболее существенных результатов здесь явилось доказательство принципиальной возможности построения сколь угодно надежных схем из ненадежных элементов. Второе направление, тесно примыкающее к первому, — это раз- работка теории переключательных функций. В рамках этой теории решаются задача формального описания работы вычислительных схем, а также задача построения алгоритмов минимизации, позво- ляющих чисто формальным способом строить схемы, выполняющие данные вычислительные функции при минимальном числе используе- мых элементов. Теория переключательных функций открывает путь для создания машин, разрабатывающих схемы вычислительных устройств, т. е. машин, создающих машины. Своим возникновением теория переключательных функций обязана работам английского 5
математика Дж. Буля, впервые сформулировавшего в своей книге «Законы мышления» (1854 г.) основные законы алгебры логики. Большой вклад в развитие теории переключательных функций был сделан советским ученым проф. М. А. Гавриловым. Теория времен- ных переключательных функций разрабатывалась Ю. Я. Базилевским. Третье теоретическое направление связано с созданием теории структур цифровых вычислительных машин. Это направление воз- никло в последние годы в связи с тем, что возможности увеличения быстродействия машин чисто технологическими средствами уже в значительной степени исчерпаны. Другая рассматриваемая здесь за- дача состоит в построении наиболее экономичных структур, отве- чающих заданным техническим условиям. До последнего времени всякая цифровая вычислительная машина, как универсальная, так и специализированная, состояла из трех основных устройств, а имен- но: арифметического устройства, запоминающего устройства и уст- ройства управления. Отдельные машины отличались одна от другой только значениями ряда параметров этих устройств. Многие маши- ны, разрабатываемые в настоящее время, представляют собой слож- ные комплексы, состоящие из большого количества устройств, рабо- тающих автономно и связанных между собой общей системой управ- ления и общими каналами передачи информации. В таких системах достигается возможность наиболее эффективного использования каждого отдельного устройства. Работы в рассмотренных трех направлениях призваны дать от- вет на вопрос: как строить цифровую вычислительную машину? Другая группа направлений ставит целью изучение объекта работы вычислительной машины, т. е. информации. Прежде всего, очень важно решить проблему создания входных и выходных устройств машины, т. е. проблему связи машины с человеком. Наибольшее значение имеют здесь исследования, связанные с разработкой теории и созда- нием устройств, преобразующих информацию, представленную чело- веческим голосом или написанным текстом, в форму кодов, с кото- рыми оперирует машина, а также устройств, преобразующих выход- ные сигналы машины в форму, наиболее удобную для восприятия человеком. Следующая проблема связана с представлением информации внутри машины. Особо здесь следует отметить разработку так назы- ваемых самокорректирующих кодов, позволяющих обнаруживать и исправлять ошибки, обусловленные отдельными сбоями в работе вычислительных элементов. К этой же группе вопросов следует от- нести проблему наиболее экономичного представления информации внутри машины. Задача сводится здесь к удовлетворению противоре- чивых требований — достижения максимальных возможностей конт- роля и самоконтроля при максимальной структурной надежности и минимальном числе используемых элементов. Наконец, исследования в последней группе направлений призва- ны дать ответ на вопрос: как должна работать цифровая вычисли- тельная машина? Одной из проблем здесь является разработка чис- ленных методов решения математических задач. Развитие вычисли- тельной техники оказывает, в свою очередь, существенное влияние на развитие математики, так как, с одной стороны, вычислительные методы в математике разрабатывались до последнего времени с учетом того, что вычисления будут производиться вручную, а с яру 6
гой стороны, целый ряд задач, на поиски аналитических решений которых затрачивались огромные усилия, потерял актуальность в связи с появлением вычислительных машин. Следующим направлением является разработка теории и прак- тических способов программирования, т. е. перевода условий задачи и описания способа ее решения с языка человека на язык машины. Наиболее актуальной в настоящее время является разработка мето- дов автоматического программирования, позволяющих предельно автоматизировать, этот процесс. Здесь следует отметить как работы по созданию «компилирующих», «интерпретирующих» и тому подоб- ных программ, позволяющих автоматически составлять программу вычислений по исходным данным, записанным в форме, близко сов- падающей с формой, обычно используемой в математической лите- ратуре, так и работы в области автоматического в полном смысле этого слова программирования, т. е. составления машиной неизвест- ного заранее алгоритма для решения задачи или класса задач на основе минимума исходных данных. В заключение следует отметить работы по созданию единых алго- ритмических языков, в одинаковой степени пригодных для использо вания как машиной, так и человеком. Одним из достигнутых резуль- татов здесь является возможность организации совместной работы нескольких машин над решением одной задачи. При этом могут быть реализованы преимущества, даваемые разделением труда и специализацией. Такова в общих чертах основная проблематика современной циф- ровой вычислительной техники. Из сказанного должно быть ясно, что задача написания единой монографии, освещающей хотя бы в не- большой степени большинство перечисленных здесь вопросов, связа- на с существенными трудностями, обусловленными как чрезвычайно большим объемом материала, так и его разносторонностью. Предла- гаемая читателю книга известного французского инженера Пьера Наслэна интересна прежде всего тем методом, который автор избрал для изложения материала. Автор как бы предлагает читателю уча- ствовать вместе с ним в построении цифровой вычислительной ма- шины, очень простой как по объему, так и технологически, но обладающей, тем не менее, всеми характерными свойствами совре- менных машин. Для того чтобы приступить к такому построению, прежде всего нужно знать, как представляются в машине числа и как выполняются над ними основные операции сложения и вычита- ния. В качестве элемента для изготовления устройств, выполняющих операции сложения и вычитания, автор избрал простейшее, с его точки зрения, а именно, электромагнитное реле. Такой выбор кажет- ся несколько странным, и по всей вероятности, может быть объяснен тем, что основу книги составляют работы автора, опубликованные в 1957 г. Параллельно с построением устройств читатель знакомится со способами описания работы этих устройств средствами переклю- чательных функций. Итак, выполнение операций сложения и вычитания автоматизи- ровано. Теперь необходимы средства для автоматического хранения получаемых результатов и получения новых исходных данных, над которыми можно было бы выполнять операции. Для этого на тех же реле строится небольшое запоминающее устройство с местным бло- ком управления. После этого можно приступать к завершающему этапу работы, а именно, к построению устройства управления. Одно- 7
временно рассматриваются структура команд и основные методы программирования. Во второй части книги описывается принцип действия большого количества элементов цифровых вычислительных схем, начиная с реле и кончая такими современными разработками, как трансфлюк- соры и криотроны. Книга рассчитана, в основном, на мало подготовленного чита- теля, что и обусловливает стиль изложения. Однако, несмотря на это, автору удалось избежать чрезмерных упрощений и достаточно четко сформулировать большую часть наиболее актуальных в на- стоящее время проблем. Все это делает книгу интересной, главным образом для читателя, впервые знакомящегося с основами цифровой вычислительной техники. В ряде случаев автором были допущены неточности, главным образом терминологического характера, которые по возможности ис- правлялись при переводе и редактировании. Удивляет также полное отсутствие в тексте книги ссылок на работы советских ученых, вклад которых в развитие цифровой вычислительной техники является в настоящее время общепризнанным. А. В. Шилейко
=*= ВВЕДЕНИЕ He будет лишним напомнить в начале этой книги, что сущест- вуют два совершенно различных типа вычислительных машин: аналоговые и цифровые. Аналоговые машины, являясь по существу моделями реаль- ных физических систем, дают возможность изучать эти системы. В подобных машинах исходные переменные математической зада- чи представляются пропорциональными -им значениями -физических величин, таких как электрическое напряжение или угловое перемещение вала. Математические операции — сложение, умно- жение, деление, интегрирование, дифференцирование и т. д. — осу- ществляются в аналоговых машинах с помощью в большей или меньшей степени специализированных электрических, электрон- ных или электромеханических устройств. Для решения какой-ли- бо системы уравнений соответствующие устройства соединяются так, чтобы составить систему, работа которой в точности описы- валась заданными уравнениями. Если, как это и бывает в боль- шинстве случаев, решаемые уравнения являются математическим описанием некоторой реальной системы, то аналоговая машина образует модель этой системы. На одинаковые внешние воздей- ствия реальная система и ее модель реагируют одинаково. Более •того, если выбор некоторой части параметров системы относи- тельно свободен, то инженер, меняя на модели эти параметры произвольным образом, имеет возможность выбрать оптимальный режим работы системы. Очевидны те преимущества, которые дает подобное моделирование, позволяющее имитировать в лабо- ратории экспериментальные исследования, которые в реальных ус- ловиях будут более длительными и дорогими. Точность аналого- вой машины обусловлена точностью ее вычислительных и измери- тельных устройств. По крайней мере на первый взгляд принцип действия цифро- вых вычислительных машин резко отличается от принципа дейст- вия аналоговых машин. Цифровые вычислительные машины мож- но рассматривать скорее как средства машинизации работы групп вычислителей. Они автоматически выполняют всю совокупность операций, предусматриваемых численными методами решения ма- тематических задач. Таким образом, изучение работы вычислите- лей позволит нам выявить те функции, которые способна осу- ществить автоматическая цифровая вьгчйслительная машина. 2—895 9
Во-первых, математик, специалист по численным методам, дол- жен привести исходную задачу к форме, удобной для расчетов на клавишных счетных машинах, имеющихся в вычислительном бюро, т. е. представить задачу в виде последовательности про- стейших арифметических операций: сложения, вычитания, умно- жения, деления, в некоторых случаях извлечения корня. Таким образом, дифференциальные уравнения4 будут заменены уравне- ниями в конечных разностях, интегралы — конечной суммой и т. д. Точность в этом случае ограничивается только количеством знаков в обрабатываемых числах. Подобная подготовительная работа необходима также, когда вычисления предполагается пре-‘ Рис. 1. Блок-схема автоматической цифровой вычисли- тельной машины. доставить автоматической вычислительной машине. В случае вы- числений, осуществляемых вручную, план расчетов, подготовлен- ный подобным образом, служит для составления расчетных лис- тов для вычислений, которые могут быть выполнены добросовест- ными расчетчиками не очень высокой квалификации. Работа этих последних заключается главным образом в чтении чисел в опре- деленных графах их расчетных листов, вводе этйх чисел с по- мощью клавиатуры в счетные машины, выполнении операций, указанных в расчетных листах, и в переписывании результата в предназначенную для этой цели графу. В общем случае эти ре- зультаты будут использованы на дальнейших стадиях расчета, предусмотренных инструкциями, в отдельных случаях заиисан- ными на том же листе. Этот вид расчетов складывается из трех весьма различных видов операций: 1) операция вычисления, осуществляемая на клавишной ма- шине; 2) операция накопления цифровых данных и промежуточных результатов или, иначе говоря, операция запоминания, осуществ- 10
ляемая с помощью записи чисел в соответствующих клетках рас- четного листа; 3) операция организации или программирования, результатом которой является последовательность команд, характеризующих операции, выполняемые над записанными числами; заметим, что эти программы сами могут быть записаны на расчетном листе. Те же самые операции мы обнаруживаем при работе автоматиче- ской цифровой вычислительной машины, укрупненная блок-схема которой представлена на рис. 1. Все в этой схеме напоминает рас- четный лист. Запоминающее устройство (память) 2 хранит ис- ходные данные задачи, результаты промежуточных вычислений и программу Выполнения операций. Запоминающее устройство свя- зано двусторонней связью с вычислительным устройством 3, на- зываемым также арифметическим устройством. В одном направ- лении передаются исходные данные для выполняемых операций, а в другом — частичные результаты для записи в запоминающем устройстве. Устройство управления 5 передает другим устройствам маши- ны Сигналы управления в соответствии с командами, извлекаемы- ми шаг за шагом из запоминающего устройства таким образом, чтобы осуществить программу вычисления. Следовательно, мы предполагаем, что выполнение отдельной команды осуществляется в два приема: во-первых, она должна быть извлечена из памяти и помещена временно в специальный регистр1 устройства управ- ления 4, называемый регистром команд; во-вторых, она должна быть интерпретирована или расшифрована, чтобы на ее основании могли быть сформированы управляющие сигналы, воздействую- щие на арифметическое и запоминающее устройства с целью вы- выполнения определенных элементарных операций. Эти операции должны быть синхронизированы специальным устройством син- хронизации, иначе называемым генератором тактовых сигналов. Наконец, оператор должен располагать устройствами, позволяю- щими, с одной стороны, ввести в машину исходные данные и ко- манды, например с помощью клавиатуры, и, с другой стороны, обеспечивающими возможность ознакомиться с полученными ре- зультатами. Эти устройства представляют собой входные 1 и вы- ходные 6 органы машины, обеспечивающие в известном смысле связь машины с внешним миром. Эти замечания весьма общего характера были сделаны для оп- ределения круга вопросов, возникающих при изучении вычисли- тельных процессов на автоматических цифровых машинах. При по- следующем изложении они будут служить также для формирова- ния некоторых понятий о природе и происхождении различных за- дач, которые мы будем изучать в дальнейшем. Начиная с этой отправной точки, мы попытаемся шаг за ша- гом ознакомить читателя с теми теоретическими изысканиями, которые привели к выработке основных принципов работы авто- матических вычислительных машин. В этой связи особенно важ- ным представляется убедить читателя, что работа машины проста, логична и естественна, исключая, может быть, трудности произ- 1 Регистром здесь и б дальнейшем будет называться совокуп- ность запоминающих ячеек, предназначенных для хранения одного числа или одной команды. (Прим, ред.) 2* , 11
водственниго характера. Итак, мы последуем совету Декарта и пойдем от простого к сложному, мало-помалу строя* упрощенную1 автоматическую цифровую машину, используя узлы, технология изготовления которых сама по себе проста настолько, насколько это возможно. Ознакомившись, таким образом, с основными за- дачами автоматических вычислений и принципами устройства цифровой вычислительной машины, мы перейдем к обзору раз- личных элементов и устройств, эффективно используемых в совре- менных машинах. Дав представление о двоичной системе счисления, основной в автоматических вычислениях, мы покажем, как с помощью схем на электромагнитных реле можно легко осуществить такие элемен- тарные операции, как сложение и вычитание. В этой связи мы объясним законы и символику алгебры логики. В дальнейшем нам понадобятся устройства памяти, обеспе- чивающие возможность извлечения из них в случае надобности данных и необходимую связь с оператором. Рассмотрение основных способов кодирования и программи- рования дает нам возможность легко перейти к рассмотрению способов передачи информации между различными устройствами машины и объяснить необходимость в запоминающем устройстве для команд, счетчике и дешифраторе команд. Показав необходи- мость нарушения последовательности программы и предложив сред- ства для ее осуществления, мы сможем установить подробную схему нашей машины и уточнить последовательность операций. Доведя элементарную машину до пускового состояния, мы приступим к детальному составлению программ и рассмотрим не- сколько характерных примеров. Затем мы скажем несколько слов о входных и выходных устройствах, позволяющих соответственно вводить в машину исходные данные и команды и извлекать из нее конечные результаты. Далее мы перейдем к рассмотрению работы различных узлов машины в порядке, соответствующем их важности, и покажем, как они практически изготовляются на основе современных эле- ментов: германиевых диодов, ферритовых сердечников, ультразву- ковых линий задержки, магнитных барабанов и т. д. 1 Мы действительно построили подобную машину, предназна- ченную для учебных целей, в соответствии с планом Центральной лаборатории и военного училища (CODA или Демонстрационного вычислительного центра армии). Логические функции выполняются в ней с помощью телефонных реле, запоминающее устройство вы- полнено на двойных триодах Машина содержит 128 регистров памяти, из которых 24 электронных, а 104 используют перфокарты.
Глава первая СТРУКТУРА УНИВЕРСАЛЬНОЙ ЦИФРОВОЙ ВЫЧИСЛИТЕЛЬНОЙ МАШИНЫ ДВОИЧНАЯ СИСТЕМА СЧИСЛЕНИЯ Обычно мы осуществляем вычисления в десятичной системе счисления. Физическое представление какого-либо числа, могуще- го принимать любые значения от 0 до 9, требует в случае исполь- зования этой системы применения устройства, обладающего де- сятью различными состояниями, каждое из которых будет соот- ветствовать одной из цифр. Это имеет место в клавишных механи- ческих счетных машинах, где, например, на цифровых колесах счет- чиков или соответствующих устройствах кассовых аппаратов имеет- ся десять цифр. Но современные .цифровые вычислительные машины строятся главным образом на электрических, магнитных или электронных, а не на механических устройствах и элементах. Элементы совре- менных цифровых вычислительных машин характеризуются, как правило, наличием двух рабочих состояний; например, это может быть замкнутое или разомкнутое состояние контакта, проводящее или запертое состояние электронной лампы, наличие или отсутствие тока или напряжения в части схемы, намагничивание магнитного материала в том либо в другом направлении и т. д. Именно это обстоятельство и обусловило рождение идеи — использовать в вы- числительных машинах систему счисления, построенную на основе числа 2, или двоичную систему счисления. Тем не менее различают два типа машин. Одни работают в чисто двоичной системе, т. е. оперируют с числами, выраженными в двоичной системе.^ причем оператор может игнорировать это об- стоятельство— необходим просто автоматический перевод дан- ных, представленных в десятичной системе, в их эквивалент в двоичной системе в момент ввода их в машину и обратное преоб- разование во время извлечения результата. Другие машины, на- против, работают в десятичной системе, и тогда последователь- ность цифр в числах, с которыми Ъни оперируют, представляется в двоичной системе или по крайней мере эти машины использу- ют устройства, двоичные по своей основе. 13
Для простоты будем считать, что изучаемая нами машину работает в чисто двоичной системе. В десятичной системе счисления последовательные цифры лю бого числа имеют весовые коэффициенты, представляющие собо| степени 10, возрастающие справа налево. Таким образом, числе 1 957 представляется следующим образом: 1 957 == 7 X (Ю)о + 5 X (10)1 + 9 X (Ю)3 + 1 X (Ю)8. Двоичная система располагает только двумя цифрами: 0 и 1 Число, выраженное в двоичной системе, представляется в вид< последовательности степеней 2: 1, 2, 4, 8, 16, 32, 64 и т. д. Стале быть, двоичное число 1101 имеет смысл 1 X (2)о + 0 X (2)1 + 1 X (2)2+1 Х(2)8 и соответствует, следовательно, числу в десятичной системе: 1 4.44-8 = 13. Табл. 1 содержит перечень 16 первых двоичных чисел и их !десятич ные эквиваленты. Таблица 1 Число в десятичной системе Код в двоичной системе Условное обозначение 8 4 2 1 8 4 2 1 цы в нем чередуются через каждый шаг. Следующий столбец со- держит попеременно пару 0 и пару 1. Третий столбец справа об- разован из групп по четыре 0 и по четыре 1. Наконец, левый столбец содержит последовательно группу из восьми 0 и группу из восьми 1. Число цифр каждой группы соответствует весу дан- ного разряда. Эта периодичность условно представлена в таблице линиями и пропусками (крайние правые, колонки). Линия соответ- ствует 1, а пропуск — 0. В общем виде числа, заключенные между 0 и (2 —1) вклю- чительно, можно выразить посредством N двоичных цифр. Точно так же и и десятичных цифр позволяют записать все числа от 0 до (10л—1) включительно.
Если наибольшее число из 7V двоичных чисел равно наиболь- шему числу из п десятичных чисел, то мы сможем записать: 2W— 1 = 10я—1 , откуда- N logic 2 = п. Следовательно, требуется приблизительно в 3,3 раза больше дво- ичных цифр, чем десятичных, чтобы выразить одно и то же число. В частности, 10 двоичных цифр обладают емкостью, несколько большей чем емкость 3 десятичных цифр, поскольку 210 = 1 024. ПЕРЕВОД ИЗ ДЕСЯТИЧНОЙ СИСТЕМЫ В ДВОИЧНУЮ Изучим теперь, как можно перевести число, выраженное в десятичной системе, в двоичную систему. Сначала посмотрим, что мы сделали для выделения различных цифр десятичного числа 1 957, начиная с разряда единиц. Разделим это число на 10: 1 957 = 10 X 195 + 7. Остаток 7 представляет разряд единиц. Разделим снова частное на 10: 195=10X19 + 5. Остаток 5 относится к разряду десятков. Наконец, остаток и част- ное последнего деления на 10 выражают соответственно разряды сотен и тысяч: 19= 10 X 1 +9. Таким же образом, посредством деления на 2 легко образуем в приведенном ниже примере двоичный эквивалент десятичного числа 59: 59 = 2 X 29 + / ; 7 = 2x3 + /; 29 = 2 X 14 + /; 3 = 2X1 + /. 14 = 2X7 + 9; Следовательно, двоичный эквивалент числа 59 запишется как 11011 Проверим, правильно ли это: 1 +2 + 8+ 16 + 32 = 59. Ручной перевод числа из десятичной системы в двоичную значительно ускоряется введением промежуточной восьмеричной системы, т. е. системы с основанием 8. В самом деле, основание этой системы равно как раз третьей степени числа 2 и двоичный эквивалент числа, выраженного в восьмеричной системе, легко получается последовательной записью двоичных эквивалентов каждой из цифр числа, записанных тремя двоичными разрядами. Очевидно что такой перевод легко осуществляется в уме. Следо- вательно, двоичный эквивалент восьмеричного числа 354 запишет- ся как ОН 101 100 С другой стороны, восьмеричный эквивалент какого-либо числа, записанного в двоичной системе, получается разделением цифр числа в группы по три, начиная справа, и записью эквивалентов каждой из этих групп в восьмеричной системе (к тому же одина- ковых с их эквивалентами в десятичной системе). Что касается перевода из десятичной системы в восьмеричную, то он легко осуществляется последовательным делением на 8. Применим эти 15
соображения для перевода числа 1 957, записанного в десятичной системе, в двоичную систему. Сначала найдем его восьмеричное представление: 1 957 = X 244 + 5\ 244 = 8 X 30 + 4\ 30 = 8X3+6. Следовательно, восьмеричное представление числа 1 957 запишется как число 3645 Оно легко переводится в двоичное число 011 ПО 100 101. Теперь проверим, что 3 645 действительно является восьмеричным представлением десятичного числа 1957: 5 + 4 X 8 + 6 X (8)2 + 3 X (8)« = 1 957. Точно так же двоичное представление дробного числа, запи- санного в Десятичной системе, вычисляется последовательным ум- ножением на 2. Целые части последовательных произведений со- ответствуют последовательности цифр двоичного представления дробного числа. Определим, например, двоичное представление числа 0,58: 0,58X2 = 7,16; 0,16X2 = 6,32; 0,32 X 2 = 6,64; 0,64X2 = 7,28; 0,28 X 2 = 6,56; 0,56X2 = 7,12. Отсюда результат: 0,100101. В результате умножения на 8 получается таким же образом восьмеричное представление дробного числа, записанного в деся- тичной системе. Например, для десятичного числа 0,583: 0,583 X 8 = 4,644; 0,664X8 = 5,312; 0,312X8 = 2,496. Отсюда получается восьмеричное представление 0,452, двоичный эквивалент которого можно записать сразу: 0,100101010. Таким образом, видно, что если мы вправе менять основание нашей системы счисления, то лучше выбрать в качестве этого ос- нования 8, а никоим образом не 12. Основание 12 не дает абсо- лютно никакого преимущества, разве только облегчает расчеты в. уме. И наоборот, выбор в качестве основания 8 значительно уп- рощает расчеты, а иногда и отдельные устройства автоматиче- ских вычислительных машин, поскольку в этом случае легко обес- печивается последовательное вычисление двоичного представления каждой цифры. 16
СЛОЖЕНИЕ ЦИФР В ДВОИЧНОЙ СИСТЕМЕ, ОСНОВНЫЕ ЛОГИЧЕСКИЕ ОПЕРАЦИИ Таблица сложения имеет в двоичной форму, а именно: системе весьма простую При сложении двух двоичных чисел система запоминания «в уме» идентична той, к которой мы привыкли, применяя десятич- ную систему счисления, таким образом 110 1 + 10 11 110 0 0 Займемся сначала сложением двух цифр в двоичной системе, обозначив их а и Ь. Обозначим через S цифру наименьшего раз- ряда суммы, а через R— цифру переноса в старший разряд. Таб- лица сложения, приведенная выше, дает нам возможность со- ставить следующую таблицу для четырех возможных комбина- ций значений 0 и 1 цифр а и Ь: Мы сразу замечаем, что /?=1, если а и b одновременно равны 1. Мы замечаем также, что значение R равно обычному произве- дению а и Ь, и, следовательно, мы можем записать: R = а-Ь (1) а а-Ь 0 0 0 1 1 0 1 1 0 о о 1 17
Заметим, не останавливаясь на подробностях, что эта операция «совпадения» соответствует логической операции «пересечения»1. Значение наименьшего разряда суммы S равно 1, если а или Ь, но не обе сразу, равны 1. Это операция «или исключающее», называемая еще «дилемма»: одно или другое, но не оба. Она со- ответствует тому, что в арифметике называют «сумма по модулю 2», т. е. остаток от деления суммы на 2. Эта операция записыва- ется как S = a©J. (2) Операцию сложения по модулю 2 удобно выразить с помощью операции конъюнкции («И»), определенной выше, и двух других элементарных логических операций: отрицания или дополнения и дизъюнкции («ИЛИ» включающее). «Отрицание» или «дополнение», которое обозначается чертой сверху, определяется очень просто с помощью следующей таблицы (читают «НЕ а»): О 1 1 О Операция «дизъюнкция» обозначается символом «V» и задается таблицей: a b a v Ъ ООО О 1 1 1 0 1 1 1 1 (aVb) равно нулю, только когда а и b одновременно равны нулю. Отрицание (а^Ь) эквивалентно конъюнкции («И») отрицаний а и Ь: ____ а\/Ь — а • Ь. Точно так же, если мы обратимся к конъюнкции, мы увидим, что ab равно нулю, если или а, или Ь, или оба равны нулю. Другими словами, отрицание ab эквивалентно дизъюнкции («ИЛИ») отрица- ний а и b аЬ = a v Ь. Возвратимся теперь к выражению для S. Мы можем записать его двумя различными способами с помощью определенных выше 1 В отечественной литературе чаще применяют название конъ- юнкция или функция «И» (Прим, ред.). 18
операций. Прежде всего мы видим, что если о«1 и 6=0, если а «О и b «в 1 (только а или только b)t что записывается как 5 = а-Ь V а- Ь. (3) Очевидно, что оба члена этого выражения не могут одновременно принять значения 1. Но мы снова можем сказать- 5=1, если а или Ь равны 1, но не а и 6, и это запишется как S= (а V />) (а^) • (4) Легко обнаружить равнозначность этих двух выражений. Заменим во втором отрицание а • b его выражением, полученным выше: S = (a v b) (a v b). (5) Так как для функций «И» и «ИЛИ» справедливы переместитель- ный и сочетательный законы, можно раскрыть скобки и написать: 5 = аа V ЪЪ V cib v ab . Очевидно, что а-а = 0 и b'b = О, поскольку двоичная переменная не может быть равна одновремен- но нулю и единице. Не менее очевидно, что в общем виде О 7 х = х*. Можно, следовательно, исключить два члена а • а и b • Ъ в приве- денном выше выражении и сразу получить окончательный резуль- тат. В качестве упражнения подвергнем обратному преобразова- нию выражение (3), представив его теперь в форме конъюнкции дизъюнкций: ab V Ъъ = (a v a) (b V 7) (а V b) (a v &) . Очевидно, что а V а= 1 и b v = 1 , поскольку двоичная переменная обязательно равна или 0, или 1. С другой стороны, не менее очевидно, что в общем виде 1 -X = X. Следовательно, в вышеприведенном выражении мы можем исклю- чить две скобки (а V с) и (Ь V Ь) и мы, таким образом, снова по- лучаем выражение (5), эквивалентное (4). ПЕРЕКЛЮЧАТЕЛЬНЫЕ СХЕМЫ НА ЭЛЕКТРОМАГНИТНЫХ РЕЛЕ Покажем теперь, как соответствующее включение контактов электромагнитных реле позволяет очень легко осуществлять рас- смотренные выше логические операции. Обмотку возбуждения реле * Видно, что операция V сравнима с операцией «+>, за исклю чением того, что IV 1 = 1. 19
мы будем обозначать строчной буквой, а соответствующей пропис- ной буквой будем обозначать контакты1 этого же реле. Рассмотрим сначала^ показанный на рис* 2, а нормально открытый (т. е. разо- мкнутый, когда обмотка реле обесточена, и замкнутый» когда она возбуждена) контакт. Если такой контакт управляет возбуждением обмотки b второго реле, то эта обмотка будет возбуждена одно- временно с первой: это — опера- ция «тождества»: b = а. Рассмотрим теперь нормально за- крытый (т. е. замкнутый, когда обмотка реле обесточена, и наобо' рот) контакт (рис. 2, б). Если этот контакт управляет возбуж- дением обмотки с реле с, то эта обмотка будет возбуждена, когда обмотка реле а обесточена, и на- оборот. Это соответствует опера- ции «дополнения» или «отрицания» с = а. Рис. 2. Схемы эквивалентности и дополнения на электромаг- нитных реле. Вот почему в схемах нормально закрытые контакты обозначаются большой буквой с чертой сверху. Одно и то же реле может иметь большое число нормально открытых и нормально закрытых контактов, и именно в этом пре- имущество релейных схем по от- ношению к эквивалентным им электронным. В частности, если имеется необходимость получить в одной схеме некоторую перемен- ную и ее отрицание, используют инвертор, показанный на рис. 2,в. Операция конъюнкции легко следовательно двух нормально осуществляется открытых контактов включением по- А и В (рис. 3): реле г возбуждено, только когда оба контакта одновременно за- мкнуты, другими словами, если обмотки реле а и b одновременно возбуждены: г = ab — А-В. Следовательно, такая схема обеспечивает перенос при сложении 1 В наших схемах контакты всегда представлены в их рабочих состояниях, нормально открытые — разомкнутыми и нормально за- крытые — замкнутыми. Кроме того, когда показаны обмотки, их по- ложение не связано с соответствующими контактами; понятно, что когда обмотка реле возбуждена, его нормально открытые контакты замыкаются, в то время как нормально закрытые контакты раз- мыкаются. 20
Рис. 3. Схема конъюнкции («И») Рис 4 Схема дизъюнкции («ИЛИ») s-abvab Рис. 5. Схема суммирования по модулю 2 21
Двух Двоичных цифр. Точно так же Дизъюнкция («ИЛИ») получает* ся в результате параллельного включения двух нормально откры- тых контактов А нВ (рис. 4). Достаточно, чтобы один из двух кон- Рис. 6. Другая схема суммирования по модулю 2. Рис. 7. Другая схема суммирования по модулю 2. тактов был замкнут (обмотка одного из двух реле возбуждена), чтобы обмотка реле с была также возбуждена. Рассмотрим теперь операцию сложения по модулю 2, которая соответствует формированию цифр суммы двух двоичньос чисел. Сначала используем выражение (3) (рис. 5,а). Член а*Ь полу- чается последовательным включением нормально открытого А и 22
нормально закрытого В контактов; точно так же член а*Ъ полу- чается в результате включения последовательно нормально за* крытого контакта А и нормально открытого контакта В. Нако- нец, полное выражение В получится при параллельном включении этих двух схем. Схема упрощается применением двух инверторов (рис. 5,6). Очевидно, что цепь замкнута и обмотка реле В возбуж- дена, если только одно из двух реле возбуждено. Воспользуемся теперь выражением (5), которому соответствует рис. 6, а. В этом случае можно снова выгодно использовать два инвертора (рис. 6,6). Но эта схема не обладает никакими достоин- ствами по сравнению со схемой на рис. 5,6. Наконец, попытаемся реализовать формулу (4). Чтобы это сде- лать, нам необходимо одно дополнительное реле с, снабженное од- ним нормально закрытым контактом и возбуждаемое при а*Ь (рис. 7). Однако эта схема хуже двух предыдущих. ДВОИЧНЫЙ СУММАТОР Мы видели, как строится релейная схема, способная выполнить сложение двух двоичных цифр. Однако такая схема не является двоичным сумматором. Действительно, перенос, получающийся при сложении цифр от предыдущего разряда, может добавляться к сумме двоичных цифр каждого данного разряда. Таким образом, получаются уже 3 двоичные цифры, которые должны быть сложены. Сумматор на двух полусумматорах. Первое ре- шение состоит в осуществлении операции в два этапа (рис. 8, а). Для двоичного разряда п начинают со сложения двух цифр ап и Ьп этого разряда: здесь получается перенос ап - Ъп и сумма по мо- дулю 2 будет: сп = ап СВ Ьп ~ anbnV ап Ьп . Затем на втором этапе добавляют к сумме перенос г , полу-' чающийся от предшествующего более низкого разряда1. Так полу- чаются окончательный результат Sn и второй перенос (on(J)^n) Gi-t-1 Видно, что два переноса взаимно исключаются, потому что нельзя одновременно иметь ап * Ьп (ап и Ьп) и ап @Ьп(ап или Ъп, но не обе одновременно). Стало быть, их можно объединять бе? предосторожностей. Природа этой операции оправдывает название полусумматор, данное схеме сложения двух двоичных цифр, поскольку необходи- 1 Видно, что мы нумеруем последовательность цифр тем же номером слева направо, т. е. в направлении, в котором мы обычно пишем числа. Таким образом, при этом условии порядок индикации обратен порядку нумерации разрядов. Следовательно, перенос является результатом предыдущего разряда и, нами рассматривае- мого. Это может быть и не очень логично, но нужно выбирать между этой нелогичностью, соответствующей нашим привычкам, или логикой, соответствующей нумерации цифр в порядке, обратном их обычной записи, что -немногим более удобно. 23
мо использовать две подобные схемы для построения полного сум- матора. На рис. 8,6 представлена принципиальная релейная схема, осу- ществляющая эту операцию. Эта очень простая схема обладает тем не менее серьезным неудобством. В релейных схемах стараются всеми возможными способами добиться такого положения, когда Рис. 8. все контакты принимают необходимые состояния до подключения к ним тока. Это возможно для реле ап и Ъп , но не для реле пере- носа rrt_|_p Перенос от разряда п может быть правильным только после того, как предыдущий разряд принял определенное значение. Он в свою очередь может изменять перенос в последующий разряд и т. д. В наиболее неблагоприятном случае перенос, образованный от сложения двух цифр наименьших разрядов, может распростра- ниться до старших разрядов: +000001 1000000 24
Переключение контактов реле происходит не мгновенно. Исключая, таким образом, особые положения, нужно предусмотреть при сло- жении двух двоичных чисел из п цифр промежуток времени, соот- ветствующий срабатыванию п последовательных реле. Сумматор с тремя входами. Посмотрим теперь, как можно устранить этот недостаток с помощью схемы, в которой сигнал переноса представлен не состоянием реле, а замыканием или размыканием цепи переноса, связывающей между собой отдельные каскады. Общая схема такого сумматора показана на рис. 9. Два последовательных каскада объединены двумя линиями R и /?. Од- Рис. 9. Принцип действия двоичного суммато- ра на реле с одновременным запоминанием. на из них, смотря по тому, имеется ли необходимость в переносе, находится под напряжением. Начнем с составления таблицы различных возможных комби- наций трех цифр ап, Ъ* и г , обращая основное внимание на наличие или отсутствие гл_|_|8 а п Ьп п Гп 0 0 0 0 0 0 1 0 1 0 1 0 0 1 0 1 1 0 0 1 0 0 1 1 0 0 1 1 0 1 1 0 1 0 1 I 1 1 1 1 Изучение таблицы позволяет нам сразу написать: sn = rn+i(anbn ьп) v 7„+I (anbn vanbn); (6) 25
В выражении (7) можно заметить, что значения гп в четвер- той и восьмой строках таблицы определяются членом ап Ьп , Точно так же член ап Ьп выражения (8) определяет значения гп в пер- вой и пятой строках. Чтобы убедиться в этом, запишем, например, выражение, со- ставленное для гп , читая таблицу строка за строкой: гп = аЛ 2>+1 ЬП гп+\ V ап ъп rn+x \j'anbn гп+У . Яп Рис. 10. Каскад двоичного сложения на реле. Перегруппируем члены: тп = апьп( гп+! V V r„+I ( ап bn V ап Ьп) . Подставляя сюда очевидное соотношение г л-Н V = 1. получаем выражение (7). 26
Отметим, наконец, что перенос в самый младший разряд всег- да равен нулю. Итак, если мы оперируем над числом из W двоич- ных цифр, мы запишем: гАН-1 = 0» гАН-1 = 1 • На рис. 10 показан каскад двоичного сумматора на реле. Эта схе- ма, являясь реализацией уравнений (6)—(8), тем не менее дает экономию в числе операций, поскольку сигнал Sn может быть по- лучен с помощью одного единственного инвертора Ьп. Хорошо а) Хорошо б) Плохо Рис. И. Условные обозначения: два провода, пере- секающиеся и не имеющие электрического контак- та (а); четырехполюсное соединение (б). Обозначе- ние (в) не используется в этой книге. Повторим, что в этой схеме значение 1 или 0 переменных и г личию соответствует не состоянию контактов реле, а на- или отсутствию тока в соответствующих линиях R и передающих сигнал переноса, полученный в каскаде. Именно состояние контактов этого каскада, так же как и характер переноса, который он получает с предшествующего ему каскада, определяют, какая из этих двух линий находится под напряжением: , если имеется новый перенос, и /?л+1 —в противоположном случае. В такой схеме значения всех сигналов переноса и, следовательно, сигналов суммы устанавливаются сразу после того, как реле а и Ь всех каскадов принимают соответству- ющие состояния. - Схемы, реализующие члены в скобках при или , питаются, следовательно, от линий Яп_|_1 или , в то время как схемы, соответствующие членам ап Ъп и ап Ъп, подключены прямо к зажиму источника питания, предполагаемому здесь поло- жительным. Сделаем еще одно замечание относительно схемы рис. 10. Мы не отметили на ней черными кружками точки соединения проводов. Мы не будем делать это также и в дальнейшем, ибо очень легко забыть одну или две точки на репродукции чертежа, который станет тогда непонятным. Такой способ начертания схемы приводит к двусмысленности только в случаях пересечения проводов. На 27
рис. 11 показаны два провода, пересекающиеся без контакта (рис. 11, а), и соединение, представленное согласно принятому и, к сожалению, нормализованному обозначению (рис. 11, в). С нашей стороны мы запретим себе пользование обозначением по рис. И, в и будем представлять соединение четырех проводов всегда так, как показано на рис. 11, 6. Использование точек стано- вится тогда совершенно ненужным. Хочется высказать пожелание, чтобы правила, описанные выше, в скором времени были изме- нены. ВЫЧИТАНИЕ В действительности проблема вычитания сводится к проблеме представления отрицательных чисел. Здесь можно предложить два разных способа. Первый из них, называемый «чисто алгебраическим представлением», заключается в выражении абсолютного значения и знака обычным способом. Знак, как и цифры, является двоичной переменной. Этот способ очень удобен для операций умножения и деления, поскольку достаточно оперировать с произведением или с частным абсолютных значений и добавлять знаки обычным об- разом. Напротив, он неудобен для алгебраического сложения или вычитания, так как нужно начинать со сравнения двух абсолютных величин, чтобы знать, какое из двух чисел должно вычитаться из другого. Второй способ, называемый «смешанным алгебраическим пред- ставлением», использует дополнительный код, и это вынуждает нас прежде всего уточнить положение запятой. Положение запятой может быть выбрано произвольно.. Тем не менее по различным причинам, которые будут ясны из последующе- го, удобно представлять себе ее справа от старшего двоичного раз- ряда, другими словами, оперировать с абсолютными значениями чисел, меньших единицы. Это, очевидно, приводит к выбору под- ходящего масштаба для переменных исследуемой задачи. Однако мы увидим в дальнейшем, что это неудобство может быть преодо- лено применением так называемой «плавающей запятой». Для уяснения сути ограничимся 5-разрядными двоичными чис- лами. Пусть, например, имеется число 0,1101. Веса цифр, расположенных справа от запятой, представляют собой последовательность отрицательных степеней 2: JL. _L. JL. 2_ 2 ’ 4 * I ; 16 или иначе 8 4 . 2 _1_ 16 * 16 ; 16 ’ 16 Таким образом, записанное выше является двоичным эквивалентом 13/16.
Дополнительный код: вычитание. Рассмотрим снова число 0,1101 и прибавим к нему двоичный эквивалент 2: 0,1101 +10,0000 10,1101 Машина не учитывает второй двоичный разряд слева от запятой (разряд 2) и, следовательно, исходное число не претерпевает ка- ких-либо изменений после этой операции. Выполним теперь операцию (а—&), где а и Ъ — числа, меньшие единицы. Результат этой операции в двоичной системе счисления будет представляться так же, как и результат операции: 2 + (о — Ь) или а + (2 — Ь). Отсюда мы видим, что для вычитания числа b из числа а достаточ- но прибавить к числу а дополнение до 2 числа Ь. Возникает во- прос: как удобнее получить это дополнение. Исследуем дополнение числа 0,1101 до 2 или его двоичного эквивалента 13/16: 10,0000 — 0,1101 1,0011 Последнее число является двоичным эквивалентом числа 19/16, ко- торое дополняет число 13/16 до 2. Цифра слева от запятой харак- теризует знак: 0 для положительного числа, 1 —• для дополнения положительного числа до 2, которое служит нам для представле- ния того же числа с измененным знаком. Вместо дополнения до 2 найдем дополнение до наибольшего числа, которое мы смогли бы выразить теми же пятью двоичными цифрами, т. е. до 1,1111. Это последнее число является двоичным эквивалентом числа 2— “—или в двоичной записи: 16 10,0000 — 0,0001 1,1111 Итак, найдем дополнение числа 0,1101 до 1,1111 1,1111 — 0,1101 1,0010 Этот дополнительный код назван «дополнительным ограниченным»1 в противоположность «дополнительному истинному» или дополни- 1 В отечественной литературе такой код получил (название «об- ратный». Этим словом мы будем пользоваться в дальнейшем. (Прим, ред:) 29
тельному до 2. Образовать его обычно легче, поскольку для этого нужно просто заменить 0 на 1 и наоборот. После сказанного ясно, что дополнительный код образуется прибавлением к обратному коду одного младшего разряда: К. О. 0,1101 1,0010 + 0,0001 К. Д. 0,1101 1,0011 Проще можно сказать, что дополнительный код получается после- довательным инвертированием цифр, начиная с высшего разряда (т. е. слева в нормальном написании) и вплоть до самого младше- го значащего разряда, который остается неизменным. Применим эти соображения для образования двоичного кода разности / 13 7 \ ( — — — )• Двоичный код 7/16 запишется, как 0,0111. Образуем ' 16 16 / его дополнительный код с помощью обратного кода: К. О. 0,0111: 1,1000 +0,0001 К. Д. 0,0111: 1,1001 Прибавим полученное число к двоичному коду числа 13/16: 0,1101 + 1,1001 10,0110 Так как мы не учитываем второй двоичный разряд слева от запя- той, результат будет равен 0,0110. Это и есть двоичный код раз- ности 6/16. /7 13 \ Осуществим теперь «обратное» вычитание!-^-— Для 9ТО' го прибавим к двоичному коду числа 7/16 дополнение к 13/16, ко- торое мы образовали выше: 0,0111 + 0,0011 1,1010 Единица слева от запятой характеризует отрицательное число, аб- солютное значение которого мы найдем, определяя его дополни- тельный код: К. О. 1,1010: 0,0101 + 0,0001 К. Д. • 1,1010: 0,0110 Легко находим искомое абсолютное значение 6/16. 30
Рис. 12 определяет соответствие между отрицательными чис- лами и дополнениями до 2 их абсолютных значений. Пять двоичных разрядов позволяют нам представить все числа с четырьмя цифра- ми после запятой, заключенные между 0 и 1,1111(2 — — \ 16 делили это множество чисел на две части: часть, заключенную меж ду 0 и 0,1111(1—Д тельных чисел, .Мы по ’ , которую мы предназначаем для положи- 1о Д меньших единицы, и часть, заключенную между Рис. 12. Соответствие между отрицательными чис- лами (включая — 1) и их дополнениями до 2 Рис. *13. Другое возможное соответствие между отрицательными числами (—1г исключено) и их до- полнениями до 2. I и 1,1111, образующую дополнение абсолютных значений отрица- тельных чисел, заключенных между —0,0001 и —1, до 2. В этой системе «—1* представляется, следовательно, числом 1,0000, которое, очевидно, является его дополнением до 2. Цифра «1» слева от запятой, которая, как мы отметили, характеризует отрицательные числа, остается, таким образом, без изменения. Но число «+1> не может быть представлено, наибольшее представи- (15 \ — 1 ’ Если мы должны представить число «+1», нужно установить соответствие, схематизированное на рис. 13, на котором число *+1» записано как 1,0000. Но тогда число «—1» больше не будет 31
представимым, наименьшее отрицательное число —0,1111 представ- ляется как 1,0001. Последняя система неудобна, так как вводит ис- ключения в интерпретацию цифр слева от запятой. ДВОИЧНЫЙ СУММАТОР-ВЫЧИТАТЕЛЬ НА РЕЛЕ (ipwc. 14) Сказанное выше позволяет нам легко получить разность а—b двух чисел с цифрами ап и Ьп. Эта разность получается, как мы это только что видели, прибавлением к а дополнения Ь. Но можно также (это более просто с технической точки зрения) прибавить к а обратный код b и к полученному результату прибавить единицу младшего разряда. Эта последняя операция получается автомати- чески, если при сложении сообщить сигналу переноса в младший разряд значение 1 вместо 0 [см. уравнение (9)]. Итак, если мы оперируем с числами из 7V двоичных цифр, мы будем иметь для вычитания1 * *: ___ rN_|_i = l, = (10) Что касается образования обратного кода, то он__легко полу- чается для каждого двоичного разряда подстановкой Ьп вместо ЬП1 и наоборот, в соответствии с уравнениями (6), (7) и (8), откуда для разряда = Gi+1 ( &п bn V ап ^п) V гл4-1 ( ап bn V ап » (11) г« = anbn V 'п+1 ( ап bn V «Л *п) : <12) гп ~ ап V/n+i ( ап t>n V ап ^п) • (13) Образование обратного кода достигается с помощью подклю- чения трех дополнительных инверторов. Нормально открытые кон- такты инвертора вычитания связываются с нормально закрытыми контактами инвертора сумматора, и наоборот. Соответствующие схемы представлены на рис. 14. Коммутация между выходами сум- матора и вычитателя обеспечивается реле ас, обмотка которого должна быть возбуждена при вычитании и обесточена при сложе- нии. Обмотка этого реле будет возбуждаться в надлежащий мо- мент от дешифратора команд. Инвертор Ас коммутирует операции для младшего разряда или разряда ранга N в соответствии с урав- нением (6) для сложения и уравнением (10) для вычитания. В каскаде старшего разряда (разряда ранга 0) цепи образо- вания переноса могут выть упразднены. Тем не менее может быть выгодным использовать линию для приведения в действие схе- мы сигнализации (аварийной схемы), которая показывает, что ем- кость устройства превышена и автоматически останавливает ма- шину. Другой вид сумматора-вычитателя. При ис- пользовании реле и диодов получается значительно более простая схема, показанная на рис. 15. Восемь возможных комбинаций зна- 1 Точнее, коррекция младшего разряда суммы необходима в тех случаях, когда второе слагаемое имеет отрицательный знак. (Прим, ред.) 32
co I I Рис. 14. Арифметическое устройство на электромагнитных реле. схема сложения;--------схема вычитания (управляемая А^);---------вентиль (управляемый А? , см. да- лее); А и А — управление сдвигом (см. далее). DD DCr co
чений трех переменных а , Ь ‘иг,, приведены в таблице на п п л4~1 этом рисунке. Для каждой из комбинаций возбуждается одна из восьми вертикальных шин, пронумерованных на рис. 15 от 0 до 7, как и строки в таблице. Рассмотрим, например, комбинацию 4. Из таблицы видно, что при этой комбинации должны быть под на- пряжением /?+ и /?“. Ясно, что связь между шинами не мо- жет осуществляться простым соединением точек, так как тогда ток может распространиться по одной из горизонтальных шин до дру- гой вертикальной шины и по ней к другой горизонтальной, которая ошибочно окажется под напряжением. Однако можно осуществить соединения, указываемые таблицей с помощью диодов, пропускаю- щих ток только в направлении от вертикальных шин к горизон- тальным. Результаты сложения или вычитания в соответствии с сиг- налами дешифратора команд коммутируются контактами реле ас- Отсюда видно, что «матричная» схема «коммутации» или «кодирова- ния» имеет большие преимущества. 34
РЕГИСТРЫ ПАМЯТИ; ПЕРЕДАЧИ Выше мы рассмотрели способы построения на реле основного вычислительного блока — арифметического устройства, способного выполнять операции сложения и вычитания, на базе которых мож- но осуществить все остальные арифметические операции. Но нужно также иметь возможность временно хранить числа а и b в специ- альных устройствах, способных надлежащим образом выдавать управляющие сигналы на реле ап и Ьп последовательных каскадов. Аналогичное устройство должно быть предусмотрено также для за- поминания результатов вычисления. Итак, мы видим, что появляется необходимость в новой опе- рации— операции запоминания. Будем называть «регистром» уст- ройство, способное хранить УУ-разрядное двоичное число. Состояние О Команда на сброс Рис. 16. Условное обозначение запоминаю- щей ячейки. Такой регистр должен состоять из узлов или двоичных ячеек, обладающих возможностью принимать одно из двух определенных состояний (и только двух), характеризующих соответственно циф- ры 0 и 1. В дальнейшем мы перейдем к обзору различных физи- ческих явлений, позволяющих осуществлять подобную элементар- ную память. Пока будем считать, что существует некоторый элемент, символически изображенный на рис. 16 в виде комбина- ции из двух частей, способных принимать либо состояние «+», либо состояние «—», причем состояние одной части всегда проти- воположно состоянию другой. Состояние «-----F», например, будет представлять цифру 0, а состояние «4-----»— цифру 1. Если пи- тать обмотку реле выходным сигналом левой части такого элемен- та при состоянии 1, это реле будет возбуждено, а при состоя- нии 0 — обесточено. Кроме того, каждая часть обладает входом для управляющего сигнала. Допустим, что для того, чтобы пере- вести этот элемент из состояния 0 в. состояние 1, достаточно по- дать на короткое время на вход его левой части положительный потенциал («4-»). Наоборот, переход из 1 в 0 осуществляется подачей на этот зажим отрицательного потенциала («—»). Тот же результат будет получен при противоположном действии на пра- вую часть. Очевидно, отсутствие подобных манипуляций оставляет систему в неопределенном состоянии. Принцип действия описанного элемента аналогичен принципу действия электронного триггера, состоящего из двух ламп, соеди- ненных так, что система обладает двумя стабильными состояния- 3* 35
ми, в каждом из которых одна лампа проводит в то время, когда другая заперта. Система меняет свое состояние, если положитель- ный импульс подается на сетку запертой лампы или отрицатель- ный — на сетку проводящей лампы. Но не будем углубляться в электронику и вернемся к нашей схематической модели. Для передачи числа с какого-либо регистра Ri на регистр R2 (рис. 17) достаточно замкнуть на мгновение кон- такты С, управляемые реле с. Очевидно, что передача осуществля- ется только в направлении стрелок и что, следовательно, состояние регистра /?2 изменяется под воздействием регистра Ri. Примени- Рис. 17. Передача между двумя реги- страми замыканием контактов С. тельно к этой операции говорят, что содержимое регистра R\ «считывается» и «записывается» в регистре R2. Итак, видно, что основные свойства регистра состоят, с одной стороны, в способ- ности заменять свое содержимое на новое при записи и с другей, при считывании сохранять его неизменным. В автоматической цифровой вычислительной машине исходные данные задачи, так же как и промежуточные результаты, хранят- ся в запоминающем устройстве, часто содержащем весьма большое число регистров — несколько десятков тысяч, например. Регистры не соединены между собой непосредственно. Они связываются с регистрами арифметического устройства с помощью набора шин ₽ (рис. 18), количество которых равно количеству цифр в рассмат- риваемом числе. Таким образом, для передачи числа из регистра/? на регистр А нужно замкнуть контакты RL и АЕ, вызывая тем самым соответственно считывание из R и запись в А. Обратное соединение получается в результате замыкания контактов считы- вания Al и записи Re. На рисунке символом (Л) обозначено содержимое регистра А. Запоминающая ячейка на реле. На рис. 19 в качестве примера показано, как можно построить запоминающую ячейку с помощью двух реле р и q, одно из которых р имеет две обмотки р\ и р2. Шина, которая ему соответствует, состоит в этом случае из двух проводов, один из которых находится под положительным 36
напряжением, а другой —под отрицательным. Положение, представ- ленное на рис. 19, соответствует нулевому состоянию шины. Таким образом, если замкнуть контакт считывания L, шина будет в том же состоянии, что и реле р, не изменяя состояния самого реле. Если замкнуть контакт записи Е, в то время, когда шина находится в со- стоянии 0, обмотка реле q оказывается возбужденной, контакт Q Al=1 rl = o al=o R^ 1 1 (A)-^K RC = I f Af"' ) (R)~~A Рис. 18. Передача .между двумя регистрами по- средством набора шин. размыкается и реле р оказывается обесточенным, если оно было предварительно возбуждено. Наоборот, если шина находится в со- стоянии 1, реле р оказывается возбужденным по обмотке р\, и блоки- рующий контакт р2 замыкается. Контакт Q замкнут, поскольку ре- ле q не возбуждено. Обмотка р2 находится при этом под напряже- нием, и контакты р сохраняют свое состояние, противоположное показанному на рис. 19, после размыкания контакта записи Е. Устройство счетчика. Довольно часто оказывается необходимым заменять операцию 4 сложения двух чисел операцией сложения многих чисел или сальдирования. Предположим, что подоб- ный случай имеет место в нашей гипотетической машине. Накапли- 37
Pt Рис. 19 Запоминающая ячейка на реле. вающим счетчиком называется устройство, обладающее собст- венным регистром А, к содержимому которого прибавляются все поступающие по входным шинам числа. Таким образом, можно подсчитывать сумму последовательности чисел, посылая их одно за другим ла вход накапливающего счетчика. Начиная с этого момента, будем предполагать, что наша машина работает с 10-разряд- ными двоичными числами1, включая разряд слева от запя- той. Операция счета произво- дится в два приема '(рис. 20). В момент 6, когда зажим «+» сумматора-вычитателя нахо- дится под напряжением, содер- жимое регистра А и число, пе- редаваемое в этот момент ши- нами, формируются и записы- ваются в дополнительный ре- гистр А', так как контакты Xх тогда замкнуты. Затем в мо- мент t2, когда реле х' находит- ся под напряжением,^контакты Xх размыкаются, отсоединяя регистр Ах от схем счета, а контакты X' замыкаются, вызывая перенос содержимого А' в А. Питание реле к' осуществляется через контакт X, замыкаемый только для некото- рого числа определенных операций. Очевидно, контакты AL и АЕ позволяют в соответствующий момент считать содержимое регистра А или записать в него число, взятое из запоминающего устройства. Впервые на примере этой схемы мы сталкиваемся с последо- вательностью действий при выполнении одной операции. В даль- нейшем мы еще более убедимся в том, какую важную роль играет разделение циклов работы цифровых вычислительных машин на отдельные последовательные фазы. Организация запоминающего устройства (рис. 21). Предположим, например, что запоминающее устрой- ство состоит из 64 регистров по 10 ячеек каждый (рис. 21), пронумерованных от 0 до 63. Между прочим, такая емкость совер- шенно недостаточна для реальной вычислительной машины. Входы «считывание» и «запись» регистра с номером i могут быть связаны с шинами через контакты L/и Ер Эти контакты управляются об- мотками It и ер Для работы с таким запоминающим устройством необходимо обеспечить выбор данного регистра и осуществление операций считывания и записи. Для этого каждая пара обмоток li и et связана, с одной стороны, с одной из линий Si, выходящих из коммутатора запоминающего устройства, а с другой стороны — с .парой контактов ML и МЕ, общих для всех обмоток. Работа коммутатора, которую мы сейчас будем изучать, такова, что линия S/, соответствующая выбранным данным, должна находиться под 1 В реальных машинах числа, с которыми оперирует машина, содержат много десятков двоичных цифр. за
напряжением. В этот момент данные считываются либо записыва- ются, смотря по тому, замкнут ли контакт считывания , который замыкает цепь обмотки , или контакт записи МЕ, который замы- кает цепь обмотки е/. Состояние всех других элементов запо- минающего устройства остается неизменным. Коммутатор. Порядковый номер регистра в запоминающем устройстве называется его «адресом», другими словами, он опре- деляет его расположение в устройстве. Адрес, заключенный между Арифметический ' оператор Рис. 20. Общая схема арифметического устройства. 0 и (2^—1) выражается с помощью р двоичных цифр, которые можно записать в регистре из р ячеек, каждая из которых воз- действует на обмотку реле. В нашей гипотетической машине р = 6 (действительно, 2е = 64). Следовательно, наш регистр коммутатора содержит шесть ячеек, питающих шесть обмоток реле, обозначенных на рис. 23 от пц до mQ. В дальнейшем мы покажем основание для подобной нумерации. Для упрощения изучим работу коммутатора на восемь поло- жений от So до S7, управляемого тремя реле (/и0, и /п2), свя- занными с регистром, имеющим емкость три двоичные цифры (рис. 22). Работа коммутатора должна описываться восемью пе- реключательными функциями: So = т0 т1 m2; Si = /По тх т2; 39
S2 ~ niQ mY m2; S3 = mQ mi m2; S4 = mQ m-i m2; S5 = m0 mi m2; S6 = m0 mi m2; S7 = /no mi m2 . Левые части представляют собой состояния реле для каждого из состояний регистра, соответствующих числам от 0 до 7. Эта система уравнений реализуется, как это легко «проверить, пирамидой контактов, показанной на рис. 22. А Рис. 21. Запоминающее устройство. Замыкание одного из контактов МЕ или МЕ, управляемых дешифраторами, обе- спечивает соединение зажимов считывания или записи ячейки соответствующего регистра с выходом переключа- теля, находящимся под напряжением. 40
Действительно, контакты Мо могут быть общими для линий So — S3, а контакты Мо — для _линий S’4— S7. Также первый контакт Mj может быть общим для линий So и Sb а первый контакт М — для линий S2 и S3, между тем как второй контакт Afi может быть общим для линий S4 и S5, а вто- рой контакт Mi — общим для линий Se и S7. И наконец, оче- Рис. 22. Восьмиканальный дешифратор. Рис. 23. 64-канальный дешифратор и его за- поминающее устройство. видно, нужно столько же контактов, сколько имеется пар выход- ных шин. Тут мы видим первый пример уменьшения числа контак- тов, которое может быть достигнуто после систематического изучения системы переключательных функций, подобной системе, приведенной выше, и определяющей работу коммутатора. Из ска- занного ясно, как перейти к схеме из 6 реле с 64 выходами (рис. 23). Шесть реле, пронумерованных от 4 до 9, по причине, которая станет ясной из дальнейшего, питаются от специального регистра, назы- ваемого «регистром адресов», MS, в который предварительно записываются адреса, поступающие в коммутатор. 4—895 41
ПОНЯТИЯ КОДИРОВАНИЯ и ПРОГРАММИРОВАНИЯ Теперь мы располагаем простыми арифметическим и заломи* нающим устройствами. Мы умеем осуществить передачу в регистр А арифметического устройства числа, адрес которого записан в регистре MS замыканием контактов лЕ, арифметического устрой- ства и контактов М запоминающего устройства. Можно также передать содержимое регистра арифметического устройства в ре- гистр запоминающего устройства с адресом, обозначенным в MS, замыкая контакты AL<> и МЕ. Операция сложения числа, извлека- емого из запоминающего устройства, с содержимым регистра арифметического устройства требует замыкания контактов МЕ t которые соединяют выходы «считывание» избранного регистра с набором шин, и замыкания контакта X, который в свою очередь включает арифметическое устройство. Осуществление операции вычитания требует, кроме того, переключения контактов Ас ариф- метического устройства. Нам остается посмотреть, как и в какие моменты эти различ- ные операции производятся; другими словами, мы должны теперь изучить конструкцию устройств управления. Изучение кодирования и программирования позволит нам вы- делить те действия, которые должны осуществляться этими устрой- ствами. Вычислительная машина способна осуществить ограниченное количество элементарных операций, заданных заранее, каждая из которых соответствует выполнению данной команды. Перечень команд, который машина способна интерпретировать и выполнить, составляет ее словарь. Каждая команда обозначается порядковым номером, позволяющим ее опознать. Например, в двоичной систе- ме счисления число из четырех цифр позволяет определить одну из шестнадцати команд. Набор команд, соответствующий решению данной задачи, образует программу. Для удобства программиста, который составляет эту программу на листе бумаги, перед тем как передать ее в машину, каждой команде полезно сопоставить бук- ву, называемую часто «рабочей буквой». Можно рассматривать соответствующий порядковый номер1, как двоичный эквивалент этой буквы. Но указание кода операции недостаточно для выполнения эле- ментарной операции. Необходимо задать также адрес регистра запоминающего устройства, хранящего число, над которым будет выполняться операция. Полная команда состоит, следовательно, из кода операции и адреса, выраженных посредством их двоичных эквивалентов. Программист на листе бумаги обозначает каждое действие посредством буквы, таким же образом он пишет адрес в десятичной системе. Входные устройства машины будут выпол- нять перевод этих указаний в двоичную систему. Мы, таким обра- зом, видим, что в нашей релейной машине команда выражается 1 Двоичное число, обозначающее данную команду, получило название «кода операции». В дальнейшем мы будем пользоваться этим термином. (Прим, ред.) 42
с помощью 10 двоичных цифр: 4 для кода операции (разряды ОТ О до 3) и 6 — для адреса (разряды от 4 до 9). Теперь мы видим, почему мы обозначили цифрами 4—9 реле управления нашего ком- мутатора. В начале этого параграфа мы рассмотрели четыре элементар- ные операции, которые теперь полезно уточнить, придавая каждому коду операции его двоичный эквивалент: Д^(Д=сложение 0001): добавить содержимое регистра с ад- ресом п к содержимому регистра арифметического устройства и со- хранить в этом регистре полученную таким образом сумму. 5^(5=вычитание 0010): вычесть содержимое регистра с ад- ресом п из содержимого регистра арифметического устройства и сохранить разность в этом регистре. /?л(/?=замена ООП): заменить содержимое регистра арифме- тического устройства содержимым регистра запоминающего устрой- ства с адресом п. Гл(Г=передача 0100): заменить содержимое регистра с адресом п содержимым регистра арифметического устройства. Это очень простой перечень, который мы будем дополнять в дальнейшем новыми командами. Отметим при этом, что требуемые для выполнения операций числа должны определяться не числен- ными значениями, а только адресом в запоминающем устройстве. Дадим пример применения перечисленных команд. Предполо- жим, что мы хотим выполнить следующую операцию: а + b — с = d . Числа а, Ъ и с записаны предварительно, например в регистрах 20, 21 и 22. В дальнейшем мы будет обозначать содержимое регистра его адресом, заключенным в скобках. Если, кроме того, результат операции должен быть записан в регистре 23, то будет справедлива следующая запись: (20) + (21) — (22) -> 23. Это вычисление будет осуществлено выполнением следующей про- граммы, объясняемой строка за строкой: Команды Пояснения Сокращенно R 20 А 21 S 22 Т 23 Поместить (20) в регистр арифметиче- ского устройства .................. Сложить (21) с содержимым регистра арифметического устройства: обра- зование (20) + (21)................ Вычесть (22) из содержимого регистра арифметического устройства: образо- вание (20) + (21) — (22) . ...... Передать содержимое регистра ариф- метического устройства в регистр (23) (20) А (Д) + (21)-> А (Д) —(21)-> А (Д) 23 4* 43
Теперь необходимо выяснить, в каком виде команды этой програм- мы вводятся в машину. Чтобы работа была автоматической, перед началом выполнения программы команды помещаются в запоми- нающее устройство, например по адресам 0, 1, 2 и 3, а устройство управления обеспечит их последовательное выполнение в надлежа- щем порядке. Теперь мы понимаем, почему было введено условие, чтобы команды и числа содержали одно и то же число двоичных цифр (10 в данном случае). Само запоминающее устройство без помощи устройств управления не имеет средств для различения команд и чисел. Вот почему иногда дают общее название «слова» как числам, так и командам. Отметим еще, что рассмотренная выше система команд, в ко- торой каждая команда имеет только один адрес, называется по этой причине «одноадресной». В действительности четыре рассмот- ренные до сих пор операции выполняются над двумя числами с об- разованием одного результата. Адреса второго числа и результата неявно содержатся в редакции команды: в рассмотренных коман- дах это регистр арифметического устройства. Точно так же видно, что за исключением специальных случаев команды программы вы- полняются в порядке их записи в запоминающем устройстве. Мы увидим далее, что кроется за этим ограничением. Существуют также двухадресные системы команд, команды которых содержат указания адресов двух слов, и трехадресные системы команд, которые определяют, кроме того, адрес резуль- тата операции. С другой стороны, некоторые системы не преду- сматривают последовательного выполнения команд, и каждая их команда содержит адрес следующей команды. ПРИНЦИПЫ ПОСТРОЕНИЯ УСТРОЙСТВ УПРАВЛЕНИЯ (рис. 24) Из предыдущего следует, что выполнение каждой команды про- граммы должно соответствовать двум различным фазам. В течение первой, называемой «фазой команды», команда, подлежащая выпол- нению, извлекается из запоминающего устройства и помещается временно в специальном регистре, называемом регистром команд (ЛИ на рис. 24). Во время второй фазы (назовем ее «фаза числа») команда, содержащаяся в этом регистре, истолковывается и, как го- ворят, «дешифруется» и выполняется. Адрес команды, которая должна выполняться во время фазы команды1, указывается счетчиком, называемым «счетчиком адресов команд» (СО на рис. 24). Содержимое этого счетчика увеличивается на единицу в начале каждой фазы числа таким образом, чтобы быть готовым к управлению последующей фазой команды. Перед пуском машины в ход в этот счетчик записывается адрес первой по поряд- ку команды (0 в случае программы, рассмотренной выше). После- довательность фаз задается блоком синхронизации или генератором тактов, на выходе которого попеременно с заданной скоростью чередуется полярность. Для более подробного рассмотрения обра- тимся к рис. 24. Фаза ко манды Фь Во время этой фазы реле cL, управля- емое генератором тактов, возбуждено. Следовательно, контакты CL 1 Точнее, фазы числа. \(Прим ред.). 44
замкнуты, а контакты CL разомкнуты. В результате содержимое СО, указывающего адрес очередной команды, передается в регистр коммутатора запоминающего устройства MS. Кроме того, во время фазы команды реле запоминающего устройства также возбуж- дено генератором тактов. Содержимое регистра запоминающего Ф/ L тд с.=о 9 9 SM Н;н 0123‘Ll 9 гж1 к I • _ц ЖН} & м А ОА 9 01 9 О 1 9 01239.5 9 ’AzTAZA Z7 £ 9 - 5 “ Рис. 24. Общая схема цифровой автоматической вычис- лительной машины во время фазы «команд» релеС^ возбуждено, так же как и реле считывания запоминаю- щего устройства во время фазы «чисел» реле Сне возбуждено; реле С возбуждено во время фазы «чисел» в случае безусловного перехода. устройства появляется, таким образом, на шинах ₽о— Зэ и пере- дается в Ml, а при втором срабатывании контактов С — в MD. Таким образом, оканчивается фаза команды. Команда, подлежа- щая выполнению, находится теперь в MD. Фаза числа Ф2- Во время этой второй фазы контакты CL разомкнуты, а контакты CL замкнуты. Адрес (разряды 4—9) из 45
команды, подлежащей выполнению, передается в регистр запоми- нающего устройства MS. Код операции (разряды 0—3) пере- дается в регистр MD дешифратора команд. Этот последний должен возбудить реле арифметического и запоминающего устройств соот- ветственно той операции, которая должна выполняться. Эти дейст- вия будут изучены в дальнейшем. Рассмотрим, например, программу, составленную выше. Дво- ичный эквивалент первой команды (/?20), переданной во. время фазы Ф1 в Ml, запишется в виде: ООП 010100 Регистр 20 выбирается при передаче в регистр коммутатора шести правых разрядов. Передача в MD четырех левых разрядов вызывает возбуждение реле mL запоминающего устройства и ре- ле аЕ арифметического устройства, обеспечивая передачу по шинам содержимого регистра 20 в регистр арифметического устройства. В это время содержимое СО, в котором было 000000 в начале вычисления, становится равным 000001. Таким образом, во время следующей фазы команды следующая команда, содержащаяся в регистре 1, передается в Ml. Эта команда запишется следующим образом: 0001 010101 Во время следующей фазы числа выбирается регистр 21, и деши- фратор D1, получив в свой регистр значение 0001, выдает сигнал возбуждения реле запоминающего устройства (считывание) и реле х арифметического устройства (ввод числа). Сумма содержи- мых регистра А и регистра 21 сначала формируется в регистре А', затем передается в А. Следующая фаза числа отличается от предыдущей только тем, что вместо регистра 21 выбирается регистр 22 и возбуждается ре- ле ас арифметического устройства, что означает вычитание. Наконец, во время фазы числа последней команды программы вы- бирается регистр 23, и дешифратор выдает сигнал возбуждения реле тЕ запоминающего устройства (запись) и реле mL арифме- тического устройства (считывание), так что результат вычисления, содержащийся в регистре арифметического устройства, передается в регистр 23. Безусловный переход. Выше мы говорили, что коман- ды в общем случае выполняются в порядке адресов в запоминаю- щем устройстве, и указали на возможность нарушения такой по- следовательности. Подобное положение будет иметь место, когда после выполнения некоторой части вычислений оказывается необхо- димо перейти к другой части программы, записанной в других ре- гистрах запоминающего устройства. Возможность нарушения по- следовательности команд позволяет, кроме того, многократно ис- пользовать одну и ту же элементарную программу в течение одного вычисления. Таким образом, можно будет, в частности, заранее приготовить программы часто встречающихся вычислений, записать их в запо- минающем устройстве и обращаться к ним с нарушением последо- 46
Вательности всегда, когда это потребуется. Подобные элементарные программы, вводимые в состав основной программы, называются подпрограммами». Какая-либо подпрограмма в свою очередь может быть названа подпрограммой относительно другой подпрограммы, и, следовательно, может существовать целая иерархия подпро- грамм, входящих одна в другую. Чем больше имеется в наличии стандартных подпрограмм, тем удобнее работать с цифровой вы- числительной машиной. Итак, мы должны предусмотреть команду нарушения последовательности, составленную таким образом: Nn (JV=O1O1): переходить к выполнению команды по адре- су и. Другими словами, это значит поместить число п в счетчик ад- ресов команд независимо от его предыдущего содержимого. Эта подстановка будет делаться в течение фазы числа Фг, во время которой п образует адрес содержимого Ml. Передача этого адреса в счетчик адресов команд осуществляется замыканием контактов СЕ в результате наличия комбинации 0101 в регистре дешифрато- ра команд (рис. 24). Условный переход. Описанное нарушение последова- тельности называют «безусловным», поскольку его выполнение не подчиняется никакому предварительному условию. Но этого недо- статочно. Пусть какая-либо задача решается методом последова- тельных приближений. В этом случае нужно продолжать процесс вычисления до тех пор, пока не будет достигнута искомая точность. Для этого после каждого цикла вычисляют разность Д = — —(хп) абсолютных значений результатов предыдущего и данного циклов и сравнивают ее с желаемой точностью £ g Сравнение двух величин всегда может быть сведено к рас- смотрению знака их разности. Итак, если разность А— е положи- тельна, желаемая точность не достигнута и, следовательно, имеется основание приступать к новому циклу, т. е. к новому нарушению последовательности. Наоборот, если разность отрицательна, вычис- ление оканчивается, и можно вернуться к последовательной работе. Проверка знака проводится применительно к содержимому ре- гистра арифметического устройства, где как раз находится разность после ее вычисления. Команда условного перехода (нарушения последовательности) будет составлена следующим образом. Рп (Р=0110): если содержимое регистра арифметического устройства положительно или равно нулю (т. е. если &0^>0), пере- ходить к выполнению команды по адресу л, в противном случае сохранять последовательность. Следовательно, дешифратор команд должен иметь сведения о состоянии ячейки разряда 0 арифметического устройства. Чтобы иметь возможность выполнить операцию умножения, нам будет необходимо также проверить цифру наименьшего разряда* множителя. В самом деле, в двоичной системе множимое, сдвинутое соответствующим способом, прибавляется к сумме уже сформированных частичных произведений в зависимости от того, равна ли цифра соответствующего разряда множителя 1 или 0. Бо- лее того, с помощью последовательных сдвигов мы обеспечиваем, чтобы проверяемая цифра была всегда цифрой наименьшего разря- да и чтобы эта проверка проводилась в эегистре арифметического устройства. 47
Следовательно, наша вторая команда условного нарушения по/- следовательности (условного перехода) запишется так: Qn (Q=0111): если цифра наименьшего разряда ад содержи- мого регистра арифметического устройства равна нулю, перейти к выполнению инструкции адреса н; если нет, — сохранять последо- вательность. ПОЛНЫЙ ПЕРЕЧЕНЬ И ДЕШИФРАТОР КОМАНД Перед тем как записать окончательный перечень, пополним его несколькими дополнительными командами. Сдвиги. Выше, говоря об операции умножения, мы отмечали необходимость осуществления операции сдвига числа. Заметим по aDS Рис. 26. Схема сдвига. этому поводу, что сдвиг какого-либо числа на один разряд в сто- рону больших весов, т. е. влево в нормальной записи чисел, соот- ветствует его умножению на 2. Действительно, при этой операции веса всех разрядов оказываются увеличенными в 2 раза. Наоборот, 48
сдвиг на один разряд в сторону младших разрядов, т. е. вправо, равносилен делению числа на 2 при условии неизменности цифры наибольшего разряда, которая определяет знак. Итак, введем две следующие команды: G (влево: 1000): сдвинуть содержимое регистра арифметиче- ского устройства на один разряд влево. D (вправо 1001): сдвинуть содержимое регистра арифметиче- ского устройства на один разряд вправо. Схемы сдвига арифметического устройства (рис. 25). Сдвиги происходят при передачах между регистрами А и А' арифметического устройства с помощью контактов для сдвига влево и контактов Арр— для сдвига вправо. Эта опе- рация, очевидно, будет сопровождаться замыканием контактов X. Кроме того, будет необходимо разорвать связь между регистром А/_ и сумматором-вычитателем с помощью двух контактов ADG\n ADD, включенных последовательно с его выходами (рис. 14 и 25). Поразрядное логическое умножение1. В даль- нейшем мы покажем полезность операции поразрядного логическо- го умножения двух чисел, а пока мы введем в наш перечень команду: In (/=логйческое умножение : 1010): произвести поразрядное логическое умножение содержимого регистра с адресом п с содер- жимым регистра арифметического устройства и оставить результат в этом последнем. Эта операция позволяет, например, извлекать одну или несколь- ко цифр числа, исключая остальные. Предположим, например, что мы решили извлечь адрес следующей команды: ОНО 100110 Для этого достаточно образовать поразрядное логическое умноже- ние этого слова со следующим: 0000 111111 Применим операцию логического умножения к каждой паре цифр каждого разряда этих двух слов: 0000 100110 Это и есть искомый результат. Схема логического умножения (рис. 14) образует- ся просто из двух последовательных контактов Л и В и инверто- ра Aj , управляемого реле dj дешифратора. Ее назначение состоит в замене на выходе сумматора-вычитателя результата сложения или вычитания результатом поразрядного логического умножения. Эта схема, которая использует один из уже используемых контак- тов Л, представлена на рис. 14. Выполнение этой операции, очевид- но, сопровождается замыканием контактов реле х. 1 Поразрядным логическим умножением называется операция, выполняемая над двумя двоичными числами а и Ь, с образованием в результате двоичного числа с, каждый разряд которого с/ равен а/ • bi (Прим, ред.) 49
Команда останова. Команда Z (код операции 1011) вы- зывает остановку машины. Дешифратор команд. До сих пор было рассмотрено 11 различных команд, пронумерованных от 1 до 11. Как правило, из- бегают пользоваться комбинациями 0000 и 1111, нужными для других целей. Следовательно остается еще три комбинации, которые будут нам полезны для управления входными и выходными устрой- ствами. Приводимая ниже таблица содержит перечень 11 рассмотренных уже команд. Для каждой из них приведены: код -операции, ее сокращенное обозначение и наименования реле, которые должны быть возбуждены. Сравнение второго и четвертого столбцов таблицы, указываю- щих соответственно код операции каждой команды и реле, которое при этом должно возбудиться, позволяет нам написать для каж- дого из реле переключательную функцию, задающую условия его срабатывания. Сводная таблица команд Ко- ман- ды Коды опера- ций £?o dz dz Алгебраические обозначения Возбуждаемое реле An 0001 (Л) + (л) -> A x Sn °C110 (Л) - (л) - A mL xac Rn boil ‘ (n) -+ A mL aE Tn 0100 (Л)- n mE aL Nn 0101 (ri)~*CO CE Pn оно (n) -* CO,1 если Co —0 CE Qn 0111 (л)->-СО, еслиа9 = 0 CE G 1000 2(A) - A x aDG D 1001 (A)/2->-A x aDD In 1010 (Л/) • (ni) -> Ai mL x af Z 1011 Останов Z mL ^0 ( ^2 ^з) ^0 ^2 d3 ’ ГП Е — (1q ^2 ’ х — do d} (d% ds V ds ^з) V do d]\ds V ds) J aC ~ ^2 ^3* aE ~ d'Q ^2 ^3’ aL = Jq di d2 d% ; cE — dodj d2 d3 V d2 d^ cIq \/ d2 d^ct g^ » 50
aDG ^0 4г d3 ’ aDD = d0 ^2 ^3’ ai ~ do d2 d9, Z — d,Q di d2 d^ . Эти функции легко реализуются с помощью четырех реле: do, d\, ^2 и dz (рис. 26). Ясно, что две функции тБ и aL идентичны так, что два соответствующих реле могут быть включены парал- Рис. 26. Дешифратор команд на электромагнитных реле. лельно или даже объединены в одно, если это позволит число име- ющихся в распоряжении контактов. Наконец, контакты Ао и Л9 будут управляться соответствующими реле а0 и aQ арифметическо- го устройства. Другой вид дешифратора. Применение диодов позво- лит нам снова, как и в случае сумматора-вычитателя (рис. 15), придать схеме дешифратора более рациональный вид (рис. 27). Благодаря наличию пирамидальной избирательной контактной схе- мы, каждой из 16 возможных комбинаций четырех цифр d0, d\, d2 и ds кода операции будет соответствовать возбуждение одной из 16 вертикальных шин, пронумерованных от 0 до 15. Для завершения построения схемы достаточно связать каждую горизонтальную ши- 51
ну с теми вертикальными шинами, которые соответствуют выбран- ным строкам таблицы команд. Эти связи должны осуществляться посредством диодов, пропускающих ток только в направлении от вертикальных линий к горизонтальным. В этом случае можно сказать, что на самом деле операция выполняется в два приема: Рис. 27. Дешифратор на реле и диодах. а) декодирование кода операции избирательной схемой, кото- рая возбуждает соответствующую вертикальную линию; б) декодирование матрицей диодов, которая приводит в дей- ствие комбинацию реле, соответствующую выполнению данной ко- манды. СЧЕТЧИК АДРЕСОВ КОМАНД Роль счетчика адресов команд заключается в подсчете количе- ства уже выполненных команд с целью формирования в течение каждой фазы команды Фу адреса вызываемой из памяти очередной команды. Его содержимое, выраженное в двоичной системе счисле- ния шестью цифрами (С4 — С9), должно, следовательно, увеличи- ваться на единицу в начале каждой фазы числа Ф2. Работа счет- чика поясняется временной диаграммой, показанной на рис. 28, где, сигнал Сд является сигналом синхронизации. Попробуем сначала построить двоичный счетчик с помощью нашей элементарной ячейки памяти, которая является, как мы от- мечали, идеализированным вариантом электронного триггера. Бу- 52
дем рассматривать ячейку памяти как двоичный счетный каскад. Из рис. 28 видно, что ячейка младшего разряда С9 должна изме- нять состояние или «срабатывать», когда сигнал генератора синхро- низации меняет знак с положительного на отрицательный, и Рис. 28. Диаграмма работы счетчика адресов команд. «не срабатывать» в противоположном случае. Нам, следовательно, нужны средства для выделения моментов изменения знака напря- жения CL с положительного на отрицательный. Определение знака будет осу- ществляться дифференцирующей це- почкой (рис. 29, а), образованной по- следовательной емкостью и паралле- льным сопротивлением. Такое назва- ние эта схема получила потому, что ее выходной сигнал, по крайней мере для достаточно быстрых изменений, приблизительно представляет собой производную входного сигнала по времени. Подключим в момент t—Q на вход схемы постоянное напряжение Uo. В течение первых моментов пере- ходного процесса, который последует за замыканием ключа, на выходе схе- мы будет действовать полное напря- жение Uq, так как конденсатор не имел еще времени для зарядки. За- Рис. 29. Работа дифферен- цирующей цепочки. тем напряжение на конденсаторе увеличивается по экспоненте, кон- денсатор заряжается через сопротивление и выходное напряжение асимптотически стремится к нулю с постоянной времени RC (рис. 29, б): U UQ = е~"*с. При этом постоянная времени RC равна абсциссе точки пере- сечения касательной к кривой в точке t = 0 и оси t. Заметим, что 53
эти рассуждения справедливы только для случая полного отсутст- вия тока на выходе схемы, т. е. другими словами, если устройства, подключенные к ее выходу, обладают бесконечно большим (т. е. Рис. 30. Счетчик адресов команд на триггерах. практически достаточно большим) сопротивлени- ем (сеточное сопротив- ление лампы, например), или если их входное полное сопротивление учтено в сопротивле- нии R. Теперь подадим на вход такой дифференци- рующей цепочки сигнал CL , имеющий ступенча- тую форму (рис. 30). Если постоянная време- ни RC выбрана значи- тельно меньшей полупе- риода входного сигнала, выходной сигнал будет представлять собой по- следовательность экспо- ненциальных импульсов, попеременно положи- тельных и отрицатель- ных. Таким образом, пер- вое условие, поставлен- ное выше, выполнено. Теперь мы должны вве- сти устройство, схематич- но показанное на рис. 30 в виде двух диодов, Рис. 31. Диаграмма работы двоичного счетчика на реле рис. 33. 54 Рис. 32. Схема управления ре- ле Ь(а) и схема, измененная с целью устранения размыкания, ко- торое происходит в момент сра- батывания контакта С (б)
запрещающее поступление положительных импульсов на вход запо- минающей ячейки. Отрицательные импульсы будут передаваться на вход части ( + ) ячейки, вызывая, таким образом, ее срабатывание. Сигнал с выхода левой половины с9 будет также продифференциро- ван перед подачей на вход ячейки Са и так далее. На рис. 30 также показаны формы сигналов в точках Л, Bt С, D и Е. Имеет также смысл рассмотреть возможность построения ка- скада двоичного счетчика с помощью таких переключательных элементов, как реле. Постановка задачи иллюстрируется на рис. 31. Речь идет о том, чтобы, имея управляющий сигнал CL , образую- щийся при возбуждении одного реле, вызвать срабатывание вто- рого реле а с половинной скоростью. Задача может быть решена только с помощью дополнительного реле Ь, моменты срабатывания которого сдвинуты на один такт по отношению к реле а. В действительности рабочий цикл занимает четыре такта, кото- рые могут быть отработаны без двусмысленности только с помощью двух двоичных устройств. Отметим между прочим, что символика рис. 31 обычна для представления работы схем последовательного действия. Каждое из реле а и b будет возбуждено комбинацией контактов Q , Л и В. Из рис. 31 видно, что реле b должно быть возбуждено в то же время, что и реле сL , -в то время как реле а не возбужде- но. Состояние возбуждения реле b должно сохраняться после пре- кращения возбуждения cL до тех пор, пока это последнее не будет снова возбуждено: говорят, что возбуждение должно быть забло- кировано после отпускания реле cL до его нового срабатывания. Эти условия запишутся кратко с помощью переключательной функции: b = CL- А V B-CL . На рис. 32,а показана реализация этой функции посредством кон- • такта CL, нормально закрытого контакта А и нормально открытого контакта В. Однако эта схема представляет значительное неудоб- ство: питание b прерывается на все время срабатывания контак- та Cl которое наша временная диаграмма (предполагает мгновен- ным. К счастью, это затруднение легко преодолеть с помощью схемы рис. 32, б, работа которой аналогична работе схемы рис. 32, а, как в этом легко убедиться непосредственно. В этой схеме возбуждение реле b и одновременное отсутствие возбужде- ния а обеспечивают непрерывность питания b во время срабатыва- ния контакта С L . Эквивалентность этих двух (схем может быть легко установлена следующим образом. Работа второй схемы (рис. 32, б) описывается уравнением Ь = (CL V В) . (CL V А) . Раскрывая скобки, получаем: b = CL- Л V B-CL V A-В v CL- ~CL . 55
Во-первых, ясно, что CL CL = 0, следовательно, этот член может быть устранен. Во-вторых, равенство b — А. В уже содержится в дизъюнкции двух первых членов второго выражения. Действитель- но, очевидно, что b возбуждено, каким бы ни было состояние CL , если одновременно В — 1 и А = 1, поскольку при этих условиях один из этих двух члено^в всегда равен 1. Это отчетливо видно из рис. 32, б. Конъюнкция А • В может, следовательно, быть также исключена и, таким образом, снова получается первое выражение. Рис. 34. Последовательность фаз. Рис. 33. Двоичный каскад на реле. Подобное преобразование часто используется в релейных схе- мах для того, чтобы обеспечить «непрерывность» схем во время срабатывания переключающих контактов. Запишем теперь условия срабатывания реле а и подвергнем их такому же преобразованию: а = В . CL V A CL = (CL V В)• (CL V Л) . Таким образом, мы получили полную схему рис. 33, а, которая упрощается до схемы рис. 33,6 путем объединения двух контактов А и А, которые имеют общую точку, в один контакт. ПОЛНАЯ СХЕМА И РАСПРЕДЕЛЕНИЕ ФАЗ На полной схеме машины (см. вклейку в конце книги) даны принципиальные схемы блоков, схематически показанных на .рис. 24. Схемы коммутатора запоминающего устройства SM, дешифра- тора команд D1 и арифметического устройства ОА, не расшифрован- ные на общей схеме, образованы контактами различных реле, 56
показанных на общей схеме. Подробно эти схемы даны на рис. 22, 26 и 14. Во избежание излишнего износа контактов рекомендуется по мере возможности осуществлять все необходимые переключения до подачи напряжения на схему, составленную из этих контактов. В соответствии с этим точки схемы, обозначенные символом « + », соединяются с положительным зажимом источника питания в по- рядке, определяемом генератором тактов. Эти вторичные фазы отмечены в треугольниках на общей схеме. Взаимное расположение вторичных фаз дано на рис. 34. г Рассмотрим эту систему работы, следуя за ходом операций в течение цикла вычисления, образованного фазой «команды» Ф] и фа- зой «числа» Фг. Фаза команды Фь В начале этой фазы замыкаются кон- такты CLn размыкаются контакты CL . Содержимое счетчика адресов команд передается контактами СL в регистр коммутатора. При этом возбуждаются Те реле ли/, которые соответствуют адресу выполняемой команды. В то же время реле mL возбуждено гене- ратором тактов таким образом, что контакт ML коммутатора запо- минающего устройства замыкается, подготавливая считывание из выбранного регистра. Когда все эти контакты займут соответству- ющее положение, коммутатор включается под напряжение (фаза Ф 1 ). в этот момент реле // выбранного регистра оказывается возбужденным через замкнутый контакт Ml , и, следовательно, содержимое выбранного регистра появляется на шинах, откуда оно передается в регистр команд через контакты CL . Фаза числа Фг. В начале этой фазы контакты CL размы- каются, а контакты CL замыкаются. Кроме того, содержимое счет- чика адресов команд увеличивается на единицу для подготовки следующей фазы команды. Адрес текущей команды записывается в регистр коммутатора, а код операции — в регистр дешифратора. В этот момент дешифратор команд включается под напряжение (фаза Ф2 ), чтобы вызвать срабатывание реле арифметического и запоминающего устройств, соответствующих той операции, которая < должна выполняться. Если должна выполняться команда безуслов- ного перехода, то передача адреса из регистра команд в счетчик адресов команд производится с начала этой фазы. Затем включа- ется под напряжение коммутатор запоминающего устройства (фаза Ф^|. В результате этого при соответствующей команде контакты записи или считывания выбранного регистра подключа- ются к шинам. Если с некоторой шиной соединяется выход ячейки выбранного регистра, находящейся в состоянии 1, то это повлечет за собой срабатывание соответствующего реле арифметического устройства. Это последнее может теперь быть включено под напря- жение (фаза фС) так, чтобы результат выполненной операции был записан в регистр А'. Затем питание дешифратора, коммутато- ра и арифметического устройства может быть отключено. Остается в течение последней фазы Ф^ осуществить передачу содержимого 57
А' в регистр А посредством замыкания контактов арифметического устройства, имея в виду при этом, что реле х было .предварительно возбуждено! во время декодирования команды. Из схемы видно, что для получения возможности выключать питание дешифратора перед началом этой фазы и избежать таким образом бесполезных переключений контактов арифметического устройства, реле х снаб- жают дополнительной обмоткой, включенной параллельно с обмоткой л/. Итак, полный цикл вычислений состоит из семи этапов: двух для фазы «команды» и пяти — для фазы «числа». Этот тип после- довательной работы характерен для всех автоматических цифровых вычислительных машин, работа которых не может быть понятна без углубленного изучения взаимной зависимости отдельных фаз. ПРИГОТОВЛЕНИЕ ПРОГРАММ, БЛОК-СХЕМЫ ПРОГРАММ Теперь можно несколько углубиться в подробности работы по приготовлению программ. Мы остановимся, в частности, на той части этого вопроса,, которая касается выполнения операций над самими командами, а также на использовании подпрограмм, авто- матически входящих в состав основной программы. Первый пример: вычисление модуля числа. Пусть нужно заменить число, содержащееся в регистре с адре- сом 100* его абсолютным значением. Для этого достаточно прове- рить знак этого числа с помощью команды Р и если он окажется отрицательным, заменить его на обратный. Пять последовательных команд, приведенных ниже и снабженных пояснениями, реализуют эту операцию. Нумерация команд выбрана произвольно: 11 [7? . 100 12 Р 16— 13 R 0 14 $ 100 15 Т 100 16 .... Число (100) передается в арифметическое уст- ройство. Проверка знака: если (100)^0, никакого из- менения не происходит и осуществляется переход к команде 16; если (100) < 0, то знак этого числа изменяется путем вычитания его из содержимо- го-пред варите л ьно сброшенного регистра ариф- метического устройства (команды 13, 14, 15). Сброс регистра арифметического устройства: регистр с адресом 0 предполагается пустым. Вычитание числа (100) из содержимого регист- ра арифметического устройства. Передача полученного модуля в регистр с адресом 100. Продолжение вычислений. Для выполнения этой программы мы были обязаны сбросить регистр арифметического устройства, передавая туда содержимое * В дальнейшем мы не будем придерживаться принятого огра- ничения на адреса, которые не могли быть больше 63, так как они представлялись 6-разрядными двоичными числами. 5$
регистра с адресом 0, предполагая при этом, что он содержит чис- ло 0000000000: (0) = 0000000000. Мы резервируем также несколько последующих адресов для постоянного хранения ряда других констант, в которых мы будем часто нуждаться. Удобно отмечать стрелкой то обстоятельство, что по команде безусловного перехода Р 16 может быть осуществлен переход к ко- манде 16. (/00) А Рис. 35. Блок-схема программы образова- ния .модуля содержимого ячейки 100. Процесс выполнения этой программы может быть схематически представлен в виде схемы, показанной на рис. 35 и называемой обычно блок-схемой программы1. Второй пример: вычисление итога; модифика- ция адресов и вычисления. Пусть нужно вычислить сумму чисел, содержащихся во всех регистрах с адресами, заключенными между 100 и 200 включительно, результат должен быть записан в регистр с адресом 100: (100) + (101) + (102)+ •.. + (200) - 100. Мы используем также регистр 100 для записи частичных сумм. Начнем с трех команд: R 100 А 101 Т 100 Затем мы будем выполнять три команды: R 100 А 102 |Т 100 Вместо того чтобы 100 раз записывать эту группу команд, мы воспользуемся тем, что команды представляются в запоминающем устройстве в той же форме, что и числа, и будем каждый раз при вычислении суммы увеличивать на единицу адрес команды Л, ко- торый предполагается в начале равным 100*. 1 Вместо термина «ординограмма», не принятого в советской литературе, здесь и в дальнейшем мы будем пользоваться термином «блок-схема» (Прим, ред.) ♦ Такая операция называется «модификацией» адреса. (Прим, ред.} 89
Для этого запишем в регистр с адресом 1 единицу младшего разряда: (1) =0000000001. Момент окончания вычислений наступит тогда, когда эта команда приобретет вид А 201, и мы узнаем об этом, проверяя знак раз- ности А 200 — А[ (i обозначает изменяющийся адрес). Итак, мы должны также расположить в памяти двоичный эквивалент числа А 200. Слово, которое по форме совпадает с командой, но исполь- зуется не как команда, а как чтсло, называется псевдокомандой. В программе, подробно рассматриваемой ниже, переменная ко- (мавда Ai записана ® квадратных скобках, а псевдокоманда А 200 отмечается знаком ||. Такие обозначения заимствованы у М. В. Уилкса [Л. 11]. -21 22 23 7? 25 А 1 Т 25 Увеличение на единицу адреса переменной команды 25. 24 25 26 R 100 [Л 100] Т 100 Суммирование с передачей разультата в регистр 100: (100)4-(0-* 100. 27 R 31 28 5 25 —29 Р 21 Проверка окончания суммирования: если Л 200 — Л 0, прибавить следующее число; если Л 200 — А[ <0, переходить к следующей команде. Переход к другим вычислениям. 31 || Л 200 Псевдокоманда, служащая для проверки конца операции. Выполнение этой программы схематически показано на блок- схеме на рис. 36. Первоначально i = 1ОО Рис. 36. Блок-схема программы образования суммы чи- сел, хранящихся в ячейках с адресами, заключенными между 100 и 200. 30 W Плавающие адреса. В приведенной выше программе три адреса, входящие в состав команд, являются адресами самой программы. Из этого следует, что если при составлении программы 60
будет забыта одна команда, то изменится нумерация всех команд, включая те, которые содержат адреса программы. Это неудобство исключается, если при составлении программы обозначать адреса нужных команд буквами с индексами, как, например Пь м2, Пз и т. д. После того как будет проверено, что составленная так про- грамма не содержит ошибок, можно пронумеровать последователь- ные команды и сообщить плавающим адресам их истинные значе- ния: Плавающие адреса Истинные адреса п3 Pni Л 1 Т П1 модифика- ция 21 R 25 22 А 1 23 Т 25 /?100 П1 [Л100] ► Т100 , суммирова- ние П1=25 /12=31 п3=21 24 R 100 25 [Л 100] 26 Т 100 п2 || Л200 Rn2 Sni Рп3 проверка окончания 27 Р 31 28 5 25 29 Р 21 30 . . . 37 Л 200 Параметры. Начальное значение переменной (команды 25, так же как и псевдокоманды 31, может быть введено в программу непосредственно перед ее мспользованием. Эти значения могут рас- сматриваться тогда как параметры, и придают программе чисто общее значение, позволяя суммировать любое число членов, первый из которых находится в регистре с каким-либо адресом. Третий пример: сумма модулей, вызов под- программы и согласование. Зададимся целью подсчи- тать сумму модулей чисел, находящихся в регистрах с адресами, заключенными между 100 и 200 включительно, с помещением ре- зультата в регистр 100, предполагаемый вначале пустым. Мы используем для этого подпрограмму вычисления абсолют- ной величины, подотовленную заранее и организованную так, что после ее выполнения осуществляется автоматический переход к главной программе, каков бы ни был адрес, на котором выполне- ние главной программы было прервано в связи с вызовом подпро- граммы. Пусть п — адрес первой команды подпрограммы. Предполо- жим, что нам необходимо сделать вызов этой подпрограммы, т. е. образовать абсолютное значение, после команды с адресом (т—1) главной программы. Две следующие команды будут обозначены: т Rm т + 1 Nn Мы видим по первой из двух команд, что сама эта команда переписывается в регистр арифметического устройства и за счет это- 61
го отмечается место перехода от главной программы. Вторая ко- манда вызывает безусловйый переход к первой команде подпро- граммы. Чтобы иметь возможность после выполнения подпрограммы вернуться к команде (т+2) главной программы, нужно, чтобы стоящая в конце подпрограммы команда безусловного перехода, на- зываемая «командой согласования», имела вид: п + р Ntn + 2. Эта команда может быть образована из команды Rm, кото- рая теперь находится в регистре арифметического устройства. В самом деле, числовые эквиваленты R и N равны соответственно 3 и 5; их разность 2 соответствует числовому эквиваленту S. Итак, можно записать: Чтобы иметь возможность преобразовать команду (Rm) в команду (Afrn+2), нужно, следовательно, прибавить к ней числовой экви- валент (S 2), который, как мы будем предполагать, х;ранится в ре- гистре с адресом 2: (2) = $2 = 0010000010. Таким образом, нужно, чтобы все первые команды подпрограм- мы осуществляли эту операцию и передавали результат в конец подпрограммы: п А2 | Образовать и поместить на место команду согласо- п + 1 Тп-1-р J вания. п + 2 . . . . Команды подпрограммы. пр (Nт-}-2) Выполняется команда Согласования. Здесь и в дальнейшем содержимое регистра, помещенное в него при выполнении самой программы, будет заключаться в скобки. Подпрограмма, полученная таким образом, называется «закры- той подпрограммой». Применим эти соображения к составлению закрытой подпро- граммы образования абсолютной величины. На этот раз результат будет сохраняться в регистре арифметического устройства. Это даст возможность сэкономить по одной команде как в самой под- программе, так и в программе суммирования модулей. В приводи- мой ниже таблице слева приведена программа с плавающим адре- сом, а справа —с абсолютным. Число, абсолютное значение кото- рого вычисляется, предполагается помещенным в регистр с адресом Па; кроме того, регистр 2 содержит S 2, как мы уже отмечали выше. 62
Плавающие адреса А 2 | Образование и расположе- Т nt f ние команды согласования Абсолютные адреса 11 А 2 12 Т 17 Р П2 1 Р Л!-/- R0 1 S П2 J Л1 ( Л2 ( ) Проверка знака (л2) Изменение знака Сюда помещается коман- да согласования Содержат число, модуль которого ищут 13 R 18 — 14 Р 17 15 R О 16 S 18 17 ( ) - 18 ( ) Применим эту подпрограмму для вычисления суммы: |(101) | + 1 (102)|(200)Н 100. Плавающие адреса Абсолютные адреса R 0 Т 100 Сброс регистра 100 n4 R П1 А 1 Т П1 п± [/? 100] Т 18 П2 R П2 N 11 А 100 Т 100 R п3 S fii ----- Р п4 N. . . п3 II Я 200 Модификация адреса команды П1 Передача следующего числа в регистр 18 подпрограммы модуля Вызов подпрограммы образо- вания модуля (модуль по- мещается в регистр ариф- метического устройства) Суммирование’ модуля с час- тичной суммой (100) Проверка окончания програм- мы по разности 7? 200—Ri 21 R 0 22 Т 100 23 R 26 24 А 1 25 т 26 26 [/? 100] 27 т 18 28 R 28* 29 » N 11 30 А 100 31 Т 100 32 R 36 33 S 26 34 р 23 35 N. . . Переход к продолжению про- граммы Псевдокоманда, используемая для проверки конца сумми- рования 36 || R 200 Мы видим, что после того, как подпрограмма составлена и помещена в запоминающее устройство, программист может опери- 63
ровать с ней как с дополнительной командой образования абсо- лютного значения. Для этого частного случая рассмотрим снова, как образуется команда согласования. Команда. 7? 28 с адресом 28 переписывает i •О сама себя в регистр арифметического уст- ройства. Следующая команда N 11 вызы- вает команду 11, первую команду подпро- граммы. Эта команда (4 2) вызывает при- бавление к содержимому регистра арифме- тического устройства 7? 28 содержимого ре- гистра 2, т. е. S 2: R 28 2 = N 30 . Вторая команда подпрограммы Т 17 передает N 30 в регистр 17. В конце под- программы команда 30 снова передает управление команде 30 главной программы. В этот момент модуль рассматриваемого числа находится в регистре арифметическо- го устройства, и таким образом, к нему достаточно прибавить содержимое регистра 100, в котором происходит накопление итога. Четвертый пример: найти наибольшее из последователь- ности чисел. Пусть нужно найти наи- большее из чисел, хранящихся в регистрах с адресами, заключенными между 100 и 199 включительно. Можно производить операцию система- тически следующим образом: начинают с сравнения второго числа с первым; если второе меньше первого, повторяют опера- цию с третьим и первым и т. д. Предполо- жим, что n-е число будет больше первого. Тогда начинают снова с n-го числа, т. е. сравнивают его с (п+1)-м, затем с (п-(-2)-м и т. д. -Если, например, не находят в последующем числе большего, чем n-е, то это последнее и есть наибольшее из всей последовательности чисел. Таким образом, программа будет основана на двух пере- менных командах: П1 [R; 1 сначала i = 7 = 100 . Иг [•$/] Индекс j увеличивается, начиная с единицы, все время, пока (7) больше или равно (/), а индекс i скачком увеличивается до значе- ния /, когда (/) становится больше (7)*. Программа оканчивает- * (7) и (j) обозначают, как обычно, содержимое памяти адре- сов 7 и /. 64
ся, когда Sj становится больше S 200. Процесс иллюстрируется блок-схемой, показанной на рис. 37. Ниже приведены варианты программы, составленной в плаваю- щих и абсолютных адресах. Регистр п3 содержит S 200, а регистр п6 зарезервирован для результата: Плавающие адреса Абсолютные адреса Р п2 ] А 1 > Увеличение индекса / Т п2 J S п3 ) Проверка конца: окончание, Р п5 J когда S/ станет равно S 200 П1 [/? 100] А Сравнение (i) и (/): увеличить п2 [5 200] > /, если (0^(/)’> начинать с — Р П4 ) (/)> если (/) < (/). R п2 Подстановка /?/ вместо Ri Л 5 Sj + AO = Rj Т щ [(5) = АО] --------N П4 п5 Р П1 (I) — наибольшее число: пере- Т п7 дать команду Ri в п7, чтобы n7 (R I) иметь возможность передать Т пе (/) в п6. N. . . п3 || S 200 «в ( ) Перескочить на продолжение программы Псевдокоманда “ для проверки конца Результат 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 R 17 А 1 Т 17 S 28 Р 23 [Я 100 [S 100 Р 11 Р 17 А 5 Т 16 N 11 Р 16 Т 25 (Я О Т 29 || S 200 ( ) • N . . . Начало этой программы легко понять. Увеличивают индекс / с единицы на единицу до тех пор, пока i не станет равным или большим (/). Когда встречают число (/) большее, чем (t), то на- чинают с этого числа, т. е. подставляют Pj вместо Pi. Числовые эквиваленты S и Р соответственно равны 2 и 3; поэтому достаточ- но добавить к Sf содержащуюся ,в регистре п2 величину АО. Эта величина снова послужит нам в дальнейшем. Предполагается, что она записана в регистре 5: (5) == АО = 0001000000. Адрес i команды после пересмотра всех чисел оказывается равным адресу наибольшего из последовательности чисел. Теперь следует передать это число в регистр пб. Для этого команда Pit хранящаяся по адресу П\, передается в регистр с адресом и7. При ее выполнении наибольшее число (i) передается в регистр арифметического устройства и оттуда — в регистр результата Пятый пример: классификация последова- тельности чисел. Пусть нужно распределить в порядке возрастания числа, хранящиеся в регистрах с адресами, заклю- 5—895 65
ценными между 100 и 199 включительно. Это можно выполнить следующим образом: сравнивают одну за другой пары чисел, обра- зованные из двух соседних чисел, до 'тех пор, пока не доходят до числа ранга (t’4-1), меньшего, чем число ранга i. Тогда эти два по- лученных числа меняют местами и начинают процесс сначала. Так продолжают вплоть до распределения всех этих чисел в возраста- ющем порядке. Покажем это на примере последовательности 4, 3, 2, 1: 4 3 3 2 2 2 1 XX X 3 4 2 3 3 1 2 Программа будет основана на двух переменных командах: Hi W+1] (первоначально i = 100); Процесс заканчивается,, когда Ri+1 станет равным R 200, помещен- ному в регистр с адресом Л|. R П -2 А 1 Т п2 R Hi А 1 Т m Плавающие адреса Увеличение на единицу Абсолютные адреса ин- декса переменных команд с ► адресами лх и л>; (Л1) хранится в регистре арифметического устройства 21 R 30 22 А 1 23 Т 30 24 R 29 25 А 1 26 Т 29 Проверка окончания; цикл оканчивается, когда /?Н-1 ста- - новится равным R 200, содер- жащемуся в л3 (первоначаль- но i = 100). 27 S 53 28 Р 52 П1 П2 1^ + 1] Р л4 Сравнение: процесс продол- жается, пока разность (i+1)— > — (i) положительна или равна нулю; в противном случае переставляют (i + 1) и (Z) 29 [/? 101] 30 [5 100] 31 Р 21 R ni Т л5 (Я/+1) Т лб Поместить (< + 1) для со.хрз- > нения в лв; команда л5 приоб- ретает вид Ri + 1 32 33 34 35 R 29 Т 34 ( ) Т 54 R Л2 А 5 Т л7 Образование и передача в л7 команды Ri: Si + АО = = Ri (АО в 5) 36 . R 30 37 А 5 38 Т 43 66
A 1 T n8 Образование й передача в rtg команды Tf: R[ + 40 = Tt. 39 А й 40 Т 46 Образование и передача в л8 команды Л + 1:/?/ + (1) = = 77 + 1 [(!) = !] 41 А 1 42 Т 44 Пц П8 Лэ (Ri) (Ti+\) P n6 T i Перестановка 45 R 50 46 < ) P «11. T П! R П12 T fl2 Л10--------- n3 || R 200 n6 ( ) nu Л12 || S 100 Возвращение в начало по* следовательности установкой на нуль (Hi) и (л2) Переход к продолжению про. граммы Данные для проверки конца Регистр для (+1) 47 R 55 48 Т 29 49 R 56 50 Т 30. 51 N 21 52 /V . . . ||/? 200 53 ( ) 54 || R 101 55 || S 100 56 A 5 T Примечание. Если принять команду 47 за первую команду программы, начальные величины R 101 и S 100 автоматически за- пишутся в 29 и 30. Как и прежде, мы поясним наиболее интересные места рас- смотренной программы. Ее блок-схема показана на рис. 38. Перестановка, необходимая, если (i’+l), становится меньше, чем (j), обеспечивается четырьмя командами 43—46, которые дол- жны быть последовательно составлены и помещены на место по ко- мандам 36—42. Предварительно необходимо освободить один из двух адресов i или Z+1, помещая его содержимое для сохранения в регистр 54; если команда Ri+l уже находится в регистре 29, то адрес i+1 освобождается при выполнении рассмотренной выше программы. Достаточно для этого переслать эту команду в 34. Шестой пример: произведение двух положи- тельных чисел. Автоматические цифровые вычислительные ма- шины содержат всегда в своем словаре одну или несколько команд для вычисления произведения двух чисел с помощью специального устройства, называемого множителем. В дальнейшем мы дадим не- сколько пояснений по этому поводу. Обратимся к нашей упрощенной машине и составим в качестве упражнения подпрограмму выполнения операции умножения. Мы начнем с произведения двух положительных чисел, затем мы укажем общий метод для умножения двух чисел любого знака. Произведение двух положительных чисел образуется обычным способом путем сложения частичных произведений. Но в данном случае это особенно просто, поскольку произведение каждой цифры 5* 67
МИбЖйТеля йа мйо&йМОе мойсет быть только либо б, либо сйМйМ множимым: 0,1101 ХОЛОП 1101 1-101 00-00 110-1 0,10001111 Операцию начинают с проверки последовательных цифр множи- теля, начиная с цифры младшего разряда; если цифра разряда п равна 1, соответствующее частное пооизведение7 представляет собой множимое, сдвинутое на п разрядов влево. На практике суммирование частичных произведений происходит в регистре А арифметического устройства. Частичные суммы сдви- гают ма один разряд вправо перед каждым прибавлением нового частного произведения, отбрасывая, таким образом, каждый раз цифру младшего разряда, которая выходит за пределы емкости арифметического устройства: Первое частичное произведение • • • 1101 Сдвиг вправо . , ............ 110 Второе частичное произведение е . +1101 Первая частная сумма............... 10011 Сдвиг вправо...................... 1001 Третье частичное произведение ... + 0000 Вторая частичная сумма............... 1001 Сдвиг вправо ... . , . . . 100 Четвертое частичное произведение . +1101 Третья частичная сумма............. 10001 Сдвиг вправо........................ 1000 Очевидно мы получаем произведение, округленное до четырех первых двоичных разрядов: 0,1000. Наконец, чтобы проверить последовательность цифр множите- ля т, его сдвигают на один разряд вправо после каждого сложе- ния частичного произведения и проверяют всегда цифру наимень- шего разряда тд с помощью команды Q, которая была введена специально для этого. Элементарный цикл вычисления, записанный выше (проверка множителя, сложение частичного произведения и сдвиг частичной суммы), должен быть повторен 9 раз. Счет количества циклов мо- жет выполняться особенно простым образом. Для этого в специаль- но зарезервированный регистр вводят слово 0111111111, представ- ленное псевдокомандой Q 63. Если сдвигать это слово на один раз- ряд вправо после каждого цикла, то цифра наименьшего разряда станет равной 0 после девятого шага, и это легко выявить с по- мощью команды Q. 68
Рис. 38. Блок-схема программы упорядочения чисел, хранящихся в ячейках с адресами, заключенными меж- ду 100 и 200. Рис. 39. Блок-схема программы перемножения двух положительных чисел.
Подпрограмма умножения двух положительных чисел, данная в блок-схеме н,а рис. 39, подробно приводится ниже. Множимое М и множитель т предвирительно вводятся в регистры П\ и «2- Час- тичные произведения суммируются в регистре п3. Регистр слу- жит счетчиком. Его начальное содержимое Q 63 записано постоян- но в л9. Исследуем действие команды проверки разряда mg: Qn7 с ад- ресом ив. Если /п9=0, то блокируется последовательность команд R0 А п3, D Т пз О + (лз) - Л, имеющих целью очистить регистр арифметического устройства, вве- сти туда предыдущую частичную сумму и сдвинуть ее на один разряд вправо. Плавающие адреса Hi (М) пъ (т) п3 (sp) Абсолютные адреса Формирование и запись ко- манды согласования 21 22 А 2 Т 41 Ввод в счетчик л4 слова 23 R 46 0111111111, содержащегося в л9 Проверка т9: если он равен 1, добавить М к частичному 24 Т 45 произведению и сдвинуть, если 25 R 43 он равен 0, только сдвинуть частичное произведение 26 Q 29 Суммирование частичных 27 7? 42 прияиве'дений 28 N 30 29 R 0 30 А 44 Сдвиг частичной суммы 31 D 32 Т 44 33 R 45 Сдвиг содержимого счетчи- ка л4 и проверка конца 34 35 D Т 45 36 Q 41 37 R 43 38 D Сдвиг т 39 Т 43 40 N 26 Сюда помещается команда согласования 41 ( ) Множимое 42 (А4) Множитель 43 (т) Частичные суммы 44 (sp)
ni (CTR) Счетчик 45 (CTR) n9 || Q63 Псевдокоманда: начальное 46 || Q63 содержимое счетчика Если /П9= 1, выполняются последующие команды: й} («о+(пз)-л D Т /1з Величина М прибавляется к предыдущей частичной сумме, затем новая сумма сдвигается. Седьмой пример: произведение двух алгебраи- ческих чисел. Первый метод вычисления произведения двух алгебраиче- ских чисел состоит в вычислении произведения их абсолютных зна- чений и комбинировании знаков на основании обычного правила, которое сводится к сложению по .модулю 2. Этот метод часто ис- пользуется в автоматических множительных блоках арифметическо- го устройства. Когда обычное алгебраическое сложение выполняется над числами, представленными дополнительным кодом, сомножите- ли должны перед поступлением в множительное устройство пройти через преобразующее устройство, которое придает им обычную ал- гебраическую форму. Второй метод состоит в том, что сначала получают грубое произведение двух чисел, представленных в дополнительном коде, а затем производят коррекцию, чтобы получить точный результат, представленный в дополнительном коде. Рассмотрим сначала про- изведение положительного числа а на отрицательное число Ъ, пред- ставленное своим дополнением (2—Ь): или1 а (2—Ь)=—ab-\-2a —аЬ=я (2—Ь) — 2в. Итак, нужно скорректировать грубое произведение, вычитая удво- енное значение положительного сомножителя. Произведение двух отрицательных чисел, представленных до- полнениями (2—а) и (2—ft), имеет вид: (2-а) (2—ft) = cft+2 (2—«)+2 (2—ft), откуда ab = (2-—а) (2—ft) — 2 (2—а) — 2 (2—ft). 1 Здесь автор допускает неточность. По условию, сформулиро- ванному выше, произведение должна пелучаться также представ- ленным в дополнительном коде. Поскольку в данном случае до- полнительный код произведения должен иметь вад 4—aft, следую- щая формула запишется в виде: 4—ab—a (2—ft) + 2 (2—в). При этом становятся справедливыми дальнейшие рассуждения о методе корректировки. (Прим, ред.) 71
На этот раз корректировка заключается в вычитании из грубого произведения двойных значений дополнений каждого из двух со- множителей, другими словами, двойных значений величин, пред- ставляющих их в машине. Таким образом, чтобы выполнить умножение двух чисел лю- бого знака, поступают следующим образом: пусть х и у — дополни- тельные коды. Сначала получают грубое произведение, затем иссле- дуют знак х: если он отрицателен, то из произведения вычитают двойное значение дополнения до 2 модуля у. Затем исследуют Проверка Рис. 40. Блок-схема программы алгебраического -умножения ме- тодом Бута. знак г/, и если он отрицателен, из предварительно полученного ре- зультата вычитают еще двойное значение дополнения до 2 моду- ля х. Третий метод1. Наиболее изящный метод выполнения опе- рации алгебраического умножения двух двоичных чисел, представ- ленных в дополнительном коде, основывается на алгоритме, предло- женном Э. Бутом [Л. 7]. Пусть А и В — два числа, последователь- ные разряды которых мы обозначим через ап и Ьп. а) Для п^О: если Ьп—Ьп^: уже полученное частичное произведение сдви- гается на один разряд вправо; если 6п=0 и Ьп^ 0: вычитание А из частичного произведения, сдвинутого на один разряд вправо; если Ьп =0 и fn_|4=l: прибавление А к частичному произведе- нию, сдвинутому на один разряд вправо. б) Для п—0: те же операции, за исключением сдвига. 1 Подробное описание этого метода можно найти в книге Э. Бут и К. Бут «Автоматические цифровые машины», Физматгиз, 1959. (Прим, ред.) 72
Программа, соответствующая этому алгоритму, может быть составлена в соответствии с блок-схемой, показанной на рис. 40. Чтобы в дальнейшем облегчить редакцию такой программы, отдель- ные блоки обозначены буквами. Два последних разряда В сравни- ваются прибавлением В/2 к В . (блок В); если сумма оказывается четной, то для подготовки следующей операции достаточно сдви- нуть В на один разряд вправо (блоки С и D). Если же сумма (В+В/2) оказывается нечетной, исследуют Ьп, проверяя четность В/2 (блоки G и Н) ив соответствии с этим вводят +А или —А в регистр арифметического устройства (блоки М и /) и прибавля- ют туда частичное произведение (блок J). Операция оканчивается, как в предыдущем случае. Первый цикл несколько отличен, по- скольку разряд Ьц <не существует. Плавающие адреса Абсолютные адреса Лц А2 Т Формирование и размещение команды согла- сования 21 А 2 22 /Т56 R 1 А Т п4 Подготовка счетчика 23 R 1 24 Т 60 7? л2 N п7 Nna Проверка чет- ности В 25 Р 58 26 Q 28 27 А 43 26-28 W 47 Т?л4 G С Ttii Умножение на 2 содержимого счетчика 48-29 7? 60 30 G 31 Т60 R п3 ] Сдвиг частич- D D I но го произве- Тп3 I "дения SP 32 7? 59 33 D 34 Т59 Rn2 D Е Ап2 Вычисление 35 R 58 36 D 37 А 58 Проверка четно- / / В \ сти В + —’ 1 \ 2 38 Сдвиг В 39 40 41 Q 50 R 58 Т 58 6—895 73
п7 Л12 п3 п9 П10 О Лю Н Проверка чет- ности 42 Q 54 R0 S tii А п9 Тп9 N п9 Rni м Nn» +4-* регистр А арифметическо- го устройства ±A + SP Проверка кон- ца (знак CTR) Сдвиг В 4-4— регистр А арифметическо- го устройства 27—43 44 R0 S 57 55—45 А 59 46 Т 59 28,53-47 R 60 48 Р 29 49 N 56 38-50 R 58 51 D 52 Т 58 53 47 42-54 R 57 55 N 45 z . Команда согла- ' сования щ (4) Множимое ла (В) Множитель п9 (SP) Частичные суммы „ ictd\ Счетчик (сначала п4 (L1R) 00...01) 49-56 ( ) 57 А 58 В 59 SP 60 CTR После постановки на место начального значения счетчика (0000000001) исследуют Ьп (блок В), проверяя четность В; если bn=Qt выполняется сдвиг содержимого счетчика и частичного про- изведения, в данном случае равного 0. Если £л = 1, вычитают А из частичного произведения. Сдвиг частичного произведения, находящегося в цепи обратной передачи, не осуществляется в течение последнего цикла. Подробная программа приведена выше. Ее составление в зна- чительной степени облегчается записью на блок-схеме плавающих адресов, соответствующих выполнениям безусловных переходов. Восьмой пример: скалярное произведение. Применим подпрограмму умножения, которую мы только что со- ставили для вычисления суммы произведений пар чисел, хранящих- ся в регистрах с адресами, заключенными между 100 и 199 вклю- чительно на пары чисел, хранящихся в регистрах с адресами, ааключенными между 200 « 299 включительно: <«99 У (100+0 (200 + i). <*»0 74
&та сумма образует скалярйое йройзведение в 1бб-мерн6м прост- ранстве вектора с координатами (100+0 на вектор с координата- ми (200+0. Программа, записанная ниже, представлена на блок- схеме рис. 41. Суммирование осуществляется в регистре 300. Плавающие адреса Абсолютные адреса R0 Т 300 ( Сброс на 0 регистра 300 (реги- J стра суммирования) 71 72 RQ 7 300 R100 1 73 [7? 100] 7 57 74 757 7? 200 [ Введение двух множителей 75 R 200 Т58 J 76 758 Rn, 1 Вызов подпрограммы умножения 77 R 77 А21 j 78 Я/ 21 Я 300 79 ' R 300 А 60 Т300 , Суммирование произведений 80 81 Я 60 7 300 R nY ' 82 R73 Al Т Д1 1 Модификация адреса пг 83 84 А 1 7 73 Rn2 1 85 R75 Al ! Т п% J Модификация адреса л2 86 87 А 1 7 75 R Па 1 S П1 _ р я-. Проверка окончания: вычисле- г ния оканчиваются, когда (л0 ста- 1 новится равным R 200 88 89 90 R92 S73 Р73 А... Переход к другим вычислениям 91 N . . . || R199 Псевдокоманда для проверки 92 II R 199 окончания Девятый пример: алгебраическое деление1. Как и для случая умножения, существует специальный алгоритм, называемый «деление без восстановления», который прямо обеспе- чивает получение частного двух алгебраических чисел, выражен- ных в дополнительном коде [Л. 7]. Пусть нужно подсчитать частное Q от деления двух A-разрядных чисел А и В: а) операции от 1 до (А—1): если bi=ar. прибавить 2~ N к Q, сдвинуть Q и А на один раз- ряд влево и вычесть В из А; если 6i#=ar. ничего не добавлять к Q, сдвинуть Q и А на один разряд влево, прибавить В и А. б) Операция А: прибавить (1+2“^) к Q (прибавление 1 дает правильный знак, а цифра младшего разряда правильно округля- ется, как это видно из дальнейшего). 1 Этот пример также подробно рассматривается в книге Э. Б у т и К- Бут, «Автоматические цифровые машины», Физматгиз, 1956. 6*
о Счетчик Первоначально 1-0 Рис. 41. Блок-схема программы скалярного произведения двух 100 мерных векторов Рис. 42. Блок-схема алгебраического деления методом без возвращения назад.
Плавающие адреса Абсолютные адреса «10 R П2 Rih Р л7 л9 Rn3 А2 Т п5 Я1 Т Установка команды согласования 21 22 А 2 Т54 Т п3 R ГН ] G J S«2 £ } 7 /11 | N«s лв R «1 Рпд fii R П3 G G Т п3 Л8 R rii G Ап2 Н Т пх R п4 ) G I } Т П& ) Подготовка счетчика Проверка В Проверка А (Q+2“n)X2 (ЛХ2)-В Проверка А QX2 (АХ2)+В 23 24 50-25 26 27 28 39-29 30 31 32 33 34 35 36 37 26-38 39 28—40 41 42 43 44 45 46 R 1 Т 58 ^56 Р 38 ^55 Р 40 /?57 А 1 G ТЫ R55 G S56 Т55 А 47 Я 55 Р 29 Р«ю J Rn3 А Лц К Т п3 Умножение на 2 содержимого 37“*47 счетчика 49 ^Проверка содержимого счетчика 50 Q+l,00---01 ^Команда согласования 51 52 53 54 Я 57 G Т57 /?55 G Л 56 Г 55 /?58 G 7 58 Р25 ~R57 Л 59 7 57 «1 п2 Пз «< «11 (Л) (В) (Q) (CTR) Делимое 55 Делитель 56 Частное 57 -Счетчик 58 1,00...01 59 (Л) (В)
Организация соответствующей программы поясняется блок- схемой, показанной на рис. 42. Если А и В имеют противоположные знаки, то сдвигают частное и добавляют В к сдвинутому А (блоки В, А или F, G, Я), если А и В одного знака, добавляют к Q, сдвигают таким образом полученное новое частное и вычитают В из сдвинутого А (блоки В, А или Р, D, Е). КОНСТРУКЦИЯ МНОЖИТЕЛЬНОГО УСТРОЙСТВА Мы уже отмечали, что в цифровой автоматической вычислитель- ной «машине всегда предусматриваются команды, необходимые для автоматического выполнения операции умножения. Поскольку в нашем случае принята одноадресная команда, один сомножитель должен быть обозначен неявным образом. Для этого он будет предварительно вводиться в специальный регистр, называемый реги- стром множителя, который мы обозначим через L. Эта передача будет выполняться по команде вида: Ln: записать в регистр множителя содержимое регистра с адре- сом п. Содержимое этого регистра сможет тогда быть умножено на содержимое регистра с каким-нибудь адресом п' по команде: Мп': умножить содержимое регистра множителя на содержимое регистра с адресом п' и оставить произведение в регистре А ариф- метического устройства. В нашей машине мы сможем присвоить L и М двоичные эквива- ленты 1100 и 1101, которые еще имеются в нашем распоря- жении. На рис. 43 показана структурная схема множительного устрой- ства, построенного на основании описанных принципов. Суммирова- ние частичных произведений выполняется в регистре арифметическо- го устройства. Содержимое регистра L может быть сдвинуто на один разряд вправо при. возбуждении реле d. Кроме того, левая половина ячейки младшего разряда этого регистра управляет воз- буждением реле t в зависимости от значения содержащегося в ней разряда. Контакты Т реле t управляют, когда оно возбуждено, передачей в арифметическое устройство содержимого регистра с адресом л', входящим в состав комады Мп, выбираемого ком1мута- тором. Чтобы не нарушать нормальной работы арифметического устройства, эти контакты нормально закорочены контактами Afi, размыкающимися только при возбуждении реле под действием кода 1101 (подробнее см. ниже). Выполнение команды Мп' состоит, таким образом, из десяти- кратного повторения следующего элементарного цикла: а) Сложение содержимого п' с содержимым регистра А, кото- рый предполагается пустым в начале первого цикла. Для этого ре- ле mL (считывание из запоминающего устройства) и реле х (вклю- чение арифметического устройства) должны быть возбуждены. Эта операция имеет место только в том случае, если младший разряд множителя, содержащийся в L, равен 1; в противном случае содер- жимое А остается неизменным. 78
Рис. 43а. Схема множительного устройства. Этот классический знак 2 обозначает направление к младшим разрядам Рис. 436. Множительное устройство, позволяю- щее сохранять все цифры произведения.
б) Сдвиг на один разряд вправо содержимого регистров А и L при возбуждении реле aDD (сдвиг вправо), реле х (включение арифметического устройства) и d (сдвиг L). Кроме того, в течение всего времени выполнения операции связь между генератором тактов и счетчиком адресов команд должна быть прервана. Счетчик, работающий от генератора тактов, будет контролировать последовательность шагов и восстановит нормальную работу машины после десятикратного повторения цикла. Все эти эле- менты схематически показаны на рис. 43а. Возбуждение реле т деши- фратора кодом операции М вызывает возбуждение реле т\, которое имеет блокирующий контакт Mj, и переключение контакта Afj, кото- рый в исходном состоянии коммутирует счетчик адресов команд, а в возбужденном состоянии — счетчик, управляющий выполнением цик- ла, описанного выше. Возбуждение реле гп\ вызывает также размьь какие контактов которые закорачивают контакты Т. В конце опе- рации счетчик возбуждает реле тг, которое разрывает цепь и воз- вращает схему в исходное состояние. С точки зрения конструкции операция счета и управления после- довательностью операций может быть осуществлена одними или не- сколькими телефонными реле. Заметим, что можно не терять половину младшего разряда про- изведения, выходящего за пределы емкости арифметического устрой- ства при каждом сдвиге вправо частичного произведения. Для этогб можно использовать регистр L множительного устройства, ячейки которого последовательно освобождаются, начиная с ячейки наиболь- шего разряда, по одной после каждого сдвига вправо множителя^ Следовательно, можно последовательно посылать цифры младшего разряда произведения в ячейки старших разрядов регистра L по мере гего освобождения (рис. 436). Впрочем, многие машины обладают сумматором двойной емкости с целью уменьшить ошибки, накапливающиеся во время образования суммы частичных произведений. ДЕЛЕНИЕ Если все ариметические цифровые вычислительные машины снаб- жены арифметическим устройством, способным осуществлять опера- ции сложения, вычитания и умножения, то у большинства из них не предусмотрена команда деления, и в этом случае операция деления должна быть запрограммирована. Мы уже составили выше (девятый пример) программу, позволя- ющую выполнять деление алгебраических чисел, представленных в Дополнительном коде. Предлагаемый ниже метод, несколько более медленный, облада- ет тем преимуществом, что он требует меньшей емкости запоминающе- го устройства. Аналогичный принцип может быть применен для вы- числения других функций. Пусть нужно вычислить частное alb двух Чисел а и 6, когда оба числа меньше единицы и, кроме того, а мень- ше Ь. Начинают с величины 1/2, которую умножают на Ь. Если ре- зультат умножения больше а, то вычитают 1/4 исходной величины Ь\ в противном случае добавляют 1/4 Ь\ затем умножают, таким обра- зом, полученную новую величину на b и из нее вычитают (или к ней прибавляют) 1/8 Ъ, если новое полученное произведение больше 80
(меньше) а. Продолжают, таким образом, прибавлять или вычитать , тт"и т. д. от Ь до тех пор, пока не будет достигнута искомая 1 о oz точность, другими словами, пока разность между последовательными результатами не будет на единицу меньше разряда исходных чисел. Наиболее часто используемыми методами для вычисления частно- го двух чисел являются методы итерации (последовательного прибли- жения). Один метод, часто используемый для вычисления частного двух положительных чисел а и 6, заключается в вычислении после- довательности чисел, определенных по формулам ап+1 =ап(2~ Ьп) • Ьп+Х = Ьп(2- Ьп); взяв за исходные величины сами числа а и 6, увидим, что __ в bn b и что Ьп^ стремится к единице, когда т возрастает; из этого следует, что ал_^1 стремится к alb. ОКРУГЛЕНИЕ При всех численных расчётах необходимо в определенные мо- менты правильно округлить результаты. В самом деле, для округле- ния числа с N цифрами после запятой недостаточно отбросить без оговорок последующие десятичные разряды, так как при этом вво- дится ошибка, в среднем равная и]/2, если через т] обозначить едини- цу младшего разряда. Два нижеследующих метода дают возмож- ность получать среднюю ошибку равной нулю. а) Последняя сохраняемая цифра замещается, если она четная, большей нечетной цифрой, непосредственно следующей за ней. бу Последняя сохраняемая цифра увеличивается «а единицу, . если отброшенная часть больше или равна ^/2. Это эквивалентно прибавлению ^/2 и сохранению N младших цифр результата. В двоичной системе счисления первый метод просто заключает- ся в присвоении последней сохраняемой цифре значения единицы, а второй — в добавлении единицы (7V-4- 1)-го разряда. Второй метод более точен, так как он дает в 4 раза меньшую ошибку, рав'ную ^2/12 против ^2/3 для первого. Он применяется для умножения, когда располагают сумматором с емкостью 2N. Первый метод чаще используется для деления, как мы это сделали в выше- приведенном примере. Примеры Двоичные числа, которые нужно округлить до четырех цифр после запятой Округленные числа Метод (а) Метод (б) 0,11011001 0,1101 0,1110 0,11001001 0,1101 0,1101 81
ОБЗОР БИБЛИОТЕКИ ПОДПРОГРАММ Удобство пользования цифровой вычислительной машиной тесно связано с количеством имеющихся в наличии подпрограмм, непре- рывно увеличивающимся в течение эксплуатации машины. Однако и в самом начале можно располагать некоторым минимумом подпро- грамм, составленных поставщиком машины. Среди часто встречающихся элементарных функций операции деле- ния и извлечения корней второй и третьей степеней лучше всего вы- полнять методами итераций, тогда как тригонометрические функции (прямые и обратные), экспоненциальные функции и логарифмы удоб- но вычислять разложением в ряд. Этот последний метод в случае автоматических вычислений обычно более выгоден, чем интерполяция между данными таблицы, помещенной в память. Тем не менее мож- но рассматривать коэффициенты разложения в ряд как содержание числовой таблицы, а суммирование ряда — как особый вид интер- поляции. Одна или несколько подпрограмм будут посвящены операции возведения в квадрат. Часто прибегают для этого к достаточно отра- ботанным формулам интегрирования таким, как формула Гаусса с неравными интервалами. Это сразу дает увеличение скорости вычис- ления и экономию в памяти. Решение обычных дифференциальных уравнений также является объектом одной или нескольких подпрограмм. Так как любое обыч- ное дифференциальное уравнение может всегда быть представлено в виде системы дифференциальных уравнений первого порядка, под- программа для решения такой системы позволит решить все обыч- ные дифференциальные уравнения. Операции с матрицами являются основой многочисленных вычис- лительных процессов. Поэтому специальные подпрограммы будут по- священы умножению матриц, решению системы линейных алгебраи- ческих уравнений, инвертированию матриц, вычислению собственных значений и векторов и т. д. Решение системы линейных уравнений осуществляется либо методами последовательного исключения пере- менных, либо итеративными методами. Методы последовательного исключения часто удобно применять в автоматических вычисле- ниях. В дальнейшем мы будем говорить о подпрограммах, связанных с устройствами входа и выхода. В заключение скажем несколько слов об интерпретирующих под- программах. ИНТЕРПРЕТИРУЮЩИЕ ПОДПРОГРАММЫ Мы уже показали, что подпрограмма может быть использована программистом в качестве дополнительной команды. Можно пойти еще дальше и дать возможность программисту работать при неко- торых вычислениях с кодом, совершенно отличным от кода, при- нятого в машине. Тогда каждая команда, написанная в этом новом коде, должна быть интерпретирована составленной для этого под- программой с целью составления последовательности обычных команд, эквивалентных командам, которые должны быть интерпре- тированы. 82
Предположим, например, что мы решили выполнить операции сложения и вычитания комплексных чисел, не обращая специального внимания на то обстоятельство, что эти числа комплексные. Условим- ся помещать действительную и мнимую части данного комплексного числа в два регистра с адресами п и (п+1). Назовем этот двойной адрес «адресом» нашего комплексного числа. Мы должны также располагать «регистром комплексного оператора», образованным из двух последовательных регистров, например 10 и 11. . Чтобы выполнить операцию с комплексными числами, мы нач- нем, следовательно, с вызова соответствующей интерпретирующей подпрограммы, предварительно помещенной в память. Начиная с этого момента, команды сложения Ап, вычитания Sn, замещения Rn и передачи Тп должны быть истолкованы, как составленные для комплексного числа, действительная часть которого содержится в регистре с адресом п и соответственно мнимая часть — в регистре с адресом (п+1). Тогда по интерпретирующей подпрограмме будут извлекаться одна за другой команды главной программы, подлежа- щие интерпретации, и вырабатываться группа соответствующих обыч- ных команд. Например, для выполнения команды Ап нужно будет сложить действительную часть (п) с действительной частью (10) комплексного регистра и передать результат в 10, потом точно так же сложить мнимые части (п+1) и (11) и передать их сумму в 11. Обычный способ, которым эти операции осуществляются, состоит в следующем. Каждый код операции интерпретируемых команд объе- диняет группу обычных команд, обеспечивающих осуществление со- ответствующей операции. Эти различные группы могут быть вызва- ны столькими же командами безусловных переходов, образующими в сумме «сборник». После извлечения интерпретируемой команды главной программы по интерпретирующей подпрограмме сначала ис- следуется код операции, выделяемый с помощью логического умно- жения. На основании числового эквивалента этого кода составляет- ся команда безусловного перехода, отсылающая к надлежащей ко- манде сборника и оттуда к соответствующей группе обычных команд. Следовательно, адрес интерпретируемой команды, который необходим для правильного выполнения этой группы команд, будет помещен в резерв на время исследования кода операции. Подпрограммы интерпретации полезны также для следующих расчетов: а) Расчеты с удвоенной точностью: чтобы опериро- вать на ^разрядной машине 27У-разрядными числами, достаточно помещать две половины каждого числа в два последовательных реги- стра и программировать соответствующим образом. Здесь снова бу- дет полезна подпрограмма интерпретации, так как она позволит ис- пользовать нормальные коды операций для чисел двойной длины. Очевидно, что подобный метод позволяет обращаться с числами лю- бой длины. б) Вычисления с плавающей запятой. Часто оказы- вается невозможным работать с числами, представленными в форме с фиксированной запятой, поскольку порядок получаемых значений различных величии не известен перед началом вычислений. Тогда ис- пользуется форма представления, получибТная название «представле- ние с плавающей запятой». Числа представляются в полулогариф- мическом виде: p-Bq, где В — основание системы счисления’, а р 83
й q — положительные или отрицательные числа. Кроме того, значе- ние мантиссы р должно лежать в интервале 1—р<В. Перед тем как приступить к сложению или вычитанию двух чисел, начинают с «расположения» меньшего из них по отношению к большему, при- сваивая ему тот же порядок. После операции нужно, конечно, снова нормализовать результат таким образом, чтобы его мантисса удов- летворяла приведенным выше условиям. Умножение и деление сво- дятся соответственно к нахождению произведения или частного мантисс и суммы или разности порядков и к нормализации резуль- тата. Мантисса и порядок помещаются либо в один и тот же регистр, либо в два или несколько последовательных регистров. в) Вычисления с десятичными числами: в некото- рых случаях может быть выгодно оперировать непосредственно с числами, представленными в десятичной системе счисления. Для это- го достаточно выразить каждую десятичную цифру группой из четы- рех последовательных двоичных цифр и оперировать отдельно с эти- ми группами с помощью соответствующей подпрограммы. Этот способ работы автоматически обеспечивается в машинах, работающих в де- сятичной системе счисления. Наконец, можно работать в десятичной системе с плавающей за- пятой, как это делается автоматически во многих современных маши- нах. СИМВОЛИЗИРОВАННЫЕ КОМАНДЫ Рассмотренные выше интерпретирующие программы состоят из команд, аналогичных нормальным командам, но применяемых к чис- лам особого характера. Можно пойти еще дальше и попробовать за- писывать команды в форме, предельно приближающейся к обычной математической записи, например: (п") = (п') х (п): записать в регистр л" произведение содержимых __________ двух регистров п' и п. (п')в У(п)’« записать в регистр п' корень квадратный из содер- жимого регистра с адресом п. В подобных условиях знаки операций, такие как «X» или « У „ имеют числовые эквиваленты, так же как обычные коды операций. Таким образом, очевидно, что с помощью соответствующей интерпре- тирующей подпрограммы можно управлять выполнением операций, записанных в подобном виде. Однако подобная команда будет зани- мать в запоминающем устройстве больше места, чем обычная одно- адресная команда. Следовательно, нужно либо выделять два или несколько регистров памяти на каждую символизированную команду, либо, чтобы ограничить максимальную величину адресов л, усло- виться использовать символизированные команды только примени- тельно к определенной части запоминающего устройства. Именно этот последний метод используется в общем случае. Как мы увидим ниже, вычислительные машины содержат часто два запоминающих 1 В отечественной литературе форма представленная р • Bq на- зывается «нормальной формой представления числа». Числа р и q называются соответственно «мантиссой» и «порядком». Операция приведения числа к виду р. Bqt удовлетворяющему условию 1<р<В, называется «нормализацией». (Прим, ред.) 64
устройства: одно большой емкости, но сравнительно Медленно дейст- вующее, а другое — быстродействующее, но меньшей емкости. В сос- тав символизированных команд вводятся исключительно адреса ре- гистров быстродействующего запоминающего устройства. УСТРОЙСТВА ВХОДА И ВЫХОДА Эти устройства обеспечивают машине связь с тем, кто ею поль- зуется. Устройства входа. Информация для автоматической вы- числительной машины — числовые данные и команды программы — должна быть записана в носителе, дающем возможность считывания во входном устройстве. Часто используют для этой цели телеграф- ную перфоленту, и мы ограничимся на время рассмотрением этого случая. Перфоратор, снабженный клавиатурой, позволяет пробить от- верстия в ленте. Каждое отверстие соответствует двоичной цифре 1, а отсутствие отверстия — цифре 0. Отверстия или пропуски группи- руются строками из пяти позиций каждая. Строка пробивается за один раз. Каждая комбинация отверстий и пропусков образует, та- ким образом, группу из пяти двоичных цифр. Устройство для чтен- ния с перфоленты содержит 5 щеток, замыкающих электрический контакт при прохождении под ним отверстия. На клавиши клавиатуры нанесены цифры от 0 до 9 и различные буквы, обозначающие операции. Выгодно применять числовой код, отличный от кода, используемого в телеграфной связи. Наиболее удобно представить десять десятичных цифр их двоич- ными эквивалентами. Часть операции преобразования из десятичной системы в двоичную, таким образом, автоматически осуществляется во время приготовления ленты. Двоичные комбинации, заключенные между 10 и 31 включительно, используются для кодов операций. Во время чтения одной строки ленты 5 соответствующих двоич- ных цифр передаются в 5 ячеек младших разрядов регистра памяти с помощью команды: Еп: прочесть следующую строку с ленты и поместить считываемое двоичное число, умноженное н$ 2~N, в регистр с адресом п. Во время чтения группы строк, содержащей последовательность цифр десятичного числа, ряд десятично-двоичных преобразований осу- ществляется самой машиной с помощью специально составленной подпрограммы. Преобразование заключается просто в умножении последовательных разрядов на соответствующие степени 10, храня- щиеся в запоминающем устройстве, и в суммировании этих произве- дений. Однако в случае дробных чисел этого недостаточно. Пусть, например, нужно преобразовать 0,84 в двоичную систему счисления. Начнем с вычисления двоичного эквивалента 84: 84 = 4J- (8 X Ю) в двоичной системе счисления 100 + (1000 X Ю10) = 10101000 . Но написанное в виде 0,01010100 это число является двоичным экви- валентом 84/(16)2, а не эквивалентом 84/(10)2, как это нам нужно. Следовательно, необходимо его умножить на (16/10)2 или разделить 85
на (10/16)*, двоичный эквиЬалейт которого равен 0,11001. Это умно- жение дает число 0,110101 или после округления до 5 цифр после за- пятой — 27/32^0,84... Различные виды сообщений, записанные на перфоленте, приго- тавливаются обычно независимо. В общем случае числовые данные, основная программа и подпрограммы, составляемые специально для данной задачи, пробиваются в двух экземплярах, а затем проверяют- ся с помощью специальной машины, называемой «контрольником», которая останавливается, как только будет иметь место рассогласо- вание между двумя синхронно читаемыми лентами. Затем с помощью устройства, называемого «дубликатором» или «репродуктором», про- бивают также в двух экземплярах для возможности дальнейшей проверки окончательный вариант ленты. Аналогичным образом про- биваются ленты, содержащие части программы и ленты с заранее подготовленными подпрограммами, извлеченными из библиотеки программ. Выходные устройства — один тип выходного устрой- ства, аналогичный рассмотренному входному устройству — телеграф- ный аппарат, печатающий механизм которого управляется пятью электромагнитами, возбуждаемыми параллельно в соответствии с 5-позиционным кодом. Определенные значения 5-разрядных двоичных чисел образуют код, управляющий выбором букв или цифр, про- движением бумаги и переводом строки. Распределение материала на странице может также производиться с помощью подпрограмм, соответствующих различным способам представления результатов. Перед печатью числа должны быть преобразованы в десятичную систему счисления с помощью подпрограммы. Рассмотрим сначала число, уже выраженное в виде десятичной дроби. Можно выделить цифру старшего разряда слева от запятой, умножая данное число на 10. Печатая эту целую часть и снова умножая оставшуюся дробную часть на 10, выделяют вторую цифру слева от запятой и т. д. Такой же способ применяется для числа, представленного в дво- ичной системе, умножая каждый раз дробную часть на двоичный эквивалент 10—1010. Пусть, например, нужно преобразовать в деся- тичную систему двоичное число 0,11011 (27/32—0,84...). Результаты двух первых последовательных умножений на 1010 запишутся следу- ющим образом: 0,11011 X 1010 =Г1000^0111 U I -------«------------1 0,8' 0,0111 х 1010=0100,0110 /__________ Цифры появляются, следовательно, со стороны старших разря- дов. Команда вывода будет иметь следующий вид: &п : передать 5 цифр старших разрядов содержимого регистра с адресом п на печатающее устройство и печатать соответствующим образом. Тем не менее часто более выгодно не связывать машину непо- средственно с печатающим устройством, а вводить промежуточный 86
электрический перфоратор, управляемый самой машиной по команде, аналогичной предыдущей. Максимальная скорость работы перфора- тора больше скорости печатающего устройства (15 букв в секунду против 5 или 6), что дает возможность получить большую среднюю скорость вывода. Печатающее устройство будет наверстывать свое отставание в течение периодов вычислений, не сопровождающихся выдачей результатов. Может быть также выгодным выбрать для представления резуль- татов специальный код, отличный от кода входных данных, чтобы проверить работу печатающего устройства. Например, десятичные цифры, и только они, будут представлены комбинациями, всегда содержащими две единицы и три нуля. Таким образом, единственная ошибка в передаче повлечет, за собой появление на печатающем уст- ройстве комбинации, содержащей либо три единицы, либо одну еди- ницу и не представляющую, следовательно, какую-либо цифру. Такая ошибка бросится в глаза во время изучения таблицы числовых результатов. Ложная цифра может быть напечатана только в случае (менее вероятном) появления двух взаимно компенсирующих оши- бок передачи1. ПРОГРАММА ВВОДА Работа цифровой автоматической вычислительной машины так же, как и работа входных и выходных устройств, описанных выше, происходит на основании программы, предварительно помещенной в память. Однажды начатый, этот процесс может продолжаться сколь угодно долго, причем программа может предусматривать, если это нужно, чтение дополнительной информации, записанной на входной ленте. Но ясно, что «пуск» должен быть обеспечен дополнительным способом, не зависящим от нормальной программы и позволяющим записывать команды в память. Этот процесс обеспечивается «про- граммой ввода», помещенной в память с помощью внешних средств перед началом других операций. Если первая команда этой програм- мы записана в память по адресу 0 и если счетчик адресов команд поставлен на нуль перед пуском машины в ход, то команды ввода вызовут считывание и помещение в память в удобной форме команд и числовых данных, пробитых на входной ленте, до тех пор, пока не встретится закодированное указание, вызывающее начало вычисле- ний путем отсылки к первой команде основной программы. Операции, которые должны выполняться для каждой строки программной ленты, состоят в основном в следующем: прочитать код операции и поместить его в резерв; прочитать и преобразовать в двоичную систему счисления после- довательность цифр адреса; объединить код операции и адрес для образования* команды; передать составленную таким образом команду в надлежащий регистр памяти. увеличить на единицу адрес, по которому была передана команда; < 1 Ускорение работы входных и выходных устройств — одна из актуальных забот конструкторов: магнитная лента играет важную роль в этих усовершенствованиях. 87
снова Начать, читай код операции следующей команды, и т. д. Группы специальных символов, называемые «комбинации команд» и не предназначенные для помещения в память, позволяют- обозначить адрес, начиная с которого, будут записываться читаемые команды. Это позволяет отметить последнюю команду, которую нужно передать к началу основной программы, и т. д. Но программа ввода должна еще обеспечить очень важную функцию, без которой применение подпрограмм будет затруднено. Изучение подпрограмм, составленных перед этим, показывает, что некоторые из команд относятся к адресам самих подпрограмм. В результате запись этих команд зависит от позиции, занятой в памяти первой командой программы. Это, очевидно, неудобно и имеет смысл составлять подпрограммы в таком виде, чтобы их правильное выполнение не зависело от их местонахождения в памяти. По меньшей мере в общем случае подпрограммы не должны постоянно храниться в запоминающем устройстве машины. Другими словами, должна быть обеспечена возможность обозна- чать рассмотренные команды относительными по отношению к на- чалу подпрограммы, а не абсолютными адресами. Некоторые маши- ны обладают способностью получать этот результат автоматически без какой-либо модификации подпрограммы с помощью команды следующего типа: Ап': добавить к содержимому регистра арифметического уст- ройства содержимое регистра с адресом (т+п), адрес т является адресом регистра, содержащего саму эту команду. При отсутствии такой возможности модификация команд, содержащих относитель- ные адреса, обеспечивается программой ввода. Для этого команды приготовленной заранее подпрограммы нумеруются произвольно, начиная с 0, относительные адреса следуют за специальной буквой — кодом. В момент чтения и помещения в память подпрограммы под действием программы ввода, адреса, отмеченные таким образом, увеличивают значение адреса, по которому помещена в память пер- вая команда подпрограммы. Таким образом, получают с точки зре- ния программиста такую же гибкость, как при системе относительной нумерации адресов. Глава вторая ОТДЕЛЬНЫЕ ВОПРОСЫ ТЕХНИКИ АВТОМАТИЧЕСКИХ ЦИФРОВЫХ ВЫЧИСЛИТЕЛЬНЫХ МАШИН Мы надеемся, что гл. 1 этой книги позволит читателю постепенно познакомиться с основными принципами устройства и действия цифровых вычислительных машин. Теперь можно перейти к обзору средств электронной техники, положенных в основу построения сов- ременных автоматических .вычислительных машин. Мы рассмотрим последовательно различные элементы, позволяю- щие строить переключательные устройства и двоичные ячейки па- мяти: электронные лампы, транзисторы, основные магнитные элемен- ты, тонкие магнитьте пленки, феррорезонансные схемы, параметроны, 88
криотроны. Затем укажем на несколько характерных применений триггеров и линий задержки в вычислительных и управляющих уст- ройствах. Закончим некоторыми упоминаниями об устройствах динамической магнитной памяти (барабанах, дисках и лентах), деся- тичных машинах, специальных кодах и методах внутреннего конт- роля. Рис. 44. Параллельная (а) и /последовательная (б) передача. ПРЕДСТАВЛЕНИЕ И ПЕРЕДАЧА СООБЩЕНИЙ В регистрах вычислительных устройств, устройств управления и памяти двоичные цифры представляются элементами, обладающими двумя устойчивыми состояниями, такими как два состояния электрон- ного триггера или два состояния насыщения магнитного материала с прямоугольной <характеристикой на- магничивания. Цифры — числа или команды — передаются из одного элемента в другой по электрическим линиям в форме импульсов. Заметим сразу, что знаки, выражающие цифры одного слова, могут быть одновременно пе- реданы по стольким же отдельным линиям (параллельная передача) или последовательно по одной линии в форме серии импульсов (последова- тельная передача). На рис. 44 пока- зана передача двоичного числа 1011 этими двумя способами. При этом для простоты предполагается, что «1» представляется положительным импульсом, а «0» — отсутствием импульса1. В машине, работающей в двоично-десятичной системе счисления, выбирают между тремя возможностями: передать все двоичные разряды параллельно, передать их все последовательно группами, соответствующими десятичным цифрам, следующим одна за другой во времени, и, наконец, комбинированное решение, которое заключается в параллельной передаче группы двоичных разрядов, представляющих одну десятичную цифру, и последовательной пере- даче этих групп. Но следует изучить более внимательно условия, при которых осу- ществляется передача этих сигналов. Практически они не будут иметь форму, показанную на рис. 44. Фронт построения импульсов не может быть бесконечно крутым, так как переход электрического на- пряжения с одного уровня на другой за бесконечно малое время предполагает наличие бесконечной энергии. Фронты импульсов всегда претерпевают некоторый наклон при прохождении через устройства, к которым они приложены. На них всегда накладываются напряжения внутренних шумов, которыми в некоторых случаях нельзя пренебречь. Эта особенность формы сигналов приводит к необходимости уточ- нения определения информации, которую они содержат, фиксацией двух уровней Vo и Vi (рис. 45) так, что напряжение, меньшее Vo, 1 При параллельном способе для правильной работы схемы рюжения цифры наименьших разрядов передаются в начале. §9
представляет двоичную цифру 0, а напряжение, превышающее Vi, двоичную цифру 1. Кроме того, исследование уровня сигнала не может, очевидно, осуществляться в то время, когда он изменяется. Определение действительного уровня сигнала производится в тече- ние строго определенного интервала времени A I, когда имеется уверенность, что он не претерпит значительных изменений. Эти интер- валы времени называются часто «периодами проверки». Следует, таким образом, различать в работе машины периоды проверки и Период проверки Рис. 45. Интерпретация двоичной информации, содер- жащейся в электрическом сигнале: значение 0 для сигнала, меньшего Ко, значение 1 для сигнала, пре- вышающего Vi, период проверки А/. переходные периоды. Здесь проявляется фундаментальное понятие «временного разделения». Частота и продолжительность «периодов проверки» будет определяться центральным генератором, называе- мым «генератором тактовых импульсов» и формирующим образцо- вые импульсы строго определенной длительности и формы. Частоты следования основных тактовых импульсов у современных вычисли- тельных машин имеют величину от нескольких килогерц до несколь- ких мегагерц1. В последующем мы обозначим через 0 период сле- дования тактовых импульсов. В машине последовательного действия продолжительность передачи слова из N цифр равна и носит название «малый цикл». Он образует в некотором роде единицу времени работы машины, поскольку никакая операция не может осуществляться за время, меньшее «малого цикла». 1 Вспомним в этой связи, что международная единица частоты получила название герц, а не циклов в секунду и еще меньше «периодов в секунду», что систематически игнорируется в англий- ской и американской литературе. 90
Покажем сразу же на простом примере важность понятия «про- верка» или «извлечение информации». Рассмотрим снова (рис. 46, а) временную последовательность импульсов, представляющих двоичное число 1011 в последо- вательной форме представле- ния. Как представить его об- ратный код 0100? Если ограни- читься простейшим случаем, описанным выше, когда 1 представляется импульсом, а 0 — отсутствием импульса, то получается сигнал, показанный на рис. 46,6. Рассмотрим теперь сигнал в, полученный -из сигнала а пу- тем перестановки местами ниж- него уровня U* и верхнего уровня U\, Если проверить сиг- налы б и в в моменты, отмечен- ные прерывистыми линиями, видно, что они содержат абсо- лютно одинаковую информа- цию. С технической точки зре- ния получение сигнала в из сигнала а гораздо более про- сто, чем получение сигнала б. Рассмотрим, в частности, трансформатор' (рис. 47), пер- вичная обмотка которого, пита- / 0 1 о г Моменты проверки Рис. 46. Проверка в указанные моменты [два знака (б) и (в) содержат одинаковую двоич- ную информацию, дополни- тельную к информации сигнала (a)L ясь, например, от усилителя, получает сигнал, подобный а на рис. 46. Две вторичные обмотки, включенные в противофазе, образуют одновременно сам сигнал а и Рис. 47. Передача сигнала и его допол- нения с помощью трансформатора связи. его дополнение в. Од- * на из этих обмоток со- единена с источником постоянного напряжения С/о, а другая с источни- ком напряжения l/j. На- конец, с помощью диодов сигналы, снимаемые с вторичных обмоток, ог- раничиваются по уров- ням Uo и Ui. Кроме того, трансформаторная связь позволяет уменьшить вы- ходное индуктивное со- противление до такой ве- личины, что сигнал мо- жет .быть передан на определенное расстояние при хороших условиях и, в частности, без риска искажения от на- личия взаимной индукции с соседними линиями. 91
СИМВОЛИКА ПЕРЕКЛЮЧАТЕЛЬНЫХ УСТРОЙСТВ Мы видим, что все операции вычисления и управления в авто- матических цифровых вычислительных машинах сводятся к трем основным операциям: конъюнкции («И»), дизъюнкции («ИЛИ») и отрицания или дополнения. Следовательно, чрезвычайно полезно располагать символами для обозначения элементов, реализующих эти три операции. Это позволяет, в частности, представить структуру автоматической вычислительной машины в виде «переключательной Рис. 48. Символика логических операций. схемы», абстрагируясь от техники только частично, так как сложная операция может всегда выполняться различными переключательны- ми схемами, выбор между которыми будет диктоваться соображе- ниями технологического порядка. Были предложены различные условные обозначения для пере- ключательных элементов. Удобная символика, иллюстрированная не- сколькими примерами, приведена на рис. 48. Символ отрицания обычно изображается на конце линии, передающей рассматриваемую переменную, так, что он пересекается с контуром изображения, эле- мента, к которому ведет эта линия, как показано на рис. 48, г и д. Элементы, реализующие операции конъюнкции и дизъюнкции, часто называются «вентилями» и «собирающими схемами»1. Напомним переключательную функцию полусумматора, который позволяет получить сумму S и перенос R для двух двоичных цифр а и Ь\ R~ab't S = abVa-b = (a\jb) ab . Два возможных вида функции для S соответствуют двум схемам — рис. 49 и 50. Если, как это часто бывает, переменные и их отрицания имеются в распоряжении одновременно, последняя схема принимает вид рис. 51. 1 В отечественной литературе чаще всего пользуются терминами «элемент (схема) «И» и «элемент (схема) «ИЛИ». Эти термину мы сохраним и в дальнейшем. (Прим, ред.) 9?
Как мы это уже ййделй, два полусумматора А/2, Moryt быть объединены для получения п|>лн позволяющего образовать сумму цифр а и b и сигнала пере- носа г из предыдущего кас- када (рис. 52). Мы уже отмечали, что Si и не могут одновременно быть равными 1, так что сигналы переноса Ri и R2 из двух полусумматоров не могут существовать одновременно и могут, следовательно, быть объединены без пред- осторожности. Применение алгебры логики позволяет к тому же легко проверить, что переменные 5 и R яв- ляются именно искомой сум- мой и запоминанием: <$2 = Г 51V Г , НО Si = ab v ab, откуда: __ — — Р = ab ab = эго сумматора с тремя входами, 5 и перенос R для двух двоичных Рис. 49. Символическое обозначе- ние двоичного полусумматора. . 50. Другой вид двоичного полу- сумматора. (так как xvy=xy), - (а V b)(a v Ъ) = (так как ху _ xvy) = ab V ab (так как аа=0 и ЬЬ=О) и 5г= abr V abr V abr v abr= = S(a,^,r) . Рис. 51. Модификация полусуммато- ра рис. 50 в случае, когда имеются два числа и их дополнения. Рис. 52. Двоичный сумматор из двух полусумма- торов. 93
S2 равйо 1, когда одна или Три из Трек переменных a, i и ны 1, и является суммой по модулю 2 этих трех цифр. Точно так же v /?2 = ab V r(ab V ab) = =» ab (г v г) v r(ab V ab) = abr у abr v abr v abr — R(a, b,r) (так как г v г = 1). R является искомым сигналом переноса, равным 1, когда две или три из трех цифр at b и г равны 1; можно еще записать: R = ab V ar V Ьг . Можно также построить полный сумматор непосредственно на основе переменных а, в и г и их дополнений, используя полученные выше выражения для S и R. Эти уравнения, которым соответствует схема на рис. 53, составляют к тому же немедленный перевод ре- зультатов из таблицы восьми возможных случаев, представленной а ь г R 0 0 0 0 0 1 0 0 0 1 0 0 0 1 1 1 1 0 0 0 1 0 1 1 1 0 0 1 1 0 0 0 1 1 1 1 1 1 1 1 1 1 ниже: Этот тип сумматора, раз- новидность ‘ которого мы пост- роили ранее на реле, обладает замечательным свойством ин- вариантности по отношению к операции отрицания: сумма и перенос для отрицаний пере- менных соответственно равны отрицаниям суммы и переноса для этих переменных. Изучение вышеприведен- ной таблицы или преобразова- ние уравнений с помощью пра- вил алгебры Буля позволяет представить сумму S в различ- ных видах, например: S = abr v (а v b V г) Ri; S = (а V b V г) (R V abr) , которые соответствуют схемам на рис. 54 и 55. Вентили. Когда какая-либо схема, реализующая операцию конъюнкции, устроена таким образом, что прохождение сигнала оказывается возможным только при одновременном наличии одного или нескольких сигналов управления, ей дают название «вентиль». Рассмотрим, например, вентиль, управляющий передачей числа из двоичных цифр (рис. 56). В соответствии с использованными эле- ментами сигнал управления либо может быть образован из У после- довательных импульсов (б), либо может представлять собой прямо- угольный импульс с длительностью, равной одному малом) циклу (а); в первом случае, если входной сигнал передается в виде отри- цаний, полученных путем изменения полярности, то на выходе он окажется представленным в обычной форме (в). 94
Рис. 54. Другой вид сумматора на три входа. 95
Рис. 56. Вентиль: сигнал «открывания вентиля может иметь вид либо пря- моугольного импульса с длитель- ностью, равной времени открыва- ния (а), либо серии импульсов про- верки (б) и (в). 96
ПЕРЕКЛЮЧАТЕЛЬНЫЕ СХЕМЫ НА ДИОДАХ Диоды обладают свойством оказывать лярности приложенного к ним напряжения ние проходящему току, что позволяет, в частности, выпрямлять их помощью переменный ток. Идеальный диод будет иметь сопро- тивление, равное нулю для одного большое сопротивление — для другого направления. В тех- нике электронных вычислитель- ных машин в настоящее время используются кристаллические германиевые диоды, которые удобны благодаря незначитель- ным размерам, большому сро- ку службы, повышенному об- ратному сопротивлению и от- носительно большой величине обратного напряжения. На рис. 57 показано схематическое изображение диода, который проводит, если Две основные переключа- тельные схемы на диодах пред- ставлены на рис. 58. Предполо- жим, что двоичные цифры 0 и 1 представлены соответственно потенциалами («—») и (« + »!). в зависимости от по- различное сопротивле- с направления тока и бесконечно y^avovc Рис. 58. Схемы конъюнкции и дизъюнкции на диодах. Рнс. 57. Диод: ток про- ходит, если Vi больше, чем Уг- В схеме на рис. 58,6, для того чтобы соответствующий диод прово- дил, достаточно, чтобы один из входов был под положительным по- тенциалом. Будем считать, что прямое сопротив пенис диодов очень мало по сравнению с сопротивлением нагрузки. Тогда выход .схемы будет находиться также под положительным потенциалом. Эта схе- ма реализует, следовательно, операцию дизъюнкции («ИЛИ»). На- оборот, в случае схемы на рис. 58,а достаточно, чтобы один из вхо- дов был под отрицательным потенциалом, чтобы по сопротивлению нагрузки протекал ток и чтобы вследствие этого выходной зажим находился под отрицательным потенциалом. Для того чтобы на выходе схемы имел место «+», необходимо и достаточно, чтобы все три входа одновременно находились под положительным потенциа- лом: это операция конъюнкции («И»|). 7—895 97
Заметим, что функции этих двух схем Изменятся, если усло- виться представлять цифру 1 отрицательным потенциалом, а циф- ру 0 —* положительным. Схема на рис. 58, б становится тогда схе- мой «И», поскольку три входа должны быть одновременно под от- Рис. 59. Пример переключательной схе- мы на диодах. рицательным потенциалом, чтобы и напряжение на выходном зажи- ме было также отрицательным. Наоборот, схема на рис. 58, а ре- ализует функцию «ИЛИ», поскольку достаточно, чтобы один из входов был под отрицательным потенциалом, чтобы этот потенциал был и на выходе. Эта двойственность соответствует известным соотношениям алгебры логики1: у == ^Ьс __ v 6 V сдля схемы на рис. 58,6; у = а V bV с = abcдля схемы на рис. 58,а; 1 Следующие соотношения представляют собой частный случай теоремы Де Моргана. (Прим, пере в.). 98
Для правильной работы этих схем необходимо, чтобы онй питались от источника с малым индуктивным сопротивлением, а индуктивное сопротивление нагрузки было бы достаточно велико, например, сеточная цепь электронной лампы. Однако с некоторыми предосторожностями можно несколько элементарных -переключатель- Рис. 60. Матричная форма схемы рис. 59. ных схем соединять в каскады, как это показано на рис. 59. Удобно представить эти схемы в форме коммутационных матриц на диодах (рис. 60). Таким образом, можно реализовать любую переключатель- ную функцию, представленную в виде либо дизъюнкции конъюнкций, либо конъюнкции дизъюнкций. Рассмотрим, например, функцию сложения по модулю 2: У— ab V Ьа = а©Ь ; 0 а 0 а 0 четыре возможных случая представлены в следующей таблице: Эта функция реализуется матрицей, показанной на рис. 61. Мы видим, что диоды занимают такие же позиции, что и «1» таблицы. Рассмотрим снова уравнения полного сум- матора, записанные в следую- щей форме: S = abr V abr v abr v abr ; 7? = ab V br v ra . Если располагают одновремен- но переменными и их отрица- 0 b 0 о ь о ниями, то эти уравнения реа- лизуются матрицей на диодах (рис. 62). 99
Рис. 61. Схема суммирования по модулю 2 на диодах. Рис. 62. Двоичный сумматор на диодах. 100
Матричный схемы коммутации могут еще рассматриваться как схемы «перевода» или «дешифрования», так как они позволяют преобразовывать один код в другой. Рассмотрим, например, пере- вод из двоичной формы десятичных цифр в пятипозиционный код, где каждая десятичная цифра представляется двумя «1» и тремя «О». Мы уже указывали на выгодность подобного кода с точки зре- ния управления. Необходимые преобразования иллюстрируются следующей таблицей [Л. 11]: Вход Выход xyz t a b c d e i 0 0 0 0 0 0 0 1 1 0 0 0 1 1 1 0 0 0 0 0 1 0 0 0 1 1 0 0 0 1 1 1 0 0 1 0 0 1 0 0 1 0 0 0 1 0 1 0 1 0 1 0 1 0 0 1 1 0 1 0 1 0 0 0 1 1 1 0 0 I 0 1 1 0 0 0 0 I 0 0 1 1 0 0 1 0 1 1 0 0 Как это часто имеет месл о, переключательные функции, COOT- ветствующие этой таблице, могут быть упрощены применением алгебры Буля1: а = xyzt v xyzt xyzt у xyzt = xyt (z v z) v xyt (z V z) — = 'xyt V xyt; b = xyzt V xyzt V xyzT V xyzt = xzt (y у y) V xyz (t у t) = = xzt V xyz > = {xyzt V xyzt) V {xyzt V xyzt) v xyzt — e = xyzt v xyzt V xyzt v xyzt = = (xyzt v xyzt) V (xyzt v xyzt) v xyzt = xzt v yzt v xyzt . 1 См. табличные и числовые методы упрощения логических функ- ций в книге «Circuits a relais et autowatismes a sequences», Dunod, 1958, гл. V. 101
Эти упрощенные выражения дают в результате матрицу преобра- зования, показанную на рис. 63, в которой диоды представлены в виде соединений между вертикальными и горизонтальными линия- ми. Можно заметить, что все выходные сигналы этой матрицы рав- ны нулю, если комбинация xyzt, не соответствует десятичной циф- ре. Добавочная схема, реализующая функцию a b с d е или a v i v с vd v е, образует схему выявления ошибки. Рис. 63. Схема преобразования двоичного кода xyz в пятипозиционный код aecde, в котором два разряда всегда равны 1. Если отказаться от матричного представления, вышеприве- денные выражения могут еще упроститься и принять следующий вид: а = x(yt у yt); b = z(xt V ху); с = xz(t V у) V xyzt; d = ху (t V z) V xyzt; e = zt (x V у) V xyzt . Избирательные схемы представляют собой особенно простой вид преобразований кодов. Задача здесь состоит в выборе одной из 2Л шин на основании ее номера» записанного в двоичной св- 102
стеме счисления в регистре, емкость которого п двоичных ячеек. Таким образом, для четырех шин следующая таблица устанавли- вает подлежащее реализации соответствие между четырьмя воз- можными состояниями двух ячеек регистра и состояниями четы- рех шин. Эти соответствия задаются четырьмя переключательными функциями: х —a b} z = ab\ y = ab; t = ab. п-2( 4 линии.) вдиадов Рис. 64. Четырехканальный дешифратор. которые легко реализуются с помощью матричной схемы, показан- ной на рис. 64. а ъ ь X У Z t 0 1 0 1 1 0 0 0 0 1 1 0 0 1 0 0 1 0 0 1 0 0 1 0 1 0 1 0 0 0 0 1 На рис. (л«4). Она 65 показана содержит 64 избирательная схема на 16 каналов диода, схематически показанных малень- кими кружочками. Можно уменьшить число диодов до 48, осу- ществляя дешифирование в два приема (рис. 66). Начинают с вы- бора одной шины из четырех в первой группе с помощью триг- геров Во и Bi, а затем одной шины из четырех во второй группе с помощью триггеров В2 и В3. Затем с помощью двух групп из четы- рех шин, среди которых только две шины (по одной в каждой группе) находятся под потенциалом «+», и дешифратора на- 32 дцодахк показанного на рис., 66* выбирают один из 16 выходных 1Q3
каналов. При этом отбирают простые последовательные совпаде- ния вместо четырехкратных совпадений в случае схемы рис. 65. Экономия получается еще больше и для случая п—8 (256 каналов): п=9(16 линий), 69 диода .Линии О о о о о о о о 1 1 1 о о о о 1 1 1 1 о о о о 1 1 1 1 о о 1 1 о о 1 1 и о 1 1 в о 1 1 О 1 о 1 О 1 О 1 О 1 о 1 о 1 о Рис. 65. 16-канальный дешифратор. О 1 2 3 9 5 6 7 8 9 10 11 12 13 19 15 Рис. 66. 16-канальный двухкаскадный дешифратор. 1 1 одна избирательная схема требует 2 048 диодов, а трехкаскад- ная — только 608 диодов. СХЕМЫ НА ЭЛЕКТРОННЫХ ЛАМПАХ Логические схемы. Триод с сопротивлением в цепи ано- да реализует весьма просто операцию отрицания, поскольку его анодное напряжение уменьшается, когда возрастает его сеточное напряжение, и наоборот. Следовательно, положительный импульс, приложенный к сетке, дает на аноде отрицательный импульс (рис. 67). Уровни выходного сигнала, высокий и низкий, будут восстанавливаться до нормальных значений с помощью моста на сопротивлениях, включенного между анодом и источником отрица- 104
ИХ 0 Рис. 67. Схема дополнения на триоде. тельного смещения. Приложение к сетке серии импульсов, пред- ставляющих двоичное число, дает, следовательно, на выходе, если условиться проверять сигналы в начальные моменты, определяемые генератором тактов, как это уже было объяснено (рис. 46), обрат- ный код этого числа. Таким обра- зом, сигнал, получающийся в ре- зультате образования конъюнк- ции сигнала х и тактового сигнала /?, представляет собой серию по- ложительных импульсов, соответ- ствующую сигналу х. Две операции, отрицание и конъюнкция, реализованы схемой на одной лампе, катод которой получает сигнал х, отрицание ко- торого нужно получить, а управ- ляющая сетка — отрицание такто- вого сигнала (рис. 68). Мы уже говорили '(рис. 56), что форма управляющего входного сигнала, .предназначенного для управления прохождением серии импульсов через вентиль зависит от средств образования отрица- ний. Заметим еще, связь, показанная 68, может еще трансформаторной мы уже отмечали ранее (рис. 47), форма выходного сигнала обеспе- чивается диодами. Кроме того, мы увидим ниже (рис. 73), что опе- что прямая на рис. 67 и быть заменена связью. Как Рис. 68. Другой вид схе- мы дополнения. Рис. 69. Схема конъ- юнкции на пентоде. рация отрицания может быть удачно скомбинирована с операцией восстановления амплитуды импульсов. Другие переключательные функции могут быть также реализо- ваны с помощью электронных ламп. Пентод, показанный на рис. 69, 8—895 105
реализует операцию «И». В исходном состоянии управляющая и экранная сетки находятся под отрицательным потенциалом. Анод- ный ток может появиться только в том случае, если они одновре- менно окажутся под достаточным положительным потенциалом. Три Рис. 70. Схемы дизъюнкции на триодах. триода, показанные на рис. 70, реализуют операцию «ИЛИ», поскольку достаточно, чтобы один из/них получил один по- ложительный импульс на управляющую сетку, чтобы по общему катодному сопротив- лению проходил ток и чтобы на выходе появился один по- ложительный импульс. Мы не будеЪ! рассматривать эти схе- мы более подробно, так как интерес к ним быстро ослабе- вает. Восстановители им- пульсов. Проходя через описанные выше сеточные цепи диодов или линии задержки, которые будут рассмотрены в дальнейшем, импульсы подвер- гаются искажениям и ослабле- нию. Когда форма этих импуль- сов становится несовместимой с хорошей работой схем, их не- обходимо «исправить», т. е. по существу заменить их «новыми» им- пульсами от генератора тактов. Операция восстановления схематически представлена на рис. 71: X представляет сигнал, который нужно восстановить, R — сиг- налы генератора тактов, a S — восстановленный сигнал. Эта операция описывается переключательной функцией1: S = XR vS/?. Рис. 71. Восстановление формы импуль- са. 1 Здесь автор допускает неточность. Операция, соответствующая приведенной переключательной функции, не обеспечит восстановле- 106
Первый член соответствует началу восстановления, обеспечивая со- впадение сигнала, который нужно регенерировать, с импульсом такта. Второй — длительности сигнала за счет поддержания вы- ходного напряжения до конца тактового импульса. Это выражение упрощается и приводится к следующему виду: $ = R(X V S) . Рис. 72. Принципиальная схема восстанов- ления на диодах. Рис. 73. Пример восстановителя с транс- форматорной связью. Соответствующая схема показана на рис. 72. Усилитель А отделяет цепь восстановления от схем, питаемых восстановленным сигналом. Он позволяет, кроме того, легко, если имеются два симметричных выхода, образовывать одновременно сигнал S и его отрицание. На рис. 73 показана в качестве примера комбинированная схе- ма динамического элемента для восстановления и образования ния длительности импульса, поскольку сам сигнал S в соответствии с первым членом функции будет существовать только тогда, когда существует сигнал X. Для восстановления длительности необходи- ма операция «задержки», рассматриваемая в теории временных переключательных функций. (Прим. ред.). 8* 107
отрицания. Здесь экономятся два диода, так как операция «И» осуществляется самой лампой усилителя, которая получает на свою управляющую сетку сигнал (XvS), а на катод — дополнение сигнала генератора тактов. Наконец, если восстановленный сиг- нал будет передаваться на некоторое расстояние, то нужно исполь- зовать обмотки с низким полным сопротивлением, а диоды форми- рования подключать к вторичной обмотке повышающего трансфор- матора. Из рис. 71 видно, что сигнал, подлежащий восстановлению, должен слегка опережать тактовый импульс, по которому произ- Рис. 74. Электронный триггер. Рис. 75. Условное обозначение триггера и различные виды его работы. Симметртпте управление Отрицательные импульсы Положительные импульсы ' Несиьшетри чное управление. водится восстановление. Благодаря запаздыванию, которое является результатом прохождения по схемам, предшествующим восстано- вителю, сигнал не будет восстановлен со своей начальной фазой. Как правило, в таких случаях искусственно вводится запаздывание таким образом, чтобы общее запаздывание импульса было немного меньше основного тактового интервала. Восстановленные импульсы оказываются, таким образом, задержанными точно на один так- товый интервал по отношению к входным. Для уменьшения этого запаздывания некоторые машины имеют несколько систем тактовых импульсов, сдвинутых одна по отношению к другой. Операция вос- становления может быть также осуществлена с помощью тран- зистора. Элементарная запоминающая ячейка на триг- гере. Как мы уже указывали, запоминающая ячейка является устройством, обладающим двумя стабильными состояниями, кото- рым произвольно приписывают значения 0 и 1 и способная изме- нять состояние под действием сигнала управления. В дальнейшем мы увидим, что запоминающие ячейки могут быть построены с помощью линий задержки и магнитных сердеч- ников. Ограничимся на время изучением работы и некоторых при- менений электронного триггера. Эта схема (рис. 74) на двух лампах (или на одной двойной) имеет два стабильных состояния, в каждом 108
из которых одна из ламп заперта, а по другой протекает некоторый анодный ток. На схемах мы будем указывать состояние проводи- мости лампы штриховкой. Можно изменить состояние системы или, как говорят, вызвать ее «перебрасывание», подавая отрицательный импульс на сетку проводящей лампы или, наоборот, — положитель- ный импульс на сетку запертой лампы (асимметричное управле- ние), либо подавая отрицательный импульс одновременно на две сетки или на два анода (симметричное управление)1. Эти два спо- соба схематически показаны на рис. 75. При асимметричном способе импульс 1 вызывает переход из со- стояния 0 в состояние 1, тогда как импульс 0 вызывает сброс на нуль. Каков бы ни был способ запуска, в момент срабатывания на аноде пред- варительно запертой лампы получает- ся отрицательный скачок напряже- ния. Положительный скачок наблю- дается также на аноде проводящей лампы. Эти импульсы могут быть преобразованы в экспоненциальные импульсы с помощью дифференциру- ющей /?С-цепочки, как это уже опи- сывалось (рис. 29). В случае асимметричного управ- ления роль конденсаторов связи заключается только в ускорении про- цесса срабатывания; они обеспечива- ют цепь с низким индуктивным со- Рис. 76. Симметричное уп- равление триггерами с по- мощью диодов. противлением для высокочастотных составляющих сигналив, передавае- мых от анодов к сеткам. Напротив, при симметричном управлении наличие конденсаторов связи существенно. Действительно, в мгновения, следующие немедленно за прило- жением отрицательного импульса к двум управляющим сеткам, две лампы запираются. При этом система находится в нейтральном состоянии, правда нестабильном. Не было бы никакой причины для преимущественного перехода в одно определенное состояние, если бы конденсаторы связи не запомнили в некотором роде предыдущее состояние. Действительно, рассмотрим состояние триггера, показан- ное на рис. 74 (левая лампа проводит). Сеточные напряжения от- личаются одно от другого только на несколько вольт, а правый конденсатор заряжен до напряжения, большего, чем напряжение левого конденсатора, на величину, приблизительно равную падению напряжения на сопротивлении нагрузки левой лампы. Рассмотрим теперь состояние сразу после приложения управляющего импульса, когда две лампы заперты и как следствие оба анода находятся под высоким напряжением. Конденсаторы не успели разрядиться, и сетка правой лампы находится, следовательно, под положитель- ным потенциалом по отношению к сетке левой лампы. Именно эта 1 В советской литературе принято называть асимметричное управление «запуском по одному входу», а симметричное управле- ние— «запуском по счетному входу». (Прим. ред.). 109
асимметрия, обусловленная наличием конденсаторов связи, и яв- ляется причиной перехода триггера в состояние, противоположное предыдущему. В случае симметричного управления можно сделать так, чтобы триггер был чувствителен к отрицательным импульсам, приложен- ным симметрично к двум сеткам, но при этом был бы нечувствите- лен к положительным импульсам. Это свойство дискриминации может быть усилено введением управляющих импульсов с помощью диодов (рис. 76), которые осуществляют двойную роль: с одной стороны, они не пропускают положительных импульсов; с другой стороны, они направляют отрицательные импульсы к сетке прово- дящей лампы. СХЕМЫ НА ТРАНЗИСТОРАХ Применение транзистора в качестве комму- татора. Работа транзисторов базируется на свойствах таких полупроводников, как германий и кремний. По сравнению с элек- а) в) Рис. 77. Аналогия между реле и полупровод- никовым триодом, включенным по схеме с общим эмиттером, схема отрицания. тронными лампами они имеют меньшие габариты и потребляют го- раздо меньше энергии. В настоящее время считают, что плоскост- ные триоды обладают характеристиками, достаточно воспроизводи- мыми для практического применения. Рассмотрим каскад с заземленным эмиттером на плоскостном триоде типа р-п-р (рис. 77, а). База образует с эмиттером и кол- лектором два диода, к первому из которых напряжение приложено в прямом направлении, а ко второму — в обратном направлении. Кроме того, обратное сопротивление диода база — коллектор зависит от прямого тока, проходящего через диод база — эмиттер. Это со- противление уменьшается с увеличением тока эмиттера. Работа транзистора аналогична, следовательно, работе вакуумного триода, в котором сопротивление между катодом и анодом зависит от на- пряжения, приложенного к управляющей сетке. Она сопровождается усилением мощности, что позволяет от одного транзистора питать несколько других. Рассмотрим работу схемы на рис. 77, а. Если база соединена с землей, ток базы ie равен нулю, а ток коллектора iK очень мал, так что коллектор практически находится под напряжением пита- 110
ния, равным нескольким вольтам. Если теперь мы подадим на базу отрицательное напряжение в несколько десятых долей вольта, сопротивление между базой и коллектором станет очень малым по сравнению с сопротивлением нагрузки и коллектор окажется замкну- тым на землю. С этой точки зрения транзистор совершенно аналоги- чен реле (рис. 77,6), контактная пластина которого находится под напряжением питания до гех пор, пока реле не воз- буждено, и замкнутой на землю, когда оно возбуж- дено. Эта аналогия позво- ляет легко получать тран- зисторные схемы, подобные релейным1 * Ill. Переключатель- ные с х е м ы. Можно за- метить, что работа схемы на рис. 77,6 сопровождается Рис. 79. Схемы дизъюнкции отри- цания. 777777777 Рис. 78. Прямое соединение двух полупроводниковых триодов. переворачиванием фазы; следовательно, это схема отрицания или дополнения. Если сигнал базы передает двоичное сообщение х, то напряжение коллектора представляет собой х. Можно, например, дать отрицательному напряжению значение 1, а напряжению зем- ли — значение 0. Второй транзистор позволяет восстановить началь- ную информацию х (рис. 78). Следует отметить простоту прямой связи между двумя каскадами, невозможную при вакуумных лам- пах. В схеме «ИЛИ» на реле (рис. 79, а) по сопротивлению нагрузки течет ток, если по крайней мере одно из реле возбуждено. Точно также в варианте на транзисторах (рис. 79, б) протекает ток на- грузки и выходной зажим находится под нулевым напряжением, если по крайней мере один из транзисторов становится проводящим при приложении отрицательного напряжения к его базе. Если х, у 1 R. В. Brown and R. Н. В е t е г, Transistors: a new class of relays, Control Engineering, Dec. 1956. Ill
и z — сигналы базы, то выходной сигнал S определится из соотно- шения 5—-xvyvz = x-y-z . На рис. 80 показаны схема «И» на реле и ее транзисторный вариант. Ток нагрузки может существовать, только если три тран- зистора одновременно становятся проводящими. Ток эмиттера каж- Рис. 80. Схемы конъюнкции—отрицания. Рис. 81. Схемы тригге- ров. дого транзистора, равный сумме токов базы и коллектора, является током коллектора предыдущего транзистора. Для выходного сигна- ла будет справедливо соотношение: S = х-у •? = х v у V z . Элементарная запоминающая ячейка .на триг- гере. Комбинация двух реле или транзисторов, питающих один другой (рис. 81), позволяет образовать элементарную запоминаю- щую ячейку. В схеме на реле, представленной на рис. 81, а, реле 2 возбуждено, и его контакт'замыкает на землю обмотку возбужде- ния реле /. Чтобы заставить систему перейти в противоположное состояние, достаточно замкнуть на мгновение точку В на землю: обмотка реле 2 станет тогда закороченной, его контакт разомкнет- ся, реле 1 возбудится, и ^го контакт зашунтирует обмотку реле 2. После этого можно отсоединить точку В от массы. Предположим также, что транзистор 2 схемы на рис. 81 будет проводящим; его коллектор соединен с землей так же, как и база 112
транзистора /, который оказывается, таким образом, запертым. За- мкнем на мгновение точку А на массу: транзистор 2 запрется, его коллектор вместе с базой транзистора 1 окажутся под .напряжени- ем, .и транзистор 1 начнет проводить, блокируя транзистор 2 путем замыкания его базы на землю. Можно теперь разомкнуть точку А. Использование транзисторов вместо электронных ламп приводит к значительному уменьшению габаритов и потребления энергии, а также и к увеличению надежности. БЕСКОНТАКТНЫЕ МАГНИТНЫЕ СХЕМЫ В устройствах вычислительных машин используются магнитные материалы двух типов. Ферриты или смеси разнородных кристаллов окислов с химической формулой МРгО4, где М—двувалёнтный запоминающей Рис. 82. Принцип действия магнитной ячейки. металл (Си, Mg, Мп, Ni, Zn), характеризуются повышенным объ- емным сопротивлением и пониженной остаточной индукцией. Их используют в виде сердечников тороидальной формы, внутренний, диаметр которых может быть меньше 1 мм, в частности, для по- строения запоминающих устройств матричного типа. С другой сто- роны, используются некоторые специальные сплавы, такие как американский дельтамакс и французский рэктимфи. Они обладают повышенной остаточной индукцией (15 000 гс). Производятся эти сплавы в виде тонких лент, которые наматывают и помещают в керамические каркасы1. Эти материалы, как это показывает рис. 82, обладают характеристикой намагничивания, близкой к пря- моугольной. Такой сердечник может, следовательно, находиться после на-, магничивания в одном из двух противоположных по знаку состоя- ний остаточного намагничивания, каждому из которых можно произвольно Приписать значения 0 или 1. Состояние сердечника может быть проверено приложением импульса напряженности поля 1 На пониженных частотах до нескольких десятков килогерц ферриты значительно проигрывают по сравнению со специальными металлическими сплавами, но они позволяют достигать частот в несколько мегагерц. 113
н Рис. 83. Выходной сигнал на зажи- мах сопротивления 7?, когда входной сигнал В появляется раньше импуль- са генератора тактов. Ht с помощью специальной обмотки. Тогда на второй обмотке ин- дуктируется напряжение, пропорциональное изменению потока. Если проверяемый сердечник находился предварительно в поло- жении 0 (изменение индукции ДВ&), то в выходной обмотке будет индуктироваться сигнал пониженной амплитуды (паразитный сиг- нал или шум заметно большей амплитуды). Если сердечник находил- ся в состоянии 1 (изменение индукции ДВ$), то в выход- ной обмотке будет иметь место полезный сигнал. В дальнейшем мы пренебре- жем шумами. Элемент на маг- нитном сердечнике. Рассмотрим теперь простей- шую схему такого элемента, показанную на рис. 83. Сиг- налы генератора Н прило- жены к первой обмотке. Сердечник в начале нахо- дится в состоянии 0, точка, определяющая его магнит- ное состояние, колеблется периодически между точка- ми А и В. Предположим, что диод пропускает ток через нагрузку только в мо- менты уменьшения магнит- ной индукции. Во время из- менения индукции от А до В на зажимах Ry следова- тельно, получается неболь- шой сигнал, которым мы пренебрежем. Предположим теперь, что между двумя импульса- ми генератора мы приложи- ли ко второй управляющей обмотке сигнал В противо- положной магнитной поляр- ности, способный перевести в D после окончания сигна- ла В. При этом на зажимах R вследствие наличия диода не будет никакого выходного сигнала. Но следующий импульс генератора заставит магнитную индукцию в сердечнике измениться по кривой DBA и вызовет появление полезного сигнала на зажимах R. Таким образом, если сердечник предварительно сигналом В пе- реведен в состояние 1, следующий сигнал генератора вызовет появ- ление импульса в выходной цепи. Кроме того, эта схема представ- ляет собой усилитель мощности, и энергия, передаваемая в нагруз- ку, под действием внешней энергии генератора может стать значительно больше энергии сигнала В. Это позволяет питать несколько сердечников выходным сигналом одного сердечника. Наконец, прямоугольная форма характеристики намагничивания сердечник из состояния Л в С и затем 114
позволяет придать выходному сигналу прямоугольную форму, ана- логичную форме выходного сигнала1. Следовательно, эта схема представляет собой схему восстановления импульсов. Передача, линии задержки на магнитных эле- ментах. Рассмотрим теперь передачу в сердечник Т' двоичного Рис. 84. Передача двоичной информации с одного тора на другой под действием двух сигналов генератора тактов Н и Н'. сообщения, записанного в сердечнике Л под действием сигнала S (рис. 84). Поскольку состояние сердечника может быть проверено только после приложения управляющего сигнала, подобная переда- ча требует применения двух связанных сигналов генератора тактов Н и Н'. В этих условиях приложение к обмотке сердечника Т сиг- нала S в такте Н порождает сигнал S' в такте Н', который в свою очередь порождает выходнбй сигнал S" в такте Н. Выходной сиг- нал S" возникает, следовательно, в том же такте, что и входной 1 Здесь автор допускает неточность. Выходной сигнал будет иметь форму, близкую к форме сигнала генератора, а не входного сигнала. Однако и последнее утверждение справедливо только в предположении об идеально прямоугольной форме характеристики намагничивания и при полном пренебрежении паразитными пара- метрами. (Прим, ред.) 115
сигнал S, но он запаздывает на один тактовый интервал 0. Рис. 84 дает схематическое представление о такой передаче; для каждого сигнала указан в скобках момент его появления. Рис. 85. Магнитное циркуляционное за- поминающее устройство. Объединение в каскад некоторого количества таких схем по- зволяет образовать линию задержки на магнитных элементах. Таким образом, линия из шести сердечников, показанная на рис. 85, вводит запаздывание, равное трем тактовым, интервалам. Если, кроме того, эта линия замкнута сама на себя, она об- разует циркуляционный ре- гистр, в котором непрерывно Рис. 87. Схема дизъ- Рис. 86. Ячейка магнитного цир- куляционного запоминающего устройства. Рис. 88. Схема конъ- юнкции. юнкции. циркулирует двоичная комбинация, вначале введенная сигналами 5. Частным случаем бесконтактного циркуляционного регистра является элементарная запоминающая ячейка (рис. 86), которая передает импульсы генератора тактов Я, начиная с момента, когда она получила импульс в такте И на свой вход 116
Бесконтактные магнитные переключательные схемы. Покажем теперь, как переключательные функции могут быть реализованы с помощью магнитных сердечников. Функция «ИЛИ» (рис. 87). Если один сердечник имеет две управляющие обмотки, так что каждый из сигналов X и У, дейст- вуя изолированно, будет способен перевести его из состояния 0 в состояние 1, то его выходной сигнал представляет собой дизъюнк- цию двух входных сигналов (X или У, или два одновременно). на А(Н) Рис. 89. Схема запреще- Рис. 90. Схема дополнения. ния. Функция «И» (рис. 88). Один сердечник может реализовать операцию конъюнкции, если его характеристика намагничивания дает возможность переводить его из состояния 0 в состояние 1 только под действием любого из этих сигналов. Это возможно в случае применения ферритов, но едва ли возможно для сердечников из металлических сплавов, применение которых является предпочти- тельным в переключательных схемах, работающих на пониженных частотах, по причине большого коэффициента усиления, получае- мого благодаря большой остаточной индукции. Вот почему операция конъюнкции обычно не используется в магнитных переключательных схемах. Она сравнительно просто может быть заменена операцией запрета (XY). Запрет (рис. 89). Действие сигнала X может быть сведено на нет одновременным приложением сигнала У противоположной поляр- ности. Таким образом реализуют функцию XY. В частности, если сигнал X образуется сигналами генератора тактов (рис- 90), выходной сигнал представляет собой обратный коц У, передаваемый в такты Я7, которые легко преобразовать, если это необходимо, с помощью второго сердечника. Схемы пересечения. На рис. 91 показаны две схемы элементов «И», составленные только из элементов «ИЛИ» и «ЗА- ПРЕТ». Первая реализует функцию = АВ . 117
Здесь сигнал А такта Н, задержанный на интервал 0, запре- щается сигналом В, который сам получается путем запрещения сигнала генератора Н' сигналом В такта Н. Вторая схема «И» (рис. 91) реализует функцию А-Са Ё) = А-В . Ее работа ясна из рисунка. Рис. 91. Схемы конъюнкций, используемые только как схемы дизъюнкций и запрещения «Сумма по модулю 2» (рис. 92). Легкость реализации операции запрета имеет особенное значение при построении схем сумматоров по модулю 2: А@)В = А-В v А-В . Комбинация такой схемы со схемой «И», показанной на рис. 91 образует полусумматор (рис. 93). Триггер или элементарная запоминающая ячейка (рис. 94). Дополнение к схеме рис. 86 запрещающего входа So приводит к схеме триггера (рис. 94), которая генерирует сигналы Н, как только она получает импульс Si такта Я и до тех пор, пока она не будет «закрыта» импульсом запрета so такта Н'. Образователь дополнения (рис. 95). Выходной сиг- нал схемы на рис. 95 образуется из сигнала А, имеющего запазды- вание, равное 2в, если триггер (обведенный штрих-пунктиром) находится в состоянии 0, и его обратного кода, если триггер находит- ся в состоянии 1. Переключим теперь триггер, предполагаемый 118
Рис. 92. Схема суммирования по модулю 2. Рис. 93. Полусумматор. W"') Рис. 94. Генератор 1. 119
сначала в состояний 0, с помощью первого импульса1 сигнала, при- ложенного к Л, с помощью связи, показанной прерывистой линией. Этот первый импульс передается без искажения на выход, тогда как остальная часть сигнала А будет передаваться обратным ко- Рис-. 95. Образователь дополнения Рис. 96. Генераторы кодов. 0 дом. Выходной сигнал представляет собой, следовательно, дополне- ние к А. Генератор кодов (рис. 96). На рис. 96 можно видеть несколько примеров применения операции запрета для образования, различных кодов. Матричное запоминающее устройство на маг- нитных сердечниках. Работа матричного запоминающего устройства на ферритовых сердечниках основана на использовании схемы «И» (рис. 88). Торы с внешним диаметром около 2 мм располагаются в виде квадратной или прямоугольной матрицы (рис. 97). Обмотки обра- зуются проводниками, пронизывающими торы и образующими вер- тикальные и горизонтальные шины матрицы. Предположим, что в начале все торы будут в состоянии 0. Предположим также, что приложение положительного импульса к горизонтальной или верти- кальной шине недостаточно для того, чтобы связанные с ней торы Изменили свое состояние. Наоборот, одновременное приложение положительного импульса к горизонтальной и вертикальной шинам 1 Этот первый импульс представляет двоичную цифру наимень- шего разряда. 120
вызывает изменение состояния тора, находящегося в точке их пере- сечения (рис. 88). Наоборот, чтобы проверить состояние тора, нужно приложить одновременно отрицательней импульс к двум связанным с ним шинам. Если тор находится в состоянии 0, то в проводе счи- тывания, пронизывающем все торы последовательно, будет индук- тироваться сигнал с малой амплитудой. Если, наоборот, проверяе- мый тор находится в состоянии 1, он переходит в состояние 0 и Рис. 97. Матричное запоминающее устрой- ство на ферритовых сердечниках. соответствующее изменение потока наводит значительно больший сигнал в проводе считывания. К сожалению, этот процесс считыва- ния разрушает считываемую информацию; если тор находился в состоянии 1, то это состояние должно быть немедленно восстанов- лено добавочными схемами. Должны быть также приняты меры к уменьшению влияния паразитных напряжений, наводимых в проводе считывания неболь- шими изменениями потока, которые имеют место в невыбранных сердечниках вследствие того, что форма характеристик намагничи- вания отличается от прямоугольной. Очевидно, необходимо, чтобы сумма этих паразитных сигналов не оказалась сравнимой с ампли- тудой полезных сигналов. Можно, например, пронизывать торы проводом считывания попеременно то в одном, то в другом направ- лениях таким образом, чтобы паразитные сигналы в среднем взаим- но уничтожались. Мы не рассматриваем подробно этих вопросов, но их техноло- гическая важность тем не менее значительна. Сейчас изготовляются матрицы с несколькими тысячами торов при времени обращения порядка 1 ж-сек. Однако необходимость 121
восстановления начальной информации после считывания не позво- ляет осуществить два последовательных считывания, разделенных промежутком времени, меньшим, чем десяток микросекунд. Мат- ричные системы удобны для построения параллельных запоминаю- щих устройств. Тогда используют столько же матриц, сколько раз- рядов в слове. Цифры одного и того же числа занимают одинаковые позиции в различных матрицах. В настоящее время рассматривается возможность конструиро- вания быстродействующих запоминающих устройств емкостью по- рядка миллиона двоичных цифр. Среди усовершенствований, ожидаемых в ближайшем будущем в области матричных запоминающих устройств на ферромагнетиках, укажем, в частности, на предстоящий выпуск фирмой RCA кера- мических печатных пластин с отверстиями, каждое из которых позволяет записывать одну двоичную цифру. Таким образом, полу- чают плотность информации более чем 50 двоичных цифр на 1 см2 с временем обращения в несколько десятков долей микросекунды. Запоминающие устройства на тонкой магнит- ной пленке. Новая техника, основанная на использовании тон- ких магнитных пленок и печатных схем, обеспечивает простое и автоматическое производство матричных магнитных запоминающих устройств с временем обращения порядка наносекунд, способных работать в более широкой области температур, чем ферриты1. Слой ферромагнитного материала (железо-никелевый сплав) о толщиной в 2 000 А наносится распылением в вакууме при наличии магнитного поля на круглый стержень из горячего стекла диамет- ром 5 мм. Предпочтительное направление намагничивания совпа- дает с осью стержня (рис. 98). Петля гистерезиса имеет прямо- угольную форму в этом направлении и почти линейную — в перпен- дикулярном направлении. При отсутствии внешнего магнитного поля магнитный диполь, ориентированный по предпочтительному направлению, имеет два стабильных состояния, соответствующих ориентациям NP (состояние Р или 1) и PN (состояние N или 0) на рис. 98. Если приложено внешнее магнитное поле, то оно вызывает поворот диполя, который после снятия внешнего поля возвращается в ближайшее положение Р или N. Таким образом можно изменять информационное содер- жимое ячейки. •Рис. 98 показывает, как может быть осуществлена операция считывания и записи. Состояние ячейки проверяется с помощью управляющего поля считывания, которое стремится установить диполь в направлении R. Вращение от N и R индуктирует отрица- тельный сигнал в выходном проводнике, а вращение от Р к R — не- большой отрицательный сигнал, сопровождаемый большим положи- тельным сигналом. После снятия поля считывания диполь возвра- щается в состояние N, что вызывает индуктирование другого положительного сигнала в выходном проводнике. Если диполь был вначале в состоянии Р, нужно, следовательно, восстановить это состояние, разрушенное при считывании. Операция записи требует двух полей: одного поля управления записью и поля информации 0 или 1. Поле информации 0 вычитается из поля записи, в то время 1 В i 11 m a n n, Using thin films in high-speed memories, Electro- nics, Join 1959, 5. 122
Чтение Запись Команда на запись или чтение Информация Запись Q .Запись f Выход и ' Чтение О < к Чтение 1 Р ПроВодник команды на чтение и запись Проводник информации записи к/ Рис. 98. Запоминающая ячейка Предпочтительное направление Проводник выхода Поле чтения на тонкой магнитной пленке. I
как поле информации 1 добавляется к нему. Напряженность поля записи равна 2/3 магнитного порога, а напряженность поля инфор- мации — »/з. Во время считывания нуля диполь остается в состоянии 0; когда считывают 1, он принимает положение W, затем направление Р после снятия полей. В действительности дело обстоит несколько сложнее, и одна двоичная ячейка состоит из двух стержней, а не из одного. СХЕМЫ НА ПЕРЕМЕННОМ ТОКЕ Феррорезонансные схемы. Хотя описание явления фер- рорёзонанса имело место в публикациях, появившихся в начале века, только в 1952 г. после работ проф. Гарсия Сантесмаса из Мадридского университета в Лаборатории вычислительной техники Рис. 99. Последова- тельная феррорезо- •нансная схема. стоты на характери- стики параллельной феррорез онансной схемы. Рис. 100. Параллель- ная феррорезонанс-ная схема. Гарвардского университета, возглавляемой Г. Айкеном, и работ Исборна внимание было привлечено к возможностям, открываемым феррорезонансом для реализации триггеров и переключательных схем для цифровых автоматических вычислительных машин. Работы •в этом направлении продолжаются в лабораториях Института элек- тротехники и автоматики Мадридского университета под руковод- ством проф. Сантесмаса, так же как в исследовательских лабора- ториях фирмы IBM в Цюрихе. В линейной колебательной схеме каждому значению тока соот- ветствует определенное значение напряжения, и наоборот. Дело обстоит иначе, если один из элементов схемы, как правило, индук- тивность, обладает нелинейной характеристикой. Таким образом, в схеме с последовательно включенными элементами, питаемой на- пряжением с постоянной амплитудой (рис. 99), может существовать область работы, в которой для одного и того же напряжения воз- можны два различных устойчивых режима. Точно так же для па- раллельной схемы, питаемой током постоянной величины (рис. 100), возможны два устойчивых режима для одной и той же величины тока возбуждения. Наличие этих двух режимов зависит от частоты, □сак это показано на рис. 101 .для параллельной схемы. 124
Эти характеристики могут быть построены на основании свойств сердечников простым графическим методом. Для построения триг- гера с асимметричным управлением достаточно одного сердечника. Но для построения триггера с симметричным управлением, обра- зующего двоичный каскад, нужны уже две ветви, соединенные по- следовательно или параллельно дуктивного сопротивления (рис. с помощью соответствующего ин- 102). С другой стороны, для по- дачи управляющего сигнала к сердечнику, находящемуся в состоянии «низ»1, необходимы диоды. Смещение для этих дио- дов образуется путем выпрям- Рис. 103. Влияние сме- щения на характеристи- ки параллельной ферро- резонансной схемы. Рис. 102. Феррорезонансные триггеры (принципиальная схема). ления тока несущей частоты. Управляющие сигналы могут подавать- ся либо на самостоятельные раздельные обмотки, либо на один про- вод, пронизывающий оба сердечника, либо через индуктивную связь со специальной обмоткой, не связанной с сердечником. Может ока- заться выгодным также использовать специальные сердечники с не- сколькими магнитопроводами. Такие сердечники получили название «магнисторов»1 2 (см. ниже). Подобные элементы могут использовать сердечники с любым числом магнитопроводов, большим двух. Та- ким образом, можно строить кольцевые счетчики на магнитных сердечниках. В работах Г. Сантесмаса было показано, что имеется также возможность построения схемы триггера на одном сердечнике, по ко- торому протекает постоянный магнитный поток смещения. Форма характеристики элемента зависит от величины смещения, как это показано на рис. 103 для случая параллельного соединения. Если схема находится в состоянии А и ток в обмотке смещения изменяет свою величину от Idc\ до 7^2, то состояние А перестает быть устой- 1 Состоянием «низ» автор называет такое состояние ферроре- зонансного элемента, когда напряжение на индуктивности соответ- ствует более низкому из двух возможных значений. (Прим, ред.) 2 Элементы, основанные на сердечниках с несколькими магни- топроводами, называются также трансфлюксорами. Это название более распространено, и им обычно пользуются в отечественной литературе. (Прим, ред.) 125
чйбкм, и схЫа пбсйе возврата к начальным условием перёхоДиТ в состояние В. Наоборот, для перехода из состояния В в состояние А величина тока, текущего в обмотке смещения, изменяется qt Ida до Ides. Для того чтобы избавиться от нечетных гармоник, индуктируе- мых в управляющей обмотке и обмотке смещения, необходимо для Рис. 105. Феррорезонансный триггер на траис- флюксоре. построения одного триггера использовать четыре сердечника. Го- раздо удобнее применить специальную магнитную цепь, как, напри- мер, магнистор. Как показано иа рис. 104, поток, вызываемый об- моткой возбуждения, на который наложен поток смещения, проте- кает в основном в направлении линии напряженности 1. Поток, возбуждаемый управляющей обмоткой, протекает вдоль линий 2 и 3. Часть управляющего потока 3 прибавляется к потоку возбужде- ния, в то время как часть управляющего потока 2 вычитается из потока возбуждения. Благодаря этому напряжение, индуктируемое в управляющей обмотке изменениями потока возбуждения, не со- держит нечетных гармоник и, в частности, составляющей основной частоты. Таким образом, имеется возможность построения схемы триг- гера на единственном магнисторе (рис. 105), работающей с часто- той переключения до 600 кгц при несущей частоте 8,5 мгц. На ос- 126
нове такого эЛейен1а Motyt стройться схемы обыкноВеййых и На- капливающих счетчиков. Параметрон. Параметрон представляет собой переключа- тельный элемент, еще недостаточно хорошо известный в Европе и заслуживающий того, чтобы мы остановились несколько более под- робно на его описании, Принцип действия параметрона основан на параметрическом воз- буждении колебаний в цепи, один из элементов которой, индуктив- ность или емкость, периодически изменяет свою величину под воз- Возбуждение (постоянный тон и перо менный гМгц) Рис. 106. Схема параметрона. действием внешнего .возмущения. Параметрические колебания, име- ющие частоту, меньшую частоты возбуждения, могут иметь две раз- личные фазы по отношению к некоторой опорной фазе, 0 или л. По желанию можно установить на выходе параметрона любую из этих фаз с помощью «внешнего сигнала, подаваемого до начала возбуждения параметрических колебаний. Схема параметрона показана на рис. 106. Переменная индуктив- ность L составляется из двух обмоток, намотанных на ферритовых сердечниках с внутренним диаметром 2 мм. Трансформатор Т вы- полнен на ферритовом сердечнике с внутренним диаметром 4 мм. Приложение к индуктивности L периодического сигнала возбужде- ния с частотой 2 мгц, наложенного на постоянный ток смещения, вызывает появление параметрических колебаний частоты 1 мгц, фа- за которых (0 или тс) определяется фазой входного сигнала. Ампли- туда параметрических колебаний постоянна и не зависит от фазы входного сигнала. Отношение амплитуды выходного сигнала к ам- плитуде входного сигнала может достигать значений 60—70 дб. Рис. 107 «иллюстрирует метод передачи информации по цепи, состоящей из последовательно включенных параметронов. Токи воз- * Это утверждение автора справедливо только для того случая, когда в результате параметрического возбуждения генерируется первая субгармоника частоты возбуждения. В общем случае может генерироваться любая субгармрника. Например, если частота пара- метрических колебаний будет в 3 раза ниже частоты возбуждения, 127
Рис. 107. Передача информации в цепи параметров. Т ’ • । Рис. 108. Трехфазные сигналы возбуждения для це- пи параметров (рис. 107). tOI 201 301 102 202 302 103 Рис. 109. Условное обозначение схемы на рис. 107. буждения с частотой 2 мгц разделены на три группы: /, 11 и ///- Относительное расположение этих групп во времени показано на рис. 108. То обстоятельство, что соседние группы перекрываются, обеспечивает возможность передачи информации от параметрона, питаемого током одной группы, к параметрону, питаемому током следующей группы. Длительность периода Т соответствует частоте 10—30 кгц. На рис. 109 дано символическое обозначение цепи параметро- нов, показанной на рис. 107. На рис. ПО показаны обозначения ос- новных переключательных элементов. Операция дополнения образует- то эти колебания смогут иметь три различные фазы относительно опорной и т. д. Выбор данной субгармоники осуществляется на- стройкой индуктивности с помощью конденсатора, причем обычно конденсатор подключается параллельно выходной обмотке, а не входной, как показано у автора. (Прим. ред.). 128
ся просто взаимным переключением концов обмотки входного тран- сформатора. Схема порогового элемента не имеет аналогов среди элементов, выполняемых .на основе других деталей. 101 Рис. НО. Основные переключательные схемы на па- раметронах. ЛарамЕтронь> Рис. 111. Матричное запоминающее устройст- во на ферритовых сердечниках со считыванием без стирания. Матричное запоминающее устройство на фер- ритовых сердечниках со считыванием без раз- рушения. Тороидальные сердечники с внутренним диаметром 1 jhjh пронизываются шинами таким образом, что они образуют матрицу (рис. 111). Каждый сердечник может находиться в двух состояниях, соответствующих значениям остаточной индукции и —Вг (рис. 112). Считывание производится путем пропуска- ния по шине X, соответствующей выбранному сердечнику, тока с частотой 500 кгц и путем определения фазы второй гармоники напряжения, индуктируемого через посредство сердечника в соот- ветствующей шине Y. В зависимости от состояния сердечника эта фаза может быть либо 0 либо тс. Таким образом, считываемый сиг- 9—895 129
Рис. 112. Характеристика на- магничивания сердечника рис. 111 Рис. 113 нал может быть непосредственно использован в качестве входного сигнала параметрона. Запись двоичного сообщения в данный сердечник осуществляется путем (Приложения сигнала с частотой 1 мгц к шине Y и сигнала с частотой 500 кгц к шине X. Из рис. 113 видно, что в результате сложения этих сигналов образуется положительный импульс, пере- водящий сердечник в состояние Заменяя фазу сигнала частоты 1 мгц на противоположную, мож- но получить отрицательный импульс, переводящий сердечник в со- стояние —Вч. Из сказанного ясно, что описанный метод обладает следующими преимуществами: во-первых, используются только сигналы перемен- ного тока, во-вторых, при считывании не разрушается информация, хранящаяся в сердечниках, и, наконец в-третьих, схема легко согла- суется с параметронами. СХЕМЫ НА СВЕРХПРОВОДЯЩИХ ЭЛЕМЕНТАХ (КРИОТРОНЫ) Все металлы при охлаждении их до очень низких температур проявляют свойство сверхпроводимости, которое состоит в том, что при понижении температуры ниже определенного значения, различ- ного для разных металлов, но находящегося в пределах от 2 до 8° К, их электрическое сопротивление резко падает до с трудом измеримой величины. С другой стороны, явление сверхпроводимости зависит также от магнитного поля, возбуждаемого в металле, как это видно из рис. 114. Если температура металла несколько ниже значения, соответствующего появлению сверхпроводимости, при от- сутствии магнитного поля (пунктирная линия), то, как видно из рисунка, достаточно небольшого магнитного поля, чтобы вывести металл из области сверхпроводимости. Криотроном называется переключательный элемент, использу- ющий описанное явление (рис. 115) .и состоящий из отрезка прово- 130
да, вокруг которого расположена обмотка, обтекаемая током управ- ления. При отсутствии тока управления сопротивление отрезка про- вода практически равно нулю, но три наличии управляющего тока оно приобретает конечное значение. Криотрон ведет себя, таким образом, как размыкающий контакт электромеханического реле. На приводимых ниже схемах криотроны будут обозначаться символами, показанными на рис. 115,6. Направление управляющего тока не ока- зывает никакого влияния на работу устройства. Криотроны работают при температуре кипения гелия, равной 4,2° К. Отрезок (провод- ника изготовляется из ниобия, критическая температура для которого ‘при отсутствии маг- нитного поля только на не- сколько десятых долей граду- са выше указанной. Управля- ющая обмотка изготовляется из тантала, у котрого критиче- ская температура близка к 8° К, т. е. достаточно высока для того, чтобы при всех ис- пользуемых значениях магнит- ного -поля .материал оставал- ся в состоянии сверхпроводи- мости. В некоторых эксперимен- тальных схемах достигались длительности переключения по- рядка 0,1 мксек* На рис. 116 показано не- Рис. 114. Влияние магнитного по- ля на область сверхпроводимости. сколько схем переключатель- ных элементов, использующих криотроны и построенных ана- * Криотрон благодаря сравнительно большим па- разитным индуктивностям обладает весьма вязким бы- стродействием порядка 1 мсек и выше. Длитель- ность переключения поряд- ’ ка долей микросекунды до- стигалась при работе с эле- ментом персистатроном, так- же использующим явление сверхпроводимости, но вы- полненным на основе тон- ких проводящих пленок и имеющим принцип действия, отличный от криотрона. (Прим, ред.) /Проводник 0------- Z/£/7d управления 0-------- Рис. 115. Криотрон и его условное обозначение. 9* 131
логично соответствующим релейным схемам. На (рис. 116,а показа- на схема, реализующая операцию дополнения и имеющая «несколько выходов. Эта схема аналогична реле с .несколькими размыкающими контактами. Схема, показанная на рис. 116Д соответствует разо- мкнутой цепи, если хотя бы одна из управляющих обмоток обте- кается током. Таким образом, если используются все три обмотки* схема реализует функцию АВС. Значит, если образовать дополнение к каждому входному сигналу, то будет реализоваться обычная опе- рация конъюнкции, как показано на рис. Г16,в. Образование дополне- ния к выходному сигналу позволяет реализовать операцию дизъюнк- Рис. 116. Несколько переключательных схем на криотронах. ции, как показано .на рис. 116, г. Наконец, схема триггера, показан- ная на рис. 116, д, представляет собой элементарную запоминающую ячейку. Ток, идущий от источника питания, разветвляется по двум проводникам, каждый .из которых соединен последовательно с об: моткой управления другого криотрона. Система обладает двумя устойчивыми состояниями, в каждом из которых один из проводни- ков проводит, а второй — нет. Действительно, ток, протекающий по обмотке, блокирует прохождение тока по проводнику, связан-, ному с этой обмоткой. ПРИМЕРЫ ПРИМЕНЕНИЯ ТРИГГЕРОВ Выше мы видели, что схемы триггеров или элементов, обладаю- щих двумя стабильными состояниями, могут строиться на основе электронных ламп, транзисторов, магнитных сердечников и криотро- 132
нов. В дальнейшем на схемах мы будем изображать триггеры, как показано на рис. 117, с помощью прямоугольника, разделенного на две части, причем заштрихованная часть соответствует проводя- щей лампе, проводящему транзистору и т. д. Управляющие сигналы могут подаваться или на одну половину триггера (асимметричное управление), или одновременно на обе половины (симметричное управление). В ^последнем случае имеется возможность либо за счет свойств самой схемы, либо с помощью Импульсы счета Левый анод Вход Левый анод В/ вход Bz Левый анодв2 Рис. 117. Двоичный счетчик. добавочных диодов сделать триггер чувствительным к импульсам одной определенной полярности. Хотя примеры, приводимые «иже, относятся каждый раз к какому-либо определенному типу тригге- ров, терминология, используемая в этом параграфе (анод, сетка и т. д.), имеет целью ориентировать все высказываемые соображения на случай триггеров с электронными лампами. Счетчики. Свойство дискриминации входных импульсов по знаку дает ‘возможность строить двоичные счетчики путем последо- вательного соединения некоторого количества триггеров (рис. 117), каждый из которых управляется симметрично сигналом, снимаемым с анода предыдущего триггера. Например, напряжение на левом аноде триггера Во имеет форму прямоугольных импульсов, следую- щих с частотой, в 2 раза меньшей частоты входных импульсов этого триггера. Дифференцирование этого сигнала 7?С-цепочкой связи приводит к получению последовательности импульсов попеременно то положительных, то отрицательных. Положительные импульсы не воздействуют на триггер благодаря чему этот триггер будет перебрасываться 1 раз на каждые два переброса Во и т. д. Можно построить также систему с п стабильными состояниями или схему пересчета на п, соединяя в кольцо п триггеров с асим- 133
Рис. 118. Схема пересчета на три. -----ИМПЦЛЬСЬ! -----Статические напряжения Рис. 119. Регистр параллельного дей- ствия на триггерах. Рис. 120. Запись в регистре на тригге- рах числа, передаваемого последова- тельно. 134
метричным управлением. В состоянии, изображенном на рис. 118, только триггер Во чувствителен к входным отрицательным импуль- сам. Благодаря этому он перебросится под воздействием первого же входного импульса и .в свою очередь заставит переброситься триггер Вь посылая отрицательный импульс на сетку его левой лампы, которая проводила в исходном состоянии. В этот момент состояние кольца переместится на одну позицию вправо. Триггер Bi играет теперь роль, которую первоначально играл триггер Во, и т. д. Легко построить схему пересчета на 10 или декаду, обладаю- щую десятью стабильными состояниями, управляя пентадой или схемой пересчета на 5 выходными сигналами одного триггера с симметричным управлением. Регистры. Покажем теперь, как можно использовать триг- геры для построения регистров. Регистр емкостью W двоичных Рис. 121. Последовательное считывание содер- жимого регистра на триггерах. разрядов состоит из N триггеров (рис. 119). Содержимое этого регистра может выдаваться -во внешнюю цепь с помощью 7V венти- лей, соединенных с выходами 1 триггеров (с анодами ламп, не про- водящих (В состоянии 1). На вторые -входы этих вентилей поступают импульсы чтения. Для записи -в регистр параллельного числа доста- точно подать соответствующие импульсы на входы 1 триггеров. Даже в машине последовательного действия часто оказывается необходимым записать N-разрядное число, передаваемое последо- вательностью из А/- импульсов, в параллельный регистр. Такая не- обходимость может возникнуть, например, при управлении комму- татором или дешифратором. Для такой записи последовательность из N импульсов посылают в линию задержки, состоящую из N—1 ячейки. Каждая ячейка вносит запаздывание, равное периоду сле- дования импульсов 6 (рис. 120). В тот момент, когда первый импульс последовательности поступает на выход последней ячейки линии задержки, остальные импульсы также поступают на выходы соответствующих ячеек. Теперь достаточно подать один управляю- щий импульс на входы W вентилей, чтобы все «импульсы, представ- ляющие число, оказались переданными параллельно на входы 1 УУ-разрядного триггерного регистра. С другой стороны, информа- ция, хранящаяся в (параллельном регистре, может быть преобразова- на в последовательную форму, если последовательно открывать выходные вентили с помощью импульсов, образуемых секциониро- ванной линией задержки (рис. 121). 135
Эти операции, называемые также иногда операциями статиза- ции и динамизации, 'могут выполняться также с помощью сдвигово- го регистра, показанного на рис. 122. Для его построения доста- точно соединить выходы 1 каждого триггера со входами 1 после- дующего триггера с помощью элементов задержки и элементов, пропускающих импульсы только одного знака (положительного в случае, показанном на рис. 122). Если ко всем триггерам одно- временно приложить импульс сброса на нуль, то те из них, которые предварительно находились в состоянии 1, вызовут переброс сле- дующих непосредственно за ними триггеров, если они находились перед этим в состоянии 0. Таким образом, комбинация единиц и нулей, записанная в триггере, после каждого импульса сброса Запись t=0 t=e t = 2d t=30 о о I 1 о о и Рис. 122. Регистр сдвига. на нуль будет оказываться сдвинутой на одну позицию вправо. Последовательность N импульсов сброса на нуль вызывает по- явление на выходе «чтения» содержимого регистра в форме после- довательности импульсов и в то же время сброс на нуль самого регистра. С другой стороны, если на вход «запись» подать после- довательность из N импульсов, представляющую Af-разрядное дво- ичное число, а в промежутках между этими импульсами подать N импульсов сброса на нуль, то число окажется записанным в регистре и, следовательно, преобразованным в параллельную форму. Подобное устройство может служить, с одной стороны, для преоб- разования формы представления числа из последовательной в па- раллельную и из параллельной в последовательную и, с другой стороны, для изменения скорости передачи числа. В последнем слу- чае достаточно использовать различные скорости записи и считы- вания. Структура параллельного запоминающего устройства на триггерах. На рис. 123 показано не что иное, как электронный вариант релейной схемы рис. 21. Пусть, на- пример, нужно передать в течение фазы Ф1 содержимое регистра /?0 в регистр запоминающего устройства по команде ML Под управле- нием счетчика адресов команд на выходе s0 коммутатора запоминаю- щего устройства установится уровень. «+», в то время как на всех 136
остальных выходах будет иметь место уровень «—». Поступление импульса на вентили, управляющие чтением, приведет к откры- ванию вентилей чтения триггеров регистра Ro и к параллельной передаче содержимого этого регистра в шины р. Если к этому мо- менту вентили записи регистра команды оказываются открытыми импульсом с& число, прочитанное из регистра /?0, запишется в ML Рис. 123. Передача содержимого триггеров в регистр команд. Импульсы и играют ту же самую роль, что и токи возбужде- ния одноименных реле в релейной машине, рассмотренной выше. Работа этой машины существенно ничем, за исключением ско- рости, не отличается от работы параллельной электронной вычис- лительной машины. Просто в последнем случае контакты заменяют- ся вентилями, управляемыми синхронизирующими импульсами либо непосредственно, либо с помощью дешифратора команд. Накапливающий счетчик. Описанный способ передачи используется в схеме параллельного накапливающего счетчика, по- казанной на >рис. 124. В этом устройстве сумма содержимого ре- 10—895 137
гистра А и вновь поступающего числа предварительно помещается в регистр S, а затем уже передается в регистр А, заменяя ранее хранившееся там число. Операция выполняется за четыре такта. Вначале регистр S сбрасывается на нуль с помощью импульса о, затем в этот регистр при открывании вентилей с помощью импульса 1*2 поступают разряды суммы, вычисленные сумматорами. К этому Поступающие числа Рис. 124. Двоичный сумматор. Поступающие числа Рис. 125. Преобразование двоичного счетчика в сумма- тор; поступающие числа складываются последовательно. моменту регистр А сбрасывается на нуль импульсом h- Наконец, в результате открывания вентилей импульсом ц, содержимое ре- гистра S передается в регистр А. Другие типы параллельных накапливающих счетчиков. Двоичный счетчик, показанный на рис. 117, может быть легко преобразован в накапливающий счетчик, если снабдить каждый каскад независимым входом, как показано на рис. 125. Последовательные разряды числа, подлежащего суммированию с содержимым счетчика, последовательно в форме импульсов пода- ются на соответствующие входы. После подачи каждого импульса 138
должно пройти некоторое время, достаточное для распространения сигнала переноса в худшем случае через все каскады до самого конца регистра: 1 1 1 / VV\ 1111 + 1 1 О О 0 0 Простота накапливающего счетчика такого типа, достигаемая ценой малого быстродействия, объясняется тем обстоятельством, что каждый триггер здесь выполняет две различные функции. С Рис. 126. Каскад двоичного сумматора со схемой переноса. одной стороны, он автоматически запоминает сумму по модулю 2 от числа импульсов, пришедших на его вход, с другой стороны, каждый раз, переходя из состояния 1 ib состояние 0, он генерирует сигнал переноса. Посмотрим теперь, как можно усложнить схему, чтобы обеспе- чить одновременность передачи сигналов переноса. В схеме на рис. 126 разряды b числа, подлежащего суммированию, поступают параллельно на переключательную схему, образующую суммы по модулю 2 разрядов b и сигналов переноса г от предыдущих каска- дов. Эта же схема образует сигналы переносов для трех перемен- ных а, b и г по формуле = br V a (b V г) . По истечении интервала времени, достаточного для того, чтобы в самом худшем случае сигнал переноса успел распространиться от одного конца регистра к другому, на выход вентиля РА поступает импульс суммирования, и в результате этого на симметричный вход триггера поступает импульс в том случае, если сумма по модулю 10* 139
2 сигналов b и г равна единице. Необходимо отметить, что во всем, что касается распространения сигналов переноса, данная схема полностью аналогична релейной схеме, показанной на рис. 10. ЛИНИИ ЗАДЕРЖКИ; ЦИРКУЛЯЦИОННЫЕ ЗАПОМИНАЮЩИЕ УСТРОЙСТВА Принцип действия. Рис. 127 иллюстрирует принцип дейст- вия линии задержки, способной хранить Af-разрядное последова- тельное двоичное число. В сущности говоря, линия задержки обус- ловливает запаздывание во времени поступающих на ее вход им- пульсов на величину, несколько меньшую W0, где 0 — длительность импульсы Рис. 127. Принципиальная схема цирку- ляционного запоминающего устройства. основного тактового интервала. Импульсы, поступающие с выхода линии, восстанавливаются .в результате процесса, описанного выше, и снова подаются на ее вход. Подобное устройство представляет собой, следовательно, динамический регистр, в котором записанное в него число, представленное последовательностью импульсов, не- прерывно циркулирует в замкнутой цепи. Для записи числа необхо- димо на время одного малого цикла открыть вентиль Р2 и закрыть вентиль регенерации Pi. Поступающее на вход число запишется в результате этого на место предыдущего. Для чтения без разру- шения необходимо открыть вентиль Рз на время одного малого цикла. Если, как это имеет место в общем случае, первый импульс последовательности представляет младший разряд, введение до- полнительного элемента задержки длительностью 0 приведет к сдвигу содержимого регистра на одну позицию в сторону старших разрядов. Если одна и та же линия задержки содержит несколько чисел, то полный период циркуляции в ней называется большим циклом. Входной и (выходной вентили должны в этом случае открываться на время одного малого цикла, соответствующего числу, подлежа- щему записи или чтению.. Положение этого малого цикла внутри большого цикла представляет собой «временной адрес» соответст- 140
вующего числа. Если запоминающее устройство состоит из совокуп- ности одинаковых линий задержки, номер линии, содержащей данное число, будет называться его «пространственным адресом». Выбор адреса в запоминающем устройстве, состоящем из не- скольких линий задержки, разбивается, следовательно, на две раз- личные операции: операцию выбора пространственного адреса, ко- торую -мы уже -изучали, и операцию выбора малого цикла внутри больп’ого цикла этой линии или операцию выбора временного ад- Ыалый Параллельмыи регистр О Малый цикл Рис. 128. Дешифратор малого цикла. реса. Эта последняя операция может выполняться, например, спо- собом, показанным на рис. 128. Порядковый номер малого цикла, подлежащего выбору, записывается в параллельном «-разрядном триггерном регистре, управляемом коммутатором пространственного выбора. Этот последний выбирает один из 2Л выходов распредели- теля малых циклов, представляющего собой по существу кольцевой 2л-разрядный счетчик, управляемый специальными импульсами, фиксирующими начала малых циклов. На соответствующем -выходе действует уровень « + » в течение выбранного цикла. Этот уровень может быть использован для открывания вентилей считывания или записи избранной линии в зависимости от сигнала дешифратора команд. Другой -метод выбора временного адреса показан на рис. 129. Здесь номер малого цикла, подлежащего выбору, записывается в динамический регистр, выполненный на линии задержки. Другая линия задержки работает в схеме счетчика малых циклов, которую мы рассмотрим ниже. Содержимое этого счетчика каждый раз оказывается равным номеру следующего малого цикла. Совпадения содержимых этих двух линий фиксируются специальной схемой, вырабатывающей на своем выходе уровень «+» в течение всего следующего за совпадением малого цикла. Принцип действия опи- 111
санного устройства иллюстрируется на рис. 130 для случая, когда избирается временной адрес 7. При обращении к рисунку не надо забывать, что первым в последовательности импульсов передается младший разряд. Рис. 129. Дешифратор малого цикла на счетчике и схема совпадения. Малый Выбранный цикл Малые циклы №6 WL 7 ол 7 Л-Л.П-. ; П П П 7 ; 7 _____nJjL_ 8 9 №7 Выбранный цикл Рис. 130. Диаграмма работы дешифратора мало- го цикла рис. 129. Циркуляционное запоминающее устройство, держки в котором равна одному Рис. 131. Элементарное цир- куляционное запоминающее устройство. длительность за- тактовому интервалу, представляет собой элементарную запоминаю- щую ячейку (рис. 131). Если та- кая ячейка находится в состоя- нии 1, в замкнутой цепи цирку- лирует один единственный им- пульс. Для того чтобы перевести ее в состояние 0, посылают сиг- нал запрета на вентиль регенера- ции Р. Для того чтобы ячейку, находящуюся в состоянии 0, пере- вести в состояние '1, на вход сме- стителя М посылают импульс. На другой вход этого смесителя .по- ступает задержанный импульс, подлежащий регенерации. Сово- купность из N элементарных за- поминающих ячеек представляет собой параллельный регистр, экви- валентный совокупности W триггеров, е той разницей, что храняща- яся ® нем информация доступна для чтения не все время, а только 142
в отдельные моменты, определяемые синхронизирующими импуль- сами. Практические конструкции. С технической точки зрения циркуляционные запоминающие устройства отличаются друг от друга по типу, линий задержки. Электро-магнитные линии задерж- ки с сосредоточенными или распределенными параметрами (рис. 132) обычно используются только в схемах последовательных Рис. 132. Электромагнитная линия задержки. Магнит Передающая Приемная катушка катушка Рис. 133. Магнитострикционная (никель) ли- ния задержки. Рис. 134. Пьезоэлектрическая (кварц) линия задержки. регистров или элементарных запоминающих ячеек. Эти линии вно- сят настолько большие затухания и искажения сигналов, что схемы регенерации должны устанавливаться не только в точке замыкания кольца, но и в ряде промежуточных точек. Для построения цирку- ляционных запоминающих устройств значительной емкости исполь- зуют явление распространения упругих волн в твердых и жидких веществах: никеле, кварце или ртути. В случае никеля для возбуж- дения упругой волны под воздействием магнитного поля использу- ется явление магнитострикции. Полученная таким образом упругая волна распространяется вдоль никелевой проволоки или трубки. На противоположном конце благодаря обратному явлению в считы- 143
вающей катушке, помещенной -в постоянное магнитное поле, обра- зуется электрический сигнал (рис. 133). Аналогичным образом пьезо- электрический эффект позволяет при приложении электрического поля образовывать упругую волну на одном конце кварцевого стержня. Обратный пьезоэлектрический эффект позволяет получать электрический импульс на обкладках конденсатора, укрепленного на другом конце кварцевого стержня (рис. 134). Наконец, в ртутных линиях задержки импульсами, подлежащими передаче, модулируют несущую частоту порядка 10 мгц, затем сигнал подается на кварце- вый излучатель, возбуждающий в столбе ртути ультразвуковую вол- ну (рис. 135). Сигнал поступает в кварцевый приемный датчик, после чего усиливается и детектируется. Описанными способами Марц Кварц Демодулятор Усилитель вЧ Генератор ВЧ j Запись Чтение Усилитель сигнала 'антовые | импульсы Рис. 135. Линия задержки с ртутью. можно построить циркуляционное запоминающее устройство емкостью в несколько сотен двоичных цифр. Очевидно, операции записи или считывания числа в случае ццр куляцмонной памяти можно производить только в течение малого цикла, соответствующего временному адресу. Среднее время обра- щения здесь равно половине большого цикла, и это обстоятельство оказывается тем более существенным, чем больше емкость запоми- нающего устройства. Подобный недостаток имеет место также и у других типов запоминающих устройств, например у магнитных барабанов, о которых мы будет говорить ниже. В определенной мере его влияние можно понизить, таким образом распределяя в запоминающем устройстве числа и команды, чтобы они к моменту использования находились -в нужной позиции. Подобный метод, названный оптимальным, программированием, требует в свою оче- редь такой системы команд, чтобы каждая команда содержала в своем составе адрес следующей команды. Возможны также и дру- гие средства оптимального программирования. Примеры использования линий задержки. Линии задержки широко используются в устройствах последовательных вычислительных машин. Приведем несколько характерных примеров. Последовательный двоичный сумматор (рис. 136), Выше мы уже видели, что двоичный суммирующий каскад может состоять либо из полного сумматора, либо из двух полусумматоров. Для 144
Рис. 136. Последовательные сум- маторы. р. рг Рз.. Сложение 1 0 1 0 1 0 0 0 Чтение 0 1 0 Чтение со стиранием 0 0 0 / Рис. 137. Последовательный накапливающий счетчик. 145
осуществления сложения двух двоичных чисел, представленных в форме двух синхронных последовательностей импульсов с возраста- ющими весами, достаточно передавать образуемый сумматором сиг- нал переноса снова на вход сумматора, задерживая его при этом на один тактовый интервал (рис. 136, а и б). Последовательный двоичный накапливающий счетчик. Последо- вательный накапливающий счетчик, показанный на рис. 137, состоит из последовательного сумматора и последовательного регистра (ли- ния задержки, замкнутая сама на себя). Содержимое этой линии может передаваться на вход сумматора через вентиль Р$ одновре- Тактобые Дополнение 0 импульсы Обратный ход 0-^ T'l——1-- ------- J L Самый младший Поступающее число 0-1------------- разряд Рис. -138. Образователь последовательных дополнений. менно со вторым слагаемым, поступающим через вентиль Ре- зультат суммирования помещается в регистр на место его старого содержимого. Вентиль регенерации Рг закрывается ла время одного малого цикла. Операция ввода числа выполняется при закрытом вентиле Рз. При этом новое число просто поступает в регистр на место старого. Наконец, открывая вентиль Р± на время одного - малого цикла, можно считать без разрушения содержимое регистра. Для сброса регистра на нуль закрывают вентиль Р2. Используемые . комбинации открытых и закрытых состояний четырех вентилей перечислены в таблице на рис. 137. \ Образователь дополнения. Известно, что операция - вычитания эквивалента операции прибавления дополнения. Само дополнение может быть образовано путем прибавления единицы к младшему разряду обратного кода вычитаемого. На этом свойстве чисел основана схема образователя дополнения, показанная на рис. 138. Обратный код получается, как мы это уже видели, с помощью эле- мента запрета, на основной вход которого подаются сигналы ге- нератора тактов, а на запрещающий вход — число, подлежащее пре- образованию. Единица младшего разряда, образуемая в схеме управления, прибавляется с помощью полусумматора, выход кото- рого соединен со входом посредством линии задержки на 0. Здесь оказывается достаточно полусумматора, поскольку одновременное поступление прибавляемой единицы и сигнала переноса исключено. Другой вид схемы образователя дополнения показан на рис. 139. Первый импульс числа, подлежащего преобразованию, соответству- ющий его первому, отличному от нуля разряду, передается без 146
изменения, но вызывает переброс триггера. Вентиль Pi при этом закрывается, но открывается вентиль Р2, передающий .на выход обратный ход остальных разрядов числа, образуемый вентилем Рз- В конце операции триггер сбрасывается на нуль специальным им- пульсом. Последовательный счетчик. Схема, показанная на рис. 140, позволяет .прибавлять единицу младшего разряда к содержимому импульсы Рис. 139. Другой вид образователя по- следовательных дополнений. Рис. 140. Последо- вательный счетчик на полусуммато- рах. Разряды множителя регистра, представляющему собой линию задержки пб. Здесь также суммирование может производиться простым полусумматором. По- добная схема может использоваться в качестве счетчика адресов команд. Для этого единица, на его вход дол- жна подаваться после выполнения каждой оче- редной команды. В случае использования схемы в качестве счетчика малых циклов .на ее вход будут подаваться импульсы, отмечающие эти циклы. Последовательный множитель. На -рис. 141 показана упрощенная схема устройства умно- жения машины EDSAC Кембриджского уни- верситета ^разрядные двоичные числа, пред- ставляющие собой множитель й множимое, содержатся на месте младших разрядов в двух циркуляционных регистрах емкостью 2М Разряды -множителя проверяются последова- тельно в порядке возрастания по приходе от устройства управления импульса проверки, проверяются последовательно в порядке возрастания их весов с помощью импульсов, поступающего из блока управления. Кроме то- го, в течение каждого малого цикла множитель сдвигается на один разряд в направлении старших разрядов. Если данный разряд множителя имеет значение 1, триггер В перебрасывается и открывает вентиль Р2- Через этот вентиль мно- жимое поступает в накапливающий счетчик. В то же самое время множимое сдвигается на один разряд* влево благодаря наличию вспомогательной линии задержки на 0. Для этого на все время длительности операции умножения, за исключением первого цикла, вентиль Р3 закрывается* а вентиль Р4 открывается. Само собой 147
разумеется, что в конце каждого малого цикла триггер В сбрасы- вается на нуль. В результате описанных операций последовательно накапливаются частичные произведения, что хорошо видно из схе- мы рис. 142, иллюстрирующей частный пример получения произве- дения. 1101Х1011> 10001111 . Импульсы проверки образуются с помощью циркуляционного регистра с периодом циркуляции (7V+1) 0. В этом регистре цир- кулирует единственный импульс, сдвигающийся на одну позицию Импульс на пробери у у ..р Множитель €> Регистр счетчика Сумматор Рис. 141. Множительное устройство с последова- тельным сложением частичных произведений. в сторону старших разрядов в течение каждого малого цикла таким же образом, как это было рассмотрено выше для случая множимого. После завершения М малых циклов этот импульс оказывается в исходной позиции, что свидетельствует о завершении операции умножения. Последовательное множительное устройство с параллельным суммированием. Длительность выполне- ния операции умножения двух М-разрядных чисел может быть понижена до значения 2М0, если формировать частичное произве- дение параллельно с помощью N—1 сумматоров, как это показано на рис. 143. Последовательность импульсов множимого проходит через -вентили Р -в зависимости от того, равно ли значение разряда множимого, записанного в статического регистре, 1 или 0. Частичное произведение оказывается автоматически сдвинутым на один разряд влево после прохождения от одного вентиля к вентилю, непосредст- венно за ним следующему. Каждое частичное произведение при- 148
Время Рис. 142. Диаграмма работы множительного устройства на рис. 141.
бавляется к сумме частичных произведений большего веса, уже ча- стично сформированной к данному моменту. Необходимо еще раз подчеркнуть, что эти различные операции выполняются одновре- менно, как это показано на рис. 143, применительно к тому же самому примеру, что и на рис. 142. Регистр множителя В о ем я Рис. 143. Последовательное множительное устрой- ство с одновременным сложением частичных произ- ведений. ДИНАМИЧЕСКИЕ МАГНИТНЫЕ ЗАПОМИНАЮЩИЕ УСТРОЙСТВА, БАРАБАНЫ, ДИСКИ И МАГНИТНЫЕ ЛЕНТЫ На основе магнитного барабана или магнитной ленты можно строить запоминающие устройства большой емкости порядка мил- лиона двоичных цифр для барабана и порядка десяти миллионов двоичных цифр для ленты. Однако непрерывное снижение стоимо- сти запоминающих устройств на ферритовых сердечниках, емкость которых к тому же в настоящее время уже почти достигает емкости магнитного барабана, приводит к тому, что барабаны, обладающие большим временем обращения, постепенно перестают применяться. Магнитные ленты, запоминающие устройства на магнитных дисках, а также специальные запоминающие устройства, представляющие собой комбинацию ленты и барабана, еще продолжают широко использоваться благодаря характерной для них чрезвычайно боль- шой емкости. 150
В запоминающих устройствах описываемого типа двоичные сообщения записываются в форме знака остаточного намагничива- ния участка поверхности барабана или ленты. При этом поверх- ность барабана или ленты обычно покрывается слоем специального лака, в состав которого входят смеси окислов различных двухва- Рис. 144. Магнитный барабан. Рис. 145. Схематическое изо- бражение записывающей го- ловки и магнитной ленты. лентных металлов и, в частности, железа. Для покрытия поверх- ности барабанов иногда используют также чистый никель. На по- верхности ленты может располагаться несколько параллельных дорожек, каждая из которых связана со своей ‘магнитной го- ловкой (рис. 144). Методы з а п и с и и счи- тывали я. Основной сигнал записи представляет собой из- менение направления магнит- ного потока .в записывающей головке, расположенной на рас- стоянии порядка десятка ми- крон от поверхности .магнитно- го носителя (рис. 1145). После прохождения носителя под го- ловкой в соответствующем его участке изменяется знак оста- точной 'магнитной индукции. Наоборот, при прохождении этого участка под .воспроизводящей головкой, роль которой в от- дельных случаях может играть та же головка, которая использова- лась для записи, в сердечнике этой головки под воздействием из- менения знака магнитной индукции произойдет изменение направ- ления (магнитного потока. При этом «в обмотке головки будет наве- ден сигнал, полярность которого -зависит от характера изменения потока (от Ок 1 и от 1 к 0). Процесс воспроизведения схематиче- ски показан на рис. 146. 151
Двоичные сообщения, подлежащие записи в запоминающее устройство, могут представляться через эти элементарные сигналы различным образом. На рис. 147 показана система записи, полу- чившая название «с возвращением к 0». Здесь ток записи связан обычным образом с последовательностью двоичных разрядов. Уров- ни 0 и 1 соответствуют положительному и отрицательному насы- щающим токам. Единица записывается, таким образом, в форме положительного диполя на общем фоне отрицательного остаточного Рис. 146. Процесс чтения: считывание происходит в момент, когда индукция изменяет знак. намагничивания. При чтении этой единицы возникает сигнал, име- ющий форму пары импульсов, первый из которых положителен, а второй отрицателен. При чтении нуля не возникает никакого сигнала. После формирования положительный импульс представля- ет 1, а отсутствие импульса 0. Для того чтобы отличить сигнал, представляющий 0 в последовательности нулей от участка носи- теля, на котором вообще не записано никакой информации, используются так называемые маркерные сигналы, отмечающие те участки носителя, на которых производится запись. Эти сигналы записываются на специальной дорожке, называемой маркерной или синхронизирующей, в форме непрерывной последовательности еди- ниц. Затем отбираются совпадения прочитанных единиц с маркер- ными сигналами. Здесь мы снова встречаемся с понятием провер- ки или извлечения информации. 152
Рис. 147. Процессы записи и считывания в системе записи с возвращением к нулю. Рис. 148. Процессы записи и считывания в системе без возвращения к нулю. 153
На рис. 148 показана система записи, получившая название «без возвращения к нулю». Согласно этой системе ток записи со- храняет положительное значение все время, пока записываемое сообщение представляет собой непрерывную последовательность единиц. Эта система по сравнению с предыдущей позволяет полу- чать удвоенную плотность записи1. При чтении на основании полу- чаемых сигналов необходимо восстановить первоначальную форму записанного сигнала. Для этого положительные прочитанные им- пульсы поступают на вход 1 триггера, а отрицательные импульсы — на вход 0. Теперь, для того чтобы восстановить первоначальную Рис. 149. Процессы записи и считывания в системе записи с фазовой модуляцией. информацию, достаточно отобрать совпадения выходного сигнала триггера с маркерными сигналами. Существует также третья система записи, разработанная Вильямсом, Килбурном и Томасом (Манчестерский университет) и известная под названием «системы фазовой модуляции». Согласно этой системе при записи 1 ток записи положителен в течение первой половины тактового интервала и отрицателен в течение второй половины. При записи нуля в течение первой половины тактового интервала ток записи отрицателен, а в течение второй — положителен. На рис. 149 показаны сигналы записи, соответствую- 1 Плотностью записи называется количество двоичных единиц •информации, записываемое на 1 см длины дорожки на поверхности носителя. (Прим, ред.) 154
щие последовательности единиц; последовательности нулей, после- довательности чередующихся единиц и нулей и некоторому произ- вольному коду. Основное преимущество этой системы заключается в возможности использования переменного тока в цепи записи. Авторы системы предложили следующий метод воспроизведе- ния. С воспроизводящей головкой соединяется трансформатор, связанный также с источником частоты F, равной тактовой. При этом в цепи воспроизведения обеспечивается достаточная величина затухания. В случае, когда воспроизводится последовательность единиц или последовательность нулей, воспроизводимый сигнал близок к синусоиде частоты F. При -воспроизведении последова- тельности чередующихся единиц и нулей воспроизводимый сигнал также близок к синусоиде частоты F/2. Соответствующий подбор затухания обеспечивает равенство амплитуд этих двух -синусоид. На рис. 149 показан сигнал, полученный при воспроизведении неко- торого произвольного кода. Если этот сигнал усилить, а затем ограничить как по положительному, так и по отрицательному уров- ням, то получается последовательность прямоугольных импульсов. Окончательное восстановление исходного сообщения осуществляет- ся путем отбора совпадений этих импульсов с маркерными сигна- лами. Для исключения запаздывания, характерного для этого метода записи, авторы предлагают смещать воспроизводящую го- ловку на некоторое расстояние против направления движения но- сителя. Плотность записи на поверхности барабана или магнитной ленты обычно имеет порядок четырех двоичных цифр на 1 мм и в отдельных случаях достигает значения 8—10 цифр на 1 мм. Специальные устройства. Перейдем теперь к рас- смотрению методов воспроизведения, используемых только при очень малых скоростях движения носителя. Например, в случае, когда магнитная лента используется в качестве выходного устрой- ства, оказывается необходимым записывать информацию с боль- шой скоростью, а воспроизводить ее с малой скоростью, соответ- ствующей скорости печатающего устройства. Аналогичным образом,- если нужно использовать магнитную ленту в качестве носителя входных данных, необходимо предусмотреть возможность чтения ее с малой скоростью движения или при полностью неподвижной ленте для внесения исправлений. Эти требования удовлетворяются при использовании метода «чтения путем изменения проницаемости», который позволяет счи- тывать данные с ленты, движущейся с различными скоростями, и даже с неподвижной ленты. На рис. 150 показана магнитная го- ловка, изготовленная из двух отрезков ленты из пермаллоя С. Форма этой головки такова, что она имеет дополнительную магнит- ную цепь тороидальной формы в части сердечника, диаметрально противоположной зазору. Эта дополнительная цепь связана с об- моткой модуляции. Направление витков в двух половинах обмотки модуляции выбрано таким, чтобы магнитный поток, возбуждаемый этой обмоткой во всей остальной части сердечника, был равен нулю. Если -в зазоре действует магнитное поле, направление которого по- казано на рисунке, то ток модуляции вызывает соответствующие изменения магнитного -сопротивления в части сердечника, связанной с модулирующей обмоткой (кривая а на рис. 150), и, следовательно изменения магнитного потока в сердечнике (кривая в). На концах 155
обмотки чтения возникает при этом напряжение (кривая г), содер- жащее составляющую, частота которой равна удвоенной моделиру- ющей частоте (кривая д). Фаза этой составляющей изменяется в со- ответствии с направлением магнитного поля в зазоре. Для снижения времени обращения часть дорожки магнитного барабана может быть использована в качестве линии задержки. Для этого головку записи и головку воспроизведения соединяют со схемой восстановления, как показано на рис. 151. Если операция стирания не осуществляется записывающей головкой, то нужна также специальная стирающая головка. Одна и та же дорожка мо- Рис. 150. Метод считывания путем изменения ма- гнитной проницаемости. жет использоваться для образования нескольких регистров с малой емкостью и малым временем обращения. Для получения запоминающего устройства с емкостью того же порядка, что и емкость магнитной ленты, и временем обращения того же порядка, что и время обращения магнитного барабана, используются магнитные диски. Так, например, запоминающее устройство вычислительной машины RAMAC фирмы IBM (США) обладает емкостью в 6 млн. знаков при времени обращения в 0,5 сек. Оно состоит из набора дисков, покрытых магнитным слоем с обеих сторон и укрепленных на валу, вращающемся со скоростью 1 250 об!мин. На каждой поверхности диска располагается 100 до- рожек емкостью 600 цифр каждая. Головки укрепляются на спе- циальном кронштейне, приводимом в движение с помощью очень точного механизма. Кронштейн может перемещаться в вертикальном направлении для выбора диска и в горизонтальном направлении для выбора дорожки. Правильная величина зазора между головка- 156
Сигнал синхронизации Рис. 151. Применение одной дорожки ма- гнитного барабана в качестве линии за- держки. Вращающийся Головка записи и чтения Магнитная лента Рис. 152. Схематическое изобра- жение системы. 157
ми и поверхностью диска обеспечивается за счет продувания сжа- того воздуха. Скажем в заключение несколько слов о «лентобарабане» (Tapedrum),(разработанном фирмой Brush Developement Со (США). Это устройство, схематически показанное на рис. 152, обладает емкостью, равной емкости нескольких лент при времени обращения того же порядка, что и у магнитного барабана. Носителем в данном случае служит широкая магнитная лента, отделенная очень не- большим зазором от вращающегося барабана, на котором укрепле- ны воспроизводящая и записывающая магнитные головки. Лента разделена на «страницы», длина которых равна половине окружно- сти барабана. Время, пока производится обращение к одной страни- це, т. е. время обращения, равно длительности полуоборота бара- бана. Смена страниц производится с помощью приводного механиз- ма с цифровым управлением. ЭЛЕКТРОСТАТИЧЕСКИЕ ЗАПОМИНАЮЩИЕ УСТРОЙСТВА Запоминающие устройства на конденсаторах. В матричной схеме, показанной на рис. 153, между обкладками каждого из конденсаторов С в исходном состоянии может действэ- -цв +W Цифра! Слово! Слово 2 Словом Рис. 153. Матричное запоминающее устройство на конденсаторах. вать разность потенциалов +4 в или —4 в. Диоды D\ и D2 при этом заперты. Если напряжения на внешних выводах диодов внезап- но понижаются до нуля с помощью сигнала, передаваемого транс- форматором, все заряженные конденсаторы будут заряжаться, и при этом на соответствующих сопротивлениях возникнут импульсы на- пряжения. На практике напряжение на обкладках конденсаторов ограни- чены в пределах ±2 в, и это дает возможность восстанавливать 158
информацию после чтения, соединяя сопротивления с выходами усилителей чтения после восстановления напряжений, запирающих диоды. В случае использования кремниевых диодов время чтения и регенерации может быть снижено примерно до 10 мксек при дли- тельности повторения циклов регенерации в >2—3 сек. Матричные запоми- нающие устройства на основе ферроэлектри- ков. У некоторых диэлектри- ков, как, например, у титаната бария, наблюдается явление диэлектрического гистерезиса, аналогичное явлению гистере- зиса у ферромагнетиков, при- чем электрическое поле поля- ризации играет здесь ту же Рис. 155. Чтение двоичной 'инфор- мации, сохраняющейся в ферро- электрическом запоминающем устройстве. Рис. 154. Ячейка ферроэлек- трического запоминающего устройства. Рис. 156. Матричное ферроэлек- трическое запоминающее устрой- ство. роль, что и магнитная индукция. Благодаря этому из подобных материалов можно строить запоминающие устройства по конст- рукции, аналогичной конденсаторам (рис. 154). Если напряжение на выводах такой ячейки имеет определенное значение, а затем уменьшается до нуля, то в диэлектрике сохраняется остаточный за- ряд, знак которого зависит от полярности приложенного напряжения. Считывание двоичного сообщения, записанного в такой ячейке, может производиться с помощью схемы, показанной на рис. 155. Если приложить ко входу схемы импульс того же знака, что и остаточный заряд ячейки (АВА на рис. 154), то через сопротивление пройдет очень слабый ток и сигнал на выходе будет пренебрежимо мал. В случае приложения импульса противоположной полярности 159
(ACD) ток через сопротивление будет заметно больше, и на выходе будет иметь место сигнал чтения. Запоминающее устройство этого типа также может выполнять- ся в виде матрицы, как показано на рис. 156. На пластине из ти- таната бапия с двух сторон укрепляются металлические полоски, так что области их пересечения играют роль элементарных запоми- нающих ячеек. Для выбора ячей- ки напряжение прикладывается к двум соответствующим поло- скам. Рис. 157. Расположение точек и линий на экране электронно- лучевой трубки и соответству- ющие знаки. После того что мы говорили об аналогии между явлениями ферроэлектрического и ферромаг- нитного гистерезиса, естественно задать вопрос, почему ферроэлек- трические ячейки не используются так же, как и ферромагнитные ячейки в схемах переключатель- ных элементов. Это не делается по двум соображениям. Прежде всего петля гистерезиса у извест- ных в настоящее время ферроэлек- триков недостаточно прямоуголь- на, далее конденсатор с ферро- электрическим диэлектриком име- ет только два вывода в отличие от по меньшей мере трех выводов у ламп и транзисторов и четырех выводов у обмоток магнитного сердечника. В этом состоит труд- ность построения переключатель- ных схем1. Запоминающие, устройства на электронно-лу- чевых трубках. Ограничимся кратким описанием запоминаю- щего устройства на электронно-лучевой трубке Вильямса. Принцип действия этого устройства основан на изменении потенциалов эк- рана электронно-лучевой трубки при бомбардировке этого экрана электронным пучком. Прикладывая соответствующие сигналы к отклоняющим пластинам и управляющему электроду, можно запи- сывать на экране трубки строку за строкой синхронно с тактовыми импульсами комбинации точек и тире, соответствующих нулям и единицам (рис. 157). Если после записи такая строчка прочитывает- ся с помощью нового прохождения по ней электронного луча, то за счет емкостной связи с электродом, расположенным перед экра- ном трубки (рис. 158), можно получить электрические сигналы, полярность которых зависит от конфигурации считываемого знака. Если этот знак представлял 1, то оказывается удобным воспроиз- водить его, увеличивая длительность сигнала чтения с помощью вентиля, управляемого с -выхода усилителя (рис. 158). 1 Основная трудность построения переключательных схем на основе ферроэлектриков состоит в том, что конденсаторы с ферро-' электрическим диэлектриком обладают весьма большим выходным полным сопротивлением. (Прим. ред.). 160
Подобные комбинации электрических зарядов со временем раз- рушаются, и поэтому их надо восстанавливать через регулярные интервалы. Для уменьшения времени обращения строки читаются в порядке 0, л, 1, л, 2, п, 3, л,..., р, п, 0, л..., где строка п — это та, к которой производится обращение, а над остальными строками просто выполняется «операция восстановления. Таким об- разом, если имеются 32 строки по 32 двоичных цифры в каждой, на чтение одной цифры затрачивается 8 мксек, то развертка одной Рис. 158. Принципиальная схема запомина- ющего устройства на электронно-лучевых трубках. строки длится в среднем 300 мксек, и каждая строка восстанавли- вается через 20 мксек. Среднее время обращения при этом составля- ет 150 мксек. ЗАМЕЧАНИЯ ОТНОСИТЕЛЬНО МАШИН, РАБОТАЮЩИХ В ДЕСЯТИЧНОЙ СИСТЕМЕ СЧИСЛЕНИЯ Для того чтобы представить все 10 цифр, используемых в де- сятичной системе счисления, необходим элемент, обладающий де- сятью устойчивыми состояниями. Такой элемент может быть по- строен различными способами. Чисто десятичный цифратор. Прежде всего десятич- ный цифратор может быть построен с помощью десяти двоичных элементов. Каждая десятичная цифра будет представляться тогда такой комбинацией состояний этих десяти элементов, в которой только один из них находится в состоянии 1, а остальные девять — в состоянии 0. Таким образом, получаются следующие десять ком- бинаций: 0:0000000001 1:0000000010 2:0000000100 11—895 161
3:0000001000 4:0000010000 5:0000100000 6:0001000000 7:0010000000 8:0100000000 9:1000000000 Подобный грубый способ представления используется очень редко, так как он требует большого количества оборудования. Двоично-пятеричный код. Как явствует из самого названия, здесь одновременно используются коды с основанием 2 и с основанием 5. Двоично-пятеричный десятичный цифратор пред- ставляет собой комбинацию двоичного цифратора и пятеричного цифратора, составленного в свою очередь из пяти двоичных элемен- Число 0 0 0 0 вид Напряжение йлгоЦа усилителя 0 10 0 Напряжение на сетке Рис. 159. Сигналы чтения. тов. По соображениям, которые будут рассмотрены ниже, двоичный цифратор также составляется из двух двоичных элементов. Таким образом, двоично-пятеричный цифратор содержит 7 двоичных эле- ментов. Десять последовательных цифр представляются в нем сле- дующими комбинациями состояний элементов: 0 = 0 + 0:01 00001 1 =04-1:01 00010 2 = 0 4* 2:01 00100 3 = 0 4-3 01 01000 .4 = 0 4-4:01 10000 5 = 5 4-0:10 00001 6 = 5 4-1:1000010 7 = 5 4-2:1000100 8 = 5 4-3:10 01000 9 = 5 4-4:10 10000 Можно заметить, что каждая комбинация состоит из двух 1 и пяти 0. Очень эффективный метод контроля основывается на том, чтобы после всех преобразований и передач проверять, со- хранилось ли такое соотношение -нулей и единиц в каждой комби- нации. Подобный метод с успехом применяется во многих современ- 162
вых электронных вычислительных машинах. Впервые он был ис- пользован в релейной машине фирмы Bell Telephone Laboratories, установленной на испытательном полигоне в городе Абердин (США, штат Мэриленд). В течение десятилетней регулярной круглосуточ- ной работы машины ни разу не было случая, чтобы машина допу- стила ошибку, которая не была бы немедленно обнаружена. Аналогичный метод используется в двоичной электронной вы- числительной машине фирмы Telecommunication Research Establish- ment (Великобритания). Здесь каждый двоичный шифратор состо- ит из двух триггеров, образующих комбинации 01 и 10. Комбина- -5Z7Z7 -to * W >— г— -379 \ .... W! ~626 <----н----н- 379 500 999 Рис. 160. Соответствие между отрицательными числами и их дополнениями в десятичной си- стеме. ции 00 и 11 являются запрещенными и указывают на наличие ошибки. Двоично-десятичные коды. Очевидно, что имеется возможность представлять каждую из 10 десятичных цифр ее двоичным эквивалентом. Для этого требуются четыре двоичных элемента. Однако подобный способ представления неудобен в том отношении, что он не позволяет просто получать' дополнения до 9, требуемые при вычитании. Обратный код двоичных чисел, пред- ставляющих 10 десятичных цифр, отличается от дополнения до 9 их десятичных эквивалентов. Среди кодов, удовлетворяющих подобному условию, выделяет- ся своей простотой код Айкена (Гарвардский университет, США). Цифры, меньшие 5, представляются в нем своими двоичными эк- вивалентами, в то время как цифры, равные или большие 5, перед преобразованием в двоичную систему счисления увеличиваются на 6: 0:0000 1:0001 2:0010 3:0011 4:0100 5 = 11 —6:1011 6 = 12—6:1100 7 = 13 — 6:1101 8 = 14 — 6:1110 9 = 15 — 6:1111 Заметим, что тот же результат будет получен, если четырем двоичным разрядам присвоить веса слева направо 2, 4, Q, 1. Тогда, например, 7 (1101) =2+4+04-1. Наконец, при использовании такого кода сохраняется четность, поскольку 6 — это четное число. Следует напомнить также о специальном пятипозиционном ко- де, который мы рассматривали выше при описании схем кодирова- 11* 163
кия. Этот код обладает теми же возможностями контроля, что и двоично-пятеричный код, поскольку каждая десятичная цифра представляется в «нем комбинацией из двух единиц -и трех нулей. Он также применяется -во многих современных машинах. Десятичное вычитание; дополнения. Напомним, что при пользовании двоичной системой мы разделили все множест- во чисел, представимых в некоторой данной машине, на две равные части: положительные числа и отрицательные числа. Аналогичным образом можно поступить и в случае десятичной машины. Таким образом, для машины с длиной слова в три десятичных разряда, способной выполнять операции над любыми числами, заключенными между 0 .и 999, оставим без изменения числа, заключенные между О и 499, а числа, заключенные между 500 и 999, будем использовать для представления отрицательных чисел, абсолютные значения ко- торых равны дополнениям к представляющим их числам до 1 000 (рис. 160). Таким образом, числа 4-374 и —374 будут представляться комбинациями цифр 374 и 626 соответственно. Дополнение можно получать путем прибавления 1 к обратному коду, который в данном случае представляет собой дополнение до 9 к каждой цифре. Сумма чисел, закодированных таким образом, будет представ- лять собой алгебраическую сумму изображаемых ими величин при условии, что не будет приниматься во внимание единица переноса из самого старшего разряда: 374 —253:374 4-747 = (1) 121, т. е. 121; 253 — 374 :253 4- 626 = 879, т. е.— 121. Можно использовать также обратные коды при условии образо- вания циклического переноса: 374 — 253 : 374 4-746 =(1)120, т. е. 120 4- 1 = 121; 253 — 374 : 253 4- 745 = 878 , т. е. — 121 . Пример десятичного сумматора. В целях упроще- ния будем использовать чистый двоичный код. Пусть необходимо образовать сумму двух десятичных цифр, представленных своими двоичными эквивалентами (старшие разряды слева) aia2a3a4 и bib26364. В результате сложения получится сумма SiS2S3S4 и перенос R (0 или 1). Операция будет выполняться в два приема, разделен- ных операцией дискриминации (рис. 161): 1. Начинают с получения с помощью четырех полных двоичных сумматоров грубой суммы CjC2c3c4. Затем следует операция дискри- минации. Сигнал переноса должен получаться в том случае, если сумма больше .или равна 10, и не должен получаться, если сумма меньше 10. Рассмотрим таблицу четырехразрядных двоичных чисел, больших или равных 10 (от 10 до 15 включительно): 10 : 1 0 1 0 11:10 11 12 : 1 1 0 0 13 : 1 101 14 : 1 1 1 0 15 : 1 1 1 1 164
Два средних столбца составляют таблицу, повторенную 2 раза. Каждая из трех комбинаций дополняется цифрой из правого столб- ца, причем 1 раз нулем и 1 раз единицей. Таким образом, правый столбец можно не учитывать. Наконец, цифра левого столбца всегда равна 1. Отсюда можно сделать вывод, что переключатель- ная функция Сг(е2 V с3) будет принимать значение 1 для всех шести рассмотренных ком- бинаций. Схема, реализующая эту функцию, состоит из одного Рис. 161. Каскад сложения двух десятичных цифр, выра- женных в чисто двоичном счислении. смесителя и одного вентиля. Результат операции дискриминации, описываемой приведенной переключательной функцией, комбини- руется с помощью схемы «ИЛИ» с сигналом переноса из первого сумматора, который также представляет собой десятичный пе- ренос. 2. Если выходной сигнал описанной схемы равен 1, т. е., дру- гими словами, имеет место десятичный перенос, надо вычесть число 10 из грубой суммы, полученной на первом этапе, или, что то же самое, прибавить к ней 6 (по модулю 16). Двоичным эквивалентом 6 является НО. Подобное сложение выполняется с помощью двух полусумматоров и одного полного сумматора. При этом левый по- лусумматор не содержит цепи переноса. 165
ЦИКЛИЧЕСКИЕ ИЛИ РЕФЛЕКСНЫЕ КОДЫ Рассмотрим следующий двоичный код: Десятичный Двоичный код Схема О 1 2 3 4 5 6 7 S *9 10 11 12 13 14 15 16 17 18 19 20 21 22 0 0 0 0 0 0 0 0 0 1 0 0 0 1 1 0 0 0 1 0 0 0 110 0 0 111 0 0 10 1 0 0 10 0 0 110 0 0 110 1 0 1111 0 1110 0 10 10 0 10 11 0 10 0 1 0 10 0 0 110 0 0 110 0 1 110 11 110 10 11110 11111 1110 1 Этот код обладает следующим интересным свойством. При переходе от одной* комбинации непосредственно к следующей каждый раз изменяется значение одного и только одного разряда. Подобный код находит применение в специальных устройствах, предназначенных для представления двоичными числами углового положения некоторого вала1 (рис. 162). При незначительном пово- 1 Наряду с отмеченными преимуществами двоичные рефлексные коды обладают также существенными недостатками, благодаря которым часто предпочитают нормальные двоичные коды, предусмат- ривая дополнительные меры при конструировании считывающего устройства. 166
роте вала изменяется значение только одного разряда в представ- ляющем его коде, в то время как при использовании нормального двоичного кода даже при незначительном повороте могут изменить- ся значения сразу нескольких разрядов (например, с 0111 на 1000). Для того чтобы не возникло неопределенности, в последнем слу- чае необходимо, чтобы значения всех разрядов из;менялись строго одновременно, а поскольку на практике этого трудно добиться, го возможно появление очень больших ошибок (например, в процессе Рис. 162. Кодирующий диск в двоичной си- стеме счислений. рассмотренного выше перехода может возникнуть комбинация 1111).. Наряду с электромеханическими кодовыми дисками, такими как показано на рис. 162, используются также диски, содержащие про- зрачные и непрозрачные участки. Съем данных с таких дисков осу- ществляется с помощью фотоэлементов. Для того чтобы перейти от двоичного чи^ла х к этому же са- мому числу, представленному рефлексным кодом, необходимо об- разовать сумму х и 2х, не учитывая при этом единицы переноса, и затем отбросить младший разряд. Так, например, если №110, то 1 1 0 + 1110 Г о 1 (0) Обращаясь к более общему случаю, из изучения приведенной выше таблицы можно сделать вывод, что связь между разрядами а, Ъ, с, d и е числа, представленного двоичным рефлексным кодом и разрядами х, у, z, t и и того же числа, представленного нор- мальным двоичным кодом, описывается следующими соотношениями: 167
а = х@У b = y@z с — z (J) Z d— t (J) и x — a У = z = t = ® ^Фс@ d®e e = u Заметим здесь, что сумма по модулю 2 нескольких двоичных переменных равна 1, если значение 1 принимает нечетное число этих переменных. Наконец, можно показать, что десятичный эквивалент числа, представленного двоичным рефлексным кодом, получается, если последовательным разрядам, начиная с младшего, присвоить веса 1, 3, 7, 15, 31.. 2n~' , - Принцип образования циклических кодов не ограничивается только двоичными системами счисления. Вот один из примеров десятичного рефлексного кода: 0 0 10 19 20 20 30 39 11 11 18 21 21 31 38 2 2 12 17 22 22 32 37 3 3 13 16 23 23 33 36 4 4 14 15 24 24 34 35 5 5 15 14 25 25 35 34 6 6 16 13 26 26 36 33 7 7 17 12 27 27 37 32 8 8 18 11 28 28 38 31 9 9 19 10 29 19 39 30 Отсюда видно, может быть даже лучше, чем из предыдущей таблицы, почему рассматриваемые коды получили название реф- лексных. ОБСЛУЖИВАНИЕ И КОНТРОЛЬ Несколько лет тому назад в цифровые вычислительные машины начали вводить внутренние контрольные устройства, хотя вначале это встречало много возражений. Надежность элементов была в то время настолько низкой, что не без основания опасались излишнего увеличения общего числа элементов за счет введения органов* конт- роля. В настоящее время положение изменилось, и потребители вы- числительных машин в той же степени, как и математики, требуют, чтобы количество необнаруженных ошибок было снижено до значе- ний, не сравнимых с надежностью работы элементов запоминаю- щего устройства, арифметического устройства и устройства управле- ния. По этой причине все наиболее современные машины содержат более или менее сложные органы контроля. Ясно, что наличие органов контроля не 'исключает необходи- мости введения в программу в той степени, в какой это возможно, средств математического контроля: проверки идентичности, сущест- вующей между различными переменными, контроля непрерывности 168
функции путем вычисления ее последовательных разностей, контро- ля путем подставления вычислительных корней в исходное уравнение и т. д. В других случаях может оказаться .выгодным проводить одно и то же вычисление 2 раза по различным программам. Профилактическое обслуживание, граничные испытания. Прекрасным средством выявления элементов, ве: роятность выхода из строя которых в течение ближайшего периода эксплуатации оказывается достаточно высокой, является .выполне- ние через регулярные интервалы контрольных программ (например, каждую неделю) при граничных режимах работы всех устройств машины. Принцип организации контрольных программ состоит в обеспечивании возможности проверки элемента, группы элементов или всей машины в целом. При этом программа составляется та- ким образом, чтобы можно было быстро выявлять дефектные эле- менты. Более того, выполнение подобных программ производится в та- ких условиях, когда режим работы элементов соответствует гранич- ным значениям допусков, вводимых всегда для обеспечения надеж- ности электронных элементов. В зависимости от типа схемы можно, например, снижать амплитуду управляющих импульсов, уменьшать анодные напряжения, напряжения смещения, тока накала и т. д. Таким образом, выявляются элементы, вышедшие за пределы уста- новленных допусков, после чего либо их требуемые параметры вос- станавливаются с помощью регулировок, либо они просто заменя- ются. Такой способ профилактического обслуживания позволяет, в частности, почти полностью исключать ошибки, связанные со старением электронных ламп. С другой стороны, современная техника монтажа, в соответ- ствие с которой элементы, выполняющие одну и ту же функцию, изготовляются в виде стандартных взаимозаменяемых модулей, в значительной степени ускоряет процесс замены вышедших из строя элементов. Здесь оказывается достаточным заменять целиком мо- дули, а не сами элементы. Можно еще заметить, что во многих случаях сами модули заливаются пластмассой, так что такой метод замены оказывается экономически оправданным. Контроль с помощью вспомогательных чисел. В одной из электронных вычислительных машин фирмы Raytheon (США) каждое двоичное число связывается со специальным вспо- могательным числом, получаемым как остаток от деления на 16 числа, получаемого при сообщении разрядам исходного числа ве- сов 1, 2, 4, 1, 2, 4, ... Это число составляется из четырех млад- ших разрядов суммы единиц исходного числа, взятых с указан- ными весами. Каждая передача контролируется путем составления вспомогательного контрольного числа описанным способом и срав- нения его с вспомогательным контрольным числом, переданным вместе с исходным. При этом метод контроля арифметических операций основыва- ется на том обстоятельстве, что существует математическая зави- симость между суммой, разностью, произведением или частным двух вспомогательных чисел, связанных с двумя числами, над которыми выполняются эти операции, и вспомогательным числом, связанным с результатом операции над этими двумя числами. Так, например, в арифметическом устройстве последовательные веса имеют сле- дующие значения: 1, 2, 4, 8, 16, 1, 2, 4, 8, 16, ..., а сумма образуется 169
не по модулю 16, т. е. сохраняются все цифры. Таким образом, в случае вычисления произведений xy—z существует следующая за- висимость между вспомогательными числами хр, у р и zp, связанны- ми с тремя числами х, у и z: [|(*р’.Ур)р Zpl 4~ = 31 . Аналогичные методы используются для контроля входных и выходных устройств, блоков выборки из запоминающих устройств и кодирующих блоков. Коды, допускающие обнаружение и исправле- ние ошибок. Наиболее простым методом образования кодов, допускающих обнаружение ошибок, является метод контроля по четности, используемый в большинстве современных вычислительных машин. Этот метод основан на добавлении к n-разрядному двоич- ному числу (п+1)е разряда. Этому разряду присваивается значе- ние 0 или 1 таким образом, чтобы общее количество единицх в но- вом (п+1)-разрядном числе было бы, например, нечетным. Если в одном из разрядов такого числа будет иметь место ошибка, го это сразу обнаружится ino изменению четности. Более сложные коды дают возможность обнаружить ошибки более чем в одном разряде. С другой стороны, мы уже отмечали возможности контроля, присущие различным специальным кодам, например двоично-пятерич- ному коду или коду с двумя единицами и тремя нулями. Но можно пойти также еще дальше и представить себе коды, позволяющие точно локализовать ошибочные разряды и, следова- тельно, автоматически их исправлять. Приведем пример кода, по- зволяющего обнаружить и исправить одну ошибку в одном из че- тырех разрядов двоичного числа n=abcd.* На основании исходного n-разрядного числа формируется сле- дующее 7-разрядное число N—ABCDEFG: А = а b (^0 d; В — a^jc(£)d; С = а; D — Ь с ^-0 d, E=b\ F = c; G = d. Ясно, что всегда возможно определить исходное число п с по- мощью нового числа N. Предположим теперь, что один из семи раз- рядов числа N содержит ошибку. Для того чтобы ее локализовать, строят двоичное 3-разрядное число w=xyz: X = D®E®F®G; y = B@C^F@G. z = A®CQ)EQG. * Rutishauser, Speiser et Stiefel: Programmgesteuerte digitale Rechenmaschine, Separatdruck aus der Z. f. angew. Mathema- tik, Verlag Birkhauser, Bale, 11951. 170
Если w=0, число # не содержит ошибки. Если же w ¥= 0, то ошибку содержит разряд веса w числа N и его надо исправить, заменив существующее значение на противоположное. Таким образом, если п=1101, то W=/V/= 1010101 и w=000. Изменим теперь значение пятого (разряда числа N: N' = 1010001. При этом получится о/—101—двоичный эквивалент 5, т. е. веса разряда, содержащего ошибку. Для исправления этой ошибки до- статочно заменить значение пятого разряда на противоположное. В общем случае п контрольных разрядов позволяют локализо- вать одну единственную ошибку в двоичном числе, состоящем из (2Л—п+1) разрядов. ЗАКЛЮЧЕНИЕ Несмотря на то, что основные принципы, обусловливающие ра- боту больших цифровых вычислительных машин, были известны уже достаточно давно, сами машины появились впервые .всего каких-ни- будь 15 лет назад. За это время как конструкторами машин, так и теми, кто ими пользовался, была продела- на грандиозная работа. За время, прошедшее с момента первого издания этой книги, наблю- далась определенная стабилизация в области техники, обусловленная раз- работкой - переключательных элемен- тов на основе полупроводников и ферромагнетиков и промышленным выпуском запоминающих устройств магнитного типа на ферритах. Имен- но поэтому современные вычисли- тельные машины различных типов меньше отличаются одна от другой, чем машины, построенные 5 лет назад. За этот же период надеж- ность работы машин сильно возрос- ла. Причиной этому, с одной сторо- ны, является значительный прогресс, достигнутый в области технологии, особенно в части переключательных Рис. 163. элементов и печатного монтажа, а с другой стороны, почти повсеместное использование внутренних устройств контроля. Дальнейшие успехи, ожидаемые в области технологии, будут приводить к все большей степени миниатюризации. Ведь уже в настоящее время говорят о возможности размещения нескольких сотен и даже нескольких тысяч переключательных элементов в од- ном кубическом сантиметре! Ожидается увеличение тактовой ча- стоты от 1 до 10 мгц. С другой стороны, потребителям вычислительных машин стало достаточно ясно, какую пользу они могут извлечь, применяя сред- ства автоматических цифровых вычислений как при решении науч- 171
ных и технических задач, так и в области автоматического управ- ления предприятиями. Области применения вычислительной техники все более и более расширяются. Кроме того, техника автоматическо- го программирования упрощает связь между машиной и ее опера- тором, исключая необходимость для оператора пользоваться языком машины. Однако до сих пор автоматические цифровые машины почти исключительно использовались в лабораториях и не было сделано ничего, за исключением нескольких отдельных попыток .в области внедрения их для непосредственного управления производственны- ми процессами. Даже если вычислительная машина используется для обработки большого количества информации, связанной с по- ведением некоторого объекта, решения о необходимости того или иного вмешательства все еще принимает человек. При этом задача, стоящая перед человеком, становится все более и более сложной как благодаря усложнению условий, так и благодаря требуемой скорости реакции. В наиболее сложных случаях только вычисли- тельная машина оказывается способной справиться с этой задачей путем сбора данных от измерительной аппаратуры, сравнения этих данных с установленными критериями правильности работы и вы- работки на основании этого управляющих сигналов. Общая струк- турная схема подобной системы показана на рис. 163. Человек здесь уже не осуществляет непосредственную связь между измерительной аппаратурой и органами управления. Его задача ограничивается составлением программы работы, установлением критериев наи- лучшего протекания процесса, заданием последовательности выпол- нения программы вычислительной машиной и общим наблюдением за правильностью работы объекта. Подобное «внедрение» вычислительной машины в производст- венный процесс пока еще только начинается, однако в ближайшие годы ожидаются серьезные успехи в этом направлении. Однако не- обходимо еще проведение большого количества фундаментальных ис- следовательских работ в области динамики промышленных объектов для того, чтобы можно было в полной мере использовать все воз- можности вычислительных машин. Логические принципы и технические возможности, которые мы рассмотрели в этой книге, не ограничиваются только циф- ровыми вычислительными машинами в узком смысле этого слова. Логическая структура универсальных цифровых вычисли- тельных машин представляет собой частный случай последователь- ных автоматов, работающих на основании жестко установленных правил или алгоритма [Л. 17]. Понятия кода, программы и услов- ного нарушения последовательности позволяют описать все процес- сы, подчиняющиеся определенным формулам на языке кодов, и представить их через основные операции алгебры Буля. Эти послед- ние в свою очередь могут быть реализованы с помощью большого разнообразия электрических, электронных и магнитных элементов, описанных в этой книге. Таким образом, алгебра Буля является в некотором смысле универсальным языком и ею могут пользоваться ученые, инженеры и техники, работающие с прерывистыми процес- сами, отдельные фазы которых допускают описание переключатель- ными функциями.
ЛИТЕРАТУРА •1. Brilloin, Couffignal et Peres, Les grandes machines a calculer, C. N. R. S., 1949. 2. Hartree, Calculating instruments and machines, Cambridge University Press, 1950. 3. Staff of Engineering Research Associates, High-speed compu- ting devices, McGraw Hill, 1950. 4. Rutishauser, Speiser et Stiffel, Programmgesteuer- te digitale Rechengerate, Birkhauser, 1951. 5. F a v i e r et T t о m e 1 i n, La mecanographie, editions de Mont- ligeon, 1952. 6. Les machines a calculer et la pensee humaine (Colloque international du C. N. R. S.), editions du C. N. R. S., 1953. 7. Booth et Booth, Automatic digital calculators, Butter- worth Publishing Co., 1956. 8. Booth, Numerical methods, Butterworth Publishing Co., 1955. 9. Richards, Arithmetic operations in digital computers, Van Nostrand, 1955. 10. Raymond, Les calculatrices numeriques universelles, Memorial de L’Artillerie francaise, 1955, 3е fasc. et 1956, 4е fasc. 11. Wilkes, Automatic digital computers, Methuen & Co., 1956; французский перевод Calculatrices numeriques automatiques, par Ernest, Dunod, 1959. 12. M i 11 m a n & Taub, Pulse and digital circuits, AlcCraw Hill, 1956. 13. Stibitz & Larrivee, Mathematics and computers, McGraw Hill, 1957. 14. Raymond, L’automatique des informations, Masson et Cie, 1957. 15. Richards, Digital computer components and circuits, Van^ Nostrand, 1957; французский перевод: Calculateurs numeriques, ele- ments et circuits, par Soubies-Camy, Dunod, 1959. 16. S estier, Les calculateurs numeriques automatiques et leurs applications, Editions Hommes et Techniques, 1958. 17. N a s 1 i n, Circuits a relais et automatismes a sequences, Dunod, 1958. 18. Phi st er, Logical design of digital computers, Wiley, 1958. 19. Smith, Electronic digital computers, McGraw Hill, 1959.
СОДЕРЖАНИЕ Стр. Предисловие автора к первому изданию..................... 3 Предисловие ко второму французскому изданию.............. 4 Предисловие редактора к русскому изданию................. 5 Введение............................................... 9 Глава первая Структура универсальной цифровой вычислительной машины 13 Двоичная система счисления.............................. 13 Перевод из десятичной системы в двоичную................ 15 Сложение цифр в двоичной системе, основные логические операции............................................. 17 Переключательные схемы на электромагнитных реле .... 19 Двоичный сумматор....................................... 23 Вычитание............................................... 28 Двоичный сумматор-вычитатель на реле.................... 32 Регистры памяти; передачи............................... 35 Понятие кодирования и программирования.................. 42 Принципы построения устройств управления................ 44 Полный перечень и дешифратор команд..................... 48 Счетчик адресов команд . ............................... 52 Полная схема и распределение фаз........................ 56 Приготовление программ, блок-схемы программ............. 58 Конструкция множительного устройства.................... 78 Деление ................................................ 80 Округление ............................................. 81 Обзор библиотеки подпрограмм............................ 82 Интерпретирующие подпрограммы........................... 82 Символизированные команды............................... 84 Устройства входа и выхода .............................. 85 Программа ввода......................................... 87 Глава вторая Отдельные вопросы техники автоматических цифровых вычислительных машин 88 Представление и передача сообщений...................... 89 Символика переключательных устройств.................... 92 Переключательные схемы на диодах........................ 97 174
Стр. Схемы «а электронных лампах............................ 104 Схемы на транзисторах................................... ИО Бесконтактные магнитные схемы....................Г • • ИЗ Схемы на переменном токе............................... 124 Схемы на сверхпроводящих элементах (криэтроны)......... 130 Примеры применения триггеров........................... 132 Линии задержки; циркуляционные запоминающие устройства 140 Динамические магнитные запоминающие устройства, бараба- ны, диски и магнитные ленты....................... 150 Электростатические запоминающие устройства............. 158 Замечания относительно машин, работающих в десятичной системе счисления................................. 161 Циклические или рефлексные коды........................ 166 Обслуживание и контроль................................ 168 Заключение............................................. 171 Литература............................................. 173

Цена 7 £ коп.