ПК-ностальгия
HOME
Железо
Программы
Оборудование
Статьи и публикации
Фототаблица
Ссылки
Почта
Гостевая
ПОИСК
Новости Яndex
О сайте

Этот сайт предназначен, прежде всего, людям, ностальгирующим по ушедшим РУССКОМУ СЛОВУ, Windows 3.1, ФОТОНУ, процессорам 486SX и иже с ними.
Конечно, времена должны идти вперед, но почему они обязательно должны уходить?

StuhlbergR 2007 ©

Беседы о поколениях ЭВМ

Н. Бусленко, В. Бусленко

©   Издательство "Молодая гвардия", 1977 г.

Все настойчивее вторгаются электронные вычислительные машины в науку и в народное хозяйство. О зарождении этих машин, принципе их действия, их развитии и влиянии на жизнь человека расскажут член-корреспондент АН СССР Н. Бусленко и его сын кандидат технических наук В. Бусленко.

ЭВМ первого поколения

- Что же такое ЭВМ первого поколения?

- Если ответить кратко, то это вычислительная машина на электронных лампах.

- И из каких частей состоит эта машина? Каковы функции ее частей?

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

Арифметическое устройство. Само название подсказывает, что оно выполняет разнообразные арифметические действия: сложение, вычитание, умножение, деление, извлечение корня и т.д., а также логические операции, например, сравнение чисел, формирование признаков для выбора одной из ветвей вычислений и другие. Набор операций, производимых арифметическим устройством над двоичными числами, в принципе, различен для разных ЭВМ и определяется в основном особенностями конструкции, а также предполагаемыми сферами использования конкретной машины.

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

Внутреннее запоминающее устройство - так называемая оперативная память ЭВМ - имеет сравнительно небольшую емкость и потому высокую скорость работы. Она хорошо согласуется со скоростью всех "быстрых" устройств ЭВМ, в первую очередь арифметического. Оперативная память состоит из отдельных ячеек, за каждой закреплен определенный номер: например, ячейка памяти под №869. Каждая ячейка хранит только одно число, а все запоминающие устройства представляют собой как бы соты, куда трудолюбивые электрические импульсы собирают информацию. Здесь хранятся исходные данные для решения задач, непосредственно используемые арифметическим устройством, программа, которая выполняется в данный момент, промежуточные результаты расчетов и т.д.

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

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

Устройство управления. Оно руководит последовательным выпонением программы вычислений, которая записана в памяти ЭВМ, а также управляет выполнением всех элементарных операций.

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

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

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

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

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

Контрольник. Легко представить, какую путаницу может внести в работу "идеально послушной" ЭВМ даже одно неверно пробитое отверстие. Контрольник призван по возможности исключить подобные ситуации. По своей конструкции он подобен перфоратору: та же клавиатура, на которой заново набирается вся информация, только вместо чистых перфокарт в него закладываются перфорированныею Перфокарта, отверстия которой в точности соответствуют набранной на клавиатуре информации, проходят беспрепятственно в специальный карман; при несовпадении зажигается красная лампочка, и сброс такой перфокарты блокируется.

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

- Ну и сложная же это конструкция - ЭВМ! Пожалуй, сравнение с живым организмом не преувеличение...
- Да и места занимает этот организм немало: несколько сотен квадратных метров!

- Сколько же этой махине нужно электроэнергии?

- Более ста киловатт!

- Тогда это не простой организм, а целый электронный мамонт! И как хрупкий человек держит его в повиновении?

- Самое смешное, что такой проблемы просто не существует. ЭВМ первого поколения послушна, как дитя. Более того, она совершенно беспомощна и без программы, заданной человеком, не сможет ступить ни шагу. Ее в буквальном смысле нужно вести за руку, говоря: ступи сюда, здесь будь осторожна, не споткнись, а теперь сюда...

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

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

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

Рассмотрим пример сложения двух чисел: 7246+810.

Команда для выполнения этой операции выглядит так:

Ячейка, где хранится команда

Адреса

Адрес первого слагаемого (7246)

Адрес второго слагаемого (810)

Адрес суммы

Код операции «сложение»

0010

100

200

102

01

По этой команде управляющее устройство ЭВМ выбирает из оперативной памяти содержимое ячейки под номером 100 (там хранится число 7246) и передает его в арифметическое устройство; затем из оперативной памяти выбирается содержимое ячейки под номером 200 (число 810) и также передается в арифметическое устройство; после этого туда передается и код операции "сложение" (01).

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

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

Последовательность команд и образует программу действий машины на некоторый интервал времени.

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

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

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

Пусть требуется составить программу вычисления среднего арифметического Z двух чисел x и y:

Z=1/2(x+y)

Порядок вычислений, очевидно, для данной задачи тривиален и задается самой формулой, а вот вопрос о расположении исходных и других данных следует, несомненно, решить. Пусть для простоты во всех примерах программа располагается в памяти машины в ячейках №101, 102, 103, 104... и т.д.; исходные данные для ее решения - в ячейках №201, 202... и т.д.; все промежуточные результаты - в ячейках №301, 302, 303..., а ответ (результаты расчета) - в ячейках №401, 402, 403...

В рассматриваемом случае исходными данными будут: число y, хранящееся в ячейках №202, и число 2, которое можно поместить в ячейку №200. Промежуточные результаты пусть помещаются в ячейку №301, а окончательный результат (z) - в ячейке №401.

Проведя так называемое "распределение памяти", приступают к третьему этапу программирования - записи самой программы вычислений.

Первая команда. Содержимое ячейки №201 (x) сложить с содержимым ячейки №202 (y), сумму записать в ячейку №301.

Вторая команда. Разделить полученную сумму (содержимое ячейки №301) на 2 (содержимое ячейки №200) и результат поместить в ячейку №401.

Третья команда. Перевести число, хранящееся в ячейке №401, на перфокарты.

Четвертая команда. Остановить работу машины (так называемый ОСТАНОВ).

Чтобы приблизить эту программу к реальным условиям, надо ввести еще одну команду, которую следует поместить в самом начале программы.

Команда ввода. Числа, набитые на перфокартах (2, y, x), ввести в ЭВМ и расположить в ячейках памяти начиная с №200.

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

101           0000           200           0000           66           ввод
102           201           202           301           01           сложение
103           301           200           401           05           деление
104           401           0000           0000           44           вывод
105           0000           0000           0000           40           останов

Итак, составленная программа для вычисления среднего арифметического двух чисел содержит 5 команд.

Естественно возникают вопросы: не легче ли просто сложить и разделить эти числа ну хотя бы на бумаге? Каковы преимущества в использовании ЭВМ для решения этой задачи?

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

Пусть требуется получить среднее арифметическое трех чисел:

Z=1/3(х1+х2+х3)


Думается, что читатель легко сам сможет написать программу; она будет всего на одну команду длиннее предыдущей. Так же, как и программа для среднего четырех, пяти, шести и т.д. чисел будет состоять из 7, 8, 9 и т.д. команд соответственно. Таким образом, программа для получения среднего арифметического, например, ста чисел будет состоять из ста четырех команд. По-видимому, читатель стал сомневаться, а стоит ли так бездумно увеличивать число команд? Нельзя ли придумать что-нибудь пооригинальнее?

Оказывается, можно! Вот программа, получения среднего арифметического ста чисел, которая ненамного длиннее исходной программы для двух чисел. При ее составлении будут использоваться логические возможности ЭВМ. Итак...

Первая команда. Ввод ста чисел с перфокарт.

Вторая команда. Сложить ячейку №201 (разумеется, ее содержимое) с ячейкой №202 и поместить сумму в ячейку №301.

Третья команда. Сложить содержимое ячейки суммы №301 с содержимым следующей ячейки №203 и результат опять поместить в ячейку №301. В условных цифровых обозначениях эта команда выглядит так:

Номер ячейки,
где расположена команда
Сумма X3 Сумма Код "сложение"
103
301
203
301
01


Вот эту команду с изменением второго адреса и следует повторить 97 раз (сто минус три), чтобы получить требуемую сумму. Второй адрес (третья колонка) при этом пробегает значения от №203 через №204, №205 и т.д. до №300.

Чтобы эта команда все время принимала тот вид, который требуется, ее нужно как-то модифицировать, то есть соответствующим образом изменять. Для этого неплохо вспомнить, что команда - это тоже число, расположенное в определенной ячейке, например, в нашем случае в ячейке №103. Если сложить это число (эту команду) со специальной константой, содержащей одну единицу во втором адресе (000 001 000 00), то оно изменяется как раз так, как нужно. Действительно

+ 103           301           203           301           01           команда
          000           001           000           00           константа
          301           204           301           01           результат сложения

Таким образом, следующая команда (№104) будет иметь такой вид: сложить число (команду), стоящее в ячейке №103, с константой, находящейся в ячейке №501, и результат записать снова в ячейку №103.

104 103 510 103 01 спецсложение


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

Такое разветвление в программе можно реализовать с помощью двух команд: команды подготовительной и команды условного перехода.

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

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

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

Стоит заметить, что в данном конкретном примере число 100 никак не фигурирует в самой программе, это число повторений цикла находится в определенной ячейке и может быть заменено любым другим - тысячей, миллионом и т.д. Программа от этого не изменится, увеличится лишь время ее реализации на ЭВМ. В программировании получается, таким образом, как в известной сказке: пойди туда, не знаю, куда (будет указано в исходных данных), принеси то, не знаю что (указан лишь номер ячейки, и неизвестно, что за число там окажется).

В результате всех проведенных действий создана универсальная программа для нахождения среднего арифметического последовательности чисел произвольной длины. Это поистине замечательный результат! Отныне любую задачу нахождения среднего арифметического можно решать по нашей программе с помощью ЭВМ.

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

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

Само же программиррование, как это видно, процесс довольно кропотливый, требующий внимания, сосредоточенности и терпения. Его можно было бы сравнить, пожалуй, с вышиванием - настолько это тонкая и художественная работа. Наверное, поэтому женщины, начиная от первой программистки - соратницы Ч. Бэбиджа леди Лавлейс и до наших дней, отлично справляются с программированием.

[1]   [2]

Подраздел "Беседы о поколениях ЭВМ"

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

Райво Штулберг


Rambler's Top100

Сайт мышонка Портал HotINDEX: знакомства, товары, хостинг, создание сайта, Интернет-магазин, развлечения, анекдоты, юмор, эротика, погода, курсы валют и многое другое!

Автор обращает внимание на то, что никакой представленный здесь материал не служит рекламным целям ни фирм,ни их продкутам, а носит сугубо информационно-образовательный характер