10 лет назад 17 апреля 2014 в 12:37 1695

Бэббидж

В XIX век — век парового двигателя и газовых горелок — Европа влетела очень энергично, под барабанный бой и орудийную канонаду. Большие батальоны Наполеона Бонапарта очень аккуратно и быстро перекроили политическую карту мира. Как всюду и всегда, отжившая свое система спасовала перед новыми методами управления. Люди работали с точностью часового механизма — первый консул Французской республики на этот счет был лаконичен и последователен: «Не давать людям состариться — в этом состоит большое искусство управления». Неудивительно, что в конечном счете и управление механизмами пришлось подтягивать до уровня управления людьми.

Как помнит Читатель (см. Upgrade # 51 (89)), в 1804 году (по некоторым данным — в 1801-м) французский изобретатель Жозеф Мари Жаккар разработал новый способ управления ткацким станком. Да-с, доложу я вам, потребность бесконечно воюющей Французской республики (а со 2 декабря 1804 года — Империи) в текстиле вручную удовлетворить уже не представлялось возможным.

А вот интересно, если бы одежда в то время не изнашивалась так быстро (чаще всего, изорванная в клочья, она оставалась гнить где-нибудь под Маренго или Аустерлицем вместе со своим хозяином), пришло бы в голову Жаккару автоматизировать процесс управления ткацким станком? Хотя сама идея появилась несколько раньше: в 1725 году некий Базиль Бушон предложил метод изготовления сложных узоров на ткацком станке с помощью команд на перфорированной бумажной ленте. Но то было время удушливого абсолютизма: слабовольный Людовик XV, первый министр кардинал Флери с его сокращением госрасходов, разные там фавориты и фаворитки — короче, изобретателям того времени приходилось туговато.

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


bebbidge


Тем, кто не читал предыдущей статьи, напомню, что Жозеф Мари Жаккар придумал способ программировать работу ткацкого станка для быстрого перехода от одного узора к другому. Для этого Жаккар применял специальные карточки со специально пробитыми отверстиями — перфорациями. Карты-перфокарты соединялись друг с другом, образуя нечто вроде ленты.

Эту ленту перфокарт историки вычислительной техники относят к одному из самых ключевых открытий, обусловивших компьютеризацию всего мира. Однако сам Жаккар об этом даже не догадывался, ибо непосредственно в вычислительном устройстве его изобретение — перфокарта — было использовано в тот год, когда сам изобретатель отошел в мир иной, в 1834-м. 

26 декабря 1791 года в семье богатого английского банкира Бэббиджа родился сын, получивший имя Чарльз. Чарльз рос очень серьезным и умненьким мальчиком, уроков не прогуливал, пиво пил в очень умеренных количествах и, как результат, через какое-то время стал заведовать кафедрой математики Кембриджского университета (да-да, той самой, которой когда-то заведовал сам сэр Исаак Ньютон).

Бэббидж был одним из основателей Королевского астрономического общества (нет, ну хоть бы кто-нибудь мне ответил: почему астрономов так тянуло изобретать вычислительную технику?). Он много писал на самые разнообразные темы (не исключая политики, как же без нее?). Но в 1821 году, обнаружив погрешности в логарифмах Неппера (создателя одноименных палочек), приступил к изготовлению так называемой «разностной машины», которая могла бы выполнять более точные вычисления.

В 1822 году пробная модель была построена. Она могла не только рассчитывать, но и печатать (!) большие математические таблицы. Проект этой машины был представлен Королевскому астрономическому обществу, но… Что-то там не заладилось, и в 1832 году Бэббидж приступает к работе над новым проектом: «аналитическая машина». И вот тут произошла одна из тех эпохальных встреч, которая серьезно повлияла на развитие компьютерной техники будущего.

В 1833 году Чарльз Бэббидж познакомился с 18-летней Августой Адой Кинг Лавлейс, дочерью самого Байрона. Нам неизвестно, вскружила ли молоденькая, изучавшая астрономию, латынь, музыку и математику Ада Лавлейс голову 41-летнему Бэббиджу, но вскоре она приняла самое горячее участие в его проекте по созданию «аналитической машины», работая над созданием программ.

Аде Лавлейс принадлежит авторство таких терминов, как «рабочая ячейка» и «цикл» — краеугольные понятия современного программирования (рабочую ячейку, правда, сейчас называют переменной). В 1843 году Ада Лавлейс опубликовала (под псевдонимом) свои заметки о разработке «аналитической машины». В этих заметках использовались такие понятия, как «подпрограмма», «библиотека подпрограмм», «модификация команд», «индексный регистр» и некоторые другие из арсенала современных программистов.

Фактически, Ада Лавлейс опередила свое время на целых сто лет и по праву считается первым программистом. Стоит призадуматься над тем фактом, что первым программистом в истории человечества была женщина. К сожалению, эта выдающаяся женщина прожила всего 37 лет и скончалась в 1852 году — ровно за сто лет до начала использования ее идей. Именем Ады Лавлейс назван объектно-ориентированный язык программирования (АДА), разработанный по заказу Министерства обороны США в 70-х годах XX века.

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

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

Короче говоря, Чарльз Бэббидж и Ада Лавлейс практически изобрели вполне работоспособный компьютер, принципы функционирования которого ничем не отличались от тех, что лежат в основе современных машин. Но они настолько опередили свое время, что технологически осуществить проект не было никакой возможности. Размер «машины» должен был быть сопоставим с размерами небольшого паровоза.

Да и привести в движение это жуткое нагромождение разных металлических и деревянных конструкций, шестеренок и т. п. деталей мог лишь один движок — паровой двигатель. Словом, в середине XIX века речь могла идти только о паро-вычислительной машине. Не удивительно, что в конечном итоге машина так и не была построена. Увы! А ведь как замечательно могло бы пойти развитие цивилизации, появись компьютер (хотя бы и на паровом ходу) уже в середине XIX века… Эх!

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

Так вот, о гипотетических цветных дисплеях в начале XX века. Есть такое понятие «ботаник» — этакая разновидность некомпанейского никчемного чудика, от которого не приходится ожидать ничего путного… Хм-м-м… Так вот, одно из самых востребованных современной цивилизацией изобретений сделал именно ботаник — австриец Ф. Рейницер, который вместе с физиком О. Леманом, изучая в 1889 г. свойства органических веществ, открыл жидкости, молекулы которых сохраняют определенную упорядоченность и анизотропию свойств, характерную для монокристаллов.

Под воздействием слабого тока продолговатые молекулы, из которых состоят эти жидкости, упорядоченно выстраиваются в одном направлении. Если, скажем, поместить капельку этой жидкости в зазор (шириной эдак в 0,01 мм) между двумя стеклянными пластинками, на которых нанесены бороздки в одном направлении, то в обычном состоянии эти пластинки будут свободно пропускать свет.

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

Но мы несколько забежали вперед. В 1847 году английский математик Джордж Буль опубликовал работу «Математический анализ логики». В определенном смысле, в этой работе развивались дальнейшие идеи Лейбница о двоичных числах. В основе логики Джорджа Буля лежит положение о так называемых элементарных утверждениях, которые могут принимать только два значения: истина или ложь.

Например, утверждение «2 равно 3» — ложное, а вот «Солнце — источник энергии» — истинное. Элементарные утверждения можно объединять в более сложные на основе определенных правил (AND, OR, NOT), но результат сложного утверждения также может принимать лишь одно из двух значений: истина или ложь. Заменяя слово «истина» на 1, «ложь» — на 0, можно использовать эти правила в любых двоичных автоматах, каковыми и являются современные компьютеры. Сегодня любая программа функционирует на основе булевой алгебры.

В 1867 году на свет божий появился некий аппарат для последовательной нумерации книжных страниц. Чуть позже ее изобретатели — американский издатель Кристофер Шоулз и Крал Глиццен — доработали аппарат, создав пишущую машинку — прообраз современной QWERTY-клавиатуры.

Разница заключалась в том, что в клавиатуре Шоулза и Глиццена заглавные и строчные буквы располагались отдельно. Клавиша Shift была добавлена только в 1878 году. Подумать только, целых 11 лет понадобилось, чтобы изобрести такую очевидную (с нашей точки зрения) штуку!

В XIX веке появилась также масса изобретений, которые непосредственно с вычислительной техникой связаны не были, но без которых электронно-вычислительная машина не могла появиться: 1837 — электрический телеграф (передача информации при помощи электронов); 1843 — код Морзе (первая система кодирования для электронных каналов связи); 1876 — телефон (как бы без него появился модем?); 1878 — электрическая лампа (первые электронные компьютеры были ламповыми).

В 1884 году один американский инженер — Герман Холлерит — запатентовал свою машину для переписи населения. Данные в этой машине хранились на перфокартах, а вот сам счет выполнялся при помощи электричества. Это уже было ого-го! В 1897 году для переписи населения 1911 года эту машину приобрело даже российское правительство (уж извиняюсь за это «даже»).

Свою машину Холлерит назвал «табулятор». В 1911 году он продал свою фирму по производству табуляторов, и после этого она стала называться Tabulating Recording Co. 14 февраля 1924 года эта фирма сменила свое название и стала называться International Business Machines, сокращенно — IBM. Но это уже другая история…

Регистры центрального процессора

 
Непосредственная обработка данных в современном компьютере происходит в центральном процессоре.

Причем для выполнения очередной команды данные (в виде элементарных двоичных чисел) загружаются в один из основных регистров.

В процессорах семейства Intel имеется четыре 16-битных основных регистра: AX (аккумулятор), BX (база), CX (счетчик) и DX (данные).

Начиная с процессора i80386, емкость этих регистров увеличилась вдвое (32 бита), и в их название добавлен префикс E (extended): (E)AX, (E)BX, (E)CX и (E)DX (а начиная с процессора Pentium, емкость регистров увеличилась до 64 бит).

Кроме того, в процессорах семейства Intel существуют четыре сегментных регистра (CS, DS, SS, ES) для вычисления адресов хранения выполняемых команд и адресов загружаемых данных.

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

Но сама идея регистра, как некоторой ячейки, предназначенной для непосредственной обработки данных, впервые появилась в результате совместной работы Чарльза Бэббиджа и Ады Лавлейс над «аналитической машиной».

Дмитрий Румянцев

Никто не прокомментировал материал. Есть мысли?