Тяжелая, обитая темно-коричневым дерматином дверь режимной переговорной надежно отсекала кабинет от привычного гула коридоров зеленоградского научного центра. Внутри не было ни паяльных станций, ни разбросанных рулонов перфоленты, ни вечного запаха нагретого текстолита, который пропитывал владимирские лаборатории. Здесь пахло сухой бумажной пылью, старой мебельной полировкой и едва уловимо — сургучом.
На массивном дубовом столе царил абсолютный канцелярский порядок. Слева лежали две аккуратные стопки отпечатанных на машинке листов, чётко разделяющие железо и программную часть. Первая — проектная документация на базовую аппаратную архитектуру перспективной микро-ЭВМ «Сфера-82». Вторая — отдельный пакет по программному комплексу проверки топологий «СЛОЙ-81». За литерой «р», чуть сильнее пробивающей бумагу во втором документе, скрывались адреса блоков памяти на шестьдесят четыре килобайта, тестовые векторы, контрольные суммы и графики использования машинного времени БЭСМ-6, выделенного по лимитам Липатова.
Справа оставалось пустое полированное пространство, предназначенное для страниц, прошедших первичное согласование.
Сергеев сидел во главе стола. Сейчас перед ним лежал первый пакет — аппаратная часть «Сферы-82». Куратор читал машинописные листы медленно, строка за строкой. На полях его экземпляра уже стояли короткие пометы: исполнитель, допуск, журнал. Иногда он задерживал карандаш над словом и смотрел в сторону, будто мысленно проверял, существует ли для этой фразы нужный человек с подписью.
Морозов сидел напротив, чуть подавшись вперед и сцепив руки в замок. Пока Сергеев читал, Алексей отмечал в уме, какие формулировки можно заменить без ущерба для совместимости, а где уступка меняет саму архитектуру. Схема могла безупречно работать на испытательном стенде, но в сопроводительной записке один неправильный глагол останавливал проект перед первой же стальной дверью спецчасти.
Липатов сидел по правую руку от Алексея. Он расчертил страницу своего рабочего блокнота на две колонки: слева — термины из описи, справа — безопасные эквиваленты для первого отдела. Напротив спорной строки было дважды подчеркнуто слово «открытая», а рядом выведена готовая замена.
Липатов придвинул блокнот ближе к Морозову и произнес вполголоса:
— Алексей, я же предлагал убрать «открытую архитектуру». Нам завернут папку на первой инстанции.
— Оставь пока в рабочем экземпляре, — так же тихо ответил Морозов. — Посмотрим, какую формулировку пропустят. Вместе и определим.
Сухой шелест переворачиваемой страницы прервал их перешептывание. Сергеев выровнял край бумажного листа по границе столешницы. В его пальцах блеснули грани красного карандаша. Острие опустилось точно на спорную строку.
— «Открытая архитектура взаимодействия», — ровно прочитал куратор, глядя на разработчиков поверх бумаг. — Звучит масштабно. Но в министерстве слово «открытая» рядом с режимным объектом читается как приглашение к несанкционированному доступу.
Липатов коротко кивнул.
— Потеряем недели на переписку, доказывая, что речь шла о технической совместимости, — сказал он и заглянул в свои записи. — Товарищ Сергеев, предлагаю писать: «Унифицированный профиль применения».
Красный грифель с царапающим звуком перечеркнул целую строку. Выше зачеркнутого текста Сергеев убористыми печатными буквами вывел предложенную Липатовым замену.
Морозов сделал пометку на своей копии документа.
— Хорошо, пусть будет унифицированный профиль, — произнес Алексей. — Главное, чтобы за сменой вывески не исчезла суть. Если закрытые ведомства начнут менять архитектуру под себя, прикрываясь секретностью, мы получим десяток несовместимых машин. В одном НИИ перепаяют адресные линии дешифратора под локальные задачи. В другом изменят временные параметры прерываний.
— Изолированные системы, — Сергеев чуть приподнял бровь. — Меньше риск утечки.
— И нулевая переносимость программ, — ответил Морозов. — Завтра министерство прикажет передать алгоритм из первого института во второй, а программа там просто зациклится. Нам нужен единый легальный стык. Строго определенные адреса портов и неизменный формат данных. Эта база должна работать абсолютно одинаково и на гражданской плате, и в закрытом ящике.
— Единый стык обеспечивается государственным стандартом и отраслевым приказом, — спокойно парировал Сергеев. — То, что вы называете унификацией, будет закреплено регламентом.
— Если профиль применения станет исключительно спущенным сверху приказом, разработка начнет дробиться, — произнес Морозов, тщательно формулируя аргументы. — Каждое закрытое конструкторское бюро, получив базовую машину, захочет свою специфику. Один ведомственный заказчик потребует отдельный загрузчик. Другой перепишет порядок вызовов памяти под свои задачи. Третий настоит на особом формате экранов. И все будут ссылаться на исключительные требования секретности и надежности.
Сергеев перестал писать. Он положил красный карандаш рядом с листом и приготовился слушать.
— Вы считаете, что унификация спровоцирует хаос? — уточнил куратор.
— Я считаю, что жесткий приказ без гибкости развалит систему, — твердо ответил Морозов. — Формально все будут соблюдать спущенный регламент, а фактически каждая площадка получит собственную машину. Нам нужен утвержденный минимум. Жесткий, защищенный, но с правом на проверяемые расширения. Иначе мы вернемся к набору уникальных машин, которые не умеют обмениваться данными друг с другом.
Сергеев обдумал услышанное и постучал тупым концом карандаша по полю аппаратной спецификации. Несовместимые версии означали для него не свободу инженеров, а лишние журналы, отдельные допуски и новые точки утечки.
— Допустим, — коротко произнес куратор, принимая аргумент к сведению. Он отложил пакет по «Сфере-82» в сторону и придвинул к себе вторую стопку листов. — С железом разобрались. Теперь перейдем к вашей программной части. Комплекс «СЛОЙ-81».
Грифель замер над первой страницей программного раздела.
— «Свободное распространение методики предварительного контроля», — зачитал Сергеев. На этот раз в его голосе промелькнула нескрываемая ирония. — Вы, Морозов, всерьез намерены раздавать пакеты для проверки топологии секретных микросхем по первому требованию? В любой гражданский институт?
— Радиокружкам и школьникам алгоритмы фотолитографии ни к чему, если вы об этом, — спокойно ответил Морозов. — Пакет «СЛОЙ-81» — это узкоспециализированный инструмент. Он пишется специально под перспективную «Сферу-82» и МикроДОС. И раздавать его профильным КБ, которые занимаются проектированием микросхем, — это суровая производственная необходимость.
Алексей подался вперед.
— Посмотрите на это со стороны заводской экономики Зеленограда. Сейчас любой смежный институт, спроектировавший свою микросхему, отправляет «сырые» чертежи на завод. Завод выделяет драгоценное машинное время, делает фотошаблоны, запускает печи, травит тестовую партию кремния… и только тут выясняется, что какой-то инженер в другом городе наложил контактное окно на соседнюю дорожку. Десятки тысяч рублей государственных средств летят в корзину.
— И что меняет ваша методика?
— Если мы дадим смежным НИИ формат обмена и наш алгоритм, они поставят у себя в лабораториях «Сферу-82» и будут гонять эти проверки на местах, до отправки чертежей на завод. Они будут присылать в Зеленоград уже выверенную, чистую геометрию. Мы децентрализуем контроль брака и сбережем заводам тонны дефицитного кремния.
Куратор мысленно взвесил аргументы. Железная экономическая логика его устраивала: это решало реальную проблему отрасли. Но само слово «свободное» в режимном документе оставалось недопустимым. Красная линия перечеркнула машинописный текст.
— Значит, переведем вашу децентрализацию в рабочее русло, — Сергеев хладнокровно вывел новые слова поверх зачеркнутых. — «Согласованная передача программно-методических комплексов». Суть сохраняем, форму меняем. Передаете алгоритмы профильным предприятиям только по обоснованному письменному запросу. Фиксируете факт передачи в журнале. Назначаете ответственного за учет. Никакого «свободного распространения» в документах быть не должно.
Красный карандаш пошел по тексту быстрее. Закончив с программным комплексом, Сергеев вернулся к общему разделу, описывающему аппаратные испытания и сбор статистики отказов. Грифель добрался до слов «пользовательская инициатива» — они были немедленно зачеркнуты, а на полях появилась замена: «регламентированная обратная связь».
Сергеев занес карандаш над следующим абзацем. Острие нацелилось на словосочетание «Гражданская апробация архитектуры». Он одним уверенным движением перечеркнул фразу, вписывая сверху громоздкое «зарегистрированная эксплуатационная выборка».
Морозов молча наблюдал. Каждая новая формулировка сужала ход: железо — учитывать, программные запросы — обосновывать, ответственных — назначать. Если уступить дальше, перспективная «Сфера-82» окончательно оторвется от своих корней и легко превратится в закрытый ведомственный продукт, который нельзя будет проверить массовыми аппаратными испытаниями.
Морозов положил ладонь на край документа, задерживая внимание Сергеева на словах «зарегистрированная эксплуатационная выборка».
— Олимпиада закончилась, вы правы, — произнес Алексей, убирая руку со стола. — Мы собрали отличные алгоритмы. С программным обеспечением вроде «СЛОЯ-81» всё понятно — это изолированный продукт для лабораторий и заводов. Но базовая аппаратная логика интерфейсов у учебной «Сферы-80» и перспективной «Сферы-82В» — общая. Если мы сейчас по вашей логике полностью оторвем закрытый аппаратный контур от гражданского, мы запрём будущую военную машину в тепличных условиях. Стабилизированное питание, чистые комнаты, разъемы с золочением.
Сергеев чуть повернул карандаш в пальцах.
— У вас в лаборатории лежат мешки писем от школьников и энтузиастов. Вы собрали обратную связь. Зачем вам дальше поддерживать эту любительскую вольницу?
— Затем, что военная приемка идеально маскирует системные просчеты архитектуры, — жестко ответил Морозов. — Инженер в закрытом НИИ знает, что при обращении к магнитофону или диску нельзя щелкать тумблером соседнего пульта — пойдет наводка. И он не щелкает. А в схеме при этом остается скрытый дефект, который никто не замечает. Мне нужен постоянный жесткий прогон железа на выживаемость.
Сергеев слушал не перебивая, только сделал короткую пометку на полях.
— Гражданская эксплуатация спровоцирует сбои ЭВМ во всех возможных нештатных режимах, — продолжил Морозов. — Радиолюбитель собирает нашу базовую «Сферу-80» на дискретной логике и питает плату от перемотанного трансформатора старого телевизора «Рекорд». У него по цепям пойдет такая пульсация, что жесткая логика начнет глотать такты. Он подключит кассетный магнитофон с растянутым пассиком, компаратор выдаст мусор, а самодельная клавиатура даст такой дребезг контактов, что сдвиговые регистры мгновенно забьются ложными срабатываниями. И наши базовые схемотехнические решения обязаны всё это выдержать.
— По ГОСТу мы должны провести климатические и вибрационные испытания, — негромко, но веско добавил Липатов. — Но никакой ГОСТ не предусматривает статического разряда от синтетического свитера прямо на клавиатуру в сухом воздухе панельной хрущевки. Ни один военный стенд не сымитирует нам ту степень электромагнитного шума, которую дает искрящее реле холодильника «ЗИЛ», воткнутого в одну розетку с микро-ЭВМ.
Морозов подвел итог:
— Один аппаратный сбой, пойманный через письмо из кружка ДОСААФ, обходится государству ровно в стоимость почтовой марки. Тот же дефект интерфейса, всплывший через год на этапе внедрения в закрытом конструкторском бюро, это ЧП и сорванные сроки военного заказа. Широкая гражданская эксплуатация восьмидесятой модели — это бесплатный, безжалостный полигон, на котором мы обкатаем узлы для военной восемьдесят второй.
Сергеев аккуратно положил карандаш на стол параллельно краю папки.
— Экономия испытательного времени — весомый аргумент, Алексей Николаевич. Но вы упускаете из виду проблему достоверности.
Сергеев сцепил пальцы в замок.
— Я видел эти ваши мешки писем. Люди обожают писать жалобы в духе «я нажал, а оно загудело и сломалось». Это колоссальный информационный шум. Кто будет вычленять из этого лирического мусора системные ошибки архитектуры? Как вы отделите реальный аппаратный сбой от некомпетентности школьника с паяльником?
В разговор вступил Липатов.
— Мы не будем принимать этот народный хаос в КБ напрямую, — Липатов придвинул свой блокнот к центру стола. — Олимпиада сразу показала нам слабое место обратной связи, которое мы научились обходить. Поэтому вводится жесткий фильтр. Стандартизированный бланк. Карточка отказа.
Сергеев перевел тяжелый взгляд на инженера.
— Как именно вы заставите их это заполнять?
— В инструкцию по сборке вшивается строгий формуляр. Человек будет обязан зафиксировать техническую картину, — Липатов провел ручкой вдоль нарисованных колонок. — Состояние светодиодов на отладочной панели. Напряжение в контрольных точках. Точное время непрерывной работы до сбоя. Номер конкретной микросхемы, которая греется сильнее других. Бумажная рутина, которая сразу отсеет эмоции и превратит жалобу в полноценный технический срез системы.
Морозов едва заметно кивнул: именно такой порядок устроит и Наталью Сергеевну, и режимную часть.
— И когда в КБ приходит сто таких карточек, мы видим систему, — подхватил Алексей. — Если у пятидесяти человек машина стабильно сбоит при чтении с кассеты — мы понимаем, что дело не в плохой пайке. Дело в том, что наш базовый компаратор не прощает плавающей скорости ленты. КБ отбрасывает случайные факторы, корректирует аппаратную логику интерфейса, и вот этот сухой, отфильтрованный и многократно проверенный узел переносится в закрытую 82-ю ветку на К580 как подтвержденная аппаратная доработка. Ведомство получает железобетонную надежность, за которую расплатились своим временем и нервами энтузиасты.
Сергеев смотрел на схему Липатова. Взгляд куратора скользил по вычерченным прямоугольникам, оценивая предложенный механизм.
— То есть закрытый ведомственный контур изолируется от прямого потока, — резюмировал Сергеев. — Внутрь попадает только отфильтрованная и проверенная статистика отказов.
— Именно, — подтвердил Морозов. — Готовые векторы ошибок. Сухой остаток, на базе которого мы вносим изменения в унифицированный профиль применения.
Сергеев взял паузу. В кабинете было слышно только глухое гудение люминесцентной лампы под потолком. Куратор перечитал графы, которые Липатов набросал в блокноте, и снова потянулся к красному карандашу.
— Формулировку «зарегистрированная эксплуатационная выборка» мы оставляем, — произнес Сергеев, четко выделяя каждое слово. — Право гражданского контура собирать статистику с гражданских площадок утверждается.
Он перевернул лист описи и на чистой стороне вывел крупными печатными буквами: «ЖУРНАЛ РЕГИСТРАЦИИ ОТКЛОНЕНИЙ».
— Вся входящая документация от пользователей оседает здесь. Карточки отказов нумеруются и подшиваются. В закрытую ветку разработки поступают только верифицированные запросы на изменение архитектуры с обязательной ссылкой на номер записи в этом журнале.
Сергеев посмотрел прямо на Морозова.
— Фильтр должен быть непроницаемым для несанкционированных доработок. Если под видом исправления гражданской ошибки в унифицированный профиль пройдет незадокументированная аппаратная функция, отвечать будет тот, чья подпись стоит под классификатором.
Морозов сделал пометку в своем блокноте.
— Под классификатором будет подпись КБ, — сказал он. — И отдельная подпись ответственного за передачу в закрытую ветку.
Липатов с тихим шорохом перелистнул страницу своего блокнота и аккуратным, убористым почерком вывел заголовок для нового инструмента: «Журнал отклонений. Форма №1».
Спустя час бумаги были готовы.
Красный карандаш сделал свое дело. Опись материалов по аппаратной архитектуре «Сферы-82» и программному пакету «СЛОЙ-81» теперь выглядела сухой, канцелярской и пригодной для первичной проверки.
Опытный программный комплекс нулевой редакции допускался к первичному оформлению, а гражданская линия железа получила жесткий, но легальный фильтр для сбора статистики.
Спорные формулировки получили учетные названия.
Сергеев собрал листы в аккуратную стопку. Выровнял края. Убрал красный карандаш обратно в деревянный стакан.
Взгляд Алексея скользнул по исчерканным страницам. Красный графит выделялся на белой бумаге плотной сеткой правок. Внизу каждого листа оставалось место для подписи ответственного.
— Документ согласован в первичной редакции, — сухо подытожил куратор. — И помните о границах допуска, Морозов. Ваш унифицированный профиль — это хорошо. Но появится незадокументированный вызов — и мы проект заморозим.
Алексей встал.
— Я понял.
Они с Липатовым вышли из кабинета в длинный, натертый до блеска коридор. Дверь за их спинами захлопнулась с глухим стуком.