История вычислительной техники, ч.6 Обзор за 1940-е - 1950-е годы.

May 26, 2017 21:58

Обзор развития цифровой вычислительной техники за 1940-е - 1950-е годы.

До 1940 года не было сделано ни одного пригодного к эксплуатации программно управляемого компьютера.

В 1940-е годы было сделано несколько механических и релейных компьютеров (США, Германия).
В 1945 году вступил в действие первый электронный компьютер ЭНИАК, сразу же продемонстрировавший многократное превосходство в быстродействии над механическими и релейными компьютерами.
В 1949 году к нему добавились EDSAC (Великобритания) и EDVAC (США, полноценная эксплуатация началась несколько позже). За 1940-е годы было создано три электронных компьютера (введены в эксплуатацию два из них). Из всех вступивших в действие, включая механические и релейные только EDSAC был полноценным компьютером с хранимой в памяти программой и способностью выполнять условные и безусловные переходы (также этими свойствами обладал и EDVAC). Памяти с произвольным доступом, т.е. временем обращения, не зависящим от адреса, не обладал ни EDSAC, ни EDVAC. Совсем полноценных быстродействующих компьютеров, с памятью программ, командами переходов, памятью с произвольным доступом в 1940-е годы создано не было.

В то время с участием наиболее выдающихся ученых велись обсуждения, много ли компьютеров нужно. В США обсуждали, три быстрых компьютера нужно для всех США, или хватит двух. В СССР академик М.В.Келдыш (специалист по прикладной математике и механике) в начале 1950-х годов, посмотрев ЭВМ "Стрела", высказал мнение, что семь таких ЭВМ обеспечат все потребности СССР. То есть оценивали потребности стран примерно одинаково (с учетом того, что в США имелись в виду более быстрые компьютеры, раз в 5 быстрее "Стрелы") - общая производительность 15-30 тысяч операций в секунду.
Однако не был учтен важнейший момент - ЭВМ с производительностью "сложение за 60 мкс, умножение за 450 мкс", заменявшая, по оценкам, около 300 тысяч человек с арифмометрами, обходилась во много раз (сотни, тысячи) дешевле, чем эти люди с арифмометрами. То и есть стоимость вычислений падала многократно, и многократно же возрастал допустимы объем вычислений, ограниченный временем их выполнения. А это означало, что считать станут очень многое из того, что раньше не считали, обходясь прикидочными оценками и инженерной интуицией, а также начнут применять компьютеры в областях, с расчетами не связанных (обработка текстов, перевод на другие языки и т.п.).
Так и оказалось - потребность в вычислениях возрастала быстрее, чем строились новые, все более многочисленные и быстрые компьютеры. Начался всемирный дефицит компьютерных вычислительных мощностей, закончившийся лишь в 1980-е годы с распространением быстрых дешевых персональных компьютеров.

Следует отметить, что наибольший выигрыш компьютер дает на научно-технических расчетах. Те, кто имел дело с программируемыми калькуляторами Б3-21 (в продаже был с 1977 г.) или Б3-34 (с 1980), знают, что при их весьма ограниченных возможностях - скорость 3-5 операций в секунду (это простых, вычисление трансцендентных функций длилось порядка секунды) при памяти 60 или 98 шагов программы и порядка 15 слов для данных - они давали огромный выигрыш. Запрограммировал - и он меньше чем за один час считает столько, сколько на арифмометре или обычном калькуляторе можно посчитать только за полную рабочую неделю напряженного, требующего постоянной концентрации внимания труда. А можно его и на ночь оставить, за 10-15 часов насчитает столько, сколько вручную будешь считать как бы не полгода. Расчеты, за которые никогда бы не взялся без такой машины, становятся обыденным действием.
В то же время такое рядовое в наше время действие, как поиск слова в тексте объемом в несколько десятков килобайт, занимало бы на ранних компьютерах примерно столько времени, как и просмотреть весь этот текст глазами, да и доступно было (по объему обрабатываемых данных) только на компьютерах с накопителем на магнитной ленте. Понятно, что и мыслей не было делать это на тогдашних компьютерах.

Не удивительно, что самые ранние компьютеры были ориентированы только на научно-технические расчеты. Впрочем, их (особенно в США) начали применять и для бухгалтерских, экономических, статистических расчетов.

Представление данных в ранних компьютерах.

Использовалось как двоичное, так и десятичное представление. Двоичное выгоднее по объему памяти, так, шестиразрядное десятичное слово позволяет представлять числа от 0 до 999 999, занимая 24 разряда (6*4), а 20-разрядное двоичное - от 0 до 1 048 575, да и аппаратура двоичной арифметики проще и быстрее работает. Но если ввода-вывода много, а вычислений относительно мало, много времени отнимают громоздкие преобразования десятичных входных данных в двоичную форму, а потом двоичных в десятичную.
Поэтому в компьютерах для научных расчетов использовалось в основном двоичное представление, а для экономических и статистических - десятичное. В десятичных компьютерах в 1950-е годы стали использовать представление "с избытком 3", то есть 0 представлен как 3,"0011" двоичное, 1 как 4,"0100" двоичное и т.д. При таком представлении проще выполнять арифметические операции.

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

Поэтому почти с самого начала в компьютерах для научных расчетов широко используется представление с плавающей точкой, хотя оно сложнее в реализации, чем с фиксированной точкой (в том числе в первых советских БЭСМ и "Стрела"). В числе с плавающей точкой три поля - знак (1 бит), порядок и мантисса. Мантисса обычно представлена как число с точкой перед старшим разрядом. Значение числа - по формуле (мантисса)*((осн.пор) в степени (порядок)). Осн.пор - основание порядка, чаще всего 2 в двоичных машинах и 10 в десятичных. Так, в БЭСМ из 39 бит числа 1 - знак, 6 - порядок с двоичным основанием, 32 - мантисса. Это позволяло представлять числа от 10 в степени 9 до 10 в степени -10 с относительной погрешностью менее одной миллиардной.

Зачем столь малая относительная погрешность, ведь в большинстве инженерных расчетов исходные данные имеют точность порядка 1%?
Во-первых, бывает нужда и в очень точных расчетах, например, астрономических (там исходные данные имеют большую точность).
Во-вторых, при вычислениях большого объема ошибка постепенно растет. Если округление (а оно необходимо, т.к. в точном результате умножения вдвое больше цифр, чем в каждом из сомножителей, при делении может получиться бесконечная дробь, да и при сложении число цифр растет, и чтобы уложиться в формат машинного слова, приходится округлять) делается оптимально, то ошибка растет как корень квадратный от числа проделанных операций, т.е. при миллионе операций (которые БЭСМ делала за пару минут) относительная ошибка округления в 1000 раз больше, чем относительная ошибка представления одного числа. В ряде практически важных вычислительных схем ошибка растет еще быстрее.

1950-е

В 1950-е годы произошел взрывной рост количества компьютеров. К началу 1960-х в США (где тогда было большин6ство из всех компьютеров в мире) количество компьютеров составляло несколько тысяч более 100 разных типов. Понятно, что такое многообразие нет возможности охватить подробно, будут в дальнейшем указываться лишь наиболее важные.

В процессорах начали применять транзисторы и ферритовые магнитные элементы. Память строилась первоначально на ультразвуковых линиях задержки и электронно-лучевых трубках, во второй половине 1950-х все шире стала распространяться ферритовая память. В дешевых ЭВМ - на магнитных барабанах. В качестве внешней памяти получили распространение магнитные барабаны и ленты, появились первые магнитные диски.
Стали применяться управляющие программы (прообраз будущих операционных систем). При написании программ все шире использовали языки ассемблера, появились первые языки программирования высокого уровня - в 1957-1958 годах Фортран, в 1958 - Алгол-58, прообраз будущего Алгола-60. Коммерческий счет к концу 1950-х велся в основном в пакетном режиме - пользователи оставляли пакеты с заданиями, оператор их пропускал один за другим (первоначально пользователю выделялось машинное время, когда он сам работал за компьютером).

компьютеры

Previous post Next post
Up