Страницы: -
1 -
2 -
3 -
4 -
5 -
6 -
7 -
8 -
9 -
10 -
11 -
12 -
13 -
14 -
15 -
16 -
17 -
18 -
19 -
20 -
21 -
22 -
23 -
24 -
25 -
26 -
27 -
28 -
29 -
30 -
31 -
32 -
33 -
34 -
ппараты в годы моего детства, по сути, были
арифмометрами с отделениями для наличности.
Более полутора столетий назад видного британского математика озарила
гениальная идея, которая прославила его имя уже при жизни. Чарлз Беббидж
(Charles Babbage), профессор математики Кембриджского университета, по-
нял, что можно построить механическое устройство, способное выполнять
последовательность взаимосвязанных вычислений, - своего рода компьютер !
Где-то в начале тридцатых годов прошлого столетия он пришел к выводу,
что машина сможет манипулировать информацией, если только ту удастся
преобразовать в числа. Беббидж видел машину, приводимую в действие па-
ром, состоящую из штифтов, зубчатых колес, цилиндров и других механичес-
ких частей - в общем, настоящее детище начинавшегося тогда индустри-
ального века. По мысли Беббиджа, "аналитическая машина" должна была из-
бавить человечество от монотонных вычислений и ошибок, с ними связанных.
Для описания устройства машины ему, конечно, не хватало терминов -
тех, которыми мы пользуемся сегодня. Центральный процессор, или "рабочие
внутренности" этой машины, он называл "мельницей", а память - "хранили-
щем". Беббиджу казалось, что информацию будут обрабатывать так же, как
хлопок: подавать со склада (хранилища) и превращать во что-то новое.
Аналитическая машина задумывалась как механическая, но ученый предви-
дел, что она сможет следовать варьируемым наборам инструкций и тем самым
служить разным целям. В том же и смысл программного обеспечения. Совре-
менная программа - это внушительный набор правил, посредством которых
машину "инструктируют", как решать ту или иную задачу. Беббидж понимал,
что для ввода таких инструкций нужен совершенно новый тип языка, и он
изобрел его, использовав цифры, буквы, стрелки и другие символы. Этот
язык позволил бы "программировать" аналитическую машину длинными сериями
условных инструкций, что, в свою очередь, позволило бы машине реагиро-
вать на изменение ситуации. Он - первый, кто увидел, что одна машина
способна выполнять разные функции.
Следующее столетие ученые математики работали над идеями, высказанны-
ми Беббиджем, и к середине сороковых годов нашего века электронный
компьютер наконец был построен - на основе принципов аналитической маши-
ны. Создателей современного компьютера выделить трудно, поскольку все
исследования проводились во время второй мировой войны под покровом пол-
ной секретности, главным образом - в Соединенных Штатах и Великобрита-
нии. Основной вклад внесли три человека: Алан Тьюринг (Alan Turing),
Клод Шеннон (Claude Shannon) и Джон фон Нейман (John von Neumann).
В середине тридцатых годов Алан Тьюринг - блестящий британский мате-
матик, как и Беббидж, получивший образование в Кембридже, предложил свой
вариант универсальной вычислительной машины, которая могла бы в зависи-
мости от конкретных инструкций работать практически с любым видом инфор-
мации. Сегодня она известна как машина Тьюринга.
А в конце тридцатых Клод Шеннон, тогда еще студент, доказал, что ма-
шина, исполняющая логические инструкции, может манипулировать информаци-
ей. В своей магистерской диссертации он рассмотрел, как с помощью элект-
рических цепей компьютера выполнять логические операции, где единица -
"истина" (цепь замкнута), а нуль - "ложь" (цепь разомкнута).
Здесь речь идет о двоичной системе счисления, иначе говоря, о коде.
Двоичная система - это азбука электронных компьютеров, основа языка, на
который переводится и с помощью которого хранится и используется вся ин-
формация в компьютере. Эта система очень проста и в то же время нас-
только важна для понимания того, как работают компьютеры, что, пожалуй,
стоит на этом задержаться.
Представьте, что в Вашей комнате должна гореть лампа мощностью в 250
ватт. Однако Вы хотите регулировать освещение от 0 ватт (полная темнота)
до максимума. Один из способов добиться этого - воспользоваться выключа-
телем с регулятором. Чтобы погасить лампу, Вы поворачиваете ручку против
часовой стрелки в положение "выкл" (0 ватт), а чтобы включить ее "на всю
катушку", - по часовой стрелке до упора (250 ватт). Ну а чтобы добиться
полумрака или просто уменьшить яркость, Вы устанавливаете регулятор в
какое-то промежуточное положение.
Такая система проста, но имеет свои ограничения. Если регулятор нахо-
дится в промежуточном положении - скажем, Вы приглушили свет для ужина в
интимной обстановке, - останется лишь гадать, каков сейчас уровень осве-
щения. Вам не известно ни то, какую мощность "берет" лампа в данный мо-
мент, ни то, как точно описать настройку регулятора. Ваша информация
приблизительна, что затрудняет ее сохранение и воспроизведение.
Вдруг на следующей неделе Вам захочется создать то же освещение ? Ко-
нечно, можно поставить отметку на шкале регулятора, но навряд ли это по-
лучится точно. А что делать, если понадобится воспроизвести другую наст-
ройку ? Или кто-то придет к Вам в гости и захочет отрегулировать свет ?
Допустим, Вы скажете: "Поверни ручку примерно на пятую часть по часовой
стрелке" или "Поверни ручку, пока стрелка не окажется примерно на двух
часах". Однако то, что сделает Ваш гость, будет лишь приблизительно со-
ответствовать Вашей настройке. А может случиться и так, что Ваш друг пе-
редаст эту информацию своему знакомому, а тот - еще кому-нибудь. При
каждой передаче информации шансы на то, что она останется точной, убыва-
ют.
Это был пример информации, хранимой в "аналоговом" виде. Положение
ручки регулятора соответствует уровню освещения. Если ручка повернута
наполовину, можно предположить, что и лампа будет гореть вполнакала. Из-
меряя или описывая то, насколько повернута ручка, Вы на самом деле сох-
раняете информацию не об уровне освещения, а о его аналоге - положении
ручки. Аналоговую информацию можно накапливать, хранить и воспроизво-
дить, но она неточна и, что хуже, при каждой передаче становится все ме-
нее точной.
Теперь рассмотрим не аналоговый, а цифровой метод хранения и передачи
информации. Любой вид информации можно преобразовать в числа, пользуясь
только нулями и единицами. Такие числа (состоящие из нулей и единиц) на-
зываются двоичными. Каждый нуль или единица - это бит. Преобразованную
таким образом информацию можно передать компьютерам и хранить в них как
длинные строки бит. Эти-то числа и подразумеваются под "цифровой инфор-
мацией".
Пусть вместо одной 250-ваттной лампы у Вас будет 8 ламп, каждая из
которых в 2 раза мощнее предыдущей - от 1 до 128 ватт. Кроме того, каж-
дая лампа соединена со своим выключателем, причем самая слабая располо-
жена справа.
Включая и выключая эти выключатели, Вы регулируете уровень освещен-
ности с шагом в 1 ватт от нуля (все выключатели выключены) до 255 ватт
(все включены), что дает 256 возможных вариантов. Если Вам нужен 1 ватт,
Вы включаете только самый правый выключатель, и загорается 1-ваттная
лампа. Для 2 ватт Вы зажигаете 2-ваттную лампу. Если Вам нужно 3 ватта,
Вы включаете 1- и 2-ваттную лампы, поскольку 1 плюс 2 дает желаемые 3
ватта. Хотите 4 ватта, включите 4-ваттную лампу, 5 ватт - 4- и 1-ваттную
лампы, 250 ватт - все, кроме 4- и 1-ваттной ламп.
Если Вы считаете, что для ужина идеально подойдет освещение в 137
ватт, включите 128-, 8- и 1-ваттную лампы.
Такая система обеспечивает точную запись уровней освещенности для ис-
пользования в будущем или передачи другим, у кого в комнате аналогичный
порядок подключения ламп. Поскольку способ записи двоичной информации
универсален (младшие разряды справа, старшие - слева, каждая последующая
позиция удваивает значение разряда), нет нужды указывать мощность конк-
ретных ламп. Вы просто определяете состояние выключателей:
"вкл-выкл-выкл-выкл-вкл-выкл-выкл-вкл". Имея такую информацию, Ваш зна-
комый точно отрегулирует освещение в комнате на 137 ватт. В сущности,
если каждый будет внимателен, это сообщение без искажений пройдет через
миллионы рук и на конце цепочки кто-то получит первоначальный результат
- 137 ватт.
Чтобы еще больше сократить обозначения, можно заменить "выкл" нулем
(0), а "вкл" - единицей (1).
Тем самым вместо "вкл-выкл-выкл-выкл-вкл-выкл-выкл-вкл" (подразуме-
вая, что надо включить первую, пятую и восьмую лампы, а остальные выклю-
чить), Вы запишете то же самое иначе: 1, 0, 0, 0, 1, 0, 0, 1 или двоич-
ным числом 10001001. Оно равно десятичному 137. Теперь Вы скажете своему
знакомому: "Я подобрал изумительное освещение ! 10001001. Попробуй". И
он точно воспроизведет Вашу настройку, зажигая и гася соответствующие
лампы.
Может показаться, что этот способ чересчур сложен для описания яркос-
ти ламп, но он иллюстрирует теорию двоичного представления информации,
лежащую в основе любого современного компьютера.
Двоичное представление чисел позволяет составление чисел позволяет
создавать калькуляторы, пользуясь преимуществами электрических цепей.
Именно так и поступила во время второй мировой войны группа математиков
из Moore School of Electrical Engineering при Пенсильванском университе-
те, возглавляемая Дж. Преспером Эккертом (J. Presper Eckert) и Джоном
Моучли (John Mauchly), начав разработку электронно-вычислительной машины
ENIAC (Electronic Numerical Integrator And Calculator - электронный чис-
ловой интегратор и калькулятор). Перед учеными поставили цель - ускорить
расчеты таблиц для наведения артиллерии. ENIAC больше походил на элект-
ронный калькулятор, чем на компьютер, но двоичные числа представляли уже
не примитивными колесиками, как в арифмометрах, а электронными лампами -
"переключателями".
Солдаты, приписанные к этой огромной машине, постоянно носились вок-
руг нее, скрипя тележками, доверху набитыми электронными лампами. Стоило
перегореть хотя бы одной лампе, как ENIAC тут же вставал и начиналась
суматоха: все спешно искали сгоревшую лампу. Одной из причин - возможно,
и не слишком достоверной - столь частой замены ламп считалась такая: их
тепло и свечение привлекают мотыльков, которые залетают внутрь машины и
вызывают короткое замыкание. Если это правда, то термин "жучки" (bugs),
под которым имеются в виду ошибки в программных и аппаратных средствах
компьютеров, приобретает новый смысл.
Когда все лампы работали, инженерный персонал мог настроить ENIAC на
какую-нибудь задачу, вручную изменив подключения 6000 проводов. Все эти
провода приходилось вновь переключать, когда вставала другая задача. В
решении этой проблемы основную заслугу приписывают Джону фон Нейману,
американцу венгерского происхождения, блестящему ученому, известному
многими достижениями - от разработки теории игр до вклада в создание
ядерного оружия. Он придумал схему, которой до сих пор следуют все циф-
ровые компьютеры. "Архитектура фон Неймана", как ее теперь называют, ба-
зируется на принципах, сформулированных им в 1945 году. В их число вхо-
дит и такой: в компьютере не придется изменять подключения проводов, ес-
ли все инструкции будут храниться в его памяти. И как только эту идею
воплотили на практике, родился современный компьютер.
Сегодня "мозги" большинства компьютеров - дальние потомки того мик-
ропроцессора, которым мы с Полом так восхищались в семидесятых, а "рей-
тинг" персональных компьютеров зачастую определяется тем, сколько бит
информации (переключателей - в нашем примере со светом) способен единов-
ременно обрабатывать их микропроцессор и сколько у них байт (групп из
восьми бит) памяти и места на диске. ENIAC весил 30 тонн и занимал
большое помещение. "Вычислительные" импульсы бегали в нем по 1500 элект-
ромеханическим реле и 17000 электронным лампам. Он потреблял 150000 ватт
электроэнергии и при этом хранил объем информации, эквивалентный всего
лишь 80 символам.
К началу шестидесятых годов транзисторы начали вытеснять электронные
лампы из бытовой электроники. Это произошло через десятилетие после то-
го, как в Bell Labs открыли, что крошечный кусочек кремния способен де-
лать то же, что и электронная лампа. Транзисторы - подобно электронным
лампам - действуют как электрические переключатели, потребляя при этом
намного меньше электроэнергии, в результате выделяя гораздо меньше тепла
и занимая меньше места. Несколько транзисторных схем можно объединить на
одной плате, создав тем самым интегральную схему (чип). Чипы, используе-
мые в современных компьютерах, представляют собой интегральные схемы,
эквивалентные миллионам транзисторов, размещенных на кусочке кремния
площадью менее пяти квадратных сантиметров.
В 1977 году Боб Нойс (Bob Noyce), один из основателей фирмы Intel, в
журнале Scientific American сравнил трехсотдолларовый микропроцессор с
ENIAC, кишащим насекомыми мастодонтом. Крошка-микропроцессор не только
мощнее, но и, как заметил Нойс, "в 20 раз быстрее, обладает большей па-
мятью, в 1000 раз надежнее, потребляет энергии столько же, сколько лам-
почка, а не локомотив, занимает 1/30000 объема и стоит в 10000 раз де-
шевле. Его можно заказать по почте или купить в местном магазине".
Конечно, микропроцессор 1977 года теперь кажется просто игрушкой.
Ведь сегодня во многих недорогих игрушках "сидят" более мощные
компьютерные чипы, чем микропроцессоры семидесятых, с которых начиналась
микрокомпьютерная революция. Но все современные компьютеры, каков бы ни
был их размер или мощность, оперируют с информацией в виде двоичных чи-
сел.
Двоичные числа используются для хранения текста в персональных
компьютерах, музыки на компакт-дисках и денег в сети банковских автома-
тов. Прежде чем отправить информацию в компьютер, ее надо преобразовать
в двоичный вид. А машины, цифровые устройства, возвращают информации ее
первоначальную форму. Каждое такое устройство можно представить как на-
бор переключателей, управляющих потоком электронов. Эти переключатели,
обычно изготавливаемые из кремния, крайне малы и срабатывают под
действием электрических зарядов чрезвычайно быстро - тем самым воспроиз-
водя текст на экране персонального компьютера, музыку на проигрывателе
компакт-дисков и команды банковскому автомату, который выдает Вам налич-
ность.
Пример с выключателями ламп продемонстрировал, что любое число можно
представить в двоичном виде. А вот как то же самое сделать с текстом. По
соглашению, число 65 кодирует заглавную латинскую букву A, 66 - B и т.д.
В компьютере каждое из этих чисел выражается двоичным кодом, поэтому
заглавная латинская буква A (десятичное число 65) превращается в
01000001, а буква B (66) - в 01000010. Пробел кодируется числом 32, или
00100000. Таким образом, выражение "Socrates is a man" ("Сократ есть че-
ловек") становится 136-разрядной последовательностью единиц и нулей.
Здесь легко проследить, как строка текста превратилась в набор двоич-
ных чисел. Чтобы понять, как преобразуют другие виды данных в двоичную
форму, разберем еще один пример. Запись на виниловой пластинке - это
аналоговое представление звуковых колебаний. Аудиоинформация хранится на
ней в виде микроскопических бугорков, расположенных в длинных спиральных
канавках. Если в каком-то месте музыка звучит громче, бугорки глубже
врезаются в канавку, а при высокой ноте бугорки располагаются теснее.
Эти бугорки являются аналогами исходных колебаний звуковых волн, улавли-
ваемых микрофоном. Двигаясь по канавке, иголка проигрывателя попадает на
бугорки и вибрирует. Ее вибрация - все то же аналоговое представление
исходного звука - усиливается и звучит из динамиков как музыка.
Виниловой пластинке, подобно всякому аналоговому устройству хранения
информации, свойствен ряд недостатков. Пыль, следы пальцев или царапины
на поверхности пластинки могут приводить к неадекватным колебаниям иглы,
вызывая в динамиках потрескивание и другие шумы. Если скорость вращения
пластинки хотя бы немного отклоняется от заданной, высота звука сразу же
меняется. При каждом проигрывании пластинки игла постепенно "снашивава-
ет" бугорки в канавке, и качество звучания соответственно ухудшается.
Если же какую-нибудь песню записать с виниловой пластинки на кассетный
магнитофон, то все "шероховатости" переносятся на пленку, а со временем
к ним добавятся новые, потому что обычные магнитофоны сами являются ана-
логовыми устройствами. Таким образом, при каждой перезаписи или передаче
информация теряет в качестве.
На компакт-диске музыка хранится как последовательность двоичных чи-
сел, каждый бит которых представлен микроскопической впадинкой на по-
верхности диска. На современных компакт-дисках таких впадинок более 5
миллиардов. Отраженный лазерный луч внутри проигрывателя компакт-дисков
- цифрового устройства - проходит по каждой впадинке, а специальный дат-
чик определяет ее состояние (0 или 1). Полученную информацию проигрыва-
тель реконструирует в исходную музыку, генерируя определенные электри-
ческие сигналы, которые динамики преобразуют в звуковые волны. И сколько
бы такой диск ни проигрывали, его звучание не меняется.
Было бы удобно преобразовать всю информацию в цифровую форму, но воз-
никает проблема обработки ее больших объемов. Слишком большое число бит
может переполнить память компьютера или потребовать много времени на пе-
редачу между компьютерами. Вот почему так важна (и становится все важ-
нее) способность компьютера сжимать цифровые данные и хранить или пере-
давать их в таком виде, а затем вновь разворачивать сжатые данные в ис-
ходную форму.
Рассмотрим вкратце, как компьютер справляется с этим. Для этого надо
вернуться к Клоду Шеннону, математику, который в тридцатых годах осоз-
нал, как выражать информацию в двоичной форме. Во время второй мировой
войны он начал разрабатывать математическое описание информации и осно-
вал новую область науки, впоследствии названную теорией информации. Шен-
нон трактовал информацию как уменьшение неопределенности. Например, Вы
не получаете никакой информации, если кто-то сообщает Вам, что сегодня
воскресенье, а Вы это знаете. С другой стороны, если Вы не уверены, ка-
кой сегодня день недели, и кто-то говорит Вам - воскресенье, Вы получае-
те информацию, так как неопределенность уменьшается.
Теория информации Шеннона привела в конечном счете к значительным
прорывам в познании. Один из них - эффективное сжатие данных, принципи-
ально важное как в вычислительной технике, так и в области связи. Ска-
занное Шенноном, на первый взгляд, кажется очевидным: элементы данных,
не передающие уникальную информацию, избыточны и могут быть отброшены.
Так поступают репортеры, исключая несущественные слова, или те, кто пла-
тит за каждое слово, отправляя телеграмму или давая рекламу. Шеннон при-
вел пример: в английском языке буква U лишняя в тех местах, где она сто-
ит после буквы Q. Поэтому, зная, что U следует за каждой Q, в сообщении
ее можно опустить.
Принципы Шеннона применяли к сжатию и звуков, и фильмов. В тридцати
кадрах, из которых состоит секунда видеозаписи, избыточной информации
чрезвычайно много. Эту информацию при передаче можно сжать примерно с 27
миллионов бит до 1 миллиона, и она не потеряет ни смысла, ни красок.
Однако сжатие не безгранично, а объемы передаваемой информации все
возрастают и возрастают. В скором будущем биты будут передаваться и по
медным проводам, и в эфире, и по информационной магистрали, в основу ко-
торой лягут волоконно-оптические кабели. Волоконно-оптический кабель
представляет собой пучок стеклянных или пластмассовых проводов настолько
однородных и прозрачных, что на другом конце стокилометрового кабеля Вы
сможете разглядеть горящую свечу. Двоичные сигналы в виде модулированных
световых волн смогут без затухания