Рис. 1.2. Ада Лавлейс. Фрагмент портрета работы Маргарет Сары Карпентер, 1836 год>17
Машины Бэббиджа представляли собой сложные механические конструкции из шестеренок, колес, рычагов и стержней. Развитие электроники в XX веке позволило спроектировать компьютеры, в которых уже не применялись механические компоненты. Первой серьезной электрической машиной стал ENIAC (Electronic Numerical Integrator and Computer[9]), созданный Преспером Эккертом и Джоном Мокли в 1940-х годах в Пенсильванском университете в Филадельфии. ENIAC занимал просторное помещение и требовал огромного количества электроэнергии, а выполнял при этом около 5000 операций сложения в секунду. Предполагалось, что устройство будут использовать для баллистических расчетов и тому подобного, но его достроили только в 1946 году, уже после окончания Второй мировой войны>18. (Части ENIAC выставлены в Электротехнической школе Мура при Пенсильванском университете.)
Еще Бэббидж четко понимал, что вычислительные устройства могут сохранять свои командные инструкции и данные в одной и той же форме. Но в памяти ENIAC содержалась только информация, а программировали его путем настройки соединений с помощью реле и переключения кабелей. Первые компьютеры, способные совместно хранить программы и данные, создали в Кембридже в 1949 году. Они назывались EDS АС (Electronic Delay Storage Automatic Calculator – электронные автоматические вычислители с задержкой хранения).
Вычислительными элементами для первых электронных компьютеров служили вакуумные трубки. Эти электронные устройства размером и формой примерно с цилиндрическую лампочку (см. рис. 1.7 в следующей главе) были дорогими, хрупкими, громоздкими и требовали много энергии. Современная эра вычислительной техники началась после изобретения транзистора (1947 год) и интегральных схем (1958 год). Благодаря этим технологиям электронные системы равномерно становились все более компактными, дешевыми и быстродействующими.
В следующих трех главах рассказывается об аппаратных средствах компьютеров, причем наибольшее внимание уделяется логической архитектуре вычислительных систем, а не подробностям их физического конструирования. Архитектура практически не менялась за последние десятилетия, тогда как оборудование преобразилось просто ошеломительно. В первой главе приводится обзор структуры и компонентов компьютера. Во второй главе показывается, как компьютеры представляют информацию в виде битов, байтов и двоичных чисел. В третьей главе объясняется, как вычислительные машины проводят расчеты – как они обрабатывают биты и байты, чтобы достичь результата.
1. Что такое компьютер?
Поскольку готовое устройство будет представлять собой вычислительную машину общего назначения, оно должно включать в себя главные блоки, относящиеся к арифметическим операциям, хранению в памяти, управлению и связи с человеком-оператором.
Артур У. Бёркс, Герман Х. Голдстайн, Джон фон Нейман.Предварительное рассмотрение логического устройства электронного вычислительного прибора>19, 1946
Давайте начнем обсуждение аппаратного обеспечения с обзора того, что представляет собой вычислительная машина. Мы рассмотрим ее по крайней мере с двух позиций: логической или функциональной организации (какие у нее части, что они делают и как соединены) и физической структуры (как выглядят части и как они сконструированы). Цель этой главы – разобраться, что такое компьютер и что у него внутри, узнать, что выполняет каждая его часть, и получить представление о том, что значат все эти бесчисленные сокращения и циферки.