ENIAC – первый электронный компьютер в мире
ENIAC – созданный в 1940 году как первый электронный компьютер в мире, он оказывает глубокое и продолжительное влияние на технологии, на которые мы полагаемся сегодня. Ниже будет подробная статья о компьютере ENIAC
Сокращенно от «Электронный числовой интегратор и компьютер», ENIAC – первый электронный компьютер, который используется для решения общих задач, таких как численные задачи. Он был изобретен Джоном Преспером Эккертом и Джоном Мочли в Университете Пенсильвании для обслуживания лаборатории баллистических исследований армии США.
Марк-1 на электромеханических реле
В 1943 г. американец Говард Эйкен с помощью работ Бэббиджа на основе техники 20 века – электромеханических реле – на одном из предприятий фирмы IBM смог построить такую машину под названием «Марк-1».
«Если бы Бэббидж жил на 75 лет позже, — заявил впоследствии Эйкен, — я бы остался без работы».
Еще раньше идеи Бэббиджа были переоткрыты немецким инженером Конрадом Цузе, который в 1941 г. построил аналогичную машину. Но это никак не связано с известнейшей американской фирмой IBM, поэтому является не столь распространенным фактом.
Технологии до ENIAC
На момент появления ENIAC большинство расчетов – как в бытовых, так и в научных целях – все ещё проводилось «вручную», то есть без использования сколь бы то ни было «умной» техники. Человек с бумагой и карандашом может сложить два числа длиной в 10 цифр примерно за 10 секунд. С карманным калькулятором – за 4 секунды. Гарвардский Mark 1 был последним электромеханическим компьютером и мог сложить два десятизначных числа за 0,3 секунды, в десять раз быстрее, чем человек.
В одном из интервью, записанном сыном его близкого друга в 1989 году (и изданном лишь в 2006), Джон Преспер Эккерт, один из тех, кто внёс наиболее значимый вклад в создание ENIAC, вспоминает, что во время его учебы в электротехнической школе Мура было два «анализатора» – копии машины Вэнивара Буша из MIT.
Эти анализаторы могли решать линейные дифференциальные уравнения – но не более того. При этом анализатор Буша оставался механическим устройством. Эккерт же хотел создать электронный вычислитель, поэтому первой его идеей было усовершенствование анализатора Буша:
Мы добавили [. ] более 400 электронных ламп, что, как и всё, что связанно с электроникой, было непросто сделать. [. ] Впоследствии мне захотелось проверить, можно ли сделать весь вычислительный процесс «электронным». Я поговорил об этом с Джоном Мокли.
В итоге появился ENIAC – первый электронный цифровой компьютер, который мог сложить те самые два десятизначных числа за 0,0002 секунды – в 50 000 раз быстрее человека, в 20 000 раз быстрее калькулятора и в 1 500 раз быстрее, чем Mark 1. А для специализированных научных вычислений он был ещё быстрее. При этом у учёных не было ни неограниченного запаса времени, ни права на ошибку:
Вся суть в том, что мы сделали машину, которая не потерпела неудачу сразу же. Если бы проект не добился результата, разработки в этой области замедлились бы надолго. Обычно люди строят прототипы, видят свои ошибки и начинают работу заново. Мы не могли так. Мы должны были сделать такую машину, которая заработала бы с первого раза.
Школа Мура и Абердин
А в это время Мокли оказался на том же месте, с которого и начинал. Не существовало волшебного фокуса для дешёвого электронного хранения, и пока он оставался в Урсинусе, у него не было средств воплотить электронную мечту в жизнь. И потом ему повезло. Тем же летом 1941 года он обучался на летнем курсе по электронике в Инженерной школе Мура при Пенсильванском университете. К тому времени Франция уже была оккупирована, Британия была в осаде, подводные лодки бороздили Атлантику, и отношения Америки с агрессивной экспансионистской Японией быстро ухудшались [а гитлеровская Германия напала на СССР / прим. перев.]. Несмотря на изоляционистские настроения среди населения, американская интервенция казалась возможной, а, вероятно, и неизбежной, элитарным группам из таких мест, как Пенсильванский университет. Школа Мура предлагала курс по повышению квалификации инженеров и учёных для ускорения подготовки к возможной военной работе, особенно по теме радарных технологий (у радара есть сходные с электронными вычислениями особенности: он использовал электронные лампы для создания и подсчёта количества высокочастотных импульсов и интервалов времени между ними; однако впоследствии Мокли отрицал наличие серьёзного влияния радаров на разработку ENIAC).
Инженерная школа Мура
Курс привёл к двум главным последствиям для Мокли: во-первых, связал его с Джоном Преспером Эккертом по прозвищу Прес, из местной семьи магнатов недвижимости, и молодого кудесника электроники, проводившего все свои дни в лаборатории телевизионного пионера Фило Фарнсуорта . Позже Эккерт разделит патент (который затем признают недействительным) на ENIAC с Мокли. Во-вторых, это обеспечило Мокли место в Школе Мура, закончив его долгую академическую изоляцию в болоте колледжа Урсинус. Это, судя по всему, произошло не из-за каких-то особых заслуг Мокли, но просто потому, что школа отчаянно нуждалась в людях на замену учёным, ушедшим работать над военными заказами.
Но к 1942-му году большая часть школы Мура сама стала работать над военным проектом: подсчётом баллистических траекторий при помощи механической и ручной работы. Этот проект органично вырос из существовавшей связи между школой и Абердинским испытательным полигоном, находившимся в 130 км дальше по побережью, в Мэриленде.
Полигон был создан во время Первой Мировой войны для проверки артиллерии, на замену предыдущего полигона в Сэнди-Хук, Нью-Джерси. Кроме непосредственных стрельб, его задача состояла в подсчёте огневых таблиц, используемых артиллерией в бою. Сопротивление воздуха не позволяло подсчитать место приземления снаряда, просто решив квадратное уравнение. Тем не менее высокая точность была чрезвычайно важна для артиллерийского огня, поскольку именно первые выстрелы заканчивались наибольшим поражением сил противника — после них противник быстро скрывался под землёй.
Для достижения такой точности современные армии составляли подробные таблицы, сообщавшие стрелкам, как далеко приземлится их снаряд после выстрела под определённым углом. Составители использовали начальную скорость и расположение снаряда для подсчёта его расположения и скорости через небольшой интервал времени, а потом повторяли те же подсчёты для следующего интервала, и так далее, сотни и тысячи раз. Для каждой комбинации пушки и снаряда такие расчёты нужно было проводить для всех возможных углов стрельбы, учитывая различные атмосферные условия. Счётная нагрузка была такой большой, что в Абердине закончили расчёты всех таблиц, начатые по завершению Первой Мировой, только к 1936-му году.
Очевидно, Абердину требовалось решение получше. В 1933 году он заключил договор со школой Мура: армия оплатит постройку двух дифференциальных анализаторов, аналоговых компьютеров, созданных по схеме из MIT под руководством
Демонстрация гаубицы в Абердине, ок. 1942
Однако в 1940-м исследовательское подразделение, называвшееся теперь Баллистической исследовательской лабораторией (Ballistic Research Laboratory, BRL), затребовало свою машину, стоявшую в школе Мура, и начало расчёты артиллерийских таблиц для надвигающейся войны. Счётную группу школы также привлекли для поддержки машины при помощи людей-вычислителей. К 1942 году 100 женщин-вычислителей в школе работали по шесть дней в неделю, перемалывая расчёты для войны — среди них была и жена Мокли, Мэри, работавшая над огневыми таблицами Абердина. Мокли сделали начальником над другой группой вычислителей, работавшей над расчётами для радарных антенн.
Как и в случае с «Колоссом» в Британии, авторитетное инженерное начальство в США, например, Комитет исследований по национальной обороне (National Defense Research Committee, NDRC) отнеслось к проекту ENIAC скептически. У школы Мура не было репутации элитного учебного заведения, однако же она предложила создать нечто неслыханное. Даже у таких индустриальных гигантов, как RCA, с трудом получалось создавать относительно простые электронные счётные схемы, не говоря уже о настраиваемом электронном компьютере. Джордж Стибиц, архитектор релейных компьютеров в лаборатории Белла, работавший тогда в проекте NDRC, считал, что на создание ENIAC уйдёт слишком много времени для того, чтобы он пригодился в войне.
В этом он оказался прав. На создание ENIAC уйдёт в два раза больше времени и в три раза больше средств, чем планировалось вначале. Он высосал основательную часть человеческих ресурсов школы Мура. На одну только разработку потребовалось привлечь ещё семерых человек, в дополнение к начальной группе Мокли, Эккерта и Брэйнерда. Как и «Колосс», ENIAC привлёк множество людей-вычислителей для помощи в настройке их электронной замены. Среди них были и жена Германа Голдстайна Адель, и Джин Дженнингс (позже Бартик), которым впоследствии предстоит важная работа по разработке компьютеров. Литеры NI в названии ENIAC предполагали, что школа Мура даёт армии цифровую, электронную версию дифференциального анализатора, который решал бы интегралы для траекторий быстрее и точнее своего аналогового механического предшественника. Но в результате у них получилось нечто гораздо большее.
Часть идей проекта могла быть позаимствована из предложения 1940 года, сделанного Ирвеном Трэвисом. Именно Трэвис участвовал в подписании договора на использование школой Мура анализатора в 1933 году, а в 1940-м он предложил улучшенную версию анализатора, хотя и не электронного, но работавшего на цифровом принципе. Он должен был использовать механические счётчики вместо аналоговых колёс. К 1943 году он ушёл из школы Мура и занял пост в руководстве флотом в Вашингтоне.
Основа возможностей ENIAC, опять-таки, как и у «Колосса», заключалась в разнообразии функциональных модулей. Чаще всего использовались аккумуляторы для сложения и подсчёта. Их схема была взята от электронных счётчиков Уинна-Уильямса, использовавшихся физиками, и они буквально занимались сложением при помощи счёта, так, как дошколята считают на пальцах. Друге функциональные модули включали умножители, генераторы функций, искавшими данные в таблицах, что заменяло подсчёт более сложных функций типа синуса и косинуса. Каждый модуль обладал собственными программными настройками, при помощи которых задавалась небольшая последовательность операций. Как и у «Колосса», программирование осуществлялось при помощи комбинации панели с переключателями и похожих на телефонные коммутаторы панели с гнёздами.
У ENIAC было несколько электромеханических частей, в частности, релейный регистр, служивший буфером между электронными аккумуляторами и перфораторными машинами от IBM, использовавшимися для ввода и вывода. Эта архитектура очень напоминала «Колосс». Сэм Уильямс из лабораторий Белла, сотрудничавший с Джорджом Стибицем на создании релейных компьютеров Белла, также построил регистр для ENIAC.
Ключевое отличие от «Колосса» сделало ENIAC более гибкой машиной: возможность программировать главные настройки. Главное программируемое устройство отправляло импульсы функциональным модулям, вызывавшие запуск предварительно установленных последовательностей, и получало ответные импульсы по завершению работы. Затем оно переходило на следующую операцию в главной управляющей последовательности, и выдавало нужные расчёты в виде функции множества более мелких последовательностей. Главное программируемое устройство могло принимать решения при помощи шагового двигателя: кольцевого счётчика, определявшего, на какую из шести выходных линий перенаправить импульс. Таким способом устройство могло выполнять до шести различных функциональных последовательностей в зависимости от текущего состояния шагового двигателя. Такая гибкость позволит ENIAC решать задачи, весьма далёкие от его первоначальной компетенции в области баллистики.
Настройка ENIAC при помощи переключателей и коммутаторов
Эккерт отвечал за то, чтобы вся электроника в этом чудовище жужжала и гудела, и он самостоятельно придумал те же самые основные хитрости, что и Флауэрс в Блетчли: лампы должны работать на токах, гораздо меньших штатных, и машину не надо выключать. Но из-за огромного количества используемых ламп требовалась ещё одна хитрость: подключаемые модули, на каждом из которых монтировалось несколько десятков ламп, можно было легко вынимать и заменять в случае их отказа. Затем обслуживающий персонал без спешки находил и заменял отказавшую лампу, а ENIAC был сразу готов к работе. И даже со всеми этими предосторожностями, учитывая огромное количество ламп в ENIAC, он не мог заниматься расчётами задачи все выходные или всю ночь, как это делали релейные компьютеры. В какой-то момент обязательно перегорала лампа.
Пример множества ламп в ENIAC
Отзывы об ENIAC часто упоминают его огромные размеры. Ряды стеллажей с лампами — всего их было 18 000 штук — переключателями и коммутаторами заняли бы типичный загородный дом и лужайку перед ним в придачу. Его размер был обусловлен не только его компонентами (лампы были относительно крупными), но и странной архитектурой. И хотя все компьютеры середины века по современным понятиям кажутся крупными, следующее поколение электронных компьютеров было гораздо меньше ENIAC, и обладало большими возможностями при использовании одной десятой части электронных компонентов.
Панорама ENIAC в школе Мура
Гротескный размер ENIAC проистекал из двух основных проектировочных решений. Первое стремилось увеличить потенциальную скорость за счёт стоимости и сложности. После этого практически все компьютеры хранили числа в регистрах, а обрабатывали их в отдельных арифметических модулях, снова сохраняя результаты в регистре. ENIAC не отделял модули хранения и обработки. Каждый модуль хранения чисел одновременно был и обрабатывающим модулем, способным складывать и вычитать, из-за чего требовал гораздо больше ламп. Его можно было рассматривать как сильно ускоренную версию отдела людей-вычислителей в школе Мура, поскольку «его вычислительная архитектура напоминала двадцать людей-вычислителей, работающих с десятизначными настольными калькуляторами, передающих результаты вычислений туда и сюда». В теории это позволяло ENIAC проводить параллельные вычисления на нескольких аккумуляторах, но эту возможность использовали мало, а в 1948 году и вовсе устранили.
Второе проектировочное решение оправдать сложнее. В отличие от ABC или релейных машин Белла, ENIAC не хранил числа в двоичном виде. Он переводил десятичные механические вычисления прямо в электронный вид, с десятью триггерами на каждую цифру — если горел первый, это был ноль, второй — 1, третий — 2, и т.п. Это был огромный расход дорогих электронных компонентов (к примеру, для представления числа
1000 в двоичном виде требуется 10 триггеров, по одному на двоичную цифру (1111101000); а в схеме ENIAC для этого требовалось 40 триггеров, по десять на десятичную цифру), который, судя по всему, был организован только из-за страха возможных сложностей преобразования между двоичной и десятичной системами. Однако же компьютер Атанасова-Берри, «Колосс», и релейные машины Белла и Цузе использовали двоичную систему, и у их разработчиков не было никаких сложностей с преобразованием между основаниями.
Такие дизайнерские решения повторять никто не будет. В этом смысле ENIAC был похож на ABC — уникальная диковинка, а не шаблон для всех современных компьютеров. Однако же его преимущество было в том, что он доказал, вне всяких сомнений, работоспособность электронных компьютеров, выполняя полезную работу, и решая реальные задачи с удивительной для окружающих скоростью.
Классификация
Типизация по назначению
На станции метро в городе Шэньчжэнь установлена гигантская клавиатура. Во время ожидания поезда, вы можете посидеть на клавишах Enter, M,
- Калькулятор
- Консольный компьютер
- Миникомпьютер
- Мэйнфрейм
- Персональный компьютер
- Игровая приставка (Игровая консоль)
- Карманный компьютер (КПК)
- Одеваемый компьютер
- Настольный компьютер
- Ноутбук (Лэптоп)
По системам счисления
По элементной основе
- релейные
- ламповые
- ферритдиодные
- транзисторные дискретные
- транзисторные интегральные
Первая троичная ЭВМ «Сетунь» на ферритдиодных ячейках была построена Брусенцовым в МГУ.
Поверхностный характер представленного подхода к классификации компьютеров очевиден. Он обычно используется лишь для обозначения общих черт наиболее часто встречающихся компьютерных устройств. Быстрые темпы развития вычислительной техники означают постоянное расширение областей её применения и быстрое устаревание используемых понятий. Для более строгого описания особенностей того или иного компьютера обычно требуется использовать другие схемы классификаций.
Физическая реализация
Более строгий подход к классификации основан на отслеживании используемых при создании компьютеров технологий. Не секрет, что самые ранние компьютеры были полностью механическими системами. Тем не менее уже в 30-х годах XX века телекоммуникационная промышленность предложила разработчикам новые, электромеханические компоненты (реле), а в 40-х были созданы первые полностью электронные компьютеры, имевшие в своей основе вакуумные электронные лампы. В 50-х — 60-х годах на смену лампам пришли транзисторы, а в конце 60-х — начале 70-х годов — используемые и сегодня полупроводниковые интегральные схемы (кремниевые чипы).
Одним из первых полупроводников были точечные диоды на основе сульфида свинца (Pb) и окиси олова (Sn) в детекторных радиоприёмниках. Позже были разработаны полупроводники на основе германия (Ge). Ещё позже были разработаны полупроводники на основе кремния (Si). Если посмотреть на положение этих элементов в периодической таблице Д.И.Менделеева, то можно заметить, что все они находятся в одной колонке и движение происходит вверх по колонке в таблице Менделеева, поэтому можно предположить, что следующие полупроводники будут разработаны на основе углерода (C Язык программирования). На планете Земля белковые живые существа в своих «думателях» (мозгах) используют белковые образования (нейроны), построенные из белковых молекул, которые в основном являются длинными углеводородными молекулами, т.е. некоторые белки являются полупроводниками на основе углерода (C Язык программирования). Наиболее совершенным мозгом из белковых существ на планете Земля обладает человек.
Приведённый перечень технологий не является исчерпывающим; он описывает только основную тенденцию развития вычислительной техники. В разные периоды истории исследовалась возможность создания вычислительных машин на основе множества других, ныне позабытых и порою весьма экзотических технологий. Например, существовали планы создания гидравлических и пневматических компьютеров, между 1903 и 1909 годами некто Перси И. Луджет даже разрабатывал проект программируемой аналитической машины, работающей на базе пошивочных механизмов (переменные этого вычислителя планировалось определять при помощи ниточных катушек).
В настоящее время ведутся серьёзные работы по созданию оптических компьютеров, использующих вместо традиционного электричества световые сигналы. Другое перспективное направление подразумевает использование достижений молекулярной биологии и исследований ДНК. И, наконец, один из самых новых подходов, способный привести к грандиозным изменениям в области вычислительной техники, основан на разработке квантовых компьютеров.
Впрочем, в большинстве случаев технология исполнения компьютера является гораздо менее важной, чем заложенные в его основу конструкторские решения.
- Квантовый компьютер и квантовая связь
- Механический компьютер
- Оптический компьютер
- Пневматический компьютер
- Электронный компьютер
- Биологический компьютер
Файловые системы
Исторически первой составляющей операционных систем, поддерживающей работу с дисками, стали файловые системы, поначалу их функционал был ограничен распределением дискового пространства и сохранением имен файлов, присвоенных пользователями.
Компьютерный файл – это самый нижний уровень абстрагирования данных от физического хранения, существующих в виде байтов на носителе. Сегодня, говоря о файлах, чаще всего подразумевают файлы на дисках, к тому же данные в форме файлов хранятся и на флэшках, CD, DVD и на лентах резервного копирования. На компьютерах понятие «файлы» использовали с сороковых годов, так называли колоду перфокарт.
На чем бы ни хранился файл, он состоит из массива данных и фолдера – контейнера, содержащего данные, с уникальным идентификатором. В приложении к компьютерным данным фолдер называют метаданными, то есть данными о данных. Термин «дисковый файл» (disk file) впервые был употреблен в документации к диску IBM 350 (1956), а «файловая система» (file system) в одной из первых операционных с разделением времени Compatible Time-Sharing System (CTSS), разработанной в Массачусетском технологическом институте в 1961 году. На ее основе была создана OC Multics, которая в свою очередь вдохновила создателей Unix.
В 1973 году Гарри Килдал разработал файловую систему в составе своей ОС CP/M для 8-разрядного ПК, ее он затем переделал в DR-DOS 16- разрядного ПК, после чего в результате несложной комбинации против воли автора эта файловая система обрела новое воплощение в виде File Allocation Table (FAT) компании Micrоsoft.
По мере увеличения размеров дисков возникали новые файловые системы, одним из важнейших шагов стала Unix File System (UFS), она дала толчок к развитию целой плеяды файловых систем. Вершиной стала 128-битовая файловая систем Zettabyte File System (ZFS), разработанная в Sun Micro Systems.
В последние годы под влиянием необходимости работать с большими данными развитие файловых систем ускорилось. Их можно разделить на две категории: распределенные, обычно устанавливаемые на кластеры, и традиционные, но рассчитанные на работу с большим объемами данных. Из первых наибольшую известность получили Lustre, GPFS и две системы, созданные «по мотивам»
Lustre, — GlusterFS и Ceph. Система GPFS является коммерческой, остальные доступны в открытых кодах. Менее популярны системы XtreemFS, MogileFS, pNFS, ParaScale, CAStor и Tahoe-LAFS. Во второй категории безусловный лидер – ZFS и близкая ей LZJB, дополненная алгоритмом сжатия данных без потерь. Кроме этого имеются еще NILFS, разработанная в Nippon Telephone and Telegraph CyberSpace Laboratories, и Veritas File System, разработанная компанией Veritas Software. Не исключено и паллиативное решение, где совмещаются файловые системы из обеих групп.
Подробнее об эволюции СХД читайте здесь.
Конструктивные особенности
Современные компьютеры используют весь спектр конструкторских решений, разработанных за всё время развития вычислительной техники. Эти решения, как правило, не зависят от физической реализации компьютеров, а сами являются основой, на которую опираются разработчики. Ниже приведены наиболее важные вопросы, решаемые создателями компьютеров:
Цифровой или аналоговый
Фундаментальным решением при проектировании компьютера является выбор, будет ли он цифровой или аналоговой системой. Если цифровые компьютеры работают с дискретными численными или символьными переменными, то аналоговые предназначены для обработки непрерывных потоков поступающих данных. Сегодня цифровые компьютеры имеют значительно более широкий диапазон применения, хотя их аналоговые собратья все ещё используются для некоторых специальных целей. Следует также упомянуть, что здесь возможны и другие подходы, применяемые, к примеру, в импульсных и квантовых вычислениях, однако пока что они являются либо узкоспециализированными, либо экспериментальными решениями.
Среди наиболее простых дискретных вычислителей известен абак, или обыкновенные счёты; наиболее сложной из такого рода систем является суперкомпьютер.
Двоичный, десятичный или троичный
Примером компьютера на основе десятичной системы счисления является первая американская вычислительная машина Марк I.
Важнейшим шагом в развитии вычислительной техники стал переход к внутреннему представлению чисел в двоичной форме. Это значительно упростило конструкции вычислительных устройств и периферийного оборудования. Принятие за основу двоичной системы счисления позволило более просто реализовывать арифметические функции и логические операции.
Тем не менее переход к двоичной логике был не мгновенным и безоговорочным процессом. Многие конструкторы пытались разработать компьютеры на основе более привычной для человека десятичной системы счисления. Применялись и другие конструктивные решения. Так, одна из ранних советских машин работала на основе троичной системы счисления, использование которой во многих отношениях более выгодно и удобно по сравнению с двоичной системой (проект троичного компьютера Сетунь был разработан и реализован талантливым советским инженером Н. П. Брусенцовым).
Наибольшей плотностью записи данных обладает система счисления с основанием равным основанию натуральных логарифмов, то есть равным числу е=2,71… . Из целочисленных систем счисления наибольшей плотностью записи данных обладает троичная система счисления, двоичная и четверичная системы счисления делят второе место. Поэтому, при одинаковой технологии (число инверторов на 1 мм^2), троичные компьютеры имеют значительно большую ёмкость оперативной памяти и большую производительность процессора. Троичная логика целиком включает в себя двоичную логику, как центральное подмножество, поэтому троичные компьютеры могут всё, что могут двоичные, плюс возможности троичной логики. Например, операции умножения и деления на 3 и на 3^n в двоичных компьютерах выполняются микропрограммами, а в троичных компьютерах выполняются аппаратно одной командой сдвига на 1 или n разрядов вправо или влево. Троичные алгоритмы работают быстрее двоичных алгоритмов, но на двоичных компьютерах это преимущество теряется.
Ещё больший объём памяти и производительность имеют компьютеры с нецелочисленной системой счисления с нецелочисленным основанием равным числу е=2,71. .
В целом, однако, выбор внутренней системы представления данных не меняет базовых принципов работы компьютера — любой компьютер может эмулировать любой другой.
Программируемый
Способность машины к выполнению определённого изменяемого набора инструкций (программы) без необходимости физической переконфигурации является фундаментальной особенностью компьютеров. Дальнейшее развитие эта особенность получила, когда машины приобрели способность динамически управлять процессом выполнения программы. Это позволяет компьютерам самостоятельно изменять порядок выполнения инструкций программы в зависимости от состояния данных.
Хранящий программы и данные
Во время выполнения вычислений часто бывает необходимо сохранить промежуточные данные для их дальнейшего использования. Производительность многих компьютеров в значительной степени определяется скоростью, с которой они могут читать и писать значения в (из) памяти и её общей ёмкости. Первоначально компьютерная память использовалась только для хранения промежуточных значений, но вскоре было предложено сохранять код программы в той же самой памяти (См. Архитектура фон Неймана), что и данные. Это удачное решение используется сегодня в большинстве компьютерных систем. Однако для управляющих контроллеров (микро-ЭВМ) более удобной оказалась схема, при которой данные и программы хранятся в различных разделах памяти (гарвардская архитектура).
Классификация по способностям
Одним из наиболее простых способов классифицировать различные типы вычислительных устройств является определение их способностей. Все вычислители могут, таким образом, быть отнесены к одному из трёх типов:
- специализированные устройства, умеющие выполнять только одну функцию (например, Антикитерский механизм87 год до н. э. или ниточный предсказатель Вильяма Томсона1876 года);
- устройства специального назначения, которые могут выполнять ограниченный диапазон функций (первая разностная машина Чарльза Бэббиджа и разнообразные дифференциальные анализаторы);
- устройства общего назначения, используемые сегодня. Название компьютер применяется, как правило, именно к машинам общего назначения.
Современный компьютер общего назначения
При рассмотрении современных компьютеров наиболее важной особенностью, отличающей их от ранних вычислительных устройств, является то, что при соответствующем программировании любой компьютер может подражать поведению любого другого (хоть эта возможность и ограничена, к примеру, вместимостью средств хранения данных или различием в скорости). Таким образом, предполагается, что современные машины могут эмулировать любое вычислительное устройство будущего, которое когда-либо может быть создано. В некотором смысле эта пороговая способность полезна для различия компьютеров общего назначения и устройств специального назначения. Определение «компьютер общего назначения» может быть формализовано в требовании, чтобы конкретный компьютер был способен подражать поведению универсальной машины Тьюринга. Первым компьютером, удовлетворяющим такому условию, считается машина Z3, созданная немецким инженером Конрадом Цузе в 1941 году (доказательство этого факта было сделано в 1998).