КОММЕНТАРИЙ ОТДЕЛА НАУКИ
Итак, любое действительное число может быть представлено в принципиально новой иррациональной системе счисления, у которой есть все предпосылки стать ценным подспорьем для пользователей вычислительных машин. Но возникает вопрос — насколько оправдан отказ от традиционной двоичной системы, являющейся, как известно, краеугольным камнем в громадном здании современной 'индустрии обработки данных?
Новый способ кодирования чисел, предлагаемый профессором Стаховым, обеспечивает легкость обнаружения случайных ошибок в информации. Но справедливости ради заметим, что сегодня найдены другие, достаточно простые методы распознавания сбоев. Так, в ЕС ЭВМ каждый байт состоит, во-первых, из восьми битов, в которых записана информация с помощью двоичного кода, а во-вторых, из дополнительного, служебного девятого бита, называемого «битом четности». Если в восьми информационных битах хранится число, содержащее четное количество двоичных единиц, то бит четности устанавливается в позицию «1», а если нечетное количество — то в «0». Таким образом, в правильном, неискаженном байте общее количество двоичных единиц всегда нечетно. Каждый раз, когда какой-либо байт используется в машине, специальные схемы контроля производят проверку на нечетность, и если оказывается, что а байте содержится четное количество двоичных единиц, то ЭВМ включает индикатор сбоя — загорается лампочка на пульте. Ну а одновременное искажение сразу двух битов внутри одного и того же байта (тогда этот способ не срабатывает) крайне маловероятно.
Но проверка на нечетность позволяет лишь обнаружить ошибку, после чего программу нужно прогонять заново. Это еще допустимо, когда время работы ЭВМ не превышает две, пять, десять минут. А длинные, многочасовые расчеты? Однако и тут найдено «противоядие»: в программе предусматривается так называемая «контрольная точка». Время от времени — раз в час, в полчаса, в десять минут — вся оперативная память, занимаемая программой, копируется на магнитный диск, и если потом происходит сбой, то расчеты начинаются не с самого начала, а с последней контрольной точки: информация восстанавливается с диска обратно в память. И опять-таки «но»...
Контрольную точку можно использовать только тогда, когда машина способна достаточно долго работать без сбоев. Ведь запись на диск — это длительный, по машинным меркам, процесс. А если компьютер то и дело ошибается, то контрольную точку придется «ставить» очень часто, и ЭВМ будет тратить основную часть своего рабочего времени не на полезную работу, а на перекачку информации туда-обратно.
От чего же зависит время, в течение которого компьютер может работать без сбоев? От двух параметров — надежности радиоэлектронных компонентов, хардвера и от быстродействия ЭВМ. Если надежность хардвера такова, что сбой происходит в среднем один раз на сто миллиардов операций, то компьютер с производительностью 100 тыс. операций будет сбоить раз в две недели, что вполне приемлемо для большей части ВЦ. Компьютер с производительностью 1 млн. операций/с — уже раз в сутки, это плохо, но еще терпимо. А компьютер с производительностью 1 млрд, операций/с — каждые две минуты, что недопустимо совершенно...
Между тем сверхбыстродействующие машины нужны уже сейчас. Так, по данным известного американского специалиста Гленфорда Майерса, в системах автоматизированного проектирования самолетов полное моделирование действия подъемной силы на крыло возможно лишь на машинах с быстродействием около 1 млрд, операций/с, системы автоматического перевода с одного языка на другой потребуют быстродействия порядка 2—3 млрд, операций/с , а для составления местного прогноза погоды только на ближайшие сутки потребуется скорость порядка 100 млрд, операций/с. Создать фантастически надежные микросхемы, способные обеспечить этим машинам не то что недели, но даже сутки и часы бесперебойной работы, сегодня не представляется возможным. А раз нельзя обеспечить безошибочность работы компьютеров — значит, надо обучить их быстро, прямо в процессе расчетов исправлять свои ошибки.
И вот тут-то иррациональные системы счисления, теорию которых разработал профессор Стахов, не просто применимы, а незаменимы! Ведь они вносят в информацию избыточность. И скажем, в предложении «Ф етам прдлжнии кутсша ашипок, оннако ано исчо пытно блгдр избытчнст нащго езыка» благодаря существованию избыточности информации — контексту, угадываемых слов и т. д. — все ошибки могут быть легко и быстро исправлены, и на дисплее предстанет выправленный текст: «В этом предложении куча ошибок, однако оно еще понятно благодаря избыточности нашего языка».
Иными словами, в сверхбыстродействующем компьютере сбой может возникать хоть раз в минуту, даже раз в секунду — это не вызовет необходимости проводить расчеты повторно. Что же касается затрат времени на ежесекундное исправление ошибок, то для компьютера с быстродействием в несколько сот миллиардов операций в секунду какие-то два-три действия на обнаружение и исправление неверного бита... все равно что пылинка на зеркале 6-метрового телескопа: ее не будет видно.
Подводя итоги, можно сказать: ,. для традиционных ЭВМ с традиционной архитектурой и относительно небольшим быстродействием иррациональные системы счисления вряд ли пригодятся. Это как раз тот случай, когда «лучшее — враг хорошего»: существующие методы обнаружения ошибок достаточно надежны, а двоичная система счисления используется в слишком большом числе программ и баз данных, чтобы от нее можно было безболезненно отказаться. А вот в сверхбыстродействующих машинах следующих поколений — где нужно не только обнаружить ошибку, но и тут же ее исправить! — иррациональные системы счисления безусловно найдут самое широкое применение, тем более что и работать эти сверхкомпьютеры будут по совершенно другим принципам. Но это уже другая тема другого большого разговора.
Комментариев нет:
Отправить комментарий