Главная > Разное > Алгоритмы и машинное решение задач
<< Предыдущий параграф
Следующий параграф >>
<< Предыдущий параграф Следующий параграф >>
Макеты страниц

§ 5. ВЫЧИСЛИТЕЛЬНАЯ МАШИНА С АВТОМАТИЧЕСКИМ УПРАВЛЕНИЕМ

Создание алгоритма для задач некоторого данного типа (и в особенности «хорошего», удобного алгоритма) в тех случаях, когда это удается, связано вообще с тонкими и сложными рассуждениями, требующими высокой квалификации и большой изобретательности. Однако с того момента, когда такой алгоритм уже создан, процесс решения соответствующих задач становится таковым, что его может в точности выполнять человек, не имеющий ни малейшего понятия о сущности самой задачи. Требуется лишь, чтобы этот человек был способен выполнять те простейшие и немногочисленные элементарные операции, из которых складывается процесс, и, кроме того, чтобы он добросовестно и беспрекословно руководствовался предложенным предписанием (алгоритмом). Такой человек, действуя, как иногда говорят, чисто машинально, все же успешно решал бы любую задачу рассматриваемого типа. Выражение «машинальное действие» употребляется здесь лишь для пояснения детерминированности алгоритма; однако при современном развитии науки и техники оно уже приобретает прямой смысл. Именно, на месте гипотетического человека, решающего задачу, смысла которой он не понимает (или не желает знать), можно действительно

поставить машину, выполняющую тот же процесс. Такой и является современная вычислительная машина с автоматическим управлением.

Наша ближайшая задача состоит в том, чтобы выяснить основные принципы устройства и работы подобных машин. Для этого мы предварительно еще раз обратимся к рассмотрению алгоритмического процесса, осуществляемого человеком (вычислителем).

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

Для вычислительного процесса, происходящего с участием человека-вычислителя, характерно наличие следующих трех факторов (см. схему на рис. 10,а):

Рис. 10.

1. Хранение информации обеспечивается обычно записью всех сведений на листе бумаги, при этом к сведениям относят также инструкцию (схему алгоритма) для решения задачи Заметим, что фактически вычислитель не записывает буквально все на бумаге;

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

2. Обработка информации предполагает способность вычислителя выполнять отдельные элементарные операции, предусмотренные в алгоритме, и может осуществляться вычислителем посредством специализированных механизмов, например арифметические операции над числами могут быть реализованы на арифмометре. Каждая отдельная операция заключается в том, что вычислителем в соответствии с инструкцией извлекаются некоторые сведения (например, числа) из определенных граф листа бумаги, они подаются на обрабатывающее устройство (арифмометр), а результат обработки помещается во вполне определенное место листа.

3. Управление процессом, т. е. принятие решения о реализации на данном этапе процесса той или иной операции и создание условий для ее выполнения, осуществляется самим вычислителем согласно инструкции.

Из каких устройств составлена машина и как они взаимодействуют между собой? Ответ на этот вопрос подсказывается тем, что в ней должны происходить такие же процессы, какие были только что описаны, но уже без участия вычислителя.

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

Целый ряд соображений оправдывает преимущественное применение алфавита из двух символов (двоичного алфавита), условно называемых 0 и 1. Так,

например, этот алфавит проще всего осуществляется физически в электрических цепях в виде двух состояний: высокое напряжение (или — ток идет) и низкое напряжение (или — ток не идет). Далее приходится считаться и с тем, что простейшие логические операции совершаются над переменными, могущими принимать два значения: «истинно» и «ложно». Однако выбор того или другого алфавита и способ изображения в нем нужных сведений далеко не является решающим для понимания устройства и работы машины. Поэтому, ограничившись тем замечанием, что в современных машинах пользуются преимущественно двоичным алфавитом и двоичной системой счисления (вместо употребительной десятичной), мы в дальнейшем не будем вдаваться в эти детали.

Итак, информация, которая поступает в машину, а также та, которая вырабатывается в ней в процессе ее работы, изображена в виде некоторых физических параметров. В интересующих нас случаях все сведения, составляющие информацию, будут зашифрованы числами. В частности, в виде набора чисел будет, зашифрован и сам алгоритм, которым должна «руководствоваться» машина в своей работе. Алгоритмы, составленные специально для машин, называют обычно программами. Программа является важнейшей частью информации, с которой имеет дело машина.

Далее, в соответствии со схемой рис. 10, о в машине имеются устройства (органы), выполняющие функции хранения, информации, ее обработки, управления процессом (см. схему на рис. 10,б).

1. Запоминающее устройство играет роль листа бумаги. На условном языке машины в нем фиксируются все нужные сведения, включая программу. Возможность физического осуществления органа, выполняющего такие функции, вряд ли вызывает у кого-либо сомнение. Действительно, эту функцию может выполнять магнитная лента, на которой кодированные сведения фиксируются и с которой они снимаются примерно так же, как на обычном магнитофоне. Запоминающее устройство (память машины) состоит из набора ячеек, занумерованных натуральными числам»: 1, 2, 3... Эти числа называются адресами ячеек. Каждая ячейка хранит или может принять на хранение одно закодированное сообщение; в вычислительных машинах всякое такое

сообщение представлено, как мы уже отметили, в виде некоторого числа.

Практически в электронных машинах, кроме магнитной ленты, применяются и другие средства «запоминания», а именно электронно-лучевые трубки, принцип работы которых несколько напоминает работу телевизионных трубок, а также магнитный барабан, причем функции запоминания разделены между этими органами целесообразным способом. Однако мы не будем различать отдельных составных частей памяти и без ущерба для понимания дела будем исходить из представления об едином запоминающем устройстве, хотя бы в виде магнитной ленты.

2. Арифметический блок играет ту же роль, что и обычный арифмометр, хотя физические принципы, лежащие в основе его конструкции, сильно отличаются от тех, которые использованы в обычном арифмометре. Переработка подаваемых в него данных в нужный результат (например, сложение чисел) происходит путем преобразования в электронном устройстве входных электрических сигналов, изображающих входные данные, в электрические сигналы, изображающие выходные данные. Входные сигналы поступают в арифметический блок из ячеек памяти, где они хранились, а выходной сигнал отправляется из него в ту ячейку, в которой он будет храниться. Схематически это изображено на рис. 10, б, где числа из ячеек 11 и 12 складываются, а результат отправляется в ячейку 15. Для того чтобы такая операция была осуществлена в машине в некотором такте, необходимо, чтобы к началу этого такта были произведены соединения ячеек 11 и 12 с арифметическим блоком и арифметического блока с ячейкой 15; также необходимо, чтобы арифмометр был вклвдчен на нужную операцию (в данном случае на сложение). Все это входит уже в «компетенцию» блока управления.

3. Блок управления предназначен для выполнения функций, которые в схеме рис. 10, а выполняет сам вычислитель. Именно, на каждом этапе работы машины управляющее устройство создает условия для реализации очередной операции процесса. При этом оно действует как автоматическая телефонная станция, соединяющая тех «абонентов» (узлы и ячейки машины), которые участвуют в данной отдельной операции.

Выражаясь образно, блок управления заглядывает в программу и в соответствии с нею отправляет распоряжения о срабатывании тех узлов машины, которые должны обеспечить очередную операцию.

Для более точного описания возникающей здесь картины укажем, что каждая машина характеризуется вполне определенной системой команд (приказов), которые она может принимать к исполнению. При этом всякая программа, вкладываемая в машину, представляет собою определенную комбинацию команд и некоторых вспомогательных чисел (параметров), которые помещаются в ячейки «памяти». Например, в машине БЭСМ Академии наук СССР принята так называемая трехадресная система команд, каждая из которых является последовательностью четырех чисел:

из которых первое указывает номер предписываемой операции, последующие два — адреса двух ячеек, над содержимым которых совершается операция, а последнее — адрес ячейки, в которую следует поместить результат (всего три адреса).

Практически каждая команда записывается в одной ячейке в виде одного числа, цифры которого разбиваются на четыре группы, имеющие соответствующие назначения. Например, на рис. 10, б-в ячейке 1 запоминающего устройства записано число которое представляет собою следующий зашифрованный приказ:

«Сложить (операция № 1) числа из ячеек 11, 12 и результат отправить в ячейку 15».

(Здесь принято разделение на группы справа налево по два разряда. Для определенности мы будем и дальше придерживаться такого метода записи команд.)

Обычно система команд насчитывает несколько десятков команд. Мы укажем здесь только самые употребительные.

1. Арифметические команды:

а) - сложить число из с числом из и сумму отправить в 8;

б) - вычесть из числа, хранящегося в число из 1 и разность отправить в 5;

в) умножить число из на число из и произведение отправить в 8;

г) - разделить число из на число из и частное отправить в 8.

2. Команды передачи управления:

д) переходить к команде, хранящейся в (безусловная передача управления);

е) - переходить к команде, хранящейся в , при условии, что в ячейке хранится положительное число;

ж) - переходить к команде, хранящейся в , при условии, что в ячейке хранится отрицательное число.

3. Команда остановки:

Кроме перечисленных команд имеются еще и команды так называемых логических операций и другие, на которых мы здесь останавливаться не будем. Перечисленных команд вполне достаточно для составления из них самых разнообразных программ; некоторые примеры будут рассмотрены в следующем параграфе.

Команды называются условными; они принимаются к исполнению лишь в том случае, если выполнено соответствующее условие, в противном случае они пропускаются управляющим устройством без выполнения.

Обычно команды выполняются машиной в том порядке, в каком они записаны в ячейках памяти, причем отклонение от этого порядка может произойти только в результате команды о передаче управления (безусловной или условной, если выполнено соответствующее условие).

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

управления поступает следующая команда, и машина срабатывает на следующую операцию и т. д. до результативной остановки машины.

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

Таковы основные три устройства вычислительной машины. Правда, в ней имеется еще ряд важных органов, в частности, для ввода данных в машину, для вывода из нее выработанных ею результатов. Однако эти устройства не имеют значения при рассмотрении принципов работы машины и выяснении ее логических и математических возможностей. Поэтому мы можем и не привлекать их в дальнейшем к рассмотрению, предполагая, что подача информации в машину и снятие результативной информации производится непосредственно на запоминающем устройстве.

<< Предыдущий параграф Следующий параграф >>