История вычислительной техники охватывает развитие от первых простых устройств, облегчающих вычисления, до современных компьютеров .
Первыми вспомогательными средствами для вычислений были чисто механические устройства, которые требовали от оператора установки начальных значений элементарной арифметической операции, а затем манипулирования устройством для получения результата. Позже компьютеры представляли числа в непрерывной форме (например, расстояние по шкале, вращение вала или напряжение ). Числа также могли быть представлены в виде цифр, автоматически манипулируемых механизмом. Хотя этот подход обычно требовал более сложных механизмов, он значительно увеличивал точность результатов. Развитие транзисторной технологии, а затем микросхемы интегральной схемы привело к серии прорывов, начиная с транзисторных компьютеров, а затем компьютеров на интегральных схемах, в результате чего цифровые компьютеры в значительной степени заменили аналоговые компьютеры . Затем крупномасштабная интеграция (БИС) металл-оксид-полупроводник (МОП ) позволила создать полупроводниковую память и микропроцессор , что привело к другому ключевому прорыву — миниатюрному персональному компьютеру (ПК) в 1970-х годах. Стоимость компьютеров постепенно стала настолько низкой, что к 1990-м годам персональные компьютеры, а затем в 2000-х годах мобильные компьютеры ( смартфоны и планшеты ) стали повсеместными.
Устройства использовались для помощи в вычислениях на протяжении тысяч лет, в основном с использованием взаимно-однозначного соответствия с пальцами . Самым ранним счетным устройством, вероятно, была форма счетной палки . Кость Лебомбо из гор между Эсватини и Южной Африкой может быть самым древним известным математическим артефактом. [2] Она датируется 35 000 г. до н. э. и состоит из 29 отдельных выемок, которые были намеренно вырезаны на малой берцовой кости бабуина . [3] [4] Более поздние вспомогательные средства для ведения записей по всему Плодородному полумесяцу включали исчисления (глиняные сферы, конусы и т. д.), которые представляли собой подсчеты предметов, вероятно, домашнего скота или зерна, запечатанных в полые необожженные глиняные контейнеры. [b] [6] [c] Использование счетных палочек является одним из примеров. Счеты рано использовались для арифметических задач. То, что мы сейчас называем римскими счетами, использовалось в Вавилонии еще около 2700–2300 гг . до н. э. С тех пор было изобретено много других форм счетных досок или таблиц. В средневековой европейской счетной палате на стол клали клетчатую ткань, а маркеры перемещали по ней в соответствии с определенными правилами, как помощь в подсчете денежных сумм.
Несколько аналоговых компьютеров были построены в древние и средневековые времена для выполнения астрономических вычислений. К ним относятся астролябия и антикитерский механизм из эллинистического мира (ок. 150–100 до н. э.). [8] В римском Египте Герон Александрийский (ок. 10–70 н. э.) создал механические устройства, включая автоматы и программируемую тележку . [9] Паровая автоматическая флейта, описанная в « Книге гениальных устройств » (850) персидско-багдадских братьев Бану Муса , возможно, была первым программируемым устройством. [10]
Другие ранние механические устройства, используемые для выполнения того или иного типа вычислений, включают планисферу и другие механические вычислительные устройства, изобретенные Аль-Бируни (ок. 1000 г. н. э.); экваторий и независимая от всемирной широты астролябия Аль-Заркали (ок. 1015 г. н. э.); астрономические аналоговые компьютеры других средневековых мусульманских астрономов и инженеров; и астрономическая часовая башня Су Сун (1094 г.) во время династии Сун . Замковые часы , гидроприводные механические астрономические часы, изобретенные Исмаилом аль-Джазари в 1206 г., были первым программируемым аналоговым компьютером. [ оспаривается (поскольку: Указанный источник не поддерживает утверждение, а утверждение вводит в заблуждение.) – обсудить ] [11] [12] [13] Рамон Луллий изобрел Луллиев круг: условную машину для вычисления ответов на философские вопросы (в данном случае, связанные с христианством) с помощью логической комбинаторики. Эту идею несколько столетий спустя подхватил Лейбниц , и теперь она является одним из основополагающих элементов вычислительной техники и информационной науки .
Шотландский математик и физик Джон Непер открыл, что умножение и деление чисел можно выполнять сложением и вычитанием логарифмов этих чисел соответственно. При создании первых логарифмических таблиц Неперу пришлось выполнять множество утомительных умножений. Именно в этот момент он спроектировал свои « кости Непера » — устройство, похожее на счеты, которое значительно упрощало вычисления, включавшие умножение и деление. [d]
Поскольку действительные числа можно представить в виде расстояний или интервалов на линии, в 1620-х годах, вскоре после работы Непера, была изобретена логарифмическая линейка , которая позволила выполнять операции умножения и деления значительно быстрее, чем это было возможно ранее. [14] Эдмунд Гюнтер построил вычислительное устройство с одной логарифмической шкалой в Оксфордском университете . Его устройство значительно упростило арифметические вычисления, включая умножение и деление. Уильям Отред значительно улучшил это в 1630 году, создав свою круговую логарифмическую линейку. Он продолжил это, создав современную логарифмическую линейку в 1632 году, по сути, комбинацию двух линеек Гюнтера , удерживаемых вместе руками. Логарифмические линейки использовались поколениями инженеров и других профессиональных работников, занимающихся математикой, до изобретения карманного калькулятора . [15]
В 1609 году Гвидобальдо дель Монте создал механический множитель для вычисления долей градуса. Основанный на системе из четырех шестерен, поворот индекса в одном квадранте соответствует 60 поворотам другого индекса в противоположном квадранте. [16] Благодаря этой машине можно избежать ошибок в вычислении первых, вторых, третьих и четвертных градусов. Гвидобальдо первым задокументировал использование шестерен для механических расчетов.
Вильгельм Шиккард , немецкий полимат , спроектировал счетную машину в 1623 году, которая объединила механизированную форму стержней Непера с первой в мире механической арифмометрической машиной, встроенной в основание. Поскольку она использовала однозубчатую шестерню, были обстоятельства, при которых ее механизм переноса заклинивал. [17] Пожар уничтожил по крайней мере одну из машин в 1624 году, и считается, что Шиккард был слишком обескуражен, чтобы построить еще одну.
В 1642 году, будучи еще подростком, Блез Паскаль начал новаторскую работу над счетными машинами и после трех лет усилий и 50 прототипов [18] он изобрел механический калькулятор . [19] [20] За следующие десять лет он построил двадцать таких машин (называемых калькулятором Паскаля или Паскалиной). [21] Сохранилось девять Паскалиных машин, большинство из которых выставлены в европейских музеях. [e] Продолжаются споры о том, кого следует считать «изобретателем механического калькулятора» — Шиккарда или Паскаля, и круг вопросов, которые следует рассмотреть, обсуждается в другом месте. [22]
Готфрид Вильгельм фон Лейбниц изобрел ступенчатый счетный механизм и свой знаменитый ступенчатый барабанный механизм около 1672 года. Он попытался создать машину, которая могла бы использоваться не только для сложения и вычитания, но и использовала бы подвижную каретку для умножения и деления. Лейбниц однажды сказал: «Недостойно выдающихся людей терять часы, как рабы, в работе по вычислению, которую можно было бы спокойно передать кому-либо другому, если бы использовались машины». [23] Однако Лейбниц не включил в себя полностью успешный механизм переноса. Лейбниц также описал двоичную систему счисления , [24] центральный компонент всех современных компьютеров. Однако вплоть до 1940-х годов многие последующие разработки (включая машины Чарльза Бэббиджа 1822 года и даже ENIAC 1945 года) основывались на десятичной системе. [f]
Около 1820 года Шарль Ксавье Тома де Кольмар создал то, что в течение оставшейся части столетия стало первым успешным, массово производимым механическим калькулятором, арифмометром Томаса . Его можно было использовать для сложения и вычитания, а с помощью подвижной каретки оператор мог также умножать и делить с помощью процесса длинного умножения и длинного деления. [25] Он использовал ступенчатый барабан, похожий по концепции на тот, что изобрел Лейбниц. Механические калькуляторы использовались до 1970-х годов.
В 1804 году французский ткач Жозеф Мари Жаккар разработал ткацкий станок , в котором тканый узор контролировался бумажной лентой, сделанной из перфокарт . Бумажную ленту можно было менять, не меняя механическую конструкцию ткацкого станка. Это было эпохальным достижением в программируемости. Его машина была усовершенствованием по сравнению с аналогичными ткацкими станками. Перфокартам предшествовали перфорационные ленты, как в машине, предложенной Базилем Бушоном . Эти ленты вдохновили на запись информации для автоматических пианино и, в более позднее время, станков с числовым программным управлением .
В конце 1880-х годов американец Герман Холлерит изобрел хранение данных на перфокартах , которые затем могли быть прочитаны машиной. [26] Для обработки этих перфокарт он изобрел табулятор и кнопочный перфоратор. Его машины использовали электромеханические реле и счетчики . [27] Метод Холлерита использовался в переписи населения США 1890 года . Эта перепись была обработана на два года быстрее, чем предыдущая. [28] Компания Холлерита в конечном итоге стала ядром IBM .
К 1920 году электромеханические табуляторные машины могли складывать, вычитать и печатать накопленные итоги. [29] Функции машины управлялись путем вставки десятков проволочных перемычек в съемные панели управления . Когда в 1935 году в Соединенных Штатах было введено социальное обеспечение , системы перфокарт IBM использовались для обработки записей 26 миллионов рабочих. [30] Перфокарты стали повсеместными в промышленности и правительстве для бухгалтерского учета и администрирования.
Статьи Лесли Комри о методах перфокарт [31] и публикация В. Дж. Эккерта «Методы перфокарт в научных вычислениях» в 1940 году описывали методы перфокарт, достаточно продвинутые для решения некоторых дифференциальных уравнений или выполнения умножения и деления с использованием представлений с плавающей точкой, все на перфокартах и машинах для записи единиц . [32] Такие машины использовались во время Второй мировой войны для криптографической статистической обработки, а также для множества административных целей. [ требуется ссылка ] Бюро астрономических вычислений Колумбийского университета выполняло астрономические вычисления, представляющие собой современное состояние вычислительной техники . [33] [34]
К 20 веку более ранние механические калькуляторы, кассовые аппараты, бухгалтерские машины и т. д. были перепроектированы для использования электродвигателей, с положением шестерни в качестве представления состояния переменной. Слово «компьютер» было названием должности, присвоенным в основном женщинам, которые использовали эти калькуляторы для выполнения математических вычислений. [35] К 1920-м годам интерес британского ученого Льюиса Фрая Ричардсона к прогнозированию погоды привел его к предложению человеческих компьютеров и численного анализа для моделирования погоды; по сей день самые мощные компьютеры на Земле необходимы для адекватного моделирования ее погоды с использованием уравнений Навье-Стокса . [36]
Такие компании, как Friden , Marchant Calculator и Monroe, производили настольные механические калькуляторы с 1930-х годов, которые могли складывать, вычитать, умножать и делить. [ 37] В 1948 году австрийский изобретатель Курт Герцстарк представил Curta . Это был небольшой механический калькулятор с ручным приводом, являющийся потомком Stepped Reckoner Готфрида Лейбница и арифмометра Томаса .
Первым в мире полностью электронным настольным калькулятором был британский Bell Punch ANITA , выпущенный в 1961 году. [38] [39] В его схемах использовались электронные лампы , лампы с холодным катодом и Dekatron , а для его дисплея использовались 12 ламп с холодным катодом «Nixie» . ANITA хорошо продавался, поскольку это был единственный доступный электронный настольный калькулятор, который был тихим и быстрым. Ламповая технология была заменена в июне 1963 года на произведенный в США Friden EC-130, который имел полностью транзисторную конструкцию, стек из четырех 13-значных чисел, отображаемых на 5-дюймовом (13 см) ЭЛТ , и вводил обратную польскую нотацию (RPN).
Чарльз Бэббидж , английский инженер-механик и полимат , создал концепцию программируемого компьютера, хотя ни одна из его разработок не была успешно реализована до 1991 года. Часто считающийся «отцом компьютера », [40] он концептуализировал и изобрел первый механический компьютер в начале 19 века. После работы над своей революционной разностной машиной , предназначенной для помощи в навигационных расчетах, в 1833 году он понял, что возможна гораздо более общая конструкция — аналитическая машина . Ввод программ и данных должен был осуществляться в машину с помощью перфокарт , метод, использовавшийся в то время для управления механическими ткацкими станками, такими как ткацкий станок Жаккарда . Для вывода машина должна была иметь принтер, криволинейный плоттер и звонок. Машина также могла бы набивать числа на карты для последующего считывания. Она использовала обычную арифметику с фиксированной точкой с основанием 10 .
В состав Engine входило арифметико-логическое устройство , поток управления в форме условных ветвлений и циклов , а также интегрированная память , что сделало его первой разработкой для универсального компьютера, которую можно было бы описать современными терминами как полную по Тьюрингу . [41] [42]
Должен был быть магазин (то есть память), способный хранить 1000 чисел по 50 десятичных цифр каждое (около 16,6 кБ ). Арифметическое устройство («мельница») могло бы выполнять все четыре арифметические операции , а также сравнения и, при необходимости, квадратные корни . Первоначально (1838) оно было задумано как разностная машина, изогнутая назад, в общем круговом макете, с длинным хранилищем, выходящим в одну сторону. Более поздние чертежи (1858) изображают регуляризованную сетевую компоновку. [43] [44] Подобно центральному процессору (ЦП) в современном компьютере, мельница должна была полагаться на свои собственные внутренние процедуры, примерно эквивалентные микрокоду в современных ЦП, которые должны были храниться в виде штифтов, вставленных во вращающиеся барабаны, называемые «бочками», для выполнения некоторых более сложных инструкций, которые могла указать программа пользователя. [45]
Язык программирования, который должен был использоваться пользователями, был похож на современные языки ассемблера . Циклы и условные переходы были возможны, и поэтому язык в том виде, в котором он задуман, был бы полным по Тьюрингу, как позже определил Алан Тьюринг . Использовались три различных типа перфокарт: одна для арифметических операций, одна для числовых констант и одна для операций загрузки и сохранения, перенося числа из хранилища в арифметическое устройство или обратно. Для трех типов карт было три отдельных считывателя.
Проект замедлился из-за различных проблем, включая споры с главным машинистом, который изготавливал для него детали. Все детали для его машины приходилось делать вручную — это было серьезной проблемой для машины с тысячами деталей. В конце концов, проект был закрыт из-за решения британского правительства прекратить финансирование. Неспособность Бэббиджа завершить аналитическую машину можно объяснить не только политическими и финансовыми трудностями, но и его желанием разрабатывать все более сложный компьютер и двигаться вперед быстрее, чем кто-либо другой мог за ним угнаться. Ада Лавлейс перевела и добавила заметки к « Наброску аналитической машины » Луиджи Федерико Менабреа . Похоже, это первое опубликованное описание программирования, поэтому Ада Лавлейс широко считается первым программистом. [46]
После Бэббиджа, хотя поначалу и не знавший о его более ранних работах, был Перси Ладгейт , клерк торговца кукурузой в Дублине, Ирландия. Он независимо спроектировал программируемый механический компьютер, который он описал в работе, опубликованной в 1909 году. [47] [48]
Два других изобретателя, Леонардо Торрес Кеведо и Ванневар Буш , также продолжили исследования, основанные на работе Бэббиджа. В 1914 году Торрес опубликовал «Очерки об автоматике» , где он описал усилия Бэббиджа по созданию механической аналитической машины и спроектировал электромеханическую аналитическую машину, которая должна была управляться программой только для чтения. В статье также была представлена идея арифметики с плавающей точкой . [49] [50] [51] В 1920 году он представил на Парижской конференции « Электромеханический арифмометр» — арифметическое устройство, на котором команды можно было набирать, а результаты распечатывать автоматически. [52] В статье Буша «Инструментальный анализ» (1936) обсуждалось использование существующих машин IBM с перфокартами для реализации проекта Бэббиджа. В том же году он начал проект «Быстрая арифметическая машина» для исследования проблем создания электронного цифрового компьютера. [53]
В первой половине 20-го века многие считали, что аналоговые компьютеры являются будущим вычислений. Эти устройства использовали непрерывно изменяющиеся аспекты физических явлений, таких как электрические , механические или гидравлические величины, для моделирования решаемой проблемы, в отличие от цифровых компьютеров , которые представляли изменяющиеся величины символически, поскольку их числовые значения изменялись. Поскольку аналоговый компьютер не использует дискретные значения, а скорее непрерывные значения, процессы не могут быть надежно повторены с точной эквивалентностью, как это возможно в машинах Тьюринга . [54]
Первый современный аналоговый компьютер был машиной для прогнозирования приливов , изобретенной сэром Уильямом Томсоном , позже лордом Кельвином, в 1872 году. Он использовал систему шкивов и проводов для автоматического расчета прогнозируемых уровней приливов на заданный период в определенном месте и был очень полезен для навигации на мелководье. Его устройство стало основой для дальнейшего развития аналоговых вычислений. [55]
Дифференциальный анализатор , механический аналоговый компьютер, предназначенный для решения дифференциальных уравнений путем интегрирования с использованием колесно-дисковых механизмов, был концептуализирован в 1876 году Джеймсом Томсоном , братом более известного лорда Кельвина. Он исследовал возможную конструкцию таких калькуляторов, но был остановлен ограниченным выходным крутящим моментом интеграторов с шарами и дисками . [56] В дифференциальном анализаторе выход одного интегратора управлял входом следующего интегратора или графическим выходом.
Начиная с 1895 года Леонардо Торрес Кеведо разработал ряд известных аналоговых вычислительных машин , включая ту, которая могла вычислять корни произвольных многочленов восьмого порядка, включая комплексные, с точностью до тысячных долей. [57] [58] [59]
Важным достижением в области аналоговых вычислений стала разработка первых систем управления огнем для стрельбы из орудий на большие расстояния . Когда в конце 19 века дальность стрельбы резко возросла, вычисление правильной точки прицеливания с учетом времени полета снарядов стало уже не простой задачей. Различные наблюдатели на борту корабля передавали данные о расстоянии и наблюдения на центральную станцию построения графика. Там команды управления огнем вводили данные о местоположении, скорости и направлении корабля и его цели, а также различные поправки на эффект Кориолиса , погодные эффекты в воздухе и другие поправки; затем компьютер выводил решение по стрельбе, которое подавалось на башни для наведения. В 1912 году британский инженер Артур Поллен разработал первый механический аналоговый компьютер с электрическим приводом (в то время называвшийся часами Арго). [ требуется цитата ] Он использовался Императорским российским флотом в Первой мировой войне . [ требуется цитата ] Альтернативная система управления огнем Dreyer Table была установлена на британских крупных кораблях к середине 1916 года.
Механические устройства также использовались для повышения точности бомбометания с воздуха . Первым таким средством был Drift Sight , разработанный Гарри Вимперисом в 1916 году для Королевской военно-морской авиационной службы ; он измерял скорость ветра с воздуха и использовал это измерение для расчета влияния ветра на траекторию полета бомб. Позднее система была усовершенствована с помощью Course Setting Bomb Sight и достигла апогея с бомбовыми прицелами времен Второй мировой войны , бомбовым прицелом Mark XIV ( бомбардировочное командование Королевских ВВС ) и Norden [60] ( Военно-воздушные силы США ).
Искусство механических аналоговых вычислений достигло своего апогея с дифференциальным анализатором , [61] созданным HL Hazen и Vannevar Bush в MIT в 1927 году, который был построен на механических интеграторах Джеймса Томсона и усилителях крутящего момента, изобретенных HW Nieman. Дюжина таких устройств была построена, прежде чем их устаревание стало очевидным; самое мощное было построено в Школе электротехники Мура Пенсильванского университета , где был построен ENIAC .
Полностью электронный аналоговый компьютер был построен Гельмутом Хёльцером в 1942 году в армейском исследовательском центре Пенемюнде . [62] [63] [64]
К 1950-м годам успех цифровых электронных компьютеров положил конец большинству аналоговых вычислительных машин, однако гибридные аналоговые компьютеры , управляемые цифровой электроникой, продолжали активно использоваться в 1950-х и 1960-х годах, а затем и в некоторых специализированных приложениях.
Принцип работы современного компьютера был впервые описан ученым-компьютерщиком Аланом Тьюрингом , который изложил эту идею в своей основополагающей статье 1936 года [65] «О вычислимых числах» . Тьюринг переформулировал результаты Курта Гёделя 1931 года о пределах доказательства и вычислений, заменив универсальный арифметический формальный язык Гёделя на формальные и простые гипотетические устройства, которые стали известны как машины Тьюринга . Он доказал, что некоторая такая машина была бы способна выполнять любые мыслимые математические вычисления, если бы их можно было представить в виде алгоритма . Затем он доказал, что не существует решения Entscheidungsproblem , сначала показав, что проблема остановки для машин Тьюринга неразрешима : в общем случае невозможно алгоритмически решить, остановится ли когда-либо данная машина Тьюринга.
Он также ввел понятие «универсальной машины» (теперь известной как универсальная машина Тьюринга ), с идеей, что такая машина может выполнять задачи любой другой машины, или, другими словами, она доказуемо способна вычислять все, что вычислимо, выполняя программу, сохраненную на ленте, что позволяет машине быть программируемой. Фон Нейман признал, что центральная концепция современного компьютера была обусловлена этой работой. [66] Машины Тьюринга и по сей день являются центральным объектом изучения в теории вычислений . За исключением ограничений, налагаемых их конечными хранилищами памяти, современные компьютеры считаются полными по Тьюрингу , то есть они имеют возможность выполнения алгоритмов, эквивалентную универсальной машине Тьюринга .
Эра современных вычислений началась с бурного развития до и во время Второй мировой войны. Большинство цифровых компьютеров, созданных в этот период, были построены на электромеханических принципах — электрические переключатели управляли механическими реле для выполнения вычислений. Эти механические компоненты имели низкую скорость работы из-за своей механической природы и в конечном итоге были заменены гораздо более быстрыми полностью электрическими компонентами, изначально использовавшими электронные лампы , а затем транзисторы .
Z2 был одним из самых ранних примеров электрического цифрового компьютера, построенного с электромеханическими реле, и был создан инженером-строителем Конрадом Цузе в 1940 году в Германии. Это было улучшение его более раннего механического Z1 ; хотя он использовал ту же механическую память , он заменил арифметику и управляющую логику электрическими релейными цепями. [67]
В том же году британские криптологи построили электромеханические устройства, называемые «бомбы», для расшифровки немецких секретных сообщений, зашифрованных с помощью машины «Энигма» во время Второй мировой войны . Первоначальный дизайн «бомбы» был создан в 1939 году в Школе кодов и шифров правительства Великобритании (GC&CS) в Блетчли-парке Аланом Тьюрингом [68] , с важным усовершенствованием, разработанным в 1940 году Гордоном Уэлчманом [69] . Инженерное проектирование и конструкция были работой Гарольда Кина из British Tabulating Machine Company . Это было существенное развитие устройства, которое было разработано в 1938 году криптологом Польского бюро шифров Марианом Реевским и известно как « криптологическая бомба » ( польск .: «bomba kryptologiczna» ).
В 1941 году Цузе продолжил свою более раннюю машину, выпустив Z3 , [67] первый в мире работающий электромеханический программируемый , полностью автоматический цифровой компьютер. [70] Z3 был построен с 2000 реле , реализуя 22- битную длину слова , которая работала на тактовой частоте около 5–10 Гц . [71] Программный код и данные хранились на перфорированной пленке . В некоторых отношениях он был очень похож на современные машины, являясь пионером многочисленных достижений, таких как числа с плавающей точкой . Замена сложной для реализации десятичной системы (используемой в более ранней конструкции Чарльза Бэббиджа ) более простой двоичной системой означала, что машины Цузе было проще в сборке и потенциально более надежными, учитывая доступные в то время технологии. [72] В 1998 году Рауль Рохас доказал, что Z3 является Тьюринг-полной машиной . [73] В двух патентных заявках 1936 года Цузе также предположил, что машинные инструкции могут храниться в том же хранилище, что и данные, — ключевое понимание того, что стало известно как архитектура фон Неймана , впервые реализованная в 1948 году в Америке в электромеханическом IBM SSEC и в Великобритании в полностью электронном Manchester Baby . [74]
Цузе потерпел неудачу во время Второй мировой войны, когда некоторые из его машин были уничтожены в ходе бомбардировок союзников . По-видимому, его работа оставалась в значительной степени неизвестной инженерам в Великобритании и США до гораздо более позднего времени, хотя, по крайней мере, IBM знала о ней, поскольку финансировала его послевоенную стартап-компанию в 1946 году в обмен на опцион на патенты Цузе.
В 1944 году в лабораториях IBM в Эндикотте был построен Harvard Mark I. [75] Это был электромеханический компьютер общего назначения, аналогичный Z3, но не совсем полный по Тьюрингу.
Термин «цифровой» был впервые предложен Джорджем Робертом Стибицем и относится к случаю, когда сигнал, такой как напряжение, используется не для непосредственного представления значения (как это было бы в аналоговом компьютере ), а для его кодирования. В ноябре 1937 года Стибиц, тогда работавший в Bell Labs (1930–1941), [76] завершил релейный калькулятор, который он позже окрестил « Модель K » (от « кухонный стол», на котором он его собрал), который стал первым двоичным сумматором . [77] Обычно сигналы имеют два состояния — низкое (обычно представляющее 0) и высокое (обычно представляющее 1), но иногда используется трехзначная логика , особенно в памяти высокой плотности. Современные компьютеры обычно используют двоичную логику , но многие ранние машины были десятичными компьютерами . В этих машинах основной единицей данных была десятичная цифра, закодированная по одной из нескольких схем, включая двоично-десятичный код (BCD), би-квинарный , избыточный-3 и код два-из-пяти .
Математической основой цифровых вычислений является булева алгебра , разработанная британским математиком Джорджем Булем в его работе «Законы мышления» , опубликованной в 1854 году. Его булева алгебра была дополнительно усовершенствована в 1860-х годах Уильямом Джевонсом и Чарльзом Сандерсом Пирсом и впервые была систематически представлена Эрнстом Шрёдером и А. Н. Уайтхедом . [78] В 1879 году Готтлоб Фреге разрабатывает формальный подход к логике и предлагает первый логический язык для логических уравнений. [79]
В 1930-х годах, работая независимо друг от друга, американский инженер-электронщик Клод Шеннон и советский логик Виктор Шестаков показали однозначное соответствие между концепциями булевой логики и некоторыми электрическими цепями, которые теперь называются логическими вентилями и которые теперь повсеместно используются в цифровых компьютерах. [80] Они показали, что электронные реле и переключатели могут реализовывать выражения булевой алгебры . [ 81] Эта диссертация по сути легла в основу практического проектирования цифровых цепей . Кроме того, в статье Шеннона приведена правильная принципиальная схема для 4-битного цифрового двоичного сумматора. [82]
Чисто электронные элементы схемы вскоре заменили свои механические и электромеханические эквиваленты, в то же время, когда цифровые вычисления заменили аналоговые. Такие машины, как Z3 , Atanasoff–Berry Computer , Colossus computers и ENIAC, были построены вручную, с использованием схем, содержащих реле или клапаны (вакуумные трубки), и часто использовали перфокарты или перфоленту для ввода и в качестве основного (энергонезависимого) носителя информации. [83]
Инженер Томми Флауэрс присоединился к телекоммуникационному отделению Главного почтамта в 1926 году. Работая на исследовательской станции в Доллис-Хилл в 1930-х годах, он начал изучать возможное использование электроники для телефонной станции . Экспериментальное оборудование, которое он построил в 1934 году, было введено в эксплуатацию 5 лет спустя, превратив часть телефонной сети в электронную систему обработки данных, используя тысячи вакуумных ламп . [55]
В США в 1940 году Артур Дикинсон (IBM) изобрел первый цифровой электронный компьютер. [84] Это вычислительное устройство было полностью электронным – управление, вычисления и вывод (первый электронный дисплей). [85] Джон Винсент Атанасов и Клиффорд Э. Берри из Университета штата Айова разработали компьютер Атанасова–Берри (ABC) в 1942 году, [86] первое двоичное электронное цифровое вычислительное устройство. [87] Эта конструкция была полуэлектронной (электромеханическое управление и электронные вычисления) и использовала около 300 вакуумных ламп с конденсаторами, закрепленными в механически вращающемся барабане для памяти. Однако его устройство записи/считывания бумажных карт было ненадежным, а регенеративная контактная система барабана была механической. Специализированный характер машины и отсутствие изменяемой, хранимой программы отличают ее от современных компьютеров. [88]
Компьютеры, логика которых была изначально построена с использованием электронных ламп, теперь известны как компьютеры первого поколения .
Во время Второй мировой войны британские дешифровальщики в Блетчли-парке , в 40 милях (64 км) к северу от Лондона, добились ряда успехов в дешифровке вражеских военных сообщений. Немецкая шифровальная машина Enigma была впервые атакована с помощью электромеханических бомб . [89] Они исключили возможные настройки Enigma, выполняя цепочки логических выводов, реализованных электрически. Большинство возможностей приводило к противоречию, а немногие оставшиеся можно было проверить вручную.
Немцы также разработали ряд систем шифрования телетайпов, совершенно отличных от Enigma. Машина Lorenz SZ 40/42 использовалась для высокоуровневой армейской связи под кодовым названием «Tunny» у британцев. Первые перехваты сообщений Lorenz начались в 1941 году. В рамках атаки на Tunny Макс Ньюман и его коллеги разработали Heath Robinson , машину с фиксированными функциями для помощи в дешифровке. [90] Томми Флауэрс , старший инженер исследовательской станции почтового отделения [91], был рекомендован Максу Ньюману Аланом Тьюрингом [92] и провел одиннадцать месяцев с начала февраля 1943 года, проектируя и строя более гибкий компьютер Colossus (который заменил Heath Robinson ). [93] [94] После функционального испытания в декабре 1943 года Colossus был отправлен в Блетчли-Парк, куда он был доставлен 18 января 1944 года [95] и атаковал свое первое сообщение 5 февраля. [96] К моменту капитуляции Германии в мае 1945 года в Блетчли-парке работало десять Колоссов . [97]
Colossus был первым в мире электронным цифровым программируемым компьютером . [55] Он использовал большое количество клапанов (вакуумных трубок). Он имел вход с бумажной ленты и мог быть настроен для выполнения различных булевых логических операций над своими данными, [98] но он не был полным по Тьюрингу . Ввод данных в Colossus осуществлялся путем фотоэлектрического считывания бумажной ленты, транскрипции зашифрованного перехваченного сообщения. Это было организовано в непрерывном цикле, так что его можно было считывать и перечитывать несколько раз — внутреннего хранилища для данных не было. Механизм считывания работал со скоростью 5000 символов в секунду, а бумажная лента двигалась со скоростью 40 футов/с (12,2 м/с; 27,3 миль/ч). Colossus Mark 1 содержал 1500 термоэлектронных клапанов (трубок), но Mark 2 с 2400 лампами и пятью процессорами параллельно был в 5 раз быстрее и проще в эксплуатации, чем Mark 1, что значительно ускоряло процесс декодирования. Mark 2 был разработан во время строительства Mark 1. Аллен Кумбс взял на себя руководство проектом Colossus Mark 2, когда Томми Флауэрс перешел к другим проектам. [99] Первый Mark 2 Colossus был введен в эксплуатацию 1 июня 1944 года, как раз вовремя для вторжения союзников в Нормандию в день «Д» .
Большая часть использования Colossus заключалась в определении начальных позиций роторов Tunny для сообщения, что называлось «настройкой колеса». Colossus включал в себя первое в истории использование регистров сдвига и систолических массивов , что позволяло проводить пять одновременных тестов, каждый из которых включал до 100 булевых вычислений . Это позволяло проверять пять различных возможных начальных позиций для одного прохода бумажной ленты. [100] Помимо настройки колеса, некоторые более поздние Colossi включали механизмы, предназначенные для помощи в определении схем расположения штифтов, известных как «разрыв колеса». Обе модели программировались с помощью переключателей и панелей штепселей, чего не было у их предшественников.
Без использования этих машин союзники были бы лишены очень ценной разведывательной информации , которая была получена путем чтения огромного количества зашифрованных телеграфных сообщений высокого уровня между немецким верховным командованием (OKW) и их армейскими командованиями по всей оккупированной Европе. Подробности их существования, конструкции и использования держались в секрете вплоть до 1970-х годов. Уинстон Черчилль лично отдал приказ об их уничтожении на куски размером не больше человеческой руки, чтобы сохранить в тайне тот факт, что британцы были способны взломать шифры Lorenz SZ (от немецких роторных потоковых шифровальных машин) во время надвигающейся холодной войны. Две из машин были переданы в недавно сформированный GCHQ , а остальные были уничтожены. В результате эти машины не были включены во многие истории вычислений. [g] Реконструированная рабочая копия одной из машин Colossus теперь выставлена в Блетчли-парке.
ENIAC (электронный числовой интегратор и компьютер) был первым электронным программируемым компьютером , построенным в США. Хотя ENIAC использовал технологию, похожую на Colossi , он был намного быстрее и гибче и был полным по Тьюрингу. Как и Colossi, «программа» на ENIAC определялась состояниями его соединительных кабелей и переключателей, что сильно отличалось от электронных машин с хранимой программой , которые появились позже. Когда программа была готова к запуску, ее нужно было механически установить в машину с помощью ручной переустановки разъемов и переключателей. Программистами ENIAC были женщины, получившие математическое образование. [102]
Он сочетал в себе высокую скорость электроники с возможностью программирования для решения многих сложных задач. Он мог складывать или вычитать 5000 раз в секунду, в тысячу раз быстрее, чем любая другая машина. Он также имел модули для умножения, деления и извлечения квадратного корня. Высокоскоростная память была ограничена 20 словами (что эквивалентно примерно 80 байтам). Построенный под руководством Джона Мочли и Дж. Преспера Экерта в Университете Пенсильвании, ENIAC разрабатывался и конструировался с 1943 года до полной эксплуатации в конце 1945 года. Машина была огромной, весила 30 тонн, использовала 200 киловатт электроэнергии и содержала более 18 000 электронных ламп, 1500 реле и сотни тысяч резисторов, конденсаторов и индукторов. [103] Одним из его главных инженерных подвигов было минимизация последствий выгорания ламп, что было распространенной проблемой надежности машин в то время. Машина использовалась практически непрерывно в течение следующих десяти лет.
Теоретическая основа для компьютера с хранимой программой была предложена Аланом Тьюрингом в его статье 1936 года «О вычислимых числах» . [65] Пока Тьюринг работал в Принстоне над своей докторской диссертацией, с ним познакомился Джон фон Нейман , которого заинтересовала его концепция универсальной вычислительной машины. [104]
Ранние вычислительные машины выполняли заданную последовательность шагов, известную как « программа », которую можно было изменить, изменив электрические соединения с помощью переключателей или коммутационной панели (или штепсельной вилки ). Однако этот процесс «перепрограммирования» часто был сложным и отнимал много времени, требуя от инженеров создания блок-схем и физического переподключения машин. [105] Компьютеры с хранимой программой, напротив, были разработаны для хранения набора инструкций ( программы ) в памяти — обычно той же памяти, что и хранимые данные.
Изобретатели ENIAC Джон Мокли и Дж. Преспер Экерт предложили в августе 1944 года конструкцию машины под названием Electronic Discrete Variable Automatic Computer ( EDVAC ), и проектные работы по ней начались в Школе электротехники Мура Пенсильванского университета , до того, как ENIAC был полностью введен в эксплуатацию. В проекте был реализован ряд важных архитектурных и логических усовершенствований, задуманных во время строительства ENIAC, а также высокоскоростная последовательная память . [106] Однако Экерт и Мокли покинули проект, и его строительство зашло в тупик.
В 1945 году фон Нейман посетил школу Мура и написал заметки о том, что он увидел, которые он отправил в проект. Тамошний связной армии США напечатал их и распространил как первый черновик отчета по EDVAC . В черновике не упоминались Эккерт и Мокли, и, несмотря на его незавершенность и сомнительное отсутствие указания источников некоторых идей, [55] описанная в нем архитектура компьютера стала известна как « архитектура фон Неймана ».
В 1945 году Тьюринг присоединился к Национальной физической лаборатории Великобритании и начал работу над разработкой электронного цифрового компьютера с хранимой программой. Его доклад конца 1945 года «Предлагаемый электронный калькулятор» был первой достаточно подробной спецификацией для такого устройства. Тьюринг представил более подробный документ Исполнительному комитету Национальной физической лаборатории (NPL) в марте 1946 года, предоставив первую по существу полную конструкцию компьютера с хранимой программой , устройства, которое было названо Автоматической вычислительной машиной (ACE).
Тьюринг считал, что скорость и размер памяти компьютера являются важнейшими элементами, [107] : стр.4 поэтому он предложил высокоскоростную память объемом 25 КБ , доступ к которой осуществлялся со скоростью 1 МГц . ACE реализовывал вызовы подпрограмм , тогда как EDVAC этого не делал, и ACE также использовал сокращенные компьютерные инструкции, раннюю форму языка программирования .
Manchester Baby (Small Scale Experimental Machine, SSEM) был первым в мире электронным компьютером с хранимой программой . Он был построен в Университете Виктории в Манчестере Фредериком К. Уильямсом , Томом Килберном и Джеффом Тутиллом и запустил свою первую программу 21 июня 1948 года. [108]
Машина не предназначалась для использования в качестве практического компьютера, а была разработана как испытательный стенд для трубки Уильямса , первого цифрового запоминающего устройства с произвольным доступом . [109] Изобретенная Фредди Уильямсом и Томом Килберном [110] [111] в Манчестерском университете в 1946 и 1947 годах, она представляла собой электронно-лучевую трубку , которая использовала эффект, называемый вторичной эмиссией , для временного хранения электронных двоичных данных и успешно применялась в нескольких ранних компьютерах.
Описанный как небольшой и примитивный в ретроспективе 1998 года, Baby был первой рабочей машиной, содержащей все элементы, необходимые для современного электронного компьютера. [112] Как только он продемонстрировал осуществимость своей конструкции, в университете был инициирован проект по разработке более удобного компьютера, Manchester Mark 1. Mark 1, в свою очередь, быстро стал прототипом Ferranti Mark 1 , первого в мире коммерчески доступного компьютера общего назначения. [113]
Длина слова у Baby составляла 32 бита , а память — 32 слова. Поскольку он был разработан как простейший из возможных компьютеров с хранимой программой, единственными арифметическими операциями, реализованными на аппаратном уровне, были вычитание и отрицание ; другие арифметические операции были реализованы программно. Первая из трех программ, написанных для машины, нашла наибольший собственный делитель 2 18 (262 144), вычисление, которое, как было известно, заняло бы много времени для выполнения — и таким образом доказало надежность компьютера — путем проверки каждого целого числа от 2 18 − 1 и ниже, поскольку деление было реализовано путем повторного вычитания делителя. Программа состояла из 17 инструкций и работала в течение 52 минут, прежде чем достигла правильного ответа 131 072, после того как Baby выполнил 3,5 миллиона операций (для эффективной скорости ЦП 1,1 kIPS ). Последовательные приближения к ответу отображались в виде узора точек на выходном ЭЛТ , который отражал узор, сохранявшийся на трубке Уильямса, используемой для хранения данных.
SSEM привел к разработке Manchester Mark 1 в Манчестерском университете. [114] Работа началась в августе 1948 года, и первая версия была готова к апрелю 1949 года; программа, написанная для поиска простых чисел Мерсенна, работала без ошибок в течение девяти часов в ночь с 16 на 17 июня 1949 года. Успешная работа машины широко освещалась в британской прессе, которая использовала фразу «электронный мозг» для описания ее своим читателям.
Компьютер особенно историчен из-за его новаторского включения индексных регистров , нововведения, которое облегчило программе последовательное чтение массива слов в памяти. Тридцать четыре патента стали результатом разработки машины, и многие идеи, лежащие в основе ее конструкции, были включены в последующие коммерческие продукты, такие как IBM 701 и 702 , а также Ferranti Mark 1. Главные конструкторы Фредерик К. Уильямс и Том Килберн пришли к выводу из своего опыта работы с Mark 1, что компьютеры будут использоваться больше в научных ролях, чем в чистой математике. В 1951 году они начали разработку Meg , преемника Mark 1, который должен был включать блок с плавающей точкой .
Другим претендентом на звание первого узнаваемого современного цифрового компьютера с хранимой программой [115] был EDSAC , [116] разработанный и построенный Морисом Уилксом и его командой в Математической лаборатории Кембриджского университета в Англии в Кембриджском университете в 1949 году. Машина была вдохновлена основополагающим Первым черновиком отчета Джона фон Неймана об EDVAC и была одним из первых полезно работающих электронных цифровых компьютеров с хранимой программой . [h]
EDSAC запустил свои первые программы 6 мая 1949 года, когда он вычислил таблицу квадратов [119] и список простых чисел . EDSAC также послужил основой для первого коммерческого компьютера LEO I , который использовался компанией по производству продуктов питания J. Lyons & Co. Ltd. EDSAC 1 был окончательно закрыт 11 июля 1958 года, будучи замененным EDSAC 2, который оставался в использовании до 1965 года. [120]
"Мозг" [компьютер] может однажды спуститься до нашего уровня [простых людей] и помочь нам с нашими расчетами подоходного налога и бухгалтерского учета. Но это лишь домыслы, и пока никаких признаков этого нет.
— Британская газета The Star в статье за июнь 1949 года о компьютере EDSAC , опубликованной задолго до эры персональных компьютеров. [121]
Изобретатели ENIAC Джон Мокли и Дж. Преспер Экерт предложили конструкцию EDVAC в августе 1944 года, и проектные работы по EDVAC начались в Школе электротехники Мура Пенсильванского университета , до того, как ENIAC был полностью введен в эксплуатацию. В проекте был реализован ряд важных архитектурных и логических усовершенствований, задуманных во время строительства ENIAC, а также высокоскоростная последовательная память . [106] Однако Экерт и Мокли покинули проект, и его строительство зашло в тупик.
В августе 1949 года его наконец доставили в Лабораторию баллистических исследований армии США на Абердинском испытательном полигоне , но из-за ряда проблем компьютер начал работать только в 1951 году, да и то в ограниченных масштабах.
Первым коммерческим компьютером был Ferranti Mark 1 , построенный Ferranti и поставленный в Манчестерский университет в феврале 1951 года. Он был основан на Manchester Mark 1. Основные усовершенствования по сравнению с Manchester Mark 1 заключались в размере первичной памяти (использующей трубки Уильямса с произвольным доступом ), вторичной памяти (использующей магнитный барабан ), более быстром умножителе и дополнительных инструкциях. Базовое время цикла составляло 1,2 миллисекунды, а умножение могло быть выполнено примерно за 2,16 миллисекунды. Умножитель использовал почти четверть из 4050 электронных ламп (клапанов) машины. [122] Вторая машина была куплена Университетом Торонто , прежде чем конструкция была пересмотрена в Mark 1 Star . По крайней мере семь из этих более поздних машин были поставлены между 1953 и 1957 годами, одна из них в лаборатории Shell в Амстердаме. [123]
В октябре 1947 года директора J. Lyons & Company , британской компании общественного питания, известной своими чайными, но с сильным интересом к новым методам управления офисом, решили принять активное участие в содействии коммерческому развитию компьютеров. Компьютер LEO I (Lyons Electronic Office) был введен в эксплуатацию в апреле 1951 года [124] и выполнил первую в мире регулярную рутинную работу офисного компьютера . 17 ноября 1951 года компания J. Lyons начала еженедельную работу по оценке хлебопекарни на LEO – первом бизнес- приложении, запущенном на компьютере с хранимой программой. [i]
В июне 1951 года UNIVAC I (универсальный автоматический компьютер) был доставлен в Бюро переписи населения США . В конечном итоге Remington Rand продала 46 машин по цене более 1 миллиона долларов США каждая (11,7 миллионов долларов США по состоянию на 2024 год). [125] UNIVAC был первым компьютером «массового производства». Он использовал 5200 электронных ламп и потреблялМощность 125 кВт . Его основным хранилищем были ртутные линии задержки с последовательным доступом , способные хранить 1000 слов из 11 десятичных цифр плюс знак (72-битные слова).
В 1952 году компания Compagnie des Machines Bull выпустила компьютер Gamma 3 , который имел большой успех в Европе, в конечном итоге было продано более 1200 единиц, и стал первым компьютером, произведенным в количестве более 1000 единиц. [126] Gamma 3 обладал инновационными для своего времени функциями, включая двухрежимный, программно-переключаемый, BCD и двоичный ALU, а также аппаратно реализованную библиотеку с плавающей точкой для научных вычислений. [126] В своей конфигурации ET барабанная память Gamma 3 могла вместить около 50 000 инструкций для емкости 16 384 слов (около 100 кБ), что было большим объемом для того времени. [126]
По сравнению с UNIVAC, IBM представила в 1954 году меньший и более доступный компьютер, который оказался очень популярным. [j] [128] IBM 650 весил более900 кг , вес подключенного источника питания составил около1350 кг , и оба хранились в отдельных шкафах размером примерно 1,5 × 0,9 × 1,8 м . Стоимость системы составляла 500 000 долларов США [129] (5,67 млн долларов США по состоянию на 2024 год) или ее можно было арендовать за 3 500 долларов США в месяц (40 000 долларов США по состоянию на 2024 год). [125] Первоначально ее барабанная память составляла 2 000 десятизначных слов, позже ее расширили до 4 000 слов. Такие ограничения памяти должны были доминировать в программировании в течение десятилетий после этого. Инструкции программы извлекались из вращающегося барабана по мере выполнения кода. Эффективное выполнение с использованием барабанной памяти обеспечивалось сочетанием аппаратной архитектуры — формат инструкции включал адрес следующей инструкции — и программного обеспечения: программа Symbolic Optimal Assembly Program , SOAP, [130] назначала инструкции оптимальным адресам (насколько это было возможно с помощью статического анализа исходной программы). Таким образом, многие инструкции, когда это было необходимо, располагались в следующем ряду барабана для считывания, и дополнительное время ожидания вращения барабана было сокращено.
В 1951 году британский ученый Морис Уилкс разработал концепцию микропрограммирования , осознав, что центральный процессор компьютера может управляться миниатюрной, высокоспециализированной компьютерной программой в высокоскоростном ПЗУ . Микропрограммирование позволяет определять или расширять базовый набор инструкций с помощью встроенных программ (теперь называемых прошивкой или микрокодом ). [131] Эта концепция значительно упростила разработку ЦП. Впервые он описал ее на инаугурационной конференции по компьютерам в Университете Манчестера в 1951 году, а затем опубликовал в расширенном виде в IEEE Spectrum в 1955 году. [ необходима цитата ]
Он широко использовался в процессорах и блоках с плавающей точкой мэйнфреймов и других компьютеров; он был впервые реализован в EDSAC 2 , [132] который также использовал несколько идентичных "битовых слайсов" для упрощения конструкции. Взаимозаменяемые, сменные сборки труб использовались для каждого бита процессора. [k]
Магнитные барабанные запоминающие устройства были разработаны для ВМС США во время Второй мировой войны, и работа была продолжена в Engineering Research Associates (ERA) в 1946 и 1947 годах. ERA, тогда часть Univac, включила барабанную память в свой 1103 , анонсированный в феврале 1953 года. Первый серийный компьютер, IBM 650 , также анонсированный в 1953 году, имел около 8,5 килобайт барабанной памяти.
Память на магнитном сердечнике была запатентована в 1949 году [134], а ее первое применение было продемонстрировано для компьютера Whirlwind в августе 1953 года. [135] Коммерциализация последовала быстро. Магнитный сердечник использовался в периферийных устройствах IBM 702, поставленного в июле 1955 года, а затем и в самом 702. IBM 704 (1955) и Ferranti Mercury (1957) использовали память на магнитном сердечнике. Она продолжала доминировать в этой области до 1970-х годов, когда ее заменила полупроводниковая память. Магнитный сердечник достиг пика своего объема около 1975 года, а затем его использование и доля на рынке снизились. [136]
Еще в 1980 году машины PDP-11/45, в которых для обмена данными использовались основная память на магнитных сердечниках и барабаны, все еще использовались на многих оригинальных сайтах UNIX.
Биполярный транзистор был изобретен в 1947 году. С 1955 года транзисторы заменили электронные лампы в компьютерных конструкциях, [138] дав начало «второму поколению» компьютеров. По сравнению с электронными лампами транзисторы имеют много преимуществ: они меньше и требуют меньше энергии, чем электронные лампы, поэтому выделяют меньше тепла. Кремниевые транзисторы были намного надежнее электронных ламп и имели более длительный срок службы. Транзисторные компьютеры могли содержать десятки тысяч двоичных логических схем в относительно компактном пространстве. Транзисторы значительно уменьшили размер компьютеров, первоначальную стоимость и эксплуатационные расходы . Как правило, компьютеры второго поколения состояли из большого количества печатных плат , таких как IBM Standard Modular System , [139] каждая из которых имела от одного до четырех логических вентилей или триггеров .
В Манчестерском университете группа под руководством Тома Килберна спроектировала и построила машину, используя недавно разработанные транзисторы вместо ламп. Первоначально единственными доступными устройствами были германиевые точечные транзисторы , менее надежные, чем замененные ими лампы, но потреблявшие гораздо меньше энергии. [140] Их первый транзисторный компьютер , и первый в мире, был запущен в эксплуатацию к 1953 году , [141] а вторая версия была завершена там же в апреле 1955 года. [141] Версия 1955 года использовала 200 транзисторов, 1300 твердотельных диодов и имела потребляемую мощность 150 Вт. Однако машина использовала лампы для генерации своих тактовых сигналов частотой 125 кГц и в схемах для чтения и записи на своем магнитном барабане памяти, поэтому это был не первый полностью транзисторный компьютер.
Это отличие принадлежит Harwell CADET 1955 года, [142] созданному подразделением электроники Исследовательского центра атомной энергии в Харвелле . Конструкция представляла собой 64-килобайтный магнитный барабанный накопитель с несколькими подвижными головками, разработанный в Национальной физической лаборатории Великобритании . К 1953 году эта команда имела транзисторные схемы, работающие для чтения и записи на меньшем магнитном барабане из Королевского радиолокационного центра . Машина использовала низкую тактовую частоту всего 58 кГц, чтобы избежать необходимости использовать какие-либо лампы для генерации тактовых сигналов. [143] [142]
CADET использовал 324-контактных транзистора, предоставленных британской компанией Standard Telephones and Cables ; 76 транзисторов с точечным переходом использовались для усилителей первой ступени для считывания данных с барабана, поскольку транзисторы с точечным переходом были слишком шумными. С августа 1956 года CADET предлагал регулярные вычислительные услуги, в течение которых он часто выполнял непрерывные вычислительные циклы продолжительностью 80 часов или более. [144] [145] Проблемы с надежностью ранних партий транзисторов с точечным контактом и сплавленным переходом привели к тому, что среднее время работы машины между отказами составляло около 90 минут, но это улучшилось, когда стали доступны более надежные биполярные транзисторы с переходом . [146]
Конструкция транзисторного компьютера Манчестерского университета была принята местной инженерной фирмой Metropolitan-Vickers в их Metrovick 950 , первом коммерческом транзисторном компьютере в мире. [147] Было построено шесть Metrovick 950, первый был завершен в 1956 году. Они были успешно развернуты в различных отделах компании и использовались около пяти лет. [141] Компьютер второго поколения, IBM 1401 , захватил около трети мирового рынка. IBM установила более десяти тысяч 1401 в период с 1960 по 1964 год.
Транзисторная электроника улучшила не только ЦП (центральный процессор), но и периферийные устройства . Дисковые устройства хранения данных второго поколения могли хранить десятки миллионов букв и цифр. Рядом с фиксированными дисковыми устройствами хранения данных, подключенными к ЦП через высокоскоростную передачу данных, были съемные дисковые устройства хранения данных. Съемный пакет дисков можно легко заменить другим пакетом за несколько секунд. Даже если емкость съемных дисков меньше, чем у фиксированных дисков, их взаимозаменяемость гарантирует практически неограниченное количество данных под рукой. Магнитная лента обеспечивала возможность архивирования этих данных по более низкой цене, чем диск.
Многие процессоры второго поколения делегировали связь с периферийными устройствами вторичному процессору. Например, в то время как процессор связи управлял чтением и перфорацией карт , основной процессор выполнял вычисления и двоичные инструкции ветвления . Одна шина данных будет передавать данные между основным процессором и основной памятью со скоростью цикла выборки-выполнения процессора , а другие шины данных обычно обслуживали периферийные устройства. На PDP-1 время цикла основной памяти составляло 5 микросекунд; следовательно, большинство арифметических инструкций занимали 10 микросекунд (100 000 операций в секунду), поскольку большинство операций занимали по крайней мере два цикла памяти: один для инструкции, один для выборки данных операнда .
Во втором поколении удаленные терминальные устройства (часто в форме телепринтеров, таких как Friden Flexowriter ) стали использоваться гораздо чаще. [l] Телефонные соединения обеспечивали достаточную скорость для ранних удаленных терминалов и позволяли размещать удаленные терминалы и вычислительный центр на расстоянии сотен километров. В конечном итоге эти автономные компьютерные сети были обобщены в взаимосвязанную сеть сетей — Интернет. [m]
В начале 1960-х годов появились суперкомпьютеры . Atlas был совместной разработкой Манчестерского университета , Ферранти и Плесси и был впервые установлен в Манчестерском университете и официально введен в эксплуатацию в 1962 году как один из первых в мире суперкомпьютеров — считавшийся самым мощным компьютером в мире в то время. [150] Было сказано, что всякий раз, когда Atlas отключался, половина вычислительной мощности Соединенного Королевства терялась. [151] Это была машина второго поколения, использующая дискретные германиевые транзисторы . Atlas также был пионером Atlas Supervisor , «которую многие считают первой узнаваемой современной операционной системой ». [152]
В США серия компьютеров в Control Data Corporation (CDC) была разработана Сеймуром Крейем для использования инновационных конструкций и параллелизма для достижения превосходной пиковой производительности вычислений. [153] CDC 6600 , выпущенный в 1964 году, обычно считается первым суперкомпьютером. [154] [155] CDC 6600 превзошел своего предшественника, IBM 7030 Stretch , примерно в 3 раза. С производительностью около 1 мегафлопс , CDC 6600 был самым быстрым компьютером в мире с 1964 по 1969 год, когда он уступил этот статус своему преемнику, CDC 7600 .
«Третье поколение» цифровых электронных компьютеров использовало в качестве логической основы интегральные схемы (ИС).
Идея создания интегральной схемы была выдвинута ученым-радиолокатором, работавшим в Королевском радиолокационном учреждении Министерства обороны , Джеффри У. А. Даммером .
Первые работающие интегральные схемы были изобретены Джеком Килби в Texas Instruments и Робертом Нойсом в Fairchild Semiconductor . [156] Килби записал свои первоначальные идеи относительно интегральной схемы в июле 1958 года, успешно продемонстрировав первый работающий интегрированный пример 12 сентября 1958 года. [157] Изобретение Килби представляло собой гибридную интегральную схему (гибридную ИС). [158] Она имела внешние проводные соединения, что затрудняло ее массовое производство. [159]
Нойс придумал собственную идею интегральной схемы через полгода после Килби. [160] Изобретение Нойса представляло собой монолитную интегральную схему (ИС). [161] [159] Его чип решил множество практических проблем, которые не решал Килби. Производимый в Fairchild Semiconductor, он был сделан из кремния , тогда как чип Килби был сделан из германия . Основой для монолитной ИС Нойса был планарный процесс Fairchild , который позволял компоновать интегральные схемы, используя те же принципы, что и печатные схемы . Планарный процесс был разработан коллегой Нойса Жаном Эрни в начале 1959 года на основе работы Мохамеда М. Аталлы по пассивации поверхности полупроводников диоксидом кремния в Bell Labs в конце 1950-х годов. [162] [163] [164]
Третье поколение (интегральные схемы) компьютеров впервые появилось в начале 1960-х годов в компьютерах, разработанных для государственных целей, а затем в коммерческих компьютерах, начиная с середины 1960-х годов. Первым кремниевым ИС-компьютером был Apollo Guidance Computer или AGC. [165] Хотя это был не самый мощный компьютер своего времени, экстремальные ограничения по размеру, массе и мощности космического корабля Apollo требовали, чтобы AGC был намного меньше и плотнее любого предыдущего компьютера, весом всего 70 фунтов (32 кг). Каждая лунная посадочная миссия несла два AGC, по одному в командном и лунном восходящем модулях.
МОП -транзистор (полевой транзистор металл-оксид-полупроводник, или МОП-транзистор) был изобретен Мохамедом М. Аталлой и Давоном Кангом в Bell Labs в 1959 году. [166] В дополнение к обработке данных, МОП-транзистор позволил практическое использование МОП-транзисторов в качестве элементов хранения ячеек памяти , функцию, ранее выполнявшуюся магнитными сердечниками . Полупроводниковая память , также известная как МОП-память , была дешевле и потребляла меньше энергии, чем память на магнитных сердечниках . [167] МОП- память с произвольным доступом (ОЗУ) в форме статического ОЗУ (SRAM) была разработана Джоном Шмидтом в Fairchild Semiconductor в 1964 году. [167] [168] В 1966 году Роберт Деннард в исследовательском центре IBM Thomas J. Watson разработал МОП- динамическое ОЗУ (DRAM). [169] В 1967 году Давон Канг и Саймон Сзе из Bell Labs разработали МОП-транзистор с плавающим затвором , основу для МОП -независимой памяти, такой как EPROM , EEPROM и флэш-память . [170] [171]
«Четвертое поколение» цифровых электронных компьютеров использовало микропроцессоры в качестве основы своей логики. Микропроцессор берет свое начало в микросхеме МОП-интегральной схемы (МОП-ИС). [172] Из-за быстрого масштабирования МОП- транзисторов микросхемы МОП-ИС быстро увеличивались в сложности со скоростью, предсказанной законом Мура , что привело к крупномасштабной интеграции (БИС) с сотнями транзисторов на одной микросхеме МОП к концу 1960-х годов. Применение микросхем МОП-БИС в вычислениях стало основой для первых микропроцессоров, поскольку инженеры начали осознавать, что полный процессор компьютера может содержаться на одной микросхеме МОП-БИС. [172]
Вопрос о том, какое именно устройство было первым микропроцессором, является спорным, отчасти из-за отсутствия согласия по точному определению термина «микропроцессор». Самыми ранними многокристальными микропроцессорами были Four-Phase Systems AL-1 в 1969 году и Garrett AiResearch MP944 в 1970 году, разработанные с несколькими чипами MOS LSI. [172] Первым однокристальным микропроцессором был Intel 4004 , [173] разработанный на одном чипе PMOS LSI. [172] Он был разработан и реализован Тедом Хоффом , Федерико Фаггином , Масатоши Шимой и Стэнли Мазором в Intel и выпущен в 1971 году. [n] Тадаши Сасаки и Масатоши Шима из Busicom , производителя калькуляторов, изначально предполагали, что ЦП может быть одним чипом MOS LSI, поставляемым Intel. [175] [173]
В то время как самые ранние микропроцессорные ИС буквально содержали только процессор, т. е. центральный процессор компьютера, их прогрессивное развитие естественным образом привело к появлению чипов, содержащих большую часть или все внутренние электронные части компьютера. Интегральная схема на изображении справа, например, Intel 8742 , представляет собой 8-битный микроконтроллер , который включает в себя ЦП, работающий на частоте 12 МГц, 128 байт ОЗУ , 2048 байт СППЗУ и ввод-вывод в одном чипе.
В 1960-х годах наблюдалось значительное совпадение между технологиями второго и третьего поколения. [o] IBM реализовала свои модули IBM Solid Logic Technology в гибридных схемах для IBM System/360 в 1964 году. Еще в 1975 году Sperry Univac продолжила производство машин второго поколения, таких как UNIVAC 494. Большие системы Burroughs, такие как B5000, были стековыми машинами , что позволяло упростить программирование. Эти автоматы с магазинной памятью были также реализованы в мини-компьютерах и микропроцессорах позже, что повлияло на разработку языков программирования. Мини-компьютеры служили недорогими компьютерными центрами для промышленности, бизнеса и университетов. [176] Стало возможным моделировать аналоговые схемы с помощью программы моделирования с акцентом на интегральные схемы , или SPICE (1971) на мини-компьютерах, одной из программ для автоматизации электронного проектирования ( EDA ). Микропроцессор привел к разработке микрокомпьютеров , небольших, недорогих компьютеров, которые могли принадлежать частным лицам и малому бизнесу. Микрокомпьютеры, первые из которых появились в 1970-х годах, получили повсеместное распространение в 1980-х годах и позже.
Хотя вопрос о том, какой именно продукт считается первой микрокомпьютерной системой, является предметом споров, одним из самых ранних является Micral N от R2E ( Франсуа Жернель , Андре Труонг ), выпущенный «в начале 1973 года» с использованием Intel 8008. [177] Первым коммерчески доступным набором микрокомпьютера был Altair 8800 на базе Intel 8080 , который был анонсирован в заглавной статье Popular Electronics за январь 1975 года . Однако Altair 8800 был крайне ограниченной системой на начальных этапах, имея всего 256 байт DRAM в своем первоначальном корпусе и не имея ввода-вывода, за исключением тумблеров и светодиодного дисплея регистра. Несмотря на это, изначально он был на удивление популярен, с несколькими сотнями продаж в первый год, и спрос быстро превысил предложение. Несколько сторонних поставщиков, таких как Cromemco и Processor Technology, вскоре начали поставлять дополнительное оборудование шины S-100 для Altair 8800.
В апреле 1975 года на Ганноверской ярмарке Olivetti представила P6060 , первую в мире полную, предварительно собранную персональную компьютерную систему. Центральный процессор состоял из двух карт с кодовыми названиями PUCE1 и PUCE2, и в отличие от большинства других персональных компьютеров был построен с использованием компонентов TTL, а не микропроцессора. Он имел один или два 8- дюймовых дисковода, 32-символьный плазменный дисплей , 80-колоночный графический термопринтер , 48 Кбайт ОЗУ и язык BASIC . Он весил 40 кг (88 фунтов). Как полная система, это был значительный шаг по сравнению с Altair, хотя он так и не достиг того же успеха. Он конкурировал с аналогичным продуктом IBM, который имел внешний дисковод.
С 1975 по 1977 год большинство микрокомпьютеров, таких как MOS Technology KIM-1 , Altair 8800 и некоторые версии Apple I , продавались в виде наборов для самостоятельной сборки. Предварительно собранные системы не получили большого распространения до 1977 года, с появлением Apple II , Tandy TRS-80 , первых компьютеров SWTPC и Commodore PET . Вычислительная техника развивалась вместе с архитектурами микрокомпьютеров, с функциями, добавленными от их более крупных собратьев, которые теперь доминируют в большинстве сегментов рынка.
Компьютер NeXT и его объектно-ориентированные инструменты разработки и библиотеки использовались Тимом Бернерсом-Ли и Робертом Кайо в ЦЕРНе для разработки первого в мире программного обеспечения веб-сервера CERN httpd , а также для написания первого веб - браузера WorldWideWeb .
Такие сложные системы, как компьютеры, требуют очень высокой надежности . ENIAC оставался включенным, в непрерывной работе с 1947 по 1955 год, в течение восьми лет, прежде чем был закрыт. Хотя вакуумная лампа могла выйти из строя, ее можно было заменить, не останавливая систему. Благодаря простой стратегии никогда не выключать ENIAC, количество отказов было значительно сокращено. Компьютеры SAGE с вакуумными лампами для ПВО стали необычайно надежными — они устанавливались парами, одна из которых была отключена, а лампы, которые могли выйти из строя, выходили из строя, когда компьютер намеренно запускался на пониженной мощности, чтобы их обнаружить. Жесткие диски с возможностью горячей замены, как и вакуумные лампы прошлых лет, продолжают традицию ремонта во время непрерывной работы. Полупроводниковая память обычно не имеет ошибок при работе, хотя операционные системы, такие как Unix, использовали тесты памяти при запуске для обнаружения неисправного оборудования. Сегодня требования к надежной работе становятся еще более строгими, когда платформой доставки являются серверные фермы . [178] Google удалось это сделать с помощью отказоустойчивого программного обеспечения для восстановления после сбоев оборудования, и даже работает над концепцией замены целых серверных ферм на лету, во время сервисного обслуживания. [179] [180]
В 21 веке многоядерные процессоры стали коммерчески доступны. [181] Содержимое адресуемой памяти (CAM) [182] стало достаточно недорогим для использования в сетях и часто используется для кэш-памяти на кристалле в современных микропроцессорах, хотя ни одна компьютерная система еще не реализовала аппаратные CAM для использования в языках программирования. В настоящее время CAM (или ассоциативные массивы) в программном обеспечении являются специфическими для языка программирования. Массивы ячеек полупроводниковой памяти являются очень регулярными структурами, и производители доказывают свои процессы на них; это позволяет снизить цены на продукты памяти. В 1980-х годах логические вентили CMOS превратились в устройства, которые можно было изготавливать так же быстро, как и другие типы схем; поэтому энергопотребление компьютера можно было значительно снизить. В отличие от непрерывного потребления тока вентилем, основанным на других типах логики, вентиль CMOS потребляет значительный ток, за исключением утечки, только во время «перехода» между логическими состояниями. [183]
КМОП-схемы позволили вычислениям стать товаром , который теперь вездесущ, встроен во многие формы , от поздравительных открыток и телефонов до спутников . Тепловая мощность , рассеиваемая во время работы, стала такой же важной, как и скорость работы вычислений. В 2006 году серверы потребляли 1,5% от общего энергетического бюджета США [184] Ожидалось, что потребление энергии компьютерными центрами обработки данных удвоится до 3% от мирового потребления к 2011 году. SoC (система на кристалле) сжала еще больше интегральных схем в один кристалл; SoC позволяют телефонам и ПК объединяться в одно портативное беспроводное мобильное устройство [ 185]
Квантовые вычисления — это новая технология в области вычислений. MIT Technology Review сообщил 10 ноября 2017 года, что IBM создала 50- кубитный компьютер; в настоящее время его квантовое состояние длится 50 микросекунд. [186] Исследователи Google смогли продлить временной предел в 50 микросекунд, как сообщалось 14 июля 2021 года в Nature ; [187] стабильность была увеличена в 100 раз за счет распространения одного логического кубита по цепочкам кубитов данных для квантовой коррекции ошибок . [187] Physical Review X сообщил о методике «однозатворного зондирования как жизнеспособного метода считывания для спиновых кубитов» (синглетно-триплетное спиновое состояние в кремнии) 26 ноября 2018 года. [188] Команда Google преуспела в работе своего чипа модулятора импульсов RF при 3 градусах Кельвина , упростив криогенику своего 72-кубитного компьютера, который настроен на работу при 0,3 К ; но схема считывания и другой драйвер еще должны быть включены в криогенику. [189] [p] См.: Квантовое превосходство [191] [192] Системы кремниевых кубитов продемонстрировали запутанность на нелокальных расстояниях. [193]
Вычислительное оборудование и его программное обеспечение даже стали метафорой функционирования вселенной. [194]
Свидетельством быстроты развития этой области может служить история основополагающей статьи 1947 года Беркса, Голдстайна и фон Неймана. [195] К тому времени, как кто-либо успел что-либо записать, это уже устарело. После 1945 года другие прочитали « Первый черновик отчета по EDVAC» Джона фон Неймана и немедленно приступили к внедрению собственных систем. По сей день быстрые темпы развития продолжаются во всем мире. [q] [r]
исчисления использовались в Ираке для примитивных систем учета уже в 3200–3000 гг. до н. э., с товарно-специфическими системами представления счета. Сбалансированный учет использовался в 3000–2350 гг. до н. э., а шестидесятеричная система счисления использовалась в 2350–2000 гг. до н. э.