0 added
0 removed
Original
2026-01-01
Modified
2026-02-21
1
<p><a>#статьи</a></p>
1
<p><a>#статьи</a></p>
2
<ul><li>11 мар 2022</li>
2
<ul><li>11 мар 2022</li>
3
<li>0</li>
3
<li>0</li>
4
</ul><h2>Принципы фон Неймана и первые компьютеры на их основе</h2>
4
</ul><h2>Принципы фон Неймана и первые компьютеры на их основе</h2>
5
<p>Рассказываем, как фон Нейман присвоил себе чужие лавры, почему он ни в чём не виноват и что умели компьютеры, созданные на "не совсем его" идеях.</p>
5
<p>Рассказываем, как фон Нейман присвоил себе чужие лавры, почему он ни в чём не виноват и что умели компьютеры, созданные на "не совсем его" идеях.</p>
6
<p>Иллюстрация: John von Neumann / EDSAC / Meery Mary для Skillbox Media</p>
6
<p>Иллюстрация: John von Neumann / EDSAC / Meery Mary для Skillbox Media</p>
7
<p>Программист, консультант, специалист по документированию. Легко и доступно рассказывает о сложных вещах в программировании и дизайне.</p>
7
<p>Программист, консультант, специалист по документированию. Легко и доступно рассказывает о сложных вещах в программировании и дизайне.</p>
8
<p>В 1946 году американский учёный Герман Голдстайн опубликовал доклад математика Джона фон Неймана "Предварительное рассмотрение логической конструкции электронно-вычислительного устройства". Автор доклада изложил принципы, ставшие основой<a>архитектуры</a>всех последующих поколений ЭВМ:</p>
8
<p>В 1946 году американский учёный Герман Голдстайн опубликовал доклад математика Джона фон Неймана "Предварительное рассмотрение логической конструкции электронно-вычислительного устройства". Автор доклада изложил принципы, ставшие основой<a>архитектуры</a>всех последующих поколений ЭВМ:</p>
9
<ul><li>Память компьютера состоит из ячеек, каждой из которых присвоен номер - адрес. Любая из ячеек доступна компьютеру в любой момент времени, и он может обратиться к её содержимому по адресу.</li>
9
<ul><li>Память компьютера состоит из ячеек, каждой из которых присвоен номер - адрес. Любая из ячеек доступна компьютеру в любой момент времени, и он может обратиться к её содержимому по адресу.</li>
10
<li>Память компьютера используется как для хранения данных, так и для хранения программы. Команды и числа кодируются в двоичной системе счисления. Над командами можно производить те же операции, что и над числами. На этом принципе основана трансляция - перевод текста программы с языка высокого уровня на язык конкретной ЭВМ.</li>
10
<li>Память компьютера используется как для хранения данных, так и для хранения программы. Команды и числа кодируются в двоичной системе счисления. Над командами можно производить те же операции, что и над числами. На этом принципе основана трансляция - перевод текста программы с языка высокого уровня на язык конкретной ЭВМ.</li>
11
<li>Компьютером управляет программа, которая состоит из команд, хранящихся в последовательных ячейках памяти. Каждая команда выполняет операцию из набора операций, доступных компьютеру.</li>
11
<li>Компьютером управляет программа, которая состоит из команд, хранящихся в последовательных ячейках памяти. Каждая команда выполняет операцию из набора операций, доступных компьютеру.</li>
12
<li>Компьютер выполняет команды последовательно - от первой к последней, согласно порядку следования в программе. Этот порядок может быть изменён с помощью специальных команд в зависимости от результатов вычислений.</li>
12
<li>Компьютер выполняет команды последовательно - от первой к последней, согласно порядку следования в программе. Этот порядок может быть изменён с помощью специальных команд в зависимости от результатов вычислений.</li>
13
</ul><p>Первым в истории электронным компьютером был<a>ENIAC</a>, построенный в 1946 году в Пенсильванском университете США: огромное 30-тонное устройство, работавшее на 18 000 электронных ламп. Вычисления производились в десятичной системе, что сильно замедляло работу компьютера и приводило к перерасходу ламп.</p>
13
</ul><p>Первым в истории электронным компьютером был<a>ENIAC</a>, построенный в 1946 году в Пенсильванском университете США: огромное 30-тонное устройство, работавшее на 18 000 электронных ламп. Вычисления производились в десятичной системе, что сильно замедляло работу компьютера и приводило к перерасходу ламп.</p>
14
<p>ENIAC был не программируемой, а коммутируемой машиной - он управлялся с коммутационной панели. Чтобы задать программу, приходилось особым образом подсоединять провода: это могло продолжаться много часов и даже дней.</p>
14
<p>ENIAC был не программируемой, а коммутируемой машиной - он управлялся с коммутационной панели. Чтобы задать программу, приходилось особым образом подсоединять провода: это могло продолжаться много часов и даже дней.</p>
15
<p>Создатели ENIAC Эккерт и Мокли видели его недостатки, поэтому ещё в 1943 году начали проектировать усовершенствованную модель электронного компьютера - да, в тот момент они даже не доделали ENIAC. Будущий компьютер назвали EDVAC (от англ. Electronic Discrete Variable Automatic Computer). Работа была строго засекречена.</p>
15
<p>Создатели ENIAC Эккерт и Мокли видели его недостатки, поэтому ещё в 1943 году начали проектировать усовершенствованную модель электронного компьютера - да, в тот момент они даже не доделали ENIAC. Будущий компьютер назвали EDVAC (от англ. Electronic Discrete Variable Automatic Computer). Работа была строго засекречена.</p>
16
<p>Работая над EDVAC, Джон Эккерт впервые предложил идею программы, хранимой в памяти. Память EDVAC была выполнена на линиях задержки - особых трубках с ртутью, сохраняющих информацию. Данные кодировались в двоичной, а не в десятичной системе - это позволило сократить количество электронных ламп.</p>
16
<p>Работая над EDVAC, Джон Эккерт впервые предложил идею программы, хранимой в памяти. Память EDVAC была выполнена на линиях задержки - особых трубках с ртутью, сохраняющих информацию. Данные кодировались в двоичной, а не в десятичной системе - это позволило сократить количество электронных ламп.</p>
17
<p>Спустя полтора года к Эккерту и Мокли в качестве научного консультанта присоединился Джон фон Нейман - известный математик и участник Манхэттенского проекта. Он сразу увидел перспективность новой ЭВМ и помог выбить финансирование у армии США.</p>
17
<p>Спустя полтора года к Эккерту и Мокли в качестве научного консультанта присоединился Джон фон Нейман - известный математик и участник Манхэттенского проекта. Он сразу увидел перспективность новой ЭВМ и помог выбить финансирование у армии США.</p>
18
<p>Учёные были обязаны регулярно отчитываться перед военными о проделанной работе. Фон Нейман подготовил "Предварительный доклад о машине EDVAC", в котором описал её основные элементы и логику работы. Он отправил отчёт военному куратору Голдстайну, и тот был впечатлён глубиной идей и ясностью изложения основных концепций. Наплевав на секретность, он перепечатал и разослал отчёт европейским и американским учёным без ведома Эккерта и Мокли, а на титульном листе в качестве автора указал только фон Неймана.</p>
18
<p>Учёные были обязаны регулярно отчитываться перед военными о проделанной работе. Фон Нейман подготовил "Предварительный доклад о машине EDVAC", в котором описал её основные элементы и логику работы. Он отправил отчёт военному куратору Голдстайну, и тот был впечатлён глубиной идей и ясностью изложения основных концепций. Наплевав на секретность, он перепечатал и разослал отчёт европейским и американским учёным без ведома Эккерта и Мокли, а на титульном листе в качестве автора указал только фон Неймана.</p>
19
<p>Отчёт произвёл эффект разорвавшейся бомбы. А так как фон Неймана знали в научном мире, никто не сомневался, что он и был единственным автором документа. Так описанную в отчёте структуру ЭВМ назвали архитектурой фон Неймана.</p>
19
<p>Отчёт произвёл эффект разорвавшейся бомбы. А так как фон Неймана знали в научном мире, никто не сомневался, что он и был единственным автором документа. Так описанную в отчёте структуру ЭВМ назвали архитектурой фон Неймана.</p>
20
<p>Эккерт и Мокли были возмущены действиями Голдстайна - сами они из-за секретности не могли публиковать материалы о своей работе. Создатели EDVAC не сомневались, что их машина будет очень полезной для всего мира, а потому опасались, что им не дадут оформить патент на изобретение.</p>
20
<p>Эккерт и Мокли были возмущены действиями Голдстайна - сами они из-за секретности не могли публиковать материалы о своей работе. Создатели EDVAC не сомневались, что их машина будет очень полезной для всего мира, а потому опасались, что им не дадут оформить патент на изобретение.</p>
21
<p>И не зря - потому что именно так всё и вышло. Администрация Пенсильванского университета настаивала, чтобы Мокли и Эккерт отказались от прав на EDVAC. Возмущённые изобретатели отвергли это требование и в 1946 году, сразу после запуска компьютера ENIAC, покинули университет. Через несколько месяцев из проекта ушли фон Нейман и Голдстайн, а работа над EDVAC затянулась ещё на несколько лет.</p>
21
<p>И не зря - потому что именно так всё и вышло. Администрация Пенсильванского университета настаивала, чтобы Мокли и Эккерт отказались от прав на EDVAC. Возмущённые изобретатели отвергли это требование и в 1946 году, сразу после запуска компьютера ENIAC, покинули университет. Через несколько месяцев из проекта ушли фон Нейман и Голдстайн, а работа над EDVAC затянулась ещё на несколько лет.</p>
22
<p>В итоге EDVAC завершили только в 1949 году, а "выкатили в прод" в 1951-м, после устранения всех багов. Он весил около восьми тонн и занимал 45 квадратных метров.</p>
22
<p>В итоге EDVAC завершили только в 1949 году, а "выкатили в прод" в 1951-м, после устранения всех багов. Он весил около восьми тонн и занимал 45 квадратных метров.</p>
23
EDVAC в Лаборатории баллистических исследований<em>Фото: Wikimedia Commons</em><p>Компьютер использовал двоичную систему счисления - это позволило сократить количество электровакуумных ламп до 3600 штук (в ENIAC их было 18 000) - и умел проводить операции сложения, вычитания и деления. Объём памяти составлял 1024 слова - то есть около 5,5 килобайт. Причём в памяти хранились уже не только данные, но и сама программа.</p>
23
EDVAC в Лаборатории баллистических исследований<em>Фото: Wikimedia Commons</em><p>Компьютер использовал двоичную систему счисления - это позволило сократить количество электровакуумных ламп до 3600 штук (в ENIAC их было 18 000) - и умел проводить операции сложения, вычитания и деления. Объём памяти составлял 1024 слова - то есть около 5,5 килобайт. Причём в памяти хранились уже не только данные, но и сама программа.</p>
24
<p>EDVAC установили в Лаборатории баллистических исследований армии США - его работа была строго засекречена. Машина проработала до 1961 года, пока её не заменили на более современную.</p>
24
<p>EDVAC установили в Лаборатории баллистических исследований армии США - его работа была строго засекречена. Машина проработала до 1961 года, пока её не заменили на более современную.</p>
25
<p>После публикации отчёта фон Неймана в других странах тоже стали строить компьютеры с подобной архитектурой. Первый создали в Англии, давнем конкуренте Америки в компьютерной гонке - причём за два года до запуска EDVAC.</p>
25
<p>После публикации отчёта фон Неймана в других странах тоже стали строить компьютеры с подобной архитектурой. Первый создали в Англии, давнем конкуренте Америки в компьютерной гонке - причём за два года до запуска EDVAC.</p>
26
<p>В 1946 году профессору Кембриджа Морису Уилксу попалась копия доклада фон Неймана - знакомый из США дал почитать на одну ночь. Уилкс оценил идеи и решил, что в будущем развитие ЭВМ пойдёт именно по такому пути.</p>
26
<p>В 1946 году профессору Кембриджа Морису Уилксу попалась копия доклада фон Неймана - знакомый из США дал почитать на одну ночь. Уилкс оценил идеи и решил, что в будущем развитие ЭВМ пойдёт именно по такому пути.</p>
27
<p>Он пересёк океан, прибыл в Пенсильванский университет и прослушал лекции по EDVAC, а на обратном пути разработал логическую схему своего будущего компьютера, в дальнейшем названного EDSAC. Уилксу удалось добиться финансирования постройки ЭВМ Министерством обороны Великобритании, а сама машина заработала уже в 1949 году.</p>
27
<p>Он пересёк океан, прибыл в Пенсильванский университет и прослушал лекции по EDVAC, а на обратном пути разработал логическую схему своего будущего компьютера, в дальнейшем названного EDSAC. Уилксу удалось добиться финансирования постройки ЭВМ Министерством обороны Великобритании, а сама машина заработала уже в 1949 году.</p>
28
EDSAC в Кембридже<em>Фото: Wikimedia Commons</em><p>EDSAC почти полностью копировал архитектуру EDVAC, но при этом был компактнее: занимал площадь в 20 квадратных метров, состоял из 3000 электровакуумных ламп и использовал 32 ртутные линии задержки, дающие 1024 ячейки памяти.</p>
28
EDSAC в Кембридже<em>Фото: Wikimedia Commons</em><p>EDSAC почти полностью копировал архитектуру EDVAC, но при этом был компактнее: занимал площадь в 20 квадратных метров, состоял из 3000 электровакуумных ламп и использовал 32 ртутные линии задержки, дающие 1024 ячейки памяти.</p>
29
<p>Вычисления производились в двоичной системе, скорость расчётов составляла от десяти до пятнадцати тысяч операций в секунду, программа вводилась в память с помощью бумажной перфоленты, а выходные данные передавались на телетайп.</p>
29
<p>Вычисления производились в двоичной системе, скорость расчётов составляла от десяти до пятнадцати тысяч операций в секунду, программа вводилась в память с помощью бумажной перфоленты, а выходные данные передавались на телетайп.</p>
30
<p>Первая программа для EDSAC рассчитывала квадраты положительных чисел от 0 до 99.</p>
30
<p>Первая программа для EDSAC рассчитывала квадраты положительных чисел от 0 до 99.</p>
31
<p>Первоначально все программы представляли собой длинные последовательности нулей и единиц: 1 - лампа горит, 0 - не горит. Профессор Уилкс нашёл более удобные способы записи команд - с помощью букв и коротких английских слов, например:</p>
31
<p>Первоначально все программы представляли собой длинные последовательности нулей и единиц: 1 - лампа горит, 0 - не горит. Профессор Уилкс нашёл более удобные способы записи команд - с помощью букв и коротких английских слов, например:</p>
32
<ul><li>S - "вычитание";</li>
32
<ul><li>S - "вычитание";</li>
33
<li>Т - "передать информацию в память";</li>
33
<li>Т - "передать информацию в память";</li>
34
<li>Z - "остановка машины" и так далее.</li>
34
<li>Z - "остановка машины" и так далее.</li>
35
</ul><p>Так именно для EDSAC впервые были разработаны мнемонические коды операций и транслятор - ассемблер.</p>
35
</ul><p>Так именно для EDSAC впервые были разработаны мнемонические коды операций и транслятор - ассемблер.</p>
36
<p>Другим важным новшеством стала разработка библиотеки подпрограмм. Программисты уже были знакомы с этим понятием -<a>Грейс Хоппер</a>и её коллеги использовали подпрограммы на своей гарвардской машине. Правда, они записывали их в блокноты, чтобы каждый раз не составлять заново.</p>
36
<p>Другим важным новшеством стала разработка библиотеки подпрограмм. Программисты уже были знакомы с этим понятием -<a>Грейс Хоппер</a>и её коллеги использовали подпрограммы на своей гарвардской машине. Правда, они записывали их в блокноты, чтобы каждый раз не составлять заново.</p>
37
<p>В EDSAC появилась возможность хранить подпрограммы в памяти и при необходимости вставлять их в уже работающие программы. Для этого достаточно было вызвать их из памяти короткой командой.</p>
37
<p>В EDSAC появилась возможность хранить подпрограммы в памяти и при необходимости вставлять их в уже работающие программы. Для этого достаточно было вызвать их из памяти короткой командой.</p>
38
<p>Мнемонику операций и библиотеку подпрограмм Уилкс назвал "собирающей системой" (от англ.<em></em>assembly system) - ведь она собирала программу на машинном языке из мнемонических кодов и подпрограмм.</p>
38
<p>Мнемонику операций и библиотеку подпрограмм Уилкс назвал "собирающей системой" (от англ.<em></em>assembly system) - ведь она собирала программу на машинном языке из мнемонических кодов и подпрограмм.</p>
39
<p>Сегодня<a>языки программирования</a>, в которых мнемонические имена операции соответствуют отдельным машинным инструкциям, называются языками ассемблера, а Мориса Уилкса считают создателем одного из первых подобных языков.</p>
39
<p>Сегодня<a>языки программирования</a>, в которых мнемонические имена операции соответствуют отдельным машинным инструкциям, называются языками ассемблера, а Мориса Уилкса считают создателем одного из первых подобных языков.</p>
40
<p>По заказу правительства Великобритании на EDSAC проводились расчёты ядерных испытаний. Кембриджский университет использовал его для расчётов в области теоретической химии, радиоастрономии и других научных задач. Например, именно с помощью EDSAC удалось рассчитать самое большое на тот момент простое число - 79-значное. Под эту задачу написали кучу программ: для вычислений с комплексными числами и числами с плавающей запятой, для расчётов векторов, матриц, тригонометрических функций.</p>
40
<p>По заказу правительства Великобритании на EDSAC проводились расчёты ядерных испытаний. Кембриджский университет использовал его для расчётов в области теоретической химии, радиоастрономии и других научных задач. Например, именно с помощью EDSAC удалось рассчитать самое большое на тот момент простое число - 79-значное. Под эту задачу написали кучу программ: для вычислений с комплексными числами и числами с плавающей запятой, для расчётов векторов, матриц, тригонометрических функций.</p>
41
<p>В 1951 году для EDSAC была написана и первая интерактивная компьютерная игра - OXO, разновидность крестиков-ноликов. Для этого к компьютеру был подсоединён небольшой дисплей на основе электронно-лучевой трубки.</p>
41
<p>В 1951 году для EDSAC была написана и первая интерактивная компьютерная игра - OXO, разновидность крестиков-ноликов. Для этого к компьютеру был подсоединён небольшой дисплей на основе электронно-лучевой трубки.</p>
42
Так выглядела OXO<em>Фото: Wikimedia Commons</em><p>Легендарный EDSAC выключили только в 1958 году. Его заменил более совершенный компьютер, EDSAC 2, с памятью на ферритовых сердечниках, в котором использовались ещё и магнитные ленты.</p>
42
Так выглядела OXO<em>Фото: Wikimedia Commons</em><p>Легендарный EDSAC выключили только в 1958 году. Его заменил более совершенный компьютер, EDSAC 2, с памятью на ферритовых сердечниках, в котором использовались ещё и магнитные ленты.</p>
43
<a><b>Бесплатный курс по Python ➞</b>Мини-курс для новичков и для опытных кодеров. 4 крутых проекта в портфолио, живое общение со спикером. Кликните и узнайте, чему можно научиться на курсе. Смотреть программу</a>
43
<a><b>Бесплатный курс по Python ➞</b>Мини-курс для новичков и для опытных кодеров. 4 крутых проекта в портфолио, живое общение со спикером. Кликните и узнайте, чему можно научиться на курсе. Смотреть программу</a>