Компьютер - Computer

Человек заменяет одну электрическую лампу из сотен в раннем компьютере
Компьютерный зал с несколькими компьютерными шкафами и панелью управления
Смартфон с радужным дисплеем в руке
Черный настольный компьютер с монитором сверху и клавиатурой спереди
Фиолетовая игровая консоль с подключенным контроллером
Ряды больших темных компьютерных шкафов в помещении, похожем на склад.
Компьютеры и вычислительные устройства разных эпох - по часовой стрелке сверху слева:
Ранний вакуумный компьютер ( ENIAC )
Мэйнфрейм ( IBM System 360 )
Настольный компьютер (IBM ThinkCentre S50 с монитором)
Суперкомпьютер (IBM Summit )
Игровая консоль (Nintendo GameCube )
Смартфон ( LYF Вода 2)

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

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

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

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

Этимология

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

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

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

История

До 20 века

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

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

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

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

По словам Дерека Дж. Де Соллы Прайса, механизм Antikythera считается первым механическим аналоговым компьютером . Он был разработан для расчета астрономических координат. Он был обнаружен в 1901 году на затонувшем корабле Antikythera у греческого острова Antikythera , между Китерой и Критом , и датируется ок.  100 г. до н . Э. Устройства уровня сложности, сравнимого с антикиферским механизмом, появятся снова только тысячу лет спустя.

Многие механические средства для расчетов и измерений были созданы для использования в астрономии и навигации. Планисфера была звездная карта , изобретенный Abū Райхан аль-Бируни в начале 11 - го века. Астролябия была изобретена в мире эллинизма либо в 1 - й или 2 - й века до н.э. и часто приписывается Гиппарха . Комбинация планисферы и диоптры , астролябия фактически представляла собой аналоговый компьютер, способный решать несколько различных задач сферической астрономии . Астролябия включения механического календаря компьютера и передаточные -wheels был изобретен Аби Бакр в Исфахане , Персии в 1235. Абу Райхан аль-Бируни изобрел первый механический редуктор лунно - солнечный календарь астролябию, ранний фиксированной проводной обработки знаний машины с зубчатой передачей и шестерни, c.  1000 AD .

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

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

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

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

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

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

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

Чарльз Бэббидж , английский инженер-механик и эрудит , создал концепцию программируемого компьютера. Считающийся « отцом компьютера », он задумал и изобрел первый механический компьютер в начале 19 века. После работы над своей революционной разностной машиной , предназначенной для помощи в навигационных расчетах, в 1833 году он понял, что возможна гораздо более общая конструкция - аналитическая машина . Ввод программ и данных в машину должен был производиться с помощью перфокарт. Этот метод использовался в то время для управления механическими ткацкими станками, такими как жаккардов . Для вывода машина будет иметь принтер, плоттер кривых и звонок. Машина также сможет вводить числа на карточки, чтобы их можно было прочитать позже. Движок включал в себя арифметико-логический блок , поток управления в форме условного ветвления и циклов и интегрированную память , что делало его первым проектом универсального компьютера, который в современных терминах можно описать как полный по Тьюрингу .

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

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

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

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

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

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

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

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

Реплики Цузе «s Z3 , первый полностью автоматический, цифровой (электромеханическое) компьютер.

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

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

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

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

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

Во время Второй мировой войны британские взломщики кодов в Блетчли-парке добились ряда успехов в взломе зашифрованных немецких военных сообщений. Немецкая шифровальная машина Enigma впервые подверглась атаке с помощью электромеханических бомб, которыми часто управляли женщины. Чтобы взломать более совершенную немецкую машину Lorenz SZ 40/42 , используемую для армейской связи высокого уровня, Макс Ньюман и его коллеги поручили Флауэрсу построить Колосс . С начала февраля 1943 года он потратил одиннадцать месяцев на проектирование и строительство первого Колосса. После функциональных испытаний в декабре 1943 года «Колосс» был отправлен в Блетчли-Парк, где он был доставлен 18 января 1944 года и атаковал свое первое сообщение 5 февраля.

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

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

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

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

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

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

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

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

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

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

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

Mark 1, в свою очередь, быстро стал прототипом Ferranti Mark 1 , первого в мире коммерчески доступного компьютера общего назначения. Построенный Ферранти , он был доставлен в Манчестерский университет в феврале 1951 года. По крайней мере, семь из этих более поздних машин были доставлены между 1953 и 1957 годами, одна из них была доставлена ​​в лаборатории Shell в Амстердаме . В октябре 1947 года директора британской компании по организации питания J. Lyons & Company решили принять активное участие в продвижении коммерческой разработки компьютеров. LEO I компьютер был введен в эксплуатацию в апреле 1951 года и провел первую в мире регулярную рутинную офисного компьютера работу .

Транзисторы

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

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

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

Металл-оксид-кремний полевой транзистор (MOSFET), также известный как МОП - транзистор, был изобретен Mohamed М. Atalla и Давоном Кангом в Bell Labs в 1959 г. Это был первым действительно компактный транзистор , который может быть уменьшен и массы -производится для широкого спектра применений. Благодаря высокой масштабируемости , гораздо более низкому энергопотреблению и более высокой плотности, чем у транзисторов с биполярным переходом, MOSFET позволил создавать интегральные схемы с высокой плотностью . Помимо обработки данных, это также позволило практическое использование МОП-транзисторов в качестве элементов хранения ячеек памяти, что привело к развитию полупроводниковой МОП- памяти , которая заменила ранее использовавшуюся память на магнитных сердечниках в компьютерах. MOSFET привел к революции микрокомпьютеров и стал движущей силой компьютерной революции . MOSFET - это наиболее широко используемый транзистор в компьютерах и фундаментальный строительный блок цифровой электроники .

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

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

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

Нойс также выступил с собственной идеей интегральной схемы на полгода позже Килби. Изобретение Нойса было первым настоящим монолитным ИС. Его чип решил множество практических проблем, которых не было у Килби. Изготовленный в Fairchild Semiconductor, он был сделан из кремния , тогда как чип Килби был сделан из германия . Монолитная ИС Нойса была изготовлена с использованием планарного процесса , разработанного его коллегой Жаном Хорни в начале 1959 года. В свою очередь, планарный процесс был основан на работе Мохамеда М. Аталлы по пассивации поверхности полупроводников диоксидом кремния в конце 1950-х годов.

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

Развитие интегральной схемы МОП привело к изобретению микропроцессора и возвестило взрыв в коммерческом и личном использовании компьютеров. Хотя вопрос о том, какое именно устройство было первым микропроцессором, является спорным, отчасти из-за отсутствия согласия относительно точного определения термина «микропроцессор», в значительной степени бесспорно, что первым однокристальным микропроцессором был Intel 4004 , спроектированный и реализованный. Федерико Фаггин с его технологией МОП-микросхемы с кремниевым затвором, а также Тед Хофф , Масатоши Шима и Стэнли Мазор из Intel . В начале 1970-х годов технология MOS IC позволила объединить более 10 000 транзисторов на одном кристалле.

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

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

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

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

Типы

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

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

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

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

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

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

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

Первое поколение (механическое / электромеханическое) Калькуляторы Калькулятор Паскаля , Арифмометр , Разностная машина , Аналитические машины Кеведо
Программируемые устройства Жаккардовый ткацкий станок , аналитическая машина , IBM ASCC / Harvard Mark I , Harvard Mark II , IBM SSEC , Z1 , Z2 , Z3
Второе поколение (электронные лампы) Калькуляторы Atanasoff – Berry Computer , IBM 604 , UNIVAC 60 , UNIVAC 120
Программируемые устройства Colossus , ENIAC , Manchester Baby , EDSAC , Manchester Mark 1 , Ferranti Pegasus , Ferranti Mercury , CSIRAC , EDVAC , UNIVAC I , IBM 701 , IBM 702 , IBM 650 , Z22
Третье поколение (дискретные транзисторы и интегральные схемы SSI, MSI, LSI ) Мэйнфреймы IBM 7090 , IBM 7080 , IBM System / 360 , BUNCH
Миникомпьютер HP 2116A , IBM System / 32 , IBM System / 36 , LINC , PDP-8 , PDP-11
Настольный компьютер HP 9100
Четвертое поколение ( интегральные схемы СБИС ) Миникомпьютер VAX , IBM AS / 400
4-битный микрокомпьютер Intel 4004 , Intel 4040
8-битный микрокомпьютер Intel 8008 , Intel 8080 , Motorola 6800 , Motorola 6809 , технология MOS 6502 , Zilog Z80
16-битный микрокомпьютер Intel 8088 , Zilog Z8000 , WDC 65816/65802
32-битный микрокомпьютер Intel 80386 , Pentium , Motorola 68000 , ARM
64-битный микрокомпьютер Альфа , MIPS , PA-RISC , PowerPC , SPARC , x86-64 , ARMv8-A
Встраиваемый компьютер Intel 8048 , Intel 8051
Персональный компьютер Настольный компьютер , Домашний компьютер , Портативный компьютер, Персональный цифровой помощник (КПК), Портативный компьютер , Планшетный ПК , Носимый компьютер
Теоретические / экспериментальные Квантовый компьютер , Химический компьютер , ДНК-вычисления , Оптический компьютер , Компьютер на базе Spintronics, Компьютер Wetware / Organic

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

Периферийное устройство ( ввод / вывод ) Вход Мышь , клавиатура , джойстик , сканер изображений , веб-камера , графический планшет , микрофон
Выход Монитор , принтер , громкоговоритель
Оба Диск флоппи - диск, жесткий диск , оптический диск , привод, телетайп
Компьютерные автобусы На короткие расстояния RS-232 , SCSI , PCI , USB
Большой радиус действия ( компьютерные сети ) Ethernet , банкомат , FDDI

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

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

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

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

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

Устройство управления

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

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

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

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

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

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

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

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

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

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

ALU может выполнять два класса операций: арифметические и логические. Набор арифметических операций, поддерживаемых конкретным ALU, может быть ограничен сложением и вычитанием или может включать в себя функции умножения, деления, тригонометрии, такие как синус, косинус и т. Д., И квадратные корни . Некоторые могут работать только с целыми числами ( целыми числами ), в то время как другие используют числа с плавающей запятой для представления действительных чисел , хотя и с ограниченной точностью. Однако любой компьютер, способный выполнять только простейшие операции, можно запрограммировать так, чтобы разбивать более сложные операции на простые шаги, которые он может выполнять. Следовательно, любой компьютер можно запрограммировать на выполнение любых арифметических операций, хотя это займет больше времени, если его ALU не поддерживает эту операцию напрямую. ALU может также сравнивать числа и возвращать логические значения истинности (истина или ложь) в зависимости от того, равно ли одно другому, больше или меньше («64 больше 65?»). В логических операциях используется логическая логика : И , ИЛИ , ИСКЛЮЧАЮЩЕЕ ИЛИ и НЕ . Они могут быть полезны для создания сложных условных операторов и обработки логической логики .

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

объем памяти

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Операционная система / Системное программное обеспечение Unix и BSD UNIX System V , IBM AIX , HP-UX , Solaris ( SunOS ), IRIX , Список операционных систем BSD
Linux Список дистрибутивов Linux , Сравнение дистрибутивов Linux
Майкрософт Виндоус Windows 95 , Windows 98 , Windows NT , Windows 2000 , Windows ME , Windows XP , Windows Vista , Windows 7 , Windows 8 , Windows 8.1 , Windows 10
ДОС 86-DOS (QDOS), IBM PC DOS , MS-DOS , DR-DOS , FreeDOS
Операционные системы Macintosh Классическая Mac OS , macOS (ранее OS X и Mac OS X)
Встроенный и в реальном времени Список встроенных операционных систем
Экспериментальный Амеба , Оберон - AOS, Bluebottle, A2 , Plan 9 от Bell Labs
Библиотека Мультимедиа DirectX , OpenGL , OpenAL , Vulkan (API)
Библиотека программирования Стандартная библиотека C , стандартная библиотека шаблонов
Данные Протокол TCP / IP , Кермит , FTP , HTTP , SMTP
Формат файла HTML , XML , JPEG , MPEG , PNG
Пользовательский интерфейс Графический интерфейс пользователя ( WIMP ) Microsoft Windows , GNOME , KDE , QNX Photon, CDE , GEM , Aqua
Текстовый пользовательский интерфейс Интерфейс командной строки , текстовый пользовательский интерфейс
Прикладное программное обеспечение Офисная одежда Обработка текста , Настольные публикации , Программа для презентаций , Система управления базами данных , Планирование и управление временем, Электронная таблица , Программное обеспечение для бухгалтерского учета
Доступ в Интернет Браузер , клиент электронной почты , веб-сервер , агент передачи почты , обмен мгновенными сообщениями
Дизайн и изготовление Компьютерное проектирование , Автоматизированное производство , Управление производством, Роботизированное производство, Управление цепочкой поставок
Графика Редактор растровой графики , редактор векторной графики , 3D моделлер , редактор анимации , 3D компьютерной графики , видеомонтажа , обработки изображений
Аудио Цифровой аудиоредактор , Воспроизведение аудио , Микширование , Синтез звука , Компьютерная музыка
Программная инженерия Компилятор , ассемблер , интерпретатор , отладчик , редактор текста , интегрированная среда разработки , анализ производительности программного обеспечения , контроль версий , управление конфигурацией программного обеспечения
Образовательные Edutainment , Обучающая игра , Серьезная игра , Симулятор полета
Игры Стратегия , Аркада , Головоломка , Симулятор , Шутер от первого лица , Платформа , Многопользовательская игра , Интерактивная фантастика
Разное Искусственный интеллект , Антивирусное ПО , Сканер вредоносных программ , Установщик / Системы управления пакетами , Файловый менеджер

Языки

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

Языки программирования
Списки языков программирования Хронология языков программирования , Список языков программирования по категориям , Generational списка языков программирования , Список языков программирования , не на английском языке на основе языков программирования
Часто используемые языки ассемблера ARM , MIPS , x86
Часто используемые языки программирования высокого уровня Ада , БЕЙСИК , C , C ++ , C # , COBOL , Fortran , PL / I , REXX , Java , Lisp , Pascal , Object Pascal
Часто используемые языки сценариев Скрипт Борна , JavaScript , Python , Ruby , PHP , Perl

Программ

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

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

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

Этот раздел относится к наиболее распространенным компьютерам с оперативной памятью .

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

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

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

  begin:
  addi $8, $0, 0           # initialize sum to 0
  addi $9, $0, 1           # set first number to add = 1
  loop:
  slti $10, $9, 1000       # check if the number is less than 1000
  beq $10, $0, finish      # if odd number is greater than n then exit
  add $8, $8, $9           # update sum
  addi $9, $9, 1           # get next number
  j loop                   # repeat the summing process
  finish:
  add $2, $8, $0           # put sum in output register

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

Машинный код

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

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

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

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

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

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

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

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

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

Дизайн программы

Разработка небольших программ относительно проста и включает в себя анализ проблемы, сбор входных данных, использование программных конструкций в языках, разработку или использование установленных процедур и алгоритмов, предоставление данных для устройств вывода и решения проблемы, если это применимо. По мере того как проблемы становятся более крупными и сложными, встречаются такие функции, как подпрограммы, модули, формальная документация и новые парадигмы, такие как объектно-ориентированное программирование. Большие программы, включающие тысячи строк кода и более, требуют формальных программных методологий. Задача разработки больших программных систем представляет собой серьезную интеллектуальную задачу. Исторически сложилось так, что создание программного обеспечения с приемлемо высокой надежностью в рамках предсказуемого графика и бюджета; академическая и профессиональная дисциплина программной инженерии сосредоточена именно на этой задаче.

Ошибки

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

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

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

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

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

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

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

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

Будущее

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

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

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

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

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

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

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

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

Компьютерные профессии
Аппаратное обеспечение Электротехника , Электронная инженерия , Компьютерная инженерия , Телекоммуникационная инженерия , Оптическая инженерия , Наноинженерия
Связанные с программным обеспечением Информатика , Компьютерная инженерия , Издательское дело , Взаимодействие человека и компьютера , Информационные технологии , Информационные системы , Вычислительные науки , Программная инженерия , Индустрия видеоигр , Веб-дизайн

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

Организации
Группы стандартов ANSI , IEC , IEEE , IETF , ISO , W3C
Профессиональные общества ACM , AIS , IET , IFIP , BCS
Группы свободного / открытого программного обеспечения Фонд свободного программного обеспечения , Mozilla Foundation , Apache Software Foundation ,

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

использованная литература

Примечания

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