18 лет назад 5 октября 2006 в 12:38 1298

Как помнит читатель, любящий после установки какой-нибудь очередной навороченной карты почитать статейки на околокомпьютерные темы, человечество озаботилось созданием PC-совместимой машины на базе микропроцессора Intel Pentium 4 уже тысячи лет тому назад. Правда, поначалу техническая мысль развивалась не слишком быстро. 

С первых же шагов, обнаружив удивительные свойства кремния (вернее, его оксида) при его использовании в вычислительной технике, а также обогатив последующие поколения такими словами, как «калькулятор» и «алгоритм», человечество успокоилось надолго. До XVII века нашей эры… Как когда-то писалось в советских учебниках: «Мрачная тень инквизиции опустилась на Европу».

Селективные методы инквизиции

Справедливости ради, стоит отметить, что жизнь и тогда была не такой уж мрачной, ибо, если средневековый человек и был лишен таких чудес современной цивилизации, как Doom или Empires — 3, то уж вполне мог компенсировать их отсутствие, получив соответствующую порцию адреналина от участия в каком-нибудь крестовом походе или штурме соседнего замка. А рыцарские турниры, прекрасная дама, менестрели, бродячие циркачи и публичные казни?

Вот то-то. А если уж и опускалось на Европу иногда что-то чересчур мрачное, вроде «черной смерти», унесшей почти треть населения Европы во второй половине XIV века, так это было скорее от чрезмерного энтузиазма отдельных полководцев, спешивших опробовать новые виды оружия (в 1347 году монгольские войска, осаждая в Крыму генуэзскую крепость Каффу, перебросили через крепостные стены несколько трупов людей, умерших от чумы, став таким образом первооткрывателями бактериологического оружия. Позднее это им боком вышло, потому что вперед нужно думать, а потом уж делать)…

Но уже с XVII века научная мысль стала все больше и больше озабочиваться поиском новых информационных технологий. Правда, начался XVII век не очень оптимистично — с сожжения в 1600-м году молодого итальянского монаха Джордано Бруно за сомнения в том, что вся Вселенная вращается вокруг Земли.

Инквизиторы же придерживались другой точки зрения, отстаивая тезис (которому только еще предстояло быть сформулированным через триста лет), о том, что все относительно, и, следовательно, с математической точки зрения небесная механика вполне может примириться с теорией о вращении Вселенной вокруг Земли. 

В 1616 году за те же самые воззрения пострадал другой монах — поляк Николай Коперник, чья книга «Об обращении небесных сфер» была запрещена папским декретом. Но уже в следующем, 1617, году Джон Непер изобрел свои счетные палочки (см. Upgrade # 49 (87)). Инквизиция оставила это изобретение без каких-либо последствий…

Первые инструменты для вычислений

И все же инквизиторы не зря «трамбовали» астрономов. В 20-х годах XVII века известный астроном и математик Иоганн Кеплер вел переписку с неким профессором восточных языков из университета города Тюбингена по имени Вильгельм Шиккард.

В своем письме Кеплеру от 25 февраля 1624 года Шиккард описывает изобретенное им механическое счетное устройство, способное выполнять сложение, вычитание, умножение и деление. К сожалению, идеи Шиккарда были вскоре забыты — он сам и все его семейство погибло в 1636-м году от холеры, а пробная модель арифмометра погибла при пожаре.

В 1642 году девятнадцатилетний Блез Паскаль — будущий великий математик, чтобы облегчить труд своего отца, работавшего налоговым инспектором, сконструировал счетное устройство для сложения десятичных чисел (вот он — исторический момент, теперь нам всем стало ясно, в какой именно временной отрезок на Земле произошла вселенская катастрофа: для налоговых инспекторов придумали главный вспомогательный вычисляющий инструмент — прим. ред.). 

Веря, что изобретение принесет немалый доход, его отец вложил в него немалые же деньги, но оно было саботировано клерками, которые опасались из-за новшества потерять свою работу. Однако сам папаша Паскаль в своей работе активно использовал изобретение сына, и, надо полагать, немало нечистых на руку налогоплательщиков почувствовали, что такое мощь вычислительной техники.

Сам Блез Паскаль, уже помимо собственной воли и много лет позднее, оставил еще один заметный след в современных компьютерных технологиях — его именем Никлаус Вирт назвал созданный им один из самых популярных языков программирования.

Историки компьютерной техники упоминают еще одну дату — 1654 год, в котором англичанин Р. Биссакр изобрел логарифмическую линейку, практически без каких-либо изменений дожившую до наших времен. Однако если технологически расчет при помощи этой линейки и был чем-то новым, то сам принцип — движение одной шкалы, нанесенной на кусок дерева, относительно другой — практически ничем не отличался от принципа счета при помощи палочек Неппера.

Совсем другое дело — арифмометры Паскаля, Шиккарда и — еще раньше — Леонардо да Винчи. В них впервые в истории ВТ был реализован принцип хранения промежуточного результата и переноса «лишней» единицы из разряда в разряд. Арифметико-логическое устройство (АЛУ) современного процессора в точности, хотя и на другой элементной базе, повторяет этот механизм. О чем, собственно, идет речь?

Если разобрать механические часы со стрелками, то мы увидим систему разных взаимосвязанных шестеренок. Шестеренку, к которой крепится часовая стрелка, нельзя вращать напрямую — она приводится в действие шестеренкой минутной стрелки таким образом, что один полный оборот «минутной» шестеренки поворачивает «часовую» на угол в тридцать градусов (или на 1/12 полного оборота). Этот принцип был применен и в первых механических сумматорах.

В 1673 году немецкий философ, математик и физик (тогда подобная универсальность была в порядке вещей, и даже в моде) Готфрид Вильгельм Лейбниц придумал и изготовил так называемый ступенчатый вычислитель. Чисто внешне это изделие выглядело, как небольшая струбцина для крепежа столярных заготовок. Свое изобретение Лейбниц сделал также после общения с астрономом Христианом Гюйгенсом, сжалившись над обилием рутинных вычислений, выполняемых им.

Этот хитроумный агрегат, как говорят, выполнял не только четыре основных арифметических действия, но даже позволял извлекать квадратные корни. Но это было не главным. Главная новизна и вклад в компьютеризацию всего мира заключалась в том, что в «струбцине» использовалась двоичная система счисления! Чуть позже, в 1703 году, Лейбниц опубликовал специальный трактат «Использование двоичной арифметики», где внимательно рассмотрел вопрос о двоичной математике в вычислительной технике.

Свой «ступенчатый вычислитель» Лейбниц пожелал показать членам Французской академии наук и Лондонского королевского общества, дабы поразить их воображение. Но академики оказались людьми с крепкой нервной системой и на изобретение никак не отреагировали. Позднее Лейбниц подарил «вычислитель» Петру Первому вместе с проектом табели о рангах. Табель о рангах Петру понравилась и просуществовала в России аж до 1917 года.

А вот применение двоичному вычислителю русский царь так и не нашел, и, как свидетельствует история, послал его в виде сувенира китайском императору. Дальше следы изобретения Лейбница теряются… Возможно, оно и поныне пребывает в тайных закромах монастыря Шао-Линь.

Весь XVIII век прошел под знаком усовершенствования вычислителей. Так, например, француз Клод Перро — брат автора «Красной шапочки» — соорудил немало разных механических штуковин, среди которых значится и суммирующая машина, в которой шестерни заменены зубчатыми рейками.

В 1723 году немецкий математик, физик и астроном Христиан Людвиг Герстен создал собственный вариант счетного устройства. В этом устройстве была предусмотрена возможность проверки правильности ввода исходных данных, операция, известная сегодня под именем верификации.

Были и другие изобретатели, славно потрудившиеся на ниве вычислительной техники. В отчете комиссии Парижской академии наук от 1751 года упоминается некий господин Перейра, чья арифметическая машина с успехом зарекомендовала себя в деле обучения математике… глухонемых. Почетно.

Особо, на мой взгляд, следует отметить некоего сельского пастора Филиппа Маттеоса Хана, создавшего в 1774 году свой вариант счетной машины. Примечательно в этом изобретении было то, что Филипп Хана сумел не только изготовить, но и продать несколько экземпляров своей машины, став, таким образом, первым продавцом вычислительной техники. Следовательно, 1774 год можно по праву считать годом основания компьютерной индустрии.

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

А в воздухе уже носились новые идеи, ибо изобретатели поняли наконец, что главной изюминкой компьютера, которому предстояло появиться через каких-то полтораста лет, является программируемость.
И вот однажды…

В 1804 году французский изобретатель Жозеф Мари Жаккар разработал способ быстрого изменения режима работы ткацкого станка при переходе к новому узору. Для этого Жаккар стал использовать колоду специальных карт с пробитыми в нужных местах отверстиями (перфорациями), сами карты были названы перфокартами.

Таким образом, Жаккар изобрел способ программировать работу механического устройства. Это было ключевое событие, которое определило дальнейшее направление развития вычислительной техники.

Уф. На этом сегодня пока и остановимся, с вашего позволения. Ну, а в следующий раз ровно с этого момента и возобновим исследования.

Как считает процессор

 
Одной из главных подсистем процессоров Intel является так называемое операционное устройство, состоящее из модуля регистров (со всеми общими и управляющими регистрами) и математического устройства, чаще всего называемого арифметическо-
логическим устройством (АЛУ).

Основой всех операций процессора является сложение. Да-да, все чудеса, которые вытворяет ваш «пень», основаны на известной операции поразрядного сложения в столбик.

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

Реализацией этого правила занимается специальная схема АЛУ.

Таким образом, АЛУ процессора ничем другим не занято, кроме бесконечного складывания нулей и единиц с дикой скоростью. 

 

Двоичная
система счисления

 

Двоичная система счисления относится к так называемым позиционным системам.

Позиционная система называется так за то, что каждый знак, который используется при составлении числа, имеет различный «вес» в зависимости от его позиции в числе.

Например, в числе 2002 цифра 2 «весит» в одной позиции две сотни, а в другой — две единицы. Также ноль в одной позиции «весит» (вернее, «не весит») ноль сотен, а в другой — ноль десятков.

Все разряды (позиции) в числе нумеруется справа на лево, начиная с нулевого разряда.

Например, в числе 1965 «пятерка» стоит в нулевом разряде, «шестерка» занимает 1-й разряд, «девятка» — 2-й, а «единица» — 3-й. Лейбниц указал, что «вес» (W) каждого знака определяется по формуле: W = S x ON, где S — цифра, «вес» которой ищется, O — основание системы счисления (количество всех цифр, из которых могут составляться любые числа), а N — номер разряда, в котором эта цифра стоит.

«Вес» всего числа определяется как сумма «весов» всех цифр, из которого число состоит.

Например, 1965 = 1 x 103 + 9 x 102 + 6 x 101 + 5 x 100 = 1000 + 900 + 60 + 5.

Понятно, что все эти вычисления никто не делает, когда речь идет о десятичной системе счисления. Но оказывается, что используя эту формулу можно точно также составлять любое число в системе счисления с любым основанием.

Например, в двоичной системе счисления число: 101100 = 1 x 25 + 0 x 24 + 1 x 23 + 1 x 22 + 0 x 21 + 0 x 20 = 32 + 0 + 8 + 4 + 0 + 0 = 44.

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

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