Выбрать главу

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

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

Мало того, если выходные параметры каждой системы стандартизировать, то в одном комплексе можно собирать и старые, и новые системы, и на любом этапе, если новые системы не успевают, поставить пока старые, а потом, когда новые системы будут готовы, поставить их. Простенько, но со вкусом. Тем более, что малые вычислители делать проще, чем большие.

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

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

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

Когда-то я насчитал в нашей промышленности 15 групп математиков, работающих независимо друг от друга в области навигационных алгоритмов, причем только на одном из ленинградских предприятий их одновременно было пять. Мне это показалось странным. Зачем, подумал я, их так много? Ведь земной шар у нас один, атмосфера тоже. Все мы пользуемся географическими координатами, состав оборудования на всех самолетах практически один и тот же. Ну, добавили корректирующие средства, ну, не добавили. Суть-то от этого не меняется. А тут 15 групп! Ведь наверняка они нагородят каждая свое, потом концов не соберешь. И я попросил все ту же Надежду Ивановну взять из разных эскизных проектов формульные зависимости какой-нибудь небольшой задачи, например, доплеровское счисление координат и написать их рядом для сравнения. Надежда Ивановна выписала формулы одной и той же задачи из разных проектов, всего таких проектов под рукой оказалось семь. И выяснилось, что сравнивать эти формулы нельзя, так как все они записаны в разных обозначениях. Я порекомендовал ей взять какую-нибудь одну систему обозначений, любую, какая ей больше понравится, и переписать все формулы в одной системе. И тут выяснилось, что все эти формулы отличаются друг от друга выражением для радиуса Земли: у одних этот радиус принят за постоянную величину, у других к нему добавлена первая геометрическая гармоника, потому что он все-таки не совсем постоянный, у третьих — еще и вторая гармоника, у четвертых этот радиус остался в знаменателе, как и был, но гармоники переведены в числитель, и так далее. И хотя все формулы были похожи друг на друга, как близнецы-братья, все же они были разными, алгоритмы под них получались разными, программы разными, а уж с учетом разнообразия систем команд в вычислителях все это было абсолютно несовместимо. Отсюда и 15 групп навигаторов.