ENIGMA Стимулом к созданию электронного компьютера стала Вторая мировая война. В начале войны германские подводные лодки разрушали британские корабли. Германские адмиралы посылали на подводные лодки по радио команды, а англичане могли перехватывать эти команды. Проблема заключалась в том, что эти радиопослания были закодированы с помощью прибора под названием ENIGMA, предшественник которого был спроектирован изобретателем-дилетантом и бывшим президентом США Томасом Джефферсоном.
В начале войны англичанам удалось приобрести ENIGMA у поляков, которые, в свою очередь, украли его у немцев. Однако чтобы расшифровать закодированное послание, требовалось огромное количество вычислений, и их нужно было произвести сразу после того, как радиопослание было перехвачено. Поэтому британское правительство основало секретную лабораторию для создания электронного компьютера под названием COLOSSUS. В создании этой машины принимал участие знаменитый британский математик Алан Тьюринг. COLOSSUS работал уже в 1943 году, но так как британское правительство полностью контролировало этот проект и рассматривало его как военную тайну на протяжении 30 лет, COLOSSUS не мог служить основой дальнейшего развития компьютеров. Мы упомянули его только потому, что это был первый в мире электронный цифровой компьютер.
ENIAC
В 1943 году, Дж. Моушли со своим студентом Дж. Преспером Экертом (J. Presper Eckert) начали конструировать электронный компьютер, который назвали ENIAC (Electronic Numerical Integratorand Computer — электронный цифровой интегратор и калькулятор). ENIAC состоял из 18000 электровакуумных ламп и 1500 реле, весил 30 тонн и потреблял 140 киловатт электроэнергии.
У машины было 20 регистров, каждый из которых мог содержать 10-разрядное десятичное число. (Десятичный регистр — это память очень маленького объема, которая может вмещать число до какого-либо определенного максимального количества разрядов.) В ENIAC было установлено 6000 многоканальных переключателей и имелось множество кабелей, протянутых к разъемам.
Экерт и Моушли хотели получить патент на изобретение цифровой вычислительной машины. После нескольких лет судебной тяжбы было вынесено решение, что патент недействителен, так как цифровую вычислительную машину изобрел Атанасов, хотя он и не запатентовал свое изобретение.
В то время как Экерт и Моушли работали над машиной EDVAC, один из участников проекта ENIAC, Джон фон Нейман, поехал в Институт специальных исследований в Принстоне, чтобы сконструировать свою собственную версию EDVAC, машину IAS1. Фон Нейман был гением в тех же областях, что и Леонардо да Винчи. Он знал много языков, был специалистом в физике и математике и обладал феноменальной памятью; он помнил все, что когда-либо слышал, видел или читал. Он мог дословно процитировать по памяти тексты книг, которые читал несколько лет назад. Когда фон Нейман стал интересоваться вычислительными машинами, он уже был самым знаменитым математиком в мире.
Фон Нейман вскоре осознал, что создание компьютеров с большим количеством переключателей и кабелей требует длительного времени и очень утомительно. Он пришел к мысли, что программа должна быть представлена в памяти компьютера в цифровой форме, вместе с данными. Он также отметил, что десятичная арифметика, используемая в машине ENIAC, где каждый разряд представлялся 10 электронными лампами (1 включена и 9 выключены), должна быть заменена бинарной арифметикой.
Основной проект, который он описал вначале, известен сейчас как фон-неймановская вычислительная машина. Он был использован в EDS АС, первой машине с программой в памяти, и даже сейчас, более чем полвека спустя, является основой большинства современных цифровых компьютеров. Этот замысел и машина IAS оказали очень большое влияние на дальнейшее развитие компьютерной техники, поэтому стоит кратко описать его. Схема архитектуры этой машины дана на рис. 1.4.
Ниже приводится перечень тех наиболее общих принципов построения ЭВМ, которые относятся к архитектуре:
* структура памяти ЭВМ;
* способы доступа к памяти и внешним устройствам;
* возможность изменения конфигурации компьютера;
* система команд;
* форматы данных;
* организация интерфейса.
Суммируя все вышеизложенное, получаем следующее определение архитектуры:
«Архитектура - это наиболее общие принципы построения ЭВМ, реализующие программное управление работой и взаимодействием основных ее функциональных узлов».