Какой ученый предложил проект машины ставший прообразом пк
18 великих изобретений в мире компьютеров и программирования
Недавно у нас с коллегами возникла дискуссия на тему первых компьютеров и программ. В разговоре вспомнились не только знаменитые ученые, такие как Чарльз Бэббидж, но и менее известных вроде Ады Лавлейс. В результате возникла идея провести исследование и составить хронологию развития истории компьютеров и программирования.
В процессе изучения различных источников обнаружилось немало любопытных фактов. Например, тот же Бэббидж технически не является изобретателем компьютера, что первым высокоуровневым языком программирования был вовсе не FORTRAN, а для CRT-мониторов использовались стилусы.
1. Первый компьютер: «Машина различий» (1821 г.)
Предшественник Аналитической машины. «Машина различий» была первой попыткой создания механического компьютера. Разработкой проекта занимался ученый Чарльз Бэббидж. Заручившись поддержкой британского правительства, он начал работать над устройством. Но из-за высокой себестоимости, финансирование было остановлено и компьютер так и не построили.
2. Первый компьютер общего назначения: «Аналитическая машина» (1834 г.)
Чарльз Бэббидж продолжил свою работу и, основываясь на полученном опыте, взялся за разработку механического компьютера. Эта машина предназначалась для автоматизации вычислений путем аппроксимации функций многочленами и вычисления конечных разностей. Благодаря возможности приближенного представления в многочленах логарифмов и тригонометрических функций, «аналитическая машина» могла быть универсальным прибором.
3. Первая Компьютерная программа: алгоритм для вычислений числа Бернулли (1841 — 1842 г.)
Математик Ада Лавлейс начала переводить отчеты своего итальянского коллеги — математика Луиджи Менабреа. Для этого она использовала все ту же аналитическую машину Бэббиджа в 1841. Во время перевода женщина заинтересовалась компьютером и оставила примечания. В одной из заметок содержался алгоритм для вычисления числа Бернулли (последовательность рациональных чисел В1, В 2, В3) аналитической машиной, которая, как полагают эксперты, была самой первой компьютерной программой.
4. Первый работающий компьютер: Z3 Конрада Цузе (1941г.)
Немецкий изобретатель Конрад Цузе стал первым, кому удалось создать работающий компьютер Z3. На основе своих первых двух моделей Z1 и Z2 ученый собрал полноценный электромагнитный программирующий компьютер, созданный на базе электронных реле. Z3 имел двоичную систему исчисления, числа с плавающей запятой, арифметическое устройство с двумя 22-разрядными регистрами, управление через 8 канальные ленты.
Предполагалось, что это будет секретный проект немецкого правительства. По большей части он разрабатывался для Института Исследований в области авиации. Правда самого Цузе мало интересовали интересы военных, ему просто хотелось создать работающую ЭВМ.
Оригинал машины Z3 был разрушен во время бомбежки Берлина в 1943 году.
5. Первая электронно-вычислительная машина: Компьютер Атанасова-Берри (Atanasoff-Berry Computer, ABC, 1942 г.)
Первое цифровое вычислительное устройство без движущихся частей. Компьютер был создан Джоном Винсентом Атанасовым и Клиффордом Берри. ABC использовался для поиска решений под одновременные линейные уравнения. Это был самый первый компьютер, который использовал набор из двух предметов, чтобы представлять данные и электронные выключатели вместо механических. Компьютер, однако, не являлся программируемым. В ABC впервые появились более современные элементы, такие как двоичная арифметика и триггеры. Минусом устройства была его особая специализация и неспособность к изменяемости вычислений из-за отсутствия хранимой программы.
6. Первая программируемая электронно-вычислительная машина: «Колосс» (1943 г.)
Компьютер «Колосс» — секретная разработка времен второй мировой войны. Он был создан Томми Флауэрсом совместно с отделением Макса Ньюмана, с целью предоставления помощи британцам в расшифровке перехваченных нацистских сообщений. Они были зашифрованы шифром Лоренца. Действия были запрограммированы электронными выключателями и штепселями. «Колосс» давал время на расшифровку сообщений от нескольких часов до недель. С помощью компьютера было расшифровано немало фашистских шифровок.
7. Первая программируемая электронно-вычислительная машина общего назначения: ENIAC (1946 г.)
ENIAC (Электронный числовой интегратор и вычислитель) — первый электронный цифровой компьютер общего назначения с возможностью перепрограммирования для решения широкого спектра задач. Финансируемый американской армией, ENIAC был разработан Электротехнической школой Мура в университете Пенсильвании. Его создавала команда ученых во главе с Джоном Преспером Экертом и Джоном Уильямом Мокли. ENIAC достигал в ширину 150 футов и мог быть запрограммирован на выполнение сложных операций. Вычисления производились в десятичной системе, компьютер оперировал числами максимальной длиной в 20 разрядов.
Интересным фактом было то, что на программирование задачи на ENIAC могло уходить несколько дней, зато решение выдавалось в считаные минуты. При перекоммутировании ENIAC «превращался» в практически новый специализированный компьютер для решения специфических задач.
8. Первый трекбол (1946/1952 г.)
Трекбол — указательное устройство ввода информации об относительном перемещении для компьютера. По сути, аналог современной компьютерной мыши. По одной из версий он был разработан Ральфом Бенджамином, когда тот работал над системой мониторинга для низколетающего самолета. Изобретение, которое он описал, включало в себя шар для управления координатами X-Y курсора на экране. Дизайн был запатентован в 1947 году, но не выпускался, потому что проект находился под грифом «секретно».
Также трекбол использовался в системе канадского военно-морского флота DATAR в 1952 году. Этот «шаровой указатель» применил Том Крэнстон.
9. Первый компьютер совместного хранения данных и программ в памяти: SSEM (1948 г.)
Манчестерская малая экспериментальная машина (англ. Manchester Small-Scale Experimental Machine, SSEM) — первый электронный компьютер, построенный по принципу совместного хранения данных и программ в памяти. Создатели — Фредерик Уильямс, Том Килберн и Джефф Тутилл были членами Манчестерского университета. Машина задумывалась, как экспериментальный аппарат для изучения свойств компьютерной памяти на ЭЛТ («трубки Уильямса»). Программы были введены в двухчастную форму, используя 32 выключателя, на продукции CRT.
Кстати, успешные испытания SSEM стали началом создания полноценного компьютера на трубках Уильямса — «Манчестерского Марка I».
10. Первый высокоуровневый язык программирования: Планкалкюль (Plankalkül, 1948 г.)
Этот язык был использован Конрадом Цузе (разработчиком первого работающего компьютера Z3). Хотя Цузе и начал создавать Plankalkül еще с 1943 года, впервые он был применен в 1948 году, когда ученый опубликовал работу на тему программирования. Правда данный язык программирования не привлек особого внимания. Первый компилятор для Планкалкюль (для современных компьютеров) был создан лишь в 2000 году профессором Свободного университета Берлина — Йоахимом Хоманом.
11. Первый ассемблер: «Начальные команды» на EDSAC (1949 г.)
Ассемблер — транслятор исходного текста программы, который преобразовывает мнемонику (низкого уровня) в числовое представление (машинный код).
Первый в мире действующий и практически используемый компьютер с хранимой в памяти программой. Программы были в мнемокодах вместо машинных, делая исходный код самым первым ассемблером.
12. Первый персональный компьютер: «Simon» (1950 г.)
Simon стал первым доступным компьютером. Он разработан Эдмундом Беркли, а построен инженером-механиком Уильямом Портером и выпускниками Колумбийского университета Робертом Дженсоном и Робертом Валлом. Simon имел систему команд и мог выполнять девять операций, в том числе два действия арифметики — сложение и вычитание, а также сравнение и выбор аргументов. Числа и команды считывались с перфоленты, а результат высвечивался на индикаторной панели. На вход могли подаваться числа в диапазоне от 1 до 255 в бинарной нотации, набитые на перфоленту.
13. Первый компилятор: A-0 для UNIVAC 1 (1952 г.)
Компилятор — программа, которая преобразовывает язык высокого уровня в машинный код. A-0 Система была программой, созданной легендарной женщиной-программистом Грейс Хоппер. Основной задачей системы было преобразование программы, определенной как последовательность подпрограмм и аргументов в машинный код. A-0 был выпущен клиентам с его исходным кодом, делающим, возможно, самое первое общедоступное программное обеспечение.
В 1952 г. у Хоппер появился готовый к работе компилятор. Ее высказывание по этому поводу:
В это не могли поверить. У меня был работающий компилятор и никто им не пользовался. Ведь мне говорили, что компьютер может выполнять только арифметические операции.
14. Первый автокод: Автокод Гленни (1952 г.)
Автокод — название группы языков программирования высокого уровня, который использует компилятор. Первый автокод был создан для серии компьютеров в университетах Манчестера, Кембриджа и Лондона. Автокод был создан одним из манчестерских сотрудников Тьюринга — Аликом Глени (собственно в его честь и назван).
15. Первая компьютерная мышь (1964 г.)
Идея компьютерной мыши пришла в голову американскому физику Дугласу Энджелбарту во время конференции на тему компьютерной графики. Он придумал устройство с парой маленьких поворачивающихся колес, которые могут использоваться для свободного перемещения курсора по экрану. Прототип был создан его ведущим инженером, Биллом Инглишем, но Инглиш и Энджелбарт никогда не получали лицензионные платежи для дизайна.
16. Первый коммерческий компьютер: Programma 101 (1965 г.)
17. Первый сенсорный экран (1965 г.)
На фото ниже — первый сенсорный экран (хоть он и мало чем похож на современные модели). Это панель с сенсорным экраном без чувствительности давления (в равной степени на любые касания экрана) с единственной точкой для контакта. В дальнейшем концепт использовался воздушными диспетчерами в Великобритании вплоть до 90-х годов.
18. Первый объектно-ориентированный язык программирования: Simula (1967 г.)
Simula — это язык программирования общего назначения, разработанный сотрудниками Норвежского Вычислительного Центра (г. Осло) Кристеном Нюгордом и Оле-Йоханом Далем для моделирования сложных систем. Учения Чарльза Ричарда Хоара про конструкции класса, языков программирования с объектами, классами и подклассами привели к созданию SIMULA 67.
Simula 67 явилась также первым языком с встроенной поддержкой основных механизмов объектно-ориентированного программирования.
Чарльз Бэббидж, математик и изобретатель первого в мире компьютера: 224 года со дня рождения
Чарльз Бэббидж в 1860-м году
224 года назад, 26 декабря 1791 года, по адресу 44 Кросби Роу, Уолворт Роуд в Лондоне родился мальчик, которого назвали Чарльзом. Всего в семье банкира Бенджамина Бэббиджа было четверо детей.
Чарльз в детстве много болел, и в возрасте восьми лет был даже отправлен учиться в школу в сельской местности, чтобы поправить здоровье после сильной лихорадки, чуть не прервавшей его жизнь. И после этого по состоянию здоровья ему часто приходилось учиться дома с частными преподавателями.
Во время учёбы Чарльз всерьёз заинтересовался математикой. Поступив в академию Холмвуд, он много времени проводил в тамошней библиотеке за чтением книг по математике, а по его просьбе родители наняли дополнительных к институтской программе учителей, которые помогали ему постигать эту науку дома. Один из учителей подтянул образование Чарльза до степени, пригодной для поступления в Кембридж.
Поступив в Кембридж в октябре 1810 года, и отучившись там немного, Чарльз был разочарован местным уровнем преподавания математики. Чарльз познакомился с другими одарёнными студентами – Джорджем Пикоком (в будущем – известный математик), Джоном Гершелем (в будущем – математик, астроном, химик, ботаник, изобретатель и фотограф-экспериментатор), и другими.
Совместно они организовали в стенах университета т.н. «Аналитическое общество», к заслугам которого можно, в числе прочего, отнести пропаганду символики Лейбница для работы с дифференциальными уравнениями. До этого совместными усилиями они перевели учебник «Научные основы интегрального и дифференциального счисления» французского математика Сильвестра Лакруа. Начавшись в виде шуточного студенческого проекта, к 1830-х годам «Аналитическое общество» стало уже официальным подразделением университета, и существует там и поныне.
После Кембриджа Чарльз читал лекции, занимался совместно с Гершелем научной работой, связанной с электричеством. Писал книги и пробовал заниматься политикой. Его книга «Экономика механизмов и производств», посвящённая организации промышленных производств и изданная в 1832 году, оказала основополагающее влияние на математические методы исследования операций (разработку и применение методов нахождения оптимальных решений на основе математического моделирования, статистического моделирования и различных эвристических подходов). В частности, в книге активно пропагандировался принцип разделения труда, и доказывалось, что эта методика приводит к увеличению эффективности производства. Теперь этот принцип в Британии называют «Принципом Бэббиджа».
Кроме этого, Бэббидж интересовался инженерным делом, в частности работой поездов. Он изобрёл треугольное устройство «метельник» или «путеочиститель», которое часто называли «скотобойником» (по аналогии с этим можно вспомнить «кенгурятники» внедорожников) – оно помогало оперативно очищать железнодорожные пути от посторонних предметов (и существ). Также ему принадлежит разработка специального вагона-динамометра, измеряющего различные критичные параметры железнодорожного полотна.
Участвовал в создании Астрономического сообщества и в создании единого стандарта астрономических вычислений. Именно работа над исправлением ошибок в счётных таблицах натолкнула Бэббиджа на мысль о механизации рутинного труда по подсчётам.
Цитата из исторической биографии:
В 1812 году он сидел в одной из своих комнат, и смотрел на полные ошибок логарифмические таблицы. И внезапно ему пришла идея автоматических расчётов этих чисел при помощи машин. Французское правительство разработало новый метод подсчёта таблиц. 3-4 математика решали вопросы подсчётов, ещё десяток разбивал работу на более простые части, а сама рутинная работа, состоявшая из сложения и умножения, отдавалась на откуп 80-и работникам-счётчикам, которые и не смыслили в математике ничего больше, чем эти два простых действия. Таким образом массовое производство впервые было применено для математических целей. Бэббиджа захватила идея, что работу неопытных счетоводов можно полностью заменить механизмами, которые бы работали надёжнее и быстрее.
Идея разделения труда вычислителей принадлежала Гаспару де Прони, руководившего бюро переписи Франции с 1790 по 1800 года.
В 1822 году Бэббидж опубликовал статью с описанием машины, способной заменить людей-вычислителей, а вскоре приступил к её практическому созданию. Как математику, Бэббиджу был известен метод аппроксимации функций многочленами и вычислением конечных разностей. С целью автоматизации этого процесса он начал проектировать машину, которая так и называлась — разностная. Эта машина должна была уметь вычислять значения многочленов до шестой степени с точностью до 18-го знака.
В следующем году по рекомендации Королевского общества правительство Великобритании выделило ему субсидии в размере 1500 фунтов стерлингов на создание разностной машины.
К сожалению, изобретатель не смог при своей жизни построить полностью работающую версию задуманной им машины. Вместо трёх лет он потратил на неё более 9 лет, бюджет её создания вырос в 10 раз, но он не смог предвидеть всех трудностей, связанных с реализацией своей идеи.
После того, как правительство отказалось выделять дополнительные средства на финансирование неудавшегося проекта, Бэббидж занялся более общей версией механического компьютера, «аналитической машиной», которую он назвал «Разностная машина №2».
После его смерти во второй половине 19-го века другие изобретатели по его чертежам сумели построить работающие версии разностных машин, одна из которых даже использовалась по назначению, для расчёта и публикации логарифмических таблиц.
Одна из разностных машин, построенная другим изобретателем по чертежам Бэббиджа
В период 1989 по 1991 год к двухсотлетию со дня рождения Чарльза Бэббиджа на основе его оригинальных работ в лондонском Музее науки была собрана работающая копия разностной машины № 2. В 2000 году в том же музее заработал принтер, также придуманный Бэббиджем для своей машины. После устранения обнаруженных в старых чертежах небольших конструктивных неточностей, обе конструкции заработали безупречно.
Построенная в наше время по чертежам изобретателя разностная машина, находящаяся в лондонском музее
Аналитическая машина, придуманная изобретателем, является прямым прообразом современного цифрового компьютера. В единую логическую схему Бэббидж увязал арифметическое устройство (названное им «мельницей»), регистры памяти, объединённые в единое целое («склад»), и устройство ввода-вывода, реализованное с помощью перфокарт трёх типов. Перфокарты операций переключали машину между режимами сложения, вычитания, деления и умножения. Перфокарты переменных управляли передачей данных из памяти в арифметическое устройство и обратно. Числовые перфокарты могли быть использованы как для ввода данных в машину, так и для сохранения результатов вычислений, если памяти было недостаточно.
Ещё одна современная копия машины находится в музее компьютерной истории в Маунтин Вью в Калифорнии:
Во время работы над аналитической машиной Бэббидж вёл переписку с британским математиком Адой Лавлейс. Они познакомились с Бэббиджем, когда ей было всего 17 лет. Впоследствии она не только давала ему идеи по конструкции машины, но и разработала алгоритм её работы для вычисления чисел Бернулли. В связи с этим её часто называют первым программистом в истории.
В 2011 году британские поклонники Бэббиджа разработали план постройки Аналитической машины полностью в том виде, в котором её задумал автор. Инициатива получила название «Plan 28». Пока что им не удалось найти несколько миллионов фунтов на финансирование своего проекта, но они надеются завершить его хотя бы в 2021 году, к 150-й годовщине со дня смерти изобретателя. В переводе на современные единицы, такая машина будет обладать 675 байтами памяти и работать с частотой 7 Гц.
Более 40 лет Бэббидж жил и работал в доме №1 по Дорсет Стрит квартала Мэрилебон на севере Вестминстера. Умер он там же, в возрасте 79 лет, 18 октября 1871 года. Сейчас по этому адресу можно найти круглую мемориальную табличку с его именем.
Первое поколение компьютеров: от Древнего Рима до Второй Мировой
Лень — двигатель прогресса. Стремление человечества хотя бы частично автоматизировать свою деятельность всегда выливалось в различные изобретения. Математические вычисления и подсчеты также не избежали научного прогресса. Ещё в Древнем Риме местные «таксисты» использовали аналог современного таксометра — механическое устройство, которое определяло стоимость поездки в зависимости от длины маршрута. Время шло, и к середине прошлого века эволюция вычислительных систем привела к появлению нового типа устройств — компьютеров. Тогда, конечно, их так никто не называл. Для этого использовался другой термин — ЭВМ (электронно-вычислительная машина). Но время и прогресс стерли границы между этими определениями. Так как же прогресс дошел до первых ЭВМ и как они работали?
История развития
Арифмометр
Данная машина представляла собой 13-разрядную суммирующую машину.
В следующем году вокруг этой машины начали появляться различные возражения, а именно по поводу её механизма. Существовало мнение о том, что машина да Винчи представляет собой механизм пропорционирования, а не счетную машину. Также возникал вопрос и о её работе: по идее, 1 оборот первой оси вызывает 10 оборотов второй, 100 оборотов третьей и 10 в степени n оборотов n-ной оси. Работа такого механизма не могла осуществляться из-за огромной силы трения. По итогу голоса сторонников и противников счетной машины Леонардо да Винчи разделились, но, тем не менее, IBM решила убрать эту модель из коллекции
Но, оставим наработки Леонардо Да Винчи. Расцвет арифмометров пришелся на 17 век. Первой построенной моделью стал арифмометр Вильгельма Шиккарда в 1623 году. Его машина была 6-разрядной и состояла из 3 блоков — множительного устройства, блока сложения-вычитания и блока записи промежуточных результатов.
Копия арифмометра Шиккарда
Также 17 век отметился ещё несколькими арифмометрами: «паскалина» за авторством Блеза Паскаля, арифмометр Лейбница и машина Сэмюэля Морленда. В промышленных масштабах арифмометры начали производиться в начале 19 века, а распространены были практически до конца 20-го.
Аналитическая и разностная машины Бэббиджа
Чарльз Бэббидж — английский математик, родившийся в конце 18 века. На его счету числится большое количество научных работ и изобретений. Но в рамках данной статьи нас интересуют два его проекта: аналитическая машина и разностная машина.
Идея о создании разностной машины не принадлежит Чарльзу Бэббиджу. Она впервые была описана немецким инженером Иоганном Мюллером в книге с очень сложным названием. До конца не ясно, повлияли ли на Бэббиджа идеи Мюллера при создании разностной машины, поскольку Чарльз ознакомился с его работой в переводе, дата создания которого неизвестна.
Книга Иоганна Мюллера
Считается, что основные идеи для создания разностной машины Бэббидж взял из работ Гаспара де Прони и его идей о декомпозиции математических работ. Его идея заключалась в следующем: есть 3 уровня, на каждом из которых математики занимаются решением определенных проблем. На верхнем уровне находятся самые крутые математики и их задача — вывод математических выражений, пригодных для расчетов. У математиков на втором уровне стояла задача вычислять значения функций, которые вывели на верхнем уровне, для аргументов, с определенным периодом. Эти значения становились опорными для третьего уровня, задачей которого являлись рутинные расчеты. От них требовалось делать только грамотные вычисления. Их так и называли — «вычислители». Эта идея навела Бэббиджа на мысль о создании машины, которая могла бы заменить «вычислителей». Машина Бэббиджа основывалась на методе аппроксимации функций многочленами и вычисления конечных разностей. Собственно, поэтому машина и называется разностной.
В 1822 году Бэббидж построил модель разностной машины и заручился государственной поддержкой в размере 1500 фунтов стерлингов. Он планировал, что закончит машину в течение 3 лет, но по итогу работа была не завершена и через 9 лет. За это время он получил ещё 15500 фунтов стерлингов в виде субсидий от государства. Но всё же часть машины функционировала и производила довольно точные (>18 знаков после запятой) расчеты.
Созданная на основе работ Бэббиджа разностная машина
Во время работы над разностной машиной у Чарльза Бэббиджа возникла идея о создании аналитической машины — универсальной вычислительной машины. Её называют прообразом современного цифрового компьютера, и не зря. Она состояла из арифметического устройства (»мельницы»), памяти (»склада») и устройства ввода-вывода, реализованного с помощью перфокарт различного типа. К сожалению, данная идея осталась лишь на бумаге.
Схема аналитической машины Бэббиджа
Табулятор
История электромеханических машин начинается в 1888 году, когда американский инженер Герман Холлерит, основатель компании CTR (будущая IBM), изобрел электромеханическую счетную машину — табулятор, который мог считывать и сортировать данные, закодированные на перфокартах. В аппарате использовались электромагнитные реле, известные еще с 1831 года и до Холлерита не применявшиеся в счетной технике. Управление механическими счетчиками и сортировкой осуществлялось электрическими импульсами, возникающими при замыкании электрической цепи при наличии отверстия в перфокарте. Импульсы использовались и для ввода чисел, и для управления работой машины. Поэтому табулятор Холлерита можно считать первой счетной электромеханической машиной с программным управлением. Машину полностью построили в 1890 году и использовали при переписи населения США в том же году. Впоследствии табуляторы использовались вплоть до 1960-х — 1970-х годов в бухгалтерии, учете, обработке данных переписей и подобных работах. И даже если в учреждении имелась полноценная ЭВМ, табуляторы все равно использовали, чтобы не нагружать ЭВМ мелкими задачами.
Электромеханические машины времен ВМВ
В 1937 году Клод Шеннон в своей работе A Symbolic Analysis of Relay and Switching Circuits показал, что электронные связи и переключатели могут представлять выражения булевой алгебры. Машины тех лет можно условно на два типа: электромеханические (основанные на электромагнитных переключателях) и электронные (полностью на электровакуумных лампах). К первым относились американский Harvard Mark I и компьютеры немецкого инженера Конрада Цузе.
Mark I
Работа над Mark I началась в 1939 году в Endicott laboratories по субподрядному договору с IBM. В качестве основы использовались наработки Чарльза Бэббиджа. Компьютер последовательно считывал инструкции с перфоленты, условного перехода не было, циклы организовывались в виде склеенных в кольцо кусков перфоленты. Принцип разделения данных и инструкций в Mark I получил известность как Гарвардская архитектура. Машину закончили в 1944 году и передали в ВМФ США. Характеристики:
В 1936 немецкий инженер Конрад Цузе начал работу над своим первым вычислителем Z1. Первые две модели из серии Z были демонстративными. Следующий же компьютер, Z3, который закончили в 1941, имел практическое применение: с его помощью делали аэродинамические расчеты (стреловидные крылья самолетов, управляемые ракеты). Машина была выполнена на основе телефонных реле. Инструкции считывались с перфорированной пленки. Так же, как в Mark I, отсутствовали инструкции условного перехода, а циклы реализовывались закольцованной перфолентой. Z3 имел некоторые преимущества перед своими будущими собратьями (ENIAC, Mark I): вычисления производились в двоичной системе, устройство позволяло оперировать числами с плавающей точкой. Так как Цузе изначально исходил из гражданских интересов, его компьютеры более близки к современным, чем тогдашние аналоги. В 1944 году практически был завершен Z4, в котором уже присутствовали инструкции условного перехода. Характеристики Z3:
Первые ламповые компьютеры
Однозначно определить первый в мире компьютер сложно. Многими учеными определение первого поколения основывается на вычислительной базе из электронных ламп. При этом первое поколение компьютеров разрабатывалось во время Второй мировой войны. Возможно, созданные в то время компьютеры засекречены и по сей день. В целом выделяют два возможных первенца — ENIAC и Colossus
ENIAC
Electronic Numerical Integrator and Computer (Электронный числовой интегратор и вычислитель) или ENIAC создавался по заказу от армии США для расчета баллистических таблиц. Изначально, подобные расчеты производились людьми и их скорость не могла соотноситься с масштабом военных действий. Построен компьютер был лишь к осени 1945 года.
Colossus
Colossus в отличие от ENIAC был очень узконаправленной машиной. Он создавался исключительно с одной целью — декодирование немецких сообщений, зашифрованных с помощью Lorenz SZ. Эта машина было схожа с немецкой Enigma, но состояла из большего числа роторов. Для декодирования этих сообщений было решено создать Colossus. Он включал в себя 1500 электронных ламп, потреблял 8,5 КВт и обладал тактовой частотой в 5.8 МГц. Такое значение частоты достигалось за счет того, что Colossus был создан для решения только одной задачи и применяться в других областях не мог. К концу войны на вооружении Британии стояло 10 таких машин. После войны все они были уничтожены, а данные о них засекречены. Только в 2000 году эта информация была рассекречена.
Реконструированная модель Colossus
Принцип работы
Вакуумные лампы
Радиолампа представляет собой стеклянную колбу с электродами, из которой откачан воздух. Простейшая разновидность ламп — диод, состоящий из катода и анода, а также спирали, разогревающей катод до температур, при которых начинается термоэлектронная эмиссия. Электроны покидают катод и под действием разности потенциалов притягиваются к аноду. В обратном направлении заряд не переносится, так как заряженных ионов в колбе нет (вакуум). При изменении полярности электроны, покинувшие разогретый электрод, будут притягиваться обратно. До второго электрода они долетать не будут, отталкиваясь от него из-за отрицательного потенциала. Если добавить еще один электрод, то получится триод. В электровакуумном триоде устанавливается сетка между катодом и анодом. При подаче на сетку отрицательного потенциала она начинает отталкивать электроны, не позволяя им достичь анода. При подаче модулированного сигнала ток будет повторять изменения потенциала на сетке, поэтому изначально триоды использовали для усиления сигналов.
Радиолампа и схема триггера на двух триодах
Если взять два триода и соединить анод каждого с сеткой другого, то мы получим триггер. Он может находиться в одном из двух состояний: если через один триод идет ток (триод открыт), то на сетке второго триода появляется потенциал, препятствующий току через второй триод (триод закрыт). Если кратковременно подать отрицательный потенциал на сетку открытого триода, то мы прекратим ток через него, что откроет второй триод, который уже закроет первый. Триоды поменяются местами. Таким образом можно хранить один бит информации. Через другие схемы триодов можно строить логические вентили, реализующие конъюнкцию, дизъюнкцию и отрицание, что позволяет создать электронно-вычислительное устройство.
Запоминающее устройство
На первых порах развития ЭВМ использовались разные подходы к созданию запоминающих устройств. Помимо памяти на триггерах из радиоламп и на электромагнитных реле (как в Z3) имелись следующие виды:
Линии задержки
Основная идея линий задержки возникла в ходе разработки радаров во время Второй мировой войны. В первых ЭВМ в качестве линий использовались трубки с ртутью (у нее очень низкое затухание ультразвуковых волн), на концах которой располагались передающий и принимающий пьезокристаллы. Информация подавалась с помощью импульсов, модулированных высокочастотным сигналом. Импульсы распространялись в ртути. Информационная емкость трубки в битах равнялась максимальному количеству одновременно передаваемых импульсов. Единица кодировалось присутствием импульса на определенном «месте», ноль — отсутствием импульса. Приемный пьезокристалл передавал импульс на передающий — информация циркулировала по кругу. Для записи вместо регенерации импульсов вводились записываемые. Такой вид памяти использовался в компьютерах EDVAC, EDSAC и UNIVAC I.
Запоминающее устройство на ртутных акустических линиях задержки в UNIVAC I
Запоминающие электронно-лучевые трубки (трубки Уильямса)
При попадании электронного луча на точку на люминофорном экране происходит вторичная эмиссия и участок люминофора приобретает положительный заряд. Благодаря сопротивлению люминофорного слоя, точка долю секунды держится на экране. Однако, если не отключать луч сразу, а сдвинуть его в сторону от точки, рисуя тире, то электроны, испущенные во время эмиссии, поглощаются точкой, и та приобретает нейтральный заряд. Таким образом, если выделить N точек, то можно записать N бит информации (1 — нейтральный заряд, 0 — положительный заряд). Для считывания информации используется доска с электродами, прикрепленная к внешней стороне экрана. Электронный луч снова направляется в точку, и та приобретает положительный заряд независимо от изначального. С помощью электрода можно определить величину изначального заряда (значение бита), однако информация уничтожается (после каждого считывания нужна перезапись). Так как люминофор быстро теряет заряд, необходимо постоянно считывать и записывать информацию. Такой вид памяти использовался в Манчестерском Марк I и Ferranti Mark1; американских IBM 701 и 702
Магнитные барабаны
Магнитные барабаны чем-то похожи на современные магнитные диски. На поверхность барабана был нанесен тонкий ферромагнитный слой. Несколько считывающих головок, расположенных по образующим диска, считывают и записывают данные на своей отдельной магнитной дорожке.
Архитектура фон Неймана
Архитектура фон Неймана строилась на следующих принципах:
Основным недостатком этой архитектуры является ограничение пропускной способности между памятью и процессором. Из-за того, что программа и данные не могут считываться одновременно, пропускная способность между памятью и процессором существенно ограничивает скорость работы процессора. В дальнейшем, данную проблему решили с помощью введения кеша, что вызвало другие проблемы( например, уязвимость Meltdown).
Справедливости ради необходимо уточнить, что данные идеи не являются идеями Джона фон Неймана в полной степени. Также в их разработке участвовали ещё несколько ученых, пионеров компьютерной техники: Джон Преспер Экерт и Джон Уильям Мокли.
Гарвардская архитектура
Языки
В самых первых компьютерах программы считывались с перфоленты (как в Z3 и Mark I). Устройство чтения перфоленты предоставляло управляющему устройство код операции для каждой инструкции и адреса памяти. Затем управляющее устройство все это декодировало, посылало управляющие сигналы вычислительному блоку и памяти. Набор инструкций жестко задавался в схеме, каждая машинная инструкция (сложение, сдвиг, копирование) реализовывалась непосредственно в схеме. В ENIAC для изменения программы его нужно было перекоммутировать заново, на что уходило значительное время. Машинные коды считают первым поколением языков программирования.
Перфорированная лента с программой вычислений
Первые программисты всегда имели при себе блокнот, в который они записывали наиболее употребляемые подпрограммы — независимые фрагменты программы, вызываемые из главной подпрограммы, например извлечение корня или вывод символа на дисплей. Проблема состояла в том, что адреса расположения переменных и команд менялись в зависимости от размещения в главной программе. Для решения этой проблемы кембриджские программисты разработали набор унифицированных подпрограмм (библиотеку), которая автоматически настраивали и размещали подпрограммы в памяти. Морис Уилкс, один из разработчиков EDSAC (первого практически реализованного компьютера с хранимой в памяти программой), назвал библиотеку подпрограмм собирающей системой (assembly system). Теперь не нужно было собирать программу вручную из машинных кодов, специальная программа (ассемблер) «автоматически» собирала программу. Первые ассемблеры спроектированы Кэтлин Бут в 1947 под ARC2 и Дэвидом Уилером в 1948 под EDSAC. При этом сам язык (мнемоники) называли просто множеством базовых команд или начальными командами. Использовать слово «ассемблер» для процесса объединения полей в командное слово начали в поздних отчетах по EDSAC. Ассемблер можно назвать вторым поколением языков.
«Начальные команды» для EDSAC
Компьютеры первого поколения в СССР
После Второй мировой войны часть немецких разработок в области компьютерных технологий перешли СССР. Ведущие специалисты сразу заинтересовались возможностями ЭВМ, а правительство согласилось, что устройства для быстрых и точных вычислений — это перспективное направление.
МЭСМ и БЭСМ
В 1948 году основоположник советской вычислительной техники С.А. Лебедев направил в Академию наук СССР докладную записку: в ней сообщалось о необходимости создания ЭВМ для практического использования и научного прогресса. Для разработки этой машины под Киевом, в Феофании институту отвели здание, ранее принадлежавшее монастырю. Через 2 года МЭСМ (малая электронная счетная машина) произвела первые вычисление — нахождение корней дифференциального уравнения. В 1951 году инспекция из академии наук приняла работу Лебедева. МЭСМ имела сложную трехадресную систему команд и следующие характеристики:
В 1950 году Лебедева перевели в Москву. Там он начал работать над БЭСМ-1 и к 1953 году построил опытный образец, отличавшийся отличной производительностью. Характеристики были следующими:
Серия «М» и «Стрела»
В тоже время в Москве велась работа над М-1. М-1 была намного менее мощной, чем МЭСМ, но при этом занимала намного меньше места и тратила меньше энергии. Характеристики М-1:
В 1952 году на свет выпустили М-2. Её мощность увеличилась практически в 100 раз, при этом количество ламп увеличилось только вдвое. Подобный результат получился благодаря использованию управляющих полупроводниковых диодов. Характеристики М-2 были следующие:
В «массовое» производство первой попала «Стрела». Всего было произведено 7 штук. Характеристики «Стрелы» были следующие:
Во многих смыслах «Стрела» была хуже М-2. Она выполняла всё те же 2 тысячи операций в секунду, но при этом занимала на порядок больше места и тратила в несколько раз больше электричества. М-2 не попала в массовое производство, поскольку её создатели не уложились в срок. М-1 не обладала хорошей производительностью и к моменту, когда М-2 была доведена до ума, «Стрела» была отдана в производство.
Следующий потомок серии «М» — М-3 вышел в 1956 году и был в каком-то смысле урезанным вариантом. Она выполняла порядка 30 операций в секунду, но при этом занимала мало места, благодаря чему пошла в серийное производство. Характеристики М-3 были следующие:
Эпилог
Без технологического рывка, сделанного в 40-е годы, и четко сформированного вектора развития вычислительной техники, возможно, сегодня мы бы и не сидели в компьютерах и телефонах, читая статейки на хабре. Как показал опыт разных ученых, порой уникальные и революционные для своего времени образцы вычислительной техники не были востребованы как государством, так и обществом (например, машины серии Z Конрада Цузе). Переход ко второму поколению компьютеров во многом определился сменой вакуумных ламп на транзисторы и изобретением накопителей на ферритовых сердечниках. Но это уже другая история…
Облачные серверы от Маклауд быстрые и надежные. Без древнего железа.
Зарегистрируйтесь по ссылке выше или кликнув на баннер и получите 10% скидку на первый месяц аренды сервера любой конфигурации!