stringtranslate.com

Компьютер

Компьютеры и вычислительные устройства разных эпох — слева направо, сверху вниз:

Компьютер — это машина , которая может быть запрограммирована на автоматическое выполнение последовательностей арифметических или логических операций ( вычислений ). Современные цифровые электронные компьютеры могут выполнять общие наборы операций, известные как программы . Эти программы позволяют компьютерам выполнять широкий спектр задач. Термин « компьютерная система» может относиться к номинально полному компьютеру, который включает в себя аппаратное обеспечение , операционную систему , программное обеспечение и периферийное оборудование, необходимое и используемое для полной работы; или к группе компьютеров, которые связаны и функционируют вместе, например, к компьютерной сети или компьютерному кластеру .

Широкий спектр промышленных и потребительских товаров использует компьютеры в качестве систем управления , включая простые специализированные устройства, такие как микроволновые печи и пульты дистанционного управления , а также заводские устройства, такие как промышленные роботы . Компьютеры лежат в основе универсальных устройств, таких как персональные компьютеры , и мобильных устройств, таких как смартфоны . Компьютеры обеспечивают работу Интернета , который связывает миллиарды компьютеров и пользователей.

Ранние компьютеры предназначались только для вычислений. Простые ручные инструменты, такие как счеты, помогали людям выполнять вычисления с древних времен. В начале промышленной революции были построены некоторые механические устройства для автоматизации длительных, утомительных задач, таких как управление шаблонами для ткацких станков . Более сложные электрические машины выполняли специализированные аналоговые вычисления в начале 20-го века. Первые цифровые электронные вычислительные машины были разработаны во время Второй мировой войны , как электромеханические , так и с использованием термоионных клапанов . За первыми полупроводниковыми транзисторами в конце 1940-х годов последовали технологии MOSFET на основе кремния (МОП-транзистор) и монолитных интегральных схем в конце 1950-х годов, что привело к революции микропроцессоров и микрокомпьютеров в 1970-х годах. С тех пор скорость, мощность и универсальность компьютеров значительно возросли, а количество транзисторов увеличивалось быстрыми темпами ( согласно закону Мура , их количество удваивалось каждые два года), что привело к цифровой революции в конце XX и начале XXI веков.

Традиционно современный компьютер состоит как минимум из одного элемента обработки , как правило, центрального процессора (ЦП) в виде микропроцессора , вместе с некоторым типом компьютерной памяти , как правило, полупроводниковых чипов памяти. Элемент обработки выполняет арифметические и логические операции, а блок последовательности и управления может изменять порядок операций в ответ на сохраненную информацию . Периферийные устройства включают устройства ввода ( клавиатуры , мыши, джойстики и т. д.), устройства вывода (экраны мониторов, принтеры и т. д.) и устройства ввода/вывода , которые выполняют обе функции (например, сенсорный экран эпохи 2000-х годов ). Периферийные устройства позволяют извлекать информацию из внешнего источника, а также позволяют сохранять и извлекать результаты операций.

Этимология

Человек-компьютер.
Человек -компьютер с микроскопом и калькулятором, 1952 г.

Только в середине 20-го века слово приобрело современное определение; согласно Оксфордскому словарю английского языка , первое известное использование слова computer было в другом смысле, в книге 1613 года под названием The Yong Mans Gleanings английского писателя Ричарда Братвейта : «Я прочитал самый верный компьютер Times, и лучшего арифметика, который когда-либо дышал , и он сократил твои дни до короткого числа». Это использование термина относилось к человеку-компьютеру , человеку, который выполнял вычисления или расчеты . Слово продолжало иметь то же значение до середины 20-го века. Во второй половине этого периода женщин часто нанимали в качестве компьютеров, потому что им можно было платить меньше, чем их коллегам-мужчинам. [1] К 1943 году большинство людей-компьютеров были женщинами. [2]

Онлайн -словарь этимологии указывает первое засвидетельствованное использование слова computer в 1640-х годах, означающее «тот, кто вычисляет»; это «существительное-агент от compute (гл.)». Онлайн-словарь этимологии утверждает, что использование термина для обозначения « вычислительной машины» (любого типа) относится к 1897 году». Онлайн-словарь этимологии указывает, что «современное использование» термина для обозначения «программируемого цифрового электронного компьютера» датируется «1945 годом под этим названием; [в] теоретическом [смысле] с 1937 года, как машина Тьюринга ». [3] Название сохранилось, хотя современные компьютеры способны выполнять множество функций более высокого уровня.

История

До 20 века

Кость Ишанго , костяное орудие , датируемое доисторической Африкой.

Устройства использовались для помощи в вычислениях на протяжении тысяч лет, в основном с использованием взаимно-однозначного соответствия с пальцами . Самым ранним счетным устройством, скорее всего, была форма счетной палочки . Более поздние средства ведения записей по всему Плодородному полумесяцу включали в себя исчисления (глиняные сферы, конусы и т. д.), которые представляли собой подсчеты предметов, вероятно, скота или зерна, запечатанных в полые необожженные глиняные контейнеры. [a] [4] Использование счетных палочек является одним из примеров.

Китайский суанпань (算盘). Число, представленное на этих счетах, — 6 302 715 408.

Абак изначально использовался для арифметических задач. Римский абак был разработан на основе устройств, которые использовались в Вавилонии еще в 2400 году до нашей эры. С тех пор было изобретено много других форм счетных досок или таблиц. В средневековой европейской счетной палате на стол клали клетчатую ткань, и маркеры перемещали по ней в соответствии с определенными правилами, как помощь в подсчете денежных сумм. [5]

Антикитерский механизм , появившийся в Древней Греции примерно в 150–100 гг. до н. э., является ранним аналоговым вычислительным устройством.

Механизм Антикитеры считается самым ранним известным механическим аналоговым компьютером , согласно Дереку Дж. де Солла Прайсу . [6] Он был разработан для расчета астрономических положений. Он был обнаружен в 1901 году в затонувшем корабле Антикитеры у греческого острова Антикитера , между Киферой и Критом , и датируется примерно  100 годом до н. э . Устройства, сопоставимые по сложности с механизмом Антикитеры, не появлялись до четырнадцатого века. [7]

Многие механические средства для вычислений и измерений были построены для астрономических и навигационных целей. Планисфера была звездной картой , изобретенной Абу Райханом аль-Бируни в начале 11 века. [8] Астролябия была изобретена в эллинистическом мире либо в 1-м, либо во 2-м веке до н. э. и часто приписывается Гиппарху . Комбинация планисферы и диоптры , астролябия была фактически аналоговым компьютером, способным решать несколько различных видов задач в сферической астрономии . Астролябия, включающая в себя механический календарный компьютер [9] [10] и зубчатые колеса, была изобретена Аби Бакром из Исфахана , Персия , в 1235 году. [11] Абу Райхан аль-Бируни изобрел первую механическую зубчатую лунно-солнечную календарную астролябию, [12] раннюю машину обработки знаний с фиксированным проводным соединением [13] с зубчатой ​​передачей и зубчатыми колесами, [14] около  1000 г. н.э.

Сектор — вычислительный инструмент, используемый для решения задач на пропорции, тригонометрию , умножение и деление, а также для различных функций, таких как извлечение квадратов и кубических корней, — был разработан в конце XVI века и нашел применение в артиллерийском деле, геодезии и навигации.

Планиметр представлял собой ручной прибор для вычисления площади замкнутой фигуры путем обведения ее с помощью механического соединения.

Логарифмическая линейка

Логарифмическая линейка была изобретена около 1620–1630 годов английским священнослужителем Уильямом Отредом вскоре после публикации концепции логарифма . Это аналоговый компьютер с ручным управлением для выполнения умножения и деления. По мере развития логарифмической линейки добавлялись шкалы, обеспечивающие обратные величины, квадраты и квадратные корни, кубы и кубические корни, а также трансцендентные функции , такие как логарифмы и экспоненты, круговая и гиперболическая тригонометрия и другие функции . Логарифмические линейки со специальными шкалами до сих пор используются для быстрого выполнения рутинных вычислений, например, круговая логарифмическая линейка E6B , используемая для расчетов времени и расстояния на легких самолетах.

В 1770-х годах швейцарский часовщик Пьер Жаке-Дро построил механическую куклу ( автомат ), которая могла писать, держа в руках гусиное перо. Переключая количество и порядок ее внутренних колес, можно было получать разные буквы и, следовательно, разные сообщения. По сути, ее можно было механически «запрограммировать» на чтение инструкций. Вместе с двумя другими сложными машинами кукла находится в Музее искусства и истории в Невшателе , Швейцария , и до сих пор работает. [15]

В 1831–1835 годах математик и инженер Джованни Плана разработал машину Вечного календаря , которая с помощью системы шкивов и цилиндров и более могла предсказывать вечный календарь на каждый год с 0 г. н. э. (то есть 1 г. до н. э.) по 4000 г. н. э., отслеживая високосные годы и изменяющуюся продолжительность дня. Машина для прогнозирования приливов , изобретенная шотландским ученым сэром Уильямом Томсоном в 1872 году, была очень полезна для навигации на мелководье. Она использовала систему шкивов и проводов для автоматического расчета прогнозируемых уровней приливов на заданный период в определенном месте.

Дифференциальный анализатор , механический аналоговый компьютер, предназначенный для решения дифференциальных уравнений путем интегрирования , использовал колесно-дисковые механизмы для выполнения интегрирования. В 1876 году сэр Уильям Томсон уже обсуждал возможную конструкцию таких калькуляторов, но его останавливал ограниченный выходной крутящий момент интеграторов с шарами и дисками . [ 16] В дифференциальном анализаторе выход одного интегратора управлял входом следующего интегратора или графическим выходом. Усилитель крутящего момента был достижением, которое позволило этим машинам работать. Начиная с 1920-х годов Ванневар Буш и другие разработали механические дифференциальные анализаторы.

В 1890-х годах испанский инженер Леонардо Торрес Кеведо начал разрабатывать серию современных аналоговых машин , которые могли решать действительные и комплексные корни многочленов , [17] [18] [19] [20] которые были опубликованы в 1901 году Парижской академией наук . [21]

Первый компьютер

Чарльз Бэббидж

Чарльз Бэббидж , английский инженер-механик и полимат , создал концепцию программируемого компьютера. Его считают « отцом компьютера », [22] он разработал концепцию и изобрел первый механический компьютер в начале 19 века.

После работы над своей разностной машиной он объявил о своем изобретении в 1822 году в докладе Королевскому астрономическому обществу под названием «Заметка о применении машин к вычислению астрономических и математических таблиц» [23] он также разработал для помощи в навигационных расчетах, в 1833 году он понял, что возможна гораздо более общая конструкция, аналитическая машина . Ввод программ и данных должен был быть предоставлен машине через перфокарты , метод, который использовался в то время для управления механическими ткацкими станками , такими как ткацкий станок Жаккарда . Для вывода машина должна была иметь принтер, криволинейный плоттер и звонок. Машина также могла бы набивать числа на карты для последующего считывания. Двигатель должен был включать арифметико- логическое устройство , поток управления в форме условного ветвления и циклов и интегрированную память , что делало его первой конструкцией для универсального компьютера, который можно было бы описать в современных терминах как полный по Тьюрингу . [24] [25]

Машина опередила свое время примерно на столетие. Все детали для его машины приходилось изготавливать вручную — это было серьезной проблемой для устройства с тысячами деталей. В конце концов, проект был закрыт из-за решения британского правительства прекратить финансирование. Неспособность Бэббиджа завершить аналитическую машину можно объяснить главным образом политическими и финансовыми трудностями, а также его желанием разработать все более сложный компьютер и двигаться вперед быстрее, чем кто-либо другой мог за ним угнаться. Тем не менее, его сын Генри Бэббидж завершил упрощенную версию вычислительного блока аналитической машины ( мельницу ) в 1888 году. Он провел успешную демонстрацию ее использования в вычислительных таблицах в 1906 году.

Электромеханическая счетная машина

Электромеханический калькулятор (1920) Леонардо Торреса Кеведо .

В своей работе «Очерки об автоматике» , опубликованной в 1914 году, Леонардо Торрес Кеведо написал краткую историю усилий Бэббиджа по созданию механической разностной машины и аналитической машины. В статье содержится проект машины, способной вычислять формулы типа , для последовательности наборов значений. Вся машина должна была управляться программой только для чтения , которая была полна положений для условного ветвления . Он также ввел идею арифметики с плавающей точкой . [26] [27] [28] В 1920 году, чтобы отпраздновать 100-летие изобретения арифмометра , Торрес представил в Париже электромеханический арифмометр, который позволял пользователю вводить арифметические задачи с помощью клавиатуры , а также вычислял и печатал результаты, [29] [30] [31] [32] демонстрируя осуществимость электромеханической аналитической машины. [33]

Аналоговые компьютеры

Третья конструкция машины для прогнозирования приливов и отливов сэра Уильяма Томсона , 1879–1881 гг.

В первой половине 20-го века многие научные вычислительные потребности удовлетворялись все более сложными аналоговыми компьютерами, которые использовали прямую механическую или электрическую модель проблемы в качестве основы для вычислений . Однако они не были программируемыми и, как правило, не обладали универсальностью и точностью современных цифровых компьютеров. [34] Первым современным аналоговым компьютером была машина для прогнозирования приливов , изобретенная сэром Уильямом Томсоном (позже ставшим лордом Кельвином) в 1872 году. Дифференциальный анализатор , механический аналоговый компьютер, предназначенный для решения дифференциальных уравнений путем интегрирования с использованием колесно-дисковых механизмов, был концептуализирован в 1876 году Джеймсом Томсоном , старшим братом более известного сэра Уильяма Томсона. [16]

Искусство механических аналоговых вычислений достигло своего апогея с появлением дифференциального анализатора , созданного Х. Л. Хазеном и Ванневаром Бушем в Массачусетском технологическом институте в 1927 году. Он был создан на основе механических интеграторов Джеймса Томсона и усилителей крутящего момента, изобретенных Х. У. Ниманом. Было построено около дюжины таких устройств, прежде чем их устаревание стало очевидным. К 1950-м годам успех цифровых электронных компьютеров положил конец большинству аналоговых вычислительных машин, но аналоговые компьютеры продолжали использоваться в течение 1950-х годов в некоторых специализированных приложениях, таких как образование ( логарифмическая линейка ) и авиация ( системы управления ).

Цифровые компьютеры

Электромеханический

К 1938 году ВМС США разработали электромеханический аналоговый компьютер, достаточно маленький для использования на борту подводной лодки . Это был Torpedo Data Computer , который использовал тригонометрию для решения задачи стрельбы торпедой по движущейся цели. Во время Второй мировой войны аналогичные устройства разрабатывались и в других странах.

Копия Z3 Конрада Цузе , первого полностью автоматического цифрового (электромеханического) компьютера

Ранние цифровые компьютеры были электромеханическими ; электрические переключатели управляли механическими реле для выполнения вычислений. Эти устройства имели низкую скорость работы и в конечном итоге были заменены гораздо более быстрыми полностью электрическими компьютерами, изначально использовавшими электронные лампы . Z2 , созданный немецким инженером Конрадом Цузе в 1939 году в Берлине , был одним из самых ранних примеров электромеханического релейного компьютера. [35]

Конрад Цузе , изобретатель современного компьютера [36] [37]

В 1941 году Цузе продолжил свою более раннюю машину, выпустив Z3 , первый в мире работающий электромеханический программируемый полностью автоматический цифровой компьютер. [38] [39] Z3 был построен с 2000 реле , реализуя 22- битную длину слова , которая работала на тактовой частоте около 5–10 Гц . [40] Программный код поставлялся на перфорированной пленке, в то время как данные могли храниться в 64 словах памяти или подаваться с клавиатуры. В некоторых отношениях он был очень похож на современные машины, являясь пионером многочисленных достижений, таких как числа с плавающей точкой . Вместо более сложной в реализации десятичной системы (используемой в более ранней конструкции Чарльза Бэббиджа ), использование двоичной системы означало, что машины Цузе было проще в построении и потенциально более надежными, учитывая технологии, доступные в то время. [41] Z3 сам по себе не был универсальным компьютером, но мог быть расширен до Тьюринг-полного . [42] [43]

Следующий компьютер Цузе, Z4 , стал первым в мире коммерческим компьютером; после первоначальной задержки из-за Второй мировой войны, он был завершен в 1950 году и доставлен в ETH Zurich . [44] Компьютер был изготовлен собственной компанией Цузе, Zuse KG , которая была основана в 1941 году как первая компания с единственной целью разработки компьютеров в Берлине. [44]

Электронные лампы и цифровые электронные схемы

Чисто электронные элементы схемы вскоре заменили свои механические и электромеханические эквиваленты, в то же время, когда цифровые вычисления заменили аналоговые. Инженер Томми Флауэрс , работавший на исследовательской станции почтового отделения в Лондоне в 1930-х годах, начал исследовать возможное использование электроники для телефонной станции . Экспериментальное оборудование, которое он построил в 1934 году, было введено в эксплуатацию пять лет спустя, преобразуя часть телефонной сети в электронную систему обработки данных, используя тысячи электронных ламп . [34] В США Джон Винсент Атанасов и Клиффорд Э. Берри из Университета штата Айова разработали и испытали компьютер Атанасова–Берри (ABC) в 1942 году, [45] первый «автоматический электронный цифровой компьютер». [46] Эта конструкция также была полностью электронной и использовала около 300 электронных ламп с конденсаторами, закрепленными в механически вращающемся барабане для памяти. [47]

Компьютер Колосса видит двух женщин.
Colossus , первое электронное цифровое программируемое вычислительное устройство, использовалось для взлома немецких шифров во время Второй мировой войны. Здесь его можно увидеть в использовании в Блетчли-парке в 1943 году.

Во время Второй мировой войны британские дешифровальщики в Блетчли-Парке добились ряда успехов в расшифровке немецких военных сообщений. Немецкая шифровальная машина Enigma была впервые атакована с помощью электромеханических бомб , которыми часто управляли женщины. [48] [49] Чтобы взломать более сложную немецкую машину Lorenz SZ 40/42 , использовавшуюся для высокоуровневой армейской связи, Макс Ньюман и его коллеги поручили Флауэрсу построить Colossus . [47] Он провел одиннадцать месяцев с начала февраля 1943 года, проектируя и строя первый Colossus. [50] После функционального испытания в декабре 1943 года Colossus был отправлен в Блетчли-Парк, куда он был доставлен 18 января 1944 года [51] и взломал свое первое сообщение 5 февраля. [47]

Colossus был первым в мире электронным цифровым программируемым компьютером. [34] Он использовал большое количество вентилей (вакуумных ламп). Он имел ввод с бумажной ленты и мог быть настроен для выполнения различных булевых логических операций с его данными, но он не был полным по Тьюрингу. Было построено девять Mk II Colossi (Mk I был преобразован в Mk II, что в общей сложности дало десять машин). Colossus Mark I содержал 1500 термоионных вентилей (трубок), но Mark II с 2400 вентилями был в пять раз быстрее и проще в эксплуатации, чем Mark I, что значительно ускоряло процесс декодирования. [52] [53]

ENIAC был первым электронным устройством, полным по Тьюрингу, и выполнял расчеты баллистических траекторий для армии США .

ENIAC [54] (электронный числовой интегратор и компьютер) был первым электронным программируемым компьютером, построенным в США. Хотя ENIAC был похож на Colossus, он был намного быстрее, гибче и был полным по Тьюрингу. Как и в Colossus, «программа» на ENIAC определялась состояниями его соединительных кабелей и переключателей, что сильно отличалось от электронных машин с сохраненной программой , которые появились позже. После того, как программа была написана, ее нужно было механически установить в машину с ручной переустановкой разъемов и переключателей. Программистами ENIAC были шесть женщин, которых часто называли «девушками ENIAC». [55] [56]

Он сочетал в себе высокую скорость электроники с возможностью программирования для решения многих сложных задач. Он мог складывать или вычитать 5000 раз в секунду, в тысячу раз быстрее, чем любая другая машина. Он также имел модули для умножения, деления и извлечения квадратного корня. Высокоскоростная память была ограничена 20 словами (около 80 байт). Созданный под руководством Джона Мочли и Дж. Преспера Экерта в Университете Пенсильвании, ENIAC разрабатывался и конструировался с 1943 года до полной эксплуатации в конце 1945 года. Машина была огромной, весила 30 тонн, использовала 200 киловатт электроэнергии и содержала более 18 000 вакуумных ламп, 1500 реле и сотни тысяч резисторов, конденсаторов и индукторов. [57]

Современные компьютеры

Концепция современного компьютера

Принцип работы современного компьютера был предложен Аланом Тьюрингом в его основополагающей статье 1936 года [58] « О вычислимых числах ». Тьюринг предложил простое устройство, которое он назвал «Универсальной вычислительной машиной», и которое теперь известно как универсальная машина Тьюринга . Он доказал, что такая машина способна вычислять все, что вычислимо, выполняя инструкции (программу), сохраненные на ленте, что позволяет машине быть программируемой. Фундаментальная концепция дизайна Тьюринга — это сохраненная программа , где все инструкции для вычисления хранятся в памяти. Фон Нейман признал, что центральная концепция современного компьютера возникла благодаря этой статье. [59] Машины Тьюринга и по сей день являются центральным объектом изучения в теории вычислений . За исключением ограничений, налагаемых их конечными хранилищами памяти, современные компьютеры считаются полными по Тьюрингу , то есть они обладают способностью выполнения алгоритмов , эквивалентной универсальной машине Тьюринга.

Сохраненные программы

Три высокие стойки с электронными платами
Часть реконструированного Manchester Baby , первого электронного компьютера с хранимой в памяти программой.

Ранние вычислительные машины имели фиксированные программы. Изменение ее функции требовало перемонтажа и перестройки машины. [47] С предложением компьютера с хранимой программой это изменилось. Компьютер с хранимой программой по своей конструкции включает набор инструкций и может хранить в памяти набор инструкций ( программу ), которые детализируют вычисления . Теоретическая основа для компьютера с хранимой программой была изложена Аланом Тьюрингом в его статье 1936 года. В 1945 году Тьюринг присоединился к Национальной физической лаборатории и начал работу над разработкой электронного цифрового компьютера с хранимой программой. Его отчет 1945 года «Предлагаемый электронный калькулятор» был первой спецификацией для такого устройства. Джон фон Нейман из Университета Пенсильвании также распространил свой первый черновик отчета по EDVAC в 1945 году. [34]

Manchester Baby был первым в мире компьютером с хранимой программой . Он был построен в Университете Манчестера в Англии Фредериком К. Уильямсом , Томом Килберном и Джеффом Тутиллом и запустил свою первую программу 21 июня 1948 года. [60] Он был разработан как испытательный стенд для трубки Уильямса , первого цифрового запоминающего устройства с произвольным доступом . [61] Хотя в ретроспективе 1998 года компьютер был описан как «маленький и примитивный», он был первой рабочей машиной, содержащей все элементы, необходимые для современного электронного компьютера. [62] Как только Baby продемонстрировал осуществимость своей конструкции, в университете начался проект по его разработке в практически полезный компьютер, Manchester Mark 1 .

Mark 1, в свою очередь, быстро стал прототипом Ferranti Mark 1 , первого в мире коммерчески доступного компьютера общего назначения. [63] Созданный Ferranti , он был доставлен в Манчестерский университет в феврале 1951 года. По крайней мере семь из этих более поздних машин были доставлены между 1953 и 1957 годами, одна из них в лаборатории Shell в Амстердаме . [64] В октябре 1947 года директора британской кейтеринговой компании J. Lyons & Company решили принять активное участие в содействии коммерческой разработке компьютеров. Компьютер LEO I Лайонса, смоделированный по образцу Cambridge EDSAC 1949 года, вступил в эксплуатацию в апреле 1951 года [65] и выполнил первую в мире рутинную работу офисного компьютера .

Транзисторы

Биполярный транзистор (БПТ)

Концепция полевого транзистора была предложена Юлиусом Эдгаром Лилиенфельдом в 1925 году. Джон Бардин и Уолтер Браттейн , работая под руководством Уильяма Шокли в Bell Labs , построили первый рабочий транзистор , точечный транзистор , в 1947 году, за которым в 1948 году последовал биполярный транзистор Шокли. [66] [67] С 1955 года транзисторы заменили электронные лампы в компьютерных конструкциях, что привело к появлению «второго поколения» компьютеров. По сравнению с электронными лампами транзисторы имеют много преимуществ: они меньше и требуют меньше энергии, чем электронные лампы, поэтому выделяют меньше тепла. Электронные транзисторы были намного надежнее электронных ламп и имели более длительный, неопределенный срок службы. Транзисторные компьютеры могли содержать десятки тысяч двоичных логических схем в относительно компактном пространстве. Однако ранние транзисторы с плоскими переходами были относительно громоздкими устройствами, которые было трудно изготавливать в условиях массового производства , что ограничивало их применение рядом специализированных приложений. [68]

В Манчестерском университете группа под руководством Тома Килберна спроектировала и построила машину, используя недавно разработанные транзисторы вместо ламп. [69] Их первый транзисторный компьютер и первый в мире был запущен в эксплуатацию к 1953 году , а вторая версия была завершена там же в апреле 1955 года. Однако машина использовала лампы для генерации тактовых сигналов частотой 125 кГц и в схеме для чтения и записи на ее магнитном барабане памяти , поэтому это был не первый полностью транзисторный компьютер. Это отличие принадлежит Harwell CADET 1955 года, [70] построенному электронным подразделением Исследовательского центра атомной энергии в Харвелле . [70] [71]

MOSFET (МОП-транзистор), показывающий выводы затвора (G), корпуса (B), истока (S) и стока (D). Затвор отделен от корпуса изолирующим слоем (розовым).

Полевой транзистор металл-оксид-кремний ( MOSFET), также известный как МОП-транзистор, был изобретен Мохамедом М. Аталлой и Давоном Кангом в Bell Labs в 1959 году. [72] Это был первый по-настоящему компактный транзистор, который можно было миниатюризировать и производить массово для широкого спектра применений. [68] Благодаря своей высокой масштабируемости , [73] и гораздо более низкому энергопотреблению и более высокой плотности, чем у биполярных транзисторов, [74] МОП-транзистор сделал возможным создание интегральных схем высокой плотности . [75] [76] Помимо обработки данных, он также позволил практическое использование МОП-транзисторов в качестве элементов хранения ячеек памяти , что привело к разработке полупроводниковой МОП-памяти , которая заменила более раннюю память на магнитных сердечниках в компьютерах. МОП-транзистор привел к революции микрокомпьютеров , [77] и стал движущей силой компьютерной революции . [78] [79] МОП-транзистор является наиболее широко используемым транзистором в компьютерах, [80] [81] и является основным строительным блоком цифровой электроники . [82]

Интегральные схемы

Интегральные схемы обычно упаковываются в пластиковые, металлические или керамические корпуса для защиты ИС от повреждений и облегчения сборки.

Следующий большой шаг вперед в вычислительной мощности произошел с появлением интегральной схемы (ИС). Идея интегральной схемы была впервые задумана ученым-радиолокатором, работавшим в Королевском радиолокационном учреждении Министерства обороны , Джеффри У. А. Даммером . Даммер представил первое публичное описание интегральной схемы на Симпозиуме по прогрессу в качественных электронных компонентах в Вашингтоне, округ Колумбия , 7 мая 1952 года. [83]

Первые работающие ИС были изобретены Джеком Килби в Texas Instruments и Робертом Нойсом в Fairchild Semiconductor . [84] Килби записал свои первоначальные идеи относительно интегральной схемы в июле 1958 года, успешно продемонстрировав первый работающий интегрированный пример 12 сентября 1958 года. [85] В своей патентной заявке от 6 февраля 1959 года Килби описал свое новое устройство как «корпус из полупроводникового материала... в котором все компоненты электронной схемы полностью интегрированы». [86] [87] Однако изобретение Килби было гибридной интегральной схемой (гибридной ИС), а не монолитным чипом интегральной схемы (ИС). [88] ИС Килби имела внешние проводные соединения, что затрудняло ее массовое производство. [89]

Нойс также придумал собственную идею интегральной схемы на полгода позже Килби. [90] Изобретение Нойса было первым настоящим монолитным чипом ИС. [91] [89] Его чип решил множество практических проблем, которые не решал чип Килби. Произведенный в Fairchild Semiconductor, он был сделан из кремния , тогда как чип Килби был сделан из германия . Монолитная ИС Нойса была изготовлена ​​с использованием планарного процесса , разработанного его коллегой Жаном Эрни в начале 1959 года. В свою очередь, планарный процесс был основан на работе Мохамеда М. Аталлы по пассивации поверхности полупроводника диоксидом кремния в конце 1950-х годов. [92] [93] [94]

Современные монолитные ИС в основном представляют собой интегральные схемы МОП ( металл-оксид-полупроводник ), построенные на основе МОП-транзисторов (МОП-транзисторов). [95] Самой ранней экспериментальной МОП-ИС, которая была изготовлена, была 16-транзисторная микросхема, созданная Фредом Хейманом и Стивеном Хофштейном в RCA в 1962 году. [96] Позднее General Microelectronics представила первую коммерческую МОП-ИС в 1964 году, [97] разработанную Робертом Норманом. [96] После разработки МОП-транзистора с самосовмещенным затвором (кремниевым затвором) Робертом Кервином, Дональдом Кляйном и Джоном Сарасе в Bell Labs в 1967 году, первая МОП-ИС с кремниевым затвором и самосовмещенными затворами была разработана Федерико Фаггином в Fairchild Semiconductor в 1968 году. [98] С тех пор МОП-транзистор стал наиболее важным компонентом устройства в современных ИС. [95]

Фотография кристалла МОП-6502 , микропроцессора начала 1970-х годов, объединяющего 3500 транзисторов на одном кристалле.

Развитие интегральной схемы МОП привело к изобретению микропроцессора [ 99] [100] и возвестило о взрыве в коммерческом и личном использовании компьютеров. Хотя вопрос о том, какое именно устройство было первым микропроцессором , является спорным, отчасти из-за отсутствия согласия относительно точного определения термина «микропроцессор», в значительной степени бесспорно, что первым однокристальным микропроцессором был Intel 4004 [101], разработанный и реализованный Федерико Фаггином с его технологией МОП-ИС с кремниевым затвором [99] совместно с Тедом Хоффом , Масатоши Шимой и Стэнли Мазором в Intel . [b] [103] В начале 1970-х годов технология МОП-ИС позволила интегрировать более 10 000 транзисторов на одном кристалле. [76]

Системы на кристалле (SoC) — это полноценные компьютеры на микросхеме (или чипе) размером с монету. [104] Они могут иметь или не иметь интегрированную оперативную память и флэш-память . Если оперативная память не интегрирована, она обычно размещается непосредственно над (известно как «Пакет на корпусе ») или под (на противоположной стороне печатной платы ) SoC, а флэш-память обычно размещается прямо рядом с SoC, все это делается для повышения скорости передачи данных, поскольку сигналам данных не приходится проходить большие расстояния. Со времен ENIAC в 1945 году компьютеры значительно продвинулись вперед, причем современные SoC (например, Snapdragon 865) имеют размер монеты, но при этом в сотни тысяч раз мощнее ENIAC, интегрируя миллиарды транзисторов и потребляя всего несколько ватт энергии.

Мобильные компьютеры

Первые мобильные компьютеры были тяжелыми и работали от сети. 50-фунтовый (23 кг) IBM 5100 был одним из первых примеров. Более поздние портативные компьютеры, такие как Osborne 1 и Compaq Portable , были значительно легче, но все еще нуждались в подключении к сети. Первые ноутбуки, такие как Grid Compass , устранили это требование, включив батареи, — и с продолжающейся миниатюризацией вычислительных ресурсов и достижениями в области портативных батарей, портативные компьютеры стали пользоваться популярностью в 2000-х годах. [105] Те же разработки позволили производителям интегрировать вычислительные ресурсы в сотовые мобильные телефоны к началу 2000-х годов.

Эти смартфоны и планшеты работают на различных операционных системах и недавно стали доминирующим вычислительным устройством на рынке. [106] Они работают на базе систем на кристалле (SoC), которые представляют собой полноценные компьютеры на микрочипе размером с монету. [104]

Типы

Компьютеры можно классифицировать различными способами, включая:

По архитектуре

По размеру, форм-фактору и назначению

Аппаратное обеспечение

Видео, демонстрирующее стандартные компоненты «тонкого» компьютера

Термин « аппаратное обеспечение» охватывает все те части компьютера, которые являются осязаемыми физическими объектами. Схемы , компьютерные чипы, графические карты, звуковые карты, память (ОЗУ), материнская плата, дисплеи, блоки питания, кабели, клавиатуры, принтеры и устройства ввода «мыши» — все это аппаратное обеспечение.

История вычислительной техники

Другие темы по оборудованию

Компьютер общего назначения состоит из четырех основных компонентов: арифметико-логического устройства (АЛУ), блока управления , памяти и устройств ввода и вывода (совместно называемых I/O). Эти части соединены между собой шинами , часто состоящими из групп проводов . Внутри каждой из этих частей находятся тысячи или триллионы небольших электрических цепей , которые можно включать и выключать с помощью электронного переключателя . Каждая цепь представляет собой бит (двоичную цифру) информации, так что когда цепь включена, она представляет собой «1», а когда выключена, она представляет собой «0» (в положительном логическом представлении). Цепи организованы в логические вентили , так что одна или несколько цепей могут управлять состоянием одной или нескольких других цепей.

Устройства ввода

Когда необработанные данные отправляются на компьютер с помощью устройств ввода, данные обрабатываются и отправляются на устройства вывода. Устройства ввода могут быть ручными или автоматизированными. Процесс обработки в основном регулируется центральным процессором. Вот некоторые примеры устройств ввода:

Устройства вывода

Средства, посредством которых компьютер выдает выходные данные, известны как устройства вывода. Вот некоторые примеры устройств вывода:

Блок управления

Диаграмма, показывающая, как конкретная инструкция архитектуры MIPS будет декодироваться системой управления

Блок управления (часто называемый системой управления или центральным контроллером) управляет различными компонентами компьютера; он считывает и интерпретирует (декодирует) инструкции программы, преобразуя их в сигналы управления, которые активируют другие части компьютера. [d] Системы управления в современных компьютерах могут изменять порядок выполнения некоторых инструкций для повышения производительности.

Ключевым компонентом, общим для всех процессоров, является счетчик программ , специальная ячейка памяти ( регистр ), которая отслеживает, из какой ячейки памяти должна быть считана следующая инструкция. [e]

Функция системы управления выглядит следующим образом — это упрощенное описание, и некоторые из этих шагов могут выполняться одновременно или в разном порядке в зависимости от типа ЦП:

  1. Считайте код следующей инструкции из ячейки, указанной счетчиком программ.
  2. Расшифруйте числовой код инструкции в набор команд или сигналов для каждой из других систем.
  3. Увеличьте счетчик программ, чтобы он указывал на следующую инструкцию.
  4. Прочитать любые данные, требуемые инструкцией, из ячеек памяти (или, возможно, из устройства ввода). Местоположение этих требуемых данных обычно хранится в коде инструкции.
  5. Предоставьте необходимые данные в АЛУ или регистр.
  6. Если для выполнения инструкции требуется АЛУ или специализированное оборудование, дайте указание оборудованию выполнить запрошенную операцию.
  7. Запишите результат из АЛУ обратно в ячейку памяти, в регистр или, возможно, на выходное устройство.
  8. Вернитесь к шагу (1).

Поскольку счетчик программ (концептуально) является просто еще одним набором ячеек памяти, его можно изменить с помощью вычислений, выполняемых в АЛУ. Добавление 100 к счетчику программ приведет к тому, что следующая инструкция будет считана с места, расположенного на 100 позиций дальше по программе. Инструкции, которые изменяют счетчик программ, часто называются «прыжками» и допускают циклы (инструкции, которые повторяются компьютером) и часто условное выполнение инструкций (оба примера потока управления ).

Последовательность операций, которую выполняет блок управления для обработки инструкции, сама по себе похожа на короткую компьютерную программу, и действительно, в некоторых более сложных конструкциях ЦП есть еще один, еще меньший компьютер, называемый микросеквенсором , который запускает программу микрокода , вызывающую все эти события.

Центральный процессор (ЦП)

Блок управления, АЛУ и регистры вместе известны как центральный процессор (ЦП). Ранние ЦП состояли из множества отдельных компонентов. С 1970-х годов ЦП обычно строились на основе одной интегральной схемы МОП, называемой микропроцессором .

Арифметико-логическое устройство (АЛУ)

ALU может выполнять два класса операций: арифметические и логические. [111] Набор арифметических операций, которые поддерживает конкретное ALU, может быть ограничен сложением и вычитанием или может включать умножение, деление, тригонометрические функции, такие как синус, косинус и т. д., и квадратные корни . Некоторые из них могут работать только с целыми числами ( integer ), в то время как другие используют плавающую точку для представления действительных чисел , хотя и с ограниченной точностью. Однако любой компьютер, который способен выполнять только самые простые операции, может быть запрограммирован на разбиение более сложных операций на простые шаги, которые он может выполнить. Следовательно, любой компьютер может быть запрограммирован на выполнение любой арифметической операции, хотя это займет больше времени, если его ALU напрямую не поддерживает эту операцию. ALU также может сравнивать числа и возвращать булевы значения истинности (истина или ложь) в зависимости от того, равно ли одно другому, больше или меньше другого («64 больше 65?»). Логические операции включают в себя булеву логику : AND , OR , XOR и NOT . Они могут быть полезны для создания сложных условных операторов и обработки булевой логики .

Суперскалярные компьютеры могут содержать несколько АЛУ, что позволяет им обрабатывать несколько инструкций одновременно. [112] Графические процессоры и компьютеры с функциями SIMD и MIMD часто содержат АЛУ, которые могут выполнять арифметические операции с векторами и матрицами .

Память

Память на магнитных сердечниках (использующая магнитные сердечники ) была основным типом компьютерной памяти в 1960-х годах, пока ее не заменила полупроводниковая память (использующая МОП- ячейки памяти).

Память компьютера можно рассматривать как список ячеек, в которые можно помещать или считывать числа. Каждая ячейка имеет пронумерованный «адрес» и может хранить одно число. Компьютеру можно дать указание «поместить число 123 в ячейку с номером 1357» или «прибавить число, которое находится в ячейке 1357, к числу, которое находится в ячейке 2468, и поместить ответ в ячейку 1595». Информация, хранящаяся в памяти, может представлять собой практически все. Буквы, числа, даже компьютерные инструкции могут быть помещены в память с одинаковой легкостью. Поскольку процессор не различает различные типы информации, ответственность за придание значения тому, что память видит как не что иное, как ряд чисел, лежит на программном обеспечении.

Почти во всех современных компьютерах каждая ячейка памяти настроена на хранение двоичных чисел группами по восемь бит (называемых байтом ). Каждый байт способен представлять 256 различных чисел (2 8 = 256); либо от 0 до 255, либо от −128 до +127. Для хранения больших чисел могут использоваться несколько последовательных байтов (обычно два, четыре или восемь). Когда требуются отрицательные числа, они обычно хранятся в виде дополнительного кода. Возможны и другие варианты, но обычно они не встречаются за пределами специализированных приложений или исторических контекстов. Компьютер может хранить в памяти любую информацию, если ее можно представить в числовом виде. Современные компьютеры имеют миллиарды или даже триллионы байтов памяти.

Центральный процессор содержит специальный набор ячеек памяти, называемых регистрами , которые могут считываться и записываться гораздо быстрее, чем основная область памяти. Обычно имеется от двух до ста регистров в зависимости от типа центрального процессора. Регистры используются для наиболее часто используемых элементов данных, чтобы избежать необходимости доступа к основной памяти каждый раз, когда требуются данные. Поскольку данные постоянно обрабатываются, уменьшение необходимости доступа к основной памяти (которая часто медленная по сравнению с АЛУ и блоками управления) значительно увеличивает скорость компьютера.

Основная память компьютера бывает двух основных видов:

ОЗУ можно считывать и записывать в любое время по команде ЦП, но ПЗУ предварительно загружено данными и программным обеспечением, которые никогда не изменяются, поэтому ЦП может только считывать из него. ПЗУ обычно используется для хранения начальных инструкций по запуску компьютера. Как правило, содержимое ОЗУ стирается при отключении питания компьютера, но ПЗУ сохраняет свои данные неограниченно долго. В ПК ПЗУ содержит специализированную программу, называемую BIOS, которая управляет загрузкой операционной системы компьютера с жесткого диска в ОЗУ при каждом включении или сбросе компьютера. Во встроенных компьютерах , которые часто не имеют дисководов, все необходимое программное обеспечение может храниться в ПЗУ. Программное обеспечение, хранящееся в ПЗУ, часто называют прошивкой , потому что оно теоретически больше похоже на оборудование, чем на программное обеспечение. Флэш-память стирает различие между ПЗУ и ОЗУ, поскольку она сохраняет свои данные при выключении, но также является перезаписываемой. Однако она, как правило, намного медленнее обычных ПЗУ и ОЗУ, поэтому ее использование ограничено приложениями, где высокая скорость не нужна. [f]

В более сложных компьютерах может быть одна или несколько кэш-памятей RAM , которые медленнее регистров, но быстрее основной памяти. Обычно компьютеры с таким типом кэша спроектированы так, чтобы автоматически перемещать часто необходимые данные в кэш, часто без необходимости какого-либо вмешательства со стороны программиста.

Ввод/вывод (I/O)

Жесткие диски — это распространенные устройства хранения данных, используемые в компьютерах.

Ввод-вывод — это средство, с помощью которого компьютер обменивается информацией с внешним миром. [114] Устройства, которые обеспечивают ввод или вывод в компьютер, называются периферийными устройствами . [115] На типичном персональном компьютере периферийные устройства включают в себя устройства ввода, такие как клавиатура и мышь , и устройства вывода, такие как дисплей и принтер . Жесткие диски , дисководы и оптические дисководы служат как устройствами ввода, так и устройствами вывода. Компьютерные сети — это еще одна форма ввода-вывода. Устройства ввода-вывода часто сами по себе являются сложными компьютерами со своим собственным ЦП и памятью. Графический процессор может содержать пятьдесят или более крошечных компьютеров, которые выполняют вычисления, необходимые для отображения 3D-графики . [ требуется цитата ] Современные настольные компьютеры содержат множество меньших компьютеров, которые помогают основному ЦП выполнять ввод-вывод. Плоский экран дисплея эпохи 2016 года содержит собственную компьютерную схему.

Многозадачность

В то время как компьютер можно рассматривать как выполняющий одну гигантскую программу, хранящуюся в его основной памяти, в некоторых системах необходимо создать видимость выполнения нескольких программ одновременно. Это достигается многозадачностью, т. е. быстрым переключением компьютера между выполнением каждой программы по очереди. [116] Одним из способов, с помощью которого это делается, является специальный сигнал, называемый прерыванием , который может периодически заставлять компьютер прекращать выполнение инструкций там, где он был, и делать что-то другое вместо этого. Запоминая, где он выполнялся до прерывания, компьютер может вернуться к этой задаче позже. Если несколько программ работают «одновременно», то генератор прерываний может вызывать несколько сотен прерываний в секунду, вызывая переключение программ каждый раз. Поскольку современные компьютеры обычно выполняют инструкции на несколько порядков быстрее, чем человеческое восприятие, может показаться, что одновременно работают многие программы, хотя в любой данный момент времени выполняется только одна. Этот метод многозадачности иногда называют «разделением времени», поскольку каждой программе поочередно выделяется «отрезок» времени. [117]

До эпохи недорогих компьютеров основным применением многозадачности было предоставление возможности многим людям совместно использовать один и тот же компьютер. Казалось бы, многозадачность заставит компьютер, переключающийся между несколькими программами, работать медленнее, прямо пропорционально количеству запущенных на нем программ, но большинство программ тратят большую часть времени на ожидание, пока медленные устройства ввода/вывода завершат свои задачи. Если программа ждет, когда пользователь щелкнет мышью или нажмет клавишу на клавиатуре, то она не будет тратить «временной отрезок», пока не произойдет событие, которого она ждет. Это освобождает время для выполнения других программ, так что многие программы могут быть запущены одновременно без неприемлемой потери скорости.

Многопроцессорность

Крей разработал множество суперкомпьютеров, активно использовавших многопроцессорную обработку.

Некоторые компьютеры спроектированы так, чтобы распределять свою работу по нескольким ЦП в многопроцессорной конфигурации, технология, которая когда-то использовалась только в больших и мощных машинах, таких как суперкомпьютеры , мэйнфреймы и серверы . Многопроцессорные и многоядерные (несколько ЦП на одной интегральной схеме) персональные и ноутбуки теперь широко доступны и в результате все чаще используются на рынках нижнего ценового диапазона.

Суперкомпьютеры в частности часто имеют весьма уникальные архитектуры, которые значительно отличаются от базовой архитектуры хранимых программ и от компьютеров общего назначения. [g] Они часто имеют тысячи процессоров, настраиваемые высокоскоростные соединения и специализированное вычислительное оборудование. Такие конструкции, как правило, полезны только для специализированных задач из-за большого масштаба организации программы, необходимой для одновременного использования большинства доступных ресурсов. Суперкомпьютеры обычно находят применение в крупномасштабном моделировании , графическом рендеринге и криптографических приложениях, а также в других так называемых « смущающе параллельных » задачах.

Программное обеспечение

Программное обеспечение относится к частям компьютера, которые не имеют материальной формы, таким как программы, данные, протоколы и т. д. Программное обеспечение — это часть компьютерной системы, которая состоит из закодированной информации или компьютерных инструкций, в отличие от физического оборудования , из которого построена система. Компьютерное программное обеспечение включает в себя компьютерные программы, библиотеки и связанные с ними неисполняемые данные , такие как онлайн-документация или цифровые носители . Его часто делят на системное программное обеспечение и прикладное программное обеспечение . Компьютерное оборудование и программное обеспечение требуют друг друга, и ни одно из них не может быть реалистично использовано само по себе. Когда программное обеспечение хранится в оборудовании, которое не может быть легко изменено, например, в BIOS ROM в IBM PC-совместимом компьютере, его иногда называют «прошивкой».

Языки

Существуют тысячи различных языков программирования — некоторые из них предназначены для общего назначения, другие полезны только для узкоспециализированных приложений.

Программы

Определяющей чертой современных компьютеров, которая отличает их от всех других машин, является то, что их можно программировать . То есть, компьютеру можно дать некоторый тип инструкций ( программу ), и он их обработает. Современные компьютеры, основанные на архитектуре фон Неймана, часто имеют машинный код в форме императивного языка программирования . С практической точки зрения компьютерная программа может состоять всего из нескольких инструкций или охватывать многие миллионы инструкций, как , например, программы для текстовых процессоров и веб-браузеров . Типичный современный компьютер может выполнять миллиарды инструкций в секунду ( гигафлопс ) и редко ошибается в течение многих лет работы. Написание больших компьютерных программ, состоящих из нескольких миллионов инструкций, может занять у команд программистов годы , и из-за сложности задачи почти наверняка содержат ошибки.

Архитектура хранимой программы

Копия Manchester Baby , первого в мире электронного компьютера с хранимой в памяти программой , в Музее науки и промышленности в Манчестере, Англия.

Этот раздел применим к большинству распространенных компьютеров на базе ОЗУ .

В большинстве случаев компьютерные инструкции просты: сложить одно число с другим, переместить некоторые данные из одного места в другое, отправить сообщение на какое-то внешнее устройство и т. д. Эти инструкции считываются из памяти компьютера и обычно выполняются ( выполняются ) в том порядке, в котором они были даны. Однако обычно существуют специализированные инструкции, сообщающие компьютеру о необходимости перейти вперед или назад в какое-то другое место программы и продолжить выполнение оттуда. Они называются инструкциями «перехода» (или ветвлениями ). Кроме того, инструкции перехода могут выполняться условно, так что в зависимости от результата какого-то предыдущего вычисления или какого-то внешнего события могут использоваться различные последовательности инструкций. Многие компьютеры напрямую поддерживают подпрограммы , предоставляя тип перехода, который «запоминает» место, из которого он перешел, и другую инструкцию для возврата к инструкции, следующей за этой инструкцией перехода.

Выполнение программы можно сравнить с чтением книги. Хотя человек обычно читает каждое слово и строку последовательно, иногда он может вернуться к более раннему месту в тексте или пропустить разделы, которые не представляют интереса. Аналогично, компьютер может иногда возвращаться и повторять инструкции в каком-то разделе программы снова и снова, пока не будет выполнено какое-то внутреннее условие. Это называется потоком управления внутри программы, и это то, что позволяет компьютеру многократно выполнять задачи без вмешательства человека.

Для сравнения, человек, использующий карманный калькулятор, может выполнить базовую арифметическую операцию, например, сложение двух чисел, всего несколькими нажатиями кнопок. Но чтобы сложить все числа от 1 до 1000, потребуются тысячи нажатий кнопок и много времени, с почти наверняка сделанной ошибкой. С другой стороны, компьютер можно запрограммировать на это всего несколькими простыми инструкциями. Следующий пример написан на языке ассемблера MIPS :

 begin: addi $8 , $0 , 0 # инициализируем сумму 0 addi $9 , $0 , 1 # устанавливаем первое число для add = 1 loop: slti $10 , $9 , 1000 # проверяем, меньше ли число 1000 beq $10 , $0 , finish # если нечетное число больше n, то выходим add $8 , $8 , $9 # обновляем сумму addi $9 , $9 , 1 # получаем следующее число j loop # повторяем процесс суммирования finish: add $2 , $8 , $0 # помещаем сумму в выходной регистр                                        

После того, как вы дадите команду запустить эту программу, компьютер выполнит повторяющуюся задачу сложения без дальнейшего вмешательства человека. Он почти никогда не сделает ошибку, и современный ПК может выполнить задачу за доли секунды.

Машинный код

В большинстве компьютеров отдельные инструкции хранятся в виде машинного кода, при этом каждой инструкции присваивается уникальный номер (ее код операции или сокращенно код операции ). Команда сложения двух чисел будет иметь один код операции; команда их умножения будет иметь другой код операции и так далее. Простейшие компьютеры способны выполнять любую из нескольких различных инструкций; более сложные компьютеры имеют несколько сотен на выбор, каждая из которых имеет уникальный числовой код. Поскольку память компьютера способна хранить числа, она также может хранить коды инструкций. Это приводит к важному факту, что целые программы (которые являются просто списками этих инструкций) могут быть представлены в виде списков чисел и сами могут обрабатываться внутри компьютера так же, как и числовые данные. Фундаментальная концепция хранения программ в памяти компьютера вместе с данными, с которыми они работают, является сутью архитектуры фон Неймана, или архитектуры хранимых программ. [119] [120] В некоторых случаях компьютер может хранить часть или всю свою программу в памяти, которая хранится отдельно от данных, с которыми он работает. Это называется архитектурой Гарварда в честь компьютера Harvard Mark I. Современные компьютеры фон Неймана демонстрируют некоторые черты архитектуры Гарварда в своих конструкциях, например, в кэшах ЦП .

Хотя можно писать компьютерные программы в виде длинных списков чисел ( машинный язык ) и хотя эта техника использовалась во многих ранних компьютерах, [h] на практике это чрезвычайно утомительно и потенциально подвержено ошибкам, особенно для сложных программ. Вместо этого каждой базовой инструкции можно дать короткое имя, указывающее на ее функцию и легко запоминающееся — мнемонику, такую ​​как ADD, SUB, MULT или JUMP. Эти мнемоники в совокупности известны как язык ассемблера компьютера . Преобразование программ, написанных на языке ассемблера, в то, что компьютер может фактически понять (машинный язык), обычно выполняется компьютерной программой, называемой ассемблером.

Перфокарта 1970-х годов, содержащая одну строку из программы Fortran . На карте написано: "Z(1) = Y + W(1)" и для целей идентификации обозначена как "PROJ039".

Язык программирования

Языки программирования предоставляют различные способы задания программ для запуска компьютеров. В отличие от естественных языков , языки программирования разработаны так, чтобы не допускать двусмысленности и быть краткими. Это чисто письменные языки, и их часто трудно читать вслух. Обычно они либо транслируются в машинный код компилятором или ассемблером перед запуском, либо транслируются непосредственно во время выполнения интерпретатором . Иногда программы выполняются гибридным методом двух методов.

Низкоуровневые языки

Машинные языки и языки ассемблера, которые их представляют (совместно называемые языками программирования низкого уровня ), как правило, уникальны для конкретной архитектуры центрального процессора компьютера ( ЦП ). Например, ЦП архитектуры ARM (такой, который можно найти в смартфоне или портативной видеоигре ) не может понимать машинный язык ЦП x86 , который может быть в ПК . [i] Исторически было создано и широко использовалось значительное количество других архитектур ЦП, в частности, MOS Technology 6502 и 6510 в дополнение к Zilog Z80.

Языки высокого уровня

Хотя писать длинные программы на языке ассемблера значительно проще, чем на машинном языке, писать длинные программы на нем часто сложно и также подвержено ошибкам. Поэтому большинство практических программ пишутся на более абстрактных языках программирования высокого уровня , которые способны более удобно выражать потребности программиста ( и тем самым помогают уменьшить ошибки программиста). Языки высокого уровня обычно «компилируются» в машинный язык (или иногда в язык ассемблера, а затем в машинный язык) с помощью другой компьютерной программы, называемой компилятором . [ j] Языки высокого уровня меньше связаны с работой целевого компьютера, чем язык ассемблера, и больше связаны с языком и структурой проблемы(задач), которые должна решить конечная программа. Поэтому часто можно использовать разные компиляторы для перевода одной и той же программы на языке высокого уровня на машинный язык многих различных типов компьютеров. Это часть средств, с помощью которых программное обеспечение, такое как видеоигры, может быть сделано доступным для различных компьютерных архитектур, таких как персональные компьютеры и различные игровые консоли .

Разработка программы

Проектирование небольших программ относительно простое и включает анализ проблемы, сбор входных данных, использование программных конструкций в языках, разработку или использование установленных процедур и алгоритмов, предоставление данных для выходных устройств и решений проблемы по мере применимости. [121] По мере того, как проблемы становятся больше и сложнее, встречаются такие функции, как подпрограммы, модули, формальная документация и новые парадигмы, такие как объектно-ориентированное программирование. [122] Большие программы, включающие тысячи строк кода и более, требуют формальных программных методологий. [123] Задача разработки больших программных систем представляет собой значительную интеллектуальную проблему. [124] Производство программного обеспечения с приемлемо высокой надежностью в рамках предсказуемого графика и бюджета исторически было сложным; [125] академическая и профессиональная дисциплина программной инженерии концентрируется именно на этой проблеме. [126]

Ошибки

Фактически первый компьютерный баг — моль, обнаруженная на реле компьютера Harvard Mark II.

Ошибки в компьютерных программах называются « багами ». Они могут быть безвредными и не влиять на полезность программы или иметь лишь незначительные последствия. Однако в некоторых случаях они могут привести к « зависанию » программы или всей системы, становясь невосприимчивыми к вводу данных, такому как щелчки мыши или нажатия клавиш, к полному отказу или сбою . [127] В противном случае безвредные ошибки иногда могут быть использованы в злонамеренных целях недобросовестным пользователем, пишущим эксплойт , код, предназначенный для использования ошибки и нарушения правильной работы компьютера. Ошибки обычно не являются ошибкой компьютера. Поскольку компьютеры просто выполняют данные им инструкции, ошибки почти всегда являются результатом ошибки программиста или упущения, допущенного при проектировании программы. [k] Адмирал Грейс Хоппер , американский учёный-компьютерщик и разработчик первого компилятора , считается первой, кто использовал термин «баги» в вычислительной технике после того, как в сентябре 1947 года была обнаружена дохлая моль, закоротившая реле в компьютере Harvard Mark II. [128]

Сеть и Интернет

Визуализация части маршрутов в Интернете

Компьютеры использовались для координации информации между несколькими локациями с 1950-х годов. Система SAGE армии США была первым крупномасштабным примером такой системы, которая привела к появлению ряда специализированных коммерческих систем, таких как Sabre . [129] В 1970-х годах компьютерные инженеры в научно-исследовательских институтах по всем Соединенным Штатам начали связывать свои компьютеры вместе с помощью телекоммуникационных технологий. Усилия финансировались ARPA (теперь DARPA ), и получившаяся компьютерная сеть была названа ARPANET . [130] Технологии, которые сделали возможным Arpanet, распространялись и развивались.

Со временем сеть распространилась за пределы академических и военных учреждений и стала известна как Интернет. Появление сетей включало переопределение природы и границ компьютера. Компьютерные операционные системы и приложения были модифицированы, чтобы включить возможность определять и получать доступ к ресурсам других компьютеров в сети, таким как периферийные устройства, сохраненная информация и тому подобное, как расширения ресурсов отдельного компьютера. Первоначально эти возможности были доступны в основном людям, работающим в высокотехнологичных средах, но в 1990-х годах распространение таких приложений, как электронная почта и Всемирная паутина , в сочетании с развитием дешевых, быстрых сетевых технологий, таких как Ethernet и ADSL , привело к тому, что компьютерные сети стали практически повсеместными. Фактически, количество компьютеров, объединенных в сеть, растет феноменально. Очень большая часть персональных компьютеров регулярно подключается к Интернету для общения и получения информации. «Беспроводные» сети, часто использующие сети мобильных телефонов, означают, что сети становятся все более повсеместными даже в мобильных вычислительных средах.

Нетрадиционные компьютеры

Компьютер не обязательно должен быть электронным , или иметь процессор , оперативную память или даже жесткий диск . В то время как популярное использование слова «компьютер» является синонимом персонального электронного компьютера, [l] типичное современное определение компьютера таково: « Устройство, которое вычисляет , в частности, программируемая [обычно] электронная машина, которая выполняет высокоскоростные математические или логические операции или которая собирает, хранит, сопоставляет или иным образом обрабатывает информацию». [131] Согласно этому определению, любое устройство, которое обрабатывает информацию, квалифицируется как компьютер.

Будущее

Ведутся активные исследования по созданию неклассических компьютеров из многих перспективных новых типов технологий, таких как оптические компьютеры , ДНК-компьютеры , нейронные компьютеры и квантовые компьютеры . Большинство компьютеров универсальны и способны вычислять любую вычислимую функцию , и ограничены только объемом памяти и скоростью работы. Однако различные конструкции компьютеров могут обеспечивать совершенно разную производительность для конкретных задач; например, квантовые компьютеры потенциально могут очень быстро взломать некоторые современные алгоритмы шифрования (с помощью квантовой факторизации ).

Парадигмы компьютерной архитектуры

Существует много типов компьютерных архитектур :

Из всех этих абстрактных машин квантовый компьютер является наиболее перспективным для революции в вычислениях. [132] Логические вентили являются общей абстракцией, которая может применяться к большинству из вышеперечисленных цифровых или аналоговых парадигм. Способность хранить и выполнять списки инструкций, называемых программами , делает компьютеры чрезвычайно универсальными, отличая их от калькуляторов . Тезис Чёрча-Тьюринга является математическим утверждением этой универсальности: любой компьютер с минимальными возможностями (будучи полным по Тьюрингу) , в принципе, способен выполнять те же задачи, что и любой другой компьютер. Следовательно, любой тип компьютера ( нетбук , суперкомпьютер , клеточный автомат и т. д.) способен выполнять те же вычислительные задачи, имея достаточно времени и емкости хранилища.

Искусственный интеллект

Компьютер будет решать проблемы именно так, как он запрограммирован, независимо от эффективности, альтернативных решений, возможных сокращений или возможных ошибок в коде. Компьютерные программы, которые обучаются и адаптируются, являются частью развивающейся области искусственного интеллекта и машинного обучения . Продукты на основе искусственного интеллекта обычно делятся на две основные категории: системы на основе правил и системы распознавания образов . Системы на основе правил пытаются представлять правила, используемые экспертами-людьми, и, как правило, дороги в разработке. Системы на основе образов используют данные о проблеме для выработки выводов. Примерами систем на основе образов являются распознавание голоса , распознавание шрифтов, перевод и развивающаяся область онлайн-маркетинга.

Профессии и организации

По мере того, как использование компьютеров распространяется по всему обществу, появляется все больше профессий, связанных с компьютерами.

Потребность компьютеров в совместной работе и обмене информацией породила потребность в создании множества организаций, клубов и обществ по стандартизации как формального, так и неформального характера.

Смотрите также

Примечания

  1. ^ Согласно Schmandt-Besserat 1981, эти глиняные контейнеры содержали жетоны, общая сумма которых была количеством перемещаемых объектов. Таким образом, контейнеры служили чем-то вроде коносамента или бухгалтерской книги. Чтобы избежать вскрытия контейнеров, во-первых, глиняные оттиски жетонов были помещены на внешнюю сторону контейнеров для подсчета; формы оттисков были абстрагированы в стилизованные знаки; наконец, абстрактные знаки систематически использовались в качестве цифр; эти цифры были окончательно формализованы как числа. В конце концов, отметки
    на внешней стороне контейнеров были всем, что было необходимо для передачи подсчета, и глиняные контейнеры превратились в глиняные таблички с отметками для подсчета. Schmandt-Besserat 1999 оценивает, что это заняло 4000 лет.
  2. ^ Кристалл Intel 4004 (1971) имел площадь 12 мм 2 и состоял из 2300 транзисторов; для сравнения, Pentium Pro имел площадь 306 мм 2 и состоял из 5,5 миллионов транзисторов. [102]
  3. ^ Большинство основных архитектур 64-битных наборов инструкций являются расширениями более ранних разработок. Все архитектуры, перечисленные в этой таблице, за исключением Alpha, существовали в 32-битных формах до того, как были представлены их 64-битные воплощения.
  4. ^ Роль блока управления в интерпретации инструкций несколько различалась в прошлом. Хотя блок управления несет исключительную ответственность за интерпретацию инструкций в большинстве современных компьютеров, это не всегда так. Некоторые компьютеры имеют инструкции, которые частично интерпретируются блоком управления, а дальнейшая интерпретация выполняется другим устройством. Например, EDVAC , один из самых ранних компьютеров с хранимой программой, использовал центральный блок управления, который интерпретировал только четыре инструкции. Все инструкции, связанные с арифметикой, передавались в его арифметический блок и далее декодировались там.
  5. ^ Инструкции часто занимают более одного адреса памяти, поэтому счетчик программ обычно увеличивается на количество ячеек памяти, необходимых для хранения одной инструкции.
  6. ^ Флэш-память также может быть перезаписана лишь ограниченное количество раз до ее износа, что делает ее менее пригодной для интенсивного использования с произвольным доступом. [113]
  7. ^ Однако также очень распространено создание суперкомпьютеров из множества единиц дешевого товарного оборудования; обычно это отдельные компьютеры, соединенные сетями. Эти так называемые компьютерные кластеры часто могут обеспечить производительность суперкомпьютера по гораздо более низкой цене, чем индивидуальные проекты. Хотя индивидуальные архитектуры все еще используются для большинства самых мощных суперкомпьютеров, в последние годы наблюдается распространение кластерных компьютеров. [118]
  8. ^ Даже некоторые более поздние компьютеры обычно программировались непосредственно в машинном коде. Некоторые мини-компьютеры , такие как DEC PDP-8, можно было программировать непосредственно с панели переключателей. Однако этот метод обычно использовался только как часть процесса загрузки . Большинство современных компьютеров загружаются полностью автоматически, считывая загрузочную программу из некоторой энергонезависимой памяти .
  9. ^ Однако иногда существует некоторая форма совместимости машинного языка между различными компьютерами. Микропроцессор, совместимый с x86-64 , такой как AMD Athlon 64, способен запускать большинство тех же программ, что и микропроцессор Intel Core 2 , а также программы, разработанные для более ранних микропроцессоров, таких как Intel Pentium и Intel 80486. Это контрастирует с очень ранними коммерческими компьютерами, которые часто были единственными в своем роде и совершенно несовместимыми с другими компьютерами.
  10. ^ Языки высокого уровня также часто интерпретируются, а не компилируются. Интерпретируемые языки транслируются в машинный код на лету, во время работы, другой программой, называемой интерпретатором .
  11. ^ Не всегда верно, что ошибки возникают исключительно из-за недосмотра программиста. Компьютерное оборудование может выйти из строя или само по себе иметь фундаментальную проблему, которая приводит к неожиданным результатам в определенных ситуациях. Например, ошибка Pentium FDIV заставила некоторые микропроцессоры Intel в начале 1990-х годов выдавать неточные результаты для определенных операций деления с плавающей точкой . Это было вызвано недостатком в конструкции микропроцессора и привело к частичному отзыву затронутых устройств.
  12. ^ Согласно Краткому Оксфордскому словарю английского языка (6-е изд., 2007 г.), слово « компьютер» возникло в середине XVII века и обозначало «человека, который производит вычисления; в частности, человека, работающего для этого в обсерватории и т. д.».

Ссылки

  1. ^ Эванс 2018, стр. 23.
  2. ^ Смит 2013, стр. 6.
  3. ^ "компьютер (сущ.)". Онлайн-словарь этимологии . Архивировано из оригинала 16 ноября 2016 года . Получено 19 августа 2021 года .
  4. ^ Робсон, Элеанор (2008). Математика в Древнем Ираке . Princeton University Press. стр. 5. ISBN 978-0-691-09182-2.: исчисления использовались в Ираке для примитивных систем учета уже в 3200–3000 гг. до н. э., с товарно-специфическими системами представления счета. Сбалансированный учет использовался в 3000–2350 гг. до н. э., а шестидесятеричная система счисления использовалась в 2350–2000 гг. до н. э.
  5. ^ Флегг, Грэм. (1989). Числа сквозь века . Хаундмиллс, Бейзингсток, Хэмпшир: Macmillan Education. ISBN 0-333-49130-0. OCLC  24660570.
  6. ^ Проект исследования антикитерского механизма. Архивировано 28 апреля 2008 г. на Wayback Machine , Проект исследования антикитерского механизма. Получено 1 июля 2007 г.
  7. Марчант, Джо (1 ноября 2006 г.). «В поисках утраченного времени». Nature . 444 (7119): 534–538. Bibcode :2006Natur.444..534M. doi : 10.1038/444534a . ISSN  0028-0836. PMID  17136067. S2CID  4305761.
  8. ^ G. Wiet, V. Elisseeff, P. Wolff, J. Naudu (1975). История человечества, том 3: Великие средневековые цивилизации , стр. 649. George Allen & Unwin Ltd, ЮНЕСКО .
  9. ^ Фуат Сезгин «Каталог выставки Института истории арабо-исламской науки (в Университете Иоганна Вольфганга Гёте), Франкфуртская книжная ярмарка 2004 г., стр. 35 и 38.
  10. ^ Шаретт, Франсуа (2006). «Археология: высокие технологии Древней Греции». Nature . 444 (7119): 551–552. Bibcode :2006Natur.444..551C. doi : 10.1038/444551a . PMID  17136077. S2CID  33513516.
  11. ^ Бедини, Сильвио А.; Мэддисон, Фрэнсис Р. (1966). «Механическая Вселенная: Астрариум Джованни де Донди». Труды Американского философского общества . 56 (5): 1–69. doi :10.2307/1006002. JSTOR  1006002.
  12. ^ Прайс, Дерек де С. (1984). «История вычислительных машин». IEEE Micro . 4 (1): 22–52. doi :10.1109/MM.1984.291305.
  13. ^ Őren, Tuncer (2001). «Достижения в области компьютерных и информационных наук: от абака до холонических агентов» (PDF) . Turk J Elec Engin . 9 (1): 63–70. Архивировано (PDF) из оригинала 15 сентября 2009 г. . Получено 21 апреля 2016 г. .
  14. Дональд Рутледж Хилл (1985). «Механический календарь Аль-Бируни», Annals of Science 42 , стр. 139–163.
  15. ^ "The Writer Automaton, Switzerland". chonday.com. 11 июля 2013 г. Архивировано из оригинала 20 февраля 2015 г. Получено 28 января 2015 г.
  16. ^ ab Ray Girvan, «Раскрытая грация механизма: вычисления после Бэббиджа» Архивировано 3 ноября 2012 г. в Wayback Machine , Scientific Computing World , май/июнь 2003 г.
  17. Торрес, Леонардо (10 октября 1895 г.). «Memória sobre las Maquinas Algébricas» (PDF) . Revista de Obras Públicas (на испанском языке) (28): 217–222.
  18. ^ Леонардо Торрес. Memoria sobre las maquinas algébricas: con un information de la Real academia de Ciencias Exactas, Fisicas y Naturales , Misericordia, 1895.
  19. ^ Томас, Федерико (1 августа 2008 г.). «Краткий отчет о бесконечном веретене Леонардо Торреса». Теория механизмов и машин . 43 (8). IFToMM : 1055–1063. doi :10.1016/j.mechmachtheory.2007.07.003. hdl : 10261/30460 . ISSN  0094-114X.
  20. ^ Гомес-Хауреги, Валентин; Гутьеррес-Гарсия, Андрес; Гонсалес-Редондо, Франсиско А.; Иглесиас, Мигель; Манчадо, Кристина; Отеро, Сесар (1 июня 2022 г.). «Механический калькулятор Торреса Кеведо для уравнений второй степени с комплексными коэффициентами». Теория механизмов и машин . 172 (8). IFToMM : 104830. doi : 10.1016/j.mechmachtheory.2022.104830 . hdl : 10902/24391 . S2CID  247503677.
  21. ^ Торрес Кеведо, Леонардо (1901). «Машины-калькуляторы». Mémoires Présentés par Divers Savants à l'Académie des Scienes de l'Institut de France (на французском языке). XXXII . Показ национальный (Париж).
  22. ^ Хэласи, Дэниел Стивен (1970). Чарльз Бэббидж, отец компьютера . Crowell-Collier Press. ISBN 978-0-02-741370-0.
  23. ^ O'Connor, John J.; Robertson, Edmund F. (1998). "Charles Babbage". Архив истории математики MacTutor . Школа математики и статистики, Университет Сент-Эндрюс, Шотландия. Архивировано из оригинала 16 июня 2006 года . Получено 14 июня 2006 года .
  24. ^ "Бэббидж". Онлайн-материалы . Музей науки. 19 января 2007 г. Архивировано из оригинала 7 августа 2012 г. Получено 1 августа 2012 г.
  25. ^ Грэм-Камминг, Джон (23 декабря 2010 г.). «Давайте построим конечный механический компьютер Бэббиджа». мнение . New Scientist. Архивировано из оригинала 5 августа 2012 г. Получено 1 августа 2012 г.
  26. ^ Л. Торрес Кеведо. Ensayos sobre Automática – Ваше определение. Extension teórica de sus aplicaciones, Revista de la Academia de Ciencias Exacta, Revista 12, стр. 391–418, 1914.
  27. ^ Торрес Кеведо, Леонардо. Automática: Complemento de la Teoría de las Máquinas, (pdf), стр. 575–583, Revista de Obras Públicas, 19 ноября 1914 г.
  28. ^ Рональд Т. Кнойзель. Числа и компьютеры, Springer, стр. 84-85, 2017. ISBN 978-3-319-50508-4 
  29. ^ Рэнделл 1982, стр. 6, 11–13.
  30. ^ Б. Рэнделл. Электромеханическая счетная машина, Происхождение цифровых компьютеров, стр. 109-120, 1982.
  31. ^ Бромли 1990.
  32. ^ Кристофер Мур. Стефан Мертенс. Природа вычислений, OUP Oxford, стр. 291, 2011. ISBN 978-0-199-23321-2 
  33. ^ Рэнделл, Брайан. Цифровые компьютеры, история происхождения, (pdf), стр. 545, Цифровые компьютеры: происхождение, Энциклопедия компьютерных наук, январь 2003 г.
  34. ^ abcd Современная история вычислений. Стэнфордская энциклопедия философии. 2017. Архивировано из оригинала 12 июля 2010 года . Получено 7 января 2014 года .
  35. ^ Цузе, Хорст. "Часть 4: Компьютеры Конрада Цузе Z1 и Z3". Жизнь и работа Конрада Цузе . EPE Online. Архивировано из оригинала 1 июня 2008 года . Получено 17 июня 2008 года .
  36. ^ Bellis, Mary (15 мая 2019 г.) [Впервые опубликовано в 2006 г. на сайте inventions.about.com/library/weekly/aa050298.htm]. "Биография Конрада Цузе, изобретателя и программиста ранних компьютеров". thoughtco.com . Dotdash Meredith. Архивировано из оригинала 13 декабря 2020 г. . Получено 3 февраля 2021 г. Конрад Цузе получил полуофициальный титул "изобретателя современного компьютера" [ кто? ]
  37. ^ «Кто отец компьютера?». ComputerHope .
  38. ^ Цузе, Конрад (2010) [1984]. Компьютер – моя жизнь. Перевод Маккенны, Патрисии и Росс, Дж. Эндрю из: Der Computer, mein Lebenswerk (1984) . Берлин/Гейдельберг: Springer-Verlag. ISBN 978-3-642-08151-4.
  39. ^ Salz Trautman, Peggy (20 апреля 1994 г.). «Пионер компьютеров вновь открыт, 50 лет спустя». The New York Times . Архивировано из оригинала 4 ноября 2016 г. Получено 15 февраля 2017 г.
  40. ^ Цузе, Конрад (1993). Компьютер. Mein Lebenswerk (на немецком языке) (3-е изд.). Берлин: Springer-Verlag. п. 55. ИСБН 978-3-540-56292-4.
  41. ^ "Crash! The Story of IT: Zuse". Архивировано из оригинала 18 сентября 2016 года . Получено 1 июня 2016 года .
  42. ^ Рохас, Р. (1998). «Как сделать Z3 Цузе универсальным компьютером». IEEE Annals of the History of Computing . 20 (3): 51–54. doi :10.1109/85.707574. S2CID  14606587.
  43. ^ Рохас, Рауль. «Как сделать Zuse's Z3 универсальным компьютером» (PDF) . fu-berlin.de . Архивировано (PDF) из оригинала 9 августа 2017 г. . Получено 28 сентября 2015 г. .
  44. ^ ab O'Regan, Gerard (2010). Краткая история вычислений . Springer Nature. стр. 65. ISBN 978-3-030-66599-9.
  45. ^ "уведомление". Des Moines Register . 15 января 1941 г.
  46. ^ Артур В. Беркс (1989). Первый электронный компьютер. Издательство Мичиганского университета. ISBN 0-472-08104-7. Получено 1 июня 2019 г. .
  47. ^ abcd Коупленд, Джек (2006). Колосс: Секреты взлома кодов компьютеров Блетчли-Парка . Оксфорд: Oxford University Press . С. 101–115. ISBN 978-0-19-284055-4.
  48. ^ Миллер, Джо (10 ноября 2014 г.). «Женщина, которая взломала шифры Энигмы». BBC News . Архивировано из оригинала 10 ноября 2014 г. Получено 14 октября 2018 г.
  49. ^ Бирн, Сюзанна (24 июля 2018 г.). «Познакомьтесь с женщинами-взломщицами кодов из Блетчли-Парка». The Guardian . Архивировано из оригинала 7 февраля 2019 г. Получено 14 октября 2018 г.
  50. ^ "Bletchley's code-cracking Colossus". BBC . Архивировано из оригинала 4 февраля 2010 года . Получено 24 ноября 2021 года .
  51. ^ "Colossus – The Rebuild Story". Национальный музей вычислительной техники . Архивировано из оригинала 18 апреля 2015 года . Получено 7 января 2014 года .
  52. ^ Рэнделл, Брайан ; Фенсом, Гарри; Милн, Фрэнк А. (15 марта 1995 г.). «Некролог: Аллен Кумбс». The Independent . Архивировано из оригинала 3 февраля 2012 г. Получено 18 октября 2012 г.
  53. Фенсом, Джим (8 ноября 2010 г.). «Некролог Гарри Фенсома». The Guardian . Архивировано из оригинала 17 сентября 2013 г. Получено 17 октября 2012 г.
  54. Джон Преспер Экерт-младший и Джон В. Мочли, электронный числовой интегратор и компьютер, Патентное ведомство США, патент США 3,120,606, поданный 26 июня 1947 г., выданный 4 февраля 1964 г. и признанный недействительным 19 октября 1973 г. после решения суда по делу Honeywell против Sperry Rand .
  55. ^ Эванс 2018, стр. 39.
  56. Лайт 1999, стр. 459.
  57. ^ "Generations of Computer". techiwarehouse.com. Архивировано из оригинала 2 июля 2015 г. Получено 7 января 2014 г.
  58. ^ Тьюринг, AM (1937). «О вычислимых числах с приложением к Entscheidungsproblem». Труды Лондонского математического общества . 2. 42 (1): 230–265. doi :10.1112/plms/s2-42.1.230. S2CID  73712.
  59. ^ Коупленд, Джек (2004). Суть Тьюринга . стр. 22: фон Нейман ... решительно подчеркнул мне и, я уверен, другим, что фундаментальная концепция принадлежит Тьюрингу — в той мере, в какой ее не предвосхитили Бэббидж, Лавлейс и другие.Письмо Стэнли Франкеля Брайану Рэнделлу , 1972 г.
  60. ^ Энтикнап, Николас (лето 1998 г.). «Золотой юбилей вычислений». Resurrection (20). ISSN  0958-7403. Архивировано из оригинала 9 января 2012 г. Получено 19 апреля 2008 г.
  61. ^ "Early computers at Manchester University". Resurrection . 1 (4). Лето 1992. ISSN  0958-7403. Архивировано из оригинала 28 августа 2017 года . Получено 7 июля 2010 года .
  62. ^ "Early Electronic Computers (1946–51)". Манчестерский университет. Архивировано из оригинала 5 января 2009 года . Получено 16 ноября 2008 года .
  63. ^ Napper, RBE "Introduction to the Mark 1". Манчестерский университет. Архивировано из оригинала 26 октября 2008 года . Получено 4 ноября 2008 года .
  64. ^ "Our Computer Heritage Pilot Study: Deliveries of Ferranti Mark I and Mark I Star computers". Computer Conservation Society . Архивировано из оригинала 11 декабря 2016 года . Получено 9 января 2010 года .
  65. ^ Лавингтон, Саймон. «Краткая история британских компьютеров: первые 25 лет (1948–1973)». British Computer Society . Архивировано из оригинала 5 июля 2010 года . Получено 10 января 2010 года .
  66. ^ Ли, Томас Х. (2003). Проектирование КМОП-радиочастотных интегральных схем (PDF) . Cambridge University Press . ISBN 978-1-139-64377-1. Архивировано из оригинала (PDF) 9 декабря 2019 г. . Получено 31 июля 2019 г. .
  67. ^ Пуэрс, Роберт; Бальди, Ливио; Вурде, Марсель Ван де; Нутен, Себастьян Э. ван (2017). Наноэлектроника: материалы, устройства, применение, 2 тома. Джон Уайли и сыновья . п. 14. ISBN 978-3-527-34053-8. Получено 31 июля 2019 г. .
  68. ^ ab Moskowitz, Sanford L. (2016). Инновации в области передовых материалов: управление глобальными технологиями в 21 веке. John Wiley & Sons . С. 165–167. ISBN 978-0-470-50892-3. Получено 28 августа 2019 г. .
  69. Лавингтон 1998, стр. 34–35.
  70. ^ ab Cooke-Yarborough, EH (июнь 1998 г.). «Некоторые ранние применения транзисторов в Великобритании». Engineering Science & Education Journal . 7 (3): 100–106. doi :10.1049/esej:19980301. ISSN  0963-7346. Архивировано из оригинала 8 ноября 2020 г. . Получено 7 июня 2009 г. . (требуется подписка)
  71. ^ Кук-Ярборо, Э. Х. (1957). Введение в транзисторные схемы . Эдинбург: Оливер и Бойд. стр. 139.
  72. ^ "1960: Metal Oxide Semiconductor (MOS) Transistor Demonstrated". Кремниевый двигатель: хронология полупроводников в компьютерах . Музей истории компьютеров . Архивировано из оригинала 27 октября 2019 года . Получено 31 августа 2019 года .
  73. ^ Мотоёси, М. (2009). «Сквозной кремниевый переход (TSV)». Труды IEEE . 97 (1): 43–48. doi :10.1109/JPROC.2008.2007462. ISSN  0018-9219. S2CID  29105721.
  74. ^ Янг, Иэн (12 декабря 2018 г.). «Транзисторы поддерживают закон Мура». EETimes . Архивировано из оригинала 24 сентября 2019 г. Получено 18 июля 2019 г.
  75. ^ Лоус, Дэвид (4 декабря 2013 г.). «Кто изобрел транзистор?». Музей истории компьютеров . Архивировано из оригинала 13 декабря 2013 г. Получено 20 июля 2019 г.
  76. ^ ab Hittinger, William C. (1973). «Металл-оксид-полупроводниковая технология». Scientific American . 229 (2): 48–59. Bibcode : 1973SciAm.229b..48H. doi : 10.1038/scientificamerican0873-48. ISSN  0036-8733. JSTOR  24923169.
  77. ^ Мальмштадт, Говард В.; Энке, Кристи Г.; Крауч, Стэнли Р. (1994). Создание правильных соединений: микрокомпьютеры и электронное приборостроение. Американское химическое общество . стр. 389. ISBN 978-0-8412-2861-0. Получено 28 августа 2019 г. . Относительная простота и низкое энергопотребление МОП-транзисторов способствовали сегодняшней микрокомпьютерной революции.
  78. ^ Фоссум, Джерри Г.; Триведи, Вишал П. (2013). Основы ультратонких МОП-транзисторов и FinFET-транзисторов. Cambridge University Press . стр. vii. ISBN 978-1-107-43449-3. Получено 28 августа 2019 г. .
  79. ^ Marriott, JW (10 июня 2019 г.). «Выступление директора Янку на Международной конференции по интеллектуальной собственности 2019 г.». Патентное и товарное ведомство США . Архивировано из оригинала 17 декабря 2019 г. Получено 20 июля 2019 г.
  80. ^ "Dawon Kahng". Национальный зал славы изобретателей . Архивировано из оригинала 27 октября 2019 года . Получено 27 июня 2019 года .
  81. ^ "Мартин Аталла в Зале славы изобретателей, 2009". Архивировано из оригинала 19 сентября 2019 года . Получено 21 июня 2013 года .
  82. Триумф МОП-транзистора. Музей истории компьютеров . 6 августа 2010 г. Архивировано из оригинала 18 августа 2021 г. Получено 21 июля 2019 г. – через YouTube.
  83. ^ «Несчастная история Джеффри Даммера». Архивировано 11 мая 2013 г. на Wayback Machine , (nd), (HTML), Electronic Product News , дата обращения 8 июля 2008 г.
  84. ^ Килби, Джек (2000). "Нобелевская лекция" (PDF) . Стокгольм: Нобелевский фонд. Архивировано (PDF) из оригинала 29 мая 2008 года . Получено 15 мая 2008 года .
  85. Чип, который построил Джек. Архивировано 1 мая 2015 г. на Wayback Machine , (ок. 2008 г.), (HTML), Texas Instruments, получено 29 мая 2008 г.
  86. Джек С. Килби, Миниатюрные электронные схемы, Патентное ведомство США, патент США 3,138,743, подан 6 февраля 1959 г., выдан 23 июня 1964 г.
  87. ^ Уинстон, Брайан (1998). Медиатехнологии и общество: История: от телеграфа до Интернета. Routledge. стр. 221. ISBN 978-0-415-14230-4. Получено 6 июня 2020 г. .
  88. ^ Саксена, Арджун Н. (2009). Изобретение интегральных схем: невысказанные важные факты. World Scientific . стр. 140. ISBN 978-981-281-445-6. Получено 28 августа 2019 г. .
  89. ^ ab "Интегральные схемы". NASA . Архивировано из оригинала 21 июля 2019 года . Получено 13 августа 2019 года .
  90. ^ Унитарная схема Роберта Нойса , патент США 2981877, «Полупроводниковый прибор и структура выводов», выдан 25 апреля 1961 г., передан Fairchild Semiconductor Corporation  .
  91. ^ "1959: Запатентована концепция практической монолитной интегральной схемы". Computer History Museum . Архивировано из оригинала 24 октября 2019 года . Получено 13 августа 2019 года .
  92. ^ Лойек, Бо (2007). История полупроводниковой инженерии . Springer Science & Business Media . стр. 120. ISBN 978-3-540-34258-8.
  93. ^ Бассетт, Росс Нокс (2007). В цифровую эпоху: исследовательские лаборатории, стартапы и рост технологии МОП. Johns Hopkins University Press. стр. 46. ISBN 978-0-8018-8639-3. Получено 31 июля 2019 г. .
  94. ^ Хафф, Ховард Р.; Цуя, Х.; Гёзеле, У. (1998). Наука о кремниевых материалах и технологиях: Труды Восьмого международного симпозиума по науке о кремниевых материалах и технологиям. Электрохимическое общество . С. 181–182. ISBN 978-1-56677-193-1. Получено 28 августа 2019 г. .
  95. ^ ab Kuo, Yue (1 января 2013 г.). "Thin Film Transistor Technology—Past, Present, and Future" (PDF) . The Electrochemical Society Interface . 22 (1): 55–61. Bibcode :2013ECSIn..22a..55K. doi : 10.1149/2.F06131if . ISSN  1064-8208. Архивировано (PDF) из оригинала 29 августа 2017 г. . Получено 31 июля 2019 г. .
  96. ^ ab "Tortoise of Transistors Wins the Race – CHM Revolution". Computer History Museum . Архивировано из оригинала 10 марта 2020 года . Получено 22 июля 2019 года .
  97. ^ "1964 – Представлена ​​первая коммерческая МОП-ИС". Computer History Museum . Архивировано из оригинала 22 декабря 2015 года . Получено 31 июля 2019 года .
  98. ^ "1968: Разработана технология кремниевых затворов для ИС". Музей истории компьютеров . Архивировано из оригинала 29 июля 2020 года . Получено 22 июля 2019 года .
  99. ^ ab "1971: Microprocessor Integrates CPU Function into a Single Chip". Computer History Museum . Архивировано из оригинала 12 августа 2021 г. . Получено 22 июля 2019 г. .
  100. ^ Колинж, Жан-Пьер; Грир, Джеймс С. (2016). Нанопроволочные транзисторы: физика приборов и материалов в одном измерении. Cambridge University Press . стр. 2. ISBN 978-1-107-05240-6. Получено 31 июля 2019 г. .
  101. ^ "Первый микропроцессор Intel — Intel 4004". Intel Corp. Ноябрь 1971. Архивировано из оригинала 13 мая 2008 года . Получено 17 мая 2008 года .
  102. ^ Паттерсон, Дэвид; Хеннесси, Джон (1998). Организация и проектирование компьютеров. Сан-Франциско: Morgan Kaufmann . С. 27–39. ISBN 978-1-55860-428-5.
  103. ^ Федерико Фаггин , Создание первого микропроцессора, Журнал IEEE Solid-State Circuits , Зима 2009, IEEE Xplore
  104. ^ ab "7 ошеломляющих улучшений смартфонов с чипом Snapdragon 835 от Qualcomm". 3 января 2017 г. Архивировано из оригинала 30 сентября 2019 г. Получено 5 апреля 2019 г.
  105. ^ Chartier, David (23 декабря 2008 г.). «Глобальные поставки ноутбуков наконец-то обогнали настольные компьютеры». Ars Technica . Архивировано из оригинала 4 июля 2017 г. Получено 14 июня 2017 г.
  106. IDC (25 июля 2013 г.). «Рост ускоряется на мировых рынках мобильных телефонов и смартфонов во втором квартале, согласно IDC». Архивировано из оригинала 26 июня 2014 г.
  107. ^ "Просмотрщик Ngram Google Books". books.google.com .
  108. ^ "Просмотрщик Ngram Google Books". books.google.com .
  109. ^ "Просмотрщик Ngram Google Books". books.google.com .
  110. ^ "Просмотрщик Ngram Google Books". books.google.com .
  111. ^ Дэвид Дж. Эк (2000). Самая сложная машина: обзор компьютеров и вычислений . AK Peters, Ltd. стр. 54. ISBN 978-1-56881-128-4.
  112. ^ Erricos John Kontoghiorghes (2006). Справочник по параллельным вычислениям и статистике . CRC Press. стр. 45. ISBN 978-0-8247-4067-2.
  113. ^ Верма и Мильке 1988.
  114. ^ Дональд Иди (1968). Введение в базовый компьютер . Prentice-Hall. стр. 12.
  115. ^ Арпад Барна; Дэн И. Порат (1976). Введение в микрокомпьютеры и микропроцессоры. Wiley. стр. 85. ISBN 978-0-471-05051-3.
  116. ^ Джерри Пик; Грейс Тодино; Джон Стрэнг (2002). Изучение операционной системы UNIX: краткое руководство для нового пользователя. O'Reilly. стр. 130. ISBN 978-0-596-00261-9.
  117. ^ Джиллиан М. Дэвис (2002). Снижение шума в речевых приложениях . CRC Press. стр. 111. ISBN 978-0-8493-0949-6.
  118. ^ TOP500 2006, стр.  [ нужна страница ] .
  119. ^ Cragon, Harvey (2000). Архитектура компьютера и реализация. Cambridge University Press. стр. 5. ISBN 978-0-521-65168-4. Архивировано из оригинала 30 июля 2022 г. . Получено 10 июня 2022 г. .
  120. ^ Сюй, Чживэй; Чжан, Цзялинь (2021). Вычислительное мышление: взгляд на компьютерную науку. Сингапур: Springer. стр. 60. ISBN 978-981-16-3848-0. Архивировано из оригинала 30 июля 2022 г. . Получено 10 июня 2022 г. . Это называется архитектурой хранимой программы или моделью хранимой программы, также известной как архитектура фон Неймана. Мы будем использовать эти термины взаимозаменяемо.
  121. ^ Рональд Дж. Лич (27 января 2016 г.). Введение в программную инженерию. CRC Press. стр. 11. ISBN 978-1-4987-0528-8. Получено 26 ноября 2022 г. .
  122. Хун Чжу (22 марта 2005 г.). Методология проектирования программного обеспечения: от принципов к архитектурным стилям. Elsevier. С. 47–72. ISBN 978-0-08-045496-2. Получено 26 ноября 2022 г. .
  123. ^ Рональд Дж. Лич (27 января 2016 г.). Введение в программную инженерию. CRC Press. стр. 56. ISBN 978-1-4987-0528-8. Получено 26 ноября 2022 г. .
  124. ^ Джон Найт (12 января 2012 г.). Основы надежных вычислений для инженеров-программистов. CRC Press. стр. 186. ISBN 978-1-4665-1821-6. Получено 26 ноября 2022 г. .
  125. ^ Фредерик П. Брукс (младший) (1975). Мифический человеко-месяц: очерки по программной инженерии. Addison-Wesley Publishing Company. ISBN 978-0-201-00650-6. Получено 26 ноября 2022 г. .
  126. ^ Ян Соммервилл (2007). Программная инженерия. Pearson Education. стр. 4–17. ISBN 978-0-321-31379-9. Получено 26 ноября 2022 г. .
  127. ^ "Почему компьютеры выходят из строя?". Scientific American . Архивировано из оригинала 1 мая 2018 года . Получено 3 марта 2022 года .
  128. Тейлор, Александр Л. III (16 апреля 1984 г.). «Волшебник внутри машины». Time . Архивировано из оригинала 16 марта 2007 г. Получено 17 февраля 2007 г.
  129. ^ Агата К. Хьюз (2000). Системы, эксперты и компьютеры . MIT Press . стр. 161. ISBN 978-0-262-08285-3Опыт SAGE помог создать первую по-настоящему крупномасштабную коммерческую сеть в режиме реального времени: компьютеризированную систему бронирования авиабилетов SABRE .
  130. ^ Лейнер, Барри М.; Серф, Винтон Г.; Кларк, Дэвид Д.; Кан, Роберт Э.; Клейнрок, Леонард; Линч, Дэниел К.; Постел, Джон; Робертс, Ларри Г.; Вольф, Стивен (1999). «Краткая история Интернета». arXiv : cs/9901011 .
  131. ^ "Определение компьютера". Thefreedictionary.com. Архивировано из оригинала 26 декабря 2009 года . Получено 29 января 2012 года .
  132. ^ II, Джозеф Д. Дюма (2005). Архитектура компьютера: основы и принципы проектирования компьютеров. CRC Press. стр. 340. ISBN 978-0-8493-2749-0. Получено 9 ноября 2020 г. .

Источники

Внешние ссылки