Компьютер
Компью́тер (англ. computer, от лат. сomputo – считать, вычислять), устройство, предназначенное для автоматизации процессов обработки информации, в котором аппаратура работает под управлением определяющих её действия программ.
Историческая справка
Впервые термин употребил английский врач и учёный-энциклопедист Т. Браун в 1646 г., им он назвал людей, профессионально занимавшихся вычислениями. В этом значении термин использовался в Великобритании и США до середины 20 в.; простейшие механические счётные устройства также иногда называли компьютерами (чаще – калькуляторами). С начала 1950-х гг. для решения вычислительных задач стали широко применять электронно-вычислительные машины (электронные вычислительные машины, ЭВМ), которые в английском языке также назвали компьютером; со временем термин утвердился в большинстве других языков, в том числе в русском.
В 1834 г. Ч. Бэббидж впервые выдвинул идею создания механической вычислительной машины, основные свойства которой предвосхитили устройство современного компьютера. Так, его «аналитическая машина» должна была состоять из устройства управления, арифметического устройства и памяти для хранения чисел и работать под управлением программы (в 1843 леди А. Лавлейс написала несколько программ для «аналитической машины»). Машина Бэббиджа не была построена, его идея реализовалась только в конце 1930-х – середине 1940-х гг., когда были созданы несколько релейных вычислительных машин с программным управлением (Z1 и Z3 К. Цузе, Mark I Г. Айкена). Обобщая опыт создания ЭВМ ENIAC, построенной с использованием электронных ламп, Дж. фон Нейман в 1945 г. сформулировал основные принципы построения и функционирования ЭВМ – т. н. принципы фон Неймана (однако фактически они явились результатом труда группы разработчиков ENIAC, в первую очередь Дж. У. Мокли и Дж. П. Эккерта; эти же принципы предложены независимо Цузе и С. А. Лебедевым).
Согласно им, вычислительная машина должна работать в двоичной системе счисления и быть электронной; включать устройство управления, организующее выполнение программ, и арифметическое устройство, выполняющее определяемые программой арифметические и логические операции (современный процессор), а также устройства ввода-вывода и памяти. Важнейшим принципом фон Неймана является хранение машинной программы в запоминающем устройстве (памяти) вместе с обрабатываемыми данными, поскольку это позволило изменять программу в ходе её выполнения.
К началу 21 в. сменилось несколько поколений компьютеров, современные компьютеры значительно отличаются от компьютеров первого поколения как своей архитектурой, так и элементной базой. Несмотря на то что некоторые из положений Дж. фон Неймана не являются принципиальными (так, выбор двоичной системы определялся скорее элементной базой, существовавшей во времена фон Неймана; компьютер может быть построен и с использованием других систем счисления, например уравновешенной троичной – «Сетунь» Н. П. Брусенцова), на них базировались компьютеры первого и второго поколений. Однако со временем выявилась ограниченность т. н. фоннеймановской схемы вычислений, согласно которой процессор одну за другой выбирает из памяти команды и считывает операнды, а затем выполняет команду и записывает результат в память. Процесс вычисления, таким образом, сводится к последовательным (пошаговым) изменениям состояния памяти. Поскольку благодаря развитию полупроводниковых технологий быстродействие центрального процессора всегда росло быстрее, чем быстродействие оперативной памяти, это устанавливало естественные ограничения на рост производительности компьютеров. Для преодоления этого противоречия (начиная со второго поколения) в компьютерах стали реализовывать различные архитектурные решения: совмещение во времени работы центрального процессора и устройств ввода-вывода, буферизация данных, расслоение памяти (разбиение на модули, к которым можно обращаться одновременно), память на быстрых регистрах, многоуровневая кеш-память и др. Данные решения позволяют сбалансировать работу процессора и памяти, однако не снимают главное ограничение фоннеймановской архитектуры – выполнение в каждый момент времени только одной команды. Другие архитектурные решения были направлены на увеличение параллелизма в выполнении команд: совмещение во времени обработки процессором нескольких команд одной программы (конвейер), создание многопроцессорных вычислительных систем, выполняющих одновременно несколько программ (многопроцессорные вычислительные комплексы) или одну и ту же команду, но над разными данными (матричные вычислительные системы) и т. п.
Важным событием в теоретическом осмыслении этой проблемы стала статья Дж. Бэкуса (США, 1978) «Можно ли освободить программирование от фоннеймановского стиля?», в которой впервые была сформулирована идея тесной связи традиционных языков программирования (Fortran и др.) и фоннеймановской архитектуры. Согласно Бэкусу, для преодоления того, что он назвал «бутылочным горлышком» (англ. bottleneck) традиционной архитектуры (необходимость выборки команд из памяти для их выполнения; выполнение одной команды в один момент времени; необходимость выборки данных для процессора даже в том случае, когда они не требуют обработки), следует перейти к новым парадигмам программирования (в первую очередь функциональной) и поддерживающим их архитектурам компьютеров. Статья Бэкуса стимулировала не только исследования в области программирования, но и работы по созданию компьютера с архитектурой, в той или иной степени отличающейся от фоннеймановской. Полный отказ от принципов фоннеймановской архитектуры реализован в компьютерах с т. н. потоковой (англ. dataflow) архитектурой. Ход вычислительного процесса в них определяется не порядком следования команд в программе, а динамически формирующимся потоком данных. Такой подход позволяет «распараллелить» вычисления на уровне команд, циклов, процедур, т. е. обеспечить низкоуровневый параллелизм. Первые работы в области потоковых вычислений появились в конце 1960-х гг. (Д. Адамс, 1968, и др.). В 1970-х – начале 1990-х гг. они проводились особенно интенсивно: было построено множество макетов потоковых компьютеров, предложены потоковые языки программирования – Id (1978), SISAL (1983) и др., а также реализованы первые коммерческие потоковые компьютеры. Однако при реализации чисто потоковой архитектуры возникает множество трудноразрешимых технических и технологических проблем (необходимость построения ассоциативной памяти большого объёма, сложных коммутаторов и др.). Поэтому многие современные параллельные компьютеры сочетают в своей архитектуре элементы фоннеймановской и потоковой моделей вычислений. См. также Нейрокомпьютер.
Классификация и принцип действия
По принципу действия и способу представления обрабатываемой информации компьютеры делятся на аналоговые (обрабатываемая информация представлена в виде непрерывно изменяющихся переменных, выраженных физическими величинами, например силой электрического тока, напряжением) и цифровые (информация представлена в виде набора дискретных значений какой-либо физической величины). По назначению различают компьютеры универсальные и специализированные (управляющие, бортовые, серверы, рабочие станции и др.). В зависимости от тех или иных характеристик [производительности (определяемой тактовой частотой работы устройств компьютера, пропускной способностью шин процессора и памяти и др.), ёмкости оперативной памяти, габаритов и др.] выделяют суперкомпьютеры (супер-ЭВМ), большие компьютеры (мейнфреймы – высокопроизводительные компьютеры, предназначенные, как правило, для организации централизованных хранилищ данных большой ёмкости), мини-компьютеры (в том числе персональный компьютер), микрокомпьютеры. Такая классификация носит несколько условный характер, поскольку подчас трудно провести границу между суперкомпьютерами и мейнфреймами. Так, представление о том, какими параметрами должен обладать суперкомпьютер, меняется со временем. Если компьютер CDC 6600 (1964), часто называемый первым суперкомпьютером, обладал производительностью около 10 млн операций/с, то в 2008 г. компьютер Roadrunner (построенный компанией IBM для Министерства энергетики США и установленный в Лос-Аламосской национальной лаборатории) впервые превысил рубеж 1 петафлопс (1,026 петафлопс), т. е. 1 квадриллион (1000 триллионов) операций/с (с плавающей запятой). Понятие микрокомпьютера было введено (в начале 1970-х гг.), чтобы выделить класс вычислительных машин, у которых центральный процессор выполнен в виде единого устройства на интегральной схеме (микропроцессор); в начале 21 в. в виде микропроцессоров реализованы центральные процессоры некоторых мейнфреймов и суперкомпьютеров. Однако данная классификация тем не менее позволяет ориентироваться в многообразии компьютеров. Традиционно компьютер отождествляют с ЭВМ, однако компьютеры могут быть не только электронными – известны электромеханические (релейные) компьютеры, оптические компьютеры. В начале 21 в. проводятся интенсивные исследования в области создания биологических компьютеров, основанных на взаимодействии живых клеток, биомолекул, вирусов и т. п. В 2006 г. в Колумбийском университете (США) был продемонстрирован прототип простейшего ДНК-компьютера MAYA-II (от англ. Molecular Array of YES and AND logic gates), успешно играющего в крестики-нолики против человека. Значительные усилия прилагаются к созданию квантового компьютера.
Применение
Благодаря быстрому росту количественных характеристик аппаратуры компьютеров (степень миниатюризации, быстродействие и др.) и постоянному снижению её стоимости, к началу 1990-х гг. компьютер стал обязательным атрибутом не только рабочих мест различных специалистов, но и быта. Это вызвало колоссальный рост рынка программного обеспечения (ПО), в том числе прикладных программ, ориентированных на неквалифицированного пользователя, а доступность программ самого разного назначения, в свою очередь, стимулировала дальнейший спрос на компьютеры.
Благодаря бурному развитию цифровых технологий множество современных бытовых устройств, таких как телевизоры, приставки для видеоигр, мобильные телефоны (смартфоны), по сути также являются специализированными, но вполне полноценными компьютерами, штатно допускающими подключение внешних периферийных устройств, обновление встроенного ПО и загрузку произвольных пользовательских кодов (приложений) извне. Некоторые из таких компьютеров функционируют под управлением специализированных версий операционных систем (ОС), основанных на широко распространённых ОС общего назначения (например, Android и WebOS, созданные на базе Linux), либо могут использовать их опционально (например, Sony PlayStation может загружать и исполнять ОС Linux). Многие интеллектуальные сетевые устройства, например маршрутизаторы и хранилища данных с сетевым подключением, фактически также являются компьютерами узкой специализации и при определённых условиях, например загрузке сторонней версии встроенного ПО, могут быть превращены в компьютеры общего назначения.
Простейшими компьютерами фактически являются разнообразные встроенные и мобильные вычислительные устройства, управляющие работой различных бытовых приборов, простых моделей мобильных телефонов, телевизоров, фотоаппаратов и т. д. В конце 20 – начале 21 вв. компьютер превратился в важнейший социальный и культурный феномен. Производство, связь, банковское дело, наука, образование, культура, искусство, средства массовой информации, быт благодаря внедрению компьютерных технологий (в том числе компьютерных сетей) претерпели радикальные изменения. Компьютер стал значимым фактором трансформации социальных, в том числе трудовых, отношений. Компьютер играет определяющую роль в обеспечении всеобщей доступности образования (дистанционное и другие формы обучения), научной информации (библиотеки JSTOR и др. через Интернет предоставляют доступ к оцифрованным выпускам научных журналов начиная с 17 в., одновременно электронный архив arXiv.org и др. позволяют обнародовать результаты исследований ещё до официальной публикации в рецензируемых изданиях), произведений художественной, философской и тому подобной литературы (электронные библиотеки, среди которых особо выделяются масштабами проекты Gutenberg, Internet Archive, и др.), художественных ценностей (виртуальные музеи, виртуальные экскурсии и др.). Использование компьютеров стимулировало появление новых художественных технологий (компьютерная графика, компьютерная анимация, веб-дизайн и др.).