История вычислений длиннее, чем история компьютерного оборудования и современных вычислительных технологий , и включает в себя историю методов, предназначенных для пера и бумаги или для мела и грифельной доски, с помощью таблиц или без них.
Цифровые вычисления тесно связаны с представлением чисел . [1] Но задолго до того, как возникли такие абстракции , как число , существовали математические концепции, служившие целям цивилизации. Эти концепции подразумеваются в конкретных практиках, таких как:
В конце концов, понятие чисел стало конкретным и достаточно знакомым, чтобы возник счет, иногда с помощью мнемоники нараспев, чтобы обучать других последовательностям . Во всех известных человеческих языках, кроме языка пираха , есть слова, обозначающие как минимум цифры «один» и «два», и даже некоторые животные, такие как черный дрозд, могут различать удивительное количество предметов. [5]
Достижения в системе счисления и математической записи в конечном итоге привели к открытию таких математических операций, как сложение, вычитание, умножение, деление, возведение в квадрат, квадратный корень и так далее. В конце концов, операции были формализованы, а концепции операций стали понятны достаточно хорошо, чтобы их можно было сформулировать формально и даже доказать . См., например, алгоритм Евклида для нахождения наибольшего общего делителя двух чисел.
К Средневековью позиционная индуистско-арабская система счисления достигла Европы , что позволило осуществлять систематическое вычисление чисел. В этот период представление вычислений на бумаге позволяло вычислять математические выражения и составлять таблицы математических функций , таких как квадратный корень и десятичный логарифм (для использования при умножении и делении), а также тригонометрических функций . Ко времени исследований Исаака Ньютона бумага или пергамент были важным вычислительным ресурсом , и даже в наше время такие исследователи, как Энрико Ферми, покрывали случайные клочки бумаги расчетами, чтобы удовлетворить свое любопытство по поводу уравнения. [6] Даже в эпоху программируемых калькуляторов Ричард Фейнман без колебаний вычислял любые шаги, которые переполняли память калькуляторов, вручную, просто чтобы узнать ответ; к 1976 году Фейнман приобрел калькулятор HP-25 , рассчитанный на 49 шагов программы; если для решения дифференциального уравнения требовалось более 49 шагов, он мог просто продолжить вычисления вручную. [7]
Математические утверждения не обязательно должны быть только абстрактными; когда утверждение может быть проиллюстрировано реальными цифрами, цифры могут быть переданы и может возникнуть сообщество. Это позволяет повторять и поддающиеся проверке утверждения, которые являются отличительной чертой математики и естественных наук. Подобные заявления существовали на протяжении тысячелетий и во многих цивилизациях, как показано ниже:
Самым ранним известным инструментом для вычислений являются шумерские счеты , и считалось, что они были изобретены в Вавилоне ок. 2700–2300 гг. до н.э. Его первоначальный стиль использования заключался в линиях, нарисованных на песке с галькой. [ нужна цитата ]
В ц. 1050–771 гг. до н. э. в древнем Китае была изобретена колесница, указывающая на юг . Это был первый известный механизм с зубчатой передачей, в котором использовалась дифференциальная передача , которая позже была использована в аналоговых компьютерах . Китайцы также изобрели более сложные счеты примерно во 2 веке до нашей эры, известные как китайские счеты . [ нужна цитата ]
В 3 веке до нашей эры Архимед использовал механический принцип баланса (см. Архимед Палимпсест § Метод механических теорем ) для расчета математических задач, таких как количество песчинок во Вселенной ( Песочник ), для чего также требовался рекурсивная запись чисел (например, мириады мириады ) .
Механизм Антикитера считается самым ранним известным вычислительным устройством с редуктором. Он был разработан для расчета астрономических позиций. Он был обнаружен в 1901 году на месте крушения Антикиферы у греческого острова Антикитера, между Киферой и Критом , и датирован примерно 100 годом до нашей эры. [8]
По словам Саймона Сингха , мусульманские математики также добились важных успехов в криптографии , таких как развитие криптоанализа и частотного анализа Алкиндусом . [9] [10] Программируемые машины были также изобретены мусульманскими инженерами , например, автоматический флейтист братьев Бану Муса . [11]
В средние века несколько европейских философов предприняли попытки создать аналоговые компьютерные устройства. Под влиянием арабов и схоластики майоркинский философ Рамон Лулль (1232–1315) посвятил большую часть своей жизни определению и проектированию нескольких логических машин , которые, объединяя простые и неоспоримые философские истины, могли производить все возможные знания. Эти машины на самом деле так и не были построены, поскольку они представляли собой скорее мысленный эксперимент по систематическому получению новых знаний; хотя они могли совершать простые логические операции, им все же требовался человек для интерпретации результатов. Более того, им не хватало универсальной архитектуры, каждая машина служила только очень конкретным целям. Несмотря на это, работы Лулля оказали сильное влияние на Готфрида Лейбница (начало 18 века), который развил свои идеи и создал с их помощью несколько вычислительных инструментов.
Вершину этой ранней эры механических вычислений можно увидеть в « Разностной машине» и ее преемнике « Аналитической машине», созданных Чарльзом Бэббиджем . Бэббидж так и не завершил создание ни одного двигателя, но в 2002 году Дорон Свейд и группа других инженеров из Музея науки в Лондоне завершили разностную машину Бэббиджа, используя только материалы, которые были доступны в 1840-х годах. [12] Следуя детальному проекту Бэббиджа, они смогли построить работающую машину, что позволило историкам с некоторой уверенностью сказать, что если бы Бэббидж смог завершить свою разностную машину, она бы работала. [13] Дополнительно усовершенствованная аналитическая машина объединила концепции из его предыдущей работы и других, чтобы создать устройство, которое, если бы оно было построено так, как задумано, обладало бы многими свойствами современного электронного компьютера, такими как внутренняя «скретч-память», эквивалентная ОЗУ , несколько форм вывода, включая звонок, графопостроитель и простой принтер, а также программируемую «жесткую» память ввода-вывода с перфокартами , которые он мог как модифицировать, так и читать. Ключевым достижением, которым обладали устройства Бэббиджа по сравнению с созданными до него, было то, что каждый компонент устройства был независим от остальной части машины, во многом подобно компонентам современного электронного компьютера. Это был фундаментальный сдвиг в мышлении; предыдущие вычислительные устройства служили только одной цели, но их в лучшем случае приходилось разбирать и переконфигурировать для решения новой задачи. Устройства Бэббиджа можно было перепрограммировать для решения новых задач путем ввода новых данных и выполнения предыдущих вычислений в рамках той же серии инструкций. Ада Лавлейс пошла еще дальше в этой концепции, создав программу для аналитической машины для расчета чисел Бернулли — сложного расчета, требующего рекурсивного алгоритма. Это считается первым примером настоящей компьютерной программы — серии инструкций, которые действуют на данные, которые не известны полностью до тех пор, пока программа не будет запущена.
Вслед за Бэббиджем, хотя и не зная о его более ранних работах, Перси Ладгейт [14] [15] в 1909 году опубликовал второй из двух проектов механических аналитических двигателей в истории. [16] Два других изобретателя, Леонардо Торрес Кеведо [17] и Ванневар Буш , [18] также провели последующие исследования, основанные на работе Бэббиджа. В своих «Очерках автоматики» (1914) Торрес представил конструкцию электромеханической вычислительной машины и ввел идею арифметики с плавающей запятой . [19] [20] В 1920 году, чтобы отпраздновать 100-летие изобретения арифмометра , Торрес представил в Париже электромеханический арифмометр , арифметическое устройство, подключенное к удаленной пишущей машинке, на котором можно было вводить команды и автоматически распечатывать результаты. [21] [22] В статье Буша «Инструментальный анализ» (1936) обсуждалось использование существующих машин IBM для перфокарт для реализации конструкции Бэббиджа. В том же году он начал проект «Быстрая арифметическая машина» для исследования проблем построения электронного цифрового компьютера.
Несколько примеров аналоговых вычислений сохранились до наших дней. Планиметр — это устройство, вычисляющее интегралы, используя расстояние в качестве аналоговой величины. До 1980-х годов в системах отопления, вентиляции и кондиционирования воздуха воздух использовался как в качестве аналоговой величины, так и в качестве управляющего элемента. В отличие от современных цифровых компьютеров, аналоговые компьютеры не очень гибки, и их необходимо переконфигурировать (т. е. перепрограммировать) вручную, чтобы переключить их с работы над одной задачей на другую. Аналоговые компьютеры имели преимущество перед первыми цифровыми компьютерами в том, что их можно было использовать для решения сложных задач с использованием поведенческих аналогов, в то время как первые попытки создания цифровых компьютеров были весьма ограниченными.
Поскольку в ту эпоху компьютеры были редкостью, решения часто были жестко запрограммированы в бумажных формах, таких как номограммы , [23] которые затем могли давать аналоговые решения этих проблем, таких как распределение давления и температуры в системе отопления.
«Мозг» [компьютер] однажды может опуститься до нашего уровня [простых людей] и помочь нам с расчетами подоходного налога и бухгалтерским учетом. Но это предположения и пока никаких признаков этого нет.
- Британская газета The Star в новостной статье в июне 1949 года о компьютере EDSAC , задолго до эры персональных компьютеров. [24]
В письме 1886 года Чарльз Сандерс Пирс описал, как логические операции могут выполняться с помощью электрических коммутационных схем. [25] В 1880-81 годах он показал, что одни только вентили ИЛИ (или только вентили И-НЕ ) могут использоваться для воспроизведения функций всех других логических вентилей , но эта работа по этому вопросу не публиковалась до 1933 года. [26] Первое опубликованное доказательство был написан Генри М. Шеффером в 1913 году, поэтому логическую операцию И-НЕ иногда называют ходом Шеффера ; логическое ИЛИ-НЕ иногда называют стрелкой Пирса . [27] Следовательно, эти вентили иногда называют универсальными логическими вентилями . [28]
Со временем электронные лампы заменили реле для логических операций. Модификация клапана Флеминга , разработанная Ли Де Форестом в 1907 году, может использоваться в качестве логического элемента. Людвиг Витгенштейн представил версию таблицы истинности из 16 строк как предложение 5.101 Логико-философского трактата (1921). Вальтер Боте , изобретатель схемы совпадений , получил часть Нобелевской премии по физике 1954 года за первый современный электронный вентиль И в 1924 году. Конрад Цузе спроектировал и построил электромеханические логические вентили для своего компьютера Z1 (с 1935 по 1938 год).
Первой зарегистрированной идеей использования цифровой электроники для вычислений была статья CE Wynn-Williams «Использование тиратронов для высокоскоростного автоматического подсчета физических явлений» 1931 года . [29] С 1934 по 1936 год инженер NEC Акира Накашима , Клод Шеннон и Виктор Шестаков опубликовали статьи, знакомящие с теорией коммутационных цепей , используя цифровую электронику для булевых алгебраических операций. [30] [31] [32] [33]
В 1936 году Алан Тьюринг опубликовал свою основополагающую статью « О вычислимых числах с применением к проблеме Entscheidungsproblem» [34] , в которой он смоделировал вычисления с точки зрения одномерной ленты хранения, что привело к идее универсальной машины Тьюринга и полных по Тьюрингу систем . . [ нужна цитата ]
Первый цифровой электронный компьютер был разработан в период с апреля 1936 по июнь 1939 года в патентном отделе IBM, Эндикотт, Нью-Йорк, Артуром Хэлси Дикинсоном. [35] [36] [37] В этом компьютере IBM представила вычислительное устройство с клавиатурой, процессором и электронным выходом (дисплеем). Конкурентом IBM был цифровой электронный компьютер NCR3566, разработанный в NCR, Дейтон, штат Огайо Джозефом Дешем и Робертом Муммой в период с апреля 1939 по август 1939 года. [38] [39] Машины IBM и NCR были десятичными и выполняли сложение и вычитание в двоичном позиционном коде.
В декабре 1939 года Джон Атанасов и Клиффорд Берри завершили свою экспериментальную модель, чтобы доказать концепцию компьютера Атанасова-Берри (ABC), разработка которого началась в 1937 году. [40] Эта экспериментальная модель является двоичной, выполняет сложение и вычитание в восьмеричном двоичном коде и является первое двоичное цифровое электронное вычислительное устройство. Компьютер Атанасова-Берри предназначался для решения систем линейных уравнений, но не был программируемым. Компьютер так и не был по-настоящему завершен из-за ухода Атанасова из Университета штата Айова в 1942 году, чтобы работать в ВМС США. [41] [42] Многие люди приписывают ABC многие идеи, использованные в более поздних разработках в эпоху ранних электронных вычислений. [43]
Компьютер Z3 , построенный немецким изобретателем Конрадом Цузе в 1941 году, был первой программируемой полностью автоматической вычислительной машиной, но он не был электронным.
Во время Второй мировой войны баллистическими вычислениями занимались женщины, которых нанимали в качестве «компьютеров». Термин «компьютер» относился в основном к женщинам (теперь называемым «операторами») до 1945 года, после чего он принял современное определение машины, которое он имеет в настоящее время. [44]
ENIAC (электронный числовой интегратор и компьютер) был первым электронным компьютером общего назначения, представленным публике в 1946 году. Он был полным по Тьюрингу, [ 45] цифровым и допускающим перепрограммирование для решения полного спектра вычислительных задач. Женщины программировали такие машины, как ENIAC, а мужчины создавали аппаратное обеспечение. [44]
Manchester Baby был первым электронным компьютером с хранимой программой . Он был построен в Манчестерском университете Виктории Фредериком К. Уильямсом , Томом Килберном и Джеффом Тутиллом и запустил свою первую программу 21 июня 1948 года .
Уильям Шокли , Джон Бардин и Уолтер Браттейн из Bell Labs изобрели первый работающий транзистор , точечный транзистор , в 1947 году, а в 1948 году — биполярный переходной транзистор. [47] [48] В Манчестерском университете в 1953 году Команда под руководством Тома Килберна спроектировала и построила первый транзисторный компьютер , названный Транзисторный компьютер , машину, использующую недавно разработанные транзисторы вместо ламп. [49] Первым транзисторным компьютером с хранимой программой был ETL Mark III, разработанный Японской электротехнической лабораторией [50] [51] [52] с 1954 [53] по 1956 год. [51] Однако первые переходные транзисторы были относительно громоздкими устройствами. их было трудно производить серийно , что ограничивало их ряд специализированных применений. [54]
В 1954 году 95% находящихся в эксплуатации компьютеров использовались в инженерных и научных целях. [55]
Металл -оксид-кремниевый полевой транзистор (MOSFET), также известный как МОП-транзистор, был изобретен Мохамедом Аталлой и Давоном Кангом в Bell Labs в 1959 году. [56] [57] Это был первый по-настоящему компактный транзистор, который мог быть миниатюризированы и производиться серийно для широкого спектра применений. [54] МОП-транзисторы позволили создавать микросхемы интегральных схем высокой плотности . [58] [59] МОП-транзистор является наиболее широко используемым транзистором в компьютерах, [60] [61] и является фундаментальным строительным блоком цифровой электроники . [62]
Интегральная схема МОП с кремниевым затвором была разработана Федерико Фаггином из Fairchild Semiconductor в 1968 году. [63] Это привело к разработке первого однокристального микропроцессора Intel 4004 . [64] Intel 4004 разрабатывался как однокристальный микропроцессор с 1969 по 1970 год под руководством Федерико Фаггина из Intel, Марсиана Хоффа и Стэнли Мазора , а также Масатоши Шимы из Busicom. [65] Чип был в основном разработан и реализован Фаггином с его технологией MOS с кремниевым затвором. [64] Микропроцессор привел к микрокомпьютерной революции с разработкой микрокомпьютера , который позже будет называться персональным компьютером (ПК).
Большинство ранних микропроцессоров, таких как Intel 8008 и Intel 8080 , были 8-битными . Компания Texas Instruments выпустила первый полностью 16-битный микропроцессор TMS9900 в июне 1976 года. [66] Они использовали микропроцессор в компьютерах TI-99/4 и TI-99/4A .
1980-е годы привели к значительным достижениям в области микропроцессоров, которые оказали большое влияние на области техники и других наук. Микропроцессор Motorola 68000 имел скорость обработки, которая намного превосходила другие микропроцессоры, использовавшиеся в то время. Из-за этого наличие нового, более быстрого микропроцессора позволило новым микрокомпьютерам , которые появились позже, быть более эффективными в объеме вычислений, которые они могли выполнять. Это было очевидно в выпуске Apple Lisa в 1983 году . Lisa был одним из первых персональных компьютеров с графическим пользовательским интерфейсом (GUI) , который продавался на коммерческой основе. Он работал на процессоре Motorola 68000 и использовал как два дисковода для гибких дисков, так и жесткий диск емкостью 5 МБ для хранения данных. Машина также имела 1 МБ оперативной памяти , используемой для запуска программного обеспечения с диска без постоянного перечитывания диска. [67] После провала Lisa с точки зрения продаж, Apple выпустила свой первый компьютер Macintosh, все еще работающий на микропроцессоре Motorola 68000, но имеющий только 128 КБ оперативной памяти, один дисковод для гибких дисков и отсутствие жесткого диска, чтобы снизить цену.
В конце 1980-х и начале 1990-х годов компьютеры стали более полезными для личных и рабочих целей, таких как обработка текста . [68] В 1989 году Apple выпустила Macintosh Portable , он весил 7,3 кг (16 фунтов) и был чрезвычайно дорогим — 7300 долларов США. На момент запуска это был один из самых мощных доступных ноутбуков, но из-за цены и веса он не имел большого успеха и был снят с производства только два года спустя. В том же году Intel представила суперкомпьютер Touchstone Delta , имевший 512 микропроцессоров. Это технологическое достижение было очень значительным, поскольку оно использовалось в качестве модели для некоторых из самых быстрых многопроцессорных систем в мире. Его даже использовали в качестве прототипа исследователи из Калифорнийского технологического института, которые использовали эту модель для таких проектов, как обработка спутниковых изображений в реальном времени и моделирование молекулярных моделей для различных областей исследований.
Что касается суперкомпьютеров, то первым широко признанным суперкомпьютером стал Control Data Corporation (CDC) 6600 [69], построенный в 1964 году Сеймуром Крэем . Его максимальная скорость составляла 40 МГц или 3 миллиона операций с плавающей запятой в секунду ( FLOPS ). CDC 6600 был заменен на CDC 7600 в 1969 году; [70] хотя его нормальная тактовая частота не была выше, чем у 6600, 7600 все же был быстрее из-за своей пиковой тактовой частоты, которая была примерно в 30 раз быстрее, чем у 6600. Хотя CDC был лидером в области суперкомпьютеров, их отношения с Сеймур Крей (состояние которого уже ухудшалось) полностью потерял сознание. В 1972 году Крэй покинул CDC и основал собственную компанию Cray Research Inc. [71] При поддержке инвесторов с Уолл-стрит, отрасли, подогреваемой холодной войной, и без ограничений, которые он имел в CDC, он создал суперкомпьютер Cray-1 . Благодаря тактовой частоте 80 МГц или 136 мегафлопс Крэй заработал себе имя в компьютерном мире. К 1982 году компания Cray Research выпустила Cray X-MP, оснащенную многопроцессорной обработкой, а в 1985 году выпустила Cray-2 , который продолжил тенденцию многопроцессорной обработки и имел тактовую частоту 1,9 гигафлопс. Компания Cray Research разработала Cray Y-MP в 1988 году, однако впоследствии ей было трудно продолжать производство суперкомпьютеров. Во многом это произошло потому, что холодная война закончилась, и спрос на передовые компьютеры со стороны колледжей и правительства резко снизился, а спрос на микропроцессоры увеличился.
В 1998 году Дэвид Бейдер разработал первый суперкомпьютер Linux , используя стандартные детали. [72] Во время учебы в Университете Нью-Мексико Бадер стремился построить суперкомпьютер под управлением Linux, используя готовые потребительские компоненты и высокоскоростную межсетевую сеть с малой задержкой. В прототипе использовался Alta Technologies «AltaCluster» из восьми двойных компьютеров Intel Pentium II с тактовой частотой 333 МГц, работающих под управлением модифицированного ядра Linux. Бадер портировал значительное количество программного обеспечения для обеспечения поддержки необходимых компонентов Linux, а также код членов Национального альянса вычислительных наук (NCSA) для обеспечения совместимости, поскольку ни одно из них ранее не запускалось в Linux. [73] Используя успешный дизайн прототипа, он возглавил разработку «RoadRunner», первого суперкомпьютера Linux для открытого использования национальным научным и инженерным сообществом через Национальную технологическую сеть Национального научного фонда. RoadRunner был введен в эксплуатацию в апреле 1999 года. На момент запуска он считался одним из 100 самых быстрых суперкомпьютеров в мире. [73] [74] Хотя кластеры на базе Linux с использованием компонентов потребительского уровня, такие как Beowulf , существовали до разработки прототипа Бадера и RoadRunner, им не хватало масштабируемости, пропускной способности и возможностей параллельных вычислений , чтобы считаться «настоящими» суперкомпьютерами. [73]
Сегодня суперкомпьютеры по-прежнему используются правительствами мира и образовательными учреждениями для таких вычислений, как моделирование стихийных бедствий, поиск генетических вариантов среди населения, связанных с болезнями, и многого другого. По состоянию на апрель 2023 года [update]самым быстрым суперкомпьютером является Frontier .
Начиная с известных особых случаев, вычисление логарифмов и тригонометрических функций можно выполнить путем поиска чисел в математической таблице и интерполяции между известными случаями. При достаточно небольших различиях эта линейная операция была достаточно точной для использования в навигации и астрономии в эпоху географических открытий . Использование интерполяции процветало за последние 500 лет: к двадцатому веку Лесли Комри и У. Дж. Эккерт систематизировали использование интерполяции в таблицах чисел для вычислений на перфокартах.
Численное решение дифференциальных уравнений, особенно уравнений Навье-Стокса, было важным стимулом для вычислений благодаря численному подходу Льюиса Фрая Ричардсона к решению дифференциальных уравнений. Первый компьютеризированный прогноз погоды был выполнен в 1950 году командой, состоящей из американских метеорологов Жюля Чарни , Филипа Дункана Томпсона, Ларри Гейтса и норвежского метеоролога Рагнара Фьёртофта , прикладного математика Джона фон Неймана и программиста ENIAC Клары Дэн фон Нейман . [75] [76] [77] По сей день некоторые из самых мощных компьютерных систем на Земле используются для прогнозов погоды . [78]
К концу 1960-х годов компьютерные системы могли выполнять символические алгебраические манипуляции достаточно хорошо, чтобы пройти курсы математического анализа на уровне колледжа . [ нужна цитата ]
Женщины часто недостаточно представлены в областях STEM по сравнению с их коллегами-мужчинами. [79] В современную эпоху до 1960-х годов компьютерная деятельность широко рассматривалась как «женская работа», поскольку она была связана с работой счетных машин и другой механической офисной работой. [80] [81] Точность этой ассоциации варьировалась от места к месту. В Америке Маргарет Гамильтон вспоминала, что в среде доминировали мужчины [82] , а Элси Шатт вспоминала удивление, увидев, что даже половина операторов компьютеров в Raytheon были мужчинами. [83] В начале 1970-х операторами станков в Великобритании в основном были женщины. [84] Поскольку эти представления изменились, и компьютерная карьера стала высокостатусной, в этой области стали доминировать мужчины. [85] [86] [87] Профессор Джанет Эббейт в своей книге «Перекодирование гендера» пишет:
Тем не менее, женщины были значительным присутствием в первые десятилетия компьютерной эры. Они составляли большинство первых программистов во время Второй мировой войны; они занимали ответственные и влиятельные должности в ранней компьютерной индустрии; и они были заняты в количестве, которое, хотя и составляло небольшое меньшинство от общего числа, выгодно отличалось от представленности женщин во многих других областях науки и техники. Некоторые женщины-программисты 1950-х и 1960-х годов посмеялись бы над мыслью о том, что программирование когда-либо будет считаться мужским занятием, однако опыт и вклад этих женщин были забыты слишком быстро. [88]
Вот некоторые примечательные примеры женщин в истории вычислений:
{{cite web}}
: CS1 maint: multiple names: authors list (link){{cite book}}
: CS1 maint: location missing publisher (link)(3+207+1 стр.) 10:00 мин.